进行了优化,减少了上帝结构体的符号表占用
This commit is contained in:
@@ -506,8 +506,6 @@ class TransPyC:
|
||||
|
||||
# 从源代码直接预扫描 import 语句,注册别名
|
||||
# 注意:不能依赖 Tree 中的 import 节点,因为 ParsePythonFile 可能修改了 AST
|
||||
if not getattr(self.translator, '_ImportAliases', None):
|
||||
self.translator._ImportAliases = {}
|
||||
if not getattr(self.translator, '_ImportedModules', None):
|
||||
self.translator._ImportedModules = set()
|
||||
_prescan_tree = ast.parse(self.code)
|
||||
@@ -519,14 +517,14 @@ class TransPyC:
|
||||
continue
|
||||
self.translator._ImportedModules.add(_name)
|
||||
if _alias.asname:
|
||||
self.translator._ImportAliases[_alias.asname] = _name
|
||||
self.translator.SymbolTable.import_aliases[_alias.asname] = _name
|
||||
elif isinstance(_node, ast.ImportFrom):
|
||||
_module_name = _node.module
|
||||
if _module_name and _module_name not in ('c', 't'):
|
||||
self.translator._ImportedModules.add(_module_name)
|
||||
for _alias in _node.names:
|
||||
if _alias.asname:
|
||||
self.translator._ImportAliases[_alias.asname] = f"{_module_name}.{_alias.name}"
|
||||
self.translator.SymbolTable.import_aliases[_alias.asname] = f"{_module_name}.{_alias.name}"
|
||||
|
||||
# 解析代码以提取类型信息(用于 EmbeddedAssignments 和 TypedefAssignments)
|
||||
# 创建临时文件路径用于解析
|
||||
|
||||
Reference in New Issue
Block a user