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 179
287 #define YY_END_OF_BUFFER 180
288 static yyconst short int yy_accept[732] =
290 114, 114, 180, 178, 176, 175, 174, 177, 161, 178,
291 1, 173, 167, 160, 178, 155, 156, 165, 164, 152,
292 163, 159, 166, 120, 120, 153, 149, 168, 154, 169,
293 172, 114, 114, 114, 157, 158, 170, 114, 114, 114,
294 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
295 114, 114, 114, 114, 114, 150, 171, 151, 162, 148,
296 0, 125, 0, 134, 151, 143, 135, 0, 0, 132,
297 140, 130, 141, 131, 142, 0, 123, 2, 3, 133,
298 124, 119, 0, 120, 0, 120, 114, 158, 150, 157,
299 139, 145, 147, 146, 138, 0, 114, 0, 114, 0,
301 0, 136, 114, 114, 114, 114, 114, 114, 114, 114,
302 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
303 114, 11, 114, 114, 114, 114, 114, 114, 114, 114,
304 19, 114, 114, 114, 114, 114, 114, 114, 114, 114,
305 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
306 114, 114, 114, 114, 137, 144, 121, 127, 0, 123,
307 123, 0, 124, 119, 0, 122, 0, 115, 114, 129,
308 128, 114, 114, 0, 126, 0, 114, 114, 114, 114,
309 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
310 114, 114, 114, 94, 114, 114, 114, 114, 114, 114,
312 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
313 114, 114, 114, 17, 46, 114, 114, 114, 114, 20,
314 114, 114, 114, 52, 114, 114, 114, 114, 114, 114,
315 114, 45, 114, 114, 114, 114, 114, 114, 114, 114,
316 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
317 114, 0, 123, 0, 123, 0, 124, 122, 117, 118,
318 115, 0, 63, 114, 114, 114, 114, 114, 114, 114,
319 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
320 114, 114, 114, 114, 114, 4, 114, 6, 7, 114,
321 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
323 114, 114, 13, 14, 114, 114, 114, 18, 114, 114,
324 114, 114, 114, 22, 114, 53, 114, 114, 114, 114,
325 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
326 114, 114, 114, 114, 21, 114, 114, 114, 39, 114,
327 114, 114, 0, 123, 117, 117, 0, 117, 117, 118,
328 0, 0, 116, 64, 114, 114, 114, 95, 114, 114,
329 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
330 114, 114, 114, 114, 114, 114, 5, 48, 8, 114,
331 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
332 114, 114, 16, 114, 114, 114, 59, 47, 114, 114,
334 114, 114, 114, 54, 114, 114, 25, 114, 114, 114,
335 114, 114, 114, 114, 114, 114, 114, 37, 114, 114,
336 114, 97, 43, 0, 117, 117, 117, 0, 0, 118,
337 116, 114, 114, 114, 114, 114, 114, 114, 114, 114,
338 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
339 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
340 114, 57, 51, 114, 114, 12, 15, 114, 56, 90,
341 74, 114, 114, 114, 86, 114, 55, 114, 24, 26,
342 29, 32, 114, 114, 34, 114, 35, 114, 114, 114,
343 114, 114, 114, 114, 0, 117, 114, 114, 114, 93,
345 114, 114, 78, 84, 114, 114, 114, 114, 58, 114,
346 114, 114, 114, 114, 114, 114, 72, 114, 114, 114,
347 114, 114, 114, 114, 114, 111, 112, 110, 10, 114,
348 114, 114, 114, 87, 114, 114, 114, 82, 114, 114,
349 114, 114, 36, 114, 50, 114, 114, 65, 114, 114,
350 114, 114, 114, 114, 73, 60, 114, 27, 114, 33,
351 96, 114, 114, 81, 114, 114, 114, 114, 114, 114,
352 9, 114, 114, 114, 114, 114, 44, 23, 67, 114,
353 108, 114, 114, 38, 40, 114, 114, 114, 114, 114,
354 114, 114, 114, 114, 114, 79, 114, 114, 114, 114,
356 114, 114, 114, 114, 114, 114, 76, 77, 114, 109,
357 114, 114, 49, 114, 100, 66, 114, 114, 114, 114,
358 114, 71, 83, 28, 114, 42, 114, 89, 106, 114,
359 114, 114, 114, 114, 114, 114, 114, 114, 114, 30,
360 70, 114, 114, 0, 114, 114, 80, 114, 92, 114,
361 114, 103, 114, 114, 114, 114, 114, 114, 114, 114,
362 114, 114, 75, 0, 114, 85, 41, 114, 114, 114,
363 114, 114, 99, 114, 98, 88, 69, 114, 114, 114,
364 91, 114, 114, 114, 114, 113, 114, 114, 114, 114,
365 114, 114, 101, 114, 107, 114, 114, 114, 114, 114,
367 114, 114, 114, 114, 114, 62, 114, 114, 114, 114,
368 114, 114, 61, 114, 114, 105, 114, 31, 114, 102,
369 114, 114, 114, 114, 114, 114, 114, 104, 114, 68,
373 static yyconst int yy_ec[256] =
375 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
376 4, 4, 5, 1, 1, 1, 1, 1, 1, 1,
377 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
378 1, 4, 6, 7, 8, 9, 10, 11, 12, 13,
379 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
380 24, 25, 24, 26, 24, 27, 24, 28, 29, 30,
381 31, 32, 33, 1, 34, 35, 36, 34, 37, 38,
382 39, 39, 40, 41, 39, 42, 39, 39, 39, 43,
383 39, 39, 39, 39, 44, 39, 39, 45, 39, 39,
384 46, 47, 48, 49, 50, 1, 51, 52, 53, 54,
386 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
387 65, 66, 39, 67, 68, 69, 70, 71, 72, 73,
388 74, 75, 76, 77, 78, 79, 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,
395 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,
401 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
405 static yyconst int yy_meta[80] =
407 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
408 2, 3, 1, 4, 1, 1, 1, 1, 5, 1,
409 6, 6, 6, 6, 6, 6, 6, 2, 1, 1,
410 1, 1, 1, 7, 7, 7, 7, 7, 8, 9,
411 9, 9, 9, 8, 8, 1, 1, 1, 1, 8,
412 7, 7, 7, 7, 7, 7, 8, 8, 9, 9,
413 8, 9, 8, 8, 8, 9, 8, 8, 8, 8,
414 8, 8, 8, 8, 8, 1, 1, 1, 1
417 static yyconst short int yy_base[741] =
419 0, 0, 244, 2810, 2810, 2810, 2810, 2810, 211, 73,
420 2810, 2810, 50, 72, 193, 2810, 2810, 203, 68, 2810,
421 69, 67, 82, 102, 85, 86, 2810, 105, 202, 64,
422 2810, 94, 106, 138, 2810, 2810, 200, 141, 120, 126,
423 127, 152, 154, 140, 183, 187, 145, 184, 159, 197,
424 202, 195, 209, 217, 208, 2810, 109, 2810, 2810, 2810,
425 112, 2810, 218, 2810, 2810, 2810, 2810, 120, 171, 2810,
426 2810, 2810, 2810, 2810, 2810, 182, 262, 2810, 2810, 2810,
427 304, 348, 289, 292, 178, 0, 0, 2810, 2810, 2810,
428 148, 2810, 2810, 2810, 129, 125, 213, 113, 236, 215,
430 69, 2810, 270, 312, 280, 408, 221, 327, 268, 235,
431 337, 328, 264, 365, 269, 350, 368, 370, 371, 393,
432 383, 384, 398, 394, 403, 406, 409, 413, 414, 418,
433 267, 424, 440, 437, 442, 395, 458, 460, 470, 467,
434 471, 473, 480, 492, 489, 483, 485, 486, 499, 501,
435 504, 505, 493, 517, 2810, 2810, 2810, 2810, 556, 546,
436 588, 573, 578, 611, 635, 661, 0, 649, 523, 2810,
437 2810, 0, 528, 340, 2810, 101, 538, 564, 542, 638,
438 537, 611, 667, 652, 557, 685, 686, 699, 666, 701,
439 613, 705, 713, 707, 715, 721, 719, 723, 725, 726,
441 728, 733, 737, 747, 749, 741, 755, 739, 757, 753,
442 760, 771, 776, 775, 778, 791, 794, 796, 802, 806,
443 800, 807, 810, 812, 809, 818, 814, 820, 830, 825,
444 832, 834, 838, 839, 840, 841, 843, 846, 859, 861,
445 862, 864, 870, 871, 872, 880, 890, 893, 895, 896,
446 898, 929, 940, 967, 963, 947, 1005, 995, 1028, 1036,
447 1041, 990, 900, 947, 996, 1047, 1061, 916, 908, 1069,
448 902, 1045, 1010, 1080, 1082, 1031, 1095, 1094, 1096, 1101,
449 1102, 1103, 1106, 1104, 1105, 905, 1107, 906, 1108, 1110,
450 1114, 1115, 1128, 1126, 1134, 1144, 1148, 1149, 1158, 1162,
452 1171, 1164, 1173, 1174, 1176, 1178, 1180, 1182, 1184, 1183,
453 1189, 1194, 1186, 1187, 1192, 1196, 1205, 1212, 1214, 1217,
454 1218, 1219, 1220, 1226, 1233, 1241, 1230, 1246, 1248, 1251,
455 1252, 1254, 1255, 1264, 1253, 1266, 1282, 1273, 1285, 1287,
456 1288, 1289, 1300, 1336, 0, 1291, 1363, 1359, 0, 1367,
457 1412, 1343, 1419, 1291, 1344, 1324, 1392, 1343, 1383, 1403,
458 1436, 1440, 1441, 1442, 1443, 1462, 1444, 1452, 1465, 1455,
459 1466, 1463, 1471, 1476, 1481, 1484, 1300, 1487, 1489, 1494,
460 1495, 1500, 1496, 1514, 1515, 1516, 1519, 1520, 1522, 1527,
461 1528, 1538, 1541, 1542, 1550, 1552, 1553, 1556, 1557, 1562,
463 1568, 1572, 1576, 1580, 1582, 1584, 1586, 1588, 1587, 1591,
464 1592, 1598, 1594, 1602, 1606, 1610, 1618, 1622, 1628, 1629,
465 1641, 1647, 1648, 1660, 1680, 0, 1653, 1707, 1722, 1729,
466 1719, 1686, 1660, 1699, 1649, 1754, 1650, 1755, 1668, 1762,
467 1765, 1769, 1773, 1775, 1776, 1766, 1781, 1784, 1787, 1788,
468 1791, 1794, 1796, 1795, 1797, 1799, 1800, 1820, 1809, 1828,
469 1834, 1836, 1839, 1843, 1849, 1859, 1861, 1862, 1864, 1865,
470 1867, 1868, 1869, 1870, 1873, 1874, 1877, 1883, 1888, 1889,
471 1893, 1895, 1898, 1899, 1902, 1904, 1907, 1914, 1909, 1917,
472 1922, 1923, 1927, 1929, 1969, 1976, 1933, 1935, 1942, 1930,
474 1936, 1951, 1938, 1941, 1943, 1956, 1976, 1948, 1994, 1997,
475 2000, 2001, 2012, 2002, 2009, 2015, 2016, 2022, 2023, 2031,
476 2034, 2036, 2037, 2041, 2042, 2044, 2049, 2060, 2062, 2064,
477 2070, 2072, 2074, 2078, 2080, 2083, 2084, 2088, 2092, 2094,
478 2096, 2104, 2098, 2106, 2102, 2108, 2107, 2110, 2112, 2118,
479 2130, 2131, 2133, 2137, 2140, 2138, 2144, 2156, 2159, 2164,
480 2165, 2166, 2170, 2171, 2174, 2175, 2180, 2190, 2196, 2194,
481 2198, 2201, 2202, 2203, 2204, 2205, 2206, 2209, 2212, 2227,
482 2214, 2230, 2236, 2238, 2239, 2242, 2241, 2250, 2254, 2262,
483 2246, 2264, 2266, 2265, 2275, 2276, 2273, 2277, 2278, 2280,
485 2291, 2296, 2299, 2302, 2307, 2309, 2310, 2311, 2321, 2322,
486 2325, 2332, 2333, 2334, 2335, 2337, 2340, 2341, 2347, 2353,
487 2356, 2359, 2360, 2366, 2369, 2371, 2372, 2374, 2375, 2381,
488 2387, 2395, 2396, 2397, 2400, 2403, 2402, 2415, 2405, 2406,
489 2418, 2426, 2427, 84, 2431, 2434, 2428, 2436, 2429, 2437,
490 2439, 2449, 2452, 2460, 2461, 2462, 2463, 2464, 2465, 2472,
491 2483, 2474, 2810, 71, 2485, 2476, 2484, 2486, 2487, 2495,
492 2497, 2508, 2509, 2520, 2517, 2522, 2529, 2530, 2532, 2533,
493 2536, 2540, 2541, 2542, 2543, 2545, 2548, 2552, 2554, 2563,
494 2551, 2566, 2570, 2575, 2576, 2585, 2586, 2588, 2591, 2596,
496 2600, 2601, 2609, 2610, 2612, 2611, 2614, 2616, 2623, 2624,
497 2634, 2630, 2635, 2638, 2643, 2644, 2645, 2650, 2657, 2663,
498 2664, 2669, 2671, 2673, 2678, 2682, 2689, 2683, 2691, 2692,
499 2810, 2756, 2765, 2773, 2778, 2779, 2788, 2792, 2794, 2800
502 static yyconst short int yy_def[741] =
504 731, 1, 731, 731, 731, 731, 731, 731, 731, 732,
505 731, 731, 731, 731, 733, 731, 731, 731, 731, 731,
506 731, 731, 731, 731, 24, 731, 731, 731, 731, 731,
507 731, 734, 734, 734, 731, 731, 731, 734, 734, 734,
508 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
509 734, 734, 734, 734, 734, 731, 731, 731, 731, 731,
510 732, 731, 732, 731, 731, 731, 731, 733, 733, 731,
511 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
512 731, 731, 731, 731, 735, 25, 736, 731, 731, 731,
513 731, 731, 731, 731, 731, 731, 734, 731, 734, 737,
515 733, 731, 734, 734, 734, 734, 734, 734, 734, 734,
516 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
517 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
518 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
519 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
520 734, 734, 734, 734, 731, 731, 731, 731, 731, 731,
521 731, 731, 731, 731, 731, 731, 738, 735, 734, 731,
522 731, 736, 734, 737, 731, 737, 734, 734, 734, 734,
523 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
524 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
526 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
527 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
528 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
529 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
530 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
531 734, 731, 731, 731, 731, 731, 731, 731, 738, 739,
532 731, 731, 734, 734, 734, 734, 734, 734, 734, 734,
533 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
534 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
535 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
537 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
538 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
539 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
540 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
541 734, 734, 731, 731, 259, 731, 731, 739, 348, 731,
542 731, 731, 731, 734, 734, 734, 734, 734, 734, 734,
543 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
544 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
545 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
546 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
548 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
549 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
550 734, 734, 734, 731, 731, 348, 731, 731, 731, 731,
551 731, 734, 734, 734, 734, 734, 734, 734, 734, 734,
552 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
553 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
554 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
555 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
556 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
557 734, 734, 734, 734, 731, 731, 734, 734, 734, 734,
559 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
560 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
561 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
562 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
563 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
564 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
565 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
566 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
567 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
568 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
570 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
571 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
572 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
573 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
574 734, 734, 734, 740, 734, 734, 734, 734, 734, 734,
575 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
576 734, 734, 731, 740, 734, 734, 734, 734, 734, 734,
577 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
578 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
579 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
581 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
582 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
583 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
584 0, 731, 731, 731, 731, 731, 731, 731, 731, 731
587 static yyconst short int yy_nxt[2890] =
589 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
590 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
591 24, 25, 25, 25, 25, 25, 25, 26, 27, 28,
592 29, 30, 31, 32, 33, 32, 32, 32, 32, 32,
593 32, 34, 32, 32, 32, 35, 4, 36, 37, 38,
594 39, 40, 41, 42, 43, 44, 45, 32, 46, 32,
595 32, 47, 32, 48, 32, 49, 50, 51, 52, 53,
596 54, 55, 32, 32, 32, 56, 57, 58, 59, 62,
597 64, 65, 66, 71, 663, 76, 73, 77, 77, 77,
598 77, 77, 77, 77, 94, 95, 78, 663, 72, 74,
600 75, 79, 67, 731, 96, 86, 86, 86, 86, 86,
601 86, 86, 80, 87, 89, 69, 96, 88, 62, 63,
602 81, 98, 82, 82, 82, 82, 82, 82, 82, 731,
603 96, 157, 90, 98, 91, 92, 96, 96, 83, 155,
604 172, 84, 84, 84, 100, 84, 85, 98, 96, 101,
605 96, 96, 98, 98, 98, 96, 83, 731, 63, 171,
606 84, 84, 96, 84, 96, 98, 69, 98, 98, 96,
607 99, 84, 98, 731, 85, 103, 104, 114, 170, 98,
608 105, 98, 68, 110, 115, 156, 98, 111, 116, 112,
609 106, 117, 113, 96, 96, 107, 167, 96, 126, 108,
611 158, 127, 118, 119, 128, 96, 120, 96, 109, 135,
612 98, 98, 96, 121, 98, 123, 122, 124, 96, 96,
613 731, 175, 98, 96, 98, 138, 125, 96, 139, 98,
614 102, 96, 93, 70, 136, 98, 98, 129, 137, 69,
615 98, 60, 131, 731, 98, 96, 96, 130, 98, 132,
616 133, 140, 147, 731, 134, 731, 141, 731, 153, 142,
617 143, 176, 98, 98, 731, 154, 731, 149, 148, 731,
618 144, 145, 150, 146, 96, 151, 731, 96, 96, 96,
619 96, 152, 77, 77, 77, 77, 77, 77, 77, 731,
620 96, 98, 731, 190, 98, 98, 98, 98, 159, 160,
622 173, 160, 160, 160, 165, 731, 165, 98, 193, 166,
623 166, 166, 166, 166, 166, 166, 159, 160, 196, 198,
624 160, 160, 96, 160, 161, 161, 161, 161, 161, 161,
625 161, 84, 84, 84, 177, 84, 192, 96, 96, 98,
626 162, 163, 179, 163, 163, 163, 175, 96, 731, 731,
627 84, 84, 731, 84, 98, 98, 731, 731, 162, 163,
628 96, 84, 163, 163, 98, 163, 81, 731, 82, 82,
629 82, 82, 82, 82, 82, 96, 178, 98, 96, 731,
630 96, 96, 731, 731, 83, 731, 176, 164, 164, 164,
631 191, 164, 98, 96, 96, 98, 195, 98, 98, 194,
633 199, 731, 83, 96, 96, 96, 164, 164, 96, 164,
634 98, 98, 731, 96, 731, 731, 96, 164, 96, 96,
635 98, 98, 98, 96, 96, 98, 202, 731, 96, 203,
636 98, 200, 197, 98, 96, 98, 98, 731, 201, 204,
637 98, 98, 731, 731, 207, 98, 731, 96, 205, 731,
638 96, 98, 96, 208, 206, 731, 731, 223, 180, 181,
639 182, 183, 184, 210, 98, 209, 185, 98, 96, 98,
640 96, 211, 212, 213, 186, 187, 188, 96, 189, 214,
641 96, 96, 215, 96, 731, 98, 216, 98, 731, 217,
642 96, 731, 218, 96, 98, 96, 96, 98, 98, 96,
644 98, 219, 96, 96, 221, 222, 731, 98, 220, 96,
645 98, 96, 98, 98, 96, 96, 98, 731, 225, 98,
646 98, 227, 731, 228, 226, 731, 98, 96, 98, 224,
647 229, 98, 98, 96, 230, 231, 234, 233, 96, 232,
648 240, 241, 236, 242, 98, 237, 731, 96, 96, 731,
649 98, 243, 96, 731, 235, 98, 238, 731, 239, 245,
650 731, 250, 244, 248, 98, 98, 249, 96, 246, 98,
651 247, 252, 731, 252, 96, 251, 253, 253, 253, 253,
652 253, 253, 253, 160, 98, 160, 160, 160, 256, 263,
653 256, 98, 266, 257, 257, 257, 257, 257, 257, 257,
655 731, 160, 264, 731, 160, 160, 270, 160, 161, 161,
656 161, 161, 161, 161, 161, 163, 731, 163, 163, 163,
657 275, 96, 731, 96, 254, 255, 265, 255, 255, 255,
658 731, 731, 731, 163, 731, 731, 163, 163, 98, 163,
659 98, 731, 254, 255, 731, 731, 255, 255, 96, 255,
660 164, 164, 164, 731, 164, 166, 166, 166, 166, 166,
661 166, 166, 96, 731, 271, 98, 731, 260, 731, 164,
662 164, 731, 164, 731, 283, 272, 96, 96, 731, 98,
663 164, 166, 166, 166, 166, 166, 166, 166, 261, 261,
664 261, 262, 261, 98, 98, 96, 96, 731, 258, 267,
666 258, 258, 258, 731, 731, 268, 269, 261, 261, 96,
667 261, 96, 98, 98, 262, 96, 258, 96, 261, 258,
668 258, 273, 258, 96, 274, 96, 98, 731, 98, 96,
669 281, 96, 98, 96, 98, 96, 96, 731, 96, 276,
670 98, 731, 98, 96, 277, 731, 98, 96, 98, 96,
671 98, 96, 98, 98, 278, 98, 279, 96, 284, 96,
672 98, 731, 285, 96, 98, 96, 98, 96, 98, 282,
673 96, 287, 280, 288, 98, 731, 98, 731, 293, 286,
674 98, 96, 98, 731, 98, 96, 96, 98, 96, 289,
675 302, 294, 290, 291, 292, 299, 731, 296, 98, 297,
677 295, 96, 98, 98, 96, 98, 96, 298, 731, 300,
678 96, 303, 96, 301, 305, 304, 96, 96, 98, 96,
679 96, 98, 96, 98, 96, 306, 307, 98, 96, 98,
680 96, 312, 316, 98, 98, 96, 98, 98, 731, 98,
681 96, 98, 96, 731, 96, 98, 731, 98, 96, 96,
682 96, 96, 98, 96, 313, 308, 96, 98, 309, 98,
683 311, 98, 310, 314, 315, 98, 98, 98, 98, 96,
684 98, 96, 96, 98, 96, 319, 731, 731, 320, 317,
685 96, 96, 96, 318, 321, 731, 98, 731, 98, 98,
686 96, 98, 731, 322, 326, 328, 731, 98, 98, 98,
688 96, 323, 325, 96, 324, 96, 96, 98, 96, 327,
689 96, 329, 96, 331, 731, 96, 96, 98, 96, 731,
690 98, 731, 98, 98, 334, 98, 96, 98, 330, 98,
691 332, 333, 98, 98, 731, 98, 336, 731, 337, 335,
692 731, 731, 731, 98, 731, 340, 339, 731, 341, 253,
693 253, 253, 253, 253, 253, 253, 361, 96, 338, 342,
694 253, 253, 253, 253, 253, 253, 253, 257, 257, 257,
695 257, 257, 257, 257, 98, 731, 359, 160, 358, 160,
696 160, 160, 343, 731, 343, 731, 731, 344, 344, 344,
697 344, 344, 344, 344, 731, 160, 731, 731, 160, 160,
699 255, 160, 255, 255, 255, 352, 96, 352, 354, 731,
700 353, 353, 353, 353, 353, 353, 353, 731, 255, 731,
701 96, 255, 255, 98, 255, 257, 257, 257, 257, 257,
702 257, 257, 258, 731, 258, 258, 258, 98, 731, 731,
703 731, 96, 163, 731, 163, 163, 163, 731, 731, 731,
704 258, 731, 731, 258, 258, 96, 258, 96, 98, 731,
705 163, 355, 363, 163, 163, 345, 163, 346, 346, 346,
706 347, 96, 98, 349, 98, 350, 350, 350, 351, 96,
707 261, 261, 261, 345, 261, 731, 346, 346, 98, 346,
708 96, 349, 96, 347, 350, 350, 98, 350, 367, 261,
710 261, 351, 261, 356, 96, 96, 96, 98, 362, 98,
711 261, 96, 96, 96, 96, 96, 96, 96, 96, 357,
712 96, 98, 98, 98, 96, 96, 731, 360, 98, 98,
713 98, 98, 98, 98, 98, 98, 96, 98, 96, 731,
714 731, 98, 98, 365, 96, 731, 731, 369, 364, 731,
715 366, 368, 731, 98, 96, 98, 375, 373, 96, 96,
716 731, 98, 370, 372, 374, 731, 371, 377, 96, 376,
717 731, 98, 96, 380, 96, 98, 98, 378, 731, 381,
718 382, 96, 379, 96, 96, 98, 96, 383, 96, 98,
719 96, 98, 96, 96, 96, 384, 96, 96, 98, 96,
721 98, 98, 96, 98, 96, 98, 96, 98, 731, 98,
722 98, 98, 386, 98, 98, 96, 98, 385, 397, 98,
723 731, 98, 96, 98, 96, 390, 387, 96, 96, 96,
724 96, 731, 98, 389, 388, 731, 96, 395, 731, 98,
725 96, 98, 391, 96, 98, 98, 98, 98, 393, 392,
726 394, 96, 396, 98, 398, 400, 96, 98, 96, 399,
727 98, 96, 96, 96, 96, 96, 401, 731, 98, 731,
728 731, 731, 402, 98, 96, 98, 96, 731, 98, 98,
729 98, 98, 98, 96, 403, 405, 406, 408, 410, 404,
730 731, 98, 96, 98, 407, 96, 411, 96, 96, 96,
732 98, 96, 731, 413, 731, 409, 415, 416, 731, 98,
733 96, 731, 98, 414, 98, 98, 98, 417, 98, 412,
734 344, 344, 344, 344, 344, 344, 344, 98, 346, 418,
735 346, 346, 346, 731, 96, 731, 731, 731, 419, 731,
736 731, 731, 420, 423, 731, 422, 346, 731, 731, 346,
737 346, 98, 346, 96, 96, 421, 344, 344, 344, 344,
738 344, 344, 344, 353, 353, 353, 353, 353, 353, 353,
739 98, 98, 731, 255, 731, 255, 255, 255, 424, 731,
740 424, 731, 433, 425, 425, 425, 425, 425, 425, 425,
741 731, 255, 435, 96, 255, 255, 426, 255, 427, 427,
743 427, 428, 96, 731, 350, 432, 350, 350, 350, 731,
744 98, 731, 731, 96, 426, 731, 731, 427, 427, 98,
745 427, 731, 350, 731, 428, 350, 350, 429, 350, 429,
746 98, 731, 430, 430, 430, 430, 430, 430, 430, 353,
747 353, 353, 353, 353, 353, 353, 96, 731, 434, 436,
748 96, 96, 96, 96, 96, 731, 431, 731, 431, 431,
749 431, 731, 96, 98, 437, 96, 731, 98, 98, 98,
750 98, 98, 96, 96, 431, 96, 96, 431, 431, 98,
751 431, 96, 98, 443, 731, 731, 96, 444, 438, 98,
752 98, 96, 98, 98, 96, 731, 441, 96, 98, 96,
754 731, 442, 440, 98, 96, 96, 96, 439, 98, 448,
755 96, 98, 445, 450, 98, 446, 98, 447, 731, 731,
756 449, 98, 98, 98, 96, 96, 96, 98, 731, 96,
757 96, 453, 96, 731, 451, 454, 455, 96, 96, 452,
758 731, 98, 98, 98, 731, 457, 98, 98, 96, 98,
759 459, 96, 96, 731, 98, 98, 731, 456, 731, 731,
760 96, 458, 96, 96, 731, 98, 96, 96, 98, 98,
761 462, 731, 96, 463, 731, 460, 461, 98, 96, 98,
762 98, 466, 96, 98, 98, 464, 96, 465, 468, 98,
763 96, 467, 96, 731, 96, 98, 96, 96, 96, 98,
765 477, 96, 96, 98, 96, 470, 471, 98, 96, 98,
766 469, 98, 96, 98, 98, 98, 96, 731, 98, 98,
767 96, 98, 472, 731, 475, 98, 731, 731, 96, 98,
768 473, 731, 96, 98, 474, 731, 731, 98, 96, 96,
769 478, 480, 481, 482, 476, 98, 731, 479, 484, 98,
770 731, 96, 486, 483, 731, 98, 98, 96, 96, 96,
771 96, 731, 485, 487, 731, 731, 731, 489, 98, 731,
772 96, 488, 490, 731, 98, 98, 98, 98, 96, 492,
773 425, 425, 425, 425, 425, 425, 425, 98, 731, 731,
774 427, 491, 427, 427, 427, 98, 96, 494, 500, 493,
776 425, 425, 425, 425, 425, 425, 425, 731, 427, 96,
777 731, 427, 427, 98, 427, 731, 731, 346, 502, 346,
778 346, 346, 495, 498, 495, 731, 98, 496, 496, 496,
779 496, 496, 496, 496, 731, 346, 504, 731, 346, 346,
780 497, 346, 430, 430, 430, 430, 430, 430, 430, 430,
781 430, 430, 430, 430, 430, 430, 431, 731, 431, 431,
782 431, 731, 499, 731, 96, 96, 350, 731, 350, 350,
783 350, 731, 96, 731, 431, 96, 96, 431, 431, 96,
784 431, 98, 98, 96, 350, 96, 96, 350, 350, 98,
785 350, 96, 98, 98, 96, 508, 98, 96, 96, 509,
787 98, 96, 98, 98, 96, 96, 96, 96, 98, 96,
788 96, 98, 501, 731, 98, 98, 503, 731, 98, 96,
789 511, 98, 98, 98, 98, 731, 98, 98, 506, 505,
790 96, 512, 507, 731, 513, 731, 98, 731, 96, 731,
791 731, 731, 510, 731, 96, 731, 96, 98, 517, 96,
792 520, 514, 521, 96, 519, 98, 515, 518, 516, 96,
793 522, 98, 523, 98, 731, 731, 98, 525, 524, 96,
794 98, 96, 96, 526, 96, 96, 98, 96, 96, 96,
795 96, 527, 528, 96, 96, 731, 98, 96, 98, 98,
796 731, 98, 98, 96, 98, 98, 98, 98, 96, 96,
798 98, 98, 529, 96, 98, 96, 731, 530, 96, 96,
799 98, 731, 96, 531, 96, 98, 98, 96, 533, 96,
800 98, 731, 98, 534, 96, 98, 98, 96, 536, 98,
801 532, 98, 96, 96, 98, 537, 98, 96, 535, 96,
802 96, 98, 731, 96, 98, 96, 96, 731, 96, 98,
803 98, 96, 96, 96, 98, 731, 98, 98, 96, 538,
804 98, 96, 98, 98, 541, 98, 96, 539, 98, 98,
805 98, 540, 543, 542, 556, 98, 544, 731, 98, 731,
806 547, 731, 731, 98, 545, 549, 96, 551, 546, 496,
807 496, 496, 496, 496, 496, 496, 496, 496, 496, 496,
809 496, 496, 496, 98, 96, 548, 550, 96, 553, 552,
810 96, 96, 96, 427, 731, 427, 427, 427, 731, 96,
811 731, 98, 96, 554, 98, 96, 96, 98, 98, 98,
812 555, 427, 96, 96, 427, 427, 98, 427, 731, 98,
813 731, 96, 98, 98, 96, 731, 96, 96, 731, 98,
814 98, 96, 96, 558, 96, 557, 731, 561, 98, 96,
815 731, 98, 559, 98, 98, 560, 731, 562, 98, 98,
816 96, 98, 96, 563, 96, 731, 98, 565, 731, 731,
817 96, 566, 96, 564, 96, 567, 731, 98, 96, 98,
818 96, 98, 568, 96, 96, 571, 572, 98, 96, 98,
820 569, 98, 96, 570, 96, 98, 96, 98, 96, 731,
821 98, 98, 96, 731, 96, 98, 96, 96, 96, 98,
822 96, 98, 96, 98, 575, 98, 576, 731, 96, 98,
823 573, 98, 731, 98, 98, 98, 574, 98, 731, 98,
824 96, 96, 731, 96, 580, 98, 731, 96, 96, 578,
825 96, 731, 579, 577, 96, 583, 731, 98, 98, 584,
826 98, 581, 585, 582, 98, 98, 96, 98, 586, 96,
827 731, 98, 731, 588, 96, 96, 96, 731, 587, 731,
828 96, 96, 731, 98, 96, 96, 98, 591, 731, 593,
829 96, 98, 98, 98, 590, 592, 594, 98, 98, 589,
831 96, 98, 98, 731, 96, 595, 96, 98, 96, 731,
832 731, 96, 96, 96, 96, 96, 96, 98, 731, 96,
833 596, 98, 96, 98, 96, 98, 599, 597, 98, 98,
834 98, 98, 98, 98, 598, 601, 98, 96, 731, 98,
835 96, 98, 731, 600, 731, 604, 96, 602, 96, 96,
836 606, 96, 96, 731, 98, 611, 96, 98, 605, 610,
837 96, 609, 603, 98, 96, 98, 98, 731, 98, 98,
838 607, 608, 96, 98, 96, 96, 96, 98, 731, 731,
839 731, 98, 731, 96, 612, 96, 96, 96, 96, 98,
840 96, 98, 98, 98, 731, 614, 615, 613, 620, 617,
842 98, 96, 98, 98, 98, 98, 96, 98, 731, 96,
843 731, 619, 96, 731, 616, 622, 731, 96, 98, 96,
844 96, 96, 618, 98, 624, 625, 98, 626, 621, 98,
845 629, 96, 96, 623, 98, 96, 98, 98, 98, 731,
846 627, 630, 96, 96, 96, 96, 628, 96, 98, 98,
847 96, 96, 98, 632, 631, 731, 633, 96, 731, 98,
848 98, 98, 98, 96, 98, 644, 96, 98, 98, 96,
849 96, 731, 634, 635, 98, 636, 96, 637, 731, 96,
850 98, 96, 96, 98, 96, 96, 98, 98, 639, 640,
851 638, 96, 731, 98, 731, 641, 98, 96, 98, 98,
853 731, 98, 98, 731, 731, 96, 96, 96, 98, 646,
854 96, 642, 96, 96, 98, 96, 96, 643, 647, 645,
855 648, 649, 98, 98, 98, 96, 731, 98, 96, 98,
856 98, 731, 98, 98, 731, 731, 96, 96, 96, 96,
857 731, 96, 98, 651, 96, 98, 96, 96, 652, 96,
858 650, 654, 657, 98, 98, 98, 98, 659, 98, 96,
859 731, 98, 96, 98, 98, 655, 98, 660, 653, 656,
860 96, 96, 96, 96, 96, 96, 98, 662, 658, 98,
861 665, 661, 96, 666, 96, 667, 96, 98, 98, 98,
862 98, 98, 98, 96, 96, 96, 96, 96, 668, 98,
864 731, 98, 669, 98, 731, 96, 731, 96, 731, 731,
865 98, 98, 98, 98, 98, 672, 731, 670, 96, 96,
866 675, 677, 98, 680, 98, 678, 671, 96, 731, 673,
867 96, 674, 96, 676, 681, 98, 98, 731, 679, 96,
868 96, 683, 96, 96, 98, 684, 96, 98, 731, 98,
869 96, 96, 96, 96, 682, 96, 98, 98, 96, 98,
870 98, 96, 96, 98, 96, 685, 731, 98, 98, 98,
871 98, 686, 98, 96, 687, 98, 96, 731, 98, 98,
872 96, 98, 731, 690, 688, 96, 96, 731, 731, 692,
873 98, 731, 731, 98, 691, 96, 96, 98, 96, 689,
875 731, 96, 98, 98, 696, 694, 96, 693, 698, 700,
876 96, 96, 98, 98, 731, 98, 695, 697, 98, 96,
877 96, 96, 96, 98, 96, 731, 96, 98, 98, 699,
878 731, 701, 731, 96, 96, 731, 98, 98, 98, 98,
879 96, 98, 702, 98, 96, 96, 731, 706, 96, 703,
880 98, 98, 704, 96, 96, 96, 705, 98, 731, 709,
881 96, 98, 98, 707, 711, 98, 708, 96, 731, 731,
882 98, 98, 98, 96, 96, 710, 712, 98, 731, 96,
883 714, 96, 713, 96, 98, 718, 717, 715, 96, 731,
884 98, 98, 96, 96, 731, 721, 98, 716, 98, 96,
886 98, 96, 96, 719, 731, 98, 720, 731, 731, 98,
887 98, 722, 731, 731, 731, 731, 98, 731, 98, 98,
888 731, 731, 731, 731, 731, 725, 731, 731, 731, 731,
889 731, 727, 723, 731, 731, 724, 731, 731, 729, 731,
890 730, 726, 731, 731, 731, 731, 731, 731, 731, 731,
891 731, 731, 731, 731, 731, 728, 61, 61, 61, 61,
892 61, 61, 61, 61, 61, 68, 68, 731, 68, 68,
893 68, 68, 68, 68, 97, 731, 731, 731, 97, 97,
894 97, 97, 168, 168, 168, 169, 169, 169, 174, 174,
895 174, 174, 174, 174, 174, 174, 174, 259, 259, 348,
897 348, 731, 348, 664, 731, 664, 664, 664, 664, 3,
898 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
899 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
900 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
901 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
902 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
903 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
904 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
905 731, 731, 731, 731, 731, 731, 731, 731, 731
908 static yyconst short int yy_chk[2890] =
910 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
911 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
912 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
913 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
914 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
915 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
916 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
917 1, 1, 1, 1, 1, 1, 1, 1, 1, 10,
918 13, 13, 14, 19, 664, 22, 21, 22, 22, 22,
919 22, 22, 22, 22, 30, 30, 23, 644, 19, 21,
921 21, 23, 14, 176, 32, 25, 25, 25, 25, 25,
922 25, 25, 23, 26, 28, 101, 33, 26, 61, 10,
923 24, 32, 24, 24, 24, 24, 24, 24, 24, 25,
924 39, 68, 28, 33, 28, 28, 40, 41, 24, 57,
925 98, 24, 24, 24, 34, 24, 24, 39, 34, 34,
926 44, 38, 96, 40, 41, 47, 24, 25, 61, 95,
927 24, 24, 42, 24, 43, 34, 68, 44, 38, 49,
928 33, 24, 47, 69, 24, 38, 38, 41, 91, 42,
929 38, 43, 69, 39, 41, 57, 49, 39, 41, 39,
930 38, 41, 40, 45, 48, 38, 85, 46, 44, 38,
932 76, 44, 42, 42, 44, 52, 42, 50, 38, 47,
933 45, 48, 51, 42, 46, 43, 42, 43, 55, 53,
934 63, 100, 52, 97, 50, 49, 43, 54, 49, 51,
935 37, 107, 29, 18, 48, 55, 53, 45, 48, 15,
936 97, 9, 46, 3, 54, 110, 99, 45, 107, 46,
937 46, 50, 52, 0, 46, 0, 51, 0, 55, 51,
938 51, 100, 110, 99, 0, 55, 0, 53, 52, 0,
939 51, 51, 53, 51, 113, 54, 0, 131, 109, 115,
940 103, 54, 77, 77, 77, 77, 77, 77, 77, 0,
941 105, 113, 0, 107, 131, 109, 115, 103, 77, 77,
943 99, 77, 77, 77, 83, 0, 83, 105, 110, 83,
944 83, 83, 83, 83, 83, 83, 77, 77, 113, 115,
945 77, 77, 104, 77, 81, 81, 81, 81, 81, 81,
946 81, 84, 84, 84, 103, 84, 109, 108, 112, 104,
947 81, 81, 105, 81, 81, 81, 174, 111, 0, 0,
948 84, 84, 0, 84, 108, 112, 0, 0, 81, 81,
949 116, 84, 81, 81, 111, 81, 82, 0, 82, 82,
950 82, 82, 82, 82, 82, 114, 104, 116, 117, 0,
951 118, 119, 0, 0, 82, 0, 174, 82, 82, 82,
952 108, 82, 114, 121, 122, 117, 112, 118, 119, 111,
954 116, 0, 82, 120, 124, 136, 82, 82, 123, 82,
955 121, 122, 0, 125, 0, 0, 126, 82, 106, 127,
956 120, 124, 136, 128, 129, 123, 119, 0, 130, 119,
957 125, 117, 114, 126, 132, 106, 127, 0, 118, 119,
958 128, 129, 0, 0, 121, 130, 0, 134, 120, 0,
959 133, 132, 135, 122, 120, 0, 0, 136, 106, 106,
960 106, 106, 106, 124, 134, 123, 106, 133, 137, 135,
961 138, 125, 126, 127, 106, 106, 106, 140, 106, 128,
962 139, 141, 129, 142, 0, 137, 130, 138, 0, 132,
963 143, 0, 133, 146, 140, 147, 148, 139, 141, 145,
965 142, 133, 144, 153, 134, 135, 0, 143, 133, 149,
966 146, 150, 147, 148, 151, 152, 145, 0, 138, 144,
967 153, 139, 0, 140, 138, 0, 149, 154, 150, 137,
968 140, 151, 152, 169, 140, 140, 143, 142, 173, 141,
969 145, 146, 144, 147, 154, 144, 0, 181, 177, 0,
970 169, 148, 179, 0, 143, 173, 144, 0, 144, 150,
971 0, 153, 149, 152, 181, 177, 152, 185, 150, 179,
972 151, 159, 0, 159, 178, 154, 159, 159, 159, 159,
973 159, 159, 159, 160, 185, 160, 160, 160, 162, 173,
974 162, 178, 179, 162, 162, 162, 162, 162, 162, 162,
976 0, 160, 177, 0, 160, 160, 181, 160, 161, 161,
977 161, 161, 161, 161, 161, 163, 0, 163, 163, 163,
978 185, 182, 0, 191, 161, 161, 178, 161, 161, 161,
979 0, 0, 0, 163, 0, 0, 163, 163, 182, 163,
980 191, 0, 161, 161, 0, 0, 161, 161, 180, 161,
981 164, 164, 164, 0, 164, 165, 165, 165, 165, 165,
982 165, 165, 184, 0, 182, 180, 0, 168, 0, 164,
983 164, 0, 164, 0, 191, 182, 189, 183, 0, 184,
984 164, 166, 166, 166, 166, 166, 166, 166, 168, 168,
985 168, 168, 168, 189, 183, 186, 187, 0, 166, 180,
987 166, 166, 166, 0, 0, 180, 180, 168, 168, 188,
988 168, 190, 186, 187, 168, 192, 166, 194, 168, 166,
989 166, 183, 166, 193, 184, 195, 188, 0, 190, 197,
990 189, 196, 192, 198, 194, 199, 200, 0, 201, 186,
991 193, 0, 195, 202, 187, 0, 197, 203, 196, 208,
992 198, 206, 199, 200, 187, 201, 188, 204, 192, 205,
993 202, 0, 193, 210, 203, 207, 208, 209, 206, 190,
994 211, 196, 188, 197, 204, 0, 205, 0, 201, 195,
995 210, 212, 207, 0, 209, 214, 213, 211, 215, 198,
996 208, 202, 199, 200, 200, 206, 0, 204, 212, 205,
998 203, 216, 214, 213, 217, 215, 218, 205, 0, 207,
999 221, 209, 219, 207, 211, 210, 220, 222, 216, 225,
1000 223, 217, 224, 218, 227, 212, 213, 221, 226, 219,
1001 228, 220, 224, 220, 222, 230, 225, 223, 0, 224,
1002 229, 227, 231, 0, 232, 226, 0, 228, 233, 234,
1003 235, 236, 230, 237, 221, 216, 238, 229, 217, 231,
1004 219, 232, 218, 222, 223, 233, 234, 235, 236, 239,
1005 237, 240, 241, 238, 242, 227, 0, 0, 228, 225,
1006 243, 244, 245, 226, 229, 0, 239, 0, 240, 241,
1007 246, 242, 0, 230, 235, 237, 0, 243, 244, 245,
1009 247, 231, 234, 248, 233, 249, 250, 246, 251, 236,
1010 263, 238, 271, 240, 0, 286, 288, 247, 269, 0,
1011 248, 0, 249, 250, 243, 251, 268, 263, 239, 271,
1012 241, 242, 286, 288, 0, 269, 245, 0, 246, 244,
1013 0, 0, 0, 268, 0, 249, 248, 0, 250, 252,
1014 252, 252, 252, 252, 252, 252, 271, 264, 247, 251,
1015 253, 253, 253, 253, 253, 253, 253, 256, 256, 256,
1016 256, 256, 256, 256, 264, 0, 269, 253, 268, 253,
1017 253, 253, 254, 0, 254, 0, 0, 254, 254, 254,
1018 254, 254, 254, 254, 0, 253, 0, 0, 253, 253,
1020 255, 253, 255, 255, 255, 262, 265, 262, 264, 0,
1021 262, 262, 262, 262, 262, 262, 262, 0, 255, 0,
1022 273, 255, 255, 265, 255, 257, 257, 257, 257, 257,
1023 257, 257, 258, 0, 258, 258, 258, 273, 0, 0,
1024 0, 276, 257, 0, 257, 257, 257, 0, 0, 0,
1025 258, 0, 0, 258, 258, 272, 258, 266, 276, 0,
1026 257, 265, 273, 257, 257, 259, 257, 259, 259, 259,
1027 259, 267, 272, 260, 266, 260, 260, 260, 260, 270,
1028 261, 261, 261, 259, 261, 0, 259, 259, 267, 259,
1029 274, 260, 275, 259, 260, 260, 270, 260, 276, 261,
1031 261, 260, 261, 266, 278, 277, 279, 274, 272, 275,
1032 261, 280, 281, 282, 284, 285, 283, 287, 289, 267,
1033 290, 278, 277, 279, 291, 292, 0, 270, 280, 281,
1034 282, 284, 285, 283, 287, 289, 294, 290, 293, 0,
1035 0, 291, 292, 275, 295, 0, 0, 278, 274, 0,
1036 275, 277, 0, 294, 296, 293, 284, 282, 297, 298,
1037 0, 295, 279, 281, 283, 0, 280, 287, 299, 285,
1038 0, 296, 300, 292, 302, 297, 298, 290, 0, 293,
1039 294, 301, 291, 303, 304, 299, 305, 295, 306, 300,
1040 307, 302, 308, 310, 309, 296, 313, 314, 301, 311,
1042 303, 304, 315, 305, 312, 306, 316, 307, 0, 308,
1043 310, 309, 298, 313, 314, 317, 311, 297, 312, 315,
1044 0, 312, 318, 316, 319, 302, 299, 320, 321, 322,
1045 323, 0, 317, 301, 300, 0, 324, 310, 0, 318,
1046 327, 319, 305, 325, 320, 321, 322, 323, 307, 306,
1047 309, 326, 311, 324, 313, 317, 328, 327, 329, 315,
1048 325, 330, 331, 335, 332, 333, 318, 0, 326, 0,
1049 0, 0, 319, 328, 334, 329, 336, 0, 330, 331,
1050 335, 332, 333, 338, 320, 322, 323, 325, 327, 321,
1051 0, 334, 337, 336, 324, 339, 328, 340, 341, 342,
1053 338, 354, 0, 330, 0, 326, 332, 333, 0, 337,
1054 377, 0, 339, 331, 340, 341, 342, 334, 354, 329,
1055 343, 343, 343, 343, 343, 343, 343, 377, 346, 336,
1056 346, 346, 346, 0, 356, 0, 0, 0, 337, 0,
1057 0, 0, 338, 342, 0, 341, 346, 0, 0, 346,
1058 346, 356, 346, 358, 355, 340, 344, 344, 344, 344,
1059 344, 344, 344, 352, 352, 352, 352, 352, 352, 352,
1060 358, 355, 0, 344, 0, 344, 344, 344, 347, 0,
1061 347, 0, 356, 347, 347, 347, 347, 347, 347, 347,
1062 0, 344, 358, 359, 344, 344, 348, 344, 348, 348,
1064 348, 348, 357, 0, 350, 355, 350, 350, 350, 0,
1065 359, 0, 0, 360, 348, 0, 0, 348, 348, 357,
1066 348, 0, 350, 0, 348, 350, 350, 351, 350, 351,
1067 360, 0, 351, 351, 351, 351, 351, 351, 351, 353,
1068 353, 353, 353, 353, 353, 353, 361, 0, 357, 359,
1069 362, 363, 364, 365, 367, 0, 353, 0, 353, 353,
1070 353, 0, 368, 361, 360, 370, 0, 362, 363, 364,
1071 365, 367, 366, 372, 353, 369, 371, 353, 353, 368,
1072 353, 373, 370, 366, 0, 0, 374, 366, 361, 366,
1073 372, 375, 369, 371, 376, 0, 364, 378, 373, 379,
1075 0, 365, 363, 374, 380, 381, 383, 362, 375, 370,
1076 382, 376, 367, 372, 378, 368, 379, 369, 0, 0,
1077 371, 380, 381, 383, 384, 385, 386, 382, 0, 387,
1078 388, 375, 389, 0, 373, 376, 378, 390, 391, 374,
1079 0, 384, 385, 386, 0, 381, 387, 388, 392, 389,
1080 383, 393, 394, 0, 390, 391, 0, 380, 0, 0,
1081 395, 382, 396, 397, 0, 392, 398, 399, 393, 394,
1082 386, 0, 400, 387, 0, 384, 385, 395, 401, 396,
1083 397, 390, 402, 398, 399, 388, 403, 389, 392, 400,
1084 404, 391, 405, 0, 406, 401, 407, 409, 408, 402,
1086 404, 410, 411, 403, 413, 395, 396, 404, 412, 405,
1087 394, 406, 414, 407, 409, 408, 415, 0, 410, 411,
1088 416, 413, 399, 0, 402, 412, 0, 0, 417, 414,
1089 400, 0, 418, 415, 401, 0, 0, 416, 419, 420,
1090 405, 408, 409, 410, 403, 417, 0, 406, 412, 418,
1091 0, 421, 414, 411, 0, 419, 420, 422, 423, 435,
1092 437, 0, 413, 415, 0, 0, 0, 417, 421, 0,
1093 433, 416, 417, 0, 422, 423, 435, 437, 439, 420,
1094 424, 424, 424, 424, 424, 424, 424, 433, 0, 0,
1095 427, 419, 427, 427, 427, 439, 432, 422, 435, 421,
1097 425, 425, 425, 425, 425, 425, 425, 0, 427, 434,
1098 0, 427, 427, 432, 427, 0, 0, 425, 437, 425,
1099 425, 425, 428, 433, 428, 0, 434, 428, 428, 428,
1100 428, 428, 428, 428, 0, 425, 439, 0, 425, 425,
1101 432, 425, 429, 429, 429, 429, 429, 429, 429, 430,
1102 430, 430, 430, 430, 430, 430, 431, 0, 431, 431,
1103 431, 0, 434, 0, 436, 438, 430, 0, 430, 430,
1104 430, 0, 440, 0, 431, 441, 446, 431, 431, 442,
1105 431, 436, 438, 443, 430, 444, 445, 430, 430, 440,
1106 430, 447, 441, 446, 448, 443, 442, 449, 450, 444,
1108 443, 451, 444, 445, 452, 454, 453, 455, 447, 456,
1109 457, 448, 436, 0, 449, 450, 438, 0, 451, 459,
1110 446, 452, 454, 453, 455, 0, 456, 457, 441, 440,
1111 458, 447, 442, 0, 448, 0, 459, 0, 460, 0,
1112 0, 0, 445, 0, 461, 0, 462, 458, 452, 463,
1113 455, 449, 455, 464, 454, 460, 450, 453, 451, 465,
1114 455, 461, 455, 462, 0, 0, 463, 457, 456, 466,
1115 464, 467, 468, 458, 469, 470, 465, 471, 472, 473,
1116 474, 459, 460, 475, 476, 0, 466, 477, 467, 468,
1117 0, 469, 470, 478, 471, 472, 473, 474, 479, 480,
1119 475, 476, 461, 481, 477, 482, 0, 464, 483, 484,
1120 478, 0, 485, 465, 486, 479, 480, 487, 472, 489,
1121 481, 0, 482, 473, 488, 483, 484, 490, 476, 485,
1122 468, 486, 491, 492, 487, 478, 489, 493, 474, 494,
1123 500, 488, 0, 497, 490, 498, 501, 0, 503, 491,
1124 492, 504, 499, 505, 493, 0, 494, 500, 508, 483,
1125 497, 502, 498, 501, 488, 503, 506, 484, 504, 499,
1126 505, 486, 490, 489, 508, 508, 491, 0, 502, 0,
1127 494, 0, 0, 506, 492, 498, 507, 501, 493, 495,
1128 495, 495, 495, 495, 495, 495, 496, 496, 496, 496,
1130 496, 496, 496, 507, 509, 497, 499, 510, 505, 502,
1131 511, 512, 514, 496, 0, 496, 496, 496, 0, 515,
1132 0, 509, 513, 506, 510, 516, 517, 511, 512, 514,
1133 507, 496, 518, 519, 496, 496, 515, 496, 0, 513,
1134 0, 520, 516, 517, 521, 0, 522, 523, 0, 518,
1135 519, 524, 525, 511, 526, 510, 0, 514, 520, 527,
1136 0, 521, 512, 522, 523, 513, 0, 515, 524, 525,
1137 528, 526, 529, 516, 530, 0, 527, 519, 0, 0,
1138 531, 520, 532, 518, 533, 520, 0, 528, 534, 529,
1139 535, 530, 521, 536, 537, 524, 525, 531, 538, 532,
1141 522, 533, 539, 523, 540, 534, 541, 535, 543, 0,
1142 536, 537, 545, 0, 542, 538, 544, 547, 546, 539,
1143 548, 540, 549, 541, 532, 543, 533, 0, 550, 545,
1144 530, 542, 0, 544, 547, 546, 531, 548, 0, 549,
1145 551, 552, 0, 553, 539, 550, 0, 554, 556, 536,
1146 555, 0, 537, 535, 557, 542, 0, 551, 552, 544,
1147 553, 540, 546, 541, 554, 556, 558, 555, 547, 559,
1148 0, 557, 0, 550, 560, 561, 562, 0, 549, 0,
1149 563, 564, 0, 558, 565, 566, 559, 553, 0, 555,
1150 567, 560, 561, 562, 552, 554, 557, 563, 564, 551,
1152 568, 565, 566, 0, 570, 558, 569, 567, 571, 0,
1153 0, 572, 573, 574, 575, 576, 577, 568, 0, 578,
1154 559, 570, 579, 569, 581, 571, 565, 562, 572, 573,
1155 574, 575, 576, 577, 563, 567, 578, 580, 0, 579,
1156 582, 581, 0, 566, 0, 569, 583, 567, 584, 585,
1157 572, 587, 586, 0, 580, 577, 591, 582, 570, 576,
1158 588, 575, 568, 583, 589, 584, 585, 0, 587, 586,
1159 573, 574, 590, 591, 592, 594, 593, 588, 0, 0,
1160 0, 589, 0, 597, 580, 595, 596, 598, 599, 590,
1161 600, 592, 594, 593, 0, 583, 586, 582, 591, 588,
1163 597, 601, 595, 596, 598, 599, 602, 600, 0, 603,
1164 0, 590, 604, 0, 587, 593, 0, 605, 601, 606,
1165 607, 608, 589, 602, 595, 596, 603, 597, 592, 604,
1166 600, 609, 610, 594, 605, 611, 606, 607, 608, 0,
1167 598, 601, 612, 613, 614, 615, 599, 616, 609, 610,
1168 617, 618, 611, 603, 602, 0, 604, 619, 0, 612,
1169 613, 614, 615, 620, 616, 620, 621, 617, 618, 622,
1170 623, 0, 605, 606, 619, 609, 624, 611, 0, 625,
1171 620, 626, 627, 621, 628, 629, 622, 623, 614, 617,
1172 612, 630, 0, 624, 0, 618, 625, 631, 626, 627,
1174 0, 628, 629, 0, 0, 632, 633, 634, 630, 623,
1175 635, 619, 637, 636, 631, 639, 640, 619, 625, 621,
1176 626, 627, 632, 633, 634, 638, 0, 635, 641, 637,
1177 636, 0, 639, 640, 0, 0, 642, 643, 647, 649,
1178 0, 645, 638, 631, 646, 641, 648, 650, 632, 651,
1179 630, 634, 637, 642, 643, 647, 649, 639, 645, 652,
1180 0, 646, 653, 648, 650, 635, 651, 641, 633, 636,
1181 654, 655, 656, 657, 658, 659, 652, 643, 638, 653,
1182 645, 642, 660, 646, 662, 648, 666, 654, 655, 656,
1183 657, 658, 659, 661, 667, 665, 668, 669, 650, 660,
1185 0, 662, 651, 666, 0, 670, 0, 671, 0, 0,
1186 661, 667, 665, 668, 669, 655, 0, 653, 672, 673,
1187 658, 660, 670, 662, 671, 660, 654, 675, 0, 656,
1188 674, 657, 676, 659, 665, 672, 673, 0, 661, 677,
1189 678, 669, 679, 680, 675, 670, 681, 674, 0, 676,
1190 682, 683, 684, 685, 668, 686, 677, 678, 687, 679,
1191 680, 691, 688, 681, 689, 671, 0, 682, 683, 684,
1192 685, 672, 686, 690, 674, 687, 692, 0, 691, 688,
1193 693, 689, 0, 680, 678, 694, 695, 0, 0, 682,
1194 690, 0, 0, 692, 680, 696, 697, 693, 698, 679,
1196 0, 699, 694, 695, 687, 684, 700, 683, 689, 691,
1197 701, 702, 696, 697, 0, 698, 685, 688, 699, 703,
1198 704, 706, 705, 700, 707, 0, 708, 701, 702, 690,
1199 0, 692, 0, 709, 710, 0, 703, 704, 706, 705,
1200 712, 707, 694, 708, 711, 713, 0, 699, 714, 696,
1201 709, 710, 697, 715, 716, 717, 698, 712, 0, 702,
1202 718, 711, 713, 700, 704, 714, 701, 719, 0, 0,
1203 715, 716, 717, 720, 721, 703, 705, 718, 0, 722,
1204 708, 723, 707, 724, 719, 712, 711, 709, 725, 0,
1205 720, 721, 726, 728, 0, 717, 722, 710, 723, 727,
1207 724, 729, 730, 714, 0, 725, 715, 0, 0, 726,
1208 728, 719, 0, 0, 0, 0, 727, 0, 729, 730,
1209 0, 0, 0, 0, 0, 723, 0, 0, 0, 0,
1210 0, 725, 721, 0, 0, 722, 0, 0, 727, 0,
1211 729, 724, 0, 0, 0, 0, 0, 0, 0, 0,
1212 0, 0, 0, 0, 0, 726, 732, 732, 732, 732,
1213 732, 732, 732, 732, 732, 733, 733, 0, 733, 733,
1214 733, 733, 733, 733, 734, 0, 0, 0, 734, 734,
1215 734, 734, 735, 735, 735, 736, 736, 736, 737, 737,
1216 737, 737, 737, 737, 737, 737, 737, 738, 738, 739,
1218 739, 0, 739, 740, 0, 740, 740, 740, 740, 731,
1219 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
1220 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
1221 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
1222 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
1223 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
1224 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
1225 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
1226 731, 731, 731, 731, 731, 731, 731, 731, 731
1229 static yy_state_type yy_last_accepting_state;
1230 static char *yy_last_accepting_cpos;
1232 /* The intent behind this definition is that it'll catch
1233 * any uses of REJECT which flex missed.
1235 #define REJECT reject_used_but_not_detected
1236 #define yymore() yymore_used_but_not_detected
1237 #define YY_MORE_ADJ 0
1238 #define YY_RESTORE_YY_MORE_OFFSET
1242 #define YY_NO_UNPUT 1
1245 #define YYLTYPE Location
1246 #define YY_NEVER_INTERACTIVE 1 // Avoid calling isatty on eC File object
1248 #include "grammar.h"
1251 public void SetEchoOn(bool b) { echoOn = b; }
1253 extern YYLTYPE type_yylloc;
1254 extern YYLTYPE expression_yylloc;
1256 extern File fileInput;
1262 yylloc.end.charPos += yyleng;
1263 yylloc.end.pos += yyleng;
1264 type_yylloc.end.charPos += yyleng;
1265 type_yylloc.end.pos += yyleng;
1266 expression_yylloc.end.charPos += yyleng;
1267 expression_yylloc.end.pos += yyleng;
1270 #define YY_USER_ACTION \
1274 yylloc.end.charPos += yyleng;
1275 yylloc.end.pos += yyleng;
1278 #define YY_INPUT(buf,result,max_size) \
1279 result = fileInput.Read(buf, 1, max_size) \
1281 YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
1282 File fileStack[MAX_INCLUDE_DEPTH];
1283 char sourceFileStack[MAX_INCLUDE_DEPTH][MAX_LOCATION];
1284 public void SetSomeSourceFileStack(const char * fileName, int index) { strcpy(sourceFileStack[index], fileName); }
1285 YYLTYPE locStack[MAX_INCLUDE_DEPTH];
1286 AccessMode declModeStack[MAX_INCLUDE_DEPTH];
1287 int include_stack_ptr = 0;
1292 #line 1293 "lexer.ec"
1294 /* Macros after this point can all be overridden by user definitions in
1298 #ifndef YY_SKIP_YYWRAP
1300 extern "C" int yywrap YY_PROTO(( void ));
1302 extern int yywrap YY_PROTO(( void ));
1307 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1311 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1314 #ifdef YY_NEED_STRLEN
1315 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1320 static int yyinput YY_PROTO(( void ));
1322 static int input YY_PROTO(( void ));
1327 static int yy_start_stack_ptr = 0;
1328 static int yy_start_stack_depth = 0;
1329 static int *yy_start_stack = 0;
1330 #ifndef YY_NO_PUSH_STATE
1331 static void yy_push_state YY_PROTO(( int new_state ));
1333 #ifndef YY_NO_POP_STATE
1334 static void yy_pop_state YY_PROTO(( void ));
1336 #ifndef YY_NO_TOP_STATE
1337 static int yy_top_state YY_PROTO(( void ));
1341 #define YY_NO_PUSH_STATE 1
1342 #define YY_NO_POP_STATE 1
1343 #define YY_NO_TOP_STATE 1
1346 #ifdef YY_MALLOC_DECL
1354 /* Just try to get by without declaring the routines. This will fail
1355 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1356 * or sizeof(void*) != sizeof(int).
1361 /* Amount of stuff to slurp up with each read. */
1362 #ifndef YY_READ_BUF_SIZE
1363 #define YY_READ_BUF_SIZE 8192
1366 /* Copy whatever the last rule matched to the standard output. */
1369 /* This used to be an fputs(), but since the string might contain NUL's,
1370 * we now use fwrite().
1372 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1375 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1376 * is returned in "result".
1379 #define YY_INPUT(buf,result,max_size) \
1380 if ( yy_current_buffer->yy_is_interactive ) \
1383 for ( n = 0; n < max_size && \
1384 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1385 buf[n] = (char) c; \
1387 buf[n++] = (char) c; \
1388 if ( c == EOF && ferror( yyin ) ) \
1389 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1392 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1393 && ferror( yyin ) ) \
1394 YY_FATAL_ERROR( "input in flex scanner failed" );
1397 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1398 * we don't want an extra ';' after the "return" because that will cause
1399 * some compilers to complain about unreachable statements.
1402 #define yyterminate() return YY_NULL
1405 /* Number of entries by which start-condition stack grows. */
1406 #ifndef YY_START_STACK_INCR
1407 #define YY_START_STACK_INCR 25
1410 /* Report a fatal error. */
1411 #ifndef YY_FATAL_ERROR
1412 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1415 /* Default declaration of generated scanner - a define so the user can
1416 * easily add parameters.
1419 #define YY_DECL int yylex YY_PROTO(( void ))
1422 /* Code executed at the beginning of each rule, after yytext and yyleng
1425 #ifndef YY_USER_ACTION
1426 #define YY_USER_ACTION
1429 /* Code executed at the end of each rule. */
1431 #define YY_BREAK break;
1434 #define YY_RULE_SETUP \
1439 register yy_state_type yy_current_state;
1440 register char *yy_cp, *yy_bp;
1441 register int yy_act;
1447 yylloc.start = yylloc.end;
1448 type_yylloc.start = type_yylloc.end;
1449 expression_yylloc.start = expression_yylloc.end;
1452 #line 1453 "lexer.ec"
1463 yy_start = 1; /* first start state */
1471 if ( ! yy_current_buffer )
1473 yy_create_buffer( yyin, YY_BUF_SIZE );
1475 yy_load_buffer_state();
1478 while ( 1 ) /* loops until end-of-file is reached */
1482 /* Support of yytext. */
1483 *yy_cp = yy_hold_char;
1485 /* yy_bp points to the position in yy_ch_buf of the start of
1490 yy_current_state = yy_start;
1494 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1495 if ( yy_accept[yy_current_state] )
1497 yy_last_accepting_state = yy_current_state;
1498 yy_last_accepting_cpos = yy_cp;
1500 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1502 yy_current_state = (int) yy_def[yy_current_state];
1503 if ( yy_current_state >= 732 )
1504 yy_c = yy_meta[(unsigned int) yy_c];
1506 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1509 while ( yy_base[yy_current_state] != 2810 );
1512 yy_act = yy_accept[yy_current_state];
1514 { /* have to back up */
1515 yy_cp = yy_last_accepting_cpos;
1516 yy_current_state = yy_last_accepting_state;
1517 yy_act = yy_accept[yy_current_state];
1520 YY_DO_BEFORE_ACTION;
1523 do_action: /* This label is used only to access EOF actions. */
1527 { /* beginning of action switch */
1528 case 0: /* must back up */
1529 /* undo the effects of YY_DO_BEFORE_ACTION */
1530 *yy_cp = yy_hold_char;
1531 yy_cp = yy_last_accepting_cpos;
1532 yy_current_state = yy_last_accepting_state;
1533 goto yy_find_action;
1578 { return(CONTINUE); }
1583 { return(DEFAULT); }
1640 /* "uint16" { return(UINT16); } */
1641 /* "uint32" { return(UINT32); } */
1642 /* "bool" { return(BOOL_TOKEN); } */
1651 { return(REGISTER); }
1686 { return(ALIGNOF); }
1691 { return(BUILTIN_OFFSETOF); }
1716 { return(TYPEDEF); }
1726 { return(UNSIGNED); }
1736 { return(VOLATILE); }
1741 { return(VOLATILE); }
1746 { return(VOLATILE); }
1756 { return(PROPERTY); }
1761 { return(SETPROP); } // TODO: Don't make this a keyword...
1766 { return(GETPROP); } // TODO: Don't make this a keyword...
1771 { return(ISPROPSET); } // TODO: Don't make this a keyword...
1781 { return(THISCLASS); }
1786 { return(VIRTUAL); }
1861 { return(_COMPLEX); }
1866 { return(_IMAGINARY); }
1871 { return(EXT_DECL); }
1873 /* "__attribute__".?"(("({D}|{L})*"))" { return(EXT_ATTRIB); } */
1874 /* DID I MEAN? "__attribute__"" "*"(("" "*({D}|{L})*" "*("("({D}|{L})*(" "*","" "*({D}|{L})*)*" "*")")?" "*"))" { return(EXT_ATTRIB); } */
1876 "__attribute_deprecated__"(" "*)"(("(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*)(","(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*))*"))" { return(EXT_ATTRIB); }
1877 "__attribute__" (" "*)"(("(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*)(","(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*))*"))" { return(EXT_ATTRIB); }
1878 "__attribute" (" "*)"(("(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*)(","(" "*)({D}|{L})*(" "*)("("({D}|{L}|\")*((" "*)","(" "*)({D}|{L}|\")*)*(" "*)")")?(" "*))*"))" { return(EXT_ATTRIB); }
1881 [__attribute__] [spaces]
1883 [digits | letters] [spaces]
1884 ( [(] [digits or letters or "] ( [spaces] [,] [spaces] [digits or letters or "] )* [spaces] [)] )?
1886 ( [,] [spaces] [digits or letters] [spaces]
1887 ( [(] [digits or letters or "]
1888 ( [spaces] [,] [spaces] [digits or letters or "] )* [spaces] [)]
1893 /* "__attribute__".?"((".?({D}|{L})*.?("("({D}|{L})*(.?",".?({D}|{L})*)*.?")")?.?"))" { return(EXT_ATTRIB); } */
1894 /* "__attribute".?"((".?({D}|{L})*.?("("({D}|{L})*(.?",".?({D}|{L})*)*.?")")?.?"))" { return(EXT_ATTRIB); }*/
1898 { return ATTRIB_DEP; }
1908 { return __ATTRIB; }
1913 { return(EXT_STORAGE); }
1918 { return(EXT_STORAGE); }
1923 { return(EXT_STORAGE); }
1928 { return(EXT_STORAGE); }
1933 { return(EXT_STORAGE); }
1938 { return(EXT_STORAGE); }
1943 { return(EXT_STORAGE); }
1948 { return(EXT_DECL); }
1953 { return(EXT_DECL); }
1958 { return(EXT_DECL); }
1963 { return(EXT_DECL); }
1968 { return(EXT_DECL); }
1973 { return(EXT_DECL); }
1978 { return(CONST /*EXT_DECL*/); }
1983 { return(EXT_DECL); }
1993 { return(PRIVATE); }
1998 { return(TYPED_OBJECT); }
2003 { return(ANY_OBJECT); }
2008 { return(_INCREF); }
2013 { return(EXTENSION); }
2018 { return(EXTENSION); }
2048 { return(STOPWATCHING); }
2053 { return(FIREWATCHERS); }
2058 { return(WATCHABLE); }
2063 { return(CLASS_DESIGNER); }
2068 { return(CLASS_NO_EXPANSION); }
2073 { return(CLASS_FIXED); }
2078 { return(CLASS_DEFAULT_PROPERTY); }
2083 { return(PROPERTY_CATEGORY); }
2088 { return(CLASS_DATA); }
2093 { return(CLASS_PROPERTY); }
2098 { return(SUBCLASS); }
2103 { return(NAMESPACE); }
2108 { return(DBTABLE); }
2113 { return(DBFIELD); }
2118 { return(DBINDEX); }
2123 { return(DATABASE_OPEN); }
2128 { return(check_type()); } // {L}({L}|{D})* { return(check_type()); } // ("::"|(({IDENT}"::")*)){IDENT} { return(check_type()); } // {L}({L}|{D})* { return(check_type()); }
2133 { return(CONSTANT); }
2138 { return(CONSTANT); }
2143 { return(CONSTANT); }
2148 { return(CONSTANT); }
2153 { return(CONSTANT); }
2158 { return(CONSTANT); }
2163 { return(CONSTANT); }
2168 { return(CONSTANT); }
2173 { return(CONSTANT); }
2178 { return(CONSTANT); }
2183 { return(STRING_LITERAL); }
2188 { return(WIDE_STRING_LITERAL); }
2193 { return(ELLIPSIS); }
2198 { return(RIGHT_ASSIGN); }
2203 { return(LEFT_ASSIGN); }
2208 { return(ADD_ASSIGN); }
2213 { return(SUB_ASSIGN); }
2218 { return(MUL_ASSIGN); }
2223 { return(DIV_ASSIGN); }
2228 { return(MOD_ASSIGN); }
2233 { return(AND_ASSIGN); }
2238 { return(XOR_ASSIGN); }
2243 { return(OR_ASSIGN); }
2248 { return(RIGHT_OP); }
2253 { return(LEFT_OP); }
2300 /* "::" { return(CLASS_OP); } */
2426 case YY_STATE_EOF(INITIAL):
2429 while(include_stack_ptr && !fileStack[include_stack_ptr-1])
2431 --include_stack_ptr;
2432 defaultDeclMode = declMode = structDeclMode = declModeStack[include_stack_ptr];
2435 if ( --include_stack_ptr < 0 )
2437 include_stack_ptr = 0;
2443 yy_delete_buffer( YY_CURRENT_BUFFER );
2444 fileInput = fileStack[include_stack_ptr];
2445 yylloc = locStack[include_stack_ptr];
2446 type_yylloc = locStack[include_stack_ptr];
2447 expression_yylloc = locStack[include_stack_ptr];
2448 yy_switch_to_buffer(include_stack[include_stack_ptr] );
2449 defaultDeclMode = declMode = structDeclMode = declModeStack[include_stack_ptr];
2456 { yylloc.start = yylloc.end; type_yylloc.start = type_yylloc.end; expression_yylloc.start = expression_yylloc.end;}
2462 yylloc.end.charPos = 1; yylloc.end.line += yyleng; yylloc.start = yylloc.end;
2463 type_yylloc.end.charPos = 1; type_yylloc.end.line += yyleng; type_yylloc.start = type_yylloc.end;
2464 expression_yylloc.end.charPos = 1; expression_yylloc.end.line += yyleng; expression_yylloc.start = expression_yylloc.end;
2471 yylloc.start.charPos++ /*= 3 - (yylloc.start.col % 3)*/; yylloc.end.charPos = yylloc.start.charPos; yylloc.start.pos = yylloc.end.pos;
2472 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;
2473 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;
2479 { yylloc.start = yylloc.end; expression_yylloc.start = expression_yylloc.end; type_yylloc.start = type_yylloc.end; }
2485 yylloc.start = yylloc.end; expression_yylloc.start = expression_yylloc.end; type_yylloc.start = type_yylloc.end;
2487 printf("lexer error: invalid char 0x%X at line %d, col %d\n", (unsigned char)yytext[0], yylloc.start.line, yylloc.start.charPos);
2496 #line 2497 "lexer.ec"
2498 case YY_END_OF_BUFFER:
2500 /* Amount of text matched not including the EOB char. */
2501 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2503 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2504 *yy_cp = yy_hold_char;
2505 YY_RESTORE_YY_MORE_OFFSET
2507 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2509 /* We're scanning a new file or input source. It's
2510 * possible that this happened because the user
2511 * just pointed yyin at a new source and called
2512 * yylex(). If so, then we have to assure
2513 * consistency between yy_current_buffer and our
2514 * globals. Here is the right place to do so, because
2515 * this is the first action (other than possibly a
2516 * back-up) that will match for the new input source.
2518 yy_n_chars = yy_current_buffer->yy_n_chars;
2519 yy_current_buffer->yy_input_file = yyin;
2520 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2523 /* Note that here we test for yy_c_buf_p "<=" to the position
2524 * of the first EOB in the buffer, since yy_c_buf_p will
2525 * already have been incremented past the NUL character
2526 * (since all states make transitions on EOB to the
2527 * end-of-buffer state). Contrast this with the test
2530 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2531 { /* This was really a NUL. */
2532 yy_state_type yy_next_state;
2534 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2536 yy_current_state = yy_get_previous_state();
2538 /* Okay, we're now positioned to make the NUL
2539 * transition. We couldn't have
2540 * yy_get_previous_state() go ahead and do it
2541 * for us because it doesn't know how to deal
2542 * with the possibility of jamming (and we don't
2543 * want to build jamming into it because then it
2544 * will run more slowly).
2547 yy_next_state = yy_try_NUL_trans( yy_current_state );
2549 yy_bp = yytext_ptr + YY_MORE_ADJ;
2551 if ( yy_next_state )
2553 /* Consume the NUL. */
2554 yy_cp = ++yy_c_buf_p;
2555 yy_current_state = yy_next_state;
2562 goto yy_find_action;
2566 else switch ( yy_get_next_buffer() )
2568 case EOB_ACT_END_OF_FILE:
2570 yy_did_buffer_switch_on_eof = 0;
2574 /* Note: because we've taken care in
2575 * yy_get_next_buffer() to have set up
2576 * yytext, we can now set up
2577 * yy_c_buf_p so that if some total
2578 * hoser (like flex itself) wants to
2579 * call the scanner after we return the
2580 * YY_NULL, it'll still work - another
2581 * YY_NULL will get returned.
2583 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2585 yy_act = YY_STATE_EOF(YY_START);
2591 if ( ! yy_did_buffer_switch_on_eof )
2597 case EOB_ACT_CONTINUE_SCAN:
2599 yytext_ptr + yy_amount_of_matched_text;
2601 yy_current_state = yy_get_previous_state();
2604 yy_bp = yytext_ptr + YY_MORE_ADJ;
2607 case EOB_ACT_LAST_MATCH:
2609 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2611 yy_current_state = yy_get_previous_state();
2614 yy_bp = yytext_ptr + YY_MORE_ADJ;
2615 goto yy_find_action;
2622 "fatal flex scanner internal error--no action found" );
2623 } /* end of action switch */
2624 } /* end of scanning one token */
2625 } /* end of yylex */
2628 /* yy_get_next_buffer - try to read in a new buffer
2630 * Returns a code representing an action:
2631 * EOB_ACT_LAST_MATCH -
2632 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2633 * EOB_ACT_END_OF_FILE - end of file
2636 static int yy_get_next_buffer()
2638 register char *dest = yy_current_buffer->yy_ch_buf;
2639 register char *source = yytext_ptr;
2640 register int number_to_move, i;
2643 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2645 "fatal flex scanner internal error--end of buffer missed" );
2647 if ( yy_current_buffer->yy_fill_buffer == 0 )
2648 { /* Don't try to fill the buffer, so this is an EOF. */
2649 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2651 /* We matched a single character, the EOB, so
2652 * treat this as a final EOF.
2654 return EOB_ACT_END_OF_FILE;
2659 /* We matched some text prior to the EOB, first
2662 return EOB_ACT_LAST_MATCH;
2666 /* Try to read more data. */
2668 /* First move last chars to start of buffer. */
2669 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2671 for ( i = 0; i < number_to_move; ++i )
2672 *(dest++) = *(source++);
2674 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2675 /* don't do the read, it's not guaranteed to return an EOF,
2678 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2683 yy_current_buffer->yy_buf_size - number_to_move - 1;
2685 while ( num_to_read <= 0 )
2686 { /* Not enough room in the buffer - grow it. */
2687 #ifdef YY_USES_REJECT
2689 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2692 /* just a shorter name for the current buffer */
2693 YY_BUFFER_STATE b = yy_current_buffer;
2695 int yy_c_buf_p_offset =
2696 (int) (yy_c_buf_p - b->yy_ch_buf);
2698 if ( b->yy_is_our_buffer )
2700 int new_size = b->yy_buf_size * 2;
2702 if ( new_size <= 0 )
2703 b->yy_buf_size += b->yy_buf_size / 8;
2705 b->yy_buf_size *= 2;
2707 b->yy_ch_buf = (char *)
2708 /* Include room in for 2 EOB chars. */
2709 yy_flex_realloc( (void *) b->yy_ch_buf,
2710 b->yy_buf_size + 2 );
2713 /* Can't grow it, we don't own it. */
2716 if ( ! b->yy_ch_buf )
2718 "fatal error - scanner input buffer overflow" );
2720 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2722 num_to_read = yy_current_buffer->yy_buf_size -
2727 if ( num_to_read > YY_READ_BUF_SIZE )
2728 num_to_read = YY_READ_BUF_SIZE;
2730 /* Read in more data. */
2731 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2732 yy_n_chars, num_to_read );
2734 yy_current_buffer->yy_n_chars = yy_n_chars;
2737 if ( yy_n_chars == 0 )
2739 if ( number_to_move == YY_MORE_ADJ )
2741 ret_val = EOB_ACT_END_OF_FILE;
2747 ret_val = EOB_ACT_LAST_MATCH;
2748 yy_current_buffer->yy_buffer_status =
2749 YY_BUFFER_EOF_PENDING;
2754 ret_val = EOB_ACT_CONTINUE_SCAN;
2756 yy_n_chars += number_to_move;
2757 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2758 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2760 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2766 /* yy_get_previous_state - get the state just before the EOB char was reached */
2768 static yy_state_type yy_get_previous_state()
2770 register yy_state_type yy_current_state;
2771 register char *yy_cp;
2773 yy_current_state = yy_start;
2775 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2777 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2778 if ( yy_accept[yy_current_state] )
2780 yy_last_accepting_state = yy_current_state;
2781 yy_last_accepting_cpos = yy_cp;
2783 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2785 yy_current_state = (int) yy_def[yy_current_state];
2786 if ( yy_current_state >= 732 )
2787 yy_c = yy_meta[(unsigned int) yy_c];
2789 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2792 return yy_current_state;
2796 /* yy_try_NUL_trans - try to make a transition on the NUL character
2799 * next_state = yy_try_NUL_trans( current_state );
2802 #ifdef YY_USE_PROTOS
2803 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2805 static yy_state_type yy_try_NUL_trans( yy_current_state )
2806 yy_state_type yy_current_state;
2809 register int yy_is_jam;
2810 register char *yy_cp = yy_c_buf_p;
2812 register YY_CHAR yy_c = 1;
2813 if ( yy_accept[yy_current_state] )
2815 yy_last_accepting_state = yy_current_state;
2816 yy_last_accepting_cpos = yy_cp;
2818 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2820 yy_current_state = (int) yy_def[yy_current_state];
2821 if ( yy_current_state >= 732 )
2822 yy_c = yy_meta[(unsigned int) yy_c];
2824 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2825 yy_is_jam = (yy_current_state == 731);
2827 return yy_is_jam ? 0 : yy_current_state;
2832 #ifdef YY_USE_PROTOS
2833 static void yyunput( int c, register char *yy_bp )
2835 static void yyunput( c, yy_bp )
2837 register char *yy_bp;
2840 register char *yy_cp = yy_c_buf_p;
2842 /* undo effects of setting up yytext */
2843 *yy_cp = yy_hold_char;
2845 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2846 { /* need to shift things up to make room */
2847 /* +2 for EOB chars. */
2848 register int number_to_move = yy_n_chars + 2;
2849 register char *dest = &yy_current_buffer->yy_ch_buf[
2850 yy_current_buffer->yy_buf_size + 2];
2851 register char *source =
2852 &yy_current_buffer->yy_ch_buf[number_to_move];
2854 while ( source > yy_current_buffer->yy_ch_buf )
2855 *--dest = *--source;
2857 yy_cp += (int) (dest - source);
2858 yy_bp += (int) (dest - source);
2859 yy_current_buffer->yy_n_chars =
2860 yy_n_chars = yy_current_buffer->yy_buf_size;
2862 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2863 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2866 *--yy_cp = (char) c;
2870 yy_hold_char = *yy_cp;
2873 #endif /* ifndef YY_NO_UNPUT */
2877 static int yyinput()
2884 *yy_c_buf_p = yy_hold_char;
2886 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2888 /* yy_c_buf_p now points to the character we want to return.
2889 * If this occurs *before* the EOB characters, then it's a
2890 * valid NUL; if not, then we've hit the end of the buffer.
2892 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2893 /* This was really a NUL. */
2897 { /* need more input */
2898 int offset = yy_c_buf_p - yytext_ptr;
2901 switch ( yy_get_next_buffer() )
2903 case EOB_ACT_LAST_MATCH:
2904 /* This happens because yy_g_n_b()
2905 * sees that we've accumulated a
2906 * token and flags that we need to
2907 * try matching the token before
2908 * proceeding. But for input(),
2909 * there's no matching to consider.
2910 * So convert the EOB_ACT_LAST_MATCH
2911 * to EOB_ACT_END_OF_FILE.
2914 /* Reset buffer status. */
2919 case EOB_ACT_END_OF_FILE:
2924 if ( ! yy_did_buffer_switch_on_eof )
2933 case EOB_ACT_CONTINUE_SCAN:
2934 yy_c_buf_p = yytext_ptr + offset;
2940 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
2941 *yy_c_buf_p = '\0'; /* preserve yytext */
2942 yy_hold_char = *++yy_c_buf_p;
2949 #ifdef YY_USE_PROTOS
2950 void yyrestart( FILE *input_file )
2952 void yyrestart( input_file )
2956 if ( ! yy_current_buffer )
2957 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2959 yy_init_buffer( yy_current_buffer, input_file );
2960 yy_load_buffer_state();
2964 #ifdef YY_USE_PROTOS
2965 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2967 void yy_switch_to_buffer( new_buffer )
2968 YY_BUFFER_STATE new_buffer;
2971 if ( yy_current_buffer == new_buffer )
2974 if ( yy_current_buffer )
2976 /* Flush out information for old buffer. */
2977 *yy_c_buf_p = yy_hold_char;
2978 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2979 yy_current_buffer->yy_n_chars = yy_n_chars;
2982 yy_current_buffer = new_buffer;
2983 yy_load_buffer_state();
2985 /* We don't actually know whether we did this switch during
2986 * EOF (yywrap()) processing, but the only time this flag
2987 * is looked at is after yywrap() is called, so it's safe
2988 * to go ahead and always set it.
2990 yy_did_buffer_switch_on_eof = 1;
2994 #ifdef YY_USE_PROTOS
2995 void yy_load_buffer_state( void )
2997 void yy_load_buffer_state()
3000 yy_n_chars = yy_current_buffer->yy_n_chars;
3001 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
3002 yyin = yy_current_buffer->yy_input_file;
3003 yy_hold_char = *yy_c_buf_p;
3007 #ifdef YY_USE_PROTOS
3008 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
3010 YY_BUFFER_STATE yy_create_buffer( file, size )
3017 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3019 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3021 b->yy_buf_size = size;
3023 /* yy_ch_buf has to be 2 characters longer than the size given because
3024 * we need to put in 2 end-of-buffer characters.
3026 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
3027 if ( ! b->yy_ch_buf )
3028 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3030 b->yy_is_our_buffer = 1;
3032 yy_init_buffer( b, file );
3038 #ifdef YY_USE_PROTOS
3039 void yy_delete_buffer( YY_BUFFER_STATE b )
3041 void yy_delete_buffer( b )
3048 if ( b == yy_current_buffer )
3049 yy_current_buffer = (YY_BUFFER_STATE) 0;
3051 if ( b->yy_is_our_buffer )
3052 yy_flex_free( (void *) b->yy_ch_buf );
3054 yy_flex_free( (void *) b );
3058 #ifndef YY_ALWAYS_INTERACTIVE
3059 #ifndef YY_NEVER_INTERACTIVE
3060 extern int isatty YY_PROTO(( int ));
3064 #ifdef YY_USE_PROTOS
3065 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
3067 void yy_init_buffer( b, file )
3074 yy_flush_buffer( b );
3076 b->yy_input_file = file;
3077 b->yy_fill_buffer = 1;
3079 #if YY_ALWAYS_INTERACTIVE
3080 b->yy_is_interactive = 1;
3082 #if YY_NEVER_INTERACTIVE
3083 b->yy_is_interactive = 0;
3085 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3091 #ifdef YY_USE_PROTOS
3092 void yy_flush_buffer( YY_BUFFER_STATE b )
3094 void yy_flush_buffer( b )
3104 /* We always need two end-of-buffer characters. The first causes
3105 * a transition to the end-of-buffer state. The second causes
3106 * a jam in that state.
3108 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3109 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3111 b->yy_buf_pos = &b->yy_ch_buf[0];
3114 b->yy_buffer_status = YY_BUFFER_NEW;
3116 if ( b == yy_current_buffer )
3117 yy_load_buffer_state();
3121 #ifndef YY_NO_SCAN_BUFFER
3122 #ifdef YY_USE_PROTOS
3123 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3125 YY_BUFFER_STATE yy_scan_buffer( base, size )
3133 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3134 base[size-1] != YY_END_OF_BUFFER_CHAR )
3135 /* They forgot to leave room for the EOB's. */
3138 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3140 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3142 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3143 b->yy_buf_pos = b->yy_ch_buf = base;
3144 b->yy_is_our_buffer = 0;
3145 b->yy_input_file = 0;
3146 b->yy_n_chars = b->yy_buf_size;
3147 b->yy_is_interactive = 0;
3149 b->yy_fill_buffer = 0;
3150 b->yy_buffer_status = YY_BUFFER_NEW;
3152 yy_switch_to_buffer( b );
3159 #ifndef YY_NO_SCAN_STRING
3160 #ifdef YY_USE_PROTOS
3161 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3163 YY_BUFFER_STATE yy_scan_string( yy_str )
3164 yyconst char *yy_str;
3168 for ( len = 0; yy_str[len]; ++len )
3171 return yy_scan_bytes( yy_str, len );
3176 #ifndef YY_NO_SCAN_BYTES
3177 #ifdef YY_USE_PROTOS
3178 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3180 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3181 yyconst char *bytes;
3190 /* Get memory for full buffer, including space for trailing EOB's. */
3192 buf = (char *) yy_flex_alloc( n );
3194 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3196 for ( i = 0; i < len; ++i )
3199 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3201 b = yy_scan_buffer( buf, n );
3203 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3205 /* It's okay to grow etc. this buffer, and we should throw it
3206 * away when we're done.
3208 b->yy_is_our_buffer = 1;
3215 #ifndef YY_NO_PUSH_STATE
3216 #ifdef YY_USE_PROTOS
3217 static void yy_push_state( int new_state )
3219 static void yy_push_state( new_state )
3223 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3227 yy_start_stack_depth += YY_START_STACK_INCR;
3228 new_size = yy_start_stack_depth * sizeof( int );
3230 if ( ! yy_start_stack )
3231 yy_start_stack = (int *) yy_flex_alloc( new_size );
3234 yy_start_stack = (int *) yy_flex_realloc(
3235 (void *) yy_start_stack, new_size );
3237 if ( ! yy_start_stack )
3239 "out of memory expanding start-condition stack" );
3242 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3249 #ifndef YY_NO_POP_STATE
3250 static void yy_pop_state()
3252 if ( --yy_start_stack_ptr < 0 )
3253 YY_FATAL_ERROR( "start-condition stack underflow" );
3255 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3260 #ifndef YY_NO_TOP_STATE
3261 static int yy_top_state()
3263 return yy_start_stack[yy_start_stack_ptr - 1];
3267 #ifndef YY_EXIT_FAILURE
3268 #define YY_EXIT_FAILURE 2
3271 #ifdef YY_USE_PROTOS
3272 static void yy_fatal_error( yyconst char msg[] )
3274 static void yy_fatal_error( msg )
3278 (void) fprintf( stderr, "%s\n", msg );
3279 exit( YY_EXIT_FAILURE );
3284 /* Redefine yyless() so it works in section 3 code. */
3290 /* Undo effects of setting up yytext. */ \
3291 yytext[yyleng] = yy_hold_char; \
3292 yy_c_buf_p = yytext + n; \
3293 yy_hold_char = *yy_c_buf_p; \
3294 *yy_c_buf_p = '\0'; \
3300 /* Internal utility routines. */
3303 #ifdef YY_USE_PROTOS
3304 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3306 static void yy_flex_strncpy( s1, s2, n )
3313 for ( i = 0; i < n; ++i )
3318 #ifdef YY_NEED_STRLEN
3319 #ifdef YY_USE_PROTOS
3320 static int yy_flex_strlen( yyconst char *s )
3322 static int yy_flex_strlen( s )
3327 for ( n = 0; s[n]; ++n )
3335 #ifdef YY_USE_PROTOS
3336 static void *yy_flex_alloc( yy_size_t size )
3338 static void *yy_flex_alloc( size )
3342 return (void *) malloc( size );
3345 #ifdef YY_USE_PROTOS
3346 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3348 static void *yy_flex_realloc( ptr, size )
3353 /* The cast to (char *) in the following accommodates both
3354 * implementations that use char* generic pointers, and those
3355 * that use void* generic pointers. It works with the latter
3356 * because both ANSI C and C++ allow castless assignment from
3357 * any pointer type to void*, and deal with argument conversions
3358 * as though doing an assignment.
3360 return (void *) realloc( (char *) ptr, size );
3363 #ifdef YY_USE_PROTOS
3364 static void yy_flex_free( void *ptr )
3366 static void yy_flex_free( ptr )
3398 // fputc(c, output);
3402 yylloc.end.charPos = 1;
3408 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3413 yylloc.end.charPos++;
3416 if(c == '/' && last == '*')
3420 yylloc.start = yylloc.end;
3426 int c; //, last = 0;
3432 // fputc(c, output);
3436 yylloc.end.charPos = 1;
3443 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3448 yylloc.end.charPos++;
3453 yylloc.start = yylloc.end;
3472 yylloc.end.charPos = 1;
3477 char * pointer = line + 1;
3480 lineNumber = GetValue(&pointer);
3483 char fileName[MAX_LOCATION];
3488 GetString(&pointer, fileName, MAX_LOCATION);
3489 inOut = GetValue(&pointer);
3493 char extension[MAX_EXTENSION];
3495 defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
3497 GetExtension(fileName, extension);
3498 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
3499 declMode = defaultDeclMode = structDeclMode = defaultAccess;
3501 fileStack[include_stack_ptr] = null;
3502 include_stack_ptr++;
3506 include_stack_ptr--;
3507 defaultDeclMode = declMode = structDeclMode = declModeStack[include_stack_ptr];
3510 yylloc.end.charPos = 1;
3511 yylloc.end.line = lineNumber;
3512 //yylloc.end.pos -= count;
3514 if(include_stack_ptr > 0 || (lineNumber && fileName[0]))
3515 yylloc.end.included = GetIncludeFileID(fileName);
3517 yylloc.end.included = 0;
3520 int lineNumber = strtol(line+1, &endPtr, 0);
3526 yylloc.end.charPos = 1;
3527 yylloc.end.line = lineNumber;
3528 yylloc.end.pos -= count;
3537 yylloc.end.charPos++ /* += 3 - (yylloc.end.col % 3)*/;
3546 yylloc.end.charPos++;
3552 yylloc.start = yylloc.end;
3555 TrimLSpaces(line, line);
3556 for(c = 0; line[c] && line[c] != ' '; c++);
3557 if(!strncmp(line, "include", c))
3559 char includeFile[MAX_LOCATION] = "";
3561 memmove(line, line+c, strlen(line+c)+1);
3562 TrimLSpaces(line, line);
3565 for(c = 1; line[c]; c++)
3569 strncpy(includeFile, line+1, c-1);
3570 includeFile[c-1] = '\0';
3575 else if(line[0] == '<')
3577 for(c = 1; line[c]; c++)
3580 strncpy(includeFile, line+1, c-1);
3581 includeFile[c-1] = '\0';
3586 if ( include_stack_ptr >= MAX_INCLUDE_DEPTH )
3588 fprintf( stderr, "%s", $"Includes nested too deeply" );
3592 if(inCompiler || !FindIncludeFileID(includeFile))
3594 File file = OpenIncludeFile(includeFile);
3597 char extension[MAX_EXTENSION];
3599 fileStack[include_stack_ptr] = fileInput;
3600 locStack[include_stack_ptr] = yylloc;
3601 defaultDeclMode = declModeStack[include_stack_ptr] = declMode;
3602 include_stack[include_stack_ptr++] = YY_CURRENT_BUFFER;
3604 yylloc.start.charPos = yylloc.end.charPos = 1;
3605 yylloc.start.line = yylloc.end.line = 1;
3606 yylloc.start.pos = yylloc.end.pos = 0;
3607 yylloc.start.included = yylloc.end.included = GetIncludeFileID(includeFile);
3609 GetExtension(includeFile, extension);
3610 if(!strcmp(extension, "c") || !strcmp(extension, "h"))
3611 declMode = defaultDeclMode = structDeclMode = defaultAccess;
3614 yy_switch_to_buffer( yy_create_buffer( fileInput, YY_BUF_SIZE ) );
3622 public void resetScanner()
3625 yylloc.start.charPos = yylloc.end.charPos = 1;
3626 yylloc.start.line = yylloc.end.line = 1;
3627 yylloc.start.pos = yylloc.end.pos = 0;
3628 yylloc.start.included = yylloc.end.included = 0;
3630 expression_yylloc.start.charPos = expression_yylloc.end.charPos = 1;
3631 expression_yylloc.start.line = expression_yylloc.end.line = 1;
3632 expression_yylloc.start.pos = expression_yylloc.end.pos = 0;
3633 expression_yylloc.start.included = expression_yylloc.end.included = 0;
3635 type_yylloc.start.charPos = type_yylloc.end.charPos = 1;
3636 type_yylloc.start.line = type_yylloc.end.line = 1;
3637 type_yylloc.start.pos = type_yylloc.end.pos = 0;
3638 type_yylloc.start.included = type_yylloc.end.included = 0;
3640 include_stack_ptr = 0;
3643 void resetScannerPos(CodePosition pos)
3646 yylloc.start = yylloc.end = pos;
3647 type_yylloc.start = type_yylloc.end = pos;
3648 expression_yylloc.start = expression_yylloc.end = pos;
3654 YYLTYPE type_yylloc;
3655 YYLTYPE expression_yylloc;
3657 AccessMode declMode;
3658 AccessMode defaultDeclMode;
3661 YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
3662 File fileStack[MAX_INCLUDE_DEPTH];
3663 char sourceFileStack[MAX_INCLUDE_DEPTH][MAX_LOCATION];
3664 YYLTYPE locStack[MAX_INCLUDE_DEPTH];
3665 AccessMode declModeStack[MAX_INCLUDE_DEPTH];
3666 int include_stack_ptr;
3667 YY_BUFFER_STATE buffer;
3680 LexerBackup pushLexer()
3682 LexerBackup backup { };
3684 backup.yylloc = yylloc;
3685 backup.type_yylloc = type_yylloc;
3686 backup.expression_yylloc = expression_yylloc;
3687 backup.fileInput = fileInput;
3688 memcpy(backup.include_stack, include_stack, sizeof(include_stack));
3689 memcpy(backup.fileStack, fileStack, sizeof(fileStack));
3690 memcpy(backup.sourceFileStack, sourceFileStack, sizeof(sourceFileStack));
3691 memcpy(backup.locStack, locStack, sizeof(locStack));
3692 memcpy(backup.declModeStack, declModeStack, sizeof(declModeStack));
3693 backup.include_stack_ptr = include_stack_ptr;
3694 backup.defaultDeclMode = defaultDeclMode;
3695 backup.declMode = declMode;
3696 backup.buffer = yy_current_buffer;
3698 backup.yy_n_chars = yy_n_chars;
3699 backup.yytext_ptr = yytext_ptr;
3700 backup.yy_c_buf_p = yy_c_buf_p;
3702 backup.yy_hold_char = yy_hold_char;
3703 backup.yychar = yychar;
3704 backup.yy_init = yy_init;
3705 backup.yy_start = yy_start;
3709 yy_current_buffer = 0;
3711 yylloc.start.charPos = yylloc.end.charPos = 1;
3712 yylloc.start.line = yylloc.end.line = 1;
3713 yylloc.start.pos = yylloc.end.pos = 0;
3714 yylloc.start.included = yylloc.end.included = 0;
3716 expression_yylloc.start.charPos = expression_yylloc.end.charPos = 1;
3717 expression_yylloc.start.line = expression_yylloc.end.line = 1;
3718 expression_yylloc.start.pos = expression_yylloc.end.pos = 0;
3719 expression_yylloc.start.included = expression_yylloc.end.included = 0;
3721 type_yylloc.start.charPos = type_yylloc.end.charPos = 1;
3722 type_yylloc.start.line = type_yylloc.end.line = 1;
3723 type_yylloc.start.pos = type_yylloc.end.pos = 0;
3724 type_yylloc.start.included = type_yylloc.end.included = 0;
3726 include_stack_ptr = 0;
3731 void popLexer(LexerBackup backup)
3733 yylloc = backup.yylloc;
3734 type_yylloc = backup.type_yylloc;
3735 expression_yylloc = backup.expression_yylloc;
3736 fileInput = backup.fileInput;
3737 memcpy(include_stack, backup.include_stack, sizeof(include_stack));
3738 memcpy(fileStack, backup.fileStack, sizeof(fileStack));
3739 memcpy(sourceFileStack, backup.sourceFileStack, sizeof(sourceFileStack));
3740 memcpy(locStack, backup.locStack, sizeof(locStack));
3741 memcpy(declModeStack, backup.declModeStack, sizeof(declModeStack));
3742 include_stack_ptr = backup.include_stack_ptr;
3743 defaultDeclMode = backup.defaultDeclMode;
3744 declMode = structDeclMode = backup.declMode;
3746 // yy_switch_to_buffer(backup.buffer);
3747 yy_current_buffer = backup.buffer;
3748 yy_n_chars = backup.yy_n_chars;
3749 yytext_ptr = backup.yytext_ptr;
3750 yy_c_buf_p = backup.yy_c_buf_p;
3752 yy_hold_char = backup.yy_hold_char;
3753 yychar = backup.yychar;
3754 yy_init = backup.yy_init;
3755 yy_start = backup.yy_start;