我有一条规则

nls
    :   NL*
    ;


使用词法分析器令牌

// Inside (...) and [...] but not {...}, ignore newlines.
NL  : '\r'? '\n'            { this.ignoreTokenInsideParens(); }
    ;


在编译时,我得到

antlr:
 [java] error(69): Pel.g4:19:86: label nls conflicts with rule with same name


我的理解是,标签是您为生产的其他分支指定的#名称。我没有这样的标签。

那么,这个错误是什么意思呢?

最佳答案

感谢@BartKiers,我查看了每一个nls的使用,发现我有一个错误的=符号,其中我删除了规则中的变量assign,但是错过了=,例如

expression nls AND nls =expression


这就是问题所在。

10-08 20:28