<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7638.1">
<TITLE>RE: [Python-3000] AST access (WAS: Adaptation vs. Generic Functions)</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>Guido van Rossum wrote:<BR>
&gt; On 4/9/06, Greg Ewing &lt;greg.ewing@canterbury.ac.nz&gt; wrote:<BR>
&gt; &gt; Robert Brewer wrote:<BR>
&gt; &gt; &gt; Part of the benefit of the bytecode-hacking is that<BR>
&gt; &gt; &gt; your expression never has to be in a string.<BR>
&gt; &gt;<BR>
&gt; &gt; I'm wondering whether there should be some kind of<BR>
&gt; &gt; &quot;code literal&quot; syntax, where you write a Python<BR>
&gt; &gt; expression and the compiler transforms it as far<BR>
&gt; &gt; as the AST stage, then makes it available to the<BR>
&gt; &gt; program as an AST object.<BR>
&gt; &gt;<BR>
&gt; &gt; Or would that be too close to &quot;programmable<BR>
&gt; &gt; syntax&quot; for Guido's liking?<BR>
&gt;<BR>
&gt; I'm more concerned about the choice of AST data structure<BR>
&gt; and how it affects IronPython, PyPy, Jython and possible<BR>
&gt; other Python implementations. I'd like to keep both the<BR>
&gt; AST and the bytecode spec out of the language spec,<BR>
&gt; otherwise those implementations will face the tough choice<BR>
&gt; of either changing their parser technology to one that<BR>
&gt; is probably less suited, or implementing two full parsers.<BR>
<BR>
Not to mention cross-version issues with persisted AST objects or bytecode-sequences. When pickling my Expression objects, I chose to decompile them back into Python code for that reason. Although I had to upgrade the decompiler between 2.3 and 2.4 (to allow for the JUMP target changes, for example) I didn't have to upgrade a single saved Expression object.<BR>
<BR>
<BR>
Robert Brewer<BR>
System Architect<BR>
Amor Ministries<BR>
fumanchu@amor.org</FONT>
</P>

</BODY>
</HTML>