This commit is contained in:
2026-06-16 16:09:42 +08:00
commit bffb0cb6b7
644 changed files with 86620 additions and 0 deletions

133
Test/test.py Normal file
View File

@@ -0,0 +1,133 @@
import t, c
# import stdint
MAX_ORDER = 123
print
@t.Object
class ClassObject:
k: t.CInt
def __init__(self, k: t.CInt):
self.k = k
def __enter__(self) -> 'ClassObject':
return c.Deref(self)
def __exit__(self):
self.work()
def work(self):
print(1)
@t.Object
class ClassObject1(ClassObject):
def __init__(self):
super().__init__(123)
ClassObject.__init__(self, 123)
class ClassObject2:
a: t.CInt
b: t.CInt
c: t.CInt
LONGLONG1: t.CTypedef = t.CLong
LONGLONG2: t.CTypedef | t.CLong | t.CLong
LONGLONG3: t.CTypedef = t.CLong | t.CLong
ULONGLONG: t.CTypedef = t.CUnsignedLong | t.CLong
class A:
a: int
class B:
b: int
ccc: list[B, 1212] | t.CPtr = []
ccc[0].b
class memory_block:
f: t.CInt
class __buddy_system(t.CStruct):
free_lists1: list[memory_block, 1] | t.CPtr # 空闲块链表
free_lists1: list[memory_block, 1] | t.CPtr # 空闲块链表
free_lists2: list[memory_block, MAX_ORDER] | t.CPtr # 空闲块链表
free_lists3: list[memory_block, 1 + 1] | t.CPtr # 空闲块链表
free_lists4: list[memory_block, MAX_ORDER + 1] | t.CPtr[t.CArrayPtr[t.CArrayPtr]] # 空闲块链表
total_memory: t.CUInt64T # 总内存大小
used_memory: t.CUInt64T # 已使用内存大小
free_memory: t.CUInt64T # 空闲内存大小
start_addr: t.CVoid | t.CPtr # 内存起始地址
end_addr: t.CVoid | t.CPtr # 内存结束地址
UINT1: t.CTypedef = t.CUnsignedInt
UINT: t.CTypedef | t.CUnsignedInt # int must be 16-bit or 32-bit
BYTE: t.CTypedef | t.CUnsignedChar # char must be 8-bit
WORD: t.CTypedef | t.CUInt16T # 16-bit unsigned
DWORD: t.CTypedef | t.CUInt32T # 32-bit unsigned
QWORD: t.CTypedef | t.CUInt64T # 64-bit unsigned
TCHAR: t.CTypedef | t.CChar
WCHAR: t.CTypedef | WORD # UTF-16 code unit
FSIZE_t: t.CTypedef | DWORD
LBA_t: t.CTypedef | DWORD
def DEF_NAMEBUFF() -> t.CDefine:
lfn: WCHAR | t.CPtr # Pointer to LFN working buffer and directory entry block scratchpad buffer
def add(a: t.CInt, b: t.CInt) -> t.CConst | t.CInt | t.CPtr[t.CPtr]:
return c.Deref(c.Deref((a + b)))
def main(l: t.CInt = 1):
kkkkkkkkkkkk1: UINT1
kkkkkkkkkkkk2: UINT
print(kkkkkkkkkkkk1 + kkkkkkkkkkkkk2)
ssr: ClassObject | t.CPtr = ClassObject(6)
with ClassObject(1) as a:
a.work()
aaa: t.CInt | t.CPtr[t.CPtr]
cursor: t.CConst | t.CChar[112] | t.CArrayPtr[t.CArrayPtr]
k = add(1, 2)
co2: ClassObject2
co22: ClassObject2 = ClassObject2()
co23 = ClassObject2(a=1, b=1)
b: ClassObject | t.CPtr = malloc(ClassObject.__sizeof__())
b = ClassObject(1)
with b as llll:
llll.work()
match (l):
case 1:
print(1)
case 2:
print(2)
case _:
print(3)
if l == 3 and k == 1:
c.Break()
print(4)
c.NoBreak()
match 3:
case 1:
print(1)
case 2:
print(2)
case _:
print(3)
if l == 3 and k == 1:
c.Break()
print(4)
c.NoBreak()
# a := b 格式
UINT(123, t.CPtr).__sizeof__() # enumunion的实例化也和typedef一样
x: t.CInt
if (x := k) and 666:
print(x)
t.CType(123, UINT).__sizeof__()
DEF_NAMEBUFF
len(x)
math_test: t.CInt = 1+1-2+(3*4/2+1-6)/12+9*9
import base64