如何在ANTLR4中生成AST?

我正在开发一个项目,我必须为给定的程序生成抽象语法树。 这里的程序可以是任何主流编程语言。 在ANTLR4中生成AST的标准方法是什么? 我只知道ANTLR4的基础知识,我能够为给定的程序生成Parse树。

ANTLR 4自动生成解析树,而不是依赖于手动结构化的AST。 这个决定是在观察了多年的开发之后做出的,其中先前的方法遇到了极端的可维护性挑战,特别是涉及多个树解析器时。

如果需要源代码的抽象表示,则应创建一个准确表示语言结构的对象模型,而不是依赖于弱类型和通常非结构化的AST节点。 然后,您可以使用解析树而不是AST来创建对象模型。

对于任何新项目,我都不建议使用ANTLR 3。