修正了种子编译器的错误
This commit is contained in:
42
Test/G4/App/caller1.py
Normal file
42
Test/G4/App/caller1.py
Normal file
@@ -0,0 +1,42 @@
|
||||
import t
|
||||
import stdio
|
||||
import stdlib
|
||||
import memhub
|
||||
from g4node import G4Node, new_g4node
|
||||
|
||||
|
||||
# ============================================================
|
||||
# caller1: 导入 G4Node 并直接访问 Next 字段(不通过访问器)
|
||||
#
|
||||
# 模拟 TransPyV/HandlesExprCall.py 的情况:
|
||||
# 直接访问 n.Next 触发 GEP 指令,若 stub 字段缺失则 GEP 越界
|
||||
# ============================================================
|
||||
|
||||
|
||||
def caller1_make_chain(pool: memhub.MemBuddy | t.CPtr) -> G4Node | t.CPtr:
|
||||
"""创建 3 节点链表,直接访问 Next 字段"""
|
||||
a: G4Node | t.CPtr = new_g4node(pool)
|
||||
b: G4Node | t.CPtr = new_g4node(pool)
|
||||
c: G4Node | t.CPtr = new_g4node(pool)
|
||||
if a is None or b is None or c is None:
|
||||
return None
|
||||
a.IntVal = 100
|
||||
b.IntVal = 200
|
||||
c.IntVal = 300
|
||||
# 直接访问 Next 字段(不通过 g4node_set_next 访问器)
|
||||
a.Next = b
|
||||
b.Next = c
|
||||
return a
|
||||
|
||||
|
||||
def caller1_sum_chain(head: G4Node | t.CPtr) -> t.CInt:
|
||||
"""遍历链表求和,直接访问 Next 字段"""
|
||||
if head is None:
|
||||
return 0
|
||||
total: t.CInt = head.IntVal
|
||||
cur: G4Node | t.CPtr = head
|
||||
# 直接访问 Next 字段(不通过 g4node_get_next 访问器)
|
||||
while cur.Next is not None:
|
||||
cur = cur.Next
|
||||
total = total + cur.IntVal
|
||||
return total
|
||||
36
Test/G4/App/caller2.py
Normal file
36
Test/G4/App/caller2.py
Normal file
@@ -0,0 +1,36 @@
|
||||
import t
|
||||
import stdio
|
||||
import stdlib
|
||||
import memhub
|
||||
from g4node import G4Node, new_g4node
|
||||
|
||||
|
||||
# ============================================================
|
||||
# caller2: 另一个导入 G4Node 的模块
|
||||
#
|
||||
# 增加 G4Node 的跨模块引用次数,触发多模块竞争条件
|
||||
# ============================================================
|
||||
|
||||
|
||||
def caller2_reverse_chain(head: G4Node | t.CPtr) -> G4Node | t.CPtr:
|
||||
"""反转链表,直接访问 Next 字段"""
|
||||
if head is None:
|
||||
return None
|
||||
prev: G4Node | t.CPtr = None
|
||||
cur: G4Node | t.CPtr = head
|
||||
while cur is not None:
|
||||
nxt: G4Node | t.CPtr = cur.Next
|
||||
cur.Next = prev
|
||||
prev = cur
|
||||
cur = nxt
|
||||
return prev
|
||||
|
||||
|
||||
def caller2_count_nodes(head: G4Node | t.CPtr) -> t.CInt:
|
||||
"""计算链表节点数"""
|
||||
count: t.CInt = 0
|
||||
cur: G4Node | t.CPtr = head
|
||||
while cur is not None:
|
||||
count = count + 1
|
||||
cur = cur.Next
|
||||
return count
|
||||
31
Test/G4/App/caller3.py
Normal file
31
Test/G4/App/caller3.py
Normal file
@@ -0,0 +1,31 @@
|
||||
import t
|
||||
import stdio
|
||||
import stdlib
|
||||
import memhub
|
||||
from g4node import G4Node, new_g4node
|
||||
|
||||
|
||||
# ============================================================
|
||||
# caller3: 第三个导入 G4Node 的模块
|
||||
#
|
||||
# 进一步增加跨模块引用,模拟 TransPyV 30+ 模块环境
|
||||
# ============================================================
|
||||
|
||||
|
||||
def caller3_find_tail(head: G4Node | t.CPtr) -> G4Node | t.CPtr:
|
||||
"""找到链表尾部节点,直接访问 Next"""
|
||||
if head is None:
|
||||
return None
|
||||
cur: G4Node | t.CPtr = head
|
||||
while cur.Next is not None:
|
||||
cur = cur.Next
|
||||
return cur
|
||||
|
||||
|
||||
def caller3_append(head: G4Node | t.CPtr, new_node: G4Node | t.CPtr) -> G4Node | t.CPtr:
|
||||
"""在链表末尾追加节点"""
|
||||
if head is None:
|
||||
return new_node
|
||||
tail: G4Node | t.CPtr = caller3_find_tail(head)
|
||||
tail.Next = new_node
|
||||
return head
|
||||
154
Test/G4/App/main.py
Normal file
154
Test/G4/App/main.py
Normal file
@@ -0,0 +1,154 @@
|
||||
import t
|
||||
import stdio
|
||||
import testcheck
|
||||
import stdlib
|
||||
from g4node import G4Node, new_g4node, g4node_get_next, g4node_set_next
|
||||
import memhub
|
||||
import caller1
|
||||
import caller2
|
||||
import caller3
|
||||
|
||||
# ============================================================
|
||||
# G4: 验证 includes 中继承 GSListNode[X] 的类是否会出现
|
||||
# Next 字段缺失或类型降级的问题
|
||||
#
|
||||
# G4Node 类在 includes/g4node.py 中(走 Phase1 路径)
|
||||
# G4Node 有 5 个自有字段 + 1 个继承字段(Next) = 6 字段
|
||||
# caller1/caller2/caller3 模拟 TransPyV 多模块环境
|
||||
# ============================================================
|
||||
|
||||
|
||||
def test_g4node_create():
|
||||
testcheck.section("Test 1: G4Node create (from includes)")
|
||||
arena: bytes = stdlib.malloc(4096)
|
||||
if arena is None:
|
||||
testcheck.check(False, "malloc arena", "FAIL")
|
||||
return
|
||||
pool: memhub.MemBuddy | t.CPtr = memhub.MemBuddy(arena, 4096)
|
||||
n: G4Node | t.CPtr = new_g4node(pool)
|
||||
if n is None:
|
||||
testcheck.check(False, "new_g4node", "FAIL")
|
||||
return
|
||||
n.IntVal = 42
|
||||
v: t.CInt = n.IntVal
|
||||
testcheck.check(v == 42, "G4Node.IntVal = 42", "expect 42")
|
||||
|
||||
|
||||
def test_g4node_next_field():
|
||||
testcheck.section("Test 2: Next field from GSListNode[G4Node]")
|
||||
arena: bytes = stdlib.malloc(4096)
|
||||
if arena is None:
|
||||
testcheck.check(False, "malloc arena", "FAIL")
|
||||
return
|
||||
pool: memhub.MemBuddy | t.CPtr = memhub.MemBuddy(arena, 4096)
|
||||
n1: G4Node | t.CPtr = new_g4node(pool)
|
||||
n2: G4Node | t.CPtr = new_g4node(pool)
|
||||
if n1 is None or n2 is None:
|
||||
testcheck.check(False, "new_g4node", "FAIL")
|
||||
return
|
||||
n1.IntVal = 10
|
||||
n2.IntVal = 20
|
||||
g4node_set_next(n1, n2)
|
||||
next_node: G4Node | t.CPtr = g4node_get_next(n1)
|
||||
if next_node is None:
|
||||
testcheck.check(False, "g4node_get_next", "FAIL")
|
||||
return
|
||||
v: t.CInt = next_node.IntVal
|
||||
testcheck.check(v == 20, "n1.Next.IntVal = 20", "expect 20")
|
||||
|
||||
|
||||
def test_g4node_chain():
|
||||
testcheck.section("Test 3: G4Node chain traversal")
|
||||
arena: bytes = stdlib.malloc(4096)
|
||||
if arena is None:
|
||||
testcheck.check(False, "malloc arena", "FAIL")
|
||||
return
|
||||
pool: memhub.MemBuddy | t.CPtr = memhub.MemBuddy(arena, 4096)
|
||||
a: G4Node | t.CPtr = new_g4node(pool)
|
||||
b: G4Node | t.CPtr = new_g4node(pool)
|
||||
c: G4Node | t.CPtr = new_g4node(pool)
|
||||
if a is None or b is None or c is None:
|
||||
testcheck.check(False, "new_g4node", "FAIL")
|
||||
return
|
||||
a.IntVal = 1
|
||||
b.IntVal = 2
|
||||
c.IntVal = 3
|
||||
g4node_set_next(a, b)
|
||||
g4node_set_next(b, c)
|
||||
sum: t.CInt = a.IntVal
|
||||
p: G4Node | t.CPtr = g4node_get_next(a)
|
||||
sum = sum + p.IntVal
|
||||
p = g4node_get_next(p)
|
||||
sum = sum + p.IntVal
|
||||
testcheck.check(sum == 6, "chain sum = 1+2+3 = 6", "expect 6")
|
||||
|
||||
|
||||
def test_caller1_direct_access():
|
||||
"""caller1: 直接访问 Next 字段(不通过访问器)"""
|
||||
testcheck.section("Test 4: caller1 direct Next access")
|
||||
arena: bytes = stdlib.malloc(8192)
|
||||
if arena is None:
|
||||
testcheck.check(False, "malloc arena", "FAIL")
|
||||
return
|
||||
pool: memhub.MemBuddy | t.CPtr = memhub.MemBuddy(arena, 8192)
|
||||
head: G4Node | t.CPtr = caller1.caller1_make_chain(pool)
|
||||
if head is None:
|
||||
testcheck.check(False, "caller1_make_chain", "FAIL")
|
||||
return
|
||||
total: t.CInt = caller1.caller1_sum_chain(head)
|
||||
stdio.printf("caller1 chain total = %d\n", total)
|
||||
testcheck.check(total == 600, "caller1 sum = 100+200+300 = 600", "expect 600")
|
||||
|
||||
|
||||
def test_caller2_reverse():
|
||||
"""caller2: 反转链表直接访问 Next"""
|
||||
testcheck.section("Test 5: caller2 reverse chain")
|
||||
arena: bytes = stdlib.malloc(8192)
|
||||
if arena is None:
|
||||
testcheck.check(False, "malloc arena", "FAIL")
|
||||
return
|
||||
pool: memhub.MemBuddy | t.CPtr = memhub.MemBuddy(arena, 8192)
|
||||
head: G4Node | t.CPtr = caller1.caller1_make_chain(pool)
|
||||
if head is None:
|
||||
testcheck.check(False, "caller1_make_chain", "FAIL")
|
||||
return
|
||||
count_before: t.CInt = caller2.caller2_count_nodes(head)
|
||||
reversed_head: G4Node | t.CPtr = caller2.caller2_reverse_chain(head)
|
||||
count_after: t.CInt = caller2.caller2_count_nodes(reversed_head)
|
||||
stdio.printf("caller2 count before=%d after=%d\n", count_before, count_after)
|
||||
testcheck.check(count_before == 3 and count_after == 3,
|
||||
"caller2 reverse count OK (3,3)", "caller2 count mismatch")
|
||||
|
||||
|
||||
def test_caller3_append():
|
||||
"""caller3: 追加节点直接访问 Next"""
|
||||
testcheck.section("Test 6: caller3 append node")
|
||||
arena: bytes = stdlib.malloc(8192)
|
||||
if arena is None:
|
||||
testcheck.check(False, "malloc arena", "FAIL")
|
||||
return
|
||||
pool: memhub.MemBuddy | t.CPtr = memhub.MemBuddy(arena, 8192)
|
||||
head: G4Node | t.CPtr = caller1.caller1_make_chain(pool)
|
||||
if head is None:
|
||||
testcheck.check(False, "caller1_make_chain", "FAIL")
|
||||
return
|
||||
extra: G4Node | t.CPtr = new_g4node(pool)
|
||||
if extra is None:
|
||||
testcheck.check(False, "new_g4node", "FAIL")
|
||||
return
|
||||
extra.IntVal = 400
|
||||
head = caller3.caller3_append(head, extra)
|
||||
total: t.CInt = caller1.caller1_sum_chain(head)
|
||||
stdio.printf("caller3 after append total = %d\n", total)
|
||||
testcheck.check(total == 1000, "caller3 append sum = 600+400 = 1000", "expect 1000")
|
||||
|
||||
|
||||
def main() -> t.CInt:
|
||||
testcheck.begin("G4: GSListNode inheritance from includes (Phase1 path)")
|
||||
test_g4node_create()
|
||||
test_g4node_next_field()
|
||||
test_g4node_chain()
|
||||
test_caller1_direct_access()
|
||||
test_caller2_reverse()
|
||||
test_caller3_append()
|
||||
return testcheck.end()
|
||||
53
Test/G4/includes/g4node.py
Normal file
53
Test/G4/includes/g4node.py
Normal file
@@ -0,0 +1,53 @@
|
||||
import t
|
||||
from linkedlist import GSListNode
|
||||
import memhub
|
||||
|
||||
# ============================================================
|
||||
# G4Node: 继承 GSListNode[G4Node] 的测试类
|
||||
#
|
||||
# 这个类在 includes 目录中,会走 Phase1 路径
|
||||
# 模拟 TransPyV 中 Value 类的结构:
|
||||
# - 继承 GSListNode[G4Node] 获取 Next 字段
|
||||
# - 5 个自有字段(与 Value 相同数量)
|
||||
# - @t.NoVTable 装饰器
|
||||
#
|
||||
# 继承展平后应有 6 个字段:Next + 5 自有
|
||||
# 若继承展平失败,只有 5 个字段(缺少 Next)
|
||||
# ============================================================
|
||||
|
||||
@t.NoVTable
|
||||
class G4Node(GSListNode[G4Node]):
|
||||
Ty: t.CPtr # 模拟 Value.Ty
|
||||
Name: t.CPtr # 模拟 Value.Name
|
||||
IsConst: t.CInt # 模拟 Value.IsConst
|
||||
IntVal: t.CInt64T # 模拟 Value.IntVal
|
||||
FloatVal: t.CDouble # 模拟 Value.FloatVal
|
||||
|
||||
def __init__(self):
|
||||
self.Ty = None
|
||||
self.Name = None
|
||||
self.IsConst = 0
|
||||
self.IntVal = 0
|
||||
self.FloatVal = 0.0
|
||||
self.Next = None
|
||||
|
||||
|
||||
# 工厂函数(与 __values.py 中的 new_value 类似)
|
||||
def new_g4node(pool: memhub.MemBuddy | t.CPtr) -> G4Node | t.CPtr:
|
||||
ptr: G4Node | t.CPtr = pool.alloc(48)
|
||||
if ptr:
|
||||
ptr.Ty = None
|
||||
ptr.Name = None
|
||||
ptr.IsConst = 0
|
||||
ptr.IntVal = 0
|
||||
ptr.FloatVal = 0.0
|
||||
ptr.Next = None
|
||||
return ptr
|
||||
|
||||
|
||||
def g4node_get_next(node: G4Node | t.CPtr) -> G4Node | t.CPtr:
|
||||
return node.Next
|
||||
|
||||
|
||||
def g4node_set_next(node: G4Node | t.CPtr, next_node: G4Node | t.CPtr):
|
||||
node.Next = next_node
|
||||
1
Test/G4/output/8569e2ead0d06bb4.deps.json
Normal file
1
Test/G4/output/8569e2ead0d06bb4.deps.json
Normal file
@@ -0,0 +1 @@
|
||||
{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "caller2": "88875f3ba3ace594", "stdlib": "90c53dd6db8d41cf", "caller1": "a45655b992cc8767", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "caller3": "ca0f8dd74e6cb63c", "memhub": "d089e25a15c6f6e0", "g4node": "dbd53aaa91309ba1", "stdint": "f5522571bcce7bcb"}
|
||||
1
Test/G4/output/88875f3ba3ace594.deps.json
Normal file
1
Test/G4/output/88875f3ba3ace594.deps.json
Normal file
@@ -0,0 +1 @@
|
||||
{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "main": "8569e2ead0d06bb4", "stdlib": "90c53dd6db8d41cf", "caller1": "a45655b992cc8767", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "caller3": "ca0f8dd74e6cb63c", "memhub": "d089e25a15c6f6e0", "g4node": "dbd53aaa91309ba1", "stdint": "f5522571bcce7bcb"}
|
||||
1
Test/G4/output/a45655b992cc8767.deps.json
Normal file
1
Test/G4/output/a45655b992cc8767.deps.json
Normal file
@@ -0,0 +1 @@
|
||||
{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "main": "8569e2ead0d06bb4", "caller2": "88875f3ba3ace594", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "caller3": "ca0f8dd74e6cb63c", "memhub": "d089e25a15c6f6e0", "g4node": "dbd53aaa91309ba1", "stdint": "f5522571bcce7bcb"}
|
||||
1
Test/G4/output/ca0f8dd74e6cb63c.deps.json
Normal file
1
Test/G4/output/ca0f8dd74e6cb63c.deps.json
Normal file
@@ -0,0 +1 @@
|
||||
{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "main": "8569e2ead0d06bb4", "caller2": "88875f3ba3ace594", "stdlib": "90c53dd6db8d41cf", "caller1": "a45655b992cc8767", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "g4node": "dbd53aaa91309ba1", "stdint": "f5522571bcce7bcb"}
|
||||
30
Test/G4/project.json
Normal file
30
Test/G4/project.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"$schema": "https://raw.githubusercontent.com/TermiNexus/TransPyC/main/schemas/project-schema.json",
|
||||
"name": "G4",
|
||||
"version": "1.0.0",
|
||||
"source_dir": "./App",
|
||||
"build_dir": "./.tpv_build",
|
||||
"compiler": {
|
||||
"cmd": "llc",
|
||||
"flags": ["-filetype=obj", "-relocation-model=pic"]
|
||||
},
|
||||
"linker": {
|
||||
"cmd": "clang++",
|
||||
"flags": ["-Wl,--allow-multiple-definition", "-Wl,--unresolved-symbols=ignore-in-object-files", "-lmsvcrt", "-lucrt", "-lpthread", "-lmingwex", "-lkernel32", "-luser32", "-latomic"],
|
||||
"output": "G4.exe"
|
||||
},
|
||||
"includes": [
|
||||
"../../includes",
|
||||
"./includes"
|
||||
],
|
||||
"target": {
|
||||
"triple": "x86_64-pc-windows-gnu",
|
||||
"datalayout": "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
||||
},
|
||||
"options": {
|
||||
"slice_level": 3,
|
||||
"sha1_slice_level": 3,
|
||||
"target": "llvm",
|
||||
"strict_mode": true
|
||||
}
|
||||
}
|
||||
31
Test/G4/temp/14d33679f7fadf1f.pyi
Normal file
31
Test/G4/temp/14d33679f7fadf1f.pyi
Normal file
@@ -0,0 +1,31 @@
|
||||
"""
|
||||
Auto-generated Python stub file from testcheck.py
|
||||
Module: testcheck
|
||||
"""
|
||||
|
||||
|
||||
import t, c
|
||||
import stdio
|
||||
from w32.win32console import SetConsoleOutputCP, SetConsoleCP
|
||||
|
||||
CP_UTF8: t.CDefine = 65001
|
||||
_pass_count: t.CExtern | t.CInt
|
||||
_fail_count: t.CExtern | t.CInt
|
||||
_total_pass: t.CExtern | t.CInt
|
||||
_total_fail: t.CExtern | t.CInt
|
||||
|
||||
def begin(name: str) -> t.CInt: pass
|
||||
|
||||
def section(name: str) -> t.CInt: pass
|
||||
|
||||
def ok(msg: str) -> t.CInt: pass
|
||||
|
||||
def fail(msg: str) -> t.CInt: pass
|
||||
|
||||
def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass
|
||||
|
||||
def info(msg: str) -> t.CInt: pass
|
||||
|
||||
def end() -> t.CInt: pass
|
||||
|
||||
def summary() -> t.CInt: pass
|
||||
1
Test/G4/temp/14d33679f7fadf1f.stub.ll.dep
Normal file
1
Test/G4/temp/14d33679f7fadf1f.stub.ll.dep
Normal file
@@ -0,0 +1 @@
|
||||
6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb
|
||||
26
Test/G4/temp/271ea3decb810db2.pyi
Normal file
26
Test/G4/temp/271ea3decb810db2.pyi
Normal file
@@ -0,0 +1,26 @@
|
||||
"""
|
||||
Auto-generated Python stub file from atom.py
|
||||
Module: atom
|
||||
"""
|
||||
|
||||
|
||||
import t, c
|
||||
|
||||
ATOMIC_RELAXED: t.CDefine = 0
|
||||
ATOMIC_CONSUME: t.CDefine = 1
|
||||
ATOMIC_ACQUIRE: t.CDefine = 2
|
||||
ATOMIC_RELEASE: t.CDefine = 3
|
||||
ATOMIC_ACQ_REL: t.CDefine = 4
|
||||
ATOMIC_SEQ_CST: t.CDefine = 5
|
||||
|
||||
def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass
|
||||
|
||||
def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass
|
||||
|
||||
def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass
|
||||
|
||||
def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass
|
||||
|
||||
def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass
|
||||
|
||||
def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass
|
||||
0
Test/G4/temp/271ea3decb810db2.stub.ll.dep
Normal file
0
Test/G4/temp/271ea3decb810db2.stub.ll.dep
Normal file
63
Test/G4/temp/2d39c6c7d3557b3e.pyi
Normal file
63
Test/G4/temp/2d39c6c7d3557b3e.pyi
Normal file
@@ -0,0 +1,63 @@
|
||||
"""
|
||||
Auto-generated Python stub file from linkedlist.py
|
||||
Module: linkedlist
|
||||
"""
|
||||
|
||||
|
||||
import t, c
|
||||
from stdint import *
|
||||
|
||||
@t.NoVTable
|
||||
class LinkedNode:
|
||||
next: 'LinkedNode' | t.CPtr
|
||||
prev: 'LinkedNode' | t.CPtr
|
||||
child: 'LinkedNode' | t.CPtr
|
||||
last_child: 'LinkedNode' | t.CPtr
|
||||
parent: 'LinkedNode' | t.CPtr
|
||||
child_count: t.CSizeT
|
||||
def append(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass
|
||||
def prepend(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass
|
||||
def insert_before(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass
|
||||
def insert_after(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass
|
||||
def remove_child(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass
|
||||
def detach(self: LinkedNode) -> t.CInt: pass
|
||||
def unlink(self: LinkedNode) -> t.CInt: pass
|
||||
def has_children(self: LinkedNode) -> t.CInt: pass
|
||||
def child_at(self: LinkedNode, index: t.CSizeT) -> 'LinkedNode' | t.CPtr: pass
|
||||
def count_children(self: LinkedNode) -> t.CSizeT: pass
|
||||
def first_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass
|
||||
def last_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass
|
||||
@t.NoVTable
|
||||
class SListNode:
|
||||
Next: 'SListNode' | t.CPtr
|
||||
def append(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass
|
||||
def append_after(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass
|
||||
def count(self: SListNode) -> t.CSizeT: pass
|
||||
def at(self: SListNode, index: t.CSizeT) -> 'SListNode' | t.CPtr: pass
|
||||
def remove(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass
|
||||
@t.NoVTable
|
||||
class GSListNode[T]:
|
||||
Next: T | t.CPtr
|
||||
@t.NoVTable
|
||||
class GSList[T]:
|
||||
Head: T | t.CPtr
|
||||
Tail: T | t.CPtr
|
||||
Count: t.CSizeT
|
||||
def __init__(self: GSList) -> t.CInt: pass
|
||||
def append(self: GSList, node: T) -> t.CInt: pass
|
||||
def count(self: GSList) -> t.CSizeT: pass
|
||||
def at(self: GSList, index: t.CSizeT) -> T | t.CPtr: pass
|
||||
@t.NoVTable
|
||||
class GTreeNode[T]:
|
||||
Next: T | t.CPtr
|
||||
Prev: T | t.CPtr
|
||||
Child: T | t.CPtr
|
||||
LastChild: T | t.CPtr
|
||||
Parent: T | t.CPtr
|
||||
Count: t.CSizeT
|
||||
def append(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass
|
||||
def prepend(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass
|
||||
def detach(self: GTreeNode) -> t.CInt: pass
|
||||
def has_children(self: GTreeNode) -> t.CInt: pass
|
||||
def child_at(self: GTreeNode, index: t.CSizeT) -> T | t.CPtr: pass
|
||||
def count_children(self: GTreeNode) -> t.CSizeT: pass
|
||||
1
Test/G4/temp/2d39c6c7d3557b3e.stub.ll.dep
Normal file
1
Test/G4/temp/2d39c6c7d3557b3e.stub.ll.dep
Normal file
@@ -0,0 +1 @@
|
||||
f5522571bcce7bcb
|
||||
28
Test/G4/temp/6f62fe05c5ea1ceb.pyi
Normal file
28
Test/G4/temp/6f62fe05c5ea1ceb.pyi
Normal file
@@ -0,0 +1,28 @@
|
||||
"""
|
||||
Auto-generated Python stub file from stdio.py
|
||||
Module: stdio
|
||||
"""
|
||||
|
||||
|
||||
import t, c
|
||||
|
||||
def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass
|
||||
|
||||
def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass
|
||||
|
||||
def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass
|
||||
|
||||
def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass
|
||||
|
||||
def puts(s: t.CConst | str) -> t.CInt | t.State: pass
|
||||
|
||||
def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass
|
||||
|
||||
def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass
|
||||
|
||||
def fflush(stream: bytes) -> t.CInt | t.State: pass
|
||||
|
||||
|
||||
stdin: t.CExtern | bytes
|
||||
stdout: t.CExtern | bytes
|
||||
stderr: t.CExtern | bytes
|
||||
0
Test/G4/temp/6f62fe05c5ea1ceb.stub.ll.dep
Normal file
0
Test/G4/temp/6f62fe05c5ea1ceb.stub.ll.dep
Normal file
100
Test/G4/temp/7e529fe7a078cfef.pyi
Normal file
100
Test/G4/temp/7e529fe7a078cfef.pyi
Normal file
@@ -0,0 +1,100 @@
|
||||
"""
|
||||
Auto-generated Python stub file from w32.win32base.py
|
||||
Module: w32.win32base
|
||||
"""
|
||||
|
||||
import c
|
||||
|
||||
|
||||
import t
|
||||
from stdint import *
|
||||
|
||||
HANDLE: t.CTypedef = VOIDPTR
|
||||
LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr
|
||||
LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr
|
||||
INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1)
|
||||
NULL: t.CDefine = 0
|
||||
TRUE: t.CDefine = 1
|
||||
FALSE: t.CDefine = 0
|
||||
INFINITE: t.CDefine = 0xFFFFFFFF
|
||||
WAIT_FAILED: t.CDefine = 0xFFFFFFFF
|
||||
WAIT_OBJECT_0: t.CDefine = 0
|
||||
WAIT_TIMEOUT: t.CDefine = 258
|
||||
WAIT_ABANDONED: t.CDefine = 0x80
|
||||
MAX_PATH: t.CDefine = 260
|
||||
ERROR_SUCCESS: t.CDefine = 0
|
||||
ERROR_FILE_NOT_FOUND: t.CDefine = 2
|
||||
ERROR_ACCESS_DENIED: t.CDefine = 5
|
||||
ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122
|
||||
|
||||
class SECURITY_ATTRIBUTES:
|
||||
nLength: ULONG
|
||||
lpSecurityDescriptor: VOIDPTR
|
||||
bInheritHandle: BOOL
|
||||
class OVERLAPPED:
|
||||
Internal: ULONGLONG
|
||||
InternalHigh: ULONGLONG
|
||||
Offset: ULONG
|
||||
OffsetHigh: ULONG
|
||||
hEvent: HANDLE
|
||||
class FILETIME:
|
||||
dwLowDateTime: DWORD
|
||||
dwHighDateTime: DWORD
|
||||
class SYSTEMTIME:
|
||||
wYear: WORD
|
||||
wMonth: WORD
|
||||
wDayOfWeek: WORD
|
||||
wDay: WORD
|
||||
wHour: WORD
|
||||
wMinute: WORD
|
||||
wSecond: WORD
|
||||
wMilliseconds: WORD
|
||||
class GUID:
|
||||
Data1: DWORD
|
||||
Data2: WORD
|
||||
Data3: WORD
|
||||
Data4: BYTEPTR
|
||||
class LARGE_INTEGER:
|
||||
QuadPart: LONGLONG
|
||||
class ULARGE_INTEGER:
|
||||
QuadPart: ULONGLONG
|
||||
|
||||
def GetLastError() -> ULONG | t.State: pass
|
||||
|
||||
def SetLastError(dwErrCode: ULONG) -> t.State: pass
|
||||
|
||||
def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass
|
||||
|
||||
def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass
|
||||
|
||||
def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass
|
||||
|
||||
def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass
|
||||
|
||||
def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass
|
||||
|
||||
def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass
|
||||
|
||||
def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass
|
||||
|
||||
def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass
|
||||
|
||||
def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass
|
||||
|
||||
def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass
|
||||
|
||||
def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass
|
||||
|
||||
def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass
|
||||
|
||||
def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass
|
||||
|
||||
def Sleep(dwMilliseconds: ULONG) -> t.State: pass
|
||||
|
||||
def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass
|
||||
|
||||
def GetTickCount() -> ULONG | t.State: pass
|
||||
|
||||
def GetTickCount64() -> ULONGLONG | t.State: pass
|
||||
|
||||
def GetCommandLineA() -> CHARPTR | t.State: pass
|
||||
1
Test/G4/temp/7e529fe7a078cfef.stub.ll.dep
Normal file
1
Test/G4/temp/7e529fe7a078cfef.stub.ll.dep
Normal file
@@ -0,0 +1 @@
|
||||
f5522571bcce7bcb
|
||||
1
Test/G4/temp/8569e2ead0d06bb4.doc.json
Normal file
1
Test/G4/temp/8569e2ead0d06bb4.doc.json
Normal file
@@ -0,0 +1 @@
|
||||
{"test_caller1_direct_access": "caller1: 直接访问 Next 字段(不通过访问器)", "test_caller2_reverse": "caller2: 反转链表直接访问 Next", "test_caller3_append": "caller3: 追加节点直接访问 Next"}
|
||||
31
Test/G4/temp/8569e2ead0d06bb4.pyi
Normal file
31
Test/G4/temp/8569e2ead0d06bb4.pyi
Normal file
@@ -0,0 +1,31 @@
|
||||
"""
|
||||
Auto-generated Python stub file from main.py
|
||||
Module: main
|
||||
"""
|
||||
|
||||
import c
|
||||
|
||||
|
||||
import t
|
||||
import stdio
|
||||
import testcheck
|
||||
import stdlib
|
||||
from g4node import G4Node, new_g4node, g4node_get_next, g4node_set_next
|
||||
import memhub
|
||||
import caller1
|
||||
import caller2
|
||||
import caller3
|
||||
|
||||
def test_g4node_create() -> t.CInt: pass
|
||||
|
||||
def test_g4node_next_field() -> t.CInt: pass
|
||||
|
||||
def test_g4node_chain() -> t.CInt: pass
|
||||
|
||||
def test_caller1_direct_access() -> t.CInt: pass
|
||||
|
||||
def test_caller2_reverse() -> t.CInt: pass
|
||||
|
||||
def test_caller3_append() -> t.CInt: pass
|
||||
|
||||
def main() -> t.CInt: pass
|
||||
1
Test/G4/temp/88875f3ba3ace594.doc.json
Normal file
1
Test/G4/temp/88875f3ba3ace594.doc.json
Normal file
@@ -0,0 +1 @@
|
||||
{"caller2_reverse_chain": "反转链表,直接访问 Next 字段", "caller2_count_nodes": "计算链表节点数"}
|
||||
17
Test/G4/temp/88875f3ba3ace594.pyi
Normal file
17
Test/G4/temp/88875f3ba3ace594.pyi
Normal file
@@ -0,0 +1,17 @@
|
||||
"""
|
||||
Auto-generated Python stub file from caller2.py
|
||||
Module: caller2
|
||||
"""
|
||||
|
||||
import c
|
||||
|
||||
|
||||
import t
|
||||
import stdio
|
||||
import stdlib
|
||||
import memhub
|
||||
from g4node import G4Node, new_g4node
|
||||
|
||||
def caller2_reverse_chain(head: G4Node | t.CPtr) -> G4Node | t.CPtr: pass
|
||||
|
||||
def caller2_count_nodes(head: G4Node | t.CPtr) -> t.CInt: pass
|
||||
20
Test/G4/temp/90c53dd6db8d41cf.pyi
Normal file
20
Test/G4/temp/90c53dd6db8d41cf.pyi
Normal file
@@ -0,0 +1,20 @@
|
||||
"""
|
||||
Auto-generated Python stub file from stdlib.py
|
||||
Module: stdlib
|
||||
"""
|
||||
|
||||
import c
|
||||
|
||||
|
||||
from stdint import *
|
||||
import t
|
||||
|
||||
def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass
|
||||
|
||||
def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass
|
||||
|
||||
def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass
|
||||
|
||||
def free(p: t.CVoid | t.CPtr) -> t.State: pass
|
||||
|
||||
def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass
|
||||
1
Test/G4/temp/90c53dd6db8d41cf.stub.ll.dep
Normal file
1
Test/G4/temp/90c53dd6db8d41cf.stub.ll.dep
Normal file
@@ -0,0 +1 @@
|
||||
f5522571bcce7bcb
|
||||
1
Test/G4/temp/_phase1_manifest.json
Normal file
1
Test/G4/temp/_phase1_manifest.json
Normal file
@@ -0,0 +1 @@
|
||||
{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G4\\App\\caller1.py": {"sha1": "a45655b992cc8767", "mtime": 1784693010.6757178, "size": 1316}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G4\\App\\caller2.py": {"sha1": "88875f3ba3ace594", "mtime": 1784693014.0848165, "size": 943}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G4\\App\\caller3.py": {"sha1": "ca0f8dd74e6cb63c", "mtime": 1784693017.2667432, "size": 862}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G4\\App\\main.py": {"sha1": "8569e2ead0d06bb4", "mtime": 1784693040.9163246, "size": 5581}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G4\\includes\\g4node.py": {"sha1": "dbd53aaa91309ba1", "mtime": 1784693000.4732063, "size": 1577}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.py": {"sha1": "2d39c6c7d3557b3e", "mtime": 1782895405.2191627, "size": 16032}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}}
|
||||
16
Test/G4/temp/_sha1_map.txt
Normal file
16
Test/G4/temp/_sha1_map.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
14d33679f7fadf1f:includes/testcheck.py
|
||||
271ea3decb810db2:includes/atom.py
|
||||
2d39c6c7d3557b3e:includes/linkedlist.py
|
||||
6f62fe05c5ea1ceb:includes/stdio.py
|
||||
7e529fe7a078cfef:includes/w32\win32base.py
|
||||
8569e2ead0d06bb4:main.py
|
||||
88875f3ba3ace594:caller2.py
|
||||
90c53dd6db8d41cf:includes/stdlib.py
|
||||
a45655b992cc8767:caller1.py
|
||||
ba12ed409d78139e:includes/string.py
|
||||
bbdf3bbd4c3bc28c:includes/w32\win32console.py
|
||||
c9f4be41ca1cc2b4:includes/viperio.py
|
||||
ca0f8dd74e6cb63c:caller3.py
|
||||
d089e25a15c6f6e0:includes/memhub.py
|
||||
dbd53aaa91309ba1:includes/g4node.py
|
||||
f5522571bcce7bcb:includes/stdint.py
|
||||
BIN
Test/G4/temp/_shared_sym.json
Normal file
BIN
Test/G4/temp/_shared_sym.json
Normal file
Binary file not shown.
1
Test/G4/temp/a45655b992cc8767.doc.json
Normal file
1
Test/G4/temp/a45655b992cc8767.doc.json
Normal file
@@ -0,0 +1 @@
|
||||
{"caller1_make_chain": "创建 3 节点链表,直接访问 Next 字段", "caller1_sum_chain": "遍历链表求和,直接访问 Next 字段"}
|
||||
17
Test/G4/temp/a45655b992cc8767.pyi
Normal file
17
Test/G4/temp/a45655b992cc8767.pyi
Normal file
@@ -0,0 +1,17 @@
|
||||
"""
|
||||
Auto-generated Python stub file from caller1.py
|
||||
Module: caller1
|
||||
"""
|
||||
|
||||
import c
|
||||
|
||||
|
||||
import t
|
||||
import stdio
|
||||
import stdlib
|
||||
import memhub
|
||||
from g4node import G4Node, new_g4node
|
||||
|
||||
def caller1_make_chain(pool: memhub.MemBuddy | t.CPtr) -> G4Node | t.CPtr: pass
|
||||
|
||||
def caller1_sum_chain(head: G4Node | t.CPtr) -> t.CInt: pass
|
||||
59
Test/G4/temp/ba12ed409d78139e.pyi
Normal file
59
Test/G4/temp/ba12ed409d78139e.pyi
Normal file
@@ -0,0 +1,59 @@
|
||||
"""
|
||||
Auto-generated Python stub file from string.py
|
||||
Module: string
|
||||
"""
|
||||
|
||||
|
||||
from stdint import *
|
||||
import t, c
|
||||
|
||||
def strcpy(dest: str, src: str) -> str: pass
|
||||
|
||||
def strcat(dest: str, src: str) -> str: pass
|
||||
|
||||
def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass
|
||||
|
||||
def strlen(src: str) -> t.CSizeT | t.CExport: pass
|
||||
|
||||
def strcmp(str1: str, str2: str) -> t.CInt: pass
|
||||
|
||||
def samestr(str1: str, str2: str) -> bool: pass
|
||||
|
||||
def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass
|
||||
|
||||
def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass
|
||||
|
||||
def strchr(s: str, cr: t.CInt) -> str: pass
|
||||
|
||||
def strrchr(s: str, cr: t.CInt) -> str: pass
|
||||
|
||||
def strstr(s: str, needle: str) -> str: pass
|
||||
|
||||
def strspn(s: str, skip: str) -> int: pass
|
||||
|
||||
def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass
|
||||
|
||||
def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass
|
||||
|
||||
def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass
|
||||
|
||||
def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass
|
||||
|
||||
def atoi(src: str) -> t.CInt: pass
|
||||
|
||||
def atoll(src: str) -> t.CInt64T: pass
|
||||
|
||||
def atof(src: str) -> t.CDouble: pass
|
||||
|
||||
def split(s: str, delim: str, result: t.CArray[str]) -> int: pass
|
||||
|
||||
|
||||
ascii_lowercase: t.CExtern | str
|
||||
ascii_uppercase: t.CExtern | str
|
||||
ascii_letters: t.CExtern | str
|
||||
digits: t.CExtern | str
|
||||
hexdigits: t.CExtern | str
|
||||
octdigits: t.CExtern | str
|
||||
punctuation: t.CExtern | str
|
||||
whitespace: t.CExtern | str
|
||||
printable: t.CExtern | str
|
||||
1
Test/G4/temp/ba12ed409d78139e.stub.ll.dep
Normal file
1
Test/G4/temp/ba12ed409d78139e.stub.ll.dep
Normal file
@@ -0,0 +1 @@
|
||||
f5522571bcce7bcb
|
||||
138
Test/G4/temp/bbdf3bbd4c3bc28c.pyi
Normal file
138
Test/G4/temp/bbdf3bbd4c3bc28c.pyi
Normal file
@@ -0,0 +1,138 @@
|
||||
"""
|
||||
Auto-generated Python stub file from w32.win32console.py
|
||||
Module: w32.win32console
|
||||
"""
|
||||
|
||||
import c
|
||||
|
||||
|
||||
import t
|
||||
from stdint import *
|
||||
from w32.win32base import *
|
||||
|
||||
ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001
|
||||
ENABLE_LINE_INPUT: t.CDefine = 0x0002
|
||||
ENABLE_ECHO_INPUT: t.CDefine = 0x0004
|
||||
ENABLE_WINDOW_INPUT: t.CDefine = 0x0008
|
||||
ENABLE_MOUSE_INPUT: t.CDefine = 0x0010
|
||||
ENABLE_INSERT_MODE: t.CDefine = 0x0020
|
||||
ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040
|
||||
ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080
|
||||
ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001
|
||||
ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002
|
||||
ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004
|
||||
DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008
|
||||
ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010
|
||||
FOREGROUND_BLUE: t.CDefine = 0x0001
|
||||
FOREGROUND_GREEN: t.CDefine = 0x0002
|
||||
FOREGROUND_RED: t.CDefine = 0x0004
|
||||
FOREGROUND_INTENSITY: t.CDefine = 0x0008
|
||||
BACKGROUND_BLUE: t.CDefine = 0x0010
|
||||
BACKGROUND_GREEN: t.CDefine = 0x0020
|
||||
BACKGROUND_RED: t.CDefine = 0x0040
|
||||
BACKGROUND_INTENSITY: t.CDefine = 0x0080
|
||||
KEY_EVENT: t.CDefine = 0x0001
|
||||
MOUSE_EVENT: t.CDefine = 0x0002
|
||||
WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004
|
||||
MENU_EVENT: t.CDefine = 0x0008
|
||||
FOCUS_EVENT: t.CDefine = 0x0010
|
||||
|
||||
class COORD:
|
||||
X: SHORT
|
||||
Y: SHORT
|
||||
class SMALL_RECT:
|
||||
Left: SHORT
|
||||
Top: SHORT
|
||||
Right: SHORT
|
||||
Bottom: SHORT
|
||||
class CONSOLE_SCREEN_BUFFER_INFO:
|
||||
dwSize: COORD
|
||||
dwCursorPosition: COORD
|
||||
wAttributes: WORD
|
||||
srWindow: SMALL_RECT
|
||||
dwMaximumWindowSize: COORD
|
||||
class CONSOLE_CURSOR_INFO:
|
||||
dwSize: ULONG
|
||||
bVisible: BOOL
|
||||
class CHAR_INFO:
|
||||
UnicodeChar: WCHAR
|
||||
Attributes: WORD
|
||||
class KEY_EVENT_RECORD:
|
||||
bKeyDown: BOOL
|
||||
wRepeatCount: WORD
|
||||
wVirtualKeyCode: WORD
|
||||
wVirtualScanCode: WORD
|
||||
uChar: WCHAR
|
||||
dwControlKeyState: ULONG
|
||||
class MOUSE_EVENT_RECORD:
|
||||
dwMousePosition: COORD
|
||||
dwButtonState: ULONG
|
||||
dwControlKeyState: ULONG
|
||||
dwEventFlags: ULONG
|
||||
class WINDOW_BUFFER_SIZE_RECORD:
|
||||
dwSize: COORD
|
||||
class INPUT_RECORD:
|
||||
EventType: WORD
|
||||
Event: KEY_EVENT_RECORD
|
||||
|
||||
def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass
|
||||
|
||||
def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass
|
||||
|
||||
def GetConsoleCP() -> UINT | t.State: pass
|
||||
|
||||
def GetConsoleOutputCP() -> UINT | t.State: pass
|
||||
|
||||
def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass
|
||||
|
||||
def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass
|
||||
|
||||
def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass
|
||||
|
||||
def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass
|
||||
|
||||
def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass
|
||||
|
||||
def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass
|
||||
|
||||
def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass
|
||||
|
||||
def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass
|
||||
|
||||
def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass
|
||||
|
||||
def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass
|
||||
|
||||
def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass
|
||||
|
||||
def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass
|
||||
|
||||
def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass
|
||||
|
||||
def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass
|
||||
|
||||
def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass
|
||||
|
||||
def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass
|
||||
|
||||
def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass
|
||||
|
||||
def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass
|
||||
|
||||
def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass
|
||||
|
||||
def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass
|
||||
|
||||
def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass
|
||||
|
||||
def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass
|
||||
|
||||
def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass
|
||||
|
||||
def AllocConsole() -> BOOL | t.State: pass
|
||||
|
||||
def FreeConsole() -> BOOL | t.State: pass
|
||||
|
||||
def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass
|
||||
|
||||
def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass
|
||||
1
Test/G4/temp/bbdf3bbd4c3bc28c.stub.ll.dep
Normal file
1
Test/G4/temp/bbdf3bbd4c3bc28c.stub.ll.dep
Normal file
@@ -0,0 +1 @@
|
||||
7e529fe7a078cfef|f5522571bcce7bcb
|
||||
22
Test/G4/temp/c9f4be41ca1cc2b4.pyi
Normal file
22
Test/G4/temp/c9f4be41ca1cc2b4.pyi
Normal file
@@ -0,0 +1,22 @@
|
||||
"""
|
||||
Auto-generated Python stub file from viperio.py
|
||||
Module: viperio
|
||||
"""
|
||||
|
||||
|
||||
import t, c
|
||||
from stdint import *
|
||||
|
||||
class Buf:
|
||||
data: t.CChar | t.CPtr
|
||||
length: t.CSizeT
|
||||
capacity: t.CSizeT
|
||||
owned: bool
|
||||
def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass
|
||||
def clear(self: Buf) -> t.CInt: pass
|
||||
def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass
|
||||
def cstr(self: Buf) -> t.CChar | t.CPtr: pass
|
||||
def reset(self: Buf) -> t.CInt: pass
|
||||
def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass
|
||||
def __exit__(self: Buf) -> t.CInt: pass
|
||||
def free(self: Buf) -> t.CInt: pass
|
||||
1
Test/G4/temp/c9f4be41ca1cc2b4.stub.ll.dep
Normal file
1
Test/G4/temp/c9f4be41ca1cc2b4.stub.ll.dep
Normal file
@@ -0,0 +1 @@
|
||||
f5522571bcce7bcb
|
||||
1
Test/G4/temp/ca0f8dd74e6cb63c.doc.json
Normal file
1
Test/G4/temp/ca0f8dd74e6cb63c.doc.json
Normal file
@@ -0,0 +1 @@
|
||||
{"caller3_find_tail": "找到链表尾部节点,直接访问 Next", "caller3_append": "在链表末尾追加节点"}
|
||||
17
Test/G4/temp/ca0f8dd74e6cb63c.pyi
Normal file
17
Test/G4/temp/ca0f8dd74e6cb63c.pyi
Normal file
@@ -0,0 +1,17 @@
|
||||
"""
|
||||
Auto-generated Python stub file from caller3.py
|
||||
Module: caller3
|
||||
"""
|
||||
|
||||
import c
|
||||
|
||||
|
||||
import t
|
||||
import stdio
|
||||
import stdlib
|
||||
import memhub
|
||||
from g4node import G4Node, new_g4node
|
||||
|
||||
def caller3_find_tail(head: G4Node | t.CPtr) -> G4Node | t.CPtr: pass
|
||||
|
||||
def caller3_append(head: G4Node | t.CPtr, new_node: G4Node | t.CPtr) -> G4Node | t.CPtr: pass
|
||||
88
Test/G4/temp/d089e25a15c6f6e0.pyi
Normal file
88
Test/G4/temp/d089e25a15c6f6e0.pyi
Normal file
@@ -0,0 +1,88 @@
|
||||
"""
|
||||
Auto-generated Python stub file from memhub.py
|
||||
Module: memhub
|
||||
"""
|
||||
|
||||
|
||||
import t, c
|
||||
from stdint import *
|
||||
import string
|
||||
import atom
|
||||
import viperio
|
||||
import stdio
|
||||
|
||||
MEMHUB_ALIGN: t.CDefine = 8
|
||||
MEMSLAB_MIN_BLOCK: t.CDefine = 16
|
||||
MEMSLAB_BITMAP_BYTES: t.CDefine = 256
|
||||
MEMBUDDY_MIN_BLOCK: t.CDefine = 32
|
||||
MEMBUDDY_MAX_ORDERS: t.CDefine = 32
|
||||
MEMBUDDY_HEADER_SIZE: t.CDefine = 8
|
||||
|
||||
def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass
|
||||
|
||||
def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass
|
||||
|
||||
def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass
|
||||
|
||||
|
||||
@t.CVTable
|
||||
class MemManager:
|
||||
__provides__: list[str] = ['__memmgr__']
|
||||
base: t.CVoid | t.CPtr
|
||||
size: t.CSizeT
|
||||
def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass
|
||||
def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass
|
||||
def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass
|
||||
def reset(self: MemManager) -> t.CInt: pass
|
||||
def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass
|
||||
def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass
|
||||
def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass
|
||||
def __exit__(self: MemManager) -> t.CInt: pass
|
||||
def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass
|
||||
class MemPool(MemManager):
|
||||
offset: t.CSizeT
|
||||
high_water: t.CSizeT
|
||||
def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass
|
||||
def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass
|
||||
def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass
|
||||
def reset(self: MemPool) -> t.CInt: pass
|
||||
class MemSlab(MemManager):
|
||||
block_size: t.CSizeT
|
||||
block_count: t.CSizeT
|
||||
used_count: t.CSizeT
|
||||
free_list: t.CVoid | t.CPtr
|
||||
alloc_map: t.CUInt8T | t.CPtr
|
||||
alloc_map_size: t.CSizeT
|
||||
usable: t.CVoid | t.CPtr
|
||||
usable_size: t.CSizeT
|
||||
def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass
|
||||
def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass
|
||||
def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass
|
||||
def reset(self: MemSlab) -> t.CInt: pass
|
||||
class MemBuddy(MemManager):
|
||||
__provides__: list[str] = ['__mbuddy__', '__memmgr__']
|
||||
max_order: t.CInt
|
||||
free_lists: t.CUInt64T | t.CPtr
|
||||
lock_val: t.CVolatile | t.CInt
|
||||
usable: t.CVoid | t.CPtr
|
||||
usable_size: t.CSizeT
|
||||
def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass
|
||||
def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass
|
||||
def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass
|
||||
def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass
|
||||
def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass
|
||||
def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass
|
||||
def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass
|
||||
def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass
|
||||
def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass
|
||||
def _lock(self: MemBuddy) -> t.CInt: pass
|
||||
def _unlock(self: MemBuddy) -> t.CInt: pass
|
||||
def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass
|
||||
def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass
|
||||
def reset(self: MemBuddy) -> t.CInt: pass
|
||||
def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass
|
||||
@property
|
||||
def mem_size(self: MemBuddy) -> t.CSizeT: pass
|
||||
def stats(self: MemBuddy) -> t.CSizeT: pass
|
||||
def free_count(self: MemBuddy) -> t.CSizeT: pass
|
||||
def self_check(self: MemBuddy) -> t.CInt: pass
|
||||
1
Test/G4/temp/d089e25a15c6f6e0.stub.ll.dep
Normal file
1
Test/G4/temp/d089e25a15c6f6e0.stub.ll.dep
Normal file
@@ -0,0 +1 @@
|
||||
271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb
|
||||
26
Test/G4/temp/dbd53aaa91309ba1.pyi
Normal file
26
Test/G4/temp/dbd53aaa91309ba1.pyi
Normal file
@@ -0,0 +1,26 @@
|
||||
"""
|
||||
Auto-generated Python stub file from g4node.py
|
||||
Module: g4node
|
||||
"""
|
||||
|
||||
import c
|
||||
|
||||
|
||||
import t
|
||||
from linkedlist import GSListNode
|
||||
import memhub
|
||||
|
||||
@t.NoVTable
|
||||
class G4Node(GSListNode[G4Node]):
|
||||
Ty: t.CPtr
|
||||
Name: t.CPtr
|
||||
IsConst: t.CInt
|
||||
IntVal: t.CInt64T
|
||||
FloatVal: t.CDouble
|
||||
def __init__(self: G4Node) -> t.CInt: pass
|
||||
|
||||
def new_g4node(pool: memhub.MemBuddy | t.CPtr) -> G4Node | t.CPtr: pass
|
||||
|
||||
def g4node_get_next(node: G4Node | t.CPtr) -> G4Node | t.CPtr: pass
|
||||
|
||||
def g4node_set_next(node: G4Node | t.CPtr, next_node: G4Node | t.CPtr) -> t.CInt: pass
|
||||
1
Test/G4/temp/dbd53aaa91309ba1.stub.ll.dep
Normal file
1
Test/G4/temp/dbd53aaa91309ba1.stub.ll.dep
Normal file
@@ -0,0 +1 @@
|
||||
271ea3decb810db2|2d39c6c7d3557b3e|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb
|
||||
100
Test/G4/temp/f5522571bcce7bcb.pyi
Normal file
100
Test/G4/temp/f5522571bcce7bcb.pyi
Normal file
@@ -0,0 +1,100 @@
|
||||
"""
|
||||
Auto-generated Python stub file from stdint.py
|
||||
Module: stdint
|
||||
"""
|
||||
|
||||
import c
|
||||
|
||||
|
||||
import t
|
||||
|
||||
INT: t.CTypedef = t.CInt
|
||||
INTPTR: t.CTypedef = t.CInt | t.CPtr
|
||||
BOOL: t.CTypedef = t.CInt
|
||||
UINT: t.CTypedef = t.CUnsignedInt
|
||||
UINTPTR: t.CTypedef = UINT | t.CPtr
|
||||
BYTE: t.CTypedef = t.CUnsignedChar
|
||||
BYTEPTR: t.CTypedef = BYTE | t.CPtr
|
||||
WORD: t.CTypedef = t.CUInt16T
|
||||
DWORD: t.CTypedef = t.CUInt32T
|
||||
QWORD: t.CTypedef = t.CUInt64T
|
||||
TCHAR: t.CTypedef = t.CChar
|
||||
CHARLIST: t.CTypedef = str | t.CPtr
|
||||
VOID: t.CTypedef = t.CVoid
|
||||
SHORT: t.CTypedef = t.CShort
|
||||
SHORTPTR: t.CTypedef = t.CShort | t.CPtr
|
||||
USHORT: t.CTypedef = t.CUnsignedShort
|
||||
USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr
|
||||
LONGLONG: t.CTypedef = t.CLongLong
|
||||
ULONGLONG: t.CTypedef = t.CUnsignedLongLong
|
||||
LONG: t.CTypedef = t.CLong
|
||||
ULONG: t.CTypedef = t.CUnsignedLong
|
||||
WCHAR: t.CTypedef = WORD
|
||||
WCHARPTR: t.CTypedef = WORD | t.CPtr
|
||||
CHARPTR: t.CTypedef = t.CChar | t.CPtr
|
||||
FSIZE_t: t.CTypedef = DWORD
|
||||
LBA_t: t.CTypedef = DWORD
|
||||
VOIDPTR: t.CTypedef = t.CVoid | t.CPtr
|
||||
FLOAT: t.CTypedef = t.CFloat
|
||||
DOUBLE: t.CTypedef = t.CDouble
|
||||
FLOAT8: t.CTypedef = t.CFloat8T
|
||||
FLOAT16: t.CTypedef = t.CFloat16T
|
||||
FLOAT32: t.CTypedef = t.CFloat32T
|
||||
FLOAT64: t.CTypedef = t.CFloat64T
|
||||
FLOAT128: t.CTypedef = t.CFloat128T
|
||||
INT8: t.CTypedef = t.CInt8T
|
||||
INT16: t.CTypedef = t.CInt16T
|
||||
INT32: t.CTypedef = t.CInt32T
|
||||
INT64: t.CTypedef = t.CInt64T
|
||||
UINT8: t.CTypedef = t.CUInt8T
|
||||
UINT16: t.CTypedef = t.CUInt16T
|
||||
UINT32: t.CTypedef = t.CUInt32T
|
||||
UINT64: t.CTypedef = t.CUInt64T
|
||||
INT8PTR: t.CTypedef = t.CInt8T | t.CPtr
|
||||
INT16PTR: t.CTypedef = t.CInt16T | t.CPtr
|
||||
INT32PTR: t.CTypedef = t.CInt32T | t.CPtr
|
||||
INT64PTR: t.CTypedef = t.CInt64T | t.CPtr
|
||||
UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr
|
||||
UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr
|
||||
UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr
|
||||
UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr
|
||||
CHAR8: t.CTypedef = t.CChar8T
|
||||
CHAR16: t.CTypedef = t.CChar16T
|
||||
CHAR32: t.CTypedef = t.CChar32T
|
||||
CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr
|
||||
CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr
|
||||
CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr
|
||||
i8: t.CTypedef = t.CInt8T
|
||||
i16: t.CTypedef = t.CInt16T
|
||||
i32: t.CTypedef = t.CInt32T
|
||||
i64: t.CTypedef = t.CInt64T
|
||||
u8: t.CTypedef = t.CUInt8T
|
||||
u16: t.CTypedef = t.CUInt16T
|
||||
u32: t.CTypedef = t.CUInt32T
|
||||
u64: t.CTypedef = t.CUInt64T
|
||||
SIZE_T: t.CTypedef = t.CSizeT
|
||||
SSIZE_T: t.CTypedef = t.CPtrDiffT
|
||||
PTRDIFF_T: t.CTypedef = t.CPtrDiffT
|
||||
int8_t: t.CTypedef = t.CInt8T
|
||||
int16_t: t.CTypedef = t.CInt16T
|
||||
int32_t: t.CTypedef = t.CInt32T
|
||||
int64_t: t.CTypedef = t.CInt64T
|
||||
uint8_t: t.CTypedef = t.CUInt8T
|
||||
uint16_t: t.CTypedef = t.CUInt16T
|
||||
uint32_t: t.CTypedef = t.CUInt32T
|
||||
uint64_t: t.CTypedef = t.CUInt64T
|
||||
size_t: t.CTypedef = t.CSizeT
|
||||
ssize_t: t.CTypedef = t.CPtrDiffT
|
||||
ptrdiff_t: t.CTypedef = t.CPtrDiffT
|
||||
intptr_t: t.CTypedef = t.CIntPtrT
|
||||
uintptr_t: t.CTypedef = t.CUIntPtrT
|
||||
wchar_t: t.CTypedef = t.CWCharT
|
||||
char8_t: t.CTypedef = t.CChar8T
|
||||
char16_t: t.CTypedef = t.CChar16T
|
||||
char32_t: t.CTypedef = t.CChar32T
|
||||
float8_t: t.CTypedef = t.CFloat8T
|
||||
float16_t: t.CTypedef = t.CFloat16T
|
||||
float32_t: t.CTypedef = t.CFloat32T
|
||||
float64_t: t.CTypedef = t.CFloat64T
|
||||
float128_t: t.CTypedef = t.CFloat128T
|
||||
_Bool: t.CTypedef = t.CBool
|
||||
0
Test/G4/temp/f5522571bcce7bcb.stub.ll.dep
Normal file
0
Test/G4/temp/f5522571bcce7bcb.stub.ll.dep
Normal file
Reference in New Issue
Block a user