如何在ANTLR4中生成AST?

4

我正在处理一个项目,需要为给定的程序生成抽象语法树。这个程序可以是任何主流编程语言。在ANTLR4中生成AST的标准方法应该是什么?我只知道ANTLR4的基础知识,并且能够为给定的程序生成解析树。


请参阅如何使用ANTLR4构建AST? - predi
1
如果我想为更多的编程语言生成AST,那么选择ANTLR3是否明智? - user2597000
1个回答

2

ANTLR 4自动生成解析树,而不是依靠手动构建的AST。在观察了多年前的方法开发遇到的极度难以维护的挑战之后,做出了这个决定,特别是当涉及到多个树解析器时。

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

我不建议在任何新项目中使用ANTLR 3。


5
有没有一个在线的良好参考文献,可以帮助建立一个简单/主流语言的对象模型? - user2597000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接