Re: [Python-Dev] AST manipulation and source code generation

2005-05-26 Thread Sylvain Thénault
> > On 5/24/05, Ka-Ping Yee <[EMAIL PROTECTED]> wrote:
> >
> >
> >> Would there be any interest in extending the compiler package with  
> >> tools
> >> for AST transformations and for emitting Python source code from  
> >> ASTs?

the astng package from logilab's common library [1] extends compiler AST
nodes with a bunch of methods, including a as_string method on each node
allowing to regenerate a python source code from an ast (other methods
are mainly to ease navigation in the tree or to extract higher level
information from it). Currently it's implemented as a node's method
instead of using a visitor pattern or the like, but that would be easily
done.

[1] http://www.logilab.org/projects/common/

-- 
Sylvain Thénault   LOGILAB, Paris (France).

http://www.logilab.com   http://www.logilab.fr  http://www.logilab.org

___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] AST manipulation and source code generation

2005-05-26 Thread Chad Whitacre
> Would there be any interest in extending the compiler package with tools
> for AST transformations and for emitting Python source code from ASTs?

Heh, so I guess the answer is "yes."

BTW, how does the concept of AST transformations relate to the concept 
of (Lisp) macros? Am I right to think that they are similar?



chad

___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] AST manipulation and source code generation

2005-05-26 Thread Jeremy Hylton
On 5/26/05, Chad Whitacre <[EMAIL PROTECTED]> wrote:
> > Would there be any interest in extending the compiler package with tools
> > for AST transformations and for emitting Python source code from ASTs?
> 
> Heh, so I guess the answer is "yes."
> 
> BTW, how does the concept of AST transformations relate to the concept
> of (Lisp) macros? Am I right to think that they are similar?

I think they are similar, but two key differences are:

 - An AST transformation can transform existing syntax but doesn't allow you
   to create new syntax.

 - An AST transformation has to be explicitly invoked.  A macro is
part of the language
   proper and has a semantics for how and when macros are evaluated.

Jeremy
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] AST manipulation and source code generation

2005-05-26 Thread Chad Whitacre
Thanks Jeremy. Also wandered off-list w/ Ka-Ping; posting here for 
posterity.


chad

-

chad: BTW, how does the concept of AST transformations relate to the 
concept of (Lisp) macros? Am I right to think that they are similar?

?!ng: Absolutely.  In terms of mechanism, they're basically the same;
the main difference is that in Lisp, the transformations are a part
of the core language definition.

?!ng: Well, i should refine that a bit to say that the Lisp macro system
is a little more specific.  Whereas AST transformations in Python
are open-ended (you could generate any result you want), the key
interesting property of Lisp macros is that they are constrained
to be "safe", in the sense that the bindings of variable names are
always preserved.

chad: Hmmm ... I don't follow python-dev closely but hasn't there been 
resistance to macros in Python? Are we saying macros may be a good idea 
after all?

?!ng: resistance -> Yes.
?!ng: good idea -> Not really.  AST transformations are useful for 
experimenting with the language, but i don't think there is much 
enthusiasm for making these transformations a normal part of the way 
most programs are written.

___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] AST manipulation and source code generation

2005-05-26 Thread Jeremy Hylton
On 5/26/05, Chad Whitacre <[EMAIL PROTECTED]> wrote:
> chad: Hmmm ... I don't follow python-dev closely but hasn't there been
> resistance to macros in Python? Are we saying macros may be a good idea
> after all?
> 
> ?!ng: resistance -> Yes.
> ?!ng: good idea -> Not really.  AST transformations are useful for
> experimenting with the language, but i don't think there is much
> enthusiasm for making these transformations a normal part of the way
> most programs are written.

Right.  We fear macros and prefer to suffer getattr hooks,
descriptors, and decorators .

Jeremy
___
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com