1
我最近開始研究ANTLR。以下是算術表達式的語法。 問題是,當我將(調用)表達式規則放入term
規則中時,即使對於(9 + 8),它也是錯誤地解析。它以某種方式忽略了正確的括號。不正確解析ANTLR中的簡單算法語法
雖然當我把add
規則,而不是從規則條款調用表達式規則,它工作正常。
如:
term:
INTEGER
| '(' add ')'
;
誰能告訴我,爲什麼它正在發生,因爲更多或LES它們兩者是相同的。
格拉默,這就是它給不正確的結果
term
:
INTEGER
| '(' expression ')'
;
mult
:
term ('*' term)*
;
add
:
mult ('+' mult)*
;
expression
:
add
;
感謝Bart現在我終於可以繼續前進了:D和FYI我使用eclipse IDE和antlr。 – Dude 2012-07-25 18:47:35
不客氣@ user1529267。 – 2012-07-25 18:52:56
巴特的答案是完美的。注意ANTLRworks 2 ...在開發中,似乎是一個完整的重寫,所以希望我們未來會看到更好的結果。 – Carlos 2012-07-26 04:06:11