[Chicago] AST constructure
shangyu
yushang at outlook.com
Mon May 6 13:53:08 CEST 2013
Ok , Thanks , I think I've got it .
Date: Mon, 6 May 2013 06:28:55 -0500
From: djuber at gmail.com
To: chicago at python.org
Subject: Re: [Chicago] AST constructure
And that was indeed wrong. What
actually is happening is that GeneratorExp is the real function in
source code, and the #define just makes that name a private one in
the output. The definition, located in Python-ast.c, looks like:
expr_ty
GeneratorExp(expr_ty elt, asdl_seq * generators, int lineno, int
col_offset,
PyArena *arena)
{
In any case, I wasn't far off before, what happens is it builds an
object out of the supplied arguments and hands you back an
expression pointer.
Dan Uber
On 5/5/13 9:45 AM, Daniel Uber wrote:
Having never looked too deeply into
this my answer might be wrong, but
the line right after the define you found is
expr_ty _Py_GeneratorExp(expr_ty elt, asdl_seq * generators, int
lineno, int
col_offset, PyArena *arena);
So it looks like it's just an expr_ty. The relevant parts of the
generator are
struct {
expr_ty elt;
asdl_seq *generators;
} GeneratorExp;
which is buried inside _expr definition.
At the top of the file expr_ty is pointer to struct _expr, which
is basically a union type of all the possible expressions, plus
an expr_kind flag to identify the contents.
In my copy of the header, that definition starts around line
187.
FWIW, I was looking through a 3.3.1 copy of the source tree, but
it may be similar in 2.x
Daniel Uber
On 5/5/13 7:35 AM, shangyu wrote:
Hi dear all,
I'm reading Python source code and know there is a
transition from CST to AST . Python will call some kind of
function which convert the CST node to a AST node , for
example , in function ast_for_itercomp there is a call
to GeneratorExp . The latter is a macro point to
_Py_GeneratorExp
#define GeneratorExp(a0, a1, a2, a3, a4)
_Py_GeneratorExp(a0, a1, a2, a3, a4)
I can't go further more because I can't find out the
difinition of _Py_GeneratorExp
,
so , where is the _Py_GeneratorExp
? Thanks in advance !
_______________________________________________
Chicago mailing list
Chicago at python.org
http://mail.python.org/mailman/listinfo/chicago
_______________________________________________
Chicago mailing list
Chicago at python.org
http://mail.python.org/mailman/listinfo/chicago
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/chicago/attachments/20130506/4a5cd857/attachment.html>
More information about the Chicago
mailing list