假设我有这样的Lexer规则:
local-test
和这样的解析器规则:
TEST_ENV
我想获取解析器中没有引号的文字内容。当然,我可以删除引号,但我很有趣地得到不带引号的字符串。
如果我在LITERAL中移动内部规则,则该规则将不正确匹配(仅匹配1个字符)。如果将LITERAL作为解析器规则移动,则可以匹配ESCAPED_SEQ,但这不是我想要的。有没有办法在词法分析器中命名内部规则?
答案 0 :(得分:2)
有没有办法在词法分析器中命名内部规则?
不,没有。无法在ANTLR 4中命名或访问令牌的特定部分,也没有明智的方法将LITERAL
转换为解析器规则。
因此,您自己的唯一选择是从令牌的文本中删除引号。