import t, c import memhub # ============================================================ # CompilerFactory - 编译器结构体工厂(对齐 TPC Translator 装配模式) # ============================================================ @t.NoVTable class CompilerFactory: """编译器结构体工厂(持有主池/永久池等共享对象)""" Pool: rowptr[memhub.MemBuddy] # 主内存池(瞬时数据,mark/reset 回收) PermPool: rowptr[memhub.MemBuddy] # 永久内存池(持久数据,从不 reset) # ---- REnum 变体注册表(编译期单例持有,与 perm_pool 的 struct entry 同寿命)---- RenumClassNames: sizet | t.CPtr RenumClassVariantCounts: sizet | t.CPtr RenumVariantNames: sizet | t.CPtr RenumVariantTags: sizet | t.CPtr RenumClassCount: int # ---- REnum 变体字段别名表(同上,必须同寿命;_bind_variant_fields 查字段真实类型)---- RenumAliasClass: sizet | t.CPtr RenumAliasField: sizet | t.CPtr RenumAliasIndex: sizet | t.CPtr RenumAliasTy: sizet | t.CPtr RenumAliasVariant: sizet | t.CPtr RenumAliasCount: int def __init__(self, pool: rowptr[memhub.MemBuddy], perm_pool: rowptr[memhub.MemBuddy]): if self is None: return self.Pool = pool self.PermPool = perm_pool # 全局工厂单例 factory: rowptr[CompilerFactory] = None