I created http://svn.python.org/projects/python/branches/ast-objects/
You can convert your repository to that branch with svn switch svn+ssh://[EMAIL PROTECTED]/python/branches/ast-objects in the toplevel directory. In particular, this features http://svn.python.org/projects/python/branches/ast-objects/Parser/asdl_c.py http://svn.python.org/projects/python/branches/ast-objects/Include/Python-ast.h http://svn.python.org/projects/python/branches/ast-objects/Python/Python-ast.c The status is currently this: - asdl_c generates a type hierarchy: "Sum" productions have one type per constructor, inheriting from a type for the sum; plain products only have a type for the product. - attributes are in the base type, accessible through o->_base.attr; projections of the product types are accessible directly through member names. - all projections must be non-NULL. Sequences are represented through potentially empty lists; optional types are potentially represented through Py_None. bool is gone; use Py_True/Py_False. The only primitive type remaining is int (which only occurs in lineno) - the types currently have only a constructor, a dealloc function, and an _Check macro. - Naming is this: for cross-object-file visible symbols (functions and global variables), a Py_ prefix is used. Otherwise, I use the type name or constructor name directly. There is a #define for the Py_<type>_New function, so you can also write <type>(params). Parameter order for the types is: projections first, then attributes. - For compatibility with the current code, the Sum base types also have the _kind enumeration (although that appears not to get initialized right now). For asdl_c, I see the following things as TODOs: - add support for traversing the types from C, through tp_members (read-only). Optionally add support for pickling. - add support for garbage collection. I don't expect this to be necessary right now, but will be if the API is exposed, and it doesn't cost much. The bigger chunk of necessary changes is in using these, starting with ast.c. Feel free to commit any changes to that branch that you consider helpful. To avoid duplicated work, posting a note here might also help. Regards, Martin _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com