2013-05-07 64 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插件,我希望很快发布它。它需要多一点测试,但迄今为止它是一个基本的构建器。下一步是创建一个编辑器...