extern def A(...) -> T(无 ': pass')解析完返回时 cur 停在 NewLine token, 模块级/类体语句循环只 _skip_nl(Nl)不跳 NewLine,下一轮把 NewLine 当 表达式解析(_parse_atom error_count++)→ parse_tokens 返回 None → Phase1a-pre 报 7 个文件扫描失败(w32 7 个 extern 文件全挂的根因)。
65 lines
2.8 KiB
Plaintext
65 lines
2.8 KiB
Plaintext
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: DWORD
|
|
RegionSize: t.CSizeT
|
|
State: DWORD
|
|
Protect: DWORD
|
|
Type: DWORD
|
|
|
|
extern def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR
|
|
extern def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL
|
|
extern def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL
|
|
extern def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT
|
|
extern def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL
|
|
extern def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL
|
|
extern def GetProcessHeap() -> HANDLE
|
|
extern def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE
|
|
extern def HeapDestroy(hHeap: HANDLE) -> BOOL
|
|
extern def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR
|
|
extern def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR
|
|
extern def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL
|
|
extern def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT
|
|
extern def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL
|
|
extern def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT
|
|
extern def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR
|
|
extern def GlobalFree(hMem: VOIDPTR) -> VOIDPTR
|
|
extern def GlobalLock(hMem: VOIDPTR) -> VOIDPTR
|
|
extern def GlobalUnlock(hMem: VOIDPTR) -> BOOL
|
|
extern def GlobalSize(hMem: VOIDPTR) -> t.CSizeT
|
|
extern def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR
|
|
extern def LocalFree(hMem: VOIDPTR) -> VOIDPTR
|