[Python-checkins] python/dist/src/Lib/compiler transformer.py, 1.51, 1.52

pje@users.sourceforge.net pje at users.sourceforge.net
Tue Aug 2 02:47:15 CEST 2005


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

Modified Files:
	transformer.py 
Log Message:
PEP 342 implementation.  Per Guido's comments, the generator throw() 
method still needs to support string exceptions, and allow None for the
third argument.  Documentation updates are needed, too.


Index: transformer.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/compiler/transformer.py,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- transformer.py	2 Jul 2005 18:37:41 -0000	1.51
+++ transformer.py	2 Aug 2005 00:46:43 -0000	1.52
@@ -403,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]]]
@@ -1402,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