将ANTLR v3语法迁移到ANTLR v4

时间:2013-05-07 03:34:08

标签: antlr

我们为antlr V3编写了一个语法,我想迁移到antlr v4。有没有迁移指南。而且我想知道对现有V3语法的修改,以便我们很好地利用v4功能。

1 个答案:

答案 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插件,我希望尽快发布。它需要更多的测试,但到目前为止它是一个基本的构建器。下一步是创建一个编辑器......