Re: More jython progress.
"Eric C. Newton" <[email protected]> Thu, 23 May 2002 09:25:51 -0400
| Newsgroups | gmane.comp.python.compiler |
|---|---|
| Message-ID | <20020523092551.A22805@ecn> |
> What package/module should contain the AST node classes? > What should be the public names of the AST node classes? I have used > the name of the Constructors directly but I had to change the name > of the 'except' production (to 'excepthandler'). Doesn't matter to me. > In jython we have a scope analyzer that analyze a module and return > symboltables for module, class and function levels. I guess CPython must > also have some such thing. The python version of the compiler has such a pass: compiler.symbols > Should the compiler package have a public API to such scope > analyzer? That would be helpful. > Similar we have future analyzer. Should we define a public API to this? What does the future analyzer do? > Each asdl constructor becomes a java class. That means new > attributes can't be added dynamicly. A strong limitation compared to > a python class instance. It also means that the __XXX__ attributes > can't be changed or depended on (such as __class__ and __name__). As long as isinstance() works, I can live with that. Right now the __class__ name is used for the generic visit() implementation, but that can be changed. > The sequences in the asdl becomes java arrays. That means that the > elements in a sequence can be changed but the length of the sequence > can't. I think we should ban all attempts to modify the sequences. I'm modifying the tree structure in only one case in PyChecker2, and I think I can live without it. I'm adding attributes to the tree _everywhere_. As PyChecker2 grinds over the tree, it adds discovered information to the tree (things like type information and cross-references). I can probably live without it by tracking the information somewhere else. -Eric