diff options
Diffstat (limited to 'Tools')
-rw-r--r-- | Tools/compiler/astgen.py | 12 |
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 |