[Python-checkins] CVS: python/dist/src/Tools/compiler/compiler transformer.py,1.21,1.22

Jeremy Hylton jhylton@users.sourceforge.net
2001年8月17日 17:04:33 -0700


Update of /cvsroot/python/python/dist/src/Tools/compiler/compiler
In directory usw-pr-cvs1:/tmp/cvs-serv3481
Modified Files:
	transformer.py 
Log Message:
Add Yield() statement handler
Fix Module() handler to avoid including the doc string in the AST
Index: transformer.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/compiler/compiler/transformer.py,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** transformer.py	2001年04月11日 16:22:26	1.21
--- transformer.py	2001年08月18日 00:04:31	1.22
***************
*** 154,159 ****
 def file_input(self, nodelist):
 doc = self.get_docstring(nodelist, symbol.file_input)
 stmts = []
! for node in nodelist:
 if node[0] != token.ENDMARKER and node[0] != token.NEWLINE:
 self.com_append_stmt(stmts, node)
--- 154,163 ----
 def file_input(self, nodelist):
 doc = self.get_docstring(nodelist, symbol.file_input)
+ if doc is not None:
+ i = 1
+ else:
+ i = 0
 stmts = []
! for node in nodelist[i:]:
 if node[0] != token.ENDMARKER and node[0] != token.NEWLINE:
 self.com_append_stmt(stmts, node)
***************
*** 341,344 ****
--- 345,353 ----
 return n
 
+ def yield_stmt(self, nodelist):
+ n = Yield(self.com_node(nodelist[1]))
+ n.lineno = nodelist[0][2]
+ return n
+ 
 def raise_stmt(self, nodelist):
 # raise: [test [',' test [',' test]]]
***************
*** 1246,1249 ****
--- 1255,1259 ----
 symbol.return_stmt,
 symbol.raise_stmt,
+ symbol.yield_stmt,
 symbol.import_stmt,
 symbol.global_stmt,

AltStyle によって変換されたページ (->オリジナル) /