2017-10-09 160 views
0

我的antlr(我使用的是IntelliJ插件)匹配我的解析器规则中的第一个表达式的所有输入,这显然会导致错误。Antlr4(java)试图匹配所有输入到第一个令牌

简单的例子:

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

立即测试:

输入= 'faefae' 得到我:

线1:6不匹配输入 '' 期待 '+'

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

输入= 'faefae +':

线1:0不匹配的输入 'faefae +' 期待WORD。

输入= 'faefae + faefae':

线1:0不匹配的输入 'faefae + faefae' 期待WORD。

最后输入应该可以工作,为什么不呢?

非常感谢您的帮助, 祝您有个美好的一天!

+1

这是奇怪的。第三个例子应该已经有了,第二个例子应该发出了不同的错误信息。请将您的代码添加到问题中。 –

回答

0

faefae+faefae将解析得很好。

您可能没有重新生成词法分析器/解析器类。

随着的IntelliJ和ANTLR4插件,我得到这个:

enter image description here