我已經開始學習ANTLR,並同時擁有2007年的書籍「ANTLR參考」和ANTLRWorks(一種用於創建語法的交互式工具)。而且,作爲那種人,我從第3章開始(「不耐煩的快速瀏覽」)。ANTLR入門和避免常見錯誤
這是一個相當痛苦的過程,特別是因爲一些錯誤是相當困難的(例如ANTLR: "missing attribute access on rule scope" problem這只是對我意味着「你有什麼問題」)。另外我有一些非常簡單的語法(只有3-4個產品)和簡單的輸入(2行),當運行時出現「OutOfMemory」錯誤。
ANTLR網站很有用,但有些分散,有些SO用戶評論說(https://stackoverflow.com/questions/278480/good-tutorial-for-antlr)這本書和教程期望很高的入門級。正因爲如此,我一直不願意接近ANTLR的討論名單。
LATER我們開始接觸它了。簡單可靠的例子可以輕鬆擴展,這將是有用的。這是值得精通的,因爲我們改變了很多基於ANTLR的想法。
一個問題是ANTLR V3與V2有顯着的變化。 SO(以及ANTLR頁面)上的一個答案指的是不再可用的V2語法。
SO上的一些ANTLR問題對我有很大幫助,但發現它們有點特別。所以我想知道SO用戶如何幫助學習過程減輕痛苦。 (如果您參考參考書,指向特定頁面將會很有用)。
編輯。 @duffymo和@JamesAnderson已經證實ANTLR很努力 - 主要是因爲解析器很困難。 (FWIW我已經通過LEX/YACC等,毫無疑問ANTLR更強大,更容易處理。)我認爲在有可能避免污染的領域仍然有用,例如:
- 確保變量名
- 加包名詞法分析器的正確大小寫以及解析器
- 照顧過的規則順序,因爲它會影響優先
多的這些排序將是有益的。
雖然沒有具體關於ANTLR,泰爾寫道稱爲語言實現模式以後的書。這是一個*優秀*與新手和獸醫都相關的工作。我| MVHO絕對必須爲任何人解析工作。 – 2011-03-02 12:10:39