Merge ast-branch to head

This change implements a new bytecode compiler, based on a
transformation of the parse tree to an abstract syntax defined in
Parser/Python.asdl.

The compiler implementation is not complete, but it is in stable
enough shape to run the entire test suite excepting two disabled
tests.
This commit is contained in:
Jeremy Hylton 2005-10-20 19:59:25 +00:00
parent 2cb94aba12
commit 3e0055f8c6
54 changed files with 13675 additions and 6810 deletions

View file

@ -28,7 +28,7 @@ def walk(co, match=None):
if type(obj) == types.CodeType:
walk(obj, match)
def main(filename, codename=None):
def load(filename, codename=None):
co = loadCode(filename)
walk(co, codename)
@ -39,6 +39,9 @@ if __name__ == "__main__":
else:
filename = sys.argv[1]
codename = None
if filename.endswith('.py') and os.path.exists(filename+"c"):
filename += "c"
main(filename, codename)
if filename.endswith('.py'):
buf = open(filename).read()
co = compile(buf, filename, "exec")
walk(co)
else:
load(filename, codename)