Skip to content

Commit 48b57b1

Browse files
author
jhylton
committed
Generate correct reprs for Mul, Add, etc.
git-svn-id: http://svn.python.org/projects/python/trunk@22570 6015fed2-1504-0410-9fe1-9d1591cc4771
1 parent abc8ef6 commit 48b57b1

4 files changed

Lines changed: 20 additions & 40 deletions

File tree

Lib/compiler/ast.py

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
33
This file is automatically generated.
44
"""
5-
# XXX performance issues:
6-
# 1. getChildren() could be more efficient for many cases
7-
85
from types import TupleType, ListType
96
from consts import CO_VARARGS, CO_VARKEYWORDS
107

@@ -193,7 +190,7 @@ def __init__(self, (left, right)):
193190
def _getChildren(self):
194191
return self.left, self.right
195192
def __repr__(self):
196-
return "Sub(%s, %s)" % (repr(self.left), repr(self.right))
193+
return "Sub((%s, %s))" % (repr(self.left), repr(self.right))
197194

198195
class ListCompIf(Node):
199196
nodes["listcompif"] = "ListCompIf"
@@ -212,7 +209,7 @@ def __init__(self, (left, right)):
212209
def _getChildren(self):
213210
return self.left, self.right
214211
def __repr__(self):
215-
return "Div(%s, %s)" % (repr(self.left), repr(self.right))
212+
return "Div((%s, %s))" % (repr(self.left), repr(self.right))
216213

217214
class Discard(Node):
218215
nodes["discard"] = "Discard"
@@ -240,7 +237,7 @@ def __init__(self, (left, right)):
240237
def _getChildren(self):
241238
return self.left, self.right
242239
def __repr__(self):
243-
return "RightShift(%s, %s)" % (repr(self.left), repr(self.right))
240+
return "RightShift((%s, %s))" % (repr(self.left), repr(self.right))
244241

245242
class Continue(Node):
246243
nodes["continue"] = "Continue"
@@ -280,7 +277,7 @@ def __init__(self, (left, right)):
280277
def _getChildren(self):
281278
return self.left, self.right
282279
def __repr__(self):
283-
return "LeftShift(%s, %s)" % (repr(self.left), repr(self.right))
280+
return "LeftShift((%s, %s))" % (repr(self.left), repr(self.right))
284281

285282
class Mul(Node):
286283
nodes["mul"] = "Mul"
@@ -290,7 +287,7 @@ def __init__(self, (left, right)):
290287
def _getChildren(self):
291288
return self.left, self.right
292289
def __repr__(self):
293-
return "Mul(%s, %s)" % (repr(self.left), repr(self.right))
290+
return "Mul((%s, %s))" % (repr(self.left), repr(self.right))
294291

295292
class Yield(Node):
296293
nodes["yield"] = "Yield"
@@ -368,7 +365,7 @@ def __init__(self, (left, right)):
368365
def _getChildren(self):
369366
return self.left, self.right
370367
def __repr__(self):
371-
return "Mod(%s, %s)" % (repr(self.left), repr(self.right))
368+
return "Mod((%s, %s))" % (repr(self.left), repr(self.right))
372369

373370
class Class(Node):
374371
nodes["class"] = "Class"
@@ -466,7 +463,7 @@ def __init__(self, (left, right)):
466463
def _getChildren(self):
467464
return self.left, self.right
468465
def __repr__(self):
469-
return "Power(%s, %s)" % (repr(self.left), repr(self.right))
466+
return "Power((%s, %s))" % (repr(self.left), repr(self.right))
470467

471468
class Ellipsis(Node):
472469
nodes["ellipsis"] = "Ellipsis"
@@ -486,15 +483,6 @@ def _getChildren(self):
486483
def __repr__(self):
487484
return "Return(%s)" % (repr(self.value),)
488485

489-
class Yield(Node):
490-
nodes["yield"] = "Yield"
491-
def __init__(self, value):
492-
self.value = value
493-
def _getChildren(self):
494-
return self.value,
495-
def __repr__(self):
496-
return "Yield(%s)" % repr(self.value)
497-
498486
class Add(Node):
499487
nodes["add"] = "Add"
500488
def __init__(self, (left, right)):
@@ -503,7 +491,7 @@ def __init__(self, (left, right)):
503491
def _getChildren(self):
504492
return self.left, self.right
505493
def __repr__(self):
506-
return "Add(%s, %s)" % (repr(self.left), repr(self.right))
494+
return "Add((%s, %s))" % (repr(self.left), repr(self.right))
507495

508496
class Function(Node):
509497
nodes["function"] = "Function"

Tools/compiler/astgen.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ def _gen_repr(self, buf):
8181
print >> buf, " def __repr__(self):"
8282
if self.argnames:
8383
fmt = COMMA.join(["%s"] * self.nargs)
84+
if '(' in self.args:
85+
fmt = '(%s)' % fmt
8486
vals = ["repr(self.%s)" % name for name in self.argnames]
8587
vals = COMMA.join(vals)
8688
if self.nargs == 1:

Tools/compiler/compiler/ast.py

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
33
This file is automatically generated.
44
"""
5-
# XXX performance issues:
6-
# 1. getChildren() could be more efficient for many cases
7-
85
from types import TupleType, ListType
96
from consts import CO_VARARGS, CO_VARKEYWORDS
107

@@ -193,7 +190,7 @@ def __init__(self, (left, right)):
193190
def _getChildren(self):
194191
return self.left, self.right
195192
def __repr__(self):
196-
return "Sub(%s, %s)" % (repr(self.left), repr(self.right))
193+
return "Sub((%s, %s))" % (repr(self.left), repr(self.right))
197194

198195
class ListCompIf(Node):
199196
nodes["listcompif"] = "ListCompIf"
@@ -212,7 +209,7 @@ def __init__(self, (left, right)):
212209
def _getChildren(self):
213210
return self.left, self.right
214211
def __repr__(self):
215-
return "Div(%s, %s)" % (repr(self.left), repr(self.right))
212+
return "Div((%s, %s))" % (repr(self.left), repr(self.right))
216213

217214
class Discard(Node):
218215
nodes["discard"] = "Discard"
@@ -240,7 +237,7 @@ def __init__(self, (left, right)):
240237
def _getChildren(self):
241238
return self.left, self.right
242239
def __repr__(self):
243-
return "RightShift(%s, %s)" % (repr(self.left), repr(self.right))
240+
return "RightShift((%s, %s))" % (repr(self.left), repr(self.right))
244241

245242
class Continue(Node):
246243
nodes["continue"] = "Continue"
@@ -280,7 +277,7 @@ def __init__(self, (left, right)):
280277
def _getChildren(self):
281278
return self.left, self.right
282279
def __repr__(self):
283-
return "LeftShift(%s, %s)" % (repr(self.left), repr(self.right))
280+
return "LeftShift((%s, %s))" % (repr(self.left), repr(self.right))
284281

285282
class Mul(Node):
286283
nodes["mul"] = "Mul"
@@ -290,7 +287,7 @@ def __init__(self, (left, right)):
290287
def _getChildren(self):
291288
return self.left, self.right
292289
def __repr__(self):
293-
return "Mul(%s, %s)" % (repr(self.left), repr(self.right))
290+
return "Mul((%s, %s))" % (repr(self.left), repr(self.right))
294291

295292
class Yield(Node):
296293
nodes["yield"] = "Yield"
@@ -368,7 +365,7 @@ def __init__(self, (left, right)):
368365
def _getChildren(self):
369366
return self.left, self.right
370367
def __repr__(self):
371-
return "Mod(%s, %s)" % (repr(self.left), repr(self.right))
368+
return "Mod((%s, %s))" % (repr(self.left), repr(self.right))
372369

373370
class Class(Node):
374371
nodes["class"] = "Class"
@@ -466,7 +463,7 @@ def __init__(self, (left, right)):
466463
def _getChildren(self):
467464
return self.left, self.right
468465
def __repr__(self):
469-
return "Power(%s, %s)" % (repr(self.left), repr(self.right))
466+
return "Power((%s, %s))" % (repr(self.left), repr(self.right))
470467

471468
class Ellipsis(Node):
472469
nodes["ellipsis"] = "Ellipsis"
@@ -486,15 +483,6 @@ def _getChildren(self):
486483
def __repr__(self):
487484
return "Return(%s)" % (repr(self.value),)
488485

489-
class Yield(Node):
490-
nodes["yield"] = "Yield"
491-
def __init__(self, value):
492-
self.value = value
493-
def _getChildren(self):
494-
return self.value,
495-
def __repr__(self):
496-
return "Yield(%s)" % repr(self.value)
497-
498486
class Add(Node):
499487
nodes["add"] = "Add"
500488
def __init__(self, (left, right)):
@@ -503,7 +491,7 @@ def __init__(self, (left, right)):
503491
def _getChildren(self):
504492
return self.left, self.right
505493
def __repr__(self):
506-
return "Add(%s, %s)" % (repr(self.left), repr(self.right))
494+
return "Add((%s, %s))" % (repr(self.left), repr(self.right))
507495

508496
class Function(Node):
509497
nodes["function"] = "Function"

Tools/compiler/compiler/astgen.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ def _gen_repr(self, buf):
8181
print >> buf, " def __repr__(self):"
8282
if self.argnames:
8383
fmt = COMMA.join(["%s"] * self.nargs)
84+
if '(' in self.args:
85+
fmt = '(%s)' % fmt
8486
vals = ["repr(self.%s)" % name for name in self.argnames]
8587
vals = COMMA.join(vals)
8688
if self.nargs == 1:

0 commit comments

Comments
 (0)