summaryrefslogtreecommitdiffstats
path: root/Tools
diff options
context:
space:
mode:
Diffstat (limited to 'Tools')
-rw-r--r--Tools/compiler/astgen.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/Tools/compiler/astgen.py b/Tools/compiler/astgen.py
index c431d22..1724276 100644
--- a/Tools/compiler/astgen.py
+++ b/Tools/compiler/astgen.py
@@ -105,12 +105,18 @@ class NodeInfo:
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