用于定义和操作AST的库
iAST的Python项目详细描述
#上次
(支持python 3.3和3.4)
这个库提供了一种定义和转换抽象语法的方法 自定义语言的树(AST)。它可以用来帮助构建编译器 或其他程序转换系统。
iast从asdl语法中读取语言的抽象语法,并且 自动生成节点类。标准的访问者风格框架 用于在树上遍历、转换和模式匹配。 节点是散列的,具有结构相等性,并且支持可选类型 检查。(不支持解析,应该由外部 分析器生成器。)
提供了python 3.3和python3.4的ast的节点定义 开箱即用,以及编写代码模板和宏的工具 以python代码为目标。但是,主框架在ASTS上工作 专横的语言。
##示例
有关基本用法和访问者/变形金刚,请参见[arith.py](examples/arith.py)。 有关与python自己的ast模块的比较,请参见[toy.py](examples/toy.py) 以及类型检查的使用。两个例子都使用了 相应的asdl文件。
##安装
从pip/pypi安装:
` python -m pip install iast `
使用开发版本:
` python -m pip install https://github.com/brandjon/iast/tree/tarball/develop `
支持Python3.3和3.4。唯一的依赖是 [simplestruct](https://github.com/brandjon/simplestruct),用于 定义节点类。
##开发商
测试可以使用python setup.py test运行,也可以通过安装 [tox](http://testrun.org/tox/latest/)并运行python-m tox 在项目根目录中。tox测试python 3.3和3.4配置。 构建源发行版(python setup.py sdist)需要 setuptools扩展包 [设置工具git](https://github.com/wichert/setuptools-git)。
##参考资料
[1]:https://github.com/eliben/asdl_parser [[1]]:eli bendersky重写了python asdl解析器,它为 iast从asdl生成节点。