From fcd4d8a4387b7cdde68362d791e342cc3c640db8 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Fri, 31 Jul 2026 04:06:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E5=85=B3=E4=BA=8E?= =?UTF-8?q?=20snprintf=20=E7=9A=84=E9=94=99=E8=AF=AF=EF=BC=88=E4=B8=8D?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=95=BF=E5=BA=A6=E6=8E=A8=E5=AF=BC=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .transpyc_cache/6446627d4f07a1b5.pyi | 86 -------- .transpyc_cache/72e2d5ccb7cedcf1.pyi | 91 -------- TransPyV/output/81eb28ba912467a6.deps.json | 2 +- TransPyV/output/af9484a65085bf4b.deps.json | 2 +- TransPyV/temp/_phase1_manifest.json | 2 +- TransPyV/temp/_sha1_map.txt | 32 +-- TransPyV/temp/_shared_sym.json | Bin 1936696 -> 1940644 bytes includes/viperlib.vp | 236 +++++++++++---------- lib/core/Handles/HandlesClassDef.py | 5 + lib/core/Handles/HandlesMatch.py | 38 ++++ 10 files changed, 186 insertions(+), 308 deletions(-) delete mode 100644 .transpyc_cache/6446627d4f07a1b5.pyi delete mode 100644 .transpyc_cache/72e2d5ccb7cedcf1.pyi diff --git a/.transpyc_cache/6446627d4f07a1b5.pyi b/.transpyc_cache/6446627d4f07a1b5.pyi deleted file mode 100644 index 55f6a1f..0000000 --- a/.transpyc_cache/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.vp -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/.transpyc_cache/72e2d5ccb7cedcf1.pyi b/.transpyc_cache/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index f85ee45..0000000 --- a/.transpyc_cache/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.vp -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/TransPyV/output/81eb28ba912467a6.deps.json b/TransPyV/output/81eb28ba912467a6.deps.json index 46f055c..77026f5 100644 --- a/TransPyV/output/81eb28ba912467a6.deps.json +++ b/TransPyV/output/81eb28ba912467a6.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "lib.core.Handles.HandlesImports": "0ccfde54972334b1", "HandlesImports": "0ccfde54972334b1", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "llvmlite.__init__": "1d74d1d3a174c684", "__init__": "f3444ec56937284f", "llvmlite": "1d74d1d3a174c684", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "lib.core.Handles.HandlesType": "2b30cc2ce96fa464", "HandlesType": "2b30cc2ce96fa464", "lib.core.Handles.HandlesAssign": "2b59175b77f1304e", "HandlesAssign": "2b59175b77f1304e", "hashtable": "2b77d783c41d21d1", "llvmlite.__types": "2d8debefda779c40", "__types": "2d8debefda779c40", "lib.core.Handles.HandlesAugAssign": "31e49accebfc8aac", "HandlesAugAssign": "31e49accebfc8aac", "lib.core.Handles.HandlesStruct": "371fa89e15d8c015", "HandlesStruct": "371fa89e15d8c015", "stdlib": "3aa6057398be5673", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "lib.core.Handles.HandlesFor": "456fb516ba3c5002", "HandlesFor": "456fb516ba3c5002", "lib.Projectrans.Utils": "4650533467115342", "Utils": "4650533467115342", "lib.core.Handles.HandlesMain": "4a7b57e6bd18f65e", "HandlesMain": "4a7b57e6bd18f65e", "lib.core.Handles.HandlesReturn": "4c644ade1f0d6d02", "HandlesReturn": "4c644ade1f0d6d02", "string": "4daf5ed3f8e421a1", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.IncludesScanner": "4e052c29b4fe769c", "IncludesScanner": "4e052c29b4fe769c", "lib.core.Handles.HandlesAnnAssign": "53812752bc672fdb", "HandlesAnnAssign": "53812752bc672fdb", "lib.core.Phase1": "553972e4135f827e", "Phase1": "553972e4135f827e", "llvmlite.__builder": "5a1d8c48f1243746", "__builder": "5a1d8c48f1243746", "lib.core.Handles.HandlesTranslator": "62805d8ad3e9b5ba", "HandlesTranslator": "62805d8ad3e9b5ba", "lib.core.Handles.HandlesBase": "63a3d17e96a083ac", "HandlesBase": "63a3d17e96a083ac", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "llvmlite.__module": "692919c5a194ac8d", "__module": "692919c5a194ac8d", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "json.__init__": "6ddf430432a0e373", "json": "6ddf430432a0e373", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "lib.core.Handles.HandlesExpr": "787e3cfd2e1cf583", "HandlesExpr": "787e3cfd2e1cf583", "_list": "7cadfe07e983fd90", "lib.core.Handles.HandlesExprCall": "82ee4327adfe0c18", "HandlesExprCall": "82ee4327adfe0c18", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "lib.core.Handles.HandlesWhile": "8dc65d4c71e2936a", "HandlesWhile": "8dc65d4c71e2936a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "a26c73d7332b54b4", "StubMerger": "a26c73d7332b54b4", "subprocess": "a335eb99f2e34479", "lib.core.BuildPipeline": "a38b726f4a82545f", "BuildPipeline": "a38b726f4a82545f", "linkedlist": "a5e9a83e9db303ad", "atom": "aa246c6e6aa30484", "lib.core.Phase2": "aa34a7a33a3afab0", "Phase2": "aa34a7a33a3afab0", "lib.core.Handles.HandlesClassDef": "aa45364399b86a03", "HandlesClassDef": "aa45364399b86a03", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "argparse": "b370d93b74bf55cc", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "lib.core.Handles.HandlesFunctions": "b8a6e05318020e54", "HandlesFunctions": "b8a6e05318020e54", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.VLogger": "bdf5730851fb95f2", "VLogger": "bdf5730851fb95f2", "lib.core.Handles.HandlesExprOps": "be8c2d7b882881c8", "HandlesExprOps": "be8c2d7b882881c8", "lib.Projectrans.Config": "c0042adc0b7ec5df", "Config": "c0042adc0b7ec5df", "lib.__init__": "c2a4277744568003", "lib": "c2a4277744568003", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "memhub": "ca40915f11b8b6ad", "lib.core.Handles.HandlesVar": "cb1aa3a78af6f362", "HandlesVar": "cb1aa3a78af6f362", "lib.StubGen.Converter": "cba5876ccb277f42", "Converter": "cba5876ccb277f42", "ast.lexer": "e217def267d3d4a8", "lexer": "e217def267d3d4a8", "viperlib": "e307a2d809cef071", "lib.core.Handles.HandlesEnum": "f05b14a2ad5767a7", "HandlesEnum": "f05b14a2ad5767a7", "main": "f30a3b2d5f6bf092", "ast.__init__": "f3444ec56937284f", "ast": "f3444ec56937284f", "lib.core.Handles.HandlesIf": "f4cdbca2f8802c12", "HandlesIf": "f4cdbca2f8802c12", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "lib.core.Handles.HandlesAnnAssign": "0cc3dc5a1bb0c805", "HandlesAnnAssign": "0cc3dc5a1bb0c805", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "llvmlite.__init__": "1d74d1d3a174c684", "__init__": "f3444ec56937284f", "llvmlite": "1d74d1d3a174c684", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "hashtable": "2b77d783c41d21d1", "llvmlite.__types": "2d8debefda779c40", "__types": "2d8debefda779c40", "lib.core.BuildPipeline": "343b406cabc82fe9", "BuildPipeline": "343b406cabc82fe9", "stdlib": "3aa6057398be5673", "viperlib": "3ed8c578036234a7", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "lib.core.Handles.HandlesFor": "456fb516ba3c5002", "HandlesFor": "456fb516ba3c5002", "lib.Projectrans.Utils": "4650533467115342", "Utils": "4650533467115342", "lib.core.Handles.HandlesMain": "4a7b57e6bd18f65e", "HandlesMain": "4a7b57e6bd18f65e", "lib.core.Handles.HandlesReturn": "4c644ade1f0d6d02", "HandlesReturn": "4c644ade1f0d6d02", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.IncludesScanner": "55be14b41dd7ca15", "IncludesScanner": "55be14b41dd7ca15", "llvmlite.__builder": "5a1d8c48f1243746", "__builder": "5a1d8c48f1243746", "lib.core.Handles.HandlesAssign": "611a2ade7450d2ea", "HandlesAssign": "611a2ade7450d2ea", "lib.core.Handles.HandlesTranslator": "62805d8ad3e9b5ba", "HandlesTranslator": "62805d8ad3e9b5ba", "lib.core.Handles.HandlesBase": "63a3d17e96a083ac", "HandlesBase": "63a3d17e96a083ac", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "llvmlite.__module": "692919c5a194ac8d", "__module": "692919c5a194ac8d", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "json.__init__": "6ddf430432a0e373", "json": "6ddf430432a0e373", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "_list": "7cadfe07e983fd90", "lib.core.Handles.HandlesClassDef": "7cb3f5b12941ce89", "HandlesClassDef": "7cb3f5b12941ce89", "lib.core.Phase1": "7feaa478b74c4e3e", "Phase1": "7feaa478b74c4e3e", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "lib.core.Handles.HandlesWhile": "8dc65d4c71e2936a", "HandlesWhile": "8dc65d4c71e2936a", "lib.core.Phase2": "8de6943bee5d0f32", "Phase2": "8de6943bee5d0f32", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.Handles.HandlesExpr": "9b1f7f05ff99d863", "HandlesExpr": "9b1f7f05ff99d863", "subprocess": "a335eb99f2e34479", "linkedlist": "a5e9a83e9db303ad", "lib.core.Handles.HandlesType": "a6e43e1ab6aa79b7", "HandlesType": "a6e43e1ab6aa79b7", "atom": "aa246c6e6aa30484", "lib.core.Handles.HandlesNonlocal": "af9484a65085bf4b", "HandlesNonlocal": "af9484a65085bf4b", "argparse": "b370d93b74bf55cc", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "lib.core.Handles.HandlesFunctions": "b8a6e05318020e54", "HandlesFunctions": "b8a6e05318020e54", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.VLogger": "bdf5730851fb95f2", "VLogger": "bdf5730851fb95f2", "lib.core.Handles.HandlesExprOps": "be8c2d7b882881c8", "HandlesExprOps": "be8c2d7b882881c8", "lib.Projectrans.Config": "c0042adc0b7ec5df", "Config": "c0042adc0b7ec5df", "lib.__init__": "c2a4277744568003", "lib": "c2a4277744568003", "lib.core.Handles.HandlesImports": "c34e22cc668c6a6e", "HandlesImports": "c34e22cc668c6a6e", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "memhub": "ca40915f11b8b6ad", "lib.core.Handles.HandlesVar": "cb1aa3a78af6f362", "HandlesVar": "cb1aa3a78af6f362", "lib.StubGen.Converter": "cba5876ccb277f42", "Converter": "cba5876ccb277f42", "lib.core.Handles.HandlesExprCall": "cf3556225b0a3c8c", "HandlesExprCall": "cf3556225b0a3c8c", "lib.core.Handles.HandlesAugAssign": "d9dd5fce03a20af1", "HandlesAugAssign": "d9dd5fce03a20af1", "ast.lexer": "e217def267d3d4a8", "lexer": "e217def267d3d4a8", "lib.core.StubMerger": "ead693cb29a9c343", "StubMerger": "ead693cb29a9c343", "lib.core.Handles.HandlesEnum": "f05b14a2ad5767a7", "HandlesEnum": "f05b14a2ad5767a7", "lib.core.Handles.HandlesStruct": "f09b2f4a0f9d053e", "HandlesStruct": "f09b2f4a0f9d053e", "main": "f30a3b2d5f6bf092", "ast.__init__": "f3444ec56937284f", "ast": "f3444ec56937284f", "lib.core.Handles.HandlesIf": "f4cdbca2f8802c12", "HandlesIf": "f4cdbca2f8802c12", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227"} \ No newline at end of file diff --git a/TransPyV/output/af9484a65085bf4b.deps.json b/TransPyV/output/af9484a65085bf4b.deps.json index 4860860..852f87c 100644 --- a/TransPyV/output/af9484a65085bf4b.deps.json +++ b/TransPyV/output/af9484a65085bf4b.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "lib.core.Handles.HandlesImports": "0ccfde54972334b1", "HandlesImports": "0ccfde54972334b1", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "llvmlite.__init__": "1d74d1d3a174c684", "__init__": "f3444ec56937284f", "llvmlite": "1d74d1d3a174c684", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "lib.core.Handles.HandlesType": "2b30cc2ce96fa464", "HandlesType": "2b30cc2ce96fa464", "lib.core.Handles.HandlesAssign": "2b59175b77f1304e", "HandlesAssign": "2b59175b77f1304e", "hashtable": "2b77d783c41d21d1", "llvmlite.__types": "2d8debefda779c40", "__types": "2d8debefda779c40", "lib.core.Handles.HandlesAugAssign": "31e49accebfc8aac", "HandlesAugAssign": "31e49accebfc8aac", "lib.core.Handles.HandlesStruct": "371fa89e15d8c015", "HandlesStruct": "371fa89e15d8c015", "stdlib": "3aa6057398be5673", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "lib.core.Handles.HandlesFor": "456fb516ba3c5002", "HandlesFor": "456fb516ba3c5002", "lib.Projectrans.Utils": "4650533467115342", "Utils": "4650533467115342", "lib.core.Handles.HandlesMain": "4a7b57e6bd18f65e", "HandlesMain": "4a7b57e6bd18f65e", "lib.core.Handles.HandlesReturn": "4c644ade1f0d6d02", "HandlesReturn": "4c644ade1f0d6d02", "string": "4daf5ed3f8e421a1", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.IncludesScanner": "4e052c29b4fe769c", "IncludesScanner": "4e052c29b4fe769c", "lib.core.Handles.HandlesAnnAssign": "53812752bc672fdb", "HandlesAnnAssign": "53812752bc672fdb", "lib.core.Phase1": "553972e4135f827e", "Phase1": "553972e4135f827e", "llvmlite.__builder": "5a1d8c48f1243746", "__builder": "5a1d8c48f1243746", "lib.core.Handles.HandlesTranslator": "62805d8ad3e9b5ba", "HandlesTranslator": "62805d8ad3e9b5ba", "lib.core.Handles.HandlesBase": "63a3d17e96a083ac", "HandlesBase": "63a3d17e96a083ac", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "llvmlite.__module": "692919c5a194ac8d", "__module": "692919c5a194ac8d", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "json.__init__": "6ddf430432a0e373", "json": "6ddf430432a0e373", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "lib.core.Handles.HandlesExpr": "787e3cfd2e1cf583", "HandlesExpr": "787e3cfd2e1cf583", "_list": "7cadfe07e983fd90", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "lib.core.Handles.HandlesExprCall": "82ee4327adfe0c18", "HandlesExprCall": "82ee4327adfe0c18", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "lib.core.Handles.HandlesWhile": "8dc65d4c71e2936a", "HandlesWhile": "8dc65d4c71e2936a", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.StubMerger": "a26c73d7332b54b4", "StubMerger": "a26c73d7332b54b4", "subprocess": "a335eb99f2e34479", "lib.core.BuildPipeline": "a38b726f4a82545f", "BuildPipeline": "a38b726f4a82545f", "linkedlist": "a5e9a83e9db303ad", "atom": "aa246c6e6aa30484", "lib.core.Phase2": "aa34a7a33a3afab0", "Phase2": "aa34a7a33a3afab0", "lib.core.Handles.HandlesClassDef": "aa45364399b86a03", "HandlesClassDef": "aa45364399b86a03", "argparse": "b370d93b74bf55cc", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "lib.core.Handles.HandlesFunctions": "b8a6e05318020e54", "HandlesFunctions": "b8a6e05318020e54", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.VLogger": "bdf5730851fb95f2", "VLogger": "bdf5730851fb95f2", "lib.core.Handles.HandlesExprOps": "be8c2d7b882881c8", "HandlesExprOps": "be8c2d7b882881c8", "lib.Projectrans.Config": "c0042adc0b7ec5df", "Config": "c0042adc0b7ec5df", "lib.__init__": "c2a4277744568003", "lib": "c2a4277744568003", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "memhub": "ca40915f11b8b6ad", "lib.core.Handles.HandlesVar": "cb1aa3a78af6f362", "HandlesVar": "cb1aa3a78af6f362", "lib.StubGen.Converter": "cba5876ccb277f42", "Converter": "cba5876ccb277f42", "ast.lexer": "e217def267d3d4a8", "lexer": "e217def267d3d4a8", "viperlib": "e307a2d809cef071", "lib.core.Handles.HandlesEnum": "f05b14a2ad5767a7", "HandlesEnum": "f05b14a2ad5767a7", "main": "f30a3b2d5f6bf092", "ast.__init__": "f3444ec56937284f", "ast": "f3444ec56937284f", "lib.core.Handles.HandlesIf": "f4cdbca2f8802c12", "HandlesIf": "f4cdbca2f8802c12", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959"} \ No newline at end of file +{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "lib.core.Handles.HandlesAnnAssign": "0cc3dc5a1bb0c805", "HandlesAnnAssign": "0cc3dc5a1bb0c805", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "llvmlite.__init__": "1d74d1d3a174c684", "__init__": "f3444ec56937284f", "llvmlite": "1d74d1d3a174c684", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "hashtable": "2b77d783c41d21d1", "llvmlite.__types": "2d8debefda779c40", "__types": "2d8debefda779c40", "lib.core.BuildPipeline": "343b406cabc82fe9", "BuildPipeline": "343b406cabc82fe9", "stdlib": "3aa6057398be5673", "viperlib": "3ed8c578036234a7", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "lib.core.Handles.HandlesFor": "456fb516ba3c5002", "HandlesFor": "456fb516ba3c5002", "lib.Projectrans.Utils": "4650533467115342", "Utils": "4650533467115342", "lib.core.Handles.HandlesMain": "4a7b57e6bd18f65e", "HandlesMain": "4a7b57e6bd18f65e", "lib.core.Handles.HandlesReturn": "4c644ade1f0d6d02", "HandlesReturn": "4c644ade1f0d6d02", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "lib.core.IncludesScanner": "55be14b41dd7ca15", "IncludesScanner": "55be14b41dd7ca15", "llvmlite.__builder": "5a1d8c48f1243746", "__builder": "5a1d8c48f1243746", "lib.core.Handles.HandlesAssign": "611a2ade7450d2ea", "HandlesAssign": "611a2ade7450d2ea", "lib.core.Handles.HandlesTranslator": "62805d8ad3e9b5ba", "HandlesTranslator": "62805d8ad3e9b5ba", "lib.core.Handles.HandlesBase": "63a3d17e96a083ac", "HandlesBase": "63a3d17e96a083ac", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "llvmlite.__module": "692919c5a194ac8d", "__module": "692919c5a194ac8d", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "json.__init__": "6ddf430432a0e373", "json": "6ddf430432a0e373", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "stdarg": "71e0a3ffcb3ebfad", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "_list": "7cadfe07e983fd90", "lib.core.Handles.HandlesClassDef": "7cb3f5b12941ce89", "HandlesClassDef": "7cb3f5b12941ce89", "lib.core.Phase1": "7feaa478b74c4e3e", "Phase1": "7feaa478b74c4e3e", "lib.core.Handles.HandlesBody": "81eb28ba912467a6", "HandlesBody": "81eb28ba912467a6", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "lib.core.Handles.HandlesWhile": "8dc65d4c71e2936a", "HandlesWhile": "8dc65d4c71e2936a", "lib.core.Phase2": "8de6943bee5d0f32", "Phase2": "8de6943bee5d0f32", "hashlib.__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "lib.core.Handles.HandlesExpr": "9b1f7f05ff99d863", "HandlesExpr": "9b1f7f05ff99d863", "subprocess": "a335eb99f2e34479", "linkedlist": "a5e9a83e9db303ad", "lib.core.Handles.HandlesType": "a6e43e1ab6aa79b7", "HandlesType": "a6e43e1ab6aa79b7", "atom": "aa246c6e6aa30484", "argparse": "b370d93b74bf55cc", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "lib.core.Handles.HandlesFunctions": "b8a6e05318020e54", "HandlesFunctions": "b8a6e05318020e54", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "lib.core.VLogger": "bdf5730851fb95f2", "VLogger": "bdf5730851fb95f2", "lib.core.Handles.HandlesExprOps": "be8c2d7b882881c8", "HandlesExprOps": "be8c2d7b882881c8", "lib.Projectrans.Config": "c0042adc0b7ec5df", "Config": "c0042adc0b7ec5df", "lib.__init__": "c2a4277744568003", "lib": "c2a4277744568003", "lib.core.Handles.HandlesImports": "c34e22cc668c6a6e", "HandlesImports": "c34e22cc668c6a6e", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "memhub": "ca40915f11b8b6ad", "lib.core.Handles.HandlesVar": "cb1aa3a78af6f362", "HandlesVar": "cb1aa3a78af6f362", "lib.StubGen.Converter": "cba5876ccb277f42", "Converter": "cba5876ccb277f42", "lib.core.Handles.HandlesExprCall": "cf3556225b0a3c8c", "HandlesExprCall": "cf3556225b0a3c8c", "lib.core.Handles.HandlesAugAssign": "d9dd5fce03a20af1", "HandlesAugAssign": "d9dd5fce03a20af1", "ast.lexer": "e217def267d3d4a8", "lexer": "e217def267d3d4a8", "lib.core.StubMerger": "ead693cb29a9c343", "StubMerger": "ead693cb29a9c343", "lib.core.Handles.HandlesEnum": "f05b14a2ad5767a7", "HandlesEnum": "f05b14a2ad5767a7", "lib.core.Handles.HandlesStruct": "f09b2f4a0f9d053e", "HandlesStruct": "f09b2f4a0f9d053e", "main": "f30a3b2d5f6bf092", "ast.__init__": "f3444ec56937284f", "ast": "f3444ec56937284f", "lib.core.Handles.HandlesIf": "f4cdbca2f8802c12", "HandlesIf": "f4cdbca2f8802c12", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227"} \ No newline at end of file diff --git a/TransPyV/temp/_phase1_manifest.json b/TransPyV/temp/_phase1_manifest.json index a7302c1..f19d5cc 100644 --- a/TransPyV/temp/_phase1_manifest.json +++ b/TransPyV/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Config.vp": {"sha1": "c0042adc0b7ec5df", "mtime": 1785332415.2264168, "size": 14060}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Utils.vp": {"sha1": "4650533467115342", "mtime": 1785332415.2054548, "size": 4900}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\StubGen\\Converter.vp": {"sha1": "cba5876ccb277f42", "mtime": 1785403633.0886283, "size": 35262}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\__init__.vp": {"sha1": "c2a4277744568003", "mtime": 1785403660.4383688, "size": 820}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\BuildPipeline.vp": {"sha1": "a38b726f4a82545f", "mtime": 1785397411.8500457, "size": 23570}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAnnAssign.vp": {"sha1": "53812752bc672fdb", "mtime": 1785404927.245082, "size": 22880}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAssign.vp": {"sha1": "2b59175b77f1304e", "mtime": 1785343736.8740923, "size": 24369}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAugAssign.vp": {"sha1": "31e49accebfc8aac", "mtime": 1784751046.0461829, "size": 12874}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBase.vp": {"sha1": "63a3d17e96a083ac", "mtime": 1785332415.2080498, "size": 8740}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBody.vp": {"sha1": "81eb28ba912467a6", "mtime": 1784566611.8626723, "size": 8538}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesClassDef.vp": {"sha1": "aa45364399b86a03", "mtime": 1785345709.6485052, "size": 142863}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesEnum.vp": {"sha1": "f05b14a2ad5767a7", "mtime": 1784741624.7278736, "size": 8520}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExpr.vp": {"sha1": "787e3cfd2e1cf583", "mtime": 1785405514.8234684, "size": 148987}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprCall.vp": {"sha1": "82ee4327adfe0c18", "mtime": 1785407383.1033268, "size": 264383}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprOps.vp": {"sha1": "be8c2d7b882881c8", "mtime": 1784791452.111348, "size": 12796}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFor.vp": {"sha1": "456fb516ba3c5002", "mtime": 1785332415.1896677, "size": 17319}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFunctions.vp": {"sha1": "b8a6e05318020e54", "mtime": 1785407412.993293, "size": 45475}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesIf.vp": {"sha1": "f4cdbca2f8802c12", "mtime": 1785390159.3673935, "size": 5626}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesImports.vp": {"sha1": "0ccfde54972334b1", "mtime": 1785404358.8328092, "size": 25274}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesMain.vp": {"sha1": "4a7b57e6bd18f65e", "mtime": 1785332415.1935978, "size": 21362}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesNonlocal.vp": {"sha1": "af9484a65085bf4b", "mtime": 1784540868.0555332, "size": 5336}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesReturn.vp": {"sha1": "4c644ade1f0d6d02", "mtime": 1785394149.332443, "size": 6334}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesStruct.vp": {"sha1": "371fa89e15d8c015", "mtime": 1785352932.9305031, "size": 48672}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesTranslator.vp": {"sha1": "62805d8ad3e9b5ba", "mtime": 1785332415.2370398, "size": 18196}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesType.vp": {"sha1": "2b30cc2ce96fa464", "mtime": 1785407406.1083772, "size": 60347}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesVar.vp": {"sha1": "cb1aa3a78af6f362", "mtime": 1785332415.2565334, "size": 15697}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesWhile.vp": {"sha1": "8dc65d4c71e2936a", "mtime": 1785390170.5239043, "size": 5202}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\IncludesScanner.vp": {"sha1": "4e052c29b4fe769c", "mtime": 1785404099.6734524, "size": 13049}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase1.vp": {"sha1": "553972e4135f827e", "mtime": 1785403724.71735, "size": 51453}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase2.vp": {"sha1": "aa34a7a33a3afab0", "mtime": 1785404255.077619, "size": 50923}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\StubMerger.vp": {"sha1": "a26c73d7332b54b4", "mtime": 1785404303.553987, "size": 92427}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\VLogger.vp": {"sha1": "bdf5730851fb95f2", "mtime": 1785332415.2542837, "size": 10068}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\main.vp": {"sha1": "f30a3b2d5f6bf092", "mtime": 1785403637.7077572, "size": 27278}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.vp": {"sha1": "7cadfe07e983fd90", "mtime": 1785338614.5410473, "size": 3238}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\argparse.vp": {"sha1": "b370d93b74bf55cc", "mtime": 1785347242.759819, "size": 18275}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.vp": {"sha1": "f3444ec56937284f", "mtime": 1785332415.2553575, "size": 3421}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.vp": {"sha1": "4337fb260448bbe2", "mtime": 1784006094.7981195, "size": 11489}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.vp": {"sha1": "22bc0df83b3f0e62", "mtime": 1785332415.1850114, "size": 14992}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.vp": {"sha1": "b543bc1dfb592119", "mtime": 1785332415.2436252, "size": 40886}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.vp": {"sha1": "e217def267d3d4a8", "mtime": 1785332415.2310088, "size": 24109}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.vp": {"sha1": "4dd6b3f1427d1cc5", "mtime": 1782961799.8492737, "size": 12309}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.vp": {"sha1": "fde6db0747bdd959", "mtime": 1785348036.106818, "size": 87525}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.vp": {"sha1": "657e182b27c2a022", "mtime": 1783929993.759902, "size": 37926}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.vp": {"sha1": "b547ac4f380bddb6", "mtime": 1783165480.469121, "size": 13722}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__init__.vp": {"sha1": "96837bcc64032444", "mtime": 1777902641.540433, "size": 186}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__md5.vp": {"sha1": "19f8024d10c828e8", "mtime": 1784356818.7075372, "size": 5847}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha1.vp": {"sha1": "0df65b8ed15664b0", "mtime": 1784356827.656474, "size": 4516}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha256.vp": {"sha1": "c9d54a4158f7f5a8", "mtime": 1782266203.9352357, "size": 5332}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha512.vp": {"sha1": "6ff26590374ae6fc", "mtime": 1782266223.3380039, "size": 7162}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashtable.vp": {"sha1": "2b77d783c41d21d1", "mtime": 1785407919.1879103, "size": 9719}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__init__.vp": {"sha1": "6ddf430432a0e373", "mtime": 1785408324.3244681, "size": 7707}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__parser.vp": {"sha1": "240a9a4157959a9f", "mtime": 1782826918.100951, "size": 7517}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__writer.vp": {"sha1": "20cd49775c100a38", "mtime": 1782826901.8906734, "size": 3784}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.vp": {"sha1": "a5e9a83e9db303ad", "mtime": 1785337078.812168, "size": 17137}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__init__.vp": {"sha1": "1d74d1d3a174c684", "mtime": 1785332415.2151341, "size": 17031}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__builder.vp": {"sha1": "5a1d8c48f1243746", "mtime": 1785342190.6646752, "size": 51186}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__function.vp": {"sha1": "874bac141c97bae9", "mtime": 1785342172.222551, "size": 30049}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__module.vp": {"sha1": "692919c5a194ac8d", "mtime": 1785332415.2502255, "size": 23144}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__types.vp": {"sha1": "2d8debefda779c40", "mtime": 1785332415.2141044, "size": 18976}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__values.vp": {"sha1": "f9e36e2cd6fa659f", "mtime": 1784566611.8301415, "size": 6739}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__verify.vp": {"sha1": "6b3bc463fd044545", "mtime": 1784566611.82952, "size": 14751}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "ca40915f11b8b6ad", "mtime": 1785336321.3175714, "size": 21931}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.vp": {"sha1": "b57252077e6b596b", "mtime": 1785332415.2187803, "size": 1266}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\posix.vp": {"sha1": "28de517e3820658a", "mtime": 1785335629.2014928, "size": 10586}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "3aa6057398be5673", "mtime": 1785319487.0321114, "size": 374}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "4daf5ed3f8e421a1", "mtime": 1785332415.2233481, "size": 11037}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\subprocess.vp": {"sha1": "a335eb99f2e34479", "mtime": 1785319401.2041914, "size": 7841}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\sys.vp": {"sha1": "0c67644125bea0fd", "mtime": 1785325556.7317626, "size": 5606}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "e307a2d809cef071", "mtime": 1785318582.5499828, "size": 56783}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\fileio.vp": {"sha1": "72dbbb563aa943b0", "mtime": 1785332415.1891341, "size": 13751}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32file.vp": {"sha1": "f6b51804a0ba8ff0", "mtime": 1782531158.744144, "size": 8424}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.vp": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32sync.vp": {"sha1": "06f53cc594b4ac6c", "mtime": 1782297500.2581685, "size": 4726}} \ No newline at end of file +{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Config.vp": {"sha1": "c0042adc0b7ec5df", "mtime": 1785332415.2264168, "size": 14060}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\Projectrans\\Utils.vp": {"sha1": "4650533467115342", "mtime": 1785332415.2054548, "size": 4900}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\StubGen\\Converter.vp": {"sha1": "cba5876ccb277f42", "mtime": 1785424554.7179716, "size": 35262}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\__init__.vp": {"sha1": "c2a4277744568003", "mtime": 1785424554.7031634, "size": 820}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\BuildPipeline.vp": {"sha1": "343b406cabc82fe9", "mtime": 1785440580.5088792, "size": 23661}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAnnAssign.vp": {"sha1": "0cc3dc5a1bb0c805", "mtime": 1785428023.816983, "size": 24643}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAssign.vp": {"sha1": "611a2ade7450d2ea", "mtime": 1785427819.8937466, "size": 25063}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesAugAssign.vp": {"sha1": "d9dd5fce03a20af1", "mtime": 1785424554.716454, "size": 14303}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBase.vp": {"sha1": "63a3d17e96a083ac", "mtime": 1785332415.2080498, "size": 8740}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesBody.vp": {"sha1": "81eb28ba912467a6", "mtime": 1784566611.8626723, "size": 8538}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesClassDef.vp": {"sha1": "7cb3f5b12941ce89", "mtime": 1785441874.507578, "size": 145069}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesEnum.vp": {"sha1": "f05b14a2ad5767a7", "mtime": 1784741624.7278736, "size": 8520}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExpr.vp": {"sha1": "9b1f7f05ff99d863", "mtime": 1785428023.8272786, "size": 153922}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprCall.vp": {"sha1": "cf3556225b0a3c8c", "mtime": 1785441909.8620112, "size": 265440}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesExprOps.vp": {"sha1": "be8c2d7b882881c8", "mtime": 1784791452.111348, "size": 12796}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFor.vp": {"sha1": "456fb516ba3c5002", "mtime": 1785332415.1896677, "size": 17319}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesFunctions.vp": {"sha1": "b8a6e05318020e54", "mtime": 1785424554.702158, "size": 45475}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesIf.vp": {"sha1": "f4cdbca2f8802c12", "mtime": 1785390159.3673935, "size": 5626}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesImports.vp": {"sha1": "c34e22cc668c6a6e", "mtime": 1785424554.7057025, "size": 25292}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesMain.vp": {"sha1": "4a7b57e6bd18f65e", "mtime": 1785332415.1935978, "size": 21362}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesNonlocal.vp": {"sha1": "af9484a65085bf4b", "mtime": 1784540868.0555332, "size": 5336}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesReturn.vp": {"sha1": "4c644ade1f0d6d02", "mtime": 1785394149.332443, "size": 6334}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesStruct.vp": {"sha1": "f09b2f4a0f9d053e", "mtime": 1785426809.706652, "size": 47907}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesTranslator.vp": {"sha1": "62805d8ad3e9b5ba", "mtime": 1785332415.2370398, "size": 18196}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesType.vp": {"sha1": "a6e43e1ab6aa79b7", "mtime": 1785441893.1464703, "size": 71572}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesVar.vp": {"sha1": "cb1aa3a78af6f362", "mtime": 1785332415.2565334, "size": 15697}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Handles\\HandlesWhile.vp": {"sha1": "8dc65d4c71e2936a", "mtime": 1785390170.5239043, "size": 5202}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\IncludesScanner.vp": {"sha1": "55be14b41dd7ca15", "mtime": 1785424554.7031634, "size": 13067}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase1.vp": {"sha1": "7feaa478b74c4e3e", "mtime": 1785424554.7122867, "size": 51107}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\Phase2.vp": {"sha1": "8de6943bee5d0f32", "mtime": 1785424554.7132866, "size": 49481}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\StubMerger.vp": {"sha1": "ead693cb29a9c343", "mtime": 1785424554.7067463, "size": 96006}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\lib\\core\\VLogger.vp": {"sha1": "bdf5730851fb95f2", "mtime": 1785332415.2542837, "size": 10068}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\TransPyV\\App\\main.vp": {"sha1": "f30a3b2d5f6bf092", "mtime": 1785424554.7082667, "size": 27278}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.vp": {"sha1": "7cadfe07e983fd90", "mtime": 1785338614.5410473, "size": 3238}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\argparse.vp": {"sha1": "b370d93b74bf55cc", "mtime": 1785347242.759819, "size": 18275}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.vp": {"sha1": "f3444ec56937284f", "mtime": 1785332415.2553575, "size": 3421}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.vp": {"sha1": "4337fb260448bbe2", "mtime": 1784006094.7981195, "size": 11489}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.vp": {"sha1": "22bc0df83b3f0e62", "mtime": 1785332415.1850114, "size": 14992}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.vp": {"sha1": "b543bc1dfb592119", "mtime": 1785332415.2436252, "size": 40886}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.vp": {"sha1": "e217def267d3d4a8", "mtime": 1785332415.2310088, "size": 24109}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.vp": {"sha1": "4dd6b3f1427d1cc5", "mtime": 1782961799.8492737, "size": 12309}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.vp": {"sha1": "fde6db0747bdd959", "mtime": 1785348036.106818, "size": 87525}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.vp": {"sha1": "657e182b27c2a022", "mtime": 1783929993.759902, "size": 37926}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.vp": {"sha1": "b547ac4f380bddb6", "mtime": 1783165480.469121, "size": 13722}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__init__.vp": {"sha1": "96837bcc64032444", "mtime": 1777902641.540433, "size": 186}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__md5.vp": {"sha1": "19f8024d10c828e8", "mtime": 1784356818.7075372, "size": 5847}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha1.vp": {"sha1": "0df65b8ed15664b0", "mtime": 1784356827.656474, "size": 4516}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha256.vp": {"sha1": "c9d54a4158f7f5a8", "mtime": 1782266203.9352357, "size": 5332}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha512.vp": {"sha1": "6ff26590374ae6fc", "mtime": 1782266223.3380039, "size": 7162}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashtable.vp": {"sha1": "2b77d783c41d21d1", "mtime": 1785424554.7031634, "size": 9719}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__init__.vp": {"sha1": "6ddf430432a0e373", "mtime": 1785424554.7204792, "size": 7707}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__parser.vp": {"sha1": "240a9a4157959a9f", "mtime": 1782826918.100951, "size": 7517}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__writer.vp": {"sha1": "20cd49775c100a38", "mtime": 1782826901.8906734, "size": 3784}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.vp": {"sha1": "a5e9a83e9db303ad", "mtime": 1785337078.812168, "size": 17137}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__init__.vp": {"sha1": "1d74d1d3a174c684", "mtime": 1785332415.2151341, "size": 17031}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__builder.vp": {"sha1": "5a1d8c48f1243746", "mtime": 1785342190.6646752, "size": 51186}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__function.vp": {"sha1": "874bac141c97bae9", "mtime": 1785342172.222551, "size": 30049}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__module.vp": {"sha1": "692919c5a194ac8d", "mtime": 1785332415.2502255, "size": 23144}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__types.vp": {"sha1": "2d8debefda779c40", "mtime": 1785332415.2141044, "size": 18976}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__values.vp": {"sha1": "f9e36e2cd6fa659f", "mtime": 1784566611.8301415, "size": 6739}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__verify.vp": {"sha1": "6b3bc463fd044545", "mtime": 1784566611.82952, "size": 14751}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "ca40915f11b8b6ad", "mtime": 1785336321.3175714, "size": 21931}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.vp": {"sha1": "b57252077e6b596b", "mtime": 1785332415.2187803, "size": 1266}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\posix.vp": {"sha1": "28de517e3820658a", "mtime": 1785335629.2014928, "size": 10586}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "3aa6057398be5673", "mtime": 1785319487.0321114, "size": 374}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "ffaf70367668b227", "mtime": 1785424554.7179716, "size": 11048}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\subprocess.vp": {"sha1": "a335eb99f2e34479", "mtime": 1785319401.2041914, "size": 7841}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\sys.vp": {"sha1": "0c67644125bea0fd", "mtime": 1785325556.7317626, "size": 5606}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "3ed8c578036234a7", "mtime": 1785439636.6696486, "size": 57646}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\fileio.vp": {"sha1": "72dbbb563aa943b0", "mtime": 1785332415.1891341, "size": 13751}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32file.vp": {"sha1": "f6b51804a0ba8ff0", "mtime": 1782531158.744144, "size": 8424}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.vp": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32sync.vp": {"sha1": "06f53cc594b4ac6c", "mtime": 1782297500.2581685, "size": 4726}} \ No newline at end of file diff --git a/TransPyV/temp/_sha1_map.txt b/TransPyV/temp/_sha1_map.txt index d730a28..62fe853 100644 --- a/TransPyV/temp/_sha1_map.txt +++ b/TransPyV/temp/_sha1_map.txt @@ -1,7 +1,7 @@ 067c78e9f121dce3:includes/w32\win32process.vp 06f53cc594b4ac6c:includes/w32\win32sync.vp 0c67644125bea0fd:includes/sys.vp -0ccfde54972334b1:lib/core/Handles/HandlesImports.vp +0cc3dc5a1bb0c805:lib/core/Handles/HandlesAnnAssign.vp 0df65b8ed15664b0:includes/hashlib\__sha1.vp 19f8024d10c828e8:includes/hashlib\__md5.vp 1d74d1d3a174c684:includes/llvmlite\__init__.vp @@ -10,24 +10,20 @@ 240a9a4157959a9f:includes/json\__parser.vp 285b6aa29a34754d:includes/stdio.vp 28de517e3820658a:includes/posix.vp -2b30cc2ce96fa464:lib/core/Handles/HandlesType.vp -2b59175b77f1304e:lib/core/Handles/HandlesAssign.vp 2b77d783c41d21d1:includes/hashtable.vp 2d8debefda779c40:includes/llvmlite\__types.vp -31e49accebfc8aac:lib/core/Handles/HandlesAugAssign.vp -371fa89e15d8c015:lib/core/Handles/HandlesStruct.vp +343b406cabc82fe9:lib/core/BuildPipeline.vp 3aa6057398be5673:includes/stdlib.vp +3ed8c578036234a7:includes/viperlib.vp 4337fb260448bbe2:includes/ast\astaux.vp 456fb516ba3c5002:lib/core/Handles/HandlesFor.vp 4650533467115342:lib/Projectrans/Utils.vp 4a7b57e6bd18f65e:lib/core/Handles/HandlesMain.vp 4c644ade1f0d6d02:lib/core/Handles/HandlesReturn.vp -4daf5ed3f8e421a1:includes/string.vp 4dd6b3f1427d1cc5:includes/ast\match.vp -4e052c29b4fe769c:lib/core/IncludesScanner.vp -53812752bc672fdb:lib/core/Handles/HandlesAnnAssign.vp -553972e4135f827e:lib/core/Phase1.vp +55be14b41dd7ca15:lib/core/IncludesScanner.vp 5a1d8c48f1243746:includes/llvmlite\__builder.vp +611a2ade7450d2ea:lib/core/Handles/HandlesAssign.vp 62805d8ad3e9b5ba:lib/core/Handles/HandlesTranslator.vp 63a3d17e96a083ac:lib/core/Handles/HandlesBase.vp 657e182b27c2a022:includes/ast\stmts.vp @@ -37,20 +33,19 @@ 6ff26590374ae6fc:includes/hashlib\__sha512.vp 71e0a3ffcb3ebfad:includes/stdarg.vp 72dbbb563aa943b0:includes/w32\fileio.vp -787e3cfd2e1cf583:lib/core/Handles/HandlesExpr.vp 7cadfe07e983fd90:includes/_list.vp +7cb3f5b12941ce89:lib/core/Handles/HandlesClassDef.vp +7feaa478b74c4e3e:lib/core/Phase1.vp 81eb28ba912467a6:lib/core/Handles/HandlesBody.vp -82ee4327adfe0c18:lib/core/Handles/HandlesExprCall.vp 874bac141c97bae9:includes/llvmlite\__function.vp 8dc65d4c71e2936a:lib/core/Handles/HandlesWhile.vp +8de6943bee5d0f32:lib/core/Phase2.vp 96837bcc64032444:includes/hashlib\__init__.vp -a26c73d7332b54b4:lib/core/StubMerger.vp +9b1f7f05ff99d863:lib/core/Handles/HandlesExpr.vp a335eb99f2e34479:includes/subprocess.vp -a38b726f4a82545f:lib/core/BuildPipeline.vp a5e9a83e9db303ad:includes/linkedlist.vp +a6e43e1ab6aa79b7:lib/core/Handles/HandlesType.vp aa246c6e6aa30484:includes/atom.vp -aa34a7a33a3afab0:lib/core/Phase2.vp -aa45364399b86a03:lib/core/Handles/HandlesClassDef.vp af9484a65085bf4b:lib/core/Handles/HandlesNonlocal.vp b370d93b74bf55cc:includes/argparse.vp b543bc1dfb592119:includes/ast\exprs.vp @@ -62,14 +57,18 @@ bdf5730851fb95f2:lib/core/VLogger.vp be8c2d7b882881c8:lib/core/Handles/HandlesExprOps.vp c0042adc0b7ec5df:lib/Projectrans/Config.vp c2a4277744568003:lib/__init__.vp +c34e22cc668c6a6e:lib/core/Handles/HandlesImports.vp c9d54a4158f7f5a8:includes/hashlib\__sha256.vp c9f4be41ca1cc2b4:includes/viperio.vp ca40915f11b8b6ad:includes/memhub.vp cb1aa3a78af6f362:lib/core/Handles/HandlesVar.vp cba5876ccb277f42:lib/StubGen/Converter.vp +cf3556225b0a3c8c:lib/core/Handles/HandlesExprCall.vp +d9dd5fce03a20af1:lib/core/Handles/HandlesAugAssign.vp e217def267d3d4a8:includes/ast\lexer.vp -e307a2d809cef071:includes/viperlib.vp +ead693cb29a9c343:lib/core/StubMerger.vp f05b14a2ad5767a7:lib/core/Handles/HandlesEnum.vp +f09b2f4a0f9d053e:lib/core/Handles/HandlesStruct.vp f30a3b2d5f6bf092:main.vp f3444ec56937284f:includes/ast\__init__.vp f4cdbca2f8802c12:lib/core/Handles/HandlesIf.vp @@ -78,3 +77,4 @@ f6b51804a0ba8ff0:includes/w32\win32file.vp f9e36e2cd6fa659f:includes/llvmlite\__values.vp fc980acec33d69a7:includes/w32\win32base.vp fde6db0747bdd959:includes/ast\parser.vp +ffaf70367668b227:includes/string.vp diff --git a/TransPyV/temp/_shared_sym.json b/TransPyV/temp/_shared_sym.json index 21dcd81e0cd83c6ed895976979e4d8ea51efd36c..e8a72ba2dbe6095c40fb2c1f5e4541675adc5f35 100644 GIT binary patch delta 151156 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 _DH3>S|v#Zes)$6D3wS`kF^=q1Xg_U)O3V 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 V(oXinrz@2qwj0xDmC78S{|BDG7%2b% delta 150246 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 diff --git a/includes/viperlib.vp b/includes/viperlib.vp index 0bc5d48..f765701 100644 --- a/includes/viperlib.vp +++ b/includes/viperlib.vp @@ -21,7 +21,9 @@ def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: return vsnprintf(buf, 0x7FFFFFFF, rule, args) def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: - if buf is None or fmt is None or size == 0: return 0 + if fmt is None: return 0 + if buf is None or size == 0: + return vsnprintf(None, 0, fmt, args) return vsnprintf(buf, size, fmt, args) # Check floating-point special values (IEEE 754) @@ -39,7 +41,17 @@ def _check_special_float(fv: t.CDouble) -> t.CInt: return 3 def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: - if buf is None or fmt is None or size == 0: return 0 + if fmt is None: return 0 + # 长度探测模式:buf is None 时只计算格式化后长度,不实际写入 + # _step=0 使 ptr 不前进,反复写入同一个 dummy 字节(无害),write_count 正确累加 + count_mode: t.CInt = 0 + _step: t.CInt = 1 + _dummy: t.CChar = '\0' + if buf is None or size == 0: + count_mode = 1 + _step = 0 + buf = c.Addr(_dummy) + size = 0x7FFFFFFF ptr: t.CChar | t.CPtr = buf write_count: t.CInt = 0 temp: t.CArray[t.CChar, 68] @@ -48,7 +60,7 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C if c.Deref(fmt) != 37: ptr[0] = c.Deref(fmt) write_count += 1 - ptr += 1 + ptr += _step fmt += 1 else: fmt += 1 @@ -121,7 +133,7 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C ptr_i: t.CInt = va_arg(ap) ptr[0] = t.CChar(ptr_i) write_count += 1 - ptr += 1 + ptr += _step else: ptr_i: t.CInt = va_arg(ap) elif c.Deref(fmt) == 115: @@ -137,19 +149,19 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 while c.Deref(s) != 0 and write_count < size - 1: ptr[0] = c.Deref(s) write_count += 1 - ptr += 1 + ptr += _step s += 1 if left_align and width > slen: pad_count = width - slen while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 elif c.Deref(fmt) == 100 or c.Deref(fmt) == 105: if is_long_long or is_size or is_long: @@ -192,26 +204,26 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 if pad_zero and width > i: pad_count = width - i while pad_count > 0 and write_count < size - 1: ptr[0] = 48 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 while i > 0 and write_count < size - 1: i -= 1 ptr[0] = temp[i] write_count += 1 - ptr += 1 + ptr += _step if left_align and width > i: pad_count = width - i while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 elif c.Deref(fmt) == 117: if is_long or is_long_long or is_size: @@ -230,26 +242,26 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 if pad_zero and width > i: pad_count = width - i while pad_count > 0 and write_count < size - 1: ptr[0] = 48 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 while i > 0 and write_count < size - 1: i -= 1 ptr[0] = temp[i] write_count += 1 - ptr += 1 + ptr += _step if left_align and width > i: pad_count = width - i while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 elif c.Deref(fmt) == 120: if is_long or is_long_long or is_size: @@ -280,35 +292,35 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 if prefix_len > 0: if write_count < size - 1: ptr[0] = 48 write_count += 1 - ptr += 1 + ptr += _step if write_count < size - 1: ptr[0] = 120 write_count += 1 - ptr += 1 + ptr += _step if pad_zero and width > effective_len: pad_count = width - effective_len while pad_count > 0 and write_count < size - 1: ptr[0] = 48 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 while i > 0 and write_count < size - 1: i -= 1 ptr[0] = temp[i] write_count += 1 - ptr += 1 + ptr += _step if left_align and width > effective_len: pad_count = width - effective_len while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 elif c.Deref(fmt) == 88: if is_long or is_long_long or is_size: @@ -339,35 +351,35 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 if prefix_len > 0: if write_count < size - 1: ptr[0] = 48 write_count += 1 - ptr += 1 + ptr += _step if write_count < size - 1: ptr[0] = 88 write_count += 1 - ptr += 1 + ptr += _step if pad_zero and width > effective_len: pad_count = width - effective_len while pad_count > 0 and write_count < size - 1: ptr[0] = 48 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 while i > 0 and write_count < size - 1: i -= 1 ptr[0] = temp[i] write_count += 1 - ptr += 1 + ptr += _step if left_align and width > effective_len: pad_count = width - effective_len while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 elif c.Deref(fmt) == 111: if is_long or is_long_long or is_size: @@ -397,26 +409,26 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 if pad_zero and width > i: pad_count = width - i while pad_count > 0 and write_count < size - 1: ptr[0] = 48 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 while i > 0 and write_count < size - 1: i -= 1 ptr[0] = temp[i] write_count += 1 - ptr += 1 + ptr += _step if left_align and width > i: pad_count = width - i while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 elif c.Deref(fmt) == 98: if is_long or is_long_long or is_size: @@ -446,26 +458,26 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 if pad_zero and width > i: pad_count = width - i while pad_count > 0 and write_count < size - 1: ptr[0] = 48 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 while i > 0 and write_count < size - 1: i -= 1 ptr[0] = temp[i] write_count += 1 - ptr += 1 + ptr += _step if left_align and width > i: pad_count = width - i while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 elif c.Deref(fmt) == 112: ptr_val: t.CUInt64T = t.CUInt64T(va_arg(ap, t.CPtr)) @@ -500,26 +512,26 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 if pad_zero and width > i: pad_count = width - i while pad_count > 0 and write_count < size - 1: ptr[0] = 48 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 while i > 0 and write_count < size - 1: i -= 1 ptr[0] = temp[i] write_count += 1 - ptr += 1 + ptr += _step if left_align and width > i: pad_count = width - i while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 elif c.Deref(fmt) == 102 or c.Deref(fmt) == 70: f_upper: t.CInt = 1 if c.Deref(fmt) == 70 else 0 @@ -540,23 +552,23 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while f_pad > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step f_pad -= 1 if f_sp == 2: if write_count < size - 1: ptr[0] = 45 write_count += 1 - ptr += 1 + ptr += _step elif f_sp == 1 and show_sign: if write_count < size - 1: ptr[0] = 43 write_count += 1 - ptr += 1 + ptr += _step elif f_sp == 1 and space_sign: if write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step fi_c: t.CInt = 0 while fi_c < 3 and write_count < size - 1: fc: t.CInt = 0 @@ -580,14 +592,14 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C fc -= 32 ptr[0] = t.CChar(fc) write_count += 1 - ptr += 1 + ptr += _step fi_c += 1 if left_align and width > f_total_len: f_pad = width - f_total_len while f_pad > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step f_pad -= 1 fmt += 1 continue @@ -595,18 +607,18 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C if write_count < size - 1: ptr[0] = 45 write_count += 1 - ptr += 1 + ptr += _step fv = 0.0 - fv elif show_sign: if write_count < size - 1: ptr[0] = 43 write_count += 1 - ptr += 1 + ptr += _step elif space_sign: if write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step di: t.CInt = 0 work: t.CDouble = fv if work < 1.0: @@ -635,25 +647,25 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 if pad_zero and width > f_total: pad_count = width - f_total while pad_count > 0 and write_count < size - 1: ptr[0] = 48 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 while di > 0 and write_count < size - 1: di -= 1 ptr[0] = temp[di] write_count += 1 - ptr += 1 + ptr += _step if precision > 0: if write_count < size - 1: ptr[0] = 46 write_count += 1 - ptr += 1 + ptr += _step fi: t.CInt = 0 while fi < precision and fi < TEMP_BUF_SIZE - 1: temp[fi] = t.CChar(frac_part % 10 + 48) @@ -666,18 +678,18 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C fi -= 1 ptr[0] = temp[fi] write_count += 1 - ptr += 1 + ptr += _step elif alt_form: if write_count < size - 1: ptr[0] = 46 write_count += 1 - ptr += 1 + ptr += _step if left_align and width > f_total: pad_count = width - f_total while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 elif c.Deref(fmt) == 101 or c.Deref(fmt) == 69: if precision < 0: precision = 6 @@ -698,23 +710,23 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while e_pad > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step e_pad -= 1 if e_sp == 2: if write_count < size - 1: ptr[0] = 45 write_count += 1 - ptr += 1 + ptr += _step elif e_sp == 1 and show_sign: if write_count < size - 1: ptr[0] = 43 write_count += 1 - ptr += 1 + ptr += _step elif e_sp == 1 and space_sign: if write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step ei_c: t.CInt = 0 while ei_c < 3 and write_count < size - 1: ec: t.CInt = 0 @@ -738,14 +750,14 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C ec -= 32 ptr[0] = t.CChar(ec) write_count += 1 - ptr += 1 + ptr += _step ei_c += 1 if left_align and width > e_total_len: e_pad = width - e_total_len while e_pad > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step e_pad -= 1 fmt += 1 continue @@ -753,18 +765,18 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C if write_count < size - 1: ptr[0] = 45 write_count += 1 - ptr += 1 + ptr += _step fv = 0.0 - fv elif show_sign: if write_count < size - 1: ptr[0] = 43 write_count += 1 - ptr += 1 + ptr += _step elif space_sign: if write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step exp10: t.CInt = 0 if fv != 0.0: while fv >= 10.0: @@ -799,24 +811,24 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 if pad_zero and width > e_total: pad_count = width - e_total while pad_count > 0 and write_count < size - 1: ptr[0] = 48 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 if write_count < size - 1: ptr[0] = t.CChar(int_digit + 48) write_count += 1 - ptr += 1 + ptr += _step if precision > 0: if write_count < size - 1: ptr[0] = 46 write_count += 1 - ptr += 1 + ptr += _step fi: t.CInt = 0 while fi < precision and fi < TEMP_BUF_SIZE - 1: temp[fi] = t.CChar(frac_p % 10 + 48) @@ -829,20 +841,20 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C fi -= 1 ptr[0] = temp[fi] write_count += 1 - ptr += 1 + ptr += _step elif alt_form: if write_count < size - 1: ptr[0] = 46 write_count += 1 - ptr += 1 + ptr += _step if write_count < size - 1: ptr[0] = 101 if e_upper == 0 else 69 write_count += 1 - ptr += 1 + ptr += _step if write_count < size - 1: ptr[0] = 45 if exp10 < 0 else 43 write_count += 1 - ptr += 1 + ptr += _step exp_abs: t.CUInt64T = t.CUInt64T(exp10) if exp10 >= 0 else t.CUInt64T(0 - exp10) ei: t.CInt = 0 if exp_abs == 0: @@ -861,13 +873,13 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C ei -= 1 ptr[0] = temp[ei] write_count += 1 - ptr += 1 + ptr += _step if left_align and width > e_total: pad_count = width - e_total while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 elif c.Deref(fmt) == 103 or c.Deref(fmt) == 71: if precision < 0: precision = 6 @@ -889,23 +901,23 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while g_pad > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step g_pad -= 1 if g_sp == 2: if write_count < size - 1: ptr[0] = 45 write_count += 1 - ptr += 1 + ptr += _step elif g_sp == 1 and show_sign: if write_count < size - 1: ptr[0] = 43 write_count += 1 - ptr += 1 + ptr += _step elif g_sp == 1 and space_sign: if write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step gi_c: t.CInt = 0 while gi_c < 3 and write_count < size - 1: gc: t.CInt = 0 @@ -929,14 +941,14 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C gc -= 32 ptr[0] = t.CChar(gc) write_count += 1 - ptr += 1 + ptr += _step gi_c += 1 if left_align and width > g_total_len: g_pad = width - g_total_len while g_pad > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step g_pad -= 1 fmt += 1 continue @@ -944,18 +956,18 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C if write_count < size - 1: ptr[0] = 45 write_count += 1 - ptr += 1 + ptr += _step fv = 0.0 - fv elif show_sign: if write_count < size - 1: ptr[0] = 43 write_count += 1 - ptr += 1 + ptr += _step elif space_sign: if write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step fv_orig: t.CDouble = fv exp10: t.CInt = 0 if fv != 0.0: @@ -1064,30 +1076,30 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 if pad_zero and width > g_total: pad_count = width - g_total while pad_count > 0 and write_count < size - 1: ptr[0] = 48 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 gi: t.CInt = 0 while gi < g_len and write_count < size - 1: ptr[0] = temp[gi] write_count += 1 - ptr += 1 + ptr += _step gi += 1 if g_use_e: if write_count < size - 1: ptr[0] = 101 if g_upper == 0 else 69 write_count += 1 - ptr += 1 + ptr += _step if write_count < size - 1: ptr[0] = 45 if exp10 < 0 else 43 write_count += 1 - ptr += 1 + ptr += _step exp_abs: t.CUInt64T = t.CUInt64T(exp10) if exp10 >= 0 else t.CUInt64T(0 - exp10) ei: t.CInt = 0 if exp_abs == 0: @@ -1106,13 +1118,13 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C ei -= 1 ptr[0] = temp[ei] write_count += 1 - ptr += 1 + ptr += _step if left_align and width > g_total: pad_count = width - g_total while pad_count > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step pad_count -= 1 elif c.Deref(fmt) == 97 or c.Deref(fmt) == 65: a_upper: t.CInt = 1 if c.Deref(fmt) == 65 else 0 @@ -1132,23 +1144,23 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while a_pad > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step a_pad -= 1 if a_sp == 2: if write_count < size - 1: ptr[0] = 45 write_count += 1 - ptr += 1 + ptr += _step elif a_sp == 1 and show_sign: if write_count < size - 1: ptr[0] = 43 write_count += 1 - ptr += 1 + ptr += _step elif a_sp == 1 and space_sign: if write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step ai_c: t.CInt = 0 while ai_c < 3 and write_count < size - 1: ac: t.CInt = 0 @@ -1172,14 +1184,14 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C ac -= 32 ptr[0] = t.CChar(ac) write_count += 1 - ptr += 1 + ptr += _step ai_c += 1 if left_align and width > a_total_len: a_pad = width - a_total_len while a_pad > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step a_pad -= 1 fmt += 1 continue @@ -1255,55 +1267,55 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C while a_pad > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step a_pad -= 1 if a_neg: if write_count < size - 1: ptr[0] = 45 write_count += 1 - ptr += 1 + ptr += _step elif show_sign: if write_count < size - 1: ptr[0] = 43 write_count += 1 - ptr += 1 + ptr += _step elif space_sign: if write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step if pad_zero and width > a_content_len: a_pad = width - a_content_len while a_pad > 0 and write_count < size - 1: ptr[0] = 48 write_count += 1 - ptr += 1 + ptr += _step a_pad -= 1 if write_count < size - 1: ptr[0] = 48 write_count += 1 - ptr += 1 + ptr += _step if write_count < size - 1: if a_upper: ptr[0] = 88 else: ptr[0] = 120 write_count += 1 - ptr += 1 + ptr += _step if write_count < size - 1: ptr[0] = t.CChar(a_leading + 48) write_count += 1 - ptr += 1 + ptr += _step if a_has_dot: if write_count < size - 1: ptr[0] = 46 write_count += 1 - ptr += 1 + ptr += _step a_hj: t.CInt = 0 while a_hj < a_hd_count and write_count < size - 1: ptr[0] = temp[a_hj] write_count += 1 - ptr += 1 + ptr += _step a_hj += 1 if write_count < size - 1: if a_upper: @@ -1311,26 +1323,26 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C else: ptr[0] = 112 write_count += 1 - ptr += 1 + ptr += _step if write_count < size - 1: if a_esign: ptr[0] = 45 else: ptr[0] = 43 write_count += 1 - ptr += 1 + ptr += _step a_ek: t.CInt = a_ecount while a_ek > 0 and write_count < size - 1: a_ek -= 1 ptr[0] = temp[60 + a_ek] write_count += 1 - ptr += 1 + ptr += _step if left_align and width > a_content_len: a_pad = width - a_content_len while a_pad > 0 and write_count < size - 1: ptr[0] = 32 write_count += 1 - ptr += 1 + ptr += _step a_pad -= 1 elif c.Deref(fmt) == 110: if is_long_long or is_long: @@ -1353,12 +1365,12 @@ def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.C if write_count < size - 1: ptr[0] = 37 write_count += 1 - ptr += 1 + ptr += _step else: if write_count < size - 1: ptr[0] = c.Deref(fmt) write_count += 1 - ptr += 1 + ptr += _step fmt += 1 ptr[0] = 0 return write_count diff --git a/lib/core/Handles/HandlesClassDef.py b/lib/core/Handles/HandlesClassDef.py index 5050bd1..2d90c0a 100644 --- a/lib/core/Handles/HandlesClassDef.py +++ b/lib/core/Handles/HandlesClassDef.py @@ -1195,6 +1195,11 @@ class ClassHandle(BaseHandle): MemberNode.Lineno = lineno MemberNode.IsEnumMember = True self.Trans.SymbolTable.insert(VariantName, MemberNode) + # 同模块 REnum 变体也注册限定名和下划线名, + # 对齐跨模块导入(HandlesImports.py)的注册逻辑。 + # 避免裸名被同名的工厂函数覆盖后,路径 2 的限定名查找失败。 + self.Trans.SymbolTable.insert(f"{ClassName}.{VariantName}", MemberNode) + self.Trans.SymbolTable.insert(f"{ClassName}_{VariantName}", MemberNode) # 更新预注册的 REnum 类型信息(填充变体列表) PreTypeInfo.RenumVariants = variant_names diff --git a/lib/core/Handles/HandlesMatch.py b/lib/core/Handles/HandlesMatch.py index 4b8e78a..5c9b482 100644 --- a/lib/core/Handles/HandlesMatch.py +++ b/lib/core/Handles/HandlesMatch.py @@ -129,6 +129,34 @@ class MatchHandle(BaseHandle): elif isinstance(pattern, ast.MatchSequence): HasDefault = True CaseBBs.append(DefaultBB) + elif isinstance(pattern, ast.MatchClass): + # 兜底处理:REnum 检测失败但 case 是 MatchClass(REnum 变体模式) + # 尝试从变体名查找 tag 值,按整数值处理 + cls_node_mc: ast.expr = pattern.cls + VariantName_mc: str | None = None + QualifiedName_mc: str | None = None + if isinstance(cls_node_mc, ast.Name): + VariantName_mc = cls_node_mc.id + elif isinstance(cls_node_mc, ast.Attribute): + VariantName_mc = cls_node_mc.attr + if isinstance(cls_node_mc.value, ast.Attribute): + QualifiedName_mc = f"{cls_node_mc.value.attr}.{VariantName_mc}" + elif isinstance(cls_node_mc.value, ast.Name): + QualifiedName_mc = f"{cls_node_mc.value.id}.{VariantName_mc}" + TagValue_mc: int | None = None + SymInfo_mc: "SymbolTable.SymbolInfo" = None + if QualifiedName_mc: + SymInfo_mc = self.Trans.SymbolTable.lookup(QualifiedName_mc) + if not (SymInfo_mc and SymInfo_mc.IsEnumMember): + SymInfo_mc = self.Trans.SymbolTable.lookup(VariantName_mc) + if SymInfo_mc and SymInfo_mc.IsEnumMember: + TagValue_mc = SymInfo_mc.value + if TagValue_mc is not None: + CaseValues.append(ir.Constant(SwitchIntType, TagValue_mc)) + CaseBBs.append(Gen.func.append_basic_block(name=f"match.case_{VariantName_mc}")) + else: + # 变体名未找到,跳过此 case(fast-fail 已在外层处理) + pass def _HasNoBreak(stmts: list[ast.stmt]) -> bool: for stmt in stmts: if isinstance(stmt, ast.Expr) and isinstance(stmt.value, ast.Call): @@ -187,6 +215,16 @@ class MatchHandle(BaseHandle): if not HasNoBreak[i]: Gen.builder.branch(AfterBB) CaseIdx += 1 + elif isinstance(pattern, ast.MatchClass): + # 兜底处理:MatchClass 在非 REnum 路径的 case body 生成 + # case 收集阶段已创建 CaseBB,此处生成 body + if CaseIdx < len(CaseBBs) and CaseBBs[CaseIdx] != DefaultBB: + Gen.builder.position_at_start(CaseBBs[CaseIdx]) + self.HandleBodyLlvm(case.body) + if not Gen.builder.block.is_terminated: + if not HasNoBreak[i]: + Gen.builder.branch(AfterBB) + CaseIdx += 1 if not HasDefault: Gen.builder.position_at_start(DefaultBB) Gen.builder.branch(AfterBB)