Index: Lib/compiler/ast.py =================================================================== --- Lib/compiler/ast.py (revision 76934) +++ Lib/compiler/ast.py (working copy) @@ -51,9 +51,9 @@ return "Expression(%s)" % (repr(self.node)) class Add(Node): - def __init__(self, (left, right), lineno=None): - self.left = left - self.right = right + def __init__(self, leftright, lineno=None): + self.left = leftright[0] + self.right = leftright[1] self.lineno = lineno def getChildren(self): @@ -431,9 +431,9 @@ return "Discard(%s)" % (repr(self.expr),) class Div(Node): - def __init__(self, (left, right), lineno=None): - self.left = left - self.right = right + def __init__(self, leftright, lineno=None): + self.left = leftright[0] + self.right = leftright[1] self.lineno = lineno def getChildren(self): @@ -485,9 +485,9 @@ return "Exec(%s, %s, %s)" % (repr(self.expr), repr(self.locals), repr(self.globals)) class FloorDiv(Node): - def __init__(self, (left, right), lineno=None): - self.left = left - self.right = right + def __init__(self, leftright, lineno=None): + self.left = leftright[0] + self.right = leftright[1] self.lineno = lineno def getChildren(self): @@ -560,7 +560,6 @@ self.kwargs = 1 - def getChildren(self): children = [] children.append(self.decorators) @@ -590,6 +589,7 @@ self.argnames = ['.0'] self.varargs = self.kwargs = None + def getChildren(self): return self.code, @@ -607,7 +607,6 @@ self.lineno = lineno self.is_outmost = False - def getChildren(self): children = [] children.append(self.assign) @@ -784,7 +783,6 @@ self.kwargs = 1 - def getChildren(self): children = [] children.append(self.argnames) @@ -803,9 +801,9 @@ return "Lambda(%s, %s, %s, %s)" % (repr(self.argnames), repr(self.defaults), repr(self.flags), repr(self.code)) class LeftShift(Node): - def __init__(self, (left, right), lineno=None): - self.left = left - self.right = right + def __init__(self, leftright, lineno=None): + self.left = leftright[0] + self.right = leftright[1] self.lineno = lineno def getChildren(self): @@ -893,9 +891,9 @@ return "ListCompIf(%s)" % (repr(self.test),) class Mod(Node): - def __init__(self, (left, right), lineno=None): - self.left = left - self.right = right + def __init__(self, leftright, lineno=None): + self.left = leftright[0] + self.right = leftright[1] self.lineno = lineno def getChildren(self): @@ -923,9 +921,9 @@ return "Module(%s, %s)" % (repr(self.doc), repr(self.node)) class Mul(Node): - def __init__(self, (left, right), lineno=None): - self.left = left - self.right = right + def __init__(self, leftright, lineno=None): + self.left = leftright[0] + self.right = leftright[1] self.lineno = lineno def getChildren(self): @@ -995,9 +993,9 @@ return "Pass()" class Power(Node): - def __init__(self, (left, right), lineno=None): - self.left = left - self.right = right + def __init__(self, leftright, lineno=None): + self.left = leftright[0] + self.right = leftright[1] self.lineno = lineno def getChildren(self): @@ -1095,9 +1093,9 @@ return "Return(%s)" % (repr(self.value),) class RightShift(Node): - def __init__(self, (left, right), lineno=None): - self.left = left - self.right = right + def __init__(self, leftright, lineno=None): + self.left = leftright[0] + self.right = leftright[1] self.lineno = lineno def getChildren(self): @@ -1170,9 +1168,9 @@ return "Stmt(%s)" % (repr(self.nodes),) class Sub(Node): - def __init__(self, (left, right), lineno=None): - self.left = left - self.right = right + def __init__(self, leftright, lineno=None): + self.left = leftright[0] + self.right = leftright[1] self.lineno = lineno def getChildren(self): Index: Lib/compiler/pycodegen.py =================================================================== --- Lib/compiler/pycodegen.py (revision 76934) +++ Lib/compiler/pycodegen.py (working copy) @@ -870,10 +870,10 @@ level = node.level if level == 0 and not self.graph.checkFlag(CO_FUTURE_ABSIMPORT): level = -1 - fromlist = map(lambda (name, alias): name, node.names) + fromlist = tuple(name for (name, alias) in node.names) if VERSION > 1: self.emit('LOAD_CONST', level) - self.emit('LOAD_CONST', tuple(fromlist)) + self.emit('LOAD_CONST', fromlist) self.emit('IMPORT_NAME', node.modname) for name, alias in node.names: if VERSION > 1: Index: Tools/compiler/astgen.py =================================================================== --- Tools/compiler/astgen.py (revision 76934) +++ Tools/compiler/astgen.py (working copy) @@ -105,12 +105,18 @@ def _gen_init(self, buf): if self.args: - print >> buf, " def __init__(self, %s, lineno=None):" % self.args + argtuple = '(' in self.args + args = self.args if not argtuple else ''.join(self.argnames) + print >> buf, " def __init__(self, %s, lineno=None):" % args else: print >> buf, " def __init__(self, lineno=None):" if self.argnames: - for name in self.argnames: - print >> buf, " self.%s = %s" % (name, name) + if argtuple: + for idx, name in enumerate(self.argnames): + print >> buf, " self.%s = %s[%s]" % (name, args, idx) + else: + for name in self.argnames: + print >> buf, " self.%s = %s" % (name, name) print >> buf, " self.lineno = lineno" # Copy the lines in self.init, indented four spaces. The rstrip() # business is to get rid of the four spaces if line happens to be