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 176
287 #define YY_END_OF_BUFFER 177
288 static yyconst short int yy_accept[720] =
290 112, 112, 177, 175, 173, 172, 171, 174, 158, 175,
291 1, 170, 164, 157, 175, 152, 153, 162, 161, 149,
292 160, 156, 163, 118, 118, 150, 146, 165, 151, 166,
293 169, 112, 112, 112, 154, 155, 167, 112, 112, 112,
294 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
295 112, 112, 112, 112, 112, 147, 168, 148, 159, 145,
296 0, 123, 0, 131, 148, 140, 132, 0, 0, 129,
297 137, 127, 138, 128, 139, 0, 121, 2, 3, 130,
298 122, 117, 0, 118, 0, 118, 112, 155, 147, 154,
299 136, 142, 144, 143, 135, 0, 112, 0, 112, 0,
301 0, 133, 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, 134, 141, 119, 124, 0, 121,
307 121, 0, 122, 117, 0, 120, 0, 113, 112, 126,
308 125, 112, 112, 112, 112, 112, 112, 112, 112, 112,
309 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
310 92, 112, 112, 112, 112, 112, 112, 112, 112, 112,
312 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
313 17, 45, 112, 112, 112, 112, 20, 112, 112, 112,
314 51, 112, 112, 112, 112, 112, 112, 112, 44, 112,
315 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
316 112, 112, 112, 112, 112, 112, 112, 112, 0, 121,
317 0, 121, 0, 122, 120, 115, 116, 113, 0, 112,
318 112, 61, 112, 112, 112, 112, 112, 112, 112, 112,
319 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
320 112, 112, 112, 112, 4, 112, 6, 7, 112, 112,
321 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
323 112, 13, 14, 112, 112, 112, 18, 112, 112, 112,
324 112, 112, 22, 112, 52, 112, 112, 112, 112, 112,
325 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
326 112, 112, 112, 21, 112, 112, 112, 38, 112, 112,
327 112, 0, 121, 115, 115, 0, 115, 115, 116, 0,
328 0, 114, 62, 112, 112, 112, 93, 112, 112, 112,
329 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
330 112, 112, 112, 112, 112, 5, 47, 8, 112, 112,
331 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
332 112, 16, 112, 112, 112, 58, 46, 112, 112, 112,
334 112, 112, 53, 112, 112, 25, 112, 112, 112, 112,
335 112, 112, 112, 112, 112, 112, 36, 112, 112, 112,
336 95, 42, 0, 115, 115, 115, 0, 0, 116, 114,
337 112, 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, 56,
340 50, 112, 112, 12, 15, 112, 55, 88, 72, 112,
341 112, 112, 84, 112, 54, 112, 24, 26, 29, 31,
342 112, 112, 33, 112, 34, 112, 112, 112, 112, 112,
343 112, 112, 0, 115, 112, 112, 112, 91, 112, 112,
345 76, 82, 112, 112, 112, 57, 112, 112, 112, 112,
346 112, 112, 112, 70, 112, 112, 112, 112, 112, 112,
347 112, 112, 109, 110, 108, 10, 112, 112, 112, 112,
348 85, 112, 112, 112, 80, 112, 112, 112, 112, 35,
349 112, 49, 112, 112, 63, 112, 112, 112, 112, 112,
350 112, 71, 112, 27, 112, 32, 94, 112, 112, 79,
351 112, 112, 112, 112, 112, 112, 9, 112, 112, 112,
352 112, 112, 43, 23, 65, 112, 106, 112, 112, 37,
353 39, 112, 112, 112, 112, 112, 112, 112, 112, 112,
354 112, 77, 112, 112, 112, 112, 112, 112, 112, 112,
356 112, 112, 74, 75, 112, 107, 112, 112, 48, 112,
357 98, 64, 112, 112, 112, 112, 112, 69, 81, 28,
358 112, 41, 112, 87, 104, 112, 112, 112, 112, 112,
359 112, 112, 112, 112, 112, 30, 68, 112, 0, 112,
360 112, 78, 112, 90, 112, 112, 101, 112, 112, 112,
361 112, 112, 112, 112, 112, 112, 73, 0, 112, 83,
362 40, 112, 112, 112, 112, 112, 97, 112, 96, 86,
363 67, 112, 112, 89, 112, 112, 112, 112, 111, 112,
364 112, 112, 112, 112, 99, 112, 105, 112, 112, 112,
365 112, 112, 112, 112, 112, 60, 112, 112, 112, 112,
367 112, 59, 112, 112, 103, 112, 112, 100, 112, 112,
368 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, 247, 2557, 2557, 2557, 2557, 2557, 217, 70,
418 2557, 2557, 50, 69, 183, 2557, 2557, 194, 65, 2557,
419 66, 64, 76, 96, 79, 80, 2557, 97, 183, 61,
420 2557, 81, 88, 116, 2557, 2557, 159, 132, 115, 87,
421 143, 147, 131, 148, 156, 160, 121, 164, 136, 203,
422 204, 206, 208, 212, 224, 2557, 88, 2557, 2557, 2557,
423 101, 2557, 175, 2557, 2557, 2557, 2557, 182, 174, 2557,
424 2557, 2557, 2557, 2557, 2557, 151, 259, 2557, 2557, 2557,
425 298, 339, 218, 247, 125, 0, 0, 2557, 2557, 2557,
426 111, 2557, 2557, 2557, 108, 106, 149, 104, 213, 186,
428 67, 2557, 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, 2557, 2557, 2557, 2557, 527, 517,
434 556, 541, 546, 530, 483, 595, 0, 601, 0, 2557,
435 2557, 0, 533, 498, 550, 403, 596, 589, 612, 618,
436 611, 624, 620, 642, 517, 648, 600, 654, 658, 664,
437 497, 665, 666, 667, 669, 671, 675, 676, 571, 677,
439 682, 695, 692, 693, 701, 704, 710, 712, 714, 717,
440 508, 721, 723, 736, 742, 743, 747, 744, 748, 749,
441 765, 752, 764, 767, 768, 769, 770, 772, 780, 789,
442 793, 792, 797, 798, 804, 805, 800, 808, 817, 821,
443 820, 826, 824, 827, 830, 836, 845, 832, 854, 875,
444 884, 875, 894, 899, 900, 905, 948, 936, 992, 0,
445 854, 858, 860, 878, 876, 935, 965, 900, 938, 995,
446 998, 879, 1001, 1006, 1008, 1007, 1011, 925, 1013, 1010,
447 1016, 1018, 1028, 1017, 1019, 1023, 1026, 1029, 1035, 1038,
448 1039, 1041, 1045, 1060, 1064, 1066, 1069, 1071, 1073, 1076,
450 1081, 1077, 1082, 1092, 1094, 1098, 1097, 1101, 1099, 1107,
451 1104, 1103, 1109, 1110, 1114, 1130, 1120, 1127, 1133, 1135,
452 1136, 1137, 1142, 1155, 1148, 1146, 1163, 1159, 1165, 1166,
453 1168, 1170, 1171, 1174, 1178, 1181, 1194, 1198, 1201, 1202,
454 1206, 1219, 1225, 0, 1215, 1257, 1247, 0, 1255, 1297,
455 1241, 1301, 1205, 1258, 1245, 1277, 1213, 1280, 1284, 1226,
456 1305, 1316, 1317, 1321, 1323, 1324, 1326, 1334, 1339, 1341,
457 1351, 1342, 1354, 1357, 1360, 1361, 1363, 1367, 1369, 1370,
458 1372, 1387, 1389, 1391, 1395, 1397, 1396, 1400, 1402, 1408,
459 1412, 1413, 1415, 1417, 1421, 1418, 1430, 1433, 1440, 1441,
461 1442, 1446, 1451, 1453, 1450, 1457, 1463, 1466, 1468, 1469,
462 1472, 1473, 1474, 1475, 1476, 1479, 1478, 1491, 1496, 1499,
463 1502, 1504, 1275, 1535, 0, 1508, 1559, 1563, 1574, 1564,
464 1526, 1529, 1568, 1589, 1551, 1523, 1593, 1594, 1597, 1613,
465 1614, 1617, 1621, 1624, 1623, 1630, 1626, 1632, 1634, 1639,
466 1633, 1636, 1643, 1642, 1645, 1652, 1654, 1655, 1661, 1538,
467 1658, 1670, 1676, 1686, 1689, 1691, 1694, 1697, 1701, 1704,
468 1706, 1709, 1710, 1712, 1714, 1717, 1719, 1722, 1725, 1729,
469 1730, 1734, 1735, 1737, 1738, 1740, 1745, 1755, 1757, 1758,
470 1760, 1761, 1755, 1799, 1762, 1770, 1773, 1779, 1780, 1786,
472 1781, 1788, 1790, 1801, 1805, 1803, 1814, 1816, 1820, 1822,
473 1829, 1835, 1837, 1838, 1839, 1840, 1858, 1860, 1850, 1861,
474 1863, 1865, 1869, 1870, 1876, 1878, 1886, 1888, 1889, 1893,
475 1894, 1896, 1897, 1898, 1909, 1913, 1915, 1916, 1917, 1919,
476 1920, 1921, 1922, 1924, 1926, 1937, 1943, 1944, 1945, 1947,
477 1948, 1965, 1964, 1966, 1967, 1954, 1973, 1975, 1977, 1982,
478 1983, 1984, 1992, 1994, 1999, 2004, 2005, 2007, 2010, 2011,
479 2012, 2016, 2027, 2017, 2033, 2036, 2037, 2038, 2040, 2044,
480 2045, 2048, 2060, 2061, 2064, 2067, 2068, 2070, 2069, 2071,
481 2073, 2076, 2077, 2079, 2088, 2094, 2096, 2099, 2100, 2101,
483 2111, 2116, 2122, 2123, 2124, 2132, 2134, 2135, 2139, 2140,
484 2145, 2147, 2150, 2152, 2155, 2156, 2157, 2160, 2162, 2168,
485 2175, 2177, 2178, 2183, 2185, 2187, 2188, 2190, 2194, 2195,
486 2196, 2203, 2205, 2215, 2206, 2218, 2221, 2223, 96, 2225,
487 2226, 2224, 2227, 2233, 2244, 2250, 2252, 2254, 2255, 2270,
488 2259, 2267, 2271, 2272, 2276, 2274, 2557, 68, 2279, 2275,
489 2277, 2280, 2282, 2283, 2287, 2295, 2303, 2305, 2304, 2307,
490 2324, 2325, 2326, 2329, 2333, 2330, 2334, 2336, 2337, 2354,
491 2341, 2353, 2356, 2357, 2358, 2359, 2361, 2364, 2365, 2362,
492 2377, 2380, 2381, 2385, 2386, 2388, 2389, 2390, 2398, 2407,
494 2408, 2410, 2411, 2414, 2416, 2420, 2429, 2423, 2432, 2436,
495 2439, 2440, 2442, 2445, 2448, 2451, 2452, 2455, 2557, 2516,
496 2524, 2531, 2535, 2536, 2539, 2541, 2543, 2548
499 static yyconst short int yy_def[729] =
501 719, 1, 719, 719, 719, 719, 719, 719, 719, 720,
502 719, 719, 719, 719, 721, 719, 719, 719, 719, 719,
503 719, 719, 719, 719, 24, 719, 719, 719, 719, 719,
504 719, 722, 722, 722, 719, 719, 719, 722, 722, 722,
505 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
506 722, 722, 722, 722, 722, 719, 719, 719, 719, 719,
507 720, 719, 720, 719, 719, 719, 719, 721, 721, 719,
508 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
509 719, 719, 719, 719, 723, 25, 724, 719, 719, 719,
510 719, 719, 719, 719, 719, 719, 722, 719, 722, 720,
512 721, 719, 722, 722, 722, 722, 722, 722, 722, 722,
513 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
514 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
515 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
516 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
517 722, 722, 722, 722, 719, 719, 719, 719, 719, 719,
518 719, 719, 719, 719, 719, 719, 725, 723, 726, 719,
519 719, 727, 722, 722, 722, 722, 722, 722, 722, 722,
520 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
521 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
523 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
524 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
525 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
526 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
527 722, 722, 722, 722, 722, 722, 722, 722, 719, 77,
528 719, 719, 719, 81, 719, 725, 719, 719, 719, 726,
529 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
530 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
531 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
532 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
534 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
535 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
536 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
537 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
538 722, 719, 161, 256, 719, 719, 257, 347, 719, 719,
539 719, 719, 722, 722, 722, 722, 722, 722, 722, 722,
540 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
541 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
542 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
543 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
545 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
546 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
547 722, 722, 719, 719, 347, 719, 719, 719, 719, 719,
548 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
549 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
550 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
551 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
552 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
553 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
554 722, 722, 719, 719, 722, 722, 722, 722, 722, 722,
556 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
557 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
558 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
559 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
560 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
561 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
562 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
563 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
564 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
565 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
567 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
568 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
569 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
570 722, 722, 722, 722, 722, 722, 722, 722, 728, 722,
571 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
572 722, 722, 722, 722, 722, 722, 719, 728, 722, 722,
573 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
574 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
575 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
576 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
578 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
579 722, 722, 722, 722, 722, 722, 722, 722, 0, 719,
580 719, 719, 719, 719, 719, 719, 719, 719
583 static yyconst short int yy_nxt[2634] =
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, 657, 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, 657,
597 69, 98, 98, 63, 81, 155, 82, 82, 82, 82,
598 719, 90, 100, 91, 92, 96, 96, 101, 172, 83,
599 98, 96, 84, 84, 84, 171, 84, 85, 170, 98,
600 98, 96, 96, 167, 63, 98, 96, 83, 719, 99,
601 113, 84, 84, 96, 84, 98, 98, 96, 96, 96,
602 98, 156, 84, 103, 104, 85, 96, 98, 105, 158,
603 96, 98, 98, 98, 96, 110, 719, 719, 106, 111,
604 98, 112, 135, 107, 98, 68, 102, 108, 98, 123,
605 114, 124, 62, 157, 118, 119, 109, 115, 120, 138,
607 125, 116, 139, 126, 117, 121, 127, 129, 122, 128,
608 93, 136, 131, 96, 96, 137, 96, 130, 96, 132,
609 133, 70, 96, 96, 134, 69, 69, 98, 98, 63,
610 98, 96, 98, 165, 96, 165, 98, 98, 166, 166,
611 166, 166, 96, 96, 60, 98, 719, 96, 98, 719,
612 96, 96, 96, 719, 140, 141, 98, 98, 142, 143,
613 147, 98, 719, 149, 98, 98, 98, 151, 150, 144,
614 145, 153, 146, 152, 173, 96, 148, 719, 154, 77,
615 77, 77, 77, 84, 84, 84, 719, 84, 719, 98,
616 187, 176, 159, 160, 174, 160, 160, 160, 175, 719,
618 188, 719, 84, 84, 719, 84, 189, 719, 96, 719,
619 159, 160, 190, 84, 160, 160, 96, 160, 161, 161,
620 161, 161, 98, 96, 191, 96, 96, 719, 96, 96,
621 98, 162, 163, 96, 163, 163, 163, 98, 96, 98,
622 98, 96, 98, 98, 96, 719, 719, 98, 719, 162,
623 163, 719, 98, 163, 163, 98, 163, 81, 98, 82,
624 82, 82, 82, 192, 193, 195, 196, 719, 199, 719,
625 194, 200, 83, 96, 96, 164, 164, 164, 719, 164,
626 198, 201, 96, 197, 96, 96, 202, 98, 98, 204,
627 83, 719, 203, 208, 164, 164, 98, 164, 98, 98,
629 96, 96, 96, 96, 96, 164, 96, 719, 96, 96,
630 96, 96, 719, 96, 98, 98, 98, 98, 98, 96,
631 98, 96, 98, 98, 98, 98, 96, 98, 206, 205,
632 719, 719, 719, 98, 96, 98, 210, 209, 207, 719,
633 98, 96, 719, 177, 178, 179, 180, 181, 98, 719,
634 265, 182, 719, 211, 219, 98, 212, 213, 215, 183,
635 184, 185, 214, 186, 229, 218, 221, 216, 96, 96,
636 220, 222, 224, 96, 217, 96, 96, 223, 96, 96,
637 96, 719, 98, 98, 225, 96, 96, 98, 96, 98,
638 98, 226, 98, 98, 98, 227, 228, 96, 719, 98,
640 98, 96, 98, 166, 166, 166, 166, 96, 96, 719,
641 233, 98, 231, 234, 237, 98, 719, 719, 96, 230,
642 238, 98, 98, 239, 235, 242, 236, 96, 719, 719,
643 232, 240, 98, 245, 243, 241, 246, 719, 719, 244,
644 719, 98, 249, 96, 249, 719, 248, 250, 250, 250,
645 250, 160, 247, 160, 160, 160, 253, 98, 253, 263,
646 96, 254, 254, 254, 254, 719, 164, 164, 164, 160,
647 164, 278, 160, 160, 98, 160, 161, 161, 161, 161,
648 163, 96, 163, 163, 163, 164, 164, 279, 164, 251,
649 252, 262, 252, 252, 252, 98, 164, 719, 163, 96,
651 719, 163, 163, 719, 163, 719, 96, 251, 252, 264,
652 96, 252, 252, 98, 252, 166, 166, 166, 166, 257,
653 98, 96, 96, 719, 98, 719, 293, 719, 96, 255,
654 96, 255, 255, 255, 96, 98, 98, 258, 258, 258,
655 259, 258, 98, 719, 98, 719, 719, 255, 98, 719,
656 255, 255, 96, 255, 266, 269, 258, 258, 96, 258,
657 267, 268, 270, 259, 96, 281, 98, 258, 96, 272,
658 719, 275, 98, 271, 96, 96, 96, 96, 98, 96,
659 273, 96, 98, 719, 274, 96, 96, 96, 98, 98,
660 98, 98, 96, 98, 719, 98, 719, 276, 719, 98,
662 98, 98, 96, 96, 719, 96, 98, 277, 283, 280,
663 284, 96, 282, 286, 96, 719, 98, 98, 287, 98,
664 96, 719, 96, 292, 96, 98, 285, 96, 98, 295,
665 719, 96, 288, 96, 98, 289, 98, 294, 98, 290,
666 291, 98, 296, 298, 299, 98, 96, 98, 300, 301,
667 297, 719, 96, 96, 96, 302, 719, 96, 96, 96,
668 98, 719, 96, 304, 306, 305, 98, 98, 98, 303,
669 311, 98, 98, 98, 96, 96, 98, 96, 96, 96,
670 96, 719, 96, 719, 307, 315, 719, 719, 98, 98,
671 96, 98, 98, 98, 98, 312, 98, 308, 310, 96,
673 314, 313, 96, 96, 98, 309, 719, 96, 96, 719,
674 96, 719, 719, 98, 96, 96, 98, 98, 96, 316,
675 320, 98, 98, 319, 98, 318, 317, 96, 98, 98,
676 96, 96, 98, 719, 96, 321, 96, 96, 322, 719,
677 96, 98, 96, 325, 98, 98, 96, 327, 98, 330,
678 98, 98, 323, 324, 98, 96, 98, 719, 719, 719,
679 98, 719, 326, 719, 96, 719, 328, 719, 96, 98,
680 96, 329, 333, 331, 250, 250, 250, 250, 98, 336,
681 338, 332, 98, 339, 98, 334, 96, 335, 96, 96,
682 341, 719, 337, 719, 340, 250, 250, 250, 250, 342,
684 98, 342, 98, 98, 343, 343, 343, 343, 719, 252,
685 96, 252, 252, 252, 254, 254, 254, 254, 353, 254,
686 254, 254, 254, 719, 98, 719, 719, 252, 362, 355,
687 252, 252, 719, 252, 255, 96, 255, 255, 255, 344,
688 354, 345, 345, 345, 346, 96, 719, 719, 96, 98,
689 719, 719, 255, 719, 719, 255, 255, 344, 255, 98,
690 345, 345, 98, 345, 719, 358, 719, 346, 347, 347,
691 347, 347, 258, 258, 258, 96, 258, 719, 347, 347,
692 347, 347, 348, 719, 349, 349, 349, 350, 369, 98,
693 356, 258, 258, 359, 258, 347, 347, 347, 347, 347,
695 348, 719, 258, 349, 349, 96, 349, 351, 96, 351,
696 350, 96, 352, 352, 352, 352, 96, 96, 96, 98,
697 96, 96, 98, 96, 357, 98, 96, 96, 96, 96,
698 98, 98, 98, 96, 98, 98, 96, 98, 96, 96,
699 98, 98, 98, 98, 719, 96, 360, 98, 96, 96,
700 98, 96, 98, 98, 719, 96, 719, 719, 361, 98,
701 367, 368, 98, 98, 364, 98, 363, 372, 371, 98,
702 96, 365, 366, 373, 96, 370, 96, 374, 375, 96,
703 376, 96, 719, 96, 98, 719, 96, 96, 98, 380,
704 98, 96, 96, 98, 379, 98, 381, 98, 719, 377,
706 98, 98, 96, 378, 96, 98, 98, 96, 96, 96,
707 382, 96, 383, 96, 96, 719, 98, 96, 98, 96,
708 96, 98, 98, 98, 96, 98, 396, 98, 98, 385,
709 96, 98, 384, 98, 98, 388, 386, 96, 98, 389,
710 96, 719, 387, 96, 98, 96, 96, 96, 719, 719,
711 394, 98, 96, 719, 98, 390, 96, 98, 96, 98,
712 98, 98, 391, 392, 393, 96, 98, 395, 397, 96,
713 98, 400, 98, 96, 398, 96, 96, 399, 96, 98,
714 96, 96, 401, 98, 96, 719, 719, 98, 96, 98,
715 98, 96, 98, 719, 98, 98, 719, 402, 98, 404,
717 405, 409, 98, 403, 96, 98, 407, 406, 96, 408,
718 410, 96, 96, 719, 412, 96, 96, 414, 98, 415,
719 719, 416, 98, 96, 413, 98, 98, 411, 719, 98,
720 98, 719, 719, 719, 418, 719, 96, 98, 417, 343,
721 343, 343, 343, 719, 719, 343, 343, 343, 343, 345,
722 98, 345, 345, 345, 719, 96, 421, 422, 719, 434,
723 419, 352, 352, 352, 352, 719, 420, 345, 96, 98,
724 345, 345, 423, 345, 423, 437, 719, 424, 424, 424,
725 424, 425, 98, 426, 426, 426, 427, 96, 719, 349,
726 96, 349, 349, 349, 96, 424, 424, 424, 424, 425,
728 432, 98, 426, 426, 98, 426, 719, 349, 98, 427,
729 349, 349, 428, 349, 428, 96, 431, 429, 429, 429,
730 429, 352, 352, 352, 352, 719, 96, 96, 719, 98,
731 433, 96, 719, 96, 96, 430, 96, 430, 430, 430,
732 98, 98, 436, 435, 96, 98, 442, 98, 98, 96,
733 98, 96, 96, 430, 719, 719, 430, 430, 98, 430,
734 719, 96, 719, 98, 96, 98, 98, 96, 440, 438,
735 96, 96, 719, 96, 439, 98, 441, 96, 98, 96,
736 96, 98, 96, 445, 98, 98, 444, 98, 719, 443,
737 446, 98, 447, 98, 98, 719, 98, 96, 448, 96,
739 719, 96, 449, 719, 451, 96, 96, 96, 452, 453,
740 96, 98, 96, 98, 450, 98, 719, 455, 96, 98,
741 98, 98, 96, 96, 98, 96, 98, 96, 96, 454,
742 456, 96, 98, 719, 719, 719, 98, 98, 457, 98,
743 96, 98, 98, 96, 719, 98, 460, 458, 461, 459,
744 96, 96, 96, 464, 98, 719, 96, 98, 462, 466,
745 96, 96, 463, 96, 98, 98, 98, 96, 465, 468,
746 98, 475, 469, 96, 98, 98, 96, 98, 96, 96,
747 467, 98, 96, 96, 96, 96, 96, 98, 96, 96,
748 98, 473, 98, 98, 719, 470, 98, 98, 98, 98,
750 98, 96, 98, 98, 472, 471, 96, 719, 476, 96,
751 477, 474, 96, 478, 96, 98, 719, 480, 479, 482,
752 98, 484, 719, 98, 719, 487, 98, 481, 98, 485,
753 488, 719, 719, 96, 486, 719, 96, 719, 483, 96,
754 719, 719, 426, 490, 426, 426, 426, 98, 96, 492,
755 98, 489, 719, 98, 491, 424, 424, 424, 424, 719,
756 426, 96, 98, 426, 426, 719, 426, 719, 719, 345,
757 719, 345, 345, 345, 493, 98, 493, 495, 96, 494,
758 494, 494, 494, 429, 429, 429, 429, 345, 500, 496,
759 345, 345, 98, 345, 429, 429, 429, 429, 430, 96,
761 430, 430, 430, 96, 96, 719, 499, 96, 349, 719,
762 349, 349, 349, 98, 719, 719, 430, 98, 98, 430,
763 430, 98, 430, 96, 96, 719, 349, 96, 497, 349,
764 349, 96, 349, 96, 96, 498, 96, 98, 98, 506,
765 96, 98, 96, 96, 96, 98, 96, 98, 98, 96,
766 98, 501, 96, 96, 98, 96, 98, 98, 98, 502,
767 98, 503, 96, 98, 96, 96, 98, 98, 96, 98,
768 509, 96, 719, 504, 505, 508, 98, 510, 98, 98,
769 96, 719, 98, 719, 507, 98, 96, 511, 719, 719,
770 514, 515, 516, 517, 98, 518, 96, 512, 513, 96,
772 98, 96, 523, 519, 96, 520, 525, 96, 521, 522,
773 98, 96, 719, 98, 96, 98, 96, 719, 98, 96,
774 96, 98, 96, 524, 96, 98, 526, 96, 98, 96,
775 98, 527, 96, 98, 98, 96, 98, 528, 98, 96,
776 96, 98, 719, 98, 96, 96, 98, 96, 96, 98,
777 96, 530, 719, 98, 98, 96, 529, 531, 98, 98,
778 719, 98, 98, 533, 98, 96, 534, 96, 96, 98,
779 96, 96, 96, 719, 532, 494, 494, 494, 494, 98,
780 96, 98, 98, 96, 98, 98, 98, 538, 535, 96,
781 96, 96, 719, 719, 98, 719, 96, 98, 96, 536,
783 96, 537, 719, 98, 98, 98, 539, 540, 541, 544,
784 98, 96, 98, 96, 98, 96, 542, 546, 543, 494,
785 494, 494, 494, 719, 96, 98, 96, 98, 548, 98,
786 96, 545, 96, 426, 547, 426, 426, 426, 98, 96,
787 98, 549, 719, 719, 98, 96, 98, 96, 96, 96,
788 96, 426, 550, 98, 426, 426, 552, 426, 719, 98,
789 96, 98, 98, 98, 98, 551, 554, 719, 96, 553,
790 96, 96, 556, 96, 98, 96, 719, 719, 555, 96,
791 96, 557, 98, 719, 98, 98, 96, 98, 96, 98,
792 558, 561, 559, 98, 98, 719, 96, 560, 96, 96,
794 98, 719, 98, 96, 96, 562, 96, 96, 96, 563,
795 98, 565, 98, 98, 567, 564, 568, 98, 98, 96,
796 98, 98, 98, 96, 566, 96, 96, 96, 719, 96,
797 96, 96, 96, 98, 96, 719, 96, 98, 571, 98,
798 98, 98, 572, 98, 98, 98, 98, 96, 98, 569,
799 98, 570, 719, 96, 96, 96, 719, 96, 96, 719,
800 574, 98, 576, 575, 96, 579, 573, 98, 98, 98,
801 580, 98, 98, 581, 96, 96, 96, 96, 98, 577,
802 578, 719, 582, 96, 719, 96, 719, 96, 98, 98,
803 98, 98, 96, 96, 96, 584, 719, 98, 587, 98,
805 583, 98, 96, 588, 96, 586, 98, 98, 98, 96,
806 585, 589, 591, 590, 96, 96, 98, 96, 98, 719,
807 96, 96, 96, 98, 719, 592, 96, 96, 98, 98,
808 719, 98, 595, 593, 98, 98, 98, 96, 594, 719,
809 98, 98, 719, 96, 597, 600, 96, 96, 96, 596,
810 96, 98, 719, 602, 96, 96, 598, 98, 96, 719,
811 98, 98, 98, 599, 98, 601, 605, 606, 98, 98,
812 96, 96, 98, 607, 96, 603, 604, 96, 96, 96,
813 96, 96, 719, 96, 98, 98, 96, 96, 98, 96,
814 608, 98, 98, 98, 98, 98, 610, 98, 96, 611,
816 98, 98, 609, 98, 96, 719, 96, 613, 719, 96,
817 96, 96, 98, 615, 719, 618, 719, 616, 98, 620,
818 98, 96, 621, 98, 98, 98, 96, 719, 622, 614,
819 612, 617, 96, 96, 96, 98, 619, 719, 719, 623,
820 98, 625, 96, 626, 96, 96, 98, 98, 98, 96,
821 96, 628, 629, 624, 627, 96, 98, 96, 98, 98,
822 96, 719, 96, 98, 98, 96, 96, 96, 639, 98,
823 96, 98, 96, 630, 98, 632, 98, 631, 96, 98,
824 98, 98, 719, 633, 98, 96, 98, 96, 96, 719,
825 634, 635, 98, 96, 719, 96, 636, 96, 96, 98,
827 96, 98, 98, 637, 96, 96, 96, 98, 641, 98,
828 719, 98, 98, 96, 98, 96, 96, 640, 98, 98,
829 98, 642, 638, 643, 644, 96, 719, 98, 96, 98,
830 98, 96, 719, 96, 96, 96, 96, 96, 719, 98,
831 647, 646, 98, 96, 719, 98, 649, 98, 98, 98,
832 98, 98, 652, 645, 96, 654, 719, 98, 650, 719,
833 96, 719, 96, 648, 96, 96, 651, 655, 98, 96,
834 656, 659, 660, 661, 98, 653, 98, 96, 98, 98,
835 96, 96, 96, 98, 96, 96, 96, 96, 719, 96,
836 96, 98, 96, 96, 98, 98, 98, 96, 98, 98,
838 98, 98, 662, 98, 98, 96, 98, 98, 719, 719,
839 663, 98, 719, 96, 96, 96, 664, 96, 665, 98,
840 673, 666, 671, 667, 669, 674, 672, 98, 98, 98,
841 677, 98, 668, 676, 96, 96, 96, 670, 719, 96,
842 96, 719, 719, 96, 96, 675, 96, 96, 98, 98,
843 98, 96, 678, 98, 98, 679, 680, 98, 98, 719,
844 98, 98, 719, 96, 96, 98, 96, 96, 96, 96,
845 719, 96, 96, 682, 96, 96, 681, 98, 98, 684,
846 98, 98, 98, 98, 683, 98, 98, 96, 98, 98,
847 96, 96, 719, 685, 686, 96, 96, 719, 96, 96,
849 96, 98, 719, 689, 98, 98, 687, 688, 96, 98,
850 98, 691, 98, 98, 98, 696, 690, 96, 96, 692,
851 96, 96, 98, 693, 96, 694, 96, 719, 695, 719,
852 96, 98, 98, 96, 98, 98, 699, 701, 98, 96,
853 98, 697, 96, 698, 98, 719, 96, 98, 700, 96,
854 96, 703, 96, 98, 702, 96, 98, 706, 96, 704,
855 98, 96, 96, 98, 98, 96, 98, 709, 719, 98,
856 719, 719, 98, 707, 708, 98, 98, 705, 719, 98,
857 710, 719, 719, 719, 719, 719, 719, 719, 719, 719,
858 713, 719, 715, 719, 717, 719, 719, 711, 718, 712,
860 719, 719, 719, 719, 719, 714, 719, 719, 719, 719,
861 719, 719, 719, 719, 719, 716, 61, 61, 61, 61,
862 61, 61, 61, 61, 68, 68, 719, 68, 68, 68,
863 68, 68, 97, 719, 719, 719, 97, 97, 97, 168,
864 168, 168, 169, 169, 256, 256, 260, 260, 260, 261,
865 261, 658, 719, 658, 658, 658, 3, 719, 719, 719,
866 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
867 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
868 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
869 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
871 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
872 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
873 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
877 static yyconst short int yy_chk[2634] =
879 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
880 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
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, 10, 13, 13, 14,
887 19, 658, 22, 21, 22, 22, 22, 22, 30, 30,
888 23, 32, 19, 21, 21, 23, 14, 40, 33, 25,
890 25, 25, 25, 23, 26, 32, 28, 61, 26, 639,
891 101, 40, 33, 10, 24, 57, 24, 24, 24, 24,
892 25, 28, 34, 28, 28, 39, 34, 34, 98, 24,
893 96, 47, 24, 24, 24, 95, 24, 24, 91, 39,
894 34, 43, 38, 85, 61, 47, 49, 24, 25, 33,
895 40, 24, 24, 41, 24, 43, 38, 42, 44, 97,
896 49, 57, 24, 38, 38, 24, 45, 41, 38, 76,
897 46, 42, 44, 97, 48, 39, 69, 63, 38, 39,
898 45, 39, 47, 38, 46, 69, 37, 38, 48, 43,
899 41, 43, 100, 68, 42, 42, 38, 41, 42, 49,
901 43, 41, 49, 44, 41, 42, 44, 45, 42, 44,
902 29, 48, 46, 50, 51, 48, 52, 45, 53, 46,
903 46, 18, 54, 99, 46, 68, 15, 50, 51, 100,
904 52, 107, 53, 83, 55, 83, 54, 99, 83, 83,
905 83, 83, 105, 103, 9, 107, 3, 104, 55, 0,
906 108, 109, 110, 0, 50, 51, 105, 103, 51, 51,
907 52, 104, 0, 53, 108, 109, 110, 54, 53, 51,
908 51, 55, 51, 54, 99, 111, 52, 0, 55, 77,
909 77, 77, 77, 84, 84, 84, 0, 84, 0, 111,
910 107, 105, 77, 77, 103, 77, 77, 77, 104, 0,
912 108, 0, 84, 84, 0, 84, 109, 0, 112, 0,
913 77, 77, 110, 84, 77, 77, 114, 77, 81, 81,
914 81, 81, 112, 113, 111, 118, 119, 0, 115, 116,
915 114, 81, 81, 117, 81, 81, 81, 113, 125, 118,
916 119, 121, 115, 116, 120, 0, 0, 117, 0, 81,
917 81, 0, 125, 81, 81, 121, 81, 82, 120, 82,
918 82, 82, 82, 112, 113, 115, 116, 0, 119, 0,
919 114, 119, 82, 122, 123, 82, 82, 82, 0, 82,
920 118, 119, 124, 117, 126, 127, 120, 122, 123, 121,
921 82, 0, 120, 125, 82, 82, 124, 82, 126, 127,
923 128, 129, 130, 131, 135, 82, 106, 0, 137, 141,
924 132, 134, 0, 176, 128, 129, 130, 131, 135, 133,
925 106, 136, 137, 141, 132, 134, 138, 176, 123, 122,
926 0, 0, 0, 133, 139, 136, 127, 126, 124, 0,
927 138, 140, 0, 106, 106, 106, 106, 106, 139, 0,
928 176, 106, 0, 128, 135, 140, 129, 130, 133, 106,
929 106, 106, 132, 106, 141, 134, 137, 133, 142, 143,
930 136, 138, 139, 144, 133, 146, 145, 138, 147, 148,
931 150, 0, 142, 143, 140, 149, 151, 144, 152, 146,
932 145, 140, 147, 148, 150, 140, 140, 153, 0, 149,
934 151, 154, 152, 165, 165, 165, 165, 191, 174, 0,
935 144, 153, 143, 144, 145, 154, 0, 0, 211, 142,
936 146, 191, 174, 147, 144, 150, 144, 185, 0, 0,
937 143, 148, 211, 152, 150, 149, 152, 0, 0, 151,
938 0, 185, 159, 173, 159, 0, 154, 159, 159, 159,
939 159, 160, 153, 160, 160, 160, 162, 173, 162, 174,
940 175, 162, 162, 162, 162, 0, 164, 164, 164, 160,
941 164, 185, 160, 160, 175, 160, 161, 161, 161, 161,
942 163, 199, 163, 163, 163, 164, 164, 185, 164, 161,
943 161, 173, 161, 161, 161, 199, 164, 0, 163, 178,
945 0, 163, 163, 0, 163, 0, 177, 161, 161, 175,
946 187, 161, 161, 178, 161, 166, 166, 166, 166, 168,
947 177, 181, 179, 0, 187, 0, 199, 0, 180, 166,
948 183, 166, 166, 166, 182, 181, 179, 168, 168, 168,
949 168, 168, 180, 0, 183, 0, 0, 166, 182, 0,
950 166, 166, 184, 166, 177, 178, 168, 168, 186, 168,
951 177, 177, 179, 168, 188, 187, 184, 168, 189, 180,
952 0, 183, 186, 179, 190, 192, 193, 194, 188, 195,
953 181, 196, 189, 0, 182, 197, 198, 200, 190, 192,
954 193, 194, 201, 195, 0, 196, 0, 184, 0, 197,
956 198, 200, 203, 204, 0, 202, 201, 184, 189, 186,
957 190, 205, 188, 193, 206, 0, 203, 204, 194, 202,
958 207, 0, 208, 198, 209, 205, 192, 210, 206, 201,
959 0, 212, 195, 213, 207, 196, 208, 200, 209, 197,
960 197, 210, 202, 203, 204, 212, 214, 213, 204, 205,
961 202, 0, 215, 216, 218, 206, 0, 217, 219, 220,
962 214, 0, 222, 208, 210, 209, 215, 216, 218, 207,
963 217, 217, 219, 220, 223, 221, 222, 224, 225, 226,
964 227, 0, 228, 0, 213, 221, 0, 0, 223, 221,
965 229, 224, 225, 226, 227, 218, 228, 214, 216, 230,
967 220, 219, 232, 231, 229, 215, 0, 233, 234, 0,
968 237, 0, 0, 230, 235, 236, 232, 231, 238, 222,
969 226, 233, 234, 225, 237, 224, 223, 239, 235, 236,
970 241, 240, 238, 0, 243, 227, 242, 244, 228, 0,
971 245, 239, 248, 232, 241, 240, 246, 234, 243, 237,
972 242, 244, 230, 231, 245, 247, 248, 0, 0, 0,
973 246, 0, 233, 0, 261, 0, 235, 0, 262, 247,
974 263, 236, 240, 238, 249, 249, 249, 249, 261, 243,
975 245, 239, 262, 246, 263, 241, 265, 242, 264, 272,
976 248, 0, 244, 0, 247, 250, 250, 250, 250, 251,
978 265, 251, 264, 272, 251, 251, 251, 251, 250, 252,
979 268, 252, 252, 252, 253, 253, 253, 253, 263, 254,
980 254, 254, 254, 0, 268, 0, 250, 252, 272, 265,
981 252, 252, 254, 252, 255, 278, 255, 255, 255, 256,
982 264, 256, 256, 256, 256, 266, 0, 0, 269, 278,
983 254, 0, 255, 0, 0, 255, 255, 256, 255, 266,
984 256, 256, 269, 256, 0, 268, 0, 256, 257, 257,
985 257, 257, 258, 258, 258, 267, 258, 0, 257, 257,
986 257, 257, 257, 0, 257, 257, 257, 257, 278, 267,
987 266, 258, 258, 269, 258, 257, 257, 257, 257, 257,
989 257, 0, 258, 257, 257, 270, 257, 259, 271, 259,
990 257, 273, 259, 259, 259, 259, 274, 276, 275, 270,
991 280, 277, 271, 279, 267, 273, 281, 284, 282, 285,
992 274, 276, 275, 286, 280, 277, 287, 279, 283, 288,
993 281, 284, 282, 285, 0, 289, 270, 286, 290, 291,
994 287, 292, 283, 288, 0, 293, 0, 0, 271, 289,
995 276, 277, 290, 291, 274, 292, 273, 281, 280, 293,
996 294, 274, 275, 282, 295, 279, 296, 283, 284, 297,
997 286, 298, 0, 299, 294, 0, 300, 302, 295, 292,
998 296, 301, 303, 297, 291, 298, 293, 299, 0, 289,
1000 300, 302, 304, 290, 305, 301, 303, 307, 306, 309,
1001 294, 308, 295, 312, 311, 0, 304, 310, 305, 313,
1002 314, 307, 306, 309, 315, 308, 311, 312, 311, 297,
1003 317, 310, 296, 313, 314, 300, 298, 318, 315, 301,
1004 316, 0, 299, 319, 317, 320, 321, 322, 0, 0,
1005 309, 318, 323, 0, 316, 304, 326, 319, 325, 320,
1006 321, 322, 305, 306, 308, 324, 323, 310, 312, 328,
1007 326, 317, 325, 327, 314, 329, 330, 316, 331, 324,
1008 332, 333, 318, 328, 334, 0, 0, 327, 335, 329,
1009 330, 336, 331, 0, 332, 333, 0, 319, 334, 321,
1011 322, 326, 335, 320, 337, 336, 324, 323, 338, 325,
1012 327, 339, 340, 0, 329, 353, 341, 331, 337, 332,
1013 0, 333, 338, 357, 330, 339, 340, 328, 0, 353,
1014 341, 0, 0, 0, 336, 0, 360, 357, 335, 342,
1015 342, 342, 342, 0, 0, 343, 343, 343, 343, 345,
1016 360, 345, 345, 345, 0, 355, 340, 341, 343, 357,
1017 337, 351, 351, 351, 351, 0, 339, 345, 354, 355,
1018 345, 345, 346, 345, 346, 360, 343, 346, 346, 346,
1019 346, 347, 354, 347, 347, 347, 347, 356, 0, 349,
1020 358, 349, 349, 349, 359, 423, 423, 423, 423, 347,
1022 355, 356, 347, 347, 358, 347, 0, 349, 359, 347,
1023 349, 349, 350, 349, 350, 361, 354, 350, 350, 350,
1024 350, 352, 352, 352, 352, 0, 362, 363, 0, 361,
1025 356, 364, 0, 365, 366, 352, 367, 352, 352, 352,
1026 362, 363, 359, 358, 368, 364, 365, 365, 366, 369,
1027 367, 370, 372, 352, 0, 0, 352, 352, 368, 352,
1028 0, 371, 0, 369, 373, 370, 372, 374, 363, 361,
1029 375, 376, 0, 377, 362, 371, 364, 378, 373, 379,
1030 380, 374, 381, 368, 375, 376, 367, 377, 0, 366,
1031 369, 378, 370, 379, 380, 0, 381, 382, 371, 383,
1033 0, 384, 372, 0, 374, 385, 387, 386, 375, 377,
1034 388, 382, 389, 383, 373, 384, 0, 380, 390, 385,
1035 387, 386, 391, 392, 388, 393, 389, 394, 396, 379,
1036 381, 395, 390, 0, 0, 0, 391, 392, 382, 393,
1037 397, 394, 396, 398, 0, 395, 385, 383, 386, 384,
1038 399, 400, 401, 389, 397, 0, 402, 398, 387, 391,
1039 405, 403, 388, 404, 399, 400, 401, 406, 390, 394,
1040 402, 403, 395, 407, 405, 403, 408, 404, 409, 410,
1041 393, 406, 411, 412, 413, 414, 415, 407, 417, 416,
1042 408, 401, 409, 410, 0, 398, 411, 412, 413, 414,
1044 415, 418, 417, 416, 400, 399, 419, 0, 404, 420,
1045 405, 402, 421, 407, 422, 418, 0, 409, 408, 411,
1046 419, 413, 0, 420, 0, 416, 421, 410, 422, 414,
1047 416, 0, 0, 436, 415, 0, 431, 0, 412, 432,
1048 0, 0, 426, 419, 426, 426, 426, 436, 460, 421,
1049 431, 418, 0, 432, 420, 424, 424, 424, 424, 0,
1050 426, 435, 460, 426, 426, 0, 426, 0, 0, 424,
1051 0, 424, 424, 424, 427, 435, 427, 431, 433, 427,
1052 427, 427, 427, 428, 428, 428, 428, 424, 436, 432,
1053 424, 424, 433, 424, 429, 429, 429, 429, 430, 434,
1055 430, 430, 430, 437, 438, 0, 435, 439, 429, 0,
1056 429, 429, 429, 434, 0, 0, 430, 437, 438, 430,
1057 430, 439, 430, 440, 441, 0, 429, 442, 433, 429,
1058 429, 443, 429, 445, 444, 434, 447, 440, 441, 442,
1059 446, 442, 448, 451, 449, 443, 452, 445, 444, 450,
1060 447, 437, 454, 453, 446, 455, 448, 451, 449, 438,
1061 452, 439, 456, 450, 457, 458, 454, 453, 461, 455,
1062 445, 459, 0, 440, 441, 444, 456, 446, 457, 458,
1063 462, 0, 461, 0, 443, 459, 463, 447, 0, 0,
1064 450, 451, 452, 453, 462, 453, 464, 448, 449, 465,
1066 463, 466, 456, 453, 467, 453, 458, 468, 454, 455,
1067 464, 469, 0, 465, 470, 466, 471, 0, 467, 472,
1068 473, 468, 474, 457, 475, 469, 459, 476, 470, 477,
1069 471, 462, 478, 472, 473, 479, 474, 463, 475, 480,
1070 481, 476, 0, 477, 482, 483, 478, 484, 485, 479,
1071 486, 470, 0, 480, 481, 487, 466, 471, 482, 483,
1072 0, 484, 485, 474, 486, 488, 476, 489, 490, 487,
1073 491, 492, 495, 0, 472, 493, 493, 493, 493, 488,
1074 496, 489, 490, 497, 491, 492, 495, 486, 481, 498,
1075 499, 501, 0, 0, 496, 0, 500, 497, 502, 482,
1077 503, 484, 0, 498, 499, 501, 487, 488, 489, 492,
1078 500, 504, 502, 506, 503, 505, 490, 496, 491, 494,
1079 494, 494, 494, 0, 507, 504, 508, 506, 499, 505,
1080 509, 495, 510, 494, 497, 494, 494, 494, 507, 511,
1081 508, 500, 0, 0, 509, 512, 510, 513, 514, 515,
1082 516, 494, 503, 511, 494, 494, 505, 494, 0, 512,
1083 519, 513, 514, 515, 516, 504, 508, 0, 517, 507,
1084 518, 520, 510, 521, 519, 522, 0, 0, 509, 523,
1085 524, 511, 517, 0, 518, 520, 525, 521, 526, 522,
1086 512, 516, 513, 523, 524, 0, 527, 515, 528, 529,
1088 525, 0, 526, 530, 531, 517, 532, 533, 534, 517,
1089 527, 519, 528, 529, 521, 518, 522, 530, 531, 535,
1090 532, 533, 534, 536, 520, 537, 538, 539, 0, 540,
1091 541, 542, 543, 535, 544, 0, 545, 536, 529, 537,
1092 538, 539, 530, 540, 541, 542, 543, 546, 544, 527,
1093 545, 528, 0, 547, 548, 549, 0, 550, 551, 0,
1094 533, 546, 536, 534, 556, 539, 532, 547, 548, 549,
1095 541, 550, 551, 543, 553, 552, 554, 555, 556, 537,
1096 538, 0, 544, 557, 0, 558, 0, 559, 553, 552,
1097 554, 555, 560, 561, 562, 547, 0, 557, 550, 558,
1099 546, 559, 563, 551, 564, 549, 560, 561, 562, 565,
1100 548, 552, 554, 553, 566, 567, 563, 568, 564, 0,
1101 569, 570, 571, 565, 0, 555, 572, 574, 566, 567,
1102 0, 568, 561, 558, 569, 570, 571, 573, 559, 0,
1103 572, 574, 0, 575, 563, 565, 576, 577, 578, 562,
1104 579, 573, 0, 568, 580, 581, 563, 575, 582, 0,
1105 576, 577, 578, 564, 579, 566, 571, 572, 580, 581,
1106 583, 584, 582, 573, 585, 569, 570, 586, 587, 589,
1107 588, 590, 0, 591, 583, 584, 592, 593, 585, 594,
1108 576, 586, 587, 589, 588, 590, 579, 591, 595, 582,
1110 592, 593, 578, 594, 596, 0, 597, 584, 0, 598,
1111 599, 600, 595, 586, 0, 589, 0, 587, 596, 591,
1112 597, 601, 592, 598, 599, 600, 602, 0, 593, 585,
1113 583, 588, 603, 604, 605, 601, 590, 0, 0, 594,
1114 602, 596, 606, 597, 607, 608, 603, 604, 605, 609,
1115 610, 599, 600, 595, 598, 611, 606, 612, 607, 608,
1116 613, 0, 614, 609, 610, 615, 616, 617, 616, 611,
1117 618, 612, 619, 601, 613, 605, 614, 602, 620, 615,
1118 616, 617, 0, 607, 618, 621, 619, 622, 623, 0,
1119 608, 610, 620, 624, 0, 625, 613, 626, 627, 621,
1121 628, 622, 623, 614, 629, 630, 631, 624, 619, 625,
1122 0, 626, 627, 632, 628, 633, 635, 617, 629, 630,
1123 631, 621, 615, 622, 623, 634, 0, 632, 636, 633,
1124 635, 637, 0, 638, 642, 640, 641, 643, 0, 634,
1125 628, 627, 636, 644, 0, 637, 630, 638, 642, 640,
1126 641, 643, 633, 626, 645, 635, 0, 644, 631, 0,
1127 646, 0, 647, 629, 648, 649, 632, 637, 645, 651,
1128 638, 640, 641, 643, 646, 634, 647, 652, 648, 649,
1129 650, 653, 654, 651, 656, 660, 655, 661, 0, 659,
1130 662, 652, 663, 664, 650, 653, 654, 665, 656, 660,
1132 655, 661, 645, 659, 662, 666, 663, 664, 0, 0,
1133 646, 665, 0, 667, 669, 668, 648, 670, 649, 666,
1134 656, 650, 655, 651, 653, 659, 655, 667, 669, 668,
1135 664, 670, 652, 663, 671, 672, 673, 654, 0, 674,
1136 676, 0, 0, 675, 677, 662, 678, 679, 671, 672,
1137 673, 681, 665, 674, 676, 666, 668, 675, 677, 0,
1138 678, 679, 0, 682, 680, 681, 683, 684, 685, 686,
1139 0, 687, 690, 673, 688, 689, 672, 682, 680, 675,
1140 683, 684, 685, 686, 673, 687, 690, 691, 688, 689,
1141 692, 693, 0, 676, 677, 694, 695, 0, 696, 697,
1143 698, 691, 0, 681, 692, 693, 678, 680, 699, 694,
1144 695, 683, 696, 697, 698, 690, 682, 700, 701, 684,
1145 702, 703, 699, 686, 704, 688, 705, 0, 689, 0,
1146 706, 700, 701, 708, 702, 703, 693, 695, 704, 707,
1147 705, 691, 709, 692, 706, 0, 710, 708, 694, 711,
1148 712, 698, 713, 707, 697, 714, 709, 701, 715, 699,
1149 710, 716, 717, 711, 712, 718, 713, 706, 0, 714,
1150 0, 0, 715, 703, 704, 716, 717, 700, 0, 718,
1151 707, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1152 711, 0, 713, 0, 715, 0, 0, 709, 717, 710,
1154 0, 0, 0, 0, 0, 712, 0, 0, 0, 0,
1155 0, 0, 0, 0, 0, 714, 720, 720, 720, 720,
1156 720, 720, 720, 720, 721, 721, 0, 721, 721, 721,
1157 721, 721, 722, 0, 0, 0, 722, 722, 722, 723,
1158 723, 723, 724, 724, 725, 725, 726, 726, 726, 727,
1159 727, 728, 0, 728, 728, 728, 719, 719, 719, 719,
1160 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
1161 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
1162 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
1163 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
1165 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
1166 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
1167 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
1171 static yy_state_type yy_last_accepting_state;
1172 static char *yy_last_accepting_cpos;
1174 /* The intent behind this definition is that it'll catch
1175 * any uses of REJECT which flex missed.
1177 #define REJECT reject_used_but_not_detected
1178 #define yymore() yymore_used_but_not_detected
1179 #define YY_MORE_ADJ 0
1180 #define YY_RESTORE_YY_MORE_OFFSET
1184 #define YY_NO_UNPUT 1
1187 #define YYLTYPE Location
1188 #define YY_NEVER_INTERACTIVE 1 // Avoid calling isatty on eC File object
1190 #include "grammar.h"
1193 public void SetEchoOn(bool b) { echoOn = b; }
1195 extern YYLTYPE type_yylloc;
1196 extern YYLTYPE expression_yylloc;
1198 extern File fileInput;
1204 yylloc.end.charPos += yyleng;
1205 yylloc.end.pos += yyleng;
1206 type_yylloc.end.charPos += yyleng;
1207 type_yylloc.end.pos += yyleng;
1208 expression_yylloc.end.charPos += yyleng;
1209 expression_yylloc.end.pos += yyleng;
1212 #define YY_USER_ACTION \
1216 yylloc.end.charPos += yyleng;
1217 yylloc.end.pos += yyleng;
1220 #define YY_INPUT(buf,result,max_size) \
1221 result = fileInput.Read(buf, 1, max_size) \
1223 YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
1224 File fileStack[MAX_INCLUDE_DEPTH];
1225 char sourceFileStack[MAX_INCLUDE_DEPTH][MAX_LOCATION];
1226 public void SetSomeSourceFileStack(const char * fileName, int index) { strcpy(sourceFileStack[index], fileName); }
1227 YYLTYPE locStack[MAX_INCLUDE_DEPTH];
1228 AccessMode declModeStack[MAX_INCLUDE_DEPTH];
1229 int include_stack_ptr = 0;
1234 #line 1235 "lexer.ec"
1236 /* Macros after this point can all be overridden by user definitions in
1240 #ifndef YY_SKIP_YYWRAP
1242 extern "C" int yywrap YY_PROTO(( void ));
1244 extern int yywrap YY_PROTO(( void ));
1249 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1253 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1256 #ifdef YY_NEED_STRLEN
1257 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1262 static int yyinput YY_PROTO(( void ));
1264 static int input YY_PROTO(( void ));
1269 static int yy_start_stack_ptr = 0;
1270 static int yy_start_stack_depth = 0;
1271 static int *yy_start_stack = 0;
1272 #ifndef YY_NO_PUSH_STATE
1273 static void yy_push_state YY_PROTO(( int new_state ));
1275 #ifndef YY_NO_POP_STATE
1276 static void yy_pop_state YY_PROTO(( void ));
1278 #ifndef YY_NO_TOP_STATE
1279 static int yy_top_state YY_PROTO(( void ));
1283 #define YY_NO_PUSH_STATE 1
1284 #define YY_NO_POP_STATE 1
1285 #define YY_NO_TOP_STATE 1
1288 #ifdef YY_MALLOC_DECL
1296 /* Just try to get by without declaring the routines. This will fail
1297 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1298 * or sizeof(void*) != sizeof(int).
1303 /* Amount of stuff to slurp up with each read. */
1304 #ifndef YY_READ_BUF_SIZE
1305 #define YY_READ_BUF_SIZE 8192
1308 /* Copy whatever the last rule matched to the standard output. */
1311 /* This used to be an fputs(), but since the string might contain NUL's,
1312 * we now use fwrite().
1314 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1317 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1318 * is returned in "result".
1321 #define YY_INPUT(buf,result,max_size) \
1322 if ( yy_current_buffer->yy_is_interactive ) \
1325 for ( n = 0; n < max_size && \
1326 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1327 buf[n] = (char) c; \
1329 buf[n++] = (char) c; \
1330 if ( c == EOF && ferror( yyin ) ) \
1331 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1334 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1335 && ferror( yyin ) ) \
1336 YY_FATAL_ERROR( "input in flex scanner failed" );
1339 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1340 * we don't want an extra ';' after the "return" because that will cause
1341 * some compilers to complain about unreachable statements.
1344 #define yyterminate() return YY_NULL
1347 /* Number of entries by which start-condition stack grows. */
1348 #ifndef YY_START_STACK_INCR
1349 #define YY_START_STACK_INCR 25
1352 /* Report a fatal error. */
1353 #ifndef YY_FATAL_ERROR
1354 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1357 /* Default declaration of generated scanner - a define so the user can
1358 * easily add parameters.
1361 #define YY_DECL int yylex YY_PROTO(( void ))
1364 /* Code executed at the beginning of each rule, after yytext and yyleng
1367 #ifndef YY_USER_ACTION
1368 #define YY_USER_ACTION
1371 /* Code executed at the end of each rule. */
1373 #define YY_BREAK break;
1376 #define YY_RULE_SETUP \
1381 register yy_state_type yy_current_state;
1382 register char *yy_cp, *yy_bp;
1383 register int yy_act;
1389 yylloc.start = yylloc.end;
1390 type_yylloc.start = type_yylloc.end;
1391 expression_yylloc.start = expression_yylloc.end;
1394 #line 1395 "lexer.ec"
1405 yy_start = 1; /* first start state */
1413 if ( ! yy_current_buffer )
1415 yy_create_buffer( yyin, YY_BUF_SIZE );
1417 yy_load_buffer_state();
1420 while ( 1 ) /* loops until end-of-file is reached */
1424 /* Support of yytext. */
1425 *yy_cp = yy_hold_char;
1427 /* yy_bp points to the position in yy_ch_buf of the start of
1432 yy_current_state = yy_start;
1436 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1437 if ( yy_accept[yy_current_state] )
1439 yy_last_accepting_state = yy_current_state;
1440 yy_last_accepting_cpos = yy_cp;
1442 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1444 yy_current_state = (int) yy_def[yy_current_state];
1445 if ( yy_current_state >= 720 )
1446 yy_c = yy_meta[(unsigned int) yy_c];
1448 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1451 while ( yy_base[yy_current_state] != 2557 );
1454 yy_act = yy_accept[yy_current_state];
1456 { /* have to back up */
1457 yy_cp = yy_last_accepting_cpos;
1458 yy_current_state = yy_last_accepting_state;
1459 yy_act = yy_accept[yy_current_state];
1462 YY_DO_BEFORE_ACTION;
1465 do_action: /* This label is used only to access EOF actions. */
1469 { /* beginning of action switch */
1470 case 0: /* must back up */
1471 /* undo the effects of YY_DO_BEFORE_ACTION */
1472 *yy_cp = yy_hold_char;
1473 yy_cp = yy_last_accepting_cpos;
1474 yy_current_state = yy_last_accepting_state;
1475 goto yy_find_action;
1520 { return(CONTINUE); }
1525 { return(DEFAULT); }
1582 /* "uint16" { return(UINT16); } */
1583 /* "uint32" { return(UINT32); } */
1584 /* "bool" { return(BOOL_TOKEN); } */
1593 { return(REGISTER); }
1628 { return(ALIGNOF); }
1653 { return(TYPEDEF); }
1663 { return(UNSIGNED); }
1673 { return(VOLATILE); }
1678 { return(VOLATILE); }
1683 { return(VOLATILE); }
1693 { return(PROPERTY); }
1698 { return(SETPROP); } // TODO: Don't make this a keyword...
1703 { return(GETPROP); } // TODO: Don't make this a keyword...
1708 { return(ISPROPSET); } // TODO: Don't make this a keyword...
1718 { return(THISCLASS); }
1723 { return(VIRTUAL); }
1793 { return(_COMPLEX); }
1798 { return(_IMAGINARY); }
1803 { return(EXT_DECL); }
1805 /* "__attribute__".?"(("({D}|{L})*"))" { return(EXT_ATTRIB); } */
1806 /* DID I MEAN? "__attribute__"" "*"(("" "*({D}|{L})*" "*("("({D}|{L})*(" "*","" "*({D}|{L})*)*" "*")")?" "*"))" { return(EXT_ATTRIB); } */
1808 "__attribute_deprecated__"(" "*)"(("(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*)(","(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*))*"))" { return(EXT_ATTRIB); }
1809 "__attribute__" (" "*)"(("(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*)(","(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*))*"))" { return(EXT_ATTRIB); }
1810 "__attribute" (" "*)"(("(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*)(","(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*))*"))" { return(EXT_ATTRIB); }
1813 [__attribute__] [spaces]
1815 [digits | letters] [spaces]
1816 ( [(] [digits or letters or "] ( [spaces] [,] [spaces] [digits or letters or "] )* [spaces] [)] )?
1818 ( [,] [spaces] [digits or letters] [spaces]
1819 ( [(] [digits or letters or "]
1820 ( [spaces] [,] [spaces] [digits or letters or "] )* [spaces] [)]
1825 /* "__attribute__".?"((".?({D}|{L})*.?("("({D}|{L})*(.?",".?({D}|{L})*)*.?")")?.?"))" { return(EXT_ATTRIB); } */
1826 /* "__attribute".?"((".?({D}|{L})*.?("("({D}|{L})*(.?",".?({D}|{L})*)*.?")")?.?"))" { return(EXT_ATTRIB); }*/
1830 { return ATTRIB_DEP; }
1840 { return __ATTRIB; }
1845 { return(EXT_STORAGE); }
1850 { return(EXT_STORAGE); }
1855 { return(EXT_STORAGE); }
1860 { return(EXT_STORAGE); }
1865 { return(EXT_STORAGE); }
1870 { return(EXT_STORAGE); }
1875 { return(EXT_STORAGE); }
1880 { return(EXT_DECL); }
1885 { return(EXT_DECL); }
1890 { return(EXT_DECL); }
1895 { return(EXT_DECL); }
1900 { return(EXT_DECL); }
1905 { return(EXT_DECL); }
1910 { return(EXT_DECL); }
1915 { return(EXT_DECL); }
1925 { return(PRIVATE); }
1930 { return(TYPED_OBJECT); }
1935 { return(ANY_OBJECT); }
1940 { return(_INCREF); }
1945 { return(EXTENSION); }
1950 { return(EXTENSION); }
1980 { return(STOPWATCHING); }
1985 { return(FIREWATCHERS); }
1990 { return(WATCHABLE); }
1995 { return(CLASS_DESIGNER); }
2000 { return(CLASS_NO_EXPANSION); }
2005 { return(CLASS_FIXED); }
2010 { return(CLASS_DEFAULT_PROPERTY); }
2015 { return(PROPERTY_CATEGORY); }
2020 { return(CLASS_DATA); }
2025 { return(CLASS_PROPERTY); }
2030 { return(SUBCLASS); }
2035 { return(NAMESPACE); }
2040 { return(DBTABLE); }
2045 { return(DBFIELD); }
2050 { return(DBINDEX); }
2055 { return(DATABASE_OPEN); }
2060 { return(check_type()); } // {L}({L}|{D})* { return(check_type()); } // ("::"|(({IDENT}"::")*)){IDENT} { return(check_type()); } // {L}({L}|{D})* { return(check_type()); }
2065 { return(CONSTANT); }
2070 { return(CONSTANT); }
2075 { return(CONSTANT); }
2080 { return(CONSTANT); }
2085 { return(CONSTANT); }
2090 { return(CONSTANT); }
2095 { return(CONSTANT); }
2100 { return(CONSTANT); }
2105 { return(CONSTANT); }
2110 { return(CONSTANT); }
2115 { return(STRING_LITERAL); }
2120 { return(ELLIPSIS); }
2125 { return(RIGHT_ASSIGN); }
2130 { return(LEFT_ASSIGN); }
2135 { return(ADD_ASSIGN); }
2140 { return(SUB_ASSIGN); }
2145 { return(MUL_ASSIGN); }
2150 { return(DIV_ASSIGN); }
2155 { return(MOD_ASSIGN); }
2160 { return(AND_ASSIGN); }
2165 { return(XOR_ASSIGN); }
2170 { return(OR_ASSIGN); }
2175 { return(RIGHT_OP); }
2180 { return(LEFT_OP); }
2227 /* "::" { return(CLASS_OP); } */
2353 case YY_STATE_EOF(INITIAL):
2356 while(include_stack_ptr && !fileStack[include_stack_ptr-1])
2358 --include_stack_ptr;
2359 defaultDeclMode = declMode = structDeclMode = declModeStack[include_stack_ptr];
2362 if ( --include_stack_ptr < 0 )
2364 include_stack_ptr = 0;
2370 yy_delete_buffer( YY_CURRENT_BUFFER );
2371 fileInput = fileStack[include_stack_ptr];
2372 yylloc = locStack[include_stack_ptr];
2373 type_yylloc = locStack[include_stack_ptr];
2374 expression_yylloc = locStack[include_stack_ptr];
2375 yy_switch_to_buffer(include_stack[include_stack_ptr] );
2376 defaultDeclMode = declMode = structDeclMode = declModeStack[include_stack_ptr];
2383 { yylloc.start = yylloc.end; type_yylloc.start = type_yylloc.end; expression_yylloc.start = expression_yylloc.end;}
2389 yylloc.end.charPos = 1; yylloc.end.line += yyleng; yylloc.start = yylloc.end;
2390 type_yylloc.end.charPos = 1; type_yylloc.end.line += yyleng; type_yylloc.start = type_yylloc.end;
2391 expression_yylloc.end.charPos = 1; expression_yylloc.end.line += yyleng; expression_yylloc.start = expression_yylloc.end;
2398 yylloc.start.charPos++ /*= 3 - (yylloc.start.col % 3)*/; yylloc.end.charPos = yylloc.start.charPos; yylloc.start.pos = yylloc.end.pos;
2399 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;
2400 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;
2406 { yylloc.start = yylloc.end; expression_yylloc.start = expression_yylloc.end; type_yylloc.start = type_yylloc.end; }
2412 yylloc.start = yylloc.end; expression_yylloc.start = expression_yylloc.end; type_yylloc.start = type_yylloc.end;
2414 printf("lexer error: invalid char 0x%X at line %d, col %d\n", (unsigned char)yytext[0], yylloc.start.line, yylloc.start.charPos);
2423 #line 2424 "lexer.ec"
2425 case YY_END_OF_BUFFER:
2427 /* Amount of text matched not including the EOB char. */
2428 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2430 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2431 *yy_cp = yy_hold_char;
2432 YY_RESTORE_YY_MORE_OFFSET
2434 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2436 /* We're scanning a new file or input source. It's
2437 * possible that this happened because the user
2438 * just pointed yyin at a new source and called
2439 * yylex(). If so, then we have to assure
2440 * consistency between yy_current_buffer and our
2441 * globals. Here is the right place to do so, because
2442 * this is the first action (other than possibly a
2443 * back-up) that will match for the new input source.
2445 yy_n_chars = yy_current_buffer->yy_n_chars;
2446 yy_current_buffer->yy_input_file = yyin;
2447 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2450 /* Note that here we test for yy_c_buf_p "<=" to the position
2451 * of the first EOB in the buffer, since yy_c_buf_p will
2452 * already have been incremented past the NUL character
2453 * (since all states make transitions on EOB to the
2454 * end-of-buffer state). Contrast this with the test
2457 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2458 { /* This was really a NUL. */
2459 yy_state_type yy_next_state;
2461 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2463 yy_current_state = yy_get_previous_state();
2465 /* Okay, we're now positioned to make the NUL
2466 * transition. We couldn't have
2467 * yy_get_previous_state() go ahead and do it
2468 * for us because it doesn't know how to deal
2469 * with the possibility of jamming (and we don't
2470 * want to build jamming into it because then it
2471 * will run more slowly).
2474 yy_next_state = yy_try_NUL_trans( yy_current_state );
2476 yy_bp = yytext_ptr + YY_MORE_ADJ;
2478 if ( yy_next_state )
2480 /* Consume the NUL. */
2481 yy_cp = ++yy_c_buf_p;
2482 yy_current_state = yy_next_state;
2489 goto yy_find_action;
2493 else switch ( yy_get_next_buffer() )
2495 case EOB_ACT_END_OF_FILE:
2497 yy_did_buffer_switch_on_eof = 0;
2501 /* Note: because we've taken care in
2502 * yy_get_next_buffer() to have set up
2503 * yytext, we can now set up
2504 * yy_c_buf_p so that if some total
2505 * hoser (like flex itself) wants to
2506 * call the scanner after we return the
2507 * YY_NULL, it'll still work - another
2508 * YY_NULL will get returned.
2510 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2512 yy_act = YY_STATE_EOF(YY_START);
2518 if ( ! yy_did_buffer_switch_on_eof )
2524 case EOB_ACT_CONTINUE_SCAN:
2526 yytext_ptr + yy_amount_of_matched_text;
2528 yy_current_state = yy_get_previous_state();
2531 yy_bp = yytext_ptr + YY_MORE_ADJ;
2534 case EOB_ACT_LAST_MATCH:
2536 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2538 yy_current_state = yy_get_previous_state();
2541 yy_bp = yytext_ptr + YY_MORE_ADJ;
2542 goto yy_find_action;
2549 "fatal flex scanner internal error--no action found" );
2550 } /* end of action switch */
2551 } /* end of scanning one token */
2552 } /* end of yylex */
2555 /* yy_get_next_buffer - try to read in a new buffer
2557 * Returns a code representing an action:
2558 * EOB_ACT_LAST_MATCH -
2559 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2560 * EOB_ACT_END_OF_FILE - end of file
2563 static int yy_get_next_buffer()
2565 register char *dest = yy_current_buffer->yy_ch_buf;
2566 register char *source = yytext_ptr;
2567 register int number_to_move, i;
2570 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2572 "fatal flex scanner internal error--end of buffer missed" );
2574 if ( yy_current_buffer->yy_fill_buffer == 0 )
2575 { /* Don't try to fill the buffer, so this is an EOF. */
2576 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2578 /* We matched a single character, the EOB, so
2579 * treat this as a final EOF.
2581 return EOB_ACT_END_OF_FILE;
2586 /* We matched some text prior to the EOB, first
2589 return EOB_ACT_LAST_MATCH;
2593 /* Try to read more data. */
2595 /* First move last chars to start of buffer. */
2596 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2598 for ( i = 0; i < number_to_move; ++i )
2599 *(dest++) = *(source++);
2601 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2602 /* don't do the read, it's not guaranteed to return an EOF,
2605 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2610 yy_current_buffer->yy_buf_size - number_to_move - 1;
2612 while ( num_to_read <= 0 )
2613 { /* Not enough room in the buffer - grow it. */
2614 #ifdef YY_USES_REJECT
2616 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2619 /* just a shorter name for the current buffer */
2620 YY_BUFFER_STATE b = yy_current_buffer;
2622 int yy_c_buf_p_offset =
2623 (int) (yy_c_buf_p - b->yy_ch_buf);
2625 if ( b->yy_is_our_buffer )
2627 int new_size = b->yy_buf_size * 2;
2629 if ( new_size <= 0 )
2630 b->yy_buf_size += b->yy_buf_size / 8;
2632 b->yy_buf_size *= 2;
2634 b->yy_ch_buf = (char *)
2635 /* Include room in for 2 EOB chars. */
2636 yy_flex_realloc( (void *) b->yy_ch_buf,
2637 b->yy_buf_size + 2 );
2640 /* Can't grow it, we don't own it. */
2643 if ( ! b->yy_ch_buf )
2645 "fatal error - scanner input buffer overflow" );
2647 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2649 num_to_read = yy_current_buffer->yy_buf_size -
2654 if ( num_to_read > YY_READ_BUF_SIZE )
2655 num_to_read = YY_READ_BUF_SIZE;
2657 /* Read in more data. */
2658 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2659 yy_n_chars, num_to_read );
2661 yy_current_buffer->yy_n_chars = yy_n_chars;
2664 if ( yy_n_chars == 0 )
2666 if ( number_to_move == YY_MORE_ADJ )
2668 ret_val = EOB_ACT_END_OF_FILE;
2674 ret_val = EOB_ACT_LAST_MATCH;
2675 yy_current_buffer->yy_buffer_status =
2676 YY_BUFFER_EOF_PENDING;
2681 ret_val = EOB_ACT_CONTINUE_SCAN;
2683 yy_n_chars += number_to_move;
2684 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2685 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2687 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2693 /* yy_get_previous_state - get the state just before the EOB char was reached */
2695 static yy_state_type yy_get_previous_state()
2697 register yy_state_type yy_current_state;
2698 register char *yy_cp;
2700 yy_current_state = yy_start;
2702 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2704 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2705 if ( yy_accept[yy_current_state] )
2707 yy_last_accepting_state = yy_current_state;
2708 yy_last_accepting_cpos = yy_cp;
2710 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2712 yy_current_state = (int) yy_def[yy_current_state];
2713 if ( yy_current_state >= 720 )
2714 yy_c = yy_meta[(unsigned int) yy_c];
2716 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2719 return yy_current_state;
2723 /* yy_try_NUL_trans - try to make a transition on the NUL character
2726 * next_state = yy_try_NUL_trans( current_state );
2729 #ifdef YY_USE_PROTOS
2730 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2732 static yy_state_type yy_try_NUL_trans( yy_current_state )
2733 yy_state_type yy_current_state;
2736 register int yy_is_jam;
2737 register char *yy_cp = yy_c_buf_p;
2739 register YY_CHAR yy_c = 1;
2740 if ( yy_accept[yy_current_state] )
2742 yy_last_accepting_state = yy_current_state;
2743 yy_last_accepting_cpos = yy_cp;
2745 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2747 yy_current_state = (int) yy_def[yy_current_state];
2748 if ( yy_current_state >= 720 )
2749 yy_c = yy_meta[(unsigned int) yy_c];
2751 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2752 yy_is_jam = (yy_current_state == 719);
2754 return yy_is_jam ? 0 : yy_current_state;
2759 #ifdef YY_USE_PROTOS
2760 static void yyunput( int c, register char *yy_bp )
2762 static void yyunput( c, yy_bp )
2764 register char *yy_bp;
2767 register char *yy_cp = yy_c_buf_p;
2769 /* undo effects of setting up yytext */
2770 *yy_cp = yy_hold_char;
2772 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2773 { /* need to shift things up to make room */
2774 /* +2 for EOB chars. */
2775 register int number_to_move = yy_n_chars + 2;
2776 register char *dest = &yy_current_buffer->yy_ch_buf[
2777 yy_current_buffer->yy_buf_size + 2];
2778 register char *source =
2779 &yy_current_buffer->yy_ch_buf[number_to_move];
2781 while ( source > yy_current_buffer->yy_ch_buf )
2782 *--dest = *--source;
2784 yy_cp += (int) (dest - source);
2785 yy_bp += (int) (dest - source);
2786 yy_current_buffer->yy_n_chars =
2787 yy_n_chars = yy_current_buffer->yy_buf_size;
2789 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2790 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2793 *--yy_cp = (char) c;
2797 yy_hold_char = *yy_cp;
2800 #endif /* ifndef YY_NO_UNPUT */
2804 static int yyinput()
2811 *yy_c_buf_p = yy_hold_char;
2813 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2815 /* yy_c_buf_p now points to the character we want to return.
2816 * If this occurs *before* the EOB characters, then it's a
2817 * valid NUL; if not, then we've hit the end of the buffer.
2819 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2820 /* This was really a NUL. */
2824 { /* need more input */
2825 int offset = yy_c_buf_p - yytext_ptr;
2828 switch ( yy_get_next_buffer() )
2830 case EOB_ACT_LAST_MATCH:
2831 /* This happens because yy_g_n_b()
2832 * sees that we've accumulated a
2833 * token and flags that we need to
2834 * try matching the token before
2835 * proceeding. But for input(),
2836 * there's no matching to consider.
2837 * So convert the EOB_ACT_LAST_MATCH
2838 * to EOB_ACT_END_OF_FILE.
2841 /* Reset buffer status. */
2846 case EOB_ACT_END_OF_FILE:
2851 if ( ! yy_did_buffer_switch_on_eof )
2860 case EOB_ACT_CONTINUE_SCAN:
2861 yy_c_buf_p = yytext_ptr + offset;
2867 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
2868 *yy_c_buf_p = '\0'; /* preserve yytext */
2869 yy_hold_char = *++yy_c_buf_p;
2876 #ifdef YY_USE_PROTOS
2877 void yyrestart( FILE *input_file )
2879 void yyrestart( input_file )
2883 if ( ! yy_current_buffer )
2884 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2886 yy_init_buffer( yy_current_buffer, input_file );
2887 yy_load_buffer_state();
2891 #ifdef YY_USE_PROTOS
2892 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2894 void yy_switch_to_buffer( new_buffer )
2895 YY_BUFFER_STATE new_buffer;
2898 if ( yy_current_buffer == new_buffer )
2901 if ( yy_current_buffer )
2903 /* Flush out information for old buffer. */
2904 *yy_c_buf_p = yy_hold_char;
2905 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2906 yy_current_buffer->yy_n_chars = yy_n_chars;
2909 yy_current_buffer = new_buffer;
2910 yy_load_buffer_state();
2912 /* We don't actually know whether we did this switch during
2913 * EOF (yywrap()) processing, but the only time this flag
2914 * is looked at is after yywrap() is called, so it's safe
2915 * to go ahead and always set it.
2917 yy_did_buffer_switch_on_eof = 1;
2921 #ifdef YY_USE_PROTOS
2922 void yy_load_buffer_state( void )
2924 void yy_load_buffer_state()
2927 yy_n_chars = yy_current_buffer->yy_n_chars;
2928 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2929 yyin = yy_current_buffer->yy_input_file;
2930 yy_hold_char = *yy_c_buf_p;
2934 #ifdef YY_USE_PROTOS
2935 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2937 YY_BUFFER_STATE yy_create_buffer( file, size )
2944 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2946 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2948 b->yy_buf_size = size;
2950 /* yy_ch_buf has to be 2 characters longer than the size given because
2951 * we need to put in 2 end-of-buffer characters.
2953 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2954 if ( ! b->yy_ch_buf )
2955 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2957 b->yy_is_our_buffer = 1;
2959 yy_init_buffer( b, file );
2965 #ifdef YY_USE_PROTOS
2966 void yy_delete_buffer( YY_BUFFER_STATE b )
2968 void yy_delete_buffer( b )
2975 if ( b == yy_current_buffer )
2976 yy_current_buffer = (YY_BUFFER_STATE) 0;
2978 if ( b->yy_is_our_buffer )
2979 yy_flex_free( (void *) b->yy_ch_buf );
2981 yy_flex_free( (void *) b );
2985 #ifndef YY_ALWAYS_INTERACTIVE
2986 #ifndef YY_NEVER_INTERACTIVE
2987 extern int isatty YY_PROTO(( int ));
2991 #ifdef YY_USE_PROTOS
2992 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2994 void yy_init_buffer( b, file )
3001 yy_flush_buffer( b );
3003 b->yy_input_file = file;
3004 b->yy_fill_buffer = 1;
3006 #if YY_ALWAYS_INTERACTIVE
3007 b->yy_is_interactive = 1;
3009 #if YY_NEVER_INTERACTIVE
3010 b->yy_is_interactive = 0;
3012 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3018 #ifdef YY_USE_PROTOS
3019 void yy_flush_buffer( YY_BUFFER_STATE b )
3021 void yy_flush_buffer( b )
3031 /* We always need two end-of-buffer characters. The first causes
3032 * a transition to the end-of-buffer state. The second causes
3033 * a jam in that state.
3035 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3036 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3038 b->yy_buf_pos = &b->yy_ch_buf[0];
3041 b->yy_buffer_status = YY_BUFFER_NEW;
3043 if ( b == yy_current_buffer )
3044 yy_load_buffer_state();
3048 #ifndef YY_NO_SCAN_BUFFER
3049 #ifdef YY_USE_PROTOS
3050 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3052 YY_BUFFER_STATE yy_scan_buffer( base, size )
3060 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3061 base[size-1] != YY_END_OF_BUFFER_CHAR )
3062 /* They forgot to leave room for the EOB's. */
3065 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3067 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3069 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3070 b->yy_buf_pos = b->yy_ch_buf = base;
3071 b->yy_is_our_buffer = 0;
3072 b->yy_input_file = 0;
3073 b->yy_n_chars = b->yy_buf_size;
3074 b->yy_is_interactive = 0;
3076 b->yy_fill_buffer = 0;
3077 b->yy_buffer_status = YY_BUFFER_NEW;
3079 yy_switch_to_buffer( b );
3086 #ifndef YY_NO_SCAN_STRING
3087 #ifdef YY_USE_PROTOS
3088 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3090 YY_BUFFER_STATE yy_scan_string( yy_str )
3091 yyconst char *yy_str;
3095 for ( len = 0; yy_str[len]; ++len )
3098 return yy_scan_bytes( yy_str, len );
3103 #ifndef YY_NO_SCAN_BYTES
3104 #ifdef YY_USE_PROTOS
3105 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3107 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3108 yyconst char *bytes;
3117 /* Get memory for full buffer, including space for trailing EOB's. */
3119 buf = (char *) yy_flex_alloc( n );
3121 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3123 for ( i = 0; i < len; ++i )
3126 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3128 b = yy_scan_buffer( buf, n );
3130 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3132 /* It's okay to grow etc. this buffer, and we should throw it
3133 * away when we're done.
3135 b->yy_is_our_buffer = 1;
3142 #ifndef YY_NO_PUSH_STATE
3143 #ifdef YY_USE_PROTOS
3144 static void yy_push_state( int new_state )
3146 static void yy_push_state( new_state )
3150 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3154 yy_start_stack_depth += YY_START_STACK_INCR;
3155 new_size = yy_start_stack_depth * sizeof( int );
3157 if ( ! yy_start_stack )
3158 yy_start_stack = (int *) yy_flex_alloc( new_size );
3161 yy_start_stack = (int *) yy_flex_realloc(
3162 (void *) yy_start_stack, new_size );
3164 if ( ! yy_start_stack )
3166 "out of memory expanding start-condition stack" );
3169 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3176 #ifndef YY_NO_POP_STATE
3177 static void yy_pop_state()
3179 if ( --yy_start_stack_ptr < 0 )
3180 YY_FATAL_ERROR( "start-condition stack underflow" );
3182 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3187 #ifndef YY_NO_TOP_STATE
3188 static int yy_top_state()
3190 return yy_start_stack[yy_start_stack_ptr - 1];
3194 #ifndef YY_EXIT_FAILURE
3195 #define YY_EXIT_FAILURE 2
3198 #ifdef YY_USE_PROTOS
3199 static void yy_fatal_error( yyconst char msg[] )
3201 static void yy_fatal_error( msg )
3205 (void) fprintf( stderr, "%s\n", msg );
3206 exit( YY_EXIT_FAILURE );
3211 /* Redefine yyless() so it works in section 3 code. */
3217 /* Undo effects of setting up yytext. */ \
3218 yytext[yyleng] = yy_hold_char; \
3219 yy_c_buf_p = yytext + n; \
3220 yy_hold_char = *yy_c_buf_p; \
3221 *yy_c_buf_p = '\0'; \
3227 /* Internal utility routines. */
3230 #ifdef YY_USE_PROTOS
3231 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3233 static void yy_flex_strncpy( s1, s2, n )
3240 for ( i = 0; i < n; ++i )
3245 #ifdef YY_NEED_STRLEN
3246 #ifdef YY_USE_PROTOS
3247 static int yy_flex_strlen( yyconst char *s )
3249 static int yy_flex_strlen( s )
3254 for ( n = 0; s[n]; ++n )
3262 #ifdef YY_USE_PROTOS
3263 static void *yy_flex_alloc( yy_size_t size )
3265 static void *yy_flex_alloc( size )
3269 return (void *) malloc( size );
3272 #ifdef YY_USE_PROTOS
3273 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3275 static void *yy_flex_realloc( ptr, size )
3280 /* The cast to (char *) in the following accommodates both
3281 * implementations that use char* generic pointers, and those
3282 * that use void* generic pointers. It works with the latter
3283 * because both ANSI C and C++ allow castless assignment from
3284 * any pointer type to void*, and deal with argument conversions
3285 * as though doing an assignment.
3287 return (void *) realloc( (char *) ptr, size );
3290 #ifdef YY_USE_PROTOS
3291 static void yy_flex_free( void *ptr )
3293 static void yy_flex_free( ptr )
3325 // fputc(c, output);
3329 yylloc.end.charPos = 1;
3335 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3340 yylloc.end.charPos++;
3343 if(c == '/' && last == '*')
3347 yylloc.start = yylloc.end;
3353 int c; //, last = 0;
3359 // fputc(c, output);
3363 yylloc.end.charPos = 1;
3370 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3375 yylloc.end.charPos++;
3380 yylloc.start = yylloc.end;
3399 yylloc.end.charPos = 1;
3404 char * pointer = line + 1;
3407 lineNumber = GetValue(&pointer);
3410 char fileName[MAX_LOCATION];
3415 GetString(&pointer, fileName, MAX_LOCATION);
3416 inOut = GetValue(&pointer);
3420 char extension[MAX_EXTENSION];
3422 defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
3424 GetExtension(fileName, extension);
3425 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
3426 declMode = defaultDeclMode = structDeclMode = defaultAccess;
3428 fileStack[include_stack_ptr] = null;
3429 include_stack_ptr++;
3433 include_stack_ptr--;
3434 defaultDeclMode = declMode = structDeclMode = declModeStack[include_stack_ptr];
3437 yylloc.end.charPos = 1;
3438 yylloc.end.line = lineNumber;
3439 //yylloc.end.pos -= count;
3441 if(include_stack_ptr > 0 || (lineNumber && fileName[0]))
3442 yylloc.end.included = GetIncludeFileID(fileName);
3444 yylloc.end.included = 0;
3447 int lineNumber = strtol(line+1, &endPtr, 0);
3453 yylloc.end.charPos = 1;
3454 yylloc.end.line = lineNumber;
3455 yylloc.end.pos -= count;
3464 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3473 yylloc.end.charPos++;
3479 yylloc.start = yylloc.end;
3482 TrimLSpaces(line, line);
3483 for(c = 0; line[c] && line[c] != ' '; c++);
3484 if(!strncmp(line, "include", c))
3486 char includeFile[MAX_LOCATION] = "";
3488 memmove(line, line+c, strlen(line+c)+1);
3489 TrimLSpaces(line, line);
3492 for(c = 1; line[c]; c++)
3496 strncpy(includeFile, line+1, c-1);
3497 includeFile[c-1] = '\0';
3502 else if(line[0] == '<')
3504 for(c = 1; line[c]; c++)
3507 strncpy(includeFile, line+1, c-1);
3508 includeFile[c-1] = '\0';
3513 if ( include_stack_ptr >= MAX_INCLUDE_DEPTH )
3515 fprintf( stderr, $"Includes nested too deeply" );
3519 if(inCompiler || !FindIncludeFileID(includeFile))
3521 File file = OpenIncludeFile(includeFile);
3524 char extension[MAX_EXTENSION];
3526 fileStack[include_stack_ptr] = fileInput;
3527 locStack[include_stack_ptr] = yylloc;
3528 defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
3529 include_stack[include_stack_ptr++] = YY_CURRENT_BUFFER;
3531 yylloc.start.charPos = yylloc.end.charPos = 1;
3532 yylloc.start.line = yylloc.end.line = 1;
3533 yylloc.start.pos = yylloc.end.pos = 0;
3534 yylloc.start.included = yylloc.end.included = GetIncludeFileID(includeFile);
3536 GetExtension(includeFile, extension);
3537 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
3538 declMode = defaultDeclMode = structDeclMode = defaultAccess;
3541 yy_switch_to_buffer( yy_create_buffer( fileInput, YY_BUF_SIZE ) );
3549 public void resetScanner()
3552 yylloc.start.charPos = yylloc.end.charPos = 1;
3553 yylloc.start.line = yylloc.end.line = 1;
3554 yylloc.start.pos = yylloc.end.pos = 0;
3555 yylloc.start.included = yylloc.end.included = 0;
3557 expression_yylloc.start.charPos = expression_yylloc.end.charPos = 1;
3558 expression_yylloc.start.line = expression_yylloc.end.line = 1;
3559 expression_yylloc.start.pos = expression_yylloc.end.pos = 0;
3560 expression_yylloc.start.included = expression_yylloc.end.included = 0;
3562 type_yylloc.start.charPos = type_yylloc.end.charPos = 1;
3563 type_yylloc.start.line = type_yylloc.end.line = 1;
3564 type_yylloc.start.pos = type_yylloc.end.pos = 0;
3565 type_yylloc.start.included = type_yylloc.end.included = 0;
3567 include_stack_ptr = 0;
3570 void resetScannerPos(CodePosition pos)
3573 yylloc.start = yylloc.end = pos;
3574 type_yylloc.start = type_yylloc.end = pos;
3575 expression_yylloc.start = expression_yylloc.end = pos;
3581 YYLTYPE type_yylloc;
3582 YYLTYPE expression_yylloc;
3584 AccessMode declMode;
3585 AccessMode defaultDeclMode;
3588 YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
3589 File fileStack[MAX_INCLUDE_DEPTH];
3590 char sourceFileStack[MAX_INCLUDE_DEPTH][MAX_LOCATION];
3591 YYLTYPE locStack[MAX_INCLUDE_DEPTH];
3592 AccessMode declModeStack[MAX_INCLUDE_DEPTH];
3593 int include_stack_ptr;
3594 YY_BUFFER_STATE buffer;
3607 LexerBackup pushLexer()
3609 LexerBackup backup { };
3611 backup.yylloc = yylloc;
3612 backup.type_yylloc = type_yylloc;
3613 backup.expression_yylloc = expression_yylloc;
3614 backup.fileInput = fileInput;
3615 memcpy(backup.include_stack, include_stack, sizeof(include_stack));
3616 memcpy(backup.fileStack, fileStack, sizeof(fileStack));
3617 memcpy(backup.sourceFileStack, sourceFileStack, sizeof(sourceFileStack));
3618 memcpy(backup.locStack, locStack, sizeof(locStack));
3619 memcpy(backup.declModeStack, declModeStack, sizeof(declModeStack));
3620 backup.include_stack_ptr = include_stack_ptr;
3621 backup.defaultDeclMode = defaultDeclMode;
3622 backup.declMode = declMode;
3623 backup.buffer = yy_current_buffer;
3625 backup.yy_n_chars = yy_n_chars;
3626 backup.yytext_ptr = yytext_ptr;
3627 backup.yy_c_buf_p = yy_c_buf_p;
3629 backup.yy_hold_char = yy_hold_char;
3630 backup.yychar = yychar;
3631 backup.yy_init = yy_init;
3632 backup.yy_start = yy_start;
3636 yy_current_buffer = 0;
3638 yylloc.start.charPos = yylloc.end.charPos = 1;
3639 yylloc.start.line = yylloc.end.line = 1;
3640 yylloc.start.pos = yylloc.end.pos = 0;
3641 yylloc.start.included = yylloc.end.included = 0;
3643 expression_yylloc.start.charPos = expression_yylloc.end.charPos = 1;
3644 expression_yylloc.start.line = expression_yylloc.end.line = 1;
3645 expression_yylloc.start.pos = expression_yylloc.end.pos = 0;
3646 expression_yylloc.start.included = expression_yylloc.end.included = 0;
3648 type_yylloc.start.charPos = type_yylloc.end.charPos = 1;
3649 type_yylloc.start.line = type_yylloc.end.line = 1;
3650 type_yylloc.start.pos = type_yylloc.end.pos = 0;
3651 type_yylloc.start.included = type_yylloc.end.included = 0;
3653 include_stack_ptr = 0;
3658 void popLexer(LexerBackup backup)
3660 yylloc = backup.yylloc;
3661 type_yylloc = backup.type_yylloc;
3662 expression_yylloc = backup.expression_yylloc;
3663 fileInput = backup.fileInput;
3664 memcpy(include_stack, backup.include_stack, sizeof(include_stack));
3665 memcpy(fileStack, backup.fileStack, sizeof(fileStack));
3666 memcpy(sourceFileStack, backup.sourceFileStack, sizeof(sourceFileStack));
3667 memcpy(locStack, backup.locStack, sizeof(locStack));
3668 memcpy(declModeStack, backup.declModeStack, sizeof(declModeStack));
3669 include_stack_ptr = backup.include_stack_ptr;
3670 defaultDeclMode = backup.defaultDeclMode;
3671 declMode = structDeclMode = backup.declMode;
3673 // yy_switch_to_buffer(backup.buffer);
3674 yy_current_buffer = backup.buffer;
3675 yy_n_chars = backup.yy_n_chars;
3676 yytext_ptr = backup.yytext_ptr;
3677 yy_c_buf_p = backup.yy_c_buf_p;
3679 yy_hold_char = backup.yy_hold_char;
3680 yychar = backup.yychar;
3681 yy_init = backup.yy_init;
3682 yy_start = backup.yy_start;