Re: [Python-Dev] AST manipulation and source code generation
> > 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
> 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
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
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
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
