2017-10-09 157 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