forked from KolibriOS/kolibrios
112 lines
3.9 KiB
Plaintext
112 lines
3.9 KiB
Plaintext
|
//===== <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD>
|
|||
|
#define SHOW "WRITESTR"
|
|||
|
// ----
|
|||
|
#define STD_INPUT_HANDLE -10
|
|||
|
#define STD_OUTPUT_HANDLE -11
|
|||
|
#define STD_ERROR_HANDLE -12
|
|||
|
#define CREATE_NEW 1
|
|||
|
#define CREATE_ALWAYS 2
|
|||
|
#define OPEN_EXISTING 3
|
|||
|
#define OPEN_ALWAYS 4
|
|||
|
#define TRUNCATE_EXISTING 5
|
|||
|
// ----
|
|||
|
#define GENERIC_READ 0x80000000
|
|||
|
#define GENERIC_WRITE 0x40000000
|
|||
|
#define GENERIC_EXECUTE 0x20000000
|
|||
|
#define GENERIC_ALL 0x10000000
|
|||
|
// ---- <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define _END 0x1B
|
|||
|
#define FILENAMESIZE 80
|
|||
|
#define IDLENGTH 65 // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䨪<EFBFBD><E4A8AA><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> NULL-<2D><>ନ<EFBFBD><E0ACA8><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define MAXDATA 512000 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
#define MAXDBGS 50000 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20>⫠<EFBFBD><E2ABA0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ଠ<EFBFBD><E0ACA0><EFBFBD>
|
|||
|
#define MAXDLLS 100
|
|||
|
#define MAXINPUT 512000 // <20><><EFBFBD>ᨬ<EFBFBD><E1A8AC><EFBFBD><EFBFBD><EFBFBD> ࠧ<><E0A0A7><EFBFBD> <20>室<EFBFBD><E5AEA4><EFBFBD><EFBFBD> 䠩<><E4A0A9>
|
|||
|
#define MAXMDL 100 // <20><><EFBFBD>ᨬ<EFBFBD><E1A8AC>쭮<EFBFBD> <20><> includes
|
|||
|
#define MAXPOSTS 150000 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> POST <20><>ࠡ<EFBFBD><E0A0A1><EFBFBD><EFBFBD>
|
|||
|
#define NULL 0
|
|||
|
#define SORTSIZE 20
|
|||
|
#define STRLEN 1000 // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> token
|
|||
|
// ------------------------------------------
|
|||
|
//===== <20>㬥<E3ACA5><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD>
|
|||
|
// ---- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
enum{ e_ok, e_outofmemory, e_cannotopeninput, e_toomanyerrors,
|
|||
|
e_internalerror, e_noinputspecified, e_unknowncommandline,
|
|||
|
e_extract, e_cannotopenmapfile, e_someerrors };
|
|||
|
// ---- <20><><EFBFBD><EFBFBD> tokens tk_xxxx
|
|||
|
enum{
|
|||
|
tk_eof,tk_number,tk_string,tk_var,
|
|||
|
tk_id,
|
|||
|
tk_db,tk_dw,tk_dd,tk_dq, // <20><><EFBFBD><EFBFBD> <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
tk_byte,tk_char,tk_word,tk_short,
|
|||
|
tk_dword,tk_int,
|
|||
|
tk_enum, // <20>㬥<E3ACA5><E0AEA2><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD>
|
|||
|
tk_struc, // <20><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
tk_if,tk_else,tk_endif, // <20><EFBFBD><E1ABAE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
tk_include,tk_define, // <20><><EFBFBD><EFBFBD>祭<EFBFBD><E7A5AD> <20><> <20><>//<2F><>।<EFBFBD><E0A5A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>⠭<EFBFBD><E2A0AD>
|
|||
|
tk_import, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> DLL
|
|||
|
tk_map, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MAP-䠩<><E4A0A9>
|
|||
|
tk_debug, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>⫠<EFBFBD><E2ABA0>筮<EFBFBD> <20><><EFBFBD><EFBFBD>ଠ樨
|
|||
|
tk_list, // <20>뤠<EFBFBD><EBA4A0> ASM-<2D><><EFBFBD>⨭<EFBFBD><E2A8AD>
|
|||
|
tk_dll, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DLL-䠩<><E4A0A9>
|
|||
|
tk_loop,tk_return,tk_do,
|
|||
|
tk_while,tk_void,
|
|||
|
tk_continue,tk_break,
|
|||
|
tk_docase,tk_case,tk_default,
|
|||
|
tk_carryflag,tk_extract,tk_FALSE,tk_from,
|
|||
|
tk_notcarryflag,tk_notoverflow,tk_overflow,tk_TRUE,
|
|||
|
tk_zeroflag,tk_notzeroflag,
|
|||
|
tk_assign,tk_swap,
|
|||
|
tk_minus,tk_plus,
|
|||
|
tk_minusminus,tk_plusplus,tk_mult,tk_div,tk_mod,
|
|||
|
tk_multminus,tk_divminus,tk_modminus,tk_rr,tk_ll,
|
|||
|
tk_rrminus,
|
|||
|
tk_llminus,
|
|||
|
tk_minusequals,tk_plusequals,tk_rrequals,tk_llequals,
|
|||
|
tk_or,tk_and,tk_xor,tk_not,
|
|||
|
tk_orminus,
|
|||
|
tk_andminus,tk_xorminus,
|
|||
|
tk_orequals,tk_andequals,tk_xorequals,
|
|||
|
tk_equalto,
|
|||
|
tk_notequal,tk_greater,tk_greaterequal,tk_less,
|
|||
|
tk_lessequal,
|
|||
|
tk_oror,tk_andand,tk_openbrace,tk_closebrace,
|
|||
|
tk_openbracket,tk_closebracket,tk_openblock,tk_closeblock,
|
|||
|
tk_colon,tk_semicolon,tk_comma,tk_period,
|
|||
|
tk_dollar,tk_question,tk_tilda,
|
|||
|
tk_reg,tk_controlreg,tk_debugreg,tk_testreg,tk_seg,
|
|||
|
tk_undefproc,tk_proc,
|
|||
|
tk_postnumber,
|
|||
|
tk_local,tk_locallabel,tk_param,tk_locnumber,
|
|||
|
tk_DLL,tk_API,tk_directive,tk_command,tk_mnemonics,
|
|||
|
tokens
|
|||
|
};
|
|||
|
// ---- <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2> ⨯<> <20><><EFBFBD>楤<EFBFBD><E6A5A4>
|
|||
|
enum{ cpt_near, cpt_far };
|
|||
|
// ---- <20><><EFBFBD><EFBFBD><EFBFBD><E0AEA2> POST <20><><EFBFBD><EFBFBD>ᥩ
|
|||
|
enum { POST_CALL=1, POST_API, POST_DATA, POST_LOC, POST_STR };
|
|||
|
// ---- <20><><EFBFBD>ᠭ<EFBFBD><E1A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> dbginfo: dbg_...
|
|||
|
enum{ dbg_mod=0, // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
dbg_line=4, // <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ப <09> <20><><EFBFBD>㫥
|
|||
|
dbg_loc=8, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> EXE-䠩<><E4A0A9>
|
|||
|
dbg_size=12}; // ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ---- <20><><EFBFBD>ᠭ<EFBFBD><E1A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> idrec
|
|||
|
enum{ left=0, // <20><><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <20><> idrec
|
|||
|
right=4, // <20><><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <20><> idrec
|
|||
|
recid=8, // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䨪<EFBFBD><E4A8AA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
newid=recid+4, // <20><><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> recid
|
|||
|
rectok=newid+4, // <20><><EFBFBD><EFBFBD><EFBFBD> token
|
|||
|
rectype=rectok+4, // <20><><EFBFBD> token: void, byte, char, word, ...
|
|||
|
recsrc=rectype+4, // <20><>室<EFBFBD><E5AEA4><EFBFBD> ⥪<><E2A5AA>
|
|||
|
recpost=recsrc+4, // <20><><EFBFBD><EFBFBD> POST <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
recnumber=recpost+4, // <20><><EFBFBD>祭<EFBFBD><E7A5AD> <20><><EFBFBD> offset <20> recsrc
|
|||
|
recmodline=recnumber+4,// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>ப<EFBFBD>
|
|||
|
recsize=recnumber+4};// ࠧ<><E0A0A7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// ---- <20><><EFBFBD>ᠭ<EFBFBD><E1A0AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> localrec
|
|||
|
enum{ localnext=0, // <20><><EFBFBD><EFBFBD><EFBFBD>⥫<EFBFBD> <20><> <><E1ABA5><EFBFBD><EFBFBD><EFBFBD><EFBFBD> localrec
|
|||
|
localid=4, // <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>쭮 <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
localtok=localid+IDLENGTH,// <20><><EFBFBD>祭<EFBFBD><E7A5AD> token
|
|||
|
localtype=localtok+4, // ⨯ <20><>६<EFBFBD><E0A5AC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
localnumber=localtype+4, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20>⥪<EFBFBD>
|
|||
|
local_size=localnumber+4}; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|