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 文件全挂的根因)。
113 lines
4.4 KiB
Plaintext
113 lines
4.4 KiB
Plaintext
import t
|
|
from stdint import *
|
|
from w32.win32base import *
|
|
|
|
PROCESS_TERMINATE: t.CDefine = 0x0001
|
|
PROCESS_CREATE_THREAD: t.CDefine = 0x0002
|
|
PROCESS_VM_OPERATION: t.CDefine = 0x0008
|
|
PROCESS_VM_READ: t.CDefine = 0x0010
|
|
PROCESS_VM_WRITE: t.CDefine = 0x0020
|
|
PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400
|
|
PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF
|
|
|
|
THREAD_TERMINATE: t.CDefine = 0x0001
|
|
THREAD_SUSPEND_RESUME: t.CDefine = 0x0002
|
|
THREAD_GET_CONTEXT: t.CDefine = 0x0008
|
|
THREAD_SET_CONTEXT: t.CDefine = 0x0010
|
|
THREAD_QUERY_INFORMATION: t.CDefine = 0x0040
|
|
THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF
|
|
|
|
CREATE_SUSPENDED: t.CDefine = 0x00000004
|
|
CREATE_NEW_CONSOLE: t.CDefine = 0x00000010
|
|
CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200
|
|
CREATE_NO_WINDOW: t.CDefine = 0x08000000
|
|
DETACHED_PROCESS: t.CDefine = 0x00000008
|
|
|
|
STARTF_USESHOWWINDOW: t.CDefine = 0x00000001
|
|
STARTF_USESTDHANDLES: t.CDefine = 0x00000100
|
|
|
|
SW_HIDE: t.CDefine = 0
|
|
SW_SHOW: t.CDefine = 5
|
|
SW_MINIMIZE: t.CDefine = 6
|
|
|
|
NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020
|
|
IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040
|
|
HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080
|
|
REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100
|
|
BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000
|
|
ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000
|
|
|
|
STILL_ACTIVE: t.CDefine = 259
|
|
|
|
class STARTUPINFOA():
|
|
cb: DWORD
|
|
lpReserved: CHARPTR
|
|
lpDesktop: CHARPTR
|
|
lpTitle: CHARPTR
|
|
dwX: DWORD
|
|
dwY: DWORD
|
|
dwXSize: DWORD
|
|
dwYSize: DWORD
|
|
dwXCountChars: DWORD
|
|
dwYCountChars: DWORD
|
|
dwFillAttribute: DWORD
|
|
dwFlags: DWORD
|
|
wShowWindow: WORD
|
|
cbReserved2: WORD
|
|
lpReserved2: VOIDPTR
|
|
hStdInput: HANDLE
|
|
hStdOutput: HANDLE
|
|
hStdError: HANDLE
|
|
|
|
class STARTUPINFOW():
|
|
cb: DWORD
|
|
lpReserved: WCHARPTR
|
|
lpDesktop: WCHARPTR
|
|
lpTitle: WCHARPTR
|
|
dwX: DWORD
|
|
dwY: DWORD
|
|
dwXSize: DWORD
|
|
dwYSize: DWORD
|
|
dwXCountChars: DWORD
|
|
dwYCountChars: DWORD
|
|
dwFillAttribute: DWORD
|
|
dwFlags: DWORD
|
|
wShowWindow: WORD
|
|
cbReserved2: WORD
|
|
lpReserved2: VOIDPTR
|
|
hStdInput: HANDLE
|
|
hStdOutput: HANDLE
|
|
hStdError: HANDLE
|
|
|
|
class PROCESS_INFORMATION():
|
|
hProcess: HANDLE
|
|
hThread: HANDLE
|
|
dwProcessId: DWORD
|
|
dwThreadId: DWORD
|
|
|
|
extern def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL
|
|
extern def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL
|
|
extern def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL
|
|
extern def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL
|
|
extern def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL
|
|
extern def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE
|
|
extern def GetCurrentProcess() -> HANDLE
|
|
extern def GetCurrentProcessId() -> ULONG
|
|
extern def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE
|
|
extern def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE
|
|
extern def SuspendThread(hThread: HANDLE) -> ULONG
|
|
extern def ResumeThread(hThread: HANDLE) -> ULONG
|
|
extern def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL
|
|
extern def GetCurrentThread() -> HANDLE
|
|
extern def GetCurrentThreadId() -> ULONG
|
|
extern def GetThreadId(hThread: HANDLE) -> ULONG
|
|
extern def GetProcessId(hProcess: HANDLE) -> ULONG
|
|
extern def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL
|
|
extern def GetThreadPriority(hThread: HANDLE) -> INT
|
|
extern def ExitProcess(uExitCode: UINT) -> VOID
|
|
extern def ExitThread(dwExitCode: ULONG) -> VOID
|
|
extern def TlsAlloc() -> ULONG
|
|
extern def TlsFree(dwTlsIndex: ULONG) -> BOOL
|
|
extern def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR
|
|
extern def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL
|