我正在处理一个项目,需要为给定的程序生成抽象语法树。这个程序可以是任何主流编程语言。在ANTLR4中生成AST的标准方法应该是什么?我只知道ANTLR4的基础知识,并且能够为给定的程序生成解析树。
我正在处理一个项目,需要为给定的程序生成抽象语法树。这个程序可以是任何主流编程语言。在ANTLR4中生成AST的标准方法应该是什么?我只知道ANTLR4的基础知识,并且能够为给定的程序生成解析树。
ANTLR 4自动生成解析树,而不是依靠手动构建的AST。在观察了多年前的方法开发遇到的极度难以维护的挑战之后,做出了这个决定,特别是当涉及到多个树解析器时。
如果您需要源代码的抽象表示,则应创建准确表示语言结构的对象模型,而不是依赖于弱类型和通常不结构化的AST节点。然后,您可以遍历解析树而不是AST来创建您的对象模型。
我不建议在任何新项目中使用ANTLR 3。