[Python-checkins] CVS: python/dist/src/Tools/compiler/compiler pycodegen.py,1.44,1.45

Jeremy Hylton jhylton@users.sourceforge.net
Wed, 29 Aug 2001 11:14:42 -0700


Update of /cvsroot/python/python/dist/src/Tools/compiler/compiler
In directory usw-pr-cvs1:/tmp/cvs-serv17703

Modified Files:
	pycodegen.py 
Log Message:
Support // and //=

Generate SET_LINENO for del statements.

Define klass=1 for PyFlowGraph constructor for a class statement.  A
class has no varnames.


Index: pycodegen.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/compiler/compiler/pycodegen.py,v
retrieving revision 1.44
retrieving revision 1.45
diff -C2 -d -r1.44 -r1.45
*** pycodegen.py	2001/08/28 17:28:33	1.44
--- pycodegen.py	2001/08/29 18:14:39	1.45
***************
*** 672,675 ****
--- 672,676 ----
              self.storeName(node.name)
          elif node.flags == 'OP_DELETE':
+             self.set_lineno(node)
              self.delName(node.name)
          else:
***************
*** 717,720 ****
--- 718,722 ----
          '*=' : 'INPLACE_MULTIPLY',
          '/=' : 'INPLACE_DIVIDE',
+         '//=': 'INPLACE_FLOOR_DIVIDE',
          '%=' : 'INPLACE_MODULO',
          '**=': 'INPLACE_POWER',
***************
*** 890,893 ****
--- 892,898 ----
          return self.binaryOp(node, 'BINARY_DIVIDE')
  
+     def visitFloorDiv(self, node):
+         return self.binaryOp(node, 'BINARY_FLOOR_DIVIDE')
+ 
      def visitMod(self, node):
          return self.binaryOp(node, 'BINARY_MODULO')
***************
*** 1169,1173 ****
          self.class_name = klass.name
          self.graph = pyassem.PyFlowGraph(klass.name, filename,
!                                            optimized=0)
          self.super_init(filename)
          lnf = walk(klass.code, self.NameFinder(), verbose=0)
--- 1174,1178 ----
          self.class_name = klass.name
          self.graph = pyassem.PyFlowGraph(klass.name, filename,
!                                            optimized=0, klass=1)
          self.super_init(filename)
          lnf = walk(klass.code, self.NameFinder(), verbose=0)