views:

607

answers:

2

Modifying Abstract Syntax Trees

I would like to be able to build and modify an ast and then optionally write it out as python byte code for execution later without overhead.

I have been hacking around with the ast docs for python3.0 and python2.6, but I can't seem to find any good sources on best practices for this type of code.

Question

What are some best practices and guidelines for modifying abstract syntax trees in python?

[edit]

Unknown states that byteplay is a good example of such a library.

Also, benford cites GeniuSQL which uses abstract syntax trees to transform python code to SQL.

+3  A: 

Other than the manual and the source code, you are on your own. This subject and python bytecode are very undocumented.

Alternatively you could try using this python bytecode library which I have heard good thing about but haven't tried it yet:

http://code.google.com/p/byteplay/

Unknown
Thanks! I was afraid this would be the answer. Thanks for the input!
brad
+2  A: 

I think geniusql is doing something along those lines to translate an ast into sql... There was a talk on it but I can't find it - and I'm not allowed to link anyway :-(

Ben Ford
+1 from me, you're a bit closer to posting links now. :)
brad