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 文件全挂的根因)。
81 lines
2.4 KiB
Plaintext
81 lines
2.4 KiB
Plaintext
import t
|
|
from stdint import *
|
|
|
|
HANDLE: t.CTypedef = VOIDPTR
|
|
LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr
|
|
LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr
|
|
|
|
INVALID_HANDLE_VALUE: t.CDefine = -1
|
|
NULL: t.CDefine = 0
|
|
TRUE: t.CDefine = 1
|
|
FALSE: t.CDefine = 0
|
|
INFINITE: t.CDefine = 0xFFFFFFFF
|
|
WAIT_FAILED: t.CDefine = 0xFFFFFFFF
|
|
WAIT_OBJECT_0: t.CDefine = 0
|
|
WAIT_TIMEOUT: t.CDefine = 258
|
|
WAIT_ABANDONED: t.CDefine = 0x80
|
|
MAX_PATH: t.CDefine = 260
|
|
ERROR_SUCCESS: t.CDefine = 0
|
|
ERROR_FILE_NOT_FOUND: t.CDefine = 2
|
|
ERROR_ACCESS_DENIED: t.CDefine = 5
|
|
ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122
|
|
|
|
class SECURITY_ATTRIBUTES():
|
|
nLength: DWORD
|
|
lpSecurityDescriptor: VOIDPTR
|
|
bInheritHandle: BOOL
|
|
|
|
class OVERLAPPED():
|
|
Internal: ULONGLONG
|
|
InternalHigh: ULONGLONG
|
|
Offset: DWORD
|
|
OffsetHigh: DWORD
|
|
hEvent: HANDLE
|
|
|
|
class FILETIME():
|
|
dwLowDateTime: DWORD
|
|
dwHighDateTime: DWORD
|
|
|
|
class SYSTEMTIME():
|
|
wYear: WORD
|
|
wMonth: WORD
|
|
wDayOfWeek: WORD
|
|
wDay: WORD
|
|
wHour: WORD
|
|
wMinute: WORD
|
|
wSecond: WORD
|
|
wMilliseconds: WORD
|
|
|
|
class GUID():
|
|
Data1: DWORD
|
|
Data2: WORD
|
|
Data3: WORD
|
|
Data4: BYTEPTR
|
|
|
|
class LARGE_INTEGER():
|
|
QuadPart: LONGLONG
|
|
|
|
class ULARGE_INTEGER():
|
|
QuadPart: ULONGLONG
|
|
|
|
extern def GetLastError() -> ULONG
|
|
extern def SetLastError(dwErrCode: ULONG)
|
|
extern def CloseHandle(hObject: HANDLE) -> BOOL
|
|
extern def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR
|
|
extern def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE
|
|
extern def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE
|
|
extern def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE
|
|
extern def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE
|
|
extern def FreeLibrary(hLibModule: HANDLE) -> BOOL
|
|
extern def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr)
|
|
extern def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr)
|
|
extern def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL
|
|
extern def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL
|
|
extern def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL
|
|
extern def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL
|
|
extern def Sleep(dwMilliseconds: ULONG)
|
|
extern def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG
|
|
extern def GetTickCount() -> ULONG
|
|
extern def GetTickCount64() -> ULONGLONG
|
|
extern def GetCommandLineA() -> CHARPTR
|