1
我在阅读ANTLR4的防御指南,现在我在关于词法分析规则解析的部分。这是什么写在本节:了解ANTLR4中的词法分析规则解析
grammar KeywordTest;
enumDef : 'enum' '{' ... '}';
...
FOR: 'for'
...
ID:[a-zA-Z]; // does not match 'enum' or 'for'
规则ID也可以匹配kewords如
enum
或for
,这意味着 有不止一个规则可以匹配相同 字符串。 [...] 字面如'enum'
成为词法规则去 的语法规则后立即但明确的词汇 规则之前。
这是什么意思?它是如何帮助我们解决潜在的歧义?我要说的是,像
ENUM_KEYWORD: 'enum'
这ATNLR4
的声明可能会在内部使用规则enumDef: 'enum' '{' ... '}
之后将decalred并且将如下所示:
enumDef: ENUM_KEYWORD '{' ... '}
ENUM_KEYWORD: 'enum'
那是究竟是如何ANTLR4做的事情?