2 /* A lexical scanner generated by flex */
4 /* Scanner skeleton version:
5 * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
15 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
28 /* Use prototypes in function declarations. */
31 /* The "const" storage-class-modifier is valid. */
34 #else /* ! __cplusplus */
42 #endif /* ! __cplusplus */
61 #define YY_PROTO(proto) proto
63 #define YY_PROTO(proto) ()
66 /* Returned upon end-of-file. */
69 /* Promotes a possibly negative, possibly signed char to an unsigned
70 * integer for use as an array index. If the signed char is negative,
71 * we want to instead treat it as an 8-bit unsigned char, hence the
74 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
76 /* Enter a start condition. This macro really ought to take a parameter,
77 * but we do it the disgusting crufty way forced on us by the ()-less
78 * definition of BEGIN.
80 #define BEGIN yy_start = 1 + 2 *
82 /* Translate the current start state into a value that can be later handed
83 * to BEGIN to return to the state. The YYSTATE alias is for lex
86 #define YY_START ((yy_start - 1) / 2)
87 #define YYSTATE YY_START
89 /* Action number for EOF rule of a given start state. */
90 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
92 /* Special action meaning "start processing a new file". */
93 #define YY_NEW_FILE yyrestart( yyin )
95 #define YY_END_OF_BUFFER_CHAR 0
97 /* Size of default input buffer. */
98 #define YY_BUF_SIZE 16384
100 typedef struct yy_buffer_state *YY_BUFFER_STATE;
103 extern FILE *yyin, *yyout;
105 #define EOB_ACT_CONTINUE_SCAN 0
106 #define EOB_ACT_END_OF_FILE 1
107 #define EOB_ACT_LAST_MATCH 2
109 /* The funky do-while in the following #define is used to turn the definition
110 * int a single C statement (which needs a semi-colon terminator). This
111 * avoids problems with code like:
113 * if ( condition_holds )
116 * do_something_else();
118 * Prior to using the do-while the compiler would get upset at the
119 * "else" because it interpreted the "if" statement as being all
120 * done when it reached the ';' after the yyless() call.
123 /* Return all but the first 'n' matched characters back to the input stream. */
128 /* Undo effects of setting up yytext. */ \
129 *yy_cp = yy_hold_char; \
130 YY_RESTORE_YY_MORE_OFFSET \
131 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
132 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
136 #define unput(c) yyunput( c, yytext_ptr )
138 /* The following is because we cannot portably get our hands on size_t
139 * (without autoconf's help, which isn't available because we want
140 * flex-generated scanners to compile on their own).
142 typedef unsigned int yy_size_t;
145 struct yy_buffer_state
149 char *yy_ch_buf; /* input buffer */
150 char *yy_buf_pos; /* current position in input buffer */
152 /* Size of input buffer in bytes, not including room for EOB
155 yy_size_t yy_buf_size;
157 /* Number of characters read into yy_ch_buf, not including EOB
162 /* Whether we "own" the buffer - i.e., we know we created it,
163 * and can realloc() it to grow it, and should free() it to
166 int yy_is_our_buffer;
168 /* Whether this is an "interactive" input source; if so, and
169 * if we're using stdio for input, then we want to use getc()
170 * instead of fread(), to make sure we stop fetching input after
173 int yy_is_interactive;
175 /* Whether we're considered to be at the beginning of a line.
176 * If so, '^' rules will be active on the next match, otherwise
181 /* Whether to try to fill the input buffer when we reach the
186 int yy_buffer_status;
187 #define YY_BUFFER_NEW 0
188 #define YY_BUFFER_NORMAL 1
189 /* When an EOF's been seen but there's still some text to process
190 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
191 * shouldn't try reading from the input source any more. We might
192 * still have a bunch of tokens to match, though, because of
193 * possible backing-up.
195 * When we actually see the EOF, we change the status to "new"
196 * (via yyrestart()), so that the user can continue scanning by
197 * just pointing yyin at a new input file.
199 #define YY_BUFFER_EOF_PENDING 2
202 static YY_BUFFER_STATE yy_current_buffer = 0;
204 /* We provide macros for accessing buffer states in case in the
205 * future we want to put the buffer states in a more general
208 #define YY_CURRENT_BUFFER yy_current_buffer
211 /* yy_hold_char holds the character lost when yytext is formed. */
212 static char yy_hold_char;
214 static int yy_n_chars; /* number of characters read into yy_ch_buf */
219 /* Points to current character in buffer. */
220 static char *yy_c_buf_p = (char *) 0;
221 static int yy_init = 1; /* whether we need to initialize */
222 static int yy_start = 0; /* start state number */
224 /* Flag which is used to allow yywrap()'s to do buffer switches
225 * instead of setting up a fresh yyin. A bit of a hack ...
227 static int yy_did_buffer_switch_on_eof;
229 void yyrestart YY_PROTO(( FILE *input_file ));
231 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
232 void yy_load_buffer_state YY_PROTO(( void ));
233 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
234 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
235 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
236 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
237 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
239 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
240 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
241 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
243 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
244 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
245 static void yy_flex_free YY_PROTO(( void * ));
247 #define yy_new_buffer yy_create_buffer
249 #define yy_set_interactive(is_interactive) \
251 if ( ! yy_current_buffer ) \
252 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
253 yy_current_buffer->yy_is_interactive = is_interactive; \
256 #define yy_set_bol(at_bol) \
258 if ( ! yy_current_buffer ) \
259 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
260 yy_current_buffer->yy_at_bol = at_bol; \
263 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
265 typedef unsigned char YY_CHAR;
266 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
267 typedef int yy_state_type;
269 #define yytext_ptr yytext
271 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
272 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
273 static int yy_get_next_buffer YY_PROTO(( void ));
274 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
276 /* Done after the current pattern has been matched and before the
277 * corresponding action - sets up yytext.
279 #define YY_DO_BEFORE_ACTION \
280 yytext_ptr = yy_bp; \
281 yyleng = (int) (yy_cp - yy_bp); \
282 yy_hold_char = *yy_cp; \
286 #define YY_NUM_RULES 177
287 #define YY_END_OF_BUFFER 178
288 static yyconst short int yy_accept[723] =
290 112, 112, 178, 176, 174, 173, 172, 175, 159, 176,
291 1, 171, 165, 158, 176, 153, 154, 163, 162, 150,
292 161, 157, 164, 118, 118, 151, 147, 166, 152, 167,
293 170, 112, 112, 112, 155, 156, 168, 112, 112, 112,
294 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
295 112, 112, 112, 112, 112, 148, 169, 149, 160, 146,
296 0, 123, 0, 132, 149, 141, 133, 0, 0, 130,
297 138, 128, 139, 129, 140, 0, 121, 2, 3, 131,
298 122, 117, 0, 118, 0, 118, 112, 156, 148, 155,
299 137, 143, 145, 144, 136, 0, 112, 0, 112, 0,
301 0, 134, 112, 112, 112, 112, 112, 112, 112, 112,
302 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
303 112, 11, 112, 112, 112, 112, 112, 112, 112, 112,
304 19, 112, 112, 112, 112, 112, 112, 112, 112, 112,
305 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
306 112, 112, 112, 112, 135, 142, 119, 125, 0, 121,
307 121, 0, 122, 117, 0, 120, 0, 113, 112, 127,
308 126, 112, 112, 0, 124, 0, 112, 112, 112, 112,
309 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
310 112, 112, 112, 92, 112, 112, 112, 112, 112, 112,
312 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
313 112, 112, 112, 17, 45, 112, 112, 112, 112, 20,
314 112, 112, 112, 51, 112, 112, 112, 112, 112, 112,
315 112, 44, 112, 112, 112, 112, 112, 112, 112, 112,
316 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
317 112, 0, 121, 0, 121, 0, 122, 120, 115, 116,
318 113, 0, 112, 112, 61, 112, 112, 112, 112, 112,
319 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
320 112, 112, 112, 112, 112, 112, 112, 4, 112, 6,
321 7, 112, 112, 112, 112, 112, 112, 112, 112, 112,
323 112, 112, 112, 112, 13, 14, 112, 112, 112, 18,
324 112, 112, 112, 112, 112, 22, 112, 52, 112, 112,
325 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
326 112, 112, 112, 112, 112, 112, 21, 112, 112, 112,
327 38, 112, 112, 112, 0, 121, 115, 115, 0, 115,
328 115, 116, 0, 0, 114, 62, 112, 112, 112, 93,
329 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
330 112, 112, 112, 112, 112, 112, 112, 112, 5, 47,
331 8, 112, 112, 112, 112, 112, 112, 112, 112, 112,
332 112, 112, 112, 112, 16, 112, 112, 112, 58, 46,
334 112, 112, 112, 112, 112, 53, 112, 112, 25, 112,
335 112, 112, 112, 112, 112, 112, 112, 112, 112, 36,
336 112, 112, 112, 95, 42, 0, 115, 115, 115, 0,
337 0, 116, 114, 112, 112, 112, 112, 112, 112, 112,
338 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
339 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
340 112, 112, 56, 50, 112, 112, 12, 15, 112, 55,
341 88, 72, 112, 112, 112, 84, 112, 54, 112, 24,
342 26, 29, 31, 112, 112, 33, 112, 34, 112, 112,
343 112, 112, 112, 112, 112, 0, 115, 112, 112, 112,
345 91, 112, 112, 76, 82, 112, 112, 112, 57, 112,
346 112, 112, 112, 112, 112, 112, 70, 112, 112, 112,
347 112, 112, 112, 112, 112, 109, 110, 108, 10, 112,
348 112, 112, 112, 85, 112, 112, 112, 80, 112, 112,
349 112, 112, 35, 112, 49, 112, 112, 63, 112, 112,
350 112, 112, 112, 112, 71, 112, 27, 112, 32, 94,
351 112, 112, 79, 112, 112, 112, 112, 112, 112, 9,
352 112, 112, 112, 112, 112, 43, 23, 65, 112, 106,
353 112, 112, 37, 39, 112, 112, 112, 112, 112, 112,
354 112, 112, 112, 112, 77, 112, 112, 112, 112, 112,
356 112, 112, 112, 112, 112, 74, 75, 112, 107, 112,
357 112, 48, 112, 98, 64, 112, 112, 112, 112, 112,
358 69, 81, 28, 112, 41, 112, 87, 104, 112, 112,
359 112, 112, 112, 112, 112, 112, 112, 112, 30, 68,
360 112, 0, 112, 112, 78, 112, 90, 112, 112, 101,
361 112, 112, 112, 112, 112, 112, 112, 112, 112, 73,
362 0, 112, 83, 40, 112, 112, 112, 112, 112, 97,
363 112, 96, 86, 67, 112, 112, 89, 112, 112, 112,
364 112, 111, 112, 112, 112, 112, 112, 99, 112, 105,
365 112, 112, 112, 112, 112, 112, 112, 112, 60, 112,
367 112, 112, 112, 112, 59, 112, 112, 103, 112, 112,
368 100, 112, 112, 112, 112, 112, 112, 112, 102, 112,
372 static yyconst int yy_ec[256] =
374 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
375 4, 4, 5, 1, 1, 1, 1, 1, 1, 1,
376 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
377 1, 4, 6, 7, 8, 9, 10, 11, 12, 13,
378 14, 15, 16, 17, 18, 19, 20, 21, 22, 22,
379 22, 23, 22, 24, 22, 22, 22, 25, 26, 27,
380 28, 29, 30, 1, 31, 32, 33, 31, 34, 35,
381 36, 36, 37, 38, 36, 39, 36, 36, 36, 40,
382 36, 36, 36, 36, 41, 36, 36, 42, 36, 36,
383 43, 44, 45, 46, 47, 1, 48, 49, 50, 51,
385 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
386 62, 63, 36, 64, 65, 66, 67, 68, 69, 70,
387 71, 72, 73, 74, 75, 76, 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,
394 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,
400 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
404 static yyconst int yy_meta[77] =
406 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
407 2, 3, 1, 4, 1, 1, 1, 1, 5, 1,
408 6, 6, 6, 6, 2, 1, 1, 1, 1, 1,
409 7, 7, 7, 7, 7, 8, 8, 8, 8, 8,
410 8, 8, 1, 1, 1, 1, 8, 7, 7, 7,
411 7, 7, 7, 8, 8, 8, 8, 8, 8, 8,
412 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
416 static yyconst short int yy_base[733] =
418 0, 0, 254, 2565, 2565, 2565, 2565, 2565, 219, 70,
419 2565, 2565, 50, 69, 201, 2565, 2565, 199, 65, 2565,
420 66, 64, 76, 96, 79, 80, 2565, 97, 194, 61,
421 2565, 81, 88, 116, 2565, 2565, 183, 132, 115, 87,
422 143, 147, 131, 148, 156, 160, 121, 164, 136, 203,
423 204, 206, 208, 212, 224, 2565, 88, 2565, 2565, 2565,
424 101, 2565, 184, 2565, 2565, 2565, 2565, 182, 174, 2565,
425 2565, 2565, 2565, 2565, 2565, 159, 259, 2565, 2565, 2565,
426 298, 339, 218, 247, 151, 0, 0, 2565, 2565, 2565,
427 116, 2565, 2565, 2565, 111, 111, 149, 106, 213, 186,
429 85, 2565, 233, 237, 232, 396, 221, 240, 241, 242,
430 265, 298, 313, 306, 318, 319, 323, 315, 316, 334,
431 331, 363, 364, 372, 328, 374, 375, 390, 391, 392,
432 393, 400, 409, 401, 394, 411, 398, 416, 424, 431,
433 399, 458, 459, 463, 466, 465, 468, 469, 475, 470,
434 476, 478, 487, 491, 2565, 2565, 2565, 2565, 527, 517,
435 556, 541, 546, 530, 483, 595, 0, 601, 0, 2565,
436 2565, 0, 533, 243, 2565, 108, 498, 550, 403, 596,
437 589, 612, 618, 611, 624, 620, 642, 517, 648, 600,
438 654, 658, 664, 497, 665, 666, 667, 669, 671, 675,
440 676, 571, 677, 682, 695, 692, 693, 701, 704, 710,
441 712, 714, 717, 508, 721, 723, 736, 742, 743, 747,
442 744, 748, 749, 765, 752, 764, 767, 768, 769, 770,
443 772, 780, 789, 793, 792, 797, 798, 804, 805, 800,
444 808, 817, 821, 820, 826, 824, 827, 830, 836, 845,
445 832, 854, 875, 884, 875, 894, 899, 900, 905, 948,
446 936, 992, 0, 854, 858, 860, 878, 876, 935, 965,
447 900, 938, 995, 998, 879, 1001, 1006, 1008, 1007, 1011,
448 925, 1013, 1010, 1016, 1018, 1028, 1017, 1019, 1023, 1026,
449 1029, 1035, 1038, 1039, 1041, 1045, 1060, 1064, 1066, 1069,
451 1071, 1073, 1076, 1081, 1077, 1082, 1092, 1094, 1098, 1097,
452 1101, 1099, 1107, 1104, 1103, 1109, 1110, 1114, 1130, 1120,
453 1127, 1133, 1135, 1136, 1137, 1142, 1155, 1148, 1146, 1163,
454 1159, 1165, 1166, 1168, 1170, 1171, 1174, 1178, 1181, 1194,
455 1198, 1201, 1202, 1206, 1219, 1225, 0, 1215, 1257, 1247,
456 0, 1255, 1297, 1241, 1301, 1205, 1258, 1245, 1277, 1213,
457 1280, 1284, 1226, 1305, 1316, 1317, 1321, 1323, 1324, 1326,
458 1334, 1339, 1341, 1351, 1342, 1354, 1357, 1360, 1361, 1363,
459 1367, 1369, 1370, 1372, 1387, 1389, 1391, 1395, 1397, 1396,
460 1400, 1402, 1408, 1412, 1413, 1415, 1417, 1421, 1418, 1430,
462 1433, 1440, 1441, 1442, 1446, 1451, 1453, 1450, 1457, 1463,
463 1466, 1468, 1469, 1472, 1473, 1474, 1475, 1476, 1479, 1478,
464 1491, 1496, 1499, 1502, 1504, 1275, 1535, 0, 1508, 1559,
465 1563, 1574, 1564, 1526, 1529, 1568, 1589, 1551, 1523, 1593,
466 1594, 1597, 1613, 1614, 1617, 1621, 1624, 1623, 1630, 1626,
467 1632, 1634, 1639, 1633, 1636, 1643, 1642, 1645, 1652, 1654,
468 1655, 1661, 1538, 1658, 1670, 1676, 1686, 1689, 1691, 1694,
469 1697, 1701, 1704, 1706, 1709, 1710, 1712, 1714, 1717, 1719,
470 1722, 1725, 1729, 1730, 1734, 1735, 1737, 1738, 1740, 1745,
471 1755, 1757, 1758, 1760, 1761, 1755, 1799, 1762, 1770, 1773,
473 1779, 1780, 1786, 1781, 1788, 1790, 1801, 1805, 1803, 1814,
474 1816, 1820, 1822, 1829, 1835, 1837, 1838, 1839, 1840, 1858,
475 1860, 1850, 1861, 1863, 1865, 1869, 1870, 1876, 1878, 1886,
476 1888, 1889, 1893, 1894, 1896, 1897, 1898, 1909, 1913, 1915,
477 1916, 1917, 1919, 1920, 1921, 1922, 1924, 1926, 1937, 1943,
478 1944, 1945, 1947, 1948, 1965, 1964, 1966, 1967, 1954, 1973,
479 1975, 1977, 1982, 1983, 1984, 1992, 1994, 1999, 2004, 2005,
480 2007, 2010, 2011, 2012, 2016, 2027, 2017, 2033, 2036, 2037,
481 2038, 2040, 2044, 2045, 2048, 2060, 2061, 2064, 2067, 2068,
482 2070, 2069, 2071, 2073, 2076, 2077, 2079, 2088, 2094, 2096,
484 2099, 2100, 2101, 2111, 2116, 2122, 2123, 2124, 2132, 2134,
485 2135, 2139, 2140, 2145, 2147, 2150, 2152, 2155, 2156, 2157,
486 2160, 2162, 2168, 2175, 2177, 2178, 2183, 2185, 2187, 2188,
487 2190, 2194, 2195, 2196, 2203, 2205, 2215, 2206, 2218, 2221,
488 2223, 96, 2225, 2226, 2224, 2227, 2233, 2244, 2250, 2252,
489 2254, 2255, 2270, 2259, 2267, 2271, 2272, 2276, 2274, 2565,
490 68, 2279, 2275, 2277, 2280, 2282, 2283, 2287, 2295, 2303,
491 2305, 2304, 2307, 2324, 2325, 2326, 2329, 2333, 2330, 2334,
492 2336, 2337, 2354, 2341, 2353, 2356, 2357, 2358, 2359, 2361,
493 2364, 2365, 2362, 2377, 2380, 2381, 2385, 2386, 2388, 2389,
495 2390, 2398, 2407, 2408, 2410, 2411, 2414, 2416, 2420, 2429,
496 2423, 2432, 2436, 2439, 2440, 2442, 2445, 2448, 2451, 2452,
497 2455, 2565, 2516, 2524, 2531, 2535, 2536, 2544, 2547, 2549,
501 static yyconst short int yy_def[733] =
503 722, 1, 722, 722, 722, 722, 722, 722, 722, 723,
504 722, 722, 722, 722, 724, 722, 722, 722, 722, 722,
505 722, 722, 722, 722, 24, 722, 722, 722, 722, 722,
506 722, 725, 725, 725, 722, 722, 722, 725, 725, 725,
507 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
508 725, 725, 725, 725, 725, 722, 722, 722, 722, 722,
509 723, 722, 723, 722, 722, 722, 722, 724, 724, 722,
510 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
511 722, 722, 722, 722, 726, 25, 727, 722, 722, 722,
512 722, 722, 722, 722, 722, 722, 725, 722, 725, 728,
514 724, 722, 725, 725, 725, 725, 725, 725, 725, 725,
515 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
516 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
517 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
518 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
519 725, 725, 725, 725, 722, 722, 722, 722, 722, 722,
520 722, 722, 722, 722, 722, 722, 729, 726, 730, 722,
521 722, 731, 725, 728, 722, 728, 725, 725, 725, 725,
522 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
523 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
525 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
526 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
527 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
528 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
529 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
530 725, 722, 77, 722, 722, 722, 81, 722, 729, 722,
531 722, 722, 730, 725, 725, 725, 725, 725, 725, 725,
532 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
533 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
534 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
536 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
537 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
538 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
539 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
540 725, 725, 725, 725, 722, 161, 259, 722, 722, 260,
541 350, 722, 722, 722, 722, 725, 725, 725, 725, 725,
542 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
543 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
544 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
545 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
547 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
548 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
549 725, 725, 725, 725, 725, 722, 722, 350, 722, 722,
550 722, 722, 722, 725, 725, 725, 725, 725, 725, 725,
551 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
552 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
553 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
554 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
555 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
556 725, 725, 725, 725, 725, 722, 722, 725, 725, 725,
558 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
559 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
560 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
561 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
562 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
563 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
564 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
565 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
566 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
567 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
569 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
570 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
571 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
572 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
573 725, 732, 725, 725, 725, 725, 725, 725, 725, 725,
574 725, 725, 725, 725, 725, 725, 725, 725, 725, 722,
575 732, 725, 725, 725, 725, 725, 725, 725, 725, 725,
576 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
577 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
578 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
580 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
581 725, 725, 725, 725, 725, 725, 725, 725, 725, 725,
582 725, 0, 722, 722, 722, 722, 722, 722, 722, 722,
586 static yyconst short int yy_nxt[2642] =
588 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
589 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
590 24, 25, 25, 25, 26, 27, 28, 29, 30, 31,
591 32, 33, 32, 32, 32, 32, 32, 32, 34, 32,
592 32, 32, 35, 4, 36, 37, 38, 39, 40, 41,
593 42, 43, 44, 45, 32, 46, 32, 32, 47, 32,
594 48, 32, 49, 50, 51, 52, 53, 54, 55, 32,
595 32, 32, 56, 57, 58, 59, 62, 64, 65, 66,
596 71, 660, 76, 73, 77, 77, 77, 77, 94, 95,
597 78, 96, 72, 74, 75, 79, 67, 96, 96, 86,
599 86, 86, 86, 80, 87, 98, 89, 62, 88, 660,
600 722, 98, 98, 63, 81, 155, 82, 82, 82, 82,
601 722, 90, 100, 91, 92, 96, 96, 101, 69, 83,
602 172, 96, 84, 84, 84, 98, 84, 85, 171, 98,
603 98, 96, 96, 170, 63, 98, 96, 83, 722, 99,
604 113, 84, 84, 96, 84, 98, 98, 96, 96, 96,
605 98, 156, 84, 103, 104, 85, 96, 98, 105, 167,
606 96, 98, 98, 98, 96, 110, 722, 158, 106, 111,
607 98, 112, 135, 107, 98, 68, 722, 108, 98, 123,
608 114, 124, 175, 157, 118, 119, 109, 115, 120, 138,
610 125, 116, 139, 126, 117, 121, 127, 129, 122, 128,
611 102, 136, 131, 96, 96, 137, 96, 130, 96, 132,
612 133, 93, 96, 96, 134, 69, 70, 98, 98, 176,
613 98, 96, 98, 165, 96, 165, 98, 98, 166, 166,
614 166, 166, 96, 96, 69, 98, 60, 96, 98, 175,
615 96, 96, 96, 722, 140, 141, 98, 98, 142, 143,
616 147, 98, 722, 149, 98, 98, 98, 151, 150, 144,
617 145, 153, 146, 152, 173, 96, 148, 722, 154, 77,
618 77, 77, 77, 84, 84, 84, 176, 84, 722, 98,
619 190, 179, 159, 160, 177, 160, 160, 160, 178, 722,
621 191, 722, 84, 84, 722, 84, 192, 722, 96, 722,
622 159, 160, 193, 84, 160, 160, 96, 160, 161, 161,
623 161, 161, 98, 96, 194, 96, 96, 722, 96, 96,
624 98, 162, 163, 96, 163, 163, 163, 98, 96, 98,
625 98, 96, 98, 98, 96, 722, 722, 98, 722, 162,
626 163, 722, 98, 163, 163, 98, 163, 81, 98, 82,
627 82, 82, 82, 195, 196, 198, 199, 722, 202, 722,
628 197, 203, 83, 96, 96, 164, 164, 164, 722, 164,
629 201, 204, 96, 200, 96, 96, 205, 98, 98, 207,
630 83, 722, 206, 211, 164, 164, 98, 164, 98, 98,
632 96, 96, 96, 96, 96, 164, 96, 722, 96, 96,
633 96, 96, 722, 96, 98, 98, 98, 98, 98, 96,
634 98, 96, 98, 98, 98, 98, 96, 98, 209, 208,
635 722, 722, 722, 98, 96, 98, 213, 212, 210, 722,
636 98, 96, 722, 180, 181, 182, 183, 184, 98, 722,
637 268, 185, 722, 214, 222, 98, 215, 216, 218, 186,
638 187, 188, 217, 189, 232, 221, 224, 219, 96, 96,
639 223, 225, 227, 96, 220, 96, 96, 226, 96, 96,
640 96, 722, 98, 98, 228, 96, 96, 98, 96, 98,
641 98, 229, 98, 98, 98, 230, 231, 96, 722, 98,
643 98, 96, 98, 166, 166, 166, 166, 96, 96, 722,
644 236, 98, 234, 237, 240, 98, 722, 722, 96, 233,
645 241, 98, 98, 242, 238, 245, 239, 96, 722, 722,
646 235, 243, 98, 248, 246, 244, 249, 722, 722, 247,
647 722, 98, 252, 96, 252, 722, 251, 253, 253, 253,
648 253, 160, 250, 160, 160, 160, 256, 98, 256, 266,
649 96, 257, 257, 257, 257, 722, 164, 164, 164, 160,
650 164, 281, 160, 160, 98, 160, 161, 161, 161, 161,
651 163, 96, 163, 163, 163, 164, 164, 282, 164, 254,
652 255, 265, 255, 255, 255, 98, 164, 722, 163, 96,
654 722, 163, 163, 722, 163, 722, 96, 254, 255, 267,
655 96, 255, 255, 98, 255, 166, 166, 166, 166, 260,
656 98, 96, 96, 722, 98, 722, 296, 722, 96, 258,
657 96, 258, 258, 258, 96, 98, 98, 261, 261, 261,
658 262, 261, 98, 722, 98, 722, 722, 258, 98, 722,
659 258, 258, 96, 258, 269, 272, 261, 261, 96, 261,
660 270, 271, 273, 262, 96, 284, 98, 261, 96, 275,
661 722, 278, 98, 274, 96, 96, 96, 96, 98, 96,
662 276, 96, 98, 722, 277, 96, 96, 96, 98, 98,
663 98, 98, 96, 98, 722, 98, 722, 279, 722, 98,
665 98, 98, 96, 96, 722, 96, 98, 280, 286, 283,
666 287, 96, 285, 289, 96, 722, 98, 98, 290, 98,
667 96, 722, 96, 295, 96, 98, 288, 96, 98, 298,
668 722, 96, 291, 96, 98, 292, 98, 297, 98, 293,
669 294, 98, 299, 301, 302, 98, 96, 98, 303, 304,
670 300, 722, 96, 96, 96, 305, 722, 96, 96, 96,
671 98, 722, 96, 307, 309, 308, 98, 98, 98, 306,
672 314, 98, 98, 98, 96, 96, 98, 96, 96, 96,
673 96, 722, 96, 722, 310, 318, 722, 722, 98, 98,
674 96, 98, 98, 98, 98, 315, 98, 311, 313, 96,
676 317, 316, 96, 96, 98, 312, 722, 96, 96, 722,
677 96, 722, 722, 98, 96, 96, 98, 98, 96, 319,
678 323, 98, 98, 322, 98, 321, 320, 96, 98, 98,
679 96, 96, 98, 722, 96, 324, 96, 96, 325, 722,
680 96, 98, 96, 328, 98, 98, 96, 330, 98, 333,
681 98, 98, 326, 327, 98, 96, 98, 722, 722, 722,
682 98, 722, 329, 722, 96, 722, 331, 722, 96, 98,
683 96, 332, 336, 334, 253, 253, 253, 253, 98, 339,
684 341, 335, 98, 342, 98, 337, 96, 338, 96, 96,
685 344, 722, 340, 722, 343, 253, 253, 253, 253, 345,
687 98, 345, 98, 98, 346, 346, 346, 346, 722, 255,
688 96, 255, 255, 255, 257, 257, 257, 257, 356, 257,
689 257, 257, 257, 722, 98, 722, 722, 255, 365, 358,
690 255, 255, 722, 255, 258, 96, 258, 258, 258, 347,
691 357, 348, 348, 348, 349, 96, 722, 722, 96, 98,
692 722, 722, 258, 722, 722, 258, 258, 347, 258, 98,
693 348, 348, 98, 348, 722, 361, 722, 349, 350, 350,
694 350, 350, 261, 261, 261, 96, 261, 722, 350, 350,
695 350, 350, 351, 722, 352, 352, 352, 353, 372, 98,
696 359, 261, 261, 362, 261, 350, 350, 350, 350, 350,
698 351, 722, 261, 352, 352, 96, 352, 354, 96, 354,
699 353, 96, 355, 355, 355, 355, 96, 96, 96, 98,
700 96, 96, 98, 96, 360, 98, 96, 96, 96, 96,
701 98, 98, 98, 96, 98, 98, 96, 98, 96, 96,
702 98, 98, 98, 98, 722, 96, 363, 98, 96, 96,
703 98, 96, 98, 98, 722, 96, 722, 722, 364, 98,
704 370, 371, 98, 98, 367, 98, 366, 375, 374, 98,
705 96, 368, 369, 376, 96, 373, 96, 377, 378, 96,
706 379, 96, 722, 96, 98, 722, 96, 96, 98, 383,
707 98, 96, 96, 98, 382, 98, 384, 98, 722, 380,
709 98, 98, 96, 381, 96, 98, 98, 96, 96, 96,
710 385, 96, 386, 96, 96, 722, 98, 96, 98, 96,
711 96, 98, 98, 98, 96, 98, 399, 98, 98, 388,
712 96, 98, 387, 98, 98, 391, 389, 96, 98, 392,
713 96, 722, 390, 96, 98, 96, 96, 96, 722, 722,
714 397, 98, 96, 722, 98, 393, 96, 98, 96, 98,
715 98, 98, 394, 395, 396, 96, 98, 398, 400, 96,
716 98, 403, 98, 96, 401, 96, 96, 402, 96, 98,
717 96, 96, 404, 98, 96, 722, 722, 98, 96, 98,
718 98, 96, 98, 722, 98, 98, 722, 405, 98, 407,
720 408, 412, 98, 406, 96, 98, 410, 409, 96, 411,
721 413, 96, 96, 722, 415, 96, 96, 417, 98, 418,
722 722, 419, 98, 96, 416, 98, 98, 414, 722, 98,
723 98, 722, 722, 722, 421, 722, 96, 98, 420, 346,
724 346, 346, 346, 722, 722, 346, 346, 346, 346, 348,
725 98, 348, 348, 348, 722, 96, 424, 425, 722, 437,
726 422, 355, 355, 355, 355, 722, 423, 348, 96, 98,
727 348, 348, 426, 348, 426, 440, 722, 427, 427, 427,
728 427, 428, 98, 429, 429, 429, 430, 96, 722, 352,
729 96, 352, 352, 352, 96, 427, 427, 427, 427, 428,
731 435, 98, 429, 429, 98, 429, 722, 352, 98, 430,
732 352, 352, 431, 352, 431, 96, 434, 432, 432, 432,
733 432, 355, 355, 355, 355, 722, 96, 96, 722, 98,
734 436, 96, 722, 96, 96, 433, 96, 433, 433, 433,
735 98, 98, 439, 438, 96, 98, 445, 98, 98, 96,
736 98, 96, 96, 433, 722, 722, 433, 433, 98, 433,
737 722, 96, 722, 98, 96, 98, 98, 96, 443, 441,
738 96, 96, 722, 96, 442, 98, 444, 96, 98, 96,
739 96, 98, 96, 448, 98, 98, 447, 98, 722, 446,
740 449, 98, 450, 98, 98, 722, 98, 96, 451, 96,
742 722, 96, 452, 722, 454, 96, 96, 96, 455, 456,
743 96, 98, 96, 98, 453, 98, 722, 458, 96, 98,
744 98, 98, 96, 96, 98, 96, 98, 96, 96, 457,
745 459, 96, 98, 722, 722, 722, 98, 98, 460, 98,
746 96, 98, 98, 96, 722, 98, 463, 461, 464, 462,
747 96, 96, 96, 467, 98, 722, 96, 98, 465, 469,
748 96, 96, 466, 96, 98, 98, 98, 96, 468, 471,
749 98, 478, 472, 96, 98, 98, 96, 98, 96, 96,
750 470, 98, 96, 96, 96, 96, 96, 98, 96, 96,
751 98, 476, 98, 98, 722, 473, 98, 98, 98, 98,
753 98, 96, 98, 98, 475, 474, 96, 722, 479, 96,
754 480, 477, 96, 481, 96, 98, 722, 483, 482, 485,
755 98, 487, 722, 98, 722, 490, 98, 484, 98, 488,
756 491, 722, 722, 96, 489, 722, 96, 722, 486, 96,
757 722, 722, 429, 493, 429, 429, 429, 98, 96, 495,
758 98, 492, 722, 98, 494, 427, 427, 427, 427, 722,
759 429, 96, 98, 429, 429, 722, 429, 722, 722, 348,
760 722, 348, 348, 348, 496, 98, 496, 498, 96, 497,
761 497, 497, 497, 432, 432, 432, 432, 348, 503, 499,
762 348, 348, 98, 348, 432, 432, 432, 432, 433, 96,
764 433, 433, 433, 96, 96, 722, 502, 96, 352, 722,
765 352, 352, 352, 98, 722, 722, 433, 98, 98, 433,
766 433, 98, 433, 96, 96, 722, 352, 96, 500, 352,
767 352, 96, 352, 96, 96, 501, 96, 98, 98, 509,
768 96, 98, 96, 96, 96, 98, 96, 98, 98, 96,
769 98, 504, 96, 96, 98, 96, 98, 98, 98, 505,
770 98, 506, 96, 98, 96, 96, 98, 98, 96, 98,
771 512, 96, 722, 507, 508, 511, 98, 513, 98, 98,
772 96, 722, 98, 722, 510, 98, 96, 514, 722, 722,
773 517, 518, 519, 520, 98, 521, 96, 515, 516, 96,
775 98, 96, 526, 522, 96, 523, 528, 96, 524, 525,
776 98, 96, 722, 98, 96, 98, 96, 722, 98, 96,
777 96, 98, 96, 527, 96, 98, 529, 96, 98, 96,
778 98, 530, 96, 98, 98, 96, 98, 531, 98, 96,
779 96, 98, 722, 98, 96, 96, 98, 96, 96, 98,
780 96, 533, 722, 98, 98, 96, 532, 534, 98, 98,
781 722, 98, 98, 536, 98, 96, 537, 96, 96, 98,
782 96, 96, 96, 722, 535, 497, 497, 497, 497, 98,
783 96, 98, 98, 96, 98, 98, 98, 541, 538, 96,
784 96, 96, 722, 722, 98, 722, 96, 98, 96, 539,
786 96, 540, 722, 98, 98, 98, 542, 543, 544, 547,
787 98, 96, 98, 96, 98, 96, 545, 549, 546, 497,
788 497, 497, 497, 722, 96, 98, 96, 98, 551, 98,
789 96, 548, 96, 429, 550, 429, 429, 429, 98, 96,
790 98, 552, 722, 722, 98, 96, 98, 96, 96, 96,
791 96, 429, 553, 98, 429, 429, 555, 429, 722, 98,
792 96, 98, 98, 98, 98, 554, 557, 722, 96, 556,
793 96, 96, 559, 96, 98, 96, 722, 722, 558, 96,
794 96, 560, 98, 722, 98, 98, 96, 98, 96, 98,
795 561, 564, 562, 98, 98, 722, 96, 563, 96, 96,
797 98, 722, 98, 96, 96, 565, 96, 96, 96, 566,
798 98, 568, 98, 98, 570, 567, 571, 98, 98, 96,
799 98, 98, 98, 96, 569, 96, 96, 96, 722, 96,
800 96, 96, 96, 98, 96, 722, 96, 98, 574, 98,
801 98, 98, 575, 98, 98, 98, 98, 96, 98, 572,
802 98, 573, 722, 96, 96, 96, 722, 96, 96, 722,
803 577, 98, 579, 578, 96, 582, 576, 98, 98, 98,
804 583, 98, 98, 584, 96, 96, 96, 96, 98, 580,
805 581, 722, 585, 96, 722, 96, 722, 96, 98, 98,
806 98, 98, 96, 96, 96, 587, 722, 98, 590, 98,
808 586, 98, 96, 591, 96, 589, 98, 98, 98, 96,
809 588, 592, 594, 593, 96, 96, 98, 96, 98, 722,
810 96, 96, 96, 98, 722, 595, 96, 96, 98, 98,
811 722, 98, 598, 596, 98, 98, 98, 96, 597, 722,
812 98, 98, 722, 96, 600, 603, 96, 96, 96, 599,
813 96, 98, 722, 605, 96, 96, 601, 98, 96, 722,
814 98, 98, 98, 602, 98, 604, 608, 609, 98, 98,
815 96, 96, 98, 610, 96, 606, 607, 96, 96, 96,
816 96, 96, 722, 96, 98, 98, 96, 96, 98, 96,
817 611, 98, 98, 98, 98, 98, 613, 98, 96, 614,
819 98, 98, 612, 98, 96, 722, 96, 616, 722, 96,
820 96, 96, 98, 618, 722, 621, 722, 619, 98, 623,
821 98, 96, 624, 98, 98, 98, 96, 722, 625, 617,
822 615, 620, 96, 96, 96, 98, 622, 722, 722, 626,
823 98, 628, 96, 629, 96, 96, 98, 98, 98, 96,
824 96, 631, 632, 627, 630, 96, 98, 96, 98, 98,
825 96, 722, 96, 98, 98, 96, 96, 96, 642, 98,
826 96, 98, 96, 633, 98, 635, 98, 634, 96, 98,
827 98, 98, 722, 636, 98, 96, 98, 96, 96, 722,
828 637, 638, 98, 96, 722, 96, 639, 96, 96, 98,
830 96, 98, 98, 640, 96, 96, 96, 98, 644, 98,
831 722, 98, 98, 96, 98, 96, 96, 643, 98, 98,
832 98, 645, 641, 646, 647, 96, 722, 98, 96, 98,
833 98, 96, 722, 96, 96, 96, 96, 96, 722, 98,
834 650, 649, 98, 96, 722, 98, 652, 98, 98, 98,
835 98, 98, 655, 648, 96, 657, 722, 98, 653, 722,
836 96, 722, 96, 651, 96, 96, 654, 658, 98, 96,
837 659, 662, 663, 664, 98, 656, 98, 96, 98, 98,
838 96, 96, 96, 98, 96, 96, 96, 96, 722, 96,
839 96, 98, 96, 96, 98, 98, 98, 96, 98, 98,
841 98, 98, 665, 98, 98, 96, 98, 98, 722, 722,
842 666, 98, 722, 96, 96, 96, 667, 96, 668, 98,
843 676, 669, 674, 670, 672, 677, 675, 98, 98, 98,
844 680, 98, 671, 679, 96, 96, 96, 673, 722, 96,
845 96, 722, 722, 96, 96, 678, 96, 96, 98, 98,
846 98, 96, 681, 98, 98, 682, 683, 98, 98, 722,
847 98, 98, 722, 96, 96, 98, 96, 96, 96, 96,
848 722, 96, 96, 685, 96, 96, 684, 98, 98, 687,
849 98, 98, 98, 98, 686, 98, 98, 96, 98, 98,
850 96, 96, 722, 688, 689, 96, 96, 722, 96, 96,
852 96, 98, 722, 692, 98, 98, 690, 691, 96, 98,
853 98, 694, 98, 98, 98, 699, 693, 96, 96, 695,
854 96, 96, 98, 696, 96, 697, 96, 722, 698, 722,
855 96, 98, 98, 96, 98, 98, 702, 704, 98, 96,
856 98, 700, 96, 701, 98, 722, 96, 98, 703, 96,
857 96, 706, 96, 98, 705, 96, 98, 709, 96, 707,
858 98, 96, 96, 98, 98, 96, 98, 712, 722, 98,
859 722, 722, 98, 710, 711, 98, 98, 708, 722, 98,
860 713, 722, 722, 722, 722, 722, 722, 722, 722, 722,
861 716, 722, 718, 722, 720, 722, 722, 714, 721, 715,
863 722, 722, 722, 722, 722, 717, 722, 722, 722, 722,
864 722, 722, 722, 722, 722, 719, 61, 61, 61, 61,
865 61, 61, 61, 61, 68, 68, 722, 68, 68, 68,
866 68, 68, 97, 722, 722, 722, 97, 97, 97, 168,
867 168, 168, 169, 169, 174, 174, 174, 174, 174, 174,
868 174, 174, 259, 259, 263, 263, 263, 264, 264, 661,
869 722, 661, 661, 661, 3, 722, 722, 722, 722, 722,
870 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
871 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
872 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
874 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
875 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
876 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
877 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
881 static yyconst short int yy_chk[2642] =
883 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
884 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
885 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
886 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
887 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
888 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
889 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
890 1, 1, 1, 1, 1, 1, 10, 13, 13, 14,
891 19, 661, 22, 21, 22, 22, 22, 22, 30, 30,
892 23, 32, 19, 21, 21, 23, 14, 40, 33, 25,
894 25, 25, 25, 23, 26, 32, 28, 61, 26, 642,
895 176, 40, 33, 10, 24, 57, 24, 24, 24, 24,
896 25, 28, 34, 28, 28, 39, 34, 34, 101, 24,
897 98, 47, 24, 24, 24, 96, 24, 24, 95, 39,
898 34, 43, 38, 91, 61, 47, 49, 24, 25, 33,
899 40, 24, 24, 41, 24, 43, 38, 42, 44, 97,
900 49, 57, 24, 38, 38, 24, 45, 41, 38, 85,
901 46, 42, 44, 97, 48, 39, 69, 76, 38, 39,
902 45, 39, 47, 38, 46, 69, 63, 38, 48, 43,
903 41, 43, 100, 68, 42, 42, 38, 41, 42, 49,
905 43, 41, 49, 44, 41, 42, 44, 45, 42, 44,
906 37, 48, 46, 50, 51, 48, 52, 45, 53, 46,
907 46, 29, 54, 99, 46, 68, 18, 50, 51, 100,
908 52, 107, 53, 83, 55, 83, 54, 99, 83, 83,
909 83, 83, 105, 103, 15, 107, 9, 104, 55, 174,
910 108, 109, 110, 3, 50, 51, 105, 103, 51, 51,
911 52, 104, 0, 53, 108, 109, 110, 54, 53, 51,
912 51, 55, 51, 54, 99, 111, 52, 0, 55, 77,
913 77, 77, 77, 84, 84, 84, 174, 84, 0, 111,
914 107, 105, 77, 77, 103, 77, 77, 77, 104, 0,
916 108, 0, 84, 84, 0, 84, 109, 0, 112, 0,
917 77, 77, 110, 84, 77, 77, 114, 77, 81, 81,
918 81, 81, 112, 113, 111, 118, 119, 0, 115, 116,
919 114, 81, 81, 117, 81, 81, 81, 113, 125, 118,
920 119, 121, 115, 116, 120, 0, 0, 117, 0, 81,
921 81, 0, 125, 81, 81, 121, 81, 82, 120, 82,
922 82, 82, 82, 112, 113, 115, 116, 0, 119, 0,
923 114, 119, 82, 122, 123, 82, 82, 82, 0, 82,
924 118, 119, 124, 117, 126, 127, 120, 122, 123, 121,
925 82, 0, 120, 125, 82, 82, 124, 82, 126, 127,
927 128, 129, 130, 131, 135, 82, 106, 0, 137, 141,
928 132, 134, 0, 179, 128, 129, 130, 131, 135, 133,
929 106, 136, 137, 141, 132, 134, 138, 179, 123, 122,
930 0, 0, 0, 133, 139, 136, 127, 126, 124, 0,
931 138, 140, 0, 106, 106, 106, 106, 106, 139, 0,
932 179, 106, 0, 128, 135, 140, 129, 130, 133, 106,
933 106, 106, 132, 106, 141, 134, 137, 133, 142, 143,
934 136, 138, 139, 144, 133, 146, 145, 138, 147, 148,
935 150, 0, 142, 143, 140, 149, 151, 144, 152, 146,
936 145, 140, 147, 148, 150, 140, 140, 153, 0, 149,
938 151, 154, 152, 165, 165, 165, 165, 194, 177, 0,
939 144, 153, 143, 144, 145, 154, 0, 0, 214, 142,
940 146, 194, 177, 147, 144, 150, 144, 188, 0, 0,
941 143, 148, 214, 152, 150, 149, 152, 0, 0, 151,
942 0, 188, 159, 173, 159, 0, 154, 159, 159, 159,
943 159, 160, 153, 160, 160, 160, 162, 173, 162, 177,
944 178, 162, 162, 162, 162, 0, 164, 164, 164, 160,
945 164, 188, 160, 160, 178, 160, 161, 161, 161, 161,
946 163, 202, 163, 163, 163, 164, 164, 188, 164, 161,
947 161, 173, 161, 161, 161, 202, 164, 0, 163, 181,
949 0, 163, 163, 0, 163, 0, 180, 161, 161, 178,
950 190, 161, 161, 181, 161, 166, 166, 166, 166, 168,
951 180, 184, 182, 0, 190, 0, 202, 0, 183, 166,
952 186, 166, 166, 166, 185, 184, 182, 168, 168, 168,
953 168, 168, 183, 0, 186, 0, 0, 166, 185, 0,
954 166, 166, 187, 166, 180, 181, 168, 168, 189, 168,
955 180, 180, 182, 168, 191, 190, 187, 168, 192, 183,
956 0, 186, 189, 182, 193, 195, 196, 197, 191, 198,
957 184, 199, 192, 0, 185, 200, 201, 203, 193, 195,
958 196, 197, 204, 198, 0, 199, 0, 187, 0, 200,
960 201, 203, 206, 207, 0, 205, 204, 187, 192, 189,
961 193, 208, 191, 196, 209, 0, 206, 207, 197, 205,
962 210, 0, 211, 201, 212, 208, 195, 213, 209, 204,
963 0, 215, 198, 216, 210, 199, 211, 203, 212, 200,
964 200, 213, 205, 206, 207, 215, 217, 216, 207, 208,
965 205, 0, 218, 219, 221, 209, 0, 220, 222, 223,
966 217, 0, 225, 211, 213, 212, 218, 219, 221, 210,
967 220, 220, 222, 223, 226, 224, 225, 227, 228, 229,
968 230, 0, 231, 0, 216, 224, 0, 0, 226, 224,
969 232, 227, 228, 229, 230, 221, 231, 217, 219, 233,
971 223, 222, 235, 234, 232, 218, 0, 236, 237, 0,
972 240, 0, 0, 233, 238, 239, 235, 234, 241, 225,
973 229, 236, 237, 228, 240, 227, 226, 242, 238, 239,
974 244, 243, 241, 0, 246, 230, 245, 247, 231, 0,
975 248, 242, 251, 235, 244, 243, 249, 237, 246, 240,
976 245, 247, 233, 234, 248, 250, 251, 0, 0, 0,
977 249, 0, 236, 0, 264, 0, 238, 0, 265, 250,
978 266, 239, 243, 241, 252, 252, 252, 252, 264, 246,
979 248, 242, 265, 249, 266, 244, 268, 245, 267, 275,
980 251, 0, 247, 0, 250, 253, 253, 253, 253, 254,
982 268, 254, 267, 275, 254, 254, 254, 254, 253, 255,
983 271, 255, 255, 255, 256, 256, 256, 256, 266, 257,
984 257, 257, 257, 0, 271, 0, 253, 255, 275, 268,
985 255, 255, 257, 255, 258, 281, 258, 258, 258, 259,
986 267, 259, 259, 259, 259, 269, 0, 0, 272, 281,
987 257, 0, 258, 0, 0, 258, 258, 259, 258, 269,
988 259, 259, 272, 259, 0, 271, 0, 259, 260, 260,
989 260, 260, 261, 261, 261, 270, 261, 0, 260, 260,
990 260, 260, 260, 0, 260, 260, 260, 260, 281, 270,
991 269, 261, 261, 272, 261, 260, 260, 260, 260, 260,
993 260, 0, 261, 260, 260, 273, 260, 262, 274, 262,
994 260, 276, 262, 262, 262, 262, 277, 279, 278, 273,
995 283, 280, 274, 282, 270, 276, 284, 287, 285, 288,
996 277, 279, 278, 289, 283, 280, 290, 282, 286, 291,
997 284, 287, 285, 288, 0, 292, 273, 289, 293, 294,
998 290, 295, 286, 291, 0, 296, 0, 0, 274, 292,
999 279, 280, 293, 294, 277, 295, 276, 284, 283, 296,
1000 297, 277, 278, 285, 298, 282, 299, 286, 287, 300,
1001 289, 301, 0, 302, 297, 0, 303, 305, 298, 295,
1002 299, 304, 306, 300, 294, 301, 296, 302, 0, 292,
1004 303, 305, 307, 293, 308, 304, 306, 310, 309, 312,
1005 297, 311, 298, 315, 314, 0, 307, 313, 308, 316,
1006 317, 310, 309, 312, 318, 311, 314, 315, 314, 300,
1007 320, 313, 299, 316, 317, 303, 301, 321, 318, 304,
1008 319, 0, 302, 322, 320, 323, 324, 325, 0, 0,
1009 312, 321, 326, 0, 319, 307, 329, 322, 328, 323,
1010 324, 325, 308, 309, 311, 327, 326, 313, 315, 331,
1011 329, 320, 328, 330, 317, 332, 333, 319, 334, 327,
1012 335, 336, 321, 331, 337, 0, 0, 330, 338, 332,
1013 333, 339, 334, 0, 335, 336, 0, 322, 337, 324,
1015 325, 329, 338, 323, 340, 339, 327, 326, 341, 328,
1016 330, 342, 343, 0, 332, 356, 344, 334, 340, 335,
1017 0, 336, 341, 360, 333, 342, 343, 331, 0, 356,
1018 344, 0, 0, 0, 339, 0, 363, 360, 338, 345,
1019 345, 345, 345, 0, 0, 346, 346, 346, 346, 348,
1020 363, 348, 348, 348, 0, 358, 343, 344, 346, 360,
1021 340, 354, 354, 354, 354, 0, 342, 348, 357, 358,
1022 348, 348, 349, 348, 349, 363, 346, 349, 349, 349,
1023 349, 350, 357, 350, 350, 350, 350, 359, 0, 352,
1024 361, 352, 352, 352, 362, 426, 426, 426, 426, 350,
1026 358, 359, 350, 350, 361, 350, 0, 352, 362, 350,
1027 352, 352, 353, 352, 353, 364, 357, 353, 353, 353,
1028 353, 355, 355, 355, 355, 0, 365, 366, 0, 364,
1029 359, 367, 0, 368, 369, 355, 370, 355, 355, 355,
1030 365, 366, 362, 361, 371, 367, 368, 368, 369, 372,
1031 370, 373, 375, 355, 0, 0, 355, 355, 371, 355,
1032 0, 374, 0, 372, 376, 373, 375, 377, 366, 364,
1033 378, 379, 0, 380, 365, 374, 367, 381, 376, 382,
1034 383, 377, 384, 371, 378, 379, 370, 380, 0, 369,
1035 372, 381, 373, 382, 383, 0, 384, 385, 374, 386,
1037 0, 387, 375, 0, 377, 388, 390, 389, 378, 380,
1038 391, 385, 392, 386, 376, 387, 0, 383, 393, 388,
1039 390, 389, 394, 395, 391, 396, 392, 397, 399, 382,
1040 384, 398, 393, 0, 0, 0, 394, 395, 385, 396,
1041 400, 397, 399, 401, 0, 398, 388, 386, 389, 387,
1042 402, 403, 404, 392, 400, 0, 405, 401, 390, 394,
1043 408, 406, 391, 407, 402, 403, 404, 409, 393, 397,
1044 405, 406, 398, 410, 408, 406, 411, 407, 412, 413,
1045 396, 409, 414, 415, 416, 417, 418, 410, 420, 419,
1046 411, 404, 412, 413, 0, 401, 414, 415, 416, 417,
1048 418, 421, 420, 419, 403, 402, 422, 0, 407, 423,
1049 408, 405, 424, 410, 425, 421, 0, 412, 411, 414,
1050 422, 416, 0, 423, 0, 419, 424, 413, 425, 417,
1051 419, 0, 0, 439, 418, 0, 434, 0, 415, 435,
1052 0, 0, 429, 422, 429, 429, 429, 439, 463, 424,
1053 434, 421, 0, 435, 423, 427, 427, 427, 427, 0,
1054 429, 438, 463, 429, 429, 0, 429, 0, 0, 427,
1055 0, 427, 427, 427, 430, 438, 430, 434, 436, 430,
1056 430, 430, 430, 431, 431, 431, 431, 427, 439, 435,
1057 427, 427, 436, 427, 432, 432, 432, 432, 433, 437,
1059 433, 433, 433, 440, 441, 0, 438, 442, 432, 0,
1060 432, 432, 432, 437, 0, 0, 433, 440, 441, 433,
1061 433, 442, 433, 443, 444, 0, 432, 445, 436, 432,
1062 432, 446, 432, 448, 447, 437, 450, 443, 444, 445,
1063 449, 445, 451, 454, 452, 446, 455, 448, 447, 453,
1064 450, 440, 457, 456, 449, 458, 451, 454, 452, 441,
1065 455, 442, 459, 453, 460, 461, 457, 456, 464, 458,
1066 448, 462, 0, 443, 444, 447, 459, 449, 460, 461,
1067 465, 0, 464, 0, 446, 462, 466, 450, 0, 0,
1068 453, 454, 455, 456, 465, 456, 467, 451, 452, 468,
1070 466, 469, 459, 456, 470, 456, 461, 471, 457, 458,
1071 467, 472, 0, 468, 473, 469, 474, 0, 470, 475,
1072 476, 471, 477, 460, 478, 472, 462, 479, 473, 480,
1073 474, 465, 481, 475, 476, 482, 477, 466, 478, 483,
1074 484, 479, 0, 480, 485, 486, 481, 487, 488, 482,
1075 489, 473, 0, 483, 484, 490, 469, 474, 485, 486,
1076 0, 487, 488, 477, 489, 491, 479, 492, 493, 490,
1077 494, 495, 498, 0, 475, 496, 496, 496, 496, 491,
1078 499, 492, 493, 500, 494, 495, 498, 489, 484, 501,
1079 502, 504, 0, 0, 499, 0, 503, 500, 505, 485,
1081 506, 487, 0, 501, 502, 504, 490, 491, 492, 495,
1082 503, 507, 505, 509, 506, 508, 493, 499, 494, 497,
1083 497, 497, 497, 0, 510, 507, 511, 509, 502, 508,
1084 512, 498, 513, 497, 500, 497, 497, 497, 510, 514,
1085 511, 503, 0, 0, 512, 515, 513, 516, 517, 518,
1086 519, 497, 506, 514, 497, 497, 508, 497, 0, 515,
1087 522, 516, 517, 518, 519, 507, 511, 0, 520, 510,
1088 521, 523, 513, 524, 522, 525, 0, 0, 512, 526,
1089 527, 514, 520, 0, 521, 523, 528, 524, 529, 525,
1090 515, 519, 516, 526, 527, 0, 530, 518, 531, 532,
1092 528, 0, 529, 533, 534, 520, 535, 536, 537, 520,
1093 530, 522, 531, 532, 524, 521, 525, 533, 534, 538,
1094 535, 536, 537, 539, 523, 540, 541, 542, 0, 543,
1095 544, 545, 546, 538, 547, 0, 548, 539, 532, 540,
1096 541, 542, 533, 543, 544, 545, 546, 549, 547, 530,
1097 548, 531, 0, 550, 551, 552, 0, 553, 554, 0,
1098 536, 549, 539, 537, 559, 542, 535, 550, 551, 552,
1099 544, 553, 554, 546, 556, 555, 557, 558, 559, 540,
1100 541, 0, 547, 560, 0, 561, 0, 562, 556, 555,
1101 557, 558, 563, 564, 565, 550, 0, 560, 553, 561,
1103 549, 562, 566, 554, 567, 552, 563, 564, 565, 568,
1104 551, 555, 557, 556, 569, 570, 566, 571, 567, 0,
1105 572, 573, 574, 568, 0, 558, 575, 577, 569, 570,
1106 0, 571, 564, 561, 572, 573, 574, 576, 562, 0,
1107 575, 577, 0, 578, 566, 568, 579, 580, 581, 565,
1108 582, 576, 0, 571, 583, 584, 566, 578, 585, 0,
1109 579, 580, 581, 567, 582, 569, 574, 575, 583, 584,
1110 586, 587, 585, 576, 588, 572, 573, 589, 590, 592,
1111 591, 593, 0, 594, 586, 587, 595, 596, 588, 597,
1112 579, 589, 590, 592, 591, 593, 582, 594, 598, 585,
1114 595, 596, 581, 597, 599, 0, 600, 587, 0, 601,
1115 602, 603, 598, 589, 0, 592, 0, 590, 599, 594,
1116 600, 604, 595, 601, 602, 603, 605, 0, 596, 588,
1117 586, 591, 606, 607, 608, 604, 593, 0, 0, 597,
1118 605, 599, 609, 600, 610, 611, 606, 607, 608, 612,
1119 613, 602, 603, 598, 601, 614, 609, 615, 610, 611,
1120 616, 0, 617, 612, 613, 618, 619, 620, 619, 614,
1121 621, 615, 622, 604, 616, 608, 617, 605, 623, 618,
1122 619, 620, 0, 610, 621, 624, 622, 625, 626, 0,
1123 611, 613, 623, 627, 0, 628, 616, 629, 630, 624,
1125 631, 625, 626, 617, 632, 633, 634, 627, 622, 628,
1126 0, 629, 630, 635, 631, 636, 638, 620, 632, 633,
1127 634, 624, 618, 625, 626, 637, 0, 635, 639, 636,
1128 638, 640, 0, 641, 645, 643, 644, 646, 0, 637,
1129 631, 630, 639, 647, 0, 640, 633, 641, 645, 643,
1130 644, 646, 636, 629, 648, 638, 0, 647, 634, 0,
1131 649, 0, 650, 632, 651, 652, 635, 640, 648, 654,
1132 641, 643, 644, 646, 649, 637, 650, 655, 651, 652,
1133 653, 656, 657, 654, 659, 663, 658, 664, 0, 662,
1134 665, 655, 666, 667, 653, 656, 657, 668, 659, 663,
1136 658, 664, 648, 662, 665, 669, 666, 667, 0, 0,
1137 649, 668, 0, 670, 672, 671, 651, 673, 652, 669,
1138 659, 653, 658, 654, 656, 662, 658, 670, 672, 671,
1139 667, 673, 655, 666, 674, 675, 676, 657, 0, 677,
1140 679, 0, 0, 678, 680, 665, 681, 682, 674, 675,
1141 676, 684, 668, 677, 679, 669, 671, 678, 680, 0,
1142 681, 682, 0, 685, 683, 684, 686, 687, 688, 689,
1143 0, 690, 693, 676, 691, 692, 675, 685, 683, 678,
1144 686, 687, 688, 689, 676, 690, 693, 694, 691, 692,
1145 695, 696, 0, 679, 680, 697, 698, 0, 699, 700,
1147 701, 694, 0, 684, 695, 696, 681, 683, 702, 697,
1148 698, 686, 699, 700, 701, 693, 685, 703, 704, 687,
1149 705, 706, 702, 689, 707, 691, 708, 0, 692, 0,
1150 709, 703, 704, 711, 705, 706, 696, 698, 707, 710,
1151 708, 694, 712, 695, 709, 0, 713, 711, 697, 714,
1152 715, 701, 716, 710, 700, 717, 712, 704, 718, 702,
1153 713, 719, 720, 714, 715, 721, 716, 709, 0, 717,
1154 0, 0, 718, 706, 707, 719, 720, 703, 0, 721,
1155 710, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1156 714, 0, 716, 0, 718, 0, 0, 712, 720, 713,
1158 0, 0, 0, 0, 0, 715, 0, 0, 0, 0,
1159 0, 0, 0, 0, 0, 717, 723, 723, 723, 723,
1160 723, 723, 723, 723, 724, 724, 0, 724, 724, 724,
1161 724, 724, 725, 0, 0, 0, 725, 725, 725, 726,
1162 726, 726, 727, 727, 728, 728, 728, 728, 728, 728,
1163 728, 728, 729, 729, 730, 730, 730, 731, 731, 732,
1164 0, 732, 732, 732, 722, 722, 722, 722, 722, 722,
1165 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
1166 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
1167 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
1169 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
1170 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
1171 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
1172 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
1176 static yy_state_type yy_last_accepting_state;
1177 static char *yy_last_accepting_cpos;
1179 /* The intent behind this definition is that it'll catch
1180 * any uses of REJECT which flex missed.
1182 #define REJECT reject_used_but_not_detected
1183 #define yymore() yymore_used_but_not_detected
1184 #define YY_MORE_ADJ 0
1185 #define YY_RESTORE_YY_MORE_OFFSET
1189 #define YY_NO_UNPUT 1
1192 #define YYLTYPE Location
1193 #define YY_NEVER_INTERACTIVE 1 // Avoid calling isatty on eC File object
1195 #include "grammar.h"
1198 public void SetEchoOn(bool b) { echoOn = b; }
1200 extern YYLTYPE type_yylloc;
1201 extern YYLTYPE expression_yylloc;
1203 extern File fileInput;
1209 yylloc.end.charPos += yyleng;
1210 yylloc.end.pos += yyleng;
1211 type_yylloc.end.charPos += yyleng;
1212 type_yylloc.end.pos += yyleng;
1213 expression_yylloc.end.charPos += yyleng;
1214 expression_yylloc.end.pos += yyleng;
1217 #define YY_USER_ACTION \
1221 yylloc.end.charPos += yyleng;
1222 yylloc.end.pos += yyleng;
1225 #define YY_INPUT(buf,result,max_size) \
1226 result = fileInput.Read(buf, 1, max_size) \
1228 YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
1229 File fileStack[MAX_INCLUDE_DEPTH];
1230 char sourceFileStack[MAX_INCLUDE_DEPTH][MAX_LOCATION];
1231 public void SetSomeSourceFileStack(const char * fileName, int index) { strcpy(sourceFileStack[index], fileName); }
1232 YYLTYPE locStack[MAX_INCLUDE_DEPTH];
1233 AccessMode declModeStack[MAX_INCLUDE_DEPTH];
1234 int include_stack_ptr = 0;
1239 #line 1240 "lexer.ec"
1241 /* Macros after this point can all be overridden by user definitions in
1245 #ifndef YY_SKIP_YYWRAP
1247 extern "C" int yywrap YY_PROTO(( void ));
1249 extern int yywrap YY_PROTO(( void ));
1254 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1258 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1261 #ifdef YY_NEED_STRLEN
1262 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1267 static int yyinput YY_PROTO(( void ));
1269 static int input YY_PROTO(( void ));
1274 static int yy_start_stack_ptr = 0;
1275 static int yy_start_stack_depth = 0;
1276 static int *yy_start_stack = 0;
1277 #ifndef YY_NO_PUSH_STATE
1278 static void yy_push_state YY_PROTO(( int new_state ));
1280 #ifndef YY_NO_POP_STATE
1281 static void yy_pop_state YY_PROTO(( void ));
1283 #ifndef YY_NO_TOP_STATE
1284 static int yy_top_state YY_PROTO(( void ));
1288 #define YY_NO_PUSH_STATE 1
1289 #define YY_NO_POP_STATE 1
1290 #define YY_NO_TOP_STATE 1
1293 #ifdef YY_MALLOC_DECL
1301 /* Just try to get by without declaring the routines. This will fail
1302 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1303 * or sizeof(void*) != sizeof(int).
1308 /* Amount of stuff to slurp up with each read. */
1309 #ifndef YY_READ_BUF_SIZE
1310 #define YY_READ_BUF_SIZE 8192
1313 /* Copy whatever the last rule matched to the standard output. */
1316 /* This used to be an fputs(), but since the string might contain NUL's,
1317 * we now use fwrite().
1319 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1322 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1323 * is returned in "result".
1326 #define YY_INPUT(buf,result,max_size) \
1327 if ( yy_current_buffer->yy_is_interactive ) \
1330 for ( n = 0; n < max_size && \
1331 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1332 buf[n] = (char) c; \
1334 buf[n++] = (char) c; \
1335 if ( c == EOF && ferror( yyin ) ) \
1336 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1339 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1340 && ferror( yyin ) ) \
1341 YY_FATAL_ERROR( "input in flex scanner failed" );
1344 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1345 * we don't want an extra ';' after the "return" because that will cause
1346 * some compilers to complain about unreachable statements.
1349 #define yyterminate() return YY_NULL
1352 /* Number of entries by which start-condition stack grows. */
1353 #ifndef YY_START_STACK_INCR
1354 #define YY_START_STACK_INCR 25
1357 /* Report a fatal error. */
1358 #ifndef YY_FATAL_ERROR
1359 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1362 /* Default declaration of generated scanner - a define so the user can
1363 * easily add parameters.
1366 #define YY_DECL int yylex YY_PROTO(( void ))
1369 /* Code executed at the beginning of each rule, after yytext and yyleng
1372 #ifndef YY_USER_ACTION
1373 #define YY_USER_ACTION
1376 /* Code executed at the end of each rule. */
1378 #define YY_BREAK break;
1381 #define YY_RULE_SETUP \
1386 register yy_state_type yy_current_state;
1387 register char *yy_cp, *yy_bp;
1388 register int yy_act;
1394 yylloc.start = yylloc.end;
1395 type_yylloc.start = type_yylloc.end;
1396 expression_yylloc.start = expression_yylloc.end;
1399 #line 1400 "lexer.ec"
1410 yy_start = 1; /* first start state */
1418 if ( ! yy_current_buffer )
1420 yy_create_buffer( yyin, YY_BUF_SIZE );
1422 yy_load_buffer_state();
1425 while ( 1 ) /* loops until end-of-file is reached */
1429 /* Support of yytext. */
1430 *yy_cp = yy_hold_char;
1432 /* yy_bp points to the position in yy_ch_buf of the start of
1437 yy_current_state = yy_start;
1441 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1442 if ( yy_accept[yy_current_state] )
1444 yy_last_accepting_state = yy_current_state;
1445 yy_last_accepting_cpos = yy_cp;
1447 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1449 yy_current_state = (int) yy_def[yy_current_state];
1450 if ( yy_current_state >= 723 )
1451 yy_c = yy_meta[(unsigned int) yy_c];
1453 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1456 while ( yy_base[yy_current_state] != 2565 );
1459 yy_act = yy_accept[yy_current_state];
1461 { /* have to back up */
1462 yy_cp = yy_last_accepting_cpos;
1463 yy_current_state = yy_last_accepting_state;
1464 yy_act = yy_accept[yy_current_state];
1467 YY_DO_BEFORE_ACTION;
1470 do_action: /* This label is used only to access EOF actions. */
1474 { /* beginning of action switch */
1475 case 0: /* must back up */
1476 /* undo the effects of YY_DO_BEFORE_ACTION */
1477 *yy_cp = yy_hold_char;
1478 yy_cp = yy_last_accepting_cpos;
1479 yy_current_state = yy_last_accepting_state;
1480 goto yy_find_action;
1525 { return(CONTINUE); }
1530 { return(DEFAULT); }
1587 /* "uint16" { return(UINT16); } */
1588 /* "uint32" { return(UINT32); } */
1589 /* "bool" { return(BOOL_TOKEN); } */
1598 { return(REGISTER); }
1633 { return(ALIGNOF); }
1658 { return(TYPEDEF); }
1668 { return(UNSIGNED); }
1678 { return(VOLATILE); }
1683 { return(VOLATILE); }
1688 { return(VOLATILE); }
1698 { return(PROPERTY); }
1703 { return(SETPROP); } // TODO: Don't make this a keyword...
1708 { return(GETPROP); } // TODO: Don't make this a keyword...
1713 { return(ISPROPSET); } // TODO: Don't make this a keyword...
1723 { return(THISCLASS); }
1728 { return(VIRTUAL); }
1798 { return(_COMPLEX); }
1803 { return(_IMAGINARY); }
1808 { return(EXT_DECL); }
1810 /* "__attribute__".?"(("({D}|{L})*"))" { return(EXT_ATTRIB); } */
1811 /* DID I MEAN? "__attribute__"" "*"(("" "*({D}|{L})*" "*("("({D}|{L})*(" "*","" "*({D}|{L})*)*" "*")")?" "*"))" { return(EXT_ATTRIB); } */
1813 "__attribute_deprecated__"(" "*)"(("(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*)(","(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*))*"))" { return(EXT_ATTRIB); }
1814 "__attribute__" (" "*)"(("(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*)(","(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*))*"))" { return(EXT_ATTRIB); }
1815 "__attribute" (" "*)"(("(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*)(","(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*))*"))" { return(EXT_ATTRIB); }
1818 [__attribute__] [spaces]
1820 [digits | letters] [spaces]
1821 ( [(] [digits or letters or "] ( [spaces] [,] [spaces] [digits or letters or "] )* [spaces] [)] )?
1823 ( [,] [spaces] [digits or letters] [spaces]
1824 ( [(] [digits or letters or "]
1825 ( [spaces] [,] [spaces] [digits or letters or "] )* [spaces] [)]
1830 /* "__attribute__".?"((".?({D}|{L})*.?("("({D}|{L})*(.?",".?({D}|{L})*)*.?")")?.?"))" { return(EXT_ATTRIB); } */
1831 /* "__attribute".?"((".?({D}|{L})*.?("("({D}|{L})*(.?",".?({D}|{L})*)*.?")")?.?"))" { return(EXT_ATTRIB); }*/
1835 { return ATTRIB_DEP; }
1845 { return __ATTRIB; }
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_STORAGE); }
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(CONST /*EXT_DECL*/); }
1920 { return(EXT_DECL); }
1930 { return(PRIVATE); }
1935 { return(TYPED_OBJECT); }
1940 { return(ANY_OBJECT); }
1945 { return(_INCREF); }
1950 { return(EXTENSION); }
1955 { return(EXTENSION); }
1985 { return(STOPWATCHING); }
1990 { return(FIREWATCHERS); }
1995 { return(WATCHABLE); }
2000 { return(CLASS_DESIGNER); }
2005 { return(CLASS_NO_EXPANSION); }
2010 { return(CLASS_FIXED); }
2015 { return(CLASS_DEFAULT_PROPERTY); }
2020 { return(PROPERTY_CATEGORY); }
2025 { return(CLASS_DATA); }
2030 { return(CLASS_PROPERTY); }
2035 { return(SUBCLASS); }
2040 { return(NAMESPACE); }
2045 { return(DBTABLE); }
2050 { return(DBFIELD); }
2055 { return(DBINDEX); }
2060 { return(DATABASE_OPEN); }
2065 { return(check_type()); } // {L}({L}|{D})* { return(check_type()); } // ("::"|(({IDENT}"::")*)){IDENT} { return(check_type()); } // {L}({L}|{D})* { return(check_type()); }
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(CONSTANT); }
2120 { return(STRING_LITERAL); }
2125 { return(WIDE_STRING_LITERAL); }
2130 { return(ELLIPSIS); }
2135 { return(RIGHT_ASSIGN); }
2140 { return(LEFT_ASSIGN); }
2145 { return(ADD_ASSIGN); }
2150 { return(SUB_ASSIGN); }
2155 { return(MUL_ASSIGN); }
2160 { return(DIV_ASSIGN); }
2165 { return(MOD_ASSIGN); }
2170 { return(AND_ASSIGN); }
2175 { return(XOR_ASSIGN); }
2180 { return(OR_ASSIGN); }
2185 { return(RIGHT_OP); }
2190 { return(LEFT_OP); }
2237 /* "::" { return(CLASS_OP); } */
2363 case YY_STATE_EOF(INITIAL):
2366 while(include_stack_ptr && !fileStack[include_stack_ptr-1])
2368 --include_stack_ptr;
2369 defaultDeclMode = declMode = structDeclMode = declModeStack[include_stack_ptr];
2372 if ( --include_stack_ptr < 0 )
2374 include_stack_ptr = 0;
2380 yy_delete_buffer( YY_CURRENT_BUFFER );
2381 fileInput = fileStack[include_stack_ptr];
2382 yylloc = locStack[include_stack_ptr];
2383 type_yylloc = locStack[include_stack_ptr];
2384 expression_yylloc = locStack[include_stack_ptr];
2385 yy_switch_to_buffer(include_stack[include_stack_ptr] );
2386 defaultDeclMode = declMode = structDeclMode = declModeStack[include_stack_ptr];
2393 { yylloc.start = yylloc.end; type_yylloc.start = type_yylloc.end; expression_yylloc.start = expression_yylloc.end;}
2399 yylloc.end.charPos = 1; yylloc.end.line += yyleng; yylloc.start = yylloc.end;
2400 type_yylloc.end.charPos = 1; type_yylloc.end.line += yyleng; type_yylloc.start = type_yylloc.end;
2401 expression_yylloc.end.charPos = 1; expression_yylloc.end.line += yyleng; expression_yylloc.start = expression_yylloc.end;
2408 yylloc.start.charPos++ /*= 3 - (yylloc.start.col % 3)*/; yylloc.end.charPos = yylloc.start.charPos; yylloc.start.pos = yylloc.end.pos;
2409 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;
2410 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;
2416 { yylloc.start = yylloc.end; expression_yylloc.start = expression_yylloc.end; type_yylloc.start = type_yylloc.end; }
2422 yylloc.start = yylloc.end; expression_yylloc.start = expression_yylloc.end; type_yylloc.start = type_yylloc.end;
2424 printf("lexer error: invalid char 0x%X at line %d, col %d\n", (unsigned char)yytext[0], yylloc.start.line, yylloc.start.charPos);
2433 #line 2434 "lexer.ec"
2435 case YY_END_OF_BUFFER:
2437 /* Amount of text matched not including the EOB char. */
2438 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2440 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2441 *yy_cp = yy_hold_char;
2442 YY_RESTORE_YY_MORE_OFFSET
2444 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2446 /* We're scanning a new file or input source. It's
2447 * possible that this happened because the user
2448 * just pointed yyin at a new source and called
2449 * yylex(). If so, then we have to assure
2450 * consistency between yy_current_buffer and our
2451 * globals. Here is the right place to do so, because
2452 * this is the first action (other than possibly a
2453 * back-up) that will match for the new input source.
2455 yy_n_chars = yy_current_buffer->yy_n_chars;
2456 yy_current_buffer->yy_input_file = yyin;
2457 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2460 /* Note that here we test for yy_c_buf_p "<=" to the position
2461 * of the first EOB in the buffer, since yy_c_buf_p will
2462 * already have been incremented past the NUL character
2463 * (since all states make transitions on EOB to the
2464 * end-of-buffer state). Contrast this with the test
2467 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2468 { /* This was really a NUL. */
2469 yy_state_type yy_next_state;
2471 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2473 yy_current_state = yy_get_previous_state();
2475 /* Okay, we're now positioned to make the NUL
2476 * transition. We couldn't have
2477 * yy_get_previous_state() go ahead and do it
2478 * for us because it doesn't know how to deal
2479 * with the possibility of jamming (and we don't
2480 * want to build jamming into it because then it
2481 * will run more slowly).
2484 yy_next_state = yy_try_NUL_trans( yy_current_state );
2486 yy_bp = yytext_ptr + YY_MORE_ADJ;
2488 if ( yy_next_state )
2490 /* Consume the NUL. */
2491 yy_cp = ++yy_c_buf_p;
2492 yy_current_state = yy_next_state;
2499 goto yy_find_action;
2503 else switch ( yy_get_next_buffer() )
2505 case EOB_ACT_END_OF_FILE:
2507 yy_did_buffer_switch_on_eof = 0;
2511 /* Note: because we've taken care in
2512 * yy_get_next_buffer() to have set up
2513 * yytext, we can now set up
2514 * yy_c_buf_p so that if some total
2515 * hoser (like flex itself) wants to
2516 * call the scanner after we return the
2517 * YY_NULL, it'll still work - another
2518 * YY_NULL will get returned.
2520 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2522 yy_act = YY_STATE_EOF(YY_START);
2528 if ( ! yy_did_buffer_switch_on_eof )
2534 case EOB_ACT_CONTINUE_SCAN:
2536 yytext_ptr + yy_amount_of_matched_text;
2538 yy_current_state = yy_get_previous_state();
2541 yy_bp = yytext_ptr + YY_MORE_ADJ;
2544 case EOB_ACT_LAST_MATCH:
2546 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2548 yy_current_state = yy_get_previous_state();
2551 yy_bp = yytext_ptr + YY_MORE_ADJ;
2552 goto yy_find_action;
2559 "fatal flex scanner internal error--no action found" );
2560 } /* end of action switch */
2561 } /* end of scanning one token */
2562 } /* end of yylex */
2565 /* yy_get_next_buffer - try to read in a new buffer
2567 * Returns a code representing an action:
2568 * EOB_ACT_LAST_MATCH -
2569 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2570 * EOB_ACT_END_OF_FILE - end of file
2573 static int yy_get_next_buffer()
2575 register char *dest = yy_current_buffer->yy_ch_buf;
2576 register char *source = yytext_ptr;
2577 register int number_to_move, i;
2580 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2582 "fatal flex scanner internal error--end of buffer missed" );
2584 if ( yy_current_buffer->yy_fill_buffer == 0 )
2585 { /* Don't try to fill the buffer, so this is an EOF. */
2586 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2588 /* We matched a single character, the EOB, so
2589 * treat this as a final EOF.
2591 return EOB_ACT_END_OF_FILE;
2596 /* We matched some text prior to the EOB, first
2599 return EOB_ACT_LAST_MATCH;
2603 /* Try to read more data. */
2605 /* First move last chars to start of buffer. */
2606 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2608 for ( i = 0; i < number_to_move; ++i )
2609 *(dest++) = *(source++);
2611 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2612 /* don't do the read, it's not guaranteed to return an EOF,
2615 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2620 yy_current_buffer->yy_buf_size - number_to_move - 1;
2622 while ( num_to_read <= 0 )
2623 { /* Not enough room in the buffer - grow it. */
2624 #ifdef YY_USES_REJECT
2626 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2629 /* just a shorter name for the current buffer */
2630 YY_BUFFER_STATE b = yy_current_buffer;
2632 int yy_c_buf_p_offset =
2633 (int) (yy_c_buf_p - b->yy_ch_buf);
2635 if ( b->yy_is_our_buffer )
2637 int new_size = b->yy_buf_size * 2;
2639 if ( new_size <= 0 )
2640 b->yy_buf_size += b->yy_buf_size / 8;
2642 b->yy_buf_size *= 2;
2644 b->yy_ch_buf = (char *)
2645 /* Include room in for 2 EOB chars. */
2646 yy_flex_realloc( (void *) b->yy_ch_buf,
2647 b->yy_buf_size + 2 );
2650 /* Can't grow it, we don't own it. */
2653 if ( ! b->yy_ch_buf )
2655 "fatal error - scanner input buffer overflow" );
2657 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2659 num_to_read = yy_current_buffer->yy_buf_size -
2664 if ( num_to_read > YY_READ_BUF_SIZE )
2665 num_to_read = YY_READ_BUF_SIZE;
2667 /* Read in more data. */
2668 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2669 yy_n_chars, num_to_read );
2671 yy_current_buffer->yy_n_chars = yy_n_chars;
2674 if ( yy_n_chars == 0 )
2676 if ( number_to_move == YY_MORE_ADJ )
2678 ret_val = EOB_ACT_END_OF_FILE;
2684 ret_val = EOB_ACT_LAST_MATCH;
2685 yy_current_buffer->yy_buffer_status =
2686 YY_BUFFER_EOF_PENDING;
2691 ret_val = EOB_ACT_CONTINUE_SCAN;
2693 yy_n_chars += number_to_move;
2694 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2695 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2697 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2703 /* yy_get_previous_state - get the state just before the EOB char was reached */
2705 static yy_state_type yy_get_previous_state()
2707 register yy_state_type yy_current_state;
2708 register char *yy_cp;
2710 yy_current_state = yy_start;
2712 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2714 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2715 if ( yy_accept[yy_current_state] )
2717 yy_last_accepting_state = yy_current_state;
2718 yy_last_accepting_cpos = yy_cp;
2720 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2722 yy_current_state = (int) yy_def[yy_current_state];
2723 if ( yy_current_state >= 723 )
2724 yy_c = yy_meta[(unsigned int) yy_c];
2726 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2729 return yy_current_state;
2733 /* yy_try_NUL_trans - try to make a transition on the NUL character
2736 * next_state = yy_try_NUL_trans( current_state );
2739 #ifdef YY_USE_PROTOS
2740 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2742 static yy_state_type yy_try_NUL_trans( yy_current_state )
2743 yy_state_type yy_current_state;
2746 register int yy_is_jam;
2747 register char *yy_cp = yy_c_buf_p;
2749 register YY_CHAR yy_c = 1;
2750 if ( yy_accept[yy_current_state] )
2752 yy_last_accepting_state = yy_current_state;
2753 yy_last_accepting_cpos = yy_cp;
2755 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2757 yy_current_state = (int) yy_def[yy_current_state];
2758 if ( yy_current_state >= 723 )
2759 yy_c = yy_meta[(unsigned int) yy_c];
2761 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2762 yy_is_jam = (yy_current_state == 722);
2764 return yy_is_jam ? 0 : yy_current_state;
2769 #ifdef YY_USE_PROTOS
2770 static void yyunput( int c, register char *yy_bp )
2772 static void yyunput( c, yy_bp )
2774 register char *yy_bp;
2777 register char *yy_cp = yy_c_buf_p;
2779 /* undo effects of setting up yytext */
2780 *yy_cp = yy_hold_char;
2782 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2783 { /* need to shift things up to make room */
2784 /* +2 for EOB chars. */
2785 register int number_to_move = yy_n_chars + 2;
2786 register char *dest = &yy_current_buffer->yy_ch_buf[
2787 yy_current_buffer->yy_buf_size + 2];
2788 register char *source =
2789 &yy_current_buffer->yy_ch_buf[number_to_move];
2791 while ( source > yy_current_buffer->yy_ch_buf )
2792 *--dest = *--source;
2794 yy_cp += (int) (dest - source);
2795 yy_bp += (int) (dest - source);
2796 yy_current_buffer->yy_n_chars =
2797 yy_n_chars = yy_current_buffer->yy_buf_size;
2799 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2800 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2803 *--yy_cp = (char) c;
2807 yy_hold_char = *yy_cp;
2810 #endif /* ifndef YY_NO_UNPUT */
2814 static int yyinput()
2821 *yy_c_buf_p = yy_hold_char;
2823 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2825 /* yy_c_buf_p now points to the character we want to return.
2826 * If this occurs *before* the EOB characters, then it's a
2827 * valid NUL; if not, then we've hit the end of the buffer.
2829 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2830 /* This was really a NUL. */
2834 { /* need more input */
2835 int offset = yy_c_buf_p - yytext_ptr;
2838 switch ( yy_get_next_buffer() )
2840 case EOB_ACT_LAST_MATCH:
2841 /* This happens because yy_g_n_b()
2842 * sees that we've accumulated a
2843 * token and flags that we need to
2844 * try matching the token before
2845 * proceeding. But for input(),
2846 * there's no matching to consider.
2847 * So convert the EOB_ACT_LAST_MATCH
2848 * to EOB_ACT_END_OF_FILE.
2851 /* Reset buffer status. */
2856 case EOB_ACT_END_OF_FILE:
2861 if ( ! yy_did_buffer_switch_on_eof )
2870 case EOB_ACT_CONTINUE_SCAN:
2871 yy_c_buf_p = yytext_ptr + offset;
2877 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
2878 *yy_c_buf_p = '\0'; /* preserve yytext */
2879 yy_hold_char = *++yy_c_buf_p;
2886 #ifdef YY_USE_PROTOS
2887 void yyrestart( FILE *input_file )
2889 void yyrestart( input_file )
2893 if ( ! yy_current_buffer )
2894 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2896 yy_init_buffer( yy_current_buffer, input_file );
2897 yy_load_buffer_state();
2901 #ifdef YY_USE_PROTOS
2902 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2904 void yy_switch_to_buffer( new_buffer )
2905 YY_BUFFER_STATE new_buffer;
2908 if ( yy_current_buffer == new_buffer )
2911 if ( yy_current_buffer )
2913 /* Flush out information for old buffer. */
2914 *yy_c_buf_p = yy_hold_char;
2915 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2916 yy_current_buffer->yy_n_chars = yy_n_chars;
2919 yy_current_buffer = new_buffer;
2920 yy_load_buffer_state();
2922 /* We don't actually know whether we did this switch during
2923 * EOF (yywrap()) processing, but the only time this flag
2924 * is looked at is after yywrap() is called, so it's safe
2925 * to go ahead and always set it.
2927 yy_did_buffer_switch_on_eof = 1;
2931 #ifdef YY_USE_PROTOS
2932 void yy_load_buffer_state( void )
2934 void yy_load_buffer_state()
2937 yy_n_chars = yy_current_buffer->yy_n_chars;
2938 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2939 yyin = yy_current_buffer->yy_input_file;
2940 yy_hold_char = *yy_c_buf_p;
2944 #ifdef YY_USE_PROTOS
2945 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2947 YY_BUFFER_STATE yy_create_buffer( file, size )
2954 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2956 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2958 b->yy_buf_size = size;
2960 /* yy_ch_buf has to be 2 characters longer than the size given because
2961 * we need to put in 2 end-of-buffer characters.
2963 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2964 if ( ! b->yy_ch_buf )
2965 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2967 b->yy_is_our_buffer = 1;
2969 yy_init_buffer( b, file );
2975 #ifdef YY_USE_PROTOS
2976 void yy_delete_buffer( YY_BUFFER_STATE b )
2978 void yy_delete_buffer( b )
2985 if ( b == yy_current_buffer )
2986 yy_current_buffer = (YY_BUFFER_STATE) 0;
2988 if ( b->yy_is_our_buffer )
2989 yy_flex_free( (void *) b->yy_ch_buf );
2991 yy_flex_free( (void *) b );
2995 #ifndef YY_ALWAYS_INTERACTIVE
2996 #ifndef YY_NEVER_INTERACTIVE
2997 extern int isatty YY_PROTO(( int ));
3001 #ifdef YY_USE_PROTOS
3002 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
3004 void yy_init_buffer( b, file )
3011 yy_flush_buffer( b );
3013 b->yy_input_file = file;
3014 b->yy_fill_buffer = 1;
3016 #if YY_ALWAYS_INTERACTIVE
3017 b->yy_is_interactive = 1;
3019 #if YY_NEVER_INTERACTIVE
3020 b->yy_is_interactive = 0;
3022 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3028 #ifdef YY_USE_PROTOS
3029 void yy_flush_buffer( YY_BUFFER_STATE b )
3031 void yy_flush_buffer( b )
3041 /* We always need two end-of-buffer characters. The first causes
3042 * a transition to the end-of-buffer state. The second causes
3043 * a jam in that state.
3045 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3046 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3048 b->yy_buf_pos = &b->yy_ch_buf[0];
3051 b->yy_buffer_status = YY_BUFFER_NEW;
3053 if ( b == yy_current_buffer )
3054 yy_load_buffer_state();
3058 #ifndef YY_NO_SCAN_BUFFER
3059 #ifdef YY_USE_PROTOS
3060 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3062 YY_BUFFER_STATE yy_scan_buffer( base, size )
3070 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3071 base[size-1] != YY_END_OF_BUFFER_CHAR )
3072 /* They forgot to leave room for the EOB's. */
3075 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3077 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3079 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3080 b->yy_buf_pos = b->yy_ch_buf = base;
3081 b->yy_is_our_buffer = 0;
3082 b->yy_input_file = 0;
3083 b->yy_n_chars = b->yy_buf_size;
3084 b->yy_is_interactive = 0;
3086 b->yy_fill_buffer = 0;
3087 b->yy_buffer_status = YY_BUFFER_NEW;
3089 yy_switch_to_buffer( b );
3096 #ifndef YY_NO_SCAN_STRING
3097 #ifdef YY_USE_PROTOS
3098 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3100 YY_BUFFER_STATE yy_scan_string( yy_str )
3101 yyconst char *yy_str;
3105 for ( len = 0; yy_str[len]; ++len )
3108 return yy_scan_bytes( yy_str, len );
3113 #ifndef YY_NO_SCAN_BYTES
3114 #ifdef YY_USE_PROTOS
3115 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3117 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3118 yyconst char *bytes;
3127 /* Get memory for full buffer, including space for trailing EOB's. */
3129 buf = (char *) yy_flex_alloc( n );
3131 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3133 for ( i = 0; i < len; ++i )
3136 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3138 b = yy_scan_buffer( buf, n );
3140 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3142 /* It's okay to grow etc. this buffer, and we should throw it
3143 * away when we're done.
3145 b->yy_is_our_buffer = 1;
3152 #ifndef YY_NO_PUSH_STATE
3153 #ifdef YY_USE_PROTOS
3154 static void yy_push_state( int new_state )
3156 static void yy_push_state( new_state )
3160 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3164 yy_start_stack_depth += YY_START_STACK_INCR;
3165 new_size = yy_start_stack_depth * sizeof( int );
3167 if ( ! yy_start_stack )
3168 yy_start_stack = (int *) yy_flex_alloc( new_size );
3171 yy_start_stack = (int *) yy_flex_realloc(
3172 (void *) yy_start_stack, new_size );
3174 if ( ! yy_start_stack )
3176 "out of memory expanding start-condition stack" );
3179 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3186 #ifndef YY_NO_POP_STATE
3187 static void yy_pop_state()
3189 if ( --yy_start_stack_ptr < 0 )
3190 YY_FATAL_ERROR( "start-condition stack underflow" );
3192 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3197 #ifndef YY_NO_TOP_STATE
3198 static int yy_top_state()
3200 return yy_start_stack[yy_start_stack_ptr - 1];
3204 #ifndef YY_EXIT_FAILURE
3205 #define YY_EXIT_FAILURE 2
3208 #ifdef YY_USE_PROTOS
3209 static void yy_fatal_error( yyconst char msg[] )
3211 static void yy_fatal_error( msg )
3215 (void) fprintf( stderr, "%s\n", msg );
3216 exit( YY_EXIT_FAILURE );
3221 /* Redefine yyless() so it works in section 3 code. */
3227 /* Undo effects of setting up yytext. */ \
3228 yytext[yyleng] = yy_hold_char; \
3229 yy_c_buf_p = yytext + n; \
3230 yy_hold_char = *yy_c_buf_p; \
3231 *yy_c_buf_p = '\0'; \
3237 /* Internal utility routines. */
3240 #ifdef YY_USE_PROTOS
3241 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3243 static void yy_flex_strncpy( s1, s2, n )
3250 for ( i = 0; i < n; ++i )
3255 #ifdef YY_NEED_STRLEN
3256 #ifdef YY_USE_PROTOS
3257 static int yy_flex_strlen( yyconst char *s )
3259 static int yy_flex_strlen( s )
3264 for ( n = 0; s[n]; ++n )
3272 #ifdef YY_USE_PROTOS
3273 static void *yy_flex_alloc( yy_size_t size )
3275 static void *yy_flex_alloc( size )
3279 return (void *) malloc( size );
3282 #ifdef YY_USE_PROTOS
3283 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3285 static void *yy_flex_realloc( ptr, size )
3290 /* The cast to (char *) in the following accommodates both
3291 * implementations that use char* generic pointers, and those
3292 * that use void* generic pointers. It works with the latter
3293 * because both ANSI C and C++ allow castless assignment from
3294 * any pointer type to void*, and deal with argument conversions
3295 * as though doing an assignment.
3297 return (void *) realloc( (char *) ptr, size );
3300 #ifdef YY_USE_PROTOS
3301 static void yy_flex_free( void *ptr )
3303 static void yy_flex_free( ptr )
3335 // fputc(c, output);
3339 yylloc.end.charPos = 1;
3345 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3350 yylloc.end.charPos++;
3353 if(c == '/' && last == '*')
3357 yylloc.start = yylloc.end;
3363 int c; //, last = 0;
3369 // fputc(c, output);
3373 yylloc.end.charPos = 1;
3380 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3385 yylloc.end.charPos++;
3390 yylloc.start = yylloc.end;
3409 yylloc.end.charPos = 1;
3414 char * pointer = line + 1;
3417 lineNumber = GetValue(&pointer);
3420 char fileName[MAX_LOCATION];
3425 GetString(&pointer, fileName, MAX_LOCATION);
3426 inOut = GetValue(&pointer);
3430 char extension[MAX_EXTENSION];
3432 defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
3434 GetExtension(fileName, extension);
3435 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
3436 declMode = defaultDeclMode = structDeclMode = defaultAccess;
3438 fileStack[include_stack_ptr] = null;
3439 include_stack_ptr++;
3443 include_stack_ptr--;
3444 defaultDeclMode = declMode = structDeclMode = declModeStack[include_stack_ptr];
3447 yylloc.end.charPos = 1;
3448 yylloc.end.line = lineNumber;
3449 //yylloc.end.pos -= count;
3451 if(include_stack_ptr > 0 || (lineNumber && fileName[0]))
3452 yylloc.end.included = GetIncludeFileID(fileName);
3454 yylloc.end.included = 0;
3457 int lineNumber = strtol(line+1, &endPtr, 0);
3463 yylloc.end.charPos = 1;
3464 yylloc.end.line = lineNumber;
3465 yylloc.end.pos -= count;
3474 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3483 yylloc.end.charPos++;
3489 yylloc.start = yylloc.end;
3492 TrimLSpaces(line, line);
3493 for(c = 0; line[c] && line[c] != ' '; c++);
3494 if(!strncmp(line, "include", c))
3496 char includeFile[MAX_LOCATION] = "";
3498 memmove(line, line+c, strlen(line+c)+1);
3499 TrimLSpaces(line, line);
3502 for(c = 1; line[c]; c++)
3506 strncpy(includeFile, line+1, c-1);
3507 includeFile[c-1] = '\0';
3512 else if(line[0] == '<')
3514 for(c = 1; line[c]; c++)
3517 strncpy(includeFile, line+1, c-1);
3518 includeFile[c-1] = '\0';
3523 if ( include_stack_ptr >= MAX_INCLUDE_DEPTH )
3525 fprintf( stderr, "%s", $"Includes nested too deeply" );
3529 if(inCompiler || !FindIncludeFileID(includeFile))
3531 File file = OpenIncludeFile(includeFile);
3534 char extension[MAX_EXTENSION];
3536 fileStack[include_stack_ptr] = fileInput;
3537 locStack[include_stack_ptr] = yylloc;
3538 defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
3539 include_stack[include_stack_ptr++] = YY_CURRENT_BUFFER;
3541 yylloc.start.charPos = yylloc.end.charPos = 1;
3542 yylloc.start.line = yylloc.end.line = 1;
3543 yylloc.start.pos = yylloc.end.pos = 0;
3544 yylloc.start.included = yylloc.end.included = GetIncludeFileID(includeFile);
3546 GetExtension(includeFile, extension);
3547 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
3548 declMode = defaultDeclMode = structDeclMode = defaultAccess;
3551 yy_switch_to_buffer( yy_create_buffer( fileInput, YY_BUF_SIZE ) );
3559 public void resetScanner()
3562 yylloc.start.charPos = yylloc.end.charPos = 1;
3563 yylloc.start.line = yylloc.end.line = 1;
3564 yylloc.start.pos = yylloc.end.pos = 0;
3565 yylloc.start.included = yylloc.end.included = 0;
3567 expression_yylloc.start.charPos = expression_yylloc.end.charPos = 1;
3568 expression_yylloc.start.line = expression_yylloc.end.line = 1;
3569 expression_yylloc.start.pos = expression_yylloc.end.pos = 0;
3570 expression_yylloc.start.included = expression_yylloc.end.included = 0;
3572 type_yylloc.start.charPos = type_yylloc.end.charPos = 1;
3573 type_yylloc.start.line = type_yylloc.end.line = 1;
3574 type_yylloc.start.pos = type_yylloc.end.pos = 0;
3575 type_yylloc.start.included = type_yylloc.end.included = 0;
3577 include_stack_ptr = 0;
3580 void resetScannerPos(CodePosition pos)
3583 yylloc.start = yylloc.end = pos;
3584 type_yylloc.start = type_yylloc.end = pos;
3585 expression_yylloc.start = expression_yylloc.end = pos;
3591 YYLTYPE type_yylloc;
3592 YYLTYPE expression_yylloc;
3594 AccessMode declMode;
3595 AccessMode defaultDeclMode;
3598 YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
3599 File fileStack[MAX_INCLUDE_DEPTH];
3600 char sourceFileStack[MAX_INCLUDE_DEPTH][MAX_LOCATION];
3601 YYLTYPE locStack[MAX_INCLUDE_DEPTH];
3602 AccessMode declModeStack[MAX_INCLUDE_DEPTH];
3603 int include_stack_ptr;
3604 YY_BUFFER_STATE buffer;
3617 LexerBackup pushLexer()
3619 LexerBackup backup { };
3621 backup.yylloc = yylloc;
3622 backup.type_yylloc = type_yylloc;
3623 backup.expression_yylloc = expression_yylloc;
3624 backup.fileInput = fileInput;
3625 memcpy(backup.include_stack, include_stack, sizeof(include_stack));
3626 memcpy(backup.fileStack, fileStack, sizeof(fileStack));
3627 memcpy(backup.sourceFileStack, sourceFileStack, sizeof(sourceFileStack));
3628 memcpy(backup.locStack, locStack, sizeof(locStack));
3629 memcpy(backup.declModeStack, declModeStack, sizeof(declModeStack));
3630 backup.include_stack_ptr = include_stack_ptr;
3631 backup.defaultDeclMode = defaultDeclMode;
3632 backup.declMode = declMode;
3633 backup.buffer = yy_current_buffer;
3635 backup.yy_n_chars = yy_n_chars;
3636 backup.yytext_ptr = yytext_ptr;
3637 backup.yy_c_buf_p = yy_c_buf_p;
3639 backup.yy_hold_char = yy_hold_char;
3640 backup.yychar = yychar;
3641 backup.yy_init = yy_init;
3642 backup.yy_start = yy_start;
3646 yy_current_buffer = 0;
3648 yylloc.start.charPos = yylloc.end.charPos = 1;
3649 yylloc.start.line = yylloc.end.line = 1;
3650 yylloc.start.pos = yylloc.end.pos = 0;
3651 yylloc.start.included = yylloc.end.included = 0;
3653 expression_yylloc.start.charPos = expression_yylloc.end.charPos = 1;
3654 expression_yylloc.start.line = expression_yylloc.end.line = 1;
3655 expression_yylloc.start.pos = expression_yylloc.end.pos = 0;
3656 expression_yylloc.start.included = expression_yylloc.end.included = 0;
3658 type_yylloc.start.charPos = type_yylloc.end.charPos = 1;
3659 type_yylloc.start.line = type_yylloc.end.line = 1;
3660 type_yylloc.start.pos = type_yylloc.end.pos = 0;
3661 type_yylloc.start.included = type_yylloc.end.included = 0;
3663 include_stack_ptr = 0;
3668 void popLexer(LexerBackup backup)
3670 yylloc = backup.yylloc;
3671 type_yylloc = backup.type_yylloc;
3672 expression_yylloc = backup.expression_yylloc;
3673 fileInput = backup.fileInput;
3674 memcpy(include_stack, backup.include_stack, sizeof(include_stack));
3675 memcpy(fileStack, backup.fileStack, sizeof(fileStack));
3676 memcpy(sourceFileStack, backup.sourceFileStack, sizeof(sourceFileStack));
3677 memcpy(locStack, backup.locStack, sizeof(locStack));
3678 memcpy(declModeStack, backup.declModeStack, sizeof(declModeStack));
3679 include_stack_ptr = backup.include_stack_ptr;
3680 defaultDeclMode = backup.defaultDeclMode;
3681 declMode = structDeclMode = backup.declMode;
3683 // yy_switch_to_buffer(backup.buffer);
3684 yy_current_buffer = backup.buffer;
3685 yy_n_chars = backup.yy_n_chars;
3686 yytext_ptr = backup.yytext_ptr;
3687 yy_c_buf_p = backup.yy_c_buf_p;
3689 yy_hold_char = backup.yy_hold_char;
3690 yychar = backup.yychar;
3691 yy_init = backup.yy_init;
3692 yy_start = backup.yy_start;