change node Classdef to Class
authorJeremy Hylton <jeremy@alum.mit.edu>
Mon, 6 Mar 2000 18:50:48 +0000 (18:50 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Mon, 6 Mar 2000 18:50:48 +0000 (18:50 +0000)
add doc string to transformer module
add two helper functions:
    parse(buf) -> AST
    parseFile(path) -> AST

Lib/compiler/ast.py
Lib/compiler/transformer.py
Tools/compiler/compiler/ast.py
Tools/compiler/compiler/transformer.py

index dfed562be614e80db50b811349816d0bdf6407b1..5686d8b4a0ebf6c97c99c1bd43f006a72ac57d95 100644 (file)
@@ -114,18 +114,18 @@ class Lambda(Node):
   def __repr__(self):
     return "Lambda(%s,%s,%s,%s)" % self._children[1:]
 
-class Classdef(Node):
-  nodes['classdef'] = 'Classdef'
+class Class(Node):
+  nodes['class'] = 'Class'
 
   def __init__(self, name, bases, doc, code):
     self.name = name
     self.bases = bases
     self.doc = doc
     self.code = code
-    self._children = ('classdef', name, bases, doc, code)
+    self._children = ('class', name, bases, doc, code)
 
   def __repr__(self):
-    return "Classdef(%s,%s,%s,%s)" % self._children[1:]
+    return "Class(%s,%s,%s,%s)" % self._children[1:]
 
 class Pass(EmptyNode):
   nodes['pass'] = 'Pass'
index 18ec815da8f44517818c928c82c695f20d6e509a..0159c31307cff1541933ff89e1c3cbc56920f87a 100644 (file)
@@ -1,16 +1,20 @@
+"""Parse tree transformation module.
+
+Transforms Python source code into an abstract syntax tree (AST)
+defined in the ast module.
+
+The simplest ways to invoke this module are via parse and parseFile.
+parse(buf) -> AST
+parseFile(path) -> AST
+"""
+
 # Copyright 1997-1998 Greg Stein and Bill Tutt
 #
-# transformer.py -- transforms Python parse trees
-#
-# Takes an input parse tree and transforms it into a higher-level parse
-# tree that is a bit more amenable to code generation. Essentially, it
-# simply introduces some additional semantics.
-#
 # Written by Greg Stein (gstein@lyra.org)
 #        and Bill Tutt (rassilon@lima.mudlib.org)
 # February 1997.
 #
-# Support for Node subclasses written by
+# Support for Node subclasses written and other revisions by
 #  Jeremy Hylton (jeremy@cnri.reston.va.us)
 #
 # The output tree has the following nodes:
 # invert:     node
 #
 
-"""Parse tree transformation module.
-
-Exposes the Transformer class with a number of methods for returning a
-"cleansed AST" instead of the parse tree that the parser exposes.
-"""
-
 import ast
 import parser
 import symbol
@@ -102,6 +100,15 @@ error = 'walker.error'
 from consts import CO_VARARGS, CO_VARKEYWORDS
 from consts import OP_ASSIGN, OP_DELETE, OP_APPLY
 
+def parseFile(path):
+    f = open(path)
+    src = f.read()
+    f.close()
+    return parse(src)
+
+def parse(buf):
+    return Transformer().parsesuite(buf)
+
 def asList(nodes):
   l = []
   for item in nodes:
@@ -262,7 +269,7 @@ class Transformer:
     # code for class
     code = self.com_node(nodelist[-1])
 
-    n = Node('classdef', name, bases, doc, code)
+    n = Node('class', name, bases, doc, code)
     n.lineno = nodelist[1][2]
     return n
 
@@ -1191,10 +1198,4 @@ _assign_types = [
   symbol.factor,
   ]
 
-# Local Variables: 
-# mode: python     
-# indent-tabs-mode: nil 
-# py-indent-offset: 2 
-# py-smart-indentation: nil 
-# End: 
 
index dfed562be614e80db50b811349816d0bdf6407b1..5686d8b4a0ebf6c97c99c1bd43f006a72ac57d95 100644 (file)
@@ -114,18 +114,18 @@ class Lambda(Node):
   def __repr__(self):
     return "Lambda(%s,%s,%s,%s)" % self._children[1:]
 
-class Classdef(Node):
-  nodes['classdef'] = 'Classdef'
+class Class(Node):
+  nodes['class'] = 'Class'
 
   def __init__(self, name, bases, doc, code):
     self.name = name
     self.bases = bases
     self.doc = doc
     self.code = code
-    self._children = ('classdef', name, bases, doc, code)
+    self._children = ('class', name, bases, doc, code)
 
   def __repr__(self):
-    return "Classdef(%s,%s,%s,%s)" % self._children[1:]
+    return "Class(%s,%s,%s,%s)" % self._children[1:]
 
 class Pass(EmptyNode):
   nodes['pass'] = 'Pass'
index 18ec815da8f44517818c928c82c695f20d6e509a..0159c31307cff1541933ff89e1c3cbc56920f87a 100644 (file)
@@ -1,16 +1,20 @@
+"""Parse tree transformation module.
+
+Transforms Python source code into an abstract syntax tree (AST)
+defined in the ast module.
+
+The simplest ways to invoke this module are via parse and parseFile.
+parse(buf) -> AST
+parseFile(path) -> AST
+"""
+
 # Copyright 1997-1998 Greg Stein and Bill Tutt
 #
-# transformer.py -- transforms Python parse trees
-#
-# Takes an input parse tree and transforms it into a higher-level parse
-# tree that is a bit more amenable to code generation. Essentially, it
-# simply introduces some additional semantics.
-#
 # Written by Greg Stein (gstein@lyra.org)
 #        and Bill Tutt (rassilon@lima.mudlib.org)
 # February 1997.
 #
-# Support for Node subclasses written by
+# Support for Node subclasses written and other revisions by
 #  Jeremy Hylton (jeremy@cnri.reston.va.us)
 #
 # The output tree has the following nodes:
 # invert:     node
 #
 
-"""Parse tree transformation module.
-
-Exposes the Transformer class with a number of methods for returning a
-"cleansed AST" instead of the parse tree that the parser exposes.
-"""
-
 import ast
 import parser
 import symbol
@@ -102,6 +100,15 @@ error = 'walker.error'
 from consts import CO_VARARGS, CO_VARKEYWORDS
 from consts import OP_ASSIGN, OP_DELETE, OP_APPLY
 
+def parseFile(path):
+    f = open(path)
+    src = f.read()
+    f.close()
+    return parse(src)
+
+def parse(buf):
+    return Transformer().parsesuite(buf)
+
 def asList(nodes):
   l = []
   for item in nodes:
@@ -262,7 +269,7 @@ class Transformer:
     # code for class
     code = self.com_node(nodelist[-1])
 
-    n = Node('classdef', name, bases, doc, code)
+    n = Node('class', name, bases, doc, code)
     n.lineno = nodelist[1][2]
     return n
 
@@ -1191,10 +1198,4 @@ _assign_types = [
   symbol.factor,
   ]
 
-# Local Variables: 
-# mode: python     
-# indent-tabs-mode: nil 
-# py-indent-offset: 2 
-# py-smart-indentation: nil 
-# End: