[Python-Dev] Catching "return" and "return expr" at compile time
Greg Stein
gstein@lyra.org
Wed, 08 Sep 1999 12:20:32 -0700
Fred L. Drake, Jr. wrote:
>
> Skip Montanaro writes:
> > thing? Ideally, I'd like to see a framework that brings the parser module's
> > output up to a level where mere mortals like me can reason about Python
>
> This was exactly what I wanted to prevent when I created the parser
> module! ;-)
> I think a wrapper that simplifies the parse tree wouldn't be too
> hard to do; you simply have to be sure that the simplified version can
> be re-elaborated to pass back to the byte-code compiler via
> parser.sequence2ast(<seq>).compile(). Otherwise you can't modify the
> tree without loosing line number information, which would be nice to
> keep around!
This has already been done. Grab the Python2C distribution from
http://www.mudlib.org/~rassilon/p2c/. There is a module named
"transformer.py" which does just what you're thinking -- it converts
Python's deeply-nested trees into something human-readable. Each of the
resulting node types are doc'd at the top of the module.
It is also over a couple years old, so it has had some decent
debugging/stabilization.
Cheers,
-g
--
Greg Stein, http://www.lyra.org/