mirror of
https://github.com/python/cpython.git
synced 2025-10-21 22:22:48 +00:00
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:
parent
2cb94aba12
commit
3e0055f8c6
54 changed files with 13675 additions and 6810 deletions
|
@ -364,16 +364,15 @@ class PyFlowGraph(FlowGraph):
|
|||
|
||||
def getCode(self):
|
||||
"""Get a Python code object"""
|
||||
if self.stage == RAW:
|
||||
self.computeStackDepth()
|
||||
self.flattenGraph()
|
||||
if self.stage == FLAT:
|
||||
self.convertArgs()
|
||||
if self.stage == CONV:
|
||||
self.makeByteCode()
|
||||
if self.stage == DONE:
|
||||
return self.newCodeObject()
|
||||
raise RuntimeError, "inconsistent PyFlowGraph state"
|
||||
assert self.stage == RAW
|
||||
self.computeStackDepth()
|
||||
self.flattenGraph()
|
||||
assert self.stage == FLAT
|
||||
self.convertArgs()
|
||||
assert self.stage == CONV
|
||||
self.makeByteCode()
|
||||
assert self.stage == DONE
|
||||
return self.newCodeObject()
|
||||
|
||||
def dump(self, io=None):
|
||||
if io:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue