# HG changeset patch # User Paul Boddie # Date 1372614798 -7200 # Node ID dc308a3033f3995f404ce05763b0a3171290d9f5 # Parent ae718c3f3425c849391255fe2886509e07724bca Fixed output related to "del" statement usage. diff -r ae718c3f3425 -r dc308a3033f3 compiler/ast.py --- a/compiler/ast.py Wed May 01 23:23:54 2013 +0200 +++ b/compiler/ast.py Sun Jun 30 19:53:18 2013 +0200 @@ -1,6 +1,6 @@ """Python abstract syntax node definitions -This file is automatically generated by Tools/compiler/astgen.py +This file was originally generated by Tools/compiler/astgen.py """ from compiler.consts import CO_VARARGS, CO_VARKEYWORDS @@ -26,6 +26,18 @@ l.append(elt) return l +def flatten_assignment(node): + l = [] + if isinstance(node, (AssList, AssTuple)): + for n in node.nodes: + l += flatten_assignment(n) + else: + l.append(node) + return l + +def is_deletion(node): + return isinstance(node, (AssAttr, AssName)) and node.flags == "OP_DELETE" + def docstring(s): if s.find("\n") != -1: if s.find("'''") != -1: @@ -248,7 +260,11 @@ return "AssList(%r)" % (self.nodes,) def __str__(self): - return "[%s]" % ", ".join(map(str, self.nodes)) + nodes = flatten_assignment(self) + if nodes and is_deletion(nodes[0]): + return "; ".join(map(str, self.nodes)) + else: + return "[%s]" % ", ".join(map(str, self.nodes)) def visit(self, visitor, *args): return visitor.visitAssList(self, *args) @@ -296,7 +312,11 @@ return "AssTuple(%r)" % (self.nodes,) def __str__(self): - return "(%s)" % ", ".join(map(str, self.nodes)) + nodes = flatten_assignment(self) + if nodes and is_deletion(nodes[0]): + return "; ".join(map(str, self.nodes)) + else: + return "(%s)" % ", ".join(map(str, self.nodes)) def visit(self, visitor, *args): return visitor.visitAssTuple(self, *args)