MCPcopy Index your code
hub / github.com/RustPython/RustPython / SymbolTable

Class SymbolTable

Lib/symtable.py:60–172  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

58
59
60class SymbolTable:
61
62 def __init__(self, raw_table, filename):
63 self._table = raw_table
64 self._filename = filename
65 self._symbols = {}
66
67 def __repr__(self):
68 if self.__class__ == SymbolTable:
69 kind = ""
70 else:
71 kind = "%s " % self.__class__.__name__
72
73 if self._table.name == "top":
74 return "<{0}SymbolTable for module {1}>".format(kind, self._filename)
75 else:
76 return "<{0}SymbolTable for {1} in {2}>".format(kind,
77 self._table.name,
78 self._filename)
79
80 def get_type(self):
81 """Return the type of the symbol table.
82
83 The value returned is one of the values in
84 the ``SymbolTableType`` enumeration.
85 """
86 if self._table.type == _symtable.TYPE_MODULE:
87 return SymbolTableType.MODULE
88 if self._table.type == _symtable.TYPE_FUNCTION:
89 return SymbolTableType.FUNCTION
90 if self._table.type == _symtable.TYPE_CLASS:
91 return SymbolTableType.CLASS
92 if self._table.type == _symtable.TYPE_ANNOTATION:
93 return SymbolTableType.ANNOTATION
94 if self._table.type == _symtable.TYPE_TYPE_ALIAS:
95 return SymbolTableType.TYPE_ALIAS
96 if self._table.type == _symtable.TYPE_TYPE_PARAMETERS:
97 return SymbolTableType.TYPE_PARAMETERS
98 if self._table.type == _symtable.TYPE_TYPE_VARIABLE:
99 return SymbolTableType.TYPE_VARIABLE
100 assert False, f"unexpected type: {self._table.type}"
101
102 def get_id(self):
103 """Return an identifier for the table.
104 """
105 return self._table.id
106
107 def get_name(self):
108 """Return the table&#x27;s name.
109
110 This corresponds to the name of the class, function
111 or 'top' if the table is for a class, function or
112 global respectively.
113 """
114 return self._table.name
115
116 def get_lineno(self):
117 """Return the number of the first line in the

Callers 1

newMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected