diff --git a/App/lib/core/Handles/HandlesClassDef.vp b/App/lib/core/Handles/HandlesClassDef.vp index 2b93577..cf2a4a7 100644 --- a/App/lib/core/Handles/HandlesClassDef.vp +++ b/App/lib/core/Handles/HandlesClassDef.vp @@ -64,24 +64,26 @@ RENUM_FIELD_PER_VARIANT: t.CDefine = 16 # # 支持 Name(id='CEnum') 和 Attribute(value=Name('t'), attr='CEnum') # ============================================================ -def _is_cenum_base(base_node: ast.AST | t.CPtr) -> int: +def _is_cenum_base(base_node: ast.AST | t.CPtr, + trans: HT.Translator | t.CPtr = None) -> int: """检查 base 节点是否为 t.CEnum,返回 1=是 / 0=否(委托到 gen._is_cenum_base)""" import lib.core.Gen.Generator as Generator g: Generator.Generator | t.CPtr = (Generator.Generator | t.CPtr)(t.CVoid(_g_gen, t.CPtr)) if g is not None: - return g._is_cenum_base(base_node) + return g._is_cenum_base(base_node, trans) return 0 # ============================================================ # _is_enum_class — 检查 ClassDef 是否继承自 t.CEnum # ============================================================ -def _is_enum_class(cd: ast.ClassDef | t.CPtr) -> int: +def _is_enum_class(cd: ast.ClassDef | t.CPtr, + trans: HT.Translator | t.CPtr = None) -> int: """检查 ClassDef 是否继承自 t.CEnum,返回 1=是 / 0=否(委托到 gen._is_enum_class)""" import lib.core.Gen.Generator as Generator g: Generator.Generator | t.CPtr = (Generator.Generator | t.CPtr)(t.CVoid(_g_gen, t.CPtr)) if g is not None: - return g._is_enum_class(cd) + return g._is_enum_class(cd, trans) return 0 @@ -90,24 +92,26 @@ def _is_enum_class(cd: ast.ClassDef | t.CPtr) -> int: # # 支持 Name(id='CUnion') 和 Attribute(value=Name('t'), attr='CUnion') # ============================================================ -def _is_cunion_base(base_node: ast.AST | t.CPtr) -> int: +def _is_cunion_base(base_node: ast.AST | t.CPtr, + trans: HT.Translator | t.CPtr = None) -> int: """检查 base 节点是否为 t.CUnion,返回 1=是 / 0=否(委托到 gen._is_cunion_base)""" import lib.core.Gen.Generator as Generator g: Generator.Generator | t.CPtr = (Generator.Generator | t.CPtr)(t.CVoid(_g_gen, t.CPtr)) if g is not None: - return g._is_cunion_base(base_node) + return g._is_cunion_base(base_node, trans) return 0 # ============================================================ # _is_union_class — 检查 ClassDef 是否继承自 t.CUnion # ============================================================ -def _is_union_class(cd: ast.ClassDef | t.CPtr) -> int: +def _is_union_class(cd: ast.ClassDef | t.CPtr, + trans: HT.Translator | t.CPtr = None) -> int: """检查 ClassDef 是否继承自 t.CUnion,返回 1=是 / 0=否(委托到 gen._is_union_class)""" import lib.core.Gen.Generator as Generator g: Generator.Generator | t.CPtr = (Generator.Generator | t.CPtr)(t.CVoid(_g_gen, t.CPtr)) if g is not None: - return g._is_union_class(cd) + return g._is_union_class(cd, trans) return 0 @@ -116,24 +120,26 @@ def _is_union_class(cd: ast.ClassDef | t.CPtr) -> int: # # 支持 Name(id='REnum') 和 Attribute(value=Name('t'), attr='REnum') # ============================================================ -def _is_crenum_base(base_node: ast.AST | t.CPtr) -> int: +def _is_crenum_base(base_node: ast.AST | t.CPtr, + trans: HT.Translator | t.CPtr = None) -> int: """检查 base 节点是否为 t.REnum,返回 1=是 / 0=否(委托到 gen._is_crenum_base)""" import lib.core.Gen.Generator as Generator g: Generator.Generator | t.CPtr = (Generator.Generator | t.CPtr)(t.CVoid(_g_gen, t.CPtr)) if g is not None: - return g._is_crenum_base(base_node) + return g._is_crenum_base(base_node, trans) return 0 # ============================================================ # _is_renum_class — 检查 ClassDef 是否继承自 t.REnum # ============================================================ -def _is_renum_class(cd: ast.ClassDef | t.CPtr) -> int: +def _is_renum_class(cd: ast.ClassDef | t.CPtr, + trans: HT.Translator | t.CPtr = None) -> int: """检查 ClassDef 是否继承自 t.REnum,返回 1=是 / 0=否(委托到 gen._is_renum_class)""" import lib.core.Gen.Generator as Generator g: Generator.Generator | t.CPtr = (Generator.Generator | t.CPtr)(t.CVoid(_g_gen, t.CPtr)) if g is not None: - return g._is_renum_class(cd) + return g._is_renum_class(cd, trans) return 0