[Python-checkins] CVS: python/dist/src/Tools/compiler/compiler symbols.py,1.2,1.3
Jeremy Hylton
jhylton@users.sourceforge.net
Mon, 09 Apr 2001 13:12:01 -0700
Update of /cvsroot/python/python/dist/src/Tools/compiler/compiler
In directory usw-pr-cvs1:/tmp/cvs-serv4852/compiler
Modified Files:
symbols.py
Log Message:
Add globals to list of names returned by get_names().
Fix func arg processing to handle args in tuples.
In test code, skip names beginning with '.'.
Index: symbols.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/compiler/compiler/symbols.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -r1.2 -r1.3
*** symbols.py 2001/04/09 13:57:32 1.2
--- symbols.py 2001/04/09 20:11:59 1.3
***************
*** 62,65 ****
--- 62,66 ----
d.update(self.defs)
d.update(self.uses)
+ d.update(self.globals)
return d.keys()
***************
*** 112,117 ****
scope = FunctionScope(node.name, self.module, self.klass)
self.scopes[node] = scope
! for name in node.argnames:
! scope.add_param(name)
self.visit(node.code, scope)
--- 113,117 ----
scope = FunctionScope(node.name, self.module, self.klass)
self.scopes[node] = scope
! self._do_args(scope, node.argnames)
self.visit(node.code, scope)
***************
*** 121,128 ****
scope = LambdaScope(self.module, self.klass)
self.scopes[node] = scope
! for name in node.argnames:
! scope.add_param(name)
self.visit(node.code, scope)
def visitClass(self, node, parent):
parent.add_def(node.name)
--- 121,134 ----
scope = LambdaScope(self.module, self.klass)
self.scopes[node] = scope
! self._do_args(scope, node.argnames)
self.visit(node.code, scope)
+ def _do_args(self, scope, args):
+ for name in args:
+ if type(name) == types.TupleType:
+ self._do_args(scope, name)
+ else:
+ scope.add_param(name)
+
def visitClass(self, node, parent):
parent.add_def(node.name)
***************
*** 218,222 ****
def get_names(syms):
return [s for s in [s.get_name() for s in syms.get_symbols()]
! if not s.startswith('_[')]
for file in sys.argv[1:]:
--- 224,228 ----
def get_names(syms):
return [s for s in [s.get_name() for s in syms.get_symbols()]
! if not (s.startswith('_[') or s.startswith('.'))]
for file in sys.argv[1:]:
***************
*** 257,261 ****
l[0].get_names()):
print s.get_name()
! print get_names(s.get_namespace())
! print l[0].get_names()
sys.exit(-1)
--- 263,267 ----
l[0].get_names()):
print s.get_name()
! print sort(get_names(s.get_namespace()))
! print sort(l[0].get_names())
sys.exit(-1)