如何使用ANTLR4构建AST?

如何使用ANTLR4构建AST?,antlr4,abstract-syntax-tree,Antlr4,Abstract Syntax Tree,我有一个ANTLR3语法,它构建了一个抽象语法树。我正在考虑升级到ANTLR4。然而,ANTLR4似乎只构建解析树,而不是抽象语法树。例如,output=AST选项不再被识别。此外,AST和抽象语法均未出现在最终ANTLR4参考的文本中 我想知道我是否遗漏了什么 我的应用程序目前知道如何爬过ANTLR3生成的AST。将其更改为处理解析树并不是不可能的,但需要做一些工作。在我开始这条路之前,我想确定这是必要的。ANTLR 4基于语法生成解析树,而不是基于任意AST运算符和/或重写规则生成AST。这

我有一个ANTLR3语法,它构建了一个抽象语法树。我正在考虑升级到ANTLR4。然而,ANTLR4似乎只构建解析树,而不是抽象语法树。例如,output=AST选项不再被识别。此外,AST和抽象语法均未出现在最终ANTLR4参考的文本中

我想知道我是否遗漏了什么


我的应用程序目前知道如何爬过ANTLR3生成的AST。将其更改为处理解析树并不是不可能的,但需要做一些工作。在我开始这条路之前,我想确定这是必要的。

ANTLR 4基于语法生成解析树,而不是基于任意AST运算符和/或重写规则生成AST。这允许Antlr4自动生成监听器和访问者接口,您可以使用语法在代码中实现这些接口


对于从版本3升级现有应用程序的用户来说,这一变化可能是巨大的,但总体而言,新系统更易于使用,尤其是维护。

谢谢。我能理解新系统的优点,这就是为什么我想升级到它。我愿意做必要的事情来实现这一点。我只是想确定在开始这项工作之前我了解情况。听起来像是这样。我可以把ParserRuleContext作为AST的节点吗?这个问题最终在