修正了种子编译器的错误
This commit is contained in:
@@ -1 +0,0 @@
|
||||
{"_register_cexport_from_funcdef": "预注册 CExport/State 函数到全局表(仅注册,不生成 IR)", "translate_children": "遍历 tree.children 并翻译每个子节点\n\n Args:\n trans: 翻译器(含所有共享状态)\n tree: AST 模块节点\n\n Returns:\n t.CInt: 新增的变量数\n ", "handle_module_level_var": "处理模块级变量声明,创建全局变量", "create_wrapper_main": "创建包装 main 函数并翻译所有顶层语句\n\n Args:\n trans: 翻译器(含所有共享状态)\n tree: AST 模块节点\n i32_ty: i32 LLVMType\n\n Returns:\n t.CInt: 新增的变量数\n "}
|
||||
@@ -1,31 +0,0 @@
|
||||
"""
|
||||
Auto-generated Python stub file from lib.core.Handles.HandlesMain.py
|
||||
Module: lib.core.Handles.HandlesMain
|
||||
"""
|
||||
|
||||
|
||||
import t, c
|
||||
from stdint import *
|
||||
import ast
|
||||
import llvmlite
|
||||
import memhub
|
||||
import string
|
||||
import stdio
|
||||
import viperlib
|
||||
import lib.core.Handles.HandlesTranslator as HT
|
||||
import lib.core.Handles.HandlesVar as HandlesVar
|
||||
import lib.core.Handles.HandlesExprCall as HandlesExprCall
|
||||
import lib.core.Handles.HandlesImports as HandlesImports
|
||||
import lib.core.Handles.HandlesBody as HandlesBody
|
||||
import lib.core.Handles.HandlesFunctions as HandlesFunctions
|
||||
import lib.core.Handles.HandlesType as HandlesType
|
||||
import lib.core.Handles.HandlesClassDef as HandlesClassDef
|
||||
import lib.core.Handles.HandlesAnnAssign as HandlesAnnAssign
|
||||
|
||||
def _register_cexport_from_funcdef(trans: HT.Translator | t.CPtr, node: ast.AST | t.CPtr) -> int: pass
|
||||
|
||||
def translate_children(trans: HT.Translator | t.CPtr, tree: ast.AST | t.CPtr) -> int: pass
|
||||
|
||||
def handle_module_level_var(trans: HT.Translator | t.CPtr, node: ast.AST | t.CPtr) -> int: pass
|
||||
|
||||
def create_wrapper_main(trans: HT.Translator | t.CPtr, tree: ast.AST | t.CPtr, i32_ty: llvmlite.LLVMType | t.CPtr) -> int: pass
|
||||
@@ -1 +0,0 @@
|
||||
{"extract_func_attrs": "从 decorator_list 提取 c.Attribute 属性,返回 LLVM IR 属性字符串", "_get_attr_name_from_node": "从 AST 节点提取属性名\n\n 支持:\n - Call(func=Attribute(...)): t.attr.always_inline() -> \"always_inline\"\n - Attribute: t.attr.packed -> \"packed\"\n - Attribute(t.attr.llvm.xxx): t.attr.llvm.nounwind -> \"nounwind\"\n ", "_append_llvm_attr": "将属性名映射到 LLVM 属性名并追加到缓冲区\n\n 返回 1 表示已追加,0 表示不支持该属性\n ", "_append_str": "将字符串追加到 buf 末尾(用 strlen+strcpy 模拟 strcat)", "_mangle_name": "为任意名称添加 SHA1 前缀(不做 main/export 检查)", "_mangle_name_with_sha1": "用指定 SHA1 为名称添加前缀(不做 main/export 检查)", "_mangle_func_name": "为函数名添加 SHA1 前缀(检查 main/export)", "forward_declare_functions": "预扫描所有顶层 FunctionDef,创建前向声明", "translate_function_def": "翻译函数定义,返回新增的变量数(通常为 0,函数定义不增加当前作用域变量)", "translate_nested_function_def": "翻译嵌套函数定义:提升为顶层函数 + 创建闭包", "create_function": "创建 LLVM 函数并添加参数"}
|
||||
@@ -1,45 +0,0 @@
|
||||
"""
|
||||
Auto-generated Python stub file from lib.core.Handles.HandlesFunctions.py
|
||||
Module: lib.core.Handles.HandlesFunctions
|
||||
"""
|
||||
|
||||
|
||||
import t, c
|
||||
from stdint import *
|
||||
import ast
|
||||
import llvmlite
|
||||
import memhub
|
||||
import string
|
||||
import viperlib
|
||||
import stdio
|
||||
import stdlib
|
||||
import lib.core.Handles.HandlesTranslator as HT
|
||||
import lib.core.Handles.HandlesVar as HandlesVar
|
||||
import lib.core.Handles.HandlesExprCall as HandlesExprCall
|
||||
import lib.core.Handles.HandlesType as HandlesType
|
||||
import lib.core.Handles.HandlesExpr as HandlesExpr
|
||||
import lib.core.Handles.HandlesBody as HandlesBody
|
||||
import lib.core.Handles.HandlesNonlocal as HandlesNonlocal
|
||||
import lib.core.Handles.HandlesImports as HandlesImports
|
||||
|
||||
def extract_func_attrs(pool: memhub.MemBuddy | t.CPtr, decorator_list: list[ast.AST | t.CPtr] | t.CPtr, imported_modules: str) -> t.CChar | t.CPtr: pass
|
||||
|
||||
def _get_attr_name_from_node(node: ast.AST | t.CPtr) -> str: pass
|
||||
|
||||
def _append_llvm_attr(attrs_buf: t.CChar | t.CPtr, attr_name: str) -> int: pass
|
||||
|
||||
def _append_str(buf: t.CChar | t.CPtr, s: str) -> None: pass
|
||||
|
||||
def _mangle_name(trans: HT.Translator | t.CPtr, name: str) -> str: pass
|
||||
|
||||
def _mangle_name_with_sha1(sha1: str, name: str) -> str: pass
|
||||
|
||||
def _mangle_func_name(trans: HT.Translator | t.CPtr, name: str, has_export: int) -> str: pass
|
||||
|
||||
def forward_declare_functions(trans: HT.Translator | t.CPtr, tree: ast.AST | t.CPtr) -> int: pass
|
||||
|
||||
def translate_function_def(trans: HT.Translator | t.CPtr, node: ast.AST | t.CPtr) -> int: pass
|
||||
|
||||
def translate_nested_function_def(trans: HT.Translator | t.CPtr, node: ast.AST | t.CPtr) -> int: pass
|
||||
|
||||
def create_function(pool: memhub.MemBuddy | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, name: str, args_node: ast.AST | t.CPtr, ret_ty: llvmlite.LLVMType | t.CPtr) -> llvmlite.Function | t.CPtr: pass
|
||||
@@ -1 +0,0 @@
|
||||
{"Load_project_config": "加载工程配置文件(project.vpj)\n\n Args:\n path: 配置文件路径\n\n Returns:\n 0 表示成功,非 0 表示失败\n ", "_join_flags_array": "将 JSON 字符串数组拼接成空格分隔的字符串\n\n 用于 linker.flags 和 compiler.flags 数组。\n 用 while + 索引遍历,避免 list 迭代器 bug。\n\n Args:\n flags_val: JsonValue,应为字符串数组\n\n Returns:\n 空格分隔的字符串,或 None 如果 flags_val 为 None 或非数组或空数组\n ", "_join_path": "将相对路径与 project_dir 拼接为绝对路径\n\n - ./App + Test → Test/App\n - ./temp + Test → Test/temp\n - ../includes + Test → Test/../includes(OS 解析为 includes)\n - 绝对路径保持不变\n - None 返回 None\n ", "resolve_paths": "解析并规范化工程路径(src/temp/output/includes)\n\n 将 project.vpj 中的相对路径(以 ./ 开头)转换为基于 project_dir 的路径。\n\n Args:\n project_dir: 工程根目录(project.vpj 所在目录)\n\n Returns:\n 0 表示成功,非 0 表示失败\n ", "get_includes_binary_dir": "获取 includes.binary 目录路径(includes 目录 + .binary 后缀)\n\n includes 目录如 ../includes,则 includes.binary 为 ../includes.binary\n ", "print_config": "打印当前配置(调试用)"}
|
||||
@@ -1,44 +0,0 @@
|
||||
"""
|
||||
Auto-generated Python stub file from lib.Projectrans.Config.py
|
||||
Module: lib.Projectrans.Config
|
||||
"""
|
||||
|
||||
|
||||
import t, c
|
||||
from stdint import *
|
||||
import memhub
|
||||
import string
|
||||
import stdio
|
||||
import viperlib
|
||||
from json.__parser import parse as json_parse
|
||||
from json import JsonValue, JSON_OBJECT, JSON_INT
|
||||
import w32.fileio as fileio
|
||||
|
||||
_mbuddy: t.CExtern | memhub.MemManager | t.CPtr
|
||||
SourceDir: t.CExtern | str
|
||||
TempDir: t.CExtern | str
|
||||
OutputDir: t.CExtern | str
|
||||
ProjectName: t.CExtern | str
|
||||
ProjectVersion: t.CExtern | str
|
||||
CompilerCmd: t.CExtern | str
|
||||
CompilerFlags: t.CExtern | str
|
||||
LinkerCmd: t.CExtern | str
|
||||
LinkerFlags: t.CExtern | str
|
||||
LinkerOutput: t.CExtern | str
|
||||
TargetTriple: t.CExtern | str
|
||||
TargetDataLayout: t.CExtern | str
|
||||
SliceLevel: t.CExtern | t.CInt
|
||||
StrictMode: t.CExtern | t.CInt
|
||||
IncludesDir: t.CExtern | str
|
||||
|
||||
def Load_project_config(path: str) -> int: pass
|
||||
|
||||
def _join_flags_array(flags_val: JsonValue | t.CPtr) -> str: pass
|
||||
|
||||
def _join_path(rel: str, project_dir: str) -> str: pass
|
||||
|
||||
def resolve_paths(project_dir: str) -> int: pass
|
||||
|
||||
def get_includes_binary_dir() -> str: pass
|
||||
|
||||
def print_config() -> t.CInt: pass
|
||||
@@ -1 +0,0 @@
|
||||
{"SrcFileEntry": "源文件条目", "_ScanDirForPyFiles": "递归扫描目录,收集 .py 文件到 entries,返回新的 file_count", "RunMultiFileProject": "多文件项目编译\n\n Returns: 0 成功,非 0 失败\n "}
|
||||
@@ -1,42 +0,0 @@
|
||||
"""
|
||||
Auto-generated Python stub file from lib.core.Phase2.py
|
||||
Module: lib.core.Phase2
|
||||
"""
|
||||
|
||||
|
||||
import t, c
|
||||
from stdint import *
|
||||
import stdio
|
||||
import string
|
||||
import stdlib
|
||||
import memhub
|
||||
import viperlib
|
||||
import w32.fileio as fileio
|
||||
import w32.win32file
|
||||
import w32.win32base
|
||||
import sys
|
||||
import ast
|
||||
import llvmlite
|
||||
import subprocess
|
||||
import argparse
|
||||
import lib.core.VLogger as VLogger
|
||||
import lib.core.Handles.HandlesTranslator as HandlesTranslator
|
||||
import lib.core.Handles.HandlesExprCall as HandlesExprCall
|
||||
import lib.core.Handles.HandlesImports as HandlesImports
|
||||
import lib.core.BuildPipeline as BuildPipeline
|
||||
import lib.core.StubMerger as StubMerger
|
||||
import lib.Projectrans.Utils as Utils
|
||||
import lib.Projectrans.Config as Config
|
||||
|
||||
_mbuddy: t.CExtern | memhub.MemManager | t.CPtr
|
||||
SRC_BUF_SIZE: t.CDefine = 1048576
|
||||
MAX_SRC_FILES: t.CDefine = 64
|
||||
|
||||
@t.NoVTable
|
||||
class SrcFileEntry:
|
||||
Path: str
|
||||
Sha1: str
|
||||
|
||||
def _ScanDirForPyFiles(mb: memhub.MemBuddy | t.CPtr, dir_path: str, entries: SrcFileEntry | t.CPtr, entry_size: t.CSizeT, file_count: int, max_files: int) -> int: pass
|
||||
|
||||
def RunMultiFileProject(mb: memhub.MemBuddy | t.CPtr, source_dir: str, temp_dir: str, output_dir: str, cc_cmd: str, cc_flags: str, linker_cmd: str, linker_flags: str, linker_output: str, includes_binary_dir: str, includes_dir: str, do_phase1: int, do_phase2: int, log: VLogger.Logger | t.CPtr, args: argparse.ParsedArgs | t.CPtr) -> int: pass
|
||||
File diff suppressed because one or more lines are too long
@@ -1,4 +1,3 @@
|
||||
001c1416e7a7dc50:lib\core\Handles\HandlesMain.py
|
||||
0035c95a18d4f8e8:includes/w32\fileio.py
|
||||
02885f6f134079c2:lib\core\Handles\HandlesVar.py
|
||||
067c78e9f121dce3:includes/w32\win32process.py
|
||||
@@ -7,30 +6,29 @@
|
||||
0c212981c180e7fb:includes/ast\lexer.py
|
||||
0c56128647a0b845:lib\core\Handles\HandlesType.py
|
||||
0df65b8ed15664b0:includes/hashlib\__sha1.py
|
||||
159967284b0392a8:lib\core\Handles\HandlesExpr.py
|
||||
15f1ded02f3aa5bc:includes/llvmlite\__types.py
|
||||
19f8024d10c828e8:includes/hashlib\__md5.py
|
||||
20cd49775c100a38:includes/json\__writer.py
|
||||
21a7fcfc665f75ef:includes/llvmlite\__module.py
|
||||
21fffba3315e81b4:lib\core\VLogger.py
|
||||
240a9a4157959a9f:includes/json\__parser.py
|
||||
2624f814f0426f7d:lib\Projectrans\Config.py
|
||||
271ea3decb810db2:includes/atom.py
|
||||
2998b8f78d7022bf:lib\core\Handles\HandlesTranslator.py
|
||||
2d39c6c7d3557b3e:includes/linkedlist.py
|
||||
2da636c61863c815:includes/subprocess.py
|
||||
2ed380190e9df89e:lib\core\Handles\HandlesAnnAssign.py
|
||||
34548789d646f432:includes/ast\__init__.py
|
||||
39daf57c7d4c5381:lib\constants\config.py
|
||||
3a5e6e9aa900b2ca:lib\includes\t.py
|
||||
3d3edda4a4e6c08b:lib\core\Handles\HandlesAssign.py
|
||||
4020cac9bab5e9f1:lib\core\Handles\HandlesFunctions.py
|
||||
4337fb260448bbe2:includes/ast\astaux.py
|
||||
47767b5026a8ee15:includes/ast\exprs.py
|
||||
48fa8cc758d3826b:lib\core\Handles\HandlesFor.py
|
||||
49cf633017627a4a:lib\Projectrans\Config.py
|
||||
4dd6b3f1427d1cc5:includes/ast\match.py
|
||||
51f0144d6e8188d9:lib\core\Handles\HandlesWhile.py
|
||||
54014f6c53e9640b:lib\core\Handles\HandlesStruct.py
|
||||
541a090dde0cc1ba:lib\core\Handles\HandlesAugAssign.py
|
||||
560d283cc2aa0a7e:lib\core\BuildPipeline.py
|
||||
57288496f7c2d1ad:includes/json\__init__.py
|
||||
5dab8cb390496d22:includes/ast\base.py
|
||||
6503c97dde0c79c4:includes/posix.py
|
||||
@@ -38,13 +36,14 @@
|
||||
668790e6c9efdbae:includes/_list.py
|
||||
66de93aaeebc0601:lib\core\Handles\HandlesIf.py
|
||||
6b3bc463fd044545:includes/llvmlite\__verify.py
|
||||
6d4e0608efefb78b:lib\StubGen\Converter.py
|
||||
6f62fe05c5ea1ceb:includes/stdio.py
|
||||
6ff26590374ae6fc:includes/hashlib\__sha512.py
|
||||
71e0a3ffcb3ebfad:includes/stdarg.py
|
||||
754640ce30cfebcc:includes/memhub.py
|
||||
78bbe886bbe5ca8f:lib\core\Handles\HandlesImports.py
|
||||
7e260c14d2712119:lib\core\Phase2.py
|
||||
791eb22373fae4b7:lib\core\StubMerger.py
|
||||
7e529fe7a078cfef:includes/w32\win32base.py
|
||||
7ef6624cd9949048:lib\core\IncludesScanner.py
|
||||
81eb28ba912467a6:lib\core\Handles\HandlesBody.py
|
||||
83ba314b4637eec9:lib\core\Handles\HandlesBase.py
|
||||
888ea5bd6ab516ae:lib\Projectrans\Utils.py
|
||||
@@ -52,32 +51,30 @@
|
||||
8f12094c840be06a:lib\__init__.py
|
||||
90c53dd6db8d41cf:includes/stdlib.py
|
||||
93c1d18e35d188d6:includes/platmacro.py
|
||||
9467b36736d844bd:lib\core\Phase2.py
|
||||
946e087da91aaada:includes/llvmlite\__builder.py
|
||||
9474791561654346:includes/string.py
|
||||
950028de389b7a7b:main.py
|
||||
95394ca8da0f655a:includes/llvmlite\__init__.py
|
||||
959faeab0256d578:lib\core\Handles\HandlesFunctions.py
|
||||
96837bcc64032444:includes/hashlib\__init__.py
|
||||
a534cf73df0ccaaf:lib\core\Handles\HandlesClassDef.py
|
||||
aba439b7882ad9d6:includes/argparse.py
|
||||
ae0cc890f657076d:lib\core\Handles\HandlesExpr.py
|
||||
af9484a65085bf4b:lib\core\Handles\HandlesNonlocal.py
|
||||
b29b80b6106e4be7:lib\core\Handles\HandlesExprCall.py
|
||||
b547ac4f380bddb6:includes/ast\tokens.py
|
||||
b5a965302cded36b:includes/sys.py
|
||||
b5d05dbd7fee36ef:lib\core\StubMerger.py
|
||||
b8c66c8ff44eb874:includes/hashtable.py
|
||||
ba12ed409d78139e:includes/string.py
|
||||
bbdf3bbd4c3bc28c:includes/w32\win32console.py
|
||||
bd82e3ca81546c76:lib\core\IncludesScanner.py
|
||||
be12ff5e6da1b6ee:lib\includes\c.py
|
||||
c3b259b4059f8668:includes/viperlib.py
|
||||
c4f2d483ec0f4db5:lib\core\Handles\HandlesClassDef.py
|
||||
c71b13e39e9a105b:lib\core\Phase1.py
|
||||
c9d54a4158f7f5a8:includes/hashlib\__sha256.py
|
||||
c9f4be41ca1cc2b4:includes/viperio.py
|
||||
d1599ecbac5b6586:lib\core\BuildPipeline.py
|
||||
d089e25a15c6f6e0:includes/memhub.py
|
||||
d9322f0db660edd8:lib\core\Handles\HandlesReturn.py
|
||||
db7c4a8f09d02a17:lib\core\Phase1.py
|
||||
e3e7b6de8d7d8b03:includes/_dict.py
|
||||
e592baca1313fbfd:lib\core\Handles\HandlesExprCall.py
|
||||
e5be27ae4fe7ce04:lib\core\Handles\HandlesEnum.py
|
||||
ee52c08239684346:includes/ast\parser.py
|
||||
f5522571bcce7bcb:includes/stdint.py
|
||||
f6b51804a0ba8ff0:includes/w32\win32file.py
|
||||
f9bcefb43d61d6dd:lib\core\Handles\HandlesMain.py
|
||||
f9e36e2cd6fa659f:includes/llvmlite\__values.py
|
||||
|
||||
Binary file not shown.
@@ -1 +0,0 @@
|
||||
{"get_func_name": "从函数节点提取函数名", "escape_llvm_string": "将字符串转换为 LLVM IR 字符串字面量 c\"...\\00\" ", "get_llvm_type_bits": "获取 LLVM 整数类型的位宽,非整数类型返回 0", "get_llvm_float_bits": "获取 LLVM 浮点类型的位宽,非浮点类型返回 0", "is_ptr_type": "检查 ty 是否是 Ptr 类型,返回 1=是, 0=否", "_deref_if_ptr_ptr": "如果 obj_ptr 是 Ptr(Ptr(...)),load 解引用获取内层指针", "coerce_to_type": "将 val 强制转换为 target_ty\n\n 整数: sext(扩展)/ trunc(截断)\n 浮点: fpext(扩展)/ fptrunc(截断)\n int→float: sitofp\n float→int: fptosi\n ", "create_global_string": "创建全局字符串常量并返回 i8* bitcast", "translate_constant": "翻译常量(int/str/bool)", "_infer_elem_type_from_value": "从 LLVM Value 的类型推断 list 元素类型名", "_find_pool_var": "查找上下文中的 pool 变量,返回 alloca 或 None", "translate_list_literal": "翻译 list 字面量 [a, b, c] → list[T](pool) + append 序列", "translate_value": "翻译值表达式为 LLVM Value", "translate_compare": "翻译比较表达式,返回 i1 结果", "translate_unaryop": "翻译一元运算(-x, +x, not x, ~x)", "translate_boolop": "翻译布尔运算(and/or)的短路求值,返回 i1", "translate_name_value": "翻译变量引用(Name 节点)→ load", "ExprHandle": "表达式处理器:继承 Mixin 获得 Trans 回指针", "ExprHandle.HandleValue": "翻译值表达式,从 self.Trans 获取共享状态", "list_getitem_inline": "内联生成 list __getitem__ 逻辑,返回元素地址 (i8*)", "_list_elem_type_from_name": "从 list 类型名提取元素 LLVM 类型", "list_setitem_inline": "内联生成 list __setitem__ 逻辑,返回 0", "is_list_subscript": "检查 Subscript 节点是否是 list[T] 类型,返回 list 对象指针或 None", "translate_subscript": "翻译下标表达式,返回加载的元素值", "find_global_in_module": "在模块全局变量链表中按名称查找全局变量", "make_global_ref": "创建全局变量引用 (类型为 ty*,名称为 @name)", "_resolve_module_attribute_global": "解析模块属性访问,返回全局变量引用 (用于跨模块 global 访问)", "translate_attribute": "翻译属性访问,返回加载的字段值", "get_subscript_ptr": "获取下标表达式的元素指针(用于赋值 lhs)", "get_attribute_ptr": "获取属性访问的字段指针(用于赋值 lhs)"}
|
||||
@@ -1,88 +0,0 @@
|
||||
"""
|
||||
Auto-generated Python stub file from lib.core.Handles.HandlesExpr.py
|
||||
Module: lib.core.Handles.HandlesExpr
|
||||
"""
|
||||
|
||||
|
||||
import t, c
|
||||
from stdint import *
|
||||
import ast
|
||||
import memhub
|
||||
import string
|
||||
import llvmlite
|
||||
import viperlib
|
||||
import lib.core.Handles.HandlesBase as HandlesBase
|
||||
import lib.core.Handles.HandlesTranslator as HT
|
||||
import lib.core.Handles.HandlesVar as HandlesVar
|
||||
import lib.core.Handles.HandlesExprOps as HandlesExprOps
|
||||
import lib.core.Handles.HandlesExprCall as HandlesExprCall
|
||||
import lib.core.Handles.HandlesNonlocal as HandlesNonlocal
|
||||
import lib.core.Handles.HandlesType as HandlesType
|
||||
import lib.core.Handles.HandlesStruct as HandlesStruct
|
||||
import lib.core.Handles.HandlesEnum as HandlesEnum
|
||||
import lib.core.Handles.HandlesClassDef as HandlesClassDef
|
||||
import lib.core.Handles.HandlesImports as HandlesImports
|
||||
|
||||
def get_func_name(func_node: ast.AST | t.CPtr) -> str: pass
|
||||
|
||||
def escape_llvm_string(pool: memhub.MemBuddy | t.CPtr, src: t.CChar | t.CPtr) -> t.CChar | t.CPtr: pass
|
||||
|
||||
def get_llvm_type_bits(ty: llvmlite.LLVMType | t.CPtr) -> int: pass
|
||||
|
||||
def get_llvm_float_bits(ty: llvmlite.LLVMType | t.CPtr) -> int: pass
|
||||
|
||||
def is_ptr_type(ty: llvmlite.LLVMType | t.CPtr) -> int: pass
|
||||
|
||||
def _deref_if_ptr_ptr(builder: llvmlite.IRBuilder | t.CPtr, obj_ptr: llvmlite.Value | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def coerce_to_type(builder: llvmlite.IRBuilder | t.CPtr, val: llvmlite.Value | t.CPtr, target_ty: llvmlite.LLVMType | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def create_global_string(builder: llvmlite.IRBuilder | t.CPtr, pool: memhub.MemBuddy | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, str_val: str, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_constant(builder: llvmlite.IRBuilder | t.CPtr, pool: memhub.MemBuddy | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, node: ast.AST | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def _infer_elem_type_from_value(pool: memhub.MemBuddy | t.CPtr, value: llvmlite.Value | t.CPtr) -> str: pass
|
||||
|
||||
def _find_pool_var(trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_list_literal(builder: llvmlite.IRBuilder | t.CPtr, pool: memhub.MemBuddy | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, node: ast.AST | t.CPtr, elem_type_name: str, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_value(builder: llvmlite.IRBuilder | t.CPtr, pool: memhub.MemBuddy | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, node: ast.AST | t.CPtr, funcs_ptr: t.CPtr, func_count: int, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_compare(builder: llvmlite.IRBuilder | t.CPtr, pool: memhub.MemBuddy | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, node: ast.AST | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_unaryop(builder: llvmlite.IRBuilder | t.CPtr, pool: memhub.MemBuddy | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, node: ast.AST | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_boolop(builder: llvmlite.IRBuilder | t.CPtr, pool: memhub.MemBuddy | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, node: ast.AST | t.CPtr, funcs_ptr: t.CPtr, func_count: int, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_name_value(builder: llvmlite.IRBuilder | t.CPtr, pool: memhub.MemBuddy | t.CPtr, node: ast.AST | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
|
||||
@t.NoVTable
|
||||
class ExprHandle(HandlesBase.Mixin):
|
||||
def __init__(self: ExprHandle, trans: HT.Translator | t.CPtr) -> t.CInt: pass
|
||||
def HandleValue(self: ExprHandle, node: ast.AST | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def NewExprHandle(pool: memhub.MemBuddy | t.CPtr, trans: HT.Translator | t.CPtr) -> ExprHandle | t.CPtr: pass
|
||||
|
||||
def list_getitem_inline(builder: llvmlite.IRBuilder | t.CPtr, pool: memhub.MemBuddy | t.CPtr, lm_obj: llvmlite.Value | t.CPtr, idx_val: llvmlite.Value | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def _list_elem_type_from_name(pool: memhub.MemBuddy | t.CPtr, struct_name: str) -> llvmlite.LLVMType | t.CPtr: pass
|
||||
|
||||
def list_setitem_inline(builder: llvmlite.IRBuilder | t.CPtr, pool: memhub.MemBuddy | t.CPtr, lm_obj: llvmlite.Value | t.CPtr, idx_val: llvmlite.Value | t.CPtr, rhs_val: llvmlite.Value | t.CPtr) -> int: pass
|
||||
|
||||
def is_list_subscript(node: ast.AST | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_subscript(builder: llvmlite.IRBuilder | t.CPtr, pool: memhub.MemBuddy | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, node: ast.AST | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def find_global_in_module(mod: llvmlite.LLVMModule | t.CPtr, name: str) -> llvmlite.GlobalVariable | t.CPtr: pass
|
||||
|
||||
def make_global_ref(pool: memhub.MemBuddy | t.CPtr, name: str, ty: llvmlite.LLVMType | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def _resolve_module_attribute_global(pool: memhub.MemBuddy | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, trans: HT.Translator | t.CPtr, at: ast.Attribute | t.CPtr, ty_hint: llvmlite.LLVMType | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_attribute(builder: llvmlite.IRBuilder | t.CPtr, pool: memhub.MemBuddy | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, node: ast.AST | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def get_subscript_ptr(builder: llvmlite.IRBuilder | t.CPtr, pool: memhub.MemBuddy | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, node: ast.AST | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def get_attribute_ptr(builder: llvmlite.IRBuilder | t.CPtr, pool: memhub.MemBuddy | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, node: ast.AST | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
File diff suppressed because one or more lines are too long
@@ -1,173 +0,0 @@
|
||||
"""
|
||||
Auto-generated Python stub file from lib.core.Handles.HandlesExprCall.py
|
||||
Module: lib.core.Handles.HandlesExprCall
|
||||
"""
|
||||
|
||||
|
||||
import t, c
|
||||
from stdint import *
|
||||
import ast
|
||||
import llvmlite
|
||||
import memhub
|
||||
import string
|
||||
import stdio
|
||||
import stdlib
|
||||
import sys
|
||||
import viperlib
|
||||
import lib.core.Handles.HandlesBase as HandlesBase
|
||||
import lib.core.Handles.HandlesTranslator as HT
|
||||
import lib.core.Handles.HandlesExpr as HandlesExpr
|
||||
import lib.core.Handles.HandlesVar as HandlesVar
|
||||
import lib.core.Handles.HandlesType as HandlesType
|
||||
import lib.core.Handles.HandlesStruct as HandlesStruct
|
||||
import lib.core.Handles.HandlesImports as HandlesImports
|
||||
import lib.core.Handles.HandlesClassDef as HandlesClassDef
|
||||
|
||||
_g_sha1_arr: t.CExtern | bytes
|
||||
_g_mod_arr: t.CExtern | bytes
|
||||
_g_sha1_count: t.CExtern | int
|
||||
|
||||
def set_module_sha1_map(sha1_arr: bytes, mod_arr: bytes, count: int) -> int: pass
|
||||
|
||||
def _lookup_module_sha1(mod_name: str) -> str: pass
|
||||
|
||||
def _lookup_module_sha1_suffix(mod_suffix: str) -> str: pass
|
||||
|
||||
|
||||
_g_cexport_sha1_arr: t.CExtern | bytes
|
||||
_g_cexport_func_arr: t.CExtern | bytes
|
||||
_g_cexport_count: t.CExtern | int
|
||||
_CEXPORT_MAX: t.CDefine = 256
|
||||
|
||||
def register_cexport_func(sha1: str, func_name: str) -> int: pass
|
||||
|
||||
def is_cexport_func(sha1: str, func_name: str) -> int: pass
|
||||
|
||||
def _lookup_mod_sha1(pool: memhub.MemBuddy | t.CPtr, from_imports: str, class_name: str, allow_star_fallback: int) -> str: pass
|
||||
|
||||
def find_func_in_module(mod: llvmlite.LLVMModule | t.CPtr, name: str) -> llvmlite.Function | t.CPtr: pass
|
||||
|
||||
def _infer_external_func_ret_ty(pool: memhub.MemBuddy | t.CPtr, func_name: str) -> llvmlite.LLVMType | t.CPtr: pass
|
||||
|
||||
def _get_external_func_param_ty(pool: memhub.MemBuddy | t.CPtr, func_name: str, param_idx: int) -> llvmlite.LLVMType | t.CPtr: pass
|
||||
|
||||
def _emit_llvm_memcpy_intrinsic(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, dst_val: llvmlite.Value | t.CPtr, src_val: llvmlite.Value | t.CPtr, num_val: llvmlite.Value | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_c_deref(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, cl: ast.Call | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_c_derefas(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, cl: ast.Call | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_c_addr(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, cl: ast.Call | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_c_load(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, cl: ast.Call | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
|
||||
ASM_MAX_OPERANDS: t.CDefine = 16
|
||||
ASM_TEXT_BUF_SIZE: t.CDefine = 2048
|
||||
ASM_CONST_BUF_SIZE: t.CDefine = 512
|
||||
ASM_ARGS_BUF_SIZE: t.CDefine = 512
|
||||
ASM_LINE_BUF_SIZE: t.CDefine = 4096
|
||||
|
||||
@t.NoVTable
|
||||
class AsmOperand:
|
||||
Value: llvmlite.Value | t.CPtr
|
||||
Constraint: str
|
||||
IsOutput: int
|
||||
|
||||
def _asm_append_cstr(dst: t.CChar | t.CPtr, dst_size: t.CSizeT, src: t.CChar | t.CPtr) -> t.CInt: pass
|
||||
|
||||
def _asm_escape_for_ir(pool: memhub.MemBuddy | t.CPtr, src: t.CChar | t.CPtr) -> t.CChar | t.CPtr: pass
|
||||
|
||||
def _resolve_register(attr_name: str) -> str: pass
|
||||
|
||||
def _resolve_asm_descr(pool: memhub.MemBuddy | t.CPtr, node: ast.AST | t.CPtr) -> str: pass
|
||||
|
||||
def _asm_get_operand(base: AsmOperand | t.CPtr, idx: int) -> AsmOperand | t.CPtr: pass
|
||||
|
||||
def _asm_is_c_call(node: ast.Call | t.CPtr) -> str: pass
|
||||
|
||||
def _asm_add_operand(operands: AsmOperand | t.CPtr, count: int, val: llvmlite.Value | t.CPtr, constraint: str, is_output: int) -> int: pass
|
||||
|
||||
def translate_c_asm(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, cl: ast.Call | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
|
||||
LLVMIR_MAX_OPS: t.CDefine = 16
|
||||
LLVMIR_TEMPLATE_BUF: t.CDefine = 512
|
||||
|
||||
def _llvmir_get_op(buf: AsmOperand | t.CPtr, i: int) -> AsmOperand | t.CPtr: pass
|
||||
|
||||
def _llvmir_find_op_marker(s: t.CChar | t.CPtr) -> t.CPtr: pass
|
||||
|
||||
def _llvmir_parse_op_num(marker: t.CChar | t.CPtr) -> int: pass
|
||||
|
||||
def _llvmir_match_icmp_pred(pred: str) -> int: pass
|
||||
|
||||
def _llvmir_match_fcmp_pred(pred: str) -> int: pass
|
||||
|
||||
def _llvmir_extract_two_ops(template: t.CChar | t.CPtr, out_nums: int | t.CPtr) -> int: pass
|
||||
|
||||
def _llvmir_resolve_op(op_num: int, all_kinds: int | t.CPtr, all_indices: int | t.CPtr, input_ops: AsmOperand | t.CPtr, output_targets: AsmOperand | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def _llvmir_store_outputs(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, result: llvmlite.Value | t.CPtr, output_targets: AsmOperand | t.CPtr, output_count: int) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_c_llvmir(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, cl: ast.Call | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def _apply_struct_defaults(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, struct_ty: llvmlite.LLVMType | t.CPtr, class_name: str, tmp: llvmlite.Value | t.CPtr, trans: HT.Translator | t.CPtr) -> t.CInt: pass
|
||||
|
||||
def _translate_struct_ctor(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, struct_ty: llvmlite.LLVMType | t.CPtr, class_name: str, cargs: list[ast.AST | t.CPtr] | t.CPtr, can: t.CSizeT, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def _do_virtual_call(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, class_name: str, method_name: str, self_ptr: llvmlite.Value | t.CPtr, args_head: llvmlite.Value | t.CPtr, args_count: int, found_func: llvmlite.Function | t.CPtr, ret_ty: llvmlite.LLVMType | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def _call_method_on_ptr(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, class_name: str, method_name: str, self_ptr: llvmlite.Value | t.CPtr, extra_args: t.CSizeT | t.CPtr, extra_count: int, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def _infer_method_ret_ty(pool: memhub.MemBuddy | t.CPtr, method_name: str) -> llvmlite.LLVMType | t.CPtr: pass
|
||||
|
||||
def _translate_method_call(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, class_name: str, method_name: str, obj_ptr: llvmlite.Value | t.CPtr, cl: ast.Call | t.CPtr, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def _kwarg_name_matches(kw_arg: str, param_name: t.CChar | t.CPtr) -> int: pass
|
||||
|
||||
def _translate_struct_ctor_kw(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, struct_ty: llvmlite.LLVMType | t.CPtr, class_name: str, cargs: list[ast.AST | t.CPtr] | t.CPtr, can: t.CSizeT, keywords: list[ast.AST | t.CPtr] | t.CPtr, kw_count: t.CSizeT, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def _translate_call_with_kwargs(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, func_name: str, found_func: llvmlite.Function | t.CPtr, cargs: list[ast.AST | t.CPtr] | t.CPtr, can: t.CSizeT, keywords: list[ast.AST | t.CPtr] | t.CPtr, kw_count: t.CSizeT, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def _translate_t_type_cast(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, val: llvmlite.Value | t.CPtr, target_ty: llvmlite.LLVMType | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def _extract_type_args_from_slice(pool: memhub.MemBuddy | t.CPtr, slice_node: ast.AST | t.CPtr) -> list[str] | t.CPtr: pass
|
||||
|
||||
def translate_call(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, node: ast.AST | t.CPtr, funcs_ptr: t.CPtr, func_count: int, trans: HT.Translator | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_closure_call(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, closure_alloca: llvmlite.Value | t.CPtr, cargs: list[ast.AST | t.CPtr] | t.CPtr, can: t.CSizeT) -> llvmlite.Value | t.CPtr: pass
|
||||
|
||||
def translate_printf_call(pool: memhub.MemBuddy | t.CPtr, builder: llvmlite.IRBuilder | t.CPtr, mod: llvmlite.LLVMModule | t.CPtr, cl: ast.Call | t.CPtr, trans: HT.Translator | t.CPtr) -> t.CInt: pass
|
||||
|
||||
|
||||
@t.NoVTable
|
||||
class FuncEntry:
|
||||
Name: str
|
||||
Func: llvmlite.Function | t.CPtr
|
||||
|
||||
def init_func_table(pool: memhub.MemBuddy | t.CPtr, max_count: int) -> FuncEntry | t.CPtr: pass
|
||||
|
||||
def find_func_in_table(funcs: FuncEntry | t.CPtr, func_count: int, name: str) -> llvmlite.Function | t.CPtr: pass
|
||||
|
||||
def add_func_to_table(funcs: FuncEntry | t.CPtr, func_count: int, name: str, func: llvmlite.Function | t.CPtr, max_count: int) -> int: pass
|
||||
|
||||
|
||||
GLOBAL_FUNC_MAX: t.CDefine = 8192
|
||||
_global_funcs: t.CExtern | FuncEntry | t.CPtr
|
||||
_global_func_count: t.CExtern | int
|
||||
|
||||
def _init_global_func_table() -> int: pass
|
||||
|
||||
def _register_global_func(name: str, func: llvmlite.Function | t.CPtr) -> int: pass
|
||||
|
||||
def find_func_global(name: str) -> llvmlite.Function | t.CPtr: pass
|
||||
|
||||
|
||||
@t.NoVTable
|
||||
class ExprCallHandle(HandlesBase.Mixin):
|
||||
def __init__(self: ExprCallHandle, trans: HT.Translator | t.CPtr) -> t.CInt: pass
|
||||
def HandleCall(self: ExprCallHandle, node: ast.AST | t.CPtr) -> llvmlite.Value | t.CPtr: pass
|
||||
def HandlePrintfCall(self: ExprCallHandle, cl: ast.Call | t.CPtr) -> t.CInt: pass
|
||||
|
||||
def NewExprCallHandle(pool: memhub.MemBuddy | t.CPtr, trans: HT.Translator | t.CPtr) -> ExprCallHandle | t.CPtr: pass
|
||||
@@ -1 +0,0 @@
|
||||
{"_is_cenum_base": "检查 base 节点是否为 t.CEnum,返回 1=是 / 0=否", "_is_enum_class": "检查 ClassDef 是否继承自 t.CEnum,返回 1=是 / 0=否", "_is_cunion_base": "检查 base 节点是否为 t.CUnion,返回 1=是 / 0=否", "_is_union_class": "检查 ClassDef 是否继承自 t.CUnion,返回 1=是 / 0=否", "_has_decorator": "检查 decorator_list 中是否有指定装饰器名", "_is_marker_base": "检查基类名是否为标记基类,返回 1=是 / 0=否", "_get_base_name": "从 base AST 节点提取基类名,返回 None=失败", "_get_parent_class": "获取 ClassDef 的真实父类名,返回 None=无真实父类", "_has_any_func_cvtable": "检查类中是否有任何函数标记了 @t.CVTable,返回 1=有 / 0=无", "_should_method_be_virtual": "判断方法是否应该进入虚表,返回 1=包含 / 0=排除", "_detect_vtable_status": "检测类是否应该启用虚表", "_resolve_enum_member_type": "解析枚举成员的类型注解为 LLVM 整数类型", "_is_state_annotation": "检查注解节点是否为 t.State,返回 1=是 / 0=否", "_extract_int_value": "从 AST 节点提取整数值,失败返回 0", "_translate_enum_def": "翻译枚举类定义,返回 0", "_get_type_size": "计算 LLVM 类型的字节大小", "_translate_union_def": "翻译联合体定义,返回 0", "_is_generic_class": "检查 ClassDef 是否有类型参数(泛型类),返回 1=是 / 0=否", "_register_generic_template": "注册泛型类模板(类名 + ClassDef 节点)", "_find_generic_template": "查找泛型类模板,返回 ClassDef 节点或 None", "_mangle_generic_class_name": "生成特化类名: list + [int] -> list[int]\n\n 分配新缓冲区拼接,避免原地 strcat 导致缓冲区溢出\n ", "_clone_annotation": "拷贝类型注解表达式,替换类型参数 T 为具体类型名\n\n tp_names: 类型参数名列表 ['T']\n type_args: 类型实参名列表 ['int']\n ", "_clone_arguments": "拷贝 Arguments 节点,替换 arg annotation 中的 T", "_clone_classdef_for_spec": "拷贝 ClassDef 节点用于泛型特化\n\n - 替换类名为 spec_name\n - 清除 type_params(特化后不是泛型类)\n - 拷贝 children 中的 AnnAssign 和 FunctionDef,替换类型注解中的 T\n - 方法体直接引用原始节点(通过 type_map 上下文处理 T)\n ", "_find_cached_spec": "查找已缓存的特化名,未找到返回 None", "_cache_spec": "缓存特化结果", "_specialize_generic_class": "特化泛型类,返回特化类名\n\n 1. 查找泛型模板\n 2. 生成特化名\n 3. 检查缓存\n 4. 拷贝 ClassDef 节点(替换类型注解中的 T)\n 5. 设置 type_map 上下文(用于方法体中的 T 替换)\n 6. 调用 translate_class_def 翻译特化类\n 7. 返回特化名\n ", "translate_class_def": "翻译 class 定义,返回 0", "_vtable_strcat": "将 src 追加到 dst 末尾", "_vtable_name_needs_quote": "检查 LLVM 标识符是否需要引号(以数字开头或含 '.')", "_format_func_type_str": "从 Function 对象生成函数类型字符串", "_generate_vtable": "生成 VTable 全局变量", "_translate_oop_methods": "扫描 class body 中的方法并翻译,生成 __before_init__", "_translate_method": "翻译单个方法,返回 0", "_generate_before_init": "生成 __before_init__ 函数,返回 0"}
|
||||
@@ -1,104 +0,0 @@
|
||||
"""
|
||||
Auto-generated Python stub file from lib.core.Handles.HandlesClassDef.py
|
||||
Module: lib.core.Handles.HandlesClassDef
|
||||
"""
|
||||
|
||||
|
||||
import t, c
|
||||
from stdint import *
|
||||
import ast
|
||||
import llvmlite
|
||||
import memhub
|
||||
import string
|
||||
import stdio
|
||||
import viperlib
|
||||
import lib.core.Handles.HandlesTranslator as HT
|
||||
import lib.core.Handles.HandlesType as HandlesType
|
||||
import lib.core.Handles.HandlesStruct as HandlesStruct
|
||||
import lib.core.Handles.HandlesEnum as HandlesEnum
|
||||
|
||||
ENUM_MEMBER_MAX_LOCAL: t.CDefine = 64
|
||||
|
||||
def _is_cenum_base(base_node: ast.AST | t.CPtr) -> int: pass
|
||||
|
||||
def _is_enum_class(cd: ast.ClassDef | t.CPtr) -> int: pass
|
||||
|
||||
def _is_cunion_base(base_node: ast.AST | t.CPtr) -> int: pass
|
||||
|
||||
def _is_union_class(cd: ast.ClassDef | t.CPtr) -> int: pass
|
||||
|
||||
|
||||
_MARKER_BASES: t.CDefine = 8
|
||||
|
||||
def _has_decorator(decorator_list: list[ast.AST | t.CPtr] | t.CPtr, deco_name: str) -> int: pass
|
||||
|
||||
def _is_marker_base(base_name: str) -> int: pass
|
||||
|
||||
def _get_base_name(base_node: ast.AST | t.CPtr) -> str: pass
|
||||
|
||||
def _get_parent_class(cd: ast.ClassDef | t.CPtr) -> str: pass
|
||||
|
||||
def _has_any_func_cvtable(cd: ast.ClassDef | t.CPtr) -> int: pass
|
||||
|
||||
def _should_method_be_virtual(cd: ast.ClassDef | t.CPtr, fd: ast.FunctionDef | t.CPtr, trans: HT.Translator | t.CPtr) -> int: pass
|
||||
|
||||
def _detect_vtable_status(cd: ast.ClassDef | t.CPtr, trans: HT.Translator | t.CPtr) -> int: pass
|
||||
|
||||
def _resolve_enum_member_type(pool: memhub.MemBuddy | t.CPtr, ann_node: ast.AST | t.CPtr, imported_modules: str, from_imports: str) -> llvmlite.LLVMType | t.CPtr: pass
|
||||
|
||||
def _is_state_annotation(node: ast.AST | t.CPtr) -> int: pass
|
||||
|
||||
def _extract_int_value(node: ast.AST | t.CPtr) -> t.CInt64T: pass
|
||||
|
||||
def _translate_enum_def(trans: HT.Translator | t.CPtr, cd: ast.ClassDef | t.CPtr) -> int: pass
|
||||
|
||||
def _get_type_size(ty: llvmlite.LLVMType | t.CPtr) -> int: pass
|
||||
|
||||
def _translate_union_def(trans: HT.Translator | t.CPtr, cd: ast.ClassDef | t.CPtr) -> int: pass
|
||||
|
||||
|
||||
_generic_class_names: t.CExtern | list[str] | t.CPtr
|
||||
_generic_class_nodes: t.CExtern | list[ast.ClassDef | t.CPtr] | t.CPtr
|
||||
|
||||
def _is_generic_class(cd: ast.ClassDef | t.CPtr) -> int: pass
|
||||
|
||||
def _register_generic_template(pool: memhub.MemBuddy | t.CPtr, cd: ast.ClassDef | t.CPtr) -> t.CInt: pass
|
||||
|
||||
def _find_generic_template(class_name: str) -> ast.ClassDef | t.CPtr: pass
|
||||
|
||||
def _mangle_generic_class_name(pool: memhub.MemBuddy | t.CPtr, class_name: str, type_args: list[str] | t.CPtr) -> str: pass
|
||||
|
||||
def _clone_annotation(pool: memhub.MemBuddy | t.CPtr, node: ast.AST | t.CPtr, tp_names: list[str] | t.CPtr, type_args: list[str] | t.CPtr) -> ast.AST | t.CPtr: pass
|
||||
|
||||
def _clone_arguments(pool: memhub.MemBuddy | t.CPtr, args: ast.AST | t.CPtr, tp_names: list[str] | t.CPtr, type_args: list[str] | t.CPtr) -> ast.AST | t.CPtr: pass
|
||||
|
||||
def _clone_classdef_for_spec(pool: memhub.MemBuddy | t.CPtr, cd: ast.ClassDef | t.CPtr, spec_name: str, tp_names: list[str] | t.CPtr, type_args: list[str] | t.CPtr) -> ast.ClassDef | t.CPtr: pass
|
||||
|
||||
|
||||
_spec_keys: t.CExtern | list[str] | t.CPtr
|
||||
_spec_names: t.CExtern | list[str] | t.CPtr
|
||||
|
||||
def _find_cached_spec(spec_key: str) -> str: pass
|
||||
|
||||
def _cache_spec(pool: memhub.MemBuddy | t.CPtr, spec_key: str, spec_name: str) -> t.CInt: pass
|
||||
|
||||
def _specialize_generic_class(trans: HT.Translator | t.CPtr, class_name: str, type_args: list[str] | t.CPtr) -> str: pass
|
||||
|
||||
def translate_class_def(trans: HT.Translator | t.CPtr, node: ast.AST | t.CPtr) -> int: pass
|
||||
|
||||
|
||||
VTBL_METHOD_MAX: t.CDefine = 32
|
||||
|
||||
def _vtable_strcat(dst: t.CChar | t.CPtr, dst_size: t.CSizeT, src: t.CChar | t.CPtr) -> t.CInt: pass
|
||||
|
||||
def _vtable_name_needs_quote(name: str) -> int: pass
|
||||
|
||||
def _format_func_type_str(pool: memhub.MemBuddy | t.CPtr, buf: t.CChar | t.CPtr, buf_size: t.CSizeT, func: llvmlite.Function | t.CPtr) -> int: pass
|
||||
|
||||
def _generate_vtable(trans: HT.Translator | t.CPtr, cd: ast.ClassDef | t.CPtr, class_name: str) -> int: pass
|
||||
|
||||
def _translate_oop_methods(trans: HT.Translator | t.CPtr, cd: ast.ClassDef | t.CPtr, struct_ty: llvmlite.LLVMType | t.CPtr, class_name: str) -> int: pass
|
||||
|
||||
def _translate_method(trans: HT.Translator | t.CPtr, fd: ast.FunctionDef | t.CPtr, struct_ty: llvmlite.LLVMType | t.CPtr, class_name: str) -> int: pass
|
||||
|
||||
def _generate_before_init(trans: HT.Translator | t.CPtr, struct_ty: llvmlite.LLVMType | t.CPtr, class_name: str) -> int: pass
|
||||
@@ -1 +0,0 @@
|
||||
{"TranslateFileGetTrans": "翻译文件,返回 Translator 对象(调用者负责 dump_ir),None 失败\n\n current_package: 当前文件所属包名(用于解析相对导入),None 表示顶级模块\n ", "ensure_dir": "递归创建目录(类似 mkdir -p),目录已存在视为成功\n\n Args:\n path: 目录路径(支持 / 或 \\ 分隔符)\n\n Returns:\n 0 成功(包括目录已存在),非 0 失败\n ", "write_ir_to_file": "将 IR 缓冲区写入 .ll 文件\n\n Args:\n ir_buf: IR 文本缓冲区\n ir_len: IR 文本长度\n output_dir: 输出目录(temp 或 output)\n module_name: 模块名(如 \"main\")\n\n Returns:\n 0 成功,非 0 失败\n ", "compile_ll_to_obj": "调用 llc 将 .ll 编译为 .obj\n\n Args:\n ir_path: .ll 文件路径\n output_dir: 输出目录\n module_name: 模块名(用于生成 .obj 文件名)\n cc_cmd: 编译器命令(如 \"llc\")\n cc_flags: 编译器参数(如 \"-filetype=obj -relocation-model=pic\")\n\n Returns:\n 0 成功,非 0 失败\n ", "collect_obj_files": "扫描 includes_binary_dir 目录,收集所有 .obj 文件路径到 out_buf\n\n Args:\n includes_binary_dir: includes.binary 目录路径\n out_buf: 输出缓冲区(用于存放空格分隔的 .obj 文件路径)\n out_size: 输出缓冲区大小\n\n Returns:\n 写入的字节数(不含 null 终止符),0 表示无文件或错误\n ", "link_obj_to_exe": "调用 clang++ 链接 .obj 为 .exe\n\n Args:\n output_dir: 输出目录(包含 .obj 文件)\n module_name: 模块名\n linker_cmd: 链接器命令(如 \"clang++\")\n linker_flags: 链接器参数\n linker_output: 输出文件名(如 \"test.exe\")\n includes_binary_dir: includes.binary 目录路径(链接时附加预编译 .obj)\n\n Returns:\n 0 成功,非 0 失败\n ", "compile_module_to_obj": "编译 IR 到 .obj(不链接)\n\n Args:\n ir_buf: LLVM IR 文本缓冲区\n ir_len: IR 文本长度\n temp_dir: 临时目录\n output_dir: 输出目录\n module_name: 模块名(SHA1)\n cc_cmd: 编译器命令\n cc_flags: 编译器参数\n\n Returns:\n 0 成功,非 0 失败\n ", "link_objs_to_exe": "链接多个 .obj 文件为 .exe\n\n Args:\n obj_paths: 空格分隔的 .obj 文件完整路径字符串\n obj_paths_len: obj_paths 长度\n linker_cmd: 链接器命令(如 \"clang++\")\n linker_flags: 链接器参数\n linker_output: 输出文件完整路径\n includes_binary_dir: includes.binary 目录路径(链接时附加预编译 .obj)\n\n Returns:\n 0 成功,非 0 失败\n ", "run_pipeline": "执行完整编译管线\n\n Args:\n ir_buf: LLVM IR 文本缓冲区\n ir_len: IR 文本长度\n temp_dir: 临时目录\n output_dir: 输出目录\n module_name: 模块名\n cc_cmd: 编译器命令\n cc_flags: 编译器参数\n linker_cmd: 链接器命令\n linker_flags: 链接器参数\n linker_output: 输出文件名\n includes_binary_dir: includes.binary 目录路径(链接时附加预编译 .obj)\n\n Returns:\n BuildResult 对象\n "}
|
||||
@@ -1,51 +0,0 @@
|
||||
"""
|
||||
Auto-generated Python stub file from lib.core.BuildPipeline.py
|
||||
Module: lib.core.BuildPipeline
|
||||
"""
|
||||
|
||||
|
||||
import t, c
|
||||
from stdint import *
|
||||
import stdio
|
||||
import string
|
||||
import stdlib
|
||||
import memhub
|
||||
import w32.fileio as fileio
|
||||
import w32.win32file
|
||||
import w32.win32base
|
||||
import subprocess
|
||||
import viperlib
|
||||
import ast
|
||||
import lib.core.Handles.HandlesTranslator as HandlesTranslator
|
||||
import lib.core.Handles.HandlesStruct as HandlesStruct
|
||||
import lib.core.Handles.HandlesType as HandlesType
|
||||
import lib.core.Handles.HandlesImports as HandlesImports
|
||||
|
||||
_mbuddy: t.CExtern | memhub.MemManager | t.CPtr
|
||||
SRC_BUF_SIZE: t.CDefine = 1048576
|
||||
|
||||
def TranslateFileGetTrans(mb: memhub.MemBuddy | t.CPtr, file_path: str, sha1_val: str, current_package: str) -> HandlesTranslator.Translator | t.CPtr: pass
|
||||
|
||||
|
||||
class BuildResult:
|
||||
Success: t.CInt
|
||||
OutputPath: str
|
||||
ErrorMsg: str
|
||||
def __new__(self: BuildResult) -> t.CPtr: pass
|
||||
def __init__(self: BuildResult) -> t.CInt: pass
|
||||
|
||||
def ensure_dir(path: str) -> int: pass
|
||||
|
||||
def write_ir_to_file(ir_buf: bytes, ir_len: t.CSizeT, output_dir: str, module_name: str) -> int: pass
|
||||
|
||||
def compile_ll_to_obj(ir_path: str, output_dir: str, module_name: str, cc_cmd: str, cc_flags: str) -> int: pass
|
||||
|
||||
def collect_obj_files(includes_binary_dir: str, out_buf: bytes, out_size: t.CSizeT) -> t.CSizeT: pass
|
||||
|
||||
def link_obj_to_exe(output_dir: str, module_name: str, linker_cmd: str, linker_flags: str, linker_output: str, includes_binary_dir: str) -> int: pass
|
||||
|
||||
def compile_module_to_obj(ir_buf: bytes, ir_len: t.CSizeT, temp_dir: str, output_dir: str, module_name: str, cc_cmd: str, cc_flags: str) -> int: pass
|
||||
|
||||
def link_objs_to_exe(obj_paths: str, obj_paths_len: t.CSizeT, linker_cmd: str, linker_flags: str, linker_output: str, includes_binary_dir: str) -> int: pass
|
||||
|
||||
def run_pipeline(ir_buf: bytes, ir_len: t.CSizeT, temp_dir: str, output_dir: str, module_name: str, cc_cmd: str, cc_flags: str, linker_cmd: str, linker_flags: str, linker_output: str, includes_binary_dir: str) -> BuildResult | t.CPtr: pass
|
||||
Reference in New Issue
Block a user