2017-10-09 11 views
0

私のantlr(私はIntelliJプラグインを使用しています)は、私のパーサルールの最初の式に一致します。Antlr4(java)は、すべての入力を最初のトークンに一致させようとします。

簡単な例:

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

は今テスト:

行1:6の不一致入力 '' 期待 '+'

入力= 'faefaeは' 私を取得します

(これまでの意味合い)

入力= 'faefae +':0ミスマッチ入力 'faefae +' 期待WORD:1

ライン。

入力= 'faefae + faefae'

行1:0ミスマッチ入力 'faefae + faefae' WORDを期待。

最後に入力する必要がありますが、それはなぜですか?

ヘルプは大変ありがとうございます。 あなたはすてきな一日をお祈りします!

+1

奇妙なこと。 3番目の例は悪くなければならず、2番目の例では異なるエラーメッセージが出されているはずです。あなたのコードを質問に追加してください。 –

答えて

0

faefae+faefaeは正しく解析されます。

おそらく、レクサー/パーサークラスを再生成していない可能性があります。 IntelliJのとANTLR4プラグインで

、私はこれを取得:

enter image description here

関連する問題