Python中编程抽象语法树的库
我正在创建一个树结构来表示一种简单的语言。我对抽象语法树(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代码生成这些节点的代码。