[Python-checkins] CVS: python/dist/src/Tools/compiler/compiler pyassem.py,1.11,1.12 pycodegen.py,1.24,1.25 transformer.py,1.14,1.15
Jeremy Hylton
python-dev@python.org
Thu, 12 Oct 2000 13:23:27 -0700
Update of /cvsroot/python/python/dist/src/Tools/compiler/compiler
In directory slayer.i.sourceforge.net:/tmp/cvs-serv2177/compiler
Modified Files:
pyassem.py pycodegen.py transformer.py
Log Message:
Fix SF bug #116263: support for from .. import *
transformer.py: return '*', None from com_import_as_name
pycodegen.py: special case for name == '*'
pyassem.py: fix stack counting for IMPORT_ opcodes
Index: pyassem.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/compiler/compiler/pyassem.py,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -r1.11 -r1.12
*** pyassem.py 2000/09/01 20:47:37 1.11
--- pyassem.py 2000/10/12 20:23:23 1.12
***************
*** 516,519 ****
--- 516,522 ----
'COMPARE_OP': -1,
'STORE_FAST': -1,
+ 'IMPORT_STAR': -1,
+ 'IMPORT_NAME': 0,
+ 'IMPORT_FROM': 1,
}
# use pattern match
***************
*** 521,525 ****
('BINARY_', -1),
('LOAD_', 1),
- ('IMPORT_', 1),
]
--- 524,527 ----
Index: pycodegen.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/compiler/compiler/pycodegen.py,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -r1.24 -r1.25
*** pycodegen.py 2000/09/01 20:47:37 1.24
--- pycodegen.py 2000/10/12 20:23:23 1.25
***************
*** 440,446 ****
if name == '*':
self.namespace = 0
! self.emit('IMPORT_FROM', name)
! self._resolveDots(name)
! self.storeName(alias or name)
self.emit('POP_TOP')
--- 440,451 ----
if name == '*':
self.namespace = 0
! self.emit('IMPORT_STAR')
! # There can only be one name w/ from ... import *
! assert len(node.names) == 1
! return
! else:
! self.emit('IMPORT_FROM', name)
! self._resolveDots(name)
! self.storeName(alias or name)
self.emit('POP_TOP')
Index: transformer.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/compiler/compiler/transformer.py,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** transformer.py 2000/09/20 02:47:28 1.14
--- transformer.py 2000/10/12 20:23:23 1.15
***************
*** 826,829 ****
--- 826,831 ----
def com_import_as_name(self, node):
+ if node == '*':
+ return '*', None
if node[0] == token.NAME:
return node[1], None