标签: antlr lexer antlr4
在leTLR4中,词法分子子规则之间的选择顺序是否重要?例如,以下规则之间是否有任何区别?
STRING: '"' ('\\"' | .)*? '"'; STRING: '"' (. | '\\"')*? '"';
答案 0 :(得分:1)
第一个词法规则可以匹配整个输入:“abc \”def“。第二个只匹配它的一部分,即”abc“,然后报告其余字符序列的错误
Antlr生成的词法分析器首先匹配首先定义的子规则。我在Antlr 4上测试了它们。