ANTLR 4 lexer子规则顺序

ANTLR 4 lexer子规则顺序,antlr,lexer,antlr4,Antlr,Lexer,Antlr4,在ANTLR4中,lexer子规则之间的选择顺序重要吗?例如,以下规则之间有什么区别吗 STRING: '"' ('\\"' | .)*? '"'; STRING: '"' (. | '\\"')*? '"'; 第一个词汇规则可以匹配整个输入,如:“abc\”def。第二个词汇规则只匹配其中的一部分,即“abc\”,然后报告其余字符序列的错误 Antlr生成的lexer首先匹配首先定义的子规则。我已经在Antlr 4上对它们进行了测试

在ANTLR4中,lexer子规则之间的选择顺序重要吗?例如,以下规则之间有什么区别吗

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

第一个词汇规则可以匹配整个输入,如:“abc\”def。第二个词汇规则只匹配其中的一部分,即“abc\”,然后报告其余字符序列的错误

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