- 10 个 Handler 类主方法迁入 Gen:Assign/AnnAssign/AugAssign→AssignGenMixin, If/While/For/Return→StmtGenCifMixin,Match→新建 MatchGenMixin(注册 Generator MRO), Imports→ImportsGenMixin;方法体 self.Trans→trans,签名加 trans 首参 - 分派改:StmtGenMixin.translate_stmt 同链 self.translate_xxx + 跨链经 Handles 委托壳 (NoVTable 静态绑定约束);ExprCall 分派改走 ExprCallCall 壳 - 清理:HandlesTranslator 删 11 个 Handler 字段与 _init_state 创建段; StmtGenCifMixin 删 5 个 NewXxxHandle 工厂;main/BuildPipeline 补 HandlesAssign._g_gen 注入 - 委托壳保留:跨 Mixin 桥(Assign/AnnAssign/AugAssign/Match/Imports)待编译器缺陷修复后删
21 lines
839 B
Plaintext
21 lines
839 B
Plaintext
import t, c
|
|
from stdint import *
|
|
import lib.core.Gen.Generator as Generator
|
|
|
|
|
|
# ============================================================
|
|
# ForHandleIter - HandlesFor 拆分(迁移完成,仅保留 _g_gen 单例)
|
|
#
|
|
# P6 机械化迁移:ForHandleIter 全部方法(_handle_ptr_iter/
|
|
# _handle_array_iter/_handle_list_literal_iter/_handle_list_iter/
|
|
# _handle_dict_iter/_handle_oop_iter/_handle_enumerate_iter/
|
|
# _handle_zip_iter)→ StmtGenCifMixin 方法。
|
|
# main/BuildPipeline 仍注入 _g_gen,不可删。
|
|
# ============================================================
|
|
|
|
|
|
# ============================================================
|
|
# 全局 gen 单例(模块级镜像,同 HandlesType/HandlesStruct 模式)
|
|
# ============================================================
|
|
_g_gen: Generator.Generator | t.CPtr = None
|