Java Antlr4和x27的含义;s标签与规则冲突
我有一条规则Java Antlr4和x27的含义;s标签与规则冲突,java,label,antlr4,Java,Label,Antlr4,我有一条规则 nls : NL* ; 使用lexer令牌 // Inside (...) and [...] but not {...}, ignore newlines. NL : '\r'? '\n' { this.ignoreTokenInsideParens(); } ; 在编译时,我得到 antlr: [java] error(69): Pel.g4:19:86: label nls conflicts with rule wi
nls
: NL*
;
使用lexer令牌
// 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
我的理解是,标签是你给一个产品的其他分支起的名字。我没有这样的标签
那么,这个错误是什么意思呢?您似乎有一个名为
nls
的规则,但也有这个名称:
nls
: NL*
;
...
rule
: FOO BAR # nls
;
#nls
(或#nls
)是标签。多亏了@BartKiers,我查看了nls的每一次使用,发现我有一个errat=符号,其中我删除了规则中的变量赋值,但错过了=,如
expression nls AND nls =expression
这就是问题所在。是的,我认为这个错误也是这个意思。我的电脑里根本没有标签grammar@MeBigFatGuy如果在语法上按CTRL+F组合键,那么就没有奇怪的
nls
用法了吗?你没有导入带标签的语法?如果没有,那么您可能发现了一个bug。你可以在这里报告: