Antlr4 (java) 尝试将所有输入匹配到第一个标记

Antlr4 (java) tries to match all input to first token

我的 antlr(我正在使用 IntelliJ 插件)将我所有的输入匹配到我的解析器规则中的第一个表达式,这显然会导致错误。

简单示例:

grammar test;
rule  : WORD '+' WORD;
WORD  : [a-z]+;

正在测试:

输入 = 'faefae' 让我:

line 1:6 mismatched input '' expecting '+'

(到目前为止是有道理的)

输入='faefae+':

line 1:0 mismatched input 'faefae+' expecting WORD.

输入='faefae+faefae':

line 1:0 mismatched input 'faefae+faefae' expecting WORD.

上次输入应该有效,为什么无效?

非常感谢您的帮助, 祝大家有个愉快的一天!

faefae+faefae 将解析得很好。

您可能还没有重新生成 lexer/parser 类。

使用 IntelliJ 和 ANTLR4 插件,我得到了这个: