R1:T | t.CPtr -> T*(40 文件 / 1121 处;含多级 **、强转位 (T*)(x)、下标内 list[AST*]);引号前向引用 'Rect' | t.CPtr 26 处按例外保留,T | t.CPtr | t.State 25 处因 T* 后不能接 | 保持原联合写法。 R12:i = 0 + while i < N: + 尾 i += 1 -> or i in range(N):(10 文件 / 42 处;含 <= -> range(EXPR + 1)、带注解初始化 i: int = 0、尾 i = i + 1)。余 20 处经守卫判定不可安全改写(复合条件 1、尾部非自增 8、体内重绑定/continue 5、while-else 2、循环后仍被读取 2、找不到初始化 2)。
39 lines
906 B
Plaintext
39 lines
906 B
Plaintext
from stdint import *
|
|
import w32.win32console
|
|
import t, c
|
|
from t import CInt, CExport
|
|
import memhub
|
|
import stdlib
|
|
import sys
|
|
import os
|
|
import os._win32
|
|
import os._posix
|
|
import os.path
|
|
import shutil
|
|
import subprocess
|
|
import syslibtest_impl
|
|
|
|
|
|
# MBuddy arena 大小:1MB
|
|
define ARENA_SIZE = 1048576
|
|
|
|
|
|
def main() -> CInt | CExport:
|
|
w32.win32console.SetConsoleCP(65001)
|
|
w32.win32console.SetConsoleOutputCP(65001)
|
|
|
|
# 初始化全局 MBuddy 内存分配器
|
|
arena: bytes = stdlib.malloc(ARENA_SIZE)
|
|
mbuddy_obj: memhub.MemBuddy* = memhub.MemBuddy(arena, ARENA_SIZE)
|
|
|
|
# 将 MBuddy 对象赋值给所有需要内存分配的模块
|
|
sys._mbuddy = mbuddy_obj
|
|
os._mbuddy = mbuddy_obj
|
|
os._win32._mbuddy = mbuddy_obj
|
|
os._posix._mbuddy = mbuddy_obj
|
|
os.path._mbuddy = mbuddy_obj
|
|
shutil._mbuddy = mbuddy_obj
|
|
subprocess._mbuddy = mbuddy_obj
|
|
|
|
return syslibtest_impl.run()
|