在Python中将Python AST /代码转换为CFG

时间:2014-06-23 11:13:13

标签: python abstract-syntax-tree pypy cpython control-flow

从我的研究看来,Python中Python代码的主要CFG生成器似乎是PyPy流模型(http://doc.pypy.org/en/latest/objspace.html#the-flow-model),但似乎有使用RPython的限制。大多数限制并不妨碍CFG的生成,但也有一些限制,例如限制内置类型的循环和生成器限制。

CPython似乎在compile.c中生成一个“完整的”CFG,然后从中发出它的字节码。但是这一切都是用C完成的,而到目前为止我的工作都是用Python完成的。从CPython中提取CFG似乎也需要一些黑客攻击。

用Python实现的Python代码没有'完整'的CFG生成器吗?

我并不完全反对自己构建一个与ast模块联系的想法,但我想确保在深入了解之前了解所有选项。

0 个答案:

没有答案