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
1186 #define YYLTYPE Location
1187 #define YY_NEVER_INTERACTIVE 1 // Avoid calling isatty on eC File object
1189 #include "grammar.h"
1192 public void SetEchoOn(bool b) { echoOn = b; }
1194 extern YYLTYPE type_yylloc;
1195 extern YYLTYPE expression_yylloc;
1197 extern File fileInput;
1203 yylloc.end.charPos += yyleng;
1204 yylloc.end.pos += yyleng;
1205 type_yylloc.end.charPos += yyleng;
1206 type_yylloc.end.pos += yyleng;
1207 expression_yylloc.end.charPos += yyleng;
1208 expression_yylloc.end.pos += yyleng;
1211 #define YY_USER_ACTION \
1215 yylloc.end.charPos += yyleng;
1216 yylloc.end.pos += yyleng;
1219 #define YY_INPUT(buf,result,max_size) \
1220 result = fileInput.Read(buf, 1, max_size) \
1222 YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
1223 File fileStack[MAX_INCLUDE_DEPTH];
1224 char sourceFileStack[MAX_INCLUDE_DEPTH][MAX_LOCATION];
1225 public void SetSomeSourceFileStack(char * fileName, int index) { strcpy(sourceFileStack[index], fileName); }
1226 YYLTYPE locStack[MAX_INCLUDE_DEPTH];
1227 AccessMode declModeStack[MAX_INCLUDE_DEPTH];
1228 int include_stack_ptr = 0;
1233 #line 1234 "lexer.ec"
1235 /* Macros after this point can all be overridden by user definitions in
1239 #ifndef YY_SKIP_YYWRAP
1241 extern "C" int yywrap YY_PROTO(( void ));
1243 extern int yywrap YY_PROTO(( void ));
1248 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1252 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1255 #ifdef YY_NEED_STRLEN
1256 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1261 static int yyinput YY_PROTO(( void ));
1263 static int input YY_PROTO(( void ));
1268 static int yy_start_stack_ptr = 0;
1269 static int yy_start_stack_depth = 0;
1270 static int *yy_start_stack = 0;
1271 #ifndef YY_NO_PUSH_STATE
1272 static void yy_push_state YY_PROTO(( int new_state ));
1274 #ifndef YY_NO_POP_STATE
1275 static void yy_pop_state YY_PROTO(( void ));
1277 #ifndef YY_NO_TOP_STATE
1278 static int yy_top_state YY_PROTO(( void ));
1282 #define YY_NO_PUSH_STATE 1
1283 #define YY_NO_POP_STATE 1
1284 #define YY_NO_TOP_STATE 1
1287 #ifdef YY_MALLOC_DECL
1295 /* Just try to get by without declaring the routines. This will fail
1296 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1297 * or sizeof(void*) != sizeof(int).
1302 /* Amount of stuff to slurp up with each read. */
1303 #ifndef YY_READ_BUF_SIZE
1304 #define YY_READ_BUF_SIZE 8192
1307 /* Copy whatever the last rule matched to the standard output. */
1310 /* This used to be an fputs(), but since the string might contain NUL's,
1311 * we now use fwrite().
1313 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1316 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1317 * is returned in "result".
1320 #define YY_INPUT(buf,result,max_size) \
1321 if ( yy_current_buffer->yy_is_interactive ) \
1324 for ( n = 0; n < max_size && \
1325 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1326 buf[n] = (char) c; \
1328 buf[n++] = (char) c; \
1329 if ( c == EOF && ferror( yyin ) ) \
1330 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1333 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1334 && ferror( yyin ) ) \
1335 YY_FATAL_ERROR( "input in flex scanner failed" );
1338 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1339 * we don't want an extra ';' after the "return" because that will cause
1340 * some compilers to complain about unreachable statements.
1343 #define yyterminate() return YY_NULL
1346 /* Number of entries by which start-condition stack grows. */
1347 #ifndef YY_START_STACK_INCR
1348 #define YY_START_STACK_INCR 25
1351 /* Report a fatal error. */
1352 #ifndef YY_FATAL_ERROR
1353 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1356 /* Default declaration of generated scanner - a define so the user can
1357 * easily add parameters.
1360 #define YY_DECL int yylex YY_PROTO(( void ))
1363 /* Code executed at the beginning of each rule, after yytext and yyleng
1366 #ifndef YY_USER_ACTION
1367 #define YY_USER_ACTION
1370 /* Code executed at the end of each rule. */
1372 #define YY_BREAK break;
1375 #define YY_RULE_SETUP \
1380 register yy_state_type yy_current_state;
1381 register char *yy_cp, *yy_bp;
1382 register int yy_act;
1388 yylloc.start = yylloc.end;
1389 type_yylloc.start = type_yylloc.end;
1390 expression_yylloc.start = expression_yylloc.end;
1393 #line 1394 "lexer.ec"
1404 yy_start = 1; /* first start state */
1412 if ( ! yy_current_buffer )
1414 yy_create_buffer( yyin, YY_BUF_SIZE );
1416 yy_load_buffer_state();
1419 while ( 1 ) /* loops until end-of-file is reached */
1423 /* Support of yytext. */
1424 *yy_cp = yy_hold_char;
1426 /* yy_bp points to the position in yy_ch_buf of the start of
1431 yy_current_state = yy_start;
1435 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1436 if ( yy_accept[yy_current_state] )
1438 yy_last_accepting_state = yy_current_state;
1439 yy_last_accepting_cpos = yy_cp;
1441 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1443 yy_current_state = (int) yy_def[yy_current_state];
1444 if ( yy_current_state >= 720 )
1445 yy_c = yy_meta[(unsigned int) yy_c];
1447 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1450 while ( yy_base[yy_current_state] != 2557 );
1453 yy_act = yy_accept[yy_current_state];
1455 { /* have to back up */
1456 yy_cp = yy_last_accepting_cpos;
1457 yy_current_state = yy_last_accepting_state;
1458 yy_act = yy_accept[yy_current_state];
1461 YY_DO_BEFORE_ACTION;
1464 do_action: /* This label is used only to access EOF actions. */
1468 { /* beginning of action switch */
1469 case 0: /* must back up */
1470 /* undo the effects of YY_DO_BEFORE_ACTION */
1471 *yy_cp = yy_hold_char;
1472 yy_cp = yy_last_accepting_cpos;
1473 yy_current_state = yy_last_accepting_state;
1474 goto yy_find_action;
1519 { return(CONTINUE); }
1524 { return(DEFAULT); }
1581 /* "uint16" { return(UINT16); } */
1582 /* "uint32" { return(UINT32); } */
1583 /* "bool" { return(BOOL_TOKEN); } */
1592 { return(REGISTER); }
1627 { return(ALIGNOF); }
1652 { return(TYPEDEF); }
1662 { return(UNSIGNED); }
1672 { return(VOLATILE); }
1677 { return(VOLATILE); }
1682 { return(VOLATILE); }
1692 { return(PROPERTY); }
1697 { return(SETPROP); } // TODO: Don't make this a keyword...
1702 { return(GETPROP); } // TODO: Don't make this a keyword...
1707 { return(ISPROPSET); } // TODO: Don't make this a keyword...
1717 { return(THISCLASS); }
1722 { return(VIRTUAL); }
1792 { return(_COMPLEX); }
1797 { return(_IMAGINARY); }
1802 { return(EXT_DECL); }
1804 /* "__attribute__".?"(("({D}|{L})*"))" { return(EXT_ATTRIB); } */
1805 /* DID I MEAN? "__attribute__"" "*"(("" "*({D}|{L})*" "*("("({D}|{L})*(" "*","" "*({D}|{L})*)*" "*")")?" "*"))" { return(EXT_ATTRIB); } */
1807 "__attribute_deprecated__"(" "*)"(("(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*)(","(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*))*"))" { return(EXT_ATTRIB); }
1808 "__attribute__" (" "*)"(("(" "*)({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); }
1812 [__attribute__] [spaces]
1814 [digits | letters] [spaces]
1815 ( [(] [digits or letters or "] ( [spaces] [,] [spaces] [digits or letters or "] )* [spaces] [)] )?
1817 ( [,] [spaces] [digits or letters] [spaces]
1818 ( [(] [digits or letters or "]
1819 ( [spaces] [,] [spaces] [digits or letters or "] )* [spaces] [)]
1824 /* "__attribute__".?"((".?({D}|{L})*.?("("({D}|{L})*(.?",".?({D}|{L})*)*.?")")?.?"))" { return(EXT_ATTRIB); } */
1825 /* "__attribute".?"((".?({D}|{L})*.?("("({D}|{L})*(.?",".?({D}|{L})*)*.?")")?.?"))" { return(EXT_ATTRIB); }*/
1829 { return ATTRIB_DEP; }
1839 { return __ATTRIB; }
1844 { return(EXT_STORAGE); }
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_DECL); }
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(EXT_DECL); }
1924 { return(PRIVATE); }
1929 { return(TYPED_OBJECT); }
1934 { return(ANY_OBJECT); }
1939 { return(_INCREF); }
1944 { return(EXTENSION); }
1949 { return(EXTENSION); }
1979 { return(STOPWATCHING); }
1984 { return(FIREWATCHERS); }
1989 { return(WATCHABLE); }
1994 { return(CLASS_DESIGNER); }
1999 { return(CLASS_NO_EXPANSION); }
2004 { return(CLASS_FIXED); }
2009 { return(CLASS_DEFAULT_PROPERTY); }
2014 { return(PROPERTY_CATEGORY); }
2019 { return(CLASS_DATA); }
2024 { return(CLASS_PROPERTY); }
2029 { return(SUBCLASS); }
2034 { return(NAMESPACE); }
2039 { return(DBTABLE); }
2044 { return(DBFIELD); }
2049 { return(DBINDEX); }
2054 { return(DATABASE_OPEN); }
2059 { return(check_type()); } // {L}({L}|{D})* { return(check_type()); } // ("::"|(({IDENT}"::")*)){IDENT} { return(check_type()); } // {L}({L}|{D})* { return(check_type()); }
2064 { return(CONSTANT); }
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(STRING_LITERAL); }
2119 { return(ELLIPSIS); }
2124 { return(RIGHT_ASSIGN); }
2129 { return(LEFT_ASSIGN); }
2134 { return(ADD_ASSIGN); }
2139 { return(SUB_ASSIGN); }
2144 { return(MUL_ASSIGN); }
2149 { return(DIV_ASSIGN); }
2154 { return(MOD_ASSIGN); }
2159 { return(AND_ASSIGN); }
2164 { return(XOR_ASSIGN); }
2169 { return(OR_ASSIGN); }
2174 { return(RIGHT_OP); }
2179 { return(LEFT_OP); }
2226 /* "::" { return(CLASS_OP); } */
2352 case YY_STATE_EOF(INITIAL):
2355 while(include_stack_ptr && !fileStack[include_stack_ptr-1])
2357 --include_stack_ptr;
2358 defaultDeclMode = declMode = structDeclMode = declModeStack[include_stack_ptr];
2361 if ( --include_stack_ptr < 0 )
2363 include_stack_ptr = 0;
2369 yy_delete_buffer( YY_CURRENT_BUFFER );
2370 fileInput = fileStack[include_stack_ptr];
2371 yylloc = locStack[include_stack_ptr];
2372 type_yylloc = locStack[include_stack_ptr];
2373 expression_yylloc = locStack[include_stack_ptr];
2374 yy_switch_to_buffer(include_stack[include_stack_ptr] );
2375 defaultDeclMode = declMode = structDeclMode = declModeStack[include_stack_ptr];
2382 { yylloc.start = yylloc.end; type_yylloc.start = type_yylloc.end; expression_yylloc.start = expression_yylloc.end;}
2388 yylloc.end.charPos = 1; yylloc.end.line += yyleng; yylloc.start = yylloc.end;
2389 type_yylloc.end.charPos = 1; type_yylloc.end.line += yyleng; type_yylloc.start = type_yylloc.end;
2390 expression_yylloc.end.charPos = 1; expression_yylloc.end.line += yyleng; expression_yylloc.start = expression_yylloc.end;
2397 yylloc.start.charPos++ /*= 3 - (yylloc.start.col % 3)*/; yylloc.end.charPos = yylloc.start.charPos; yylloc.start.pos = yylloc.end.pos;
2398 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;
2399 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;
2405 { yylloc.start = yylloc.end; expression_yylloc.start = expression_yylloc.end; type_yylloc.start = type_yylloc.end; }
2411 yylloc.start = yylloc.end; expression_yylloc.start = expression_yylloc.end; type_yylloc.start = type_yylloc.end;
2413 printf("lexer error: invalid char 0x%X at line %d, col %d\n", (unsigned char)yytext[0], yylloc.start.line, yylloc.start.charPos);
2422 #line 2423 "lexer.ec"
2424 case YY_END_OF_BUFFER:
2426 /* Amount of text matched not including the EOB char. */
2427 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2429 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2430 *yy_cp = yy_hold_char;
2431 YY_RESTORE_YY_MORE_OFFSET
2433 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2435 /* We're scanning a new file or input source. It's
2436 * possible that this happened because the user
2437 * just pointed yyin at a new source and called
2438 * yylex(). If so, then we have to assure
2439 * consistency between yy_current_buffer and our
2440 * globals. Here is the right place to do so, because
2441 * this is the first action (other than possibly a
2442 * back-up) that will match for the new input source.
2444 yy_n_chars = yy_current_buffer->yy_n_chars;
2445 yy_current_buffer->yy_input_file = yyin;
2446 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2449 /* Note that here we test for yy_c_buf_p "<=" to the position
2450 * of the first EOB in the buffer, since yy_c_buf_p will
2451 * already have been incremented past the NUL character
2452 * (since all states make transitions on EOB to the
2453 * end-of-buffer state). Contrast this with the test
2456 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2457 { /* This was really a NUL. */
2458 yy_state_type yy_next_state;
2460 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2462 yy_current_state = yy_get_previous_state();
2464 /* Okay, we're now positioned to make the NUL
2465 * transition. We couldn't have
2466 * yy_get_previous_state() go ahead and do it
2467 * for us because it doesn't know how to deal
2468 * with the possibility of jamming (and we don't
2469 * want to build jamming into it because then it
2470 * will run more slowly).
2473 yy_next_state = yy_try_NUL_trans( yy_current_state );
2475 yy_bp = yytext_ptr + YY_MORE_ADJ;
2477 if ( yy_next_state )
2479 /* Consume the NUL. */
2480 yy_cp = ++yy_c_buf_p;
2481 yy_current_state = yy_next_state;
2488 goto yy_find_action;
2492 else switch ( yy_get_next_buffer() )
2494 case EOB_ACT_END_OF_FILE:
2496 yy_did_buffer_switch_on_eof = 0;
2500 /* Note: because we've taken care in
2501 * yy_get_next_buffer() to have set up
2502 * yytext, we can now set up
2503 * yy_c_buf_p so that if some total
2504 * hoser (like flex itself) wants to
2505 * call the scanner after we return the
2506 * YY_NULL, it'll still work - another
2507 * YY_NULL will get returned.
2509 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2511 yy_act = YY_STATE_EOF(YY_START);
2517 if ( ! yy_did_buffer_switch_on_eof )
2523 case EOB_ACT_CONTINUE_SCAN:
2525 yytext_ptr + yy_amount_of_matched_text;
2527 yy_current_state = yy_get_previous_state();
2530 yy_bp = yytext_ptr + YY_MORE_ADJ;
2533 case EOB_ACT_LAST_MATCH:
2535 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2537 yy_current_state = yy_get_previous_state();
2540 yy_bp = yytext_ptr + YY_MORE_ADJ;
2541 goto yy_find_action;
2548 "fatal flex scanner internal error--no action found" );
2549 } /* end of action switch */
2550 } /* end of scanning one token */
2551 } /* end of yylex */
2554 /* yy_get_next_buffer - try to read in a new buffer
2556 * Returns a code representing an action:
2557 * EOB_ACT_LAST_MATCH -
2558 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2559 * EOB_ACT_END_OF_FILE - end of file
2562 static int yy_get_next_buffer()
2564 register char *dest = yy_current_buffer->yy_ch_buf;
2565 register char *source = yytext_ptr;
2566 register int number_to_move, i;
2569 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2571 "fatal flex scanner internal error--end of buffer missed" );
2573 if ( yy_current_buffer->yy_fill_buffer == 0 )
2574 { /* Don't try to fill the buffer, so this is an EOF. */
2575 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2577 /* We matched a single character, the EOB, so
2578 * treat this as a final EOF.
2580 return EOB_ACT_END_OF_FILE;
2585 /* We matched some text prior to the EOB, first
2588 return EOB_ACT_LAST_MATCH;
2592 /* Try to read more data. */
2594 /* First move last chars to start of buffer. */
2595 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2597 for ( i = 0; i < number_to_move; ++i )
2598 *(dest++) = *(source++);
2600 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2601 /* don't do the read, it's not guaranteed to return an EOF,
2604 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2609 yy_current_buffer->yy_buf_size - number_to_move - 1;
2611 while ( num_to_read <= 0 )
2612 { /* Not enough room in the buffer - grow it. */
2613 #ifdef YY_USES_REJECT
2615 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2618 /* just a shorter name for the current buffer */
2619 YY_BUFFER_STATE b = yy_current_buffer;
2621 int yy_c_buf_p_offset =
2622 (int) (yy_c_buf_p - b->yy_ch_buf);
2624 if ( b->yy_is_our_buffer )
2626 int new_size = b->yy_buf_size * 2;
2628 if ( new_size <= 0 )
2629 b->yy_buf_size += b->yy_buf_size / 8;
2631 b->yy_buf_size *= 2;
2633 b->yy_ch_buf = (char *)
2634 /* Include room in for 2 EOB chars. */
2635 yy_flex_realloc( (void *) b->yy_ch_buf,
2636 b->yy_buf_size + 2 );
2639 /* Can't grow it, we don't own it. */
2642 if ( ! b->yy_ch_buf )
2644 "fatal error - scanner input buffer overflow" );
2646 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2648 num_to_read = yy_current_buffer->yy_buf_size -
2653 if ( num_to_read > YY_READ_BUF_SIZE )
2654 num_to_read = YY_READ_BUF_SIZE;
2656 /* Read in more data. */
2657 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2658 yy_n_chars, num_to_read );
2660 yy_current_buffer->yy_n_chars = yy_n_chars;
2663 if ( yy_n_chars == 0 )
2665 if ( number_to_move == YY_MORE_ADJ )
2667 ret_val = EOB_ACT_END_OF_FILE;
2673 ret_val = EOB_ACT_LAST_MATCH;
2674 yy_current_buffer->yy_buffer_status =
2675 YY_BUFFER_EOF_PENDING;
2680 ret_val = EOB_ACT_CONTINUE_SCAN;
2682 yy_n_chars += number_to_move;
2683 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2684 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2686 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2692 /* yy_get_previous_state - get the state just before the EOB char was reached */
2694 static yy_state_type yy_get_previous_state()
2696 register yy_state_type yy_current_state;
2697 register char *yy_cp;
2699 yy_current_state = yy_start;
2701 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2703 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2704 if ( yy_accept[yy_current_state] )
2706 yy_last_accepting_state = yy_current_state;
2707 yy_last_accepting_cpos = yy_cp;
2709 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2711 yy_current_state = (int) yy_def[yy_current_state];
2712 if ( yy_current_state >= 720 )
2713 yy_c = yy_meta[(unsigned int) yy_c];
2715 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2718 return yy_current_state;
2722 /* yy_try_NUL_trans - try to make a transition on the NUL character
2725 * next_state = yy_try_NUL_trans( current_state );
2728 #ifdef YY_USE_PROTOS
2729 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2731 static yy_state_type yy_try_NUL_trans( yy_current_state )
2732 yy_state_type yy_current_state;
2735 register int yy_is_jam;
2736 register char *yy_cp = yy_c_buf_p;
2738 register YY_CHAR yy_c = 1;
2739 if ( yy_accept[yy_current_state] )
2741 yy_last_accepting_state = yy_current_state;
2742 yy_last_accepting_cpos = yy_cp;
2744 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2746 yy_current_state = (int) yy_def[yy_current_state];
2747 if ( yy_current_state >= 720 )
2748 yy_c = yy_meta[(unsigned int) yy_c];
2750 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2751 yy_is_jam = (yy_current_state == 719);
2753 return yy_is_jam ? 0 : yy_current_state;
2758 #ifdef YY_USE_PROTOS
2759 static void yyunput( int c, register char *yy_bp )
2761 static void yyunput( c, yy_bp )
2763 register char *yy_bp;
2766 register char *yy_cp = yy_c_buf_p;
2768 /* undo effects of setting up yytext */
2769 *yy_cp = yy_hold_char;
2771 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2772 { /* need to shift things up to make room */
2773 /* +2 for EOB chars. */
2774 register int number_to_move = yy_n_chars + 2;
2775 register char *dest = &yy_current_buffer->yy_ch_buf[
2776 yy_current_buffer->yy_buf_size + 2];
2777 register char *source =
2778 &yy_current_buffer->yy_ch_buf[number_to_move];
2780 while ( source > yy_current_buffer->yy_ch_buf )
2781 *--dest = *--source;
2783 yy_cp += (int) (dest - source);
2784 yy_bp += (int) (dest - source);
2785 yy_current_buffer->yy_n_chars =
2786 yy_n_chars = yy_current_buffer->yy_buf_size;
2788 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2789 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2792 *--yy_cp = (char) c;
2796 yy_hold_char = *yy_cp;
2799 #endif /* ifndef YY_NO_UNPUT */
2803 static int yyinput()
2810 *yy_c_buf_p = yy_hold_char;
2812 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2814 /* yy_c_buf_p now points to the character we want to return.
2815 * If this occurs *before* the EOB characters, then it's a
2816 * valid NUL; if not, then we've hit the end of the buffer.
2818 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2819 /* This was really a NUL. */
2823 { /* need more input */
2824 int offset = yy_c_buf_p - yytext_ptr;
2827 switch ( yy_get_next_buffer() )
2829 case EOB_ACT_LAST_MATCH:
2830 /* This happens because yy_g_n_b()
2831 * sees that we've accumulated a
2832 * token and flags that we need to
2833 * try matching the token before
2834 * proceeding. But for input(),
2835 * there's no matching to consider.
2836 * So convert the EOB_ACT_LAST_MATCH
2837 * to EOB_ACT_END_OF_FILE.
2840 /* Reset buffer status. */
2845 case EOB_ACT_END_OF_FILE:
2850 if ( ! yy_did_buffer_switch_on_eof )
2859 case EOB_ACT_CONTINUE_SCAN:
2860 yy_c_buf_p = yytext_ptr + offset;
2866 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
2867 *yy_c_buf_p = '\0'; /* preserve yytext */
2868 yy_hold_char = *++yy_c_buf_p;
2875 #ifdef YY_USE_PROTOS
2876 void yyrestart( FILE *input_file )
2878 void yyrestart( input_file )
2882 if ( ! yy_current_buffer )
2883 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2885 yy_init_buffer( yy_current_buffer, input_file );
2886 yy_load_buffer_state();
2890 #ifdef YY_USE_PROTOS
2891 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2893 void yy_switch_to_buffer( new_buffer )
2894 YY_BUFFER_STATE new_buffer;
2897 if ( yy_current_buffer == new_buffer )
2900 if ( yy_current_buffer )
2902 /* Flush out information for old buffer. */
2903 *yy_c_buf_p = yy_hold_char;
2904 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2905 yy_current_buffer->yy_n_chars = yy_n_chars;
2908 yy_current_buffer = new_buffer;
2909 yy_load_buffer_state();
2911 /* We don't actually know whether we did this switch during
2912 * EOF (yywrap()) processing, but the only time this flag
2913 * is looked at is after yywrap() is called, so it's safe
2914 * to go ahead and always set it.
2916 yy_did_buffer_switch_on_eof = 1;
2920 #ifdef YY_USE_PROTOS
2921 void yy_load_buffer_state( void )
2923 void yy_load_buffer_state()
2926 yy_n_chars = yy_current_buffer->yy_n_chars;
2927 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2928 yyin = yy_current_buffer->yy_input_file;
2929 yy_hold_char = *yy_c_buf_p;
2933 #ifdef YY_USE_PROTOS
2934 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2936 YY_BUFFER_STATE yy_create_buffer( file, size )
2943 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2945 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2947 b->yy_buf_size = size;
2949 /* yy_ch_buf has to be 2 characters longer than the size given because
2950 * we need to put in 2 end-of-buffer characters.
2952 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2953 if ( ! b->yy_ch_buf )
2954 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2956 b->yy_is_our_buffer = 1;
2958 yy_init_buffer( b, file );
2964 #ifdef YY_USE_PROTOS
2965 void yy_delete_buffer( YY_BUFFER_STATE b )
2967 void yy_delete_buffer( b )
2974 if ( b == yy_current_buffer )
2975 yy_current_buffer = (YY_BUFFER_STATE) 0;
2977 if ( b->yy_is_our_buffer )
2978 yy_flex_free( (void *) b->yy_ch_buf );
2980 yy_flex_free( (void *) b );
2984 #ifndef YY_ALWAYS_INTERACTIVE
2985 #ifndef YY_NEVER_INTERACTIVE
2986 extern int isatty YY_PROTO(( int ));
2990 #ifdef YY_USE_PROTOS
2991 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2993 void yy_init_buffer( b, file )
3000 yy_flush_buffer( b );
3002 b->yy_input_file = file;
3003 b->yy_fill_buffer = 1;
3005 #if YY_ALWAYS_INTERACTIVE
3006 b->yy_is_interactive = 1;
3008 #if YY_NEVER_INTERACTIVE
3009 b->yy_is_interactive = 0;
3011 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3017 #ifdef YY_USE_PROTOS
3018 void yy_flush_buffer( YY_BUFFER_STATE b )
3020 void yy_flush_buffer( b )
3030 /* We always need two end-of-buffer characters. The first causes
3031 * a transition to the end-of-buffer state. The second causes
3032 * a jam in that state.
3034 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3035 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3037 b->yy_buf_pos = &b->yy_ch_buf[0];
3040 b->yy_buffer_status = YY_BUFFER_NEW;
3042 if ( b == yy_current_buffer )
3043 yy_load_buffer_state();
3047 #ifndef YY_NO_SCAN_BUFFER
3048 #ifdef YY_USE_PROTOS
3049 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3051 YY_BUFFER_STATE yy_scan_buffer( base, size )
3059 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3060 base[size-1] != YY_END_OF_BUFFER_CHAR )
3061 /* They forgot to leave room for the EOB's. */
3064 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3066 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3068 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3069 b->yy_buf_pos = b->yy_ch_buf = base;
3070 b->yy_is_our_buffer = 0;
3071 b->yy_input_file = 0;
3072 b->yy_n_chars = b->yy_buf_size;
3073 b->yy_is_interactive = 0;
3075 b->yy_fill_buffer = 0;
3076 b->yy_buffer_status = YY_BUFFER_NEW;
3078 yy_switch_to_buffer( b );
3085 #ifndef YY_NO_SCAN_STRING
3086 #ifdef YY_USE_PROTOS
3087 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3089 YY_BUFFER_STATE yy_scan_string( yy_str )
3090 yyconst char *yy_str;
3094 for ( len = 0; yy_str[len]; ++len )
3097 return yy_scan_bytes( yy_str, len );
3102 #ifndef YY_NO_SCAN_BYTES
3103 #ifdef YY_USE_PROTOS
3104 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3106 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3107 yyconst char *bytes;
3116 /* Get memory for full buffer, including space for trailing EOB's. */
3118 buf = (char *) yy_flex_alloc( n );
3120 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3122 for ( i = 0; i < len; ++i )
3125 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3127 b = yy_scan_buffer( buf, n );
3129 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3131 /* It's okay to grow etc. this buffer, and we should throw it
3132 * away when we're done.
3134 b->yy_is_our_buffer = 1;
3141 #ifndef YY_NO_PUSH_STATE
3142 #ifdef YY_USE_PROTOS
3143 static void yy_push_state( int new_state )
3145 static void yy_push_state( new_state )
3149 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3153 yy_start_stack_depth += YY_START_STACK_INCR;
3154 new_size = yy_start_stack_depth * sizeof( int );
3156 if ( ! yy_start_stack )
3157 yy_start_stack = (int *) yy_flex_alloc( new_size );
3160 yy_start_stack = (int *) yy_flex_realloc(
3161 (void *) yy_start_stack, new_size );
3163 if ( ! yy_start_stack )
3165 "out of memory expanding start-condition stack" );
3168 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3175 #ifndef YY_NO_POP_STATE
3176 static void yy_pop_state()
3178 if ( --yy_start_stack_ptr < 0 )
3179 YY_FATAL_ERROR( "start-condition stack underflow" );
3181 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3186 #ifndef YY_NO_TOP_STATE
3187 static int yy_top_state()
3189 return yy_start_stack[yy_start_stack_ptr - 1];
3193 #ifndef YY_EXIT_FAILURE
3194 #define YY_EXIT_FAILURE 2
3197 #ifdef YY_USE_PROTOS
3198 static void yy_fatal_error( yyconst char msg[] )
3200 static void yy_fatal_error( msg )
3204 (void) fprintf( stderr, "%s\n", msg );
3205 exit( YY_EXIT_FAILURE );
3210 /* Redefine yyless() so it works in section 3 code. */
3216 /* Undo effects of setting up yytext. */ \
3217 yytext[yyleng] = yy_hold_char; \
3218 yy_c_buf_p = yytext + n; \
3219 yy_hold_char = *yy_c_buf_p; \
3220 *yy_c_buf_p = '\0'; \
3226 /* Internal utility routines. */
3229 #ifdef YY_USE_PROTOS
3230 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3232 static void yy_flex_strncpy( s1, s2, n )
3239 for ( i = 0; i < n; ++i )
3244 #ifdef YY_NEED_STRLEN
3245 #ifdef YY_USE_PROTOS
3246 static int yy_flex_strlen( yyconst char *s )
3248 static int yy_flex_strlen( s )
3253 for ( n = 0; s[n]; ++n )
3261 #ifdef YY_USE_PROTOS
3262 static void *yy_flex_alloc( yy_size_t size )
3264 static void *yy_flex_alloc( size )
3268 return (void *) malloc( size );
3271 #ifdef YY_USE_PROTOS
3272 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3274 static void *yy_flex_realloc( ptr, size )
3279 /* The cast to (char *) in the following accommodates both
3280 * implementations that use char* generic pointers, and those
3281 * that use void* generic pointers. It works with the latter
3282 * because both ANSI C and C++ allow castless assignment from
3283 * any pointer type to void*, and deal with argument conversions
3284 * as though doing an assignment.
3286 return (void *) realloc( (char *) ptr, size );
3289 #ifdef YY_USE_PROTOS
3290 static void yy_flex_free( void *ptr )
3292 static void yy_flex_free( ptr )
3324 // fputc(c, output);
3328 yylloc.end.charPos = 1;
3334 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3339 yylloc.end.charPos++;
3342 if(c == '/' && last == '*')
3346 yylloc.start = yylloc.end;
3358 // fputc(c, output);
3362 yylloc.end.charPos = 1;
3369 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3374 yylloc.end.charPos++;
3379 yylloc.start = yylloc.end;
3398 yylloc.end.charPos = 1;
3403 char * pointer = line + 1;
3406 lineNumber = GetValue(&pointer);
3409 char fileName[MAX_LOCATION];
3414 GetString(&pointer, fileName, MAX_LOCATION);
3415 inOut = GetValue(&pointer);
3419 char extension[MAX_EXTENSION];
3421 defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
3423 GetExtension(fileName, extension);
3424 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
3425 declMode = defaultDeclMode = structDeclMode = defaultAccess;
3427 fileStack[include_stack_ptr] = null;
3428 include_stack_ptr++;
3432 include_stack_ptr--;
3433 defaultDeclMode = declMode = structDeclMode = declModeStack[include_stack_ptr];
3436 yylloc.end.charPos = 1;
3437 yylloc.end.line = lineNumber;
3438 //yylloc.end.pos -= count;
3440 if(include_stack_ptr > 0 || (lineNumber && fileName[0]))
3441 yylloc.end.included = GetIncludeFileID(fileName);
3443 yylloc.end.included = 0;
3446 int lineNumber = strtol(line+1, &endPtr, 0);
3452 yylloc.end.charPos = 1;
3453 yylloc.end.line = lineNumber;
3454 yylloc.end.pos -= count;
3463 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3472 yylloc.end.charPos++;
3478 yylloc.start = yylloc.end;
3481 TrimLSpaces(line, line);
3482 for(c = 0; line[c] && line[c] != ' '; c++);
3483 if(!strncmp(line, "include", c))
3485 char includeFile[MAX_LOCATION] = "";
3487 memmove(line, line+c, strlen(line+c)+1);
3488 TrimLSpaces(line, line);
3491 for(c = 1; line[c]; c++)
3495 strncpy(includeFile, line+1, c-1);
3496 includeFile[c-1] = '\0';
3501 else if(line[0] == '<')
3503 for(c = 1; line[c]; c++)
3506 strncpy(includeFile, line+1, c-1);
3507 includeFile[c-1] = '\0';
3512 if ( include_stack_ptr >= MAX_INCLUDE_DEPTH )
3514 fprintf( stderr, $"Includes nested too deeply" );
3518 if(inCompiler || !FindIncludeFileID(includeFile))
3520 File file = OpenIncludeFile(includeFile);
3523 char extension[MAX_EXTENSION];
3525 fileStack[include_stack_ptr] = fileInput;
3526 locStack[include_stack_ptr] = yylloc;
3527 defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
3528 include_stack[include_stack_ptr++] = YY_CURRENT_BUFFER;
3530 yylloc.start.charPos = yylloc.end.charPos = 1;
3531 yylloc.start.line = yylloc.end.line = 1;
3532 yylloc.start.pos = yylloc.end.pos = 0;
3533 yylloc.start.included = yylloc.end.included = GetIncludeFileID(includeFile);
3535 GetExtension(includeFile, extension);
3536 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
3537 declMode = defaultDeclMode = structDeclMode = defaultAccess;
3540 yy_switch_to_buffer( yy_create_buffer( fileInput, YY_BUF_SIZE ) );
3550 public void resetScanner()
3553 yylloc.start.charPos = yylloc.end.charPos = 1;
3554 yylloc.start.line = yylloc.end.line = 1;
3555 yylloc.start.pos = yylloc.end.pos = 0;
3556 yylloc.start.included = yylloc.end.included = 0;
3558 expression_yylloc.start.charPos = expression_yylloc.end.charPos = 1;
3559 expression_yylloc.start.line = expression_yylloc.end.line = 1;
3560 expression_yylloc.start.pos = expression_yylloc.end.pos = 0;
3561 expression_yylloc.start.included = expression_yylloc.end.included = 0;
3563 type_yylloc.start.charPos = type_yylloc.end.charPos = 1;
3564 type_yylloc.start.line = type_yylloc.end.line = 1;
3565 type_yylloc.start.pos = type_yylloc.end.pos = 0;
3566 type_yylloc.start.included = type_yylloc.end.included = 0;
3568 include_stack_ptr = 0;
3571 void resetScannerPos(CodePosition pos)
3574 yylloc.start = yylloc.end = pos;
3575 type_yylloc.start = type_yylloc.end = pos;
3576 expression_yylloc.start = expression_yylloc.end = pos;
3582 YYLTYPE type_yylloc;
3583 YYLTYPE expression_yylloc;
3585 AccessMode declMode;
3586 AccessMode defaultDeclMode;
3589 YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
3590 File fileStack[MAX_INCLUDE_DEPTH];
3591 char sourceFileStack[MAX_INCLUDE_DEPTH][MAX_LOCATION];
3592 YYLTYPE locStack[MAX_INCLUDE_DEPTH];
3593 AccessMode declModeStack[MAX_INCLUDE_DEPTH];
3594 int include_stack_ptr;
3595 YY_BUFFER_STATE buffer;
3608 LexerBackup pushLexer()
3610 LexerBackup backup { };
3612 backup.yylloc = yylloc;
3613 backup.type_yylloc = type_yylloc;
3614 backup.expression_yylloc = expression_yylloc;
3615 backup.fileInput = fileInput;
3616 memcpy(backup.include_stack, include_stack, sizeof(include_stack));
3617 memcpy(backup.fileStack, fileStack, sizeof(fileStack));
3618 memcpy(backup.sourceFileStack, sourceFileStack, sizeof(sourceFileStack));
3619 memcpy(backup.locStack, locStack, sizeof(locStack));
3620 memcpy(backup.declModeStack, declModeStack, sizeof(declModeStack));
3621 backup.include_stack_ptr = include_stack_ptr;
3622 backup.defaultDeclMode = defaultDeclMode;
3623 backup.declMode = declMode;
3624 backup.buffer = yy_current_buffer;
3626 backup.yy_n_chars = yy_n_chars;
3627 backup.yytext_ptr = yytext_ptr;
3628 backup.yy_c_buf_p = yy_c_buf_p;
3630 backup.yy_hold_char = yy_hold_char;
3631 backup.yychar = yychar;
3632 backup.yy_init = yy_init;
3633 backup.yy_start = yy_start;
3637 yy_current_buffer = 0;
3639 yylloc.start.charPos = yylloc.end.charPos = 1;
3640 yylloc.start.line = yylloc.end.line = 1;
3641 yylloc.start.pos = yylloc.end.pos = 0;
3642 yylloc.start.included = yylloc.end.included = 0;
3644 expression_yylloc.start.charPos = expression_yylloc.end.charPos = 1;
3645 expression_yylloc.start.line = expression_yylloc.end.line = 1;
3646 expression_yylloc.start.pos = expression_yylloc.end.pos = 0;
3647 expression_yylloc.start.included = expression_yylloc.end.included = 0;
3649 type_yylloc.start.charPos = type_yylloc.end.charPos = 1;
3650 type_yylloc.start.line = type_yylloc.end.line = 1;
3651 type_yylloc.start.pos = type_yylloc.end.pos = 0;
3652 type_yylloc.start.included = type_yylloc.end.included = 0;
3654 include_stack_ptr = 0;
3659 void popLexer(LexerBackup backup)
3661 yylloc = backup.yylloc;
3662 type_yylloc = backup.type_yylloc;
3663 expression_yylloc = backup.expression_yylloc;
3664 fileInput = backup.fileInput;
3665 memcpy(include_stack, backup.include_stack, sizeof(include_stack));
3666 memcpy(fileStack, backup.fileStack, sizeof(fileStack));
3667 memcpy(sourceFileStack, backup.sourceFileStack, sizeof(sourceFileStack));
3668 memcpy(locStack, backup.locStack, sizeof(locStack));
3669 memcpy(declModeStack, backup.declModeStack, sizeof(declModeStack));
3670 include_stack_ptr = backup.include_stack_ptr;
3671 defaultDeclMode = backup.defaultDeclMode;
3672 declMode = structDeclMode = backup.declMode;
3674 // yy_switch_to_buffer(backup.buffer);
3675 yy_current_buffer = backup.buffer;
3676 yy_n_chars = backup.yy_n_chars;
3677 yytext_ptr = backup.yytext_ptr;
3678 yy_c_buf_p = backup.yy_c_buf_p;
3680 yy_hold_char = backup.yy_hold_char;
3681 yychar = backup.yychar;
3682 yy_init = backup.yy_init;
3683 yy_start = backup.yy_start;