1 /*************************************************************************
2 ************************************************************************/
4 /* A lexical scanner generated by flex */
6 /* Scanner skeleton version:
9 #define YY_STACK_USED 0
11 #ifndef YY_ALWAYS_INTERACTIVE
12 #define YY_ALWAYS_INTERACTIVE 0
14 #ifndef YY_NEVER_INTERACTIVE
15 #define YY_NEVER_INTERACTIVE 0
22 #define YY_FLEX_MAJOR_VERSION 2
23 #define YY_FLEX_MINOR_VERSION 5
28 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
46 /* Use prototypes in function declarations. */
49 /* The "const" storage-class-modifier is valid. */
52 #else /* ! __cplusplus */
60 #endif /* ! __cplusplus */
79 #define YY_PROTO(proto) proto
81 #define YY_PROTO(proto) ()
84 /* Returned upon end-of-file. */
87 /* Promotes a possibly negative, possibly signed char to an unsigned
88 * integer for use as an array index. If the signed char is negative,
89 * we want to instead treat it as an 8-bit unsigned char, hence the
92 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
94 /* Enter a start condition. This macro really ought to take a parameter,
95 * but we do it the disgusting crufty way forced on us by the ()-less
96 * definition of BEGIN.
98 #define BEGIN yy_start = 1 + 2 *
100 /* Translate the current start state into a value that can be later handed
101 * to BEGIN to return to the state. The YYSTATE alias is for lex
104 #define YY_START ((yy_start - 1) / 2)
105 #define YYSTATE YY_START
107 /* Action number for EOF rule of a given start state. */
108 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
110 /* Special action meaning "start processing a new file". */
111 #define YY_NEW_FILE yyrestart( yyin )
113 #define YY_END_OF_BUFFER_CHAR 0
115 /* Size of default input buffer. */
116 #define YY_BUF_SIZE 16384
118 typedef struct yy_buffer_state
*YY_BUFFER_STATE
;
121 extern FILE *yyin
, *yyout
;
123 #define EOB_ACT_CONTINUE_SCAN 0
124 #define EOB_ACT_END_OF_FILE 1
125 #define EOB_ACT_LAST_MATCH 2
127 /* The funky do-while in the following #define is used to turn the definition
128 * int a single C statement (which needs a semi-colon terminator). This
129 * avoids problems with code like:
131 * if ( condition_holds )
134 * do_something_else();
136 * Prior to using the do-while the compiler would get upset at the
137 * "else" because it interpreted the "if" statement as being all
138 * done when it reached the ';' after the yyless() call.
141 /* Return all but the first 'n' matched characters back to the input stream. */
146 /* Undo effects of setting up yytext. */ \
147 *yy_cp = yy_hold_char; \
148 YY_RESTORE_YY_MORE_OFFSET \
149 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
150 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
154 //#define unput(c) yyunput( c, yytext_ptr )
156 /* The following is because we cannot portably get our hands on size_t
157 * (without autoconf's help, which isn't available because we want
158 * flex-generated scanners to compile on their own).
160 typedef unsigned int yy_size_t
;
163 struct yy_buffer_state
167 char *yy_ch_buf
; /* input buffer */
168 char *yy_buf_pos
; /* current position in input buffer */
170 /* Size of input buffer in bytes, not including room for EOB
173 yy_size_t yy_buf_size
;
175 /* Number of characters read into yy_ch_buf, not including EOB
180 /* Whether we "own" the buffer - i.e., we know we created it,
181 * and can realloc() it to grow it, and should free() it to
184 int yy_is_our_buffer
;
186 /* Whether this is an "interactive" input source; if so, and
187 * if we're using stdio for input, then we want to use getc()
188 * instead of fread(), to make sure we stop fetching input after
191 int yy_is_interactive
;
193 /* Whether we're considered to be at the beginning of a line.
194 * If so, '^' rules will be active on the next match, otherwise
199 /* Whether to try to fill the input buffer when we reach the
204 int yy_buffer_status
;
205 #define YY_BUFFER_NEW 0
206 #define YY_BUFFER_NORMAL 1
207 /* When an EOF's been seen but there's still some text to process
208 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
209 * shouldn't try reading from the input source any more. We might
210 * still have a bunch of tokens to match, though, because of
211 * possible backing-up.
213 * When we actually see the EOF, we change the status to "new"
214 * (via yyrestart()), so that the user can continue scanning by
215 * just pointing yyin at a new input file.
217 #define YY_BUFFER_EOF_PENDING 2
220 static YY_BUFFER_STATE yy_current_buffer
= 0;
222 /* We provide macros for accessing buffer states in case in the
223 * future we want to put the buffer states in a more general
226 #define YY_CURRENT_BUFFER yy_current_buffer
229 /* yy_hold_char holds the character lost when yytext is formed. */
230 static char yy_hold_char
;
232 static int yy_n_chars
; /* number of characters read into yy_ch_buf */
237 /* Points to current character in buffer. */
238 static char *yy_c_buf_p
= (char *) 0;
239 static int yy_init
= 1; /* whether we need to initialize */
240 static int yy_start
= 0; /* start state number */
242 /* Flag which is used to allow yywrap()'s to do buffer switches
243 * instead of setting up a fresh yyin. A bit of a hack ...
245 static int yy_did_buffer_switch_on_eof
;
247 void yyrestart
YY_PROTO(( FILE *input_file
));
249 void yy_switch_to_buffer
YY_PROTO(( YY_BUFFER_STATE new_buffer
));
250 void yy_load_buffer_state
YY_PROTO(( void ));
251 YY_BUFFER_STATE yy_create_buffer
YY_PROTO(( FILE *file
, int size
));
252 void yy_delete_buffer
YY_PROTO(( YY_BUFFER_STATE b
));
253 void yy_init_buffer
YY_PROTO(( YY_BUFFER_STATE b
, FILE *file
));
254 void yy_flush_buffer
YY_PROTO(( YY_BUFFER_STATE b
));
255 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
257 YY_BUFFER_STATE yy_scan_buffer
YY_PROTO(( char *base
, yy_size_t size
));
258 YY_BUFFER_STATE yy_scan_string
YY_PROTO(( yyconst
char *yy_str
));
259 YY_BUFFER_STATE yy_scan_bytes
YY_PROTO(( yyconst
char *bytes
, int len
));
261 static void *yy_flex_alloc
YY_PROTO(( yy_size_t
));
262 static void *yy_flex_realloc
YY_PROTO(( void *, yy_size_t
));
263 static void yy_flex_free
YY_PROTO(( void * ));
265 #define yy_new_buffer yy_create_buffer
267 #define yy_set_interactive(is_interactive) \
269 if ( ! yy_current_buffer ) \
270 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
271 yy_current_buffer->yy_is_interactive = is_interactive; \
274 #define yy_set_bol(at_bol) \
276 if ( ! yy_current_buffer ) \
277 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
278 yy_current_buffer->yy_at_bol = at_bol; \
281 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
283 typedef unsigned char YY_CHAR
;
284 FILE *yyin
= (FILE *) 0, *yyout
= (FILE *) 0;
285 typedef int yy_state_type
;
287 #define yytext_ptr yytext
289 static yy_state_type yy_get_previous_state
YY_PROTO(( void ));
290 static yy_state_type yy_try_NUL_trans
YY_PROTO(( yy_state_type current_state
));
291 static int yy_get_next_buffer
YY_PROTO(( void ));
292 static void yy_fatal_error
YY_PROTO(( yyconst
char msg
[] ));
294 /* Done after the current pattern has been matched and before the
295 * corresponding action - sets up yytext.
297 #define YY_DO_BEFORE_ACTION \
298 yytext_ptr = yy_bp; \
299 yyleng = (int) (yy_cp - yy_bp); \
300 yy_hold_char = *yy_cp; \
304 #define YY_NUM_RULES 45
305 #define YY_END_OF_BUFFER 46
306 static yyconst
short int yy_accept
[994] =
308 0, 0, 46, 44, 41, 41, 44, 42, 39, 37,
309 37, 36, 39, 39, 44, 44, 38, 40, 35, 43,
310 13, 21, 36, 36, 22, 16, 17, 0, 34, 0,
311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
312 0, 0, 24, 0, 24, 0, 0, 0, 0, 0,
313 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
314 0, 0, 0, 0, 42, 0, 0, 0, 0, 0,
315 0, 0, 0, 0, 0, 0, 4, 31, 5, 43,
316 36, 20, 14, 15, 0, 0, 0, 0, 0, 0,
317 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
319 0, 0, 0, 10, 0, 0, 27, 0, 0, 0,
320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
324 0, 0, 0, 0, 0, 0, 12, 12, 0, 0,
325 0, 0, 0, 0, 0, 12, 0, 0, 0, 0,
326 0, 0, 0, 0, 12, 0, 27, 0, 0, 0,
327 0, 0, 0, 0, 0, 11, 0, 9, 0, 0,
328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
331 0, 0, 0, 23, 0, 0, 0, 0, 0, 0,
332 0, 0, 0, 0, 0, 0, 0, 0, 19, 0,
333 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
337 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,
338 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
339 27, 0, 0, 0, 0, 12, 0, 0, 8, 0,
341 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
342 0, 0, 0, 0, 0, 0, 0, 27, 26, 0,
343 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
347 0, 0, 0, 0, 0, 0, 0, 0, 12, 27,
348 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
349 0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
353 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
355 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
356 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
357 0, 11, 0, 0, 0, 0, 0, 0, 8, 0,
358 0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
359 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
360 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
363 0, 0, 0, 0, 0, 0, 0, 30, 0, 0,
364 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
366 0, 0, 0, 28, 0, 0, 12, 0, 0, 0,
367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
369 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
372 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
374 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
379 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
387 0, 0, 0, 0, 0, 0, 0, 0, 32, 0,
388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
390 0, 0, 0, 0, 0, 12, 0, 12, 0, 0,
391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
394 0, 0, 0, 0, 0, 0, 11, 0, 0, 0,
396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
399 0, 0, 0, 0, 0, 33, 0, 0, 0, 0,
400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
401 0, 0, 0, 0, 0, 19, 0, 0, 0, 0,
402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
403 0, 0, 12, 12, 0, 24, 0, 0, 0, 0,
404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
405 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
420 static yyconst
int yy_ec
[256] =
422 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
423 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
424 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
425 1, 1, 4, 1, 1, 1, 1, 5, 1, 6,
426 7, 8, 8, 9, 10, 11, 8, 12, 12, 12,
427 12, 12, 12, 12, 12, 12, 12, 13, 14, 15,
428 16, 17, 1, 1, 18, 19, 20, 21, 22, 1,
429 23, 1, 24, 25, 26, 27, 28, 29, 30, 31,
430 1, 32, 33, 34, 35, 36, 1, 37, 1, 38,
431 39, 40, 41, 42, 42, 1, 43, 44, 45, 46,
433 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
434 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
435 67, 68, 69, 70, 71, 72, 1, 1, 1, 1,
436 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
437 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
438 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
439 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
440 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
441 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
442 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
444 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
445 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
446 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
447 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
448 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
452 static yyconst
int yy_meta
[74] =
454 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
455 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
456 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
457 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
458 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
459 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
460 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
464 static yyconst
short int yy_base
[995] =
466 0, 72, 1314, 1315, 1315, 1315, 1297, 1315, 1315, 1315,
467 1295, 2, 8, 1294, 1281, 142, 1315, 1315, 1315, 1236,
468 1315, 1315, 1296, 8, 1290, 1291, 1288, 1274, 1315, 0,
469 0, 1253, 1, 1, 1259, 7, 1244, 1257, 8, 1236,
470 1235, 1242, 35, 43, 1245, 0, 1237, 1251, 1242, 1245,
471 1315, 46, 72, 171, 79, 62, 77, 184, 192, 92,
472 1236, 2, 207, 216, 225, 234, 250, 46, 269, 278,
473 295, 10, 111, 255, 10, 1243, 1315, 1315, 1315, 1216,
474 1276, 1315, 1315, 1315, 1253, 1228, 1225, 1222, 1217, 1231,
475 1227, 1237, 1214, 1217, 1234, 1221, 1315, 1213, 1223, 1215,
477 1217, 1223, 1214, 1315, 168, 1218, 1315, 1217, 1210, 1217,
478 1216, 1201, 1216, 177, 1202, 1199, 1197, 34, 1216, 1209,
479 1199, 181, 36, 164, 198, 1207, 119, 199, 1201, 1196,
480 1196, 218, 1192, 1188, 225, 1205, 1191, 78, 40, 245,
481 280, 1197, 175, 1184, 1192, 1187, 1198, 1182, 1179, 1198,
482 101, 1197, 1179, 227, 1183, 1191, 1177, 1315, 1192, 1172,
483 1190, 1189, 53, 1184, 1187, 260, 1167, 1171, 1184, 1168,
484 1165, 248, 1177, 1166, 291, 1168, 1161, 1174, 1164, 1161,
485 222, 268, 1160, 0, 1170, 1315, 1172, 1315, 247, 299,
486 1152, 1170, 1155, 1155, 300, 1156, 1155, 1157, 1160, 1146,
488 1145, 1153, 302, 1152, 1139, 1158, 1144, 1152, 1147, 1143,
489 1136, 308, 1146, 1137, 1150, 1136, 317, 1148, 308, 318,
490 1147, 311, 1146, 322, 1145, 312, 1140, 319, 1128, 1134,
491 324, 340, 1124, 333, 340, 1137, 1136, 1121, 1118, 1315,
492 1129, 1121, 1134, 1114, 1120, 1118, 1122, 1117, 1128, 1114,
493 1111, 1124, 1105, 1117, 1116, 1119, 1113, 1107, 1099, 1100,
494 1102, 1107, 344, 1114, 1094, 1097, 1104, 1099, 327, 1092,
495 347, 1094, 1095, 1096, 1315, 1105, 1096, 1103, 350, 1083,
496 1099, 1079, 1088, 1079, 1095, 1094, 1094, 1088, 1076, 1085,
497 1084, 1084, 1082, 1082, 1068, 1067, 1073, 1071, 1079, 1069,
499 1069, 1061, 1315, 1071, 1070, 1059, 1057, 1075, 1072, 1051,
500 1060, 1050, 1053, 1052, 1058, 1054, 348, 1047, 1315, 1065,
501 1045, 1048, 1061, 1055, 1052, 1040, 1039, 1043, 1042, 338,
502 1035, 1048, 1035, 1048, 1038, 1039, 1029, 1031, 276, 1030,
503 1027, 1026, 1038, 371, 1023, 1042, 1029, 1023, 355, 1024,
504 1036, 1025, 372, 1036, 1032, 1028, 1025, 1020, 1017, 1016,
505 1022, 1008, 1014, 1020, 1008, 1012, 1006, 1010, 1017, 1013,
506 1008, 1007, 1014, 360, 997, 995, 997, 995, 1010, 372,
507 1008, 993, 1002, 156, 1005, 1003, 1006, 1001, 997, 996,
508 985, 987, 980, 991, 374, 980, 978, 977, 989, 990,
510 993, 992, 969, 990, 975, 988, 976, 986, 985, 981,
511 379, 191, 983, 965, 962, 980, 979, 961, 955, 965,
512 960, 374, 967, 965, 965, 967, 963, 969, 962, 963,
513 947, 951, 950, 955, 962, 939, 945, 941, 938, 944,
514 377, 383, 940, 938, 939, 949, 948, 943, 946, 945,
515 944, 929, 936, 927, 930, 939, 921, 935, 922, 939,
516 924, 933, 920, 935, 910, 922, 911, 912, 919, 1315,
517 916, 928, 923, 907, 388, 906, 920, 916, 898, 914,
518 920, 916, 907, 906, 898, 400, 901, 894, 900, 892,
519 893, 392, 891, 898, 902, 907, 889, 888, 891, 895,
521 885, 901, 883, 879, 880, 879, 892, 405, 884, 886,
522 889, 888, 872, 887, 878, 877, 887, 872, 865, 865,
523 865, 876, 870, 863, 871, 863, 877, 860, 864, 870,
524 869, 857, 856, 1315, 400, 866, 865, 851, 863, 849,
525 861, 864, 859, 844, 848, 843, 856, 855, 840, 834,
526 837, 843, 838, 403, 845, 843, 843, 834, 841, 829,
527 1315, 842, 401, 824, 831, 826, 828, 841, 823, 831,
528 834, 829, 822, 835, 820, 820, 818, 813, 822, 815,
529 822, 823, 809, 802, 806, 810, 809, 800, 809, 801,
530 1315, 803, 800, 801, 404, 807, 803, 805, 810, 803,
532 799, 805, 805, 803, 785, 786, 1315, 784, 800, 785,
533 797, 787, 782, 780, 783, 778, 784, 776, 789, 784,
534 783, 790, 785, 771, 787, 778, 768, 769, 778, 767,
535 762, 776, 779, 770, 763, 758, 764, 774, 759, 93,
536 126, 187, 225, 269, 333, 415, 345, 372, 388, 397,
537 400, 417, 418, 408, 411, 427, 409, 418, 426, 417,
538 419, 415, 417, 418, 419, 419, 423, 422, 422, 428,
539 438, 438, 444, 432, 434, 434, 431, 442, 437, 446,
540 449, 436, 456, 449, 454, 456, 443, 448, 445, 457,
541 459, 459, 453, 450, 446, 469, 457, 463, 460, 454,
543 460, 471, 476, 473, 476, 458, 461, 468, 462, 471,
544 484, 485, 466, 481, 484, 481, 473, 488, 475, 489,
545 481, 475, 491, 491, 496, 482, 483, 495, 1315, 502,
546 498, 490, 500, 503, 497, 487, 488, 498, 512, 508,
547 501, 509, 512, 506, 514, 502, 520, 521, 518, 501,
548 504, 505, 506, 523, 524, 525, 526, 527, 510, 519,
549 523, 518, 528, 515, 538, 526, 532, 529, 523, 535,
550 525, 534, 529, 533, 534, 542, 531, 544, 535, 536,
551 543, 555, 556, 545, 541, 541, 540, 543, 558, 548,
552 549, 552, 548, 563, 551, 550, 552, 557, 553, 565,
554 555, 568, 576, 563, 563, 572, 578, 562, 564, 576,
555 582, 566, 582, 580, 577, 572, 573, 589, 574, 581,
556 586, 576, 577, 581, 579, 583, 583, 597, 602, 590,
557 587, 594, 606, 607, 597, 1315, 606, 591, 589, 590,
558 594, 614, 596, 602, 600, 604, 600, 613, 603, 604,
559 617, 605, 605, 604, 608, 628, 610, 619, 610, 619,
560 615, 628, 636, 618, 619, 635, 640, 622, 628, 628,
561 637, 626, 642, 643, 644, 646, 648, 647, 635, 640,
562 641, 652, 658, 642, 652, 661, 640, 650, 652, 655,
563 659, 651, 669, 656, 671, 668, 656, 666, 661, 676,
565 660, 678, 657, 666, 677, 666, 667, 680, 677, 682,
566 673, 675, 676, 673, 674, 686, 676, 672, 691, 677,
567 680, 681, 686, 683, 684, 696, 686, 687, 688, 692,
568 702, 702, 687, 693, 697, 705, 696, 711, 701, 699,
569 714, 701, 705, 713, 704, 708, 706, 711, 706, 719,
570 713, 706, 710, 716, 718, 718, 713, 722, 723, 723,
571 725, 718, 722, 728, 721, 730, 742, 727, 725, 748,
572 727, 728, 729, 730, 731, 754, 733, 734, 743, 743,
573 742, 747, 748, 746, 742, 748, 749, 754, 754, 755,
578 static yyconst
short int yy_def
[995] =
580 994, 994, 993, 993, 993, 993, 993, 993, 993, 993,
581 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
582 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
583 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
584 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
585 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
586 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
587 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
588 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
589 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
591 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
592 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
593 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
594 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
595 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
596 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
597 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
598 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
599 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
600 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
602 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
603 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
604 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
605 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
606 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
607 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
608 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
609 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
610 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
611 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
613 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
614 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
615 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
616 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
617 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
618 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
619 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
620 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
621 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
622 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
624 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
625 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
626 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
627 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
628 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
629 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
630 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
631 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
632 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
633 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
635 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
636 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
637 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
638 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
639 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
640 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
641 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
642 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
643 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
644 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
646 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
647 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
648 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
649 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
650 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
651 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
652 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
653 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
654 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
655 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
657 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
658 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
659 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
660 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
661 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
662 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
663 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
664 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
665 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
666 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
668 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
669 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
670 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
671 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
672 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
673 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
674 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
675 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
676 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
677 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
679 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
680 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
681 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
682 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
683 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
684 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
685 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
686 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
687 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
692 static yyconst
short int yy_nxt
[1389] =
694 993, 5, 6, 7, 8, 9, 9, 10, 993, 11,
695 993, 12, 23, 24, 13, 10, 14, 25, 23, 24,
696 993, 993, 26, 993, 993, 993, 15, 993, 993, 993,
697 993, 993, 993, 993, 993, 993, 993, 993, 9, 16,
698 9, 17, 112, 993, 170, 158, 88, 91, 171, 113,
699 101, 92, 993, 86, 102, 107, 89, 93, 94, 87,
700 188, 97, 95, 98, 103, 231, 238, 232, 9, 18,
701 9, 19, 20, 5, 6, 7, 8, 9, 9, 10,
702 266, 11, 294, 12, 106, 104, 13, 10, 14, 97,
703 117, 267, 109, 110, 107, 108, 295, 186, 15, 118,
705 119, 120, 273, 121, 205, 122, 123, 107, 206, 315,
706 9, 16, 9, 17, 124, 145, 146, 147, 125, 148,
707 149, 138, 126, 150, 139, 140, 292, 151, 127, 141,
708 152, 128, 142, 153, 129, 143, 154, 164, 293, 144,
709 9, 18, 9, 19, 20, 29, 165, 166, 167, 737,
710 29, 306, 168, 233, 29, 29, 234, 235, 107, 30,
711 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
712 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
713 97, 51, 738, 280, 52, 53, 54, 55, 56, 57,
714 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
716 68, 69, 70, 71, 72, 73, 74, 75, 274, 76,
717 77, 78, 79, 130, 255, 541, 131, 542, 256, 260,
718 132, 133, 261, 275, 134, 271, 155, 135, 156, 107,
719 157, 136, 158, 137, 160, 161, 299, 262, 162, 300,
720 272, 281, 276, 159, 571, 282, 277, 186, 163, 172,
721 572, 173, 174, 175, 176, 177, 178, 179, 182, 278,
722 158, 180, 107, 181, 285, 183, 184, 189, 188, 309,
723 107, 190, 185, 186, 186, 158, 187, 332, 188, 193,
724 288, 191, 289, 310, 194, 290, 291, 188, 195, 192,
725 336, 196, 200, 107, 197, 198, 201, 199, 296, 202,
727 188, 236, 323, 324, 186, 237, 107, 318, 337, 203,
728 204, 207, 97, 208, 186, 209, 210, 211, 212, 213,
729 216, 319, 297, 214, 217, 333, 499, 218, 219, 186,
730 215, 500, 220, 107, 107, 221, 222, 226, 327, 223,
731 224, 338, 225, 186, 227, 228, 343, 97, 351, 158,
732 344, 229, 352, 186, 230, 374, 368, 158, 353, 365,
733 371, 107, 369, 370, 188, 378, 379, 383, 372, 388,
734 375, 376, 385, 386, 188, 396, 319, 389, 366, 380,
735 430, 381, 391, 390, 275, 392, 186, 431, 489, 397,
736 421, 433, 739, 393, 441, 742, 477, 509, 490, 398,
738 394, 422, 532, 423, 424, 425, 442, 434, 435, 478,
739 443, 444, 445, 446, 447, 503, 510, 319, 538, 592,
740 553, 569, 533, 579, 104, 743, 504, 593, 595, 513,
741 744, 554, 539, 555, 556, 557, 558, 596, 570, 594,
742 597, 619, 624, 664, 598, 632, 633, 620, 645, 625,
743 683, 634, 678, 188, 706, 158, 158, 665, 646, 626,
744 707, 740, 684, 79, 647, 741, 745, 79, 729, 746,
745 748, 749, 97, 750, 751, 752, 747, 753, 754, 755,
746 756, 158, 757, 758, 759, 760, 761, 762, 764, 765,
747 766, 767, 188, 188, 768, 769, 770, 763, 771, 772,
749 773, 97, 774, 104, 775, 776, 777, 778, 104, 779,
750 561, 780, 104, 781, 782, 783, 784, 785, 786, 158,
751 186, 319, 319, 787, 788, 789, 790, 792, 793, 794,
752 795, 796, 186, 797, 798, 799, 188, 800, 801, 802,
753 803, 804, 805, 806, 807, 808, 791, 809, 810, 97,
754 97, 561, 561, 188, 811, 812, 813, 814, 815, 97,
755 158, 816, 817, 818, 97, 561, 819, 820, 821, 822,
756 823, 824, 825, 826, 561, 827, 828, 829, 830, 561,
757 831, 188, 832, 833, 834, 835, 836, 837, 838, 839,
758 840, 841, 842, 843, 844, 845, 846, 104, 104, 97,
760 847, 848, 849, 319, 850, 319, 319, 851, 319, 319,
761 852, 97, 853, 854, 97, 855, 856, 857, 858, 859,
762 860, 861, 862, 863, 864, 865, 866, 867, 836, 868,
763 158, 869, 870, 871, 186, 319, 872, 873, 874, 158,
764 158, 158, 875, 876, 877, 878, 879, 880, 188, 188,
765 881, 882, 729, 561, 561, 883, 884, 886, 887, 888,
766 889, 729, 78, 319, 319, 890, 729, 891, 561, 97,
767 892, 893, 158, 885, 561, 894, 895, 896, 897, 899,
768 900, 836, 901, 902, 903, 904, 905, 97, 906, 907,
769 158, 97, 910, 836, 911, 898, 912, 913, 836, 908,
771 914, 915, 916, 917, 561, 909, 918, 104, 919, 920,
772 921, 922, 923, 924, 729, 925, 926, 561, 927, 928,
773 929, 561, 930, 729, 158, 158, 931, 932, 836, 933,
774 188, 188, 934, 935, 936, 937, 561, 938, 97, 939,
775 940, 941, 942, 943, 944, 945, 946, 947, 948, 949,
776 950, 561, 951, 952, 953, 954, 955, 957, 958, 959,
777 961, 962, 963, 964, 965, 966, 967, 186, 968, 969,
778 561, 970, 971, 956, 972, 186, 960, 561, 973, 974,
779 561, 975, 561, 976, 977, 836, 978, 979, 186, 561,
780 981, 561, 982, 561, 983, 561, 984, 561, 836, 985,
782 561, 986, 186, 561, 980, 987, 988, 989, 990, 561,
783 991, 992, 561, 561, 4, 736, 735, 734, 158, 561,
784 733, 732, 731, 730, 107, 107, 729, 77, 728, 727,
785 726, 77, 188, 725, 724, 723, 722, 97, 97, 721,
786 720, 719, 718, 717, 186, 319, 716, 186, 715, 158,
787 714, 319, 713, 712, 711, 710, 709, 708, 319, 705,
788 319, 704, 703, 702, 107, 107, 107, 158, 701, 700,
789 699, 104, 104, 698, 697, 696, 695, 694, 693, 692,
790 691, 690, 689, 104, 688, 687, 686, 685, 186, 607,
791 158, 682, 681, 680, 679, 677, 676, 186, 675, 674,
793 186, 186, 673, 672, 186, 275, 188, 671, 670, 669,
794 668, 667, 666, 186, 186, 663, 158, 662, 158, 188,
795 97, 661, 660, 659, 658, 657, 656, 655, 654, 653,
796 79, 652, 29, 651, 97, 650, 649, 648, 644, 643,
797 186, 642, 641, 188, 640, 158, 158, 639, 638, 97,
798 637, 636, 635, 631, 630, 629, 628, 627, 607, 77,
799 623, 622, 188, 97, 607, 97, 158, 621, 618, 275,
800 188, 158, 617, 616, 158, 615, 614, 613, 158, 561,
801 612, 188, 607, 611, 158, 610, 609, 608, 275, 607,
802 606, 275, 605, 604, 603, 602, 601, 600, 599, 591,
804 590, 589, 158, 588, 587, 586, 585, 584, 583, 97,
805 186, 188, 97, 275, 582, 581, 580, 578, 577, 576,
806 575, 104, 104, 574, 573, 104, 568, 104, 104, 567,
807 566, 565, 104, 564, 104, 188, 563, 562, 561, 560,
808 559, 552, 551, 550, 549, 548, 547, 546, 545, 544,
809 543, 107, 540, 97, 537, 536, 186, 535, 534, 531,
810 530, 529, 107, 528, 527, 526, 525, 524, 523, 522,
811 521, 520, 519, 518, 517, 516, 515, 29, 514, 512,
812 511, 158, 508, 507, 506, 505, 502, 319, 186, 501,
813 498, 497, 496, 495, 494, 493, 492, 491, 488, 487,
815 486, 485, 484, 483, 482, 481, 480, 188, 479, 476,
816 475, 474, 97, 473, 472, 471, 470, 469, 97, 468,
817 467, 466, 465, 186, 464, 463, 462, 461, 460, 459,
818 458, 457, 456, 107, 107, 455, 158, 454, 186, 453,
819 452, 451, 450, 449, 448, 188, 440, 439, 438, 437,
820 436, 432, 429, 428, 427, 426, 104, 420, 419, 418,
821 417, 416, 415, 414, 413, 412, 411, 410, 409, 158,
822 104, 408, 407, 406, 405, 404, 104, 403, 402, 401,
823 158, 400, 399, 395, 387, 97, 384, 382, 377, 373,
824 367, 364, 363, 362, 361, 360, 359, 358, 357, 356,
826 355, 354, 188, 188, 350, 349, 348, 347, 346, 345,
827 342, 341, 340, 339, 335, 334, 97, 331, 330, 186,
828 329, 328, 326, 325, 107, 322, 321, 158, 320, 317,
829 316, 314, 313, 275, 312, 158, 107, 311, 308, 307,
830 188, 305, 304, 303, 302, 97, 301, 298, 186, 107,
831 287, 286, 284, 186, 283, 279, 270, 269, 268, 265,
832 264, 263, 259, 104, 258, 257, 104, 104, 104, 254,
833 253, 252, 251, 250, 249, 248, 104, 247, 246, 245,
834 244, 104, 97, 243, 242, 241, 240, 81, 80, 239,
835 169, 116, 104, 115, 114, 111, 105, 104, 104, 100,
837 99, 96, 90, 85, 84, 83, 82, 81, 80, 28,
838 27, 22, 21, 993, 3, 993, 993, 993, 993, 993,
839 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
840 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
841 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
842 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
843 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
844 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
845 993, 993, 993, 993, 993, 993, 993, 993
848 static yyconst
short int yy_chk
[1389] =
850 0, 1, 1, 1, 1, 1, 1, 1, 0, 1,
851 0, 1, 12, 12, 1, 1, 1, 13, 24, 24,
852 0, 0, 13, 0, 0, 0, 1, 0, 0, 0,
853 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
854 1, 1, 46, 0, 62, 184, 31, 33, 62, 46,
855 39, 33, 0, 30, 39, 184, 31, 33, 34, 30,
856 75, 36, 34, 36, 39, 72, 75, 72, 1, 1,
857 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
858 118, 2, 139, 2, 43, 43, 2, 2, 2, 44,
859 52, 118, 44, 44, 43, 43, 139, 123, 2, 52,
861 52, 52, 123, 52, 68, 52, 52, 163, 68, 163,
862 2, 2, 2, 2, 53, 56, 56, 56, 53, 56,
863 56, 55, 53, 56, 55, 55, 138, 56, 53, 55,
864 57, 53, 55, 57, 53, 55, 57, 60, 138, 55,
865 2, 2, 2, 2, 2, 16, 60, 60, 60, 640,
866 16, 151, 60, 73, 16, 16, 73, 73, 151, 16,
867 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
868 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
869 127, 16, 641, 127, 16, 16, 16, 16, 16, 16,
870 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
872 16, 16, 16, 16, 16, 16, 16, 16, 124, 16,
873 16, 16, 16, 54, 105, 384, 54, 384, 105, 114,
874 54, 54, 114, 124, 54, 122, 58, 54, 58, 122,
875 58, 54, 58, 54, 59, 59, 143, 114, 59, 143,
876 122, 128, 125, 58, 412, 128, 125, 642, 59, 63,
877 412, 63, 63, 63, 63, 63, 63, 63, 64, 125,
878 63, 63, 63, 63, 132, 64, 64, 65, 132, 154,
879 181, 65, 64, 64, 643, 65, 64, 181, 64, 66,
880 135, 65, 135, 154, 66, 135, 135, 65, 66, 65,
881 189, 66, 67, 140, 66, 66, 67, 66, 140, 67,
883 67, 74, 172, 172, 67, 74, 140, 166, 189, 67,
884 67, 69, 74, 69, 74, 69, 69, 69, 69, 69,
885 70, 166, 141, 69, 70, 182, 339, 70, 70, 644,
886 69, 339, 70, 182, 141, 70, 70, 71, 175, 70,
887 70, 190, 70, 141, 71, 71, 195, 190, 203, 175,
888 195, 71, 203, 212, 71, 222, 219, 190, 203, 217,
889 220, 217, 219, 219, 212, 224, 224, 226, 220, 231,
890 222, 222, 228, 228, 226, 234, 224, 231, 217, 224,
891 269, 224, 232, 231, 235, 232, 235, 269, 330, 234,
892 263, 271, 645, 232, 279, 647, 317, 349, 330, 235,
894 232, 263, 374, 263, 263, 263, 279, 271, 271, 317,
895 279, 279, 279, 279, 279, 344, 349, 353, 380, 441,
896 395, 411, 374, 422, 422, 648, 344, 441, 442, 353,
897 649, 395, 380, 395, 395, 395, 395, 442, 411, 441,
898 442, 475, 486, 535, 442, 492, 492, 475, 508, 486,
899 563, 492, 554, 554, 595, 650, 651, 535, 508, 486,
900 595, 646, 563, 652, 508, 646, 653, 654, 655, 656,
901 657, 658, 659, 660, 661, 662, 656, 663, 664, 665,
902 666, 667, 668, 669, 670, 671, 672, 673, 674, 675,
903 676, 677, 678, 679, 680, 681, 682, 673, 683, 684,
905 685, 686, 687, 688, 689, 690, 691, 692, 693, 694,
906 695, 696, 697, 698, 699, 700, 701, 702, 703, 704,
907 705, 706, 707, 708, 709, 710, 711, 712, 713, 714,
908 715, 716, 717, 718, 719, 720, 721, 722, 723, 724,
909 725, 726, 727, 728, 730, 731, 711, 732, 733, 734,
910 735, 736, 737, 738, 739, 740, 741, 742, 743, 744,
911 745, 746, 747, 748, 749, 750, 751, 752, 753, 754,
912 755, 756, 757, 758, 759, 760, 761, 762, 763, 764,
913 765, 766, 767, 768, 769, 770, 771, 772, 773, 774,
914 775, 776, 777, 778, 779, 780, 781, 782, 783, 784,
916 785, 786, 787, 788, 789, 790, 791, 792, 793, 794,
917 795, 796, 797, 798, 799, 800, 801, 802, 803, 804,
918 805, 806, 807, 808, 809, 810, 811, 812, 813, 814,
919 815, 816, 817, 818, 819, 820, 821, 822, 823, 824,
920 825, 826, 827, 828, 829, 830, 831, 832, 833, 834,
921 835, 837, 838, 839, 840, 841, 842, 843, 844, 845,
922 846, 847, 848, 849, 850, 851, 852, 853, 854, 855,
923 856, 857, 858, 842, 859, 860, 861, 862, 863, 864,
924 865, 866, 867, 868, 869, 870, 871, 872, 873, 874,
925 875, 876, 877, 878, 879, 863, 880, 881, 882, 876,
927 883, 884, 885, 886, 887, 876, 888, 889, 890, 891,
928 892, 893, 894, 895, 896, 897, 898, 899, 900, 901,
929 902, 903, 904, 905, 906, 907, 908, 909, 910, 911,
930 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,
931 922, 923, 924, 925, 926, 927, 928, 929, 930, 931,
932 932, 933, 934, 935, 936, 937, 938, 939, 940, 941,
933 942, 943, 944, 945, 946, 947, 948, 949, 950, 951,
934 952, 953, 954, 938, 955, 956, 941, 957, 958, 959,
935 960, 961, 962, 963, 964, 965, 966, 967, 968, 969,
936 970, 971, 972, 973, 974, 975, 976, 977, 978, 979,
938 980, 981, 982, 983, 967, 984, 985, 986, 987, 988,
939 989, 990, 991, 992, 994, 639, 638, 637, 636, 635,
940 634, 633, 632, 631, 630, 629, 628, 627, 626, 625,
941 624, 623, 622, 621, 620, 619, 618, 617, 616, 615,
942 614, 613, 612, 611, 610, 609, 608, 606, 605, 604,
943 603, 602, 601, 600, 599, 598, 597, 596, 594, 593,
944 592, 590, 589, 588, 587, 586, 585, 584, 583, 582,
945 581, 580, 579, 578, 577, 576, 575, 574, 573, 572,
946 571, 570, 569, 568, 567, 566, 565, 564, 562, 560,
947 559, 558, 557, 556, 555, 553, 552, 551, 550, 549,
949 548, 547, 546, 545, 544, 543, 542, 541, 540, 539,
950 538, 537, 536, 533, 532, 531, 530, 529, 528, 527,
951 526, 525, 524, 523, 522, 521, 520, 519, 518, 517,
952 516, 515, 514, 513, 512, 511, 510, 509, 507, 506,
953 505, 504, 503, 502, 501, 500, 499, 498, 497, 496,
954 495, 494, 493, 491, 490, 489, 488, 487, 485, 484,
955 483, 482, 481, 480, 479, 478, 477, 476, 474, 473,
956 472, 471, 469, 468, 467, 466, 465, 464, 463, 462,
957 461, 460, 459, 458, 457, 456, 455, 454, 453, 452,
958 451, 450, 449, 448, 447, 446, 445, 444, 443, 440,
960 439, 438, 437, 436, 435, 434, 433, 432, 431, 430,
961 429, 428, 427, 426, 425, 424, 423, 421, 420, 419,
962 418, 417, 416, 415, 414, 413, 410, 409, 408, 407,
963 406, 405, 404, 403, 402, 401, 400, 399, 398, 397,
964 396, 394, 393, 392, 391, 390, 389, 388, 387, 386,
965 385, 383, 382, 381, 379, 378, 377, 376, 375, 373,
966 372, 371, 370, 369, 368, 367, 366, 365, 364, 363,
967 362, 361, 360, 359, 358, 357, 356, 355, 354, 352,
968 351, 350, 348, 347, 346, 345, 343, 342, 341, 340,
969 338, 337, 336, 335, 334, 333, 332, 331, 329, 328,
971 327, 326, 325, 324, 323, 322, 321, 320, 318, 316,
972 315, 314, 313, 312, 311, 310, 309, 308, 307, 306,
973 305, 304, 302, 301, 300, 299, 298, 297, 296, 295,
974 294, 293, 292, 291, 290, 289, 288, 287, 286, 285,
975 284, 283, 282, 281, 280, 278, 277, 276, 274, 273,
976 272, 270, 268, 267, 266, 265, 264, 262, 261, 260,
977 259, 258, 257, 256, 255, 254, 253, 252, 251, 250,
978 249, 248, 247, 246, 245, 244, 243, 242, 241, 239,
979 238, 237, 236, 233, 230, 229, 227, 225, 223, 221,
980 218, 216, 215, 214, 213, 211, 210, 209, 208, 207,
982 206, 205, 204, 202, 201, 200, 199, 198, 197, 196,
983 194, 193, 192, 191, 187, 185, 183, 180, 179, 178,
984 177, 176, 174, 173, 171, 170, 169, 168, 167, 165,
985 164, 162, 161, 160, 159, 157, 156, 155, 153, 152,
986 150, 149, 148, 147, 146, 145, 144, 142, 137, 136,
987 134, 133, 131, 130, 129, 126, 121, 120, 119, 117,
988 116, 115, 113, 112, 111, 110, 109, 108, 106, 103,
989 102, 101, 100, 99, 98, 96, 95, 94, 93, 92,
990 91, 90, 89, 88, 87, 86, 85, 81, 80, 76,
991 61, 50, 49, 48, 47, 45, 42, 41, 40, 38,
993 37, 35, 32, 28, 27, 26, 25, 23, 20, 15,
994 14, 11, 7, 3, 993, 993, 993, 993, 993, 993,
995 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
996 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
997 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
998 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
999 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
1000 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
1001 993, 993, 993, 993, 993, 993, 993, 993
1004 static yy_state_type yy_last_accepting_state
;
1005 static char *yy_last_accepting_cpos
;
1007 /* The intent behind this definition is that it'll catch
1008 * any uses of REJECT which flex missed.
1010 #define REJECT reject_used_but_not_detected
1011 #define yymore() yymore_used_but_not_detected
1012 #define YY_MORE_ADJ 0
1013 #define YY_RESTORE_YY_MORE_OFFSET
1023 #define strdup _strdup
1024 #define fileno _fileno
1025 #define isatty _isatty
1028 /* enlarge token buffer to tokenize whole strings */
1030 #define YYLMAX 64000
1035 #include "grammar.h"
1042 extern YYSTYPE yylval
;
1045 #define token_debug printf
1047 int token_debug(const char *format
, ...);
1049 #line 1026 "lex.yy.c"
1051 /* Macros after this point can all be overridden by user definitions in
1055 #ifndef YY_SKIP_YYWRAP
1057 extern "C" int yywrap
YY_PROTO(( void ));
1059 extern int yywrap
YY_PROTO(( void ));
1064 //static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1068 static void yy_flex_strncpy
YY_PROTO(( char *, yyconst
char *, int ));
1071 #ifdef YY_NEED_STRLEN
1072 static int yy_flex_strlen
YY_PROTO(( yyconst
char * ));
1077 static int yyinput
YY_PROTO(( void ));
1079 static int input
YY_PROTO(( void ));
1084 static int yy_start_stack_ptr
= 0;
1085 static int yy_start_stack_depth
= 0;
1086 static int *yy_start_stack
= 0;
1087 #ifndef YY_NO_PUSH_STATE
1088 static void yy_push_state
YY_PROTO(( int new_state
));
1090 #ifndef YY_NO_POP_STATE
1091 static void yy_pop_state
YY_PROTO(( void ));
1093 #ifndef YY_NO_TOP_STATE
1094 static int yy_top_state
YY_PROTO(( void ));
1098 #define YY_NO_PUSH_STATE 1
1099 #define YY_NO_POP_STATE 1
1100 #define YY_NO_TOP_STATE 1
1103 #ifdef YY_MALLOC_DECL
1111 /* Just try to get by without declaring the routines. This will fail
1112 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1113 * or sizeof(void*) != sizeof(int).
1118 /* Amount of stuff to slurp up with each read. */
1119 #ifndef YY_READ_BUF_SIZE
1120 #define YY_READ_BUF_SIZE 8192
1123 /* Copy whatever the last rule matched to the standard output. */
1126 /* This used to be an fputs(), but since the string might contain NUL's,
1127 * we now use fwrite().
1129 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1132 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1133 * is returned in "result".
1136 #define YY_INPUT(buf,result,max_size) \
1137 if ( yy_current_buffer->yy_is_interactive ) \
1140 for ( n = 0; n < max_size && \
1141 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1142 buf[n] = (char) c; \
1144 buf[n++] = (char) c; \
1145 if ( c == EOF && ferror( yyin ) ) \
1146 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1149 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1150 && ferror( yyin ) ) \
1151 YY_FATAL_ERROR( "input in flex scanner failed" );
1154 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1155 * we don't want an extra ';' after the "return" because that will cause
1156 * some compilers to complain about unreachable statements.
1159 #define yyterminate() return YY_NULL
1162 /* Number of entries by which start-condition stack grows. */
1163 #ifndef YY_START_STACK_INCR
1164 #define YY_START_STACK_INCR 25
1167 /* Report a fatal error. */
1168 #ifndef YY_FATAL_ERROR
1169 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1172 /* Default declaration of generated scanner - a define so the user can
1173 * easily add parameters.
1176 #define YY_DECL int yylex YY_PROTO(( void ))
1179 /* Code executed at the beginning of each rule, after yytext and yyleng
1182 #ifndef YY_USER_ACTION
1183 #define YY_USER_ACTION
1186 /* Code executed at the end of each rule. */
1188 #define YY_BREAK break;
1191 #define YY_RULE_SETUP \
1196 register yy_state_type yy_current_state
;
1197 register char *yy_cp
, *yy_bp
;
1198 register int yy_act
;
1202 #line 1179 "lex.yy.c"
1213 yy_start
= 1; /* first start state */
1221 if ( ! yy_current_buffer
)
1223 yy_create_buffer( yyin
, YY_BUF_SIZE
);
1225 yy_load_buffer_state();
1228 while ( 1 ) /* loops until end-of-file is reached */
1232 /* Support of yytext. */
1233 *yy_cp
= yy_hold_char
;
1235 /* yy_bp points to the position in yy_ch_buf of the start of
1240 yy_current_state
= yy_start
;
1244 register YY_CHAR yy_c
= sal::static_int_cast
<YY_CHAR
>(yy_ec
[YY_SC_TO_UI(*yy_cp
)]);
1245 if ( yy_accept
[yy_current_state
] )
1247 yy_last_accepting_state
= yy_current_state
;
1248 yy_last_accepting_cpos
= yy_cp
;
1250 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
1252 yy_current_state
= (int) yy_def
[yy_current_state
];
1253 if ( yy_current_state
>= 994 )
1254 yy_c
= sal::static_int_cast
<YY_CHAR
>(yy_meta
[(unsigned int) yy_c
]);
1256 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
1259 while ( yy_base
[yy_current_state
] != 1315 );
1262 yy_act
= yy_accept
[yy_current_state
];
1264 { /* have to back up */
1265 yy_cp
= yy_last_accepting_cpos
;
1266 yy_current_state
= yy_last_accepting_state
;
1267 yy_act
= yy_accept
[yy_current_state
];
1270 YY_DO_BEFORE_ACTION
;
1273 do_action
: /* This label is used only to access EOF actions. */
1277 { /* beginning of action switch */
1278 case 0: /* must back up */
1279 /* undo the effects of YY_DO_BEFORE_ACTION */
1280 *yy_cp
= yy_hold_char
;
1281 yy_cp
= yy_last_accepting_cpos
;
1282 yy_current_state
= yy_last_accepting_state
;
1283 goto yy_find_action
;
1288 { yylval
.str
= yytext
+1; token_debug(" ==>Begin[%s]\n",yytext
+1); return EQBEGIN
; }
1293 { yylval
.str
= yytext
+1; token_debug(" ==>End[%s]\n",yytext
+1); return EQEND
; }
1298 { yylval
.str
= yytext
+1; token_debug(" ==>Left[%s]\n",yytext
+1); return EQLEFT
; }
1303 { yylval
.str
= yytext
+1; token_debug(" ==>LeftDelim[%s]\n",yytext
+1); return LEFT_DELIM
; }
1308 { yylval
.str
= yytext
+1; token_debug(" ==>RightDelim[%s]\n",yytext
+1); return RIGHT_DELIM
; }
1313 { yylval
.str
= yytext
+1; token_debug(" ==>Right[%s]\n",yytext
+1); return EQRIGHT
; }
1318 { yylval
.str
= yytext
; token_debug(" ==>NewLine[%s]\n",yytext
); return NEWLINE
; }
1323 { yylval
.str
= yytext
+1; token_debug(" ==>Accent[%s]\n",yytext
+1); return ACCENT
; }
1328 { yylval
.str
= yytext
+1; token_debug(" ==>Small_Greek[%s]\n",yytext
+1); return SMALL_GREEK
; }
1333 { yylval
.str
= yytext
+1; token_debug(" ==>Capital_Greek[%s]\n",yytext
+1); return CAPITAL_GREEK
; }
1338 { yylval
.str
= yytext
+1; token_debug(" ==>Binary_Operator[%s]\n",yytext
+1); return BINARY_OPERATOR
; }
1343 { yylval
.str
= yytext
+1; token_debug(" ==>Relation_Symbol[%s]\n",yytext
+1); return RELATION_OPERATOR
; }
1348 { yylval
.str
= strdup("neq"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR
; }
1353 { yylval
.str
= strdup("vmlt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR
; }
1358 { yylval
.str
= strdup("vmgt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR
; }
1363 { yylval
.str
= strdup("mlt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR
; }
1368 { yylval
.str
= strdup("mgt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR
; }
1373 { yylval
.str
= yytext
; token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR
; }
1378 { yylval
.str
= yytext
+1; token_debug(" ==>Arrow[%s]\n",yytext
+1); return ARROW
; }
1383 { yylval
.str
= strdup("leftrightarrow"); token_debug(" ==>Arrow[leftrightarrow]\n"); return ARROW
; }
1388 { yylval
.str
= strdup("rightarrow"); token_debug(" ==>Arrow[rightarrow]\n"); return ARROW
; }
1393 { yylval
.str
= strdup("leftarrow"); token_debug(" ==>Arrow[leftarrow]\n"); return ARROW
; }
1399 { token_debug(" ==>Ignore[\\rm]\n"); }
1404 { yylval
.str
= yytext
+1; token_debug(" ==>General_Iden[%s]\n",yytext
+1); return GENERAL_IDEN
; }
1409 { yylval
.str
= yytext
+1; token_debug(" ==>General_Oper[%s]\n",yytext
+1); return GENERAL_OPER
; }
1414 { yylval
.str
= yytext
+1; token_debug(" ==>Big_Symbol[%s]\n",yytext
+1); return BIG_SYMBOL
; }
1419 { yylval
.str
= yytext
+1; token_debug(" ==>Function[%s]\n",yytext
+1); return FUNCTION
; }
1424 { yylval
.str
= yytext
+1; token_debug(" ==>Root[%s]\n",yytext
+1); return ROOT
; }
1429 { yylval
.str
= yytext
+1; token_debug(" ==>Fraction[%s]\n",yytext
+1); return FRACTION
; }
1434 { yylval
.str
= yytext
+1; token_debug(" ==>Over[%s]\n",yytext
+1); return EQOVER
; }
1439 { yylval
.str
= yytext
+1; token_debug(" ==>Delimeter[%s]\n",yytext
+1); return DELIMETER
; }
1444 { yylval
.str
= yytext
+1; token_debug(" ==>Large_Delim[%s]\n",yytext
+1); return LARGE_DELIM
; }
1449 { yylval
.str
= yytext
+1; token_debug(" ==>Decoration[%s]\n",yytext
+1); return DECORATION
; }
1454 { yylval
.str
= yytext
+1; token_debug(" ==>Space_Symbol[%s]\n",yytext
+1); /*return SPACE_SYMBOL;*/ }
1459 { yylval
.str
= strdup("quad"); token_debug(" ==>Space_Symbol[quad]\n"); /* return SPACE_SYMBOL;*/ }
1464 { yylval
.dval
= yytext
; token_debug(" ==>Digit[%s]\n",yytext
); return DIGIT
; }
1469 { yylval
.str
= yytext
; token_debug(" ==>Operator[%s]\n",yytext
); return OPERATOR
; }
1474 { token_debug(" ==>SubSup[%s]\n",yytext
); return yytext
[0]; }
1479 { token_debug(" ==>Paren[%s]\n",yytext
); return yytext
[0];}
1484 { token_debug(" ==>Abs[%s]\n",yytext
); return yytext
[0];}
1489 { token_debug(" ==>Space[0x%2x]\n",yytext
[0]); }
1494 { token_debug(" ==>Ignore[0x%2x]\n",yytext
[0]); }
1499 { yylval
.str
= yytext
; token_debug(" ==>String[%s]\n",yytext
); return STRING
; }
1504 { yylval
.str
= yytext
; token_debug(" ==>Else[%s]\n",yytext
); return CHARACTER
; }
1511 #line 1487 "lex.yy.c"
1512 case YY_STATE_EOF(INITIAL
):
1515 case YY_END_OF_BUFFER
:
1517 /* Amount of text matched not including the EOB char. */
1518 int yy_amount_of_matched_text
= (int) (yy_cp
- yytext_ptr
) - 1;
1520 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1521 *yy_cp
= yy_hold_char
;
1522 YY_RESTORE_YY_MORE_OFFSET
1524 if ( yy_current_buffer
->yy_buffer_status
== YY_BUFFER_NEW
)
1526 /* We're scanning a new file or input source. It's
1527 * possible that this happened because the user
1528 * just pointed yyin at a new source and called
1529 * yylex(). If so, then we have to assure
1530 * consistency between yy_current_buffer and our
1531 * globals. Here is the right place to do so, because
1532 * this is the first action (other than possibly a
1533 * back-up) that will match for the new input source.
1535 yy_n_chars
= yy_current_buffer
->yy_n_chars
;
1536 yy_current_buffer
->yy_input_file
= yyin
;
1537 yy_current_buffer
->yy_buffer_status
= YY_BUFFER_NORMAL
;
1540 /* Note that here we test for yy_c_buf_p "<=" to the position
1541 * of the first EOB in the buffer, since yy_c_buf_p will
1542 * already have been incremented past the NUL character
1543 * (since all states make transitions on EOB to the
1544 * end-of-buffer state). Contrast this with the test
1547 if ( yy_c_buf_p
<= &yy_current_buffer
->yy_ch_buf
[yy_n_chars
] )
1548 { /* This was really a NUL. */
1549 yy_state_type yy_next_state
;
1551 yy_c_buf_p
= yytext_ptr
+ yy_amount_of_matched_text
;
1553 yy_current_state
= yy_get_previous_state();
1555 /* Okay, we're now positioned to make the NUL
1556 * transition. We couldn't have
1557 * yy_get_previous_state() go ahead and do it
1558 * for us because it doesn't know how to deal
1559 * with the possibility of jamming (and we don't
1560 * want to build jamming into it because then it
1561 * will run more slowly).
1564 yy_next_state
= yy_try_NUL_trans( yy_current_state
);
1566 yy_bp
= yytext_ptr
+ YY_MORE_ADJ
;
1568 if ( yy_next_state
)
1570 /* Consume the NUL. */
1571 yy_cp
= ++yy_c_buf_p
;
1572 yy_current_state
= yy_next_state
;
1579 goto yy_find_action
;
1583 else switch ( yy_get_next_buffer() )
1585 case EOB_ACT_END_OF_FILE
:
1587 yy_did_buffer_switch_on_eof
= 0;
1591 /* Note: because we've taken care in
1592 * yy_get_next_buffer() to have set up
1593 * yytext, we can now set up
1594 * yy_c_buf_p so that if some total
1595 * hoser (like flex itself) wants to
1596 * call the scanner after we return the
1597 * YY_NULL, it'll still work - another
1598 * YY_NULL will get returned.
1600 yy_c_buf_p
= yytext_ptr
+ YY_MORE_ADJ
;
1602 yy_act
= YY_STATE_EOF(YY_START
);
1608 if ( ! yy_did_buffer_switch_on_eof
)
1614 case EOB_ACT_CONTINUE_SCAN
:
1616 yytext_ptr
+ yy_amount_of_matched_text
;
1618 yy_current_state
= yy_get_previous_state();
1621 yy_bp
= yytext_ptr
+ YY_MORE_ADJ
;
1624 case EOB_ACT_LAST_MATCH
:
1626 &yy_current_buffer
->yy_ch_buf
[yy_n_chars
];
1628 yy_current_state
= yy_get_previous_state();
1631 yy_bp
= yytext_ptr
+ YY_MORE_ADJ
;
1632 goto yy_find_action
;
1639 "fatal flex scanner internal error--no action found" );
1640 } /* end of action switch */
1641 } /* end of scanning one token */
1642 } /* end of yylex */
1645 /* yy_get_next_buffer - try to read in a new buffer
1647 * Returns a code representing an action:
1648 * EOB_ACT_LAST_MATCH -
1649 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1650 * EOB_ACT_END_OF_FILE - end of file
1653 static int yy_get_next_buffer()
1655 register char *dest
= yy_current_buffer
->yy_ch_buf
;
1656 register char *source
= yytext_ptr
;
1657 register int number_to_move
, i
;
1660 if ( yy_c_buf_p
> &yy_current_buffer
->yy_ch_buf
[yy_n_chars
+ 1] )
1662 "fatal flex scanner internal error--end of buffer missed" );
1664 if ( yy_current_buffer
->yy_fill_buffer
== 0 )
1665 { /* Don't try to fill the buffer, so this is an EOF. */
1666 if ( yy_c_buf_p
- yytext_ptr
- YY_MORE_ADJ
== 1 )
1668 /* We matched a single character, the EOB, so
1669 * treat this as a final EOF.
1671 return EOB_ACT_END_OF_FILE
;
1676 /* We matched some text prior to the EOB, first
1679 return EOB_ACT_LAST_MATCH
;
1683 /* Try to read more data. */
1685 /* First move last chars to start of buffer. */
1686 number_to_move
= (int) (yy_c_buf_p
- yytext_ptr
) - 1;
1688 for ( i
= 0; i
< number_to_move
; ++i
)
1689 *(dest
++) = *(source
++);
1691 if ( yy_current_buffer
->yy_buffer_status
== YY_BUFFER_EOF_PENDING
)
1692 /* don't do the read, it's not guaranteed to return an EOF,
1695 yy_current_buffer
->yy_n_chars
= yy_n_chars
= 0;
1700 yy_current_buffer
->yy_buf_size
- number_to_move
- 1;
1702 while ( num_to_read
<= 0 )
1703 { /* Not enough room in the buffer - grow it. */
1704 #ifdef YY_USES_REJECT
1706 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1709 /* just a shorter name for the current buffer */
1710 YY_BUFFER_STATE b
= yy_current_buffer
;
1712 int yy_c_buf_p_offset
=
1713 (int) (yy_c_buf_p
- b
->yy_ch_buf
);
1715 if ( b
->yy_is_our_buffer
)
1717 int new_size
= b
->yy_buf_size
* 2;
1719 if ( new_size
<= 0 )
1720 b
->yy_buf_size
+= b
->yy_buf_size
/ 8;
1722 b
->yy_buf_size
*= 2;
1724 b
->yy_ch_buf
= (char *)
1725 /* Include room in for 2 EOB chars. */
1726 yy_flex_realloc( (void *) b
->yy_ch_buf
,
1727 b
->yy_buf_size
+ 2 );
1730 /* Can't grow it, we don't own it. */
1733 if ( ! b
->yy_ch_buf
)
1735 "fatal error - scanner input buffer overflow" );
1737 yy_c_buf_p
= &b
->yy_ch_buf
[yy_c_buf_p_offset
];
1739 num_to_read
= yy_current_buffer
->yy_buf_size
-
1744 if ( num_to_read
> YY_READ_BUF_SIZE
)
1745 num_to_read
= YY_READ_BUF_SIZE
;
1747 /* Read in more data. */
1748 YY_INPUT( (&yy_current_buffer
->yy_ch_buf
[number_to_move
]),
1749 yy_n_chars
, num_to_read
);
1751 yy_current_buffer
->yy_n_chars
= yy_n_chars
;
1754 if ( yy_n_chars
== 0 )
1756 if ( number_to_move
== YY_MORE_ADJ
)
1758 ret_val
= EOB_ACT_END_OF_FILE
;
1764 ret_val
= EOB_ACT_LAST_MATCH
;
1765 yy_current_buffer
->yy_buffer_status
=
1766 YY_BUFFER_EOF_PENDING
;
1771 ret_val
= EOB_ACT_CONTINUE_SCAN
;
1773 yy_n_chars
+= number_to_move
;
1774 yy_current_buffer
->yy_ch_buf
[yy_n_chars
] = YY_END_OF_BUFFER_CHAR
;
1775 yy_current_buffer
->yy_ch_buf
[yy_n_chars
+ 1] = YY_END_OF_BUFFER_CHAR
;
1777 yytext_ptr
= &yy_current_buffer
->yy_ch_buf
[0];
1783 /* yy_get_previous_state - get the state just before the EOB char was reached */
1785 static yy_state_type
yy_get_previous_state()
1787 register yy_state_type yy_current_state
;
1788 register char *yy_cp
;
1790 yy_current_state
= yy_start
;
1792 for ( yy_cp
= yytext_ptr
+ YY_MORE_ADJ
; yy_cp
< yy_c_buf_p
; ++yy_cp
)
1794 register YY_CHAR yy_c
= sal::static_int_cast
<YY_CHAR
>(*yy_cp
? yy_ec
[YY_SC_TO_UI(*yy_cp
)] : 1);
1795 if ( yy_accept
[yy_current_state
] )
1797 yy_last_accepting_state
= yy_current_state
;
1798 yy_last_accepting_cpos
= yy_cp
;
1800 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
1802 yy_current_state
= (int) yy_def
[yy_current_state
];
1803 if ( yy_current_state
>= 994 )
1804 yy_c
= sal::static_int_cast
<YY_CHAR
>(yy_meta
[(unsigned int) yy_c
]);
1806 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
1809 return yy_current_state
;
1813 /* yy_try_NUL_trans - try to make a transition on the NUL character
1816 * next_state = yy_try_NUL_trans( current_state );
1819 #ifdef YY_USE_PROTOS
1820 static yy_state_type
yy_try_NUL_trans( yy_state_type yy_current_state
)
1822 static yy_state_type
yy_try_NUL_trans( yy_current_state
)
1823 yy_state_type yy_current_state
;
1826 register int yy_is_jam
;
1827 register char *yy_cp
= yy_c_buf_p
;
1829 register YY_CHAR yy_c
= 1;
1830 if ( yy_accept
[yy_current_state
] )
1832 yy_last_accepting_state
= yy_current_state
;
1833 yy_last_accepting_cpos
= yy_cp
;
1835 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
1837 yy_current_state
= (int) yy_def
[yy_current_state
];
1838 if ( yy_current_state
>= 994 )
1839 yy_c
= sal::static_int_cast
<YY_CHAR
>(yy_meta
[(unsigned int) yy_c
]);
1841 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
1842 yy_is_jam
= (yy_current_state
== 993);
1844 return yy_is_jam
? 0 : yy_current_state
;
1849 #ifdef YY_USE_PROTOS
1850 static void yyunput( int c, register char *yy_bp )
1852 static void yyunput( c, yy_bp )
1854 register char *yy_bp;
1857 register char *yy_cp = yy_c_buf_p;
1859 // undo effects of setting up yytext
1860 *yy_cp = yy_hold_char;
1862 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
1863 { // need to shift things up to make room
1864 // +2 for EOB chars.
1865 register int number_to_move = yy_n_chars + 2;
1866 register char *dest = &yy_current_buffer->yy_ch_buf[
1867 yy_current_buffer->yy_buf_size + 2];
1868 register char *source =
1869 &yy_current_buffer->yy_ch_buf[number_to_move];
1871 while ( source > yy_current_buffer->yy_ch_buf )
1872 *--dest = *--source;
1874 yy_cp += (int) (dest - source);
1875 yy_bp += (int) (dest - source);
1876 yy_current_buffer->yy_n_chars =
1877 yy_n_chars = yy_current_buffer->yy_buf_size;
1879 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
1880 YY_FATAL_ERROR( "flex scanner push-back overflow" );
1883 *--yy_cp = (char) c;
1887 yy_hold_char = *yy_cp;
1890 #endif // ifndef YY_NO_UNPUT
1894 static int yyinput()
1901 *yy_c_buf_p
= yy_hold_char
;
1903 if ( *yy_c_buf_p
== YY_END_OF_BUFFER_CHAR
)
1905 /* yy_c_buf_p now points to the character we want to return.
1906 * If this occurs *before* the EOB characters, then it's a
1907 * valid NUL; if not, then we've hit the end of the buffer.
1909 if ( yy_c_buf_p
< &yy_current_buffer
->yy_ch_buf
[yy_n_chars
] )
1910 /* This was really a NUL. */
1914 { /* need more input */
1915 int offset
= yy_c_buf_p
- yytext_ptr
;
1918 switch ( yy_get_next_buffer() )
1920 case EOB_ACT_LAST_MATCH
:
1921 /* This happens because yy_g_n_b()
1922 * sees that we've accumulated a
1923 * token and flags that we need to
1924 * try matching the token before
1925 * proceeding. But for input(),
1926 * there's no matching to consider.
1927 * So convert the EOB_ACT_LAST_MATCH
1928 * to EOB_ACT_END_OF_FILE.
1931 /* Reset buffer status. */
1936 case EOB_ACT_END_OF_FILE
:
1941 if ( ! yy_did_buffer_switch_on_eof
)
1950 case EOB_ACT_CONTINUE_SCAN
:
1951 yy_c_buf_p
= yytext_ptr
+ offset
;
1957 c
= *(unsigned char *) yy_c_buf_p
; /* cast for 8-bit char's */
1958 *yy_c_buf_p
= '\0'; /* preserve yytext */
1959 yy_hold_char
= *++yy_c_buf_p
;
1966 #ifdef YY_USE_PROTOS
1967 void yyrestart( FILE *input_file
)
1969 void yyrestart( input_file
)
1973 if ( ! yy_current_buffer
)
1974 yy_current_buffer
= yy_create_buffer( yyin
, YY_BUF_SIZE
);
1976 yy_init_buffer( yy_current_buffer
, input_file
);
1977 yy_load_buffer_state();
1981 #ifdef YY_USE_PROTOS
1982 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer
)
1984 void yy_switch_to_buffer( new_buffer
)
1985 YY_BUFFER_STATE new_buffer
;
1988 if ( yy_current_buffer
== new_buffer
)
1991 if ( yy_current_buffer
)
1993 /* Flush out information for old buffer. */
1994 *yy_c_buf_p
= yy_hold_char
;
1995 yy_current_buffer
->yy_buf_pos
= yy_c_buf_p
;
1996 yy_current_buffer
->yy_n_chars
= yy_n_chars
;
1999 yy_current_buffer
= new_buffer
;
2000 yy_load_buffer_state();
2002 /* We don't actually know whether we did this switch during
2003 * EOF (yywrap()) processing, but the only time this flag
2004 * is looked at is after yywrap() is called, so it's safe
2005 * to go ahead and always set it.
2007 yy_did_buffer_switch_on_eof
= 1;
2011 #ifdef YY_USE_PROTOS
2012 void yy_load_buffer_state( void )
2014 void yy_load_buffer_state()
2017 yy_n_chars
= yy_current_buffer
->yy_n_chars
;
2018 yytext_ptr
= yy_c_buf_p
= yy_current_buffer
->yy_buf_pos
;
2019 yyin
= yy_current_buffer
->yy_input_file
;
2020 yy_hold_char
= *yy_c_buf_p
;
2024 #ifdef YY_USE_PROTOS
2025 YY_BUFFER_STATE
yy_create_buffer( FILE *file
, int size
)
2027 YY_BUFFER_STATE
yy_create_buffer( file
, size
)
2034 b
= (YY_BUFFER_STATE
) yy_flex_alloc( sizeof( struct yy_buffer_state
) );
2036 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2038 b
->yy_buf_size
= size
;
2040 /* yy_ch_buf has to be 2 characters longer than the size given because
2041 * we need to put in 2 end-of-buffer characters.
2043 b
->yy_ch_buf
= (char *) yy_flex_alloc( b
->yy_buf_size
+ 2 );
2044 if ( ! b
->yy_ch_buf
)
2045 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2047 b
->yy_is_our_buffer
= 1;
2049 yy_init_buffer( b
, file
);
2055 #ifdef YY_USE_PROTOS
2056 void yy_delete_buffer( YY_BUFFER_STATE b
)
2058 void yy_delete_buffer( b
)
2065 if ( b
== yy_current_buffer
)
2066 yy_current_buffer
= (YY_BUFFER_STATE
) 0;
2068 if ( b
->yy_is_our_buffer
)
2069 yy_flex_free( (void *) b
->yy_ch_buf
);
2071 yy_flex_free( (void *) b
);
2075 #ifndef YY_ALWAYS_INTERACTIVE
2076 #ifndef YY_NEVER_INTERACTIVE
2077 extern int isatty
YY_PROTO(( int ));
2081 #ifdef YY_USE_PROTOS
2082 void yy_init_buffer( YY_BUFFER_STATE b
, FILE *file
)
2084 void yy_init_buffer( b
, file
)
2091 yy_flush_buffer( b
);
2093 b
->yy_input_file
= file
;
2094 b
->yy_fill_buffer
= 1;
2096 #if YY_ALWAYS_INTERACTIVE
2097 b
->yy_is_interactive
= 1;
2099 #if YY_NEVER_INTERACTIVE
2100 b
->yy_is_interactive
= 0;
2102 b
->yy_is_interactive
= file
? (isatty( fileno(file
) ) > 0) : 0;
2108 #ifdef YY_USE_PROTOS
2109 void yy_flush_buffer( YY_BUFFER_STATE b
)
2111 void yy_flush_buffer( b
)
2121 /* We always need two end-of-buffer characters. The first causes
2122 * a transition to the end-of-buffer state. The second causes
2123 * a jam in that state.
2125 b
->yy_ch_buf
[0] = YY_END_OF_BUFFER_CHAR
;
2126 b
->yy_ch_buf
[1] = YY_END_OF_BUFFER_CHAR
;
2128 b
->yy_buf_pos
= &b
->yy_ch_buf
[0];
2131 b
->yy_buffer_status
= YY_BUFFER_NEW
;
2133 if ( b
== yy_current_buffer
)
2134 yy_load_buffer_state();
2138 #ifndef YY_NO_SCAN_BUFFER
2139 #ifdef YY_USE_PROTOS
2140 YY_BUFFER_STATE
yy_scan_buffer( char *base
, yy_size_t size
)
2142 YY_BUFFER_STATE
yy_scan_buffer( base
, size
)
2150 base
[size
-2] != YY_END_OF_BUFFER_CHAR
||
2151 base
[size
-1] != YY_END_OF_BUFFER_CHAR
)
2152 /* They forgot to leave room for the EOB's. */
2155 b
= (YY_BUFFER_STATE
) yy_flex_alloc( sizeof( struct yy_buffer_state
) );
2157 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2159 b
->yy_buf_size
= size
- 2; /* "- 2" to take care of EOB's */
2160 b
->yy_buf_pos
= b
->yy_ch_buf
= base
;
2161 b
->yy_is_our_buffer
= 0;
2162 b
->yy_input_file
= 0;
2163 b
->yy_n_chars
= b
->yy_buf_size
;
2164 b
->yy_is_interactive
= 0;
2166 b
->yy_fill_buffer
= 0;
2167 b
->yy_buffer_status
= YY_BUFFER_NEW
;
2169 yy_switch_to_buffer( b
);
2176 #ifndef YY_NO_SCAN_STRING
2177 #ifdef YY_USE_PROTOS
2178 YY_BUFFER_STATE
yy_scan_string( yyconst
char *yy_str
)
2180 YY_BUFFER_STATE
yy_scan_string( yy_str
)
2181 yyconst
char *yy_str
;
2185 for ( len
= 0; yy_str
[len
]; ++len
)
2188 return yy_scan_bytes( yy_str
, len
);
2193 #ifndef YY_NO_SCAN_BYTES
2194 #ifdef YY_USE_PROTOS
2195 YY_BUFFER_STATE
yy_scan_bytes( yyconst
char *bytes
, int len
)
2197 YY_BUFFER_STATE
yy_scan_bytes( bytes
, len
)
2198 yyconst
char *bytes
;
2207 /* Get memory for full buffer, including space for trailing EOB's. */
2209 buf
= (char *) yy_flex_alloc( n
);
2211 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2213 for ( i
= 0; i
< len
; ++i
)
2216 buf
[len
] = buf
[len
+1] = YY_END_OF_BUFFER_CHAR
;
2218 b
= yy_scan_buffer( buf
, n
);
2220 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2222 /* It's okay to grow etc. this buffer, and we should throw it
2223 * away when we're done.
2225 b
->yy_is_our_buffer
= 1;
2232 #ifndef YY_NO_PUSH_STATE
2233 #ifdef YY_USE_PROTOS
2234 static void yy_push_state( int new_state
)
2236 static void yy_push_state( new_state
)
2240 if ( yy_start_stack_ptr
>= yy_start_stack_depth
)
2244 yy_start_stack_depth
+= YY_START_STACK_INCR
;
2245 new_size
= yy_start_stack_depth
* sizeof( int );
2247 if ( ! yy_start_stack
)
2248 yy_start_stack
= (int *) yy_flex_alloc( new_size
);
2251 yy_start_stack
= (int *) yy_flex_realloc(
2252 (void *) yy_start_stack
, new_size
);
2254 if ( ! yy_start_stack
)
2256 "out of memory expanding start-condition stack" );
2259 yy_start_stack
[yy_start_stack_ptr
++] = YY_START
;
2266 #ifndef YY_NO_POP_STATE
2267 static void yy_pop_state()
2269 if ( --yy_start_stack_ptr
< 0 )
2270 YY_FATAL_ERROR( "start-condition stack underflow" );
2272 BEGIN(yy_start_stack
[yy_start_stack_ptr
]);
2277 #ifndef YY_NO_TOP_STATE
2278 static int yy_top_state()
2280 return yy_start_stack
[yy_start_stack_ptr
- 1];
2284 #ifndef YY_EXIT_FAILURE
2285 #define YY_EXIT_FAILURE 2
2288 #ifdef YY_USE_PROTOS
2289 static void yy_fatal_error( yyconst
char msg
[] )
2291 static void yy_fatal_error( msg
)
2295 (void) fprintf( stderr
, "%s\n", msg
);
2296 exit( YY_EXIT_FAILURE
);
2301 /* Redefine yyless() so it works in section 3 code. */
2307 /* Undo effects of setting up yytext. */ \
2308 yytext[yyleng] = yy_hold_char; \
2309 yy_c_buf_p = yytext + n; \
2310 yy_hold_char = *yy_c_buf_p; \
2311 *yy_c_buf_p = '\0'; \
2317 /* Internal utility routines. */
2320 #ifdef YY_USE_PROTOS
2321 static void yy_flex_strncpy( char *s1
, yyconst
char *s2
, int n
)
2323 static void yy_flex_strncpy( s1
, s2
, n
)
2330 for ( i
= 0; i
< n
; ++i
)
2335 #ifdef YY_NEED_STRLEN
2336 #ifdef YY_USE_PROTOS
2337 static int yy_flex_strlen( yyconst
char *s
)
2339 static int yy_flex_strlen( s
)
2344 for ( n
= 0; s
[n
]; ++n
)
2352 #ifdef YY_USE_PROTOS
2353 static void *yy_flex_alloc( yy_size_t size
)
2355 static void *yy_flex_alloc( size
)
2359 return (void *) malloc( size
);
2362 #ifdef YY_USE_PROTOS
2363 static void *yy_flex_realloc( void *ptr
, yy_size_t size
)
2365 static void *yy_flex_realloc( ptr
, size
)
2370 /* The cast to (char *) in the following accommodates both
2371 * implementations that use char* generic pointers, and those
2372 * that use void* generic pointers. It works with the latter
2373 * because both ANSI C and C++ allow castless assignment from
2374 * any pointer type to void*, and deal with argument conversions
2375 * as though doing an assignment.
2377 return (void *) realloc( (char *) ptr
, size
);
2380 #ifdef YY_USE_PROTOS
2381 static void yy_flex_free( void *ptr
)
2383 static void yy_flex_free( ptr
)
2400 void initFlex(const char *_code
)
2402 yy_switch_to_buffer( yy_scan_string(_code
) );
2407 yy_delete_buffer( YY_CURRENT_BUFFER
);
2412 int token_debug(const char * /*format*/, ...)