我们为antlr V3编写了一个语法,我想迁移到antlr v4。有没有迁移指南。而且我想知道对现有V3语法的修改,以便我们很好地利用v4功能。
答案 0 :(得分:4)
如果你在v3或更早版本中使用了AST构建和树解析,那么最大的打击是。那里有巨大的差异。您不再拥有AST生成(它现在生成Parse Trees)或Tree Walkers(您现在使用Parser Listeners或Parse Tree Visitors)。
我还没有看过迁移指南,但是如果您正在查看v4文档并且目前使用AST或Tree Walkers,请查看解析树,听众和访客的v4部分。
其他大多数更改都是为了更容易编写解析器,但如果你不小心,有些可能会让你遇到麻烦。例如,您现在可以编写左递归规则,但如果依赖于某个优先级(如表达式语法),则需要仔细匹配ANTLR4编译器的一些模式以了解正确的优先级。
我强烈建议收到Ter的书,The Definitive ANTLR4 Reference并仔细阅读。它提供了你需要的大部分细节,尽管你仍然想要玩一下。
我刚刚为Eclipse编写了一个非常简单的ANTLR4插件,我希望尽快发布。它需要更多的测试,但到目前为止它是一个基本的构建器。下一步是创建一个编辑器......