Python中编程抽象语法树的库

11 投票
4 回答
5946 浏览
提问于 2025-04-15 17:18

我正在创建一个树结构来表示一种简单的语言。我对抽象语法树(Abstract Syntax Trees)非常熟悉,也在C++中做过一些构建和使用它们的框架。请问有没有标准的Python库可以用来指定或操作任意的抽象语法树?如果没有,是否有其他树形结构的库可以用来实现同样的目的?

需要注意的是,我并不是在操作Python的抽象语法树,所以我觉得AST模块不太适合我。

4 个回答

0

这篇博客虽然没有详细讲解具体的实现方法,但它描述了一个很不错的接口,Python 的抽象语法树(AST)可以用来实现这个接口。

http://chris-lamb.co.uk/2006/12/08/visitor-pattern-in-python/

1

pyast 是一个用来创建声明式抽象语法树的工具包。

8

在Python中实现抽象语法树(AST)其实很简单。比如,我的pycparser项目(这是一个用Python写的完整C语言解析器),我就是借鉴了Python模块中的一些想法来实现AST的。在这个项目中,各种AST节点的定义都放在一个YAML配置文件里,然后我用Python代码生成这些节点的代码。

撰写回答