diff --git a/App/lib/core/Gen/AssignGenMixin.vp b/App/lib/core/Gen/AssignGenMixin.vp index 4bc7b7d..fbc73d0 100644 --- a/App/lib/core/Gen/AssignGenMixin.vp +++ b/App/lib/core/Gen/AssignGenMixin.vp @@ -1,16 +1,3 @@ -import lib.core.Gen.GenTypes as GenTypes -import lib.core.Gen.Generator as Generator - -import lib.core.Gen.TypeGenCType as TypeGenCType - -import lib.core.Gen.ExprGenAttr as ExprGenAttr - -import lib.core.Gen.CallGenBase as CallGenBase - -import lib.core.Gen.CallGenFd as CallGenFd - -import lib.core.Gen.CallGenVt as CallGenVt - import t, c from stdint import * import ast @@ -24,8 +11,15 @@ import w32.fileio as fileio import lib.core.VLogger as VLogger import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr -import lib.core.StubMergerStore as StubMergerStore +import lib.Stub.StubMerger.StubMergerStore as StubMergerStore +import lib.core.Gen.GenTypes as GenTypes +import lib.core.Gen.Generator as Generator +import lib.core.Gen.TypeGenCType as TypeGenCType +import lib.core.Gen.ExprGenAttr as ExprGenAttr +import lib.core.Gen.CallGenBase as CallGenBase +import lib.core.Gen.CallGenFd as CallGenFd +import lib.core.Gen.CallGenVt as CallGenVt # ============================================================ # AssignGenMixin - 赋值翻译 Mixin(P6 方法化) diff --git a/App/lib/core/Gen/CallGenBase.vp b/App/lib/core/Gen/CallGenBase.vp index 51fd679..189423a 100644 --- a/App/lib/core/Gen/CallGenBase.vp +++ b/App/lib/core/Gen/CallGenBase.vp @@ -15,12 +15,12 @@ import lib.core.VLogger as VLogger import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.Handles.HandlesExprCall as HandlesExprCall import lib.core.CompilerFactory as CompilerFactory -import lib.core.StubMergerCollect as StubMergerCollect -import lib.core.StubMergerStore as StubMergerStore - +import lib.Stub.StubMerger.StubMergerCollect as StubMergerCollect +import lib.Stub.StubMerger.StubMergerStore as StubMergerStore +import lib.Stub.StubGen.VpiReader as VpiReader # ============================================================ @@ -355,7 +355,6 @@ class CallGenBase: """ if pool is None or sha1 is None or func_name is None: return 0 - import lib.StubGen.VpiReader as VpiReader if self.Gen.CallGenBase.TempDir is not None and self.Gen.CallGenBase.TempDirLen > 0: VpiReader._ensure_vpi_ret_annot_loaded(sha1, self.Gen.CallGenBase.TempDir) state_annot: str = VpiReader._lookup_vpi_ret_annot(sha1, None, func_name) @@ -577,7 +576,6 @@ class CallGenBase: if pool is None or cls_sha1 is None or method_name is None: return None # 函数内懒 import:VpiReader imports HandlesExprCall,顶层 import 会成环 - import lib.StubGen.VpiReader as VpiReader i32_ty: llvmlite.LLVMType | t.CPtr = llvmlite.Int32(pool) i8_ptr_ty: llvmlite.LLVMType | t.CPtr = llvmlite.Ptr(pool, llvmlite.Int8(pool)) # 按需加载:缓存未命中时直接读 {temp_dir}/{sha1[0:2]}/{sha1}.vpi diff --git a/App/lib/core/Gen/CallGenCBuiltin.vp b/App/lib/core/Gen/CallGenCBuiltin.vp index 7ebaa18..bad0411 100644 --- a/App/lib/core/Gen/CallGenCBuiltin.vp +++ b/App/lib/core/Gen/CallGenCBuiltin.vp @@ -14,11 +14,10 @@ import lib.core.VLogger as VLogger import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.Handles.HandlesExprCall as HandlesExprCall import lib.core.CompilerFactory as CompilerFactory - import lib.core.Gen.CallGenBase as CallGenBase diff --git a/App/lib/core/Gen/CallGenCall.vp b/App/lib/core/Gen/CallGenCall.vp index 448c899..4a75c68 100644 --- a/App/lib/core/Gen/CallGenCall.vp +++ b/App/lib/core/Gen/CallGenCall.vp @@ -14,14 +14,14 @@ import lib.core.VLogger as VLogger import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.Handles.HandlesExprCall as HandlesExprCall import lib.core.CompilerFactory as CompilerFactory - import lib.core.Gen.CallGenBase as CallGenBase import lib.core.Handles.ExprCallTable as ExprCallTable + # ============================================================ # CallGenCall - CallGenMixin 拆分(阶段 B):方法调用分派(含 super / 虚调用 / kwargs 名匹配) # @@ -398,7 +398,7 @@ class CallGenCall(CallGenBase.CallGenBase): mdf_default_count: int = 0 mdf_param_count: int = 0 if trans is not None and trans._funcs is not None: - mdf_entry: FuncEntry | t.CPtr = ExprCallTable.find_func_entry_in_table( + mdf_entry: GenTypes.FuncEntry | t.CPtr = ExprCallTable.find_func_entry_in_table( trans._funcs, trans._func_count, lookup_name) if mdf_entry is not None: mdf_defaults = mdf_entry.Defaults @@ -408,7 +408,7 @@ class CallGenCall(CallGenBase.CallGenBase): # 调用方函数表)Defaults 非 None 会短路跳过,但下方"用快照重建默认值" # 分支依赖 mdf_gd(唯一持有 stdlib 常量快照处)——缺它必 fatal_error # (ListTest list[int].__new__ 根因) - mdf_gd: FuncDefaultsEntry | t.CPtr = self.Gen.CallGenLeafKit.find_func_defaults(lookup_name) + mdf_gd: GenTypes.FuncDefaultsEntry | t.CPtr = self.Gen.CallGenLeafKit.find_func_defaults(lookup_name) if mdf_defaults is None and mdf_gd is not None: mdf_defaults = mdf_gd.Defaults mdf_default_count = mdf_gd.DefaultCount @@ -1170,7 +1170,7 @@ class CallGenCall(CallGenBase.CallGenBase): mdf_default_count: int = 0 mdf_param_count: int = 0 if trans is not None and trans._funcs is not None: - mdf_entry: FuncEntry | t.CPtr = ExprCallTable.find_func_entry_in_table( + mdf_entry: GenTypes.FuncEntry | t.CPtr = ExprCallTable.find_func_entry_in_table( trans._funcs, trans._func_count, lookup_name) if mdf_entry is not None: mdf_defaults = mdf_entry.Defaults @@ -1180,7 +1180,7 @@ class CallGenCall(CallGenBase.CallGenBase): # 调用方函数表)Defaults 非 None 会短路跳过,但下方"用快照重建默认值" # 分支依赖 mdf_gd(唯一持有 stdlib 常量快照处)——缺它必 fatal_error # (ListTest list[int].__new__ 根因) - mdf_gd: FuncDefaultsEntry | t.CPtr = self.Gen.CallGenLeafKit.find_func_defaults(lookup_name) + mdf_gd: GenTypes.FuncDefaultsEntry | t.CPtr = self.Gen.CallGenLeafKit.find_func_defaults(lookup_name) if mdf_defaults is None and mdf_gd is not None: mdf_defaults = mdf_gd.Defaults mdf_default_count = mdf_gd.DefaultCount diff --git a/App/lib/core/Gen/CallGenCtor.vp b/App/lib/core/Gen/CallGenCtor.vp index 02d3bd8..81ce889 100644 --- a/App/lib/core/Gen/CallGenCtor.vp +++ b/App/lib/core/Gen/CallGenCtor.vp @@ -14,14 +14,14 @@ import lib.core.VLogger as VLogger import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.Handles.HandlesExprCall as HandlesExprCall import lib.core.CompilerFactory as CompilerFactory - import lib.core.Gen.CallGenBase as CallGenBase import lib.core.Handles.ExprCallTable as ExprCallTable + # ============================================================ # CallGenCtor - CallGenMixin 拆分(阶段 B):结构体构造 / 枚举构造 / 泛型构造 / 类型转换 # diff --git a/App/lib/core/Gen/CallGenDispatch.vp b/App/lib/core/Gen/CallGenDispatch.vp index 1130f9c..ef745e3 100644 --- a/App/lib/core/Gen/CallGenDispatch.vp +++ b/App/lib/core/Gen/CallGenDispatch.vp @@ -17,13 +17,13 @@ import lib.core.VLogger as VLogger import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.Handles.HandlesExprCall as HandlesExprCall import lib.core.CompilerFactory as CompilerFactory - import lib.core.Gen.CallGenBase as CallGenBase + # ============================================================ # CallGenDispatch - CallGenMixin 拆分(阶段 C):translate_call 检测段 # diff --git a/App/lib/core/Gen/CallGenFd.vp b/App/lib/core/Gen/CallGenFd.vp index 42dedf8..0024457 100644 --- a/App/lib/core/Gen/CallGenFd.vp +++ b/App/lib/core/Gen/CallGenFd.vp @@ -14,13 +14,13 @@ import lib.core.VLogger as VLogger import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.Handles.HandlesExprCall as HandlesExprCall import lib.core.CompilerFactory as CompilerFactory - import lib.core.Gen.CallGenBase as CallGenBase + # ============================================================ # CallGenFd - CallGenMixin 拆分(阶段 B):FakeDuck / requires 字段注入 / provider 栈 # diff --git a/App/lib/core/Gen/CallGenLeafKit.vp b/App/lib/core/Gen/CallGenLeafKit.vp index f2c8c27..032a1a4 100644 --- a/App/lib/core/Gen/CallGenLeafKit.vp +++ b/App/lib/core/Gen/CallGenLeafKit.vp @@ -14,11 +14,10 @@ import lib.core.VLogger as VLogger import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.Handles.HandlesExprCall as HandlesExprCall import lib.core.CompilerFactory as CompilerFactory - import lib.core.Gen.CallGenCBuiltin as CallGenCBuiltin diff --git a/App/lib/core/Gen/CallGenLib.vp b/App/lib/core/Gen/CallGenLib.vp index e26291b..1376112 100644 --- a/App/lib/core/Gen/CallGenLib.vp +++ b/App/lib/core/Gen/CallGenLib.vp @@ -13,13 +13,13 @@ import lib.core.VLogger as VLogger import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.Handles.HandlesExprCall as HandlesExprCall import lib.core.CompilerFactory as CompilerFactory - import lib.core.Gen.CallGenBase as CallGenBase + # ============================================================ # CallGenLib - CallGenMixin 拆分(阶段 C):C 库声明 / 返回类型推断 / # 变长参数 / memcpy / kwargs 调用辅助方法 diff --git a/App/lib/core/Gen/CallGenMixin.vp b/App/lib/core/Gen/CallGenMixin.vp index fb11acb..7ebfc07 100644 --- a/App/lib/core/Gen/CallGenMixin.vp +++ b/App/lib/core/Gen/CallGenMixin.vp @@ -14,11 +14,10 @@ import lib.core.VLogger as VLogger import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.Handles.HandlesExprCall as HandlesExprCall import lib.core.CompilerFactory as CompilerFactory - import lib.core.Gen.CallGenBase as CallGenBase import lib.core.Handles.ExprCallTable as ExprCallTable diff --git a/App/lib/core/Gen/CallGenProp.vp b/App/lib/core/Gen/CallGenProp.vp index a08a5fd..7364e91 100644 --- a/App/lib/core/Gen/CallGenProp.vp +++ b/App/lib/core/Gen/CallGenProp.vp @@ -14,13 +14,13 @@ import lib.core.VLogger as VLogger import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.Handles.HandlesExprCall as HandlesExprCall import lib.core.CompilerFactory as CompilerFactory - import lib.core.Gen.CallGenBase as CallGenBase + # ============================================================ # CallGenProp - CallGenMixin 拆分(阶段 B):属性访问(getter/setter/deleter / 静态类调用 / list 内置方法) # diff --git a/App/lib/core/Gen/CallGenVa.vp b/App/lib/core/Gen/CallGenVa.vp index 5b66a5f..7ac1dad 100644 --- a/App/lib/core/Gen/CallGenVa.vp +++ b/App/lib/core/Gen/CallGenVa.vp @@ -13,13 +13,13 @@ import lib.core.VLogger as VLogger import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.Handles.HandlesExprCall as HandlesExprCall import lib.core.CompilerFactory as CompilerFactory - import lib.core.Gen.CallGenBase as CallGenBase + # ============================================================ # CallGenVa - CallGenMixin 拆分(阶段 B):va_arg 变长参数(start/arg/end / 变长调用提升) # diff --git a/App/lib/core/Gen/CallGenVt.vp b/App/lib/core/Gen/CallGenVt.vp index 69b91b1..134d203 100644 --- a/App/lib/core/Gen/CallGenVt.vp +++ b/App/lib/core/Gen/CallGenVt.vp @@ -16,13 +16,13 @@ import lib.core.VLogger as VLogger import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.Handles.HandlesExprCall as HandlesExprCall import lib.core.CompilerFactory as CompilerFactory - import lib.core.Gen.CallGenBase as CallGenBase + # ============================================================ # CallGenVt - CallGenMixin 拆分(阶段 B):vtable 槽位写入 # diff --git a/App/lib/core/Gen/ClassGenBase.vp b/App/lib/core/Gen/ClassGenBase.vp index 8bc4bfb..a749c5f 100644 --- a/App/lib/core/Gen/ClassGenBase.vp +++ b/App/lib/core/Gen/ClassGenBase.vp @@ -11,7 +11,7 @@ import stdlib import viperlib import lib.core.VLogger as VLogger import lib.core.Handles.HandlesTranslator as HT -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.CompilerFactory as CompilerFactory diff --git a/App/lib/core/Gen/ClassGenDef.vp b/App/lib/core/Gen/ClassGenDef.vp index b3b5325..2759dd8 100644 --- a/App/lib/core/Gen/ClassGenDef.vp +++ b/App/lib/core/Gen/ClassGenDef.vp @@ -10,12 +10,12 @@ import stdlib import viperlib import lib.core.VLogger as VLogger import lib.core.Handles.HandlesTranslator as HT -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.CompilerFactory as CompilerFactory - import lib.core.Gen.ClassGenBase as ClassGenBase + # ============================================================ # ClassGenDef - ClassGenMixin 拆分(阶段 D):translate_class_def 主入口 # diff --git a/App/lib/core/Gen/ClassGenEnum.vp b/App/lib/core/Gen/ClassGenEnum.vp index 5cf28a5..631a840 100644 --- a/App/lib/core/Gen/ClassGenEnum.vp +++ b/App/lib/core/Gen/ClassGenEnum.vp @@ -10,10 +10,9 @@ import stdlib import viperlib import lib.core.VLogger as VLogger import lib.core.Handles.HandlesTranslator as HT -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.CompilerFactory as CompilerFactory - import lib.core.Gen.ClassGenBase as ClassGenBase diff --git a/App/lib/core/Gen/ClassGenGeneric.vp b/App/lib/core/Gen/ClassGenGeneric.vp index 1a27410..ce30e1d 100644 --- a/App/lib/core/Gen/ClassGenGeneric.vp +++ b/App/lib/core/Gen/ClassGenGeneric.vp @@ -10,12 +10,11 @@ import stdlib import viperlib import lib.core.VLogger as VLogger import lib.core.Handles.HandlesTranslator as HT -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.CompilerFactory as CompilerFactory - import lib.core.Gen.ClassGenBase as ClassGenBase -import lib.core.StubMergerStore as StubMergerStore +import lib.Stub.StubMergerStore as StubMergerStore # 泛型特化递归深度上限(泛型循环套用防护) diff --git a/App/lib/core/Gen/ClassGenMixin.vp b/App/lib/core/Gen/ClassGenMixin.vp index 1b362c1..69283fe 100644 --- a/App/lib/core/Gen/ClassGenMixin.vp +++ b/App/lib/core/Gen/ClassGenMixin.vp @@ -9,7 +9,7 @@ import stdlib import viperlib import lib.core.VLogger as VLogger import lib.core.Handles.HandlesTranslator as HT -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.CompilerFactory as CompilerFactory import lib.core.Gen.ClassGenBase as ClassGenBase diff --git a/App/lib/core/Gen/ClassGenVTable.vp b/App/lib/core/Gen/ClassGenVTable.vp index 9a3f1b2..f42a464 100644 --- a/App/lib/core/Gen/ClassGenVTable.vp +++ b/App/lib/core/Gen/ClassGenVTable.vp @@ -10,10 +10,9 @@ import stdlib import viperlib import lib.core.VLogger as VLogger import lib.core.Handles.HandlesTranslator as HT -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.CompilerFactory as CompilerFactory - import lib.core.Gen.ClassGenBase as ClassGenBase import lib.core.Handles.ExprCallTable as ExprCallTable diff --git a/App/lib/core/Gen/ExprGenAttr.vp b/App/lib/core/Gen/ExprGenAttr.vp index d2e1561..02646ac 100644 --- a/App/lib/core/Gen/ExprGenAttr.vp +++ b/App/lib/core/Gen/ExprGenAttr.vp @@ -14,8 +14,8 @@ import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr import lib.core.Handles.HandlesExprCall as HandlesExprCall -import lib.core.StubMerger as StubMerger -import lib.core.StubMergerStore as StubMergerStore +import lib.Stub.StubMerger as StubMerger +import lib.Stub.StubMerger.StubMergerStore as StubMergerStore import lib.core.VLogger as VLogger import lib.Projectrans.Config as Config import lib.Projectrans.Utils as Utils diff --git a/App/lib/core/Gen/ExprGenBase.vp b/App/lib/core/Gen/ExprGenBase.vp index a0a02ee..5846b3f 100644 --- a/App/lib/core/Gen/ExprGenBase.vp +++ b/App/lib/core/Gen/ExprGenBase.vp @@ -14,7 +14,7 @@ import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr import lib.core.Handles.HandlesExprCall as HandlesExprCall -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.VLogger as VLogger import lib.Projectrans.Config as Config import lib.Projectrans.Utils as Utils diff --git a/App/lib/core/Gen/ExprGenCdef.vp b/App/lib/core/Gen/ExprGenCdef.vp index 741b74b..5e54783 100644 --- a/App/lib/core/Gen/ExprGenCdef.vp +++ b/App/lib/core/Gen/ExprGenCdef.vp @@ -13,15 +13,15 @@ import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr import lib.core.Handles.HandlesExprCall as HandlesExprCall -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.VLogger as VLogger import lib.Projectrans.Config as Config import lib.Projectrans.Utils as Utils - import lib.core.Gen.ExprGenBase as ExprGenBase -import lib.core.StubMergerCollect as StubMergerCollect -import lib.core.StubMergerStore as StubMergerStore +import lib.Stub.StubMerger.StubMergerCollect as StubMergerCollect +import lib.Stub.StubMerger.StubMergerStore as StubMergerStore + # ============================================================ # ExprGenCdef - ExprGenMixin 拆分(阶段 D):跨模块 CDefine 查找 diff --git a/App/lib/core/Gen/ExprGenCls.vp b/App/lib/core/Gen/ExprGenCls.vp index 7758285..d956bce 100644 --- a/App/lib/core/Gen/ExprGenCls.vp +++ b/App/lib/core/Gen/ExprGenCls.vp @@ -16,14 +16,14 @@ import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr import lib.core.Handles.HandlesExprCall as HandlesExprCall -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.VLogger as VLogger import lib.Projectrans.Config as Config import lib.Projectrans.Utils as Utils - import lib.core.Gen.ExprGenBase as ExprGenBase -import lib.core.StubMergerStore as StubMergerStore +import lib.Stub.StubMerger.StubMergerStore as StubMergerStore + # ============================================================ # docstring 登记表容量常量(与 ExprGenMixin 保持一致,本地副本避免 diff --git a/App/lib/core/Gen/ExprGenConst.vp b/App/lib/core/Gen/ExprGenConst.vp index deb78a4..613ee5d 100644 --- a/App/lib/core/Gen/ExprGenConst.vp +++ b/App/lib/core/Gen/ExprGenConst.vp @@ -14,14 +14,14 @@ import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr import lib.core.Handles.HandlesExprCall as HandlesExprCall -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.VLogger as VLogger import lib.Projectrans.Config as Config import lib.Projectrans.Utils as Utils - import lib.core.Gen.ExprGenBase as ExprGenBase + # ============================================================ # ExprGenConst - ExprGenMixin 拆分(阶段 D):常量/全局字符串/list 字面量翻译 # diff --git a/App/lib/core/Gen/ExprGenFstr.vp b/App/lib/core/Gen/ExprGenFstr.vp index a006806..92e81ab 100644 --- a/App/lib/core/Gen/ExprGenFstr.vp +++ b/App/lib/core/Gen/ExprGenFstr.vp @@ -13,7 +13,7 @@ import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr import lib.core.Handles.HandlesExprCall as HandlesExprCall -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.VLogger as VLogger import lib.Projectrans.Config as Config import lib.Projectrans.Utils as Utils diff --git a/App/lib/core/Gen/ExprGenMixin.vp b/App/lib/core/Gen/ExprGenMixin.vp index c6730fc..41a5f60 100644 --- a/App/lib/core/Gen/ExprGenMixin.vp +++ b/App/lib/core/Gen/ExprGenMixin.vp @@ -13,12 +13,13 @@ import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr import lib.core.Handles.HandlesExprCall as HandlesExprCall -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.VLogger as VLogger import lib.Projectrans.Config as Config import lib.Projectrans.Utils as Utils import lib.core.Gen.ExprGenBase as ExprGenBase + # ============================================================ # docstring 登记表容量(__doc__ 魔法属性支持) # diff --git a/App/lib/core/Gen/ExprGenName.vp b/App/lib/core/Gen/ExprGenName.vp index ae8f3e9..128e802 100644 --- a/App/lib/core/Gen/ExprGenName.vp +++ b/App/lib/core/Gen/ExprGenName.vp @@ -14,8 +14,8 @@ import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr import lib.core.Handles.HandlesExprCall as HandlesExprCall -import lib.core.StubMerger as StubMerger -import lib.core.StubMergerStore as StubMergerStore +import lib.Stub.StubMerger as StubMerger +import lib.Stub.StubMerger.StubMergerStore as StubMergerStore import lib.core.VLogger as VLogger import lib.Projectrans.Config as Config import lib.Projectrans.Utils as Utils diff --git a/App/lib/core/Gen/ExprGenOps.vp b/App/lib/core/Gen/ExprGenOps.vp index 98e6e7b..194d1d8 100644 --- a/App/lib/core/Gen/ExprGenOps.vp +++ b/App/lib/core/Gen/ExprGenOps.vp @@ -14,7 +14,7 @@ import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr import lib.core.Handles.HandlesExprCall as HandlesExprCall -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.VLogger as VLogger import lib.Projectrans.Config as Config import lib.Projectrans.Utils as Utils diff --git a/App/lib/core/Gen/FuncGenBase.vp b/App/lib/core/Gen/FuncGenBase.vp index 3c331e7..c610322 100644 --- a/App/lib/core/Gen/FuncGenBase.vp +++ b/App/lib/core/Gen/FuncGenBase.vp @@ -11,7 +11,7 @@ import lib.core.VLogger as VLogger import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr import lib.core.Handles.HandlesExprCall as HandlesExprCall - +import lib.core.Gen.CallGenBase as CallGenBase # ============================================================ # FuncGenBase - FuncGenMixin 拆分(阶段 D):函数属性 / 命名 / mangle / create_function 基础工具 diff --git a/App/lib/core/Gen/FuncGenDef.vp b/App/lib/core/Gen/FuncGenDef.vp index 01b6660..c7bf8af 100644 --- a/App/lib/core/Gen/FuncGenDef.vp +++ b/App/lib/core/Gen/FuncGenDef.vp @@ -13,6 +13,7 @@ import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr import lib.core.Handles.HandlesExprCall as HandlesExprCall import lib.core.Handles.ExprCallTable as ExprCallTable +import lib.core.Gen.CallGenBase as CallGenBase # ============================================================ diff --git a/App/lib/core/Gen/GenApi.vp b/App/lib/core/Gen/GenApi.vp index da5b0f9..611d96c 100644 --- a/App/lib/core/Gen/GenApi.vp +++ b/App/lib/core/Gen/GenApi.vp @@ -3,7 +3,7 @@ from stdint import * import ast import lib.Projectrans.Config as Config import lib.Projectrans.Utils as Utils -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.VLogger as VLogger import llvmlite import memhub diff --git a/App/lib/core/Gen/ImportsGenMixin.vp b/App/lib/core/Gen/ImportsGenMixin.vp index 1d4c41a..74d1039 100644 --- a/App/lib/core/Gen/ImportsGenMixin.vp +++ b/App/lib/core/Gen/ImportsGenMixin.vp @@ -9,10 +9,10 @@ import viperlib import stdio import sys import w32.fileio as fileio -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.CompilerFactory as CompilerFactory import lib.core.Handles.HandlesTranslator as HT -import lib.core.StubMergerStore as StubMergerStore +import lib.Stub.StubMerger.StubMergerStore as StubMergerStore # ============================================================ diff --git a/App/lib/core/Gen/TypeGenBase.vp b/App/lib/core/Gen/TypeGenBase.vp index d1ea7ad..74e5549 100644 --- a/App/lib/core/Gen/TypeGenBase.vp +++ b/App/lib/core/Gen/TypeGenBase.vp @@ -10,7 +10,7 @@ import viperlib import stdio import stdlib import lib.core.VLogger as VLogger -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.CompilerFactory as CompilerFactory diff --git a/App/lib/core/Gen/TypeGenCDef.vp b/App/lib/core/Gen/TypeGenCDef.vp index 8db1946..269b429 100644 --- a/App/lib/core/Gen/TypeGenCDef.vp +++ b/App/lib/core/Gen/TypeGenCDef.vp @@ -12,7 +12,7 @@ import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr import lib.core.Handles.HandlesExprCall as HandlesExprCall -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.CompilerFactory as CompilerFactory diff --git a/App/lib/core/Gen/TypeGenCType.vp b/App/lib/core/Gen/TypeGenCType.vp index 9c8dec2..8183b9c 100644 --- a/App/lib/core/Gen/TypeGenCType.vp +++ b/App/lib/core/Gen/TypeGenCType.vp @@ -12,7 +12,7 @@ import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr import lib.core.Handles.HandlesExprCall as HandlesExprCall -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.CompilerFactory as CompilerFactory diff --git a/App/lib/core/Gen/TypeGenErr.vp b/App/lib/core/Gen/TypeGenErr.vp index e67b160..45674e7 100644 --- a/App/lib/core/Gen/TypeGenErr.vp +++ b/App/lib/core/Gen/TypeGenErr.vp @@ -11,7 +11,7 @@ import stdio import stdlib import w32.fileio as fileio import lib.core.VLogger as VLogger -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.CompilerFactory as CompilerFactory import lib.core.Handles.HandlesTranslator as HT diff --git a/App/lib/core/Gen/TypeGenResolve.vp b/App/lib/core/Gen/TypeGenResolve.vp index b110c55..de3d2ad 100644 --- a/App/lib/core/Gen/TypeGenResolve.vp +++ b/App/lib/core/Gen/TypeGenResolve.vp @@ -14,7 +14,7 @@ import lib.core.Handles.HandlesBase as HandlesBase import lib.core.Handles.HandlesTranslator as HT import lib.core.Handles.HandlesExpr as HandlesExpr import lib.core.Handles.HandlesExprCall as HandlesExprCall -import lib.core.StubMerger as StubMerger +import lib.Stub.StubMerger as StubMerger import lib.core.CompilerFactory as CompilerFactory @@ -875,7 +875,6 @@ class TypeGenResolve(TypeGenBase.TypeGenBase): # 导致方法体永远不生成 → GSList[Line].append 等符号只有 declare 无 define → 链接失败。 # 此处 Phase B 且方法体未译时,调用 _specialize_generic_class 走其已注册分支补译方法体。 if trans is not None and trans._declare_only == 0: - import lib.core.Handles.HandlesClassDef as HandlesClassDef gen_spec_entry: GenTypes.StructEntry | t.CPtr = self.Gen.StructGen.find_struct(gen_mangled) if gen_spec_entry is not None and gen_spec_entry.MethodsEmitted == 0: # 错误定位:压入触发特化的调用方帧(注解所在文件+行号), @@ -889,8 +888,6 @@ class TypeGenResolve(TypeGenBase.TypeGenBase): # 未特化:尝试主动触发泛型特化(与 TPC _HandleSubscript 对齐) # 当 trans 可用时,检查是否是泛型模板并触发特化 if trans is not None: - import lib.core.Handles.HandlesClassDef as HandlesClassDef - import lib.core.Handles.HandlesExprCall as HandlesExprCall template_cd_chk: ast.ClassDef | t.CPtr = self.Gen.ClassGenGeneric._find_generic_template(gen_cls_name) if template_cd_chk is not None: type_args_chk: list[str] | t.CPtr = self.Gen.CallGenCtor._extract_type_args_from_slice( @@ -1364,7 +1361,6 @@ class TypeGenResolve(TypeGenBase.TypeGenBase): # 模块限定泛型类: numpy.ndarray[t.CDouble] → 裸类名 ndarray 走泛型特化 # (在 t.CArray / t.Callable 检查之前;模板已注册即视为泛型类) if trans is not None: - import lib.core.Handles.HandlesClassDef as HandlesClassDef if self.Gen.ClassGenGeneric._find_generic_template(arr_at.attr) is not None: return self._resolve_generic_subscript_ty(pool, sub, arr_at.attr, trans, imported_modules, from_imports)