Subversion Repositories Kolibri OS

Rev

Rev 1846 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1846 Rev 1848
1
//===== ƒ«®¡ «ì­ë¥ ª®­áâ ­âë
1
//===== ƒ«®¡ «ì­ë¥ ª®­áâ ­âë
2
#define SHOW "WRITESTR"
-
 
3
// ---- 
-
 
4
#define STD_INPUT_HANDLE	-10
2
#define STD_INPUT_HANDLE	-10
5
#define STD_OUTPUT_HANDLE	-11
3
#define STD_OUTPUT_HANDLE	-11
6
#define STD_ERROR_HANDLE	-12
4
#define STD_ERROR_HANDLE	-12
7
#define CREATE_NEW		1
5
#define CREATE_NEW		1
8
#define CREATE_ALWAYS 		2
6
#define CREATE_ALWAYS 		2
9
#define OPEN_EXISTING 		3
7
#define OPEN_EXISTING 		3
10
#define OPEN_ALWAYS 		4
8
#define OPEN_ALWAYS 		4
11
#define TRUNCATE_EXISTING 	5
9
#define TRUNCATE_EXISTING 	5
12
// ----
10
// ----
13
#define GENERIC_READ	0x80000000
11
#define GENERIC_READ	0x80000000
14
#define GENERIC_WRITE	0x40000000
12
#define GENERIC_WRITE	0x40000000
15
#define GENERIC_EXECUTE 0x20000000
13
#define GENERIC_EXECUTE 0x20000000
16
#define GENERIC_ALL	0x10000000
14
#define GENERIC_ALL	0x10000000
17
// ---- Š®­áâ ­âë ª®¬¯¨«ïâ®à 
15
// ---- Š®­áâ ­âë ª®¬¯¨«ïâ®à 
18
#define _END	0x1B
16
#define _END	0x1B
19
#define FILENAMESIZE 80
17
#define FILENAMESIZE 80
20
#define IDLENGTH 65 // „«¨­  ¨¬¥­¨ ¨¤¥­â¨ä¨ª â®à , ¢ª«îç ï NULL-â¥à¬¨­ â®à
18
#define IDLENGTH 65 // „«¨­  ¨¬¥­¨ ¨¤¥­â¨ä¨ª â®à , ¢ª«îç ï NULL-â¥à¬¨­ â®à
21
#define MAXDATA 512000	//  §¬¥à ¡ãä¥à®¢ ¯®¤ ª®¤ ¨ ¤ ­­ë¥
19
#define MAXDATA 512000	//  §¬¥à ¡ãä¥à®¢ ¯®¤ ª®¤ ¨ ¤ ­­ë¥
22
#define MAXDBGS 50000 //  §¬¥à ¡ãä¥à®¢ ¯®¤ ®â« ¤®ç­ã  ¨­ä®à¬ æ¨î
20
#define MAXDBGS 50000 //  §¬¥à ¡ãä¥à®¢ ¯®¤ ®â« ¤®ç­ã  ¨­ä®à¬ æ¨î
23
#define MAXDLLS 100
21
#define MAXDLLS 100
24
#define MAXINPUT 512000 // Œ ªá¨¬ «ì­ë	à §¬¥à ¢å®¤­®£® ä ©« 
22
#define MAXINPUT 512000 // Œ ªá¨¬ «ì­ë	à §¬¥à ¢å®¤­®£® ä ©« 
25
#define MAXMDL	100	// Œ ªá¨¬ «ì­®¥ ç¨á«® includes
23
#define MAXMDL	100	// Œ ªá¨¬ «ì­®¥ ç¨á«® includes
26
#define MAXPOSTS 150000 //  §¬¥à ¡ãä¥à®¢ ¯®¤ POST ®¡à ¡®âªã
24
#define MAXPOSTS 150000 //  §¬¥à ¡ãä¥à®¢ ¯®¤ POST ®¡à ¡®âªã
27
#define NULL	0
25
#define NULL	0
28
#define SORTSIZE 20
26
#define SORTSIZE 20
29
#define STRLEN 1000 // „«¨­  ¡ãä¥à  ¯®¤ token
27
#define STRLEN 1000 // „«¨­  ¡ãä¥à  ¯®¤ token
30
// ------------------------------------------
28
// ------------------------------------------
31
//===== ã¬¥à®¢ ­­ë¥ ª®­áâ ­âë
29
//===== ã¬¥à®¢ ­­ë¥ ª®­áâ ­âë
32
// ---- Š®¤ë ¢®§¢à â 
30
// ---- Š®¤ë ¢®§¢à â 
33
enum{ e_ok, e_outofmemory, e_cannotopeninput, e_toomanyerrors,
31
enum{ e_ok, e_outofmemory, e_cannotopeninput, e_toomanyerrors,
34
	e_internalerror, e_noinputspecified, e_unknowncommandline,
32
	e_internalerror, e_noinputspecified, e_unknowncommandline,
35
	e_extract, e_cannotopenmapfile, e_someerrors };
33
	e_extract, e_cannotopenmapfile, e_someerrors };
36
// ---- Š®¤ë tokens tk_xxxx
34
// ---- Š®¤ë tokens tk_xxxx
37
enum{
35
enum{
38
tk_eof,tk_number,tk_string,tk_var,
36
tk_eof,tk_number,tk_string,tk_var,
39
tk_id,
37
tk_id,
40
tk_db,tk_dw,tk_dd,tk_dq,	// ’¨¯ë ¯¥à¥¬¥­­ëå
38
tk_db,tk_dw,tk_dd,tk_dq,	// ’¨¯ë ¯¥à¥¬¥­­ëå
41
tk_byte,tk_char,tk_word,tk_short,
39
tk_byte,tk_char,tk_word,tk_short,
42
tk_dword,tk_int,
40
tk_dword,tk_int,
43
tk_enum,			// ã¬¥à®¢ ­­ë¥ ª®­áâ ­âë
41
tk_enum,			// ã¬¥à®¢ ­­ë¥ ª®­áâ ­âë
44
tk_struc, 	// Ž¯à¥¤¥«¥­¨¥ áâàãªâãàë
42
tk_struc, 	// Ž¯à¥¤¥«¥­¨¥ áâàãªâãàë
45
tk_if,tk_else,tk_endif, // “á«®¢­ ï ª®¬¯¨«ïæ¨ï
43
tk_if,tk_else,tk_endif, // “á«®¢­ ï ª®¬¯¨«ïæ¨ï
46
tk_include,tk_define, // ‚ª«î祭¨¥ ä  « //Ž¯à¥¤¥«¥­¨¥ ª®­áâ ­âë
44
tk_include,tk_define, // ‚ª«î祭¨¥ ä  « //Ž¯à¥¤¥«¥­¨¥ ª®­áâ ­âë
47
tk_import,		// ˆ¬¯®àâ ¨§ DLL
45
tk_import,		// ˆ¬¯®àâ ¨§ DLL
48
tk_map, 		// ƒ¥­¥à æ¨ï MAP-ä ©« 
46
tk_map, 		// ƒ¥­¥à æ¨ï MAP-ä ©« 
49
tk_debug, 	// ƒ¥­¥à æ¨ï ®â« ¤®ç­®© ¨­ä®à¬ æ¨¨
47
tk_debug, 	// ƒ¥­¥à æ¨ï ®â« ¤®ç­®© ¨­ä®à¬ æ¨¨
50
tk_list,		// ‚ë¤ ç  ASM-«¨á⨭£ 
48
tk_list,		// ‚ë¤ ç  ASM-«¨á⨭£ 
51
tk_dll, 		// ƒ¥­¥à æ¨ï DLL-ä ©« 
49
tk_dll, 		// ƒ¥­¥à æ¨ï DLL-ä ©« 
52
tk_loop,tk_return,tk_do,
50
tk_loop,tk_return,tk_do,
53
tk_while,tk_void,
51
tk_while,tk_void,
54
tk_continue,tk_break,
52
tk_continue,tk_break,
55
tk_docase,tk_case,tk_default,
53
tk_docase,tk_case,tk_default,
56
tk_carryflag,tk_extract,tk_FALSE,tk_from,
54
tk_carryflag,tk_extract,tk_FALSE,tk_from,
57
tk_notcarryflag,tk_notoverflow,tk_overflow,tk_TRUE,
55
tk_notcarryflag,tk_notoverflow,tk_overflow,tk_TRUE,
58
tk_zeroflag,tk_notzeroflag,
56
tk_zeroflag,tk_notzeroflag,
59
tk_assign,tk_swap,
57
tk_assign,tk_swap,
60
tk_minus,tk_plus,
58
tk_minus,tk_plus,
61
tk_minusminus,tk_plusplus,tk_mult,tk_div,tk_mod,
59
tk_minusminus,tk_plusplus,tk_mult,tk_div,tk_mod,
62
tk_multminus,tk_divminus,tk_modminus,tk_rr,tk_ll,
60
tk_multminus,tk_divminus,tk_modminus,tk_rr,tk_ll,
63
tk_rrminus,
61
tk_rrminus,
64
tk_llminus,
62
tk_llminus,
65
tk_minusequals,tk_plusequals,tk_rrequals,tk_llequals,
63
tk_minusequals,tk_plusequals,tk_rrequals,tk_llequals,
66
tk_or,tk_and,tk_xor,tk_not,
64
tk_or,tk_and,tk_xor,tk_not,
67
tk_orminus,
65
tk_orminus,
68
tk_andminus,tk_xorminus,
66
tk_andminus,tk_xorminus,
69
tk_orequals,tk_andequals,tk_xorequals,
67
tk_orequals,tk_andequals,tk_xorequals,
70
tk_equalto,
68
tk_equalto,
71
tk_notequal,tk_greater,tk_greaterequal,tk_less,
69
tk_notequal,tk_greater,tk_greaterequal,tk_less,
72
tk_lessequal,
70
tk_lessequal,
73
tk_oror,tk_andand,tk_openbrace,tk_closebrace,
71
tk_oror,tk_andand,tk_openbrace,tk_closebrace,
74
tk_openbracket,tk_closebracket,tk_openblock,tk_closeblock,
72
tk_openbracket,tk_closebracket,tk_openblock,tk_closeblock,
75
tk_colon,tk_semicolon,tk_comma,tk_period,
73
tk_colon,tk_semicolon,tk_comma,tk_period,
76
tk_dollar,tk_question,tk_tilda,
74
tk_dollar,tk_question,tk_tilda,
77
tk_reg,tk_controlreg,tk_debugreg,tk_testreg,tk_seg,
75
tk_reg,tk_controlreg,tk_debugreg,tk_testreg,tk_seg,
78
tk_undefproc,tk_proc,
76
tk_undefproc,tk_proc,
79
tk_postnumber,
77
tk_postnumber,
80
tk_local,tk_locallabel,tk_param,tk_locnumber,
78
tk_local,tk_locallabel,tk_param,tk_locnumber,
81
tk_DLL,tk_API,tk_directive,tk_command,tk_mnemonics,
79
tk_DLL,tk_API,tk_directive,tk_command,tk_mnemonics,
82
tokens
80
tokens
83
};
81
};
84
// ---- Š®¤¨à®¢ª  ⨯  ¯à®æ¥¤ãà
82
// ---- Š®¤¨à®¢ª  ⨯  ¯à®æ¥¤ãà
85
enum{ cpt_near, cpt_far };
83
enum{ cpt_near, cpt_far };
86
// ---- Š®¤¨à®¢ª  POST § ¯¨á¥©
84
// ---- Š®¤¨à®¢ª  POST § ¯¨á¥©
87
enum { POST_CALL=1, POST_API, POST_DATA, POST_LOC, POST_STR };
85
enum { POST_CALL=1, POST_API, POST_DATA, POST_LOC, POST_STR };
88
// ---- Ž¯¨á ­¨¥ áâàãªâãàë ¢ dbginfo: dbg_...
86
// ---- Ž¯¨á ­¨¥ áâàãªâãàë ¢ dbginfo: dbg_...
89
enum{ dbg_mod=0,	// ®¬¥à ¬®¤ã«ï
87
enum{ dbg_mod=0,	// ®¬¥à ¬®¤ã«ï
90
	dbg_line=4, // ®¬¥à áâப	¢ ¬®¤ã«¥
88
	dbg_line=4, // ®¬¥à áâப	¢ ¬®¤ã«¥
91
	dbg_loc=8,	// ®§¨æ¨ï ¢ EXE-ä ©«¥
89
	dbg_loc=8,	// ®§¨æ¨ï ¢ EXE-ä ©«¥
92
	dbg_size=12}; // à §¬¥à áâàãªâãàë
90
	dbg_size=12}; // à §¬¥à áâàãªâãàë
93
// ---- Ž¯¨á ­¨¥ áâàãªâãàë idrec
91
// ---- Ž¯¨á ­¨¥ áâàãªâãàë idrec
94
enum{ left=0, 	// “ª § â¥«ì ­  idrec
92
enum{ left=0, 	// “ª § â¥«ì ­  idrec
95
	right=4,		// “ª § â¥«ì ­  idrec
93
	right=4,		// “ª § â¥«ì ­  idrec
96
	recid=8,		// ˆ¬ï ¨¤¥­â¨ä¨ª â®à 
94
	recid=8,		// ˆ¬ï ¨¤¥­â¨ä¨ª â®à 
97
	newid=recid+4,	// “ª § â¥«ì ­   «¨ á ¤«ï recid
95
	newid=recid+4,	// “ª § â¥«ì ­   «¨ á ¤«ï recid
98
	rectok=newid+4, // ®¬¥à token
96
	rectok=newid+4, // ®¬¥à token
99
	rectype=rectok+4, // ’¨¯ token: void, byte, char, word, ...
97
	rectype=rectok+4, // ’¨¯ token: void, byte, char, word, ...
100
	recsrc=rectype+4, // ˆá室­ë© ⥪áâ
98
	recsrc=rectype+4, // ˆá室­ë© ⥪áâ
101
	recpost=recsrc+4, // ”« £ POST ¯¥à¥¬¥­­®©
99
	recpost=recsrc+4, // ”« £ POST ¯¥à¥¬¥­­®©
102
	recnumber=recpost+4, // ‡­ ç¥­¨¥ ¨«¨ offset ¢ recsrc
100
	recnumber=recpost+4, // ‡­ ç¥­¨¥ ¨«¨ offset ¢ recsrc
103
	recmodline=recnumber+4,// ®¬¥à ¬®¤ã«ï ¨ áâப¨
101
	recmodline=recnumber+4,// ®¬¥à ¬®¤ã«ï ¨ áâப¨
104
	recsize=recnumber+4};// à §¬¥à áâàãªâãàë
102
	recsize=recnumber+4};// à §¬¥à áâàãªâãàë
105
// ---- Ž¯¨á ­¨¥ áâàãªâãàë localrec
103
// ---- Ž¯¨á ­¨¥ áâàãªâãàë localrec
106
enum{ localnext=0,		// “ª § â¥«ì ­  á«¥¤ãîéãî localrec
104
enum{ localnext=0,		// “ª § â¥«ì ­  á«¥¤ãîéãî localrec
107
	localid=4,		// ˆ¬ï «®ª «ì­®  ¯¥à¥¬¥­­®©
105
	localid=4,		// ˆ¬ï «®ª «ì­®  ¯¥à¥¬¥­­®©
108
	localtok=localid+IDLENGTH,// ‡­ ç¥­¨¥ token
106
	localtok=localid+IDLENGTH,// ‡­ ç¥­¨¥ token
109
	localtype=localtok+4, // ⨯ ¯¥à¥¬¥­­®©
107
	localtype=localtok+4, // ⨯ ¯¥à¥¬¥­­®©
110
	localnumber=localtype+4,	// ®§¨æ¨ï ¢ á⥪¥
108
	localnumber=localtype+4,	// ®§¨æ¨ï ¢ á⥪¥
111
	local_size=localnumber+4};	//  §¬¥à áâàãªâãàë
109
	local_size=localnumber+4};	//  §¬¥à áâàãªâãàë