0

词法分析器子规则之间的选择顺序在 ANTLR4 中是否重要?例如,以下规则之间有什么区别吗?

STRING: '"' ('\\"' | .)*? '"';
STRING: '"' (. | '\\"')*? '"';
4

1 回答 1

1

第一条词法规则可以匹配整个输入,如:“abc\”def”,第二条只匹配部分,即“abc\”,其余字符序列报错。

Antlr 生成的词法分析器首先匹配首先定义的子规则。我已经在 Antlr 4 上对它们进行了测试。

于 2013-09-02T02:04:52.990 回答