2013-05-07 122 views
2

我們已經爲antlr V3編寫了一個語法,並且我想遷移到antlr v4。是否有任何移植指南。並且我想知道現有V3語法的修改,以便我們很好地利用v4的功能。將ANTLR v3語法遷移到ANTLR v4

回答

3

如果您在v3或更早版本中使用AST構建和樹解析,將會造成最大的影響。 巨大的有差異。您不再有AST生成(它現在生成Parse Trees)或樹Walkkers(您現在使用Parser Listeners或Parse Tree Visitors)。

我還沒有看到移植指南,但是如果您正在瀏覽v4文檔並且正在使用AST或樹型漫步者,請查看Parse Trees,Listeners和Visitors上的v4部分。

其他大部分變化都是爲了更容易編寫解析器,儘管如果你不小心的話,有些可能會讓你陷入一些麻煩。例如,您現在可以編寫左遞歸規則,但是如果您依賴某個優先級(如在表達式語法中),則需要仔細匹配ANTLR4編譯器的幾個模式以瞭解正確的優先級。

我強烈建議讓Ter的書The Definitive ANTLR4 Reference只讀通過它。它提供了大部分你需要的細節,儘管你仍然想要玩一下。

我剛剛寫了一個非常簡單的Eclipse Eclipse插件的ANTLR4插件,我希望很快發佈它。它需要多一點測試,但迄今爲止它是一個基本的構建器。下一步是創建一個編輯器...