我有一个构建抽象语法树的ANTLR3语法。我正在考虑升级到ANTLR4。然而,ANTLR4似乎只构建解析树,而不构建抽象语法树。例如,output=AST选项不再被识别。此外,“最终ANTLR4引用”的文本中既没有出现"AST“,也没有出现”抽象语法“。
我在想我是不是漏掉了什么。
我的应用程序目前知道如何在ANTLR3生成的AST上爬行。将其更改为处理解析树并不是不可能的,但这将是一项工作。我想确定在我走那条路之前这是必要的。
发布于 2013-04-04 23:48:52
ANTLR 4生成基于语法的解析树,而不是基于任意AST运算符和/或重写规则的AST。这允许ANTLR 4自动生成监听器和访问者接口,您可以使用语法在代码中实现这些接口。
对于从第3版升级现有应用程序的用户来说,这一变化可能是巨大的,但作为一个整体,新系统更易于使用和(特别是)维护。
https://stackoverflow.com/questions/15823333
复制相似问题