1G pages support for CPU
[bochs-mirror.git] / bx_debug / lexer.c
blob8c562890f7585142f6053ba258d5b294fd60edcd
1 #define yy_create_buffer bx_create_buffer
2 #define yy_delete_buffer bx_delete_buffer
3 #define yy_scan_buffer bx_scan_buffer
4 #define yy_scan_string bx_scan_string
5 #define yy_scan_bytes bx_scan_bytes
6 #define yy_flex_debug bx_flex_debug
7 #define yy_init_buffer bx_init_buffer
8 #define yy_flush_buffer bx_flush_buffer
9 #define yy_load_buffer_state bx_load_buffer_state
10 #define yy_switch_to_buffer bx_switch_to_buffer
11 #define yyin bxin
12 #define yyleng bxleng
13 #define yylex bxlex
14 #define yyout bxout
15 #define yyrestart bxrestart
16 #define yytext bxtext
17 #define yywrap bxwrap
19 /* A lexical scanner generated by flex */
21 /* Scanner skeleton version:
22 * $Header: /cvsroot/bochs/bochs/bx_debug/lexer.c,v 1.34 2008/05/01 19:10:04 sshwarts Exp $
25 #define FLEX_SCANNER
26 #define YY_FLEX_MAJOR_VERSION 2
27 #define YY_FLEX_MINOR_VERSION 5
29 #include <stdio.h>
30 #include <errno.h>
32 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
33 #ifdef c_plusplus
34 #ifndef __cplusplus
35 #define __cplusplus
36 #endif
37 #endif
40 #ifdef __cplusplus
42 #include <stdlib.h>
43 #ifndef _WIN32
44 #include <unistd.h>
45 #endif
47 /* Use prototypes in function declarations. */
48 #define YY_USE_PROTOS
50 /* The "const" storage-class-modifier is valid. */
51 #define YY_USE_CONST
53 #else /* ! __cplusplus */
55 #if __STDC__
57 #define YY_USE_PROTOS
58 #define YY_USE_CONST
60 #endif /* __STDC__ */
61 #endif /* ! __cplusplus */
63 #ifdef __TURBOC__
64 #pragma warn -rch
65 #pragma warn -use
66 #include <io.h>
67 #include <stdlib.h>
68 #define YY_USE_CONST
69 #define YY_USE_PROTOS
70 #endif
72 #ifdef YY_USE_CONST
73 #define yyconst const
74 #else
75 #define yyconst
76 #endif
79 #ifdef YY_USE_PROTOS
80 #define YY_PROTO(proto) proto
81 #else
82 #define YY_PROTO(proto) ()
83 #endif
86 /* Returned upon end-of-file. */
87 #define YY_NULL 0
89 /* Promotes a possibly negative, possibly signed char to an unsigned
90 * integer for use as an array index. If the signed char is negative,
91 * we want to instead treat it as an 8-bit unsigned char, hence the
92 * double cast.
94 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
96 /* Enter a start condition. This macro really ought to take a parameter,
97 * but we do it the disgusting crufty way forced on us by the ()-less
98 * definition of BEGIN.
100 #define BEGIN yy_start = 1 + 2 *
102 /* Translate the current start state into a value that can be later handed
103 * to BEGIN to return to the state. The YYSTATE alias is for lex
104 * compatibility.
106 #define YY_START ((yy_start - 1) / 2)
107 #define YYSTATE YY_START
109 /* Action number for EOF rule of a given start state. */
110 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
112 /* Special action meaning "start processing a new file". */
113 #define YY_NEW_FILE yyrestart( yyin )
115 #define YY_END_OF_BUFFER_CHAR 0
117 /* Size of default input buffer. */
118 #define YY_BUF_SIZE 16384
120 typedef struct yy_buffer_state *YY_BUFFER_STATE;
122 extern int yyleng;
123 extern FILE *yyin, *yyout;
125 #define EOB_ACT_CONTINUE_SCAN 0
126 #define EOB_ACT_END_OF_FILE 1
127 #define EOB_ACT_LAST_MATCH 2
129 /* The funky do-while in the following #define is used to turn the definition
130 * int a single C statement (which needs a semi-colon terminator). This
131 * avoids problems with code like:
133 * if ( condition_holds )
134 * yyless( 5 );
135 * else
136 * do_something_else();
138 * Prior to using the do-while the compiler would get upset at the
139 * "else" because it interpreted the "if" statement as being all
140 * done when it reached the ';' after the yyless() call.
143 /* Return all but the first 'n' matched characters back to the input stream. */
145 #define yyless(n) \
146 do \
148 /* Undo effects of setting up yytext. */ \
149 *yy_cp = yy_hold_char; \
150 YY_RESTORE_YY_MORE_OFFSET \
151 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
152 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
154 while ( 0 )
156 #define unput(c) yyunput( c, yytext_ptr )
158 /* The following is because we cannot portably get our hands on size_t
159 * (without autoconf's help, which isn't available because we want
160 * flex-generated scanners to compile on their own).
162 typedef unsigned int yy_size_t;
165 struct yy_buffer_state
167 FILE *yy_input_file;
169 char *yy_ch_buf; /* input buffer */
170 char *yy_buf_pos; /* current position in input buffer */
172 /* Size of input buffer in bytes, not including room for EOB
173 * characters.
175 yy_size_t yy_buf_size;
177 /* Number of characters read into yy_ch_buf, not including EOB
178 * characters.
180 int yy_n_chars;
182 /* Whether we "own" the buffer - i.e., we know we created it,
183 * and can realloc() it to grow it, and should free() it to
184 * delete it.
186 int yy_is_our_buffer;
188 /* Whether this is an "interactive" input source; if so, and
189 * if we're using stdio for input, then we want to use getc()
190 * instead of fread(), to make sure we stop fetching input after
191 * each newline.
193 int yy_is_interactive;
195 /* Whether we're considered to be at the beginning of a line.
196 * If so, '^' rules will be active on the next match, otherwise
197 * not.
199 int yy_at_bol;
201 /* Whether to try to fill the input buffer when we reach the
202 * end of it.
204 int yy_fill_buffer;
206 int yy_buffer_status;
207 #define YY_BUFFER_NEW 0
208 #define YY_BUFFER_NORMAL 1
209 /* When an EOF's been seen but there's still some text to process
210 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
211 * shouldn't try reading from the input source any more. We might
212 * still have a bunch of tokens to match, though, because of
213 * possible backing-up.
215 * When we actually see the EOF, we change the status to "new"
216 * (via yyrestart()), so that the user can continue scanning by
217 * just pointing yyin at a new input file.
219 #define YY_BUFFER_EOF_PENDING 2
222 static YY_BUFFER_STATE yy_current_buffer = 0;
224 /* We provide macros for accessing buffer states in case in the
225 * future we want to put the buffer states in a more general
226 * "scanner state".
228 #define YY_CURRENT_BUFFER yy_current_buffer
231 /* yy_hold_char holds the character lost when yytext is formed. */
232 static char yy_hold_char;
234 static int yy_n_chars; /* number of characters read into yy_ch_buf */
237 int yyleng;
239 /* Points to current character in buffer. */
240 static char *yy_c_buf_p = (char *) 0;
241 static int yy_init = 1; /* whether we need to initialize */
242 static int yy_start = 0; /* start state number */
244 /* Flag which is used to allow yywrap()'s to do buffer switches
245 * instead of setting up a fresh yyin. A bit of a hack ...
247 static int yy_did_buffer_switch_on_eof;
249 void yyrestart YY_PROTO(( FILE *input_file ));
251 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
252 void yy_load_buffer_state YY_PROTO(( void ));
253 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
254 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
255 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
256 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
257 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
259 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
260 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
261 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
263 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
264 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
265 static void yy_flex_free YY_PROTO(( void * ));
267 #define yy_new_buffer yy_create_buffer
269 #define yy_set_interactive(is_interactive) \
271 if ( ! yy_current_buffer ) \
272 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
273 yy_current_buffer->yy_is_interactive = is_interactive; \
276 #define yy_set_bol(at_bol) \
278 if ( ! yy_current_buffer ) \
279 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
280 yy_current_buffer->yy_at_bol = at_bol; \
283 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
285 typedef unsigned char YY_CHAR;
286 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
287 typedef int yy_state_type;
288 extern char *yytext;
289 #define yytext_ptr yytext
291 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
292 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
293 static int yy_get_next_buffer YY_PROTO(( void ));
294 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
296 /* Done after the current pattern has been matched and before the
297 * corresponding action - sets up yytext.
299 #define YY_DO_BEFORE_ACTION \
300 yytext_ptr = yy_bp; \
301 yyleng = (int) (yy_cp - yy_bp); \
302 yy_hold_char = *yy_cp; \
303 *yy_cp = '\0'; \
304 yy_c_buf_p = yy_cp;
306 #define YY_NUM_RULES 203
307 #define YY_END_OF_BUFFER 204
308 static yyconst short int yy_accept[450] =
309 { 0,
310 0, 0, 0, 0, 0, 0, 204, 201, 1, 199,
311 187, 201, 200, 201, 184, 201, 188, 189, 180, 178,
312 179, 181, 194, 194, 198, 201, 201, 173, 197, 186,
313 195, 19, 6, 45, 195, 195, 195, 172, 195, 195,
314 195, 195, 13, 195, 14, 50, 27, 11, 195, 61,
315 195, 195, 51, 185, 202, 1, 202, 198, 202, 1,
316 0, 191, 0, 200, 196, 0, 190, 0, 195, 193,
317 194, 0, 183, 182, 197, 195, 110, 94, 114, 111,
318 95, 120, 195, 115, 195, 112, 96, 195, 195, 22,
319 165, 116, 195, 113, 119, 97, 195, 195, 168, 117,
321 195, 195, 195, 195, 195, 195, 166, 195, 195, 30,
322 169, 195, 195, 170, 195, 195, 195, 162, 195, 195,
323 17, 195, 195, 195, 195, 195, 195, 3, 195, 19,
324 195, 195, 195, 195, 195, 195, 195, 197, 154, 155,
325 195, 195, 195, 195, 195, 195, 195, 73, 195, 195,
326 118, 195, 121, 195, 167, 195, 195, 195, 195, 195,
327 195, 195, 16, 195, 195, 195, 195, 195, 52, 175,
328 176, 177, 196, 192, 195, 47, 46, 101, 195, 195,
329 195, 34, 5, 195, 44, 99, 195, 195, 58, 195,
330 130, 136, 131, 132, 135, 133, 195, 163, 134, 137,
332 195, 195, 30, 37, 195, 195, 35, 195, 195, 59,
333 36, 195, 195, 38, 195, 33, 195, 197, 195, 4,
334 195, 195, 93, 195, 60, 195, 195, 195, 195, 195,
335 156, 157, 158, 159, 160, 161, 102, 138, 122, 103,
336 139, 123, 146, 153, 147, 148, 151, 149, 195, 195,
337 27, 195, 164, 150, 152, 74, 2, 195, 98, 195,
338 195, 100, 195, 31, 195, 195, 195, 195, 40, 195,
339 195, 39, 195, 195, 92, 195, 195, 195, 32, 195,
340 195, 174, 7, 23, 195, 195, 195, 66, 195, 49,
341 195, 195, 172, 21, 195, 195, 195, 195, 195, 197,
343 90, 12, 91, 195, 195, 195, 195, 195, 195, 48,
344 104, 140, 124, 105, 141, 125, 106, 142, 126, 107,
345 143, 127, 108, 144, 128, 109, 145, 129, 81, 195,
346 195, 28, 195, 195, 83, 71, 195, 25, 10, 65,
347 195, 195, 57, 195, 195, 195, 195, 195, 195, 15,
348 18, 195, 24, 195, 41, 195, 195, 171, 195, 195,
349 195, 84, 42, 195, 197, 195, 195, 195, 195, 72,
350 55, 195, 195, 195, 195, 86, 26, 9, 195, 195,
351 67, 195, 195, 79, 88, 82, 195, 43, 62, 195,
352 87, 195, 17, 77, 20, 195, 195, 195, 75, 195,
354 195, 195, 195, 195, 195, 195, 16, 195, 195, 195,
355 56, 195, 195, 195, 53, 54, 195, 85, 195, 195,
356 80, 8, 195, 195, 76, 195, 195, 195, 195, 195,
357 195, 195, 195, 195, 29, 195, 69, 68, 195, 64,
358 195, 195, 195, 63, 78, 195, 70, 89, 0
361 static yyconst int yy_ec[256] =
362 { 0,
363 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
364 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
365 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
366 1, 2, 4, 5, 6, 7, 1, 8, 9, 10,
367 11, 12, 13, 1, 14, 1, 15, 16, 17, 18,
368 19, 20, 21, 22, 22, 23, 24, 1, 25, 26,
369 1, 27, 28, 1, 29, 29, 29, 29, 29, 29,
370 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
371 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
372 1, 31, 1, 32, 30, 1, 33, 34, 35, 36,
374 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
375 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
376 57, 58, 1, 59, 1, 1, 1, 1, 1, 1,
377 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
378 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
379 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
380 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
381 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
382 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
383 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
385 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
386 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
387 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
388 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
389 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
390 1, 1, 1, 1, 1
393 static yyconst int yy_meta[60] =
394 { 0,
395 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
396 1, 1, 1, 3, 1, 4, 4, 4, 4, 4,
397 4, 4, 4, 4, 1, 1, 1, 1, 5, 6,
398 1, 1, 7, 8, 8, 8, 7, 7, 9, 9,
399 9, 10, 10, 10, 9, 10, 9, 10, 10, 10,
400 9, 9, 9, 10, 9, 11, 10, 10, 1
403 static yyconst short int yy_base[464] =
404 { 0,
405 0, 0, 58, 60, 62, 64, 207, 2514, 203, 2514,
406 2514, 63, 0, 0, 2514, 60, 2514, 2514, 2514, 2514,
407 0, 2514, 47, 0, 2514, 176, 172, 2514, 0, 2514,
408 90, 133, 85, 153, 177, 42, 124, 182, 195, 196,
409 214, 211, 230, 233, 255, 260, 300, 323, 299, 294,
410 347, 344, 358, 2514, 2514, 194, 399, 2514, 0, 193,
411 69, 2514, 0, 0, 0, 71, 2514, 0, 0, 72,
412 0, 0, 2514, 2514, 0, 397, 416, 417, 430, 431,
413 444, 453, 458, 467, 472, 481, 486, 322, 497, 517,
414 510, 526, 529, 538, 547, 552, 566, 571, 580, 585,
416 594, 599, 608, 613, 622, 627, 640, 645, 654, 659,
417 673, 674, 687, 688, 701, 702, 715, 720, 729, 740,
418 743, 754, 761, 768, 777, 782, 795, 796, 809, 810,
419 823, 826, 842, 849, 864, 865, 880, 408, 42, 87,
420 883, 892, 897, 910, 934, 915, 939, 66, 397, 953,
421 958, 966, 258, 973, 986, 993, 994, 1003, 1016, 869,
422 1023, 1030, 1033, 1038, 1043, 1053, 1058, 1063, 1068, 0,
423 0, 0, 0, 0, 1077, 1078, 1085, 1088, 1098, 1099,
424 1107, 1112, 1121, 1122, 1129, 1132, 1142, 1149, 1152, 1157,
425 1162, 1171, 1172, 1179, 1182, 1192, 1193, 1201, 1202, 1212,
427 1215, 1222, 1223, 1236, 1243, 1250, 1251, 1258, 1271, 1278,
428 1279, 1298, 1293, 1301, 1306, 1321, 1328, 72, 1329, 1336,
429 1349, 1356, 1357, 1366, 1371, 1376, 1379, 1393, 1396, 1401,
430 88, 103, 104, 131, 151, 239, 0, 0, 0, 0,
431 0, 0, 1404, 1415, 1423, 1424, 1432, 1437, 1445, 1452,
432 1459, 1462, 1469, 1472, 1482, 1483, 1491, 1492, 1502, 1511,
433 1516, 1519, 1524, 1533, 1538, 1543, 1546, 1566, 1557, 1574,
434 1571, 1579, 1588, 1596, 1593, 1601, 1610, 1615, 1618, 1623,
435 1637, 1638, 1646, 1651, 1659, 1666, 1673, 1674, 1681, 1694,
436 1695, 1702, 1703, 1716, 1723, 1724, 1731, 1744, 1751, 176,
438 0, 1754, 1759, 1764, 1773, 1783, 1774, 1794, 1797, 1802,
439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
440 0, 0, 0, 0, 0, 0, 0, 0, 1805, 1816,
441 1824, 1825, 1835, 1838, 1845, 1846, 1855, 1860, 1869, 1870,
442 1879, 1880, 1889, 1899, 1890, 1900, 1913, 1910, 1921, 1924,
443 1932, 1935, 1943, 1952, 1957, 1960, 1965, 1974, 1979, 1982,
444 1989, 2003, 2004, 2011, 175, 2014, 2025, 2028, 2042, 2033,
445 2047, 2052, 2057, 2062, 2067, 2072, 2081, 2082, 2089, 2092,
446 2112, 2102, 2109, 2122, 2123, 2131, 2132, 2142, 2145, 2153,
447 2156, 2164, 2167, 2175, 2178, 2186, 2189, 137, 2197, 2206,
449 2214, 2211, 2219, 2228, 81, 2233, 2236, 2241, 2250, 2261,
450 2258, 2271, 132, 2278, 2285, 2286, 137, 2299, 142, 141,
451 2300, 2307, 2310, 2320, 2321, 94, 2329, 129, 126, 131,
452 2330, 2340, 134, 125, 2343, 125, 0, 0, 2350, 2351,
453 105, 99, 79, 2360, 0, 45, 0, 0, 2514, 2411,
454 2422, 2433, 2440, 2451, 2460, 2468, 77, 2476, 2485, 68,
455 2493, 2501, 2502
458 static yyconst short int yy_def[464] =
459 { 0,
460 449, 1, 450, 450, 450, 450, 449, 449, 449, 449,
461 449, 451, 452, 453, 449, 454, 449, 449, 449, 449,
462 455, 449, 456, 457, 449, 449, 449, 449, 458, 449,
463 459, 459, 32, 32, 32, 32, 32, 32, 32, 32,
464 39, 39, 39, 39, 32, 32, 35, 32, 32, 39,
465 39, 32, 32, 449, 449, 449, 449, 449, 460, 449,
466 451, 449, 451, 452, 461, 454, 449, 454, 455, 456,
467 457, 462, 449, 449, 458, 32, 32, 32, 32, 32,
468 32, 32, 32, 32, 32, 32, 32, 39, 39, 39,
469 39, 39, 32, 32, 32, 32, 32, 32, 32, 32,
471 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
472 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
473 32, 32, 39, 32, 39, 32, 32, 32, 32, 32,
474 32, 39, 39, 39, 39, 39, 39, 458, 458, 458,
475 32, 32, 32, 32, 32, 32, 32, 145, 145, 145,
476 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
477 145, 145, 145, 145, 145, 145, 145, 145, 145, 57,
478 463, 460, 461, 462, 145, 145, 145, 145, 145, 145,
479 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
480 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
482 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
483 145, 145, 145, 145, 145, 145, 145, 458, 145, 145,
484 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
485 458, 458, 458, 458, 458, 458, 458, 458, 458, 458,
486 458, 458, 145, 145, 145, 145, 145, 145, 145, 145,
487 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
488 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
489 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
490 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
491 145, 145, 145, 145, 145, 145, 145, 145, 145, 458,
493 458, 145, 145, 145, 145, 145, 145, 145, 145, 145,
494 458, 458, 458, 458, 458, 458, 458, 458, 458, 458,
495 458, 458, 458, 458, 458, 458, 458, 458, 145, 145,
496 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
497 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
498 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
499 145, 145, 145, 145, 458, 145, 145, 145, 145, 145,
500 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
501 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
502 145, 145, 145, 145, 145, 145, 145, 455, 145, 145,
504 145, 145, 145, 145, 455, 145, 145, 145, 145, 145,
505 145, 145, 455, 145, 145, 145, 455, 145, 455, 455,
506 145, 145, 145, 145, 145, 455, 145, 455, 455, 455,
507 145, 145, 455, 455, 145, 455, 455, 455, 145, 145,
508 455, 455, 455, 145, 455, 455, 455, 455, 0, 449,
509 449, 449, 449, 449, 449, 449, 449, 449, 449, 449,
510 449, 449, 449
513 static yyconst short int yy_nxt[2574] =
514 { 0,
515 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
516 18, 19, 20, 21, 22, 23, 24, 24, 24, 24,
517 24, 24, 24, 24, 25, 26, 27, 28, 29, 29,
518 8, 30, 31, 32, 33, 34, 35, 36, 37, 38,
519 39, 40, 40, 41, 42, 43, 44, 45, 46, 47,
520 48, 49, 50, 51, 52, 53, 40, 40, 54, 56,
521 10, 56, 10, 56, 10, 56, 10, 62, 67, 71,
522 71, 172, 57, 62, 57, 237, 59, 238, 59, 67,
523 71, 76, 58, 448, 58, 109, 58, 300, 58, 110,
524 68, 76, 111, 63, 71, 71, 239, 76, 256, 63,
526 76, 68, 72, 69, 76, 75, 75, 75, 75, 75,
527 75, 75, 75, 75, 301, 447, 76, 85, 75, 75,
528 240, 311, 241, 312, 86, 419, 433, 449, 87, 77,
529 420, 88, 89, 78, 90, 91, 314, 317, 315, 318,
530 92, 242, 313, 434, 446, 79, 69, 445, 75, 75,
531 75, 75, 75, 75, 75, 75, 75, 316, 319, 112,
532 443, 75, 75, 76, 320, 442, 321, 113, 441, 438,
533 437, 76, 80, 76, 114, 436, 81, 430, 429, 76,
534 82, 428, 83, 426, 323, 322, 324, 413, 84, 93,
535 301, 365, 94, 95, 60, 60, 96, 97, 74, 98,
537 76, 73, 76, 99, 60, 325, 449, 449, 100, 101,
538 102, 103, 104, 449, 105, 449, 76, 106, 115, 449,
539 76, 76, 449, 449, 76, 76, 76, 107, 449, 76,
540 116, 76, 108, 449, 76, 76, 449, 76, 76, 76,
541 117, 449, 118, 76, 119, 76, 76, 121, 120, 122,
542 76, 76, 449, 449, 123, 124, 76, 125, 76, 76,
543 76, 76, 449, 76, 76, 76, 126, 76, 76, 449,
544 127, 449, 326, 449, 327, 76, 449, 76, 128, 76,
545 76, 449, 76, 76, 449, 449, 76, 129, 130, 131,
546 76, 132, 76, 328, 76, 133, 76, 449, 134, 76,
548 449, 262, 76, 76, 135, 449, 136, 76, 76, 76,
549 76, 449, 137, 449, 449, 76, 138, 449, 449, 449,
550 449, 449, 139, 140, 449, 449, 449, 449, 449, 76,
551 449, 159, 141, 142, 143, 144, 145, 76, 76, 162,
552 146, 76, 76, 76, 449, 449, 76, 76, 160, 161,
553 147, 449, 449, 449, 76, 76, 148, 76, 449, 149,
554 449, 449, 150, 151, 449, 449, 152, 181, 449, 76,
555 153, 76, 154, 155, 156, 76, 165, 157, 76, 158,
556 163, 449, 76, 166, 449, 164, 449, 76, 449, 449,
557 449, 76, 76, 167, 76, 449, 76, 76, 449, 76,
559 76, 76, 168, 449, 449, 169, 449, 76, 449, 449,
560 449, 449, 449, 76, 170, 170, 170, 170, 170, 170,
561 170, 170, 170, 231, 232, 233, 234, 235, 236, 76,
562 449, 76, 171, 171, 171, 76, 76, 171, 171, 171,
563 76, 449, 449, 171, 76, 171, 76, 76, 257, 171,
564 171, 171, 76, 171, 171, 76, 76, 449, 449, 76,
565 76, 449, 449, 76, 76, 76, 76, 449, 449, 76,
566 76, 76, 76, 76, 76, 449, 449, 76, 76, 76,
567 76, 449, 449, 76, 175, 76, 76, 76, 176, 177,
568 449, 76, 76, 76, 179, 449, 178, 76, 449, 76,
570 76, 76, 76, 449, 449, 76, 76, 76, 76, 449,
571 76, 76, 449, 76, 76, 180, 76, 449, 449, 76,
572 76, 76, 76, 449, 76, 76, 449, 76, 76, 76,
573 76, 449, 76, 76, 449, 76, 76, 449, 449, 449,
574 449, 76, 76, 449, 76, 76, 76, 449, 449, 182,
575 76, 183, 76, 184, 449, 76, 449, 76, 449, 76,
576 449, 76, 76, 76, 76, 449, 76, 449, 76, 449,
577 76, 76, 185, 76, 449, 76, 76, 76, 76, 76,
578 449, 76, 449, 449, 76, 76, 76, 76, 449, 449,
579 186, 76, 449, 76, 76, 76, 187, 188, 189, 76,
581 449, 76, 76, 449, 449, 76, 449, 76, 449, 76,
582 76, 190, 449, 76, 76, 76, 449, 449, 76, 76,
583 76, 76, 449, 76, 76, 449, 76, 76, 76, 76,
584 449, 449, 76, 76, 76, 76, 449, 76, 76, 449,
585 76, 76, 76, 76, 449, 449, 192, 76, 76, 191,
586 449, 76, 76, 195, 193, 76, 76, 76, 449, 449,
587 76, 76, 76, 194, 449, 197, 76, 449, 196, 76,
588 76, 76, 449, 449, 198, 449, 76, 76, 449, 76,
589 199, 449, 76, 76, 76, 201, 202, 200, 76, 76,
590 449, 449, 76, 76, 76, 76, 449, 76, 76, 449,
592 76, 76, 76, 76, 449, 449, 76, 449, 76, 76,
593 449, 203, 76, 76, 76, 449, 76, 76, 449, 449,
594 76, 76, 76, 76, 449, 204, 76, 76, 76, 76,
595 76, 76, 449, 205, 76, 76, 76, 76, 449, 449,
596 76, 76, 76, 76, 206, 76, 449, 449, 76, 76,
597 76, 76, 208, 207, 76, 449, 76, 76, 76, 76,
598 449, 449, 76, 76, 76, 209, 449, 76, 76, 76,
599 76, 449, 76, 449, 449, 76, 76, 210, 76, 76,
600 449, 449, 76, 76, 76, 449, 76, 76, 449, 76,
601 76, 211, 212, 76, 449, 76, 76, 76, 76, 218,
603 449, 76, 449, 76, 213, 214, 215, 76, 76, 76,
604 76, 76, 217, 449, 76, 76, 449, 76, 449, 449,
605 449, 76, 76, 216, 76, 76, 76, 449, 449, 76,
606 76, 76, 220, 449, 76, 76, 449, 219, 76, 76,
607 449, 449, 76, 76, 76, 76, 449, 221, 76, 76,
608 76, 76, 76, 76, 449, 449, 76, 76, 76, 222,
609 449, 76, 76, 223, 76, 76, 76, 449, 449, 449,
610 76, 224, 76, 76, 449, 76, 225, 76, 76, 76,
611 449, 226, 449, 449, 76, 449, 449, 76, 449, 76,
612 449, 76, 449, 449, 76, 76, 76, 449, 76, 76,
614 76, 271, 76, 76, 227, 228, 449, 76, 449, 76,
615 76, 76, 76, 76, 76, 76, 229, 76, 76, 76,
616 230, 449, 76, 449, 449, 76, 76, 76, 449, 76,
617 76, 76, 76, 76, 449, 76, 76, 449, 243, 244,
618 76, 76, 449, 449, 76, 449, 76, 245, 449, 76,
619 247, 449, 246, 76, 76, 449, 449, 76, 76, 76,
620 449, 449, 253, 449, 76, 248, 249, 449, 250, 449,
621 76, 449, 251, 76, 449, 449, 449, 76, 76, 254,
622 449, 76, 76, 76, 252, 76, 255, 76, 76, 76,
623 76, 76, 76, 449, 76, 449, 76, 449, 76, 258,
625 76, 259, 449, 76, 76, 76, 261, 76, 76, 263,
626 449, 76, 449, 449, 449, 260, 76, 449, 76, 449,
627 76, 449, 264, 76, 76, 76, 76, 76, 76, 265,
628 449, 76, 76, 449, 267, 76, 76, 76, 449, 266,
629 449, 76, 449, 76, 76, 449, 449, 268, 76, 269,
630 76, 449, 449, 76, 76, 76, 449, 76, 270, 449,
631 449, 76, 76, 449, 76, 76, 76, 76, 76, 449,
632 275, 76, 76, 272, 449, 76, 76, 76, 449, 449,
633 76, 76, 274, 76, 273, 76, 449, 76, 76, 277,
634 76, 76, 76, 76, 276, 76, 76, 76, 278, 449,
636 76, 76, 76, 76, 449, 449, 76, 279, 76, 76,
637 76, 76, 76, 76, 449, 76, 76, 76, 76, 76,
638 76, 449, 76, 76, 449, 449, 76, 280, 76, 449,
639 281, 76, 76, 282, 449, 76, 76, 76, 76, 76,
640 449, 76, 449, 449, 76, 76, 76, 449, 76, 76,
641 76, 449, 449, 76, 76, 76, 76, 76, 283, 76,
642 284, 76, 76, 76, 76, 285, 76, 76, 449, 449,
643 76, 76, 76, 449, 76, 449, 76, 449, 449, 76,
644 76, 287, 76, 76, 76, 449, 76, 76, 449, 76,
645 76, 76, 76, 286, 76, 76, 76, 449, 449, 76,
647 76, 449, 76, 76, 76, 76, 76, 76, 288, 76,
648 76, 76, 76, 76, 76, 449, 76, 76, 449, 449,
649 76, 76, 76, 449, 76, 289, 76, 76, 449, 76,
650 76, 76, 76, 76, 76, 76, 76, 449, 449, 76,
651 76, 449, 76, 76, 76, 449, 76, 76, 449, 76,
652 76, 76, 76, 76, 76, 76, 76, 76, 449, 449,
653 291, 76, 76, 449, 449, 76, 290, 449, 76, 449,
654 76, 449, 76, 76, 76, 76, 292, 76, 449, 449,
655 449, 76, 76, 76, 76, 76, 76, 449, 76, 76,
656 76, 449, 76, 76, 449, 449, 76, 293, 449, 449,
658 76, 76, 449, 76, 294, 76, 449, 449, 76, 76,
659 76, 76, 76, 76, 449, 449, 76, 76, 449, 449,
660 449, 76, 295, 449, 449, 76, 449, 76, 76, 76,
661 76, 76, 76, 76, 296, 76, 76, 449, 76, 76,
662 76, 449, 449, 76, 76, 449, 449, 449, 76, 297,
663 449, 76, 449, 76, 449, 76, 76, 449, 298, 76,
664 76, 76, 76, 76, 299, 449, 76, 76, 76, 449,
665 76, 76, 449, 449, 76, 449, 449, 449, 76, 76,
666 302, 76, 449, 76, 449, 303, 76, 76, 76, 76,
667 76, 76, 304, 449, 76, 76, 449, 449, 76, 76,
669 76, 305, 449, 76, 76, 76, 76, 76, 76, 76,
670 76, 76, 449, 76, 76, 449, 76, 76, 449, 449,
671 449, 76, 449, 449, 307, 76, 76, 76, 76, 76,
672 76, 76, 306, 76, 76, 76, 76, 308, 76, 76,
673 449, 449, 76, 76, 449, 309, 76, 76, 449, 76,
674 449, 76, 310, 76, 76, 76, 76, 76, 76, 449,
675 449, 76, 76, 449, 76, 76, 76, 449, 449, 76,
676 76, 76, 449, 76, 76, 76, 449, 76, 449, 76,
677 329, 449, 76, 76, 76, 449, 76, 76, 449, 449,
678 76, 76, 449, 76, 76, 76, 76, 76, 330, 331,
680 76, 76, 76, 76, 76, 449, 76, 76, 449, 332,
681 76, 449, 76, 333, 76, 76, 76, 76, 449, 76,
682 76, 76, 76, 76, 76, 76, 76, 449, 449, 76,
683 76, 449, 76, 76, 76, 449, 76, 449, 334, 449,
684 76, 76, 76, 76, 449, 76, 335, 336, 76, 76,
685 76, 76, 76, 76, 76, 449, 76, 76, 76, 449,
686 449, 76, 338, 449, 449, 76, 337, 76, 449, 76,
687 76, 76, 76, 449, 76, 76, 76, 76, 76, 449,
688 76, 76, 449, 76, 76, 339, 449, 449, 76, 76,
689 340, 76, 449, 76, 449, 76, 76, 341, 76, 342,
691 76, 449, 449, 76, 76, 344, 76, 76, 76, 76,
692 343, 76, 76, 76, 449, 449, 76, 76, 449, 449,
693 345, 76, 76, 449, 76, 76, 76, 76, 76, 76,
694 76, 76, 346, 76, 76, 347, 449, 449, 76, 76,
695 449, 449, 76, 76, 76, 449, 76, 76, 76, 76,
696 76, 76, 76, 76, 449, 76, 76, 76, 449, 348,
697 76, 76, 449, 449, 449, 76, 349, 449, 76, 76,
698 76, 76, 76, 76, 350, 76, 76, 449, 76, 351,
699 76, 449, 449, 76, 76, 76, 352, 76, 76, 76,
700 449, 76, 449, 76, 449, 449, 76, 76, 76, 449,
702 76, 353, 449, 449, 76, 76, 76, 76, 76, 76,
703 354, 76, 76, 76, 449, 76, 76, 449, 449, 357,
704 449, 449, 355, 356, 76, 449, 76, 76, 76, 76,
705 449, 76, 76, 76, 359, 76, 76, 76, 449, 449,
706 76, 76, 449, 449, 76, 358, 449, 449, 76, 449,
707 76, 449, 76, 76, 76, 76, 361, 76, 76, 449,
708 449, 76, 76, 76, 449, 76, 76, 449, 449, 76,
709 449, 449, 360, 76, 76, 362, 76, 449, 76, 449,
710 449, 76, 76, 76, 364, 76, 76, 449, 76, 76,
711 449, 76, 76, 76, 76, 449, 366, 76, 76, 363,
713 449, 76, 76, 449, 76, 76, 76, 76, 76, 76,
714 449, 76, 76, 367, 76, 76, 368, 76, 449, 449,
715 449, 76, 449, 76, 76, 369, 76, 449, 76, 76,
716 370, 76, 76, 76, 76, 76, 76, 76, 449, 76,
717 76, 449, 449, 76, 76, 449, 449, 76, 76, 449,
718 76, 449, 76, 371, 76, 76, 76, 76, 76, 76,
719 449, 449, 76, 76, 449, 372, 76, 76, 449, 76,
720 76, 449, 76, 76, 373, 76, 76, 76, 76, 76,
721 76, 374, 375, 76, 76, 76, 449, 76, 76, 76,
722 449, 449, 76, 76, 76, 76, 76, 449, 76, 449,
724 449, 76, 76, 76, 76, 76, 376, 76, 76, 378,
725 377, 76, 76, 379, 76, 449, 449, 76, 76, 76,
726 76, 76, 76, 76, 76, 449, 380, 76, 76, 76,
727 76, 76, 383, 76, 76, 381, 449, 76, 76, 76,
728 76, 382, 76, 449, 76, 76, 385, 76, 76, 76,
729 76, 76, 384, 76, 449, 76, 76, 386, 76, 76,
730 76, 449, 76, 76, 76, 449, 76, 76, 449, 76,
731 76, 76, 449, 76, 76, 76, 449, 76, 449, 449,
732 387, 76, 76, 449, 76, 76, 76, 449, 388, 76,
733 76, 76, 76, 76, 76, 76, 449, 76, 76, 76,
735 449, 449, 76, 76, 389, 449, 76, 76, 76, 449,
736 390, 76, 76, 76, 76, 358, 76, 76, 449, 449,
737 76, 76, 391, 76, 76, 449, 449, 76, 449, 76,
738 449, 393, 76, 449, 392, 76, 76, 76, 76, 76,
739 449, 76, 76, 76, 449, 76, 76, 449, 76, 76,
740 449, 449, 76, 76, 76, 398, 395, 76, 394, 76,
741 397, 76, 76, 76, 76, 76, 76, 76, 449, 449,
742 396, 76, 449, 449, 76, 76, 76, 449, 76, 76,
743 76, 76, 449, 76, 76, 76, 76, 399, 449, 76,
744 76, 76, 76, 449, 76, 76, 76, 76, 449, 76,
746 76, 76, 76, 402, 76, 76, 76, 76, 400, 449,
747 76, 401, 76, 76, 76, 76, 76, 76, 449, 76,
748 76, 76, 76, 76, 76, 405, 76, 76, 403, 449,
749 76, 76, 76, 449, 76, 404, 406, 449, 449, 76,
750 76, 76, 76, 76, 76, 449, 76, 76, 449, 449,
751 76, 407, 76, 449, 76, 76, 76, 76, 449, 76,
752 76, 76, 76, 76, 76, 76, 76, 449, 449, 76,
753 76, 449, 76, 76, 76, 449, 76, 76, 449, 76,
754 76, 76, 76, 76, 408, 76, 449, 76, 76, 409,
755 76, 76, 76, 449, 76, 76, 76, 449, 76, 76,
757 449, 76, 76, 76, 449, 76, 76, 76, 410, 76,
758 76, 449, 76, 76, 76, 449, 76, 76, 76, 449,
759 76, 76, 449, 412, 411, 76, 449, 76, 76, 76,
760 449, 76, 417, 449, 449, 76, 76, 449, 76, 76,
761 76, 449, 414, 76, 76, 76, 76, 76, 76, 76,
762 415, 76, 76, 76, 449, 416, 76, 76, 449, 449,
763 76, 76, 76, 449, 76, 76, 76, 76, 76, 76,
764 76, 76, 421, 76, 76, 76, 449, 422, 418, 76,
765 449, 449, 76, 76, 76, 449, 76, 449, 76, 449,
766 76, 76, 76, 76, 423, 76, 76, 424, 449, 76,
768 76, 449, 449, 76, 449, 76, 449, 449, 76, 76,
769 76, 76, 76, 425, 449, 449, 76, 76, 76, 76,
770 76, 76, 449, 76, 76, 449, 449, 427, 76, 449,
771 449, 76, 76, 76, 76, 76, 76, 76, 76, 76,
772 449, 76, 76, 431, 76, 76, 449, 449, 76, 76,
773 76, 449, 76, 76, 76, 76, 449, 76, 76, 76,
774 76, 76, 76, 76, 76, 432, 449, 76, 76, 449,
775 76, 76, 76, 439, 76, 76, 449, 76, 76, 435,
776 76, 76, 76, 76, 76, 76, 444, 449, 76, 76,
777 76, 440, 76, 76, 76, 449, 449, 449, 76, 449,
779 76, 76, 449, 449, 449, 449, 449, 449, 449, 449,
780 76, 55, 55, 55, 55, 55, 55, 55, 55, 55,
781 55, 55, 61, 449, 61, 61, 61, 61, 61, 61,
782 61, 61, 61, 64, 449, 64, 64, 64, 64, 64,
783 64, 64, 64, 64, 65, 65, 65, 65, 65, 65,
784 65, 66, 449, 66, 66, 66, 66, 66, 66, 66,
785 66, 66, 69, 449, 449, 449, 69, 69, 69, 69,
786 69, 70, 449, 449, 449, 449, 449, 449, 70, 75,
787 75, 75, 75, 75, 75, 75, 75, 76, 76, 76,
788 76, 76, 76, 76, 76, 76, 173, 173, 173, 173,
790 173, 173, 173, 173, 174, 174, 449, 174, 174, 171,
791 171, 449, 171, 7, 449, 449, 449, 449, 449, 449,
792 449, 449, 449, 449, 449, 449, 449, 449, 449, 449,
793 449, 449, 449, 449, 449, 449, 449, 449, 449, 449,
794 449, 449, 449, 449, 449, 449, 449, 449, 449, 449,
795 449, 449, 449, 449, 449, 449, 449, 449, 449, 449,
796 449, 449, 449, 449, 449, 449, 449, 449, 449, 449,
797 449, 449, 449
800 static yyconst short int yy_chk[2574] =
801 { 0,
802 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
803 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
804 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
805 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
806 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
807 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
808 3, 4, 4, 5, 5, 6, 6, 12, 16, 23,
809 23, 460, 3, 61, 4, 139, 5, 139, 6, 66,
810 457, 36, 3, 446, 4, 36, 5, 218, 6, 36,
811 16, 36, 36, 12, 70, 70, 139, 36, 148, 61,
813 148, 66, 23, 31, 148, 31, 31, 31, 31, 31,
814 31, 31, 31, 31, 218, 443, 148, 33, 31, 31,
815 140, 231, 140, 231, 33, 405, 426, 70, 33, 31,
816 405, 33, 33, 31, 33, 33, 232, 233, 232, 233,
817 33, 140, 231, 426, 442, 31, 32, 441, 32, 32,
818 32, 32, 32, 32, 32, 32, 32, 232, 233, 37,
819 436, 32, 32, 37, 234, 434, 234, 37, 433, 430,
820 429, 37, 32, 37, 37, 428, 32, 420, 419, 37,
821 32, 417, 32, 413, 235, 234, 235, 398, 32, 34,
822 365, 300, 34, 34, 60, 56, 34, 34, 27, 34,
824 34, 26, 34, 34, 9, 235, 7, 0, 34, 35,
825 35, 35, 35, 0, 35, 0, 35, 35, 38, 0,
826 35, 38, 0, 0, 35, 38, 35, 35, 0, 38,
827 39, 38, 35, 0, 39, 40, 0, 38, 39, 40,
828 39, 0, 39, 40, 39, 40, 42, 41, 39, 41,
829 39, 40, 0, 0, 41, 42, 42, 42, 42, 41,
830 42, 41, 0, 41, 42, 43, 43, 41, 44, 0,
831 44, 0, 236, 0, 236, 43, 0, 43, 44, 43,
832 44, 0, 44, 43, 0, 0, 44, 45, 45, 45,
833 153, 45, 153, 236, 45, 45, 153, 0, 45, 46,
835 0, 153, 45, 46, 45, 0, 45, 46, 153, 46,
836 45, 0, 46, 0, 0, 46, 47, 0, 0, 0,
837 0, 0, 47, 47, 0, 0, 0, 0, 0, 50,
838 0, 49, 47, 47, 47, 47, 47, 47, 49, 50,
839 47, 50, 49, 50, 0, 0, 49, 50, 49, 49,
840 47, 0, 0, 0, 49, 47, 48, 88, 0, 48,
841 0, 0, 48, 48, 0, 0, 48, 88, 0, 88,
842 48, 88, 48, 48, 48, 88, 52, 48, 48, 48,
843 51, 0, 51, 52, 0, 51, 0, 52, 0, 0,
844 0, 52, 51, 52, 51, 0, 51, 53, 0, 52,
846 51, 53, 53, 0, 0, 53, 0, 53, 0, 0,
847 0, 0, 0, 53, 57, 57, 57, 57, 57, 57,
848 57, 57, 57, 138, 138, 138, 138, 138, 138, 149,
849 0, 149, 57, 57, 57, 149, 76, 57, 57, 57,
850 76, 0, 0, 57, 76, 57, 76, 149, 149, 57,
851 57, 57, 76, 57, 57, 77, 78, 0, 0, 77,
852 78, 0, 0, 77, 78, 77, 78, 0, 0, 79,
853 80, 77, 78, 79, 80, 0, 0, 79, 80, 79,
854 80, 0, 0, 81, 81, 79, 80, 81, 82, 82,
855 0, 81, 82, 81, 83, 0, 82, 83, 0, 81,
857 82, 83, 82, 0, 0, 83, 84, 83, 82, 0,
858 84, 85, 0, 83, 84, 85, 84, 0, 0, 85,
859 86, 85, 84, 0, 86, 87, 0, 85, 86, 87,
860 86, 0, 89, 87, 0, 87, 86, 0, 0, 0,
861 0, 87, 89, 0, 89, 91, 89, 0, 0, 89,
862 89, 90, 90, 90, 0, 91, 0, 91, 0, 91,
863 0, 92, 90, 91, 90, 0, 90, 0, 93, 0,
864 90, 92, 93, 92, 0, 92, 93, 94, 93, 92,
865 0, 94, 0, 0, 93, 94, 95, 94, 0, 0,
866 95, 96, 0, 94, 95, 96, 95, 95, 97, 96,
868 0, 96, 95, 0, 0, 97, 0, 96, 0, 97,
869 98, 98, 0, 97, 98, 97, 0, 0, 98, 99,
870 98, 97, 0, 99, 100, 0, 98, 99, 100, 99,
871 0, 0, 100, 101, 100, 99, 0, 101, 102, 0,
872 100, 101, 102, 101, 0, 0, 102, 103, 102, 101,
873 0, 103, 104, 104, 102, 103, 104, 103, 0, 0,
874 104, 105, 104, 103, 0, 105, 106, 0, 104, 105,
875 106, 105, 0, 0, 106, 0, 106, 105, 0, 107,
876 107, 0, 106, 107, 108, 108, 109, 107, 108, 107,
877 0, 0, 108, 109, 108, 107, 0, 109, 110, 0,
879 108, 109, 110, 109, 0, 0, 110, 0, 110, 109,
880 0, 110, 111, 112, 110, 0, 111, 112, 0, 0,
881 111, 112, 111, 112, 0, 112, 113, 114, 111, 112,
882 113, 114, 0, 113, 113, 114, 113, 114, 0, 0,
883 115, 116, 113, 114, 115, 116, 0, 0, 115, 116,
884 115, 116, 117, 116, 117, 0, 115, 116, 117, 118,
885 0, 0, 117, 118, 117, 117, 0, 118, 119, 118,
886 117, 0, 119, 0, 0, 118, 119, 119, 119, 120,
887 0, 0, 121, 120, 119, 0, 121, 120, 0, 120,
888 121, 120, 121, 122, 0, 120, 123, 122, 121, 126,
890 0, 122, 0, 122, 122, 122, 123, 124, 123, 122,
891 123, 124, 125, 0, 123, 124, 0, 124, 0, 0,
892 0, 126, 125, 124, 125, 126, 125, 0, 0, 126,
893 125, 126, 127, 0, 127, 128, 0, 126, 127, 128,
894 0, 0, 127, 128, 127, 128, 0, 129, 129, 130,
895 127, 128, 129, 130, 0, 0, 129, 130, 129, 130,
896 0, 132, 131, 131, 129, 130, 131, 0, 0, 0,
897 131, 132, 131, 132, 0, 132, 133, 133, 131, 132,
898 0, 134, 0, 0, 134, 0, 0, 133, 0, 133,
899 0, 133, 0, 0, 134, 133, 134, 0, 134, 135,
901 136, 160, 134, 160, 135, 136, 0, 160, 0, 135,
902 136, 135, 136, 135, 136, 137, 137, 135, 136, 160,
903 137, 0, 141, 0, 0, 137, 141, 137, 0, 137,
904 141, 142, 141, 137, 0, 142, 143, 0, 141, 142,
905 143, 142, 0, 0, 143, 0, 143, 142, 0, 144,
906 144, 0, 143, 144, 146, 0, 0, 144, 146, 144,
907 0, 0, 146, 0, 146, 144, 145, 0, 145, 0,
908 146, 0, 145, 145, 0, 0, 0, 145, 147, 147,
909 0, 145, 147, 145, 145, 150, 147, 150, 147, 145,
910 151, 150, 151, 0, 147, 0, 151, 0, 152, 150,
912 152, 151, 0, 150, 152, 154, 152, 154, 151, 154,
913 0, 154, 0, 0, 0, 151, 152, 0, 155, 0,
914 155, 0, 155, 154, 155, 156, 157, 156, 157, 156,
915 0, 156, 157, 0, 157, 158, 155, 158, 0, 156,
916 0, 158, 0, 156, 157, 0, 0, 158, 159, 159,
917 159, 0, 0, 158, 159, 161, 0, 161, 159, 0,
918 0, 161, 162, 0, 162, 163, 159, 163, 162, 0,
919 164, 163, 164, 161, 0, 165, 164, 165, 0, 0,
920 162, 165, 163, 163, 162, 166, 0, 166, 164, 166,
921 167, 166, 167, 165, 165, 168, 167, 168, 167, 0,
923 169, 168, 169, 166, 0, 0, 169, 168, 167, 175,
924 176, 175, 176, 168, 0, 175, 176, 177, 169, 177,
925 178, 0, 178, 177, 0, 0, 178, 175, 176, 0,
926 179, 180, 179, 180, 0, 177, 179, 180, 178, 181,
927 0, 181, 0, 0, 182, 181, 182, 0, 179, 180,
928 182, 0, 0, 183, 184, 183, 184, 181, 181, 183,
929 184, 185, 182, 185, 186, 185, 186, 185, 0, 0,
930 186, 183, 184, 0, 187, 0, 187, 0, 0, 185,
931 187, 188, 186, 188, 189, 0, 189, 188, 0, 190,
932 189, 190, 187, 187, 191, 190, 191, 0, 0, 188,
934 191, 0, 189, 192, 193, 192, 193, 190, 190, 192,
935 193, 194, 191, 194, 195, 0, 195, 194, 0, 0,
936 195, 192, 193, 0, 196, 197, 196, 197, 0, 194,
937 196, 197, 195, 198, 199, 198, 199, 0, 0, 198,
938 199, 0, 196, 197, 200, 0, 200, 201, 0, 201,
939 200, 198, 199, 201, 202, 203, 202, 203, 0, 0,
940 202, 203, 200, 0, 0, 201, 201, 0, 204, 0,
941 204, 0, 202, 203, 204, 205, 205, 205, 0, 0,
942 0, 205, 206, 207, 206, 207, 204, 0, 206, 207,
943 208, 0, 208, 205, 0, 0, 208, 206, 0, 0,
945 206, 207, 0, 209, 208, 209, 0, 0, 208, 209,
946 210, 211, 210, 211, 0, 0, 210, 211, 0, 0,
947 0, 209, 209, 0, 0, 213, 0, 213, 210, 211,
948 212, 213, 212, 214, 212, 214, 212, 0, 215, 214,
949 215, 0, 0, 213, 215, 0, 0, 0, 212, 213,
950 0, 214, 0, 216, 0, 216, 215, 0, 215, 216,
951 217, 219, 217, 219, 217, 0, 217, 219, 220, 0,
952 220, 216, 0, 0, 220, 0, 0, 0, 217, 219,
953 219, 221, 0, 221, 0, 221, 220, 221, 222, 223,
954 222, 223, 222, 0, 222, 223, 0, 0, 224, 221,
956 224, 224, 0, 225, 224, 225, 222, 223, 226, 225,
957 226, 227, 0, 227, 226, 0, 224, 227, 0, 0,
958 0, 225, 0, 0, 227, 228, 226, 228, 229, 227,
959 229, 228, 226, 230, 229, 230, 243, 228, 243, 230,
960 0, 0, 243, 228, 0, 229, 229, 244, 0, 244,
961 0, 230, 230, 244, 243, 245, 246, 245, 246, 0,
962 0, 245, 246, 0, 247, 244, 247, 0, 0, 248,
963 247, 248, 0, 245, 246, 248, 0, 249, 0, 249,
964 249, 0, 247, 249, 250, 0, 250, 248, 0, 0,
965 250, 251, 0, 251, 252, 249, 252, 251, 250, 251,
967 252, 253, 250, 253, 254, 0, 254, 253, 0, 251,
968 254, 0, 252, 252, 255, 256, 255, 256, 0, 253,
969 255, 256, 254, 257, 258, 257, 258, 0, 0, 257,
970 258, 0, 255, 256, 259, 0, 259, 0, 257, 0,
971 259, 257, 258, 260, 0, 260, 258, 260, 261, 260,
972 261, 262, 259, 262, 261, 0, 263, 262, 263, 0,
973 0, 260, 263, 0, 0, 264, 261, 264, 0, 262,
974 265, 264, 265, 0, 263, 266, 265, 266, 267, 0,
975 267, 266, 0, 264, 267, 265, 0, 0, 265, 269,
976 266, 269, 0, 266, 0, 269, 267, 267, 268, 268,
978 268, 0, 0, 271, 268, 271, 270, 269, 270, 271,
979 270, 272, 270, 272, 0, 0, 268, 272, 0, 0,
980 273, 271, 273, 0, 270, 275, 273, 275, 274, 272,
981 274, 275, 274, 276, 274, 276, 0, 0, 273, 276,
982 0, 0, 277, 275, 277, 0, 274, 278, 277, 278,
983 279, 276, 279, 278, 0, 280, 279, 280, 0, 277,
984 277, 280, 0, 0, 0, 278, 278, 0, 279, 281,
985 282, 281, 282, 280, 280, 281, 282, 0, 283, 281,
986 283, 0, 0, 284, 283, 284, 283, 281, 282, 284,
987 0, 285, 0, 285, 0, 0, 283, 285, 286, 0,
989 286, 284, 0, 0, 286, 287, 288, 287, 288, 285,
990 285, 287, 288, 289, 0, 289, 286, 0, 0, 289,
991 0, 0, 286, 287, 288, 0, 290, 291, 290, 291,
992 0, 289, 290, 291, 292, 293, 292, 293, 0, 0,
993 292, 293, 0, 0, 290, 291, 0, 0, 294, 0,
994 294, 0, 292, 293, 294, 295, 296, 295, 296, 0,
995 0, 295, 296, 297, 0, 297, 294, 0, 0, 297,
996 0, 0, 295, 295, 296, 297, 298, 0, 298, 0,
997 0, 297, 298, 299, 299, 299, 302, 0, 302, 299,
998 0, 303, 302, 303, 298, 0, 304, 303, 304, 298,
1000 0, 299, 304, 0, 302, 305, 307, 305, 307, 303,
1001 0, 305, 307, 305, 304, 306, 306, 306, 0, 0,
1002 0, 306, 0, 305, 307, 307, 308, 0, 308, 309,
1003 308, 309, 308, 306, 310, 309, 310, 329, 0, 329,
1004 310, 0, 0, 329, 308, 0, 0, 309, 330, 0,
1005 330, 0, 310, 309, 330, 329, 331, 332, 331, 332,
1006 0, 0, 331, 332, 0, 330, 330, 333, 0, 333,
1007 334, 0, 334, 333, 331, 332, 334, 335, 336, 335,
1008 336, 333, 334, 335, 336, 333, 0, 337, 334, 337,
1009 0, 0, 338, 337, 338, 335, 336, 0, 338, 0,
1011 0, 339, 340, 339, 340, 337, 337, 339, 340, 339,
1012 338, 341, 342, 341, 342, 0, 0, 341, 342, 339,
1013 340, 343, 345, 343, 345, 0, 342, 343, 345, 341,
1014 342, 344, 346, 344, 346, 344, 0, 344, 346, 343,
1015 345, 345, 348, 0, 348, 347, 348, 347, 348, 344,
1016 346, 347, 347, 349, 0, 349, 350, 349, 350, 349,
1017 348, 0, 350, 347, 351, 0, 351, 352, 0, 352,
1018 351, 349, 0, 352, 350, 353, 0, 353, 0, 0,
1019 352, 353, 351, 0, 354, 352, 354, 0, 354, 355,
1020 354, 355, 356, 353, 356, 355, 0, 357, 356, 357,
1022 0, 0, 354, 357, 356, 0, 358, 355, 358, 0,
1023 356, 359, 358, 359, 360, 357, 360, 359, 0, 0,
1024 360, 361, 359, 361, 358, 0, 0, 361, 0, 359,
1025 0, 361, 360, 0, 360, 362, 363, 362, 363, 361,
1026 0, 362, 363, 364, 0, 364, 366, 0, 366, 364,
1027 0, 0, 366, 362, 363, 369, 366, 367, 364, 367,
1028 368, 364, 368, 367, 366, 370, 368, 370, 0, 0,
1029 367, 370, 0, 0, 369, 367, 369, 0, 368, 371,
1030 369, 371, 0, 370, 372, 371, 372, 372, 0, 373,
1031 372, 373, 369, 0, 374, 373, 374, 371, 0, 375,
1033 374, 375, 372, 375, 376, 375, 376, 373, 373, 0,
1034 376, 374, 374, 377, 378, 377, 378, 375, 0, 377,
1035 378, 379, 376, 379, 380, 381, 380, 379, 379, 0,
1036 380, 377, 378, 0, 382, 380, 382, 0, 0, 379,
1037 382, 383, 380, 383, 381, 0, 381, 383, 0, 0,
1038 381, 383, 382, 0, 384, 385, 384, 385, 0, 383,
1039 384, 385, 381, 386, 387, 386, 387, 0, 0, 386,
1040 387, 0, 384, 385, 388, 0, 388, 389, 0, 389,
1041 388, 386, 387, 389, 387, 390, 0, 390, 391, 390,
1042 391, 390, 388, 0, 391, 389, 392, 0, 392, 393,
1044 0, 393, 392, 390, 0, 393, 391, 394, 392, 394,
1045 395, 0, 395, 394, 392, 0, 395, 393, 396, 0,
1046 396, 397, 0, 397, 396, 394, 0, 397, 395, 399,
1047 0, 399, 403, 0, 0, 399, 396, 0, 400, 397,
1048 400, 0, 400, 402, 400, 402, 401, 399, 401, 402,
1049 401, 403, 401, 403, 0, 402, 400, 403, 0, 0,
1050 404, 402, 404, 0, 401, 406, 404, 406, 407, 403,
1051 407, 406, 406, 408, 407, 408, 0, 408, 404, 408,
1052 0, 0, 409, 406, 409, 0, 407, 0, 409, 0,
1053 411, 408, 411, 410, 409, 410, 411, 410, 0, 410,
1055 409, 0, 0, 412, 0, 412, 0, 0, 411, 412,
1056 414, 410, 414, 412, 0, 0, 414, 415, 416, 415,
1057 416, 412, 0, 415, 416, 0, 0, 414, 414, 0,
1058 0, 418, 421, 418, 421, 415, 416, 418, 421, 422,
1059 0, 422, 423, 423, 423, 422, 0, 0, 423, 418,
1060 421, 0, 424, 425, 424, 425, 0, 422, 424, 425,
1061 423, 427, 431, 427, 431, 424, 0, 427, 431, 0,
1062 424, 425, 432, 431, 432, 435, 0, 435, 432, 427,
1063 431, 435, 439, 440, 439, 440, 439, 0, 439, 440,
1064 432, 432, 444, 435, 444, 0, 0, 0, 444, 0,
1066 439, 440, 0, 0, 0, 0, 0, 0, 0, 0,
1067 444, 450, 450, 450, 450, 450, 450, 450, 450, 450,
1068 450, 450, 451, 0, 451, 451, 451, 451, 451, 451,
1069 451, 451, 451, 452, 0, 452, 452, 452, 452, 452,
1070 452, 452, 452, 452, 453, 453, 453, 453, 453, 453,
1071 453, 454, 0, 454, 454, 454, 454, 454, 454, 454,
1072 454, 454, 455, 0, 0, 0, 455, 455, 455, 455,
1073 455, 456, 0, 0, 0, 0, 0, 0, 456, 458,
1074 458, 458, 458, 458, 458, 458, 458, 459, 459, 459,
1075 459, 459, 459, 459, 459, 459, 461, 461, 461, 461,
1077 461, 461, 461, 461, 462, 462, 0, 462, 462, 463,
1078 463, 0, 463, 449, 449, 449, 449, 449, 449, 449,
1079 449, 449, 449, 449, 449, 449, 449, 449, 449, 449,
1080 449, 449, 449, 449, 449, 449, 449, 449, 449, 449,
1081 449, 449, 449, 449, 449, 449, 449, 449, 449, 449,
1082 449, 449, 449, 449, 449, 449, 449, 449, 449, 449,
1083 449, 449, 449, 449, 449, 449, 449, 449, 449, 449,
1084 449, 449, 449
1087 static yy_state_type yy_last_accepting_state;
1088 static char *yy_last_accepting_cpos;
1090 /* The intent behind this definition is that it'll catch
1091 * any uses of REJECT which flex missed.
1093 #define REJECT reject_used_but_not_detected
1094 #define yymore() yymore_used_but_not_detected
1095 #define YY_MORE_ADJ 0
1096 #define YY_RESTORE_YY_MORE_OFFSET
1097 char *yytext;
1098 #line 1 "lexer.l"
1099 #define INITIAL 0
1100 #line 2 "lexer.l"
1101 /////////////////////////////////////////////////////////////////////////
1102 // $Id: lexer.c,v 1.34 2008/05/01 19:10:04 sshwarts Exp $
1103 /////////////////////////////////////////////////////////////////////////
1105 #include <stdlib.h>
1106 #include <string.h>
1107 #include "debug.h"
1108 #if BX_DEBUGGER
1110 #include "parser.h"
1112 int bx_yyinput(char *buf, int max_size);
1113 #undef YY_INPUT
1114 #define YY_INPUT(buf, ret, max_size) (ret = bx_yyinput(buf, max_size))
1116 static char *lex_input_ptr = NULL;
1117 static unsigned lex_input_size = 0;
1119 #if BX_SUPPORT_X86_64
1120 #define LONG_MODE_8BL_REG(reg) \
1121 { bxlval.uval = reg; return(BX_TOKEN_8BL_REG); }
1122 #define LONG_MODE_16B_REG(reg) \
1123 { bxlval.uval = reg; return(BX_TOKEN_16B_REG); }
1124 #define LONG_MODE_32B_REG(reg) \
1125 { bxlval.uval = reg; return(BX_TOKEN_32B_REG); }
1126 #define LONG_MODE_64B_REG(reg) \
1127 { bxlval.uval = reg; return(BX_TOKEN_64B_REG); }
1128 #else
1129 #define LONG_MODE_8BL_REG(reg) \
1130 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERIC); }
1131 #define LONG_MODE_16B_REG(reg) \
1132 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERIC); }
1133 #define LONG_MODE_32B_REG(reg) \
1134 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERIC); }
1135 #define LONG_MODE_64B_REG(reg) \
1136 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERIC); }
1137 #endif
1139 #define EXAMINE 1
1141 #define DISASM 2
1144 /* Macros after this point can all be overridden by user definitions in
1145 * section 1.
1148 #ifndef YY_SKIP_YYWRAP
1149 #ifdef __cplusplus
1150 extern "C" int yywrap YY_PROTO(( void ));
1151 #else
1152 extern int yywrap YY_PROTO(( void ));
1153 #endif
1154 #endif
1156 #ifndef YY_NO_UNPUT
1157 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1158 #endif
1160 #ifndef yytext_ptr
1161 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1162 #endif
1164 #ifdef YY_NEED_STRLEN
1165 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1166 #endif
1168 #ifndef YY_NO_INPUT
1169 #ifdef __cplusplus
1170 static int yyinput YY_PROTO(( void ));
1171 #else
1172 static int input YY_PROTO(( void ));
1173 #endif
1174 #endif
1176 #if YY_STACK_USED
1177 static int yy_start_stack_ptr = 0;
1178 static int yy_start_stack_depth = 0;
1179 static int *yy_start_stack = 0;
1180 #ifndef YY_NO_PUSH_STATE
1181 static void yy_push_state YY_PROTO(( int new_state ));
1182 #endif
1183 #ifndef YY_NO_POP_STATE
1184 static void yy_pop_state YY_PROTO(( void ));
1185 #endif
1186 #ifndef YY_NO_TOP_STATE
1187 static int yy_top_state YY_PROTO(( void ));
1188 #endif
1190 #else
1191 #define YY_NO_PUSH_STATE 1
1192 #define YY_NO_POP_STATE 1
1193 #define YY_NO_TOP_STATE 1
1194 #endif
1196 #ifdef YY_MALLOC_DECL
1197 YY_MALLOC_DECL
1198 #else
1199 #if __STDC__
1200 #ifndef __cplusplus
1201 #include <stdlib.h>
1202 #endif
1203 #else
1204 /* Just try to get by without declaring the routines. This will fail
1205 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1206 * or sizeof(void*) != sizeof(int).
1208 #endif
1209 #endif
1211 /* Amount of stuff to slurp up with each read. */
1212 #ifndef YY_READ_BUF_SIZE
1213 #define YY_READ_BUF_SIZE 8192
1214 #endif
1216 /* Copy whatever the last rule matched to the standard output. */
1218 #ifndef ECHO
1219 /* This used to be an fputs(), but since the string might contain NUL's,
1220 * we now use fwrite().
1222 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1223 #endif
1225 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1226 * is returned in "result".
1228 #ifndef YY_INPUT
1229 #define YY_INPUT(buf,result,max_size) \
1230 if ( yy_current_buffer->yy_is_interactive ) \
1232 int c = '*', n; \
1233 for ( n = 0; n < max_size && \
1234 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1235 buf[n] = (char) c; \
1236 if ( c == '\n' ) \
1237 buf[n++] = (char) c; \
1238 if ( c == EOF && ferror( yyin ) ) \
1239 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1240 result = n; \
1242 else \
1244 errno=0; \
1245 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1247 if( errno != EINTR) \
1249 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1250 break; \
1252 errno=0; \
1253 clearerr(yyin); \
1256 #endif
1258 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1259 * we don't want an extra ';' after the "return" because that will cause
1260 * some compilers to complain about unreachable statements.
1262 #ifndef yyterminate
1263 #define yyterminate() return YY_NULL
1264 #endif
1266 /* Number of entries by which start-condition stack grows. */
1267 #ifndef YY_START_STACK_INCR
1268 #define YY_START_STACK_INCR 25
1269 #endif
1271 /* Report a fatal error. */
1272 #ifndef YY_FATAL_ERROR
1273 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1274 #endif
1276 /* Default declaration of generated scanner - a define so the user can
1277 * easily add parameters.
1279 #ifndef YY_DECL
1280 #define YY_DECL int yylex YY_PROTO(( void ))
1281 #endif
1283 /* Code executed at the beginning of each rule, after yytext and yyleng
1284 * have been set up.
1286 #ifndef YY_USER_ACTION
1287 #define YY_USER_ACTION
1288 #endif
1290 /* Code executed at the end of each rule. */
1291 #ifndef YY_BREAK
1292 #define YY_BREAK break;
1293 #endif
1295 #define YY_RULE_SETUP \
1296 YY_USER_ACTION
1298 YY_DECL
1300 register yy_state_type yy_current_state;
1301 register char *yy_cp, *yy_bp;
1302 register int yy_act;
1304 #line 45 "lexer.l"
1307 if ( yy_init )
1309 yy_init = 0;
1311 #ifdef YY_USER_INIT
1312 YY_USER_INIT;
1313 #endif
1315 if ( ! yy_start )
1316 yy_start = 1; /* first start state */
1318 if ( ! yyin )
1319 yyin = stdin;
1321 if ( ! yyout )
1322 yyout = stdout;
1324 if ( ! yy_current_buffer )
1325 yy_current_buffer =
1326 yy_create_buffer( yyin, YY_BUF_SIZE );
1328 yy_load_buffer_state();
1331 while ( 1 ) /* loops until end-of-file is reached */
1333 yy_cp = yy_c_buf_p;
1335 /* Support of yytext. */
1336 *yy_cp = yy_hold_char;
1338 /* yy_bp points to the position in yy_ch_buf of the start of
1339 * the current run.
1341 yy_bp = yy_cp;
1343 yy_current_state = yy_start;
1344 yy_match:
1347 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1348 if ( yy_accept[yy_current_state] )
1350 yy_last_accepting_state = yy_current_state;
1351 yy_last_accepting_cpos = yy_cp;
1353 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1355 yy_current_state = (int) yy_def[yy_current_state];
1356 if ( yy_current_state >= 450 )
1357 yy_c = yy_meta[(unsigned int) yy_c];
1359 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1360 ++yy_cp;
1362 while ( yy_base[yy_current_state] != 2514 );
1364 yy_find_action:
1365 yy_act = yy_accept[yy_current_state];
1366 if ( yy_act == 0 )
1367 { /* have to back up */
1368 yy_cp = yy_last_accepting_cpos;
1369 yy_current_state = yy_last_accepting_state;
1370 yy_act = yy_accept[yy_current_state];
1373 YY_DO_BEFORE_ACTION;
1376 do_action: /* This label is used only to access EOF actions. */
1379 switch ( yy_act )
1380 { /* beginning of action switch */
1381 case 0: /* must back up */
1382 /* undo the effects of YY_DO_BEFORE_ACTION */
1383 *yy_cp = yy_hold_char;
1384 yy_cp = yy_last_accepting_cpos;
1385 yy_current_state = yy_last_accepting_state;
1386 goto yy_find_action;
1388 case 1:
1389 YY_RULE_SETUP
1390 #line 46 "lexer.l"
1391 ; // eat up whitespace
1392 YY_BREAK
1393 case 2:
1394 YY_RULE_SETUP
1395 #line 47 "lexer.l"
1396 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SET); }
1397 YY_BREAK
1398 case 3:
1399 YY_RULE_SETUP
1400 #line 48 "lexer.l"
1401 { bxlval.bval = 1; return(BX_TOKEN_ON); }
1402 YY_BREAK
1403 case 4:
1404 YY_RULE_SETUP
1405 #line 49 "lexer.l"
1406 { bxlval.bval = 0; return(BX_TOKEN_OFF); }
1407 YY_BREAK
1408 case 5:
1409 YY_RULE_SETUP
1410 #line 50 "lexer.l"
1411 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CRC); }
1412 YY_BREAK
1413 case 6:
1414 #line 52 "lexer.l"
1415 case 7:
1416 #line 53 "lexer.l"
1417 case 8:
1418 YY_RULE_SETUP
1419 #line 53 "lexer.l"
1420 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CONTINUE); }
1421 YY_BREAK
1422 case 9:
1423 #line 55 "lexer.l"
1424 case 10:
1425 #line 56 "lexer.l"
1426 case 11:
1427 YY_RULE_SETUP
1428 #line 56 "lexer.l"
1429 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_STEPN); }
1430 YY_BREAK
1431 case 12:
1432 #line 58 "lexer.l"
1433 case 13:
1434 #line 59 "lexer.l"
1435 case 14:
1436 YY_RULE_SETUP
1437 #line 59 "lexer.l"
1438 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_STEP_OVER); }
1439 YY_BREAK
1440 case 15:
1441 YY_RULE_SETUP
1442 #line 60 "lexer.l"
1443 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_LIST_BREAK); }
1444 YY_BREAK
1445 case 16:
1446 YY_RULE_SETUP
1447 #line 61 "lexer.l"
1448 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_VBREAKPOINT); }
1449 YY_BREAK
1450 case 17:
1451 YY_RULE_SETUP
1452 #line 62 "lexer.l"
1453 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_LBREAKPOINT); }
1454 YY_BREAK
1455 case 18:
1456 #line 64 "lexer.l"
1457 case 19:
1458 #line 65 "lexer.l"
1459 case 20:
1460 YY_RULE_SETUP
1461 #line 65 "lexer.l"
1462 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PBREAKPOINT); }
1463 YY_BREAK
1464 case 21:
1465 YY_RULE_SETUP
1466 #line 66 "lexer.l"
1467 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_INFO); }
1468 YY_BREAK
1469 case 22:
1470 #line 68 "lexer.l"
1471 case 23:
1472 #line 69 "lexer.l"
1473 case 24:
1474 YY_RULE_SETUP
1475 #line 69 "lexer.l"
1476 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CONTROL_REGS); }
1477 YY_BREAK
1478 case 25:
1479 #line 71 "lexer.l"
1480 case 26:
1481 YY_RULE_SETUP
1482 #line 71 "lexer.l"
1483 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SEGMENT_REGS); }
1484 YY_BREAK
1485 case 27:
1486 #line 73 "lexer.l"
1487 case 28:
1488 #line 74 "lexer.l"
1489 case 29:
1490 YY_RULE_SETUP
1491 #line 74 "lexer.l"
1492 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_REGISTERS); }
1493 YY_BREAK
1494 case 30:
1495 YY_RULE_SETUP
1496 #line 75 "lexer.l"
1497 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_FPU); }
1498 YY_BREAK
1499 case 31:
1500 #line 77 "lexer.l"
1501 case 32:
1502 YY_RULE_SETUP
1503 #line 77 "lexer.l"
1504 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SSE); }
1505 YY_BREAK
1506 case 33:
1507 YY_RULE_SETUP
1508 #line 78 "lexer.l"
1509 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_MMX); }
1510 YY_BREAK
1511 case 34:
1512 YY_RULE_SETUP
1513 #line 79 "lexer.l"
1514 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CPU); }
1515 YY_BREAK
1516 case 35:
1517 YY_RULE_SETUP
1518 #line 80 "lexer.l"
1519 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_IDT); }
1520 YY_BREAK
1521 case 36:
1522 YY_RULE_SETUP
1523 #line 81 "lexer.l"
1524 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_IVT); }
1525 YY_BREAK
1526 case 37:
1527 YY_RULE_SETUP
1528 #line 82 "lexer.l"
1529 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GDT); }
1530 YY_BREAK
1531 case 38:
1532 YY_RULE_SETUP
1533 #line 83 "lexer.l"
1534 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_LDT); }
1535 YY_BREAK
1536 case 39:
1537 YY_RULE_SETUP
1538 #line 84 "lexer.l"
1539 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_TSS); }
1540 YY_BREAK
1541 case 40:
1542 YY_RULE_SETUP
1543 #line 85 "lexer.l"
1544 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_TAB); }
1545 YY_BREAK
1546 case 41:
1547 YY_RULE_SETUP
1548 #line 86 "lexer.l"
1549 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_DIRTY); }
1550 YY_BREAK
1551 case 42:
1552 YY_RULE_SETUP
1553 #line 87 "lexer.l"
1554 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_LINUX); }
1555 YY_BREAK
1556 case 43:
1557 #line 89 "lexer.l"
1558 case 44:
1559 #line 90 "lexer.l"
1560 case 45:
1561 YY_RULE_SETUP
1562 #line 90 "lexer.l"
1563 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_DEL_BREAKPOINT); }
1564 YY_BREAK
1565 case 46:
1566 YY_RULE_SETUP
1567 #line 91 "lexer.l"
1568 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_ENABLE_BREAKPOINT); }
1569 YY_BREAK
1570 case 47:
1571 YY_RULE_SETUP
1572 #line 92 "lexer.l"
1573 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISABLE_BREAKPOINT); }
1574 YY_BREAK
1575 case 48:
1576 #line 94 "lexer.l"
1577 case 49:
1578 #line 95 "lexer.l"
1579 case 50:
1580 YY_RULE_SETUP
1581 #line 95 "lexer.l"
1582 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_QUIT); }
1583 YY_BREAK
1584 case 51:
1585 #line 97 "lexer.l"
1586 case 52:
1587 YY_RULE_SETUP
1588 #line 97 "lexer.l"
1589 { BEGIN(EXAMINE); bxlval.sval = strdup(bxtext); return(BX_TOKEN_EXAMINE); }
1590 YY_BREAK
1591 case 53:
1592 YY_RULE_SETUP
1593 #line 98 "lexer.l"
1594 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_RESTORE); }
1595 YY_BREAK
1596 case 54:
1597 YY_RULE_SETUP
1598 #line 99 "lexer.l"
1599 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SETPMEM); }
1600 YY_BREAK
1601 case 55:
1602 YY_RULE_SETUP
1603 #line 100 "lexer.l"
1604 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_QUERY); }
1605 YY_BREAK
1606 case 56:
1607 YY_RULE_SETUP
1608 #line 101 "lexer.l"
1609 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PENDING); }
1610 YY_BREAK
1611 case 57:
1612 YY_RULE_SETUP
1613 #line 102 "lexer.l"
1614 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_TAKE); }
1615 YY_BREAK
1616 case 58:
1617 YY_RULE_SETUP
1618 #line 103 "lexer.l"
1619 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_DMA); }
1620 YY_BREAK
1621 case 59:
1622 YY_RULE_SETUP
1623 #line 104 "lexer.l"
1624 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_IRQ); }
1625 YY_BREAK
1626 case 60:
1627 YY_RULE_SETUP
1628 #line 105 "lexer.l"
1629 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PIC); }
1630 YY_BREAK
1631 case 61:
1632 #line 107 "lexer.l"
1633 case 62:
1634 #line 108 "lexer.l"
1635 case 63:
1636 YY_RULE_SETUP
1637 #line 108 "lexer.l"
1638 { BEGIN(DISASM); bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISASSEMBLE); }
1639 YY_BREAK
1640 case 64:
1641 YY_RULE_SETUP
1642 #line 109 "lexer.l"
1643 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_INSTRUMENT); }
1644 YY_BREAK
1645 case 65:
1646 YY_RULE_SETUP
1647 #line 110 "lexer.l"
1648 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_STOP); }
1649 YY_BREAK
1650 case 66:
1651 YY_RULE_SETUP
1652 #line 111 "lexer.l"
1653 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_DOIT); }
1654 YY_BREAK
1655 case 67:
1656 YY_RULE_SETUP
1657 #line 112 "lexer.l"
1658 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACE); }
1659 YY_BREAK
1660 case 68:
1661 YY_RULE_SETUP
1662 #line 113 "lexer.l"
1663 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEREG); }
1664 YY_BREAK
1665 case 69:
1666 YY_RULE_SETUP
1667 #line 114 "lexer.l"
1668 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEMEM); }
1669 YY_BREAK
1670 case 70:
1671 YY_RULE_SETUP
1672 #line 115 "lexer.l"
1673 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SWITCH_MODE); }
1674 YY_BREAK
1675 case 71:
1676 YY_RULE_SETUP
1677 #line 116 "lexer.l"
1678 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SIZE); }
1679 YY_BREAK
1680 case 72:
1681 YY_RULE_SETUP
1682 #line 117 "lexer.l"
1683 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PTIME); }
1684 YY_BREAK
1685 case 73:
1686 YY_RULE_SETUP
1687 #line 118 "lexer.l"
1688 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_TIMEBP); }
1689 YY_BREAK
1690 case 74:
1691 YY_RULE_SETUP
1692 #line 119 "lexer.l"
1693 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_TIMEBP_ABSOLUTE); }
1694 YY_BREAK
1695 case 75:
1696 YY_RULE_SETUP
1697 #line 120 "lexer.l"
1698 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_RECORD); }
1699 YY_BREAK
1700 case 76:
1701 YY_RULE_SETUP
1702 #line 121 "lexer.l"
1703 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PLAYBACK); }
1704 YY_BREAK
1705 case 77:
1706 YY_RULE_SETUP
1707 #line 122 "lexer.l"
1708 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_MODEBP); }
1709 YY_BREAK
1710 case 78:
1711 YY_RULE_SETUP
1712 #line 123 "lexer.l"
1713 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STACK); }
1714 YY_BREAK
1715 case 79:
1716 YY_RULE_SETUP
1717 #line 124 "lexer.l"
1718 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_WATCH); }
1719 YY_BREAK
1720 case 80:
1721 YY_RULE_SETUP
1722 #line 125 "lexer.l"
1723 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_UNWATCH); }
1724 YY_BREAK
1725 case 81:
1726 YY_RULE_SETUP
1727 #line 126 "lexer.l"
1728 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_READ); }
1729 YY_BREAK
1730 case 82:
1731 YY_RULE_SETUP
1732 #line 127 "lexer.l"
1733 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_WRITE); }
1734 YY_BREAK
1735 case 83:
1736 YY_RULE_SETUP
1737 #line 128 "lexer.l"
1738 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SHOW); }
1739 YY_BREAK
1740 case 84:
1741 YY_RULE_SETUP
1742 #line 129 "lexer.l"
1743 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_LOAD_SYMBOLS); }
1744 YY_BREAK
1745 case 85:
1746 YY_RULE_SETUP
1747 #line 130 "lexer.l"
1748 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLS); }
1749 YY_BREAK
1750 case 86:
1751 YY_RULE_SETUP
1752 #line 131 "lexer.l"
1753 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_LIST_SYMBOLS); }
1754 YY_BREAK
1755 case 87:
1756 YY_RULE_SETUP
1757 #line 132 "lexer.l"
1758 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GLOBAL); }
1759 YY_BREAK
1760 case 88:
1761 YY_RULE_SETUP
1762 #line 133 "lexer.l"
1763 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_WHERE); }
1764 YY_BREAK
1765 case 89:
1766 YY_RULE_SETUP
1767 #line 134 "lexer.l"
1768 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STRING); }
1769 YY_BREAK
1770 case 90:
1771 YY_RULE_SETUP
1772 #line 135 "lexer.l"
1773 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_NE2000); }
1774 YY_BREAK
1775 case 91:
1776 YY_RULE_SETUP
1777 #line 136 "lexer.l"
1778 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PAGE); }
1779 YY_BREAK
1780 case 92:
1781 YY_RULE_SETUP
1782 #line 137 "lexer.l"
1783 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_VGA); }
1784 YY_BREAK
1785 case 93:
1786 YY_RULE_SETUP
1787 #line 138 "lexer.l"
1788 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PCI); }
1789 YY_BREAK
1790 case 94:
1791 YY_RULE_SETUP
1792 #line 139 "lexer.l"
1793 { bxlval.uval = BX_DBG_REG8L_AL; return(BX_TOKEN_8BL_REG);}
1794 YY_BREAK
1795 case 95:
1796 YY_RULE_SETUP
1797 #line 140 "lexer.l"
1798 { bxlval.uval = BX_DBG_REG8L_BL; return(BX_TOKEN_8BL_REG);}
1799 YY_BREAK
1800 case 96:
1801 YY_RULE_SETUP
1802 #line 141 "lexer.l"
1803 { bxlval.uval = BX_DBG_REG8L_CL; return(BX_TOKEN_8BL_REG);}
1804 YY_BREAK
1805 case 97:
1806 YY_RULE_SETUP
1807 #line 142 "lexer.l"
1808 { bxlval.uval = BX_DBG_REG8L_DL; return(BX_TOKEN_8BL_REG);}
1809 YY_BREAK
1810 case 98:
1811 YY_RULE_SETUP
1812 #line 143 "lexer.l"
1813 { LONG_MODE_8BL_REG(BX_DBG_REG8L_SIL); }
1814 YY_BREAK
1815 case 99:
1816 YY_RULE_SETUP
1817 #line 144 "lexer.l"
1818 { LONG_MODE_8BL_REG(BX_DBG_REG8L_DIL); }
1819 YY_BREAK
1820 case 100:
1821 YY_RULE_SETUP
1822 #line 145 "lexer.l"
1823 { LONG_MODE_8BL_REG(BX_DBG_REG8L_SPL); }
1824 YY_BREAK
1825 case 101:
1826 YY_RULE_SETUP
1827 #line 146 "lexer.l"
1828 { LONG_MODE_8BL_REG(BX_DBG_REG8L_BPL); }
1829 YY_BREAK
1830 case 102:
1831 YY_RULE_SETUP
1832 #line 147 "lexer.l"
1833 { LONG_MODE_8BL_REG(BX_DBG_REG8L_R8); }
1834 YY_BREAK
1835 case 103:
1836 YY_RULE_SETUP
1837 #line 148 "lexer.l"
1838 { LONG_MODE_8BL_REG(BX_DBG_REG8L_R9); }
1839 YY_BREAK
1840 case 104:
1841 YY_RULE_SETUP
1842 #line 149 "lexer.l"
1843 { LONG_MODE_8BL_REG(BX_DBG_REG8L_R10); }
1844 YY_BREAK
1845 case 105:
1846 YY_RULE_SETUP
1847 #line 150 "lexer.l"
1848 { LONG_MODE_8BL_REG(BX_DBG_REG8L_R11); }
1849 YY_BREAK
1850 case 106:
1851 YY_RULE_SETUP
1852 #line 151 "lexer.l"
1853 { LONG_MODE_8BL_REG(BX_DBG_REG8L_R12); }
1854 YY_BREAK
1855 case 107:
1856 YY_RULE_SETUP
1857 #line 152 "lexer.l"
1858 { LONG_MODE_8BL_REG(BX_DBG_REG8L_R13); }
1859 YY_BREAK
1860 case 108:
1861 YY_RULE_SETUP
1862 #line 153 "lexer.l"
1863 { LONG_MODE_8BL_REG(BX_DBG_REG8L_R14); }
1864 YY_BREAK
1865 case 109:
1866 YY_RULE_SETUP
1867 #line 154 "lexer.l"
1868 { LONG_MODE_8BL_REG(BX_DBG_REG8L_R15); }
1869 YY_BREAK
1870 case 110:
1871 YY_RULE_SETUP
1872 #line 155 "lexer.l"
1873 { bxlval.uval = BX_DBG_REG8H_AH; return(BX_TOKEN_8BH_REG);}
1874 YY_BREAK
1875 case 111:
1876 YY_RULE_SETUP
1877 #line 156 "lexer.l"
1878 { bxlval.uval = BX_DBG_REG8H_BH; return(BX_TOKEN_8BH_REG);}
1879 YY_BREAK
1880 case 112:
1881 YY_RULE_SETUP
1882 #line 157 "lexer.l"
1883 { bxlval.uval = BX_DBG_REG8H_CH; return(BX_TOKEN_8BH_REG);}
1884 YY_BREAK
1885 case 113:
1886 YY_RULE_SETUP
1887 #line 158 "lexer.l"
1888 { bxlval.uval = BX_DBG_REG8H_DH; return(BX_TOKEN_8BH_REG);}
1889 YY_BREAK
1890 case 114:
1891 YY_RULE_SETUP
1892 #line 159 "lexer.l"
1893 { bxlval.uval = BX_DBG_REG16_AX; return(BX_TOKEN_16B_REG);}
1894 YY_BREAK
1895 case 115:
1896 YY_RULE_SETUP
1897 #line 160 "lexer.l"
1898 { bxlval.uval = BX_DBG_REG16_BX; return(BX_TOKEN_16B_REG);}
1899 YY_BREAK
1900 case 116:
1901 YY_RULE_SETUP
1902 #line 161 "lexer.l"
1903 { bxlval.uval = BX_DBG_REG16_CX; return(BX_TOKEN_16B_REG);}
1904 YY_BREAK
1905 case 117:
1906 YY_RULE_SETUP
1907 #line 162 "lexer.l"
1908 { bxlval.uval = BX_DBG_REG16_DX; return(BX_TOKEN_16B_REG);}
1909 YY_BREAK
1910 case 118:
1911 YY_RULE_SETUP
1912 #line 163 "lexer.l"
1913 { bxlval.uval = BX_DBG_REG16_SI; return(BX_TOKEN_16B_REG);}
1914 YY_BREAK
1915 case 119:
1916 YY_RULE_SETUP
1917 #line 164 "lexer.l"
1918 { bxlval.uval = BX_DBG_REG16_DI; return(BX_TOKEN_16B_REG);}
1919 YY_BREAK
1920 case 120:
1921 YY_RULE_SETUP
1922 #line 165 "lexer.l"
1923 { bxlval.uval = BX_DBG_REG16_BP; return(BX_TOKEN_16B_REG);}
1924 YY_BREAK
1925 case 121:
1926 YY_RULE_SETUP
1927 #line 166 "lexer.l"
1928 { bxlval.uval = BX_DBG_REG16_SP; return(BX_TOKEN_16B_REG);}
1929 YY_BREAK
1930 case 122:
1931 YY_RULE_SETUP
1932 #line 167 "lexer.l"
1933 { LONG_MODE_16B_REG(BX_DBG_REG16_R8); }
1934 YY_BREAK
1935 case 123:
1936 YY_RULE_SETUP
1937 #line 168 "lexer.l"
1938 { LONG_MODE_16B_REG(BX_DBG_REG16_R9); }
1939 YY_BREAK
1940 case 124:
1941 YY_RULE_SETUP
1942 #line 169 "lexer.l"
1943 { LONG_MODE_16B_REG(BX_DBG_REG16_R10); }
1944 YY_BREAK
1945 case 125:
1946 YY_RULE_SETUP
1947 #line 170 "lexer.l"
1948 { LONG_MODE_16B_REG(BX_DBG_REG16_R11); }
1949 YY_BREAK
1950 case 126:
1951 YY_RULE_SETUP
1952 #line 171 "lexer.l"
1953 { LONG_MODE_16B_REG(BX_DBG_REG16_R12); }
1954 YY_BREAK
1955 case 127:
1956 YY_RULE_SETUP
1957 #line 172 "lexer.l"
1958 { LONG_MODE_16B_REG(BX_DBG_REG16_R13); }
1959 YY_BREAK
1960 case 128:
1961 YY_RULE_SETUP
1962 #line 173 "lexer.l"
1963 { LONG_MODE_16B_REG(BX_DBG_REG16_R14); }
1964 YY_BREAK
1965 case 129:
1966 YY_RULE_SETUP
1967 #line 174 "lexer.l"
1968 { LONG_MODE_16B_REG(BX_DBG_REG16_R15); }
1969 YY_BREAK
1970 case 130:
1971 YY_RULE_SETUP
1972 #line 175 "lexer.l"
1973 { bxlval.uval = BX_DBG_REG32_EAX; return(BX_TOKEN_32B_REG);}
1974 YY_BREAK
1975 case 131:
1976 YY_RULE_SETUP
1977 #line 176 "lexer.l"
1978 { bxlval.uval = BX_DBG_REG32_EBX; return(BX_TOKEN_32B_REG);}
1979 YY_BREAK
1980 case 132:
1981 YY_RULE_SETUP
1982 #line 177 "lexer.l"
1983 { bxlval.uval = BX_DBG_REG32_ECX; return(BX_TOKEN_32B_REG);}
1984 YY_BREAK
1985 case 133:
1986 YY_RULE_SETUP
1987 #line 178 "lexer.l"
1988 { bxlval.uval = BX_DBG_REG32_EDX; return(BX_TOKEN_32B_REG);}
1989 YY_BREAK
1990 case 134:
1991 YY_RULE_SETUP
1992 #line 179 "lexer.l"
1993 { bxlval.uval = BX_DBG_REG32_ESI; return(BX_TOKEN_32B_REG);}
1994 YY_BREAK
1995 case 135:
1996 YY_RULE_SETUP
1997 #line 180 "lexer.l"
1998 { bxlval.uval = BX_DBG_REG32_EDI; return(BX_TOKEN_32B_REG);}
1999 YY_BREAK
2000 case 136:
2001 YY_RULE_SETUP
2002 #line 181 "lexer.l"
2003 { bxlval.uval = BX_DBG_REG32_EBP; return(BX_TOKEN_32B_REG);}
2004 YY_BREAK
2005 case 137:
2006 YY_RULE_SETUP
2007 #line 182 "lexer.l"
2008 { bxlval.uval = BX_DBG_REG32_ESP; return(BX_TOKEN_32B_REG);}
2009 YY_BREAK
2010 case 138:
2011 YY_RULE_SETUP
2012 #line 183 "lexer.l"
2013 { LONG_MODE_32B_REG(BX_DBG_REG32_R8); }
2014 YY_BREAK
2015 case 139:
2016 YY_RULE_SETUP
2017 #line 184 "lexer.l"
2018 { LONG_MODE_32B_REG(BX_DBG_REG32_R9); }
2019 YY_BREAK
2020 case 140:
2021 YY_RULE_SETUP
2022 #line 185 "lexer.l"
2023 { LONG_MODE_32B_REG(BX_DBG_REG32_R10); }
2024 YY_BREAK
2025 case 141:
2026 YY_RULE_SETUP
2027 #line 186 "lexer.l"
2028 { LONG_MODE_32B_REG(BX_DBG_REG32_R11); }
2029 YY_BREAK
2030 case 142:
2031 YY_RULE_SETUP
2032 #line 187 "lexer.l"
2033 { LONG_MODE_32B_REG(BX_DBG_REG32_R12); }
2034 YY_BREAK
2035 case 143:
2036 YY_RULE_SETUP
2037 #line 188 "lexer.l"
2038 { LONG_MODE_32B_REG(BX_DBG_REG32_R13); }
2039 YY_BREAK
2040 case 144:
2041 YY_RULE_SETUP
2042 #line 189 "lexer.l"
2043 { LONG_MODE_32B_REG(BX_DBG_REG32_R14); }
2044 YY_BREAK
2045 case 145:
2046 YY_RULE_SETUP
2047 #line 190 "lexer.l"
2048 { LONG_MODE_32B_REG(BX_DBG_REG32_R15); }
2049 YY_BREAK
2050 case 146:
2051 YY_RULE_SETUP
2052 #line 191 "lexer.l"
2053 { LONG_MODE_64B_REG(BX_DBG_REG64_RAX); }
2054 YY_BREAK
2055 case 147:
2056 YY_RULE_SETUP
2057 #line 192 "lexer.l"
2058 { LONG_MODE_64B_REG(BX_DBG_REG64_RBX); }
2059 YY_BREAK
2060 case 148:
2061 YY_RULE_SETUP
2062 #line 193 "lexer.l"
2063 { LONG_MODE_64B_REG(BX_DBG_REG64_RCX); }
2064 YY_BREAK
2065 case 149:
2066 YY_RULE_SETUP
2067 #line 194 "lexer.l"
2068 { LONG_MODE_64B_REG(BX_DBG_REG64_RDX); }
2069 YY_BREAK
2070 case 150:
2071 YY_RULE_SETUP
2072 #line 195 "lexer.l"
2073 { LONG_MODE_64B_REG(BX_DBG_REG64_RSI); }
2074 YY_BREAK
2075 case 151:
2076 YY_RULE_SETUP
2077 #line 196 "lexer.l"
2078 { LONG_MODE_64B_REG(BX_DBG_REG64_RDI); }
2079 YY_BREAK
2080 case 152:
2081 YY_RULE_SETUP
2082 #line 197 "lexer.l"
2083 { LONG_MODE_64B_REG(BX_DBG_REG64_RSP); }
2084 YY_BREAK
2085 case 153:
2086 YY_RULE_SETUP
2087 #line 198 "lexer.l"
2088 { LONG_MODE_64B_REG(BX_DBG_REG64_RBP); }
2089 YY_BREAK
2090 case 154:
2091 YY_RULE_SETUP
2092 #line 199 "lexer.l"
2093 { LONG_MODE_64B_REG(BX_DBG_REG64_R8); }
2094 YY_BREAK
2095 case 155:
2096 YY_RULE_SETUP
2097 #line 200 "lexer.l"
2098 { LONG_MODE_64B_REG(BX_DBG_REG64_R9); }
2099 YY_BREAK
2100 case 156:
2101 YY_RULE_SETUP
2102 #line 201 "lexer.l"
2103 { LONG_MODE_64B_REG(BX_DBG_REG64_R10); }
2104 YY_BREAK
2105 case 157:
2106 YY_RULE_SETUP
2107 #line 202 "lexer.l"
2108 { LONG_MODE_64B_REG(BX_DBG_REG64_R11); }
2109 YY_BREAK
2110 case 158:
2111 YY_RULE_SETUP
2112 #line 203 "lexer.l"
2113 { LONG_MODE_64B_REG(BX_DBG_REG64_R12); }
2114 YY_BREAK
2115 case 159:
2116 YY_RULE_SETUP
2117 #line 204 "lexer.l"
2118 { LONG_MODE_64B_REG(BX_DBG_REG64_R13); }
2119 YY_BREAK
2120 case 160:
2121 YY_RULE_SETUP
2122 #line 205 "lexer.l"
2123 { LONG_MODE_64B_REG(BX_DBG_REG64_R14); }
2124 YY_BREAK
2125 case 161:
2126 YY_RULE_SETUP
2127 #line 206 "lexer.l"
2128 { LONG_MODE_64B_REG(BX_DBG_REG64_R15); }
2129 YY_BREAK
2130 case 162:
2131 YY_RULE_SETUP
2132 #line 207 "lexer.l"
2133 { return(BX_TOKEN_REG_IP); }
2134 YY_BREAK
2135 case 163:
2136 YY_RULE_SETUP
2137 #line 208 "lexer.l"
2138 { return(BX_TOKEN_REG_EIP);}
2139 YY_BREAK
2140 case 164:
2141 YY_RULE_SETUP
2142 #line 209 "lexer.l"
2143 { return(BX_TOKEN_REG_RIP);}
2144 YY_BREAK
2145 case 165:
2146 YY_RULE_SETUP
2147 #line 210 "lexer.l"
2148 { bxlval.uval = BX_DBG_SREG_CS; return(BX_TOKEN_CS); }
2149 YY_BREAK
2150 case 166:
2151 YY_RULE_SETUP
2152 #line 211 "lexer.l"
2153 { bxlval.uval = BX_DBG_SREG_ES; return(BX_TOKEN_ES); }
2154 YY_BREAK
2155 case 167:
2156 YY_RULE_SETUP
2157 #line 212 "lexer.l"
2158 { bxlval.uval = BX_DBG_SREG_SS; return(BX_TOKEN_SS); }
2159 YY_BREAK
2160 case 168:
2161 YY_RULE_SETUP
2162 #line 213 "lexer.l"
2163 { bxlval.uval = BX_DBG_SREG_DS; return(BX_TOKEN_DS); }
2164 YY_BREAK
2165 case 169:
2166 YY_RULE_SETUP
2167 #line 214 "lexer.l"
2168 { bxlval.uval = BX_DBG_SREG_FS; return(BX_TOKEN_FS); }
2169 YY_BREAK
2170 case 170:
2171 YY_RULE_SETUP
2172 #line 215 "lexer.l"
2173 { bxlval.uval = BX_DBG_SREG_GS; return(BX_TOKEN_GS); }
2174 YY_BREAK
2175 case 171:
2176 YY_RULE_SETUP
2177 #line 216 "lexer.l"
2178 { bxlval.uval = 0; return (BX_TOKEN_FLAGS); }
2179 YY_BREAK
2180 case 172:
2181 YY_RULE_SETUP
2182 #line 217 "lexer.l"
2183 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_HELP); }
2184 YY_BREAK
2185 case 173:
2186 #line 219 "lexer.l"
2187 case 174:
2188 YY_RULE_SETUP
2189 #line 219 "lexer.l"
2190 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CALC); }
2191 YY_BREAK
2192 case 175:
2193 YY_RULE_SETUP
2194 #line 220 "lexer.l"
2195 { BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_XFORMAT); }
2196 YY_BREAK
2197 case 176:
2198 YY_RULE_SETUP
2199 #line 221 "lexer.l"
2200 { BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_XFORMAT); }
2201 YY_BREAK
2202 case 177:
2203 YY_RULE_SETUP
2204 #line 222 "lexer.l"
2205 { BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISFORMAT); }
2206 YY_BREAK
2207 case 178:
2208 YY_RULE_SETUP
2209 #line 223 "lexer.l"
2210 { return ('+'); }
2211 YY_BREAK
2212 case 179:
2213 YY_RULE_SETUP
2214 #line 224 "lexer.l"
2215 { return ('-'); }
2216 YY_BREAK
2217 case 180:
2218 YY_RULE_SETUP
2219 #line 225 "lexer.l"
2220 { return ('*'); }
2221 YY_BREAK
2222 case 181:
2223 YY_RULE_SETUP
2224 #line 226 "lexer.l"
2225 { return ('/'); }
2226 YY_BREAK
2227 case 182:
2228 YY_RULE_SETUP
2229 #line 227 "lexer.l"
2230 { return (BX_TOKEN_RSHIFT); }
2231 YY_BREAK
2232 case 183:
2233 YY_RULE_SETUP
2234 #line 228 "lexer.l"
2235 { return (BX_TOKEN_LSHIFT); }
2236 YY_BREAK
2237 case 184:
2238 YY_RULE_SETUP
2239 #line 229 "lexer.l"
2240 { return ('&'); }
2241 YY_BREAK
2242 case 185:
2243 YY_RULE_SETUP
2244 #line 230 "lexer.l"
2245 { return ('|'); }
2246 YY_BREAK
2247 case 186:
2248 YY_RULE_SETUP
2249 #line 231 "lexer.l"
2250 { return ('^'); }
2251 YY_BREAK
2252 case 187:
2253 YY_RULE_SETUP
2254 #line 232 "lexer.l"
2255 { return ('!'); }
2256 YY_BREAK
2257 case 188:
2258 YY_RULE_SETUP
2259 #line 233 "lexer.l"
2260 { return ('('); }
2261 YY_BREAK
2262 case 189:
2263 YY_RULE_SETUP
2264 #line 234 "lexer.l"
2265 { return (')'); }
2266 YY_BREAK
2267 case 190:
2268 #line 236 "lexer.l"
2269 case 191:
2270 YY_RULE_SETUP
2271 #line 236 "lexer.l"
2272 { bxlval.sval = strdup(bxtext+1); bxlval.sval[strlen(bxlval.sval)-1] = 0; return(BX_TOKEN_STRING); }
2273 YY_BREAK
2274 case 192:
2275 YY_RULE_SETUP
2276 #line 237 "lexer.l"
2277 { bxlval.uval = strtoull(bxtext, NULL, 16); return(BX_TOKEN_NUMERIC); }
2278 YY_BREAK
2279 case 193:
2280 YY_RULE_SETUP
2281 #line 238 "lexer.l"
2282 { bxlval.uval = strtoull(bxtext, NULL, 8); return(BX_TOKEN_NUMERIC); }
2283 YY_BREAK
2284 case 194:
2285 YY_RULE_SETUP
2286 #line 239 "lexer.l"
2287 { bxlval.uval = strtoull(bxtext, NULL, 10); return(BX_TOKEN_NUMERIC); }
2288 YY_BREAK
2289 case 195:
2290 YY_RULE_SETUP
2291 #line 240 "lexer.l"
2292 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_COMMAND); }
2293 YY_BREAK
2294 case 196:
2295 YY_RULE_SETUP
2296 #line 241 "lexer.l"
2297 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLNAME); }
2298 YY_BREAK
2299 case 197:
2300 YY_RULE_SETUP
2301 #line 242 "lexer.l"
2302 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERIC); }
2303 YY_BREAK
2304 case 198:
2305 YY_RULE_SETUP
2306 #line 243 "lexer.l"
2307 { return ('\n'); }
2308 YY_BREAK
2309 case 199:
2310 YY_RULE_SETUP
2311 #line 244 "lexer.l"
2312 { return ('\n'); }
2313 YY_BREAK
2314 case 200:
2315 YY_RULE_SETUP
2316 #line 245 "lexer.l"
2317 ; // eat up comments '//'
2318 YY_BREAK
2319 case 201:
2320 YY_RULE_SETUP
2321 #line 246 "lexer.l"
2322 { return(bxtext[0]); }
2323 YY_BREAK
2324 case 202:
2325 YY_RULE_SETUP
2326 #line 247 "lexer.l"
2327 { BEGIN(INITIAL); unput(*bxtext); }
2328 YY_BREAK
2329 case 203:
2330 YY_RULE_SETUP
2331 #line 248 "lexer.l"
2332 ECHO;
2333 YY_BREAK
2334 case YY_STATE_EOF(INITIAL):
2335 case YY_STATE_EOF(EXAMINE):
2336 case YY_STATE_EOF(DISASM):
2337 yyterminate();
2339 case YY_END_OF_BUFFER:
2341 /* Amount of text matched not including the EOB char. */
2342 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2344 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2345 *yy_cp = yy_hold_char;
2346 YY_RESTORE_YY_MORE_OFFSET
2348 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2350 /* We're scanning a new file or input source. It's
2351 * possible that this happened because the user
2352 * just pointed yyin at a new source and called
2353 * yylex(). If so, then we have to assure
2354 * consistency between yy_current_buffer and our
2355 * globals. Here is the right place to do so, because
2356 * this is the first action (other than possibly a
2357 * back-up) that will match for the new input source.
2359 yy_n_chars = yy_current_buffer->yy_n_chars;
2360 yy_current_buffer->yy_input_file = yyin;
2361 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2364 /* Note that here we test for yy_c_buf_p "<=" to the position
2365 * of the first EOB in the buffer, since yy_c_buf_p will
2366 * already have been incremented past the NUL character
2367 * (since all states make transitions on EOB to the
2368 * end-of-buffer state). Contrast this with the test
2369 * in input().
2371 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2372 { /* This was really a NUL. */
2373 yy_state_type yy_next_state;
2375 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2377 yy_current_state = yy_get_previous_state();
2379 /* Okay, we're now positioned to make the NUL
2380 * transition. We couldn't have
2381 * yy_get_previous_state() go ahead and do it
2382 * for us because it doesn't know how to deal
2383 * with the possibility of jamming (and we don't
2384 * want to build jamming into it because then it
2385 * will run more slowly).
2388 yy_next_state = yy_try_NUL_trans( yy_current_state );
2390 yy_bp = yytext_ptr + YY_MORE_ADJ;
2392 if ( yy_next_state )
2394 /* Consume the NUL. */
2395 yy_cp = ++yy_c_buf_p;
2396 yy_current_state = yy_next_state;
2397 goto yy_match;
2400 else
2402 yy_cp = yy_c_buf_p;
2403 goto yy_find_action;
2407 else switch ( yy_get_next_buffer() )
2409 case EOB_ACT_END_OF_FILE:
2411 yy_did_buffer_switch_on_eof = 0;
2413 if ( yywrap() )
2415 /* Note: because we've taken care in
2416 * yy_get_next_buffer() to have set up
2417 * yytext, we can now set up
2418 * yy_c_buf_p so that if some total
2419 * hoser (like flex itself) wants to
2420 * call the scanner after we return the
2421 * YY_NULL, it'll still work - another
2422 * YY_NULL will get returned.
2424 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2426 yy_act = YY_STATE_EOF(YY_START);
2427 goto do_action;
2430 else
2432 if ( ! yy_did_buffer_switch_on_eof )
2433 YY_NEW_FILE;
2435 break;
2438 case EOB_ACT_CONTINUE_SCAN:
2439 yy_c_buf_p =
2440 yytext_ptr + yy_amount_of_matched_text;
2442 yy_current_state = yy_get_previous_state();
2444 yy_cp = yy_c_buf_p;
2445 yy_bp = yytext_ptr + YY_MORE_ADJ;
2446 goto yy_match;
2448 case EOB_ACT_LAST_MATCH:
2449 yy_c_buf_p =
2450 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2452 yy_current_state = yy_get_previous_state();
2454 yy_cp = yy_c_buf_p;
2455 yy_bp = yytext_ptr + YY_MORE_ADJ;
2456 goto yy_find_action;
2458 break;
2461 default:
2462 YY_FATAL_ERROR(
2463 "fatal flex scanner internal error--no action found" );
2464 } /* end of action switch */
2465 } /* end of scanning one token */
2466 } /* end of yylex */
2469 /* yy_get_next_buffer - try to read in a new buffer
2471 * Returns a code representing an action:
2472 * EOB_ACT_LAST_MATCH -
2473 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2474 * EOB_ACT_END_OF_FILE - end of file
2477 static int yy_get_next_buffer()
2479 register char *dest = yy_current_buffer->yy_ch_buf;
2480 register char *source = yytext_ptr;
2481 register int number_to_move, i;
2482 int ret_val;
2484 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2485 YY_FATAL_ERROR(
2486 "fatal flex scanner internal error--end of buffer missed" );
2488 if ( yy_current_buffer->yy_fill_buffer == 0 )
2489 { /* Don't try to fill the buffer, so this is an EOF. */
2490 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2492 /* We matched a single character, the EOB, so
2493 * treat this as a final EOF.
2495 return EOB_ACT_END_OF_FILE;
2498 else
2500 /* We matched some text prior to the EOB, first
2501 * process it.
2503 return EOB_ACT_LAST_MATCH;
2507 /* Try to read more data. */
2509 /* First move last chars to start of buffer. */
2510 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2512 for ( i = 0; i < number_to_move; ++i )
2513 *(dest++) = *(source++);
2515 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2516 /* don't do the read, it's not guaranteed to return an EOF,
2517 * just force an EOF
2519 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2521 else
2523 int num_to_read =
2524 yy_current_buffer->yy_buf_size - number_to_move - 1;
2526 while ( num_to_read <= 0 )
2527 { /* Not enough room in the buffer - grow it. */
2528 #ifdef YY_USES_REJECT
2529 YY_FATAL_ERROR(
2530 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2531 #else
2533 /* just a shorter name for the current buffer */
2534 YY_BUFFER_STATE b = yy_current_buffer;
2536 int yy_c_buf_p_offset =
2537 (int) (yy_c_buf_p - b->yy_ch_buf);
2539 if ( b->yy_is_our_buffer )
2541 int new_size = b->yy_buf_size * 2;
2543 if ( new_size <= 0 )
2544 b->yy_buf_size += b->yy_buf_size / 8;
2545 else
2546 b->yy_buf_size *= 2;
2548 b->yy_ch_buf = (char *)
2549 /* Include room in for 2 EOB chars. */
2550 yy_flex_realloc( (void *) b->yy_ch_buf,
2551 b->yy_buf_size + 2 );
2553 else
2554 /* Can't grow it, we don't own it. */
2555 b->yy_ch_buf = 0;
2557 if ( ! b->yy_ch_buf )
2558 YY_FATAL_ERROR(
2559 "fatal error - scanner input buffer overflow" );
2561 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2563 num_to_read = yy_current_buffer->yy_buf_size -
2564 number_to_move - 1;
2565 #endif
2568 if ( num_to_read > YY_READ_BUF_SIZE )
2569 num_to_read = YY_READ_BUF_SIZE;
2571 /* Read in more data. */
2572 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2573 yy_n_chars, num_to_read );
2575 yy_current_buffer->yy_n_chars = yy_n_chars;
2578 if ( yy_n_chars == 0 )
2580 if ( number_to_move == YY_MORE_ADJ )
2582 ret_val = EOB_ACT_END_OF_FILE;
2583 yyrestart( yyin );
2586 else
2588 ret_val = EOB_ACT_LAST_MATCH;
2589 yy_current_buffer->yy_buffer_status =
2590 YY_BUFFER_EOF_PENDING;
2594 else
2595 ret_val = EOB_ACT_CONTINUE_SCAN;
2597 yy_n_chars += number_to_move;
2598 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2599 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2601 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2603 return ret_val;
2607 /* yy_get_previous_state - get the state just before the EOB char was reached */
2609 static yy_state_type yy_get_previous_state()
2611 register yy_state_type yy_current_state;
2612 register char *yy_cp;
2614 yy_current_state = yy_start;
2616 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2618 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2619 if ( yy_accept[yy_current_state] )
2621 yy_last_accepting_state = yy_current_state;
2622 yy_last_accepting_cpos = yy_cp;
2624 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2626 yy_current_state = (int) yy_def[yy_current_state];
2627 if ( yy_current_state >= 450 )
2628 yy_c = yy_meta[(unsigned int) yy_c];
2630 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2633 return yy_current_state;
2637 /* yy_try_NUL_trans - try to make a transition on the NUL character
2639 * synopsis
2640 * next_state = yy_try_NUL_trans( current_state );
2643 #ifdef YY_USE_PROTOS
2644 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2645 #else
2646 static yy_state_type yy_try_NUL_trans( yy_current_state )
2647 yy_state_type yy_current_state;
2648 #endif
2650 register int yy_is_jam;
2651 register char *yy_cp = yy_c_buf_p;
2653 register YY_CHAR yy_c = 1;
2654 if ( yy_accept[yy_current_state] )
2656 yy_last_accepting_state = yy_current_state;
2657 yy_last_accepting_cpos = yy_cp;
2659 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2661 yy_current_state = (int) yy_def[yy_current_state];
2662 if ( yy_current_state >= 450 )
2663 yy_c = yy_meta[(unsigned int) yy_c];
2665 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2666 yy_is_jam = (yy_current_state == 449);
2668 return yy_is_jam ? 0 : yy_current_state;
2672 #ifndef YY_NO_UNPUT
2673 #ifdef YY_USE_PROTOS
2674 static void yyunput( int c, register char *yy_bp )
2675 #else
2676 static void yyunput( c, yy_bp )
2677 int c;
2678 register char *yy_bp;
2679 #endif
2681 register char *yy_cp = yy_c_buf_p;
2683 /* undo effects of setting up yytext */
2684 *yy_cp = yy_hold_char;
2686 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2687 { /* need to shift things up to make room */
2688 /* +2 for EOB chars. */
2689 register int number_to_move = yy_n_chars + 2;
2690 register char *dest = &yy_current_buffer->yy_ch_buf[
2691 yy_current_buffer->yy_buf_size + 2];
2692 register char *source =
2693 &yy_current_buffer->yy_ch_buf[number_to_move];
2695 while ( source > yy_current_buffer->yy_ch_buf )
2696 *--dest = *--source;
2698 yy_cp += (int) (dest - source);
2699 yy_bp += (int) (dest - source);
2700 yy_current_buffer->yy_n_chars =
2701 yy_n_chars = yy_current_buffer->yy_buf_size;
2703 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2704 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2707 *--yy_cp = (char) c;
2710 yytext_ptr = yy_bp;
2711 yy_hold_char = *yy_cp;
2712 yy_c_buf_p = yy_cp;
2714 #endif /* ifndef YY_NO_UNPUT */
2717 #ifdef __cplusplus
2718 static int yyinput()
2719 #else
2720 static int input()
2721 #endif
2723 int c;
2725 *yy_c_buf_p = yy_hold_char;
2727 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2729 /* yy_c_buf_p now points to the character we want to return.
2730 * If this occurs *before* the EOB characters, then it's a
2731 * valid NUL; if not, then we've hit the end of the buffer.
2733 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2734 /* This was really a NUL. */
2735 *yy_c_buf_p = '\0';
2737 else
2738 { /* need more input */
2739 int offset = yy_c_buf_p - yytext_ptr;
2740 ++yy_c_buf_p;
2742 switch ( yy_get_next_buffer() )
2744 case EOB_ACT_LAST_MATCH:
2745 /* This happens because yy_g_n_b()
2746 * sees that we've accumulated a
2747 * token and flags that we need to
2748 * try matching the token before
2749 * proceeding. But for input(),
2750 * there's no matching to consider.
2751 * So convert the EOB_ACT_LAST_MATCH
2752 * to EOB_ACT_END_OF_FILE.
2755 /* Reset buffer status. */
2756 yyrestart( yyin );
2758 /* fall through */
2760 case EOB_ACT_END_OF_FILE:
2762 if ( yywrap() )
2763 return EOF;
2765 if ( ! yy_did_buffer_switch_on_eof )
2766 YY_NEW_FILE;
2767 #ifdef __cplusplus
2768 return yyinput();
2769 #else
2770 return input();
2771 #endif
2774 case EOB_ACT_CONTINUE_SCAN:
2775 yy_c_buf_p = yytext_ptr + offset;
2776 break;
2781 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
2782 *yy_c_buf_p = '\0'; /* preserve yytext */
2783 yy_hold_char = *++yy_c_buf_p;
2786 return c;
2790 #ifdef YY_USE_PROTOS
2791 void yyrestart( FILE *input_file )
2792 #else
2793 void yyrestart( input_file )
2794 FILE *input_file;
2795 #endif
2797 if ( ! yy_current_buffer )
2798 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2800 yy_init_buffer( yy_current_buffer, input_file );
2801 yy_load_buffer_state();
2805 #ifdef YY_USE_PROTOS
2806 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2807 #else
2808 void yy_switch_to_buffer( new_buffer )
2809 YY_BUFFER_STATE new_buffer;
2810 #endif
2812 if ( yy_current_buffer == new_buffer )
2813 return;
2815 if ( yy_current_buffer )
2817 /* Flush out information for old buffer. */
2818 *yy_c_buf_p = yy_hold_char;
2819 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2820 yy_current_buffer->yy_n_chars = yy_n_chars;
2823 yy_current_buffer = new_buffer;
2824 yy_load_buffer_state();
2826 /* We don't actually know whether we did this switch during
2827 * EOF (yywrap()) processing, but the only time this flag
2828 * is looked at is after yywrap() is called, so it's safe
2829 * to go ahead and always set it.
2831 yy_did_buffer_switch_on_eof = 1;
2835 #ifdef YY_USE_PROTOS
2836 void yy_load_buffer_state( void )
2837 #else
2838 void yy_load_buffer_state()
2839 #endif
2841 yy_n_chars = yy_current_buffer->yy_n_chars;
2842 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2843 yyin = yy_current_buffer->yy_input_file;
2844 yy_hold_char = *yy_c_buf_p;
2848 #ifdef YY_USE_PROTOS
2849 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2850 #else
2851 YY_BUFFER_STATE yy_create_buffer( file, size )
2852 FILE *file;
2853 int size;
2854 #endif
2856 YY_BUFFER_STATE b;
2858 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2859 if ( ! b )
2860 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2862 b->yy_buf_size = size;
2864 /* yy_ch_buf has to be 2 characters longer than the size given because
2865 * we need to put in 2 end-of-buffer characters.
2867 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2868 if ( ! b->yy_ch_buf )
2869 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2871 b->yy_is_our_buffer = 1;
2873 yy_init_buffer( b, file );
2875 return b;
2879 #ifdef YY_USE_PROTOS
2880 void yy_delete_buffer( YY_BUFFER_STATE b )
2881 #else
2882 void yy_delete_buffer( b )
2883 YY_BUFFER_STATE b;
2884 #endif
2886 if ( ! b )
2887 return;
2889 if ( b == yy_current_buffer )
2890 yy_current_buffer = (YY_BUFFER_STATE) 0;
2892 if ( b->yy_is_our_buffer )
2893 yy_flex_free( (void *) b->yy_ch_buf );
2895 yy_flex_free( (void *) b );
2899 #ifndef _WIN32
2900 #include <unistd.h>
2901 #else
2902 #ifndef YY_ALWAYS_INTERACTIVE
2903 #ifndef YY_NEVER_INTERACTIVE
2904 extern int isatty YY_PROTO(( int ));
2905 #endif
2906 #endif
2907 #endif
2909 #ifdef YY_USE_PROTOS
2910 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2911 #else
2912 void yy_init_buffer( b, file )
2913 YY_BUFFER_STATE b;
2914 FILE *file;
2915 #endif
2919 yy_flush_buffer( b );
2921 b->yy_input_file = file;
2922 b->yy_fill_buffer = 1;
2924 #if YY_ALWAYS_INTERACTIVE
2925 b->yy_is_interactive = 1;
2926 #else
2927 #if YY_NEVER_INTERACTIVE
2928 b->yy_is_interactive = 0;
2929 #else
2930 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2931 #endif
2932 #endif
2936 #ifdef YY_USE_PROTOS
2937 void yy_flush_buffer( YY_BUFFER_STATE b )
2938 #else
2939 void yy_flush_buffer( b )
2940 YY_BUFFER_STATE b;
2941 #endif
2944 if ( ! b )
2945 return;
2947 b->yy_n_chars = 0;
2949 /* We always need two end-of-buffer characters. The first causes
2950 * a transition to the end-of-buffer state. The second causes
2951 * a jam in that state.
2953 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2954 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2956 b->yy_buf_pos = &b->yy_ch_buf[0];
2958 b->yy_at_bol = 1;
2959 b->yy_buffer_status = YY_BUFFER_NEW;
2961 if ( b == yy_current_buffer )
2962 yy_load_buffer_state();
2966 #ifndef YY_NO_SCAN_BUFFER
2967 #ifdef YY_USE_PROTOS
2968 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
2969 #else
2970 YY_BUFFER_STATE yy_scan_buffer( base, size )
2971 char *base;
2972 yy_size_t size;
2973 #endif
2975 YY_BUFFER_STATE b;
2977 if ( size < 2 ||
2978 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2979 base[size-1] != YY_END_OF_BUFFER_CHAR )
2980 /* They forgot to leave room for the EOB's. */
2981 return 0;
2983 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2984 if ( ! b )
2985 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2987 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2988 b->yy_buf_pos = b->yy_ch_buf = base;
2989 b->yy_is_our_buffer = 0;
2990 b->yy_input_file = 0;
2991 b->yy_n_chars = b->yy_buf_size;
2992 b->yy_is_interactive = 0;
2993 b->yy_at_bol = 1;
2994 b->yy_fill_buffer = 0;
2995 b->yy_buffer_status = YY_BUFFER_NEW;
2997 yy_switch_to_buffer( b );
2999 return b;
3001 #endif
3004 #ifndef YY_NO_SCAN_STRING
3005 #ifdef YY_USE_PROTOS
3006 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3007 #else
3008 YY_BUFFER_STATE yy_scan_string( yy_str )
3009 yyconst char *yy_str;
3010 #endif
3012 int len;
3013 for ( len = 0; yy_str[len]; ++len )
3016 return yy_scan_bytes( yy_str, len );
3018 #endif
3021 #ifndef YY_NO_SCAN_BYTES
3022 #ifdef YY_USE_PROTOS
3023 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3024 #else
3025 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3026 yyconst char *bytes;
3027 int len;
3028 #endif
3030 YY_BUFFER_STATE b;
3031 char *buf;
3032 yy_size_t n;
3033 int i;
3035 /* Get memory for full buffer, including space for trailing EOB's. */
3036 n = len + 2;
3037 buf = (char *) yy_flex_alloc( n );
3038 if ( ! buf )
3039 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3041 for ( i = 0; i < len; ++i )
3042 buf[i] = bytes[i];
3044 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3046 b = yy_scan_buffer( buf, n );
3047 if ( ! b )
3048 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3050 /* It's okay to grow etc. this buffer, and we should throw it
3051 * away when we're done.
3053 b->yy_is_our_buffer = 1;
3055 return b;
3057 #endif
3060 #ifndef YY_NO_PUSH_STATE
3061 #ifdef YY_USE_PROTOS
3062 static void yy_push_state( int new_state )
3063 #else
3064 static void yy_push_state( new_state )
3065 int new_state;
3066 #endif
3068 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3070 yy_size_t new_size;
3072 yy_start_stack_depth += YY_START_STACK_INCR;
3073 new_size = yy_start_stack_depth * sizeof( int );
3075 if ( ! yy_start_stack )
3076 yy_start_stack = (int *) yy_flex_alloc( new_size );
3078 else
3079 yy_start_stack = (int *) yy_flex_realloc(
3080 (void *) yy_start_stack, new_size );
3082 if ( ! yy_start_stack )
3083 YY_FATAL_ERROR(
3084 "out of memory expanding start-condition stack" );
3087 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3089 BEGIN(new_state);
3091 #endif
3094 #ifndef YY_NO_POP_STATE
3095 static void yy_pop_state()
3097 if ( --yy_start_stack_ptr < 0 )
3098 YY_FATAL_ERROR( "start-condition stack underflow" );
3100 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3102 #endif
3105 #ifndef YY_NO_TOP_STATE
3106 static int yy_top_state()
3108 return yy_start_stack[yy_start_stack_ptr - 1];
3110 #endif
3112 #ifndef YY_EXIT_FAILURE
3113 #define YY_EXIT_FAILURE 2
3114 #endif
3116 #ifdef YY_USE_PROTOS
3117 static void yy_fatal_error( yyconst char msg[] )
3118 #else
3119 static void yy_fatal_error( msg )
3120 char msg[];
3121 #endif
3123 (void) fprintf( stderr, "%s\n", msg );
3124 exit( YY_EXIT_FAILURE );
3129 /* Redefine yyless() so it works in section 3 code. */
3131 #undef yyless
3132 #define yyless(n) \
3133 do \
3135 /* Undo effects of setting up yytext. */ \
3136 yytext[yyleng] = yy_hold_char; \
3137 yy_c_buf_p = yytext + n; \
3138 yy_hold_char = *yy_c_buf_p; \
3139 *yy_c_buf_p = '\0'; \
3140 yyleng = n; \
3142 while ( 0 )
3145 /* Internal utility routines. */
3147 #ifndef yytext_ptr
3148 #ifdef YY_USE_PROTOS
3149 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3150 #else
3151 static void yy_flex_strncpy( s1, s2, n )
3152 char *s1;
3153 yyconst char *s2;
3154 int n;
3155 #endif
3157 register int i;
3158 for ( i = 0; i < n; ++i )
3159 s1[i] = s2[i];
3161 #endif
3163 #ifdef YY_NEED_STRLEN
3164 #ifdef YY_USE_PROTOS
3165 static int yy_flex_strlen( yyconst char *s )
3166 #else
3167 static int yy_flex_strlen( s )
3168 yyconst char *s;
3169 #endif
3171 register int n;
3172 for ( n = 0; s[n]; ++n )
3175 return n;
3177 #endif
3180 #ifdef YY_USE_PROTOS
3181 static void *yy_flex_alloc( yy_size_t size )
3182 #else
3183 static void *yy_flex_alloc( size )
3184 yy_size_t size;
3185 #endif
3187 return (void *) malloc( size );
3190 #ifdef YY_USE_PROTOS
3191 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3192 #else
3193 static void *yy_flex_realloc( ptr, size )
3194 void *ptr;
3195 yy_size_t size;
3196 #endif
3198 /* The cast to (char *) in the following accommodates both
3199 * implementations that use char* generic pointers, and those
3200 * that use void* generic pointers. It works with the latter
3201 * because both ANSI C and C++ allow castless assignment from
3202 * any pointer type to void*, and deal with argument conversions
3203 * as though doing an assignment.
3205 return (void *) realloc( (char *) ptr, size );
3208 #ifdef YY_USE_PROTOS
3209 static void yy_flex_free( void *ptr )
3210 #else
3211 static void yy_flex_free( ptr )
3212 void *ptr;
3213 #endif
3215 free( ptr );
3218 #if YY_MAIN
3219 int main()
3221 yylex();
3222 return 0;
3224 #endif
3225 #line 248 "lexer.l"
3229 bx_yyinput(char *buf, int max_size)
3231 int len;
3233 if (lex_input_size == 0) {
3234 fprintf(stderr, "lex: no characters in string input buffer.\n");
3235 exit(1);
3238 len = strlen(lex_input_ptr) + 1;
3239 if (len > max_size)
3240 len = max_size;
3242 memcpy(buf, lex_input_ptr, len);
3244 return(len);
3247 void
3248 bx_add_lex_input(char *buf)
3250 lex_input_ptr = buf;
3251 lex_input_size = strlen(buf);
3253 // Since we're parsing from strings, flush out
3254 // all current buffer state, so the next read
3255 // requests from yyinput
3257 bx_flush_buffer( YY_CURRENT_BUFFER );
3260 #endif /* if BX_DEBUGGER */