diff --git a/panda/src/egg/lexer.cxx.prebuilt b/panda/src/egg/lexer.cxx.prebuilt index 004beaa53f..c84a6e2a4b 100644 --- a/panda/src/egg/lexer.cxx.prebuilt +++ b/panda/src/egg/lexer.cxx.prebuilt @@ -1,3338 +1,3345 @@ -#line 2 "lex.yy.c" - -#line 4 "lex.yy.c" - -#define YY_INT_ALIGNED short int - -/* A lexical scanner generated by flex */ - -#define yy_create_buffer eggyy_create_buffer -#define yy_delete_buffer eggyy_delete_buffer -#define yy_flex_debug eggyy_flex_debug -#define yy_init_buffer eggyy_init_buffer -#define yy_flush_buffer eggyy_flush_buffer -#define yy_load_buffer_state eggyy_load_buffer_state -#define yy_switch_to_buffer eggyy_switch_to_buffer -#define yyin eggyyin -#define yyleng eggyyleng -#define yylex eggyylex -#define yylineno eggyylineno -#define yyout eggyyout -#define yyrestart eggyyrestart -#define yytext eggyytext -#define yywrap eggyywrap -#define yyalloc eggyyalloc -#define yyrealloc eggyyrealloc -#define yyfree eggyyfree - -#define FLEX_SCANNER -#define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 35 -#if YY_FLEX_SUBMINOR_VERSION > 0 -#define FLEX_BETA -#endif - -/* First, we deal with platform-specific or compiler-specific issues. */ - -/* begin standard C headers. */ -#include -#include -#include -#include - -/* end standard C headers. */ - -/* flex integer type definitions */ - -#ifndef FLEXINT_H -#define FLEXINT_H - -/* C99 systems have . Non-C99 systems may or may not. */ - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - -/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, - * if you want the limit (max/min) macros for int types. - */ -#ifndef __STDC_LIMIT_MACROS -#define __STDC_LIMIT_MACROS 1 -#endif - -#include -typedef int8_t flex_int8_t; -typedef uint8_t flex_uint8_t; -typedef int16_t flex_int16_t; -typedef uint16_t flex_uint16_t; -typedef int32_t flex_int32_t; -typedef uint32_t flex_uint32_t; -#else -typedef signed char flex_int8_t; -typedef short int flex_int16_t; -typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; -typedef unsigned short int flex_uint16_t; -typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ - -/* Limits of integral types. */ -#ifndef INT8_MIN -#define INT8_MIN (-128) -#endif -#ifndef INT16_MIN -#define INT16_MIN (-32767-1) -#endif -#ifndef INT32_MIN -#define INT32_MIN (-2147483647-1) -#endif -#ifndef INT8_MAX -#define INT8_MAX (127) -#endif -#ifndef INT16_MAX -#define INT16_MAX (32767) -#endif -#ifndef INT32_MAX -#define INT32_MAX (2147483647) -#endif -#ifndef UINT8_MAX -#define UINT8_MAX (255U) -#endif -#ifndef UINT16_MAX -#define UINT16_MAX (65535U) -#endif -#ifndef UINT32_MAX -#define UINT32_MAX (4294967295U) -#endif - -#endif /* ! FLEXINT_H */ - -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST -#define yyconst const -#else -#define yyconst -#endif - -/* Returned upon end-of-file. */ -#define YY_NULL 0 - -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. - */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) - -/* Enter a start condition. This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN (yy_start) = 1 + 2 * - -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state. The YYSTATE alias is for lex - * compatibility. - */ -#define YY_START (((yy_start) - 1) / 2) -#define YYSTATE YY_START - -/* Action number for EOF rule of a given start state. */ -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - -/* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE eggyyrestart(eggyyin ) - -#define YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#ifndef YY_BUF_SIZE -#define YY_BUF_SIZE 16384 -#endif - -/* The state buf must be large enough to hold one state per character in the main buffer. - */ -#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) - -#ifndef YY_TYPEDEF_YY_BUFFER_STATE -#define YY_TYPEDEF_YY_BUFFER_STATE -typedef struct yy_buffer_state *YY_BUFFER_STATE; -#endif - -extern int eggyyleng; - -extern FILE *eggyyin, *eggyyout; - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - - #define YY_LESS_LINENO(n) - -/* Return all but the first "n" matched characters back to the input stream. */ -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up eggyytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - *yy_cp = (yy_hold_char); \ - YY_RESTORE_YY_MORE_OFFSET \ - (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up eggyytext again */ \ - } \ - while ( 0 ) - -#define unput(c) yyunput( c, (yytext_ptr) ) - -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - -#ifndef YY_STRUCT_YY_BUFFER_STATE -#define YY_STRUCT_YY_BUFFER_STATE -struct yy_buffer_state - { - FILE *yy_input_file; - - char *yy_ch_buf; /* input buffer */ - char *yy_buf_pos; /* current position in input buffer */ - - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - yy_size_t yy_buf_size; - - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ - int yy_n_chars; - - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int yy_is_our_buffer; - - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int yy_is_interactive; - - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int yy_at_bol; - - int yy_bs_lineno; /**< The line count. */ - int yy_bs_column; /**< The column count. */ - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int yy_fill_buffer; - - int yy_buffer_status; - -#define YY_BUFFER_NEW 0 -#define YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via eggyyrestart()), so that the user can continue scanning by - * just pointing eggyyin at a new input file. - */ -#define YY_BUFFER_EOF_PENDING 2 - - }; -#endif /* !YY_STRUCT_YY_BUFFER_STATE */ - -/* Stack of input buffers. */ -static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ -static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - * - * Returns the top of the stack, or NULL. - */ -#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ - ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ - : NULL) - -/* Same as previous macro, but useful when we know that the buffer stack is not - * NULL or when we need an lvalue. For internal use only. - */ -#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] - -/* yy_hold_char holds the character lost when eggyytext is formed. */ -static char yy_hold_char; -static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int eggyyleng; - -/* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; -static int yy_init = 0; /* whether we need to initialize */ -static int yy_start = 0; /* start state number */ - -/* Flag which is used to allow eggyywrap()'s to do buffer switches - * instead of setting up a fresh eggyyin. A bit of a hack ... - */ -static int yy_did_buffer_switch_on_eof; - -void eggyyrestart (FILE *input_file ); -void eggyy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE eggyy_create_buffer (FILE *file,int size ); -void eggyy_delete_buffer (YY_BUFFER_STATE b ); -void eggyy_flush_buffer (YY_BUFFER_STATE b ); -void eggyypush_buffer_state (YY_BUFFER_STATE new_buffer ); -void eggyypop_buffer_state (void ); - -static void eggyyensure_buffer_stack (void ); -static void eggyy_load_buffer_state (void ); -static void eggyy_init_buffer (YY_BUFFER_STATE b,FILE *file ); - -#define YY_FLUSH_BUFFER eggyy_flush_buffer(YY_CURRENT_BUFFER ) - -YY_BUFFER_STATE eggyy_scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE eggyy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE eggyy_scan_bytes (yyconst char *bytes,int len ); - -void *eggyyalloc (yy_size_t ); -void *eggyyrealloc (void *,yy_size_t ); -void eggyyfree (void * ); - -#define yy_new_buffer eggyy_create_buffer - -#define yy_set_interactive(is_interactive) \ - { \ - if ( ! YY_CURRENT_BUFFER ){ \ - eggyyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - eggyy_create_buffer(eggyyin,YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ - } - -#define yy_set_bol(at_bol) \ - { \ - if ( ! YY_CURRENT_BUFFER ){\ - eggyyensure_buffer_stack (); \ - YY_CURRENT_BUFFER_LVALUE = \ - eggyy_create_buffer(eggyyin,YY_BUF_SIZE ); \ - } \ - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ - } - -#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) - -typedef unsigned char YY_CHAR; - -FILE *eggyyin = (FILE *) 0, *eggyyout = (FILE *) 0; - -typedef int yy_state_type; - -extern int eggyylineno; - -int eggyylineno = 1; - -extern char *eggyytext; -#define yytext_ptr eggyytext - -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yy_fatal_error (yyconst char msg[] ); - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up eggyytext. - */ -#define YY_DO_BEFORE_ACTION \ - (yytext_ptr) = yy_bp; \ - eggyyleng = (size_t) (yy_cp - yy_bp); \ - (yy_hold_char) = *yy_cp; \ - *yy_cp = '\0'; \ - (yy_c_buf_p) = yy_cp; - -#define YY_NUM_RULES 99 -#define YY_END_OF_BUFFER 100 -/* This struct is not used in this scanner, - but its presence is necessary. */ -struct yy_trans_info - { - flex_int32_t yy_verify; - flex_int32_t yy_nxt; - }; -static yyconst flex_int16_t yy_accept[577] = - { 0, - 0, 0, 100, 98, 2, 1, 97, 98, 98, 98, - 98, 89, 89, 89, 98, 98, 98, 5, 98, 1, - 98, 89, 89, 98, 89, 4, 3, 89, 91, 98, - 90, 89, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 89, 98, 3, 3, 91, 98, - 89, 90, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 65, 98, 98, 98, 93, - 98, 98, 94, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 19, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 80, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - - 98, 98, 98, 98, 25, 98, 98, 98, 98, 98, - 23, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 51, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 66, 98, 98, 98, 98, 98, - 98, 98, 98, 77, 98, 98, 98, 98, 98, 98, - 92, 98, 95, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 20, 98, 98, 98, 98, - 98, 24, 98, 29, 98, 98, 98, 98, 98, 36, - 37, 98, 98, 98, 42, 98, 98, 98, 98, 98, - - 98, 98, 52, 98, 54, 55, 56, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 73, - 98, 76, 98, 98, 98, 98, 98, 98, 92, 96, - 98, 98, 8, 98, 98, 98, 13, 98, 98, 98, - 98, 98, 98, 98, 98, 22, 27, 98, 30, 98, - 98, 32, 33, 98, 98, 41, 98, 98, 98, 98, - 47, 98, 98, 98, 98, 98, 98, 59, 98, 98, - 98, 64, 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 98, 12, - 14, 98, 98, 98, 98, 98, 98, 98, 98, 98, - - 98, 98, 98, 98, 43, 98, 98, 98, 98, 98, - 98, 53, 57, 58, 98, 98, 62, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 83, 98, - 98, 98, 98, 98, 98, 98, 98, 98, 15, 16, - 98, 98, 98, 98, 21, 98, 34, 98, 98, 39, - 40, 98, 98, 98, 98, 98, 50, 98, 61, 98, - 67, 68, 69, 98, 98, 98, 98, 78, 79, 81, - 98, 98, 98, 82, 98, 98, 98, 98, 11, 98, - 98, 98, 26, 98, 35, 38, 98, 98, 98, 98, - 98, 60, 98, 70, 98, 98, 98, 98, 98, 98, - - 98, 87, 98, 98, 98, 9, 98, 17, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 71, 72, 98, - 98, 98, 98, 86, 98, 98, 98, 98, 98, 98, - 98, 44, 98, 46, 48, 49, 98, 98, 98, 84, - 85, 98, 6, 7, 98, 98, 31, 98, 98, 98, - 74, 98, 88, 98, 98, 98, 45, 98, 98, 98, - 98, 98, 98, 75, 98, 98, 98, 98, 10, 98, - 98, 63, 18, 98, 28, 0 - } ; - -static yyconst flex_int32_t yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 4, 5, 6, 1, 1, 1, 1, - 1, 7, 8, 1, 9, 10, 11, 12, 13, 14, - 15, 16, 14, 14, 14, 14, 14, 1, 1, 17, - 1, 18, 1, 1, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 1, 1, 1, 1, 45, 1, 46, 47, 48, 49, - - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 1, 72, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static yyconst flex_int32_t yy_meta[73] = - { 0, - 1, 2, 3, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2 - } ; - -static yyconst flex_int16_t yy_base[582] = - { 0, - 0, 71, 1210, 0, 1211, 0, 1211, 8, 23, 28, - 18, 134, 55, 79, 203, 2, 0, 1211, 0, 0, - 94, 101, 122, 17, 146, 0, 24, 151, 18, 174, - 263, 276, 31, 277, 289, 338, 72, 64, 69, 71, - 80, 146, 261, 284, 300, 108, 312, 352, 376, 293, - 401, 129, 146, 139, 442, 151, 49, 0, 35, 179, - 339, 0, 151, 271, 259, 286, 337, 309, 352, 349, - 383, 1191, 354, 374, 391, 384, 390, 400, 396, 394, - 392, 404, 407, 411, 432, 422, 427, 434, 434, 430, - 448, 449, 437, 438, 447, 455, 440, 452, 457, 463, - - 446, 466, 467, 453, 470, 463, 494, 449, 475, 501, - 465, 478, 1190, 492, 493, 0, 487, 498, 498, 0, - 1195, 504, 0, 500, 502, 508, 515, 507, 505, 517, - 504, 505, 513, 537, 509, 0, 514, 1188, 538, 523, - 537, 554, 552, 1187, 532, 558, 555, 541, 551, 544, - 551, 547, 563, 553, 570, 566, 566, 560, 572, 571, - 573, 559, 567, 568, 1186, 596, 603, 593, 597, 589, - 607, 592, 601, 1185, 607, 605, 602, 604, 613, 620, - 1184, 608, 0, 609, 612, 610, 618, 1195, 611, 628, - 641, 635, 653, 656, 661, 646, 653, 1193, 661, 658, - - 663, 655, 667, 1181, 0, 651, 672, 662, 675, 671, - 0, 1180, 666, 1179, 664, 660, 681, 663, 665, 1178, - 1177, 668, 678, 677, 1176, 695, 682, 702, 694, 714, - 697, 711, 0, 1175, 699, 1174, 1173, 1172, 711, 720, - 717, 715, 723, 722, 0, 724, 721, 710, 726, 715, - 1171, 721, 1170, 0, 721, 722, 723, 735, 726, 742, - 777, 744, 0, 741, 748, 1169, 754, 763, 779, 1168, - 781, 783, 774, 775, 781, 0, 779, 778, 793, 1167, - 1166, 0, 786, 0, 1165, 793, 784, 1164, 1163, 0, - 0, 790, 776, 1147, 0, 789, 801, 782, 1146, 799, - - 811, 815, 0, 827, 0, 0, 0, 820, 816, 1144, - 821, 822, 829, 1137, 824, 820, 823, 822, 837, 0, - 837, 0, 825, 826, 828, 827, 832, 839, 0, 0, - 849, 852, 0, 855, 857, 1132, 0, 1131, 862, 854, - 872, 870, 866, 884, 876, 0, 0, 886, 0, 885, - 888, 0, 0, 891, 40, 0, 1128, 872, 874, 876, - 0, 890, 889, 885, 755, 526, 413, 0, 897, 895, - 903, 0, 885, 887, 903, 901, 895, 911, 909, 909, - 911, 912, 943, 919, 931, 929, 921, 927, 934, 0, - 0, 412, 411, 933, 948, 934, 946, 410, 930, 409, - - 948, 942, 373, 371, 0, 938, 942, 937, 958, 957, - 369, 0, 0, 0, 961, 367, 0, 955, 365, 361, - 330, 956, 964, 964, 980, 322, 316, 300, 0, 978, - 979, 990, 290, 983, 983, 981, 996, 288, 0, 0, - 981, 983, 989, 278, 0, 1000, 0, 277, 275, 0, - 0, 984, 1001, 992, 996, 1005, 0, 189, 0, 1000, - 0, 0, 0, 181, 1002, 1011, 1030, 0, 0, 0, - 1008, 1003, 1014, 0, 1024, 1028, 1016, 1050, 0, 167, - 1034, 1027, 0, 1030, 0, 0, 1047, 1053, 1050, 1037, - 1038, 0, 1055, 0, 159, 138, 1059, 1041, 1049, 1052, - - 137, 0, 1048, 1064, 1064, 0, 1065, 0, 1052, 1067, - 1054, 134, 1074, 124, 122, 115, 1069, 0, 0, 1069, - 1072, 105, 104, 0, 114, 101, 100, 1078, 1068, 79, - 1095, 0, 1097, 0, 0, 0, 1083, 48, 1097, 0, - 0, 46, 0, 0, 1087, 1089, 0, 1085, 44, 1102, - 0, 1096, 0, 1108, 1094, 1099, 0, 1101, 42, 1100, - 1116, 1107, 1109, 0, 40, 1111, 1110, 39, 0, 34, - 1114, 0, 0, 27, 0, 1211, 1171, 0, 1174, 1176, - 1178 - } ; - -static yyconst flex_int16_t yy_def[582] = - { 0, - 577, 577, 576, 578, 576, 579, 576, 578, 578, 578, - 578, 578, 578, 578, 576, 578, 578, 576, 578, 579, - 578, 578, 578, 578, 578, 578, 580, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 580, 581, 578, 578, - 578, 31, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 261, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 578, 578, 578, 578, 0, 576, 576, 576, 576, - 576 - } ; - -static yyconst flex_int16_t yy_nxt[1284] = - { 0, - 19, 5, 6, 7, 576, 576, 576, 8, 9, 10, - 11, 12, 13, 14, 14, 14, 15, 21, 54, 22, - 22, 22, 22, 22, 26, 58, 16, 58, 27, 59, - 59, 17, 21, 53, 22, 23, 22, 22, 22, 25, - 25, 25, 25, 25, 575, 54, 59, 59, 56, 24, - 58, 573, 58, 16, 403, 404, 572, 569, 17, 564, - 53, 557, 64, 553, 32, 551, 22, 22, 22, 22, - 22, 18, 5, 6, 7, 56, 24, 30, 8, 9, - 10, 11, 12, 13, 14, 14, 14, 15, 28, 64, - 22, 22, 22, 22, 22, 58, 547, 16, 83, 84, - - 85, 30, 17, 86, 30, 25, 25, 25, 25, 25, - 28, 87, 22, 22, 22, 22, 22, 544, 543, 542, - 58, 541, 540, 30, 16, 83, 84, 85, 30, 17, - 86, 55, 536, 22, 22, 22, 22, 22, 87, 535, - 98, 534, 18, 28, 30, 22, 22, 22, 22, 22, - 30, 532, 119, 29, 524, 519, 30, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 98, 30, 120, - 121, 30, 88, 30, 123, 31, 518, 124, 89, 119, - 29, 60, 60, 30, 508, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 30, 120, 121, 494, 88, - - 30, 123, 31, 19, 124, 89, 492, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 33, 34, 35, 36, 19, 37, 38, 19, 39, - 40, 41, 42, 43, 44, 45, 46, 19, 47, 48, - 49, 50, 51, 19, 52, 19, 19, 19, 33, 34, - 35, 36, 19, 37, 38, 19, 39, 40, 41, 42, - 43, 44, 45, 46, 19, 47, 48, 49, 50, 51, - 19, 52, 19, 19, 62, 62, 62, 62, 62, 90, - 63, 62, 62, 62, 62, 62, 62, 25, 25, 25, - 25, 25, 486, 91, 485, 483, 92, 125, 30, 65, - - 66, 112, 126, 67, 127, 479, 90, 474, 62, 62, - 62, 62, 62, 62, 69, 68, 93, 470, 70, 95, - 91, 71, 94, 92, 125, 30, 65, 66, 72, 126, - 67, 127, 113, 469, 99, 96, 100, 114, 97, 468, - 130, 69, 68, 93, 101, 70, 95, 463, 71, 94, - 61, 61, 61, 61, 61, 72, 73, 102, 74, 113, - 75, 99, 96, 100, 76, 97, 128, 130, 129, 77, - 131, 101, 103, 78, 104, 79, 80, 105, 462, 81, - 82, 132, 461, 73, 459, 74, 457, 75, 451, 137, - 450, 76, 106, 128, 107, 129, 77, 131, 108, 103, - - 78, 104, 79, 80, 105, 109, 81, 82, 132, 115, - 138, 110, 133, 134, 139, 135, 137, 111, 116, 106, - 140, 107, 141, 117, 142, 108, 447, 445, 440, 439, - 414, 143, 109, 144, 145, 146, 147, 138, 110, 133, - 134, 139, 135, 148, 111, 118, 122, 140, 151, 141, - 117, 142, 149, 25, 25, 25, 25, 25, 143, 152, - 144, 145, 146, 147, 30, 153, 154, 155, 150, 156, - 148, 157, 158, 159, 160, 151, 161, 162, 163, 149, - 165, 164, 166, 167, 168, 169, 152, 170, 171, 172, - 176, 30, 153, 154, 155, 150, 156, 177, 157, 158, - - 159, 160, 181, 161, 162, 163, 182, 165, 164, 166, - 167, 168, 169, 173, 170, 171, 172, 176, 174, 178, - 184, 185, 186, 179, 177, 175, 187, 180, 188, 181, - 190, 191, 192, 182, 193, 194, 195, 196, 197, 198, - 173, 199, 200, 413, 203, 174, 178, 184, 185, 186, - 179, 204, 175, 187, 180, 188, 206, 190, 191, 192, - 207, 193, 194, 195, 196, 197, 198, 201, 199, 200, - 202, 203, 208, 209, 210, 212, 213, 214, 204, 215, - 216, 217, 218, 206, 219, 220, 221, 207, 224, 225, - 226, 227, 222, 228, 201, 229, 230, 202, 231, 208, - - 209, 210, 212, 213, 214, 223, 215, 216, 217, 218, - 232, 219, 220, 221, 234, 224, 225, 226, 227, 222, - 228, 235, 229, 230, 239, 231, 240, 241, 242, 243, - 244, 246, 223, 249, 247, 250, 251, 232, 252, 255, - 256, 234, 248, 257, 236, 237, 238, 258, 235, 259, - 253, 239, 261, 240, 241, 242, 243, 244, 246, 262, - 249, 247, 250, 251, 263, 252, 255, 256, 264, 248, - 257, 236, 237, 238, 258, 265, 259, 253, 266, 261, - 267, 268, 269, 271, 272, 273, 262, 274, 275, 277, - 278, 263, 279, 280, 281, 264, 283, 285, 286, 287, - - 288, 289, 265, 292, 293, 266, 294, 267, 268, 269, - 271, 272, 273, 296, 274, 275, 277, 278, 297, 279, - 280, 281, 298, 283, 285, 286, 287, 288, 289, 299, - 292, 293, 300, 294, 301, 302, 304, 308, 309, 311, - 296, 312, 310, 313, 314, 297, 315, 316, 317, 298, - 318, 319, 321, 323, 324, 325, 299, 326, 327, 300, - 328, 301, 302, 304, 308, 309, 311, 330, 312, 310, - 313, 314, 412, 315, 316, 317, 331, 318, 319, 321, - 323, 324, 325, 332, 326, 327, 334, 328, 329, 329, - 329, 329, 329, 335, 330, 329, 329, 329, 329, 329, - - 329, 336, 338, 331, 339, 340, 341, 342, 343, 344, - 332, 345, 348, 334, 350, 351, 354, 355, 357, 360, - 335, 358, 329, 329, 329, 329, 329, 329, 336, 338, - 362, 339, 340, 341, 342, 343, 344, 359, 345, 348, - 363, 350, 351, 354, 355, 357, 360, 364, 358, 365, - 366, 367, 369, 370, 371, 373, 374, 362, 375, 376, - 377, 379, 380, 381, 359, 382, 378, 363, 383, 384, - 385, 386, 387, 388, 364, 389, 365, 366, 367, 369, - 370, 371, 373, 374, 392, 375, 376, 377, 379, 380, - 381, 393, 382, 378, 394, 383, 384, 385, 386, 387, - - 388, 395, 389, 396, 397, 398, 399, 400, 401, 402, - 406, 392, 407, 408, 409, 410, 411, 415, 393, 416, - 417, 394, 419, 418, 420, 421, 422, 423, 395, 424, - 396, 397, 398, 399, 400, 401, 402, 406, 425, 407, - 408, 409, 410, 411, 415, 426, 416, 427, 428, 419, - 418, 420, 421, 422, 423, 433, 424, 434, 435, 436, - 429, 430, 437, 438, 441, 425, 442, 443, 444, 446, - 448, 449, 426, 452, 427, 428, 431, 453, 432, 454, - 455, 456, 433, 458, 434, 435, 436, 460, 430, 437, - 438, 441, 464, 442, 443, 444, 446, 448, 449, 465, - - 452, 466, 467, 431, 453, 432, 454, 455, 456, 471, - 458, 472, 473, 475, 460, 476, 477, 478, 480, 464, - 481, 482, 484, 487, 488, 489, 465, 490, 466, 467, - 491, 493, 495, 496, 499, 500, 471, 501, 472, 473, - 475, 502, 476, 477, 478, 480, 504, 481, 482, 484, - 487, 488, 489, 497, 490, 505, 509, 491, 493, 495, - 496, 499, 500, 510, 501, 511, 498, 506, 503, 512, - 507, 513, 514, 504, 515, 516, 517, 520, 521, 522, - 497, 523, 505, 509, 525, 526, 527, 528, 529, 530, - 510, 531, 511, 498, 533, 537, 512, 507, 513, 514, - - 538, 515, 516, 517, 520, 521, 522, 539, 523, 545, - 546, 525, 526, 527, 528, 529, 530, 548, 531, 549, - 550, 533, 537, 552, 554, 555, 556, 538, 558, 559, - 560, 561, 562, 563, 539, 565, 545, 546, 566, 567, - 568, 570, 571, 574, 548, 405, 549, 550, 391, 390, - 552, 554, 555, 556, 372, 558, 559, 560, 561, 562, - 563, 368, 565, 361, 356, 566, 567, 568, 570, 571, - 574, 4, 4, 4, 20, 20, 57, 57, 58, 58, - 353, 352, 349, 347, 346, 337, 333, 322, 320, 307, - 306, 305, 303, 295, 291, 290, 284, 282, 276, 270, - - 260, 254, 245, 233, 211, 205, 189, 183, 136, 576, - 3, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576 - } ; - -static yyconst flex_int16_t yy_chk[1284] = - { 0, - 578, 1, 1, 1, 0, 0, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 8, 17, 8, - 8, 8, 8, 8, 11, 27, 1, 27, 11, 29, - 29, 1, 9, 16, 9, 9, 9, 9, 9, 10, - 10, 10, 10, 10, 574, 17, 59, 59, 24, 9, - 57, 570, 57, 1, 355, 355, 568, 565, 1, 559, - 16, 549, 33, 542, 13, 538, 13, 13, 13, 13, - 13, 1, 2, 2, 2, 24, 9, 13, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 14, 33, - 14, 14, 14, 14, 14, 27, 530, 2, 37, 38, - - 39, 14, 2, 40, 13, 21, 21, 21, 21, 21, - 22, 41, 22, 22, 22, 22, 22, 527, 526, 525, - 57, 523, 522, 22, 2, 37, 38, 39, 14, 2, - 40, 23, 516, 23, 23, 23, 23, 23, 41, 515, - 46, 514, 2, 12, 23, 12, 12, 12, 12, 12, - 22, 512, 52, 12, 501, 496, 12, 25, 25, 25, - 25, 25, 28, 28, 28, 28, 28, 46, 25, 53, - 54, 23, 42, 28, 56, 12, 495, 63, 42, 52, - 12, 30, 30, 12, 480, 30, 30, 30, 30, 30, - 60, 60, 60, 60, 60, 25, 53, 54, 464, 42, - - 28, 56, 12, 15, 63, 42, 458, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 31, 31, 31, 31, 31, 43, - 32, 31, 31, 31, 31, 31, 31, 32, 32, 32, - 32, 32, 449, 43, 448, 444, 43, 64, 32, 34, - - 34, 50, 65, 34, 66, 438, 43, 433, 31, 31, - 31, 31, 31, 31, 35, 34, 44, 428, 35, 45, - 43, 35, 44, 43, 64, 32, 34, 34, 35, 65, - 34, 66, 50, 427, 47, 45, 47, 50, 45, 426, - 68, 35, 34, 44, 47, 35, 45, 421, 35, 44, - 61, 61, 61, 61, 61, 35, 36, 48, 36, 50, - 36, 47, 45, 47, 36, 45, 67, 68, 67, 36, - 69, 47, 48, 36, 48, 36, 36, 48, 420, 36, - 36, 70, 419, 36, 416, 36, 411, 36, 404, 73, - 403, 36, 48, 67, 49, 67, 36, 69, 49, 48, - - 36, 48, 36, 36, 48, 49, 36, 36, 70, 51, - 74, 49, 71, 71, 75, 71, 73, 49, 51, 48, - 76, 49, 77, 51, 78, 49, 400, 398, 393, 392, - 367, 79, 49, 80, 81, 82, 83, 74, 49, 71, - 71, 75, 71, 84, 49, 51, 55, 76, 86, 77, - 51, 78, 85, 55, 55, 55, 55, 55, 79, 87, - 80, 81, 82, 83, 55, 88, 89, 90, 85, 91, - 84, 92, 93, 94, 95, 86, 96, 97, 98, 85, - 99, 98, 100, 101, 102, 103, 87, 104, 105, 106, - 108, 55, 88, 89, 90, 85, 91, 109, 92, 93, - - 94, 95, 111, 96, 97, 98, 112, 99, 98, 100, - 101, 102, 103, 107, 104, 105, 106, 108, 107, 110, - 114, 115, 117, 110, 109, 107, 118, 110, 119, 111, - 122, 124, 125, 112, 126, 127, 128, 129, 130, 131, - 107, 132, 133, 366, 135, 107, 110, 114, 115, 117, - 110, 137, 107, 118, 110, 119, 139, 122, 124, 125, - 140, 126, 127, 128, 129, 130, 131, 134, 132, 133, - 134, 135, 141, 142, 143, 145, 146, 147, 137, 148, - 149, 150, 151, 139, 152, 153, 154, 140, 156, 157, - 158, 159, 155, 160, 134, 161, 162, 134, 163, 141, - - 142, 143, 145, 146, 147, 155, 148, 149, 150, 151, - 164, 152, 153, 154, 166, 156, 157, 158, 159, 155, - 160, 167, 161, 162, 168, 163, 169, 170, 171, 172, - 173, 175, 155, 177, 176, 178, 179, 164, 180, 182, - 184, 166, 176, 185, 167, 167, 167, 186, 167, 187, - 180, 168, 189, 169, 170, 171, 172, 173, 175, 190, - 177, 176, 178, 179, 191, 180, 182, 184, 192, 176, - 185, 167, 167, 167, 186, 193, 187, 180, 194, 189, - 195, 196, 197, 199, 200, 201, 190, 202, 203, 206, - 207, 191, 208, 209, 210, 192, 213, 215, 216, 217, - - 218, 219, 193, 222, 223, 194, 224, 195, 196, 197, - 199, 200, 201, 226, 202, 203, 206, 207, 227, 208, - 209, 210, 228, 213, 215, 216, 217, 218, 219, 229, - 222, 223, 230, 224, 231, 232, 235, 239, 240, 241, - 226, 242, 240, 243, 244, 227, 246, 247, 248, 228, - 249, 250, 252, 255, 256, 257, 229, 258, 259, 230, - 260, 231, 232, 235, 239, 240, 241, 262, 242, 240, - 243, 244, 365, 246, 247, 248, 264, 249, 250, 252, - 255, 256, 257, 265, 258, 259, 267, 260, 261, 261, - 261, 261, 261, 268, 262, 261, 261, 261, 261, 261, - - 261, 269, 271, 264, 272, 273, 274, 275, 277, 278, - 265, 279, 283, 267, 286, 287, 292, 293, 296, 298, - 268, 297, 261, 261, 261, 261, 261, 261, 269, 271, - 300, 272, 273, 274, 275, 277, 278, 297, 279, 283, - 301, 286, 287, 292, 293, 296, 298, 302, 297, 304, - 308, 309, 311, 312, 313, 315, 316, 300, 317, 318, - 319, 321, 323, 324, 297, 325, 319, 301, 326, 327, - 328, 331, 332, 334, 302, 335, 304, 308, 309, 311, - 312, 313, 315, 316, 339, 317, 318, 319, 321, 323, - 324, 340, 325, 319, 341, 326, 327, 328, 331, 332, - - 334, 342, 335, 343, 344, 345, 348, 350, 351, 354, - 358, 339, 359, 360, 362, 363, 364, 369, 340, 370, - 371, 341, 373, 371, 374, 375, 376, 377, 342, 378, - 343, 344, 345, 348, 350, 351, 354, 358, 379, 359, - 360, 362, 363, 364, 369, 380, 370, 381, 382, 373, - 371, 374, 375, 376, 377, 384, 378, 385, 386, 387, - 383, 383, 388, 389, 394, 379, 395, 396, 397, 399, - 401, 402, 380, 406, 381, 382, 383, 407, 383, 408, - 409, 410, 384, 415, 385, 386, 387, 418, 383, 388, - 389, 394, 422, 395, 396, 397, 399, 401, 402, 423, - - 406, 424, 425, 383, 407, 383, 408, 409, 410, 430, - 415, 431, 432, 434, 418, 435, 436, 437, 441, 422, - 442, 443, 446, 452, 453, 454, 423, 455, 424, 425, - 456, 460, 465, 466, 471, 472, 430, 473, 431, 432, - 434, 475, 435, 436, 437, 441, 476, 442, 443, 446, - 452, 453, 454, 467, 455, 477, 481, 456, 460, 465, - 466, 471, 472, 482, 473, 484, 467, 478, 475, 487, - 478, 488, 489, 476, 490, 491, 493, 497, 498, 499, - 467, 500, 477, 481, 503, 504, 505, 507, 509, 510, - 482, 511, 484, 467, 513, 517, 487, 478, 488, 489, - - 520, 490, 491, 493, 497, 498, 499, 521, 500, 528, - 529, 503, 504, 505, 507, 509, 510, 531, 511, 533, - 537, 513, 517, 539, 545, 546, 548, 520, 550, 552, - 554, 555, 556, 558, 521, 560, 528, 529, 561, 562, - 563, 566, 567, 571, 531, 357, 533, 537, 338, 336, - 539, 545, 546, 548, 314, 550, 552, 554, 555, 556, - 558, 310, 560, 299, 294, 561, 562, 563, 566, 567, - 571, 577, 577, 577, 579, 579, 580, 580, 581, 581, - 289, 288, 285, 281, 280, 270, 266, 253, 251, 238, - 237, 236, 234, 225, 221, 220, 214, 212, 204, 198, - - 188, 181, 174, 165, 144, 138, 121, 113, 72, 3, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, - 576, 576, 576 - } ; - -static yy_state_type yy_last_accepting_state; -static char *yy_last_accepting_cpos; - -extern int eggyy_flex_debug; -int eggyy_flex_debug = 0; - -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected -#define yymore() yymore_used_but_not_detected -#define YY_MORE_ADJ 0 -#define YY_RESTORE_YY_MORE_OFFSET -char *eggyytext; -#line 1 "lexer.lxx" -/* -// Filename: lexer.l -// Created by: drose (16Jan99) -// -//////////////////////////////////////////////////////////////////// -*/ -#line 9 "lexer.lxx" -#include "pandabase.h" -#include "lexerDefs.h" -#include "parserDefs.h" -#include "config_egg.h" -#include "parser.h" -#include "indent.h" -#include "pnotify.h" -#include "lightMutex.h" -#include "thread.h" -#include "pstrtod.h" - -#include - -extern "C" int eggyywrap(void); // declared below. - -static int yyinput(void); // declared by flex. - - -//////////////////////////////////////////////////////////////////// -// Static variables -//////////////////////////////////////////////////////////////////// - -// This mutex protects all of these global variables. -LightMutex egg_lock; - -// We'll increment line_number and col_number as we parse the file, so -// that we can report the position of an error. -static int line_number = 0; -static int col_number = 0; - -// current_line holds as much of the current line as will fit. Its -// only purpose is for printing it out to report an error to the user. -static const int max_error_width = 1024; -static char current_line[max_error_width + 1]; - -static int error_count = 0; -static int warning_count = 0; - -// This is the pointer to the current input stream. -static istream *input_p = NULL; - -// This is the name of the egg file we're parsing. We keep it so we -// can print it out for error messages. -static string egg_filename; - -// This is the initial token state returned by the lexer. It allows -// the yacc grammar to start from initial points. -static int initial_token; - -//////////////////////////////////////////////////////////////////// -// Defining the interface to the lexer. -//////////////////////////////////////////////////////////////////// - -void -egg_init_lexer(istream &in, const string &filename) { - input_p = ∈ - egg_filename = filename; - line_number = 0; - col_number = 0; - error_count = 0; - warning_count = 0; - initial_token = START_EGG; -} - -void -egg_start_group_body() { - /* Set the initial state to begin within a group_body context, - instead of at the beginning of the egg file. */ - initial_token = START_GROUP_BODY; -} - -void -egg_start_texture_body() { - initial_token = START_TEXTURE_BODY; -} - -void -egg_start_primitive_body() { - initial_token = START_PRIMITIVE_BODY; -} - -int -egg_error_count() { - return error_count; -} - -int -egg_warning_count() { - return warning_count; -} - - -//////////////////////////////////////////////////////////////////// -// Internal support functions. -//////////////////////////////////////////////////////////////////// - -int -eggyywrap(void) { - return 1; -} - -void -eggyyerror(const string &msg) { - if (egg_cat.is_error()) { - ostream &out = egg_cat.error(false); - - out << "\nError"; - if (!egg_filename.empty()) { - out << " in " << egg_filename; - } - out - << " at line " << line_number << ", column " << col_number << ":\n" - << setiosflags(Notify::get_literal_flag()) - << current_line << "\n"; - indent(out, col_number-1) - << "^\n" << msg << "\n\n" - << resetiosflags(Notify::get_literal_flag()) << flush; - } - error_count++; -} - -void -eggyyerror(ostringstream &strm) { - string s = strm.str(); - eggyyerror(s); -} - -void -eggyywarning(const string &msg) { - if (egg_cat.is_warning()) { - ostream &out = egg_cat.warning(false); - - out << "\nWarning"; - if (!egg_filename.empty()) { - out << " in " << egg_filename; - } - out - << " at line " << line_number << ", column " << col_number << ":\n" - << setiosflags(Notify::get_literal_flag()) - << current_line << "\n"; - indent(out, col_number-1) - << "^\n" << msg << "\n\n" - << resetiosflags(Notify::get_literal_flag()) << flush; - } - warning_count++; -} - -void -eggyywarning(ostringstream &strm) { - string s = strm.str(); - eggyywarning(s); -} - -// Now define a function to take input from an istream instead of a -// stdio FILE pointer. This is flex-specific. -static void -input_chars(char *buffer, int &result, int max_size) { - nassertv(input_p != NULL); - if (*input_p) { - input_p->read(buffer, max_size); - result = input_p->gcount(); - - if (line_number == 0) { - // This is a special case. If we are reading the very first bit - // from the stream, copy it into the current_line array. This - // is because the \n.* rule below, which fills current_line - // normally, doesn't catch the first line. - int length = min(max_error_width, result); - strncpy(current_line, buffer, length); - current_line[length] = '\0'; - line_number++; - col_number = 0; - - // Truncate it at the newline. - char *end = strchr(current_line, '\n'); - if (end != NULL) { - *end = '\0'; - } - } - - } else { - // End of file or I/O error. - result = 0; - } - Thread::consider_yield(); -} -#undef YY_INPUT - -// Define this macro carefully, since different flex versions call it -// with a different type for result. -#define YY_INPUT(buffer, result, max_size) { \ - int int_result; \ - input_chars((buffer), int_result, (max_size)); \ - (result) = int_result; \ -} - -// read_char reads and returns a single character, incrementing the -// supplied line and column numbers as appropriate. A convenience -// function for the scanning functions below. -static int -read_char(int &line, int &col) { - int c = yyinput(); - if (c == '\n') { - line++; - col = 0; - } else { - col++; - } - return c; -} - -// scan_quoted_string reads a string delimited by quotation marks and -// returns it. -static string -scan_quoted_string() { - string result; - - // We don't touch the current line number and column number during - // scanning, so that if we detect an error while scanning the string - // (e.g. an unterminated string), we'll report the error as - // occurring at the start of the string, not at the end--somewhat - // more convenient for the user. - - // Instead of adjusting the global line_number and col_number - // variables, we'll operate on our own local variables for the - // interim. - int line = line_number; - int col = col_number; - - int c; - c = read_char(line, col); - while (c != '"' && c != EOF) { - result += c; - c = read_char(line, col); - } - - if (c == EOF) { - eggyyerror("This quotation mark is unterminated."); - } - - line_number = line; - col_number = col; - - return result; -} - -// eat_c_comment scans past all characters up until the first */ -// encountered. -static void -eat_c_comment() { - // As above, we'll operate on our own local copies of line_number - // and col_number within this function. - - int line = line_number; - int col = col_number; - - int c, last_c; - - last_c = '\0'; - c = read_char(line, col); - while (c != EOF && !(last_c == '*' && c == '/')) { - if (last_c == '/' && c == '*') { - ostringstream errmsg; - errmsg << "This comment contains a nested /* symbol at line " - << line << ", column " << col-1 << "--possibly unclosed?" - << ends; - eggyywarning(errmsg); - } - last_c = c; - c = read_char(line, col); - } - - if (c == EOF) { - eggyyerror("This comment marker is unclosed."); - } - - line_number = line; - col_number = col; -} - - -// accept() is called below as each piece is pulled off and -// accepted by the lexer; it increments the current column number. -INLINE void accept() { - col_number += eggyyleng; -} - -#line 1236 "lex.yy.c" - -#define INITIAL 0 - -#ifndef YY_NO_UNISTD_H -/* Special case for "unistd.h", since it is non-ANSI. We include it way - * down here because we want the user's section 1 to have been scanned first. - * The user has a chance to override it with an option. - */ -#endif - -#ifndef YY_EXTRA_TYPE -#define YY_EXTRA_TYPE void * -#endif - -static int yy_init_globals (void ); - -/* Accessor methods to globals. - These are made visible to non-reentrant scanners for convenience. */ - -int eggyylex_destroy (void ); - -int eggyyget_debug (void ); - -void eggyyset_debug (int debug_flag ); - -YY_EXTRA_TYPE eggyyget_extra (void ); - -void eggyyset_extra (YY_EXTRA_TYPE user_defined ); - -FILE *eggyyget_in (void ); - -void eggyyset_in (FILE * in_str ); - -FILE *eggyyget_out (void ); - -void eggyyset_out (FILE * out_str ); - -int eggyyget_leng (void ); - -char *eggyyget_text (void ); - -int eggyyget_lineno (void ); - -void eggyyset_lineno (int line_number ); - -/* Macros after this point can all be overridden by user definitions in - * section 1. - */ - -#ifndef YY_SKIP_YYWRAP -#ifdef __cplusplus -extern "C" int eggyywrap (void ); -#else -extern int eggyywrap (void ); -#endif -#endif - - static void yyunput (int c,char *buf_ptr ); - -#ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); -#endif - -#ifndef YY_NO_INPUT - -#ifdef __cplusplus -static int yyinput (void ); -#else -static int input (void ); -#endif - -#endif - -/* Amount of stuff to slurp up with each read. */ -#ifndef YY_READ_BUF_SIZE -#define YY_READ_BUF_SIZE 8192 -#endif - -/* Copy whatever the last rule matched to the standard output. */ -#ifndef ECHO -/* This used to be an fputs(), but since the string might contain NUL's, - * we now use fwrite(). - */ -#define ECHO fwrite( eggyytext, eggyyleng, 1, eggyyout ) -#endif - -/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, - * is returned in "result". - */ -#ifndef YY_INPUT -#define YY_INPUT(buf,result,max_size) \ - if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ - { \ - int c = '*'; \ - int n; \ - for ( n = 0; n < max_size && \ - (c = getc( eggyyin )) != EOF && c != '\n'; ++n ) \ - buf[n] = (char) c; \ - if ( c == '\n' ) \ - buf[n++] = (char) c; \ - if ( c == EOF && ferror( eggyyin ) ) \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - result = n; \ - } \ - else \ - { \ - errno=0; \ - while ( (result = fread(buf, 1, max_size, eggyyin))==0 && ferror(eggyyin)) \ - { \ - if( errno != EINTR) \ - { \ - YY_FATAL_ERROR( "input in flex scanner failed" ); \ - break; \ - } \ - errno=0; \ - clearerr(eggyyin); \ - } \ - }\ -\ - -#endif - -/* No semi-colon after return; correct usage is to write "yyterminate();" - - * we don't want an extra ';' after the "return" because that will cause - * some compilers to complain about unreachable statements. - */ -#ifndef yyterminate -#define yyterminate() return YY_NULL -#endif - -/* Number of entries by which start-condition stack grows. */ -#ifndef YY_START_STACK_INCR -#define YY_START_STACK_INCR 25 -#endif - -/* Report a fatal error. */ -#ifndef YY_FATAL_ERROR -#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) -#endif - -/* end tables serialization structures and prototypes */ - -/* Default declaration of generated scanner - a define so the user can - * easily add parameters. - */ -#ifndef YY_DECL -#define YY_DECL_IS_OURS 1 - -extern int eggyylex (void); - -#define YY_DECL int eggyylex (void) -#endif /* !YY_DECL */ - -/* Code executed at the beginning of each rule, after eggyytext and eggyyleng - * have been set up. - */ -#ifndef YY_USER_ACTION -#define YY_USER_ACTION -#endif - -/* Code executed at the end of each rule. */ -#ifndef YY_BREAK -#define YY_BREAK break; -#endif - -#define YY_RULE_SETUP \ - YY_USER_ACTION - -/** The main scanner function which does all the work. - */ -YY_DECL -{ - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; - -#line 302 "lexer.lxx" - - - - if (initial_token != 0) { - int t = initial_token; - initial_token = 0; - return t; - } - - -#line 1429 "lex.yy.c" - - if ( !(yy_init) ) - { - (yy_init) = 1; - -#ifdef YY_USER_INIT - YY_USER_INIT; -#endif - - if ( ! (yy_start) ) - (yy_start) = 1; /* first start state */ - - if ( ! eggyyin ) - eggyyin = stdin; - - if ( ! eggyyout ) - eggyyout = stdout; - - if ( ! YY_CURRENT_BUFFER ) { - eggyyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - eggyy_create_buffer(eggyyin,YY_BUF_SIZE ); - } - - eggyy_load_buffer_state( ); - } - - while ( 1 ) /* loops until end-of-file is reached */ - { - yy_cp = (yy_c_buf_p); - - /* Support of eggyytext. */ - *yy_cp = (yy_hold_char); - - /* yy_bp points to the position in yy_ch_buf of the start of - * the current run. - */ - yy_bp = yy_cp; - - yy_current_state = (yy_start); -yy_match: - do - { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 577 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - ++yy_cp; - } - while ( yy_base[yy_current_state] != 1211 ); - -yy_find_action: - yy_act = yy_accept[yy_current_state]; - if ( yy_act == 0 ) - { /* have to back up */ - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - yy_act = yy_accept[yy_current_state]; - } - - YY_DO_BEFORE_ACTION; - -do_action: /* This label is used only to access EOF actions. */ - - switch ( yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = (yy_hold_char); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - -case 1: -/* rule 1 can match eol */ -YY_RULE_SETUP -#line 312 "lexer.lxx" -{ - // New line. Save a copy of the line so we can print it out for the - // benefit of the user in case we get an error. - - strncpy(current_line, eggyytext+1, max_error_width); - current_line[max_error_width] = '\0'; - line_number++; - col_number=0; - - // Return the whole line to the lexer, except the newline character, - // which we eat. - yyless(1); -} - YY_BREAK -case 2: -YY_RULE_SETUP -#line 326 "lexer.lxx" -{ - // Eat whitespace. - accept(); -} - YY_BREAK -case 3: -YY_RULE_SETUP -#line 331 "lexer.lxx" -{ - // Eat C++-style comments. - accept(); -} - YY_BREAK -case 4: -YY_RULE_SETUP -#line 336 "lexer.lxx" -{ - // Eat C-style comments. - accept(); - eat_c_comment(); -} - YY_BREAK -case 5: -YY_RULE_SETUP -#line 342 "lexer.lxx" -{ - // Send curly braces as themselves. - accept(); - return eggyytext[0]; -} - YY_BREAK -case 6: -YY_RULE_SETUP -#line 350 "lexer.lxx" -{ - accept(); - return ANIMPRELOAD; -} - YY_BREAK -case 7: -YY_RULE_SETUP -#line 354 "lexer.lxx" -{ - accept(); - return BEZIERCURVE; -} - YY_BREAK -case 8: -YY_RULE_SETUP -#line 358 "lexer.lxx" -{ - accept(); - return BFACE; -} - YY_BREAK -case 9: -YY_RULE_SETUP -#line 362 "lexer.lxx" -{ - accept(); - return BILLBOARD; -} - YY_BREAK -case 10: -YY_RULE_SETUP -#line 366 "lexer.lxx" -{ - accept(); - return BILLBOARDCENTER; -} - YY_BREAK -case 11: -YY_RULE_SETUP -#line 370 "lexer.lxx" -{ - accept(); - return BINORMAL; -} - YY_BREAK -case 12: -YY_RULE_SETUP -#line 374 "lexer.lxx" -{ - accept(); - return BUNDLE; -} - YY_BREAK -case 13: -YY_RULE_SETUP -#line 378 "lexer.lxx" -{ - accept(); - return SCALAR; -} - YY_BREAK -case 14: -YY_RULE_SETUP -#line 382 "lexer.lxx" -{ - accept(); - return CLOSED; -} - YY_BREAK -case 15: -YY_RULE_SETUP -#line 386 "lexer.lxx" -{ - accept(); - return COLLIDE; -} - YY_BREAK -case 16: -YY_RULE_SETUP -#line 390 "lexer.lxx" -{ - accept(); - return COMMENT; -} - YY_BREAK -case 17: -YY_RULE_SETUP -#line 394 "lexer.lxx" -{ - accept(); - return COMPONENT; -} - YY_BREAK -case 18: -YY_RULE_SETUP -#line 398 "lexer.lxx" -{ - accept(); - return COORDSYSTEM; -} - YY_BREAK -case 19: -YY_RULE_SETUP -#line 402 "lexer.lxx" -{ - accept(); - return CV; -} - YY_BREAK -case 20: -YY_RULE_SETUP -#line 406 "lexer.lxx" -{ - accept(); - return DART; -} - YY_BREAK -case 21: -YY_RULE_SETUP -#line 410 "lexer.lxx" -{ - accept(); - return DNORMAL; -} - YY_BREAK -case 22: -YY_RULE_SETUP -#line 414 "lexer.lxx" -{ - accept(); - return DRGBA; -} - YY_BREAK -case 23: -YY_RULE_SETUP -#line 418 "lexer.lxx" -{ - accept(); - return DUV; -} - YY_BREAK -case 24: -YY_RULE_SETUP -#line 422 "lexer.lxx" -{ - accept(); - return DXYZ; -} - YY_BREAK -case 25: -YY_RULE_SETUP -#line 426 "lexer.lxx" -{ - accept(); - return DCS; -} - YY_BREAK -case 26: -YY_RULE_SETUP -#line 430 "lexer.lxx" -{ - accept(); - return DISTANCE; -} - YY_BREAK -case 27: -YY_RULE_SETUP -#line 434 "lexer.lxx" -{ - accept(); - return DTREF; -} - YY_BREAK -case 28: -YY_RULE_SETUP -#line 438 "lexer.lxx" -{ - accept(); - return DYNAMICVERTEXPOOL; -} - YY_BREAK -case 29: -YY_RULE_SETUP -#line 442 "lexer.lxx" -{ - accept(); - return EXTERNAL_FILE; -} - YY_BREAK -case 30: -YY_RULE_SETUP -#line 446 "lexer.lxx" -{ - accept(); - return GROUP; -} - YY_BREAK -case 31: -YY_RULE_SETUP -#line 450 "lexer.lxx" -{ - accept(); - return DEFAULTPOSE; -} - YY_BREAK -case 32: -YY_RULE_SETUP -#line 454 "lexer.lxx" -{ - accept(); - return JOINT; -} - YY_BREAK -case 33: -YY_RULE_SETUP -#line 458 "lexer.lxx" -{ - accept(); - return KNOTS; -} - YY_BREAK -case 34: -YY_RULE_SETUP -#line 462 "lexer.lxx" -{ - accept(); - return INCLUDE; -} - YY_BREAK -case 35: -YY_RULE_SETUP -#line 466 "lexer.lxx" -{ - accept(); - return INSTANCE; -} - YY_BREAK -case 36: -YY_RULE_SETUP -#line 470 "lexer.lxx" -{ - accept(); - return LINE; -} - YY_BREAK -case 37: -YY_RULE_SETUP -#line 474 "lexer.lxx" -{ - accept(); - return LOOP; -} - YY_BREAK -case 38: -YY_RULE_SETUP -#line 478 "lexer.lxx" -{ - accept(); - return MATERIAL; -} - YY_BREAK -case 39: -YY_RULE_SETUP -#line 482 "lexer.lxx" -{ - accept(); - return MATRIX3; -} - YY_BREAK -case 40: -YY_RULE_SETUP -#line 486 "lexer.lxx" -{ - accept(); - return MATRIX4; -} - YY_BREAK -case 41: -YY_RULE_SETUP -#line 490 "lexer.lxx" -{ - accept(); - return MODEL; -} - YY_BREAK -case 42: -YY_RULE_SETUP -#line 494 "lexer.lxx" -{ - accept(); - return MREF; -} - YY_BREAK -case 43: -YY_RULE_SETUP -#line 498 "lexer.lxx" -{ - accept(); - return NORMAL; -} - YY_BREAK -case 44: -YY_RULE_SETUP -#line 502 "lexer.lxx" -{ - accept(); - return NURBSCURVE; -} - YY_BREAK -case 45: -YY_RULE_SETUP -#line 506 "lexer.lxx" -{ - accept(); - return NURBSSURFACE; -} - YY_BREAK -case 46: -YY_RULE_SETUP -#line 510 "lexer.lxx" -{ - accept(); - return OBJECTTYPE; -} - YY_BREAK -case 47: -YY_RULE_SETUP -#line 514 "lexer.lxx" -{ - accept(); - return ORDER; -} - YY_BREAK -case 48: -YY_RULE_SETUP -#line 518 "lexer.lxx" -{ - accept(); - return OUTTANGENT; -} - YY_BREAK -case 49: -YY_RULE_SETUP -#line 522 "lexer.lxx" -{ - accept(); - return POINTLIGHT; -} - YY_BREAK -case 50: -YY_RULE_SETUP -#line 526 "lexer.lxx" -{ - accept(); - return POLYGON; -} - YY_BREAK -case 51: -YY_RULE_SETUP -#line 530 "lexer.lxx" -{ - accept(); - return REF; -} - YY_BREAK -case 52: -YY_RULE_SETUP -#line 534 "lexer.lxx" -{ - accept(); - return RGBA; -} - YY_BREAK -case 53: -YY_RULE_SETUP -#line 538 "lexer.lxx" -{ - accept(); - return ROTATE; -} - YY_BREAK -case 54: -YY_RULE_SETUP -#line 542 "lexer.lxx" -{ - accept(); - return ROTX; -} - YY_BREAK -case 55: -YY_RULE_SETUP -#line 546 "lexer.lxx" -{ - accept(); - return ROTY; -} - YY_BREAK -case 56: -YY_RULE_SETUP -#line 550 "lexer.lxx" -{ - accept(); - return ROTZ; -} - YY_BREAK -case 57: -YY_RULE_SETUP -#line 554 "lexer.lxx" -{ - accept(); - return SANIM; -} - YY_BREAK -case 58: -YY_RULE_SETUP -#line 558 "lexer.lxx" -{ - accept(); - return SCALAR; -} - YY_BREAK -case 59: -YY_RULE_SETUP -#line 562 "lexer.lxx" -{ - accept(); - return SCALE; -} - YY_BREAK -case 60: -YY_RULE_SETUP -#line 566 "lexer.lxx" -{ - accept(); - return SEQUENCE; -} - YY_BREAK -case 61: -YY_RULE_SETUP -#line 570 "lexer.lxx" -{ - accept(); - return SHADING; -} - YY_BREAK -case 62: -YY_RULE_SETUP -#line 574 "lexer.lxx" -{ - accept(); - return SWITCH; -} - YY_BREAK -case 63: -YY_RULE_SETUP -#line 578 "lexer.lxx" -{ - accept(); - return SWITCHCONDITION; -} - YY_BREAK -case 64: -YY_RULE_SETUP -#line 582 "lexer.lxx" -{ - accept(); - return TABLE; -} - YY_BREAK -case 65: -YY_RULE_SETUP -#line 586 "lexer.lxx" -{ - accept(); - return TABLE_V; -} - YY_BREAK -case 66: -YY_RULE_SETUP -#line 590 "lexer.lxx" -{ - accept(); - return TAG; -} - YY_BREAK -case 67: -YY_RULE_SETUP -#line 594 "lexer.lxx" -{ - accept(); - return TANGENT; -} - YY_BREAK -case 68: -YY_RULE_SETUP -#line 598 "lexer.lxx" -{ - accept(); - return TEXLIST; -} - YY_BREAK -case 69: -YY_RULE_SETUP -#line 602 "lexer.lxx" -{ - accept(); - return TEXTURE; -} - YY_BREAK -case 70: -YY_RULE_SETUP -#line 606 "lexer.lxx" -{ - accept(); - return TLENGTHS; -} - YY_BREAK -case 71: -YY_RULE_SETUP -#line 610 "lexer.lxx" -{ - accept(); - return TRANSFORM; -} - YY_BREAK -case 72: -YY_RULE_SETUP -#line 614 "lexer.lxx" -{ - accept(); - return TRANSLATE; -} - YY_BREAK -case 73: -YY_RULE_SETUP -#line 618 "lexer.lxx" -{ - accept(); - return TREF; -} - YY_BREAK -case 74: -YY_RULE_SETUP -#line 622 "lexer.lxx" -{ - accept(); - return TRIANGLEFAN; -} - YY_BREAK -case 75: -YY_RULE_SETUP -#line 626 "lexer.lxx" -{ - accept(); - return TRIANGLESTRIP; -} - YY_BREAK -case 76: -YY_RULE_SETUP -#line 630 "lexer.lxx" -{ - accept(); - return TRIM; -} - YY_BREAK -case 77: -YY_RULE_SETUP -#line 634 "lexer.lxx" -{ - accept(); - return TXT; -} - YY_BREAK -case 78: -YY_RULE_SETUP -#line 638 "lexer.lxx" -{ - accept(); - return UKNOTS; -} - YY_BREAK -case 79: -YY_RULE_SETUP -#line 642 "lexer.lxx" -{ - accept(); - return UKNOTS; -} - YY_BREAK -case 80: -YY_RULE_SETUP -#line 646 "lexer.lxx" -{ - accept(); - return UV; -} - YY_BREAK -case 81: -YY_RULE_SETUP -#line 650 "lexer.lxx" -{ - accept(); - return VKNOTS; -} - YY_BREAK -case 82: -YY_RULE_SETUP -#line 654 "lexer.lxx" -{ - accept(); - return VKNOTS; -} - YY_BREAK -case 83: -YY_RULE_SETUP -#line 658 "lexer.lxx" -{ - accept(); - return VERTEX; -} - YY_BREAK -case 84: -YY_RULE_SETUP -#line 662 "lexer.lxx" -{ - accept(); - return VERTEXANIM; -} - YY_BREAK -case 85: -YY_RULE_SETUP -#line 666 "lexer.lxx" -{ - accept(); - return VERTEXPOOL; -} - YY_BREAK -case 86: -YY_RULE_SETUP -#line 670 "lexer.lxx" -{ - accept(); - return VERTEXREF; -} - YY_BREAK -case 87: -YY_RULE_SETUP -#line 674 "lexer.lxx" -{ - accept(); - return XFMANIM; -} - YY_BREAK -case 88: -YY_RULE_SETUP -#line 678 "lexer.lxx" -{ - accept(); - return XFMSANIM; -} - YY_BREAK -case 89: -YY_RULE_SETUP -#line 685 "lexer.lxx" -{ - // An integer or floating-point number. - accept(); - eggyylval._number = patof(eggyytext); - eggyylval._string = eggyytext; - return EGG_NUMBER; -} - YY_BREAK -case 90: -YY_RULE_SETUP -#line 693 "lexer.lxx" -{ - // A hexadecimal integer number. - accept(); - eggyylval._ulong = strtoul(eggyytext+2, NULL, 16); - eggyylval._string = eggyytext; - return EGG_ULONG; -} - YY_BREAK -case 91: -YY_RULE_SETUP -#line 701 "lexer.lxx" -{ - // A binary integer number. - accept(); - eggyylval._ulong = strtoul(eggyytext+2, NULL, 2); - eggyylval._string = eggyytext; - return EGG_ULONG; -} - YY_BREAK -case 92: -YY_RULE_SETUP -#line 709 "lexer.lxx" -{ - // not-a-number. These sometimes show up in egg files accidentally. - accept(); - memset(&eggyylval._number, 0, sizeof(eggyylval._number)); - *(unsigned long *)&eggyylval._number = strtoul(eggyytext+3, NULL, 0); - eggyylval._string = eggyytext; - return EGG_NUMBER; -} - YY_BREAK -case 93: -YY_RULE_SETUP -#line 718 "lexer.lxx" -{ - // infinity. As above. - accept(); - eggyylval._number = HUGE_VAL; - eggyylval._string = eggyytext; - return EGG_NUMBER; -} - YY_BREAK -case 94: -YY_RULE_SETUP -#line 726 "lexer.lxx" -{ - // minus infinity. As above. - accept(); - eggyylval._number = -HUGE_VAL; - eggyylval._string = eggyytext; - return EGG_NUMBER; -} - YY_BREAK -case 95: -YY_RULE_SETUP -#line 734 "lexer.lxx" -{ - // infinity, on Win32. As above. - accept(); - eggyylval._number = HUGE_VAL; - eggyylval._string = eggyytext; - return EGG_NUMBER; -} - YY_BREAK -case 96: -YY_RULE_SETUP -#line 742 "lexer.lxx" -{ - // minus infinity, on Win32. As above. - accept(); - eggyylval._number = -HUGE_VAL; - eggyylval._string = eggyytext; - return EGG_NUMBER; -} - YY_BREAK -case 97: -YY_RULE_SETUP -#line 751 "lexer.lxx" -{ - // Quoted string. - accept(); - eggyylval._string = scan_quoted_string(); - return EGG_STRING; -} - YY_BREAK -case 98: -YY_RULE_SETUP -#line 758 "lexer.lxx" -{ - // Unquoted string. - accept(); - eggyylval._string = eggyytext; - return EGG_STRING; -} - YY_BREAK -case 99: -YY_RULE_SETUP -#line 764 "lexer.lxx" -ECHO; - YY_BREAK -#line 2342 "lex.yy.c" -case YY_STATE_EOF(INITIAL): - yyterminate(); - - case YY_END_OF_BUFFER: - { - /* Amount of text matched not including the EOB char. */ - int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; - - /* Undo the effects of YY_DO_BEFORE_ACTION. */ - *yy_cp = (yy_hold_char); - YY_RESTORE_YY_MORE_OFFSET - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed eggyyin at a new source and called - * eggyylex(). If so, then we have to assure - * consistency between YY_CURRENT_BUFFER and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = eggyyin; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; - } - - /* Note that here we test for yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - { /* This was really a NUL. */ - yy_state_type yy_next_state; - - (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - yy_next_state = yy_try_NUL_trans( yy_current_state ); - - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - - if ( yy_next_state ) - { - /* Consume the NUL. */ - yy_cp = ++(yy_c_buf_p); - yy_current_state = yy_next_state; - goto yy_match; - } - - else - { - yy_cp = (yy_c_buf_p); - goto yy_find_action; - } - } - - else switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_END_OF_FILE: - { - (yy_did_buffer_switch_on_eof) = 0; - - if ( eggyywrap( ) ) - { - /* Note: because we've taken care in - * yy_get_next_buffer() to have set up - * eggyytext, we can now set up - * yy_c_buf_p so that if some total - * hoser (like flex itself) wants to - * call the scanner after we return the - * YY_NULL, it'll still work - another - * YY_NULL will get returned. - */ - (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; - - yy_act = YY_STATE_EOF(YY_START); - goto do_action; - } - - else - { - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = - (yytext_ptr) + yy_amount_of_matched_text; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_match; - - case EOB_ACT_LAST_MATCH: - (yy_c_buf_p) = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; - - yy_current_state = yy_get_previous_state( ); - - yy_cp = (yy_c_buf_p); - yy_bp = (yytext_ptr) + YY_MORE_ADJ; - goto yy_find_action; - } - break; - } - - default: - YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ -} /* end of eggyylex */ - -/* yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - * EOB_ACT_LAST_MATCH - - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * EOB_ACT_END_OF_FILE - end of file - */ -static int yy_get_next_buffer (void) -{ - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; - int ret_val; - - if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) - YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; - - else - { - int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; - - int yy_c_buf_p_offset = - (int) ((yy_c_buf_p) - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; - - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - eggyyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; - - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; - - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; - - } - - if ( num_to_read > YY_READ_BUF_SIZE ) - num_to_read = YY_READ_BUF_SIZE; - - /* Read in more data. */ - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), (size_t) num_to_read ); - - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - if ( (yy_n_chars) == 0 ) - { - if ( number_to_move == YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - eggyyrestart(eggyyin ); - } - - else - { - ret_val = EOB_ACT_LAST_MATCH; - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = - YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) eggyyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - } - - (yy_n_chars) += number_to_move; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; - - (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; - - return ret_val; -} - -/* yy_get_previous_state - get the state just before the EOB char was reached */ - - static yy_state_type yy_get_previous_state (void) -{ - register yy_state_type yy_current_state; - register char *yy_cp; - - yy_current_state = (yy_start); - - for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) - { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 577 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - } - - return yy_current_state; -} - -/* yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - * next_state = yy_try_NUL_trans( current_state ); - */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) -{ - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); - - register YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } - while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) - { - yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 577 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 576); - - return yy_is_jam ? 0 : yy_current_state; -} - - static void yyunput (int c, register char * yy_bp ) -{ - register char *yy_cp; - - yy_cp = (yy_c_buf_p); - - /* undo effects of setting up eggyytext */ - *yy_cp = (yy_hold_char); - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ - register int number_to_move = (yy_n_chars) + 2; - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; - register char *source = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; - - while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - *--dest = *--source; - - yy_cp += (int) (dest - source); - yy_bp += (int) (dest - source); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - YY_FATAL_ERROR( "flex scanner push-back overflow" ); - } - - *--yy_cp = (char) c; - - (yytext_ptr) = yy_bp; - (yy_hold_char) = *yy_cp; - (yy_c_buf_p) = yy_cp; -} - -#ifndef YY_NO_INPUT -#ifdef __cplusplus - static int yyinput (void) -#else - static int input (void) -#endif - -{ - int c; - - *(yy_c_buf_p) = (yy_hold_char); - - if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) - { - /* yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) - /* This was really a NUL. */ - *(yy_c_buf_p) = '\0'; - - else - { /* need more input */ - int offset = (yy_c_buf_p) - (yytext_ptr); - ++(yy_c_buf_p); - - switch ( yy_get_next_buffer( ) ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - eggyyrestart(eggyyin ); - - /*FALLTHROUGH*/ - - case EOB_ACT_END_OF_FILE: - { - if ( eggyywrap( ) ) - return EOF; - - if ( ! (yy_did_buffer_switch_on_eof) ) - YY_NEW_FILE; -#ifdef __cplusplus - return yyinput(); -#else - return input(); -#endif - } - - case EOB_ACT_CONTINUE_SCAN: - (yy_c_buf_p) = (yytext_ptr) + offset; - break; - } - } - } - - c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve eggyytext */ - (yy_hold_char) = *++(yy_c_buf_p); - - return c; -} -#endif /* ifndef YY_NO_INPUT */ - -/** Immediately switch to a different input stream. - * @param input_file A readable stream. - * - * @note This function does not reset the start condition to @c INITIAL . - */ - void eggyyrestart (FILE * input_file ) -{ - - if ( ! YY_CURRENT_BUFFER ){ - eggyyensure_buffer_stack (); - YY_CURRENT_BUFFER_LVALUE = - eggyy_create_buffer(eggyyin,YY_BUF_SIZE ); - } - - eggyy_init_buffer(YY_CURRENT_BUFFER,input_file ); - eggyy_load_buffer_state( ); -} - -/** Switch to a different input buffer. - * @param new_buffer The new input buffer. - * - */ - void eggyy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) -{ - - /* TODO. We should be able to replace this entire function body - * with - * eggyypop_buffer_state(); - * eggyypush_buffer_state(new_buffer); - */ - eggyyensure_buffer_stack (); - if ( YY_CURRENT_BUFFER == new_buffer ) - return; - - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - YY_CURRENT_BUFFER_LVALUE = new_buffer; - eggyy_load_buffer_state( ); - - /* We don't actually know whether we did this switch during - * EOF (eggyywrap()) processing, but the only time this flag - * is looked at is after eggyywrap() is called, so it's safe - * to go ahead and always set it. - */ - (yy_did_buffer_switch_on_eof) = 1; -} - -static void eggyy_load_buffer_state (void) -{ - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - eggyyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; - (yy_hold_char) = *(yy_c_buf_p); -} - -/** Allocate and initialize an input buffer state. - * @param file A readable stream. - * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. - * - * @return the allocated buffer state. - */ - YY_BUFFER_STATE eggyy_create_buffer (FILE * file, int size ) -{ - YY_BUFFER_STATE b; - - b = (YY_BUFFER_STATE) eggyyalloc(sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in eggyy_create_buffer()" ); - - b->yy_buf_size = size; - - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ - b->yy_ch_buf = (char *) eggyyalloc(b->yy_buf_size + 2 ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in eggyy_create_buffer()" ); - - b->yy_is_our_buffer = 1; - - eggyy_init_buffer(b,file ); - - return b; -} - -/** Destroy the buffer. - * @param b a buffer created with eggyy_create_buffer() - * - */ - void eggyy_delete_buffer (YY_BUFFER_STATE b ) -{ - - if ( ! b ) - return; - - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; - - if ( b->yy_is_our_buffer ) - eggyyfree((void *) b->yy_ch_buf ); - - eggyyfree((void *) b ); -} - -#ifndef __cplusplus -extern int isatty (int ); -#endif /* __cplusplus */ - -/* Initializes or reinitializes a buffer. - * This function is sometimes called more than once on the same buffer, - * such as during a eggyyrestart() or at EOF. - */ - static void eggyy_init_buffer (YY_BUFFER_STATE b, FILE * file ) - -{ - int oerrno = errno; - - eggyy_flush_buffer(b ); - - b->yy_input_file = file; - b->yy_fill_buffer = 1; - - /* If b is the current buffer, then eggyy_init_buffer was _probably_ - * called from eggyyrestart() or through yy_get_next_buffer. - * In that case, we don't want to reset the lineno or column. - */ - if (b != YY_CURRENT_BUFFER){ - b->yy_bs_lineno = 1; - b->yy_bs_column = 0; - } - - b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; - - errno = oerrno; -} - -/** Discard all buffered characters. On the next scan, YY_INPUT will be called. - * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. - * - */ - void eggyy_flush_buffer (YY_BUFFER_STATE b ) -{ - if ( ! b ) - return; - - b->yy_n_chars = 0; - - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; - - b->yy_buf_pos = &b->yy_ch_buf[0]; - - b->yy_at_bol = 1; - b->yy_buffer_status = YY_BUFFER_NEW; - - if ( b == YY_CURRENT_BUFFER ) - eggyy_load_buffer_state( ); -} - -/** Pushes the new state onto the stack. The new state becomes - * the current state. This function will allocate the stack - * if necessary. - * @param new_buffer The new state. - * - */ -void eggyypush_buffer_state (YY_BUFFER_STATE new_buffer ) -{ - if (new_buffer == NULL) - return; - - eggyyensure_buffer_stack(); - - /* This block is copied from eggyy_switch_to_buffer. */ - if ( YY_CURRENT_BUFFER ) - { - /* Flush out information for old buffer. */ - *(yy_c_buf_p) = (yy_hold_char); - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); - } - - /* Only push if top exists. Otherwise, replace top. */ - if (YY_CURRENT_BUFFER) - (yy_buffer_stack_top)++; - YY_CURRENT_BUFFER_LVALUE = new_buffer; - - /* copied from eggyy_switch_to_buffer. */ - eggyy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; -} - -/** Removes and deletes the top of the stack, if present. - * The next element becomes the new top. - * - */ -void eggyypop_buffer_state (void) -{ - if (!YY_CURRENT_BUFFER) - return; - - eggyy_delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - if ((yy_buffer_stack_top) > 0) - --(yy_buffer_stack_top); - - if (YY_CURRENT_BUFFER) { - eggyy_load_buffer_state( ); - (yy_did_buffer_switch_on_eof) = 1; - } -} - -/* Allocates the stack if it does not exist. - * Guarantees space for at least one push. - */ -static void eggyyensure_buffer_stack (void) -{ - int num_to_alloc; - - if (!(yy_buffer_stack)) { - - /* First allocation is just for 2 elements, since we don't know if this - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)eggyyalloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in eggyyensure_buffer_stack()" ); - - memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - - (yy_buffer_stack_max) = num_to_alloc; - (yy_buffer_stack_top) = 0; - return; - } - - if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ - - /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)eggyyrealloc - ((yy_buffer_stack), - num_to_alloc * sizeof(struct yy_buffer_state*) - ); - if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in eggyyensure_buffer_stack()" ); - - /* zero only the new slots.*/ - memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); - (yy_buffer_stack_max) = num_to_alloc; - } -} - -/** Setup the input buffer state to scan directly from a user-specified character buffer. - * @param base the character buffer - * @param size the size in bytes of the character buffer - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE eggyy_scan_buffer (char * base, yy_size_t size ) -{ - YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return 0; - - b = (YY_BUFFER_STATE) eggyyalloc(sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in eggyy_scan_buffer()" ); - - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; - b->yy_input_file = 0; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; - b->yy_fill_buffer = 0; - b->yy_buffer_status = YY_BUFFER_NEW; - - eggyy_switch_to_buffer(b ); - - return b; -} - -/** Setup the input buffer state to scan a string. The next call to eggyylex() will - * scan from a @e copy of @a str. - * @param yystr a NUL-terminated string to scan - * - * @return the newly allocated buffer state object. - * @note If you want to scan bytes that may contain NUL values, then use - * eggyy_scan_bytes() instead. - */ -YY_BUFFER_STATE eggyy_scan_string (yyconst char * yystr ) -{ - - return eggyy_scan_bytes(yystr,strlen(yystr) ); -} - -/** Setup the input buffer state to scan the given bytes. The next call to eggyylex() will - * scan from a @e copy of @a bytes. - * @param bytes the byte buffer to scan - * @param len the number of bytes in the buffer pointed to by @a bytes. - * - * @return the newly allocated buffer state object. - */ -YY_BUFFER_STATE eggyy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) -{ - YY_BUFFER_STATE b; - char *buf; - yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) eggyyalloc(n ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in eggyy_scan_bytes()" ); - - for ( i = 0; i < _yybytes_len; ++i ) - buf[i] = yybytes[i]; - - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - - b = eggyy_scan_buffer(buf,n ); - if ( ! b ) - YY_FATAL_ERROR( "bad buffer in eggyy_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->yy_is_our_buffer = 1; - - return b; -} - -#ifndef YY_EXIT_FAILURE -#define YY_EXIT_FAILURE 2 -#endif - -static void yy_fatal_error (yyconst char* msg ) -{ - (void) fprintf( stderr, "%s\n", msg ); - exit( YY_EXIT_FAILURE ); -} - -/* Redefine yyless() so it works in section 3 code. */ - -#undef yyless -#define yyless(n) \ - do \ - { \ - /* Undo effects of setting up eggyytext. */ \ - int yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - eggyytext[eggyyleng] = (yy_hold_char); \ - (yy_c_buf_p) = eggyytext + yyless_macro_arg; \ - (yy_hold_char) = *(yy_c_buf_p); \ - *(yy_c_buf_p) = '\0'; \ - eggyyleng = yyless_macro_arg; \ - } \ - while ( 0 ) - -/* Accessor methods (get/set functions) to struct members. */ - -/** Get the current line number. - * - */ -int eggyyget_lineno (void) -{ - - return eggyylineno; -} - -/** Get the input stream. - * - */ -FILE *eggyyget_in (void) -{ - return eggyyin; -} - -/** Get the output stream. - * - */ -FILE *eggyyget_out (void) -{ - return eggyyout; -} - -/** Get the length of the current token. - * - */ -int eggyyget_leng (void) -{ - return eggyyleng; -} - -/** Get the current token. - * - */ - -char *eggyyget_text (void) -{ - return eggyytext; -} - -/** Set the current line number. - * @param line_number - * - */ -void eggyyset_lineno (int line_number ) -{ - - eggyylineno = line_number; -} - -/** Set the input stream. This does not discard the current - * input buffer. - * @param in_str A readable stream. - * - * @see eggyy_switch_to_buffer - */ -void eggyyset_in (FILE * in_str ) -{ - eggyyin = in_str ; -} - -void eggyyset_out (FILE * out_str ) -{ - eggyyout = out_str ; -} - -int eggyyget_debug (void) -{ - return eggyy_flex_debug; -} - -void eggyyset_debug (int bdebug ) -{ - eggyy_flex_debug = bdebug ; -} - -static int yy_init_globals (void) -{ - /* Initialization is the same as for the non-reentrant scanner. - * This function is called from eggyylex_destroy(), so don't allocate here. - */ - - (yy_buffer_stack) = 0; - (yy_buffer_stack_top) = 0; - (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; - (yy_init) = 0; - (yy_start) = 0; - -/* Defined in main.c */ -#ifdef YY_STDINIT - eggyyin = stdin; - eggyyout = stdout; -#else - eggyyin = (FILE *) 0; - eggyyout = (FILE *) 0; -#endif - - /* For future reference: Set errno on error, since we are called by - * eggyylex_init() - */ - return 0; -} - -/* eggyylex_destroy is for both reentrant and non-reentrant scanners. */ -int eggyylex_destroy (void) -{ - - /* Pop the buffer stack, destroying each element. */ - while(YY_CURRENT_BUFFER){ - eggyy_delete_buffer(YY_CURRENT_BUFFER ); - YY_CURRENT_BUFFER_LVALUE = NULL; - eggyypop_buffer_state(); - } - - /* Destroy the stack itself. */ - eggyyfree((yy_buffer_stack) ); - (yy_buffer_stack) = NULL; - - /* Reset the globals. This is important in a non-reentrant scanner so the next time - * eggyylex() is called, initialization will occur. */ - yy_init_globals( ); - - return 0; -} - -/* - * Internal utility routines. - */ - -#ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) -{ - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; -} -#endif - -#ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) -{ - register int n; - for ( n = 0; s[n]; ++n ) - ; - - return n; -} -#endif - -void *eggyyalloc (yy_size_t size ) -{ - return (void *) malloc( size ); -} - -void *eggyyrealloc (void * ptr, yy_size_t size ) -{ - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); -} - -void eggyyfree (void * ptr ) -{ - free( (char *) ptr ); /* see eggyyrealloc() for (char *) cast */ -} - -#define YYTABLES_NAME "yytables" - -#line 764 "lexer.lxx" +#line 2 "lex.yy.c" + +#line 4 "lex.yy.c" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define yy_create_buffer eggyy_create_buffer +#define yy_delete_buffer eggyy_delete_buffer +#define yy_flex_debug eggyy_flex_debug +#define yy_init_buffer eggyy_init_buffer +#define yy_flush_buffer eggyy_flush_buffer +#define yy_load_buffer_state eggyy_load_buffer_state +#define yy_switch_to_buffer eggyy_switch_to_buffer +#define yyin eggyyin +#define yyleng eggyyleng +#define yylex eggyylex +#define yylineno eggyylineno +#define yyout eggyyout +#define yyrestart eggyyrestart +#define yytext eggyytext +#define yywrap eggyywrap +#define yyalloc eggyyalloc +#define yyrealloc eggyyrealloc +#define yyfree eggyyfree + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 5 +#define YY_FLEX_SUBMINOR_VERSION 35 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; +#endif /* ! C99 */ + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#endif /* ! FLEXINT_H */ + +#ifdef __cplusplus + +/* The "const" storage-class-modifier is valid. */ +#define YY_USE_CONST + +#else /* ! __cplusplus */ + +/* C99 requires __STDC__ to be defined as 1. */ +#if defined (__STDC__) + +#define YY_USE_CONST + +#endif /* defined (__STDC__) */ +#endif /* ! __cplusplus */ + +#ifdef YY_USE_CONST +#define yyconst const +#else +#define yyconst +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an unsigned + * integer for use as an array index. If the signed char is negative, + * we want to instead treat it as an 8-bit unsigned char, hence the + * double cast. + */ +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN (yy_start) = 1 + 2 * + +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START (((yy_start) - 1) / 2) +#define YYSTATE YY_START + +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) + +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE eggyyrestart(eggyyin ) + +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#define YY_BUF_SIZE 16384 +#endif + +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +extern yy_size_t eggyyleng; + +extern FILE *eggyyin, *eggyyout; + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up eggyytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = (yy_hold_char); \ + YY_RESTORE_YY_MORE_OFFSET \ + (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up eggyytext again */ \ + } \ + while ( 0 ) + +#define unput(c) yyunput( c, (yytext_ptr) ) + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + yy_size_t yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + yy_size_t yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via eggyyrestart()), so that the user can continue scanning by + * just pointing eggyyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* Stack of input buffers. */ +static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ +static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ +static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ + ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ + : NULL) + +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] + +/* yy_hold_char holds the character lost when eggyytext is formed. */ +static char yy_hold_char; +static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ +yy_size_t eggyyleng; + +/* Points to current character in buffer. */ +static char *yy_c_buf_p = (char *) 0; +static int yy_init = 0; /* whether we need to initialize */ +static int yy_start = 0; /* start state number */ + +/* Flag which is used to allow eggyywrap()'s to do buffer switches + * instead of setting up a fresh eggyyin. A bit of a hack ... + */ +static int yy_did_buffer_switch_on_eof; + +void eggyyrestart (FILE *input_file ); +void eggyy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE eggyy_create_buffer (FILE *file,int size ); +void eggyy_delete_buffer (YY_BUFFER_STATE b ); +void eggyy_flush_buffer (YY_BUFFER_STATE b ); +void eggyypush_buffer_state (YY_BUFFER_STATE new_buffer ); +void eggyypop_buffer_state (void ); + +static void eggyyensure_buffer_stack (void ); +static void eggyy_load_buffer_state (void ); +static void eggyy_init_buffer (YY_BUFFER_STATE b,FILE *file ); + +#define YY_FLUSH_BUFFER eggyy_flush_buffer(YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE eggyy_scan_buffer (char *base,yy_size_t size ); +YY_BUFFER_STATE eggyy_scan_string (yyconst char *yy_str ); +YY_BUFFER_STATE eggyy_scan_bytes (yyconst char *bytes,yy_size_t len ); + +void *eggyyalloc (yy_size_t ); +void *eggyyrealloc (void *,yy_size_t ); +void eggyyfree (void * ); + +#define yy_new_buffer eggyy_create_buffer + +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + eggyyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + eggyy_create_buffer(eggyyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } + +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + eggyyensure_buffer_stack (); \ + YY_CURRENT_BUFFER_LVALUE = \ + eggyy_create_buffer(eggyyin,YY_BUF_SIZE ); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } + +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +typedef unsigned char YY_CHAR; + +FILE *eggyyin = (FILE *) 0, *eggyyout = (FILE *) 0; + +typedef int yy_state_type; + +extern int eggyylineno; + +int eggyylineno = 1; + +extern char *eggyytext; +#define yytext_ptr eggyytext + +static yy_state_type yy_get_previous_state (void ); +static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); +static int yy_get_next_buffer (void ); +static void yy_fatal_error (yyconst char msg[] ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up eggyytext. + */ +#define YY_DO_BEFORE_ACTION \ + (yytext_ptr) = yy_bp; \ + eggyyleng = (size_t) (yy_cp - yy_bp); \ + (yy_hold_char) = *yy_cp; \ + *yy_cp = '\0'; \ + (yy_c_buf_p) = yy_cp; + +#define YY_NUM_RULES 100 +#define YY_END_OF_BUFFER 101 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static yyconst flex_int16_t yy_accept[580] = + { 0, + 0, 0, 101, 99, 2, 1, 98, 99, 99, 99, + 99, 90, 90, 90, 99, 99, 99, 5, 99, 1, + 99, 90, 90, 99, 90, 4, 3, 90, 92, 99, + 91, 90, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 90, 99, 3, 3, 92, 99, + 90, 91, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 66, 99, 99, 99, + 94, 99, 99, 95, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 20, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 81, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 7, 99, 99, 99, 99, 99, + + 99, 99, 99, 99, 99, 99, 99, 26, 99, 99, + 99, 99, 99, 24, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 52, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 67, 99, 99, + 99, 99, 99, 99, 99, 99, 78, 99, 99, 99, + 99, 99, 99, 93, 99, 96, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 21, 99, + 99, 99, 99, 99, 25, 99, 30, 99, 99, 99, + 99, 99, 37, 38, 99, 99, 99, 43, 99, 99, + + 99, 99, 99, 99, 99, 53, 99, 55, 56, 57, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 74, 99, 77, 99, 99, 99, 99, 99, + 99, 93, 97, 99, 99, 9, 99, 99, 99, 14, + 99, 99, 99, 99, 99, 99, 99, 99, 23, 28, + 99, 31, 99, 99, 33, 34, 99, 99, 42, 99, + 99, 99, 99, 48, 99, 99, 99, 99, 99, 99, + 60, 99, 99, 99, 65, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 99, 13, 15, 99, 99, 99, 99, 99, 99, + + 99, 99, 99, 99, 99, 99, 99, 44, 99, 99, + 99, 99, 99, 99, 54, 58, 59, 99, 99, 63, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 84, 99, 99, 99, 99, 99, 99, 99, 99, + 99, 16, 17, 99, 99, 99, 99, 22, 99, 35, + 99, 99, 40, 41, 99, 99, 99, 99, 99, 51, + 99, 62, 99, 68, 69, 70, 99, 99, 99, 99, + 79, 80, 82, 99, 99, 99, 83, 99, 99, 99, + 99, 12, 99, 99, 99, 27, 99, 36, 39, 99, + 99, 99, 99, 99, 61, 99, 71, 99, 99, 99, + + 99, 99, 99, 99, 88, 99, 99, 99, 10, 99, + 18, 99, 99, 99, 99, 99, 99, 99, 99, 99, + 72, 73, 99, 99, 99, 99, 87, 99, 99, 99, + 99, 99, 99, 99, 45, 99, 47, 49, 50, 99, + 99, 99, 85, 86, 99, 6, 8, 99, 99, 32, + 99, 99, 99, 75, 99, 89, 99, 99, 99, 46, + 99, 99, 99, 99, 99, 99, 76, 99, 99, 99, + 99, 11, 99, 99, 64, 19, 99, 29, 0 + } ; + +static yyconst flex_int32_t yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 4, 5, 6, 1, 1, 1, 1, + 1, 7, 8, 1, 9, 10, 11, 12, 13, 14, + 15, 16, 14, 14, 14, 14, 14, 1, 1, 17, + 1, 18, 1, 1, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 1, 1, 1, 1, 45, 1, 46, 47, 48, 49, + + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 1, 72, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static yyconst flex_int32_t yy_meta[73] = + { 0, + 1, 2, 3, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2 + } ; + +static yyconst flex_int16_t yy_base[585] = + { 0, + 0, 71, 1215, 0, 1216, 0, 1216, 8, 23, 28, + 18, 134, 55, 79, 203, 2, 0, 1216, 0, 0, + 94, 101, 122, 17, 146, 0, 24, 151, 18, 174, + 263, 276, 136, 277, 289, 338, 36, 63, 68, 68, + 72, 146, 261, 284, 300, 79, 312, 352, 376, 293, + 401, 129, 146, 139, 442, 154, 49, 0, 35, 339, + 401, 0, 271, 276, 263, 296, 322, 339, 350, 375, + 378, 404, 1196, 387, 388, 408, 399, 407, 416, 406, + 403, 401, 416, 419, 420, 445, 433, 439, 441, 441, + 439, 456, 456, 445, 447, 456, 463, 448, 461, 465, + + 470, 456, 476, 477, 462, 479, 475, 494, 461, 484, + 508, 482, 499, 1195, 503, 504, 0, 500, 508, 507, + 0, 1200, 512, 0, 508, 511, 1193, 516, 523, 515, + 515, 527, 514, 514, 522, 549, 521, 0, 523, 1192, + 549, 535, 538, 561, 559, 1191, 541, 567, 564, 550, + 560, 553, 560, 555, 571, 562, 575, 574, 575, 571, + 583, 581, 582, 568, 583, 579, 1190, 608, 609, 602, + 605, 597, 615, 601, 610, 1189, 616, 618, 611, 612, + 621, 627, 1188, 615, 0, 618, 625, 621, 628, 1199, + 623, 637, 652, 647, 0, 659, 665, 669, 654, 661, + + 1197, 670, 667, 672, 664, 676, 1185, 0, 660, 681, + 670, 683, 680, 0, 1184, 674, 1183, 672, 668, 691, + 673, 675, 1182, 1181, 677, 687, 689, 1180, 704, 693, + 714, 700, 723, 705, 719, 0, 1179, 707, 1178, 1177, + 1176, 720, 729, 726, 724, 732, 731, 0, 732, 729, + 719, 734, 723, 1175, 729, 1159, 0, 731, 732, 733, + 744, 735, 754, 789, 765, 0, 754, 760, 1158, 764, + 767, 776, 1157, 784, 785, 782, 783, 791, 0, 789, + 788, 802, 1156, 1150, 0, 795, 0, 1149, 805, 796, + 1144, 944, 0, 0, 802, 788, 814, 0, 801, 822, + + 806, 766, 818, 821, 819, 0, 830, 0, 0, 0, + 829, 825, 759, 830, 831, 838, 538, 833, 829, 831, + 830, 845, 0, 847, 0, 835, 836, 838, 839, 844, + 851, 0, 0, 861, 864, 0, 878, 879, 413, 0, + 412, 881, 867, 883, 875, 875, 893, 885, 0, 0, + 895, 0, 894, 897, 0, 0, 900, 40, 0, 411, + 881, 882, 884, 0, 898, 899, 895, 410, 409, 373, + 0, 907, 904, 917, 0, 892, 898, 914, 913, 918, + 933, 928, 922, 923, 924, 955, 930, 941, 939, 931, + 935, 942, 0, 0, 372, 371, 943, 957, 943, 957, + + 369, 941, 367, 959, 953, 365, 361, 0, 948, 954, + 949, 970, 975, 330, 0, 0, 0, 982, 316, 0, + 973, 300, 290, 288, 975, 977, 976, 992, 278, 277, + 275, 0, 989, 989, 1000, 189, 993, 992, 990, 1006, + 181, 0, 0, 991, 992, 998, 176, 0, 1011, 0, + 175, 174, 0, 0, 995, 1012, 1003, 1006, 1017, 0, + 173, 0, 1012, 0, 0, 0, 167, 1014, 1023, 1023, + 0, 0, 0, 1027, 1026, 1042, 0, 1049, 1049, 1029, + 1057, 0, 159, 1053, 1040, 0, 1043, 0, 0, 1057, + 1063, 1060, 1046, 1047, 0, 1066, 0, 138, 137, 1070, + + 1052, 1060, 1062, 134, 0, 1060, 1076, 1076, 0, 1077, + 0, 1064, 1079, 1070, 124, 1092, 123, 122, 115, 1087, + 0, 0, 1088, 1085, 105, 104, 0, 114, 101, 100, + 1090, 1080, 79, 1107, 0, 1108, 0, 0, 0, 1094, + 48, 1106, 0, 0, 46, 0, 0, 1096, 1099, 0, + 1095, 44, 1111, 0, 1105, 0, 1119, 1105, 1110, 0, + 1112, 42, 1110, 1128, 1119, 1121, 0, 40, 1123, 1122, + 39, 0, 34, 1126, 0, 0, 27, 0, 1216, 1183, + 0, 1186, 1188, 1190 + } ; + +static yyconst flex_int16_t yy_def[585] = + { 0, + 580, 580, 579, 581, 579, 582, 579, 581, 581, 581, + 581, 581, 581, 581, 579, 581, 581, 579, 581, 582, + 581, 581, 581, 581, 581, 581, 583, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 583, 584, 581, 581, + 581, 31, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 264, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 581, 581, 581, 581, 581, 581, 0, 579, + 579, 579, 579, 579 + } ; + +static yyconst flex_int16_t yy_nxt[1289] = + { 0, + 19, 5, 6, 7, 579, 579, 579, 8, 9, 10, + 11, 12, 13, 14, 14, 14, 15, 21, 54, 22, + 22, 22, 22, 22, 26, 58, 16, 58, 27, 59, + 59, 17, 21, 53, 22, 23, 22, 22, 22, 25, + 25, 25, 25, 25, 578, 54, 59, 59, 56, 24, + 58, 576, 58, 16, 406, 407, 575, 572, 17, 567, + 53, 560, 84, 556, 32, 554, 22, 22, 22, 22, + 22, 18, 5, 6, 7, 56, 24, 30, 8, 9, + 10, 11, 12, 13, 14, 14, 14, 15, 28, 84, + 22, 22, 22, 22, 22, 58, 550, 16, 85, 86, + + 87, 30, 17, 88, 30, 25, 25, 25, 25, 25, + 28, 99, 22, 22, 22, 22, 22, 547, 546, 545, + 58, 544, 543, 30, 16, 85, 86, 87, 30, 17, + 88, 55, 539, 22, 22, 22, 22, 22, 99, 538, + 537, 535, 18, 28, 30, 22, 22, 22, 22, 22, + 30, 527, 120, 29, 522, 521, 30, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 64, 30, 121, + 122, 30, 89, 30, 65, 31, 511, 124, 90, 120, + 29, 60, 60, 30, 497, 61, 61, 61, 61, 61, + 495, 489, 488, 486, 64, 30, 121, 122, 482, 89, + + 30, 65, 31, 19, 124, 90, 477, 19, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, + 19, 33, 34, 35, 36, 19, 37, 38, 19, 39, + 40, 41, 42, 43, 44, 45, 46, 19, 47, 48, + 49, 50, 51, 19, 52, 19, 19, 19, 33, 34, + 35, 36, 19, 37, 38, 19, 39, 40, 41, 42, + 43, 44, 45, 46, 19, 47, 48, 49, 50, 51, + 19, 52, 19, 19, 62, 62, 62, 62, 62, 91, + 63, 62, 62, 62, 62, 62, 62, 25, 25, 25, + 25, 25, 473, 92, 472, 471, 93, 125, 30, 66, + + 67, 113, 126, 68, 127, 466, 91, 465, 62, 62, + 62, 62, 62, 62, 70, 69, 94, 464, 71, 96, + 92, 72, 95, 93, 125, 30, 66, 67, 73, 126, + 68, 127, 114, 462, 100, 97, 101, 115, 98, 128, + 129, 70, 69, 94, 102, 71, 96, 460, 72, 95, + 61, 61, 61, 61, 61, 73, 74, 103, 75, 114, + 76, 100, 97, 101, 77, 98, 128, 129, 130, 78, + 131, 102, 104, 79, 105, 80, 81, 106, 454, 82, + 83, 132, 453, 74, 450, 75, 448, 76, 443, 442, + 417, 77, 107, 133, 108, 130, 78, 131, 109, 104, + + 79, 105, 80, 81, 106, 110, 82, 83, 132, 116, + 134, 111, 61, 61, 61, 61, 61, 112, 117, 107, + 133, 108, 139, 118, 140, 109, 416, 415, 408, 394, + 393, 141, 110, 135, 136, 142, 137, 134, 111, 143, + 144, 145, 146, 147, 112, 119, 123, 148, 149, 139, + 118, 140, 150, 25, 25, 25, 25, 25, 141, 153, + 135, 136, 142, 137, 30, 151, 143, 144, 145, 146, + 147, 154, 155, 156, 148, 149, 157, 158, 159, 150, + 160, 152, 161, 162, 163, 164, 153, 165, 167, 168, + 166, 30, 151, 169, 170, 171, 172, 173, 154, 155, + + 156, 174, 178, 157, 158, 159, 179, 160, 152, 161, + 162, 163, 164, 175, 165, 167, 168, 166, 176, 183, + 169, 170, 171, 172, 173, 177, 180, 184, 174, 178, + 181, 186, 187, 179, 182, 188, 189, 190, 192, 193, + 175, 194, 196, 197, 198, 176, 183, 199, 200, 201, + 202, 203, 177, 180, 184, 375, 206, 181, 186, 187, + 207, 182, 188, 189, 190, 192, 193, 209, 194, 196, + 197, 198, 210, 211, 199, 200, 201, 202, 203, 204, + 212, 213, 205, 206, 215, 216, 217, 207, 218, 219, + 220, 221, 222, 223, 209, 224, 227, 225, 228, 210, + + 211, 229, 230, 231, 232, 233, 204, 212, 213, 205, + 226, 215, 216, 217, 234, 218, 219, 220, 221, 222, + 223, 235, 224, 227, 225, 228, 237, 238, 229, 230, + 231, 232, 233, 242, 243, 244, 245, 226, 246, 247, + 249, 234, 252, 253, 254, 255, 258, 250, 235, 259, + 239, 240, 241, 237, 238, 251, 260, 256, 261, 262, + 242, 243, 244, 245, 264, 246, 247, 249, 265, 252, + 253, 254, 255, 258, 250, 266, 259, 239, 240, 241, + 267, 268, 251, 260, 256, 261, 262, 269, 270, 271, + 272, 264, 274, 275, 276, 265, 277, 278, 280, 281, + + 282, 283, 266, 284, 286, 288, 289, 267, 268, 290, + 291, 292, 295, 296, 269, 270, 271, 272, 297, 274, + 275, 276, 299, 277, 278, 280, 281, 282, 283, 300, + 284, 286, 288, 289, 301, 302, 290, 291, 292, 295, + 296, 303, 304, 305, 307, 297, 311, 312, 314, 299, + 315, 313, 316, 317, 318, 319, 300, 320, 321, 322, + 324, 301, 302, 326, 327, 328, 329, 330, 303, 304, + 305, 307, 331, 311, 312, 314, 371, 315, 313, 316, + 317, 318, 319, 364, 320, 321, 322, 324, 333, 334, + 326, 327, 328, 329, 330, 335, 337, 338, 339, 331, + + 332, 332, 332, 332, 332, 341, 342, 332, 332, 332, + 332, 332, 332, 343, 344, 333, 334, 345, 346, 347, + 348, 351, 335, 337, 338, 339, 353, 354, 357, 358, + 360, 359, 341, 342, 332, 332, 332, 332, 332, 332, + 343, 344, 361, 363, 345, 346, 347, 348, 351, 365, + 366, 367, 368, 353, 354, 357, 358, 360, 362, 369, + 370, 372, 373, 374, 376, 377, 378, 379, 380, 361, + 363, 382, 383, 384, 381, 385, 365, 366, 367, 368, + 386, 387, 388, 389, 390, 362, 369, 370, 372, 373, + 374, 376, 377, 378, 379, 380, 391, 392, 382, 383, + + 384, 381, 385, 395, 396, 397, 398, 386, 387, 388, + 389, 390, 399, 400, 401, 402, 403, 404, 405, 409, + 410, 411, 412, 391, 392, 413, 414, 418, 419, 422, + 395, 396, 397, 398, 420, 423, 424, 421, 425, 399, + 400, 401, 402, 403, 404, 405, 409, 410, 411, 412, + 426, 427, 413, 414, 418, 419, 422, 428, 429, 430, + 431, 356, 423, 424, 421, 425, 436, 437, 438, 439, + 440, 441, 432, 433, 444, 445, 446, 426, 427, 447, + 449, 451, 452, 455, 428, 429, 430, 431, 434, 456, + 435, 457, 458, 436, 437, 438, 439, 440, 441, 459, + + 433, 444, 445, 446, 461, 463, 447, 449, 451, 452, + 455, 467, 468, 469, 470, 434, 456, 435, 457, 458, + 474, 475, 476, 478, 479, 480, 459, 481, 483, 484, + 485, 461, 463, 487, 490, 491, 492, 493, 467, 468, + 469, 470, 494, 496, 498, 499, 500, 474, 475, 476, + 478, 479, 480, 502, 481, 483, 484, 485, 503, 501, + 487, 490, 491, 492, 493, 504, 505, 507, 508, 494, + 496, 498, 499, 500, 509, 512, 513, 510, 514, 515, + 502, 516, 517, 518, 519, 503, 501, 520, 523, 524, + 525, 526, 504, 506, 507, 508, 528, 529, 530, 531, + + 532, 533, 512, 513, 510, 514, 515, 534, 516, 517, + 518, 519, 536, 540, 520, 523, 524, 525, 526, 541, + 542, 548, 549, 528, 529, 530, 531, 532, 533, 551, + 552, 553, 555, 557, 534, 558, 559, 561, 562, 536, + 540, 563, 564, 565, 566, 568, 541, 542, 548, 549, + 569, 570, 571, 573, 574, 577, 551, 552, 553, 555, + 557, 355, 558, 559, 561, 562, 352, 350, 563, 564, + 565, 566, 568, 349, 340, 336, 325, 569, 570, 571, + 573, 574, 577, 4, 4, 4, 20, 20, 57, 57, + 58, 58, 323, 310, 309, 308, 306, 298, 294, 293, + + 287, 285, 279, 273, 263, 257, 248, 236, 214, 208, + 195, 191, 185, 138, 579, 3, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579 + } ; + +static yyconst flex_int16_t yy_chk[1289] = + { 0, + 581, 1, 1, 1, 0, 0, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 8, 17, 8, + 8, 8, 8, 8, 11, 27, 1, 27, 11, 29, + 29, 1, 9, 16, 9, 9, 9, 9, 9, 10, + 10, 10, 10, 10, 577, 17, 59, 59, 24, 9, + 57, 573, 57, 1, 358, 358, 571, 568, 1, 562, + 16, 552, 37, 545, 13, 541, 13, 13, 13, 13, + 13, 1, 2, 2, 2, 24, 9, 13, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 14, 37, + 14, 14, 14, 14, 14, 27, 533, 2, 38, 39, + + 40, 14, 2, 41, 13, 21, 21, 21, 21, 21, + 22, 46, 22, 22, 22, 22, 22, 530, 529, 528, + 57, 526, 525, 22, 2, 38, 39, 40, 14, 2, + 41, 23, 519, 23, 23, 23, 23, 23, 46, 518, + 517, 515, 2, 12, 23, 12, 12, 12, 12, 12, + 22, 504, 52, 12, 499, 498, 12, 25, 25, 25, + 25, 25, 28, 28, 28, 28, 28, 33, 25, 53, + 54, 23, 42, 28, 33, 12, 483, 56, 42, 52, + 12, 30, 30, 12, 467, 30, 30, 30, 30, 30, + 461, 452, 451, 447, 33, 25, 53, 54, 441, 42, + + 28, 33, 12, 15, 56, 42, 436, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 31, 31, 31, 31, 31, 43, + 32, 31, 31, 31, 31, 31, 31, 32, 32, 32, + 32, 32, 431, 43, 430, 429, 43, 63, 32, 34, + + 34, 50, 64, 34, 65, 424, 43, 423, 31, 31, + 31, 31, 31, 31, 35, 34, 44, 422, 35, 45, + 43, 35, 44, 43, 63, 32, 34, 34, 35, 64, + 34, 65, 50, 419, 47, 45, 47, 50, 45, 66, + 67, 35, 34, 44, 47, 35, 45, 414, 35, 44, + 60, 60, 60, 60, 60, 35, 36, 48, 36, 50, + 36, 47, 45, 47, 36, 45, 66, 67, 68, 36, + 68, 47, 48, 36, 48, 36, 36, 48, 407, 36, + 36, 69, 406, 36, 403, 36, 401, 36, 396, 395, + 370, 36, 48, 70, 49, 68, 36, 68, 49, 48, + + 36, 48, 36, 36, 48, 49, 36, 36, 69, 51, + 71, 49, 61, 61, 61, 61, 61, 49, 51, 48, + 70, 49, 74, 51, 75, 49, 369, 368, 360, 341, + 339, 76, 49, 72, 72, 77, 72, 71, 49, 78, + 79, 80, 81, 82, 49, 51, 55, 83, 84, 74, + 51, 75, 85, 55, 55, 55, 55, 55, 76, 87, + 72, 72, 77, 72, 55, 86, 78, 79, 80, 81, + 82, 88, 89, 90, 83, 84, 91, 92, 93, 85, + 94, 86, 95, 96, 97, 98, 87, 99, 100, 101, + 99, 55, 86, 102, 103, 104, 105, 106, 88, 89, + + 90, 107, 109, 91, 92, 93, 110, 94, 86, 95, + 96, 97, 98, 108, 99, 100, 101, 99, 108, 112, + 102, 103, 104, 105, 106, 108, 111, 113, 107, 109, + 111, 115, 116, 110, 111, 118, 119, 120, 123, 125, + 108, 126, 128, 129, 130, 108, 112, 131, 132, 133, + 134, 135, 108, 111, 113, 317, 137, 111, 115, 116, + 139, 111, 118, 119, 120, 123, 125, 141, 126, 128, + 129, 130, 142, 143, 131, 132, 133, 134, 135, 136, + 144, 145, 136, 137, 147, 148, 149, 139, 150, 151, + 152, 153, 154, 155, 141, 156, 158, 157, 159, 142, + + 143, 160, 161, 162, 163, 164, 136, 144, 145, 136, + 157, 147, 148, 149, 165, 150, 151, 152, 153, 154, + 155, 166, 156, 158, 157, 159, 168, 169, 160, 161, + 162, 163, 164, 170, 171, 172, 173, 157, 174, 175, + 177, 165, 179, 180, 181, 182, 184, 178, 166, 186, + 169, 169, 169, 168, 169, 178, 187, 182, 188, 189, + 170, 171, 172, 173, 191, 174, 175, 177, 192, 179, + 180, 181, 182, 184, 178, 193, 186, 169, 169, 169, + 194, 196, 178, 187, 182, 188, 189, 197, 198, 199, + 200, 191, 202, 203, 204, 192, 205, 206, 209, 210, + + 211, 212, 193, 213, 216, 218, 219, 194, 196, 220, + 221, 222, 225, 226, 197, 198, 199, 200, 227, 202, + 203, 204, 229, 205, 206, 209, 210, 211, 212, 230, + 213, 216, 218, 219, 231, 232, 220, 221, 222, 225, + 226, 233, 234, 235, 238, 227, 242, 243, 244, 229, + 245, 243, 246, 247, 249, 250, 230, 251, 252, 253, + 255, 231, 232, 258, 259, 260, 261, 262, 233, 234, + 235, 238, 263, 242, 243, 244, 313, 245, 243, 246, + 247, 249, 250, 302, 251, 252, 253, 255, 265, 267, + 258, 259, 260, 261, 262, 268, 270, 271, 272, 263, + + 264, 264, 264, 264, 264, 274, 275, 264, 264, 264, + 264, 264, 264, 276, 277, 265, 267, 278, 280, 281, + 282, 286, 268, 270, 271, 272, 289, 290, 295, 296, + 299, 297, 274, 275, 264, 264, 264, 264, 264, 264, + 276, 277, 300, 301, 278, 280, 281, 282, 286, 303, + 304, 305, 307, 289, 290, 295, 296, 299, 300, 311, + 312, 314, 315, 316, 318, 319, 320, 321, 322, 300, + 301, 324, 326, 327, 322, 328, 303, 304, 305, 307, + 329, 330, 331, 334, 335, 300, 311, 312, 314, 315, + 316, 318, 319, 320, 321, 322, 337, 338, 324, 326, + + 327, 322, 328, 342, 343, 344, 345, 329, 330, 331, + 334, 335, 346, 347, 348, 351, 353, 354, 357, 361, + 362, 363, 365, 337, 338, 366, 367, 372, 373, 376, + 342, 343, 344, 345, 374, 377, 378, 374, 379, 346, + 347, 348, 351, 353, 354, 357, 361, 362, 363, 365, + 380, 381, 366, 367, 372, 373, 376, 382, 383, 384, + 385, 292, 377, 378, 374, 379, 387, 388, 389, 390, + 391, 392, 386, 386, 397, 398, 399, 380, 381, 400, + 402, 404, 405, 409, 382, 383, 384, 385, 386, 410, + 386, 411, 412, 387, 388, 389, 390, 391, 392, 413, + + 386, 397, 398, 399, 418, 421, 400, 402, 404, 405, + 409, 425, 426, 427, 428, 386, 410, 386, 411, 412, + 433, 434, 435, 437, 438, 439, 413, 440, 444, 445, + 446, 418, 421, 449, 455, 456, 457, 458, 425, 426, + 427, 428, 459, 463, 468, 469, 470, 433, 434, 435, + 437, 438, 439, 474, 440, 444, 445, 446, 475, 470, + 449, 455, 456, 457, 458, 476, 478, 479, 480, 459, + 463, 468, 469, 470, 481, 484, 485, 481, 487, 490, + 474, 491, 492, 493, 494, 475, 470, 496, 500, 501, + 502, 503, 476, 478, 479, 480, 506, 507, 508, 510, + + 512, 513, 484, 485, 481, 487, 490, 514, 491, 492, + 493, 494, 516, 520, 496, 500, 501, 502, 503, 523, + 524, 531, 532, 506, 507, 508, 510, 512, 513, 534, + 536, 540, 542, 548, 514, 549, 551, 553, 555, 516, + 520, 557, 558, 559, 561, 563, 523, 524, 531, 532, + 564, 565, 566, 569, 570, 574, 534, 536, 540, 542, + 548, 291, 549, 551, 553, 555, 288, 284, 557, 558, + 559, 561, 563, 283, 273, 269, 256, 564, 565, 566, + 569, 570, 574, 580, 580, 580, 582, 582, 583, 583, + 584, 584, 254, 241, 240, 239, 237, 228, 224, 223, + + 217, 215, 207, 201, 190, 183, 176, 167, 146, 140, + 127, 122, 114, 73, 3, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, + 579, 579, 579, 579, 579, 579, 579, 579 + } ; + +static yy_state_type yy_last_accepting_state; +static char *yy_last_accepting_cpos; + +extern int eggyy_flex_debug; +int eggyy_flex_debug = 0; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +#define YY_RESTORE_YY_MORE_OFFSET +char *eggyytext; +#line 1 "lexer.lxx" +/* +// Filename: lexer.l +// Created by: drose (16Jan99) +// +//////////////////////////////////////////////////////////////////// +*/ +#line 9 "lexer.lxx" +#include "pandabase.h" +#include "lexerDefs.h" +#include "parserDefs.h" +#include "config_egg.h" +#include "parser.h" +#include "indent.h" +#include "pnotify.h" +#include "lightMutex.h" +#include "thread.h" +#include "pstrtod.h" + +#include + +extern "C" int eggyywrap(void); // declared below. + +static int yyinput(void); // declared by flex. + + +//////////////////////////////////////////////////////////////////// +// Static variables +//////////////////////////////////////////////////////////////////// + +// This mutex protects all of these global variables. +LightMutex egg_lock; + +// We'll increment line_number and col_number as we parse the file, so +// that we can report the position of an error. +static int line_number = 0; +static int col_number = 0; + +// current_line holds as much of the current line as will fit. Its +// only purpose is for printing it out to report an error to the user. +static const int max_error_width = 1024; +static char current_line[max_error_width + 1]; + +static int error_count = 0; +static int warning_count = 0; + +// This is the pointer to the current input stream. +static istream *input_p = NULL; + +// This is the name of the egg file we're parsing. We keep it so we +// can print it out for error messages. +static string egg_filename; + +// This is the initial token state returned by the lexer. It allows +// the yacc grammar to start from initial points. +static int initial_token; + +//////////////////////////////////////////////////////////////////// +// Defining the interface to the lexer. +//////////////////////////////////////////////////////////////////// + +void +egg_init_lexer(istream &in, const string &filename) { + input_p = ∈ + egg_filename = filename; + line_number = 0; + col_number = 0; + error_count = 0; + warning_count = 0; + initial_token = START_EGG; +} + +void +egg_start_group_body() { + /* Set the initial state to begin within a group_body context, + instead of at the beginning of the egg file. */ + initial_token = START_GROUP_BODY; +} + +void +egg_start_texture_body() { + initial_token = START_TEXTURE_BODY; +} + +void +egg_start_primitive_body() { + initial_token = START_PRIMITIVE_BODY; +} + +int +egg_error_count() { + return error_count; +} + +int +egg_warning_count() { + return warning_count; +} + + +//////////////////////////////////////////////////////////////////// +// Internal support functions. +//////////////////////////////////////////////////////////////////// + +int +eggyywrap(void) { + return 1; +} + +void +eggyyerror(const string &msg) { + if (egg_cat.is_error()) { + ostream &out = egg_cat.error(false); + + out << "\nError"; + if (!egg_filename.empty()) { + out << " in " << egg_filename; + } + out + << " at line " << line_number << ", column " << col_number << ":\n" + << setiosflags(Notify::get_literal_flag()) + << current_line << "\n"; + indent(out, col_number-1) + << "^\n" << msg << "\n\n" + << resetiosflags(Notify::get_literal_flag()) << flush; + } + error_count++; +} + +void +eggyyerror(ostringstream &strm) { + string s = strm.str(); + eggyyerror(s); +} + +void +eggyywarning(const string &msg) { + if (egg_cat.is_warning()) { + ostream &out = egg_cat.warning(false); + + out << "\nWarning"; + if (!egg_filename.empty()) { + out << " in " << egg_filename; + } + out + << " at line " << line_number << ", column " << col_number << ":\n" + << setiosflags(Notify::get_literal_flag()) + << current_line << "\n"; + indent(out, col_number-1) + << "^\n" << msg << "\n\n" + << resetiosflags(Notify::get_literal_flag()) << flush; + } + warning_count++; +} + +void +eggyywarning(ostringstream &strm) { + string s = strm.str(); + eggyywarning(s); +} + +// Now define a function to take input from an istream instead of a +// stdio FILE pointer. This is flex-specific. +static void +input_chars(char *buffer, int &result, int max_size) { + nassertv(input_p != NULL); + if (*input_p) { + input_p->read(buffer, max_size); + result = input_p->gcount(); + + if (line_number == 0) { + // This is a special case. If we are reading the very first bit + // from the stream, copy it into the current_line array. This + // is because the \n.* rule below, which fills current_line + // normally, doesn't catch the first line. + int length = min(max_error_width, result); + strncpy(current_line, buffer, length); + current_line[length] = '\0'; + line_number++; + col_number = 0; + + // Truncate it at the newline. + char *end = strchr(current_line, '\n'); + if (end != NULL) { + *end = '\0'; + } + } + + } else { + // End of file or I/O error. + result = 0; + } + Thread::consider_yield(); +} +#undef YY_INPUT + +// Define this macro carefully, since different flex versions call it +// with a different type for result. +#define YY_INPUT(buffer, result, max_size) { \ + int int_result; \ + input_chars((buffer), int_result, (max_size)); \ + (result) = int_result; \ +} + +// read_char reads and returns a single character, incrementing the +// supplied line and column numbers as appropriate. A convenience +// function for the scanning functions below. +static int +read_char(int &line, int &col) { + int c = yyinput(); + if (c == '\n') { + line++; + col = 0; + } else { + col++; + } + return c; +} + +// scan_quoted_string reads a string delimited by quotation marks and +// returns it. +static string +scan_quoted_string() { + string result; + + // We don't touch the current line number and column number during + // scanning, so that if we detect an error while scanning the string + // (e.g. an unterminated string), we'll report the error as + // occurring at the start of the string, not at the end--somewhat + // more convenient for the user. + + // Instead of adjusting the global line_number and col_number + // variables, we'll operate on our own local variables for the + // interim. + int line = line_number; + int col = col_number; + + int c; + c = read_char(line, col); + while (c != '"' && c != EOF) { + result += c; + c = read_char(line, col); + } + + if (c == EOF) { + eggyyerror("This quotation mark is unterminated."); + } + + line_number = line; + col_number = col; + + return result; +} + +// eat_c_comment scans past all characters up until the first */ +// encountered. +static void +eat_c_comment() { + // As above, we'll operate on our own local copies of line_number + // and col_number within this function. + + int line = line_number; + int col = col_number; + + int c, last_c; + + last_c = '\0'; + c = read_char(line, col); + while (c != EOF && !(last_c == '*' && c == '/')) { + if (last_c == '/' && c == '*') { + ostringstream errmsg; + errmsg << "This comment contains a nested /* symbol at line " + << line << ", column " << col-1 << "--possibly unclosed?" + << ends; + eggyywarning(errmsg); + } + last_c = c; + c = read_char(line, col); + } + + if (c == EOF) { + eggyyerror("This comment marker is unclosed."); + } + + line_number = line; + col_number = col; +} + + +// accept() is called below as each piece is pulled off and +// accepted by the lexer; it increments the current column number. +INLINE void accept() { + col_number += eggyyleng; +} + +#line 1236 "lex.yy.c" + +#define INITIAL 0 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +static int yy_init_globals (void ); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int eggyylex_destroy (void ); + +int eggyyget_debug (void ); + +void eggyyset_debug (int debug_flag ); + +YY_EXTRA_TYPE eggyyget_extra (void ); + +void eggyyset_extra (YY_EXTRA_TYPE user_defined ); + +FILE *eggyyget_in (void ); + +void eggyyset_in (FILE * in_str ); + +FILE *eggyyget_out (void ); + +void eggyyset_out (FILE * out_str ); + +yy_size_t eggyyget_leng (void ); + +char *eggyyget_text (void ); + +int eggyyget_lineno (void ); + +void eggyyset_lineno (int line_number ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int eggyywrap (void ); +#else +extern int eggyywrap (void ); +#endif +#endif + + static void yyunput (int c,char *buf_ptr ); + +#ifndef yytext_ptr +static void yy_flex_strncpy (char *,yyconst char *,int ); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * ); +#endif + +#ifndef YY_NO_INPUT + +#ifdef __cplusplus +static int yyinput (void ); +#else +static int input (void ); +#endif + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#define YY_READ_BUF_SIZE 8192 +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO fwrite( eggyytext, eggyyleng, 1, eggyyout ) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + yy_size_t n; \ + for ( n = 0; n < max_size && \ + (c = getc( eggyyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( eggyyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = fread(buf, 1, max_size, eggyyin))==0 && ferror(eggyyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(eggyyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int eggyylex (void); + +#define YY_DECL int eggyylex (void) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after eggyytext and eggyyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK break; +#endif + +#define YY_RULE_SETUP \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + register yy_state_type yy_current_state; + register char *yy_cp, *yy_bp; + register int yy_act; + +#line 302 "lexer.lxx" + + + + if (initial_token != 0) { + int t = initial_token; + initial_token = 0; + return t; + } + + +#line 1429 "lex.yy.c" + + if ( !(yy_init) ) + { + (yy_init) = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! (yy_start) ) + (yy_start) = 1; /* first start state */ + + if ( ! eggyyin ) + eggyyin = stdin; + + if ( ! eggyyout ) + eggyyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + eggyyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + eggyy_create_buffer(eggyyin,YY_BUF_SIZE ); + } + + eggyy_load_buffer_state( ); + } + + while ( 1 ) /* loops until end-of-file is reached */ + { + yy_cp = (yy_c_buf_p); + + /* Support of eggyytext. */ + *yy_cp = (yy_hold_char); + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = (yy_start); +yy_match: + do + { + register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 580 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + ++yy_cp; + } + while ( yy_base[yy_current_state] != 1216 ); + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + if ( yy_act == 0 ) + { /* have to back up */ + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + yy_act = yy_accept[yy_current_state]; + } + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = (yy_hold_char); + yy_cp = (yy_last_accepting_cpos); + yy_current_state = (yy_last_accepting_state); + goto yy_find_action; + +case 1: +/* rule 1 can match eol */ +YY_RULE_SETUP +#line 312 "lexer.lxx" +{ + // New line. Save a copy of the line so we can print it out for the + // benefit of the user in case we get an error. + + strncpy(current_line, eggyytext+1, max_error_width); + current_line[max_error_width] = '\0'; + line_number++; + col_number=0; + + // Return the whole line to the lexer, except the newline character, + // which we eat. + yyless(1); +} + YY_BREAK +case 2: +YY_RULE_SETUP +#line 326 "lexer.lxx" +{ + // Eat whitespace. + accept(); +} + YY_BREAK +case 3: +YY_RULE_SETUP +#line 331 "lexer.lxx" +{ + // Eat C++-style comments. + accept(); +} + YY_BREAK +case 4: +YY_RULE_SETUP +#line 336 "lexer.lxx" +{ + // Eat C-style comments. + accept(); + eat_c_comment(); +} + YY_BREAK +case 5: +YY_RULE_SETUP +#line 342 "lexer.lxx" +{ + // Send curly braces as themselves. + accept(); + return eggyytext[0]; +} + YY_BREAK +case 6: +YY_RULE_SETUP +#line 350 "lexer.lxx" +{ + accept(); + return ANIMPRELOAD; +} + YY_BREAK +case 7: +YY_RULE_SETUP +#line 354 "lexer.lxx" +{ + accept(); + return AUX; +} + YY_BREAK +case 8: +YY_RULE_SETUP +#line 358 "lexer.lxx" +{ + accept(); + return BEZIERCURVE; +} + YY_BREAK +case 9: +YY_RULE_SETUP +#line 362 "lexer.lxx" +{ + accept(); + return BFACE; +} + YY_BREAK +case 10: +YY_RULE_SETUP +#line 366 "lexer.lxx" +{ + accept(); + return BILLBOARD; +} + YY_BREAK +case 11: +YY_RULE_SETUP +#line 370 "lexer.lxx" +{ + accept(); + return BILLBOARDCENTER; +} + YY_BREAK +case 12: +YY_RULE_SETUP +#line 374 "lexer.lxx" +{ + accept(); + return BINORMAL; +} + YY_BREAK +case 13: +YY_RULE_SETUP +#line 378 "lexer.lxx" +{ + accept(); + return BUNDLE; +} + YY_BREAK +case 14: +YY_RULE_SETUP +#line 382 "lexer.lxx" +{ + accept(); + return SCALAR; +} + YY_BREAK +case 15: +YY_RULE_SETUP +#line 386 "lexer.lxx" +{ + accept(); + return CLOSED; +} + YY_BREAK +case 16: +YY_RULE_SETUP +#line 390 "lexer.lxx" +{ + accept(); + return COLLIDE; +} + YY_BREAK +case 17: +YY_RULE_SETUP +#line 394 "lexer.lxx" +{ + accept(); + return COMMENT; +} + YY_BREAK +case 18: +YY_RULE_SETUP +#line 398 "lexer.lxx" +{ + accept(); + return COMPONENT; +} + YY_BREAK +case 19: +YY_RULE_SETUP +#line 402 "lexer.lxx" +{ + accept(); + return COORDSYSTEM; +} + YY_BREAK +case 20: +YY_RULE_SETUP +#line 406 "lexer.lxx" +{ + accept(); + return CV; +} + YY_BREAK +case 21: +YY_RULE_SETUP +#line 410 "lexer.lxx" +{ + accept(); + return DART; +} + YY_BREAK +case 22: +YY_RULE_SETUP +#line 414 "lexer.lxx" +{ + accept(); + return DNORMAL; +} + YY_BREAK +case 23: +YY_RULE_SETUP +#line 418 "lexer.lxx" +{ + accept(); + return DRGBA; +} + YY_BREAK +case 24: +YY_RULE_SETUP +#line 422 "lexer.lxx" +{ + accept(); + return DUV; +} + YY_BREAK +case 25: +YY_RULE_SETUP +#line 426 "lexer.lxx" +{ + accept(); + return DXYZ; +} + YY_BREAK +case 26: +YY_RULE_SETUP +#line 430 "lexer.lxx" +{ + accept(); + return DCS; +} + YY_BREAK +case 27: +YY_RULE_SETUP +#line 434 "lexer.lxx" +{ + accept(); + return DISTANCE; +} + YY_BREAK +case 28: +YY_RULE_SETUP +#line 438 "lexer.lxx" +{ + accept(); + return DTREF; +} + YY_BREAK +case 29: +YY_RULE_SETUP +#line 442 "lexer.lxx" +{ + accept(); + return DYNAMICVERTEXPOOL; +} + YY_BREAK +case 30: +YY_RULE_SETUP +#line 446 "lexer.lxx" +{ + accept(); + return EXTERNAL_FILE; +} + YY_BREAK +case 31: +YY_RULE_SETUP +#line 450 "lexer.lxx" +{ + accept(); + return GROUP; +} + YY_BREAK +case 32: +YY_RULE_SETUP +#line 454 "lexer.lxx" +{ + accept(); + return DEFAULTPOSE; +} + YY_BREAK +case 33: +YY_RULE_SETUP +#line 458 "lexer.lxx" +{ + accept(); + return JOINT; +} + YY_BREAK +case 34: +YY_RULE_SETUP +#line 462 "lexer.lxx" +{ + accept(); + return KNOTS; +} + YY_BREAK +case 35: +YY_RULE_SETUP +#line 466 "lexer.lxx" +{ + accept(); + return INCLUDE; +} + YY_BREAK +case 36: +YY_RULE_SETUP +#line 470 "lexer.lxx" +{ + accept(); + return INSTANCE; +} + YY_BREAK +case 37: +YY_RULE_SETUP +#line 474 "lexer.lxx" +{ + accept(); + return LINE; +} + YY_BREAK +case 38: +YY_RULE_SETUP +#line 478 "lexer.lxx" +{ + accept(); + return LOOP; +} + YY_BREAK +case 39: +YY_RULE_SETUP +#line 482 "lexer.lxx" +{ + accept(); + return MATERIAL; +} + YY_BREAK +case 40: +YY_RULE_SETUP +#line 486 "lexer.lxx" +{ + accept(); + return MATRIX3; +} + YY_BREAK +case 41: +YY_RULE_SETUP +#line 490 "lexer.lxx" +{ + accept(); + return MATRIX4; +} + YY_BREAK +case 42: +YY_RULE_SETUP +#line 494 "lexer.lxx" +{ + accept(); + return MODEL; +} + YY_BREAK +case 43: +YY_RULE_SETUP +#line 498 "lexer.lxx" +{ + accept(); + return MREF; +} + YY_BREAK +case 44: +YY_RULE_SETUP +#line 502 "lexer.lxx" +{ + accept(); + return NORMAL; +} + YY_BREAK +case 45: +YY_RULE_SETUP +#line 506 "lexer.lxx" +{ + accept(); + return NURBSCURVE; +} + YY_BREAK +case 46: +YY_RULE_SETUP +#line 510 "lexer.lxx" +{ + accept(); + return NURBSSURFACE; +} + YY_BREAK +case 47: +YY_RULE_SETUP +#line 514 "lexer.lxx" +{ + accept(); + return OBJECTTYPE; +} + YY_BREAK +case 48: +YY_RULE_SETUP +#line 518 "lexer.lxx" +{ + accept(); + return ORDER; +} + YY_BREAK +case 49: +YY_RULE_SETUP +#line 522 "lexer.lxx" +{ + accept(); + return OUTTANGENT; +} + YY_BREAK +case 50: +YY_RULE_SETUP +#line 526 "lexer.lxx" +{ + accept(); + return POINTLIGHT; +} + YY_BREAK +case 51: +YY_RULE_SETUP +#line 530 "lexer.lxx" +{ + accept(); + return POLYGON; +} + YY_BREAK +case 52: +YY_RULE_SETUP +#line 534 "lexer.lxx" +{ + accept(); + return REF; +} + YY_BREAK +case 53: +YY_RULE_SETUP +#line 538 "lexer.lxx" +{ + accept(); + return RGBA; +} + YY_BREAK +case 54: +YY_RULE_SETUP +#line 542 "lexer.lxx" +{ + accept(); + return ROTATE; +} + YY_BREAK +case 55: +YY_RULE_SETUP +#line 546 "lexer.lxx" +{ + accept(); + return ROTX; +} + YY_BREAK +case 56: +YY_RULE_SETUP +#line 550 "lexer.lxx" +{ + accept(); + return ROTY; +} + YY_BREAK +case 57: +YY_RULE_SETUP +#line 554 "lexer.lxx" +{ + accept(); + return ROTZ; +} + YY_BREAK +case 58: +YY_RULE_SETUP +#line 558 "lexer.lxx" +{ + accept(); + return SANIM; +} + YY_BREAK +case 59: +YY_RULE_SETUP +#line 562 "lexer.lxx" +{ + accept(); + return SCALAR; +} + YY_BREAK +case 60: +YY_RULE_SETUP +#line 566 "lexer.lxx" +{ + accept(); + return SCALE; +} + YY_BREAK +case 61: +YY_RULE_SETUP +#line 570 "lexer.lxx" +{ + accept(); + return SEQUENCE; +} + YY_BREAK +case 62: +YY_RULE_SETUP +#line 574 "lexer.lxx" +{ + accept(); + return SHADING; +} + YY_BREAK +case 63: +YY_RULE_SETUP +#line 578 "lexer.lxx" +{ + accept(); + return SWITCH; +} + YY_BREAK +case 64: +YY_RULE_SETUP +#line 582 "lexer.lxx" +{ + accept(); + return SWITCHCONDITION; +} + YY_BREAK +case 65: +YY_RULE_SETUP +#line 586 "lexer.lxx" +{ + accept(); + return TABLE; +} + YY_BREAK +case 66: +YY_RULE_SETUP +#line 590 "lexer.lxx" +{ + accept(); + return TABLE_V; +} + YY_BREAK +case 67: +YY_RULE_SETUP +#line 594 "lexer.lxx" +{ + accept(); + return TAG; +} + YY_BREAK +case 68: +YY_RULE_SETUP +#line 598 "lexer.lxx" +{ + accept(); + return TANGENT; +} + YY_BREAK +case 69: +YY_RULE_SETUP +#line 602 "lexer.lxx" +{ + accept(); + return TEXLIST; +} + YY_BREAK +case 70: +YY_RULE_SETUP +#line 606 "lexer.lxx" +{ + accept(); + return TEXTURE; +} + YY_BREAK +case 71: +YY_RULE_SETUP +#line 610 "lexer.lxx" +{ + accept(); + return TLENGTHS; +} + YY_BREAK +case 72: +YY_RULE_SETUP +#line 614 "lexer.lxx" +{ + accept(); + return TRANSFORM; +} + YY_BREAK +case 73: +YY_RULE_SETUP +#line 618 "lexer.lxx" +{ + accept(); + return TRANSLATE; +} + YY_BREAK +case 74: +YY_RULE_SETUP +#line 622 "lexer.lxx" +{ + accept(); + return TREF; +} + YY_BREAK +case 75: +YY_RULE_SETUP +#line 626 "lexer.lxx" +{ + accept(); + return TRIANGLEFAN; +} + YY_BREAK +case 76: +YY_RULE_SETUP +#line 630 "lexer.lxx" +{ + accept(); + return TRIANGLESTRIP; +} + YY_BREAK +case 77: +YY_RULE_SETUP +#line 634 "lexer.lxx" +{ + accept(); + return TRIM; +} + YY_BREAK +case 78: +YY_RULE_SETUP +#line 638 "lexer.lxx" +{ + accept(); + return TXT; +} + YY_BREAK +case 79: +YY_RULE_SETUP +#line 642 "lexer.lxx" +{ + accept(); + return UKNOTS; +} + YY_BREAK +case 80: +YY_RULE_SETUP +#line 646 "lexer.lxx" +{ + accept(); + return UKNOTS; +} + YY_BREAK +case 81: +YY_RULE_SETUP +#line 650 "lexer.lxx" +{ + accept(); + return UV; +} + YY_BREAK +case 82: +YY_RULE_SETUP +#line 654 "lexer.lxx" +{ + accept(); + return VKNOTS; +} + YY_BREAK +case 83: +YY_RULE_SETUP +#line 658 "lexer.lxx" +{ + accept(); + return VKNOTS; +} + YY_BREAK +case 84: +YY_RULE_SETUP +#line 662 "lexer.lxx" +{ + accept(); + return VERTEX; +} + YY_BREAK +case 85: +YY_RULE_SETUP +#line 666 "lexer.lxx" +{ + accept(); + return VERTEXANIM; +} + YY_BREAK +case 86: +YY_RULE_SETUP +#line 670 "lexer.lxx" +{ + accept(); + return VERTEXPOOL; +} + YY_BREAK +case 87: +YY_RULE_SETUP +#line 674 "lexer.lxx" +{ + accept(); + return VERTEXREF; +} + YY_BREAK +case 88: +YY_RULE_SETUP +#line 678 "lexer.lxx" +{ + accept(); + return XFMANIM; +} + YY_BREAK +case 89: +YY_RULE_SETUP +#line 682 "lexer.lxx" +{ + accept(); + return XFMSANIM; +} + YY_BREAK +case 90: +YY_RULE_SETUP +#line 689 "lexer.lxx" +{ + // An integer or floating-point number. + accept(); + eggyylval._number = patof(eggyytext); + eggyylval._string = eggyytext; + return EGG_NUMBER; +} + YY_BREAK +case 91: +YY_RULE_SETUP +#line 697 "lexer.lxx" +{ + // A hexadecimal integer number. + accept(); + eggyylval._ulong = strtoul(eggyytext+2, NULL, 16); + eggyylval._string = eggyytext; + return EGG_ULONG; +} + YY_BREAK +case 92: +YY_RULE_SETUP +#line 705 "lexer.lxx" +{ + // A binary integer number. + accept(); + eggyylval._ulong = strtoul(eggyytext+2, NULL, 2); + eggyylval._string = eggyytext; + return EGG_ULONG; +} + YY_BREAK +case 93: +YY_RULE_SETUP +#line 713 "lexer.lxx" +{ + // not-a-number. These sometimes show up in egg files accidentally. + accept(); + memset(&eggyylval._number, 0, sizeof(eggyylval._number)); + *(unsigned long *)&eggyylval._number = strtoul(eggyytext+3, NULL, 0); + eggyylval._string = eggyytext; + return EGG_NUMBER; +} + YY_BREAK +case 94: +YY_RULE_SETUP +#line 722 "lexer.lxx" +{ + // infinity. As above. + accept(); + eggyylval._number = HUGE_VAL; + eggyylval._string = eggyytext; + return EGG_NUMBER; +} + YY_BREAK +case 95: +YY_RULE_SETUP +#line 730 "lexer.lxx" +{ + // minus infinity. As above. + accept(); + eggyylval._number = -HUGE_VAL; + eggyylval._string = eggyytext; + return EGG_NUMBER; +} + YY_BREAK +case 96: +YY_RULE_SETUP +#line 738 "lexer.lxx" +{ + // infinity, on Win32. As above. + accept(); + eggyylval._number = HUGE_VAL; + eggyylval._string = eggyytext; + return EGG_NUMBER; +} + YY_BREAK +case 97: +YY_RULE_SETUP +#line 746 "lexer.lxx" +{ + // minus infinity, on Win32. As above. + accept(); + eggyylval._number = -HUGE_VAL; + eggyylval._string = eggyytext; + return EGG_NUMBER; +} + YY_BREAK +case 98: +YY_RULE_SETUP +#line 755 "lexer.lxx" +{ + // Quoted string. + accept(); + eggyylval._string = scan_quoted_string(); + return EGG_STRING; +} + YY_BREAK +case 99: +YY_RULE_SETUP +#line 762 "lexer.lxx" +{ + // Unquoted string. + accept(); + eggyylval._string = eggyytext; + return EGG_STRING; +} + YY_BREAK +case 100: +YY_RULE_SETUP +#line 768 "lexer.lxx" +ECHO; + YY_BREAK +#line 2350 "lex.yy.c" +case YY_STATE_EOF(INITIAL): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = (yy_hold_char); + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed eggyyin at a new source and called + * eggyylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = eggyyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state ); + + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++(yy_c_buf_p); + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = (yy_c_buf_p); + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_END_OF_FILE: + { + (yy_did_buffer_switch_on_eof) = 0; + + if ( eggyywrap( ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * eggyytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = + (yytext_ptr) + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + (yy_c_buf_p) = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; + + yy_current_state = yy_get_previous_state( ); + + yy_cp = (yy_c_buf_p); + yy_bp = (yytext_ptr) + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ +} /* end of eggyylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (void) +{ + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + register char *source = (yytext_ptr); + register int number_to_move, i; + int ret_val; + + if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; + + else + { + yy_size_t num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER; + + int yy_c_buf_p_offset = + (int) ((yy_c_buf_p) - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + yy_size_t new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + eggyyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = 0; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + (yy_n_chars), num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + if ( (yy_n_chars) == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + eggyyrestart(eggyyin ); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) eggyyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + } + + (yy_n_chars) += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; + + (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (void) +{ + register yy_state_type yy_current_state; + register char *yy_cp; + + yy_current_state = (yy_start); + + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) + { + register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 580 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) +{ + register int yy_is_jam; + register char *yy_cp = (yy_c_buf_p); + + register YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + (yy_last_accepting_state) = yy_current_state; + (yy_last_accepting_cpos) = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 580 ) + yy_c = yy_meta[(unsigned int) yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_is_jam = (yy_current_state == 579); + + return yy_is_jam ? 0 : yy_current_state; +} + + static void yyunput (int c, register char * yy_bp ) +{ + register char *yy_cp; + + yy_cp = (yy_c_buf_p); + + /* undo effects of setting up eggyytext */ + *yy_cp = (yy_hold_char); + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + { /* need to shift things up to make room */ + /* +2 for EOB chars. */ + register yy_size_t number_to_move = (yy_n_chars) + 2; + register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; + register char *source = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; + + while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + *--dest = *--source; + + yy_cp += (int) (dest - source); + yy_bp += (int) (dest - source); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) + YY_FATAL_ERROR( "flex scanner push-back overflow" ); + } + + *--yy_cp = (char) c; + + (yytext_ptr) = yy_bp; + (yy_hold_char) = *yy_cp; + (yy_c_buf_p) = yy_cp; +} + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (void) +#else + static int input (void) +#endif + +{ + int c; + + *(yy_c_buf_p) = (yy_hold_char); + + if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) + /* This was really a NUL. */ + *(yy_c_buf_p) = '\0'; + + else + { /* need more input */ + yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + ++(yy_c_buf_p); + + switch ( yy_get_next_buffer( ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + eggyyrestart(eggyyin ); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( eggyywrap( ) ) + return 0; + + if ( ! (yy_did_buffer_switch_on_eof) ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(); +#else + return input(); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + (yy_c_buf_p) = (yytext_ptr) + offset; + break; + } + } + } + + c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ + *(yy_c_buf_p) = '\0'; /* preserve eggyytext */ + (yy_hold_char) = *++(yy_c_buf_p); + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * + * @note This function does not reset the start condition to @c INITIAL . + */ + void eggyyrestart (FILE * input_file ) +{ + + if ( ! YY_CURRENT_BUFFER ){ + eggyyensure_buffer_stack (); + YY_CURRENT_BUFFER_LVALUE = + eggyy_create_buffer(eggyyin,YY_BUF_SIZE ); + } + + eggyy_init_buffer(YY_CURRENT_BUFFER,input_file ); + eggyy_load_buffer_state( ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * + */ + void eggyy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) +{ + + /* TODO. We should be able to replace this entire function body + * with + * eggyypop_buffer_state(); + * eggyypush_buffer_state(new_buffer); + */ + eggyyensure_buffer_stack (); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + eggyy_load_buffer_state( ); + + /* We don't actually know whether we did this switch during + * EOF (eggyywrap()) processing, but the only time this flag + * is looked at is after eggyywrap() is called, so it's safe + * to go ahead and always set it. + */ + (yy_did_buffer_switch_on_eof) = 1; +} + +static void eggyy_load_buffer_state (void) +{ + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + eggyyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + (yy_hold_char) = *(yy_c_buf_p); +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * + * @return the allocated buffer state. + */ + YY_BUFFER_STATE eggyy_create_buffer (FILE * file, int size ) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) eggyyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in eggyy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) eggyyalloc(b->yy_buf_size + 2 ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in eggyy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + eggyy_init_buffer(b,file ); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with eggyy_create_buffer() + * + */ + void eggyy_delete_buffer (YY_BUFFER_STATE b ) +{ + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + eggyyfree((void *) b->yy_ch_buf ); + + eggyyfree((void *) b ); +} + +#ifndef __cplusplus +extern int isatty (int ); +#endif /* __cplusplus */ + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a eggyyrestart() or at EOF. + */ + static void eggyy_init_buffer (YY_BUFFER_STATE b, FILE * file ) + +{ + int oerrno = errno; + + eggyy_flush_buffer(b ); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then eggyy_init_buffer was _probably_ + * called from eggyyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * + */ + void eggyy_flush_buffer (YY_BUFFER_STATE b ) +{ + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + eggyy_load_buffer_state( ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * + */ +void eggyypush_buffer_state (YY_BUFFER_STATE new_buffer ) +{ + if (new_buffer == NULL) + return; + + eggyyensure_buffer_stack(); + + /* This block is copied from eggyy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *(yy_c_buf_p) = (yy_hold_char); + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + (yy_buffer_stack_top)++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from eggyy_switch_to_buffer. */ + eggyy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * + */ +void eggyypop_buffer_state (void) +{ + if (!YY_CURRENT_BUFFER) + return; + + eggyy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + if ((yy_buffer_stack_top) > 0) + --(yy_buffer_stack_top); + + if (YY_CURRENT_BUFFER) { + eggyy_load_buffer_state( ); + (yy_did_buffer_switch_on_eof) = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void eggyyensure_buffer_stack (void) +{ + yy_size_t num_to_alloc; + + if (!(yy_buffer_stack)) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; + (yy_buffer_stack) = (struct yy_buffer_state**)eggyyalloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in eggyyensure_buffer_stack()" ); + + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + (yy_buffer_stack_max) = num_to_alloc; + (yy_buffer_stack_top) = 0; + return; + } + + if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + int grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = (yy_buffer_stack_max) + grow_size; + (yy_buffer_stack) = (struct yy_buffer_state**)eggyyrealloc + ((yy_buffer_stack), + num_to_alloc * sizeof(struct yy_buffer_state*) + ); + if ( ! (yy_buffer_stack) ) + YY_FATAL_ERROR( "out of dynamic memory in eggyyensure_buffer_stack()" ); + + /* zero only the new slots.*/ + memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); + (yy_buffer_stack_max) = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE eggyy_scan_buffer (char * base, yy_size_t size ) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return 0; + + b = (YY_BUFFER_STATE) eggyyalloc(sizeof( struct yy_buffer_state ) ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in eggyy_scan_buffer()" ); + + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = 0; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + eggyy_switch_to_buffer(b ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to eggyylex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * eggyy_scan_bytes() instead. + */ +YY_BUFFER_STATE eggyy_scan_string (yyconst char * yystr ) +{ + + return eggyy_scan_bytes(yystr,strlen(yystr) ); +} + +/** Setup the input buffer state to scan the given bytes. The next call to eggyylex() will + * scan from a @e copy of @a bytes. + * @param bytes the byte buffer to scan + * @param len the number of bytes in the buffer pointed to by @a bytes. + * + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE eggyy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n, i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = _yybytes_len + 2; + buf = (char *) eggyyalloc(n ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in eggyy_scan_bytes()" ); + + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; + + b = eggyy_scan_buffer(buf,n ); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in eggyy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yy_fatal_error (yyconst char* msg ) +{ + (void) fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up eggyytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + eggyytext[eggyyleng] = (yy_hold_char); \ + (yy_c_buf_p) = eggyytext + yyless_macro_arg; \ + (yy_hold_char) = *(yy_c_buf_p); \ + *(yy_c_buf_p) = '\0'; \ + eggyyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the current line number. + * + */ +int eggyyget_lineno (void) +{ + + return eggyylineno; +} + +/** Get the input stream. + * + */ +FILE *eggyyget_in (void) +{ + return eggyyin; +} + +/** Get the output stream. + * + */ +FILE *eggyyget_out (void) +{ + return eggyyout; +} + +/** Get the length of the current token. + * + */ +yy_size_t eggyyget_leng (void) +{ + return eggyyleng; +} + +/** Get the current token. + * + */ + +char *eggyyget_text (void) +{ + return eggyytext; +} + +/** Set the current line number. + * @param line_number + * + */ +void eggyyset_lineno (int line_number ) +{ + + eggyylineno = line_number; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param in_str A readable stream. + * + * @see eggyy_switch_to_buffer + */ +void eggyyset_in (FILE * in_str ) +{ + eggyyin = in_str ; +} + +void eggyyset_out (FILE * out_str ) +{ + eggyyout = out_str ; +} + +int eggyyget_debug (void) +{ + return eggyy_flex_debug; +} + +void eggyyset_debug (int bdebug ) +{ + eggyy_flex_debug = bdebug ; +} + +static int yy_init_globals (void) +{ + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from eggyylex_destroy(), so don't allocate here. + */ + + (yy_buffer_stack) = 0; + (yy_buffer_stack_top) = 0; + (yy_buffer_stack_max) = 0; + (yy_c_buf_p) = (char *) 0; + (yy_init) = 0; + (yy_start) = 0; + +/* Defined in main.c */ +#ifdef YY_STDINIT + eggyyin = stdin; + eggyyout = stdout; +#else + eggyyin = (FILE *) 0; + eggyyout = (FILE *) 0; +#endif + + /* For future reference: Set errno on error, since we are called by + * eggyylex_init() + */ + return 0; +} + +/* eggyylex_destroy is for both reentrant and non-reentrant scanners. */ +int eggyylex_destroy (void) +{ + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + eggyy_delete_buffer(YY_CURRENT_BUFFER ); + YY_CURRENT_BUFFER_LVALUE = NULL; + eggyypop_buffer_state(); + } + + /* Destroy the stack itself. */ + eggyyfree((yy_buffer_stack) ); + (yy_buffer_stack) = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * eggyylex() is called, initialization will occur. */ + yy_init_globals( ); + + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +{ + register int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (yyconst char * s ) +{ + register int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *eggyyalloc (yy_size_t size ) +{ + return (void *) malloc( size ); +} + +void *eggyyrealloc (void * ptr, yy_size_t size ) +{ + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return (void *) realloc( (char *) ptr, size ); +} + +void eggyyfree (void * ptr ) +{ + free( (char *) ptr ); /* see eggyyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#line 768 "lexer.lxx" diff --git a/panda/src/egg/parser.cxx.prebuilt b/panda/src/egg/parser.cxx.prebuilt index ab97875654..36d327f066 100644 --- a/panda/src/egg/parser.cxx.prebuilt +++ b/panda/src/egg/parser.cxx.prebuilt @@ -1,22 +1,24 @@ -/* A Bison parser, made by GNU Bison 2.4.2. */ +/* A Bison parser, made by GNU Bison 2.3. */ /* Skeleton implementation for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software - Foundation, Inc. - - This program is free software: you can redistribute it and/or modify + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - + the Free Software Foundation; either version 2, or (at your option) + any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -27,7 +29,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -45,7 +47,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.4.2" +#define YYBISON_VERSION "2.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -53,28 +55,209 @@ /* Pure parsers. */ #define YYPURE 0 -/* Push parsers. */ -#define YYPUSH 0 - -/* Pull parsers. */ -#define YYPULL 1 - /* Using locations. */ #define YYLSP_NEEDED 0 /* Substitute the variable and function names. */ -#define yyparse eggyyparse -#define yylex eggyylex -#define yyerror eggyyerror -#define yylval eggyylval -#define yychar eggyychar -#define yydebug eggyydebug -#define yynerrs eggyynerrs +#define yyparse eggyyparse +#define yylex eggyylex +#define yyerror eggyyerror +#define yylval eggyylval +#define yychar eggyychar +#define yydebug eggyydebug +#define yynerrs eggyynerrs + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + EGG_NUMBER = 258, + EGG_ULONG = 259, + EGG_STRING = 260, + ANIMPRELOAD = 261, + BEZIERCURVE = 262, + BFACE = 263, + BILLBOARD = 264, + BILLBOARDCENTER = 265, + BINORMAL = 266, + BUNDLE = 267, + CLOSED = 268, + COLLIDE = 269, + COMMENT = 270, + COMPONENT = 271, + COORDSYSTEM = 272, + CV = 273, + DART = 274, + DNORMAL = 275, + DRGBA = 276, + DUV = 277, + DXYZ = 278, + DCS = 279, + DISTANCE = 280, + DTREF = 281, + DYNAMICVERTEXPOOL = 282, + EXTERNAL_FILE = 283, + GROUP = 284, + DEFAULTPOSE = 285, + JOINT = 286, + KNOTS = 287, + INCLUDE = 288, + INSTANCE = 289, + LINE = 290, + LOOP = 291, + MATERIAL = 292, + MATRIX3 = 293, + MATRIX4 = 294, + MODEL = 295, + MREF = 296, + NORMAL = 297, + NURBSCURVE = 298, + NURBSSURFACE = 299, + OBJECTTYPE = 300, + ORDER = 301, + OUTTANGENT = 302, + POINTLIGHT = 303, + POLYGON = 304, + REF = 305, + RGBA = 306, + ROTATE = 307, + ROTX = 308, + ROTY = 309, + ROTZ = 310, + SANIM = 311, + SCALAR = 312, + SCALE = 313, + SEQUENCE = 314, + SHADING = 315, + SWITCH = 316, + SWITCHCONDITION = 317, + TABLE = 318, + TABLE_V = 319, + TAG = 320, + TANGENT = 321, + TEXLIST = 322, + TEXTURE = 323, + TLENGTHS = 324, + TRANSFORM = 325, + TRANSLATE = 326, + TREF = 327, + TRIANGLEFAN = 328, + TRIANGLESTRIP = 329, + TRIM = 330, + TXT = 331, + UKNOTS = 332, + UV = 333, + AUX = 334, + VKNOTS = 335, + VERTEX = 336, + VERTEXANIM = 337, + VERTEXPOOL = 338, + VERTEXREF = 339, + XFMANIM = 340, + XFMSANIM = 341, + START_EGG = 342, + START_GROUP_BODY = 343, + START_TEXTURE_BODY = 344, + START_PRIMITIVE_BODY = 345 + }; +#endif +/* Tokens. */ +#define EGG_NUMBER 258 +#define EGG_ULONG 259 +#define EGG_STRING 260 +#define ANIMPRELOAD 261 +#define BEZIERCURVE 262 +#define BFACE 263 +#define BILLBOARD 264 +#define BILLBOARDCENTER 265 +#define BINORMAL 266 +#define BUNDLE 267 +#define CLOSED 268 +#define COLLIDE 269 +#define COMMENT 270 +#define COMPONENT 271 +#define COORDSYSTEM 272 +#define CV 273 +#define DART 274 +#define DNORMAL 275 +#define DRGBA 276 +#define DUV 277 +#define DXYZ 278 +#define DCS 279 +#define DISTANCE 280 +#define DTREF 281 +#define DYNAMICVERTEXPOOL 282 +#define EXTERNAL_FILE 283 +#define GROUP 284 +#define DEFAULTPOSE 285 +#define JOINT 286 +#define KNOTS 287 +#define INCLUDE 288 +#define INSTANCE 289 +#define LINE 290 +#define LOOP 291 +#define MATERIAL 292 +#define MATRIX3 293 +#define MATRIX4 294 +#define MODEL 295 +#define MREF 296 +#define NORMAL 297 +#define NURBSCURVE 298 +#define NURBSSURFACE 299 +#define OBJECTTYPE 300 +#define ORDER 301 +#define OUTTANGENT 302 +#define POINTLIGHT 303 +#define POLYGON 304 +#define REF 305 +#define RGBA 306 +#define ROTATE 307 +#define ROTX 308 +#define ROTY 309 +#define ROTZ 310 +#define SANIM 311 +#define SCALAR 312 +#define SCALE 313 +#define SEQUENCE 314 +#define SHADING 315 +#define SWITCH 316 +#define SWITCHCONDITION 317 +#define TABLE 318 +#define TABLE_V 319 +#define TAG 320 +#define TANGENT 321 +#define TEXLIST 322 +#define TEXTURE 323 +#define TLENGTHS 324 +#define TRANSFORM 325 +#define TRANSLATE 326 +#define TREF 327 +#define TRIANGLEFAN 328 +#define TRIANGLESTRIP 329 +#define TRIM 330 +#define TXT 331 +#define UKNOTS 332 +#define UV 333 +#define AUX 334 +#define VKNOTS 335 +#define VERTEX 336 +#define VERTEXANIM 337 +#define VERTEXPOOL 338 +#define VERTEXREF 339 +#define XFMANIM 340 +#define XFMSANIM 341 +#define START_EGG 342 +#define START_GROUP_BODY 343 +#define START_TEXTURE_BODY 344 +#define START_PRIMITIVE_BODY 345 + + /* Copy the first part of user declarations. */ - -/* Line 189 of yacc.c */ #line 6 "parser.yxx" @@ -87,6 +270,7 @@ #include "eggVertex.h" #include "eggVertexPool.h" #include "eggVertexUV.h" +#include "eggVertexAux.h" #include "eggPolygon.h" #include "eggCompositePrimitive.h" #include "eggTriangleFan.h" @@ -227,9 +411,6 @@ egg_cleanup_parser() { -/* Line 189 of yacc.c */ -#line 232 "y.tab.c" - /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -248,206 +429,20 @@ egg_cleanup_parser() { # define YYTOKEN_TABLE 0 #endif - -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - EGG_NUMBER = 258, - EGG_ULONG = 259, - EGG_STRING = 260, - ANIMPRELOAD = 261, - BEZIERCURVE = 262, - BFACE = 263, - BILLBOARD = 264, - BILLBOARDCENTER = 265, - BINORMAL = 266, - BUNDLE = 267, - CLOSED = 268, - COLLIDE = 269, - COMMENT = 270, - COMPONENT = 271, - COORDSYSTEM = 272, - CV = 273, - DART = 274, - DNORMAL = 275, - DRGBA = 276, - DUV = 277, - DXYZ = 278, - DCS = 279, - DISTANCE = 280, - DTREF = 281, - DYNAMICVERTEXPOOL = 282, - EXTERNAL_FILE = 283, - GROUP = 284, - DEFAULTPOSE = 285, - JOINT = 286, - KNOTS = 287, - INCLUDE = 288, - INSTANCE = 289, - LINE = 290, - LOOP = 291, - MATERIAL = 292, - MATRIX3 = 293, - MATRIX4 = 294, - MODEL = 295, - MREF = 296, - NORMAL = 297, - NURBSCURVE = 298, - NURBSSURFACE = 299, - OBJECTTYPE = 300, - ORDER = 301, - OUTTANGENT = 302, - POINTLIGHT = 303, - POLYGON = 304, - REF = 305, - RGBA = 306, - ROTATE = 307, - ROTX = 308, - ROTY = 309, - ROTZ = 310, - SANIM = 311, - SCALAR = 312, - SCALE = 313, - SEQUENCE = 314, - SHADING = 315, - SWITCH = 316, - SWITCHCONDITION = 317, - TABLE = 318, - TABLE_V = 319, - TAG = 320, - TANGENT = 321, - TEXLIST = 322, - TEXTURE = 323, - TLENGTHS = 324, - TRANSFORM = 325, - TRANSLATE = 326, - TREF = 327, - TRIANGLEFAN = 328, - TRIANGLESTRIP = 329, - TRIM = 330, - TXT = 331, - UKNOTS = 332, - UV = 333, - VKNOTS = 334, - VERTEX = 335, - VERTEXANIM = 336, - VERTEXPOOL = 337, - VERTEXREF = 338, - XFMANIM = 339, - XFMSANIM = 340, - START_EGG = 341, - START_GROUP_BODY = 342, - START_TEXTURE_BODY = 343, - START_PRIMITIVE_BODY = 344 - }; -#endif -/* Tokens. */ -#define EGG_NUMBER 258 -#define EGG_ULONG 259 -#define EGG_STRING 260 -#define ANIMPRELOAD 261 -#define BEZIERCURVE 262 -#define BFACE 263 -#define BILLBOARD 264 -#define BILLBOARDCENTER 265 -#define BINORMAL 266 -#define BUNDLE 267 -#define CLOSED 268 -#define COLLIDE 269 -#define COMMENT 270 -#define COMPONENT 271 -#define COORDSYSTEM 272 -#define CV 273 -#define DART 274 -#define DNORMAL 275 -#define DRGBA 276 -#define DUV 277 -#define DXYZ 278 -#define DCS 279 -#define DISTANCE 280 -#define DTREF 281 -#define DYNAMICVERTEXPOOL 282 -#define EXTERNAL_FILE 283 -#define GROUP 284 -#define DEFAULTPOSE 285 -#define JOINT 286 -#define KNOTS 287 -#define INCLUDE 288 -#define INSTANCE 289 -#define LINE 290 -#define LOOP 291 -#define MATERIAL 292 -#define MATRIX3 293 -#define MATRIX4 294 -#define MODEL 295 -#define MREF 296 -#define NORMAL 297 -#define NURBSCURVE 298 -#define NURBSSURFACE 299 -#define OBJECTTYPE 300 -#define ORDER 301 -#define OUTTANGENT 302 -#define POINTLIGHT 303 -#define POLYGON 304 -#define REF 305 -#define RGBA 306 -#define ROTATE 307 -#define ROTX 308 -#define ROTY 309 -#define ROTZ 310 -#define SANIM 311 -#define SCALAR 312 -#define SCALE 313 -#define SEQUENCE 314 -#define SHADING 315 -#define SWITCH 316 -#define SWITCHCONDITION 317 -#define TABLE 318 -#define TABLE_V 319 -#define TAG 320 -#define TANGENT 321 -#define TEXLIST 322 -#define TEXTURE 323 -#define TLENGTHS 324 -#define TRANSFORM 325 -#define TRANSLATE 326 -#define TREF 327 -#define TRIANGLEFAN 328 -#define TRIANGLESTRIP 329 -#define TRIM 330 -#define TXT 331 -#define UKNOTS 332 -#define UV 333 -#define VKNOTS 334 -#define VERTEX 335 -#define VERTEXANIM 336 -#define VERTEXPOOL 337 -#define VERTEXREF 338 -#define XFMANIM 339 -#define XFMSANIM 340 -#define START_EGG 341 -#define START_GROUP_BODY 342 -#define START_TEXTURE_BODY 343 -#define START_PRIMITIVE_BODY 344 - - - - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - +typedef int YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 #endif + /* Copy the second part of user declarations. */ -/* Line 264 of yacc.c */ -#line 451 "y.tab.c" +/* Line 216 of yacc.c. */ +#line 446 "y.tab.c" #ifdef short # undef short @@ -522,14 +517,14 @@ typedef short int yytype_int16; #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int -YYID (int yyi) +YYID (int i) #else static int -YYID (yyi) - int yyi; +YYID (i) + int i; #endif { - return yyi; + return i; } #endif @@ -610,9 +605,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; - YYSTYPE yyvs_alloc; -}; + yytype_int16 yyss; + YYSTYPE yyvs; + }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) @@ -646,12 +641,12 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ +# define YYSTACK_RELOCATE(Stack) \ do \ { \ YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ @@ -662,20 +657,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 14 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1358 +#define YYLAST 1369 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 92 +#define YYNTOKENS 93 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 123 +#define YYNNTS 125 /* YYNRULES -- Number of rules. */ -#define YYNRULES 270 +#define YYNRULES 274 /* YYNRULES -- Number of states. */ -#define YYNSTATES 746 +#define YYNSTATES 756 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 344 +#define YYMAXUTOK 345 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -695,7 +690,7 @@ static const yytype_uint8 yytranslate[] = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 90, 2, 91, 2, 2, 2, 2, + 2, 2, 2, 91, 2, 92, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -717,7 +712,7 @@ static const yytype_uint8 yytranslate[] = 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89 + 85, 86, 87, 88, 89, 90 }; #if YYDEBUG @@ -730,184 +725,186 @@ static const yytype_uint16 yyprhs[] = 44, 46, 48, 50, 52, 54, 56, 61, 67, 68, 76, 78, 85, 88, 89, 96, 98, 105, 111, 118, 119, 126, 128, 131, 132, 138, 139, 146, 148, 151, - 155, 160, 161, 169, 175, 181, 190, 199, 202, 206, - 214, 222, 230, 239, 247, 256, 260, 269, 278, 283, - 293, 303, 304, 311, 312, 319, 320, 327, 329, 336, - 342, 350, 358, 364, 370, 376, 382, 388, 394, 400, - 407, 413, 416, 419, 422, 425, 431, 434, 436, 438, - 441, 442, 448, 449, 455, 457, 460, 463, 466, 469, - 472, 475, 478, 481, 484, 487, 490, 493, 499, 506, - 511, 516, 521, 526, 534, 540, 547, 552, 557, 559, - 569, 574, 576, 593, 603, 605, 612, 617, 629, 642, - 643, 650, 651, 658, 659, 666, 667, 674, 675, 682, - 683, 690, 691, 698, 700, 706, 712, 714, 715, 723, - 729, 735, 741, 744, 750, 756, 762, 769, 771, 777, - 783, 789, 792, 798, 804, 810, 816, 822, 828, 831, - 837, 844, 846, 852, 858, 864, 867, 873, 879, 885, - 891, 897, 904, 906, 908, 910, 914, 923, 932, 937, - 947, 957, 959, 968, 971, 973, 975, 977, 983, 985, - 988, 990, 992, 993, 1000, 1001, 1008, 1010, 1013, 1016, - 1019, 1022, 1025, 1026, 1033, 1035, 1042, 1048, 1049, 1056, - 1058, 1065, 1071, 1072, 1079, 1081, 1088, 1091, 1092, 1099, - 1101, 1108, 1110, 1113, 1115, 1118, 1120, 1122, 1124, 1126, - 1128, 1130, 1132, 1134, 1136, 1138, 1140, 1142, 1144, 1146, - 1148, 1150, 1152, 1155, 1157, 1159, 1161, 1163, 1165, 1167, - 1169 + 155, 160, 161, 169, 170, 178, 184, 190, 199, 208, + 211, 215, 223, 231, 239, 248, 256, 265, 266, 271, + 275, 284, 293, 298, 308, 318, 319, 326, 327, 334, + 335, 342, 344, 351, 357, 365, 373, 379, 385, 391, + 397, 403, 409, 415, 422, 428, 431, 434, 437, 440, + 446, 449, 451, 453, 456, 457, 463, 464, 470, 472, + 475, 478, 481, 484, 487, 490, 493, 496, 499, 502, + 505, 508, 514, 521, 526, 531, 536, 541, 549, 555, + 562, 567, 572, 574, 584, 589, 591, 608, 618, 620, + 627, 632, 644, 657, 658, 665, 666, 673, 674, 681, + 682, 689, 690, 697, 698, 705, 706, 713, 715, 721, + 727, 729, 730, 738, 744, 750, 756, 759, 765, 771, + 777, 784, 786, 792, 798, 804, 807, 813, 819, 825, + 831, 837, 843, 846, 852, 859, 861, 867, 873, 879, + 882, 888, 894, 900, 906, 912, 919, 921, 923, 925, + 929, 938, 947, 952, 962, 972, 974, 983, 986, 988, + 990, 992, 998, 1000, 1003, 1005, 1007, 1008, 1015, 1016, + 1023, 1025, 1028, 1031, 1034, 1037, 1040, 1041, 1048, 1050, + 1057, 1063, 1064, 1071, 1073, 1080, 1086, 1087, 1094, 1096, + 1103, 1106, 1107, 1114, 1116, 1123, 1125, 1128, 1130, 1133, + 1135, 1137, 1139, 1141, 1143, 1145, 1147, 1149, 1151, 1153, + 1155, 1157, 1159, 1161, 1163, 1165, 1167, 1170, 1172, 1174, + 1176, 1178, 1180, 1182, 1184 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 93, 0, -1, 86, 94, -1, 87, 122, -1, 88, - 100, -1, 89, 163, -1, 214, -1, 94, 95, -1, - 96, -1, 97, -1, 98, -1, 101, -1, 104, -1, - 105, -1, 116, -1, 118, -1, 120, -1, 148, -1, - 150, -1, 152, -1, 154, -1, 156, -1, 158, -1, - 160, -1, 181, -1, 195, -1, 17, 90, 206, 91, - -1, 15, 205, 90, 209, 91, -1, -1, 68, 204, - 90, 206, 99, 100, 91, -1, 214, -1, 100, 57, - 204, 90, 212, 91, -1, 100, 125, -1, -1, 37, - 204, 90, 102, 103, 91, -1, 214, -1, 103, 57, - 204, 90, 212, 91, -1, 28, 205, 90, 206, 91, - -1, 208, 28, 205, 90, 206, 91, -1, -1, 82, - 204, 106, 90, 107, 91, -1, 214, -1, 107, 108, - -1, -1, 80, 109, 90, 111, 91, -1, -1, 80, - 213, 110, 90, 111, 91, -1, 211, -1, 211, 211, - -1, 211, 211, 211, -1, 211, 211, 211, 211, -1, - -1, 111, 78, 205, 90, 112, 113, 91, -1, 111, - 42, 90, 114, 91, -1, 111, 51, 90, 115, 91, - -1, 111, 23, 208, 90, 211, 211, 211, 91, -1, - 111, 23, 90, 208, 211, 211, 211, 91, -1, 211, - 211, -1, 211, 211, 211, -1, 113, 66, 90, 211, - 211, 211, 91, -1, 113, 11, 90, 211, 211, 211, - 91, -1, 113, 22, 208, 90, 211, 211, 91, -1, - 113, 22, 208, 90, 211, 211, 211, 91, -1, 113, - 22, 90, 208, 211, 211, 91, -1, 113, 22, 90, - 208, 211, 211, 211, 91, -1, 211, 211, 211, -1, - 114, 20, 208, 90, 211, 211, 211, 91, -1, 114, - 20, 90, 208, 211, 211, 211, 91, -1, 211, 211, - 211, 211, -1, 115, 21, 208, 90, 211, 211, 211, - 211, 91, -1, 115, 21, 90, 208, 211, 211, 211, - 211, 91, -1, -1, 29, 205, 117, 90, 122, 91, - -1, -1, 31, 205, 119, 90, 122, 91, -1, -1, - 34, 205, 121, 90, 122, 91, -1, 214, -1, 122, - 57, 204, 90, 212, 91, -1, 122, 9, 90, 208, - 91, -1, 122, 10, 90, 211, 211, 211, 91, -1, - 122, 14, 205, 90, 123, 124, 91, -1, 122, 24, - 90, 213, 91, -1, 122, 24, 90, 5, 91, -1, - 122, 19, 90, 213, 91, -1, 122, 19, 90, 5, - 91, -1, 122, 61, 90, 213, 91, -1, 122, 45, - 90, 206, 91, -1, 122, 40, 90, 213, 91, -1, - 122, 65, 205, 90, 209, 91, -1, 122, 67, 90, - 213, 91, -1, 122, 125, -1, 122, 127, -1, 122, - 144, -1, 122, 146, -1, 122, 50, 90, 203, 91, - -1, 122, 95, -1, 208, -1, 214, -1, 124, 208, - -1, -1, 70, 126, 90, 129, 91, -1, -1, 30, - 128, 90, 129, 91, -1, 214, -1, 129, 130, -1, - 129, 131, -1, 129, 132, -1, 129, 133, -1, 129, - 134, -1, 129, 135, -1, 129, 136, -1, 129, 137, - -1, 129, 138, -1, 129, 139, -1, 129, 140, -1, - 129, 142, -1, 71, 90, 211, 211, 91, -1, 71, - 90, 211, 211, 211, 91, -1, 52, 90, 211, 91, - -1, 53, 90, 211, 91, -1, 54, 90, 211, 91, - -1, 55, 90, 211, 91, -1, 52, 90, 211, 211, - 211, 211, 91, -1, 58, 90, 211, 211, 91, -1, - 58, 90, 211, 211, 211, 91, -1, 58, 90, 211, - 91, -1, 38, 90, 141, 91, -1, 214, -1, 211, - 211, 211, 211, 211, 211, 211, 211, 211, -1, 39, - 90, 143, 91, -1, 214, -1, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, -1, 83, 90, 198, 145, 50, 90, 202, - 91, 91, -1, 214, -1, 145, 57, 204, 90, 212, - 91, -1, 62, 90, 147, 91, -1, 25, 90, 211, - 211, 80, 90, 211, 211, 211, 91, 91, -1, 25, - 90, 211, 211, 211, 80, 90, 211, 211, 211, 91, - 91, -1, -1, 49, 205, 149, 90, 163, 91, -1, - -1, 73, 205, 151, 90, 163, 91, -1, -1, 74, - 205, 153, 90, 163, 91, -1, -1, 48, 205, 155, - 90, 163, 91, -1, -1, 35, 205, 157, 90, 163, - 91, -1, -1, 44, 205, 159, 90, 165, 91, -1, - -1, 43, 205, 161, 90, 166, 91, -1, 214, -1, - 162, 42, 90, 170, 91, -1, 162, 51, 90, 171, - 91, -1, 214, -1, -1, 163, 16, 213, 90, 164, - 162, 91, -1, 163, 72, 90, 167, 91, -1, 163, - 68, 90, 168, 91, -1, 163, 41, 90, 169, 91, - -1, 163, 173, -1, 163, 42, 90, 170, 91, -1, - 163, 51, 90, 171, 91, -1, 163, 8, 90, 172, - 91, -1, 163, 57, 204, 90, 212, 91, -1, 214, - -1, 165, 72, 90, 167, 91, -1, 165, 68, 90, - 168, 91, -1, 165, 41, 90, 169, 91, -1, 165, - 173, -1, 165, 42, 90, 170, 91, -1, 165, 51, - 90, 171, 91, -1, 165, 8, 90, 172, 91, -1, - 165, 46, 90, 174, 91, -1, 165, 77, 90, 175, - 91, -1, 165, 79, 90, 176, 91, -1, 165, 160, - -1, 165, 75, 90, 177, 91, -1, 165, 57, 204, - 90, 212, 91, -1, 214, -1, 166, 72, 90, 167, - 91, -1, 166, 68, 90, 168, 91, -1, 166, 41, - 90, 169, 91, -1, 166, 173, -1, 166, 42, 90, - 170, 91, -1, 166, 51, 90, 171, 91, -1, 166, - 8, 90, 172, 91, -1, 166, 46, 90, 179, 91, - -1, 166, 32, 90, 180, 91, -1, 166, 57, 204, - 90, 212, 91, -1, 200, -1, 204, -1, 201, -1, - 211, 211, 211, -1, 170, 20, 208, 90, 211, 211, - 211, 91, -1, 170, 20, 90, 208, 211, 211, 211, - 91, -1, 211, 211, 211, 211, -1, 171, 21, 208, - 90, 211, 211, 211, 211, 91, -1, 171, 21, 90, - 208, 211, 211, 211, 211, 91, -1, 213, -1, 83, - 90, 198, 50, 90, 202, 91, 91, -1, 213, 213, - -1, 199, -1, 199, -1, 214, -1, 177, 36, 90, - 178, 91, -1, 214, -1, 178, 160, -1, 213, -1, - 199, -1, -1, 63, 205, 182, 90, 185, 91, -1, - -1, 12, 205, 184, 90, 185, 91, -1, 214, -1, - 185, 181, -1, 185, 183, -1, 185, 186, -1, 185, - 189, -1, 185, 192, -1, -1, 56, 205, 187, 90, - 188, 91, -1, 214, -1, 188, 57, 204, 90, 212, - 91, -1, 188, 64, 90, 199, 91, -1, -1, 84, - 205, 190, 90, 191, 91, -1, 214, -1, 191, 57, - 204, 90, 212, 91, -1, 191, 64, 90, 199, 91, - -1, -1, 85, 205, 193, 90, 194, 91, -1, 214, - -1, 194, 57, 204, 90, 212, 91, -1, 194, 186, - -1, -1, 6, 205, 196, 90, 197, 91, -1, 214, - -1, 197, 57, 204, 90, 212, 91, -1, 214, -1, - 198, 213, -1, 214, -1, 199, 211, -1, 204, -1, - 204, -1, 204, -1, 204, -1, 214, -1, 208, -1, - 207, -1, 214, -1, 208, -1, 214, -1, 208, -1, - 3, -1, 4, -1, 5, -1, 214, -1, 210, -1, - 208, -1, 210, 208, -1, 3, -1, 4, -1, 3, - -1, 4, -1, 5, -1, 3, -1, 4, -1, -1 + 94, 0, -1, 87, 95, -1, 88, 125, -1, 89, + 101, -1, 90, 166, -1, 217, -1, 95, 96, -1, + 97, -1, 98, -1, 99, -1, 102, -1, 105, -1, + 106, -1, 119, -1, 121, -1, 123, -1, 151, -1, + 153, -1, 155, -1, 157, -1, 159, -1, 161, -1, + 163, -1, 184, -1, 198, -1, 17, 91, 209, 92, + -1, 15, 208, 91, 212, 92, -1, -1, 68, 207, + 91, 209, 100, 101, 92, -1, 217, -1, 101, 57, + 207, 91, 215, 92, -1, 101, 128, -1, -1, 37, + 207, 91, 103, 104, 92, -1, 217, -1, 104, 57, + 207, 91, 215, 92, -1, 28, 208, 91, 209, 92, + -1, 211, 28, 208, 91, 209, 92, -1, -1, 83, + 207, 107, 91, 108, 92, -1, 217, -1, 108, 109, + -1, -1, 81, 110, 91, 112, 92, -1, -1, 81, + 216, 111, 91, 112, 92, -1, 214, -1, 214, 214, + -1, 214, 214, 214, -1, 214, 214, 214, 214, -1, + -1, 112, 78, 208, 91, 113, 115, 92, -1, -1, + 112, 79, 207, 91, 114, 116, 92, -1, 112, 42, + 91, 117, 92, -1, 112, 51, 91, 118, 92, -1, + 112, 23, 211, 91, 214, 214, 214, 92, -1, 112, + 23, 91, 211, 214, 214, 214, 92, -1, 214, 214, + -1, 214, 214, 214, -1, 115, 66, 91, 214, 214, + 214, 92, -1, 115, 11, 91, 214, 214, 214, 92, + -1, 115, 22, 211, 91, 214, 214, 92, -1, 115, + 22, 211, 91, 214, 214, 214, 92, -1, 115, 22, + 91, 211, 214, 214, 92, -1, 115, 22, 91, 211, + 214, 214, 214, 92, -1, -1, 214, 214, 214, 214, + -1, 214, 214, 214, -1, 117, 20, 211, 91, 214, + 214, 214, 92, -1, 117, 20, 91, 211, 214, 214, + 214, 92, -1, 214, 214, 214, 214, -1, 118, 21, + 211, 91, 214, 214, 214, 214, 92, -1, 118, 21, + 91, 211, 214, 214, 214, 214, 92, -1, -1, 29, + 208, 120, 91, 125, 92, -1, -1, 31, 208, 122, + 91, 125, 92, -1, -1, 34, 208, 124, 91, 125, + 92, -1, 217, -1, 125, 57, 207, 91, 215, 92, + -1, 125, 9, 91, 211, 92, -1, 125, 10, 91, + 214, 214, 214, 92, -1, 125, 14, 208, 91, 126, + 127, 92, -1, 125, 24, 91, 216, 92, -1, 125, + 24, 91, 5, 92, -1, 125, 19, 91, 216, 92, + -1, 125, 19, 91, 5, 92, -1, 125, 61, 91, + 216, 92, -1, 125, 45, 91, 209, 92, -1, 125, + 40, 91, 216, 92, -1, 125, 65, 208, 91, 212, + 92, -1, 125, 67, 91, 216, 92, -1, 125, 128, + -1, 125, 130, -1, 125, 147, -1, 125, 149, -1, + 125, 50, 91, 206, 92, -1, 125, 96, -1, 211, + -1, 217, -1, 127, 211, -1, -1, 70, 129, 91, + 132, 92, -1, -1, 30, 131, 91, 132, 92, -1, + 217, -1, 132, 133, -1, 132, 134, -1, 132, 135, + -1, 132, 136, -1, 132, 137, -1, 132, 138, -1, + 132, 139, -1, 132, 140, -1, 132, 141, -1, 132, + 142, -1, 132, 143, -1, 132, 145, -1, 71, 91, + 214, 214, 92, -1, 71, 91, 214, 214, 214, 92, + -1, 52, 91, 214, 92, -1, 53, 91, 214, 92, + -1, 54, 91, 214, 92, -1, 55, 91, 214, 92, + -1, 52, 91, 214, 214, 214, 214, 92, -1, 58, + 91, 214, 214, 92, -1, 58, 91, 214, 214, 214, + 92, -1, 58, 91, 214, 92, -1, 38, 91, 144, + 92, -1, 217, -1, 214, 214, 214, 214, 214, 214, + 214, 214, 214, -1, 39, 91, 146, 92, -1, 217, + -1, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 214, 214, 214, -1, 84, 91, + 201, 148, 50, 91, 205, 92, 92, -1, 217, -1, + 148, 57, 207, 91, 215, 92, -1, 62, 91, 150, + 92, -1, 25, 91, 214, 214, 81, 91, 214, 214, + 214, 92, 92, -1, 25, 91, 214, 214, 214, 81, + 91, 214, 214, 214, 92, 92, -1, -1, 49, 208, + 152, 91, 166, 92, -1, -1, 73, 208, 154, 91, + 166, 92, -1, -1, 74, 208, 156, 91, 166, 92, + -1, -1, 48, 208, 158, 91, 166, 92, -1, -1, + 35, 208, 160, 91, 166, 92, -1, -1, 44, 208, + 162, 91, 168, 92, -1, -1, 43, 208, 164, 91, + 169, 92, -1, 217, -1, 165, 42, 91, 173, 92, + -1, 165, 51, 91, 174, 92, -1, 217, -1, -1, + 166, 16, 216, 91, 167, 165, 92, -1, 166, 72, + 91, 170, 92, -1, 166, 68, 91, 171, 92, -1, + 166, 41, 91, 172, 92, -1, 166, 176, -1, 166, + 42, 91, 173, 92, -1, 166, 51, 91, 174, 92, + -1, 166, 8, 91, 175, 92, -1, 166, 57, 207, + 91, 215, 92, -1, 217, -1, 168, 72, 91, 170, + 92, -1, 168, 68, 91, 171, 92, -1, 168, 41, + 91, 172, 92, -1, 168, 176, -1, 168, 42, 91, + 173, 92, -1, 168, 51, 91, 174, 92, -1, 168, + 8, 91, 175, 92, -1, 168, 46, 91, 177, 92, + -1, 168, 77, 91, 178, 92, -1, 168, 80, 91, + 179, 92, -1, 168, 163, -1, 168, 75, 91, 180, + 92, -1, 168, 57, 207, 91, 215, 92, -1, 217, + -1, 169, 72, 91, 170, 92, -1, 169, 68, 91, + 171, 92, -1, 169, 41, 91, 172, 92, -1, 169, + 176, -1, 169, 42, 91, 173, 92, -1, 169, 51, + 91, 174, 92, -1, 169, 8, 91, 175, 92, -1, + 169, 46, 91, 182, 92, -1, 169, 32, 91, 183, + 92, -1, 169, 57, 207, 91, 215, 92, -1, 203, + -1, 207, -1, 204, -1, 214, 214, 214, -1, 173, + 20, 211, 91, 214, 214, 214, 92, -1, 173, 20, + 91, 211, 214, 214, 214, 92, -1, 214, 214, 214, + 214, -1, 174, 21, 211, 91, 214, 214, 214, 214, + 92, -1, 174, 21, 91, 211, 214, 214, 214, 214, + 92, -1, 216, -1, 84, 91, 201, 50, 91, 205, + 92, 92, -1, 216, 216, -1, 202, -1, 202, -1, + 217, -1, 180, 36, 91, 181, 92, -1, 217, -1, + 181, 163, -1, 216, -1, 202, -1, -1, 63, 208, + 185, 91, 188, 92, -1, -1, 12, 208, 187, 91, + 188, 92, -1, 217, -1, 188, 184, -1, 188, 186, + -1, 188, 189, -1, 188, 192, -1, 188, 195, -1, + -1, 56, 208, 190, 91, 191, 92, -1, 217, -1, + 191, 57, 207, 91, 215, 92, -1, 191, 64, 91, + 202, 92, -1, -1, 85, 208, 193, 91, 194, 92, + -1, 217, -1, 194, 57, 207, 91, 215, 92, -1, + 194, 64, 91, 202, 92, -1, -1, 86, 208, 196, + 91, 197, 92, -1, 217, -1, 197, 57, 207, 91, + 215, 92, -1, 197, 189, -1, -1, 6, 208, 199, + 91, 200, 92, -1, 217, -1, 200, 57, 207, 91, + 215, 92, -1, 217, -1, 201, 216, -1, 217, -1, + 202, 214, -1, 207, -1, 207, -1, 207, -1, 207, + -1, 217, -1, 211, -1, 210, -1, 217, -1, 211, + -1, 217, -1, 211, -1, 3, -1, 4, -1, 5, + -1, 217, -1, 213, -1, 211, -1, 213, 211, -1, + 3, -1, 4, -1, 3, -1, 4, -1, 5, -1, + 3, -1, 4, -1, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 231, 231, 232, 233, 234, 245, 246, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 290, 313, 328, 327, - 355, 356, 691, 703, 702, 729, 730, 825, 832, 853, - 852, 892, 893, 905, 904, 916, 915, 961, 965, 969, - 973, 978, 977, 992, 993, 994, 1002, 1021, 1025, 1029, - 1037, 1045, 1053, 1061, 1069, 1087, 1091, 1099, 1117, 1121, - 1129, 1148, 1147, 1173, 1172, 1194, 1193, 1218, 1219, 1364, - 1376, 1381, 1388, 1394, 1407, 1414, 1427, 1433, 1439, 1445, - 1450, 1456, 1457, 1458, 1459, 1460, 1469, 1483, 1513, 1514, - 1537, 1536, 1553, 1552, 1573, 1574, 1575, 1576, 1577, 1578, - 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1589, 1596, 1603, - 1610, 1617, 1624, 1631, 1638, 1645, 1652, 1659, 1663, 1664, - 1676, 1680, 1681, 1703, 1736, 1740, 1765, 1777, 1782, 1800, - 1799, 1819, 1818, 1838, 1837, 1857, 1856, 1876, 1875, 1895, - 1894, 1914, 1913, 1933, 1934, 1935, 1946, 1948, 1947, 1968, - 1969, 1970, 1971, 1972, 1973, 1974, 1975, 2050, 2051, 2052, - 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2067, - 2068, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, - 2143, 2144, 2215, 2232, 2272, 2289, 2293, 2301, 2319, 2323, - 2331, 2349, 2365, 2396, 2414, 2434, 2454, 2459, 2470, 2476, - 2495, 2511, 2533, 2532, 2556, 2555, 2576, 2577, 2581, 2585, - 2589, 2593, 2609, 2608, 2629, 2630, 2642, 2657, 2656, 2677, - 2678, 2695, 2710, 2709, 2730, 2731, 2746, 2762, 2761, 2782, - 2783, 2807, 2811, 2825, 2829, 2843, 2864, 2885, 2910, 2931, - 2936, 2948, 2960, 2965, 2976, 2980, 2994, 2998, 3002, 3015, - 3019, 3035, 3039, 3053, 3054, 3069, 3075, 3081, 3098, 3106, - 3112 + 0, 232, 232, 233, 234, 235, 246, 247, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 291, 314, 329, 328, + 356, 357, 703, 715, 714, 741, 742, 837, 844, 865, + 864, 904, 905, 917, 916, 928, 927, 973, 977, 981, + 985, 990, 989, 1005, 1004, 1019, 1020, 1021, 1029, 1048, + 1052, 1056, 1064, 1072, 1080, 1088, 1096, 1113, 1114, 1128, + 1132, 1140, 1158, 1162, 1170, 1189, 1188, 1214, 1213, 1235, + 1234, 1259, 1260, 1405, 1417, 1422, 1429, 1435, 1448, 1455, + 1468, 1474, 1480, 1486, 1491, 1497, 1498, 1499, 1500, 1501, + 1510, 1524, 1554, 1555, 1578, 1577, 1594, 1593, 1614, 1615, + 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, + 1626, 1630, 1637, 1644, 1651, 1658, 1665, 1672, 1679, 1686, + 1693, 1700, 1704, 1705, 1717, 1721, 1722, 1744, 1777, 1781, + 1806, 1818, 1823, 1841, 1840, 1860, 1859, 1879, 1878, 1898, + 1897, 1917, 1916, 1936, 1935, 1955, 1954, 1974, 1975, 1976, + 1987, 1989, 1988, 2009, 2010, 2011, 2012, 2013, 2014, 2015, + 2016, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, + 2100, 2101, 2102, 2108, 2109, 2175, 2176, 2177, 2178, 2179, + 2180, 2181, 2182, 2183, 2184, 2185, 2256, 2273, 2313, 2330, + 2334, 2342, 2360, 2364, 2372, 2390, 2406, 2437, 2455, 2475, + 2495, 2500, 2511, 2517, 2536, 2552, 2574, 2573, 2597, 2596, + 2617, 2618, 2622, 2626, 2630, 2634, 2650, 2649, 2670, 2671, + 2683, 2698, 2697, 2718, 2719, 2736, 2751, 2750, 2771, 2772, + 2787, 2803, 2802, 2823, 2824, 2848, 2852, 2866, 2870, 2884, + 2905, 2926, 2951, 2972, 2977, 2989, 3001, 3006, 3017, 3021, + 3035, 3039, 3043, 3056, 3060, 3076, 3080, 3094, 3095, 3110, + 3116, 3122, 3139, 3147, 3153 }; #endif @@ -928,37 +925,38 @@ static const char *const yytname[] = "SANIM", "SCALAR", "SCALE", "SEQUENCE", "SHADING", "SWITCH", "SWITCHCONDITION", "TABLE", "TABLE_V", "TAG", "TANGENT", "TEXLIST", "TEXTURE", "TLENGTHS", "TRANSFORM", "TRANSLATE", "TREF", "TRIANGLEFAN", - "TRIANGLESTRIP", "TRIM", "TXT", "UKNOTS", "UV", "VKNOTS", "VERTEX", - "VERTEXANIM", "VERTEXPOOL", "VERTEXREF", "XFMANIM", "XFMSANIM", + "TRIANGLESTRIP", "TRIM", "TXT", "UKNOTS", "UV", "AUX", "VKNOTS", + "VERTEX", "VERTEXANIM", "VERTEXPOOL", "VERTEXREF", "XFMANIM", "XFMSANIM", "START_EGG", "START_GROUP_BODY", "START_TEXTURE_BODY", "START_PRIMITIVE_BODY", "'{'", "'}'", "$accept", "grammar", "egg", - "node", "coordsystem", "comment", "texture", "$@1", "texture_body", - "material", "$@2", "material_body", "external_reference", "vertex_pool", - "$@3", "vertex_pool_body", "vertex", "$@4", "$@5", "vertex_body", "$@6", - "vertex_uv_body", "vertex_normal_body", "vertex_color_body", "group", - "$@7", "joint", "$@8", "instance", "$@9", "group_body", "cs_type", - "collide_flags", "transform", "$@10", "default_pose", "$@11", - "transform_body", "translate2d", "translate3d", "rotate2d", "rotx", - "roty", "rotz", "rotate3d", "scale2d", "scale3d", "uniform_scale", - "matrix3", "matrix3_body", "matrix4", "matrix4_body", "group_vertex_ref", - "group_vertex_membership", "switchcondition", "switchcondition_body", - "polygon", "$@12", "trianglefan", "$@13", "trianglestrip", "$@14", - "point_light", "$@15", "line", "$@16", "nurbs_surface", "$@17", - "nurbs_curve", "$@18", "primitive_component_body", "primitive_body", - "$@19", "nurbs_surface_body", "nurbs_curve_body", "primitive_tref_body", - "primitive_texture_body", "primitive_material_body", - "primitive_normal_body", "primitive_color_body", "primitive_bface_body", - "primitive_vertex_ref", "nurbs_surface_order_body", - "nurbs_surface_uknots_body", "nurbs_surface_vknots_body", - "nurbs_surface_trim_body", "nurbs_surface_trim_loop_body", - "nurbs_curve_order_body", "nurbs_curve_knots_body", "table", "$@20", - "bundle", "$@21", "table_body", "sanim", "$@22", "sanim_body", "xfmanim", - "$@23", "xfmanim_body", "xfm_s_anim", "$@24", "xfm_s_anim_body", - "anim_preload", "$@25", "anim_preload_body", "integer_list", "real_list", - "texture_name", "material_name", "vertex_pool_name", "group_name", - "required_name", "optional_name", "required_string", "optional_string", - "string", "repeated_string", "repeated_string_body", "real", - "real_or_string", "integer", "empty", 0 + "node", "coordsystem", "comment", "texture", "@1", "texture_body", + "material", "@2", "material_body", "external_reference", "vertex_pool", + "@3", "vertex_pool_body", "vertex", "@4", "@5", "vertex_body", "@6", + "@7", "vertex_uv_body", "vertex_aux_body", "vertex_normal_body", + "vertex_color_body", "group", "@8", "joint", "@9", "instance", "@10", + "group_body", "cs_type", "collide_flags", "transform", "@11", + "default_pose", "@12", "transform_body", "translate2d", "translate3d", + "rotate2d", "rotx", "roty", "rotz", "rotate3d", "scale2d", "scale3d", + "uniform_scale", "matrix3", "matrix3_body", "matrix4", "matrix4_body", + "group_vertex_ref", "group_vertex_membership", "switchcondition", + "switchcondition_body", "polygon", "@13", "trianglefan", "@14", + "trianglestrip", "@15", "point_light", "@16", "line", "@17", + "nurbs_surface", "@18", "nurbs_curve", "@19", "primitive_component_body", + "primitive_body", "@20", "nurbs_surface_body", "nurbs_curve_body", + "primitive_tref_body", "primitive_texture_body", + "primitive_material_body", "primitive_normal_body", + "primitive_color_body", "primitive_bface_body", "primitive_vertex_ref", + "nurbs_surface_order_body", "nurbs_surface_uknots_body", + "nurbs_surface_vknots_body", "nurbs_surface_trim_body", + "nurbs_surface_trim_loop_body", "nurbs_curve_order_body", + "nurbs_curve_knots_body", "table", "@21", "bundle", "@22", "table_body", + "sanim", "@23", "sanim_body", "xfmanim", "@24", "xfmanim_body", + "xfm_s_anim", "@25", "xfm_s_anim_body", "anim_preload", "@26", + "anim_preload_body", "integer_list", "real_list", "texture_name", + "material_name", "vertex_pool_name", "group_name", "required_name", + "optional_name", "required_string", "optional_string", "string", + "repeated_string", "repeated_string_body", "real", "real_or_string", + "integer", "empty", 0 }; #endif @@ -976,41 +974,41 @@ static const yytype_uint16 yytoknum[] = 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 123, 125 + 345, 123, 125 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 92, 93, 93, 93, 93, 94, 94, 95, 95, - 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 96, 97, 99, 98, - 100, 100, 100, 102, 101, 103, 103, 104, 104, 106, - 105, 107, 107, 109, 108, 110, 108, 111, 111, 111, - 111, 112, 111, 111, 111, 111, 111, 113, 113, 113, - 113, 113, 113, 113, 113, 114, 114, 114, 115, 115, - 115, 117, 116, 119, 118, 121, 120, 122, 122, 122, - 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, - 122, 122, 122, 122, 122, 122, 122, 123, 124, 124, - 126, 125, 128, 127, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 141, - 142, 143, 143, 144, 145, 145, 146, 147, 147, 149, - 148, 151, 150, 153, 152, 155, 154, 157, 156, 159, - 158, 161, 160, 162, 162, 162, 163, 164, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 167, 168, 169, 170, 170, 170, 171, 171, - 171, 172, 173, 174, 175, 176, 177, 177, 178, 178, - 179, 180, 182, 181, 184, 183, 185, 185, 185, 185, - 185, 185, 187, 186, 188, 188, 188, 190, 189, 191, - 191, 191, 193, 192, 194, 194, 194, 196, 195, 197, - 197, 198, 198, 199, 199, 200, 201, 202, 203, 204, - 204, 205, 206, 206, 207, 207, 208, 208, 208, 209, - 209, 210, 210, 211, 211, 212, 212, 212, 213, 213, - 214 + 0, 93, 94, 94, 94, 94, 95, 95, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 97, 98, 100, 99, + 101, 101, 101, 103, 102, 104, 104, 105, 105, 107, + 106, 108, 108, 110, 109, 111, 109, 112, 112, 112, + 112, 113, 112, 114, 112, 112, 112, 112, 112, 115, + 115, 115, 115, 115, 115, 115, 115, 116, 116, 117, + 117, 117, 118, 118, 118, 120, 119, 122, 121, 124, + 123, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 126, 127, 127, 129, 128, 131, 130, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 144, 145, 146, 146, 147, 148, 148, + 149, 150, 150, 152, 151, 154, 153, 156, 155, 158, + 157, 160, 159, 162, 161, 164, 163, 165, 165, 165, + 166, 167, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 168, 168, 168, 168, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 170, 171, 172, 173, + 173, 173, 174, 174, 174, 175, 176, 177, 178, 179, + 180, 180, 181, 181, 182, 183, 185, 184, 187, 186, + 188, 188, 188, 188, 188, 188, 190, 189, 191, 191, + 191, 193, 192, 194, 194, 194, 196, 195, 197, 197, + 197, 199, 198, 200, 200, 201, 201, 202, 202, 203, + 204, 205, 206, 207, 207, 208, 209, 209, 210, 210, + 211, 211, 211, 212, 212, 213, 213, 214, 214, 215, + 215, 215, 216, 216, 217 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1021,29 +1019,29 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 4, 5, 0, 7, 1, 6, 2, 0, 6, 1, 6, 5, 6, 0, 6, 1, 2, 0, 5, 0, 6, 1, 2, 3, - 4, 0, 7, 5, 5, 8, 8, 2, 3, 7, - 7, 7, 8, 7, 8, 3, 8, 8, 4, 9, - 9, 0, 6, 0, 6, 0, 6, 1, 6, 5, - 7, 7, 5, 5, 5, 5, 5, 5, 5, 6, - 5, 2, 2, 2, 2, 5, 2, 1, 1, 2, - 0, 5, 0, 5, 1, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 5, 6, 4, - 4, 4, 4, 7, 5, 6, 4, 4, 1, 9, - 4, 1, 16, 9, 1, 6, 4, 11, 12, 0, - 6, 0, 6, 0, 6, 0, 6, 0, 6, 0, - 6, 0, 6, 1, 5, 5, 1, 0, 7, 5, - 5, 5, 2, 5, 5, 5, 6, 1, 5, 5, - 5, 2, 5, 5, 5, 5, 5, 5, 2, 5, + 4, 0, 7, 0, 7, 5, 5, 8, 8, 2, + 3, 7, 7, 7, 8, 7, 8, 0, 4, 3, + 8, 8, 4, 9, 9, 0, 6, 0, 6, 0, + 6, 1, 6, 5, 7, 7, 5, 5, 5, 5, + 5, 5, 5, 6, 5, 2, 2, 2, 2, 5, + 2, 1, 1, 2, 0, 5, 0, 5, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 5, 6, 4, 4, 4, 4, 7, 5, 6, + 4, 4, 1, 9, 4, 1, 16, 9, 1, 6, + 4, 11, 12, 0, 6, 0, 6, 0, 6, 0, + 6, 0, 6, 0, 6, 0, 6, 1, 5, 5, + 1, 0, 7, 5, 5, 5, 2, 5, 5, 5, 6, 1, 5, 5, 5, 2, 5, 5, 5, 5, - 5, 6, 1, 1, 1, 3, 8, 8, 4, 9, - 9, 1, 8, 2, 1, 1, 1, 5, 1, 2, - 1, 1, 0, 6, 0, 6, 1, 2, 2, 2, - 2, 2, 0, 6, 1, 6, 5, 0, 6, 1, - 6, 5, 0, 6, 1, 6, 2, 0, 6, 1, - 6, 1, 2, 1, 2, 1, 1, 1, 1, 1, + 5, 5, 2, 5, 6, 1, 5, 5, 5, 2, + 5, 5, 5, 5, 5, 6, 1, 1, 1, 3, + 8, 8, 4, 9, 9, 1, 8, 2, 1, 1, + 1, 5, 1, 2, 1, 1, 0, 6, 0, 6, + 1, 2, 2, 2, 2, 2, 0, 6, 1, 6, + 5, 0, 6, 1, 6, 5, 0, 6, 1, 6, + 2, 0, 6, 1, 6, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 0 + 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 0 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1051,81 +1049,82 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 270, 270, 270, 270, 0, 2, 6, 3, 77, - 4, 30, 5, 156, 1, 256, 257, 258, 270, 270, - 0, 270, 270, 270, 270, 270, 270, 270, 270, 270, - 270, 270, 270, 270, 270, 270, 7, 8, 9, 10, + 0, 274, 274, 274, 274, 0, 2, 6, 3, 81, + 4, 30, 5, 160, 1, 260, 261, 262, 274, 274, + 0, 274, 274, 274, 274, 274, 274, 274, 274, 274, + 274, 274, 274, 274, 274, 274, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 0, 0, 0, 270, 0, - 0, 102, 0, 0, 0, 270, 0, 0, 270, 0, - 100, 0, 96, 91, 92, 93, 94, 270, 32, 0, - 0, 0, 0, 0, 270, 0, 0, 0, 162, 237, - 251, 255, 254, 0, 270, 0, 71, 73, 75, 147, - 0, 250, 249, 151, 149, 145, 139, 212, 0, 141, - 143, 39, 270, 0, 0, 0, 0, 0, 0, 0, - 270, 270, 0, 0, 0, 0, 0, 0, 270, 0, - 0, 268, 269, 0, 270, 0, 0, 0, 270, 270, - 270, 0, 270, 0, 253, 252, 270, 0, 0, 0, - 0, 33, 0, 0, 0, 0, 0, 270, 0, 0, - 0, 0, 0, 263, 264, 0, 0, 0, 0, 0, - 0, 270, 0, 0, 0, 248, 0, 0, 0, 0, - 270, 0, 270, 270, 241, 0, 0, 201, 157, 0, - 194, 246, 0, 0, 0, 0, 0, 0, 193, 0, - 192, 245, 0, 270, 261, 0, 260, 259, 26, 0, - 270, 270, 270, 270, 270, 270, 270, 270, 270, 270, - 28, 270, 270, 270, 270, 79, 0, 270, 97, 85, - 84, 83, 82, 0, 104, 88, 87, 95, 265, 266, - 267, 0, 86, 0, 136, 0, 90, 0, 0, 242, - 134, 0, 165, 270, 161, 0, 163, 0, 0, 164, - 0, 0, 160, 159, 0, 0, 239, 27, 262, 37, - 0, 0, 0, 0, 0, 35, 0, 181, 0, 167, - 0, 0, 0, 216, 270, 0, 0, 0, 41, 0, - 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, - 0, 103, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 78, 0, 89, 101, 0, 270, - 31, 0, 153, 0, 0, 195, 0, 0, 0, 166, - 270, 270, 238, 72, 74, 76, 148, 270, 34, 0, - 0, 0, 0, 0, 0, 270, 0, 0, 152, 185, - 0, 0, 0, 0, 0, 270, 0, 0, 0, 0, - 0, 150, 178, 171, 146, 140, 270, 270, 270, 270, - 213, 217, 218, 219, 220, 221, 0, 142, 144, 43, - 40, 42, 38, 80, 81, 99, 270, 270, 0, 0, - 0, 0, 0, 0, 0, 270, 0, 0, 0, 158, - 0, 0, 0, 0, 198, 0, 247, 0, 0, 0, - 270, 270, 0, 0, 0, 0, 270, 270, 0, 270, - 0, 0, 0, 0, 270, 270, 270, 270, 270, 214, - 222, 227, 232, 29, 0, 45, 0, 0, 128, 0, - 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, + 21, 22, 23, 24, 25, 0, 0, 0, 274, 0, + 0, 106, 0, 0, 0, 274, 0, 0, 274, 0, + 104, 0, 100, 95, 96, 97, 98, 274, 32, 0, + 0, 0, 0, 0, 274, 0, 0, 0, 166, 241, + 255, 259, 258, 0, 274, 0, 75, 77, 79, 151, + 0, 254, 253, 155, 153, 149, 143, 216, 0, 145, + 147, 39, 274, 0, 0, 0, 0, 0, 0, 0, + 274, 274, 0, 0, 0, 0, 0, 0, 274, 0, + 0, 272, 273, 0, 274, 0, 0, 0, 274, 274, + 274, 0, 274, 0, 257, 256, 274, 0, 0, 0, + 0, 33, 0, 0, 0, 0, 0, 274, 0, 0, + 0, 0, 0, 267, 268, 0, 0, 0, 0, 0, + 0, 274, 0, 0, 0, 252, 0, 0, 0, 0, + 274, 0, 274, 274, 245, 0, 0, 205, 161, 0, + 198, 250, 0, 0, 0, 0, 0, 0, 197, 0, + 196, 249, 0, 274, 265, 0, 264, 263, 26, 0, + 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, + 28, 274, 274, 274, 274, 83, 0, 274, 101, 89, + 88, 87, 86, 0, 108, 92, 91, 99, 269, 270, + 271, 0, 90, 0, 140, 0, 94, 0, 0, 246, + 138, 0, 169, 274, 165, 0, 167, 0, 0, 168, + 0, 0, 164, 163, 0, 0, 243, 27, 266, 37, + 0, 0, 0, 0, 0, 35, 0, 185, 0, 171, + 0, 0, 0, 220, 274, 0, 0, 0, 41, 0, + 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, + 0, 107, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 82, 0, 93, 105, 0, 274, + 31, 0, 157, 0, 0, 199, 0, 0, 0, 170, + 274, 274, 242, 76, 78, 80, 152, 274, 34, 0, + 0, 0, 0, 0, 0, 274, 0, 0, 156, 189, + 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, + 0, 154, 182, 175, 150, 144, 274, 274, 274, 274, + 217, 221, 222, 223, 224, 225, 0, 146, 148, 43, + 40, 42, 38, 84, 85, 103, 274, 274, 0, 0, + 0, 0, 0, 0, 0, 274, 0, 0, 0, 162, + 0, 0, 0, 0, 202, 0, 251, 0, 0, 0, + 274, 274, 0, 0, 0, 0, 274, 274, 0, 274, + 0, 0, 0, 0, 274, 274, 274, 274, 274, 218, + 226, 231, 236, 29, 0, 45, 0, 0, 132, 0, + 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 211, 243, 0, 0, 0, 210, 0, + 0, 0, 0, 215, 247, 0, 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 206, 0, 204, 0, 205, 0, 0, - 0, 0, 0, 0, 127, 0, 130, 0, 119, 0, - 120, 121, 122, 126, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 202, 0, 0, 188, - 190, 244, 184, 186, 189, 187, 0, 183, 182, 174, - 170, 172, 175, 203, 173, 0, 169, 168, 0, 179, - 176, 177, 270, 270, 270, 270, 0, 47, 0, 0, - 0, 0, 124, 0, 117, 0, 0, 0, 133, 135, - 154, 155, 0, 0, 0, 0, 240, 36, 191, 180, - 270, 0, 0, 224, 0, 229, 0, 234, 0, 0, - 0, 270, 44, 48, 0, 0, 0, 0, 125, 118, - 0, 0, 197, 196, 0, 0, 0, 208, 215, 270, - 0, 223, 270, 0, 228, 270, 233, 236, 0, 0, - 0, 0, 0, 49, 46, 0, 0, 123, 0, 0, - 200, 199, 207, 209, 0, 270, 0, 270, 0, 0, - 0, 0, 0, 0, 0, 51, 50, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, - 0, 0, 54, 0, 0, 0, 0, 137, 0, 0, - 226, 0, 231, 0, 0, 0, 0, 0, 65, 0, - 0, 0, 0, 0, 0, 0, 138, 225, 230, 235, - 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, - 52, 57, 129, 0, 56, 55, 0, 0, 0, 0, - 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, + 0, 0, 0, 210, 0, 208, 0, 209, 0, 0, + 0, 0, 0, 0, 131, 0, 134, 0, 123, 0, + 124, 125, 126, 130, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 206, 0, 0, 192, + 194, 248, 188, 190, 193, 191, 0, 187, 186, 178, + 174, 176, 179, 207, 177, 0, 173, 172, 0, 183, + 180, 181, 274, 274, 274, 274, 0, 47, 0, 0, + 0, 0, 128, 0, 121, 0, 0, 0, 137, 139, + 158, 159, 0, 0, 0, 0, 244, 36, 195, 184, + 274, 0, 0, 228, 0, 233, 0, 238, 0, 0, + 0, 274, 274, 44, 48, 0, 0, 0, 0, 129, + 122, 0, 0, 201, 200, 0, 0, 0, 212, 219, + 274, 0, 227, 274, 0, 232, 274, 237, 240, 0, + 0, 0, 0, 0, 0, 49, 46, 0, 0, 127, + 0, 0, 204, 203, 211, 213, 0, 274, 0, 274, + 0, 0, 0, 0, 0, 0, 0, 51, 53, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 67, 66, 0, 0, 0, 0, - 0, 0, 0, 70, 69, 60, 63, 0, 61, 0, - 59, 0, 64, 62, 0, 132 + 0, 0, 55, 0, 0, 56, 0, 0, 67, 0, + 0, 141, 0, 0, 230, 0, 235, 0, 0, 0, + 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 142, 229, 234, 239, 0, 0, 0, 0, + 0, 0, 72, 0, 0, 0, 52, 59, 54, 0, + 133, 0, 58, 57, 0, 0, 0, 0, 0, 0, + 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 71, 70, 0, 0, 0, 0, + 0, 0, 0, 74, 73, 62, 65, 0, 63, 0, + 61, 0, 66, 64, 0, 136 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -1133,117 +1132,118 @@ static const yytype_int16 yydefgoto[] = { -1, 5, 6, 72, 37, 38, 39, 284, 10, 40, 214, 274, 41, 42, 160, 287, 381, 434, 493, 546, - 654, 672, 631, 633, 43, 147, 44, 148, 45, 149, - 8, 227, 291, 73, 127, 74, 118, 233, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 436, - 313, 439, 75, 248, 76, 179, 46, 155, 47, 158, - 48, 159, 49, 154, 50, 150, 51, 153, 52, 152, - 321, 12, 253, 278, 276, 199, 197, 189, 192, 194, - 186, 88, 476, 484, 486, 482, 596, 467, 462, 53, - 156, 372, 488, 282, 373, 489, 572, 374, 490, 574, - 375, 491, 576, 54, 141, 265, 183, 463, 200, 190, - 405, 174, 191, 89, 143, 90, 101, 205, 206, 521, - 241, 187, 102 + 657, 658, 676, 678, 633, 635, 43, 147, 44, 148, + 45, 149, 8, 227, 291, 73, 127, 74, 118, 233, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 436, 313, 439, 75, 248, 76, 179, 46, 155, + 47, 158, 48, 159, 49, 154, 50, 150, 51, 153, + 52, 152, 321, 12, 253, 278, 276, 199, 197, 189, + 192, 194, 186, 88, 476, 484, 486, 482, 597, 467, + 462, 53, 156, 372, 488, 282, 373, 489, 572, 374, + 490, 574, 375, 491, 576, 54, 141, 265, 183, 463, + 200, 190, 405, 174, 191, 89, 143, 90, 101, 205, + 206, 521, 241, 187, 102 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -423 +#define YYPACT_NINF -422 static const yytype_int16 yypact[] = { - 270, -423, -423, -423, -423, 11, 759, -423, 1275, -423, - 167, -423, 272, -423, -423, -423, -423, -423, 274, 274, - -76, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, -423, -423, -423, -423, - -423, -423, -423, -423, -423, -423, -423, -423, -423, -423, - -423, -423, -423, -423, -423, -2, -60, -54, 274, 14, - 35, -423, 40, 45, 81, 274, 92, 95, 274, 101, - -423, 137, -423, -423, -423, -423, -423, 274, -423, 158, - 232, 161, 168, 169, 274, 171, 178, 184, -423, -423, - -423, -423, -423, 191, 274, 196, -423, -423, -423, -423, - 197, -423, -423, -423, -423, -423, -423, -423, 201, -423, - -423, -423, 274, 274, 240, 209, 303, 365, 210, 232, - 274, 274, 212, 232, 119, 220, 232, 222, -423, 225, - 232, -423, -423, 226, 274, 240, 240, 229, 274, 274, - -423, 234, 274, 55, -423, -423, 274, 235, 237, 242, - 245, -423, 246, 249, 252, 262, 275, 274, 284, 285, - 290, 298, 62, -423, -423, 240, 274, 64, 124, 163, - 166, -423, 181, 198, 239, -423, 380, 273, 318, 319, - 274, 320, -423, 232, -423, 380, 321, -423, -423, 323, - -423, -423, 28, 240, 21, 240, 380, 325, -423, 327, - -423, -423, 112, -423, -423, 328, 274, -423, -423, 329, - -423, -423, -423, -423, -423, -423, -423, -423, -423, -423, - -423, -423, -423, -423, 274, -423, 240, -423, -423, -423, - -423, -423, -423, 295, -423, -423, -423, -423, -423, -423, - -423, 333, -423, 240, -423, 335, -423, 771, 182, -423, - -423, 336, -423, -423, -423, 76, -423, 240, 80, -423, - 240, 338, -423, -423, 341, 110, -423, -423, -423, -423, - 953, 1101, 1176, 254, 156, -423, 199, -423, 151, -423, - 330, 420, 125, -423, -423, 422, 555, 38, -423, 342, - 343, 54, -423, 345, 347, 349, 351, 352, 354, 356, - 357, -423, -423, -423, -423, -423, -423, -423, -423, -423, - -423, -423, -423, -423, -423, 240, -423, -423, 358, 274, - -423, 99, -423, 274, 361, -423, 274, 362, 240, -423, - 274, 274, -423, -423, -423, -423, -423, 274, -423, 363, - 364, 376, 378, 382, 384, 274, 385, 388, -423, -423, - 392, 393, 396, 399, 401, 274, 407, 409, 411, 414, - 416, -423, -423, -423, -423, -423, 274, 274, 274, 274, - -423, -423, -423, -423, -423, -423, 147, -423, -423, 232, - -423, -423, -423, -423, -423, -423, 240, 240, 240, 240, - 240, 240, 240, 240, 47, 274, 424, 429, 430, -423, - 240, 240, 240, 240, -423, 379, -423, 431, 432, 232, - -423, 274, 240, 232, 240, 433, 274, 274, 232, 274, - 240, 232, 240, 434, 274, 274, -423, -423, -423, -423, - -423, -423, -423, -423, 435, -423, 419, 240, -423, 421, - 240, -423, 4, 436, 437, 438, 51, 240, 440, 451, - 441, 380, 240, 240, 240, 240, 240, 240, 442, 380, - 380, 443, 444, 240, -423, 445, 43, 446, -423, 56, - 380, 448, 449, 450, 452, 52, 453, 232, 65, 380, - 455, 456, 74, -423, 457, 240, 458, 240, 465, 466, - 467, 468, 240, 471, -423, 240, -423, 240, -423, 240, - -423, -423, -423, -423, 57, 61, 240, 472, 473, 474, - 67, 84, 240, 240, 240, 240, -423, 475, 478, -423, - -423, -423, -423, -423, -423, -423, 479, -423, -423, -423, - -423, -423, -423, -423, -423, 482, -423, -423, 484, -423, - -423, -423, -423, -423, -423, -423, 250, 240, 240, 240, - 240, 240, -423, 485, -423, 486, 240, 240, -423, -423, - -423, -423, 487, 488, 240, 240, -423, -423, -423, -423, - -423, 213, 120, -423, 142, -423, 164, -423, 86, 490, - 491, 274, -423, 240, 331, 240, 240, 492, -423, -423, - 240, 240, -423, -423, 493, 494, 78, -423, -423, 274, - 497, -423, 274, 500, -423, 274, -423, -423, 274, 502, - 240, 240, 505, 240, -423, 240, 240, -423, 507, 240, - -423, -423, -423, -423, 511, -423, 513, -423, 514, 240, - 240, 82, 240, 87, 240, -423, -423, 240, 240, 516, - 517, 380, 63, 380, 66, 380, 240, 240, 89, -423, - 240, 93, -423, 240, 240, 240, 240, -423, 518, 519, - -423, 520, -423, 524, 240, 240, 274, 515, -423, 274, - 527, 240, 98, 240, 240, 240, -423, -423, -423, -423, - 529, 530, 240, 240, 240, 240, -423, 534, 96, 535, - -423, 240, -423, 240, -423, -423, 240, 240, 240, 240, - 240, 274, 536, 240, -423, 240, 240, 240, 240, 240, - 240, 240, 240, 240, 240, 537, 538, 240, 240, 240, - 240, 240, 240, 240, -423, -423, 539, 540, 543, 70, - 72, 545, 240, -423, -423, -423, -423, 548, -423, 552, - -423, 240, -423, -423, 240, -423 + 237, -422, -422, -422, -422, 20, 841, -422, 1285, -422, + 85, -422, 410, -422, -422, -422, -422, -422, 295, 295, + -65, 295, 295, 295, 295, 295, 295, 295, 295, 295, + 295, 295, 295, 295, 295, 295, -422, -422, -422, -422, + -422, -422, -422, -422, -422, -422, -422, -422, -422, -422, + -422, -422, -422, -422, -422, 2, -49, -31, 295, 34, + 96, -422, 118, 156, 164, 295, 166, 168, 295, 179, + -422, 188, -422, -422, -422, -422, -422, 295, -422, 190, + 201, 191, 193, 196, 295, 202, 211, 212, -422, -422, + -422, -422, -422, 216, 295, 217, -422, -422, -422, -422, + 219, -422, -422, -422, -422, -422, -422, -422, 220, -422, + -422, -422, 295, 295, 270, 222, 325, 330, 223, 201, + 295, 295, 225, 201, 128, 228, 201, 231, -422, 251, + 201, -422, -422, 253, 295, 270, 270, 255, 295, 295, + -422, 258, 295, 65, -422, -422, 295, 259, 263, 267, + 268, -422, 274, 275, 281, 282, 291, 295, 292, 293, + 294, 307, 198, -422, -422, 270, 295, 200, 203, 308, + 310, -422, 317, 318, 319, -422, 336, 320, 322, 324, + 295, 327, -422, 201, -422, 336, 329, -422, -422, 332, + -422, -422, 16, 270, 74, 270, 336, 335, -422, 337, + -422, -422, 112, -422, -422, 340, 295, -422, -422, 341, + -422, -422, -422, -422, -422, -422, -422, -422, -422, -422, + -422, -422, -422, -422, 295, -422, 270, -422, -422, -422, + -422, -422, -422, 434, -422, -422, -422, -422, -422, -422, + -422, 342, -422, 270, -422, 343, -422, 485, 77, -422, + -422, 344, -422, -422, -422, 76, -422, 270, 80, -422, + 270, 346, -422, -422, 323, 87, -422, -422, -422, -422, + 963, 1111, 1183, 199, 99, -422, 170, -422, 142, -422, + 264, 296, 289, -422, -422, 412, 768, 132, -422, 347, + 349, 54, -422, 331, 351, 353, 355, 356, 357, 374, + 377, -422, -422, -422, -422, -422, -422, -422, -422, -422, + -422, -422, -422, -422, -422, 270, -422, -422, 379, 295, + -422, 67, -422, 295, 380, -422, 295, 383, 270, -422, + 295, 295, -422, -422, -422, -422, -422, 295, -422, 384, + 385, 386, 388, 390, 392, 295, 394, 399, -422, -422, + 400, 402, 408, 419, 420, 295, 421, 422, 423, 428, + 429, -422, -422, -422, -422, -422, 295, 295, 295, 295, + -422, -422, -422, -422, -422, -422, 78, -422, -422, 201, + -422, -422, -422, -422, -422, -422, 270, 270, 270, 270, + 270, 270, 270, 270, 83, 295, 430, 431, 436, -422, + 270, 270, 270, 270, -422, 409, -422, 437, 438, 201, + -422, 295, 270, 201, 270, 439, 295, 295, 201, 295, + 270, 201, 270, 440, 295, 295, -422, -422, -422, -422, + -422, -422, -422, -422, 441, -422, 433, 270, -422, 442, + 270, -422, 5, 443, 449, 450, 51, 270, 453, 305, + 454, 336, 270, 270, 270, 270, 270, 270, 455, 336, + 336, 457, 465, 270, -422, 466, 28, 469, -422, 100, + 336, 470, 472, 473, 474, 31, 477, 201, 103, 336, + 478, 479, -25, -422, 481, 270, 482, 270, 487, 488, + 489, 490, 270, 491, -422, 270, -422, 270, -422, 270, + -422, -422, -422, -422, 60, 62, 270, 492, 484, 493, + 84, 105, 270, 270, 270, 270, -422, 494, 496, -422, + -422, -422, -422, -422, -422, -422, 501, -422, -422, -422, + -422, -422, -422, -422, -422, 504, -422, -422, 506, -422, + -422, -422, -422, -422, -422, -422, 152, 270, 270, 270, + 270, 270, -422, 507, -422, 508, 270, 270, -422, -422, + -422, -422, 509, 510, 270, 270, -422, -422, -422, -422, + -422, 345, 194, -422, 204, -422, 55, -422, 86, 513, + 514, 295, 295, -422, 270, 197, 270, 270, 515, -422, + -422, 270, 270, -422, -422, 516, 519, 53, -422, -422, + 295, 521, -422, 295, 522, -422, 295, -422, -422, 295, + 525, 270, 270, 526, 528, 270, -422, 270, 270, -422, + 530, 270, -422, -422, -422, -422, 532, -422, 534, -422, + 535, 270, 270, 90, 270, 109, 270, -422, -422, -422, + 270, 270, 536, 537, 336, 66, 336, 69, 336, 270, + 270, 89, -422, 270, 95, -422, 270, 270, 270, 270, + 270, -422, 538, 539, -422, 540, -422, 541, 270, 270, + 295, 545, -422, 295, 547, 270, 39, 270, 548, 270, + 270, 270, -422, -422, -422, -422, 549, 550, 270, 270, + 270, 270, -422, 555, 98, 556, -422, 270, -422, 270, + -422, 270, -422, -422, 270, 270, 270, 270, 270, 295, + 558, 270, -422, 270, 270, 270, 270, 270, 270, 270, + 270, 270, 270, -422, 270, 559, 562, 270, 270, 270, + 270, 270, 270, 270, -422, -422, 563, 565, 566, 71, + 73, 573, 270, -422, -422, -422, -422, 574, -422, 576, + -422, 270, -422, -422, 270, -422 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -423, -423, -423, 426, -423, -423, -423, -423, 258, -423, - -423, -423, -423, -423, -423, -423, -423, -423, -423, 100, - -423, -423, -423, -423, -423, -423, -423, -423, -423, -423, - 189, -423, -423, -9, -423, -423, -423, 462, -423, -423, - -423, -423, -423, -423, -423, -423, -423, -423, -423, -423, - -423, -423, -423, -423, -423, -423, -423, -423, -423, -423, - -423, -423, -423, -423, -423, -423, -423, -423, -275, -423, - -423, 263, -423, -423, -423, -314, -293, -224, -240, -200, - -285, -150, -423, -423, -423, -423, -423, -423, -423, -278, - -423, -423, -423, 105, 75, -423, -423, -423, -423, -423, - -423, -423, -423, -423, -423, -423, 512, -422, -423, -423, - 259, -423, 461, 10, -75, -423, -6, 481, -423, 3, - -176, -70, 727 + -422, -422, -422, 184, -422, -422, -422, -422, 115, -422, + -422, -422, -422, -422, -422, -422, -422, -422, -422, -193, + -422, -422, -422, -422, -422, -422, -422, -422, -422, -422, + -422, -422, 159, -422, -422, -9, -422, -422, -422, 205, + -422, -422, -422, -422, -422, -422, -422, -422, -422, -422, + -422, -422, -422, -422, -422, -422, -422, -422, -422, -422, + -422, -422, -422, -422, -422, -422, -422, -422, -422, -422, + -274, -422, -422, 15, -422, -422, -422, -244, -181, -166, + -283, -281, -290, -53, -422, -422, -422, -422, -422, -422, + -422, -277, -422, -422, -422, 21, -43, -422, -422, -422, + -422, -422, -422, -422, -422, -422, -422, -422, 405, -421, + -422, -422, 189, -422, 471, 10, -75, -422, -6, 418, + -422, 3, -182, -70, 737 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1253,98 +1253,99 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint16 yytable[] = { - 55, 78, 55, 362, 371, 485, 487, 163, 164, 251, - 133, 14, 91, 91, 94, 91, 91, 91, 91, 91, - 261, 91, 91, 91, 91, 91, 112, 91, 91, 93, - 113, 95, 96, 97, 98, 99, 114, 103, 104, 105, - 106, 107, 258, 109, 110, 173, 168, 170, 255, 172, - 163, 164, 91, 177, 163, 164, 181, 15, 16, 17, - 163, 164, 91, 255, 163, 164, 163, 164, 115, 163, - 164, 209, 255, 163, 164, 163, 164, 258, 125, 15, - 16, 17, 220, 15, 16, 17, 258, 255, 144, 15, - 16, 17, 15, 16, 17, 498, 15, 16, 17, 15, - 16, 17, 648, 472, 116, 258, 91, 162, 651, 687, - 538, 481, 259, 249, 144, 131, 132, 165, 379, 256, - 688, 27, 161, 471, 461, 117, 349, 448, 363, 380, - 119, 480, 249, 473, 523, 120, 204, 366, 193, 195, - 144, 397, 503, 531, 178, 384, 208, 525, 552, 289, - 398, 144, 554, 225, 660, 229, 534, 662, 560, 350, - 228, 736, 264, 738, 689, 539, 323, 331, 226, 622, - 326, 121, 466, 649, 204, 561, 608, 599, 652, 666, - 475, 367, 123, 669, 600, 124, 701, 465, 31, 690, - 399, 126, 351, 352, 27, 474, 257, 353, 260, 602, - 268, 332, 354, 642, 77, 644, 603, 339, 355, 368, - 369, 601, 510, 337, 469, 230, 370, 70, 144, 356, - 367, 605, 478, 357, 77, 366, 358, 128, 359, 290, - 360, 340, 318, 604, 87, 131, 132, 70, 433, 319, - 341, 342, 361, 163, 164, 343, 315, 338, 130, 324, - 344, 134, 327, 511, 231, 606, 345, 232, 135, 136, - 325, 138, 79, 328, 55, 55, 55, 346, 139, 367, - 80, 347, 235, 578, 140, 509, 31, 15, 16, 17, - 79, 142, 87, 517, 518, 385, 146, 151, 80, 236, - 348, 157, 579, 371, 526, 81, 82, 368, 369, 166, - 171, 580, 176, 535, 598, 83, 131, 132, 167, 435, - 180, 84, 182, 81, 82, 185, 188, 400, 394, 196, - 402, 623, 85, 83, 203, 210, 86, 211, 581, 84, - 237, 404, 212, 293, 294, 213, 215, 87, 79, 216, - 85, 582, 217, 468, 86, 336, 80, 295, 296, 297, - 298, 477, 218, 299, 578, 87, 1, 2, 3, 4, - 91, 91, 91, 91, 242, 219, 300, 78, 131, 132, - 169, 81, 82, 579, 221, 222, 429, 430, 431, 432, - 223, 83, 580, 238, 239, 240, 301, 84, 224, 437, - 440, 442, 443, 444, 445, 446, 447, 449, 85, 270, - 271, 272, 86, 454, 455, 456, 457, 533, 243, 581, - 244, 246, 252, 87, 254, 193, 262, 195, 263, 267, - 269, 364, 614, 193, 314, 195, 316, 320, 79, 329, - 79, 330, 36, 382, 383, 386, 80, 387, 80, 388, - 495, 389, 390, 497, 391, 499, 392, 393, 395, 504, - 505, 401, 403, 409, 410, 193, 195, 512, 513, 514, - 515, 81, 82, 81, 82, 659, 411, 661, 412, 663, - 458, 83, 413, 83, 414, 416, 273, 84, 417, 84, - 280, 281, 418, 419, 285, 286, 420, 100, 85, 421, - 85, 422, 86, 108, 86, 547, 111, 424, 549, 425, - 550, 426, 551, 87, 427, 87, 428, 553, 555, 556, - 494, 365, 496, 377, 451, 562, 563, 564, 565, 452, - 453, 459, 460, 470, 479, 492, 122, 500, 501, 502, - 506, 507, 508, 516, 519, 520, 522, 524, 129, 527, - 528, 529, 376, 530, 532, 137, 536, 537, 540, 541, - 583, 547, 585, 586, 587, 542, 543, 544, 545, 590, - 591, 548, 557, 79, 558, 559, 566, 594, 595, 567, - 568, 80, 609, 569, 570, 91, 588, 589, 592, 593, - 610, 611, 175, 617, 620, 621, 613, 625, 615, 616, - 627, 612, 630, 618, 619, 635, 81, 82, 639, 198, - 201, 641, 629, 643, 645, 683, 83, 657, 658, 676, - 677, 678, 84, 632, 634, 679, 636, 685, 637, 638, - 694, 695, 640, 85, 700, 703, 712, 86, 724, 725, - 733, 734, 646, 647, 735, 650, 740, 653, 87, 742, - 655, 656, 667, 743, 247, 670, 378, 571, 584, 664, - 665, 607, 202, 668, 450, 0, 671, 673, 674, 675, - 682, 245, 0, 684, 0, 0, 0, 680, 681, 0, - 0, 0, 0, 0, 686, 0, 691, 692, 693, 0, - 0, 0, 702, 0, 0, 696, 697, 698, 699, 0, - 0, 0, 0, 0, 704, 711, 705, 0, 0, 706, - 707, 708, 709, 710, 0, 0, 713, 0, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, 0, 0, - 726, 727, 728, 729, 730, 731, 732, 0, 7, 9, - 11, 13, 737, 739, 0, 741, 0, 0, 0, 0, - 0, 0, 0, 0, 744, 92, 92, 745, 92, 92, + 55, 78, 55, 251, 362, 371, 485, 487, 163, 164, + 133, 538, 91, 91, 261, 91, 91, 91, 91, 91, + 14, 91, 91, 91, 91, 91, 94, 91, 91, 93, + 112, 95, 96, 97, 98, 99, 255, 103, 104, 105, + 106, 107, 113, 109, 110, 173, 168, 170, 255, 172, + 693, 255, 91, 177, 163, 164, 181, 15, 16, 17, + 114, 694, 91, 163, 164, 163, 164, 539, 115, 163, + 164, 209, 163, 164, 163, 164, 163, 164, 125, 15, + 16, 17, 220, 15, 16, 17, 163, 164, 144, 15, + 16, 17, 15, 16, 17, 258, 27, 498, 15, 16, + 17, 15, 16, 17, 255, 695, 91, 162, 256, 397, + 651, 367, 606, 249, 144, 131, 132, 165, 398, 461, + 523, 258, 161, 531, 258, 116, 258, 318, 473, 466, + 654, 696, 249, 469, 319, 77, 204, 475, 193, 195, + 144, 478, 77, 503, 331, 624, 384, 607, 70, 289, + 350, 144, 552, 178, 554, 70, 337, 208, 664, 399, + 228, 666, 264, 746, 448, 748, 259, 323, 226, 510, + 433, 326, 511, 472, 204, 578, 560, 609, 339, 332, + 670, 481, 652, 351, 352, 27, 673, 117, 353, 709, + 36, 338, 525, 354, 579, 534, 257, 561, 260, 355, + 268, 655, 340, 580, 131, 132, 645, 79, 647, 119, + 356, 341, 342, 379, 357, 80, 343, 358, 144, 359, + 578, 344, 360, 349, 380, 363, 87, 345, 273, 290, + 581, 582, 280, 281, 361, 471, 285, 286, 346, 579, + 81, 82, 347, 480, 583, 465, 315, 120, 580, 324, + 83, 600, 327, 474, 87, 121, 84, 123, 601, 124, + 325, 603, 348, 328, 55, 55, 55, 85, 604, 509, + 126, 86, 79, 163, 164, 581, 582, 517, 518, 128, + 80, 130, 134, 87, 135, 385, 602, 136, 526, 616, + 225, 336, 229, 138, 371, 230, 605, 535, 15, 16, + 17, 366, 139, 140, 79, 81, 82, 142, 146, 435, + 151, 157, 80, 166, 171, 83, 176, 400, 394, 180, + 402, 84, 182, 625, 1, 2, 3, 4, 131, 132, + 167, 404, 85, 131, 132, 169, 86, 81, 82, 238, + 239, 240, 185, 468, 188, 367, 196, 83, 87, 203, + 210, 477, 31, 84, 211, 585, 364, 366, 212, 213, + 91, 91, 91, 91, 85, 215, 216, 78, 86, 270, + 271, 272, 217, 218, 368, 369, 429, 430, 431, 432, + 87, 370, 219, 221, 222, 223, 507, 247, 365, 437, + 440, 442, 443, 444, 445, 446, 447, 449, 224, 376, + 231, 367, 232, 454, 455, 456, 457, 533, 31, 235, + 236, 237, 242, 243, 330, 193, 244, 195, 79, 246, + 79, 252, 386, 193, 254, 195, 80, 262, 80, 263, + 368, 369, 267, 269, 314, 316, 320, 599, 329, 382, + 495, 383, 387, 497, 388, 499, 389, 390, 391, 504, + 505, 81, 82, 81, 82, 193, 195, 512, 513, 514, + 515, 83, 663, 83, 665, 392, 667, 84, 393, 84, + 395, 401, 293, 294, 403, 409, 410, 411, 85, 412, + 85, 413, 86, 414, 86, 416, 295, 296, 297, 298, + 417, 418, 299, 419, 87, 547, 87, 100, 549, 420, + 550, 458, 551, 108, 377, 300, 111, 553, 555, 556, + 421, 422, 424, 425, 426, 562, 563, 564, 565, 427, + 428, 451, 452, 293, 294, 494, 301, 453, 459, 460, + 470, 479, 492, 608, 496, 500, 122, 295, 296, 297, + 298, 501, 502, 299, 506, 202, 508, 516, 129, 519, + 584, 547, 586, 587, 588, 137, 300, 520, 522, 591, + 592, 524, 527, 571, 528, 529, 530, 595, 596, 532, + 536, 537, 610, 540, 541, 91, 558, 317, 542, 543, + 544, 545, 548, 557, 450, 559, 566, 615, 567, 617, + 618, 613, 175, 568, 620, 621, 569, 570, 245, 589, + 590, 593, 594, 631, 611, 612, 0, 619, 622, 198, + 201, 623, 627, 629, 634, 636, 632, 637, 639, 638, + 640, 641, 642, 644, 643, 646, 648, 0, 661, 662, + 682, 683, 684, 685, 649, 650, 689, 653, 691, 656, + 698, 702, 703, 659, 660, 671, 708, 711, 674, 721, + 0, 734, 668, 669, 735, 743, 672, 744, 745, 675, + 677, 679, 680, 681, 688, 750, 752, 690, 753, 0, + 0, 686, 687, 0, 0, 0, 0, 0, 692, 0, + 697, 0, 699, 700, 701, 0, 0, 0, 710, 0, + 0, 704, 705, 706, 707, 0, 0, 0, 0, 0, + 712, 0, 713, 720, 714, 0, 0, 715, 716, 717, + 718, 719, 0, 0, 722, 0, 723, 724, 725, 726, + 727, 728, 729, 730, 731, 732, 0, 733, 0, 0, + 736, 737, 738, 739, 740, 741, 742, 0, 7, 9, + 11, 13, 747, 749, 0, 751, 0, 0, 0, 0, + 0, 0, 0, 0, 754, 92, 92, 755, 92, 92, 92, 92, 92, 0, 92, 92, 92, 92, 92, 0, - 92, 92, 15, 16, 17, 18, 0, 0, 0, 0, - 0, 0, 0, 0, 19, 0, 20, 0, 0, 0, - 396, 0, 0, 0, 0, 92, 0, 21, 22, 0, - 23, 406, 407, 24, 25, 92, 26, 0, 408, 0, - 0, 0, 27, 28, 0, 0, 415, 29, 30, 293, - 294, 0, 0, 0, 0, 0, 423, 0, 0, 0, - 0, 145, 31, 295, 296, 297, 298, 32, 0, 299, - 0, 0, 33, 34, 0, 0, 0, 0, 0, 92, - 0, 35, 300, 0, 0, 0, 0, 145, 0, 0, - 0, 0, 0, 0, 0, 184, 406, 0, 0, 0, - 0, 0, 317, 0, 0, 0, 0, 184, 0, 207, - 0, 0, 0, 145, 0, 0, 0, 198, 201, 0, - 0, 0, 0, 0, 145, 198, 201, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 234, 0, - 0, 0, 0, 0, 0, 0, 0, 207, 0, 234, - 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 92, 92, 0, 0, 0, 0, 79, 0, 0, 0, + 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, + 396, 0, 0, 0, 0, 92, 0, 0, 0, 0, + 0, 406, 407, 0, 0, 92, 0, 0, 408, 81, + 82, 0, 0, 0, 0, 0, 415, 0, 0, 83, + 0, 0, 0, 0, 0, 84, 423, 0, 0, 0, + 0, 145, 0, 0, 0, 0, 85, 0, 0, 0, + 86, 0, 0, 0, 15, 16, 17, 18, 0, 92, + 0, 0, 87, 0, 0, 0, 19, 145, 20, 0, + 378, 0, 0, 0, 0, 184, 406, 0, 0, 21, + 22, 0, 23, 0, 0, 24, 25, 184, 26, 207, + 0, 0, 0, 145, 27, 28, 0, 198, 201, 29, + 30, 0, 0, 0, 145, 198, 201, 0, 0, 0, + 0, 0, 0, 0, 31, 0, 0, 0, 234, 32, + 0, 0, 0, 0, 33, 34, 0, 207, 0, 234, + 250, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266, 0, 0, 0, 0, 0, 0, 9, 9, 9, 13, 275, 277, 279, 13, 13, 283, 0, 13, 13, @@ -1356,10 +1357,10 @@ static const yytype_uint16 yytable[] = 0, 29, 30, 64, 0, 0, 0, 0, 0, 0, 65, 11, 0, 0, 66, 67, 31, 0, 68, 0, 69, 32, 0, 70, 0, 0, 33, 34, 0, 0, - 0, 0, 0, 0, 0, 35, 71, 0, 0, 0, - 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 71, 0, 0, + 0, 0, 0, 614, 0, 333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 624, 0, 0, 626, 0, 0, 628, 0, 0, 0, + 0, 626, 0, 0, 628, 0, 0, 630, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 92, 92, 92, 0, 0, 0, @@ -1370,121 +1371,122 @@ static const yytype_uint16 yytable[] = 0, 62, 0, 0, 27, 28, 63, 0, 0, 29, 30, 64, 0, 483, 464, 464, 0, 0, 65, 0, 0, 0, 66, 67, 31, 0, 68, 0, 69, 32, - 0, 70, 0, 0, 33, 34, 0, 0, 0, 15, - 16, 17, 18, 35, 71, 56, 57, 0, 0, 0, - 58, 19, 334, 20, 0, 59, 0, 0, 0, 0, - 60, 0, 0, 0, 21, 22, 61, 23, 0, 0, - 24, 25, 0, 26, 0, 0, 62, 0, 0, 27, - 28, 63, 0, 0, 29, 30, 64, 0, 0, 0, - 0, 0, 0, 65, 0, 0, 0, 66, 67, 31, - 0, 68, 0, 69, 32, 0, 70, 0, 0, 33, - 34, 0, 0, 0, 0, 0, 0, 0, 35, 71, - 0, 0, 0, 0, 0, 0, 0, 335, 0, 283, + 0, 70, 0, 0, 33, 34, 15, 16, 17, 18, + 0, 0, 56, 57, 35, 71, 0, 58, 19, 0, + 20, 0, 59, 334, 0, 0, 0, 60, 0, 0, + 0, 21, 22, 61, 23, 0, 0, 24, 25, 0, + 26, 0, 0, 62, 0, 0, 27, 28, 63, 0, + 0, 29, 30, 64, 0, 0, 0, 0, 0, 0, + 65, 0, 0, 0, 66, 67, 31, 0, 68, 0, + 69, 32, 0, 70, 0, 0, 33, 34, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 71, 0, 0, + 0, 0, 0, 0, 0, 335, 0, 0, 0, 283, 573, 575, 577, 0, 0, 0, 0, 0, 15, 16, 17, 18, 0, 0, 56, 57, 0, 0, 0, 58, - 19, 0, 20, 0, 59, 0, 0, 597, 0, 60, + 19, 0, 20, 0, 59, 0, 0, 598, 0, 60, 0, 0, 0, 21, 22, 61, 23, 0, 92, 24, 25, 0, 26, 0, 0, 62, 0, 0, 27, 28, 63, 0, 0, 29, 30, 64, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 66, 67, 31, 0, 68, 0, 69, 32, 0, 70, 0, 0, 33, 34, - 0, 0, 464, 0, 464, 0, 0, 35, 71 + 0, 0, 0, 0, 464, 0, 464, 0, 35, 71 }; static const yytype_int16 yycheck[] = { - 6, 10, 8, 278, 282, 427, 428, 3, 4, 185, - 80, 0, 18, 19, 90, 21, 22, 23, 24, 25, - 196, 27, 28, 29, 30, 31, 28, 33, 34, 19, - 90, 21, 22, 23, 24, 25, 90, 27, 28, 29, - 30, 31, 21, 33, 34, 120, 116, 117, 20, 119, - 3, 4, 58, 123, 3, 4, 126, 3, 4, 5, - 3, 4, 68, 20, 3, 4, 3, 4, 58, 3, - 4, 146, 20, 3, 4, 3, 4, 21, 68, 3, - 4, 5, 157, 3, 4, 5, 21, 20, 94, 3, - 4, 5, 3, 4, 5, 91, 3, 4, 5, 3, - 4, 5, 20, 417, 90, 21, 112, 113, 21, 11, - 36, 425, 91, 183, 120, 3, 4, 114, 80, 91, - 22, 43, 112, 416, 409, 90, 276, 80, 278, 91, - 90, 424, 202, 418, 91, 90, 142, 12, 135, 136, - 146, 42, 91, 91, 25, 91, 91, 91, 91, 224, - 51, 157, 91, 91, 91, 91, 91, 91, 91, 8, - 166, 91, 50, 91, 66, 91, 90, 57, 165, 91, - 90, 90, 412, 91, 180, 91, 90, 57, 91, 90, - 420, 56, 90, 90, 64, 90, 90, 411, 63, 91, - 91, 90, 41, 42, 43, 419, 193, 46, 195, 57, - 206, 91, 51, 625, 57, 627, 64, 8, 57, 84, - 85, 91, 452, 57, 414, 91, 91, 70, 224, 68, - 56, 57, 422, 72, 57, 12, 75, 90, 77, 226, - 79, 32, 50, 91, 83, 3, 4, 70, 91, 57, - 41, 42, 91, 3, 4, 46, 243, 91, 90, 255, - 51, 90, 258, 453, 91, 91, 57, 91, 90, 90, - 257, 90, 8, 260, 270, 271, 272, 68, 90, 56, - 16, 72, 91, 23, 90, 451, 63, 3, 4, 5, - 8, 90, 83, 459, 460, 291, 90, 90, 16, 91, - 91, 90, 42, 571, 470, 41, 42, 84, 85, 90, - 90, 51, 90, 479, 91, 51, 3, 4, 5, 379, - 90, 57, 90, 41, 42, 90, 90, 323, 315, 90, - 326, 596, 68, 51, 90, 90, 72, 90, 78, 57, - 91, 328, 90, 38, 39, 90, 90, 83, 8, 90, - 68, 91, 90, 413, 72, 91, 16, 52, 53, 54, - 55, 421, 90, 58, 23, 83, 86, 87, 88, 89, - 366, 367, 368, 369, 91, 90, 71, 376, 3, 4, - 5, 41, 42, 42, 90, 90, 366, 367, 368, 369, - 90, 51, 51, 3, 4, 5, 91, 57, 90, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 68, 210, - 211, 212, 72, 400, 401, 402, 403, 477, 90, 78, - 91, 91, 91, 83, 91, 412, 91, 414, 91, 91, - 91, 91, 91, 420, 91, 422, 91, 91, 8, 91, - 8, 90, 6, 91, 91, 90, 16, 90, 16, 90, - 437, 90, 90, 440, 90, 442, 90, 90, 90, 446, - 447, 90, 90, 90, 90, 452, 453, 454, 455, 456, - 457, 41, 42, 41, 42, 641, 90, 643, 90, 645, - 91, 51, 90, 51, 90, 90, 213, 57, 90, 57, - 217, 218, 90, 90, 221, 222, 90, 26, 68, 90, - 68, 90, 72, 32, 72, 492, 35, 90, 495, 90, - 497, 90, 499, 83, 90, 83, 90, 504, 505, 506, - 91, 91, 91, 91, 90, 512, 513, 514, 515, 90, - 90, 90, 90, 90, 90, 90, 65, 91, 91, 91, - 90, 80, 91, 91, 91, 91, 91, 91, 77, 91, - 91, 91, 284, 91, 91, 84, 91, 91, 91, 91, - 547, 548, 549, 550, 551, 90, 90, 90, 90, 556, - 557, 90, 90, 8, 91, 91, 91, 564, 565, 91, - 91, 16, 578, 91, 90, 581, 91, 91, 91, 91, - 90, 90, 121, 91, 91, 91, 583, 90, 585, 586, - 90, 581, 90, 590, 591, 90, 41, 42, 91, 138, - 139, 90, 608, 90, 90, 90, 51, 91, 91, 91, - 91, 91, 57, 610, 611, 91, 613, 90, 615, 616, - 91, 91, 619, 68, 90, 90, 90, 72, 91, 91, - 91, 91, 629, 630, 91, 632, 91, 634, 83, 91, - 637, 638, 648, 91, 182, 651, 91, 542, 548, 646, - 647, 576, 140, 650, 395, -1, 653, 654, 655, 656, - 666, 180, -1, 669, -1, -1, -1, 664, 665, -1, - -1, -1, -1, -1, 671, -1, 673, 674, 675, -1, - -1, -1, 688, -1, -1, 682, 683, 684, 685, -1, - -1, -1, -1, -1, 691, 701, 693, -1, -1, 696, - 697, 698, 699, 700, -1, -1, 703, -1, 705, 706, - 707, 708, 709, 710, 711, 712, 713, 714, -1, -1, - 717, 718, 719, 720, 721, 722, 723, -1, 1, 2, - 3, 4, 729, 730, -1, 732, -1, -1, -1, -1, - -1, -1, -1, -1, 741, 18, 19, 744, 21, 22, + 6, 10, 8, 185, 278, 282, 427, 428, 3, 4, + 80, 36, 18, 19, 196, 21, 22, 23, 24, 25, + 0, 27, 28, 29, 30, 31, 91, 33, 34, 19, + 28, 21, 22, 23, 24, 25, 20, 27, 28, 29, + 30, 31, 91, 33, 34, 120, 116, 117, 20, 119, + 11, 20, 58, 123, 3, 4, 126, 3, 4, 5, + 91, 22, 68, 3, 4, 3, 4, 92, 58, 3, + 4, 146, 3, 4, 3, 4, 3, 4, 68, 3, + 4, 5, 157, 3, 4, 5, 3, 4, 94, 3, + 4, 5, 3, 4, 5, 21, 43, 92, 3, 4, + 5, 3, 4, 5, 20, 66, 112, 113, 92, 42, + 20, 56, 57, 183, 120, 3, 4, 114, 51, 409, + 92, 21, 112, 92, 21, 91, 21, 50, 418, 412, + 21, 92, 202, 414, 57, 57, 142, 420, 135, 136, + 146, 422, 57, 92, 57, 92, 92, 92, 70, 224, + 8, 157, 92, 25, 92, 70, 57, 92, 92, 92, + 166, 92, 50, 92, 81, 92, 92, 91, 165, 452, + 92, 91, 453, 417, 180, 23, 92, 91, 8, 92, + 91, 425, 92, 41, 42, 43, 91, 91, 46, 91, + 6, 92, 92, 51, 42, 92, 193, 92, 195, 57, + 206, 92, 32, 51, 3, 4, 627, 8, 629, 91, + 68, 41, 42, 81, 72, 16, 46, 75, 224, 77, + 23, 51, 80, 276, 92, 278, 84, 57, 213, 226, + 78, 79, 217, 218, 92, 416, 221, 222, 68, 42, + 41, 42, 72, 424, 92, 411, 243, 91, 51, 255, + 51, 57, 258, 419, 84, 91, 57, 91, 64, 91, + 257, 57, 92, 260, 270, 271, 272, 68, 64, 451, + 91, 72, 8, 3, 4, 78, 79, 459, 460, 91, + 16, 91, 91, 84, 91, 291, 92, 91, 470, 92, + 92, 92, 92, 91, 571, 92, 92, 479, 3, 4, + 5, 12, 91, 91, 8, 41, 42, 91, 91, 379, + 91, 91, 16, 91, 91, 51, 91, 323, 315, 91, + 326, 57, 91, 597, 87, 88, 89, 90, 3, 4, + 5, 328, 68, 3, 4, 5, 72, 41, 42, 3, + 4, 5, 91, 413, 91, 56, 91, 51, 84, 91, + 91, 421, 63, 57, 91, 548, 92, 12, 91, 91, + 366, 367, 368, 369, 68, 91, 91, 376, 72, 210, + 211, 212, 91, 91, 85, 86, 366, 367, 368, 369, + 84, 92, 91, 91, 91, 91, 81, 182, 92, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 91, 284, + 92, 56, 92, 400, 401, 402, 403, 477, 63, 92, + 92, 92, 92, 91, 91, 412, 92, 414, 8, 92, + 8, 92, 91, 420, 92, 422, 16, 92, 16, 92, + 85, 86, 92, 92, 92, 92, 92, 92, 92, 92, + 437, 92, 91, 440, 91, 442, 91, 91, 91, 446, + 447, 41, 42, 41, 42, 452, 453, 454, 455, 456, + 457, 51, 644, 51, 646, 91, 648, 57, 91, 57, + 91, 91, 38, 39, 91, 91, 91, 91, 68, 91, + 68, 91, 72, 91, 72, 91, 52, 53, 54, 55, + 91, 91, 58, 91, 84, 492, 84, 26, 495, 91, + 497, 92, 499, 32, 92, 71, 35, 504, 505, 506, + 91, 91, 91, 91, 91, 512, 513, 514, 515, 91, + 91, 91, 91, 38, 39, 92, 92, 91, 91, 91, + 91, 91, 91, 576, 92, 92, 65, 52, 53, 54, + 55, 92, 92, 58, 91, 140, 92, 92, 77, 92, + 547, 548, 549, 550, 551, 84, 71, 92, 92, 556, + 557, 92, 92, 542, 92, 92, 92, 564, 565, 92, + 92, 92, 578, 92, 92, 581, 92, 92, 91, 91, + 91, 91, 91, 91, 395, 92, 92, 584, 92, 586, + 587, 581, 121, 92, 591, 592, 92, 91, 180, 92, + 92, 92, 92, 609, 91, 91, -1, 92, 92, 138, + 139, 92, 91, 91, 611, 612, 91, 91, 615, 91, + 617, 618, 92, 91, 621, 91, 91, -1, 92, 92, + 92, 92, 92, 92, 631, 632, 91, 634, 91, 636, + 92, 92, 92, 640, 641, 651, 91, 91, 654, 91, + -1, 92, 649, 650, 92, 92, 653, 92, 92, 656, + 657, 658, 659, 660, 670, 92, 92, 673, 92, -1, + -1, 668, 669, -1, -1, -1, -1, -1, 675, -1, + 677, -1, 679, 680, 681, -1, -1, -1, 694, -1, + -1, 688, 689, 690, 691, -1, -1, -1, -1, -1, + 697, -1, 699, 709, 701, -1, -1, 704, 705, 706, + 707, 708, -1, -1, 711, -1, 713, 714, 715, 716, + 717, 718, 719, 720, 721, 722, -1, 724, -1, -1, + 727, 728, 729, 730, 731, 732, 733, -1, 1, 2, + 3, 4, 739, 740, -1, 742, -1, -1, -1, -1, + -1, -1, -1, -1, 751, 18, 19, 754, 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, 31, -1, - 33, 34, 3, 4, 5, 6, -1, -1, -1, -1, - -1, -1, -1, -1, 15, -1, 17, -1, -1, -1, - 319, -1, -1, -1, -1, 58, -1, 28, 29, -1, - 31, 330, 331, 34, 35, 68, 37, -1, 337, -1, - -1, -1, 43, 44, -1, -1, 345, 48, 49, 38, - 39, -1, -1, -1, -1, -1, 355, -1, -1, -1, - -1, 94, 63, 52, 53, 54, 55, 68, -1, 58, - -1, -1, 73, 74, -1, -1, -1, -1, -1, 112, - -1, 82, 71, -1, -1, -1, -1, 120, -1, -1, - -1, -1, -1, -1, -1, 128, 395, -1, -1, -1, - -1, -1, 91, -1, -1, -1, -1, 140, -1, 142, - -1, -1, -1, 146, -1, -1, -1, 416, 417, -1, - -1, -1, -1, -1, 157, 424, 425, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 171, -1, - -1, -1, -1, -1, -1, -1, -1, 180, -1, 182, - 183, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 33, 34, -1, -1, -1, -1, 8, -1, -1, -1, + -1, -1, -1, -1, 16, -1, -1, -1, -1, -1, + 319, -1, -1, -1, -1, 58, -1, -1, -1, -1, + -1, 330, 331, -1, -1, 68, -1, -1, 337, 41, + 42, -1, -1, -1, -1, -1, 345, -1, -1, 51, + -1, -1, -1, -1, -1, 57, 355, -1, -1, -1, + -1, 94, -1, -1, -1, -1, 68, -1, -1, -1, + 72, -1, -1, -1, 3, 4, 5, 6, -1, 112, + -1, -1, 84, -1, -1, -1, 15, 120, 17, -1, + 92, -1, -1, -1, -1, 128, 395, -1, -1, 28, + 29, -1, 31, -1, -1, 34, 35, 140, 37, 142, + -1, -1, -1, 146, 43, 44, -1, 416, 417, 48, + 49, -1, -1, -1, 157, 424, 425, -1, -1, -1, + -1, -1, -1, -1, 63, -1, -1, -1, 171, 68, + -1, -1, -1, -1, 73, 74, -1, 180, -1, 182, + 183, -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 203, -1, -1, -1, -1, -1, -1, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, -1, 221, 222, @@ -1496,10 +1498,10 @@ static const yytype_int16 yycheck[] = -1, 48, 49, 50, -1, -1, -1, -1, -1, -1, 57, 284, -1, -1, 61, 62, 63, -1, 65, -1, 67, 68, -1, 70, -1, -1, 73, 74, -1, -1, - -1, -1, -1, -1, -1, 82, 83, -1, -1, -1, - -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 83, 84, -1, -1, + -1, -1, -1, 582, -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 599, -1, -1, 602, -1, -1, 605, -1, -1, -1, + -1, 600, -1, -1, 603, -1, -1, 606, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 366, 367, 368, 369, -1, -1, -1, @@ -1510,16 +1512,16 @@ static const yytype_int16 yycheck[] = -1, 40, -1, -1, 43, 44, 45, -1, -1, 48, 49, 50, -1, 426, 427, 428, -1, -1, 57, -1, -1, -1, 61, 62, 63, -1, 65, -1, 67, 68, - -1, 70, -1, -1, 73, 74, -1, -1, -1, 3, - 4, 5, 6, 82, 83, 9, 10, -1, -1, -1, - 14, 15, 91, 17, -1, 19, -1, -1, -1, -1, - 24, -1, -1, -1, 28, 29, 30, 31, -1, -1, - 34, 35, -1, 37, -1, -1, 40, -1, -1, 43, - 44, 45, -1, -1, 48, 49, 50, -1, -1, -1, - -1, -1, -1, 57, -1, -1, -1, 61, 62, 63, - -1, 65, -1, 67, 68, -1, 70, -1, -1, 73, - 74, -1, -1, -1, -1, -1, -1, -1, 82, 83, - -1, -1, -1, -1, -1, -1, -1, 91, -1, 542, + -1, 70, -1, -1, 73, 74, 3, 4, 5, 6, + -1, -1, 9, 10, 83, 84, -1, 14, 15, -1, + 17, -1, 19, 92, -1, -1, -1, 24, -1, -1, + -1, 28, 29, 30, 31, -1, -1, 34, 35, -1, + 37, -1, -1, 40, -1, -1, 43, 44, 45, -1, + -1, 48, 49, 50, -1, -1, -1, -1, -1, -1, + 57, -1, -1, -1, 61, 62, 63, -1, 65, -1, + 67, 68, -1, 70, -1, -1, 73, 74, -1, -1, + -1, -1, -1, -1, -1, -1, 83, 84, -1, -1, + -1, -1, -1, -1, -1, 92, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, -1, 3, 4, 5, 6, -1, -1, 9, 10, -1, -1, -1, 14, 15, -1, 17, -1, 19, -1, -1, 570, -1, 24, @@ -1528,88 +1530,89 @@ static const yytype_int16 yycheck[] = 45, -1, -1, 48, 49, 50, -1, -1, -1, -1, -1, -1, 57, -1, -1, -1, 61, 62, 63, -1, 65, -1, 67, 68, -1, 70, -1, -1, 73, 74, - -1, -1, 625, -1, 627, -1, -1, 82, 83 + -1, -1, -1, -1, 627, -1, 629, -1, 83, 84 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 86, 87, 88, 89, 93, 94, 214, 122, 214, - 100, 214, 163, 214, 0, 3, 4, 5, 6, 15, + 0, 87, 88, 89, 90, 94, 95, 217, 125, 217, + 101, 217, 166, 217, 0, 3, 4, 5, 6, 15, 17, 28, 29, 31, 34, 35, 37, 43, 44, 48, - 49, 63, 68, 73, 74, 82, 95, 96, 97, 98, - 101, 104, 105, 116, 118, 120, 148, 150, 152, 154, - 156, 158, 160, 181, 195, 208, 9, 10, 14, 19, + 49, 63, 68, 73, 74, 83, 96, 97, 98, 99, + 102, 105, 106, 119, 121, 123, 151, 153, 155, 157, + 159, 161, 163, 184, 198, 211, 9, 10, 14, 19, 24, 30, 40, 45, 50, 57, 61, 62, 65, 67, - 70, 83, 95, 125, 127, 144, 146, 57, 125, 8, - 16, 41, 42, 51, 57, 68, 72, 83, 173, 205, - 207, 208, 214, 205, 90, 205, 205, 205, 205, 205, - 204, 208, 214, 205, 205, 205, 205, 205, 204, 205, - 205, 204, 28, 90, 90, 205, 90, 90, 128, 90, - 90, 90, 204, 90, 90, 205, 90, 126, 90, 204, - 90, 3, 4, 213, 90, 90, 90, 204, 90, 90, - 90, 196, 90, 206, 208, 214, 90, 117, 119, 121, - 157, 90, 161, 159, 155, 149, 182, 90, 151, 153, - 106, 205, 208, 3, 4, 211, 90, 5, 213, 5, - 213, 90, 213, 206, 203, 204, 90, 213, 25, 147, - 90, 213, 90, 198, 214, 90, 172, 213, 90, 169, - 201, 204, 170, 211, 171, 211, 90, 168, 204, 167, - 200, 204, 198, 90, 208, 209, 210, 214, 91, 206, - 90, 90, 90, 90, 102, 90, 90, 90, 90, 90, - 206, 90, 90, 90, 90, 91, 211, 123, 208, 91, - 91, 91, 91, 129, 214, 91, 91, 91, 3, 4, - 5, 212, 91, 90, 91, 209, 91, 129, 145, 213, - 214, 212, 91, 164, 91, 20, 91, 211, 21, 91, - 211, 212, 91, 91, 50, 197, 214, 91, 208, 91, - 122, 122, 122, 163, 103, 214, 166, 214, 165, 214, - 163, 163, 185, 214, 99, 163, 163, 107, 214, 206, - 211, 124, 214, 38, 39, 52, 53, 54, 55, 58, - 71, 91, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 142, 91, 211, 91, 91, 50, 57, - 91, 162, 214, 90, 208, 211, 90, 208, 211, 91, - 90, 57, 91, 91, 91, 91, 91, 57, 91, 8, - 32, 41, 42, 46, 51, 57, 68, 72, 91, 173, + 70, 84, 96, 128, 130, 147, 149, 57, 128, 8, + 16, 41, 42, 51, 57, 68, 72, 84, 176, 208, + 210, 211, 217, 208, 91, 208, 208, 208, 208, 208, + 207, 211, 217, 208, 208, 208, 208, 208, 207, 208, + 208, 207, 28, 91, 91, 208, 91, 91, 131, 91, + 91, 91, 207, 91, 91, 208, 91, 129, 91, 207, + 91, 3, 4, 216, 91, 91, 91, 207, 91, 91, + 91, 199, 91, 209, 211, 217, 91, 120, 122, 124, + 160, 91, 164, 162, 158, 152, 185, 91, 154, 156, + 107, 208, 211, 3, 4, 214, 91, 5, 216, 5, + 216, 91, 216, 209, 206, 207, 91, 216, 25, 150, + 91, 216, 91, 201, 217, 91, 175, 216, 91, 172, + 204, 207, 173, 214, 174, 214, 91, 171, 207, 170, + 203, 207, 201, 91, 211, 212, 213, 217, 92, 209, + 91, 91, 91, 91, 103, 91, 91, 91, 91, 91, + 209, 91, 91, 91, 91, 92, 214, 126, 211, 92, + 92, 92, 92, 132, 217, 92, 92, 92, 3, 4, + 5, 215, 92, 91, 92, 212, 92, 132, 148, 216, + 217, 215, 92, 167, 92, 20, 92, 214, 21, 92, + 214, 215, 92, 92, 50, 200, 217, 92, 211, 92, + 125, 125, 125, 166, 104, 217, 169, 217, 168, 217, + 166, 166, 188, 217, 100, 166, 166, 108, 217, 209, + 214, 127, 217, 38, 39, 52, 53, 54, 55, 58, + 71, 92, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 145, 92, 214, 92, 92, 50, 57, + 92, 165, 217, 91, 211, 214, 91, 211, 214, 92, + 91, 57, 92, 92, 92, 92, 92, 57, 92, 8, + 32, 41, 42, 46, 51, 57, 68, 72, 92, 176, 8, 41, 42, 46, 51, 57, 68, 72, 75, 77, - 79, 91, 160, 173, 91, 91, 12, 56, 84, 85, - 91, 181, 183, 186, 189, 192, 100, 91, 91, 80, - 91, 108, 91, 91, 91, 208, 90, 90, 90, 90, - 90, 90, 90, 90, 211, 90, 204, 42, 51, 91, - 208, 90, 208, 90, 211, 202, 204, 204, 204, 90, - 90, 90, 90, 90, 90, 204, 90, 90, 90, 90, - 90, 90, 90, 204, 90, 90, 90, 90, 90, 205, - 205, 205, 205, 91, 109, 213, 141, 211, 214, 143, - 211, 214, 211, 211, 211, 211, 211, 211, 80, 211, - 202, 90, 90, 90, 211, 211, 211, 211, 91, 90, - 90, 172, 180, 199, 214, 169, 170, 179, 213, 171, - 90, 168, 167, 172, 169, 170, 174, 213, 171, 90, - 168, 167, 177, 214, 175, 199, 176, 199, 184, 187, - 190, 193, 90, 110, 91, 211, 91, 211, 91, 211, - 91, 91, 91, 91, 211, 211, 90, 80, 91, 212, - 170, 171, 211, 211, 211, 211, 91, 212, 212, 91, - 91, 211, 91, 91, 91, 91, 212, 91, 91, 91, - 91, 91, 91, 213, 91, 212, 91, 91, 36, 91, - 91, 91, 90, 90, 90, 90, 111, 211, 90, 211, - 211, 211, 91, 211, 91, 211, 211, 90, 91, 91, - 91, 91, 211, 211, 211, 211, 91, 91, 91, 91, - 90, 185, 188, 214, 191, 214, 194, 214, 23, 42, - 51, 78, 91, 211, 111, 211, 211, 211, 91, 91, - 211, 211, 91, 91, 211, 211, 178, 214, 91, 57, - 64, 91, 57, 64, 91, 57, 91, 186, 90, 208, - 90, 90, 205, 211, 91, 211, 211, 91, 211, 211, - 91, 91, 91, 160, 204, 90, 204, 90, 204, 208, - 90, 114, 211, 115, 211, 90, 211, 211, 211, 91, - 211, 90, 199, 90, 199, 90, 211, 211, 20, 91, - 211, 21, 91, 211, 112, 211, 211, 91, 91, 212, - 91, 212, 91, 212, 211, 211, 90, 208, 211, 90, - 208, 211, 113, 211, 211, 211, 91, 91, 91, 91, - 211, 211, 208, 90, 208, 90, 211, 11, 22, 66, - 91, 211, 211, 211, 91, 91, 211, 211, 211, 211, - 90, 90, 208, 90, 211, 211, 211, 211, 211, 211, - 211, 208, 90, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 91, 91, 211, 211, 211, 211, - 211, 211, 211, 91, 91, 91, 91, 211, 91, 211, - 91, 211, 91, 91, 211, 211 + 80, 92, 163, 176, 92, 92, 12, 56, 85, 86, + 92, 184, 186, 189, 192, 195, 101, 92, 92, 81, + 92, 109, 92, 92, 92, 211, 91, 91, 91, 91, + 91, 91, 91, 91, 214, 91, 207, 42, 51, 92, + 211, 91, 211, 91, 214, 205, 207, 207, 207, 91, + 91, 91, 91, 91, 91, 207, 91, 91, 91, 91, + 91, 91, 91, 207, 91, 91, 91, 91, 91, 208, + 208, 208, 208, 92, 110, 216, 144, 214, 217, 146, + 214, 217, 214, 214, 214, 214, 214, 214, 81, 214, + 205, 91, 91, 91, 214, 214, 214, 214, 92, 91, + 91, 175, 183, 202, 217, 172, 173, 182, 216, 174, + 91, 171, 170, 175, 172, 173, 177, 216, 174, 91, + 171, 170, 180, 217, 178, 202, 179, 202, 187, 190, + 193, 196, 91, 111, 92, 214, 92, 214, 92, 214, + 92, 92, 92, 92, 214, 214, 91, 81, 92, 215, + 173, 174, 214, 214, 214, 214, 92, 215, 215, 92, + 92, 214, 92, 92, 92, 92, 215, 92, 92, 92, + 92, 92, 92, 216, 92, 215, 92, 92, 36, 92, + 92, 92, 91, 91, 91, 91, 112, 214, 91, 214, + 214, 214, 92, 214, 92, 214, 214, 91, 92, 92, + 92, 92, 214, 214, 214, 214, 92, 92, 92, 92, + 91, 188, 191, 217, 194, 217, 197, 217, 23, 42, + 51, 78, 79, 92, 214, 112, 214, 214, 214, 92, + 92, 214, 214, 92, 92, 214, 214, 181, 217, 92, + 57, 64, 92, 57, 64, 92, 57, 92, 189, 91, + 211, 91, 91, 208, 207, 214, 92, 214, 214, 92, + 214, 214, 92, 92, 92, 163, 207, 91, 207, 91, + 207, 211, 91, 117, 214, 118, 214, 91, 91, 214, + 214, 214, 92, 214, 91, 202, 91, 202, 91, 214, + 214, 20, 92, 214, 21, 92, 214, 113, 114, 214, + 214, 92, 92, 215, 92, 215, 92, 215, 214, 214, + 91, 211, 214, 91, 211, 214, 115, 214, 116, 214, + 214, 214, 92, 92, 92, 92, 214, 214, 211, 91, + 211, 91, 214, 11, 22, 66, 92, 214, 92, 214, + 214, 214, 92, 92, 214, 214, 214, 214, 91, 91, + 211, 91, 214, 214, 214, 214, 214, 214, 214, 214, + 211, 91, 214, 214, 214, 214, 214, 214, 214, 214, + 214, 214, 214, 214, 92, 92, 214, 214, 214, 214, + 214, 214, 214, 92, 92, 92, 92, 214, 92, 214, + 92, 214, 92, 92, 214, 214 }; #define yyerrok (yyerrstatus = 0) @@ -1624,18 +1627,9 @@ static const yytype_uint8 yystos[] = /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. However, - YYFAIL appears to be in use. Nevertheless, it is formally deprecated - in Bison 2.4.2's NEWS entry, where a plan to phase it out is - discussed. */ + Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab -#if defined YYFAIL - /* This is here to suppress warnings from the GCC cpp's - -Wunused-macros. Normally we don't worry about that warning, but - some users do, and we want to make it easy for users to remove - YYFAIL uses, which will produce warnings from Bison 2.5. */ -#endif #define YYRECOVERING() (!!yyerrstatus) @@ -1803,20 +1797,17 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) #else static void -yy_stack_print (yybottom, yytop) - yytype_int16 *yybottom; - yytype_int16 *yytop; +yy_stack_print (bottom, top) + yytype_int16 *bottom; + yytype_int16 *top; #endif { YYFPRINTF (stderr, "Stack now"); - for (; yybottom <= yytop; yybottom++) - { - int yybot = *yybottom; - YYFPRINTF (stderr, " %d", yybot); - } + for (; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); YYFPRINTF (stderr, "\n"); } @@ -1850,11 +1841,11 @@ yy_reduce_print (yyvsp, yyrule) /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { - YYFPRINTF (stderr, " $%d = ", yyi + 1); + fprintf (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) ); - YYFPRINTF (stderr, "\n"); + fprintf (stderr, "\n"); } } @@ -2134,8 +2125,10 @@ yydestruct (yymsg, yytype, yyvaluep) break; } } + /* Prevent warnings from -Wmissing-prototypes. */ + #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); @@ -2151,10 +2144,11 @@ int yyparse (); #endif /* ! YYPARSE_PARAM */ -/* The lookahead symbol. */ + +/* The look-ahead symbol. */ int yychar; -/* The semantic value of the lookahead symbol. */ +/* The semantic value of the look-ahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ @@ -2162,9 +2156,9 @@ int yynerrs; -/*-------------------------. -| yyparse or yypush_parse. | -`-------------------------*/ +/*----------. +| yyparse. | +`----------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ @@ -2188,39 +2182,14 @@ yyparse () #endif #endif { - - - int yystate; - /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; - - /* The stacks and their tools: - `yyss': related to states. - `yyvs': related to semantic values. - - Refer to the stacks thru separate pointers, to allow yyoverflow - to reallocate them elsewhere. */ - - /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; - - /* The semantic value stack. */ - YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; - - YYSIZE_T yystacksize; - + + int yystate; int yyn; int yyresult; - /* Lookahead token as an internal (translated) token number. */ - int yytoken; - /* The variables used to return semantic value and location from the - action routines. */ - YYSTYPE yyval; - + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; @@ -2228,28 +2197,51 @@ yyparse () YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif + /* Three stacks and their tools: + `yyss': related to states, + `yyvs': related to semantic values, + `yyls': related to locations. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss = yyssa; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp; + + + #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + YYSIZE_T yystacksize = YYINITDEPTH; + + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + + /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; - yytoken = 0; - yyss = yyssa; - yyvs = yyvsa; - yystacksize = YYINITDEPTH; - YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ + yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ + yyssp = yyss; yyvsp = yyvs; @@ -2279,6 +2271,7 @@ yyparse () YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; + /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might @@ -2286,6 +2279,7 @@ yyparse () yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); yyss = yyss1; @@ -2308,8 +2302,9 @@ yyparse () (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); @@ -2320,6 +2315,7 @@ yyparse () yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; + YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); @@ -2329,9 +2325,6 @@ yyparse () YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - if (yystate == YYFINAL) - YYACCEPT; - goto yybackup; /*-----------. @@ -2340,16 +2333,16 @@ yyparse () yybackup: /* Do appropriate processing given the current state. Read a - lookahead token if we need one and don't already have one. */ + look-ahead token if we need one and don't already have one. */ - /* First try to decide what to do without reference to lookahead token. */ + /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a lookahead token if don't already have one. */ + /* Not known => get a look-ahead token if don't already have one. */ - /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); @@ -2381,16 +2374,20 @@ yybackup: goto yyreduce; } + if (yyn == YYFINAL) + YYACCEPT; + /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; - /* Shift the lookahead token. */ + /* Shift the look-ahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - /* Discard the shifted token. */ - yychar = YYEMPTY; + /* Discard the shifted token unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; @@ -2430,9 +2427,7 @@ yyreduce: switch (yyn) { case 7: - -/* Line 1464 of yacc.c */ -#line 247 "parser.yxx" +#line 248 "parser.yxx" { assert(!egg_stack.empty()); DCAST(EggData, egg_stack.back())->add_child(DCAST(EggNode, (yyvsp[(2) - (2)]._egg))); @@ -2440,9 +2435,7 @@ yyreduce: break; case 26: - -/* Line 1464 of yacc.c */ -#line 291 "parser.yxx" +#line 292 "parser.yxx" { string strval = (yyvsp[(3) - (4)]._string); EggCoordinateSystem *cs = new EggCoordinateSystem; @@ -2458,18 +2451,14 @@ yyreduce: break; case 27: - -/* Line 1464 of yacc.c */ -#line 314 "parser.yxx" +#line 315 "parser.yxx" { (yyval._egg) = new EggComment((yyvsp[(2) - (5)]._string), (yyvsp[(4) - (5)]._string)); } break; case 28: - -/* Line 1464 of yacc.c */ -#line 328 "parser.yxx" +#line 329 "parser.yxx" { string tref_name = (yyvsp[(2) - (4)]._string); Filename filename = (yyvsp[(4) - (4)]._string); @@ -2485,9 +2474,7 @@ yyreduce: break; case 29: - -/* Line 1464 of yacc.c */ -#line 341 "parser.yxx" +#line 342 "parser.yxx" { (yyval._egg) = egg_stack.back(); egg_stack.pop_back(); @@ -2495,9 +2482,7 @@ yyreduce: break; case 31: - -/* Line 1464 of yacc.c */ -#line 357 "parser.yxx" +#line 358 "parser.yxx" { EggTexture *texture = DCAST(EggTexture, egg_stack.back()); string name = (yyvsp[(3) - (6)]._string); @@ -2716,43 +2701,54 @@ yyreduce: } else if (cmp_nocase_uh(name, "priority") == 0) { texture->set_priority((int)value); + } else if (cmp_nocase_uh(name, "multiview") == 0) { + texture->set_multiview(((int)value) != 0); + + } else if (cmp_nocase_uh(name, "num_views") == 0) { + int int_value = (int)value; + if (int_value < 1) { + eggyyerror("Invalid num-views value " + strval); + } else { + texture->set_num_views(int_value); + } + } else if (cmp_nocase_uh(name, "blendr") == 0) { - Colorf color = texture->get_color(); + LColor color = texture->get_color(); color[0] = value; texture->set_color(color); } else if (cmp_nocase_uh(name, "blendg") == 0) { - Colorf color = texture->get_color(); + LColor color = texture->get_color(); color[1] = value; texture->set_color(color); } else if (cmp_nocase_uh(name, "blendb") == 0) { - Colorf color = texture->get_color(); + LColor color = texture->get_color(); color[2] = value; texture->set_color(color); } else if (cmp_nocase_uh(name, "blenda") == 0) { - Colorf color = texture->get_color(); + LColor color = texture->get_color(); color[3] = value; texture->set_color(color); } else if (cmp_nocase_uh(name, "borderr") == 0) { - Colorf border_color = texture->get_border_color(); + LColor border_color = texture->get_border_color(); border_color[0] = value; texture->set_border_color(border_color); } else if (cmp_nocase_uh(name, "borderg") == 0) { - Colorf border_color = texture->get_border_color(); + LColor border_color = texture->get_border_color(); border_color[1] = value; texture->set_border_color(border_color); } else if (cmp_nocase_uh(name, "borderb") == 0) { - Colorf border_color = texture->get_border_color(); + LColor border_color = texture->get_border_color(); border_color[2] = value; texture->set_border_color(border_color); } else if (cmp_nocase_uh(name, "bordera") == 0) { - Colorf border_color = texture->get_border_color(); + LColor border_color = texture->get_border_color(); border_color[3] = value; texture->set_border_color(border_color); @@ -2835,9 +2831,7 @@ yyreduce: break; case 33: - -/* Line 1464 of yacc.c */ -#line 703 "parser.yxx" +#line 715 "parser.yxx" { string mref_name = (yyvsp[(2) - (3)]._string); EggMaterial *material = new EggMaterial(mref_name); @@ -2852,9 +2846,7 @@ yyreduce: break; case 34: - -/* Line 1464 of yacc.c */ -#line 715 "parser.yxx" +#line 727 "parser.yxx" { (yyval._egg) = egg_stack.back(); egg_stack.pop_back(); @@ -2862,79 +2854,77 @@ yyreduce: break; case 36: - -/* Line 1464 of yacc.c */ -#line 731 "parser.yxx" +#line 743 "parser.yxx" { EggMaterial *material = DCAST(EggMaterial, egg_stack.back()); string name = (yyvsp[(3) - (6)]._string); double value = (yyvsp[(5) - (6)]._number); if (cmp_nocase_uh(name, "diffr") == 0) { - Colorf diff = material->get_diff(); + LColor diff = material->get_diff(); diff[0] = value; material->set_diff(diff); } else if (cmp_nocase_uh(name, "diffg") == 0) { - Colorf diff = material->get_diff(); + LColor diff = material->get_diff(); diff[1] = value; material->set_diff(diff); } else if (cmp_nocase_uh(name, "diffb") == 0) { - Colorf diff = material->get_diff(); + LColor diff = material->get_diff(); diff[2] = value; material->set_diff(diff); } else if (cmp_nocase_uh(name, "diffa") == 0) { - Colorf diff = material->get_diff(); + LColor diff = material->get_diff(); diff[3] = value; material->set_diff(diff); } else if (cmp_nocase_uh(name, "ambr") == 0) { - Colorf amb = material->get_amb(); + LColor amb = material->get_amb(); amb[0] = value; material->set_amb(amb); } else if (cmp_nocase_uh(name, "ambg") == 0) { - Colorf amb = material->get_amb(); + LColor amb = material->get_amb(); amb[1] = value; material->set_amb(amb); } else if (cmp_nocase_uh(name, "ambb") == 0) { - Colorf amb = material->get_amb(); + LColor amb = material->get_amb(); amb[2] = value; material->set_amb(amb); } else if (cmp_nocase_uh(name, "amba") == 0) { - Colorf amb = material->get_amb(); + LColor amb = material->get_amb(); amb[3] = value; material->set_amb(amb); } else if (cmp_nocase_uh(name, "emitr") == 0) { - Colorf emit = material->get_emit(); + LColor emit = material->get_emit(); emit[0] = value; material->set_emit(emit); } else if (cmp_nocase_uh(name, "emitg") == 0) { - Colorf emit = material->get_emit(); + LColor emit = material->get_emit(); emit[1] = value; material->set_emit(emit); } else if (cmp_nocase_uh(name, "emitb") == 0) { - Colorf emit = material->get_emit(); + LColor emit = material->get_emit(); emit[2] = value; material->set_emit(emit); } else if (cmp_nocase_uh(name, "emita") == 0) { - Colorf emit = material->get_emit(); + LColor emit = material->get_emit(); emit[3] = value; material->set_emit(emit); } else if (cmp_nocase_uh(name, "specr") == 0) { - Colorf spec = material->get_spec(); + LColor spec = material->get_spec(); spec[0] = value; material->set_spec(spec); } else if (cmp_nocase_uh(name, "specg") == 0) { - Colorf spec = material->get_spec(); + LColor spec = material->get_spec(); spec[1] = value; material->set_spec(spec); } else if (cmp_nocase_uh(name, "specb") == 0) { - Colorf spec = material->get_spec(); + LColor spec = material->get_spec(); spec[2] = value; material->set_spec(spec); } else if (cmp_nocase_uh(name, "speca") == 0) { - Colorf spec = material->get_spec(); + LColor spec = material->get_spec(); spec[3] = value; material->set_spec(spec); @@ -2951,9 +2941,7 @@ yyreduce: break; case 37: - -/* Line 1464 of yacc.c */ -#line 826 "parser.yxx" +#line 838 "parser.yxx" { string node_name = (yyvsp[(2) - (5)]._string); Filename filename = (yyvsp[(4) - (5)]._string); @@ -2963,9 +2951,7 @@ yyreduce: break; case 38: - -/* Line 1464 of yacc.c */ -#line 833 "parser.yxx" +#line 845 "parser.yxx" { if (cmp_nocase_uh((yyvsp[(1) - (6)]._string), "group") != 0) { eggyyerror("keyword 'group' expected"); @@ -2978,9 +2964,7 @@ yyreduce: break; case 39: - -/* Line 1464 of yacc.c */ -#line 853 "parser.yxx" +#line 865 "parser.yxx" { string name = (yyvsp[(2) - (2)]._string); EggVertexPool *pool = NULL; @@ -3007,9 +2991,7 @@ yyreduce: break; case 40: - -/* Line 1464 of yacc.c */ -#line 877 "parser.yxx" +#line 889 "parser.yxx" { (yyval._egg) = egg_stack.back(); egg_stack.pop_back(); @@ -3017,18 +2999,14 @@ yyreduce: break; case 43: - -/* Line 1464 of yacc.c */ -#line 905 "parser.yxx" +#line 917 "parser.yxx" { egg_stack.push_back(new EggVertex); } break; case 44: - -/* Line 1464 of yacc.c */ -#line 909 "parser.yxx" +#line 921 "parser.yxx" { PT(EggVertex) vtx = DCAST(EggVertex, egg_stack.back()); egg_stack.pop_back(); @@ -3038,9 +3016,7 @@ yyreduce: break; case 45: - -/* Line 1464 of yacc.c */ -#line 916 "parser.yxx" +#line 928 "parser.yxx" { vertex_index = (int)(yyvsp[(2) - (2)]._number); EggVertexPool *pool = DCAST(EggVertexPool, egg_stack.back()); @@ -3068,9 +3044,7 @@ yyreduce: break; case 46: - -/* Line 1464 of yacc.c */ -#line 941 "parser.yxx" +#line 953 "parser.yxx" { PT(EggVertex) vtx = DCAST(EggVertex, egg_stack.back()); egg_stack.pop_back(); @@ -3083,48 +3057,38 @@ yyreduce: break; case 47: - -/* Line 1464 of yacc.c */ -#line 962 "parser.yxx" +#line 974 "parser.yxx" { DCAST(EggVertex, egg_stack.back())->set_pos((yyvsp[(1) - (1)]._number)); } break; case 48: - -/* Line 1464 of yacc.c */ -#line 966 "parser.yxx" +#line 978 "parser.yxx" { DCAST(EggVertex, egg_stack.back())->set_pos(LPoint2d((yyvsp[(1) - (2)]._number), (yyvsp[(2) - (2)]._number))); } break; case 49: - -/* Line 1464 of yacc.c */ -#line 970 "parser.yxx" +#line 982 "parser.yxx" { DCAST(EggVertex, egg_stack.back())->set_pos(LPoint3d((yyvsp[(1) - (3)]._number), (yyvsp[(2) - (3)]._number), (yyvsp[(3) - (3)]._number))); } break; case 50: - -/* Line 1464 of yacc.c */ -#line 974 "parser.yxx" +#line 986 "parser.yxx" { DCAST(EggVertex, egg_stack.back())->set_pos(LPoint4d((yyvsp[(1) - (4)]._number), (yyvsp[(2) - (4)]._number), (yyvsp[(3) - (4)]._number), (yyvsp[(4) - (4)]._number))); } break; case 51: - -/* Line 1464 of yacc.c */ -#line 978 "parser.yxx" +#line 990 "parser.yxx" { EggVertex *vertex = DCAST(EggVertex, egg_stack.back()); - EggVertexUV *uv = new EggVertexUV((yyvsp[(3) - (4)]._string), TexCoordd::zero()); + EggVertexUV *uv = new EggVertexUV((yyvsp[(3) - (4)]._string), LTexCoordd::zero()); egg_stack.push_back(uv); if (vertex->has_uv((yyvsp[(3) - (4)]._string))) { eggyywarning("Ignoring repeated UV name " + (yyvsp[(3) - (4)]._string)); @@ -3135,18 +3099,35 @@ yyreduce: break; case 52: - -/* Line 1464 of yacc.c */ -#line 989 "parser.yxx" +#line 1001 "parser.yxx" { egg_stack.pop_back(); } break; - case 55: + case 53: +#line 1005 "parser.yxx" + { + EggVertex *vertex = DCAST(EggVertex, egg_stack.back()); + EggVertexAux *aux = new EggVertexAux((yyvsp[(3) - (4)]._string), LVecBase4d::zero()); + egg_stack.push_back(aux); + if (vertex->has_aux((yyvsp[(3) - (4)]._string))) { + eggyywarning("Ignoring repeated Aux name " + (yyvsp[(3) - (4)]._string)); + } else { + vertex->set_aux_obj(aux); + } +} + break; -/* Line 1464 of yacc.c */ -#line 995 "parser.yxx" + case 54: +#line 1016 "parser.yxx" + { + egg_stack.pop_back(); +} + break; + + case 57: +#line 1022 "parser.yxx" { bool inserted = DCAST(EggVertex, egg_stack.back())->_dxyzs. insert(EggMorphVertex((yyvsp[(3) - (8)]._string), LVector3d((yyvsp[(5) - (8)]._number), (yyvsp[(6) - (8)]._number), (yyvsp[(7) - (8)]._number)))).second; @@ -3156,10 +3137,8 @@ yyreduce: } break; - case 56: - -/* Line 1464 of yacc.c */ -#line 1003 "parser.yxx" + case 58: +#line 1030 "parser.yxx" { bool inserted = DCAST(EggVertex, egg_stack.back())->_dxyzs. insert(EggMorphVertex((yyvsp[(4) - (8)]._string), LVector3d((yyvsp[(5) - (8)]._number), (yyvsp[(6) - (8)]._number), (yyvsp[(7) - (8)]._number)))).second; @@ -3169,54 +3148,44 @@ yyreduce: } break; - case 57: - -/* Line 1464 of yacc.c */ -#line 1022 "parser.yxx" + case 59: +#line 1049 "parser.yxx" { - DCAST(EggVertexUV, egg_stack.back())->set_uv(TexCoordd((yyvsp[(1) - (2)]._number), (yyvsp[(2) - (2)]._number))); + DCAST(EggVertexUV, egg_stack.back())->set_uv(LTexCoordd((yyvsp[(1) - (2)]._number), (yyvsp[(2) - (2)]._number))); } break; - case 58: - -/* Line 1464 of yacc.c */ -#line 1026 "parser.yxx" + case 60: +#line 1053 "parser.yxx" { DCAST(EggVertexUV, egg_stack.back())->set_uvw(LVecBase3d((yyvsp[(1) - (3)]._number), (yyvsp[(2) - (3)]._number), (yyvsp[(3) - (3)]._number))); } break; - case 59: - -/* Line 1464 of yacc.c */ -#line 1030 "parser.yxx" + case 61: +#line 1057 "parser.yxx" { if (DCAST(EggVertexUV, egg_stack.back())->has_tangent()) { eggyywarning("Ignoring repeated tangent"); } else { - DCAST(EggVertexUV, egg_stack.back())->set_tangent(Normald((yyvsp[(4) - (7)]._number), (yyvsp[(5) - (7)]._number), (yyvsp[(6) - (7)]._number))); + DCAST(EggVertexUV, egg_stack.back())->set_tangent(LNormald((yyvsp[(4) - (7)]._number), (yyvsp[(5) - (7)]._number), (yyvsp[(6) - (7)]._number))); } } break; - case 60: - -/* Line 1464 of yacc.c */ -#line 1038 "parser.yxx" + case 62: +#line 1065 "parser.yxx" { if (DCAST(EggVertexUV, egg_stack.back())->has_binormal()) { eggyywarning("Ignoring repeated binormal"); } else { - DCAST(EggVertexUV, egg_stack.back())->set_binormal(Normald((yyvsp[(4) - (7)]._number), (yyvsp[(5) - (7)]._number), (yyvsp[(6) - (7)]._number))); + DCAST(EggVertexUV, egg_stack.back())->set_binormal(LNormald((yyvsp[(4) - (7)]._number), (yyvsp[(5) - (7)]._number), (yyvsp[(6) - (7)]._number))); } } break; - case 61: - -/* Line 1464 of yacc.c */ -#line 1046 "parser.yxx" + case 63: +#line 1073 "parser.yxx" { bool inserted = DCAST(EggVertexUV, egg_stack.back())->_duvs. insert(EggMorphTexCoord((yyvsp[(3) - (7)]._string), LVector3d((yyvsp[(5) - (7)]._number), (yyvsp[(6) - (7)]._number), 0.0))).second; @@ -3226,10 +3195,8 @@ yyreduce: } break; - case 62: - -/* Line 1464 of yacc.c */ -#line 1054 "parser.yxx" + case 64: +#line 1081 "parser.yxx" { bool inserted = DCAST(EggVertexUV, egg_stack.back())->_duvs. insert(EggMorphTexCoord((yyvsp[(3) - (8)]._string), LVector3d((yyvsp[(5) - (8)]._number), (yyvsp[(6) - (8)]._number), (yyvsp[(7) - (8)]._number)))).second; @@ -3239,10 +3206,8 @@ yyreduce: } break; - case 63: - -/* Line 1464 of yacc.c */ -#line 1062 "parser.yxx" + case 65: +#line 1089 "parser.yxx" { bool inserted = DCAST(EggVertexUV, egg_stack.back())->_duvs. insert(EggMorphTexCoord((yyvsp[(4) - (7)]._string), LVector3d((yyvsp[(5) - (7)]._number), (yyvsp[(6) - (7)]._number), 0.0))).second; @@ -3252,10 +3217,8 @@ yyreduce: } break; - case 64: - -/* Line 1464 of yacc.c */ -#line 1070 "parser.yxx" + case 66: +#line 1097 "parser.yxx" { bool inserted = DCAST(EggVertexUV, egg_stack.back())->_duvs. insert(EggMorphTexCoord((yyvsp[(4) - (8)]._string), LVector3d((yyvsp[(5) - (8)]._number), (yyvsp[(6) - (8)]._number), (yyvsp[(7) - (8)]._number)))).second; @@ -3265,19 +3228,22 @@ yyreduce: } break; - case 65: - -/* Line 1464 of yacc.c */ -#line 1088 "parser.yxx" + case 68: +#line 1115 "parser.yxx" { - DCAST(EggVertex, egg_stack.back())->set_normal(Normald((yyvsp[(1) - (3)]._number), (yyvsp[(2) - (3)]._number), (yyvsp[(3) - (3)]._number))); + DCAST(EggVertexAux, egg_stack.back())->set_aux(LVecBase4d((yyvsp[(1) - (4)]._number), (yyvsp[(2) - (4)]._number), (yyvsp[(3) - (4)]._number), (yyvsp[(4) - (4)]._number))); } break; - case 66: + case 69: +#line 1129 "parser.yxx" + { + DCAST(EggVertex, egg_stack.back())->set_normal(LNormald((yyvsp[(1) - (3)]._number), (yyvsp[(2) - (3)]._number), (yyvsp[(3) - (3)]._number))); +} + break; -/* Line 1464 of yacc.c */ -#line 1092 "parser.yxx" + case 70: +#line 1133 "parser.yxx" { bool inserted = DCAST(EggVertex, egg_stack.back())->_dnormals. insert(EggMorphNormal((yyvsp[(3) - (8)]._string), LVector3d((yyvsp[(5) - (8)]._number), (yyvsp[(6) - (8)]._number), (yyvsp[(7) - (8)]._number)))).second; @@ -3287,10 +3253,8 @@ yyreduce: } break; - case 67: - -/* Line 1464 of yacc.c */ -#line 1100 "parser.yxx" + case 71: +#line 1141 "parser.yxx" { bool inserted = DCAST(EggVertex, egg_stack.back())->_dnormals. insert(EggMorphNormal((yyvsp[(4) - (8)]._string), LVector3d((yyvsp[(5) - (8)]._number), (yyvsp[(6) - (8)]._number), (yyvsp[(7) - (8)]._number)))).second; @@ -3300,55 +3264,45 @@ yyreduce: } break; - case 68: - -/* Line 1464 of yacc.c */ -#line 1118 "parser.yxx" + case 72: +#line 1159 "parser.yxx" { - DCAST(EggVertex, egg_stack.back())->set_color(Colorf((yyvsp[(1) - (4)]._number), (yyvsp[(2) - (4)]._number), (yyvsp[(3) - (4)]._number), (yyvsp[(4) - (4)]._number))); + DCAST(EggVertex, egg_stack.back())->set_color(LColor((yyvsp[(1) - (4)]._number), (yyvsp[(2) - (4)]._number), (yyvsp[(3) - (4)]._number), (yyvsp[(4) - (4)]._number))); } break; - case 69: - -/* Line 1464 of yacc.c */ -#line 1122 "parser.yxx" + case 73: +#line 1163 "parser.yxx" { bool inserted = DCAST(EggVertex, egg_stack.back())->_drgbas. - insert(EggMorphColor((yyvsp[(3) - (9)]._string), LVector4f((yyvsp[(5) - (9)]._number), (yyvsp[(6) - (9)]._number), (yyvsp[(7) - (9)]._number), (yyvsp[(8) - (9)]._number)))).second; + insert(EggMorphColor((yyvsp[(3) - (9)]._string), LVector4((yyvsp[(5) - (9)]._number), (yyvsp[(6) - (9)]._number), (yyvsp[(7) - (9)]._number), (yyvsp[(8) - (9)]._number)))).second; if (!inserted) { eggyywarning("Ignoring repeated morph name " + (yyvsp[(3) - (9)]._string)); } } break; - case 70: - -/* Line 1464 of yacc.c */ -#line 1130 "parser.yxx" + case 74: +#line 1171 "parser.yxx" { bool inserted = DCAST(EggVertex, egg_stack.back())->_drgbas. - insert(EggMorphColor((yyvsp[(4) - (9)]._string), LVector4f((yyvsp[(5) - (9)]._number), (yyvsp[(6) - (9)]._number), (yyvsp[(7) - (9)]._number), (yyvsp[(8) - (9)]._number)))).second; + insert(EggMorphColor((yyvsp[(4) - (9)]._string), LVector4((yyvsp[(5) - (9)]._number), (yyvsp[(6) - (9)]._number), (yyvsp[(7) - (9)]._number), (yyvsp[(8) - (9)]._number)))).second; if (!inserted) { eggyywarning("Ignoring repeated morph name " + (yyvsp[(4) - (9)]._string)); } } break; - case 71: - -/* Line 1464 of yacc.c */ -#line 1148 "parser.yxx" + case 75: +#line 1189 "parser.yxx" { EggGroup *group = new EggGroup((yyvsp[(2) - (2)]._string)); egg_stack.push_back(group); } break; - case 72: - -/* Line 1464 of yacc.c */ -#line 1153 "parser.yxx" + case 76: +#line 1194 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); (yyval._egg) = group; @@ -3360,10 +3314,8 @@ yyreduce: } break; - case 73: - -/* Line 1464 of yacc.c */ -#line 1173 "parser.yxx" + case 77: +#line 1214 "parser.yxx" { EggGroup *group = new EggGroup((yyvsp[(2) - (2)]._string)); group->set_group_type(EggGroup::GT_joint); @@ -3371,20 +3323,16 @@ yyreduce: } break; - case 74: - -/* Line 1464 of yacc.c */ -#line 1179 "parser.yxx" + case 78: +#line 1220 "parser.yxx" { (yyval._egg) = egg_stack.back(); egg_stack.pop_back(); } break; - case 75: - -/* Line 1464 of yacc.c */ -#line 1194 "parser.yxx" + case 79: +#line 1235 "parser.yxx" { EggGroup *group = new EggGroup((yyvsp[(2) - (2)]._string)); group->set_group_type(EggGroup::GT_instance); @@ -3392,10 +3340,8 @@ yyreduce: } break; - case 76: - -/* Line 1464 of yacc.c */ -#line 1200 "parser.yxx" + case 80: +#line 1241 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); (yyval._egg) = group; @@ -3406,10 +3352,8 @@ yyreduce: } break; - case 78: - -/* Line 1464 of yacc.c */ -#line 1220 "parser.yxx" + case 82: +#line 1261 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string name = (yyvsp[(3) - (6)]._string); @@ -3531,22 +3475,22 @@ yyreduce: } } else if (cmp_nocase_uh(name, "blendr") == 0) { - Colorf color = group->get_blend_color(); + LColor color = group->get_blend_color(); color[0] = value; group->set_blend_color(color); } else if (cmp_nocase_uh(name, "blendg") == 0) { - Colorf color = group->get_blend_color(); + LColor color = group->get_blend_color(); color[1] = value; group->set_blend_color(color); } else if (cmp_nocase_uh(name, "blendb") == 0) { - Colorf color = group->get_blend_color(); + LColor color = group->get_blend_color(); color[2] = value; group->set_blend_color(color); } else if (cmp_nocase_uh(name, "blenda") == 0) { - Colorf color = group->get_blend_color(); + LColor color = group->get_blend_color(); color[3] = value; group->set_blend_color(color); @@ -3556,10 +3500,8 @@ yyreduce: } break; - case 79: - -/* Line 1464 of yacc.c */ -#line 1365 "parser.yxx" + case 83: +#line 1406 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string strval = (yyvsp[(4) - (5)]._string); @@ -3573,20 +3515,16 @@ yyreduce: } break; - case 80: - -/* Line 1464 of yacc.c */ -#line 1377 "parser.yxx" + case 84: +#line 1418 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); group->set_billboard_center(LPoint3d((yyvsp[(4) - (7)]._number), (yyvsp[(5) - (7)]._number), (yyvsp[(6) - (7)]._number))); } break; - case 81: - -/* Line 1464 of yacc.c */ -#line 1382 "parser.yxx" + case 85: +#line 1423 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string name = (yyvsp[(3) - (7)]._string); @@ -3595,10 +3533,8 @@ yyreduce: } break; - case 82: - -/* Line 1464 of yacc.c */ -#line 1389 "parser.yxx" + case 86: +#line 1430 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); int value = (int)(yyvsp[(4) - (5)]._number); @@ -3606,10 +3542,8 @@ yyreduce: } break; - case 83: - -/* Line 1464 of yacc.c */ -#line 1395 "parser.yxx" + case 87: +#line 1436 "parser.yxx" { // The special flavor of DCS, with { sync } or { nosync }. EggGroup *group = DCAST(EggGroup, egg_stack.back()); @@ -3624,10 +3558,8 @@ yyreduce: } break; - case 84: - -/* Line 1464 of yacc.c */ -#line 1408 "parser.yxx" + case 88: +#line 1449 "parser.yxx" { // The traditional flavor of DART, with { 0 } or { 1 }. EggGroup *group = DCAST(EggGroup, egg_stack.back()); @@ -3636,10 +3568,8 @@ yyreduce: } break; - case 85: - -/* Line 1464 of yacc.c */ -#line 1415 "parser.yxx" + case 89: +#line 1456 "parser.yxx" { // The special flavor of DART, with { sync } or { nosync }. EggGroup *group = DCAST(EggGroup, egg_stack.back()); @@ -3654,10 +3584,8 @@ yyreduce: } break; - case 86: - -/* Line 1464 of yacc.c */ -#line 1428 "parser.yxx" + case 90: +#line 1469 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); int value = (int)(yyvsp[(4) - (5)]._number); @@ -3665,10 +3593,8 @@ yyreduce: } break; - case 87: - -/* Line 1464 of yacc.c */ -#line 1434 "parser.yxx" + case 91: +#line 1475 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string type = (yyvsp[(4) - (5)]._string); @@ -3676,10 +3602,8 @@ yyreduce: } break; - case 88: - -/* Line 1464 of yacc.c */ -#line 1440 "parser.yxx" + case 92: +#line 1481 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); int value = (int)(yyvsp[(4) - (5)]._number); @@ -3687,20 +3611,16 @@ yyreduce: } break; - case 89: - -/* Line 1464 of yacc.c */ -#line 1446 "parser.yxx" + case 93: +#line 1487 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); group->set_tag((yyvsp[(3) - (6)]._string), (yyvsp[(5) - (6)]._string)); } break; - case 90: - -/* Line 1464 of yacc.c */ -#line 1451 "parser.yxx" + case 94: +#line 1492 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); int value = (int)(yyvsp[(4) - (5)]._number); @@ -3708,10 +3628,8 @@ yyreduce: } break; - case 95: - -/* Line 1464 of yacc.c */ -#line 1461 "parser.yxx" + case 99: +#line 1502 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); if (group->get_group_type() != EggGroup::GT_instance) { @@ -3722,19 +3640,15 @@ yyreduce: } break; - case 96: - -/* Line 1464 of yacc.c */ -#line 1470 "parser.yxx" + case 100: +#line 1511 "parser.yxx" { DCAST(EggGroup, egg_stack.back())->add_child(DCAST(EggNode, (yyvsp[(2) - (2)]._egg))); } break; - case 97: - -/* Line 1464 of yacc.c */ -#line 1484 "parser.yxx" + case 101: +#line 1525 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string strval = (yyvsp[(1) - (1)]._string); @@ -3756,10 +3670,8 @@ yyreduce: } break; - case 99: - -/* Line 1464 of yacc.c */ -#line 1515 "parser.yxx" + case 103: +#line 1556 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); string strval = (yyvsp[(2) - (2)]._string); @@ -3773,20 +3685,16 @@ yyreduce: } break; - case 100: - -/* Line 1464 of yacc.c */ -#line 1537 "parser.yxx" + case 104: +#line 1578 "parser.yxx" { egg_top_transform = egg_stack.back()->as_transform(); egg_top_transform->clear_transform(); } break; - case 102: - -/* Line 1464 of yacc.c */ -#line 1553 "parser.yxx" + case 106: +#line 1594 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); if (group->get_group_type() != EggGroup::GT_joint) { @@ -3797,100 +3705,78 @@ yyreduce: } break; - case 117: - -/* Line 1464 of yacc.c */ -#line 1590 "parser.yxx" + case 121: +#line 1631 "parser.yxx" { egg_top_transform->add_translate2d(LVector2d((yyvsp[(3) - (5)]._number), (yyvsp[(4) - (5)]._number))); } break; - case 118: - -/* Line 1464 of yacc.c */ -#line 1597 "parser.yxx" + case 122: +#line 1638 "parser.yxx" { egg_top_transform->add_translate3d(LVector3d((yyvsp[(3) - (6)]._number), (yyvsp[(4) - (6)]._number), (yyvsp[(5) - (6)]._number))); } break; - case 119: - -/* Line 1464 of yacc.c */ -#line 1604 "parser.yxx" + case 123: +#line 1645 "parser.yxx" { egg_top_transform->add_rotate2d((yyvsp[(3) - (4)]._number)); } break; - case 120: - -/* Line 1464 of yacc.c */ -#line 1611 "parser.yxx" + case 124: +#line 1652 "parser.yxx" { egg_top_transform->add_rotx((yyvsp[(3) - (4)]._number)); } break; - case 121: - -/* Line 1464 of yacc.c */ -#line 1618 "parser.yxx" + case 125: +#line 1659 "parser.yxx" { egg_top_transform->add_roty((yyvsp[(3) - (4)]._number)); } break; - case 122: - -/* Line 1464 of yacc.c */ -#line 1625 "parser.yxx" + case 126: +#line 1666 "parser.yxx" { egg_top_transform->add_rotz((yyvsp[(3) - (4)]._number)); } break; - case 123: - -/* Line 1464 of yacc.c */ -#line 1632 "parser.yxx" + case 127: +#line 1673 "parser.yxx" { egg_top_transform->add_rotate3d((yyvsp[(3) - (7)]._number), LVector3d((yyvsp[(4) - (7)]._number), (yyvsp[(5) - (7)]._number), (yyvsp[(6) - (7)]._number))); } break; - case 124: - -/* Line 1464 of yacc.c */ -#line 1639 "parser.yxx" + case 128: +#line 1680 "parser.yxx" { egg_top_transform->add_scale2d(LVecBase2d((yyvsp[(3) - (5)]._number), (yyvsp[(4) - (5)]._number))); } break; - case 125: - -/* Line 1464 of yacc.c */ -#line 1646 "parser.yxx" + case 129: +#line 1687 "parser.yxx" { egg_top_transform->add_scale3d(LVecBase3d((yyvsp[(3) - (6)]._number), (yyvsp[(4) - (6)]._number), (yyvsp[(5) - (6)]._number))); } break; - case 126: - -/* Line 1464 of yacc.c */ -#line 1653 "parser.yxx" + case 130: +#line 1694 "parser.yxx" { egg_top_transform->add_uniform_scale((yyvsp[(3) - (4)]._number)); } break; - case 129: - -/* Line 1464 of yacc.c */ -#line 1667 "parser.yxx" + case 133: +#line 1708 "parser.yxx" { egg_top_transform->add_matrix3 (LMatrix3d((yyvsp[(1) - (9)]._number), (yyvsp[(2) - (9)]._number), (yyvsp[(3) - (9)]._number), @@ -3899,10 +3785,8 @@ yyreduce: } break; - case 132: - -/* Line 1464 of yacc.c */ -#line 1685 "parser.yxx" + case 136: +#line 1726 "parser.yxx" { egg_top_transform->add_matrix4 (LMatrix4d((yyvsp[(1) - (16)]._number), (yyvsp[(2) - (16)]._number), (yyvsp[(3) - (16)]._number), (yyvsp[(4) - (16)]._number), @@ -3912,10 +3796,8 @@ yyreduce: } break; - case 133: - -/* Line 1464 of yacc.c */ -#line 1704 "parser.yxx" + case 137: +#line 1745 "parser.yxx" { if ((yyvsp[(7) - (9)]._egg) != (EggVertexPool *)NULL) { EggVertexPool *pool = DCAST(EggVertexPool, (yyvsp[(7) - (9)]._egg)); @@ -3939,19 +3821,15 @@ yyreduce: } break; - case 134: - -/* Line 1464 of yacc.c */ -#line 1737 "parser.yxx" + case 138: +#line 1778 "parser.yxx" { (yyval._number) = 1.0; } break; - case 135: - -/* Line 1464 of yacc.c */ -#line 1741 "parser.yxx" + case 139: +#line 1782 "parser.yxx" { string name = (yyvsp[(3) - (6)]._string); double value = (yyvsp[(5) - (6)]._number); @@ -3967,77 +3845,31 @@ yyreduce: } break; - case 137: - -/* Line 1464 of yacc.c */ -#line 1778 "parser.yxx" + case 141: +#line 1819 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); group->set_lod(EggSwitchConditionDistance((yyvsp[(3) - (11)]._number), (yyvsp[(4) - (11)]._number), LPoint3d((yyvsp[(7) - (11)]._number), (yyvsp[(8) - (11)]._number), (yyvsp[(9) - (11)]._number)))); } break; - case 138: - -/* Line 1464 of yacc.c */ -#line 1783 "parser.yxx" + case 142: +#line 1824 "parser.yxx" { EggGroup *group = DCAST(EggGroup, egg_stack.back()); group->set_lod(EggSwitchConditionDistance((yyvsp[(3) - (12)]._number), (yyvsp[(4) - (12)]._number), LPoint3d((yyvsp[(8) - (12)]._number), (yyvsp[(9) - (12)]._number), (yyvsp[(10) - (12)]._number)), (yyvsp[(5) - (12)]._number))); } break; - case 139: - -/* Line 1464 of yacc.c */ -#line 1800 "parser.yxx" + case 143: +#line 1841 "parser.yxx" { egg_stack.push_back(new EggPolygon((yyvsp[(2) - (2)]._string))); } break; - case 140: - -/* Line 1464 of yacc.c */ -#line 1804 "parser.yxx" - { - (yyval._egg) = egg_stack.back(); - egg_stack.pop_back(); -} - break; - - case 141: - -/* Line 1464 of yacc.c */ -#line 1819 "parser.yxx" - { - egg_stack.push_back(new EggTriangleFan((yyvsp[(2) - (2)]._string))); -} - break; - - case 142: - -/* Line 1464 of yacc.c */ -#line 1823 "parser.yxx" - { - (yyval._egg) = egg_stack.back(); - egg_stack.pop_back(); -} - break; - - case 143: - -/* Line 1464 of yacc.c */ -#line 1838 "parser.yxx" - { - egg_stack.push_back(new EggTriangleStrip((yyvsp[(2) - (2)]._string))); -} - break; - case 144: - -/* Line 1464 of yacc.c */ -#line 1842 "parser.yxx" +#line 1845 "parser.yxx" { (yyval._egg) = egg_stack.back(); egg_stack.pop_back(); @@ -4045,18 +3877,14 @@ yyreduce: break; case 145: - -/* Line 1464 of yacc.c */ -#line 1857 "parser.yxx" +#line 1860 "parser.yxx" { - egg_stack.push_back(new EggPoint((yyvsp[(2) - (2)]._string))); + egg_stack.push_back(new EggTriangleFan((yyvsp[(2) - (2)]._string))); } break; case 146: - -/* Line 1464 of yacc.c */ -#line 1861 "parser.yxx" +#line 1864 "parser.yxx" { (yyval._egg) = egg_stack.back(); egg_stack.pop_back(); @@ -4064,18 +3892,14 @@ yyreduce: break; case 147: - -/* Line 1464 of yacc.c */ -#line 1876 "parser.yxx" +#line 1879 "parser.yxx" { - egg_stack.push_back(new EggLine((yyvsp[(2) - (2)]._string))); + egg_stack.push_back(new EggTriangleStrip((yyvsp[(2) - (2)]._string))); } break; case 148: - -/* Line 1464 of yacc.c */ -#line 1880 "parser.yxx" +#line 1883 "parser.yxx" { (yyval._egg) = egg_stack.back(); egg_stack.pop_back(); @@ -4083,18 +3907,14 @@ yyreduce: break; case 149: - -/* Line 1464 of yacc.c */ -#line 1895 "parser.yxx" +#line 1898 "parser.yxx" { - egg_stack.push_back(new EggNurbsSurface((yyvsp[(2) - (2)]._string))); + egg_stack.push_back(new EggPoint((yyvsp[(2) - (2)]._string))); } break; case 150: - -/* Line 1464 of yacc.c */ -#line 1899 "parser.yxx" +#line 1902 "parser.yxx" { (yyval._egg) = egg_stack.back(); egg_stack.pop_back(); @@ -4102,28 +3922,52 @@ yyreduce: break; case 151: - -/* Line 1464 of yacc.c */ -#line 1914 "parser.yxx" +#line 1917 "parser.yxx" { - egg_stack.push_back(new EggNurbsCurve((yyvsp[(2) - (2)]._string))); + egg_stack.push_back(new EggLine((yyvsp[(2) - (2)]._string))); } break; case 152: - -/* Line 1464 of yacc.c */ -#line 1918 "parser.yxx" +#line 1921 "parser.yxx" { (yyval._egg) = egg_stack.back(); egg_stack.pop_back(); } break; - case 157: + case 153: +#line 1936 "parser.yxx" + { + egg_stack.push_back(new EggNurbsSurface((yyvsp[(2) - (2)]._string))); +} + break; -/* Line 1464 of yacc.c */ -#line 1948 "parser.yxx" + case 154: +#line 1940 "parser.yxx" + { + (yyval._egg) = egg_stack.back(); + egg_stack.pop_back(); +} + break; + + case 155: +#line 1955 "parser.yxx" + { + egg_stack.push_back(new EggNurbsCurve((yyvsp[(2) - (2)]._string))); +} + break; + + case 156: +#line 1959 "parser.yxx" + { + (yyval._egg) = egg_stack.back(); + egg_stack.pop_back(); +} + break; + + case 161: +#line 1989 "parser.yxx" { if (!egg_stack.back()->is_of_type(EggCompositePrimitive::get_class_type())) { eggyyerror("Not a composite primitive; components are not allowed here."); @@ -4139,10 +3983,8 @@ yyreduce: } break; - case 158: - -/* Line 1464 of yacc.c */ -#line 1962 "parser.yxx" + case 162: +#line 2003 "parser.yxx" { PT(EggPrimitive) prim = DCAST(EggPrimitive, egg_stack.back()); egg_stack.pop_back(); @@ -4151,10 +3993,8 @@ yyreduce: } break; - case 166: - -/* Line 1464 of yacc.c */ -#line 1976 "parser.yxx" + case 170: +#line 2017 "parser.yxx" { EggPrimitive *primitive = DCAST(EggPrimitive, egg_stack.back()); string name = (yyvsp[(3) - (6)]._string); @@ -4221,10 +4061,8 @@ yyreduce: } break; - case 178: - -/* Line 1464 of yacc.c */ -#line 2062 "parser.yxx" + case 182: +#line 2103 "parser.yxx" { EggNurbsCurve *curve = DCAST(EggNurbsCurve, (yyvsp[(2) - (2)]._egg)); EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); @@ -4232,10 +4070,8 @@ yyreduce: } break; - case 180: - -/* Line 1464 of yacc.c */ -#line 2069 "parser.yxx" + case 184: +#line 2110 "parser.yxx" { EggNurbsSurface *primitive = DCAST(EggNurbsSurface, egg_stack.back()); string name = (yyvsp[(3) - (6)]._string); @@ -4292,10 +4128,8 @@ yyreduce: } break; - case 191: - -/* Line 1464 of yacc.c */ -#line 2145 "parser.yxx" + case 195: +#line 2186 "parser.yxx" { EggNurbsCurve *primitive = DCAST(EggNurbsCurve, egg_stack.back()); string name = (yyvsp[(3) - (6)]._string); @@ -4358,10 +4192,8 @@ yyreduce: } break; - case 192: - -/* Line 1464 of yacc.c */ -#line 2216 "parser.yxx" + case 196: +#line 2257 "parser.yxx" { if ((yyvsp[(1) - (1)]._egg) != (EggTexture *)NULL) { EggTexture *texture = DCAST(EggTexture, (yyvsp[(1) - (1)]._egg)); @@ -4370,10 +4202,8 @@ yyreduce: } break; - case 193: - -/* Line 1464 of yacc.c */ -#line 2233 "parser.yxx" + case 197: +#line 2274 "parser.yxx" { EggTexture *texture = NULL; @@ -4405,10 +4235,8 @@ yyreduce: } break; - case 194: - -/* Line 1464 of yacc.c */ -#line 2273 "parser.yxx" + case 198: +#line 2314 "parser.yxx" { if ((yyvsp[(1) - (1)]._egg) != (EggMaterial *)NULL) { EggMaterial *material = DCAST(EggMaterial, (yyvsp[(1) - (1)]._egg)); @@ -4417,19 +4245,15 @@ yyreduce: } break; - case 195: - -/* Line 1464 of yacc.c */ -#line 2290 "parser.yxx" + case 199: +#line 2331 "parser.yxx" { - DCAST(EggPrimitive, egg_stack.back())->set_normal(Normald((yyvsp[(1) - (3)]._number), (yyvsp[(2) - (3)]._number), (yyvsp[(3) - (3)]._number))); + DCAST(EggPrimitive, egg_stack.back())->set_normal(LNormald((yyvsp[(1) - (3)]._number), (yyvsp[(2) - (3)]._number), (yyvsp[(3) - (3)]._number))); } break; - case 196: - -/* Line 1464 of yacc.c */ -#line 2294 "parser.yxx" + case 200: +#line 2335 "parser.yxx" { bool inserted = DCAST(EggPrimitive, egg_stack.back())->_dnormals. insert(EggMorphNormal((yyvsp[(3) - (8)]._string), LVector3d((yyvsp[(5) - (8)]._number), (yyvsp[(6) - (8)]._number), (yyvsp[(7) - (8)]._number)))).second; @@ -4439,10 +4263,8 @@ yyreduce: } break; - case 197: - -/* Line 1464 of yacc.c */ -#line 2302 "parser.yxx" + case 201: +#line 2343 "parser.yxx" { bool inserted = DCAST(EggPrimitive, egg_stack.back())->_dnormals. insert(EggMorphNormal((yyvsp[(4) - (8)]._string), LVector3d((yyvsp[(5) - (8)]._number), (yyvsp[(6) - (8)]._number), (yyvsp[(7) - (8)]._number)))).second; @@ -4452,45 +4274,37 @@ yyreduce: } break; - case 198: - -/* Line 1464 of yacc.c */ -#line 2320 "parser.yxx" + case 202: +#line 2361 "parser.yxx" { - DCAST(EggPrimitive, egg_stack.back())->set_color(Colorf((yyvsp[(1) - (4)]._number), (yyvsp[(2) - (4)]._number), (yyvsp[(3) - (4)]._number), (yyvsp[(4) - (4)]._number))); + DCAST(EggPrimitive, egg_stack.back())->set_color(LColor((yyvsp[(1) - (4)]._number), (yyvsp[(2) - (4)]._number), (yyvsp[(3) - (4)]._number), (yyvsp[(4) - (4)]._number))); } break; - case 199: - -/* Line 1464 of yacc.c */ -#line 2324 "parser.yxx" + case 203: +#line 2365 "parser.yxx" { bool inserted = DCAST(EggPrimitive, egg_stack.back())->_drgbas. - insert(EggMorphColor((yyvsp[(3) - (9)]._string), LVector4f((yyvsp[(5) - (9)]._number), (yyvsp[(6) - (9)]._number), (yyvsp[(7) - (9)]._number), (yyvsp[(8) - (9)]._number)))).second; + insert(EggMorphColor((yyvsp[(3) - (9)]._string), LVector4((yyvsp[(5) - (9)]._number), (yyvsp[(6) - (9)]._number), (yyvsp[(7) - (9)]._number), (yyvsp[(8) - (9)]._number)))).second; if (!inserted) { eggyywarning("Ignoring repeated morph name " + (yyvsp[(3) - (9)]._string)); } } break; - case 200: - -/* Line 1464 of yacc.c */ -#line 2332 "parser.yxx" + case 204: +#line 2373 "parser.yxx" { bool inserted = DCAST(EggPrimitive, egg_stack.back())->_drgbas. - insert(EggMorphColor((yyvsp[(4) - (9)]._string), LVector4f((yyvsp[(5) - (9)]._number), (yyvsp[(6) - (9)]._number), (yyvsp[(7) - (9)]._number), (yyvsp[(8) - (9)]._number)))).second; + insert(EggMorphColor((yyvsp[(4) - (9)]._string), LVector4((yyvsp[(5) - (9)]._number), (yyvsp[(6) - (9)]._number), (yyvsp[(7) - (9)]._number), (yyvsp[(8) - (9)]._number)))).second; if (!inserted) { eggyywarning("Ignoring repeated morph name " + (yyvsp[(4) - (9)]._string)); } } break; - case 201: - -/* Line 1464 of yacc.c */ -#line 2350 "parser.yxx" + case 205: +#line 2391 "parser.yxx" { EggPrimitive *primitive = DCAST(EggPrimitive, egg_stack.back()); int value = (int)(yyvsp[(1) - (1)]._number); @@ -4498,10 +4312,8 @@ yyreduce: } break; - case 202: - -/* Line 1464 of yacc.c */ -#line 2366 "parser.yxx" + case 206: +#line 2407 "parser.yxx" { if ((yyvsp[(6) - (8)]._egg) != (EggVertexPool *)NULL) { EggVertexPool *pool = DCAST(EggVertexPool, (yyvsp[(6) - (8)]._egg)); @@ -4524,10 +4336,8 @@ yyreduce: } break; - case 203: - -/* Line 1464 of yacc.c */ -#line 2397 "parser.yxx" + case 207: +#line 2438 "parser.yxx" { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); int u_order = (int)(yyvsp[(1) - (2)]._number); @@ -4537,10 +4347,8 @@ yyreduce: } break; - case 204: - -/* Line 1464 of yacc.c */ -#line 2415 "parser.yxx" + case 208: +#line 2456 "parser.yxx" { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); PTA_double nums = (yyvsp[(1) - (1)]._number_list); @@ -4552,10 +4360,8 @@ yyreduce: } break; - case 205: - -/* Line 1464 of yacc.c */ -#line 2435 "parser.yxx" + case 209: +#line 2476 "parser.yxx" { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); PTA_double nums = (yyvsp[(1) - (1)]._number_list); @@ -4567,20 +4373,16 @@ yyreduce: } break; - case 206: - -/* Line 1464 of yacc.c */ -#line 2455 "parser.yxx" + case 210: +#line 2496 "parser.yxx" { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); nurbs->_trims.push_back(EggNurbsSurface::Trim()); } break; - case 208: - -/* Line 1464 of yacc.c */ -#line 2471 "parser.yxx" + case 212: +#line 2512 "parser.yxx" { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); nassertr(!nurbs->_trims.empty(), 0); @@ -4588,10 +4390,8 @@ yyreduce: } break; - case 209: - -/* Line 1464 of yacc.c */ -#line 2477 "parser.yxx" + case 213: +#line 2518 "parser.yxx" { EggNurbsSurface *nurbs = DCAST(EggNurbsSurface, egg_stack.back()); nassertr(!nurbs->_trims.empty(), 0); @@ -4601,10 +4401,8 @@ yyreduce: } break; - case 210: - -/* Line 1464 of yacc.c */ -#line 2496 "parser.yxx" + case 214: +#line 2537 "parser.yxx" { EggNurbsCurve *nurbs = DCAST(EggNurbsCurve, egg_stack.back()); int order = (int)(yyvsp[(1) - (1)]._number); @@ -4612,10 +4410,8 @@ yyreduce: } break; - case 211: - -/* Line 1464 of yacc.c */ -#line 2512 "parser.yxx" + case 215: +#line 2553 "parser.yxx" { EggNurbsCurve *nurbs = DCAST(EggNurbsCurve, egg_stack.back()); PTA_double nums = (yyvsp[(1) - (1)]._number_list); @@ -4627,10 +4423,8 @@ yyreduce: } break; - case 212: - -/* Line 1464 of yacc.c */ -#line 2533 "parser.yxx" + case 216: +#line 2574 "parser.yxx" { EggTable *table = new EggTable((yyvsp[(2) - (2)]._string)); table->set_table_type(EggTable::TT_table); @@ -4638,10 +4432,8 @@ yyreduce: } break; - case 213: - -/* Line 1464 of yacc.c */ -#line 2539 "parser.yxx" + case 217: +#line 2580 "parser.yxx" { (yyval._egg) = egg_stack.back(); egg_stack.pop_back(); @@ -4649,10 +4441,8 @@ yyreduce: } break; - case 214: - -/* Line 1464 of yacc.c */ -#line 2556 "parser.yxx" + case 218: +#line 2597 "parser.yxx" { EggTable *table = new EggTable((yyvsp[(2) - (2)]._string)); table->set_table_type(EggTable::TT_bundle); @@ -4660,85 +4450,67 @@ yyreduce: } break; - case 215: - -/* Line 1464 of yacc.c */ -#line 2562 "parser.yxx" + case 219: +#line 2603 "parser.yxx" { (yyval._egg) = egg_stack.back(); egg_stack.pop_back(); } break; - case 217: - -/* Line 1464 of yacc.c */ -#line 2578 "parser.yxx" - { - DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, (yyvsp[(2) - (2)]._egg))); -} - break; - - case 218: - -/* Line 1464 of yacc.c */ -#line 2582 "parser.yxx" - { - DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, (yyvsp[(2) - (2)]._egg))); -} - break; - - case 219: - -/* Line 1464 of yacc.c */ -#line 2586 "parser.yxx" - { - DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, (yyvsp[(2) - (2)]._egg))); -} - break; - - case 220: - -/* Line 1464 of yacc.c */ -#line 2590 "parser.yxx" - { - DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, (yyvsp[(2) - (2)]._egg))); -} - break; - case 221: - -/* Line 1464 of yacc.c */ -#line 2594 "parser.yxx" +#line 2619 "parser.yxx" { DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, (yyvsp[(2) - (2)]._egg))); } break; case 222: +#line 2623 "parser.yxx" + { + DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, (yyvsp[(2) - (2)]._egg))); +} + break; -/* Line 1464 of yacc.c */ -#line 2609 "parser.yxx" + case 223: +#line 2627 "parser.yxx" + { + DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, (yyvsp[(2) - (2)]._egg))); +} + break; + + case 224: +#line 2631 "parser.yxx" + { + DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, (yyvsp[(2) - (2)]._egg))); +} + break; + + case 225: +#line 2635 "parser.yxx" + { + DCAST(EggTable, egg_stack.back())->add_child(DCAST(EggNode, (yyvsp[(2) - (2)]._egg))); +} + break; + + case 226: +#line 2650 "parser.yxx" { EggSAnimData *anim_data = new EggSAnimData((yyvsp[(2) - (2)]._string)); egg_stack.push_back(anim_data); } break; - case 223: - -/* Line 1464 of yacc.c */ -#line 2614 "parser.yxx" + case 227: +#line 2655 "parser.yxx" { (yyval._egg) = egg_stack.back(); egg_stack.pop_back(); } break; - case 225: - -/* Line 1464 of yacc.c */ -#line 2631 "parser.yxx" + case 229: +#line 2672 "parser.yxx" { EggSAnimData *anim_data = DCAST(EggSAnimData, egg_stack.back()); string name = (yyvsp[(3) - (6)]._string); @@ -4752,39 +4524,31 @@ yyreduce: } break; - case 226: - -/* Line 1464 of yacc.c */ -#line 2643 "parser.yxx" + case 230: +#line 2684 "parser.yxx" { DCAST(EggSAnimData, egg_stack.back())->set_data((yyvsp[(4) - (5)]._number_list)); } break; - case 227: - -/* Line 1464 of yacc.c */ -#line 2657 "parser.yxx" + case 231: +#line 2698 "parser.yxx" { EggXfmAnimData *anim_data = new EggXfmAnimData((yyvsp[(2) - (2)]._string)); egg_stack.push_back(anim_data); } break; - case 228: - -/* Line 1464 of yacc.c */ -#line 2662 "parser.yxx" + case 232: +#line 2703 "parser.yxx" { (yyval._egg) = egg_stack.back(); egg_stack.pop_back(); } break; - case 230: - -/* Line 1464 of yacc.c */ -#line 2679 "parser.yxx" + case 234: +#line 2720 "parser.yxx" { EggXfmAnimData *anim_data = DCAST(EggXfmAnimData, egg_stack.back()); string name = (yyvsp[(3) - (6)]._string); @@ -4803,39 +4567,31 @@ yyreduce: } break; - case 231: - -/* Line 1464 of yacc.c */ -#line 2696 "parser.yxx" + case 235: +#line 2737 "parser.yxx" { DCAST(EggXfmAnimData, egg_stack.back())->set_data((yyvsp[(4) - (5)]._number_list)); } break; - case 232: - -/* Line 1464 of yacc.c */ -#line 2710 "parser.yxx" + case 236: +#line 2751 "parser.yxx" { EggXfmSAnim *anim_group = new EggXfmSAnim((yyvsp[(2) - (2)]._string)); egg_stack.push_back(anim_group); } break; - case 233: - -/* Line 1464 of yacc.c */ -#line 2715 "parser.yxx" + case 237: +#line 2756 "parser.yxx" { (yyval._egg) = egg_stack.back(); egg_stack.pop_back(); } break; - case 235: - -/* Line 1464 of yacc.c */ -#line 2732 "parser.yxx" + case 239: +#line 2773 "parser.yxx" { EggXfmSAnim *anim_group = DCAST(EggXfmSAnim, egg_stack.back()); string name = (yyvsp[(3) - (6)]._string); @@ -4852,39 +4608,31 @@ yyreduce: } break; - case 236: - -/* Line 1464 of yacc.c */ -#line 2747 "parser.yxx" + case 240: +#line 2788 "parser.yxx" { DCAST(EggXfmSAnim, egg_stack.back())->add_child(DCAST(EggNode, (yyvsp[(2) - (2)]._egg))); } break; - case 237: - -/* Line 1464 of yacc.c */ -#line 2762 "parser.yxx" + case 241: +#line 2803 "parser.yxx" { EggAnimPreload *anim_preload = new EggAnimPreload((yyvsp[(2) - (2)]._string)); egg_stack.push_back(anim_preload); } break; - case 238: - -/* Line 1464 of yacc.c */ -#line 2767 "parser.yxx" + case 242: +#line 2808 "parser.yxx" { (yyval._egg) = egg_stack.back(); egg_stack.pop_back(); } break; - case 240: - -/* Line 1464 of yacc.c */ -#line 2784 "parser.yxx" + case 244: +#line 2825 "parser.yxx" { EggAnimPreload *anim_preload = DCAST(EggAnimPreload, egg_stack.back()); string name = (yyvsp[(3) - (6)]._string); @@ -4900,46 +4648,36 @@ yyreduce: } break; - case 241: - -/* Line 1464 of yacc.c */ -#line 2808 "parser.yxx" + case 245: +#line 2849 "parser.yxx" { (yyval._number_list) = PTA_double::empty_array(0); } break; - case 242: - -/* Line 1464 of yacc.c */ -#line 2812 "parser.yxx" + case 246: +#line 2853 "parser.yxx" { (yyval._number_list).push_back((double)(yyvsp[(2) - (2)]._number)); } break; - case 243: - -/* Line 1464 of yacc.c */ -#line 2826 "parser.yxx" + case 247: +#line 2867 "parser.yxx" { (yyval._number_list) = PTA_double::empty_array(0); } break; - case 244: - -/* Line 1464 of yacc.c */ -#line 2830 "parser.yxx" + case 248: +#line 2871 "parser.yxx" { (yyval._number_list).push_back((yyvsp[(2) - (2)]._number)); } break; - case 245: - -/* Line 1464 of yacc.c */ -#line 2844 "parser.yxx" + case 249: +#line 2885 "parser.yxx" { string name = (yyvsp[(1) - (1)]._string); Textures::iterator vpi = textures.find(name); @@ -4952,10 +4690,8 @@ yyreduce: } break; - case 246: - -/* Line 1464 of yacc.c */ -#line 2865 "parser.yxx" + case 250: +#line 2906 "parser.yxx" { string name = (yyvsp[(1) - (1)]._string); Materials::iterator vpi = materials.find(name); @@ -4968,10 +4704,8 @@ yyreduce: } break; - case 247: - -/* Line 1464 of yacc.c */ -#line 2886 "parser.yxx" + case 251: +#line 2927 "parser.yxx" { string name = (yyvsp[(1) - (1)]._string); VertexPools::iterator vpi = vertex_pools.find(name); @@ -4988,10 +4722,8 @@ yyreduce: } break; - case 248: - -/* Line 1464 of yacc.c */ -#line 2911 "parser.yxx" + case 252: +#line 2952 "parser.yxx" { string name = (yyvsp[(1) - (1)]._string); Groups::iterator vpi = groups.find(name); @@ -5004,102 +4736,80 @@ yyreduce: } break; - case 249: - -/* Line 1464 of yacc.c */ -#line 2932 "parser.yxx" + case 253: +#line 2973 "parser.yxx" { eggyyerror("Name required."); (yyval._string) = ""; } break; - case 252: - -/* Line 1464 of yacc.c */ -#line 2961 "parser.yxx" + case 256: +#line 3002 "parser.yxx" { eggyyerror("String required."); (yyval._string) = ""; } break; - case 254: - -/* Line 1464 of yacc.c */ -#line 2977 "parser.yxx" - { - (yyval._string) = ""; -} - break; - - case 256: - -/* Line 1464 of yacc.c */ -#line 2995 "parser.yxx" - { - (yyval._string) = (yyvsp[(1) - (1)]._string); -} - break; - - case 257: - -/* Line 1464 of yacc.c */ -#line 2999 "parser.yxx" - { - (yyval._string) = (yyvsp[(1) - (1)]._string); -} - break; - - case 259: - -/* Line 1464 of yacc.c */ -#line 3016 "parser.yxx" + case 258: +#line 3018 "parser.yxx" { (yyval._string) = ""; } break; case 260: - -/* Line 1464 of yacc.c */ -#line 3020 "parser.yxx" - { - (yyval._string) = (yyvsp[(1) - (1)]._string); -} - break; - - case 261: - -/* Line 1464 of yacc.c */ #line 3036 "parser.yxx" { (yyval._string) = (yyvsp[(1) - (1)]._string); } break; - case 262: - -/* Line 1464 of yacc.c */ + case 261: #line 3040 "parser.yxx" { + (yyval._string) = (yyvsp[(1) - (1)]._string); +} + break; + + case 263: +#line 3057 "parser.yxx" + { + (yyval._string) = ""; +} + break; + + case 264: +#line 3061 "parser.yxx" + { + (yyval._string) = (yyvsp[(1) - (1)]._string); +} + break; + + case 265: +#line 3077 "parser.yxx" + { + (yyval._string) = (yyvsp[(1) - (1)]._string); +} + break; + + case 266: +#line 3081 "parser.yxx" + { (yyval._string) = (yyvsp[(1) - (2)]._string) + "\n" + (yyvsp[(2) - (2)]._string); } break; - case 264: - -/* Line 1464 of yacc.c */ -#line 3055 "parser.yxx" + case 268: +#line 3096 "parser.yxx" { (yyval._number) = (yyvsp[(1) - (1)]._ulong); } break; - case 265: - -/* Line 1464 of yacc.c */ -#line 3070 "parser.yxx" + case 269: +#line 3111 "parser.yxx" { (yyval._number) = (yyvsp[(1) - (1)]._number); (yyval._ulong) = (unsigned long)(yyvsp[(1) - (1)]._number); @@ -5107,10 +4817,8 @@ yyreduce: } break; - case 266: - -/* Line 1464 of yacc.c */ -#line 3076 "parser.yxx" + case 270: +#line 3117 "parser.yxx" { (yyval._number) = (yyvsp[(1) - (1)]._ulong); (yyval._ulong) = (yyvsp[(1) - (1)]._ulong); @@ -5118,10 +4826,8 @@ yyreduce: } break; - case 267: - -/* Line 1464 of yacc.c */ -#line 3082 "parser.yxx" + case 271: +#line 3123 "parser.yxx" { (yyval._number) = 0.0; (yyval._ulong) = 0; @@ -5129,10 +4835,8 @@ yyreduce: } break; - case 268: - -/* Line 1464 of yacc.c */ -#line 3099 "parser.yxx" + case 272: +#line 3140 "parser.yxx" { int i = (int)(yyvsp[(1) - (1)]._number); if ((double)i != (yyvsp[(1) - (1)]._number)) { @@ -5142,19 +4846,16 @@ yyreduce: } break; - case 269: - -/* Line 1464 of yacc.c */ -#line 3107 "parser.yxx" + case 273: +#line 3148 "parser.yxx" { (yyval._number) = (yyvsp[(1) - (1)]._ulong); } break; - -/* Line 1464 of yacc.c */ -#line 5158 "y.tab.c" +/* Line 1267 of yacc.c. */ +#line 4859 "y.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -5165,6 +4866,7 @@ yyreduce: *++yyvsp = yyval; + /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -5229,7 +4931,7 @@ yyerrlab: if (yyerrstatus == 3) { - /* If just tried and failed to reuse lookahead token after an + /* If just tried and failed to reuse look-ahead token after an error, discard it. */ if (yychar <= YYEOF) @@ -5246,7 +4948,7 @@ yyerrlab: } } - /* Else will try to reuse lookahead token after shifting the error + /* Else will try to reuse look-ahead token after shifting the error token. */ goto yyerrlab1; @@ -5303,6 +5005,9 @@ yyerrlab1: YY_STACK_PRINT (yyss, yyssp); } + if (yyn == YYFINAL) + YYACCEPT; + *++yyvsp = yylval; @@ -5327,7 +5032,7 @@ yyabortlab: yyresult = 1; goto yyreturn; -#if !defined(yyoverflow) || YYERROR_VERBOSE +#ifndef yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -5338,7 +5043,7 @@ yyexhaustedlab: #endif yyreturn: - if (yychar != YYEMPTY) + if (yychar != YYEOF && yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); /* Do not reclaim the symbols of the rule which action triggered diff --git a/panda/src/egg/parser.h.prebuilt b/panda/src/egg/parser.h.prebuilt index 1a7658b4f4..fcab27ff17 100644 --- a/panda/src/egg/parser.h.prebuilt +++ b/panda/src/egg/parser.h.prebuilt @@ -1,22 +1,24 @@ -/* A Bison parser, made by GNU Bison 2.4.2. */ +/* A Bison parser, made by GNU Bison 2.3. */ /* Skeleton interface for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 Free Software - Foundation, Inc. - - This program is free software: you can redistribute it and/or modify + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - + the Free Software Foundation; either version 2, or (at your option) + any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -27,11 +29,10 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ - /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -114,17 +115,18 @@ TXT = 331, UKNOTS = 332, UV = 333, - VKNOTS = 334, - VERTEX = 335, - VERTEXANIM = 336, - VERTEXPOOL = 337, - VERTEXREF = 338, - XFMANIM = 339, - XFMSANIM = 340, - START_EGG = 341, - START_GROUP_BODY = 342, - START_TEXTURE_BODY = 343, - START_PRIMITIVE_BODY = 344 + AUX = 334, + VKNOTS = 335, + VERTEX = 336, + VERTEXANIM = 337, + VERTEXPOOL = 338, + VERTEXREF = 339, + XFMANIM = 340, + XFMSANIM = 341, + START_EGG = 342, + START_GROUP_BODY = 343, + START_TEXTURE_BODY = 344, + START_PRIMITIVE_BODY = 345 }; #endif /* Tokens. */ @@ -204,27 +206,28 @@ #define TXT 331 #define UKNOTS 332 #define UV 333 -#define VKNOTS 334 -#define VERTEX 335 -#define VERTEXANIM 336 -#define VERTEXPOOL 337 -#define VERTEXREF 338 -#define XFMANIM 339 -#define XFMSANIM 340 -#define START_EGG 341 -#define START_GROUP_BODY 342 -#define START_TEXTURE_BODY 343 -#define START_PRIMITIVE_BODY 344 +#define AUX 334 +#define VKNOTS 335 +#define VERTEX 336 +#define VERTEXANIM 337 +#define VERTEXPOOL 338 +#define VERTEXREF 339 +#define XFMANIM 340 +#define XFMSANIM 341 +#define START_EGG 342 +#define START_GROUP_BODY 343 +#define START_TEXTURE_BODY 344 +#define START_PRIMITIVE_BODY 345 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED - +typedef int YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 #endif extern YYSTYPE eggyylval; -