Hi, I have been looking for a good way to convert python code into a control flow graph.
I know of Python functions that will convert an expression into an abstract syntax tree (i.e. ast = parser.expr('(x+5)*5') then t = ast.totuple() then t), but I am not sure how to obtain a CFG. I've gone through the compiler and it has code that converts the AST into a CFG (described here: http://www.python.org/doc/peps/pep-0339/#ast-to-cfg-to-bytecode). Basically, PyAST_Compile() in Python/compile.c coverts the AST to a CFG and outputs final bytecode from the CFG by calling two functions: PySymtable_Build() in Python/symtable.c and compiler_mod() in Python/compile.c. PySymtable_Build() will build a symtable and compiler_mod() will create the CFG. PyPy also offers a way to obtain a control flow graph: http://codespeak.net/pypy/dist/pypy/doc/objspace.html#the-flow-model I was wondering if anyone had any advice on the best way to obtain a control flow graph. I need the control flow graph because I am trying figure out if there is a way to bound the integer ranges and list lengths at compile time. Thank you for your help -- http://mail.python.org/mailman/listinfo/python-list