修正了种子编译器的错误

This commit is contained in:
TermiNexus committed 2026-07-22 21:55:36 +08:00
1 parent 135aa05485
commit ca7c2120b8
1185 files changed
+12056 -2673

No files matched your search

-1
View File
@@ -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 "}
-31
View File
@@ -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
View File
@@ -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 函数并添加参数"}
-45
View File
@@ -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
View File
@@ -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": "打印当前配置(调试用)"}
-44
View File
@@ -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
View File
@@ -1 +0,0 @@
{"SrcFileEntry": "源文件条目", "_ScanDirForPyFiles": "递归扫描目录,收集 .py 文件到 entries,返回新的 file_count", "RunMultiFileProject": "多文件项目编译\n\n Returns: 0 成功,非 0 失败\n "}
-42
View File
@@ -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
+1 -1
View File
@@ -1 +1 @@
{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Config.py": {"sha1": "49cf633017627a4a", "mtime": 1784566611.844975, "size": 10284}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Utils.py": {"sha1": "888ea5bd6ab516ae", "mtime": 1784540868.027279, "size": 4066}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\__init__.py": {"sha1": "8f12094c840be06a", "mtime": 1784540868.0297859, "size": 752}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\constants\\config.py": {"sha1": "39daf57c7d4c5381", "mtime": 1781880718.1867383, "size": 1322}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\BuildPipeline.py": {"sha1": "d1599ecbac5b6586", "mtime": 1784566611.8356757, "size": 18044}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAnnAssign.py": {"sha1": "2ed380190e9df89e", "mtime": 1784566611.8398514, "size": 12796}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAssign.py": {"sha1": "3d3edda4a4e6c08b", "mtime": 1784566611.8469868, "size": 12619}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAugAssign.py": {"sha1": "541a090dde0cc1ba", "mtime": 1784566611.8403623, "size": 10160}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBase.py": {"sha1": "83ba314b4637eec9", "mtime": 1784540868.0374627, "size": 8746}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBody.py": {"sha1": "81eb28ba912467a6", "mtime": 1784566611.8626723, "size": 8538}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesClassDef.py": {"sha1": "c4f2d483ec0f4db5", "mtime": 1784566611.8356757, "size": 95797}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesEnum.py": {"sha1": "e5be27ae4fe7ce04", "mtime": 1784540868.0423465, "size": 8197}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExpr.py": {"sha1": "ae0cc890f657076d", "mtime": 1784566611.8550787, "size": 68807}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprCall.py": {"sha1": "b29b80b6106e4be7", "mtime": 1784566611.8376899, "size": 190769}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprOps.py": {"sha1": "07a8c82a8ca2be90", "mtime": 1784540868.0474122, "size": 12706}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFor.py": {"sha1": "48fa8cc758d3826b", "mtime": 1784566611.8366883, "size": 16438}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFunctions.py": {"sha1": "4020cac9bab5e9f1", "mtime": 1784566611.8560882, "size": 42350}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesIf.py": {"sha1": "66de93aaeebc0601", "mtime": 1784566611.8515344, "size": 5211}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesImports.py": {"sha1": "78bbe886bbe5ca8f", "mtime": 1784566611.8280091, "size": 15989}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesMain.py": {"sha1": "001c1416e7a7dc50", "mtime": 1784566611.8580873, "size": 13209}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesNonlocal.py": {"sha1": "af9484a65085bf4b", "mtime": 1784540868.0555332, "size": 5336}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesReturn.py": {"sha1": "d9322f0db660edd8", "mtime": 1784566611.8606246, "size": 4530}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesStruct.py": {"sha1": "54014f6c53e9640b", "mtime": 1784566611.8606246, "size": 39050}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesTranslator.py": {"sha1": "2998b8f78d7022bf", "mtime": 1784566611.838851, "size": 17135}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesType.py": {"sha1": "0c56128647a0b845", "mtime": 1784566611.8434613, "size": 51854}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesVar.py": {"sha1": "02885f6f134079c2", "mtime": 1784566611.8550787, "size": 13778}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesWhile.py": {"sha1": "51f0144d6e8188d9", "mtime": 1784566611.8311827, "size": 4787}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\IncludesScanner.py": {"sha1": "bd82e3ca81546c76", "mtime": 1784566611.8408911, "size": 12662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase1.py": {"sha1": "db7c4a8f09d02a17", "mtime": 1784566611.8580873, "size": 21791}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase2.py": {"sha1": "7e260c14d2712119", "mtime": 1784566611.83066,Line truncated
{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Config.py": {"sha1": "2624f814f0426f7d", "mtime": 1784722852.6231358, "size": 11184}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Utils.py": {"sha1": "888ea5bd6ab516ae", "mtime": 1784540868.027279, "size": 4066}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\StubGen\\Converter.py": {"sha1": "6d4e0608efefb78b", "mtime": 1784720675.223992, "size": 23616}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\__init__.py": {"sha1": "8f12094c840be06a", "mtime": 1784540868.0297859, "size": 752}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\BuildPipeline.py": {"sha1": "560d283cc2aa0a7e", "mtime": 1784723416.4989085, "size": 18275}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAnnAssign.py": {"sha1": "2ed380190e9df89e", "mtime": 1784566611.8398514, "size": 12796}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAssign.py": {"sha1": "3d3edda4a4e6c08b", "mtime": 1784566611.8469868, "size": 12619}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAugAssign.py": {"sha1": "541a090dde0cc1ba", "mtime": 1784566611.8403623, "size": 10160}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBase.py": {"sha1": "83ba314b4637eec9", "mtime": 1784540868.0374627, "size": 8746}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBody.py": {"sha1": "81eb28ba912467a6", "mtime": 1784566611.8626723, "size": 8538}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesClassDef.py": {"sha1": "a534cf73df0ccaaf", "mtime": 1784716011.0127437, "size": 103142}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesEnum.py": {"sha1": "e5be27ae4fe7ce04", "mtime": 1784540868.0423465, "size": 8197}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExpr.py": {"sha1": "159967284b0392a8", "mtime": 1784717649.563303, "size": 69050}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprCall.py": {"sha1": "e592baca1313fbfd", "mtime": 1784718073.717597, "size": 191445}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprOps.py": {"sha1": "07a8c82a8ca2be90", "mtime": 1784540868.0474122, "size": 12706}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFor.py": {"sha1": "48fa8cc758d3826b", "mtime": 1784566611.8366883, "size": 16438}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFunctions.py": {"sha1": "959faeab0256d578", "mtime": 1784710182.338943, "size": 42604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesIf.py": {"sha1": "66de93aaeebc0601", "mtime": 1784566611.8515344, "size": 5211}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesImports.py": {"sha1": "78bbe886bbe5ca8f", "mtime": 1784566611.8280091, "size": 15989}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesMain.py": {"sha1": "f9bcefb43d61d6dd", "mtime": 1784710182.3401566, "size": 13033}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesNonlocal.py": {"sha1": "af9484a65085bf4b", "mtime": 1784540868.0555332, "size": 5336}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesReturn.py": {"sha1": "d9322f0db660edd8", "mtime": 1784566611.8606246, "size": 4530}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesStruct.py": {"sha1": "54014f6c53e9640b", "mtime": 1784566611.8606246, "size": 39050}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesTranslator.py": {"sha1": "2998b8f78d7022bf", "mtime": 1784701394.0029123, "size": 17135}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesType.py": {"sha1": "0c56128647a0b845", "mtime": 1784566611.8434613, "size": 51854}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesVar.py": {"sha1": "02885f6f134079c2", "mtime": 1784566611.8550787, "size": 13778}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesWhile.py": {"sha1": "51f0144d6e8188d9", "mtime": 1784566611.8311827, "size": 4787}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\IncludesScanner.py": {"sha1": "7ef6624cd9949048", "mtime": 1784710182.3411639, "size": 12512}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase1.py": {"sha1": "c71b13e39e9a105b", "mtime": 1784723424.8496609, "size": 22377}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase2.py": {"sha1": "9467b36736d844bd", "mtime": 1784714690.52851Line truncated
+14 -17
View File
@@ -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
View File
@@ -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)"}
-88
View File
@@ -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
-1
View File
@@ -1 +0,0 @@
{"set_module_sha1_map": "设置全局模块 SHA1 映射", "_lookup_module_sha1": "查找模块名对应的 SHA1,找不到返回 None", "_lookup_module_sha1_suffix": "后缀匹配查找模块 SHA1,如 mod_suffix=\"__types\" 匹配 \"llvmlite.__types\"\n\n 用于 from .X import Y 的相对导入:impf.module 是 \".X\"(带前导点),\n 去掉前导点后为 \"X\",SHA1 映射表中键是 \"pkg.X\",需要后缀匹配。\n ", "register_cexport_func": "注册 CExport 函数到全局表(sha1+func_name 二元组)", "is_cexport_func": "检查 (sha1, func_name) 是否是 CExport 函数", "_lookup_mod_sha1": "从 from_imports 查找类所属模块的 SHA1,返回 None=未找到\n\n allow_star_fallback: 传 0 禁用 star import 回退(用于明确模块名/函数名查找)\n ", "find_func_in_module": "在模块的函数链表中按名称查找函数\n\n 查找策略:\n 1. 精确匹配(如 \"strlen\" 匹配 @strlen,有 t.CExport 的函数)\n 2. 后缀匹配(如 \"atoi\" 匹配 @\"83210a72e829a086.atoi\",无 t.CExport 的函数)\n\n 使用 llvmlite.function_get_name/next 访问器绕过 stub 类型限制\n (stub 类型字段不足且字段类型可能错误,直接字段访问会被静默跳过)。\n ", "_infer_external_func_ret_ty": "根据函数名推断外部 includes 函数的返回类型", "_get_external_func_param_ty": "获取外部函数第 param_idx 个参数的期望类型,None 表示用字面量原类型\n\n 对 Win32 API 函数的所有非指针参数返回 i64,匹配 declare 中\n ULONG/SIZE_T 被统一翻译为 i64 的情况。\n ", "_emit_llvm_memcpy_intrinsic": "将 memcpy 调用映射到 @llvm.memcpy 内联函数\n\n 直接接收三个 Value 参数,避免通过 Next 链表遍历(共享 alloca 对象的\n Next 字段可能被其他操作污染,导致链表断裂)。\n ", "translate_c_deref": "c.Deref(ptr) → load i8 from ptr", "translate_c_derefas": "c.DerefAs(ptr, val) → store val to ptr(bitcast 后 store)", "translate_c_addr": "c.Addr(var) → 返回变量的 alloca 指针(不 load)", "translate_c_load": "c.Load(a, b) → *a = *b(加载 b 的值,存储到 a)", "AsmOperand": "内联汇编操作数条目", "_asm_append_cstr": "将 C 字符串 src 追加到 dst 末尾", "_asm_escape_for_ir": "转义汇编文本用于 LLVM IR 字符串字面量", "_resolve_register": "将 t.ASM_DESCR.XXX 的属性名映射到约束字符串值", "_resolve_asm_descr": "递归解析约束表达式,返回约束字符串", "_asm_get_operand": "获取操作数数组中第 idx 个元素的指针", "_asm_is_c_call": "检查 Call 节点是否是 c.XXX 调用,返回属性名或 None", "_asm_add_operand": "添加操作数到数组,返回新计数(失败返回原计数)", "translate_c_asm": "翻译 c.Asm 内联汇编,返回结果 Value(无输出时返回 None)", "_llvmir_get_op": "获取第 i 个操作数槽位", "_llvmir_find_op_marker": "查找 %__OP 标记,返回标记开始位置或 None", "_llvmir_parse_op_num": "从 %__OPN__ 标记中解析编号 N", "_llvmir_match_icmp_pred": "将 icmp 预测字符串转为常量", "_llvmir_match_fcmp_pred": "将 fcmp 预测字符串转为常量", "_llvmir_extract_two_ops": "从模板中提取前两个 %__OP 标记的编号\n\n 结果写入 out_nums[0] 和 out_nums[1]\n 返回 1 成功, 0 失败\n ", "_llvmir_resolve_op": "根据操作数编号解析实际 Value", "_llvmir_store_outputs": "将结果存储到所有输出变量", "translate_c_llvmir": "翻译 c.LLVMIR 内联 LLVM IR,返回结果 Value", "_apply_struct_defaults": "应用结构体字段的默认值", "_translate_struct_ctor": "结构体构造函数:按字段顺序 store 参数值,返回结构体值\n\n OOP 结构体:alloca → call __before_init__(ptr) → call __init__(ptr, args) 或 store 参数 → load\n 普通结构体:alloca → zero + defaults → store 参数 → load\n ", "_do_virtual_call": "通过虚表间接调用虚方法,返回 call 结果(void 方法返回 None)", "_call_method_on_ptr": "在结构体指针上调用方法,返回 call 结果(void 方法返回 None)", "_infer_method_ret_ty": "根据方法名推断返回类型(stub 未注入时的回退方案)", "_translate_method_call": "翻译方法调用,返回 call 结果 Value", "_kwarg_name_matches": "检查关键字参数名 kw_arg 是否匹配参数名 param_name(跳过 % 前缀)", "_translate_struct_ctor_kw": "结构体构造函数(关键字参数版本)", "_translate_call_with_kwargs": "带关键字参数的函数调用,按参数顺序构建调用链表\n\n 使用 llvmlite 访问器函数绕过 stub 类型限制:\n found_func.Params/RetTy/Name 和 cur_param.Name/Ty/Next 在 stub\n 类型中字段不足,直接访问会被 TransPyC 静默跳过。\n ", "_translate_t_type_cast": "类型转换:根据参数类型和目标类型选择转换方式", "_extraLine truncated
-173
View File
@@ -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
View File
@@ -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"}
-104
View File
@@ -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
View File
@@ -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 "}
-51
View File
@@ -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