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 162
287 #define YY_END_OF_BUFFER 163
288 static yyconst short int yy_accept[697] =
290 102, 102, 163, 161, 160, 159, 158, 145, 161, 1,
291 157, 151, 144, 161, 139, 140, 149, 148, 136, 147,
292 143, 150, 105, 105, 137, 133, 152, 138, 153, 156,
293 102, 102, 141, 142, 154, 102, 102, 102, 102, 102,
294 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
295 102, 102, 102, 134, 155, 135, 146, 132, 0, 110,
296 0, 118, 135, 127, 119, 0, 0, 116, 124, 114,
297 125, 115, 126, 0, 108, 2, 3, 117, 109, 104,
298 0, 105, 0, 105, 102, 142, 134, 141, 123, 129,
299 131, 130, 122, 0, 102, 0, 0, 0, 120, 102,
301 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
302 102, 102, 102, 102, 102, 11, 102, 102, 102, 102,
303 102, 102, 102, 102, 19, 102, 102, 102, 102, 102,
304 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
305 102, 102, 102, 102, 102, 102, 102, 102, 121, 128,
306 106, 111, 0, 108, 108, 0, 109, 104, 0, 107,
307 103, 102, 113, 112, 102, 102, 102, 102, 102, 102,
308 102, 102, 102, 102, 102, 102, 102, 102, 102, 82,
309 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
310 102, 102, 102, 102, 102, 102, 102, 102, 102, 17,
312 41, 102, 102, 102, 102, 20, 102, 102, 102, 47,
313 102, 102, 102, 102, 102, 102, 40, 102, 102, 102,
314 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
315 102, 102, 102, 102, 102, 102, 0, 108, 0, 108,
316 0, 109, 107, 103, 102, 102, 102, 102, 102, 102,
317 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
318 102, 102, 102, 4, 102, 6, 7, 102, 102, 102,
319 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
320 13, 14, 102, 102, 102, 18, 102, 102, 102, 102,
321 102, 22, 102, 48, 102, 102, 102, 102, 102, 102,
323 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
324 102, 21, 102, 102, 102, 35, 102, 102, 102, 0,
325 108, 83, 102, 102, 102, 102, 102, 102, 102, 102,
326 102, 102, 102, 102, 102, 102, 102, 102, 102, 5,
327 43, 8, 102, 102, 102, 102, 102, 102, 102, 102,
328 102, 102, 102, 102, 102, 16, 102, 102, 102, 54,
329 42, 102, 102, 102, 102, 102, 49, 102, 25, 102,
330 102, 102, 102, 102, 102, 102, 102, 102, 102, 33,
331 102, 102, 102, 85, 38, 102, 102, 102, 102, 102,
332 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
334 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
335 52, 46, 102, 102, 12, 15, 102, 51, 78, 62,
336 102, 102, 102, 74, 102, 50, 24, 26, 28, 29,
337 102, 102, 30, 102, 31, 102, 102, 102, 102, 102,
338 102, 102, 81, 102, 102, 66, 72, 102, 102, 102,
339 53, 102, 102, 102, 102, 102, 102, 60, 102, 102,
340 102, 102, 102, 102, 102, 102, 99, 100, 98, 10,
341 102, 102, 102, 102, 75, 102, 102, 70, 102, 102,
342 102, 102, 32, 102, 45, 102, 102, 102, 102, 102,
343 102, 61, 102, 102, 102, 84, 102, 102, 69, 102,
345 102, 102, 102, 102, 102, 9, 102, 102, 102, 102,
346 102, 39, 23, 102, 96, 102, 102, 34, 36, 102,
347 102, 102, 102, 102, 102, 102, 102, 67, 102, 102,
348 102, 102, 102, 102, 102, 102, 102, 102, 64, 65,
349 102, 97, 102, 102, 44, 102, 88, 102, 102, 102,
350 102, 59, 71, 27, 102, 102, 102, 77, 94, 102,
351 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
352 102, 0, 102, 102, 68, 102, 80, 102, 102, 91,
353 102, 102, 102, 102, 102, 102, 102, 0, 0, 102,
354 102, 63, 0, 102, 73, 37, 102, 102, 102, 102,
356 102, 87, 102, 86, 76, 0, 102, 102, 79, 102,
357 102, 102, 102, 101, 102, 0, 0, 0, 0, 0,
358 0, 0, 102, 102, 102, 89, 102, 95, 102, 0,
359 0, 0, 0, 58, 0, 0, 0, 0, 0, 102,
360 102, 102, 102, 102, 0, 0, 0, 0, 0, 0,
361 0, 0, 0, 0, 0, 0, 0, 56, 102, 102,
362 102, 102, 0, 0, 0, 0, 0, 0, 0, 57,
363 0, 0, 0, 0, 55, 102, 102, 93, 0, 0,
364 0, 0, 0, 0, 0, 0, 102, 90, 0, 0,
365 0, 102, 102, 102, 92, 0
369 static yyconst int yy_ec[256] =
371 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
372 4, 4, 1, 1, 1, 1, 1, 1, 1, 1,
373 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
374 1, 5, 6, 7, 8, 9, 10, 11, 12, 13,
375 14, 15, 16, 17, 18, 19, 20, 21, 22, 22,
376 22, 23, 22, 24, 22, 22, 22, 25, 26, 27,
377 28, 29, 30, 1, 31, 31, 31, 31, 32, 33,
378 34, 34, 34, 34, 34, 35, 34, 34, 34, 34,
379 34, 34, 34, 34, 36, 34, 34, 37, 34, 34,
380 38, 39, 40, 41, 42, 1, 43, 44, 45, 46,
382 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
383 57, 58, 34, 59, 60, 61, 62, 63, 64, 65,
384 66, 67, 68, 69, 70, 71, 1, 1, 1, 1,
385 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
386 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
387 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
388 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
389 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
390 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
391 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,
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,
401 static yyconst int yy_meta[72] =
403 1, 1, 1, 1, 2, 1, 3, 1, 1, 1,
404 4, 5, 6, 7, 1, 1, 2, 1, 1, 1,
405 8, 8, 8, 8, 4, 1, 1, 1, 1, 1,
406 9, 9, 9, 10, 10, 10, 10, 1, 1, 1,
407 1, 10, 9, 9, 9, 9, 9, 9, 10, 10,
408 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
409 10, 10, 10, 10, 10, 10, 10, 1, 1, 1,
413 static yyconst short int yy_base[717] =
415 0, 0, 286, 2432, 2432, 2432, 2432, 257, 65, 2432,
416 2432, 45, 64, 240, 2432, 2432, 224, 60, 2432, 61,
417 59, 71, 86, 133, 68, 2432, 75, 219, 66, 2432,
418 73, 104, 2432, 2432, 216, 102, 76, 101, 120, 139,
419 136, 148, 147, 160, 109, 164, 117, 156, 187, 189,
420 202, 199, 211, 2432, 68, 2432, 2432, 2432, 107, 2432,
421 239, 2432, 2432, 2432, 2432, 179, 127, 2432, 2432, 2432,
422 2432, 2432, 2432, 213, 241, 2432, 2432, 2432, 245, 281,
423 207, 236, 0, 0, 0, 2432, 2432, 2432, 189, 2432,
424 2432, 2432, 178, 172, 208, 163, 202, 145, 2432, 333,
426 210, 235, 259, 215, 232, 271, 272, 234, 290, 296,
427 297, 298, 299, 300, 301, 320, 326, 327, 338, 316,
428 331, 346, 356, 358, 362, 379, 384, 386, 387, 389,
429 390, 391, 395, 402, 396, 399, 411, 407, 415, 422,
430 424, 430, 451, 454, 456, 457, 458, 459, 2432, 2432,
431 2432, 2432, 469, 2432, 499, 478, 2432, 462, 504, 515,
432 505, 0, 2432, 2432, 0, 484, 492, 518, 524, 493,
433 531, 541, 540, 549, 551, 557, 559, 561, 567, 461,
434 568, 569, 570, 572, 574, 578, 579, 585, 589, 594,
435 605, 595, 610, 615, 616, 618, 621, 622, 633, 639,
437 640, 641, 642, 649, 659, 661, 664, 666, 667, 669,
438 668, 670, 671, 672, 677, 676, 692, 693, 694, 695,
439 696, 701, 702, 705, 711, 718, 722, 723, 724, 726,
440 729, 728, 730, 734, 733, 750, 741, 770, 750, 2432,
441 774, 778, 2432, 752, 0, 796, 797, 798, 804, 806,
442 805, 809, 808, 814, 816, 817, 824, 825, 826, 832,
443 833, 837, 835, 852, 853, 856, 860, 861, 862, 863,
444 878, 879, 882, 880, 883, 884, 885, 886, 887, 890,
445 888, 891, 906, 907, 908, 909, 914, 916, 918, 924,
446 925, 927, 937, 942, 945, 943, 947, 950, 953, 955,
448 966, 968, 971, 970, 976, 974, 978, 981, 991, 997,
449 993, 1000, 1001, 1009, 1018, 1019, 1020, 1021, 1022, 1027,
450 1031, 1045, 1048, 1049, 1050, 1051, 1052, 1057, 1061, 1067,
451 1072, 1073, 1077, 1083, 1085, 1088, 1089, 1094, 1090, 1098,
452 1106, 1107, 1110, 1113, 1114, 1115, 1116, 1125, 1135, 1136,
453 1132, 1138, 1140, 1142, 1148, 1144, 1147, 1153, 1160, 1163,
454 1164, 1169, 1170, 1175, 1181, 1186, 1188, 1192, 1191, 1193,
455 1194, 1199, 1203, 1210, 1204, 1211, 1212, 1221, 1227, 1230,
456 1234, 1238, 1245, 1239, 1247, 1255, 1260, 1262, 1266, 1267,
457 1273, 1268, 1275, 1278, 1277, 1283, 1284, 1288, 1293, 1296,
459 1294, 1301, 1314, 1304, 1321, 1324, 1323, 1326, 1332, 1333,
460 1336, 1342, 1348, 1352, 1353, 1357, 1360, 1361, 1363, 1364,
461 1365, 1370, 1376, 1381, 1382, 1385, 1386, 1387, 1388, 1389,
462 1391, 1393, 1408, 1409, 1411, 1413, 1414, 1415, 1417, 1416,
463 1419, 1421, 1424, 1432, 1436, 1437, 1441, 1442, 1447, 1449,
464 1457, 1464, 1466, 1467, 1468, 1469, 1472, 1470, 1473, 1477,
465 1479, 1474, 1492, 1494, 1503, 1507, 1518, 1519, 1520, 1522,
466 1523, 1526, 1527, 1530, 1531, 1535, 1546, 1548, 1551, 1552,
467 1553, 1554, 1555, 1556, 1558, 1559, 1563, 1575, 1578, 1579,
468 1582, 1583, 1584, 1586, 1599, 1605, 1607, 1610, 1611, 1620,
470 1616, 1627, 1629, 1631, 1632, 1633, 1637, 1635, 1638, 1653,
471 1644, 1655, 1657, 1659, 1660, 1661, 1663, 1665, 1670, 1681,
472 1682, 1687, 1689, 1691, 1693, 1694, 1697, 1699, 1700, 1702,
473 1706, 1719, 1721, 1712, 1725, 1727, 1715, 1731, 1734, 1740,
474 1743, 1746, 1750, 1755, 1758, 1766, 1759, 1767, 1768, 1774,
475 1771, 1775, 1778, 1783, 1786, 1787, 1790, 1791, 1793, 1794,
476 1796, 1798, 1799, 1811, 1814, 1815, 1822, 1823, 1824, 1841,
477 1830, 164, 1826, 1842, 1832, 1850, 1851, 1852, 1860, 1869,
478 1870, 1871, 1875, 1876, 1877, 1878, 1879, 112, 128, 1882,
479 1887, 2432, 110, 1900, 1880, 1888, 1898, 1906, 1907, 1908,
481 1909, 1910, 1926, 1930, 1932, 1496, 1941, 1933, 1936, 1937,
482 1938, 1945, 1949, 1953, 1956, 1972, 1966, 105, 1977, 1979,
483 130, 93, 1977, 1984, 1987, 1988, 1989, 1992, 1993, 2002,
484 2006, 2016, 2017, 2432, 2024, 2034, 2039, 2041, 2052, 2015,
485 1999, 2017, 2036, 2049, 2058, 2063, 2065, 2076, 2078, 2080,
486 2084, 2086, 2097, 2099, 63, 2104, 2110, 2094, 2095, 2101,
487 2111, 2114, 2123, 2124, 2128, 2129, 2130, 2143, 2145, 2432,
488 2150, 2156, 2161, 2171, 2140, 2158, 2161, 2166, 2176, 2182,
489 2184, 2189, 2190, 2195, 2197, 2205, 2202, 2204, 2216, 2218,
490 2220, 2213, 2215, 2217, 2220, 2432, 2283, 2293, 2300, 2303,
492 2304, 2307, 2309, 2313, 2322, 2331, 2340, 2349, 2358, 2367,
493 2376, 2385, 2394, 2403, 2412, 2421
496 static yyconst short int yy_def[717] =
498 696, 1, 696, 696, 696, 696, 696, 696, 697, 696,
499 696, 696, 696, 698, 696, 696, 696, 696, 696, 696,
500 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
501 699, 699, 696, 696, 696, 699, 699, 699, 699, 699,
502 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
503 699, 699, 699, 696, 696, 696, 696, 696, 697, 696,
504 697, 696, 696, 696, 696, 698, 698, 696, 696, 696,
505 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
506 696, 696, 700, 24, 701, 696, 696, 696, 696, 696,
507 696, 696, 696, 696, 699, 696, 697, 698, 696, 699,
509 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
510 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
511 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
512 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
513 699, 699, 699, 699, 699, 699, 699, 699, 696, 696,
514 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
515 700, 702, 696, 696, 703, 699, 699, 699, 699, 699,
516 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
517 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
518 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
520 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
521 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
522 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
523 699, 699, 699, 699, 699, 699, 696, 696, 696, 696,
524 696, 696, 696, 696, 702, 699, 699, 699, 699, 699,
525 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
526 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
527 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
528 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
529 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
531 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
532 699, 699, 699, 699, 699, 699, 699, 699, 699, 696,
533 696, 699, 699, 699, 699, 699, 699, 699, 699, 699,
534 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
535 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
536 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
537 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
538 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
539 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
540 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
542 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
543 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
544 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
545 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
546 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
547 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
548 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
549 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
550 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
551 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
553 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
554 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
555 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
556 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
557 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
558 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
559 699, 699, 699, 699, 699, 699, 699, 699, 699, 699,
560 699, 704, 699, 699, 699, 699, 699, 699, 699, 699,
561 699, 699, 699, 699, 699, 699, 699, 696, 696, 699,
562 699, 696, 704, 699, 699, 699, 699, 699, 699, 699,
564 699, 699, 699, 699, 699, 705, 699, 699, 699, 699,
565 699, 699, 699, 699, 699, 705, 706, 696, 707, 705,
566 696, 696, 699, 699, 699, 699, 699, 699, 699, 696,
567 706, 696, 708, 696, 707, 709, 707, 696, 710, 699,
568 699, 699, 699, 699, 696, 708, 708, 696, 709, 696,
569 711, 696, 710, 712, 696, 713, 710, 699, 699, 699,
570 699, 699, 696, 711, 711, 696, 712, 696, 714, 696,
571 713, 715, 713, 696, 699, 699, 699, 699, 696, 714,
572 714, 696, 715, 696, 716, 696, 699, 699, 696, 716,
573 716, 699, 699, 699, 699, 0, 696, 696, 696, 696,
575 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
576 696, 696, 696, 696, 696, 696
579 static yyconst short int yy_nxt[2504] =
581 4, 5, 6, 7, 7, 8, 9, 10, 11, 12,
582 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
583 23, 24, 24, 24, 25, 26, 27, 28, 29, 30,
584 31, 31, 31, 31, 32, 31, 31, 33, 4, 34,
585 35, 36, 37, 38, 39, 40, 41, 42, 43, 31,
586 44, 31, 31, 45, 31, 46, 31, 47, 48, 49,
587 50, 51, 52, 53, 31, 31, 31, 54, 55, 56,
588 57, 60, 62, 63, 64, 69, 670, 74, 71, 75,
589 75, 75, 75, 94, 87, 76, 94, 70, 72, 73,
590 77, 65, 85, 92, 93, 149, 86, 96, 78, 88,
592 96, 89, 90, 61, 79, 639, 80, 80, 80, 80,
593 97, 94, 94, 60, 94, 98, 588, 81, 634, 94,
594 82, 82, 83, 592, 589, 96, 96, 94, 96, 696,
595 94, 104, 81, 96, 621, 105, 150, 106, 66, 82,
596 606, 96, 622, 100, 96, 61, 94, 82, 101, 94,
597 83, 79, 102, 84, 84, 84, 84, 94, 94, 107,
598 96, 103, 108, 96, 81, 129, 94, 82, 82, 109,
599 94, 96, 96, 110, 94, 132, 111, 592, 133, 81,
600 96, 112, 113, 67, 96, 114, 82, 165, 96, 117,
601 151, 118, 115, 123, 82, 116, 96, 94, 120, 94,
603 119, 121, 134, 124, 122, 164, 130, 125, 60, 94,
604 131, 96, 94, 96, 126, 127, 163, 67, 94, 128,
605 94, 94, 159, 96, 159, 94, 96, 160, 160, 160,
606 160, 152, 96, 135, 96, 96, 136, 137, 141, 96,
607 61, 696, 94, 99, 94, 94, 91, 138, 139, 145,
608 140, 68, 143, 147, 142, 146, 96, 144, 96, 96,
609 148, 75, 75, 75, 75, 155, 155, 155, 155, 94,
610 82, 82, 153, 154, 176, 154, 156, 157, 67, 157,
611 179, 94, 94, 96, 58, 696, 180, 153, 154, 82,
612 177, 156, 157, 183, 154, 96, 96, 82, 157, 79,
614 94, 80, 80, 80, 80, 696, 94, 94, 94, 94,
615 94, 94, 81, 696, 96, 158, 158, 696, 182, 178,
616 96, 96, 96, 96, 96, 96, 94, 81, 696, 696,
617 94, 181, 184, 696, 158, 696, 94, 94, 185, 696,
618 96, 94, 158, 94, 96, 696, 188, 191, 94, 189,
619 96, 96, 186, 192, 193, 96, 94, 96, 187, 190,
620 696, 696, 96, 696, 696, 696, 94, 696, 94, 696,
621 96, 696, 94, 696, 198, 166, 167, 168, 169, 170,
622 96, 194, 96, 171, 696, 195, 96, 199, 196, 94,
623 696, 172, 173, 174, 94, 175, 94, 94, 197, 94,
625 94, 94, 696, 96, 200, 94, 94, 696, 96, 94,
626 96, 96, 94, 96, 96, 96, 201, 94, 202, 96,
627 96, 94, 696, 96, 696, 94, 96, 696, 204, 696,
628 696, 96, 94, 696, 94, 96, 203, 205, 213, 96,
629 94, 211, 208, 209, 206, 207, 96, 212, 96, 221,
630 214, 696, 222, 210, 96, 218, 217, 215, 225, 219,
631 696, 94, 216, 223, 94, 224, 94, 94, 94, 94,
632 696, 94, 226, 696, 227, 96, 696, 220, 96, 696,
633 96, 96, 96, 96, 237, 96, 237, 228, 696, 238,
634 238, 238, 238, 241, 94, 241, 158, 158, 242, 242,
636 242, 242, 94, 94, 230, 696, 229, 233, 96, 236,
637 234, 696, 696, 231, 232, 158, 96, 96, 235, 155,
638 155, 155, 155, 158, 160, 160, 160, 160, 94, 696,
639 239, 240, 696, 240, 94, 160, 160, 160, 160, 244,
640 244, 94, 96, 247, 248, 239, 240, 243, 96, 243,
641 94, 94, 240, 249, 696, 96, 696, 253, 244, 94,
642 696, 94, 243, 250, 96, 96, 244, 94, 243, 94,
643 252, 94, 696, 96, 251, 96, 696, 94, 94, 94,
644 94, 96, 94, 96, 94, 96, 254, 255, 94, 94,
645 256, 96, 96, 96, 96, 94, 96, 696, 96, 94,
647 257, 696, 96, 96, 94, 94, 262, 259, 263, 96,
648 696, 265, 261, 96, 258, 94, 266, 260, 96, 96,
649 94, 271, 696, 696, 264, 94, 94, 696, 94, 96,
650 267, 94, 94, 268, 96, 272, 274, 269, 270, 96,
651 96, 277, 96, 94, 273, 96, 96, 275, 696, 94,
652 94, 94, 94, 696, 696, 276, 278, 96, 280, 94,
653 279, 696, 281, 96, 96, 96, 96, 283, 284, 94,
654 696, 94, 282, 96, 94, 285, 94, 94, 94, 94,
655 94, 94, 94, 96, 290, 96, 94, 94, 96, 294,
656 96, 96, 96, 96, 96, 96, 96, 286, 287, 696,
658 96, 96, 94, 94, 94, 94, 94, 288, 696, 289,
659 291, 94, 94, 293, 292, 94, 96, 96, 96, 96,
660 96, 94, 298, 299, 297, 96, 96, 296, 94, 96,
661 295, 696, 94, 94, 94, 96, 94, 300, 94, 94,
662 94, 303, 96, 94, 94, 305, 96, 96, 96, 302,
663 96, 301, 96, 96, 96, 308, 304, 96, 96, 306,
664 94, 238, 238, 238, 238, 320, 307, 320, 696, 311,
665 321, 321, 321, 321, 96, 316, 317, 318, 309, 314,
666 696, 310, 313, 696, 312, 696, 244, 244, 315, 696,
667 238, 238, 238, 238, 242, 242, 242, 242, 242, 242,
669 242, 242, 154, 319, 154, 244, 94, 94, 94, 696,
670 157, 696, 157, 244, 94, 94, 94, 154, 94, 94,
671 96, 96, 96, 154, 94, 157, 94, 94, 96, 96,
672 96, 157, 96, 96, 94, 94, 94, 696, 96, 696,
673 96, 96, 94, 94, 696, 94, 696, 94, 96, 96,
674 96, 322, 325, 327, 324, 696, 96, 96, 323, 96,
675 326, 96, 94, 94, 696, 332, 94, 329, 328, 333,
676 94, 94, 94, 94, 330, 331, 96, 96, 336, 335,
677 96, 338, 334, 337, 96, 96, 96, 96, 94, 94,
678 94, 339, 94, 94, 94, 94, 94, 94, 94, 696,
680 94, 94, 96, 96, 96, 340, 96, 96, 96, 96,
681 96, 96, 96, 343, 96, 96, 94, 94, 94, 94,
682 341, 344, 342, 347, 94, 345, 94, 346, 94, 696,
683 96, 96, 96, 96, 94, 94, 696, 94, 96, 349,
684 96, 352, 96, 353, 348, 350, 360, 94, 96, 96,
685 351, 96, 94, 94, 696, 94, 696, 94, 696, 696,
686 94, 96, 358, 94, 354, 94, 96, 96, 356, 96,
687 355, 96, 357, 359, 96, 696, 94, 96, 94, 96,
688 94, 94, 696, 696, 94, 361, 94, 363, 94, 364,
689 96, 94, 96, 696, 96, 96, 362, 365, 96, 696,
691 96, 94, 96, 94, 696, 96, 696, 94, 696, 366,
692 94, 94, 696, 368, 370, 96, 367, 96, 373, 94,
693 372, 96, 375, 696, 96, 96, 369, 371, 94, 94,
694 94, 94, 94, 96, 376, 377, 696, 374, 379, 696,
695 696, 378, 96, 96, 96, 96, 96, 321, 321, 321,
696 321, 321, 321, 321, 321, 94, 380, 381, 94, 94,
697 94, 94, 94, 240, 696, 240, 696, 94, 385, 96,
698 384, 94, 96, 96, 96, 96, 96, 94, 240, 382,
699 383, 96, 94, 94, 240, 96, 386, 94, 696, 696,
700 394, 96, 696, 94, 389, 94, 96, 96, 94, 94,
702 94, 96, 388, 392, 94, 391, 387, 96, 94, 96,
703 390, 393, 96, 96, 96, 696, 94, 94, 96, 696,
704 94, 397, 96, 94, 94, 94, 94, 399, 396, 398,
705 96, 96, 395, 403, 96, 94, 402, 96, 96, 96,
706 96, 696, 94, 400, 401, 94, 94, 404, 94, 96,
707 94, 696, 94, 696, 94, 406, 96, 94, 94, 96,
708 96, 408, 96, 94, 96, 405, 96, 407, 96, 409,
709 94, 96, 96, 94, 94, 696, 696, 96, 410, 94,
710 94, 411, 412, 696, 96, 94, 415, 96, 96, 413,
711 417, 94, 696, 96, 96, 414, 94, 416, 94, 96,
713 419, 94, 94, 94, 94, 96, 420, 418, 426, 94,
714 96, 696, 96, 94, 94, 96, 96, 96, 96, 696,
715 94, 94, 94, 96, 696, 424, 421, 96, 96, 696,
716 422, 94, 696, 423, 96, 96, 96, 94, 428, 696,
717 94, 429, 696, 430, 94, 96, 425, 427, 94, 94,
718 696, 96, 432, 434, 96, 94, 431, 94, 96, 696,
719 696, 435, 96, 96, 433, 94, 696, 696, 437, 96,
720 94, 96, 94, 438, 436, 696, 94, 94, 94, 96,
721 440, 442, 696, 94, 96, 94, 96, 94, 94, 439,
722 96, 96, 96, 94, 94, 441, 443, 96, 94, 96,
724 451, 96, 96, 94, 94, 696, 94, 96, 96, 696,
725 444, 94, 96, 696, 94, 696, 696, 96, 96, 446,
726 96, 696, 445, 449, 94, 96, 454, 447, 96, 453,
727 450, 94, 448, 94, 94, 452, 94, 696, 96, 696,
728 458, 696, 94, 94, 455, 96, 94, 96, 96, 461,
729 96, 462, 94, 456, 459, 457, 96, 96, 94, 463,
730 96, 464, 94, 94, 696, 460, 96, 94, 467, 696,
731 94, 94, 96, 94, 94, 94, 96, 96, 469, 696,
732 94, 96, 465, 466, 96, 96, 94, 96, 96, 96,
733 468, 94, 94, 470, 96, 94, 94, 94, 94, 94,
735 96, 94, 696, 94, 471, 96, 96, 474, 472, 96,
736 96, 96, 96, 96, 696, 96, 475, 96, 94, 94,
737 473, 94, 696, 94, 94, 94, 94, 94, 477, 94,
738 696, 94, 96, 96, 94, 96, 476, 96, 96, 96,
739 96, 96, 94, 96, 478, 96, 94, 94, 96, 696,
740 696, 94, 94, 479, 696, 481, 96, 94, 696, 94,
741 96, 96, 483, 484, 487, 96, 96, 94, 480, 485,
742 482, 96, 486, 96, 94, 488, 94, 94, 94, 94,
743 94, 96, 94, 94, 94, 696, 489, 94, 96, 94,
744 96, 96, 96, 96, 96, 492, 96, 96, 96, 490,
746 616, 96, 94, 96, 94, 696, 491, 696, 617, 618,
747 696, 494, 619, 94, 493, 496, 96, 94, 96, 497,
748 495, 501, 498, 500, 503, 502, 499, 96, 94, 94,
749 94, 96, 94, 94, 696, 696, 94, 94, 696, 696,
750 94, 94, 96, 96, 96, 94, 96, 96, 504, 506,
751 96, 96, 505, 507, 96, 96, 94, 696, 94, 96,
752 696, 94, 94, 94, 94, 94, 94, 696, 94, 94,
753 96, 510, 96, 94, 511, 96, 96, 96, 96, 96,
754 96, 508, 96, 96, 509, 94, 696, 96, 94, 94,
755 696, 696, 94, 94, 94, 514, 94, 517, 696, 96,
757 512, 518, 96, 96, 513, 519, 96, 96, 96, 94,
758 96, 515, 516, 696, 696, 94, 520, 94, 696, 696,
759 94, 94, 696, 96, 525, 523, 94, 527, 526, 96,
760 94, 96, 524, 522, 96, 96, 521, 94, 696, 94,
761 96, 94, 94, 94, 96, 94, 696, 94, 94, 696,
762 696, 96, 528, 96, 94, 96, 96, 96, 696, 96,
763 529, 96, 96, 94, 531, 94, 530, 94, 96, 94,
764 94, 94, 536, 94, 533, 94, 532, 96, 538, 96,
765 94, 96, 696, 96, 96, 96, 534, 96, 537, 96,
766 542, 94, 94, 535, 96, 539, 543, 94, 540, 94,
768 696, 94, 541, 94, 94, 96, 96, 94, 544, 94,
769 94, 96, 94, 96, 546, 96, 94, 96, 96, 696,
770 545, 96, 94, 96, 96, 94, 96, 547, 549, 94,
771 96, 94, 696, 550, 552, 94, 96, 94, 554, 96,
772 555, 94, 548, 96, 94, 96, 556, 551, 696, 96,
773 94, 96, 696, 94, 553, 96, 94, 557, 96, 696,
774 94, 559, 561, 560, 96, 94, 558, 96, 94, 94,
775 96, 562, 564, 563, 96, 696, 94, 94, 94, 96,
776 696, 94, 96, 96, 94, 94, 572, 565, 94, 566,
777 96, 96, 96, 94, 567, 96, 94, 94, 96, 96,
779 94, 94, 96, 94, 94, 568, 94, 96, 94, 94,
780 96, 96, 569, 570, 96, 96, 696, 96, 96, 574,
781 96, 94, 96, 96, 94, 94, 573, 575, 576, 696,
782 571, 577, 94, 94, 94, 96, 94, 696, 96, 96,
783 94, 696, 94, 580, 579, 588, 96, 96, 96, 696,
784 96, 94, 94, 589, 96, 578, 96, 582, 696, 696,
785 94, 94, 94, 581, 585, 96, 96, 594, 587, 696,
786 94, 583, 591, 584, 96, 96, 96, 696, 586, 94,
787 94, 94, 590, 595, 96, 94, 94, 94, 94, 94,
788 94, 596, 94, 96, 96, 96, 696, 94, 94, 96,
790 96, 96, 96, 96, 96, 597, 96, 696, 94, 696,
791 94, 96, 96, 696, 696, 598, 94, 94, 94, 94,
792 94, 601, 96, 607, 96, 696, 604, 599, 608, 600,
793 96, 96, 96, 96, 96, 602, 94, 603, 696, 605,
794 94, 609, 94, 94, 696, 621, 94, 94, 94, 612,
795 96, 94, 611, 622, 96, 94, 96, 96, 610, 94,
796 96, 96, 96, 94, 614, 96, 94, 696, 613, 96,
797 630, 696, 615, 96, 696, 623, 616, 96, 625, 632,
798 96, 635, 633, 638, 617, 618, 624, 94, 619, 636,
799 618, 617, 618, 619, 94, 619, 626, 94, 94, 94,
801 627, 96, 94, 94, 629, 696, 630, 696, 96, 94,
802 630, 96, 96, 96, 628, 632, 96, 96, 633, 632,
803 645, 646, 633, 96, 696, 94, 696, 94, 635, 618,
804 632, 696, 619, 633, 641, 640, 636, 618, 648, 96,
805 619, 96, 696, 652, 642, 638, 94, 650, 643, 644,
806 651, 636, 618, 617, 618, 619, 653, 619, 659, 94,
807 96, 696, 645, 658, 654, 655, 696, 646, 656, 630,
808 696, 618, 696, 96, 619, 660, 632, 696, 632, 633,
809 648, 633, 648, 696, 663, 696, 661, 696, 664, 650,
810 652, 650, 651, 618, 651, 696, 619, 650, 636, 618,
812 651, 653, 619, 666, 94, 94, 696, 662, 671, 654,
813 655, 94, 668, 656, 674, 669, 672, 655, 96, 96,
814 656, 94, 654, 655, 94, 96, 656, 663, 664, 696,
815 696, 696, 648, 666, 666, 96, 618, 650, 96, 619,
816 651, 650, 668, 668, 651, 669, 669, 679, 696, 680,
817 94, 696, 696, 696, 671, 675, 655, 676, 668, 656,
818 682, 669, 672, 655, 96, 686, 656, 677, 94, 684,
819 696, 94, 685, 672, 655, 674, 94, 656, 696, 678,
820 679, 696, 96, 654, 655, 96, 680, 656, 666, 655,
821 96, 696, 656, 682, 682, 668, 696, 668, 669, 689,
823 669, 690, 684, 684, 696, 685, 685, 696, 655, 686,
824 684, 656, 94, 685, 94, 687, 688, 672, 655, 696,
825 689, 656, 690, 94, 682, 94, 96, 94, 96, 655,
826 94, 684, 656, 684, 685, 696, 685, 96, 696, 96,
827 696, 96, 696, 696, 96, 696, 696, 696, 692, 696,
828 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
829 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
830 696, 693, 696, 696, 696, 694, 696, 696, 696, 696,
831 696, 696, 695, 59, 59, 59, 59, 59, 59, 59,
832 59, 59, 59, 66, 66, 66, 66, 696, 66, 66,
834 66, 66, 66, 95, 696, 696, 696, 95, 95, 95,
835 161, 161, 162, 162, 245, 245, 245, 246, 246, 593,
836 593, 593, 593, 620, 696, 696, 696, 620, 620, 620,
837 620, 620, 631, 631, 696, 696, 696, 631, 631, 631,
838 631, 637, 696, 696, 696, 637, 637, 637, 637, 637,
839 647, 647, 696, 696, 696, 647, 647, 647, 647, 649,
840 649, 696, 696, 696, 649, 649, 649, 649, 657, 696,
841 696, 696, 657, 657, 657, 657, 657, 665, 665, 696,
842 696, 696, 665, 665, 665, 665, 667, 667, 696, 696,
843 696, 667, 667, 667, 667, 673, 696, 696, 696, 673,
845 673, 673, 673, 673, 681, 681, 696, 696, 696, 681,
846 681, 681, 681, 683, 683, 696, 696, 696, 683, 683,
847 683, 683, 691, 691, 696, 696, 696, 691, 691, 691,
848 691, 3, 696, 696, 696, 696, 696, 696, 696, 696,
849 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
850 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
851 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
852 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
853 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
854 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
859 static yyconst short int yy_chk[2504] =
861 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
862 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
863 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
864 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
865 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
866 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
867 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
868 1, 9, 12, 12, 13, 18, 655, 21, 20, 21,
869 21, 21, 21, 31, 27, 22, 37, 18, 20, 20,
870 22, 13, 25, 29, 29, 55, 25, 31, 22, 27,
872 37, 27, 27, 9, 23, 622, 23, 23, 23, 23,
873 32, 38, 36, 59, 32, 32, 588, 23, 618, 45,
874 23, 23, 23, 593, 588, 38, 36, 47, 32, 67,
875 39, 37, 23, 45, 621, 37, 55, 37, 67, 23,
876 589, 47, 621, 36, 39, 59, 41, 23, 36, 40,
877 23, 24, 36, 24, 24, 24, 24, 43, 42, 38,
878 41, 36, 39, 40, 24, 45, 48, 24, 24, 39,
879 44, 43, 42, 39, 46, 47, 39, 572, 47, 24,
880 48, 40, 40, 98, 44, 40, 24, 96, 46, 41,
881 66, 41, 40, 43, 24, 40, 94, 49, 42, 50,
883 41, 42, 48, 43, 42, 93, 46, 44, 97, 52,
884 46, 49, 51, 50, 44, 44, 89, 66, 95, 44,
885 101, 53, 81, 52, 81, 104, 51, 81, 81, 81,
886 81, 74, 95, 49, 101, 53, 49, 49, 50, 104,
887 97, 61, 105, 35, 108, 102, 28, 49, 49, 52,
888 49, 17, 51, 53, 50, 52, 105, 51, 108, 102,
889 53, 75, 75, 75, 75, 79, 79, 79, 79, 103,
890 82, 82, 75, 75, 101, 75, 79, 79, 14, 79,
891 104, 106, 107, 103, 8, 3, 105, 75, 75, 82,
892 102, 79, 79, 108, 75, 106, 107, 82, 79, 80,
894 109, 80, 80, 80, 80, 0, 110, 111, 112, 113,
895 114, 115, 80, 0, 109, 80, 80, 0, 107, 103,
896 110, 111, 112, 113, 114, 115, 120, 80, 0, 0,
897 116, 106, 109, 0, 80, 0, 117, 118, 110, 0,
898 120, 121, 80, 100, 116, 0, 113, 114, 119, 113,
899 117, 118, 111, 114, 115, 121, 122, 100, 112, 113,
900 0, 0, 119, 0, 0, 0, 123, 0, 124, 0,
901 122, 0, 125, 0, 120, 100, 100, 100, 100, 100,
902 123, 116, 124, 100, 0, 117, 125, 121, 118, 126,
903 0, 100, 100, 100, 127, 100, 128, 129, 119, 130,
905 131, 132, 0, 126, 122, 133, 135, 0, 127, 136,
906 128, 129, 134, 130, 131, 132, 123, 138, 124, 133,
907 135, 137, 0, 136, 0, 139, 134, 0, 127, 0,
908 0, 138, 140, 0, 141, 137, 126, 127, 133, 139,
909 142, 132, 129, 130, 127, 128, 140, 132, 141, 138,
910 134, 0, 138, 131, 142, 136, 135, 134, 139, 137,
911 0, 143, 134, 138, 144, 138, 145, 146, 147, 148,
912 0, 180, 140, 0, 141, 143, 0, 137, 144, 0,
913 145, 146, 147, 148, 153, 180, 153, 142, 0, 153,
914 153, 153, 153, 156, 166, 156, 158, 158, 156, 156,
916 156, 156, 167, 170, 144, 0, 143, 146, 166, 148,
917 146, 0, 0, 144, 145, 158, 167, 170, 147, 155,
918 155, 155, 155, 158, 159, 159, 159, 159, 168, 0,
919 155, 155, 0, 155, 169, 160, 160, 160, 160, 161,
920 161, 171, 168, 166, 166, 155, 155, 160, 169, 160,
921 173, 172, 155, 167, 0, 171, 0, 170, 161, 174,
922 0, 175, 160, 168, 173, 172, 161, 176, 160, 177,
923 169, 178, 0, 174, 168, 175, 0, 179, 181, 182,
924 183, 176, 184, 177, 185, 178, 171, 172, 186, 187,
925 173, 179, 181, 182, 183, 188, 184, 0, 185, 189,
927 173, 0, 186, 187, 190, 192, 178, 175, 179, 188,
928 0, 182, 177, 189, 174, 191, 183, 176, 190, 192,
929 193, 187, 0, 0, 181, 194, 195, 0, 196, 191,
930 184, 197, 198, 185, 193, 188, 190, 186, 186, 194,
931 195, 192, 196, 199, 189, 197, 198, 191, 0, 200,
932 201, 202, 203, 0, 0, 191, 193, 199, 194, 204,
933 193, 0, 195, 200, 201, 202, 203, 197, 198, 205,
934 0, 206, 196, 204, 207, 199, 208, 209, 211, 210,
935 212, 213, 214, 205, 206, 206, 216, 215, 207, 210,
936 208, 209, 211, 210, 212, 213, 214, 202, 203, 0,
938 216, 215, 217, 218, 219, 220, 221, 204, 0, 205,
939 207, 222, 223, 209, 208, 224, 217, 218, 219, 220,
940 221, 225, 214, 215, 213, 222, 223, 212, 226, 224,
941 211, 0, 227, 228, 229, 225, 230, 216, 232, 231,
942 233, 220, 226, 235, 234, 222, 227, 228, 229, 219,
943 230, 218, 232, 231, 233, 225, 221, 235, 234, 223,
944 236, 237, 237, 237, 237, 239, 224, 239, 0, 228,
945 239, 239, 239, 239, 236, 233, 234, 235, 226, 231,
946 0, 227, 230, 0, 229, 0, 244, 244, 232, 0,
947 238, 238, 238, 238, 241, 241, 241, 241, 242, 242,
949 242, 242, 238, 236, 238, 244, 246, 247, 248, 0,
950 242, 0, 242, 244, 249, 251, 250, 238, 253, 252,
951 246, 247, 248, 238, 254, 242, 255, 256, 249, 251,
952 250, 242, 253, 252, 257, 258, 259, 0, 254, 0,
953 255, 256, 260, 261, 0, 263, 0, 262, 257, 258,
954 259, 247, 250, 252, 249, 0, 260, 261, 248, 263,
955 251, 262, 264, 265, 0, 256, 266, 254, 253, 257,
956 267, 268, 269, 270, 254, 255, 264, 265, 260, 259,
957 266, 262, 258, 261, 267, 268, 269, 270, 271, 272,
958 274, 263, 273, 275, 276, 277, 278, 279, 281, 0,
960 280, 282, 271, 272, 274, 265, 273, 275, 276, 277,
961 278, 279, 281, 270, 280, 282, 283, 284, 285, 286,
962 268, 271, 269, 274, 287, 272, 288, 273, 289, 0,
963 283, 284, 285, 286, 290, 291, 0, 292, 287, 276,
964 288, 279, 289, 280, 275, 277, 290, 293, 290, 291,
965 278, 292, 294, 296, 0, 295, 0, 297, 0, 0,
966 298, 293, 288, 299, 283, 300, 294, 296, 285, 295,
967 284, 297, 287, 289, 298, 0, 301, 299, 302, 300,
968 304, 303, 0, 0, 306, 291, 305, 295, 307, 296,
969 301, 308, 302, 0, 304, 303, 293, 297, 306, 0,
971 305, 309, 307, 311, 0, 308, 0, 310, 0, 298,
972 312, 313, 0, 300, 302, 309, 299, 311, 305, 314,
973 304, 310, 307, 0, 312, 313, 301, 303, 315, 316,
974 317, 318, 319, 314, 308, 309, 0, 306, 311, 0,
975 0, 310, 315, 316, 317, 318, 319, 320, 320, 320,
976 320, 321, 321, 321, 321, 322, 313, 314, 323, 324,
977 325, 326, 327, 321, 0, 321, 0, 328, 319, 322,
978 318, 329, 323, 324, 325, 326, 327, 330, 321, 315,
979 317, 328, 331, 332, 321, 329, 322, 333, 0, 0,
980 330, 330, 0, 334, 325, 335, 331, 332, 336, 337,
982 339, 333, 324, 328, 338, 327, 323, 334, 340, 335,
983 326, 329, 336, 337, 339, 0, 341, 342, 338, 0,
984 343, 333, 340, 344, 345, 346, 347, 335, 332, 334,
985 341, 342, 331, 339, 343, 348, 338, 344, 345, 346,
986 347, 0, 351, 336, 337, 349, 350, 341, 352, 348,
987 353, 0, 354, 0, 356, 344, 351, 357, 355, 349,
988 350, 346, 352, 358, 353, 343, 354, 345, 356, 347,
989 359, 357, 355, 360, 361, 0, 0, 358, 348, 362,
990 363, 349, 350, 0, 359, 364, 353, 360, 361, 351,
991 355, 365, 0, 362, 363, 352, 366, 354, 367, 364,
993 358, 369, 368, 370, 371, 365, 359, 357, 367, 372,
994 366, 0, 367, 373, 375, 369, 368, 370, 371, 0,
995 374, 376, 377, 372, 0, 365, 362, 373, 375, 0,
996 363, 378, 0, 364, 374, 376, 377, 379, 370, 0,
997 380, 371, 0, 372, 381, 378, 366, 368, 382, 384,
998 0, 379, 374, 376, 380, 383, 373, 385, 381, 0,
999 0, 377, 382, 384, 375, 386, 0, 0, 379, 383,
1000 387, 385, 388, 379, 378, 0, 389, 390, 392, 386,
1001 382, 384, 0, 391, 387, 393, 388, 395, 394, 381,
1002 389, 390, 392, 396, 397, 383, 386, 391, 398, 393,
1004 394, 395, 394, 399, 401, 0, 400, 396, 397, 0,
1005 387, 402, 398, 0, 404, 0, 0, 399, 401, 389,
1006 400, 0, 388, 392, 403, 402, 397, 390, 404, 396,
1007 393, 405, 391, 407, 406, 395, 408, 0, 403, 0,
1008 401, 0, 409, 410, 398, 405, 411, 407, 406, 404,
1009 408, 404, 412, 399, 402, 400, 409, 410, 413, 404,
1010 411, 404, 414, 415, 0, 403, 412, 416, 407, 0,
1011 417, 418, 413, 419, 420, 421, 414, 415, 409, 0,
1012 422, 416, 405, 406, 417, 418, 423, 419, 420, 421,
1013 408, 424, 425, 410, 422, 426, 427, 428, 429, 430,
1015 423, 431, 0, 432, 413, 424, 425, 421, 414, 426,
1016 427, 428, 429, 430, 0, 431, 422, 432, 433, 434,
1017 417, 435, 0, 436, 437, 438, 440, 439, 425, 441,
1018 0, 442, 433, 434, 443, 435, 423, 436, 437, 438,
1019 440, 439, 444, 441, 431, 442, 445, 446, 443, 0,
1020 0, 447, 448, 432, 0, 436, 444, 449, 0, 450,
1021 445, 446, 438, 439, 442, 447, 448, 451, 434, 440,
1022 437, 449, 441, 450, 452, 444, 453, 454, 455, 456,
1023 458, 451, 457, 459, 462, 0, 445, 460, 452, 461,
1024 453, 454, 455, 456, 458, 450, 457, 459, 462, 448,
1026 606, 460, 463, 461, 464, 0, 449, 0, 606, 606,
1027 0, 453, 606, 465, 452, 455, 463, 466, 464, 456,
1028 454, 461, 457, 460, 462, 461, 459, 465, 467, 468,
1029 469, 466, 470, 471, 0, 0, 472, 473, 0, 0,
1030 474, 475, 467, 468, 469, 476, 470, 471, 463, 465,
1031 472, 473, 464, 466, 474, 475, 477, 0, 478, 476,
1032 0, 479, 480, 481, 482, 483, 484, 0, 485, 486,
1033 477, 473, 478, 487, 474, 479, 480, 481, 482, 483,
1034 484, 471, 485, 486, 472, 488, 0, 487, 489, 490,
1035 0, 0, 491, 492, 493, 479, 494, 482, 0, 488,
1037 476, 484, 489, 490, 477, 486, 491, 492, 493, 495,
1038 494, 480, 481, 0, 0, 496, 487, 497, 0, 0,
1039 498, 499, 0, 495, 492, 490, 501, 494, 493, 496,
1040 500, 497, 491, 489, 498, 499, 488, 502, 0, 503,
1041 501, 504, 505, 506, 500, 508, 0, 507, 509, 0,
1042 0, 502, 495, 503, 511, 504, 505, 506, 0, 508,
1043 497, 507, 509, 510, 500, 512, 498, 513, 511, 514,
1044 515, 516, 504, 517, 502, 518, 501, 510, 507, 512,
1045 519, 513, 0, 514, 515, 516, 502, 517, 505, 518,
1046 511, 520, 521, 503, 519, 508, 512, 522, 509, 523,
1048 0, 524, 510, 525, 526, 520, 521, 527, 514, 528,
1049 529, 522, 530, 523, 517, 524, 531, 525, 526, 0,
1050 516, 527, 534, 528, 529, 537, 530, 520, 522, 532,
1051 531, 533, 0, 523, 525, 535, 534, 536, 527, 537,
1052 528, 538, 521, 532, 539, 533, 529, 524, 0, 535,
1053 540, 536, 0, 541, 526, 538, 542, 530, 539, 0,
1054 543, 532, 534, 533, 540, 544, 531, 541, 545, 547,
1055 542, 535, 537, 536, 543, 0, 546, 548, 549, 544,
1056 0, 551, 545, 547, 550, 552, 550, 538, 553, 541,
1057 546, 548, 549, 554, 543, 551, 555, 556, 550, 552,
1059 557, 558, 553, 559, 560, 544, 561, 554, 562, 563,
1060 555, 556, 546, 548, 557, 558, 0, 559, 560, 553,
1061 561, 564, 562, 563, 565, 566, 551, 555, 556, 0,
1062 549, 557, 567, 568, 569, 564, 573, 0, 565, 566,
1063 571, 0, 575, 562, 561, 570, 567, 568, 569, 0,
1064 573, 570, 574, 570, 571, 560, 575, 564, 0, 0,
1065 576, 577, 578, 563, 567, 570, 574, 573, 569, 0,
1066 579, 565, 571, 566, 576, 577, 578, 0, 568, 580,
1067 581, 582, 570, 574, 579, 583, 584, 585, 586, 587,
1068 595, 576, 590, 580, 581, 582, 0, 591, 596, 583,
1070 584, 585, 586, 587, 595, 578, 590, 0, 597, 0,
1071 594, 591, 596, 0, 0, 579, 598, 599, 600, 601,
1072 602, 583, 597, 590, 594, 0, 586, 581, 591, 582,
1073 598, 599, 600, 601, 602, 584, 603, 585, 0, 587,
1074 604, 594, 605, 608, 0, 607, 609, 610, 611, 599,
1075 603, 607, 598, 607, 604, 612, 605, 608, 597, 613,
1076 609, 610, 611, 614, 601, 607, 615, 0, 600, 612,
1077 617, 0, 603, 613, 0, 608, 616, 614, 610, 617,
1078 615, 619, 617, 620, 616, 616, 608, 623, 616, 619,
1079 619, 620, 620, 619, 624, 620, 611, 625, 626, 627,
1081 612, 623, 628, 629, 615, 0, 630, 0, 624, 641,
1082 631, 625, 626, 627, 613, 630, 628, 629, 630, 631,
1083 632, 633, 631, 641, 0, 640, 0, 642, 635, 632,
1084 633, 0, 632, 633, 624, 623, 635, 635, 636, 640,
1085 635, 642, 0, 637, 625, 638, 643, 636, 627, 629,
1086 636, 637, 637, 638, 638, 637, 639, 638, 641, 644,
1087 643, 0, 645, 640, 639, 639, 0, 646, 639, 647,
1088 0, 645, 0, 644, 645, 642, 646, 0, 647, 646,
1089 648, 647, 649, 0, 650, 0, 643, 0, 651, 648,
1090 652, 649, 648, 650, 649, 0, 650, 651, 652, 652,
1092 651, 653, 652, 654, 658, 659, 0, 644, 656, 653,
1093 653, 660, 654, 653, 657, 654, 656, 656, 658, 659,
1094 656, 661, 657, 657, 662, 660, 657, 663, 664, 0,
1095 0, 0, 665, 666, 667, 661, 663, 664, 662, 663,
1096 664, 665, 666, 667, 665, 666, 667, 668, 0, 669,
1097 675, 0, 0, 0, 671, 659, 668, 660, 669, 668,
1098 672, 669, 671, 671, 675, 673, 671, 661, 676, 672,
1099 0, 677, 672, 673, 673, 674, 678, 673, 0, 662,
1100 679, 0, 676, 674, 674, 677, 680, 674, 681, 679,
1101 678, 0, 679, 682, 683, 680, 0, 681, 680, 684,
1103 681, 685, 682, 683, 0, 682, 683, 0, 684, 686,
1104 685, 684, 687, 685, 688, 676, 677, 686, 686, 0,
1105 689, 686, 690, 692, 691, 693, 687, 694, 688, 689,
1106 695, 690, 689, 691, 690, 0, 691, 692, 0, 693,
1107 0, 694, 0, 0, 695, 0, 0, 0, 687, 0,
1108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1110 0, 692, 0, 0, 0, 693, 0, 0, 0, 0,
1111 0, 0, 694, 697, 697, 697, 697, 697, 697, 697,
1112 697, 697, 697, 698, 698, 698, 698, 0, 698, 698,
1114 698, 698, 698, 699, 0, 0, 0, 699, 699, 699,
1115 700, 700, 701, 701, 702, 702, 702, 703, 703, 704,
1116 704, 704, 704, 705, 0, 0, 0, 705, 705, 705,
1117 705, 705, 706, 706, 0, 0, 0, 706, 706, 706,
1118 706, 707, 0, 0, 0, 707, 707, 707, 707, 707,
1119 708, 708, 0, 0, 0, 708, 708, 708, 708, 709,
1120 709, 0, 0, 0, 709, 709, 709, 709, 710, 0,
1121 0, 0, 710, 710, 710, 710, 710, 711, 711, 0,
1122 0, 0, 711, 711, 711, 711, 712, 712, 0, 0,
1123 0, 712, 712, 712, 712, 713, 0, 0, 0, 713,
1125 713, 713, 713, 713, 714, 714, 0, 0, 0, 714,
1126 714, 714, 714, 715, 715, 0, 0, 0, 715, 715,
1127 715, 715, 716, 716, 0, 0, 0, 716, 716, 716,
1128 716, 696, 696, 696, 696, 696, 696, 696, 696, 696,
1129 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
1130 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
1131 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
1132 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
1133 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
1134 696, 696, 696, 696, 696, 696, 696, 696, 696, 696,
1139 static yy_state_type yy_last_accepting_state;
1140 static char *yy_last_accepting_cpos;
1142 /* The intent behind this definition is that it'll catch
1143 * any uses of REJECT which flex missed.
1145 #define REJECT reject_used_but_not_detected
1146 #define yymore() yymore_used_but_not_detected
1147 #define YY_MORE_ADJ 0
1148 #define YY_RESTORE_YY_MORE_OFFSET
1154 #define YYLTYPE Location
1156 #include "grammar.eh"
1159 public void SetEchoOn(bool b) { echoOn = b; }
1161 extern YYLTYPE type_yylloc;
1162 extern YYLTYPE expression_yylloc;
1164 extern File fileInput;
1170 yylloc.end.charPos += yyleng;
1171 yylloc.end.pos += yyleng;
1172 type_yylloc.end.charPos += yyleng;
1173 type_yylloc.end.pos += yyleng;
1174 expression_yylloc.end.charPos += yyleng;
1175 expression_yylloc.end.pos += yyleng;
1178 #define YY_USER_ACTION \
1182 yylloc.end.charPos += yyleng;
1183 yylloc.end.pos += yyleng;
1186 #define YY_INPUT(buf,result,max_size) \
1187 result = fileInput.Read(buf, 1, max_size) \
1189 YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
1190 File fileStack[MAX_INCLUDE_DEPTH];
1191 char sourceFileStack[MAX_INCLUDE_DEPTH][MAX_LOCATION];
1192 public void SetSomeSourceFileStack(char * fileName, int index) { strcpy(sourceFileStack[index], fileName); }
1193 YYLTYPE locStack[MAX_INCLUDE_DEPTH];
1194 AccessMode declModeStack[MAX_INCLUDE_DEPTH];
1195 int include_stack_ptr = 0;
1200 #line 1201 "lexer.ec"
1202 /* Macros after this point can all be overridden by user definitions in
1206 #ifndef YY_SKIP_YYWRAP
1208 extern "C" int yywrap YY_PROTO(( void ));
1210 extern int yywrap YY_PROTO(( void ));
1215 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1219 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1222 #ifdef YY_NEED_STRLEN
1223 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1228 static int yyinput YY_PROTO(( void ));
1230 static int input YY_PROTO(( void ));
1235 static int yy_start_stack_ptr = 0;
1236 static int yy_start_stack_depth = 0;
1237 static int *yy_start_stack = 0;
1238 #ifndef YY_NO_PUSH_STATE
1239 static void yy_push_state YY_PROTO(( int new_state ));
1241 #ifndef YY_NO_POP_STATE
1242 static void yy_pop_state YY_PROTO(( void ));
1244 #ifndef YY_NO_TOP_STATE
1245 static int yy_top_state YY_PROTO(( void ));
1249 #define YY_NO_PUSH_STATE 1
1250 #define YY_NO_POP_STATE 1
1251 #define YY_NO_TOP_STATE 1
1254 #ifdef YY_MALLOC_DECL
1262 /* Just try to get by without declaring the routines. This will fail
1263 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1264 * or sizeof(void*) != sizeof(int).
1269 /* Amount of stuff to slurp up with each read. */
1270 #ifndef YY_READ_BUF_SIZE
1271 #define YY_READ_BUF_SIZE 8192
1274 /* Copy whatever the last rule matched to the standard output. */
1277 /* This used to be an fputs(), but since the string might contain NUL's,
1278 * we now use fwrite().
1280 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1283 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1284 * is returned in "result".
1287 #define YY_INPUT(buf,result,max_size) \
1288 if ( yy_current_buffer->yy_is_interactive ) \
1291 for ( n = 0; n < max_size && \
1292 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1293 buf[n] = (char) c; \
1295 buf[n++] = (char) c; \
1296 if ( c == EOF && ferror( yyin ) ) \
1297 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1300 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1301 && ferror( yyin ) ) \
1302 YY_FATAL_ERROR( "input in flex scanner failed" );
1305 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1306 * we don't want an extra ';' after the "return" because that will cause
1307 * some compilers to complain about unreachable statements.
1310 #define yyterminate() return YY_NULL
1313 /* Number of entries by which start-condition stack grows. */
1314 #ifndef YY_START_STACK_INCR
1315 #define YY_START_STACK_INCR 25
1318 /* Report a fatal error. */
1319 #ifndef YY_FATAL_ERROR
1320 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1323 /* Default declaration of generated scanner - a define so the user can
1324 * easily add parameters.
1327 #define YY_DECL int yylex YY_PROTO(( void ))
1330 /* Code executed at the beginning of each rule, after yytext and yyleng
1333 #ifndef YY_USER_ACTION
1334 #define YY_USER_ACTION
1337 /* Code executed at the end of each rule. */
1339 #define YY_BREAK break;
1342 #define YY_RULE_SETUP \
1347 register yy_state_type yy_current_state;
1348 register char *yy_cp, *yy_bp;
1349 register int yy_act;
1355 yylloc.start = yylloc.end;
1356 type_yylloc.start = type_yylloc.end;
1357 expression_yylloc.start = expression_yylloc.end;
1360 #line 1361 "lexer.ec"
1371 yy_start = 1; /* first start state */
1379 if ( ! yy_current_buffer )
1381 yy_create_buffer( yyin, YY_BUF_SIZE );
1383 yy_load_buffer_state();
1386 while ( 1 ) /* loops until end-of-file is reached */
1390 /* Support of yytext. */
1391 *yy_cp = yy_hold_char;
1393 /* yy_bp points to the position in yy_ch_buf of the start of
1398 yy_current_state = yy_start;
1402 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1403 if ( yy_accept[yy_current_state] )
1405 yy_last_accepting_state = yy_current_state;
1406 yy_last_accepting_cpos = yy_cp;
1408 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1410 yy_current_state = (int) yy_def[yy_current_state];
1411 if ( yy_current_state >= 697 )
1412 yy_c = yy_meta[(unsigned int) yy_c];
1414 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1417 while ( yy_base[yy_current_state] != 2432 );
1420 yy_act = yy_accept[yy_current_state];
1422 { /* have to back up */
1423 yy_cp = yy_last_accepting_cpos;
1424 yy_current_state = yy_last_accepting_state;
1425 yy_act = yy_accept[yy_current_state];
1428 YY_DO_BEFORE_ACTION;
1431 do_action: /* This label is used only to access EOF actions. */
1435 { /* beginning of action switch */
1436 case 0: /* must back up */
1437 /* undo the effects of YY_DO_BEFORE_ACTION */
1438 *yy_cp = yy_hold_char;
1439 yy_cp = yy_last_accepting_cpos;
1440 yy_current_state = yy_last_accepting_state;
1441 goto yy_find_action;
1486 { return(CONTINUE); }
1491 { return(DEFAULT); }
1548 /* "uint16" { return(UINT16); } */
1549 /* "uint32" { return(UINT32); } */
1550 /* "bool" { return(BOOL_TOKEN); } */
1559 { return(REGISTER); }
1604 { return(TYPEDEF); }
1614 { return(UNSIGNED); }
1624 { return(VOLATILE); }
1629 { return(VOLATILE); }
1639 { return(PROPERTY); }
1644 { return(SETPROP); } // TODO: Don't make this a keyword...
1649 { return(GETPROP); } // TODO: Don't make this a keyword...
1654 { return(ISPROPSET); } // TODO: Don't make this a keyword...
1664 { return(THISCLASS); }
1669 { return(VIRTUAL); }
1726 /* "__attribute__".?"(("({D}|{L})*"))" { return(EXT_ATTRIB); } */
1727 /* DID I MEAN? "__attribute__"" "*"(("" "*({D}|{L})*" "*("("({D}|{L})*(" "*","" "*({D}|{L})*)*" "*")")?" "*"))" { return(EXT_ATTRIB); } */
1731 { return(EXT_ATTRIB); }
1736 { return(EXT_ATTRIB); }
1738 /* "__attribute__".?"((".?({D}|{L})*.?("("({D}|{L})*(.?",".?({D}|{L})*)*.?")")?.?"))" { return(EXT_ATTRIB); } */
1739 /* "__attribute".?"((".?({D}|{L})*.?("("({D}|{L})*(.?",".?({D}|{L})*)*.?")")?.?"))" { return(EXT_ATTRIB); }*/
1743 { return(EXT_STORAGE); }
1748 { return(EXT_STORAGE); }
1753 { return(EXT_STORAGE); }
1758 { return(EXT_STORAGE); }
1763 { return(EXT_STORAGE); }
1768 { return(EXT_STORAGE); }
1773 { return(EXT_STORAGE); }
1778 { return(EXT_DECL); }
1783 { return(EXT_DECL); }
1788 { return(EXT_DECL); }
1793 { return(EXT_DECL); }
1798 { return(EXT_DECL); }
1803 { return(EXT_DECL); }
1808 { return(EXT_DECL); }
1813 { return(EXT_DECL); }
1823 { return(PRIVATE); }
1828 { return(TYPED_OBJECT); }
1833 { return(ANY_OBJECT); }
1838 { return(_INCREF); }
1843 { return(EXTENSION); }
1848 { return(EXTENSION); }
1878 { return(STOPWATCHING); }
1883 { return(FIREWATCHERS); }
1888 { return(WATCHABLE); }
1893 { return(CLASS_DESIGNER); }
1898 { return(CLASS_NO_EXPANSION); }
1903 { return(CLASS_FIXED); }
1908 { return(CLASS_DEFAULT_PROPERTY); }
1913 { return(PROPERTY_CATEGORY); }
1918 { return(CLASS_DATA); }
1923 { return(CLASS_PROPERTY); }
1928 { return(SUBCLASS); }
1933 { return(NAMESPACE); }
1938 { return(DBTABLE); }
1943 { return(DBFIELD); }
1948 { return(DBINDEX); }
1953 { return(DATABASE_OPEN); }
1958 { return(check_type()); } // {L}({L}|{D})* { return(check_type()); } // ("::"|(({IDENT}"::")*)){IDENT} { return(check_type()); } // {L}({L}|{D})* { return(check_type()); }
1963 { return(CONSTANT); }
1968 { return(CONSTANT); }
1973 { return(CONSTANT); }
1978 { return(CONSTANT); }
1983 { return(CONSTANT); }
1988 { return(CONSTANT); }
1993 { return(CONSTANT); }
1998 { return(STRING_LITERAL); }
2003 { return(ELLIPSIS); }
2008 { return(RIGHT_ASSIGN); }
2013 { return(LEFT_ASSIGN); }
2018 { return(ADD_ASSIGN); }
2023 { return(SUB_ASSIGN); }
2028 { return(MUL_ASSIGN); }
2033 { return(DIV_ASSIGN); }
2038 { return(MOD_ASSIGN); }
2043 { return(AND_ASSIGN); }
2048 { return(XOR_ASSIGN); }
2053 { return(OR_ASSIGN); }
2058 { return(RIGHT_OP); }
2063 { return(LEFT_OP); }
2110 /* "::" { return(CLASS_OP); } */
2236 case YY_STATE_EOF(INITIAL):
2239 if ( --include_stack_ptr < 0 )
2246 yy_delete_buffer( YY_CURRENT_BUFFER );
2247 fileInput = fileStack[include_stack_ptr];
2248 yylloc = locStack[include_stack_ptr];
2249 type_yylloc = locStack[include_stack_ptr];
2250 expression_yylloc = locStack[include_stack_ptr];
2251 yy_switch_to_buffer(include_stack[include_stack_ptr] );
2252 defaultDeclMode = declMode = declModeStack[include_stack_ptr];
2259 { yylloc.start = yylloc.end; type_yylloc.start = type_yylloc.end; expression_yylloc.start = expression_yylloc.end;}
2265 yylloc.end.charPos = 1; yylloc.end.line += yyleng; yylloc.start = yylloc.end;
2266 type_yylloc.end.charPos = 1; type_yylloc.end.line += yyleng; type_yylloc.start = type_yylloc.end;
2267 expression_yylloc.end.charPos = 1; expression_yylloc.end.line += yyleng; expression_yylloc.start = expression_yylloc.end;
2274 yylloc.start.charPos++ /*= 3 - (yylloc.start.col % 3)*/; yylloc.end.charPos = yylloc.start.charPos; yylloc.start.pos = yylloc.end.pos;
2275 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;
2276 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;
2282 { yylloc.start = yylloc.end; expression_yylloc.start = expression_yylloc.end; type_yylloc.start = type_yylloc.end; }
2289 #line 2290 "lexer.ec"
2291 case YY_END_OF_BUFFER:
2293 /* Amount of text matched not including the EOB char. */
2294 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2296 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2297 *yy_cp = yy_hold_char;
2298 YY_RESTORE_YY_MORE_OFFSET
2300 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2302 /* We're scanning a new file or input source. It's
2303 * possible that this happened because the user
2304 * just pointed yyin at a new source and called
2305 * yylex(). If so, then we have to assure
2306 * consistency between yy_current_buffer and our
2307 * globals. Here is the right place to do so, because
2308 * this is the first action (other than possibly a
2309 * back-up) that will match for the new input source.
2311 yy_n_chars = yy_current_buffer->yy_n_chars;
2312 yy_current_buffer->yy_input_file = yyin;
2313 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2316 /* Note that here we test for yy_c_buf_p "<=" to the position
2317 * of the first EOB in the buffer, since yy_c_buf_p will
2318 * already have been incremented past the NUL character
2319 * (since all states make transitions on EOB to the
2320 * end-of-buffer state). Contrast this with the test
2323 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2324 { /* This was really a NUL. */
2325 yy_state_type yy_next_state;
2327 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2329 yy_current_state = yy_get_previous_state();
2331 /* Okay, we're now positioned to make the NUL
2332 * transition. We couldn't have
2333 * yy_get_previous_state() go ahead and do it
2334 * for us because it doesn't know how to deal
2335 * with the possibility of jamming (and we don't
2336 * want to build jamming into it because then it
2337 * will run more slowly).
2340 yy_next_state = yy_try_NUL_trans( yy_current_state );
2342 yy_bp = yytext_ptr + YY_MORE_ADJ;
2344 if ( yy_next_state )
2346 /* Consume the NUL. */
2347 yy_cp = ++yy_c_buf_p;
2348 yy_current_state = yy_next_state;
2355 goto yy_find_action;
2359 else switch ( yy_get_next_buffer() )
2361 case EOB_ACT_END_OF_FILE:
2363 yy_did_buffer_switch_on_eof = 0;
2367 /* Note: because we've taken care in
2368 * yy_get_next_buffer() to have set up
2369 * yytext, we can now set up
2370 * yy_c_buf_p so that if some total
2371 * hoser (like flex itself) wants to
2372 * call the scanner after we return the
2373 * YY_NULL, it'll still work - another
2374 * YY_NULL will get returned.
2376 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2378 yy_act = YY_STATE_EOF(YY_START);
2384 if ( ! yy_did_buffer_switch_on_eof )
2390 case EOB_ACT_CONTINUE_SCAN:
2392 yytext_ptr + yy_amount_of_matched_text;
2394 yy_current_state = yy_get_previous_state();
2397 yy_bp = yytext_ptr + YY_MORE_ADJ;
2400 case EOB_ACT_LAST_MATCH:
2402 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2404 yy_current_state = yy_get_previous_state();
2407 yy_bp = yytext_ptr + YY_MORE_ADJ;
2408 goto yy_find_action;
2415 "fatal flex scanner internal error--no action found" );
2416 } /* end of action switch */
2417 } /* end of scanning one token */
2418 } /* end of yylex */
2421 /* yy_get_next_buffer - try to read in a new buffer
2423 * Returns a code representing an action:
2424 * EOB_ACT_LAST_MATCH -
2425 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2426 * EOB_ACT_END_OF_FILE - end of file
2429 static int yy_get_next_buffer()
2431 register char *dest = yy_current_buffer->yy_ch_buf;
2432 register char *source = yytext_ptr;
2433 register int number_to_move, i;
2436 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2438 "fatal flex scanner internal error--end of buffer missed" );
2440 if ( yy_current_buffer->yy_fill_buffer == 0 )
2441 { /* Don't try to fill the buffer, so this is an EOF. */
2442 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2444 /* We matched a single character, the EOB, so
2445 * treat this as a final EOF.
2447 return EOB_ACT_END_OF_FILE;
2452 /* We matched some text prior to the EOB, first
2455 return EOB_ACT_LAST_MATCH;
2459 /* Try to read more data. */
2461 /* First move last chars to start of buffer. */
2462 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2464 for ( i = 0; i < number_to_move; ++i )
2465 *(dest++) = *(source++);
2467 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2468 /* don't do the read, it's not guaranteed to return an EOF,
2471 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2476 yy_current_buffer->yy_buf_size - number_to_move - 1;
2478 while ( num_to_read <= 0 )
2479 { /* Not enough room in the buffer - grow it. */
2480 #ifdef YY_USES_REJECT
2482 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2485 /* just a shorter name for the current buffer */
2486 YY_BUFFER_STATE b = yy_current_buffer;
2488 int yy_c_buf_p_offset =
2489 (int) (yy_c_buf_p - b->yy_ch_buf);
2491 if ( b->yy_is_our_buffer )
2493 int new_size = b->yy_buf_size * 2;
2495 if ( new_size <= 0 )
2496 b->yy_buf_size += b->yy_buf_size / 8;
2498 b->yy_buf_size *= 2;
2500 b->yy_ch_buf = (char *)
2501 /* Include room in for 2 EOB chars. */
2502 yy_flex_realloc( (void *) b->yy_ch_buf,
2503 b->yy_buf_size + 2 );
2506 /* Can't grow it, we don't own it. */
2509 if ( ! b->yy_ch_buf )
2511 "fatal error - scanner input buffer overflow" );
2513 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2515 num_to_read = yy_current_buffer->yy_buf_size -
2520 if ( num_to_read > YY_READ_BUF_SIZE )
2521 num_to_read = YY_READ_BUF_SIZE;
2523 /* Read in more data. */
2524 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2525 yy_n_chars, num_to_read );
2527 yy_current_buffer->yy_n_chars = yy_n_chars;
2530 if ( yy_n_chars == 0 )
2532 if ( number_to_move == YY_MORE_ADJ )
2534 ret_val = EOB_ACT_END_OF_FILE;
2540 ret_val = EOB_ACT_LAST_MATCH;
2541 yy_current_buffer->yy_buffer_status =
2542 YY_BUFFER_EOF_PENDING;
2547 ret_val = EOB_ACT_CONTINUE_SCAN;
2549 yy_n_chars += number_to_move;
2550 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2551 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2553 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2559 /* yy_get_previous_state - get the state just before the EOB char was reached */
2561 static yy_state_type yy_get_previous_state()
2563 register yy_state_type yy_current_state;
2564 register char *yy_cp;
2566 yy_current_state = yy_start;
2568 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2570 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2571 if ( yy_accept[yy_current_state] )
2573 yy_last_accepting_state = yy_current_state;
2574 yy_last_accepting_cpos = yy_cp;
2576 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2578 yy_current_state = (int) yy_def[yy_current_state];
2579 if ( yy_current_state >= 697 )
2580 yy_c = yy_meta[(unsigned int) yy_c];
2582 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2585 return yy_current_state;
2589 /* yy_try_NUL_trans - try to make a transition on the NUL character
2592 * next_state = yy_try_NUL_trans( current_state );
2595 #ifdef YY_USE_PROTOS
2596 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2598 static yy_state_type yy_try_NUL_trans( yy_current_state )
2599 yy_state_type yy_current_state;
2602 register int yy_is_jam;
2603 register char *yy_cp = yy_c_buf_p;
2605 register YY_CHAR yy_c = 1;
2606 if ( yy_accept[yy_current_state] )
2608 yy_last_accepting_state = yy_current_state;
2609 yy_last_accepting_cpos = yy_cp;
2611 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2613 yy_current_state = (int) yy_def[yy_current_state];
2614 if ( yy_current_state >= 697 )
2615 yy_c = yy_meta[(unsigned int) yy_c];
2617 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2618 yy_is_jam = (yy_current_state == 696);
2620 return yy_is_jam ? 0 : yy_current_state;
2625 #ifdef YY_USE_PROTOS
2626 static void yyunput( int c, register char *yy_bp )
2628 static void yyunput( c, yy_bp )
2630 register char *yy_bp;
2633 register char *yy_cp = yy_c_buf_p;
2635 /* undo effects of setting up yytext */
2636 *yy_cp = yy_hold_char;
2638 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2639 { /* need to shift things up to make room */
2640 /* +2 for EOB chars. */
2641 register int number_to_move = yy_n_chars + 2;
2642 register char *dest = &yy_current_buffer->yy_ch_buf[
2643 yy_current_buffer->yy_buf_size + 2];
2644 register char *source =
2645 &yy_current_buffer->yy_ch_buf[number_to_move];
2647 while ( source > yy_current_buffer->yy_ch_buf )
2648 *--dest = *--source;
2650 yy_cp += (int) (dest - source);
2651 yy_bp += (int) (dest - source);
2652 yy_current_buffer->yy_n_chars =
2653 yy_n_chars = yy_current_buffer->yy_buf_size;
2655 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2656 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2659 *--yy_cp = (char) c;
2663 yy_hold_char = *yy_cp;
2666 #endif /* ifndef YY_NO_UNPUT */
2670 static int yyinput()
2677 *yy_c_buf_p = yy_hold_char;
2679 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2681 /* yy_c_buf_p now points to the character we want to return.
2682 * If this occurs *before* the EOB characters, then it's a
2683 * valid NUL; if not, then we've hit the end of the buffer.
2685 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2686 /* This was really a NUL. */
2690 { /* need more input */
2691 int offset = yy_c_buf_p - yytext_ptr;
2694 switch ( yy_get_next_buffer() )
2696 case EOB_ACT_LAST_MATCH:
2697 /* This happens because yy_g_n_b()
2698 * sees that we've accumulated a
2699 * token and flags that we need to
2700 * try matching the token before
2701 * proceeding. But for input(),
2702 * there's no matching to consider.
2703 * So convert the EOB_ACT_LAST_MATCH
2704 * to EOB_ACT_END_OF_FILE.
2707 /* Reset buffer status. */
2712 case EOB_ACT_END_OF_FILE:
2717 if ( ! yy_did_buffer_switch_on_eof )
2726 case EOB_ACT_CONTINUE_SCAN:
2727 yy_c_buf_p = yytext_ptr + offset;
2733 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
2734 *yy_c_buf_p = '\0'; /* preserve yytext */
2735 yy_hold_char = *++yy_c_buf_p;
2742 #ifdef YY_USE_PROTOS
2743 void yyrestart( FILE *input_file )
2745 void yyrestart( input_file )
2749 if ( ! yy_current_buffer )
2750 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2752 yy_init_buffer( yy_current_buffer, input_file );
2753 yy_load_buffer_state();
2757 #ifdef YY_USE_PROTOS
2758 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2760 void yy_switch_to_buffer( new_buffer )
2761 YY_BUFFER_STATE new_buffer;
2764 if ( yy_current_buffer == new_buffer )
2767 if ( yy_current_buffer )
2769 /* Flush out information for old buffer. */
2770 *yy_c_buf_p = yy_hold_char;
2771 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2772 yy_current_buffer->yy_n_chars = yy_n_chars;
2775 yy_current_buffer = new_buffer;
2776 yy_load_buffer_state();
2778 /* We don't actually know whether we did this switch during
2779 * EOF (yywrap()) processing, but the only time this flag
2780 * is looked at is after yywrap() is called, so it's safe
2781 * to go ahead and always set it.
2783 yy_did_buffer_switch_on_eof = 1;
2787 #ifdef YY_USE_PROTOS
2788 void yy_load_buffer_state( void )
2790 void yy_load_buffer_state()
2793 yy_n_chars = yy_current_buffer->yy_n_chars;
2794 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2795 yyin = yy_current_buffer->yy_input_file;
2796 yy_hold_char = *yy_c_buf_p;
2800 #ifdef YY_USE_PROTOS
2801 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2803 YY_BUFFER_STATE yy_create_buffer( file, size )
2810 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2812 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2814 b->yy_buf_size = size;
2816 /* yy_ch_buf has to be 2 characters longer than the size given because
2817 * we need to put in 2 end-of-buffer characters.
2819 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2820 if ( ! b->yy_ch_buf )
2821 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2823 b->yy_is_our_buffer = 1;
2825 yy_init_buffer( b, file );
2831 #ifdef YY_USE_PROTOS
2832 void yy_delete_buffer( YY_BUFFER_STATE b )
2834 void yy_delete_buffer( b )
2841 if ( b == yy_current_buffer )
2842 yy_current_buffer = (YY_BUFFER_STATE) 0;
2844 if ( b->yy_is_our_buffer )
2845 yy_flex_free( (void *) b->yy_ch_buf );
2847 yy_flex_free( (void *) b );
2851 #ifndef YY_ALWAYS_INTERACTIVE
2852 #ifndef YY_NEVER_INTERACTIVE
2853 extern int isatty YY_PROTO(( int ));
2857 #ifdef YY_USE_PROTOS
2858 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2860 void yy_init_buffer( b, file )
2867 yy_flush_buffer( b );
2869 b->yy_input_file = file;
2870 b->yy_fill_buffer = 1;
2872 #if YY_ALWAYS_INTERACTIVE
2873 b->yy_is_interactive = 1;
2875 #if YY_NEVER_INTERACTIVE
2876 b->yy_is_interactive = 0;
2878 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2884 #ifdef YY_USE_PROTOS
2885 void yy_flush_buffer( YY_BUFFER_STATE b )
2887 void yy_flush_buffer( b )
2897 /* We always need two end-of-buffer characters. The first causes
2898 * a transition to the end-of-buffer state. The second causes
2899 * a jam in that state.
2901 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2902 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2904 b->yy_buf_pos = &b->yy_ch_buf[0];
2907 b->yy_buffer_status = YY_BUFFER_NEW;
2909 if ( b == yy_current_buffer )
2910 yy_load_buffer_state();
2914 #ifndef YY_NO_SCAN_BUFFER
2915 #ifdef YY_USE_PROTOS
2916 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
2918 YY_BUFFER_STATE yy_scan_buffer( base, size )
2926 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2927 base[size-1] != YY_END_OF_BUFFER_CHAR )
2928 /* They forgot to leave room for the EOB's. */
2931 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2933 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2935 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2936 b->yy_buf_pos = b->yy_ch_buf = base;
2937 b->yy_is_our_buffer = 0;
2938 b->yy_input_file = 0;
2939 b->yy_n_chars = b->yy_buf_size;
2940 b->yy_is_interactive = 0;
2942 b->yy_fill_buffer = 0;
2943 b->yy_buffer_status = YY_BUFFER_NEW;
2945 yy_switch_to_buffer( b );
2952 #ifndef YY_NO_SCAN_STRING
2953 #ifdef YY_USE_PROTOS
2954 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
2956 YY_BUFFER_STATE yy_scan_string( yy_str )
2957 yyconst char *yy_str;
2961 for ( len = 0; yy_str[len]; ++len )
2964 return yy_scan_bytes( yy_str, len );
2969 #ifndef YY_NO_SCAN_BYTES
2970 #ifdef YY_USE_PROTOS
2971 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
2973 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
2974 yyconst char *bytes;
2983 /* Get memory for full buffer, including space for trailing EOB's. */
2985 buf = (char *) yy_flex_alloc( n );
2987 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2989 for ( i = 0; i < len; ++i )
2992 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2994 b = yy_scan_buffer( buf, n );
2996 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2998 /* It's okay to grow etc. this buffer, and we should throw it
2999 * away when we're done.
3001 b->yy_is_our_buffer = 1;
3008 #ifndef YY_NO_PUSH_STATE
3009 #ifdef YY_USE_PROTOS
3010 static void yy_push_state( int new_state )
3012 static void yy_push_state( new_state )
3016 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3020 yy_start_stack_depth += YY_START_STACK_INCR;
3021 new_size = yy_start_stack_depth * sizeof( int );
3023 if ( ! yy_start_stack )
3024 yy_start_stack = (int *) yy_flex_alloc( new_size );
3027 yy_start_stack = (int *) yy_flex_realloc(
3028 (void *) yy_start_stack, new_size );
3030 if ( ! yy_start_stack )
3032 "out of memory expanding start-condition stack" );
3035 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3042 #ifndef YY_NO_POP_STATE
3043 static void yy_pop_state()
3045 if ( --yy_start_stack_ptr < 0 )
3046 YY_FATAL_ERROR( "start-condition stack underflow" );
3048 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3053 #ifndef YY_NO_TOP_STATE
3054 static int yy_top_state()
3056 return yy_start_stack[yy_start_stack_ptr - 1];
3060 #ifndef YY_EXIT_FAILURE
3061 #define YY_EXIT_FAILURE 2
3064 #ifdef YY_USE_PROTOS
3065 static void yy_fatal_error( yyconst char msg[] )
3067 static void yy_fatal_error( msg )
3071 (void) fprintf( stderr, "%s\n", msg );
3072 exit( YY_EXIT_FAILURE );
3077 /* Redefine yyless() so it works in section 3 code. */
3083 /* Undo effects of setting up yytext. */ \
3084 yytext[yyleng] = yy_hold_char; \
3085 yy_c_buf_p = yytext + n; \
3086 yy_hold_char = *yy_c_buf_p; \
3087 *yy_c_buf_p = '\0'; \
3093 /* Internal utility routines. */
3096 #ifdef YY_USE_PROTOS
3097 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3099 static void yy_flex_strncpy( s1, s2, n )
3106 for ( i = 0; i < n; ++i )
3111 #ifdef YY_NEED_STRLEN
3112 #ifdef YY_USE_PROTOS
3113 static int yy_flex_strlen( yyconst char *s )
3115 static int yy_flex_strlen( s )
3120 for ( n = 0; s[n]; ++n )
3128 #ifdef YY_USE_PROTOS
3129 static void *yy_flex_alloc( yy_size_t size )
3131 static void *yy_flex_alloc( size )
3135 return (void *) malloc( size );
3138 #ifdef YY_USE_PROTOS
3139 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3141 static void *yy_flex_realloc( ptr, size )
3146 /* The cast to (char *) in the following accommodates both
3147 * implementations that use char* generic pointers, and those
3148 * that use void* generic pointers. It works with the latter
3149 * because both ANSI C and C++ allow castless assignment from
3150 * any pointer type to void*, and deal with argument conversions
3151 * as though doing an assignment.
3153 return (void *) realloc( (char *) ptr, size );
3156 #ifdef YY_USE_PROTOS
3157 static void yy_flex_free( void *ptr )
3159 static void yy_flex_free( ptr )
3189 // fputc(c, output);
3193 yylloc.end.charPos = 1;
3199 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3204 yylloc.end.charPos++;
3207 if(c == '/' && last == '*')
3211 yylloc.start = yylloc.end;
3223 // fputc(c, output);
3227 yylloc.end.charPos = 1;
3234 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3239 yylloc.end.charPos++;
3244 yylloc.start = yylloc.end;
3263 yylloc.end.charPos = 1;
3268 char * pointer = line + 1;
3271 lineNumber = GetValue(&pointer);
3274 char fileName[MAX_LOCATION];
3277 GetString(&pointer, fileName, MAX_LOCATION);
3278 inOut = GetValue(&pointer);
3282 char extension[MAX_EXTENSION];
3284 defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
3286 GetExtension(fileName, extension);
3287 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
3288 declMode = defaultDeclMode = defaultAccess;
3290 include_stack_ptr++;
3294 include_stack_ptr--;
3295 defaultDeclMode = declMode = declModeStack[include_stack_ptr];
3298 yylloc.end.charPos = 1;
3299 yylloc.end.line = lineNumber;
3300 //yylloc.end.pos -= count;
3301 yylloc.end.included = (include_stack_ptr > 0) ? GetIncludeFileID(fileName) : 0;
3304 int lineNumber = strtol(line+1, &endPtr, 0);
3310 yylloc.end.charPos = 1;
3311 yylloc.end.line = lineNumber;
3312 yylloc.end.pos -= count;
3321 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3330 yylloc.end.charPos++;
3336 yylloc.start = yylloc.end;
3339 TrimLSpaces(line, line);
3340 for(c = 0; line[c] && line[c] != ' '; c++);
3341 if(!strncmp(line, "include", c))
3343 char includeFile[MAX_LOCATION] = "";
3345 strcpy(line, line+c);
3346 TrimLSpaces(line, line);
3349 for(c = 1; line[c]; c++)
3353 strncpy(includeFile, line+1, c-1);
3354 includeFile[c-1] = '\0';
3359 else if(line[0] == '<')
3361 for(c = 1; line[c]; c++)
3364 strncpy(includeFile, line+1, c-1);
3365 includeFile[c-1] = '\0';
3370 if ( include_stack_ptr >= MAX_INCLUDE_DEPTH )
3372 fprintf( stderr, "Includes nested too deeply" );
3376 if(inCompiler || !FindIncludeFileID(includeFile))
3378 File file = OpenIncludeFile(includeFile);
3381 char extension[MAX_EXTENSION];
3383 fileStack[include_stack_ptr] = fileInput;
3384 locStack[include_stack_ptr] = yylloc;
3385 defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
3386 include_stack[include_stack_ptr++] = YY_CURRENT_BUFFER;
3388 yylloc.start.charPos = yylloc.end.charPos = 1;
3389 yylloc.start.line = yylloc.end.line = 1;
3390 yylloc.start.pos = yylloc.end.pos = 0;
3391 yylloc.start.included = yylloc.end.included = GetIncludeFileID(includeFile);
3393 GetExtension(includeFile, extension);
3394 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
3395 declMode = defaultDeclMode = defaultAccess;
3398 yy_switch_to_buffer( yy_create_buffer( fileInput, YY_BUF_SIZE ) );
3408 public void resetScanner()
3411 yylloc.start.charPos = yylloc.end.charPos = 1;
3412 yylloc.start.line = yylloc.end.line = 1;
3413 yylloc.start.pos = yylloc.end.pos = 0;
3414 yylloc.start.included = yylloc.end.included = false;
3416 expression_yylloc.start.charPos = expression_yylloc.end.charPos = 1;
3417 expression_yylloc.start.line = expression_yylloc.end.line = 1;
3418 expression_yylloc.start.pos = expression_yylloc.end.pos = 0;
3419 expression_yylloc.start.included = expression_yylloc.end.included = false;
3421 type_yylloc.start.charPos = type_yylloc.end.charPos = 1;
3422 type_yylloc.start.line = type_yylloc.end.line = 1;
3423 type_yylloc.start.pos = type_yylloc.end.pos = 0;
3424 type_yylloc.start.included = type_yylloc.end.included = false;
3426 include_stack_ptr = 0;
3429 void resetScannerPos(CodePosition pos)
3432 yylloc.start = yylloc.end = pos;
3433 type_yylloc.start = type_yylloc.end = pos;
3434 expression_yylloc.start = expression_yylloc.end = pos;