[Python-checkins] python/dist/src/Lib/compiler ast.py, 1.21.2.1, 1.21.2.2 transformer.py, 1.34.2.2, 1.34.2.3

jhylton@users.sourceforge.net jhylton at users.sourceforge.net
Sun Oct 16 07:24:33 CEST 2005


Update of /cvsroot/python/python/dist/src/Lib/compiler
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27718/Lib/compiler

Modified Files:
      Tag: ast-branch
	ast.py transformer.py 
Log Message:
Merge head to branch (for the last time)


Index: ast.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/compiler/ast.py,v
retrieving revision 1.21.2.1
retrieving revision 1.21.2.2
diff -u -d -r1.21.2.1 -r1.21.2.2
--- ast.py	7 Jan 2005 06:58:13 -0000	1.21.2.1
+++ ast.py	16 Oct 2005 05:23:59 -0000	1.21.2.2
@@ -4,9 +4,9 @@
 """
 from consts import CO_VARARGS, CO_VARKEYWORDS
 
-def flatten(list):
+def flatten(seq):
     l = []
-    for elt in list:
+    for elt in seq:
         t = type(elt)
         if t is tuple or t is list:
             for elt2 in flatten(elt):
@@ -15,8 +15,8 @@
             l.append(elt)
     return l
 
-def flatten_nodes(list):
-    return [n for n in flatten(list) if isinstance(n, Node)]
+def flatten_nodes(seq):
+    return [n for n in flatten(seq) if isinstance(n, Node)]
 
 nodes = {}
 

Index: transformer.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/compiler/transformer.py,v
retrieving revision 1.34.2.2
retrieving revision 1.34.2.3
diff -u -d -r1.34.2.2 -r1.34.2.3
--- transformer.py	7 Jan 2005 06:58:13 -0000	1.34.2.2
+++ transformer.py	16 Oct 2005 05:23:59 -0000	1.34.2.3
@@ -89,7 +89,7 @@
             print nodes[kind], len(args), args
             raise
     else:
-        raise WalkerEror, "Can't find appropriate Node type: %s" % str(args)
+        raise WalkerError, "Can't find appropriate Node type: %s" % str(args)
         #return apply(ast.Node, args)
 
 class Transformer:
@@ -165,7 +165,7 @@
         if n == symbol.classdef:
             return self.classdef(node[1:])
 
-        raise WalkerEror, ('unexpected node type', n)
+        raise WalkerError, ('unexpected node type', n)
 
     def single_input(self, node):
         ### do we want to do anything about being "interactive" ?
@@ -280,12 +280,14 @@
         return Lambda(names, defaults, flags, code, lineno=nodelist[1][2])
 
     def classdef(self, nodelist):
-        # classdef: 'class' NAME ['(' testlist ')'] ':' suite
+        # classdef: 'class' NAME ['(' [testlist] ')'] ':' suite
 
         name = nodelist[1][1]
         doc = self.get_docstring(nodelist[-1])
         if nodelist[2][0] == token.COLON:
             bases = []
+        elif nodelist[3][0] == token.RPAR:
+            bases = []
         else:
             bases = self.com_bases(nodelist[3])
 
@@ -314,31 +316,31 @@
         return Stmt(stmts)
 
     def parameters(self, nodelist):
-        raise WalkerEror
+        raise WalkerError
 
     def varargslist(self, nodelist):
-        raise WalkerEror
+        raise WalkerError
 
     def fpdef(self, nodelist):
-        raise WalkerEror
+        raise WalkerError
 
     def fplist(self, nodelist):
-        raise WalkerEror
+        raise WalkerError
 
     def dotted_name(self, nodelist):
-        raise WalkerEror
+        raise WalkerError
 
     def comp_op(self, nodelist):
-        raise WalkerEror
+        raise WalkerError
 
     def trailer(self, nodelist):
-        raise WalkerEror
+        raise WalkerError
 
     def sliceop(self, nodelist):
-        raise WalkerEror
+        raise WalkerError
 
     def argument(self, nodelist):
-        raise WalkerEror
+        raise WalkerError
 
     # --------------------------------------------------------------
     #
@@ -401,7 +403,15 @@
         return Return(self.com_node(nodelist[1]), lineno=nodelist[0][2])
 
     def yield_stmt(self, nodelist):
-        return Yield(self.com_node(nodelist[1]), lineno=nodelist[0][2])
+        expr = self.com_node(nodelist[0])
+        return Discard(expr, lineno=expr.lineno)
+
+    def yield_expr(self, nodelist):
+        if len(nodelist)>1:
+            value = nodelist[1]
+        else:
+            value = Const(None)
+        return Yield(self.com_node(value), lineno=nodelist[0][2])
 
     def raise_stmt(self, nodelist):
         # raise: [test [',' test [',' test]]]
@@ -1400,6 +1410,8 @@
 
 if hasattr(symbol, 'yield_stmt'):
     _legal_node_types.append(symbol.yield_stmt)
+if hasattr(symbol, 'yield_expr'):
+    _legal_node_types.append(symbol.yield_expr)
 
 _assign_types = [
     symbol.test,



More information about the Python-checkins mailing list