1 /******************************************************************************
2 *
3 * Copyright (C) 2006, The Gentee Group. All rights reserved.
4 * This file is part of the Gentee open source project <http://www.gentee.com>.
5 *
6 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE GENTEE LICENSE ("AGREEMENT").
7 * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE CONSTITUTES RECIPIENTS
8 * ACCEPTANCE OF THE AGREEMENT.
9 *
10 * lexgasm 24.11.2006
11 *
12 * Author: Generated with 'lextbl' program
13 *
14 * Description: This file contains a lexical table for the lexical analizer.
15 *
16 ******************************************************************************/
17
18
19 define
20 {
21 // States
22 ASM_LINE = 0x1000000 // New line 0x0D0A or 0x0A
23 ASM_NUMBER = 0x3000000 // Number decimal, hexadecimal or binary
24 ASM_SYSCHAR = 0x2000000 // System character ', [ ] + - '
25 ASM_NAME = 0x50000 // Name identifier
26
27 // Keywords
28 KEY_AH = 0x0
29 KEY_AL = 0x1
30 KEY_BH = 0x2
31 KEY_BL = 0x3
32 KEY_CH = 0x4
33 KEY_CL = 0x5
34 KEY_DH = 0x6
35 KEY_DL = 0x7
36 KEY_AX = 0x8
37 KEY_BX = 0x9
38 KEY_CX = 0xA
39 KEY_DX = 0xB
40 KEY_EAX = 0x10
41 KEY_ECX = 0x11
42 KEY_EDX = 0x12
43 KEY_EBX = 0x13
44 KEY_ESP = 0x14
45 KEY_EBP = 0x15
46 KEY_ESI = 0x16
47 KEY_EDI = 0x17
48 KEY_CR0 = 0x20
49 KEY_CR1 = 0x21
50 KEY_CR2 = 0x22
51 KEY_CR3 = 0x23
52 KEY_DR0 = 0x24
53 KEY_DR1 = 0x25
54 KEY_DR2 = 0x26
55 KEY_DR3 = 0x27
56 KEY_DR4 = 0x28
57 KEY_DR5 = 0x29
58 KEY_DR6 = 0x2A
59 KEY_DR7 = 0x2B
60 KEY_JA = 0x40
61 KEY_JAE = 0x41
62 KEY_JB = 0x42
63 KEY_JBE = 0x43
64 KEY_JC = 0x44
65 KEY_JCXZ = 0x45
66 KEY_JE = 0x46
67 KEY_JECXZ = 0x47
68 KEY_JG = 0x48
69 KEY_JGE = 0x49
70 KEY_JL = 0x4A
71 KEY_JLE = 0x4B
72 KEY_JNA = 0x4C
73 KEY_JNAE = 0x4D
74 KEY_JNB = 0x4E
75 KEY_JNBE = 0x4F
76 KEY_JNC = 0x50
77 KEY_JNE = 0x51
78 KEY_JNG = 0x52
79 KEY_JNGE = 0x53
80 KEY_JNL = 0x54
81 KEY_JNLE = 0x55
82 KEY_JNO = 0x56
83 KEY_JNP = 0x57
84 KEY_JNS = 0x58
85 KEY_JNZ = 0x59
86 KEY_JO = 0x5A
87 KEY_JP = 0x5B
88 KEY_JS = 0x5C
89 KEY_JZ = 0x5D
90 KEY_LOOP = 0x5E
91 KEY_LOOPE = 0x5F
92 KEY_LOOPNE = 0x60
93 KEY_LOOPNZ = 0x61
94 KEY_REP = 0x62
95 KEY_REPE = 0x63
96 KEY_REPZ = 0x64
97 KEY_REPNE = 0x65
98 KEY_REPNZ = 0x66
99 KEY_CALL = 0x67
100 KEY_CMP = 0x80
101 KEY_MPS = 0x81
102 KEY_CMPSB = 0x82
103 KEY_CMPSW = 0x83
104 KEY_CMPSD = 0x84
105 KEY_TEST = 0x85
106 KEY_ADC = 0x86
107 KEY_ADD = 0x87
108 KEY_DEC = 0x88
109 KEY_DIV = 0x89
110 KEY_IDIV = 0x8A
111 KEY_IMUL = 0x8B
112 KEY_INC = 0x8C
113 KEY_MUL = 0x8D
114 KEY_RCL = 0x8E
115 KEY_ROL = 0x8F
116 KEY_RCR = 0x90
117 KEY_ROR = 0x91
118 KEY_SAL = 0x92
119 KEY_SHL = 0x93
120 KEY_SAR = 0x94
121 KEY_SHR = 0x95
122 KEY_SUB = 0x96
123 KEY_AND = 0x97
124 KEY_OR = 0x98
125 KEY_XOR = 0x99
126 KEY_NOT = 0x9A
127 KEY_NEG = 0x9B
128 KEY_IN = 0x9C
129 KEY_INS = 0x9D
130 KEY_INSB = 0x9E
131 KEY_INSW = 0x9F
132 KEY_INSD = 0xA0
133 KEY_LEA = 0xA1
134 KEY_LODS = 0xA2
135 KEY_LODSB = 0xA3
136 KEY_LODSW = 0xA4
137 KEY_LODSD = 0xA5
138 KEY_MOV = 0xA6
139 KEY_MOVS = 0xA7
140 KEY_MOVSB = 0xA8
141 KEY_MOVSW = 0xA9
142 KEY_MOVSD = 0xAA
143 KEY_MOVSX = 0xAB
144 KEY_MOVZX = 0xAC
145 KEY_POP = 0xAD
146 KEY_POPF = 0xAE
147 KEY_POPFD = 0xAF
148 KEY_POPFW = 0xB0
149 KEY_PUSHA = 0xB1
150 KEY_PUSHAD = 0xB2
151 KEY_POPA = 0xB2
152 KEY_POPAD = 0xB3
153 KEY_PUSH = 0xB3
154 KEY_PUSHF = 0xB4
155 KEY_PUSHFD = 0xB5
156 KEY_PUSHFW = 0xB6
157 KEY_SCAS = 0xB7
158 KEY_SCASB = 0xB8
159 KEY_SCASW = 0xB9
160 KEY_SCASD = 0xBA
161 KEY_STOS = 0xBB
162 KEY_STOSB = 0xBC
163 KEY_STOSW = 0xBD
164 KEY_STOSD = 0xBE
165 KEY_XCHG = 0xBF
166 KEY_NOP = 0xC0
167 KEY_PUSHAW = 0xC1
168 KEY_POPAW = 0xC2
169 KEY_SAHF = 0xC3
170 KEY_LAHF = 0xC4
171 KEY_CLC = 0xC5
172 KEY_STC = 0xC6
173 KEY_CLI = 0xC7
174 KEY_STI = 0xC8
175 KEY_CLD = 0xC9
176 KEY_STD = 0xCA
177 KEY_RET = 0xCB
178
179 }
180
181 global
182 {
183 buf lexgasm = '\h4 9 A FD000000 A0A 1000006 2C2C 2000046 5B5B
184 2000046 5D5D 2000046 2B2B 2000046 2D2D 2000046 2F2F
185 20004 3030 3060006 3139 3070006 4100 51005 2
186 10008 2A2A 30000 2F2F 40000 1 FD000000 2F2A
187 FD010800 1 FD000000 A0D0D 10008 2 10008 3000
188 FE000000 3A3A FE010000 3 10008 3039 FE070000 587878
189 FE080000 2626 FE090000 1 10008 3039 FE000000 1
190 10008 5800 FE000000 1 10008 313030 FE000000 194
191 48410000 10000 4C410000 20000 48420000 30000 4C420000 40000
192 48430000 50000 4C430000 60000 48440000 70000 4C440000 80000
193 58410000 90000 58420000 A0000 58430000 B0000 58440000 100000
194 41450000 11000058 45000000 5843 12 584445 1300 58424500
195 140000 53450000 15000050 45000000 5042 16 495345 1700
196 49444500 200000 52430000 21000030 43000000 3152 22 325243
197 2300 33524300 240000 52440000 25000030 44000000 3152 26
198 325244 2700 33524400 280000 52440000 29000034 44000000 3552
199 2A 365244 2B00 37524400 400000 414A0000 410000 414A0000
200 42000045 4A000000 43000042 4A000000 4542 44 434A 45
201 5A58434A 460000 454A0000 470000 454A0000 5A5843 4800 474A00
202 4900 45474A00 4A0000 4C4A0000 4B0000 4C4A0000 4C000045 4A000000
203 414E 4D 45414E4A 4E0000 4E4A0000 4F000042 4A000000 45424E
204 5000 434E4A00 510000 4E4A0000 52000045 4A000000 474E 53
205 45474E4A 540000 4E4A0000 5500004C 4A000000 454C4E 5600 4F4E4A00
206 570000 4E4A0000 58000050 4A000000 534E 59 5A4E4A 5A00
207 4F4A00 5B00 504A00 5C00 534A00 5D00 5A4A00 5E00
208 4F4F4C00 5F000050 4C000000 45504F4F 600000 4F4C0000 454E504F 610000
209 4F4C0000 5A4E504F 620000 45520000 63000050 52000000 455045 6400
210 50455200 6500005A 52000000 454E5045 660000 45520000 5A4E50 6700
211 4C414300 8000004C 43000000 504D 81 53504D 8200 504D4300
212 4253 83 53504D43 84000057 43000000 4453504D 850000 45540000
213 5453 86 434441 8700 44444100 880000 45440000 89000043
214 44000000 5649 8A 56494449 8B0000 4D490000 4C55 8C
215 434E49 8D00 4C554D00 8E0000 43520000 8F00004C 52000000 4C4F
216 90 524352 9100 524F5200 920000 41530000 9300004C 53000000
217 4C48 94 524153 9500 52485300 960000 55530000 97000042
218 41000000 444E 98 524F 99 524F58 9A00 544F4E00
219 9B0000 454E0000 9C000047 49000000 9D00004E 49000000 534E 9E
220 42534E49 9F0000 4E490000 5753 A0 44534E49 A10000 454C0000
221 A2000041 4C000000 53444F A300 444F4C00 4253 A4 53444F4C
222 A5000057 4C000000 4453444F A60000 4F4D0000 A7000056 4D000000 53564F
223 A800 564F4D00 4253 A9 53564F4D AA000057 4D000000 4453564F
224 AB0000 4F4D0000 585356 AC00 564F4D00 585A AD 504F50
225 AE00 504F5000 AF000046 50000000 4446504F B00000 4F500000 574650
226 B100 53555000 50004148 41485355 B2000044 50000000 41504F 41504F50
227 B3000044 50000000 485355 B400 53555000 4648 B5 48535550
228 4446 B6 48535550 5746 B7 53414353 B80000 43530000
229 425341 B900 41435300 5753 BA 53414353 BB000044 53000000
230 534F54 BC00 4F545300 4253 BD 534F5453 BE000057 53000000
231 44534F54 BF0000 43580000 4748 C0 504F4E C100 53555000
232 574148 C200 504F5000 5741 C3 46484153 C40000 414C0000
233 4648 C5 434C43 C600 43545300 C70000 4C430000 C8000049
234 53000000 4954 C9 444C43 CA00 44545300 CB0000 45520000
235 54'
236 }
237