[Python-3000-checkins] r54435 - python/branches/p3yk/Tools/compiler/astgen.py

georg.brandl python-3000-checkins at python.org
Sun Mar 18 20:52:26 CET 2007


Author: georg.brandl
Date: Sun Mar 18 20:52:24 2007
New Revision: 54435

Modified:
   python/branches/p3yk/Tools/compiler/astgen.py
Log:
Refactor astgen.py with 2to3.


Modified: python/branches/p3yk/Tools/compiler/astgen.py
==============================================================================
--- python/branches/p3yk/Tools/compiler/astgen.py	(original)
+++ python/branches/p3yk/Tools/compiler/astgen.py	Sun Mar 18 20:52:24 2007
@@ -93,90 +93,90 @@
 
     def gen_source(self):
         buf = StringIO()
-        print >> buf, "class %s(Node):" % self.name
+        print("class %s(Node):" % self.name, file=buf)
         self._gen_init(buf)
-        print >> buf
+        print(file=buf)
         self._gen_getChildren(buf)
-        print >> buf
+        print(file=buf)
         self._gen_getChildNodes(buf)
-        print >> buf
+        print(file=buf)
         self._gen_repr(buf)
         buf.seek(0, 0)
         return buf.read()
 
     def _gen_init(self, buf):
         if self.args:
-            print >> buf, "    def __init__(self, %s, lineno=None):" % self.args
+            print("    def __init__(self, %s, lineno=None):" % self.args, file=buf)
         else:
-            print >> buf, "    def __init__(self, lineno=None):"
+            print("    def __init__(self, lineno=None):", file=buf)
         if self.argnames:
             for name in self.argnames:
-                print >> buf, "        self.%s = %s" % (name, name)
-        print >> buf, "        self.lineno = lineno"
+                print("        self.%s = %s" % (name, name), file=buf)
+        print("        self.lineno = lineno", file=buf)
         # 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
         # empty, so that reindent.py is happy with the output.
         for line in self.init:
-            print >> buf, ("    " + line).rstrip()
+            print(("    " + line).rstrip(), file=buf)
 
     def _gen_getChildren(self, buf):
-        print >> buf, "    def getChildren(self):"
+        print("    def getChildren(self):", file=buf)
         if len(self.argnames) == 0:
-            print >> buf, "        return ()"
+            print("        return ()", file=buf)
         else:
             if self.hardest_arg < P_NESTED:
                 clist = COMMA.join(["self.%s" % c
                                     for c in self.argnames])
                 if self.nargs == 1:
-                    print >> buf, "        return %s," % clist
+                    print("        return %s," % clist, file=buf)
                 else:
-                    print >> buf, "        return %s" % clist
+                    print("        return %s" % clist, file=buf)
             else:
                 if len(self.argnames) == 1:
-                    print >> buf, "        return tuple(flatten(self.%s))" % self.argnames[0]
+                    print("        return tuple(flatten(self.%s))" % self.argnames[0], file=buf)
                 else:
-                    print >> buf, "        children = []"
+                    print("        children = []", file=buf)
                     template = "        children.%s(%sself.%s%s)"
                     for name in self.argnames:
                         if self.argprops[name] == P_NESTED:
-                            print >> buf, template % ("extend", "flatten(",
-                                                      name, ")")
+                            print(template % ("extend", "flatten(",
+                                                      name, ")"), file=buf)
                         else:
-                            print >> buf, template % ("append", "", name, "")
-                    print >> buf, "        return tuple(children)"
+                            print(template % ("append", "", name, ""), file=buf)
+                    print("        return tuple(children)", file=buf)
 
     def _gen_getChildNodes(self, buf):
-        print >> buf, "    def getChildNodes(self):"
+        print("    def getChildNodes(self):", file=buf)
         if len(self.argnames) == 0:
-            print >> buf, "        return ()"
+            print("        return ()", file=buf)
         else:
             if self.hardest_arg < P_NESTED:
                 clist = ["self.%s" % c
                          for c in self.argnames
                          if self.argprops[c] == P_NODE]
                 if len(clist) == 0:
-                    print >> buf, "        return ()"
+                    print("        return ()", file=buf)
                 elif len(clist) == 1:
-                    print >> buf, "        return %s," % clist[0]
+                    print("        return %s," % clist[0], file=buf)
                 else:
-                    print >> buf, "        return %s" % COMMA.join(clist)
+                    print("        return %s" % COMMA.join(clist), file=buf)
             else:
-                print >> buf, "        nodelist = []"
+                print("        nodelist = []", file=buf)
                 template = "        nodelist.%s(%sself.%s%s)"
                 for name in self.argnames:
                     if self.argprops[name] == P_NONE:
                         tmp = ("        if self.%s is not None:\n"
                                "            nodelist.append(self.%s)")
-                        print >> buf, tmp % (name, name)
+                        print(tmp % (name, name), file=buf)
                     elif self.argprops[name] == P_NESTED:
-                        print >> buf, template % ("extend", "flatten_nodes(",
-                                                  name, ")")
+                        print(template % ("extend", "flatten_nodes(",
+                                                  name, ")"), file=buf)
                     elif self.argprops[name] == P_NODE:
-                        print >> buf, template % ("append", "", name, "")
-                print >> buf, "        return tuple(nodelist)"
+                        print(template % ("append", "", name, ""), file=buf)
+                print("        return tuple(nodelist)", file=buf)
 
     def _gen_repr(self, buf):
-        print >> buf, "    def __repr__(self):"
+        print("    def __repr__(self):", file=buf)
         if self.argnames:
             fmt = COMMA.join(["%s"] * self.nargs)
             if '(' in self.args:
@@ -185,10 +185,10 @@
             vals = COMMA.join(vals)
             if self.nargs == 1:
                 vals = vals + ","
-            print >> buf, '        return "%s(%s)" %% (%s)' % \
-                  (self.name, fmt, vals)
+            print('        return "%s(%s)" %% (%s)' % \
+                  (self.name, fmt, vals), file=buf)
         else:
-            print >> buf, '        return "%s()"' % self.name
+            print('        return "%s()"' % self.name, file=buf)
 
 rx_init = re.compile('init\((.*)\):')
 
@@ -219,12 +219,12 @@
 
 def main():
     prologue, epilogue = load_boilerplate(sys.argv[-1])
-    print prologue
-    print
+    print(prologue)
+    print()
     classes = parse_spec(SPEC)
     for info in classes:
-        print info.gen_source()
-    print epilogue
+        print(info.gen_source())
+    print(epilogue)
 
 if __name__ == "__main__":
     main()


More information about the Python-3000-checkins mailing list