2 /* A lexical scanner generated by flex */
4 /* Scanner skeleton version:
5 * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
15 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
28 /* Use prototypes in function declarations. */
31 /* The "const" storage-class-modifier is valid. */
34 #else /* ! __cplusplus */
42 #endif /* ! __cplusplus */
61 #define YY_PROTO(proto) proto
63 #define YY_PROTO(proto) ()
66 /* Returned upon end-of-file. */
69 /* Promotes a possibly negative, possibly signed char to an unsigned
70 * integer for use as an array index. If the signed char is negative,
71 * we want to instead treat it as an 8-bit unsigned char, hence the
74 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
76 /* Enter a start condition. This macro really ought to take a parameter,
77 * but we do it the disgusting crufty way forced on us by the ()-less
78 * definition of BEGIN.
80 #define BEGIN yy_start = 1 + 2 *
82 /* Translate the current start state into a value that can be later handed
83 * to BEGIN to return to the state. The YYSTATE alias is for lex
86 #define YY_START ((yy_start - 1) / 2)
87 #define YYSTATE YY_START
89 /* Action number for EOF rule of a given start state. */
90 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
92 /* Special action meaning "start processing a new file". */
93 #define YY_NEW_FILE yyrestart( yyin )
95 #define YY_END_OF_BUFFER_CHAR 0
97 /* Size of default input buffer. */
98 #define YY_BUF_SIZE 16384
100 typedef struct yy_buffer_state *YY_BUFFER_STATE;
103 extern FILE *yyin, *yyout;
105 #define EOB_ACT_CONTINUE_SCAN 0
106 #define EOB_ACT_END_OF_FILE 1
107 #define EOB_ACT_LAST_MATCH 2
109 /* The funky do-while in the following #define is used to turn the definition
110 * int a single C statement (which needs a semi-colon terminator). This
111 * avoids problems with code like:
113 * if ( condition_holds )
116 * do_something_else();
118 * Prior to using the do-while the compiler would get upset at the
119 * "else" because it interpreted the "if" statement as being all
120 * done when it reached the ';' after the yyless() call.
123 /* Return all but the first 'n' matched characters back to the input stream. */
128 /* Undo effects of setting up yytext. */ \
129 *yy_cp = yy_hold_char; \
130 YY_RESTORE_YY_MORE_OFFSET \
131 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
132 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
136 #define unput(c) yyunput( c, yytext_ptr )
138 /* The following is because we cannot portably get our hands on size_t
139 * (without autoconf's help, which isn't available because we want
140 * flex-generated scanners to compile on their own).
142 typedef unsigned int yy_size_t;
145 struct yy_buffer_state
149 char *yy_ch_buf; /* input buffer */
150 char *yy_buf_pos; /* current position in input buffer */
152 /* Size of input buffer in bytes, not including room for EOB
155 yy_size_t yy_buf_size;
157 /* Number of characters read into yy_ch_buf, not including EOB
162 /* Whether we "own" the buffer - i.e., we know we created it,
163 * and can realloc() it to grow it, and should free() it to
166 int yy_is_our_buffer;
168 /* Whether this is an "interactive" input source; if so, and
169 * if we're using stdio for input, then we want to use getc()
170 * instead of fread(), to make sure we stop fetching input after
173 int yy_is_interactive;
175 /* Whether we're considered to be at the beginning of a line.
176 * If so, '^' rules will be active on the next match, otherwise
181 /* Whether to try to fill the input buffer when we reach the
186 int yy_buffer_status;
187 #define YY_BUFFER_NEW 0
188 #define YY_BUFFER_NORMAL 1
189 /* When an EOF's been seen but there's still some text to process
190 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
191 * shouldn't try reading from the input source any more. We might
192 * still have a bunch of tokens to match, though, because of
193 * possible backing-up.
195 * When we actually see the EOF, we change the status to "new"
196 * (via yyrestart()), so that the user can continue scanning by
197 * just pointing yyin at a new input file.
199 #define YY_BUFFER_EOF_PENDING 2
202 static YY_BUFFER_STATE yy_current_buffer = 0;
204 /* We provide macros for accessing buffer states in case in the
205 * future we want to put the buffer states in a more general
208 #define YY_CURRENT_BUFFER yy_current_buffer
211 /* yy_hold_char holds the character lost when yytext is formed. */
212 static char yy_hold_char;
214 static int yy_n_chars; /* number of characters read into yy_ch_buf */
219 /* Points to current character in buffer. */
220 static char *yy_c_buf_p = (char *) 0;
221 static int yy_init = 1; /* whether we need to initialize */
222 static int yy_start = 0; /* start state number */
224 /* Flag which is used to allow yywrap()'s to do buffer switches
225 * instead of setting up a fresh yyin. A bit of a hack ...
227 static int yy_did_buffer_switch_on_eof;
229 void yyrestart YY_PROTO(( FILE *input_file ));
231 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
232 void yy_load_buffer_state YY_PROTO(( void ));
233 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
234 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
235 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
236 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
237 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
239 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
240 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
241 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
243 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
244 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
245 static void yy_flex_free YY_PROTO(( void * ));
247 #define yy_new_buffer yy_create_buffer
249 #define yy_set_interactive(is_interactive) \
251 if ( ! yy_current_buffer ) \
252 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
253 yy_current_buffer->yy_is_interactive = is_interactive; \
256 #define yy_set_bol(at_bol) \
258 if ( ! yy_current_buffer ) \
259 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
260 yy_current_buffer->yy_at_bol = at_bol; \
263 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
265 typedef unsigned char YY_CHAR;
266 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
267 typedef int yy_state_type;
269 #define yytext_ptr yytext
271 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
272 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
273 static int yy_get_next_buffer YY_PROTO(( void ));
274 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
276 /* Done after the current pattern has been matched and before the
277 * corresponding action - sets up yytext.
279 #define YY_DO_BEFORE_ACTION \
280 yytext_ptr = yy_bp; \
281 yyleng = (int) (yy_cp - yy_bp); \
282 yy_hold_char = *yy_cp; \
286 #define YY_NUM_RULES 177
287 #define YY_END_OF_BUFFER 178
288 static yyconst short int yy_accept[721] =
290 112, 112, 178, 176, 174, 173, 172, 175, 159, 176,
291 1, 171, 165, 158, 176, 153, 154, 163, 162, 150,
292 161, 157, 164, 118, 118, 151, 147, 166, 152, 167,
293 170, 112, 112, 112, 155, 156, 168, 112, 112, 112,
294 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
295 112, 112, 112, 112, 112, 148, 169, 149, 160, 146,
296 0, 123, 0, 132, 149, 141, 133, 0, 0, 130,
297 138, 128, 139, 129, 140, 0, 121, 2, 3, 131,
298 122, 117, 0, 118, 0, 118, 112, 156, 148, 155,
299 137, 143, 145, 144, 136, 0, 112, 0, 112, 0,
301 0, 134, 112, 112, 112, 112, 112, 112, 112, 112,
302 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
303 112, 11, 112, 112, 112, 112, 112, 112, 112, 112,
304 19, 112, 112, 112, 112, 112, 112, 112, 112, 112,
305 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
306 112, 112, 112, 112, 135, 142, 119, 125, 0, 121,
307 121, 0, 122, 117, 0, 120, 0, 113, 112, 127,
308 126, 112, 112, 0, 124, 0, 112, 112, 112, 112,
309 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
310 112, 112, 112, 92, 112, 112, 112, 112, 112, 112,
312 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
313 112, 112, 112, 17, 45, 112, 112, 112, 112, 20,
314 112, 112, 112, 51, 112, 112, 112, 112, 112, 112,
315 112, 44, 112, 112, 112, 112, 112, 112, 112, 112,
316 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
317 112, 0, 121, 0, 121, 0, 122, 120, 115, 116,
318 113, 0, 61, 112, 112, 112, 112, 112, 112, 112,
319 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
320 112, 112, 112, 112, 112, 4, 112, 6, 7, 112,
321 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
323 112, 112, 13, 14, 112, 112, 112, 18, 112, 112,
324 112, 112, 112, 22, 112, 52, 112, 112, 112, 112,
325 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
326 112, 112, 112, 112, 21, 112, 112, 112, 38, 112,
327 112, 112, 0, 121, 115, 115, 0, 115, 115, 116,
328 0, 0, 114, 62, 112, 112, 112, 93, 112, 112,
329 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
330 112, 112, 112, 112, 112, 112, 5, 47, 8, 112,
331 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
332 112, 112, 16, 112, 112, 112, 58, 46, 112, 112,
334 112, 112, 112, 53, 112, 112, 25, 112, 112, 112,
335 112, 112, 112, 112, 112, 112, 112, 36, 112, 112,
336 112, 95, 42, 0, 115, 115, 115, 0, 0, 116,
337 114, 112, 112, 112, 112, 112, 112, 112, 112, 112,
338 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
339 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
340 56, 50, 112, 112, 12, 15, 112, 55, 88, 72,
341 112, 112, 112, 84, 112, 54, 112, 24, 26, 29,
342 31, 112, 112, 33, 112, 34, 112, 112, 112, 112,
343 112, 112, 112, 0, 115, 112, 112, 112, 91, 112,
345 112, 76, 82, 112, 112, 112, 57, 112, 112, 112,
346 112, 112, 112, 112, 70, 112, 112, 112, 112, 112,
347 112, 112, 112, 109, 110, 108, 10, 112, 112, 112,
348 112, 85, 112, 112, 112, 80, 112, 112, 112, 112,
349 35, 112, 49, 112, 112, 63, 112, 112, 112, 112,
350 112, 112, 71, 112, 27, 112, 32, 94, 112, 112,
351 79, 112, 112, 112, 112, 112, 112, 9, 112, 112,
352 112, 112, 112, 43, 23, 65, 112, 106, 112, 112,
353 37, 39, 112, 112, 112, 112, 112, 112, 112, 112,
354 112, 112, 77, 112, 112, 112, 112, 112, 112, 112,
356 112, 112, 112, 74, 75, 112, 107, 112, 112, 48,
357 112, 98, 64, 112, 112, 112, 112, 112, 69, 81,
358 28, 112, 41, 112, 87, 104, 112, 112, 112, 112,
359 112, 112, 112, 112, 112, 112, 30, 68, 112, 0,
360 112, 112, 78, 112, 90, 112, 112, 101, 112, 112,
361 112, 112, 112, 112, 112, 112, 112, 73, 0, 112,
362 83, 40, 112, 112, 112, 112, 112, 97, 112, 96,
363 86, 67, 112, 112, 89, 112, 112, 112, 112, 111,
364 112, 112, 112, 112, 112, 99, 112, 105, 112, 112,
365 112, 112, 112, 112, 112, 112, 60, 112, 112, 112,
367 112, 112, 59, 112, 112, 103, 112, 112, 100, 112,
368 112, 112, 112, 112, 112, 112, 102, 112, 66, 0
371 static yyconst int yy_ec[256] =
373 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
374 4, 4, 5, 1, 1, 1, 1, 1, 1, 1,
375 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
376 1, 4, 6, 7, 8, 9, 10, 11, 12, 13,
377 14, 15, 16, 17, 18, 19, 20, 21, 22, 22,
378 22, 23, 22, 24, 22, 22, 22, 25, 26, 27,
379 28, 29, 30, 1, 31, 32, 33, 31, 34, 35,
380 36, 36, 37, 38, 36, 39, 36, 36, 36, 40,
381 36, 36, 36, 36, 41, 36, 36, 42, 36, 36,
382 43, 44, 45, 46, 47, 1, 48, 49, 50, 51,
384 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
385 62, 63, 36, 64, 65, 66, 67, 68, 69, 70,
386 71, 72, 73, 74, 75, 76, 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, 1, 1, 1, 1, 1,
391 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
392 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
393 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
395 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
396 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
397 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
398 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
399 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
403 static yyconst int yy_meta[77] =
405 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
406 2, 3, 1, 4, 1, 1, 1, 1, 5, 1,
407 6, 6, 6, 6, 2, 1, 1, 1, 1, 1,
408 7, 7, 7, 7, 7, 8, 8, 8, 8, 8,
409 8, 8, 1, 1, 1, 1, 8, 7, 7, 7,
410 7, 7, 7, 8, 8, 8, 8, 8, 8, 8,
411 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
415 static yyconst short int yy_base[729] =
417 0, 0, 254, 2575, 2575, 2575, 2575, 2575, 219, 70,
418 2575, 2575, 50, 69, 201, 2575, 2575, 199, 65, 2575,
419 66, 64, 76, 96, 79, 80, 2575, 97, 194, 61,
420 2575, 81, 88, 116, 2575, 2575, 183, 132, 115, 87,
421 143, 147, 131, 148, 156, 160, 121, 164, 136, 203,
422 204, 206, 208, 212, 224, 2575, 88, 2575, 2575, 2575,
423 101, 2575, 184, 2575, 2575, 2575, 2575, 182, 174, 2575,
424 2575, 2575, 2575, 2575, 2575, 159, 259, 2575, 2575, 2575,
425 298, 339, 218, 247, 151, 0, 0, 2575, 2575, 2575,
426 116, 2575, 2575, 2575, 111, 111, 149, 106, 213, 186,
428 85, 2575, 233, 237, 232, 396, 221, 240, 241, 242,
429 265, 298, 313, 306, 318, 319, 323, 315, 316, 334,
430 331, 363, 364, 372, 328, 374, 375, 390, 391, 392,
431 393, 400, 409, 401, 394, 411, 398, 416, 424, 431,
432 399, 458, 459, 463, 466, 465, 468, 469, 475, 470,
433 476, 478, 487, 491, 2575, 2575, 2575, 2575, 527, 517,
434 556, 541, 546, 530, 483, 595, 0, 601, 403, 2575,
435 2575, 0, 533, 243, 2575, 108, 498, 550, 589, 596,
436 600, 618, 571, 611, 624, 620, 645, 517, 648, 652,
437 654, 663, 665, 497, 664, 667, 671, 672, 673, 675,
439 680, 683, 682, 684, 705, 692, 695, 708, 710, 720,
440 723, 731, 738, 508, 735, 739, 741, 743, 744, 747,
441 754, 748, 756, 763, 765, 766, 767, 771, 784, 774,
442 786, 787, 793, 794, 799, 803, 806, 805, 809, 810,
443 812, 814, 821, 827, 833, 834, 836, 837, 838, 839,
444 855, 860, 875, 889, 880, 899, 907, 905, 910, 953,
445 941, 997, 860, 866, 883, 881, 876, 970, 945, 927,
446 1003, 946, 1006, 1011, 1012, 1014, 940, 1013, 1016, 1018,
447 1015, 1021, 943, 1022, 1023, 1024, 1033, 1034, 1040, 1041,
448 1042, 1043, 1051, 1050, 1058, 1071, 1059, 1076, 1078, 1079,
450 1082, 1086, 1087, 1094, 1099, 1102, 1103, 1104, 1106, 1105,
451 1107, 1110, 1111, 1114, 1123, 1127, 1130, 1129, 1135, 1136,
452 1139, 1140, 1142, 1147, 1148, 1155, 1151, 1164, 1168, 1171,
453 1172, 1173, 1174, 1184, 1191, 1194, 1200, 1203, 1204, 1207,
454 1209, 1211, 1217, 1222, 0, 1212, 1259, 1249, 0, 1257,
455 1299, 1236, 1303, 1237, 1241, 1242, 1265, 1282, 1286, 1274,
456 1293, 1319, 1320, 1321, 1324, 1323, 1326, 1328, 1341, 1343,
457 1344, 1346, 1347, 1350, 1352, 1353, 1356, 1363, 1365, 1372,
458 1374, 1376, 1382, 1387, 1392, 1393, 1395, 1394, 1398, 1402,
459 1403, 1404, 1405, 1413, 1414, 1425, 1415, 1430, 1431, 1433,
461 1437, 1438, 1448, 1449, 1455, 1457, 1458, 1461, 1460, 1465,
462 1464, 1473, 1467, 1480, 1470, 1482, 1485, 1491, 1492, 1495,
463 1511, 1513, 1515, 1523, 1547, 0, 1519, 1571, 1527, 1586,
464 1576, 1549, 1541, 1566, 1572, 1601, 1554, 1605, 1606, 1611,
465 1623, 1626, 1627, 1629, 1630, 1548, 1633, 1635, 1636, 1638,
466 1642, 1645, 1648, 1655, 1654, 1658, 1660, 1663, 1667, 1664,
467 1666, 1675, 1684, 1685, 1687, 1688, 1690, 1703, 1706, 1709,
468 1711, 1713, 1714, 1715, 1716, 1718, 1724, 1726, 1733, 1737,
469 1739, 1741, 1742, 1744, 1746, 1750, 1759, 1752, 1762, 1761,
470 1765, 1767, 1768, 1773, 1806, 1777, 1774, 1778, 1780, 1787,
472 1793, 1795, 1798, 1808, 1810, 1814, 1821, 1823, 1826, 1827,
473 1831, 1839, 1842, 1843, 1844, 1847, 1849, 1859, 1862, 1865,
474 1869, 1870, 1872, 1877, 1878, 1880, 1885, 1889, 1898, 1901,
475 1904, 1905, 1906, 1909, 1910, 1914, 1917, 1921, 1925, 1930,
476 1927, 1932, 1933, 1936, 1934, 1938, 1945, 1949, 1953, 1955,
477 1960, 1957, 1964, 1973, 1970, 1976, 1980, 1981, 1983, 1985,
478 1989, 1993, 1996, 2004, 2008, 2011, 2013, 2014, 2016, 2015,
479 2019, 2021, 2020, 2023, 2026, 2039, 2041, 2042, 2043, 2048,
480 2049, 2054, 2066, 2069, 2072, 2073, 2075, 2076, 2079, 2077,
481 2078, 2081, 2082, 2084, 2088, 2100, 2105, 2106, 2109, 2110,
483 2112, 2121, 2127, 2122, 2131, 2134, 2132, 2144, 2147, 2149,
484 2150, 2152, 2156, 2157, 2160, 2162, 2165, 2168, 2172, 2180,
485 2181, 2184, 2185, 2188, 2189, 2190, 2196, 2197, 2208, 2200,
486 2209, 2212, 2213, 2217, 2215, 2228, 2225, 2232, 2233, 96,
487 2235, 2237, 2230, 2241, 2243, 2258, 2260, 2261, 2262, 2269,
488 2278, 2279, 2280, 2281, 2282, 2285, 2284, 2575, 68, 2287,
489 2286, 2288, 2289, 2290, 2291, 2297, 2312, 2313, 2315, 2316,
490 2318, 2334, 2336, 2339, 2340, 2343, 2341, 2345, 2346, 2347,
491 2349, 2351, 2358, 2364, 2366, 2367, 2368, 2369, 2370, 2371,
492 2374, 2375, 2386, 2390, 2391, 2393, 2396, 2398, 2399, 2401,
494 2402, 2419, 2414, 2423, 2426, 2427, 2431, 2432, 2442, 2443,
495 2447, 2449, 2451, 2455, 2460, 2466, 2464, 2467, 2470, 2575,
496 2531, 2539, 2546, 2550, 2551, 2559, 2562, 2566
499 static yyconst short int yy_def[729] =
501 720, 1, 720, 720, 720, 720, 720, 720, 720, 721,
502 720, 720, 720, 720, 722, 720, 720, 720, 720, 720,
503 720, 720, 720, 720, 24, 720, 720, 720, 720, 720,
504 720, 723, 723, 723, 720, 720, 720, 723, 723, 723,
505 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
506 723, 723, 723, 723, 723, 720, 720, 720, 720, 720,
507 721, 720, 721, 720, 720, 720, 720, 722, 722, 720,
508 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
509 720, 720, 720, 720, 724, 25, 725, 720, 720, 720,
510 720, 720, 720, 720, 720, 720, 723, 720, 723, 726,
512 722, 720, 723, 723, 723, 723, 723, 723, 723, 723,
513 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
514 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
515 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
516 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
517 723, 723, 723, 723, 720, 720, 720, 720, 720, 720,
518 720, 720, 720, 720, 720, 720, 727, 724, 723, 720,
519 720, 725, 723, 726, 720, 726, 723, 723, 723, 723,
520 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
521 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
523 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
524 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
525 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
526 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
527 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
528 723, 720, 77, 720, 720, 720, 81, 720, 727, 720,
529 720, 720, 723, 723, 723, 723, 723, 723, 723, 723,
530 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
531 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
532 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
534 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
535 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
536 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
537 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
538 723, 723, 720, 161, 259, 720, 720, 260, 348, 720,
539 720, 720, 720, 723, 723, 723, 723, 723, 723, 723,
540 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
541 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
542 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
543 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
545 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
546 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
547 723, 723, 723, 720, 720, 348, 720, 720, 720, 720,
548 720, 723, 723, 723, 723, 723, 723, 723, 723, 723,
549 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
550 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
551 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
552 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
553 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
554 723, 723, 723, 720, 720, 723, 723, 723, 723, 723,
556 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
557 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
558 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
559 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
560 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
561 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
562 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
563 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
564 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
565 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
567 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
568 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
569 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
570 723, 723, 723, 723, 723, 723, 723, 723, 723, 728,
571 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
572 723, 723, 723, 723, 723, 723, 723, 720, 728, 723,
573 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
574 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
575 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
576 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
578 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
579 723, 723, 723, 723, 723, 723, 723, 723, 723, 0,
580 720, 720, 720, 720, 720, 720, 720, 720
583 static yyconst short int yy_nxt[2652] =
585 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
586 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
587 24, 25, 25, 25, 26, 27, 28, 29, 30, 31,
588 32, 33, 32, 32, 32, 32, 32, 32, 34, 32,
589 32, 32, 35, 4, 36, 37, 38, 39, 40, 41,
590 42, 43, 44, 45, 32, 46, 32, 32, 47, 32,
591 48, 32, 49, 50, 51, 52, 53, 54, 55, 32,
592 32, 32, 56, 57, 58, 59, 62, 64, 65, 66,
593 71, 658, 76, 73, 77, 77, 77, 77, 94, 95,
594 78, 96, 72, 74, 75, 79, 67, 96, 96, 86,
596 86, 86, 86, 80, 87, 98, 89, 62, 88, 658,
597 720, 98, 98, 63, 81, 155, 82, 82, 82, 82,
598 720, 90, 100, 91, 92, 96, 96, 101, 69, 83,
599 172, 96, 84, 84, 84, 98, 84, 85, 171, 98,
600 98, 96, 96, 170, 63, 98, 96, 83, 720, 99,
601 113, 84, 84, 96, 84, 98, 98, 96, 96, 96,
602 98, 156, 84, 103, 104, 85, 96, 98, 105, 167,
603 96, 98, 98, 98, 96, 110, 720, 158, 106, 111,
604 98, 112, 135, 107, 98, 68, 720, 108, 98, 123,
605 114, 124, 175, 157, 118, 119, 109, 115, 120, 138,
607 125, 116, 139, 126, 117, 121, 127, 129, 122, 128,
608 102, 136, 131, 96, 96, 137, 96, 130, 96, 132,
609 133, 93, 96, 96, 134, 69, 70, 98, 98, 176,
610 98, 96, 98, 165, 96, 165, 98, 98, 166, 166,
611 166, 166, 96, 96, 69, 98, 60, 96, 98, 175,
612 96, 96, 96, 720, 140, 141, 98, 98, 142, 143,
613 147, 98, 720, 149, 98, 98, 98, 151, 150, 144,
614 145, 153, 146, 152, 173, 96, 148, 720, 154, 77,
615 77, 77, 77, 84, 84, 84, 176, 84, 720, 98,
616 190, 179, 159, 160, 177, 160, 160, 160, 178, 720,
618 191, 720, 84, 84, 720, 84, 192, 720, 96, 720,
619 159, 160, 193, 84, 160, 160, 96, 160, 161, 161,
620 161, 161, 98, 96, 194, 96, 96, 720, 96, 96,
621 98, 162, 163, 96, 163, 163, 163, 98, 96, 98,
622 98, 96, 98, 98, 96, 720, 720, 98, 720, 162,
623 163, 720, 98, 163, 163, 98, 163, 81, 98, 82,
624 82, 82, 82, 195, 196, 198, 199, 720, 202, 720,
625 197, 203, 83, 96, 96, 164, 164, 164, 720, 164,
626 201, 204, 96, 200, 96, 96, 205, 98, 98, 207,
627 83, 720, 206, 211, 164, 164, 98, 164, 98, 98,
629 96, 96, 96, 96, 96, 164, 96, 720, 96, 96,
630 96, 96, 720, 96, 98, 98, 98, 98, 98, 96,
631 98, 96, 98, 98, 98, 98, 96, 98, 209, 208,
632 720, 720, 720, 98, 96, 98, 213, 212, 210, 720,
633 98, 96, 720, 180, 181, 182, 183, 184, 98, 720,
634 720, 185, 720, 214, 222, 98, 215, 216, 218, 186,
635 187, 188, 217, 189, 232, 221, 224, 219, 96, 96,
636 223, 225, 227, 96, 220, 96, 96, 226, 96, 96,
637 96, 720, 98, 98, 228, 96, 96, 98, 96, 98,
638 98, 229, 98, 98, 98, 230, 231, 96, 720, 98,
640 98, 96, 98, 166, 166, 166, 166, 96, 96, 720,
641 236, 98, 234, 237, 240, 98, 720, 720, 96, 233,
642 241, 98, 98, 242, 238, 245, 239, 96, 720, 720,
643 235, 243, 98, 248, 246, 244, 249, 720, 720, 247,
644 720, 98, 252, 96, 252, 720, 251, 253, 253, 253,
645 253, 160, 250, 160, 160, 160, 256, 98, 256, 264,
646 96, 257, 257, 257, 257, 720, 164, 164, 164, 160,
647 164, 279, 160, 160, 98, 160, 161, 161, 161, 161,
648 163, 96, 163, 163, 163, 164, 164, 280, 164, 254,
649 255, 263, 255, 255, 255, 98, 164, 720, 163, 96,
651 720, 163, 163, 720, 163, 720, 96, 254, 255, 265,
652 96, 255, 255, 98, 255, 166, 166, 166, 166, 260,
653 98, 96, 273, 720, 98, 720, 720, 720, 96, 258,
654 96, 258, 258, 258, 96, 98, 266, 261, 261, 261,
655 262, 261, 98, 720, 98, 720, 720, 258, 98, 720,
656 258, 258, 720, 258, 267, 96, 261, 261, 96, 261,
657 268, 269, 96, 262, 96, 720, 270, 261, 271, 98,
658 720, 276, 98, 96, 96, 96, 98, 96, 98, 272,
659 274, 96, 96, 96, 275, 96, 720, 98, 98, 98,
660 96, 98, 96, 96, 96, 98, 98, 98, 720, 98,
662 277, 720, 96, 720, 98, 96, 98, 98, 98, 281,
663 278, 285, 283, 284, 287, 96, 98, 282, 96, 98,
664 96, 720, 288, 720, 720, 286, 720, 293, 720, 98,
665 96, 296, 98, 96, 98, 289, 720, 290, 294, 291,
666 292, 96, 295, 299, 98, 96, 300, 98, 96, 96,
667 301, 96, 297, 96, 96, 98, 302, 96, 96, 98,
668 298, 303, 98, 98, 96, 98, 96, 98, 98, 720,
669 312, 98, 98, 96, 305, 96, 96, 96, 98, 304,
670 98, 96, 306, 316, 96, 307, 720, 98, 720, 98,
671 98, 98, 720, 720, 96, 98, 96, 96, 98, 311,
673 308, 314, 309, 96, 96, 313, 310, 315, 98, 96,
674 98, 98, 720, 96, 720, 96, 96, 98, 98, 96,
675 96, 720, 96, 98, 96, 319, 320, 98, 318, 98,
676 98, 96, 317, 98, 98, 321, 98, 96, 98, 322,
677 720, 720, 720, 96, 96, 98, 96, 96, 96, 96,
678 326, 98, 323, 720, 325, 328, 324, 98, 98, 331,
679 98, 98, 98, 98, 720, 96, 720, 329, 327, 720,
680 96, 720, 334, 720, 720, 330, 96, 332, 333, 98,
681 253, 253, 253, 253, 98, 340, 96, 339, 341, 337,
682 98, 96, 335, 96, 336, 253, 253, 253, 253, 720,
684 98, 338, 720, 720, 343, 98, 343, 98, 720, 344,
685 344, 344, 344, 342, 255, 720, 255, 255, 255, 257,
686 257, 257, 257, 720, 354, 720, 720, 257, 257, 257,
687 257, 357, 255, 720, 356, 255, 255, 96, 255, 258,
688 720, 258, 258, 258, 345, 355, 346, 346, 346, 347,
689 96, 98, 720, 96, 720, 96, 96, 258, 720, 720,
690 258, 258, 345, 258, 98, 346, 346, 98, 346, 98,
691 98, 720, 347, 348, 348, 348, 348, 261, 261, 261,
692 96, 261, 360, 348, 348, 348, 348, 349, 720, 350,
693 350, 350, 351, 368, 98, 720, 261, 261, 374, 261,
695 348, 348, 348, 348, 348, 349, 362, 261, 350, 350,
696 359, 350, 352, 96, 352, 351, 96, 353, 353, 353,
697 353, 96, 96, 96, 96, 96, 96, 98, 96, 358,
698 98, 96, 96, 96, 96, 98, 98, 98, 98, 98,
699 98, 720, 98, 96, 96, 98, 98, 98, 98, 720,
700 96, 96, 96, 96, 361, 363, 720, 98, 98, 720,
701 96, 96, 720, 369, 98, 98, 98, 98, 96, 96,
702 365, 375, 373, 372, 98, 98, 364, 366, 367, 370,
703 371, 96, 98, 98, 376, 720, 96, 720, 96, 96,
704 377, 720, 96, 720, 720, 98, 96, 96, 380, 381,
706 98, 382, 98, 98, 96, 378, 98, 379, 383, 96,
707 98, 98, 96, 96, 96, 96, 96, 96, 98, 384,
708 96, 96, 720, 98, 96, 385, 98, 98, 98, 98,
709 98, 98, 397, 96, 98, 98, 386, 96, 98, 96,
710 96, 389, 720, 387, 390, 96, 96, 98, 388, 96,
711 96, 98, 96, 98, 98, 720, 395, 96, 96, 98,
712 98, 96, 391, 98, 98, 96, 98, 396, 393, 394,
713 392, 98, 98, 720, 96, 98, 398, 400, 96, 98,
714 401, 96, 96, 96, 96, 720, 720, 399, 98, 720,
715 402, 720, 98, 720, 96, 98, 98, 98, 98, 408,
717 403, 96, 720, 405, 96, 406, 410, 404, 98, 720,
718 96, 411, 407, 96, 96, 98, 409, 96, 98, 96,
719 413, 96, 415, 416, 98, 720, 720, 98, 98, 720,
720 414, 98, 720, 98, 417, 98, 412, 344, 344, 344,
721 344, 720, 344, 344, 344, 344, 346, 96, 346, 346,
722 346, 96, 96, 419, 418, 720, 353, 353, 353, 353,
723 720, 98, 423, 422, 346, 98, 98, 346, 346, 420,
724 346, 720, 421, 720, 424, 96, 424, 720, 720, 425,
725 425, 425, 425, 426, 96, 427, 427, 427, 428, 98,
726 720, 350, 96, 350, 350, 350, 96, 433, 98, 432,
728 720, 426, 720, 96, 427, 427, 98, 427, 720, 350,
729 98, 428, 350, 350, 429, 350, 429, 98, 434, 430,
730 430, 430, 430, 353, 353, 353, 353, 720, 435, 96,
731 96, 96, 437, 96, 96, 720, 96, 431, 96, 431,
732 431, 431, 438, 98, 98, 98, 443, 98, 98, 436,
733 98, 96, 98, 96, 96, 431, 96, 96, 431, 431,
734 96, 431, 96, 96, 720, 98, 96, 98, 98, 720,
735 98, 98, 441, 96, 98, 96, 98, 98, 440, 442,
736 98, 720, 96, 439, 96, 720, 96, 98, 445, 98,
737 446, 444, 96, 449, 447, 448, 98, 96, 98, 452,
739 98, 453, 96, 96, 96, 96, 98, 450, 96, 454,
740 451, 98, 96, 96, 96, 96, 98, 98, 98, 98,
741 720, 456, 98, 96, 96, 96, 98, 98, 98, 98,
742 720, 720, 455, 458, 457, 96, 720, 98, 98, 98,
743 96, 96, 720, 96, 461, 459, 462, 96, 96, 98,
744 460, 467, 720, 465, 98, 98, 463, 98, 96, 96,
745 464, 98, 98, 466, 720, 96, 469, 96, 96, 476,
746 96, 96, 98, 98, 96, 96, 470, 96, 468, 98,
747 96, 98, 98, 96, 98, 98, 720, 474, 98, 98,
748 96, 98, 96, 471, 98, 96, 720, 98, 472, 720,
750 473, 96, 96, 720, 98, 96, 98, 720, 720, 98,
751 477, 479, 480, 475, 481, 98, 98, 478, 720, 98,
752 483, 96, 482, 96, 486, 96, 720, 485, 720, 720,
753 720, 488, 484, 720, 720, 98, 489, 98, 720, 98,
754 487, 720, 491, 425, 425, 425, 425, 430, 430, 430,
755 430, 96, 490, 427, 720, 427, 427, 427, 96, 96,
756 493, 720, 720, 720, 96, 98, 492, 425, 425, 425,
757 425, 427, 98, 98, 427, 427, 96, 427, 98, 720,
758 720, 346, 96, 346, 346, 346, 494, 720, 494, 720,
759 98, 495, 495, 495, 495, 510, 98, 720, 720, 346,
761 496, 497, 346, 346, 720, 346, 430, 430, 430, 430,
762 431, 96, 431, 431, 431, 96, 96, 720, 499, 501,
763 350, 96, 350, 350, 350, 98, 498, 720, 431, 98,
764 98, 431, 431, 96, 431, 98, 96, 96, 350, 96,
765 96, 350, 350, 96, 350, 96, 96, 98, 96, 507,
766 98, 98, 96, 98, 98, 96, 500, 98, 96, 98,
767 98, 720, 98, 502, 96, 96, 98, 720, 96, 98,
768 96, 503, 98, 96, 96, 504, 96, 96, 98, 98,
769 511, 509, 98, 505, 98, 96, 506, 98, 98, 720,
770 98, 98, 508, 515, 96, 96, 512, 96, 96, 98,
772 96, 513, 514, 516, 517, 518, 720, 519, 98, 98,
773 524, 98, 98, 96, 98, 520, 96, 521, 526, 96,
774 522, 96, 523, 96, 96, 96, 96, 98, 96, 527,
775 98, 720, 525, 98, 96, 98, 96, 98, 98, 98,
776 98, 720, 98, 96, 720, 528, 529, 96, 98, 96,
777 98, 96, 96, 720, 96, 530, 96, 98, 531, 720,
778 96, 98, 96, 98, 532, 98, 98, 534, 98, 96,
779 98, 96, 96, 535, 98, 96, 98, 96, 96, 533,
780 720, 720, 720, 98, 96, 98, 98, 96, 96, 98,
781 96, 98, 98, 495, 495, 495, 495, 96, 98, 536,
783 720, 98, 98, 96, 98, 96, 539, 537, 96, 720,
784 538, 98, 542, 540, 541, 720, 545, 98, 96, 98,
785 96, 547, 98, 543, 96, 544, 495, 495, 495, 495,
786 720, 96, 98, 96, 98, 549, 96, 96, 98, 548,
787 427, 96, 427, 427, 427, 98, 546, 98, 550, 96,
788 98, 98, 96, 96, 96, 98, 720, 96, 427, 96,
789 720, 427, 427, 98, 427, 553, 98, 98, 98, 96,
790 551, 98, 96, 98, 552, 96, 555, 720, 554, 96,
791 96, 557, 96, 98, 720, 556, 98, 96, 96, 98,
792 96, 558, 720, 98, 98, 96, 98, 559, 560, 96,
794 562, 98, 98, 720, 98, 561, 563, 720, 96, 98,
795 564, 96, 720, 98, 96, 96, 96, 565, 720, 96,
796 96, 568, 98, 569, 96, 98, 566, 96, 98, 98,
797 98, 96, 567, 98, 98, 96, 720, 96, 98, 720,
798 96, 98, 96, 96, 96, 98, 96, 720, 96, 98,
799 572, 98, 570, 573, 98, 96, 98, 98, 98, 96,
800 98, 571, 98, 96, 720, 96, 577, 96, 720, 98,
801 96, 720, 575, 98, 96, 576, 574, 98, 580, 98,
802 96, 98, 581, 96, 98, 578, 96, 582, 98, 579,
803 96, 96, 583, 96, 98, 96, 720, 98, 720, 96,
805 98, 585, 720, 96, 98, 98, 96, 98, 584, 98,
806 590, 588, 589, 98, 96, 587, 592, 98, 96, 586,
807 98, 96, 591, 96, 96, 96, 96, 720, 98, 96,
808 96, 96, 98, 96, 593, 98, 96, 98, 98, 98,
809 98, 594, 596, 98, 98, 98, 595, 98, 720, 96,
810 98, 96, 96, 96, 720, 720, 598, 601, 96, 96,
811 720, 597, 603, 98, 96, 98, 98, 98, 599, 608,
812 720, 607, 98, 98, 602, 606, 96, 600, 98, 96,
813 604, 720, 96, 96, 605, 96, 96, 96, 96, 96,
814 98, 96, 96, 98, 96, 609, 98, 98, 96, 98,
816 98, 98, 98, 98, 611, 98, 98, 610, 98, 720,
817 96, 720, 98, 720, 720, 96, 96, 612, 614, 96,
818 96, 616, 96, 619, 98, 617, 720, 621, 622, 98,
819 98, 96, 96, 98, 98, 623, 98, 96, 615, 613,
820 618, 96, 96, 620, 96, 98, 98, 720, 624, 720,
821 720, 98, 626, 627, 96, 98, 98, 96, 98, 96,
822 96, 629, 96, 630, 628, 625, 96, 96, 98, 720,
823 96, 98, 96, 98, 98, 96, 98, 640, 96, 720,
824 98, 98, 96, 631, 98, 633, 98, 720, 632, 98,
825 96, 96, 98, 634, 96, 96, 98, 720, 96, 96,
827 96, 636, 635, 637, 98, 98, 96, 96, 98, 98,
828 96, 638, 98, 98, 98, 720, 720, 720, 96, 96,
829 98, 98, 96, 96, 98, 96, 642, 96, 641, 639,
830 643, 644, 98, 98, 645, 96, 98, 98, 96, 98,
831 96, 98, 96, 96, 720, 96, 720, 96, 720, 98,
832 647, 96, 98, 96, 98, 720, 98, 98, 648, 98,
833 650, 98, 646, 720, 653, 98, 720, 98, 96, 649,
834 96, 96, 96, 720, 651, 654, 652, 655, 656, 96,
835 657, 660, 98, 661, 98, 98, 98, 662, 96, 96,
836 96, 96, 96, 98, 96, 96, 96, 96, 96, 96,
838 96, 96, 98, 98, 98, 98, 98, 96, 98, 98,
839 98, 98, 98, 98, 98, 98, 663, 720, 720, 720,
840 664, 98, 96, 96, 665, 96, 96, 720, 96, 667,
841 674, 672, 666, 675, 670, 673, 98, 98, 678, 98,
842 98, 677, 98, 668, 96, 669, 96, 671, 720, 96,
843 96, 96, 720, 96, 676, 96, 96, 96, 98, 96,
844 98, 96, 679, 98, 98, 98, 681, 98, 96, 98,
845 98, 98, 680, 98, 96, 98, 96, 96, 96, 96,
846 96, 96, 98, 720, 96, 96, 683, 682, 98, 685,
847 98, 98, 98, 98, 98, 98, 96, 684, 98, 98,
849 96, 96, 689, 96, 686, 687, 96, 720, 96, 96,
850 98, 96, 96, 690, 98, 98, 688, 98, 720, 692,
851 98, 691, 98, 98, 96, 98, 98, 697, 693, 96,
852 720, 695, 694, 96, 696, 720, 96, 96, 98, 698,
853 720, 96, 96, 98, 702, 700, 720, 98, 720, 699,
854 98, 98, 96, 96, 701, 98, 98, 96, 720, 96,
855 704, 96, 705, 703, 720, 96, 98, 98, 707, 720,
856 96, 98, 706, 98, 96, 98, 96, 96, 710, 98,
857 96, 720, 720, 711, 98, 708, 709, 720, 98, 720,
858 98, 98, 720, 720, 98, 720, 720, 720, 720, 720,
860 714, 720, 720, 720, 720, 716, 720, 720, 712, 720,
861 713, 720, 718, 719, 720, 720, 715, 720, 720, 720,
862 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
863 717, 61, 61, 61, 61, 61, 61, 61, 61, 68,
864 68, 720, 68, 68, 68, 68, 68, 97, 720, 720,
865 720, 97, 97, 97, 168, 168, 168, 169, 169, 174,
866 174, 174, 174, 174, 174, 174, 174, 259, 259, 659,
867 720, 659, 659, 659, 3, 720, 720, 720, 720, 720,
868 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
869 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
871 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
872 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
873 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
874 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
875 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
879 static yyconst short int yy_chk[2652] =
881 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
882 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
883 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
884 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
885 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
886 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
887 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
888 1, 1, 1, 1, 1, 1, 10, 13, 13, 14,
889 19, 659, 22, 21, 22, 22, 22, 22, 30, 30,
890 23, 32, 19, 21, 21, 23, 14, 40, 33, 25,
892 25, 25, 25, 23, 26, 32, 28, 61, 26, 640,
893 176, 40, 33, 10, 24, 57, 24, 24, 24, 24,
894 25, 28, 34, 28, 28, 39, 34, 34, 101, 24,
895 98, 47, 24, 24, 24, 96, 24, 24, 95, 39,
896 34, 43, 38, 91, 61, 47, 49, 24, 25, 33,
897 40, 24, 24, 41, 24, 43, 38, 42, 44, 97,
898 49, 57, 24, 38, 38, 24, 45, 41, 38, 85,
899 46, 42, 44, 97, 48, 39, 69, 76, 38, 39,
900 45, 39, 47, 38, 46, 69, 63, 38, 48, 43,
901 41, 43, 100, 68, 42, 42, 38, 41, 42, 49,
903 43, 41, 49, 44, 41, 42, 44, 45, 42, 44,
904 37, 48, 46, 50, 51, 48, 52, 45, 53, 46,
905 46, 29, 54, 99, 46, 68, 18, 50, 51, 100,
906 52, 107, 53, 83, 55, 83, 54, 99, 83, 83,
907 83, 83, 105, 103, 15, 107, 9, 104, 55, 174,
908 108, 109, 110, 3, 50, 51, 105, 103, 51, 51,
909 52, 104, 0, 53, 108, 109, 110, 54, 53, 51,
910 51, 55, 51, 54, 99, 111, 52, 0, 55, 77,
911 77, 77, 77, 84, 84, 84, 174, 84, 0, 111,
912 107, 105, 77, 77, 103, 77, 77, 77, 104, 0,
914 108, 0, 84, 84, 0, 84, 109, 0, 112, 0,
915 77, 77, 110, 84, 77, 77, 114, 77, 81, 81,
916 81, 81, 112, 113, 111, 118, 119, 0, 115, 116,
917 114, 81, 81, 117, 81, 81, 81, 113, 125, 118,
918 119, 121, 115, 116, 120, 0, 0, 117, 0, 81,
919 81, 0, 125, 81, 81, 121, 81, 82, 120, 82,
920 82, 82, 82, 112, 113, 115, 116, 0, 119, 0,
921 114, 119, 82, 122, 123, 82, 82, 82, 0, 82,
922 118, 119, 124, 117, 126, 127, 120, 122, 123, 121,
923 82, 0, 120, 125, 82, 82, 124, 82, 126, 127,
925 128, 129, 130, 131, 135, 82, 106, 0, 137, 141,
926 132, 134, 0, 169, 128, 129, 130, 131, 135, 133,
927 106, 136, 137, 141, 132, 134, 138, 169, 123, 122,
928 0, 0, 0, 133, 139, 136, 127, 126, 124, 0,
929 138, 140, 0, 106, 106, 106, 106, 106, 139, 0,
930 0, 106, 0, 128, 135, 140, 129, 130, 133, 106,
931 106, 106, 132, 106, 141, 134, 137, 133, 142, 143,
932 136, 138, 139, 144, 133, 146, 145, 138, 147, 148,
933 150, 0, 142, 143, 140, 149, 151, 144, 152, 146,
934 145, 140, 147, 148, 150, 140, 140, 153, 0, 149,
936 151, 154, 152, 165, 165, 165, 165, 194, 177, 0,
937 144, 153, 143, 144, 145, 154, 0, 0, 214, 142,
938 146, 194, 177, 147, 144, 150, 144, 188, 0, 0,
939 143, 148, 214, 152, 150, 149, 152, 0, 0, 151,
940 0, 188, 159, 173, 159, 0, 154, 159, 159, 159,
941 159, 160, 153, 160, 160, 160, 162, 173, 162, 177,
942 178, 162, 162, 162, 162, 0, 164, 164, 164, 160,
943 164, 188, 160, 160, 178, 160, 161, 161, 161, 161,
944 163, 183, 163, 163, 163, 164, 164, 188, 164, 161,
945 161, 173, 161, 161, 161, 183, 164, 0, 163, 179,
947 0, 163, 163, 0, 163, 0, 180, 161, 161, 178,
948 181, 161, 161, 179, 161, 166, 166, 166, 166, 168,
949 180, 184, 183, 0, 181, 0, 0, 0, 182, 166,
950 186, 166, 166, 166, 185, 184, 179, 168, 168, 168,
951 168, 168, 182, 0, 186, 0, 0, 166, 185, 0,
952 166, 166, 0, 166, 180, 187, 168, 168, 189, 168,
953 180, 180, 190, 168, 191, 0, 181, 168, 182, 187,
954 0, 186, 189, 192, 195, 193, 190, 196, 191, 182,
955 184, 197, 198, 199, 185, 200, 0, 192, 195, 193,
956 201, 196, 203, 202, 204, 197, 198, 199, 0, 200,
958 187, 0, 206, 0, 201, 207, 203, 202, 204, 189,
959 187, 193, 191, 192, 196, 205, 206, 190, 208, 207,
960 209, 0, 197, 0, 0, 195, 0, 201, 0, 205,
961 210, 204, 208, 211, 209, 198, 0, 199, 202, 200,
962 200, 212, 203, 206, 210, 215, 207, 211, 213, 216,
963 207, 217, 205, 218, 219, 212, 208, 220, 222, 215,
964 205, 209, 213, 216, 221, 217, 223, 218, 219, 0,
965 220, 220, 222, 224, 211, 225, 226, 227, 221, 210,
966 223, 228, 212, 224, 230, 213, 0, 224, 0, 225,
967 226, 227, 0, 0, 229, 228, 231, 232, 230, 219,
969 216, 222, 217, 233, 234, 221, 218, 223, 229, 235,
970 231, 232, 0, 236, 0, 238, 237, 233, 234, 239,
971 240, 0, 241, 235, 242, 227, 228, 236, 226, 238,
972 237, 243, 225, 239, 240, 229, 241, 244, 242, 230,
973 0, 0, 0, 245, 246, 243, 247, 248, 249, 250,
974 235, 244, 231, 0, 234, 237, 233, 245, 246, 240,
975 247, 248, 249, 250, 0, 251, 0, 238, 236, 0,
976 263, 0, 243, 0, 0, 239, 264, 241, 242, 251,
977 252, 252, 252, 252, 263, 249, 267, 248, 250, 246,
978 264, 266, 244, 265, 245, 253, 253, 253, 253, 0,
980 267, 247, 0, 0, 254, 266, 254, 265, 253, 254,
981 254, 254, 254, 251, 255, 0, 255, 255, 255, 256,
982 256, 256, 256, 0, 264, 0, 253, 257, 257, 257,
983 257, 267, 255, 0, 266, 255, 255, 270, 255, 258,
984 257, 258, 258, 258, 259, 265, 259, 259, 259, 259,
985 277, 270, 0, 283, 0, 269, 272, 258, 257, 0,
986 258, 258, 259, 258, 277, 259, 259, 283, 259, 269,
987 272, 0, 259, 260, 260, 260, 260, 261, 261, 261,
988 268, 261, 270, 260, 260, 260, 260, 260, 0, 260,
989 260, 260, 260, 277, 268, 0, 261, 261, 283, 261,
991 260, 260, 260, 260, 260, 260, 272, 261, 260, 260,
992 269, 260, 262, 271, 262, 260, 273, 262, 262, 262,
993 262, 274, 275, 278, 276, 281, 279, 271, 280, 268,
994 273, 282, 284, 285, 286, 274, 275, 278, 276, 281,
995 279, 0, 280, 287, 288, 282, 284, 285, 286, 0,
996 289, 290, 291, 292, 271, 273, 0, 287, 288, 0,
997 294, 293, 0, 278, 289, 290, 291, 292, 295, 297,
998 275, 284, 282, 281, 294, 293, 274, 275, 276, 279,
999 280, 296, 295, 297, 285, 0, 298, 0, 299, 300,
1000 287, 0, 301, 0, 0, 296, 302, 303, 292, 293,
1002 298, 294, 299, 300, 304, 290, 301, 291, 295, 305,
1003 302, 303, 306, 307, 308, 310, 309, 311, 304, 296,
1004 312, 313, 0, 305, 314, 297, 306, 307, 308, 310,
1005 309, 311, 312, 315, 312, 313, 298, 316, 314, 318,
1006 317, 301, 0, 299, 302, 319, 320, 315, 300, 321,
1007 322, 316, 323, 318, 317, 0, 310, 324, 325, 319,
1008 320, 327, 305, 321, 322, 326, 323, 311, 307, 309,
1009 306, 324, 325, 0, 328, 327, 313, 317, 329, 326,
1010 318, 330, 331, 332, 333, 0, 0, 315, 328, 0,
1011 319, 0, 329, 0, 334, 330, 331, 332, 333, 325,
1013 320, 335, 0, 322, 336, 323, 327, 321, 334, 0,
1014 337, 328, 324, 338, 339, 335, 326, 340, 336, 341,
1015 330, 342, 332, 333, 337, 0, 0, 338, 339, 0,
1016 331, 340, 0, 341, 334, 342, 329, 343, 343, 343,
1017 343, 0, 344, 344, 344, 344, 346, 354, 346, 346,
1018 346, 355, 356, 337, 336, 344, 352, 352, 352, 352,
1019 0, 354, 342, 341, 346, 355, 356, 346, 346, 338,
1020 346, 0, 340, 344, 347, 357, 347, 0, 0, 347,
1021 347, 347, 347, 348, 360, 348, 348, 348, 348, 357,
1022 0, 350, 358, 350, 350, 350, 359, 356, 360, 355,
1024 0, 348, 0, 361, 348, 348, 358, 348, 0, 350,
1025 359, 348, 350, 350, 351, 350, 351, 361, 357, 351,
1026 351, 351, 351, 353, 353, 353, 353, 0, 358, 362,
1027 363, 364, 360, 366, 365, 0, 367, 353, 368, 353,
1028 353, 353, 361, 362, 363, 364, 366, 366, 365, 359,
1029 367, 369, 368, 370, 371, 353, 372, 373, 353, 353,
1030 374, 353, 375, 376, 0, 369, 377, 370, 371, 0,
1031 372, 373, 364, 378, 374, 379, 375, 376, 363, 365,
1032 377, 0, 380, 362, 381, 0, 382, 378, 368, 379,
1033 369, 367, 383, 372, 370, 371, 380, 384, 381, 375,
1035 382, 376, 385, 386, 388, 387, 383, 373, 389, 378,
1036 374, 384, 390, 391, 392, 393, 385, 386, 388, 387,
1037 0, 381, 389, 394, 395, 397, 390, 391, 392, 393,
1038 0, 0, 380, 383, 382, 396, 0, 394, 395, 397,
1039 398, 399, 0, 400, 386, 384, 387, 401, 402, 396,
1040 385, 392, 0, 390, 398, 399, 388, 400, 403, 404,
1041 389, 401, 402, 391, 0, 405, 395, 406, 407, 404,
1042 409, 408, 403, 404, 411, 410, 396, 413, 394, 405,
1043 415, 406, 407, 412, 409, 408, 0, 402, 411, 410,
1044 414, 413, 416, 399, 415, 417, 0, 412, 400, 0,
1046 401, 418, 419, 0, 414, 420, 416, 0, 0, 417,
1047 405, 408, 409, 403, 410, 418, 419, 406, 0, 420,
1048 412, 421, 411, 422, 415, 423, 0, 414, 0, 0,
1049 0, 417, 413, 0, 0, 421, 417, 422, 0, 423,
1050 416, 0, 420, 424, 424, 424, 424, 429, 429, 429,
1051 429, 433, 419, 427, 0, 427, 427, 427, 446, 432,
1052 422, 0, 0, 0, 437, 433, 421, 425, 425, 425,
1053 425, 427, 446, 432, 427, 427, 434, 427, 437, 0,
1054 0, 425, 435, 425, 425, 425, 428, 0, 428, 0,
1055 434, 428, 428, 428, 428, 446, 435, 0, 0, 425,
1057 432, 433, 425, 425, 0, 425, 430, 430, 430, 430,
1058 431, 436, 431, 431, 431, 438, 439, 0, 435, 437,
1059 430, 440, 430, 430, 430, 436, 434, 0, 431, 438,
1060 439, 431, 431, 441, 431, 440, 442, 443, 430, 444,
1061 445, 430, 430, 447, 430, 448, 449, 441, 450, 443,
1062 442, 443, 451, 444, 445, 452, 436, 447, 453, 448,
1063 449, 0, 450, 438, 455, 454, 451, 0, 456, 452,
1064 457, 439, 453, 458, 460, 440, 461, 459, 455, 454,
1065 447, 445, 456, 441, 457, 462, 442, 458, 460, 0,
1066 461, 459, 444, 451, 463, 464, 448, 465, 466, 462,
1068 467, 449, 450, 452, 453, 454, 0, 454, 463, 464,
1069 457, 465, 466, 468, 467, 454, 469, 454, 459, 470,
1070 455, 471, 456, 472, 473, 474, 475, 468, 476, 460,
1071 469, 0, 458, 470, 477, 471, 478, 472, 473, 474,
1072 475, 0, 476, 479, 0, 463, 464, 480, 477, 481,
1073 478, 482, 483, 0, 484, 467, 485, 479, 471, 0,
1074 486, 480, 488, 481, 472, 482, 483, 475, 484, 487,
1075 485, 490, 489, 477, 486, 491, 488, 492, 493, 473,
1076 0, 0, 0, 487, 497, 490, 489, 496, 498, 491,
1077 499, 492, 493, 494, 494, 494, 494, 500, 497, 482,
1079 0, 496, 498, 501, 499, 502, 487, 483, 503, 0,
1080 485, 500, 490, 488, 489, 0, 493, 501, 504, 502,
1081 505, 497, 503, 491, 506, 492, 495, 495, 495, 495,
1082 0, 507, 504, 508, 505, 500, 509, 510, 506, 498,
1083 495, 511, 495, 495, 495, 507, 496, 508, 501, 512,
1084 509, 510, 513, 514, 515, 511, 0, 516, 495, 517,
1085 0, 495, 495, 512, 495, 506, 513, 514, 515, 518,
1086 504, 516, 519, 517, 505, 520, 509, 0, 508, 521,
1087 522, 511, 523, 518, 0, 510, 519, 524, 525, 520,
1088 526, 512, 0, 521, 522, 527, 523, 513, 514, 528,
1090 517, 524, 525, 0, 526, 516, 518, 0, 529, 527,
1091 518, 530, 0, 528, 531, 532, 533, 519, 0, 534,
1092 535, 522, 529, 523, 536, 530, 520, 537, 531, 532,
1093 533, 538, 521, 534, 535, 539, 0, 541, 536, 0,
1094 540, 537, 542, 543, 545, 538, 544, 0, 546, 539,
1095 530, 541, 528, 531, 540, 547, 542, 543, 545, 548,
1096 544, 529, 546, 549, 0, 550, 537, 552, 0, 547,
1097 551, 0, 534, 548, 553, 535, 533, 549, 540, 550,
1098 555, 552, 542, 554, 551, 538, 556, 544, 553, 539,
1099 557, 558, 545, 559, 555, 560, 0, 554, 0, 561,
1101 556, 548, 0, 562, 557, 558, 563, 559, 547, 560,
1102 553, 551, 552, 561, 564, 550, 555, 562, 565, 549,
1103 563, 566, 554, 567, 568, 570, 569, 0, 564, 571,
1104 573, 572, 565, 574, 556, 566, 575, 567, 568, 570,
1105 569, 559, 562, 571, 573, 572, 560, 574, 0, 576,
1106 575, 577, 578, 579, 0, 0, 564, 566, 580, 581,
1107 0, 563, 569, 576, 582, 577, 578, 579, 564, 574,
1108 0, 573, 580, 581, 567, 572, 583, 565, 582, 584,
1109 570, 0, 585, 586, 571, 587, 588, 590, 591, 589,
1110 583, 592, 593, 584, 594, 577, 585, 586, 595, 587,
1112 588, 590, 591, 589, 580, 592, 593, 579, 594, 0,
1113 596, 0, 595, 0, 0, 597, 598, 583, 585, 599,
1114 600, 587, 601, 590, 596, 588, 0, 592, 593, 597,
1115 598, 602, 604, 599, 600, 594, 601, 603, 586, 584,
1116 589, 605, 607, 591, 606, 602, 604, 0, 595, 0,
1117 0, 603, 597, 598, 608, 605, 607, 609, 606, 610,
1118 611, 600, 612, 601, 599, 596, 613, 614, 608, 0,
1119 615, 609, 616, 610, 611, 617, 612, 617, 618, 0,
1120 613, 614, 619, 602, 615, 606, 616, 0, 603, 617,
1121 620, 621, 618, 608, 622, 623, 619, 0, 624, 625,
1123 626, 611, 609, 614, 620, 621, 627, 628, 622, 623,
1124 630, 615, 624, 625, 626, 0, 0, 0, 629, 631,
1125 627, 628, 632, 633, 630, 635, 620, 634, 618, 616,
1126 622, 623, 629, 631, 624, 637, 632, 633, 636, 635,
1127 643, 634, 638, 639, 0, 641, 0, 642, 0, 637,
1128 628, 644, 636, 645, 643, 0, 638, 639, 629, 641,
1129 631, 642, 627, 0, 634, 644, 0, 645, 646, 630,
1130 647, 648, 649, 0, 632, 635, 633, 636, 638, 650,
1131 639, 641, 646, 642, 647, 648, 649, 644, 651, 652,
1132 653, 654, 655, 650, 657, 656, 661, 660, 662, 663,
1134 664, 665, 651, 652, 653, 654, 655, 666, 657, 656,
1135 661, 660, 662, 663, 664, 665, 646, 0, 0, 0,
1136 647, 666, 667, 668, 649, 669, 670, 0, 671, 651,
1137 657, 656, 650, 660, 654, 656, 667, 668, 665, 669,
1138 670, 664, 671, 652, 672, 653, 673, 655, 0, 674,
1139 675, 677, 0, 676, 663, 678, 679, 680, 672, 681,
1140 673, 682, 666, 674, 675, 677, 669, 676, 683, 678,
1141 679, 680, 667, 681, 684, 682, 685, 686, 687, 688,
1142 689, 690, 683, 0, 691, 692, 674, 673, 684, 676,
1143 685, 686, 687, 688, 689, 690, 693, 674, 691, 692,
1145 694, 695, 681, 696, 677, 678, 697, 0, 698, 699,
1146 693, 700, 701, 682, 694, 695, 679, 696, 0, 684,
1147 697, 683, 698, 699, 703, 700, 701, 691, 685, 702,
1148 0, 689, 687, 704, 690, 0, 705, 706, 703, 692,
1149 0, 707, 708, 702, 696, 694, 0, 704, 0, 693,
1150 705, 706, 709, 710, 695, 707, 708, 711, 0, 712,
1151 699, 713, 700, 698, 0, 714, 709, 710, 702, 0,
1152 715, 711, 701, 712, 717, 713, 716, 718, 707, 714,
1153 719, 0, 0, 708, 715, 704, 705, 0, 717, 0,
1154 716, 718, 0, 0, 719, 0, 0, 0, 0, 0,
1156 712, 0, 0, 0, 0, 714, 0, 0, 710, 0,
1157 711, 0, 716, 718, 0, 0, 713, 0, 0, 0,
1158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1159 715, 721, 721, 721, 721, 721, 721, 721, 721, 722,
1160 722, 0, 722, 722, 722, 722, 722, 723, 0, 0,
1161 0, 723, 723, 723, 724, 724, 724, 725, 725, 726,
1162 726, 726, 726, 726, 726, 726, 726, 727, 727, 728,
1163 0, 728, 728, 728, 720, 720, 720, 720, 720, 720,
1164 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
1165 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
1167 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
1168 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
1169 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
1170 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
1171 720, 720, 720, 720, 720, 720, 720, 720, 720, 720,
1175 static yy_state_type yy_last_accepting_state;
1176 static char *yy_last_accepting_cpos;
1178 /* The intent behind this definition is that it'll catch
1179 * any uses of REJECT which flex missed.
1181 #define REJECT reject_used_but_not_detected
1182 #define yymore() yymore_used_but_not_detected
1183 #define YY_MORE_ADJ 0
1184 #define YY_RESTORE_YY_MORE_OFFSET
1188 #define YY_NO_UNPUT 1
1191 #define YYLTYPE Location
1192 #define YY_NEVER_INTERACTIVE 1 // Avoid calling isatty on eC File object
1194 #include "grammar.h"
1197 public void SetEchoOn(bool b) { echoOn = b; }
1199 extern YYLTYPE type_yylloc;
1200 extern YYLTYPE expression_yylloc;
1202 extern File fileInput;
1208 yylloc.end.charPos += yyleng;
1209 yylloc.end.pos += yyleng;
1210 type_yylloc.end.charPos += yyleng;
1211 type_yylloc.end.pos += yyleng;
1212 expression_yylloc.end.charPos += yyleng;
1213 expression_yylloc.end.pos += yyleng;
1216 #define YY_USER_ACTION \
1220 yylloc.end.charPos += yyleng;
1221 yylloc.end.pos += yyleng;
1224 #define YY_INPUT(buf,result,max_size) \
1225 result = fileInput.Read(buf, 1, max_size) \
1227 YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
1228 File fileStack[MAX_INCLUDE_DEPTH];
1229 char sourceFileStack[MAX_INCLUDE_DEPTH][MAX_LOCATION];
1230 public void SetSomeSourceFileStack(const char * fileName, int index) { strcpy(sourceFileStack[index], fileName); }
1231 YYLTYPE locStack[MAX_INCLUDE_DEPTH];
1232 AccessMode declModeStack[MAX_INCLUDE_DEPTH];
1233 int include_stack_ptr = 0;
1238 #line 1239 "lexer.ec"
1240 /* Macros after this point can all be overridden by user definitions in
1244 #ifndef YY_SKIP_YYWRAP
1246 extern "C" int yywrap YY_PROTO(( void ));
1248 extern int yywrap YY_PROTO(( void ));
1253 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1257 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1260 #ifdef YY_NEED_STRLEN
1261 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1266 static int yyinput YY_PROTO(( void ));
1268 static int input YY_PROTO(( void ));
1273 static int yy_start_stack_ptr = 0;
1274 static int yy_start_stack_depth = 0;
1275 static int *yy_start_stack = 0;
1276 #ifndef YY_NO_PUSH_STATE
1277 static void yy_push_state YY_PROTO(( int new_state ));
1279 #ifndef YY_NO_POP_STATE
1280 static void yy_pop_state YY_PROTO(( void ));
1282 #ifndef YY_NO_TOP_STATE
1283 static int yy_top_state YY_PROTO(( void ));
1287 #define YY_NO_PUSH_STATE 1
1288 #define YY_NO_POP_STATE 1
1289 #define YY_NO_TOP_STATE 1
1292 #ifdef YY_MALLOC_DECL
1300 /* Just try to get by without declaring the routines. This will fail
1301 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1302 * or sizeof(void*) != sizeof(int).
1307 /* Amount of stuff to slurp up with each read. */
1308 #ifndef YY_READ_BUF_SIZE
1309 #define YY_READ_BUF_SIZE 8192
1312 /* Copy whatever the last rule matched to the standard output. */
1315 /* This used to be an fputs(), but since the string might contain NUL's,
1316 * we now use fwrite().
1318 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1321 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1322 * is returned in "result".
1325 #define YY_INPUT(buf,result,max_size) \
1326 if ( yy_current_buffer->yy_is_interactive ) \
1329 for ( n = 0; n < max_size && \
1330 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1331 buf[n] = (char) c; \
1333 buf[n++] = (char) c; \
1334 if ( c == EOF && ferror( yyin ) ) \
1335 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1338 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1339 && ferror( yyin ) ) \
1340 YY_FATAL_ERROR( "input in flex scanner failed" );
1343 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1344 * we don't want an extra ';' after the "return" because that will cause
1345 * some compilers to complain about unreachable statements.
1348 #define yyterminate() return YY_NULL
1351 /* Number of entries by which start-condition stack grows. */
1352 #ifndef YY_START_STACK_INCR
1353 #define YY_START_STACK_INCR 25
1356 /* Report a fatal error. */
1357 #ifndef YY_FATAL_ERROR
1358 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1361 /* Default declaration of generated scanner - a define so the user can
1362 * easily add parameters.
1365 #define YY_DECL int yylex YY_PROTO(( void ))
1368 /* Code executed at the beginning of each rule, after yytext and yyleng
1371 #ifndef YY_USER_ACTION
1372 #define YY_USER_ACTION
1375 /* Code executed at the end of each rule. */
1377 #define YY_BREAK break;
1380 #define YY_RULE_SETUP \
1385 register yy_state_type yy_current_state;
1386 register char *yy_cp, *yy_bp;
1387 register int yy_act;
1393 yylloc.start = yylloc.end;
1394 type_yylloc.start = type_yylloc.end;
1395 expression_yylloc.start = expression_yylloc.end;
1398 #line 1399 "lexer.ec"
1409 yy_start = 1; /* first start state */
1417 if ( ! yy_current_buffer )
1419 yy_create_buffer( yyin, YY_BUF_SIZE );
1421 yy_load_buffer_state();
1424 while ( 1 ) /* loops until end-of-file is reached */
1428 /* Support of yytext. */
1429 *yy_cp = yy_hold_char;
1431 /* yy_bp points to the position in yy_ch_buf of the start of
1436 yy_current_state = yy_start;
1440 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1441 if ( yy_accept[yy_current_state] )
1443 yy_last_accepting_state = yy_current_state;
1444 yy_last_accepting_cpos = yy_cp;
1446 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1448 yy_current_state = (int) yy_def[yy_current_state];
1449 if ( yy_current_state >= 721 )
1450 yy_c = yy_meta[(unsigned int) yy_c];
1452 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1455 while ( yy_base[yy_current_state] != 2575 );
1458 yy_act = yy_accept[yy_current_state];
1460 { /* have to back up */
1461 yy_cp = yy_last_accepting_cpos;
1462 yy_current_state = yy_last_accepting_state;
1463 yy_act = yy_accept[yy_current_state];
1466 YY_DO_BEFORE_ACTION;
1469 do_action: /* This label is used only to access EOF actions. */
1473 { /* beginning of action switch */
1474 case 0: /* must back up */
1475 /* undo the effects of YY_DO_BEFORE_ACTION */
1476 *yy_cp = yy_hold_char;
1477 yy_cp = yy_last_accepting_cpos;
1478 yy_current_state = yy_last_accepting_state;
1479 goto yy_find_action;
1524 { return(CONTINUE); }
1529 { return(DEFAULT); }
1586 /* "uint16" { return(UINT16); } */
1587 /* "uint32" { return(UINT32); } */
1588 /* "bool" { return(BOOL_TOKEN); } */
1597 { return(REGISTER); }
1632 { return(ALIGNOF); }
1657 { return(TYPEDEF); }
1667 { return(UNSIGNED); }
1677 { return(VOLATILE); }
1682 { return(VOLATILE); }
1687 { return(VOLATILE); }
1697 { return(PROPERTY); }
1702 { return(SETPROP); } // TODO: Don't make this a keyword...
1707 { return(GETPROP); } // TODO: Don't make this a keyword...
1712 { return(ISPROPSET); } // TODO: Don't make this a keyword...
1722 { return(THISCLASS); }
1727 { return(VIRTUAL); }
1797 { return(_COMPLEX); }
1802 { return(_IMAGINARY); }
1807 { return(EXT_DECL); }
1809 /* "__attribute__".?"(("({D}|{L})*"))" { return(EXT_ATTRIB); } */
1810 /* DID I MEAN? "__attribute__"" "*"(("" "*({D}|{L})*" "*("("({D}|{L})*(" "*","" "*({D}|{L})*)*" "*")")?" "*"))" { return(EXT_ATTRIB); } */
1812 "__attribute_deprecated__"(" "*)"(("(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*)(","(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*))*"))" { return(EXT_ATTRIB); }
1813 "__attribute__" (" "*)"(("(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*)(","(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*))*"))" { return(EXT_ATTRIB); }
1814 "__attribute" (" "*)"(("(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*)(","(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*))*"))" { return(EXT_ATTRIB); }
1817 [__attribute__] [spaces]
1819 [digits | letters] [spaces]
1820 ( [(] [digits or letters or "] ( [spaces] [,] [spaces] [digits or letters or "] )* [spaces] [)] )?
1822 ( [,] [spaces] [digits or letters] [spaces]
1823 ( [(] [digits or letters or "]
1824 ( [spaces] [,] [spaces] [digits or letters or "] )* [spaces] [)]
1829 /* "__attribute__".?"((".?({D}|{L})*.?("("({D}|{L})*(.?",".?({D}|{L})*)*.?")")?.?"))" { return(EXT_ATTRIB); } */
1830 /* "__attribute".?"((".?({D}|{L})*.?("("({D}|{L})*(.?",".?({D}|{L})*)*.?")")?.?"))" { return(EXT_ATTRIB); }*/
1834 { return ATTRIB_DEP; }
1844 { return __ATTRIB; }
1849 { return(EXT_STORAGE); }
1854 { return(EXT_STORAGE); }
1859 { return(EXT_STORAGE); }
1864 { return(EXT_STORAGE); }
1869 { return(EXT_STORAGE); }
1874 { return(EXT_STORAGE); }
1879 { return(EXT_STORAGE); }
1884 { return(EXT_DECL); }
1889 { return(EXT_DECL); }
1894 { return(EXT_DECL); }
1899 { return(EXT_DECL); }
1904 { return(EXT_DECL); }
1909 { return(EXT_DECL); }
1914 { return(CONST /*EXT_DECL*/); }
1919 { return(EXT_DECL); }
1929 { return(PRIVATE); }
1934 { return(TYPED_OBJECT); }
1939 { return(ANY_OBJECT); }
1944 { return(_INCREF); }
1949 { return(EXTENSION); }
1954 { return(EXTENSION); }
1984 { return(STOPWATCHING); }
1989 { return(FIREWATCHERS); }
1994 { return(WATCHABLE); }
1999 { return(CLASS_DESIGNER); }
2004 { return(CLASS_NO_EXPANSION); }
2009 { return(CLASS_FIXED); }
2014 { return(CLASS_DEFAULT_PROPERTY); }
2019 { return(PROPERTY_CATEGORY); }
2024 { return(CLASS_DATA); }
2029 { return(CLASS_PROPERTY); }
2034 { return(SUBCLASS); }
2039 { return(NAMESPACE); }
2044 { return(DBTABLE); }
2049 { return(DBFIELD); }
2054 { return(DBINDEX); }
2059 { return(DATABASE_OPEN); }
2064 { return(check_type()); } // {L}({L}|{D})* { return(check_type()); } // ("::"|(({IDENT}"::")*)){IDENT} { return(check_type()); } // {L}({L}|{D})* { return(check_type()); }
2069 { return(CONSTANT); }
2074 { return(CONSTANT); }
2079 { return(CONSTANT); }
2084 { return(CONSTANT); }
2089 { return(CONSTANT); }
2094 { return(CONSTANT); }
2099 { return(CONSTANT); }
2104 { return(CONSTANT); }
2109 { return(CONSTANT); }
2114 { return(CONSTANT); }
2119 { return(STRING_LITERAL); }
2124 { return(WIDE_STRING_LITERAL); }
2129 { return(ELLIPSIS); }
2134 { return(RIGHT_ASSIGN); }
2139 { return(LEFT_ASSIGN); }
2144 { return(ADD_ASSIGN); }
2149 { return(SUB_ASSIGN); }
2154 { return(MUL_ASSIGN); }
2159 { return(DIV_ASSIGN); }
2164 { return(MOD_ASSIGN); }
2169 { return(AND_ASSIGN); }
2174 { return(XOR_ASSIGN); }
2179 { return(OR_ASSIGN); }
2184 { return(RIGHT_OP); }
2189 { return(LEFT_OP); }
2236 /* "::" { return(CLASS_OP); } */
2362 case YY_STATE_EOF(INITIAL):
2365 while(include_stack_ptr && !fileStack[include_stack_ptr-1])
2367 --include_stack_ptr;
2368 defaultDeclMode = declMode = structDeclMode = declModeStack[include_stack_ptr];
2371 if ( --include_stack_ptr < 0 )
2373 include_stack_ptr = 0;
2379 yy_delete_buffer( YY_CURRENT_BUFFER );
2380 fileInput = fileStack[include_stack_ptr];
2381 yylloc = locStack[include_stack_ptr];
2382 type_yylloc = locStack[include_stack_ptr];
2383 expression_yylloc = locStack[include_stack_ptr];
2384 yy_switch_to_buffer(include_stack[include_stack_ptr] );
2385 defaultDeclMode = declMode = structDeclMode = declModeStack[include_stack_ptr];
2392 { yylloc.start = yylloc.end; type_yylloc.start = type_yylloc.end; expression_yylloc.start = expression_yylloc.end;}
2398 yylloc.end.charPos = 1; yylloc.end.line += yyleng; yylloc.start = yylloc.end;
2399 type_yylloc.end.charPos = 1; type_yylloc.end.line += yyleng; type_yylloc.start = type_yylloc.end;
2400 expression_yylloc.end.charPos = 1; expression_yylloc.end.line += yyleng; expression_yylloc.start = expression_yylloc.end;
2407 yylloc.start.charPos++ /*= 3 - (yylloc.start.col % 3)*/; yylloc.end.charPos = yylloc.start.charPos; yylloc.start.pos = yylloc.end.pos;
2408 expression_yylloc.start.charPos++ /*= 3 - (expression_yylloc.start.col % 3)*/; expression_yylloc.end.charPos = expression_yylloc.start.charPos; expression_yylloc.start.pos = expression_yylloc.end.pos;
2409 type_yylloc.start.charPos++ /*= 3 - (type_yylloc.start.col % 3)*/; type_yylloc.end.charPos = type_yylloc.start.charPos; type_yylloc.start.pos = type_yylloc.end.pos;
2415 { yylloc.start = yylloc.end; expression_yylloc.start = expression_yylloc.end; type_yylloc.start = type_yylloc.end; }
2421 yylloc.start = yylloc.end; expression_yylloc.start = expression_yylloc.end; type_yylloc.start = type_yylloc.end;
2423 printf("lexer error: invalid char 0x%X at line %d, col %d\n", (unsigned char)yytext[0], yylloc.start.line, yylloc.start.charPos);
2432 #line 2433 "lexer.ec"
2434 case YY_END_OF_BUFFER:
2436 /* Amount of text matched not including the EOB char. */
2437 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2439 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2440 *yy_cp = yy_hold_char;
2441 YY_RESTORE_YY_MORE_OFFSET
2443 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2445 /* We're scanning a new file or input source. It's
2446 * possible that this happened because the user
2447 * just pointed yyin at a new source and called
2448 * yylex(). If so, then we have to assure
2449 * consistency between yy_current_buffer and our
2450 * globals. Here is the right place to do so, because
2451 * this is the first action (other than possibly a
2452 * back-up) that will match for the new input source.
2454 yy_n_chars = yy_current_buffer->yy_n_chars;
2455 yy_current_buffer->yy_input_file = yyin;
2456 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2459 /* Note that here we test for yy_c_buf_p "<=" to the position
2460 * of the first EOB in the buffer, since yy_c_buf_p will
2461 * already have been incremented past the NUL character
2462 * (since all states make transitions on EOB to the
2463 * end-of-buffer state). Contrast this with the test
2466 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2467 { /* This was really a NUL. */
2468 yy_state_type yy_next_state;
2470 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2472 yy_current_state = yy_get_previous_state();
2474 /* Okay, we're now positioned to make the NUL
2475 * transition. We couldn't have
2476 * yy_get_previous_state() go ahead and do it
2477 * for us because it doesn't know how to deal
2478 * with the possibility of jamming (and we don't
2479 * want to build jamming into it because then it
2480 * will run more slowly).
2483 yy_next_state = yy_try_NUL_trans( yy_current_state );
2485 yy_bp = yytext_ptr + YY_MORE_ADJ;
2487 if ( yy_next_state )
2489 /* Consume the NUL. */
2490 yy_cp = ++yy_c_buf_p;
2491 yy_current_state = yy_next_state;
2498 goto yy_find_action;
2502 else switch ( yy_get_next_buffer() )
2504 case EOB_ACT_END_OF_FILE:
2506 yy_did_buffer_switch_on_eof = 0;
2510 /* Note: because we've taken care in
2511 * yy_get_next_buffer() to have set up
2512 * yytext, we can now set up
2513 * yy_c_buf_p so that if some total
2514 * hoser (like flex itself) wants to
2515 * call the scanner after we return the
2516 * YY_NULL, it'll still work - another
2517 * YY_NULL will get returned.
2519 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2521 yy_act = YY_STATE_EOF(YY_START);
2527 if ( ! yy_did_buffer_switch_on_eof )
2533 case EOB_ACT_CONTINUE_SCAN:
2535 yytext_ptr + yy_amount_of_matched_text;
2537 yy_current_state = yy_get_previous_state();
2540 yy_bp = yytext_ptr + YY_MORE_ADJ;
2543 case EOB_ACT_LAST_MATCH:
2545 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2547 yy_current_state = yy_get_previous_state();
2550 yy_bp = yytext_ptr + YY_MORE_ADJ;
2551 goto yy_find_action;
2558 "fatal flex scanner internal error--no action found" );
2559 } /* end of action switch */
2560 } /* end of scanning one token */
2561 } /* end of yylex */
2564 /* yy_get_next_buffer - try to read in a new buffer
2566 * Returns a code representing an action:
2567 * EOB_ACT_LAST_MATCH -
2568 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2569 * EOB_ACT_END_OF_FILE - end of file
2572 static int yy_get_next_buffer()
2574 register char *dest = yy_current_buffer->yy_ch_buf;
2575 register char *source = yytext_ptr;
2576 register int number_to_move, i;
2579 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2581 "fatal flex scanner internal error--end of buffer missed" );
2583 if ( yy_current_buffer->yy_fill_buffer == 0 )
2584 { /* Don't try to fill the buffer, so this is an EOF. */
2585 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2587 /* We matched a single character, the EOB, so
2588 * treat this as a final EOF.
2590 return EOB_ACT_END_OF_FILE;
2595 /* We matched some text prior to the EOB, first
2598 return EOB_ACT_LAST_MATCH;
2602 /* Try to read more data. */
2604 /* First move last chars to start of buffer. */
2605 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2607 for ( i = 0; i < number_to_move; ++i )
2608 *(dest++) = *(source++);
2610 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2611 /* don't do the read, it's not guaranteed to return an EOF,
2614 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2619 yy_current_buffer->yy_buf_size - number_to_move - 1;
2621 while ( num_to_read <= 0 )
2622 { /* Not enough room in the buffer - grow it. */
2623 #ifdef YY_USES_REJECT
2625 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2628 /* just a shorter name for the current buffer */
2629 YY_BUFFER_STATE b = yy_current_buffer;
2631 int yy_c_buf_p_offset =
2632 (int) (yy_c_buf_p - b->yy_ch_buf);
2634 if ( b->yy_is_our_buffer )
2636 int new_size = b->yy_buf_size * 2;
2638 if ( new_size <= 0 )
2639 b->yy_buf_size += b->yy_buf_size / 8;
2641 b->yy_buf_size *= 2;
2643 b->yy_ch_buf = (char *)
2644 /* Include room in for 2 EOB chars. */
2645 yy_flex_realloc( (void *) b->yy_ch_buf,
2646 b->yy_buf_size + 2 );
2649 /* Can't grow it, we don't own it. */
2652 if ( ! b->yy_ch_buf )
2654 "fatal error - scanner input buffer overflow" );
2656 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2658 num_to_read = yy_current_buffer->yy_buf_size -
2663 if ( num_to_read > YY_READ_BUF_SIZE )
2664 num_to_read = YY_READ_BUF_SIZE;
2666 /* Read in more data. */
2667 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2668 yy_n_chars, num_to_read );
2670 yy_current_buffer->yy_n_chars = yy_n_chars;
2673 if ( yy_n_chars == 0 )
2675 if ( number_to_move == YY_MORE_ADJ )
2677 ret_val = EOB_ACT_END_OF_FILE;
2683 ret_val = EOB_ACT_LAST_MATCH;
2684 yy_current_buffer->yy_buffer_status =
2685 YY_BUFFER_EOF_PENDING;
2690 ret_val = EOB_ACT_CONTINUE_SCAN;
2692 yy_n_chars += number_to_move;
2693 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2694 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2696 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2702 /* yy_get_previous_state - get the state just before the EOB char was reached */
2704 static yy_state_type yy_get_previous_state()
2706 register yy_state_type yy_current_state;
2707 register char *yy_cp;
2709 yy_current_state = yy_start;
2711 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2713 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2714 if ( yy_accept[yy_current_state] )
2716 yy_last_accepting_state = yy_current_state;
2717 yy_last_accepting_cpos = yy_cp;
2719 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2721 yy_current_state = (int) yy_def[yy_current_state];
2722 if ( yy_current_state >= 721 )
2723 yy_c = yy_meta[(unsigned int) yy_c];
2725 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2728 return yy_current_state;
2732 /* yy_try_NUL_trans - try to make a transition on the NUL character
2735 * next_state = yy_try_NUL_trans( current_state );
2738 #ifdef YY_USE_PROTOS
2739 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2741 static yy_state_type yy_try_NUL_trans( yy_current_state )
2742 yy_state_type yy_current_state;
2745 register int yy_is_jam;
2746 register char *yy_cp = yy_c_buf_p;
2748 register YY_CHAR yy_c = 1;
2749 if ( yy_accept[yy_current_state] )
2751 yy_last_accepting_state = yy_current_state;
2752 yy_last_accepting_cpos = yy_cp;
2754 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2756 yy_current_state = (int) yy_def[yy_current_state];
2757 if ( yy_current_state >= 721 )
2758 yy_c = yy_meta[(unsigned int) yy_c];
2760 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2761 yy_is_jam = (yy_current_state == 720);
2763 return yy_is_jam ? 0 : yy_current_state;
2768 #ifdef YY_USE_PROTOS
2769 static void yyunput( int c, register char *yy_bp )
2771 static void yyunput( c, yy_bp )
2773 register char *yy_bp;
2776 register char *yy_cp = yy_c_buf_p;
2778 /* undo effects of setting up yytext */
2779 *yy_cp = yy_hold_char;
2781 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2782 { /* need to shift things up to make room */
2783 /* +2 for EOB chars. */
2784 register int number_to_move = yy_n_chars + 2;
2785 register char *dest = &yy_current_buffer->yy_ch_buf[
2786 yy_current_buffer->yy_buf_size + 2];
2787 register char *source =
2788 &yy_current_buffer->yy_ch_buf[number_to_move];
2790 while ( source > yy_current_buffer->yy_ch_buf )
2791 *--dest = *--source;
2793 yy_cp += (int) (dest - source);
2794 yy_bp += (int) (dest - source);
2795 yy_current_buffer->yy_n_chars =
2796 yy_n_chars = yy_current_buffer->yy_buf_size;
2798 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2799 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2802 *--yy_cp = (char) c;
2806 yy_hold_char = *yy_cp;
2809 #endif /* ifndef YY_NO_UNPUT */
2813 static int yyinput()
2820 *yy_c_buf_p = yy_hold_char;
2822 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2824 /* yy_c_buf_p now points to the character we want to return.
2825 * If this occurs *before* the EOB characters, then it's a
2826 * valid NUL; if not, then we've hit the end of the buffer.
2828 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2829 /* This was really a NUL. */
2833 { /* need more input */
2834 int offset = yy_c_buf_p - yytext_ptr;
2837 switch ( yy_get_next_buffer() )
2839 case EOB_ACT_LAST_MATCH:
2840 /* This happens because yy_g_n_b()
2841 * sees that we've accumulated a
2842 * token and flags that we need to
2843 * try matching the token before
2844 * proceeding. But for input(),
2845 * there's no matching to consider.
2846 * So convert the EOB_ACT_LAST_MATCH
2847 * to EOB_ACT_END_OF_FILE.
2850 /* Reset buffer status. */
2855 case EOB_ACT_END_OF_FILE:
2860 if ( ! yy_did_buffer_switch_on_eof )
2869 case EOB_ACT_CONTINUE_SCAN:
2870 yy_c_buf_p = yytext_ptr + offset;
2876 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
2877 *yy_c_buf_p = '\0'; /* preserve yytext */
2878 yy_hold_char = *++yy_c_buf_p;
2885 #ifdef YY_USE_PROTOS
2886 void yyrestart( FILE *input_file )
2888 void yyrestart( input_file )
2892 if ( ! yy_current_buffer )
2893 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2895 yy_init_buffer( yy_current_buffer, input_file );
2896 yy_load_buffer_state();
2900 #ifdef YY_USE_PROTOS
2901 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2903 void yy_switch_to_buffer( new_buffer )
2904 YY_BUFFER_STATE new_buffer;
2907 if ( yy_current_buffer == new_buffer )
2910 if ( yy_current_buffer )
2912 /* Flush out information for old buffer. */
2913 *yy_c_buf_p = yy_hold_char;
2914 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2915 yy_current_buffer->yy_n_chars = yy_n_chars;
2918 yy_current_buffer = new_buffer;
2919 yy_load_buffer_state();
2921 /* We don't actually know whether we did this switch during
2922 * EOF (yywrap()) processing, but the only time this flag
2923 * is looked at is after yywrap() is called, so it's safe
2924 * to go ahead and always set it.
2926 yy_did_buffer_switch_on_eof = 1;
2930 #ifdef YY_USE_PROTOS
2931 void yy_load_buffer_state( void )
2933 void yy_load_buffer_state()
2936 yy_n_chars = yy_current_buffer->yy_n_chars;
2937 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2938 yyin = yy_current_buffer->yy_input_file;
2939 yy_hold_char = *yy_c_buf_p;
2943 #ifdef YY_USE_PROTOS
2944 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2946 YY_BUFFER_STATE yy_create_buffer( file, size )
2953 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2955 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2957 b->yy_buf_size = size;
2959 /* yy_ch_buf has to be 2 characters longer than the size given because
2960 * we need to put in 2 end-of-buffer characters.
2962 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2963 if ( ! b->yy_ch_buf )
2964 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2966 b->yy_is_our_buffer = 1;
2968 yy_init_buffer( b, file );
2974 #ifdef YY_USE_PROTOS
2975 void yy_delete_buffer( YY_BUFFER_STATE b )
2977 void yy_delete_buffer( b )
2984 if ( b == yy_current_buffer )
2985 yy_current_buffer = (YY_BUFFER_STATE) 0;
2987 if ( b->yy_is_our_buffer )
2988 yy_flex_free( (void *) b->yy_ch_buf );
2990 yy_flex_free( (void *) b );
2994 #ifndef YY_ALWAYS_INTERACTIVE
2995 #ifndef YY_NEVER_INTERACTIVE
2996 extern int isatty YY_PROTO(( int ));
3000 #ifdef YY_USE_PROTOS
3001 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
3003 void yy_init_buffer( b, file )
3010 yy_flush_buffer( b );
3012 b->yy_input_file = file;
3013 b->yy_fill_buffer = 1;
3015 #if YY_ALWAYS_INTERACTIVE
3016 b->yy_is_interactive = 1;
3018 #if YY_NEVER_INTERACTIVE
3019 b->yy_is_interactive = 0;
3021 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3027 #ifdef YY_USE_PROTOS
3028 void yy_flush_buffer( YY_BUFFER_STATE b )
3030 void yy_flush_buffer( b )
3040 /* We always need two end-of-buffer characters. The first causes
3041 * a transition to the end-of-buffer state. The second causes
3042 * a jam in that state.
3044 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3045 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3047 b->yy_buf_pos = &b->yy_ch_buf[0];
3050 b->yy_buffer_status = YY_BUFFER_NEW;
3052 if ( b == yy_current_buffer )
3053 yy_load_buffer_state();
3057 #ifndef YY_NO_SCAN_BUFFER
3058 #ifdef YY_USE_PROTOS
3059 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3061 YY_BUFFER_STATE yy_scan_buffer( base, size )
3069 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3070 base[size-1] != YY_END_OF_BUFFER_CHAR )
3071 /* They forgot to leave room for the EOB's. */
3074 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3076 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3078 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3079 b->yy_buf_pos = b->yy_ch_buf = base;
3080 b->yy_is_our_buffer = 0;
3081 b->yy_input_file = 0;
3082 b->yy_n_chars = b->yy_buf_size;
3083 b->yy_is_interactive = 0;
3085 b->yy_fill_buffer = 0;
3086 b->yy_buffer_status = YY_BUFFER_NEW;
3088 yy_switch_to_buffer( b );
3095 #ifndef YY_NO_SCAN_STRING
3096 #ifdef YY_USE_PROTOS
3097 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3099 YY_BUFFER_STATE yy_scan_string( yy_str )
3100 yyconst char *yy_str;
3104 for ( len = 0; yy_str[len]; ++len )
3107 return yy_scan_bytes( yy_str, len );
3112 #ifndef YY_NO_SCAN_BYTES
3113 #ifdef YY_USE_PROTOS
3114 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3116 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3117 yyconst char *bytes;
3126 /* Get memory for full buffer, including space for trailing EOB's. */
3128 buf = (char *) yy_flex_alloc( n );
3130 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3132 for ( i = 0; i < len; ++i )
3135 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3137 b = yy_scan_buffer( buf, n );
3139 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3141 /* It's okay to grow etc. this buffer, and we should throw it
3142 * away when we're done.
3144 b->yy_is_our_buffer = 1;
3151 #ifndef YY_NO_PUSH_STATE
3152 #ifdef YY_USE_PROTOS
3153 static void yy_push_state( int new_state )
3155 static void yy_push_state( new_state )
3159 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3163 yy_start_stack_depth += YY_START_STACK_INCR;
3164 new_size = yy_start_stack_depth * sizeof( int );
3166 if ( ! yy_start_stack )
3167 yy_start_stack = (int *) yy_flex_alloc( new_size );
3170 yy_start_stack = (int *) yy_flex_realloc(
3171 (void *) yy_start_stack, new_size );
3173 if ( ! yy_start_stack )
3175 "out of memory expanding start-condition stack" );
3178 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3185 #ifndef YY_NO_POP_STATE
3186 static void yy_pop_state()
3188 if ( --yy_start_stack_ptr < 0 )
3189 YY_FATAL_ERROR( "start-condition stack underflow" );
3191 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3196 #ifndef YY_NO_TOP_STATE
3197 static int yy_top_state()
3199 return yy_start_stack[yy_start_stack_ptr - 1];
3203 #ifndef YY_EXIT_FAILURE
3204 #define YY_EXIT_FAILURE 2
3207 #ifdef YY_USE_PROTOS
3208 static void yy_fatal_error( yyconst char msg[] )
3210 static void yy_fatal_error( msg )
3214 (void) fprintf( stderr, "%s\n", msg );
3215 exit( YY_EXIT_FAILURE );
3220 /* Redefine yyless() so it works in section 3 code. */
3226 /* Undo effects of setting up yytext. */ \
3227 yytext[yyleng] = yy_hold_char; \
3228 yy_c_buf_p = yytext + n; \
3229 yy_hold_char = *yy_c_buf_p; \
3230 *yy_c_buf_p = '\0'; \
3236 /* Internal utility routines. */
3239 #ifdef YY_USE_PROTOS
3240 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3242 static void yy_flex_strncpy( s1, s2, n )
3249 for ( i = 0; i < n; ++i )
3254 #ifdef YY_NEED_STRLEN
3255 #ifdef YY_USE_PROTOS
3256 static int yy_flex_strlen( yyconst char *s )
3258 static int yy_flex_strlen( s )
3263 for ( n = 0; s[n]; ++n )
3271 #ifdef YY_USE_PROTOS
3272 static void *yy_flex_alloc( yy_size_t size )
3274 static void *yy_flex_alloc( size )
3278 return (void *) malloc( size );
3281 #ifdef YY_USE_PROTOS
3282 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3284 static void *yy_flex_realloc( ptr, size )
3289 /* The cast to (char *) in the following accommodates both
3290 * implementations that use char* generic pointers, and those
3291 * that use void* generic pointers. It works with the latter
3292 * because both ANSI C and C++ allow castless assignment from
3293 * any pointer type to void*, and deal with argument conversions
3294 * as though doing an assignment.
3296 return (void *) realloc( (char *) ptr, size );
3299 #ifdef YY_USE_PROTOS
3300 static void yy_flex_free( void *ptr )
3302 static void yy_flex_free( ptr )
3334 // fputc(c, output);
3338 yylloc.end.charPos = 1;
3344 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3349 yylloc.end.charPos++;
3352 if(c == '/' && last == '*')
3356 yylloc.start = yylloc.end;
3362 int c; //, last = 0;
3368 // fputc(c, output);
3372 yylloc.end.charPos = 1;
3379 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3384 yylloc.end.charPos++;
3389 yylloc.start = yylloc.end;
3408 yylloc.end.charPos = 1;
3413 char * pointer = line + 1;
3416 lineNumber = GetValue(&pointer);
3419 char fileName[MAX_LOCATION];
3424 GetString(&pointer, fileName, MAX_LOCATION);
3425 inOut = GetValue(&pointer);
3429 char extension[MAX_EXTENSION];
3431 defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
3433 GetExtension(fileName, extension);
3434 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
3435 declMode = defaultDeclMode = structDeclMode = defaultAccess;
3437 fileStack[include_stack_ptr] = null;
3438 include_stack_ptr++;
3442 include_stack_ptr--;
3443 defaultDeclMode = declMode = structDeclMode = declModeStack[include_stack_ptr];
3446 yylloc.end.charPos = 1;
3447 yylloc.end.line = lineNumber;
3448 //yylloc.end.pos -= count;
3450 if(include_stack_ptr > 0 || (lineNumber && fileName[0]))
3451 yylloc.end.included = GetIncludeFileID(fileName);
3453 yylloc.end.included = 0;
3456 int lineNumber = strtol(line+1, &endPtr, 0);
3462 yylloc.end.charPos = 1;
3463 yylloc.end.line = lineNumber;
3464 yylloc.end.pos -= count;
3473 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3482 yylloc.end.charPos++;
3488 yylloc.start = yylloc.end;
3491 TrimLSpaces(line, line);
3492 for(c = 0; line[c] && line[c] != ' '; c++);
3493 if(!strncmp(line, "include", c))
3495 char includeFile[MAX_LOCATION] = "";
3497 memmove(line, line+c, strlen(line+c)+1);
3498 TrimLSpaces(line, line);
3501 for(c = 1; line[c]; c++)
3505 strncpy(includeFile, line+1, c-1);
3506 includeFile[c-1] = '\0';
3511 else if(line[0] == '<')
3513 for(c = 1; line[c]; c++)
3516 strncpy(includeFile, line+1, c-1);
3517 includeFile[c-1] = '\0';
3522 if ( include_stack_ptr >= MAX_INCLUDE_DEPTH )
3524 fprintf( stderr, "%s", $"Includes nested too deeply" );
3528 if(inCompiler || !FindIncludeFileID(includeFile))
3530 File file = OpenIncludeFile(includeFile);
3533 char extension[MAX_EXTENSION];
3535 fileStack[include_stack_ptr] = fileInput;
3536 locStack[include_stack_ptr] = yylloc;
3537 defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
3538 include_stack[include_stack_ptr++] = YY_CURRENT_BUFFER;
3540 yylloc.start.charPos = yylloc.end.charPos = 1;
3541 yylloc.start.line = yylloc.end.line = 1;
3542 yylloc.start.pos = yylloc.end.pos = 0;
3543 yylloc.start.included = yylloc.end.included = GetIncludeFileID(includeFile);
3545 GetExtension(includeFile, extension);
3546 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
3547 declMode = defaultDeclMode = structDeclMode = defaultAccess;
3550 yy_switch_to_buffer( yy_create_buffer( fileInput, YY_BUF_SIZE ) );
3558 public void resetScanner()
3561 yylloc.start.charPos = yylloc.end.charPos = 1;
3562 yylloc.start.line = yylloc.end.line = 1;
3563 yylloc.start.pos = yylloc.end.pos = 0;
3564 yylloc.start.included = yylloc.end.included = 0;
3566 expression_yylloc.start.charPos = expression_yylloc.end.charPos = 1;
3567 expression_yylloc.start.line = expression_yylloc.end.line = 1;
3568 expression_yylloc.start.pos = expression_yylloc.end.pos = 0;
3569 expression_yylloc.start.included = expression_yylloc.end.included = 0;
3571 type_yylloc.start.charPos = type_yylloc.end.charPos = 1;
3572 type_yylloc.start.line = type_yylloc.end.line = 1;
3573 type_yylloc.start.pos = type_yylloc.end.pos = 0;
3574 type_yylloc.start.included = type_yylloc.end.included = 0;
3576 include_stack_ptr = 0;
3579 void resetScannerPos(CodePosition pos)
3582 yylloc.start = yylloc.end = pos;
3583 type_yylloc.start = type_yylloc.end = pos;
3584 expression_yylloc.start = expression_yylloc.end = pos;
3590 YYLTYPE type_yylloc;
3591 YYLTYPE expression_yylloc;
3593 AccessMode declMode;
3594 AccessMode defaultDeclMode;
3597 YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
3598 File fileStack[MAX_INCLUDE_DEPTH];
3599 char sourceFileStack[MAX_INCLUDE_DEPTH][MAX_LOCATION];
3600 YYLTYPE locStack[MAX_INCLUDE_DEPTH];
3601 AccessMode declModeStack[MAX_INCLUDE_DEPTH];
3602 int include_stack_ptr;
3603 YY_BUFFER_STATE buffer;
3616 LexerBackup pushLexer()
3618 LexerBackup backup { };
3620 backup.yylloc = yylloc;
3621 backup.type_yylloc = type_yylloc;
3622 backup.expression_yylloc = expression_yylloc;
3623 backup.fileInput = fileInput;
3624 memcpy(backup.include_stack, include_stack, sizeof(include_stack));
3625 memcpy(backup.fileStack, fileStack, sizeof(fileStack));
3626 memcpy(backup.sourceFileStack, sourceFileStack, sizeof(sourceFileStack));
3627 memcpy(backup.locStack, locStack, sizeof(locStack));
3628 memcpy(backup.declModeStack, declModeStack, sizeof(declModeStack));
3629 backup.include_stack_ptr = include_stack_ptr;
3630 backup.defaultDeclMode = defaultDeclMode;
3631 backup.declMode = declMode;
3632 backup.buffer = yy_current_buffer;
3634 backup.yy_n_chars = yy_n_chars;
3635 backup.yytext_ptr = yytext_ptr;
3636 backup.yy_c_buf_p = yy_c_buf_p;
3638 backup.yy_hold_char = yy_hold_char;
3639 backup.yychar = yychar;
3640 backup.yy_init = yy_init;
3641 backup.yy_start = yy_start;
3645 yy_current_buffer = 0;
3647 yylloc.start.charPos = yylloc.end.charPos = 1;
3648 yylloc.start.line = yylloc.end.line = 1;
3649 yylloc.start.pos = yylloc.end.pos = 0;
3650 yylloc.start.included = yylloc.end.included = 0;
3652 expression_yylloc.start.charPos = expression_yylloc.end.charPos = 1;
3653 expression_yylloc.start.line = expression_yylloc.end.line = 1;
3654 expression_yylloc.start.pos = expression_yylloc.end.pos = 0;
3655 expression_yylloc.start.included = expression_yylloc.end.included = 0;
3657 type_yylloc.start.charPos = type_yylloc.end.charPos = 1;
3658 type_yylloc.start.line = type_yylloc.end.line = 1;
3659 type_yylloc.start.pos = type_yylloc.end.pos = 0;
3660 type_yylloc.start.included = type_yylloc.end.included = 0;
3662 include_stack_ptr = 0;
3667 void popLexer(LexerBackup backup)
3669 yylloc = backup.yylloc;
3670 type_yylloc = backup.type_yylloc;
3671 expression_yylloc = backup.expression_yylloc;
3672 fileInput = backup.fileInput;
3673 memcpy(include_stack, backup.include_stack, sizeof(include_stack));
3674 memcpy(fileStack, backup.fileStack, sizeof(fileStack));
3675 memcpy(sourceFileStack, backup.sourceFileStack, sizeof(sourceFileStack));
3676 memcpy(locStack, backup.locStack, sizeof(locStack));
3677 memcpy(declModeStack, backup.declModeStack, sizeof(declModeStack));
3678 include_stack_ptr = backup.include_stack_ptr;
3679 defaultDeclMode = backup.defaultDeclMode;
3680 declMode = structDeclMode = backup.declMode;
3682 // yy_switch_to_buffer(backup.buffer);
3683 yy_current_buffer = backup.buffer;
3684 yy_n_chars = backup.yy_n_chars;
3685 yytext_ptr = backup.yytext_ptr;
3686 yy_c_buf_p = backup.yy_c_buf_p;
3688 yy_hold_char = backup.yy_hold_char;
3689 yychar = backup.yychar;
3690 yy_init = backup.yy_init;
3691 yy_start = backup.yy_start;