mirror of https://github.com/python/cpython
Merged revisions 65885,65892,65894,65898 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r65885 | benjamin.peterson | 2008-08-19 17:06:11 -0500 (Tue, 19 Aug 2008) | 1 line check that the parser module can handle the new keyword syntax ........ r65892 | benjamin.peterson | 2008-08-19 20:27:30 -0500 (Tue, 19 Aug 2008) | 1 line add a NEWS note for new args syntax ........ r65894 | benjamin.peterson | 2008-08-19 20:44:45 -0500 (Tue, 19 Aug 2008) | 2 lines newSymbolTable is not public API ........ r65898 | benjamin.peterson | 2008-08-19 21:15:42 -0500 (Tue, 19 Aug 2008) | 1 line fix silly errors of mine ........
This commit is contained in:
parent
9f9fc68b0f
commit
3938a90a4a
|
@ -8,15 +8,14 @@ from _symtable import (USE, DEF_GLOBAL, DEF_LOCAL, DEF_PARAM,
|
||||||
|
|
||||||
import weakref
|
import weakref
|
||||||
|
|
||||||
__all__ = ["symtable", "SymbolTable", "newSymbolTable", "Class",
|
__all__ = ["symtable", "SymbolTable", "Class", "Function", "Symbol"]
|
||||||
"Function", "Symbol"]
|
|
||||||
|
|
||||||
def symtable(code, filename, compile_type):
|
def symtable(code, filename, compile_type):
|
||||||
raw = _symtable.symtable(code, filename, compile_type)
|
raw = _symtable.symtable(code, filename, compile_type)
|
||||||
for top in raw.values():
|
for top in raw.values():
|
||||||
if top.name == 'top':
|
if top.name == 'top':
|
||||||
break
|
break
|
||||||
return newSymbolTable(top, filename)
|
return _newSymbolTable(top, filename)
|
||||||
|
|
||||||
class SymbolTableFactory:
|
class SymbolTableFactory:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -36,7 +35,7 @@ class SymbolTableFactory:
|
||||||
obj = self.__memo[key] = self.new(table, filename)
|
obj = self.__memo[key] = self.new(table, filename)
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
newSymbolTable = SymbolTableFactory()
|
_newSymbolTable = SymbolTableFactory()
|
||||||
|
|
||||||
|
|
||||||
class SymbolTable(object):
|
class SymbolTable(object):
|
||||||
|
@ -111,12 +110,12 @@ class SymbolTable(object):
|
||||||
return [self.lookup(ident) for ident in self.get_identifiers()]
|
return [self.lookup(ident) for ident in self.get_identifiers()]
|
||||||
|
|
||||||
def __check_children(self, name):
|
def __check_children(self, name):
|
||||||
return [newSymbolTable(st, self._filename)
|
return [_newSymbolTable(st, self._filename)
|
||||||
for st in self._table.children
|
for st in self._table.children
|
||||||
if st.name == name]
|
if st.name == name]
|
||||||
|
|
||||||
def get_children(self):
|
def get_children(self):
|
||||||
return [newSymbolTable(st, self._filename)
|
return [_newSymbolTable(st, self._filename)
|
||||||
for st in self._table.children]
|
for st in self._table.children]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -66,6 +66,7 @@ class RoundtripLegalSyntaxTestCase(unittest.TestCase):
|
||||||
self.check_expr("foo(a, b, c, *args)")
|
self.check_expr("foo(a, b, c, *args)")
|
||||||
self.check_expr("foo(a, b, c, *args, **kw)")
|
self.check_expr("foo(a, b, c, *args, **kw)")
|
||||||
self.check_expr("foo(a, b, c, **kw)")
|
self.check_expr("foo(a, b, c, **kw)")
|
||||||
|
self.check_expr("foo(a, *args, keyword=23)")
|
||||||
self.check_expr("foo + bar")
|
self.check_expr("foo + bar")
|
||||||
self.check_expr("foo - bar")
|
self.check_expr("foo - bar")
|
||||||
self.check_expr("foo * bar")
|
self.check_expr("foo * bar")
|
||||||
|
|
Loading…
Reference in New Issue