0,0 → 1,111 |
//===== «®¡ «ìë¥ ª®áâ âë |
#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 |
// ---- ®áâ âë ª®¬¯¨«ïâ®à |
#define _END 0x1B |
#define FILENAMESIZE 80 |
#define IDLENGTH 65 // «¨ ¨¬¥¨ ¨¤¥â¨ä¨ª â®à , ¢ª«îç ï NULL-â¥à¬¨ â®à |
#define MAXDATA 512000 // §¬¥à ¡ãä¥à®¢ ¯®¤ ª®¤ ¨ ¤ ë¥ |
#define MAXDBGS 50000 // §¬¥à ¡ãä¥à®¢ ¯®¤ ®â« ¤®çã ¨ä®à¬ æ¨î |
#define MAXDLLS 100 |
#define MAXINPUT 512000 // ªá¨¬ «ìë à §¬¥à ¢å®¤®£® ä ©« |
#define MAXMDL 100 // ªá¨¬ «ì®¥ ç¨á«® includes |
#define MAXPOSTS 150000 // §¬¥à ¡ãä¥à®¢ ¯®¤ POST ®¡à ¡®âªã |
#define NULL 0 |
#define SORTSIZE 20 |
#define STRLEN 1000 // «¨ ¡ãä¥à ¯®¤ token |
// ------------------------------------------ |
//===== 㬥஢ ë¥ ª®áâ âë |
// ---- ®¤ë ¢®§¢à â |
enum{ e_ok, e_outofmemory, e_cannotopeninput, e_toomanyerrors, |
e_internalerror, e_noinputspecified, e_unknowncommandline, |
e_extract, e_cannotopenmapfile, e_someerrors }; |
// ---- ®¤ë tokens tk_xxxx |
enum{ |
tk_eof,tk_number,tk_string,tk_var, |
tk_id, |
tk_db,tk_dw,tk_dd,tk_dq, // ¨¯ë ¯¥à¥¬¥ëå |
tk_byte,tk_char,tk_word,tk_short, |
tk_dword,tk_int, |
tk_enum, // 㬥஢ ë¥ ª®áâ âë |
tk_struc, // ¯à¥¤¥«¥¨¥ áâàãªâãàë |
tk_if,tk_else,tk_endif, // á«®¢ ï ª®¬¯¨«ïæ¨ï |
tk_include,tk_define, // ª«î票¥ ä « //¯à¥¤¥«¥¨¥ ª®áâ âë |
tk_import, // ¬¯®àâ ¨§ DLL |
tk_map, // ¥¥à æ¨ï MAP-ä ©« |
tk_debug, // ¥¥à æ¨ï ®â« ¤®ç®© ¨ä®à¬ 樨 |
tk_list, // ë¤ ç ASM-«¨á⨣ |
tk_dll, // ¥¥à æ¨ï DLL-ä ©« |
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 |
}; |
// ---- ®¤¨à®¢ª ⨯ ¯à®æ¥¤ãà |
enum{ cpt_near, cpt_far }; |
// ---- ®¤¨à®¢ª POST § ¯¨á¥© |
enum { POST_CALL=1, POST_API, POST_DATA, POST_LOC, POST_STR }; |
// ---- ¯¨á ¨¥ áâàãªâãàë ¢ dbginfo: dbg_... |
enum{ dbg_mod=0, // ®¬¥à ¬®¤ã«ï |
dbg_line=4, // ®¬¥à áâப ¢ ¬®¤ã«¥ |
dbg_loc=8, // ®§¨æ¨ï ¢ EXE-ä ©«¥ |
dbg_size=12}; // à §¬¥à áâàãªâãàë |
// ---- ¯¨á ¨¥ áâàãªâãàë idrec |
enum{ left=0, // ª § ⥫ì idrec |
right=4, // ª § ⥫ì idrec |
recid=8, // ¬ï ¨¤¥â¨ä¨ª â®à |
newid=recid+4, // ª § â¥«ì «¨ á ¤«ï recid |
rectok=newid+4, // ®¬¥à token |
rectype=rectok+4, // ¨¯ token: void, byte, char, word, ... |
recsrc=rectype+4, // áå®¤ë© â¥ªáâ |
recpost=recsrc+4, // « £ POST ¯¥à¥¬¥®© |
recnumber=recpost+4, // 票¥ ¨«¨ offset ¢ recsrc |
recmodline=recnumber+4,// ®¬¥à ¬®¤ã«ï ¨ áâப¨ |
recsize=recnumber+4};// à §¬¥à áâàãªâãàë |
// ---- ¯¨á ¨¥ áâàãªâãàë localrec |
enum{ localnext=0, // ª § ⥫ì á«¥¤ãîéãî localrec |
localid=4, // ¬ï «®ª «ì® ¯¥à¥¬¥®© |
localtok=localid+IDLENGTH,// 票¥ token |
localtype=localtok+4, // ⨯ ¯¥à¥¬¥®© |
localnumber=localtype+4, // ®§¨æ¨ï ¢ á⥪¥ |
local_size=localnumber+4}; // §¬¥à áâàãªâãàë |