Files
TransPyC/lib/core/Handles/__init__.py
T
TermiNexus 13a8f6c1b6 feat(coro): 语言内协程 M1——async def + await + coro_run 状态机
TPC 新增协程生成器 AsyncFunctionHandle(lib/core/Handles/HandlesAsyncFunctions.py):
async def 编译为帧结构体 {state, done, ret, 局部变量槽} + create_<name>()(malloc
分配)+ resume_<name>()(switch 状态机,0=SUSPEND/1=DONE)。await 按顶层赋值
切分函数体:创建子帧 -> resume -> 取子帧 ret -> 存父帧槽 -> 父挂起(state 前进);
普通调用 async 函数生成 create(返回帧指针);coro.coro_run 在调用点内联翻译为
resume 循环。vast parser 已支持语法;新增 includes/coro.vp(Coroutine + 占位
运行时)与 Test/CoroTest(期望输出 coro result = 14)。

M1 限制:async 无参数、返回 i32/int;协程体仅顶层 AnnAssign/Assign/Expr/Return;
await 仅顶层赋值形式、子协程假设一次完成(无嵌套挂起);coro_run 依赖本模块
先赋值的协程变量。M2 将支持参数/嵌套 await/控制流。
2026-08-21 12:36:00 +08:00

34 lines
1.4 KiB
Python

"""
Handles 包 - 使用 Mixin 模式组织 Handle 函数
"""
from .HandlesIf import IfHandle
from .HandlesFor import ForHandle
from .HandlesWhile import WhileHandle
from .HandlesAnnAssign import AnnAssignHandle
from .HandlesTypeMerge import HandlesTypeMerge
from .HandlesExpr import ExprHandle
from .HandlesExprUtils import ExprUtils
from .HandlesExprOps import ExprOpsHandle
from .HandlesExprAttr import ExprAttrHandle
from .HandlesExprBuiltin import ExprBuiltinHandle
from .HandlesExprAsm import ExprAsmHandle
from .HandlesExprFormat import ExprFormatHandle
from .HandlesExprLambda import ExprLambdaHandle
from .HandlesExprCall import ExprCallHandle
from .HandlesSpecialCall import CSpecialCallHandle, TSpecialCallHandle
from .HandlesBody import BodyHandle
from .HandlesReturn import ReturnHandle
from .HandlesAssign import AssignHandle
from .HandlesAugAssign import AugAssignHandle
from .HandlesDelete import DeleteHandle
from .HandlesWith import WithHandle
from .HandlesTry import TryHandle
from .HandlesAssert import AssertHandle
from .HandlesRaise import RaiseHandle
from .HandlesMatch import MatchHandle
from .HandlesClassDef import ClassHandle
from .HandlesFunctions import FunctionHandle
from .HandlesImports import ImportHandle
from .HandlesAsyncFunctions import AsyncFunctionHandle