chore(syntax): Test 仓 R1 + R12 迁移

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)。
This commit is contained in:
TermiNexus committed 2026-10-05 21:18:37 +08:00
1 parent f5da836fbb
commit aa5a7e7250
43 files changed
+851 -935

No files matched your search

+18 -18
View File
@@ -9,7 +9,7 @@ import testcheck
# 全局 MBuddy 指针
_mbuddy: memhub.MemBuddy | t.CPtr
_mbuddy: memhub.MemBuddy*
@t.CExport
@@ -28,48 +28,48 @@ def main() -> int:
# 构造模拟 argv: myprog --input test.txt -c 42 --verbose output.dat
argv_buf: bytes = _mbuddy.alloc(8 * 7) # 7 个指针
argv: str | t.CPtr = (str | t.CPtr)(argv_buf)
argv: str* = (str*)(argv_buf)
# argv[0] = "myprog"
s0: bytes = _mbuddy.alloc(16)
string.strcpy(s0, "myprog")
argv0: str | t.CPtr = (str | t.CPtr)(uint64(argv))
argv0: str* = (str*)(uint64(argv))
argv0[0] = s0
# argv[1] = "--input"
s1: bytes = _mbuddy.alloc(16)
string.strcpy(s1, "--input")
argv1: str | t.CPtr = (str | t.CPtr)(uint64(argv) + 8)
argv1: str* = (str*)(uint64(argv) + 8)
argv1[0] = s1
# argv[2] = "test.txt"
s2: bytes = _mbuddy.alloc(16)
string.strcpy(s2, "test.txt")
argv2: str | t.CPtr = (str | t.CPtr)(uint64(argv) + 16)
argv2: str* = (str*)(uint64(argv) + 16)
argv2[0] = s2
# argv[3] = "-c"
s3: bytes = _mbuddy.alloc(8)
string.strcpy(s3, "-c")
argv3: str | t.CPtr = (str | t.CPtr)(uint64(argv) + 24)
argv3: str* = (str*)(uint64(argv) + 24)
argv3[0] = s3
# argv[4] = "42"
s4: bytes = _mbuddy.alloc(8)
string.strcpy(s4, "42")
argv4: str | t.CPtr = (str | t.CPtr)(uint64(argv) + 32)
argv4: str* = (str*)(uint64(argv) + 32)
argv4[0] = s4
# argv[5] = "--verbose"
s5: bytes = _mbuddy.alloc(16)
string.strcpy(s5, "--verbose")
argv5: str | t.CPtr = (str | t.CPtr)(uint64(argv) + 40)
argv5: str* = (str*)(uint64(argv) + 40)
argv5[0] = s5
# argv[6] = "output.dat"
s6: bytes = _mbuddy.alloc(16)
string.strcpy(s6, "output.dat")
argv6: str | t.CPtr = (str | t.CPtr)(uint64(argv) + 48)
argv6: str* = (str*)(uint64(argv) + 48)
argv6[0] = s6
argc: INT = 7
@@ -105,21 +105,21 @@ def main() -> int:
testcheck.section("Test 2: --name=value 语法")
argv2_buf: bytes = _mbuddy.alloc(8 * 3)
argv2: str | t.CPtr = (str | t.CPtr)(argv2_buf)
argv2: str* = (str*)(argv2_buf)
a0: bytes = _mbuddy.alloc(16)
string.strcpy(a0, "myprog")
a0_ptr: str | t.CPtr = (str | t.CPtr)(uint64(argv2))
a0_ptr: str* = (str*)(uint64(argv2))
a0_ptr[0] = a0
a1: bytes = _mbuddy.alloc(32)
string.strcpy(a1, "--input=hello.txt")
a1_ptr: str | t.CPtr = (str | t.CPtr)(uint64(argv2) + 8)
a1_ptr: str* = (str*)(uint64(argv2) + 8)
a1_ptr[0] = a1
a2: bytes = _mbuddy.alloc(16)
string.strcpy(a2, "output2.dat")
a2_ptr: str | t.CPtr = (str | t.CPtr)(uint64(argv2) + 16)
a2_ptr: str* = (str*)(uint64(argv2) + 16)
a2_ptr[0] = a2
args2 = parser.parse_args(3, argv2)
if args2 is not None:
@@ -140,26 +140,26 @@ def main() -> int:
testcheck.section("Test 3: COUNT 计数动作")
argv3_buf: bytes = _mbuddy.alloc(8 * 4)
argv3_arr: str | t.CPtr = (str | t.CPtr)(argv3_buf)
argv3_arr: str* = (str*)(argv3_buf)
b0: bytes = _mbuddy.alloc(8)
string.strcpy(b0, "myprog")
b0_ptr: str | t.CPtr = (str | t.CPtr)(uint64(argv3_arr))
b0_ptr: str* = (str*)(uint64(argv3_arr))
b0_ptr[0] = b0
b1: bytes = _mbuddy.alloc(8)
string.strcpy(b1, "-v")
b1_ptr: str | t.CPtr = (str | t.CPtr)(uint64(argv3_arr) + 8)
b1_ptr: str* = (str*)(uint64(argv3_arr) + 8)
b1_ptr[0] = b1
b2: bytes = _mbuddy.alloc(8)
string.strcpy(b2, "-v")
b2_ptr: str | t.CPtr = (str | t.CPtr)(uint64(argv3_arr) + 16)
b2_ptr: str* = (str*)(uint64(argv3_arr) + 16)
b2_ptr[0] = b2
b3: bytes = _mbuddy.alloc(16)
string.strcpy(b3, "output3.dat")
b3_ptr: str | t.CPtr = (str | t.CPtr)(uint64(argv3_arr) + 24)
b3_ptr: str* = (str*)(uint64(argv3_arr) + 24)
b3_ptr[0] = b3
parser2 = argparse.ArgumentParser("myprog", "Count test", pool=_mbuddy)