Antoine van Gelder
Sun Mar 11 13:02:40 EDT 2007
Guido van Rossum wrote:
> On 3/11/07, Antoine van Gelder <hummingbird at hivemind.net> wrote:
>> Anyone know the current status of being able to turn an AST tree emitted
>> by the Python compiler module back into code after it has been modified ?
> The word "code" is ambiguous in the context.
Apologies - am still deciding on what I need - thanks for taking the
time to address both meanings.
> If you meant byte code, the final stage of the compiler should be able
> to do that just fine.
Aha! Was not aware that this was already possible! Best to start digging
in compiler.pycodegen ?
> If you meant to turn a tree back into source code, I wrote a tool that
> can do this for the purpose of transforming Python 2 source code into
> Python 3 source code. It doesn't use the same parse tree datatype that
> the compiler uses, but it's very handy for source-to-source
> transformations, as it retains the exact formatting, comments etc. of
> the input source code (to the extent possible given transformations,
> of course). It's not yet documented, though I have a few users helping
> out writing transformations already. Check it out in our repository:
This is useful. Thank you!
> I hope you weren't merely stating a rhetorical question.
Spent the weekend starting to play with a little toy visual scripting
editor that takes an AST generated from a python source file by
compiler.parse() as input and am having some wonderings about the best
way to go from the edited AST to:
a) byte code for execution
b) back to source code for non-visual editing
Of course if I have b) I could simply recompile but I think it would be
neat to not go the long way round :-)
More information about the Sugar-devel