我一直在试图弄清楚为 Python 代码检索控制流图的正确方法是什么,我正在寻找与 ac 程序上的 gcc 输出类似的输出(我使用了 gcc -fdump-tree -cfg)。
我将给出一个简短的示例来阐明我的意图,例如给出以下简单的 c 源代码:
我得到了如下所示的控制流图:
cfg 输出包含原始的c 关键字和goto指令,而不是循环(for、while 等),这对我的目的非常有用。
所以在过去的几天里,我正在研究为python 代码实现一个 cfg 生成器,深入研究 AST 模块(阅读:Green Tree Snakes),但它看起来 AST 非常详细地解析了每个关键字,但我想避免它。我更感兴趣的是关注从原始 python 脚本中提取的原始关键字的流程。
有没有人有任何建议,如何实现?
谢谢你们!