#line 2 "lexer.c" #line 4 "lexer.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define yy_create_buffer yypp__create_buffer #define yy_delete_buffer yypp__delete_buffer #define yy_flex_debug yypp__flex_debug #define yy_init_buffer yypp__init_buffer #define yy_flush_buffer yypp__flush_buffer #define yy_load_buffer_state yypp__load_buffer_state #define yy_switch_to_buffer yypp__switch_to_buffer #define yyin yypp_in #define yyleng yypp_leng #define yylex yypp_lex #define yylineno yypp_lineno #define yyout yypp_out #define yyrestart yypp_restart #define yytext yypp_text #define yywrap yypp_wrap #define yyalloc yypp_alloc #define yyrealloc yypp_realloc #define yyfree yypp_free #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 33 #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 __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 */ #if __STDC__ #define YY_USE_CONST #endif /* __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 yypp_restart(yypp_in ) #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 yypp_leng; extern FILE *yypp_in, *yypp_out; #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 yypp_text. */ \ 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 yypp_text again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). */ #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef unsigned int 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 yypp_restart()), so that the user can continue scanning by * just pointing yypp_in 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 yypp_text is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int yypp_leng; /* 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 yypp_wrap()'s to do buffer switches * instead of setting up a fresh yypp_in. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yypp_restart (FILE *input_file ); void yypp__switch_to_buffer (YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE yypp__create_buffer (FILE *file,int size ); void yypp__delete_buffer (YY_BUFFER_STATE b ); void yypp__flush_buffer (YY_BUFFER_STATE b ); void yypp_push_buffer_state (YY_BUFFER_STATE new_buffer ); void yypp_pop_buffer_state (void ); static void yypp_ensure_buffer_stack (void ); static void yypp__load_buffer_state (void ); static void yypp__init_buffer (YY_BUFFER_STATE b,FILE *file ); #define YY_FLUSH_BUFFER yypp__flush_buffer(YY_CURRENT_BUFFER ) YY_BUFFER_STATE yypp__scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE yypp__scan_string (yyconst char *yy_str ); YY_BUFFER_STATE yypp__scan_bytes (yyconst char *bytes,int len ); void *yypp_alloc (yy_size_t ); void *yypp_realloc (void *,yy_size_t ); void yypp_free (void * ); #define yy_new_buffer yypp__create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yypp_ensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yypp__create_buffer(yypp_in,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yypp_ensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yypp__create_buffer(yypp_in,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef unsigned char YY_CHAR; FILE *yypp_in = (FILE *) 0, *yypp_out = (FILE *) 0; typedef int yy_state_type; extern int yypp_lineno; int yypp_lineno = 1; extern char *yypp_text; #define yytext_ptr yypp_text 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 yypp_text. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ yypp_leng = (size_t) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 306 #define YY_END_OF_BUFFER 307 /* 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[1101] = { 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, 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, 0, 0, 0, 0, 0, 0, 0, 307, 1, 5, 3, 4, 5, 186, 159, 22, 11, 160, 12, 161, 162, 163, 13, 164, 165, 166, 167, 168, 169, 170, 171, 113, 172, 173, 174, 175, 176, 177, 112, 112, 178, 179, 180, 181, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 182, 183, 184, 185, 10, 186, 186, 186, 159, 161, 177, 23, 23, 23, 23, 23, 23, 206, 205, 203, 202, 206, 204, 206, 206, 206, 214, 213, 214, 214, 214, 218, 306, 217, 218, 222, 221, 222, 237, 236, 229, 230, 231, 231, 232, 233, 234, 235, 237, 237, 237, 237, 269, 268, 11, 267, 269, 266, 269, 266, 266, 266, 266, 266, 266, 10, 269, 269, 269, 210, 203, 202, 210, 210, 210, 210, 274, 275, 270, 271, 272, 274, 273, 274, 274, 274, 274, 207, 203, 202, 207, 207, 207, 207, 280, 280, 279, 277, 280, 278, 280, 280, 280, 280, 293, 290, 291, 292, 293, 293, 293, 293, 285, 286, 287, 288, 284, 281, 282, 283, 208, 203, 202, 208, 208, 208, 208, 297, 297, 295, 297, 297, 209, 203, 202, 209, 202, 202, 202, 202, 202, 202, 209, 209, 209, 241, 238, 11, 241, 241, 241, 241, 10, 158, 112, 195, 190, 194, 193, 195, 195, 195, 195, 189, 199, 198, 199, 199, 199, 199, 301, 298, 300, 301, 305, 304, 302, 303, 0, 132, 133, 131, 134, 127, 135, 136, 137, 138, 139, 140, 141, 143, 144, 0, 113, 9, 7, 146, 113, 147, 129, 126, 128, 149, 150, 151, 152, 154, 0, 12, 13, 8, 0, 0, 155, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 157, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 0, 0, 212, 0, 0, 211, 216, 215, 220, 219, 228, 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266, 0, 0, 273, 0, 0, 0, 0, 277, 276, 278, 0, 0, 0, 289, 292, 0, 0, 0, 0, 0, 0, 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 193, 0, 0, 0, 0, 198, 0, 0, 298, 0, 299, 302, 2, 0, 142, 145, 9, 6, 148, 153, 120, 116, 118, 119, 125, 115, 123, 114, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 106, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, 0, 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, 260, 249, 0, 0, 0, 0, 276, 0, 0, 296, 0, 0, 0, 0, 0, 0, 240, 239, 0, 0, 0, 0, 0, 0, 0, 130, 6, 121, 0, 117, 0, 0, 99, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 64, 0, 0, 0, 68, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, 253, 242, 0, 0, 0, 0, 258, 247, 0, 0, 262, 251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 38, 0, 40, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 52, 53, 0, 0, 0, 0, 0, 0, 61, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, 86, 0, 0, 0, 0, 0, 0, 0, 95, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, 111, 0, 0, 102, 39, 41, 43, 103, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 58, 0, 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 91, 0, 93, 0, 0, 0, 98, 0, 0, 14, 15, 20, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 201, 0, 224, 0, 265, 0, 0, 256, 245, 257, 246, 0, 261, 250, 0, 0, 0, 0, 0, 0, 0, 192, 0, 197, 0, 100, 101, 0, 0, 0, 48, 50, 0, 0, 55, 56, 60, 63, 0, 0, 105, 0, 0, 0, 72, 0, 0, 75, 77, 78, 79, 0, 81, 82, 0, 0, 90, 0, 0, 0, 0, 0, 109, 0, 16, 21, 25, 17, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 243, 255, 244, 259, 248, 263, 252, 0, 0, 0, 0, 0, 0, 47, 0, 0, 66, 0, 0, 70, 0, 0, 0, 0, 0, 88, 0, 0, 94, 0, 97, 24, 18, 0, 28, 0, 0, 0, 33, 0, 0, 0, 0, 0, 188, 188, 187, 0, 0, 0, 0, 46, 0, 54, 0, 69, 0, 73, 0, 0, 83, 89, 92, 96, 26, 0, 31, 0, 0, 35, 0, 0, 0, 0, 187, 0, 0, 110, 0, 0, 67, 71, 0, 0, 30, 0, 34, 200, 223, 264, 191, 196, 45, 0, 0, 0, 32, 0, 0, 80, 51, 0, 0, 0, 0, 74, 0 } ; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1, 1, 1, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 24, 25, 26, 27, 28, 29, 10, 30, 30, 30, 30, 31, 32, 33, 33, 33, 33, 33, 34, 33, 33, 33, 33, 33, 33, 33, 33, 35, 33, 33, 36, 33, 33, 37, 38, 39, 40, 41, 10, 42, 43, 44, 45, 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, 1, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 73, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 1, 75, 75, 76, 76, 76, 76, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static yyconst flex_int32_t yy_meta[77] = { 0, 1, 1, 2, 1, 1, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 5, 3, 3, 3, 3, 6, 3, 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 10, 3, 3, 3, 1, 1, 1, 1, 1 } ; static yyconst flex_int16_t yy_base[1204] = { 0, 0, 0, 0, 2, 23, 98, 98, 100, 138, 0, 4, 6, 212, 213, 214, 215, 253, 0, 329, 0, 405, 0, 481, 0, 557, 0, 633, 0, 709, 0, 108, 110, 117, 216, 785, 0, 860, 862, 900, 0, 974, 975, 978, 981, 1048, 0, 3378, 3377, 1124, 0, 0, 0, 983, 991, 1200, 0, 3391, 3775, 3775, 3775, 3775, 3362, 3775, 3775, 3775, 3775, 3355, 3775, 3372, 106, 99, 3775, 3775, 3775, 3346, 91, 3775, 205, 219, 222, 831, 198, 3775, 859, 3345, 209, 3342, 3775, 2, 3775, 984, 3775, 3336, 185, 822, 831, 833, 937, 835, 3306, 827, 3305, 3291, 961, 166, 831, 3306, 961, 969, 837, 948, 965, 3295, 3775, 961, 3775, 3775, 3775, 803, 933, 959, 1275, 1273, 3314, 3775, 1017, 3339, 1281, 993, 3312, 3775, 3775, 3775, 3775, 1243, 3775, 964, 968, 972, 3775, 3775, 3312, 1018, 3311, 3775, 3775, 3775, 1277, 3775, 3775, 978, 3775, 3775, 3775, 3775, 3775, 1269, 3775, 3775, 3775, 3775, 1245, 1221, 1223, 1225, 3775, 3775, 3775, 3775, 1285, 3775, 1286, 3276, 3273, 3266, 3265, 3254, 3256, 3775, 1227, 1230, 1236, 3775, 3775, 3775, 1276, 1240, 1244, 1252, 3775, 3775, 3775, 3775, 3775, 1306, 3775, 3308, 1256, 1259, 1261, 3775, 3775, 3775, 1279, 1264, 1267, 1270, 3775, 1343, 3775, 1344, 1335, 3775, 3300, 1282, 1285, 1287, 3775, 3775, 3775, 3775, 11, 1289, 1291, 1293, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 1285, 1295, 1297, 1299, 3775, 1371, 3775, 3293, 1372, 3775, 3775, 3775, 1341, 3246, 3243, 3236, 3235, 3224, 3226, 1309, 1311, 1313, 3775, 3775, 3775, 0, 1371, 0, 3278, 3775, 3775, 1333, 3775, 242, 3775, 3775, 1353, 1318, 1321, 1323, 3775, 3775, 3775, 1362, 1328, 1332, 1334, 3775, 1396, 3775, 1406, 3775, 3775, 0, 3775, 3205, 3775, 3775, 3261, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3255, 3775, 3243, 1374, 1395, 0, 3775, 3775, 3775, 3775, 3775, 3775, 3235, 3775, 3775, 3775, 3234, 1406, 3775, 3775, 3775, 1406, 1434, 3775, 3208, 3198, 3190, 3182, 3186, 3195, 1356, 3191, 3190, 1368, 1388, 3161, 3167, 3161, 3151, 1357, 3159, 3155, 3144, 3152, 3140, 0, 1393, 3138, 3131, 3137, 3119, 3121, 3135, 3132, 1411, 3129, 1397, 3115, 960, 187, 3113, 3108, 78, 1364, 3104, 1409, 3103, 3093, 1390, 3102, 3093, 3083, 3775, 3775, 3775, 1390, 1398, 1466, 1454, 3112, 1467, 3087, 1429, 1436, 3082, 3072, 3068, 1512, 1492, 1468, 3093, 1484, 1389, 3074, 3086, 1513, 1519, 3775, 1413, 1420, 3775, 1565, 3091, 3775, 3775, 3775, 3775, 3775, 3775, 1546, 1552, 3775, 1424, 1430, 1578, 1584, 3066, 3042, 3048, 3040, 1491, 3034, 3775, 1436, 1450, 3775, 1474, 1480, 1630, 3083, 1504, 1611, 3775, 1500, 1507, 1631, 3775, 3775, 1513, 1530, 1636, 3082, 1638, 1644, 3775, 3038, 3021, 3027, 3012, 3031, 3012, 3055, 3034, 1501, 1646, 1631, 1637, 3775, 1532, 1539, 1663, 1669, 3775, 1546, 1583, 1664, 1715, 3775, 0, 3775, 3029, 3775, 3775, 2992, 0, 3775, 3775, 1460, 3016, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 1697, 1703, 3001, 0, 2977, 1593, 2979, 2981, 2976, 2977, 2954, 2952, 2946, 1597, 2960, 2955, 3775, 2950, 2950, 2945, 2929, 1634, 2936, 2921, 2931, 0, 2926, 2915, 3775, 2913, 0, 2914, 2904, 2897, 0, 2901, 2874, 3775, 2886, 2860, 2861, 2868, 2862, 2856, 2830, 2827, 2821, 2696, 2680, 2678, 2675, 2678, 2668, 2671, 2679, 0, 2663, 2652, 2657, 2648, 2641, 2656, 2653, 2652, 2640, 2651, 1592, 2650, 2629, 1591, 2630, 2612, 1730, 2626, 2614, 2621, 2617, 1716, 1749, 1767, 1599, 1785, 1803, 3775, 1616, 1821, 1839, 1682, 1682, 2604, 1689, 3775, 3775, 2614, 1690, 1625, 1679, 1751, 1682, 1686, 3775, 2604, 1714, 2587, 2602, 2593, 2597, 3775, 3775, 1718, 1857, 1875, 1691, 1893, 1911, 1704, 3775, 0, 3775, 2602, 3775, 1929, 1947, 3775, 2584, 3775, 0, 2573, 2553, 0, 2559, 0, 2561, 0, 2546, 2552, 2543, 2548, 2535, 2535, 2542, 2526, 0, 0, 2529, 2519, 2515, 2527, 2511, 3775, 2511, 0, 2510, 3775, 0, 2521, 2503, 3775, 3775, 2502, 2505, 2488, 2500, 2495, 2484, 2473, 2470, 2456, 2453, 2467, 2453, 2458, 2463, 2457, 2447, 0, 2435, 0, 3775, 1950, 2443, 2435, 2434, 2419, 0, 2416, 2417, 2429, 3775, 2423, 1956, 2418, 2420, 2420, 2401, 2394, 1780, 2403, 2400, 2391, 2397, 2389, 2390, 1958, 2389, 1747, 1933, 2384, 2360, 2363, 1994, 2000, 2026, 2032, 3775, 2058, 2064, 3775, 3775, 2371, 2358, 2353, 2358, 3775, 3775, 2359, 2346, 3775, 3775, 2357, 2356, 2332, 2327, 2332, 2335, 2322, 2333, 2318, 2090, 2096, 2122, 2128, 2365, 2154, 2160, 2313, 3775, 2325, 0, 3775, 0, 3775, 0, 3775, 0, 0, 2314, 2299, 2300, 2303, 2302, 2297, 3775, 3775, 2297, 2279, 2284, 0, 0, 2293, 3775, 2277, 3775, 2269, 2264, 2259, 2255, 0, 2254, 2265, 2264, 2246, 2260, 2236, 0, 2245, 2242, 2241, 2223, 2234, 2235, 3775, 0, 3775, 2230, 2230, 2232, 0, 2204, 0, 2216, 3775, 2207, 2212, 0, 2194, 2196, 1781, 1816, 2198, 2185, 2196, 2196, 2165, 1782, 2172, 2178, 2174, 2161, 2175, 2158, 2170, 2166, 2186, 2192, 2218, 2224, 2250, 2256, 2152, 2150, 2180, 2179, 2131, 2174, 2129, 2123, 2135, 0, 0, 2121, 0, 2120, 2117, 2282, 2288, 2314, 2320, 3775, 2346, 3775, 0, 0, 3775, 3775, 3775, 3775, 3775, 3775, 2118, 2099, 2096, 0, 0, 2112, 2105, 0, 0, 3775, 3775, 0, 0, 2103, 2106, 0, 2091, 3775, 2100, 2070, 0, 2084, 2065, 0, 3775, 0, 0, 2082, 0, 0, 2056, 3775, 2069, 0, 2061, 3775, 2068, 3775, 2046, 2045, 2031, 3775, 0, 2045, 1799, 1818, 3775, 1834, 1836, 1852, 2038, 2039, 1853, 2041, 1854, 2032, 2011, 2013, 2014, 2011, 2007, 2352, 3775, 2378, 3775, 2384, 3775, 2038, 2037, 3775, 3775, 3775, 3775, 2036, 3775, 3775, 2021, 0, 0, 0, 0, 1989, 2410, 3775, 2416, 3775, 2442, 3775, 3775, 1986, 1981, 0, 3775, 3775, 1980, 1958, 3775, 3775, 3775, 3775, 0, 1968, 3775, 1948, 0, 1953, 3775, 1939, 1940, 3775, 3775, 3775, 3775, 1952, 3775, 3775, 1938, 0, 3775, 1922, 1921, 0, 1919, 0, 3775, 1870, 1871, 3775, 1872, 1888, 1889, 1901, 1890, 1906, 1874, 1852, 1831, 1907, 1821, 1810, 2448, 2474, 2480, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 2526, 2507, 2513, 2539, 1781, 0, 3775, 1795, 0, 3775, 1777, 0, 3775, 1776, 0, 1745, 1761, 0, 3775, 0, 0, 3775, 0, 3775, 1908, 1924, 1925, 1926, 1728, 1942, 1722, 1943, 1723, 1944, 2545, 2571, 2577, 3775, 2623, 3775, 2604, 2610, 2636, 1676, 3775, 1660, 3775, 0, 3775, 0, 3775, 1597, 1527, 3775, 3775, 3775, 3775, 1961, 1979, 1980, 1524, 1981, 2008, 2642, 2668, 2674, 2720, 3775, 2701, 2707, 3775, 0, 1477, 3775, 3775, 1467, 1454, 2027, 2059, 2091, 3775, 3775, 3775, 3775, 3775, 3775, 1370, 1303, 0, 2123, 0, 998, 3775, 3775, 853, 57, 44, 0, 3775, 3775, 2754, 2764, 2774, 2784, 2794, 2804, 2814, 2824, 2834, 2844, 2854, 2864, 2872, 2880, 2886, 2895, 2904, 2914, 2924, 2934, 2944, 2954, 2964, 2974, 2984, 2994, 3004, 3014, 3024, 3034, 3044, 3054, 3064, 3074, 3084, 3094, 3104, 3114, 3124, 3134, 3144, 3154, 3164, 3174, 3184, 3194, 3204, 3214, 3224, 3234, 3244, 3254, 3264, 3274, 3284, 3294, 3304, 3314, 3324, 3334, 3344, 3354, 3364, 3374, 3384, 3394, 3404, 3414, 3424, 3434, 3444, 3454, 3464, 3474, 3484, 3494, 3504, 3514, 3524, 3534, 3544, 3554, 3564, 3574, 3584, 3594, 3604, 3614, 3624, 3634, 3644, 3654, 3664, 3674, 3684, 3694, 3704, 3714, 3724, 3734, 3744, 3754, 3764 } ; static yyconst flex_int16_t yy_def[1204] = { 0, 1101, 1101, 1102, 1102, 1100, 5, 1103, 1103, 1100, 9, 1104, 1104, 1105, 1105, 1106, 1106, 1100, 17, 1100, 19, 1100, 21, 1100, 23, 1100, 25, 1100, 27, 1100, 29, 1107, 1107, 1108, 1108, 1100, 35, 1109, 1109, 1100, 39, 1110, 1110, 5, 5, 1100, 45, 45, 45, 1100, 49, 1107, 1107, 1111, 1111, 1100, 55, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1112, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1113, 1100, 1114, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1115, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1116, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1117, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1118, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1119, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1112, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1120, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1120, 1100, 1113, 1114, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1115, 1100, 1100, 1100, 1100, 1100, 1121, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1122, 1123, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1124, 1100, 1100, 1100, 1100, 1125, 1100, 1100, 1100, 1126, 1127, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1128, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1129, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1130, 1100, 1100, 1131, 1100, 1100, 1100, 1132, 1100, 1100, 1100, 1100, 1100, 1100, 1130, 1100, 1100, 1131, 1100, 1132, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1121, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1133, 1100, 1100, 1134, 1100, 1135, 1100, 1136, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1137, 1138, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1139, 1100, 1100, 1140, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1141, 1100, 1142, 1100, 1100, 1100, 1100, 1100, 1100, 1143, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1144, 1100, 1145, 1100, 1146, 1100, 1147, 1148, 1149, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1150, 1151, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1152, 1100, 1100, 1100, 1100, 1100, 1100, 1153, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1154, 1100, 1100, 1100, 1100, 1155, 1100, 1156, 1100, 1100, 1100, 1100, 1157, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1158, 1159, 1100, 1160, 1100, 1100, 1100, 1158, 1159, 1100, 1160, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1161, 1162, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1163, 1164, 1100, 1100, 1165, 1166, 1100, 1100, 1167, 1168, 1100, 1100, 1169, 1100, 1100, 1100, 1100, 1170, 1100, 1100, 1171, 1100, 1172, 1173, 1174, 1175, 1176, 1100, 1100, 1100, 1177, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1178, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1179, 1180, 1100, 1100, 1100, 1100, 1181, 1100, 1100, 1182, 1179, 1180, 1181, 1182, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1183, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1184, 1100, 1100, 1100, 1185, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1186, 1100, 1100, 1100, 1187, 1100, 1188, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1189, 1100, 1100, 1100, 1100, 1190, 1100, 1100, 1191, 1100, 1100, 1192, 1100, 1100, 1193, 1100, 1100, 1194, 1100, 1195, 1196, 1100, 1197, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1198, 1100, 1199, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1200, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1201, 1100, 1202, 1100, 1100, 1100, 1100, 1100, 1100, 1203, 1100, 0, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100 } ; static yyconst flex_int16_t yy_nxt[3852] = { 0, 1100, 1100, 60, 61, 60, 61, 141, 143, 141, 323, 1100, 143, 440, 441, 324, 1100, 440, 1100, 1100, 142, 62, 144, 62, 63, 64, 65, 63, 66, 64, 67, 68, 69, 63, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 81, 82, 83, 84, 85, 86, 87, 88, 88, 88, 88, 89, 88, 88, 90, 91, 92, 93, 88, 94, 95, 96, 97, 98, 99, 100, 88, 101, 88, 88, 102, 103, 104, 105, 106, 88, 107, 108, 109, 110, 111, 112, 113, 88, 88, 114, 115, 116, 117, 63, 118, 119, 120, 121, 122, 65, 128, 65, 122, 1098, 128, 123, 301, 129, 226, 298, 226, 227, 226, 227, 226, 1097, 302, 126, 146, 126, 228, 229, 228, 229, 299, 124, 543, 130, 295, 231, 232, 296, 297, 233, 127, 544, 127, 131, 131, 131, 131, 132, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 133, 133, 131, 131, 131, 131, 131, 131, 134, 134, 134, 134, 134, 134, 134, 131, 135, 131, 131, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, 131, 131, 131, 131, 131, 136, 137, 138, 139, 146, 146, 146, 146, 146, 147, 147, 313, 357, 303, 358, 314, 150, 150, 539, 231, 232, 304, 305, 233, 306, 320, 321, 309, 307, 329, 308, 308, 310, 459, 330, 540, 331, 459, 311, 148, 148, 151, 151, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 152, 153, 152, 154, 155, 152, 152, 152, 152, 152, 152, 156, 157, 158, 159, 160, 161, 159, 152, 162, 152, 152, 159, 156, 156, 156, 156, 157, 158, 159, 159, 159, 159, 159, 160, 159, 159, 159, 159, 159, 159, 159, 159, 161, 159, 159, 159, 159, 159, 152, 152, 152, 152, 152, 152, 163, 164, 165, 166, 166, 167, 166, 168, 166, 166, 166, 166, 166, 166, 166, 166, 169, 166, 166, 166, 166, 166, 166, 170, 166, 166, 166, 166, 166, 166, 166, 166, 171, 171, 171, 171, 171, 171, 171, 166, 172, 166, 166, 171, 173, 174, 175, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 176, 177, 171, 171, 171, 171, 171, 171, 171, 171, 178, 171, 171, 166, 166, 166, 166, 166, 179, 180, 181, 182, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 184, 184, 183, 183, 183, 183, 183, 183, 185, 185, 185, 185, 185, 185, 185, 183, 186, 183, 183, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 183, 183, 183, 183, 183, 183, 187, 188, 189, 190, 190, 191, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 192, 193, 190, 190, 194, 190, 190, 195, 190, 190, 190, 190, 190, 190, 190, 190, 196, 196, 196, 196, 196, 196, 196, 190, 197, 190, 190, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 190, 190, 190, 190, 190, 190, 198, 199, 200, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 202, 202, 201, 201, 201, 201, 201, 201, 203, 203, 203, 203, 203, 203, 203, 201, 204, 201, 201, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 201, 201, 201, 201, 201, 201, 205, 206, 207, 208, 209, 210, 208, 208, 209, 208, 208, 211, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 212, 208, 208, 208, 208, 208, 208, 208, 208, 213, 213, 213, 213, 213, 213, 213, 208, 214, 208, 208, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 208, 208, 208, 208, 208, 208, 215, 216, 217, 218, 218, 219, 218, 218, 218, 218, 218, 220, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 221, 221, 221, 221, 221, 221, 221, 218, 222, 218, 218, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 218, 218, 218, 218, 218, 218, 223, 224, 225, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 235, 235, 234, 234, 234, 234, 234, 234, 236, 236, 236, 236, 236, 236, 236, 234, 237, 234, 234, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 234, 234, 234, 234, 234, 234, 238, 239, 240, 242, 243, 242, 243, 242, 312, 242, 244, 315, 244, 332, 335, 350, 379, 379, 345, 333, 339, 336, 334, 351, 316, 337, 317, 318, 338, 346, 340, 359, 347, 370, 360, 348, 1096, 312, 371, 245, 341, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 246, 246, 246, 246, 246, 246, 248, 248, 248, 248, 248, 248, 248, 246, 249, 246, 246, 248, 250, 251, 252, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 253, 254, 248, 248, 248, 248, 248, 248, 248, 248, 255, 248, 248, 246, 246, 246, 246, 246, 246, 256, 257, 258, 260, 260, 261, 261, 267, 262, 262, 267, 285, 286, 325, 377, 285, 342, 411, 343, 285, 286, 263, 263, 285, 372, 396, 264, 264, 344, 354, 373, 380, 380, 355, 537, 374, 362, 363, 265, 265, 375, 366, 412, 356, 367, 326, 406, 287, 364, 268, 406, 365, 268, 538, 368, 287, 378, 381, 381, 309, 407, 369, 402, 402, 310, 397, 403, 403, 1095, 398, 404, 404, 327, 266, 266, 269, 270, 271, 269, 269, 270, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 272, 272, 272, 272, 272, 272, 272, 269, 273, 269, 269, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 272, 269, 269, 269, 269, 269, 269, 274, 275, 276, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 279, 279, 278, 278, 278, 278, 278, 278, 279, 279, 279, 279, 279, 279, 279, 278, 280, 278, 278, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 278, 278, 278, 278, 278, 278, 281, 282, 283, 288, 288, 289, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 288, 290, 290, 290, 290, 290, 290, 290, 288, 288, 288, 288, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 288, 288, 291, 288, 288, 288, 288, 288, 288, 382, 400, 385, 414, 382, 294, 393, 383, 409, 413, 393, 413, 325, 394, 413, 413, 416, 416, 417, 417, 418, 418, 427, 427, 309, 428, 428, 384, 401, 310, 415, 429, 429, 395, 400, 402, 402, 400, 410, 403, 403, 386, 387, 400, 419, 309, 388, 404, 404, 389, 310, 430, 430, 390, 431, 431, 432, 432, 391, 402, 402, 401, 403, 403, 401, 404, 404, 1092, 433, 435, 401, 420, 433, 435, 309, 434, 436, 437, 437, 310, 438, 438, 439, 439, 442, 442, 443, 443, 444, 444, 402, 402, 403, 403, 404, 404, 445, 448, 449, 400, 445, 448, 458, 446, 402, 402, 403, 403, 404, 404, 309, 460, 340, 462, 462, 310, 463, 463, 464, 464, 465, 470, 341, 467, 467, 470, 401, 468, 468, 469, 469, 471, 472, 312, 309, 471, 482, 512, 461, 499, 500, 513, 483, 484, 485, 503, 504, 466, 486, 545, 487, 491, 491, 546, 1091, 488, 489, 490, 505, 491, 491, 491, 312, 552, 506, 560, 553, 561, 533, 520, 534, 491, 491, 491, 491, 491, 491, 521, 478, 492, 492, 535, 548, 385, 530, 379, 379, 492, 492, 492, 531, 382, 549, 557, 557, 382, 385, 396, 383, 492, 492, 492, 492, 492, 492, 560, 563, 561, 402, 402, 609, 562, 610, 396, 564, 571, 571, 393, 384, 574, 574, 393, 386, 387, 394, 575, 575, 388, 583, 435, 389, 427, 427, 435, 390, 386, 387, 397, 1089, 391, 388, 398, 482, 389, 395, 586, 586, 390, 483, 484, 485, 1088, 391, 397, 486, 584, 487, 398, 569, 569, 1087, 488, 568, 490, 570, 570, 569, 569, 569, 430, 430, 600, 570, 570, 570, 587, 587, 506, 569, 569, 569, 569, 569, 569, 570, 570, 570, 570, 570, 570, 406, 572, 572, 1079, 406, 437, 437, 573, 573, 572, 572, 572, 589, 589, 407, 573, 573, 573, 442, 442, 1077, 572, 572, 572, 572, 572, 572, 573, 573, 573, 573, 573, 573, 576, 576, 590, 590, 462, 462, 577, 577, 576, 576, 576, 603, 603, 588, 577, 577, 577, 588, 467, 467, 576, 576, 576, 576, 576, 576, 577, 577, 577, 577, 577, 577, 433, 440, 441, 618, 433, 440, 445, 434, 591, 683, 445, 1076, 591, 446, 448, 449, 459, 619, 448, 684, 459, 601, 601, 606, 606, 627, 628, 602, 602, 601, 601, 601, 379, 379, 470, 602, 602, 602, 470, 402, 402, 601, 601, 601, 601, 601, 601, 602, 602, 602, 602, 602, 602, 604, 604, 635, 705, 705, 636, 605, 605, 604, 604, 604, 709, 427, 427, 605, 605, 605, 1073, 715, 719, 604, 604, 604, 604, 604, 604, 605, 605, 605, 605, 605, 605, 471, 472, 612, 612, 471, 694, 710, 711, 613, 613, 612, 612, 612, 716, 720, 687, 613, 613, 613, 687, 1072, 712, 612, 612, 612, 612, 612, 612, 613, 613, 613, 613, 613, 613, 430, 430, 588, 437, 437, 722, 588, 442, 442, 629, 695, 696, 462, 462, 1062, 697, 1061, 728, 698, 723, 701, 701, 699, 1059, 688, 467, 467, 700, 701, 701, 701, 687, 894, 902, 689, 687, 894, 902, 702, 702, 701, 701, 701, 701, 701, 701, 702, 702, 702, 560, 894, 561, 1053, 1052, 894, 809, 703, 703, 702, 702, 702, 702, 702, 702, 703, 703, 703, 895, 896, 895, 1050, 895, 1048, 895, 704, 704, 703, 703, 703, 703, 703, 703, 704, 704, 704, 976, 977, 978, 1046, 976, 1044, 978, 706, 706, 704, 704, 704, 704, 704, 704, 706, 706, 706, 979, 902, 983, 1034, 979, 902, 983, 707, 707, 706, 706, 706, 706, 706, 706, 707, 707, 707, 1025, 976, 978, 1033, 1025, 976, 978, 729, 729, 707, 707, 707, 707, 707, 707, 729, 729, 729, 979, 1026, 1028, 1031, 979, 1026, 1028, 730, 730, 729, 729, 729, 729, 729, 729, 730, 730, 730, 983, 1032, 1025, 1030, 983, 1032, 1025, 731, 731, 730, 730, 730, 730, 730, 730, 731, 731, 731, 1026, 1058, 1028, 1029, 1026, 1058, 1028, 732, 732, 731, 731, 731, 731, 731, 731, 732, 732, 732, 1060, 1032, 1063, 1027, 1060, 1032, 1063, 734, 734, 732, 732, 732, 732, 732, 732, 734, 734, 734, 694, 1058, 694, 1023, 1021, 1058, 1020, 735, 735, 734, 734, 734, 734, 734, 734, 735, 735, 735, 563, 1078, 1060, 1080, 1018, 1078, 1060, 1080, 810, 735, 735, 735, 735, 735, 735, 785, 1017, 1016, 1015, 1014, 786, 695, 696, 695, 696, 787, 697, 1012, 697, 698, 1063, 698, 1011, 699, 1063, 699, 814, 814, 700, 1009, 700, 1008, 815, 815, 814, 814, 814, 1006, 1005, 1078, 815, 815, 815, 1078, 1001, 1000, 814, 814, 814, 814, 814, 814, 815, 815, 815, 815, 815, 815, 816, 816, 998, 996, 994, 989, 817, 817, 816, 816, 816, 988, 987, 1090, 817, 817, 817, 1090, 986, 985, 816, 816, 816, 816, 816, 816, 817, 817, 817, 817, 817, 817, 818, 818, 984, 982, 981, 980, 819, 819, 818, 818, 818, 975, 973, 1080, 819, 819, 819, 1080, 972, 971, 818, 818, 818, 818, 818, 818, 819, 819, 819, 819, 819, 819, 835, 835, 970, 969, 967, 966, 836, 836, 835, 835, 835, 963, 958, 1090, 836, 836, 836, 1090, 957, 955, 835, 835, 835, 835, 835, 835, 836, 836, 836, 836, 836, 836, 837, 837, 954, 953, 951, 950, 838, 838, 837, 837, 837, 945, 944, 941, 838, 838, 838, 940, 939, 931, 837, 837, 837, 837, 837, 837, 838, 838, 838, 838, 838, 838, 840, 840, 930, 929, 928, 927, 841, 841, 840, 840, 840, 926, 925, 923, 841, 841, 841, 922, 920, 918, 840, 840, 840, 840, 840, 840, 841, 841, 841, 841, 841, 841, 911, 911, 917, 910, 909, 908, 912, 912, 911, 911, 911, 907, 906, 905, 912, 912, 912, 904, 903, 901, 911, 911, 911, 911, 911, 911, 912, 912, 912, 912, 912, 912, 913, 913, 900, 899, 898, 897, 914, 914, 913, 913, 913, 893, 892, 890, 914, 914, 914, 889, 888, 886, 913, 913, 913, 913, 913, 913, 914, 914, 914, 914, 914, 914, 915, 915, 884, 883, 882, 880, 916, 916, 915, 915, 915, 879, 878, 877, 916, 916, 916, 876, 875, 873, 915, 915, 915, 915, 915, 915, 916, 916, 916, 916, 916, 916, 932, 932, 872, 871, 870, 869, 933, 933, 932, 932, 932, 868, 866, 865, 933, 933, 933, 864, 863, 862, 932, 932, 932, 932, 932, 932, 933, 933, 933, 933, 933, 933, 934, 934, 861, 858, 857, 856, 935, 935, 934, 934, 934, 855, 854, 853, 935, 935, 935, 852, 851, 850, 934, 934, 934, 934, 934, 934, 935, 935, 935, 935, 935, 935, 936, 936, 843, 842, 839, 834, 990, 990, 936, 936, 936, 833, 832, 831, 990, 990, 990, 830, 829, 828, 936, 936, 936, 936, 936, 936, 990, 990, 990, 990, 990, 990, 991, 991, 827, 826, 825, 824, 992, 992, 991, 991, 991, 823, 822, 821, 992, 992, 992, 820, 813, 812, 991, 991, 991, 991, 991, 991, 992, 992, 992, 992, 992, 992, 1002, 1002, 811, 808, 807, 806, 1003, 1003, 1002, 1002, 1002, 805, 804, 803, 1003, 1003, 1003, 802, 801, 800, 1002, 1002, 1002, 1002, 1002, 1002, 1003, 1003, 1003, 1003, 1003, 1003, 1004, 1004, 799, 798, 797, 796, 1035, 1035, 1004, 1004, 1004, 795, 794, 793, 1035, 1035, 1035, 791, 790, 789, 1004, 1004, 1004, 1004, 1004, 1004, 1035, 1035, 1035, 1035, 1035, 1035, 1036, 1036, 788, 783, 781, 780, 1037, 1037, 1036, 1036, 1036, 779, 778, 777, 1037, 1037, 1037, 776, 775, 774, 1036, 1036, 1036, 1036, 1036, 1036, 1037, 1037, 1037, 1037, 1037, 1037, 1039, 1041, 1041, 773, 1039, 772, 771, 1042, 1042, 1041, 1041, 1041, 1040, 770, 769, 1042, 1042, 1042, 768, 767, 766, 1041, 1041, 1041, 1041, 1041, 1041, 1042, 1042, 1042, 1042, 1042, 1042, 1043, 1043, 765, 764, 762, 760, 1064, 1064, 1043, 1043, 1043, 759, 758, 757, 1064, 1064, 1064, 756, 755, 752, 1043, 1043, 1043, 1043, 1043, 1043, 1064, 1064, 1064, 1064, 1064, 1064, 1065, 1065, 751, 750, 749, 748, 1066, 1066, 1065, 1065, 1065, 747, 746, 745, 1066, 1066, 1066, 743, 741, 739, 1065, 1065, 1065, 1065, 1065, 1065, 1066, 1066, 1066, 1066, 1066, 1066, 1067, 1069, 1069, 738, 1067, 736, 733, 1070, 1070, 1069, 1069, 1069, 1068, 727, 726, 1070, 1070, 1070, 725, 724, 721, 1069, 1069, 1069, 1069, 1069, 1069, 1070, 1070, 1070, 1070, 1070, 1070, 1071, 1071, 717, 713, 693, 692, 1081, 1081, 1071, 1071, 1071, 691, 690, 686, 1081, 1081, 1081, 685, 682, 681, 1071, 1071, 1071, 1071, 1071, 1071, 1081, 1081, 1081, 1081, 1081, 1081, 1082, 1082, 680, 678, 677, 676, 1083, 1083, 1082, 1082, 1082, 675, 674, 673, 1083, 1083, 1083, 672, 671, 670, 1082, 1082, 1082, 1082, 1082, 1082, 1083, 1083, 1083, 1083, 1083, 1083, 1067, 1084, 1084, 668, 1067, 667, 666, 1085, 1085, 1084, 1084, 1084, 1068, 665, 664, 1085, 1085, 1085, 663, 662, 661, 1084, 1084, 1084, 1084, 1084, 1084, 1085, 1085, 1085, 1085, 1085, 1085, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 408, 408, 408, 408, 408, 408, 408, 408, 408, 408, 456, 660, 456, 456, 456, 456, 456, 456, 457, 457, 457, 659, 457, 457, 457, 457, 473, 658, 473, 473, 473, 479, 479, 479, 479, 479, 479, 479, 479, 479, 507, 507, 507, 507, 507, 507, 657, 656, 507, 507, 519, 519, 519, 519, 519, 519, 655, 654, 653, 519, 528, 528, 528, 528, 528, 528, 528, 652, 651, 528, 582, 582, 582, 582, 582, 582, 582, 650, 647, 582, 608, 646, 608, 608, 608, 608, 608, 608, 608, 608, 614, 614, 614, 614, 614, 614, 614, 645, 643, 614, 616, 616, 616, 616, 616, 616, 642, 641, 639, 616, 640, 640, 640, 640, 640, 640, 638, 637, 634, 640, 644, 644, 644, 644, 644, 644, 633, 632, 631, 644, 648, 648, 648, 648, 648, 648, 630, 629, 626, 648, 649, 649, 649, 649, 649, 649, 649, 625, 624, 649, 669, 669, 669, 669, 669, 669, 623, 622, 621, 669, 679, 679, 679, 679, 679, 679, 679, 620, 617, 679, 708, 708, 708, 708, 708, 708, 708, 615, 611, 708, 714, 714, 714, 714, 714, 714, 714, 478, 607, 714, 718, 718, 718, 718, 718, 718, 718, 599, 598, 718, 737, 737, 737, 737, 737, 737, 597, 596, 595, 737, 740, 740, 740, 740, 740, 740, 594, 593, 592, 740, 742, 742, 742, 742, 742, 742, 447, 436, 585, 742, 744, 744, 744, 744, 744, 744, 581, 580, 579, 744, 753, 753, 753, 753, 753, 753, 578, 1100, 394, 753, 754, 754, 754, 754, 754, 754, 563, 399, 567, 754, 761, 761, 761, 761, 761, 761, 566, 565, 559, 761, 763, 763, 763, 763, 763, 763, 558, 556, 555, 763, 782, 782, 782, 782, 782, 782, 554, 551, 550, 782, 784, 784, 784, 784, 784, 784, 547, 542, 541, 784, 792, 792, 792, 792, 792, 792, 536, 532, 529, 792, 844, 844, 844, 844, 844, 844, 527, 526, 525, 844, 845, 845, 845, 845, 845, 845, 524, 523, 522, 845, 846, 846, 846, 846, 846, 846, 518, 517, 516, 846, 847, 847, 847, 847, 847, 847, 515, 514, 511, 847, 848, 848, 848, 848, 848, 848, 510, 509, 508, 848, 849, 849, 849, 849, 849, 849, 849, 502, 501, 849, 859, 859, 859, 859, 859, 859, 498, 497, 496, 859, 860, 860, 860, 860, 860, 860, 495, 494, 493, 860, 867, 867, 867, 867, 867, 867, 481, 480, 477, 867, 874, 874, 874, 874, 874, 874, 476, 475, 474, 874, 881, 881, 881, 881, 881, 881, 325, 455, 454, 881, 885, 885, 885, 885, 885, 885, 453, 452, 451, 885, 887, 887, 887, 887, 887, 887, 450, 447, 325, 887, 891, 891, 891, 891, 891, 891, 325, 426, 425, 891, 919, 919, 919, 919, 919, 919, 424, 423, 422, 919, 921, 921, 921, 921, 921, 921, 421, 405, 405, 921, 924, 924, 924, 924, 924, 924, 399, 325, 392, 924, 937, 937, 937, 937, 937, 937, 376, 361, 353, 937, 938, 938, 938, 938, 938, 938, 352, 349, 328, 938, 942, 942, 942, 942, 942, 942, 322, 319, 300, 942, 943, 943, 943, 943, 943, 943, 294, 293, 292, 943, 946, 946, 946, 946, 946, 946, 1100, 277, 277, 946, 947, 947, 947, 947, 947, 947, 1100, 1100, 1100, 947, 948, 948, 948, 948, 948, 948, 1100, 1100, 1100, 948, 949, 949, 949, 949, 949, 949, 1100, 1100, 1100, 949, 952, 952, 952, 952, 952, 952, 1100, 1100, 1100, 952, 956, 956, 956, 956, 956, 956, 1100, 1100, 1100, 956, 959, 959, 959, 959, 959, 959, 1100, 1100, 1100, 959, 960, 960, 960, 960, 960, 960, 1100, 1100, 1100, 960, 961, 961, 961, 961, 961, 961, 1100, 1100, 1100, 961, 962, 962, 962, 962, 962, 962, 962, 1100, 1100, 962, 964, 964, 964, 964, 964, 964, 1100, 1100, 1100, 964, 965, 965, 965, 965, 965, 965, 1100, 1100, 1100, 965, 968, 968, 968, 968, 968, 968, 1100, 1100, 1100, 968, 974, 974, 974, 974, 974, 974, 1100, 1100, 1100, 974, 993, 993, 993, 993, 993, 993, 1100, 1100, 1100, 993, 995, 995, 995, 995, 995, 995, 1100, 1100, 1100, 995, 997, 997, 997, 997, 997, 997, 1100, 1100, 1100, 997, 999, 999, 999, 999, 999, 999, 1100, 1100, 1100, 999, 1007, 1007, 1007, 1007, 1007, 1007, 1100, 1100, 1100, 1007, 1010, 1010, 1010, 1010, 1010, 1010, 1100, 1100, 1100, 1010, 1013, 1013, 1013, 1013, 1013, 1013, 1100, 1100, 1100, 1013, 1019, 1019, 1019, 1019, 1019, 1019, 1100, 1100, 1100, 1019, 1022, 1022, 1022, 1022, 1022, 1022, 1100, 1100, 1100, 1022, 1024, 1024, 1024, 1024, 1024, 1024, 1100, 1100, 1100, 1024, 1038, 1038, 1038, 1038, 1038, 1038, 1100, 1100, 1100, 1038, 1045, 1045, 1045, 1045, 1045, 1045, 1100, 1100, 1100, 1045, 1047, 1047, 1047, 1047, 1047, 1047, 1100, 1100, 1100, 1047, 1049, 1049, 1049, 1049, 1049, 1049, 1100, 1100, 1100, 1049, 1051, 1051, 1051, 1051, 1051, 1051, 1100, 1100, 1100, 1051, 1054, 1054, 1054, 1054, 1054, 1054, 1100, 1100, 1100, 1054, 1055, 1055, 1055, 1055, 1055, 1055, 1100, 1100, 1100, 1055, 1056, 1056, 1056, 1056, 1056, 1056, 1100, 1100, 1100, 1056, 1057, 1057, 1057, 1057, 1057, 1057, 1100, 1100, 1100, 1057, 1074, 1074, 1074, 1074, 1074, 1074, 1100, 1100, 1100, 1074, 1075, 1075, 1075, 1075, 1075, 1075, 1100, 1100, 1100, 1075, 1086, 1086, 1086, 1086, 1086, 1086, 1100, 1100, 1100, 1086, 1093, 1093, 1093, 1093, 1093, 1093, 1100, 1100, 1100, 1093, 1094, 1094, 1094, 1094, 1094, 1094, 1100, 1100, 1100, 1094, 1099, 1099, 1099, 1099, 1099, 1099, 1100, 1100, 1100, 1099, 57, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100 } ; static yyconst flex_int16_t yy_chk[3852] = { 0, 0, 0, 3, 3, 4, 4, 11, 12, 12, 89, 0, 12, 222, 222, 89, 0, 222, 0, 0, 11, 3, 12, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 7, 8, 8, 6, 1097, 8, 6, 76, 8, 31, 71, 32, 31, 31, 32, 32, 1096, 76, 7, 33, 8, 31, 31, 32, 32, 71, 6, 367, 8, 70, 33, 33, 70, 70, 33, 7, 367, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 13, 14, 15, 16, 34, 13, 14, 82, 105, 78, 105, 82, 15, 16, 364, 34, 34, 78, 78, 34, 79, 86, 86, 80, 79, 94, 79, 79, 80, 270, 94, 364, 94, 270, 80, 13, 14, 15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 37, 37, 38, 38, 37, 81, 38, 37, 84, 38, 95, 96, 101, 119, 119, 99, 95, 97, 96, 95, 101, 84, 96, 84, 84, 96, 99, 97, 106, 99, 110, 106, 99, 1095, 81, 110, 37, 97, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 41, 42, 41, 42, 43, 41, 42, 44, 53, 53, 91, 115, 53, 98, 151, 98, 54, 54, 41, 42, 54, 111, 129, 41, 42, 98, 104, 111, 120, 120, 104, 363, 112, 108, 108, 41, 42, 112, 109, 151, 104, 109, 91, 143, 53, 108, 43, 143, 108, 44, 363, 109, 54, 115, 121, 121, 126, 143, 109, 137, 137, 126, 129, 138, 138, 1092, 129, 139, 139, 91, 41, 42, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 122, 135, 123, 162, 122, 123, 128, 122, 148, 157, 128, 157, 172, 128, 157, 157, 163, 163, 164, 164, 165, 165, 180, 180, 170, 181, 181, 122, 135, 170, 162, 182, 182, 128, 186, 187, 187, 204, 148, 188, 188, 123, 123, 237, 172, 195, 123, 189, 189, 123, 195, 198, 198, 123, 199, 199, 200, 200, 123, 205, 205, 186, 206, 206, 204, 207, 207, 1088, 209, 211, 237, 172, 209, 211, 212, 209, 211, 215, 215, 212, 216, 216, 217, 217, 223, 223, 224, 224, 225, 225, 238, 238, 239, 239, 240, 240, 242, 245, 245, 249, 242, 245, 268, 242, 256, 256, 257, 257, 258, 258, 263, 273, 268, 274, 274, 263, 275, 275, 276, 276, 280, 285, 268, 281, 281, 285, 249, 282, 282, 283, 283, 287, 287, 308, 309, 287, 322, 344, 273, 335, 335, 344, 322, 322, 322, 338, 338, 280, 322, 368, 322, 326, 326, 368, 1087, 322, 322, 322, 339, 326, 326, 326, 308, 373, 339, 397, 373, 397, 361, 351, 361, 326, 326, 326, 326, 326, 326, 351, 309, 327, 327, 361, 370, 383, 359, 380, 380, 327, 327, 327, 359, 382, 370, 381, 381, 382, 385, 394, 382, 327, 327, 327, 327, 327, 327, 387, 388, 387, 403, 403, 482, 387, 482, 396, 388, 404, 404, 393, 382, 417, 417, 393, 383, 383, 393, 418, 418, 383, 425, 435, 383, 428, 428, 435, 383, 385, 385, 394, 1077, 383, 385, 394, 392, 385, 393, 429, 429, 385, 392, 392, 392, 1076, 385, 396, 392, 425, 392, 396, 400, 400, 1073, 392, 392, 392, 401, 401, 400, 400, 400, 431, 431, 458, 401, 401, 401, 432, 432, 458, 400, 400, 400, 400, 400, 400, 401, 401, 401, 401, 401, 401, 406, 414, 414, 1061, 406, 438, 438, 415, 415, 414, 414, 414, 439, 439, 406, 415, 415, 415, 443, 443, 1053, 414, 414, 414, 414, 414, 414, 415, 415, 415, 415, 415, 415, 419, 419, 444, 444, 463, 463, 420, 420, 419, 419, 419, 464, 464, 436, 420, 420, 420, 436, 468, 468, 419, 419, 419, 419, 419, 419, 420, 420, 420, 420, 420, 420, 433, 440, 440, 496, 433, 440, 445, 433, 447, 560, 445, 1052, 447, 445, 448, 448, 459, 496, 448, 560, 459, 460, 460, 469, 469, 504, 504, 461, 461, 460, 460, 460, 557, 557, 470, 461, 461, 461, 470, 571, 571, 460, 460, 460, 460, 460, 460, 461, 461, 461, 461, 461, 461, 465, 465, 512, 575, 575, 512, 466, 466, 465, 465, 465, 578, 586, 586, 466, 466, 466, 1046, 581, 585, 465, 465, 465, 465, 465, 465, 466, 466, 466, 466, 466, 466, 471, 471, 491, 491, 471, 568, 578, 579, 492, 492, 491, 491, 491, 581, 585, 563, 492, 492, 492, 563, 1044, 579, 491, 491, 491, 491, 491, 491, 492, 492, 492, 492, 492, 492, 587, 587, 588, 589, 589, 593, 588, 590, 590, 600, 568, 568, 603, 603, 1033, 568, 1031, 600, 568, 593, 569, 569, 568, 1029, 563, 606, 606, 568, 569, 569, 569, 687, 798, 805, 563, 687, 798, 805, 570, 570, 569, 569, 569, 569, 569, 569, 570, 570, 570, 696, 894, 696, 1017, 1016, 894, 696, 572, 572, 570, 570, 570, 570, 570, 570, 572, 572, 572, 799, 799, 895, 1014, 799, 1011, 895, 573, 573, 572, 572, 572, 572, 572, 572, 573, 573, 573, 897, 897, 898, 1008, 897, 1005, 898, 576, 576, 573, 573, 573, 573, 573, 573, 576, 576, 576, 899, 902, 904, 989, 899, 902, 904, 577, 577, 576, 576, 576, 576, 576, 576, 577, 577, 577, 975, 976, 978, 988, 975, 976, 978, 601, 601, 577, 577, 577, 577, 577, 577, 601, 601, 601, 979, 980, 982, 986, 979, 980, 982, 602, 602, 601, 601, 601, 601, 601, 601, 602, 602, 602, 983, 987, 1025, 985, 983, 987, 1025, 604, 604, 602, 602, 602, 602, 602, 602, 604, 604, 604, 1026, 1027, 1028, 984, 1026, 1027, 1028, 605, 605, 604, 604, 604, 604, 604, 604, 605, 605, 605, 1030, 1032, 1034, 981, 1030, 1032, 1034, 612, 612, 605, 605, 605, 605, 605, 605, 612, 612, 612, 681, 1058, 694, 972, 970, 1058, 969, 613, 613, 612, 612, 612, 612, 612, 612, 613, 613, 613, 697, 1059, 1060, 1062, 966, 1059, 1060, 1062, 697, 613, 613, 613, 613, 613, 613, 670, 963, 958, 957, 955, 670, 681, 681, 694, 694, 670, 681, 953, 694, 681, 1063, 694, 951, 681, 1063, 694, 701, 701, 681, 945, 694, 944, 702, 702, 701, 701, 701, 940, 939, 1078, 702, 702, 702, 1078, 931, 926, 701, 701, 701, 701, 701, 701, 702, 702, 702, 702, 702, 702, 703, 703, 923, 918, 917, 910, 704, 704, 703, 703, 703, 909, 908, 1079, 704, 704, 704, 1079, 907, 906, 703, 703, 703, 703, 703, 703, 704, 704, 704, 704, 704, 704, 706, 706, 905, 903, 901, 900, 707, 707, 706, 706, 706, 893, 890, 1080, 707, 707, 707, 1080, 889, 888, 706, 706, 706, 706, 706, 706, 707, 707, 707, 707, 707, 707, 729, 729, 886, 884, 882, 880, 730, 730, 729, 729, 729, 877, 872, 1090, 730, 730, 730, 1090, 871, 869, 729, 729, 729, 729, 729, 729, 730, 730, 730, 730, 730, 730, 731, 731, 868, 866, 864, 863, 732, 732, 731, 731, 731, 856, 855, 852, 732, 732, 732, 851, 850, 834, 731, 731, 731, 731, 731, 731, 732, 732, 732, 732, 732, 732, 734, 734, 833, 831, 828, 827, 735, 735, 734, 734, 734, 826, 825, 824, 735, 735, 735, 823, 822, 821, 734, 734, 734, 734, 734, 734, 735, 735, 735, 735, 735, 735, 814, 814, 820, 813, 812, 811, 815, 815, 814, 814, 814, 810, 809, 808, 815, 815, 815, 807, 806, 804, 814, 814, 814, 814, 814, 814, 815, 815, 815, 815, 815, 815, 816, 816, 803, 802, 801, 800, 817, 817, 816, 816, 816, 797, 796, 794, 817, 817, 817, 793, 791, 789, 816, 816, 816, 816, 816, 816, 817, 817, 817, 817, 817, 817, 818, 818, 787, 786, 785, 781, 819, 819, 818, 818, 818, 780, 779, 778, 819, 819, 819, 777, 776, 774, 818, 818, 818, 818, 818, 818, 819, 819, 819, 819, 819, 819, 835, 835, 773, 772, 771, 770, 836, 836, 835, 835, 835, 769, 767, 766, 836, 836, 836, 765, 764, 762, 835, 835, 835, 835, 835, 835, 836, 836, 836, 836, 836, 836, 837, 837, 760, 757, 756, 755, 838, 838, 837, 837, 837, 752, 751, 750, 838, 838, 838, 749, 748, 747, 837, 837, 837, 837, 837, 837, 838, 838, 838, 838, 838, 838, 840, 840, 738, 736, 733, 728, 911, 911, 840, 840, 840, 727, 726, 725, 911, 911, 911, 724, 723, 722, 840, 840, 840, 840, 840, 840, 911, 911, 911, 911, 911, 911, 913, 913, 721, 720, 717, 716, 915, 915, 913, 913, 913, 713, 712, 711, 915, 915, 915, 710, 700, 699, 913, 913, 913, 913, 913, 913, 915, 915, 915, 915, 915, 915, 932, 932, 698, 695, 693, 692, 934, 934, 932, 932, 932, 691, 690, 689, 934, 934, 934, 688, 686, 685, 932, 932, 932, 932, 932, 932, 934, 934, 934, 934, 934, 934, 936, 936, 684, 683, 682, 680, 990, 990, 936, 936, 936, 678, 677, 676, 990, 990, 990, 674, 673, 672, 936, 936, 936, 936, 936, 936, 990, 990, 990, 990, 990, 990, 991, 991, 671, 667, 665, 664, 992, 992, 991, 991, 991, 663, 662, 661, 992, 992, 992, 660, 659, 658, 991, 991, 991, 991, 991, 991, 992, 992, 992, 992, 992, 992, 1001, 1002, 1002, 657, 1001, 656, 655, 1003, 1003, 1002, 1002, 1002, 1001, 654, 653, 1003, 1003, 1003, 652, 651, 650, 1002, 1002, 1002, 1002, 1002, 1002, 1003, 1003, 1003, 1003, 1003, 1003, 1004, 1004, 647, 646, 643, 641, 1035, 1035, 1004, 1004, 1004, 639, 638, 637, 1035, 1035, 1035, 636, 635, 632, 1004, 1004, 1004, 1004, 1004, 1004, 1035, 1035, 1035, 1035, 1035, 1035, 1036, 1036, 631, 630, 629, 628, 1037, 1037, 1036, 1036, 1036, 627, 626, 625, 1037, 1037, 1037, 623, 621, 619, 1036, 1036, 1036, 1036, 1036, 1036, 1037, 1037, 1037, 1037, 1037, 1037, 1039, 1041, 1041, 618, 1039, 615, 610, 1042, 1042, 1041, 1041, 1041, 1039, 597, 596, 1042, 1042, 1042, 595, 594, 592, 1041, 1041, 1041, 1041, 1041, 1041, 1042, 1042, 1042, 1042, 1042, 1042, 1043, 1043, 584, 580, 567, 566, 1064, 1064, 1043, 1043, 1043, 565, 564, 562, 1064, 1064, 1064, 561, 559, 558, 1043, 1043, 1043, 1043, 1043, 1043, 1064, 1064, 1064, 1064, 1064, 1064, 1065, 1065, 556, 555, 554, 553, 1066, 1066, 1065, 1065, 1065, 552, 551, 550, 1066, 1066, 1066, 549, 548, 547, 1065, 1065, 1065, 1065, 1065, 1065, 1066, 1066, 1066, 1066, 1066, 1066, 1067, 1069, 1069, 545, 1067, 544, 543, 1070, 1070, 1069, 1069, 1069, 1067, 542, 541, 1070, 1070, 1070, 540, 539, 538, 1069, 1069, 1069, 1069, 1069, 1069, 1070, 1070, 1070, 1070, 1070, 1070, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1113, 537, 1113, 1113, 1113, 1113, 1113, 1113, 1114, 1114, 1114, 536, 1114, 1114, 1114, 1114, 1115, 535, 1115, 1115, 1115, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1117, 1117, 1117, 1117, 1117, 1117, 534, 533, 1117, 1117, 1118, 1118, 1118, 1118, 1118, 1118, 532, 531, 530, 1118, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 529, 527, 1119, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 526, 524, 1120, 1121, 523, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 522, 520, 1122, 1123, 1123, 1123, 1123, 1123, 1123, 518, 517, 515, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 514, 513, 511, 1124, 1125, 1125, 1125, 1125, 1125, 1125, 510, 509, 508, 1125, 1126, 1126, 1126, 1126, 1126, 1126, 506, 505, 503, 1126, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 502, 501, 1127, 1128, 1128, 1128, 1128, 1128, 1128, 500, 499, 498, 1128, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 497, 495, 1129, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 493, 483, 1130, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 478, 475, 1131, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 457, 456, 1132, 1133, 1133, 1133, 1133, 1133, 1133, 455, 454, 453, 1133, 1134, 1134, 1134, 1134, 1134, 1134, 452, 451, 450, 1134, 1135, 1135, 1135, 1135, 1135, 1135, 446, 434, 426, 1135, 1136, 1136, 1136, 1136, 1136, 1136, 424, 423, 422, 1136, 1137, 1137, 1137, 1137, 1137, 1137, 421, 407, 399, 1137, 1138, 1138, 1138, 1138, 1138, 1138, 398, 395, 391, 1138, 1139, 1139, 1139, 1139, 1139, 1139, 390, 389, 386, 1139, 1140, 1140, 1140, 1140, 1140, 1140, 384, 376, 375, 1140, 1141, 1141, 1141, 1141, 1141, 1141, 374, 372, 371, 1141, 1142, 1142, 1142, 1142, 1142, 1142, 369, 366, 365, 1142, 1143, 1143, 1143, 1143, 1143, 1143, 362, 360, 358, 1143, 1144, 1144, 1144, 1144, 1144, 1144, 357, 356, 355, 1144, 1145, 1145, 1145, 1145, 1145, 1145, 354, 353, 352, 1145, 1146, 1146, 1146, 1146, 1146, 1146, 349, 348, 347, 1146, 1147, 1147, 1147, 1147, 1147, 1147, 346, 345, 343, 1147, 1148, 1148, 1148, 1148, 1148, 1148, 342, 341, 340, 1148, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 337, 336, 1149, 1150, 1150, 1150, 1150, 1150, 1150, 334, 333, 332, 1150, 1151, 1151, 1151, 1151, 1151, 1151, 331, 330, 329, 1151, 1152, 1152, 1152, 1152, 1152, 1152, 321, 317, 307, 1152, 1153, 1153, 1153, 1153, 1153, 1153, 305, 295, 292, 1153, 1154, 1154, 1154, 1154, 1154, 1154, 265, 255, 254, 1154, 1155, 1155, 1155, 1155, 1155, 1155, 253, 252, 251, 1155, 1156, 1156, 1156, 1156, 1156, 1156, 250, 244, 214, 1156, 1157, 1157, 1157, 1157, 1157, 1157, 197, 178, 177, 1157, 1158, 1158, 1158, 1158, 1158, 1158, 176, 175, 174, 1158, 1159, 1159, 1159, 1159, 1159, 1159, 173, 144, 142, 1159, 1160, 1160, 1160, 1160, 1160, 1160, 130, 127, 124, 1160, 1161, 1161, 1161, 1161, 1161, 1161, 113, 107, 103, 1161, 1162, 1162, 1162, 1162, 1162, 1162, 102, 100, 93, 1162, 1163, 1163, 1163, 1163, 1163, 1163, 87, 85, 75, 1163, 1164, 1164, 1164, 1164, 1164, 1164, 69, 67, 62, 1164, 1165, 1165, 1165, 1165, 1165, 1165, 57, 48, 47, 1165, 1166, 1166, 1166, 1166, 1166, 1166, 0, 0, 0, 1166, 1167, 1167, 1167, 1167, 1167, 1167, 0, 0, 0, 1167, 1168, 1168, 1168, 1168, 1168, 1168, 0, 0, 0, 1168, 1169, 1169, 1169, 1169, 1169, 1169, 0, 0, 0, 1169, 1170, 1170, 1170, 1170, 1170, 1170, 0, 0, 0, 1170, 1171, 1171, 1171, 1171, 1171, 1171, 0, 0, 0, 1171, 1172, 1172, 1172, 1172, 1172, 1172, 0, 0, 0, 1172, 1173, 1173, 1173, 1173, 1173, 1173, 0, 0, 0, 1173, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 0, 0, 1174, 1175, 1175, 1175, 1175, 1175, 1175, 0, 0, 0, 1175, 1176, 1176, 1176, 1176, 1176, 1176, 0, 0, 0, 1176, 1177, 1177, 1177, 1177, 1177, 1177, 0, 0, 0, 1177, 1178, 1178, 1178, 1178, 1178, 1178, 0, 0, 0, 1178, 1179, 1179, 1179, 1179, 1179, 1179, 0, 0, 0, 1179, 1180, 1180, 1180, 1180, 1180, 1180, 0, 0, 0, 1180, 1181, 1181, 1181, 1181, 1181, 1181, 0, 0, 0, 1181, 1182, 1182, 1182, 1182, 1182, 1182, 0, 0, 0, 1182, 1183, 1183, 1183, 1183, 1183, 1183, 0, 0, 0, 1183, 1184, 1184, 1184, 1184, 1184, 1184, 0, 0, 0, 1184, 1185, 1185, 1185, 1185, 1185, 1185, 0, 0, 0, 1185, 1186, 1186, 1186, 1186, 1186, 1186, 0, 0, 0, 1186, 1187, 1187, 1187, 1187, 1187, 1187, 0, 0, 0, 1187, 1188, 1188, 1188, 1188, 1188, 1188, 0, 0, 0, 1188, 1189, 1189, 1189, 1189, 1189, 1189, 0, 0, 0, 1189, 1190, 1190, 1190, 1190, 1190, 1190, 0, 0, 0, 1190, 1191, 1191, 1191, 1191, 1191, 1191, 0, 0, 0, 1191, 1192, 1192, 1192, 1192, 1192, 1192, 0, 0, 0, 1192, 1193, 1193, 1193, 1193, 1193, 1193, 0, 0, 0, 1193, 1194, 1194, 1194, 1194, 1194, 1194, 0, 0, 0, 1194, 1195, 1195, 1195, 1195, 1195, 1195, 0, 0, 0, 1195, 1196, 1196, 1196, 1196, 1196, 1196, 0, 0, 0, 1196, 1197, 1197, 1197, 1197, 1197, 1197, 0, 0, 0, 1197, 1198, 1198, 1198, 1198, 1198, 1198, 0, 0, 0, 1198, 1199, 1199, 1199, 1199, 1199, 1199, 0, 0, 0, 1199, 1200, 1200, 1200, 1200, 1200, 1200, 0, 0, 0, 1200, 1201, 1201, 1201, 1201, 1201, 1201, 0, 0, 0, 1201, 1202, 1202, 1202, 1202, 1202, 1202, 0, 0, 0, 1202, 1203, 1203, 1203, 1203, 1203, 1203, 0, 0, 0, 1203, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100 } ; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; extern int yypp__flex_debug; int yypp__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 *yypp_text; #line 1 "lexer.l" #line 2 "lexer.l" /* * UUID: db754b9e-f2fd-11dc-b899-00502c05c241 * Author: Brian M. Ames, bames@apk.net * Copyright: Copyright (C) 2008 by Brian M. Ames */ #include #include #include #include #include "parser.tab.h" #include "tree.h" #include "parser_routines.h" #include "lexer.h" #include "include_path.h" int unused; #define ECHO unused = fwrite( yypp_text, yypp_leng, 1, yypp_out ) char *filename; char *include_file_name; extern time_t max_st_atime; extern time_t max_st_mtime; extern char argz[]; extern size_t argz_len; YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH]; int buffer_type[MAX_INCLUDE_DEPTH]; int include_stack_ptr = 0; struct nodeFile *filenode[MAX_INCLUDE_DEPTH]; struct nodeFile *curfilenode; int file_stack_ptr = 0; static char *line_buf = NULL; int line_buf_ptr = 0; int paren_level; char *repl_id[MAX_INCLUDE_DEPTH]; int repl_level = 0; extern int yypp_debug; short isHex; short isDec; short isOct; short isFloat; short f_suffix; short l_suffix; short u_suffix; short periods; //%option debug //[A-Za-z_][0-9A-Za-z_]* { return copy_string(IDENTIFIER); } #line 1794 "lexer.c" #define INITIAL 0 #define X_LINE 1 #define X_INIT 2 #define X_COND 3 #define X_ID 4 #define X_COM 5 #define X_STR 6 #define X_CHR 7 #define X_PP_NUMBER 8 #define X_PPD_DEFINE 9 #define X_PPD_DEFINE_ID 10 #define X_MACRO_PARAMS 11 #define X_PARAM_ID 12 #define X_MACRO_REPL 13 #define X_MACRO_STRING 14 #define X_MACRO_INV 15 #define X_MACRO_ARGS 16 #define X_REPL_ID 17 #define X_PPD_STRING 18 #define X_PPD_ID 19 #define X_PPD_INCLUDE 20 #define X_PPD_IF 21 #define X_PPD_IF_DEFINED 22 #define X_PPD_IF_DEFINEDP 23 #define X_PPD_IF_ID 24 #define X_DONT_CARE 25 #define X_SKIP_WHITESPACE 26 #define X_UOC 27 #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. */ #include #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals (void ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yypp_wrap (void ); #else extern int yypp_wrap (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 static int yy_start_stack_ptr = 0; static int yy_start_stack_depth = 0; static int *yy_start_stack = NULL; static void yy_push_state (int new_state ); static void yy_pop_state (void ); static int yy_top_state (void ); /* 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 (void) fwrite( yypp_text, yypp_leng, 1, yypp_out ) #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 = '*'; \ size_t n; \ for ( n = 0; n < max_size && \ (c = getc( yypp_in )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yypp_in ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, yypp_in))==0 && ferror(yypp_in)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yypp_in); \ } \ }\ \ #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 yypp_lex (void); #define YY_DECL int yypp_lex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yypp_text and yypp_leng * 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 \ if ( yypp_leng > 0 ) \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ (yypp_text[yypp_leng - 1] == '\n'); \ 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 121 "lexer.l" #line 1991 "lexer.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 ( ! yypp_in ) yypp_in = stdin; if ( ! yypp_out ) yypp_out = stdout; if ( ! YY_CURRENT_BUFFER ) { yypp_ensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yypp__create_buffer(yypp_in,YY_BUF_SIZE ); } yypp__load_buffer_state( ); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of yypp_text. */ *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_current_state += YY_AT_BOL(); 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 >= 1101 ) 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_current_state != 1100 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); yy_find_action: 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 125 "lexer.l" { yyless(0); yy_push_state(X_INIT); yy_push_state(X_LINE);} YY_BREAK case 2: YY_RULE_SETUP #line 129 "lexer.l" { yy_push_state(X_UOC); } YY_BREAK case 3: /* rule 3 can match eol */ YY_RULE_SETUP #line 130 "lexer.l" { end_of_line(); } YY_BREAK case 4: YY_RULE_SETUP #line 131 "lexer.l" { ; } YY_BREAK case 5: YY_RULE_SETUP #line 132 "lexer.l" { if (line_buf_ptr < MAX_LINE_INDEX) line_buf[line_buf_ptr++] = yypp_text[0]; } YY_BREAK case 6: /* rule 6 can match eol */ YY_RULE_SETUP #line 136 "lexer.l" { handle_comment(yypp_text+2); } YY_BREAK case 7: YY_RULE_SETUP #line 137 "lexer.l" { ; } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP #line 138 "lexer.l" { yy_push_state(X_LINE); } YY_BREAK case 9: YY_RULE_SETUP #line 139 "lexer.l" { yy_push_state(X_COM); handle_begin_comment(); } YY_BREAK case 10: YY_RULE_SETUP #line 143 "lexer.l" { ; } YY_BREAK case 11: YY_RULE_SETUP #line 144 "lexer.l" { ; } YY_BREAK case 12: YY_RULE_SETUP #line 148 "lexer.l" { yy_push_state(X_STR); } YY_BREAK case 13: YY_RULE_SETUP #line 149 "lexer.l" { yy_push_state(X_CHR); } YY_BREAK case 14: YY_RULE_SETUP #line 153 "lexer.l" { yy_push_state(X_PPD_IF); return PPD_ELIF; } YY_BREAK case 15: YY_RULE_SETUP #line 154 "lexer.l" { return PPD_ELSE; } YY_BREAK case 16: YY_RULE_SETUP #line 155 "lexer.l" { return PPD_ENDIF; } YY_BREAK case 17: YY_RULE_SETUP #line 156 "lexer.l" { yy_push_state(X_PPD_ID); return PPD_IFDEF; } YY_BREAK case 18: YY_RULE_SETUP #line 157 "lexer.l" { yy_push_state(X_PPD_ID); return PPD_IFNDEF; } YY_BREAK case 19: YY_RULE_SETUP #line 158 "lexer.l" { yy_push_state(X_PPD_IF); return PPD_IF; } YY_BREAK case 20: /* rule 20 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 160 "lexer.l" { return PPD_ELSE; } YY_BREAK case 21: /* rule 21 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 161 "lexer.l" { return PPD_ENDIF; } YY_BREAK case 22: /* rule 22 can match eol */ YY_RULE_SETUP #line 162 "lexer.l" { yy_push_state(X_LINE); return BCS_WHTSP_NEWLINE; } YY_BREAK case 23: YY_RULE_SETUP #line 165 "lexer.l" { ; } YY_BREAK case 24: YY_RULE_SETUP #line 168 "lexer.l" { yy_push_state(X_PPD_DEFINE); return PPD_DEFINE; } YY_BREAK case 25: YY_RULE_SETUP #line 169 "lexer.l" { return PPD_ERROR; } YY_BREAK case 26: YY_RULE_SETUP #line 170 "lexer.l" { yy_push_state(X_PPD_INCLUDE); return PPD_INCLUDE; } YY_BREAK case 27: YY_RULE_SETUP #line 171 "lexer.l" { return PPD_LINE; } YY_BREAK case 28: YY_RULE_SETUP #line 172 "lexer.l" { return PPD_PRAGMA; } YY_BREAK case 29: YY_RULE_SETUP #line 173 "lexer.l" { yy_push_state(X_PPD_ID); return PPD_UNDEF; } YY_BREAK case 30: YY_RULE_SETUP #line 175 "lexer.l" { yy_push_state(X_PPD_DEFINE); return PPD_DEFINE; } YY_BREAK case 31: YY_RULE_SETUP #line 176 "lexer.l" { return PPD_ERROR; } YY_BREAK case 32: YY_RULE_SETUP #line 177 "lexer.l" { yy_push_state(X_PPD_INCLUDE); return PPD_INCLUDE; } YY_BREAK case 33: YY_RULE_SETUP #line 178 "lexer.l" { return PPD_LINE; } YY_BREAK case 34: YY_RULE_SETUP #line 179 "lexer.l" { return PPD_PRAGMA; } YY_BREAK case 35: YY_RULE_SETUP #line 180 "lexer.l" { yy_push_state(X_PPD_ID); return PPD_UNDEF; } YY_BREAK case 36: /* rule 36 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 185 "lexer.l" { return KWD_ASM; } YY_BREAK case 37: /* rule 37 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 186 "lexer.l" { return KWD_AUTO; } YY_BREAK case 38: /* rule 38 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 187 "lexer.l" { return KWD_BOOL; } YY_BREAK case 39: /* rule 39 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 188 "lexer.l" { return KWD_BREAK; } YY_BREAK case 40: /* rule 40 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 189 "lexer.l" { return KWD_CASE; } YY_BREAK case 41: /* rule 41 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 190 "lexer.l" { return KWD_CATCH; } YY_BREAK case 42: /* rule 42 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 191 "lexer.l" { return KWD_CHAR; } YY_BREAK case 43: /* rule 43 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 192 "lexer.l" { return KWD_CLASS; } YY_BREAK case 44: /* rule 44 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 193 "lexer.l" { return KWD_CONST; } YY_BREAK case 45: /* rule 45 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 10; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 194 "lexer.l" { return KWD_CONST_CAST; } YY_BREAK case 46: /* rule 46 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 8; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 195 "lexer.l" { return KWD_CONTINUE; } YY_BREAK case 47: /* rule 47 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 196 "lexer.l" { return KWD_DEFAULT; } YY_BREAK case 48: /* rule 48 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 197 "lexer.l" { return KWD_DELETE; } YY_BREAK case 49: /* rule 49 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 198 "lexer.l" { return KWD_DO; } YY_BREAK case 50: /* rule 50 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 199 "lexer.l" { return KWD_DOUBLE; } YY_BREAK case 51: /* rule 51 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 12; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 200 "lexer.l" { return KWD_DYNAMIC_CAST; } YY_BREAK case 52: /* rule 52 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 201 "lexer.l" { return KWD_ELSE; } YY_BREAK case 53: /* rule 53 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 202 "lexer.l" { return KWD_ENUM; } YY_BREAK case 54: /* rule 54 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 8; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 203 "lexer.l" { return KWD_EXPLICIT; } YY_BREAK case 55: /* rule 55 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 204 "lexer.l" { return KWD_EXPORT; } YY_BREAK case 56: /* rule 56 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 205 "lexer.l" { return KWD_EXTERN; } YY_BREAK case 57: /* rule 57 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 206 "lexer.l" { return KWD_FALSE; } YY_BREAK case 58: /* rule 58 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 207 "lexer.l" { return KWD_FLOAT; } YY_BREAK case 59: /* rule 59 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 208 "lexer.l" { return KWD_FOR; } YY_BREAK case 60: /* rule 60 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 209 "lexer.l" { return KWD_FRIEND; } YY_BREAK case 61: /* rule 61 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 210 "lexer.l" { return KWD_GOTO; } YY_BREAK case 62: /* rule 62 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 211 "lexer.l" { return KWD_IF; } YY_BREAK case 63: /* rule 63 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 212 "lexer.l" { return KWD_INLINE; } YY_BREAK case 64: /* rule 64 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 213 "lexer.l" { return KWD_INT; } YY_BREAK case 65: /* rule 65 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 214 "lexer.l" { return KWD_LONG; } YY_BREAK case 66: /* rule 66 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 215 "lexer.l" { return KWD_MUTABLE; } YY_BREAK case 67: /* rule 67 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 9; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 216 "lexer.l" { return KWD_NAMESPACE; } YY_BREAK case 68: /* rule 68 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 217 "lexer.l" { return KWD_NEW; } YY_BREAK case 69: /* rule 69 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 8; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 218 "lexer.l" { return KWD_OPERATOR; } YY_BREAK case 70: /* rule 70 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 219 "lexer.l" { return KWD_PRIVATE; } YY_BREAK case 71: /* rule 71 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 9; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 220 "lexer.l" { return KWD_PROTECTED; } YY_BREAK case 72: /* rule 72 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 221 "lexer.l" { return KWD_PUBLIC; } YY_BREAK case 73: /* rule 73 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 8; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 222 "lexer.l" { return KWD_REGISTER; } YY_BREAK case 74: /* rule 74 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 16; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 223 "lexer.l" { return KWD_REINTERPRET_CAST; } YY_BREAK case 75: /* rule 75 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 224 "lexer.l" { return KWD_RETURN; } YY_BREAK case 76: /* rule 76 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 225 "lexer.l" { return KWD_SHORT; } YY_BREAK case 77: /* rule 77 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 226 "lexer.l" { return KWD_SIGNED; } YY_BREAK case 78: /* rule 78 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 227 "lexer.l" { return KWD_SIZEOF; } YY_BREAK case 79: /* rule 79 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 228 "lexer.l" { return KWD_STATIC; } YY_BREAK case 80: /* rule 80 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 11; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 229 "lexer.l" { return KWD_STATIC_CAST; } YY_BREAK case 81: /* rule 81 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 230 "lexer.l" { return KWD_STRUCT; } YY_BREAK case 82: /* rule 82 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 231 "lexer.l" { return KWD_SWITCH; } YY_BREAK case 83: /* rule 83 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 8; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 232 "lexer.l" { return KWD_TEMPLATE; } YY_BREAK case 84: /* rule 84 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 233 "lexer.l" { return KWD_THIS; } YY_BREAK case 85: /* rule 85 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 234 "lexer.l" { return KWD_THROW; } YY_BREAK case 86: /* rule 86 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 235 "lexer.l" { return KWD_TRUE; } YY_BREAK case 87: /* rule 87 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 236 "lexer.l" { return KWD_TRY; } YY_BREAK case 88: /* rule 88 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 237 "lexer.l" { return KWD_TYPEDEF; } YY_BREAK case 89: /* rule 89 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 8; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 238 "lexer.l" { return KWD_TYPENAME; } YY_BREAK case 90: /* rule 90 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 239 "lexer.l" { return KWD_TYPEID; } YY_BREAK case 91: /* rule 91 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 240 "lexer.l" { return KWD_UNION; } YY_BREAK case 92: /* rule 92 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 8; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 241 "lexer.l" { return KWD_UNSIGNED; } YY_BREAK case 93: /* rule 93 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 242 "lexer.l" { return KWD_USING; } YY_BREAK case 94: /* rule 94 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 243 "lexer.l" { return KWD_VIRTUAL; } YY_BREAK case 95: /* rule 95 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 244 "lexer.l" { return KWD_VOID; } YY_BREAK case 96: /* rule 96 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 8; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 245 "lexer.l" { return KWD_VOLATILE; } YY_BREAK case 97: /* rule 97 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 246 "lexer.l" { return KWD_WCHAR_T; } YY_BREAK case 98: /* rule 98 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 247 "lexer.l" { return KWD_WHILE; } YY_BREAK case 99: /* rule 99 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 249 "lexer.l" { return OP_ALT_LOGICAL_AND; } YY_BREAK case 100: /* rule 100 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 250 "lexer.l" { return OP_ALT_ASSIGN_BIT_AND; } YY_BREAK case 101: /* rule 101 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 251 "lexer.l" { return OP_ALT_BIT_AND; } YY_BREAK case 102: /* rule 102 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 252 "lexer.l" { return OP_ALT_BIT_OR; } YY_BREAK case 103: /* rule 103 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 253 "lexer.l" { return OP_ALT_BIT_NOT; } YY_BREAK case 104: /* rule 104 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 254 "lexer.l" { return OP_ALT_LOGICAL_NOT; } YY_BREAK case 105: /* rule 105 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 255 "lexer.l" { return OP_ALT_NE; } YY_BREAK case 106: /* rule 106 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 256 "lexer.l" { return OP_ALT_LOGICAL_OR; } YY_BREAK case 107: /* rule 107 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 257 "lexer.l" { return OP_ALT_ASSIGN_BIT_OR; } YY_BREAK case 108: /* rule 108 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 258 "lexer.l" { return OP_ALT_BIT_PLUS; } YY_BREAK case 109: /* rule 109 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 259 "lexer.l" { return OP_ALT_ASSIGN_BIT_PLUS; } YY_BREAK case 110: YY_RULE_SETUP #line 261 "lexer.l" { yyless(0); yy_push_state(X_ID); } YY_BREAK case 111: YY_RULE_SETUP #line 262 "lexer.l" { yyless(0); yy_push_state(X_ID); } YY_BREAK case 112: YY_RULE_SETUP #line 263 "lexer.l" { yyless(0); yy_push_state(X_ID); } YY_BREAK case 113: YY_RULE_SETUP #line 265 "lexer.l" { copy_string(yypp_text); pp_number_init(yypp_text[0],yypp_text[1]); yy_push_state(X_PP_NUMBER); } YY_BREAK case 114: YY_RULE_SETUP #line 267 "lexer.l" { return BCS_PUNCT_HASH; } YY_BREAK case 115: YY_RULE_SETUP #line 268 "lexer.l" { return BCS_PUNCT_BACKSLASH; } YY_BREAK case 116: YY_RULE_SETUP #line 269 "lexer.l" { return BCS_PUNCT_CARET; } YY_BREAK case 117: YY_RULE_SETUP #line 270 "lexer.l" { return OP_ASSIGN_BIT_PLUS; } YY_BREAK case 118: YY_RULE_SETUP #line 271 "lexer.l" { return BCS_PUNCT_OPEN_BRACKET; } YY_BREAK case 119: YY_RULE_SETUP #line 272 "lexer.l" { return BCS_PUNCT_CLOSE_BRACKET; } YY_BREAK case 120: YY_RULE_SETUP #line 273 "lexer.l" { return BCS_PUNCT_VERTICAL_BAR; } YY_BREAK case 121: YY_RULE_SETUP #line 274 "lexer.l" { return OP_ASSIGN_BIT_OR; } YY_BREAK case 122: YY_RULE_SETUP #line 275 "lexer.l" { return OP_LOGICAL_OR; } YY_BREAK case 123: YY_RULE_SETUP #line 276 "lexer.l" { return BCS_PUNCT_OPEN_BRACE; } YY_BREAK case 124: YY_RULE_SETUP #line 277 "lexer.l" { return BCS_PUNCT_CLOSE_BRACE; } YY_BREAK case 125: YY_RULE_SETUP #line 278 "lexer.l" { return BCS_PUNCT_TILDE; } YY_BREAK case 126: YY_RULE_SETUP #line 280 "lexer.l" { return ALT_PUNCT_OPEN_BRACE; } YY_BREAK case 127: YY_RULE_SETUP #line 281 "lexer.l" { return ALT_PUNCT_CLOSE_BRACE; } YY_BREAK case 128: YY_RULE_SETUP #line 282 "lexer.l" { return ALT_PUNCT_OPEN_BRACKET; } YY_BREAK case 129: YY_RULE_SETUP #line 283 "lexer.l" { return ALT_PUNCT_CLOSE_BRACKET; } YY_BREAK case 130: YY_RULE_SETUP #line 284 "lexer.l" { return ALT_OP_TOKEN_SPLICE; } YY_BREAK case 131: YY_RULE_SETUP #line 285 "lexer.l" { return ALT_PUNCT_HASH; } YY_BREAK case 132: YY_RULE_SETUP #line 287 "lexer.l" { return OP_NE; } YY_BREAK case 133: YY_RULE_SETUP #line 288 "lexer.l" { return OP_TOKEN_SPLICE; } YY_BREAK case 134: YY_RULE_SETUP #line 289 "lexer.l" { return OP_ASSIGN_MODULO; } YY_BREAK case 135: YY_RULE_SETUP #line 290 "lexer.l" { return OP_LOGICAL_AND; } YY_BREAK case 136: YY_RULE_SETUP #line 291 "lexer.l" { return OP_ASSIGN_BIT_AND; } YY_BREAK case 137: YY_RULE_SETUP #line 292 "lexer.l" { return OP_ASSIGN_MULTIPLY; } YY_BREAK case 138: YY_RULE_SETUP #line 293 "lexer.l" { return OP_INCREMENT; } YY_BREAK case 139: YY_RULE_SETUP #line 294 "lexer.l" { return OP_ASSIGN_PLUS; } YY_BREAK case 140: YY_RULE_SETUP #line 295 "lexer.l" { return OP_DECREMENT; } YY_BREAK case 141: YY_RULE_SETUP #line 296 "lexer.l" { return OP_ASSIGN_MINUS; } YY_BREAK case 142: YY_RULE_SETUP #line 297 "lexer.l" { return OP_POINTER_POINTER_TO_MEMBER; } YY_BREAK case 143: YY_RULE_SETUP #line 298 "lexer.l" { return OP_POINTER_MEMBER; } YY_BREAK case 144: YY_RULE_SETUP #line 299 "lexer.l" { return OP_OBJECT_POINTER_TO_MEMBER; } YY_BREAK case 145: YY_RULE_SETUP #line 300 "lexer.l" { return DECL_VAR_ARGS; } YY_BREAK case 146: YY_RULE_SETUP #line 301 "lexer.l" { return OP_ASSIGN_DIVIDE; } YY_BREAK case 147: YY_RULE_SETUP #line 302 "lexer.l" { return OP_SCOPE_REF; } YY_BREAK case 148: YY_RULE_SETUP #line 303 "lexer.l" { return OP_ASSIGN_SHIFT_LEFT; } YY_BREAK case 149: YY_RULE_SETUP #line 304 "lexer.l" { return OP_SHIFT_LEFT; } YY_BREAK case 150: YY_RULE_SETUP #line 305 "lexer.l" { return OP_LE; } YY_BREAK case 151: YY_RULE_SETUP #line 306 "lexer.l" { return OP_EQ; } YY_BREAK case 152: YY_RULE_SETUP #line 307 "lexer.l" { return OP_GE; } YY_BREAK case 153: YY_RULE_SETUP #line 308 "lexer.l" { return OP_ASSIGN_SHIFT_RIGHT; } YY_BREAK case 154: YY_RULE_SETUP #line 309 "lexer.l" { return OP_SHIFT_RIGHT; } YY_BREAK case 155: YY_RULE_SETUP #line 310 "lexer.l" { return OP_ASSIGN_BIT_PLUS; } YY_BREAK case 156: YY_RULE_SETUP #line 311 "lexer.l" { return OP_ASSIGN_BIT_OR; } YY_BREAK case 157: YY_RULE_SETUP #line 312 "lexer.l" { return OP_LOGICAL_OR; } YY_BREAK case 158: /* rule 158 can match eol */ YY_RULE_SETUP #line 318 "lexer.l" { yyless(0); yy_pop_state(); } YY_BREAK case 159: YY_RULE_SETUP #line 324 "lexer.l" { ; } YY_BREAK case 160: YY_RULE_SETUP #line 325 "lexer.l" { return BCS_PUNCT_EXCLAMATION; } YY_BREAK case 161: YY_RULE_SETUP #line 327 "lexer.l" { return BCS_PUNCT_HASH; } YY_BREAK case 162: YY_RULE_SETUP #line 328 "lexer.l" { return BCS_PUNCT_PERCENT; } YY_BREAK case 163: YY_RULE_SETUP #line 329 "lexer.l" { return BCS_PUNCT_AMPERSAND; } YY_BREAK case 164: YY_RULE_SETUP #line 331 "lexer.l" { return BCS_PUNCT_OPEN_PARENTHESIS; } YY_BREAK case 165: YY_RULE_SETUP #line 332 "lexer.l" { return BCS_PUNCT_CLOSE_PARENTHESIS; } YY_BREAK case 166: YY_RULE_SETUP #line 333 "lexer.l" { return BCS_PUNCT_ASTERISK; } YY_BREAK case 167: YY_RULE_SETUP #line 334 "lexer.l" { return BCS_PUNCT_PLUS; } YY_BREAK case 168: YY_RULE_SETUP #line 335 "lexer.l" { return BCS_PUNCT_COMMA; } YY_BREAK case 169: YY_RULE_SETUP #line 336 "lexer.l" { return BCS_PUNCT_MINUS; } YY_BREAK case 170: YY_RULE_SETUP #line 337 "lexer.l" { return BCS_PUNCT_PERIOD; } YY_BREAK case 171: YY_RULE_SETUP #line 338 "lexer.l" { return BCS_PUNCT_SLASH; } YY_BREAK case 172: YY_RULE_SETUP #line 339 "lexer.l" { return BCS_PUNCT_COLON; } YY_BREAK case 173: YY_RULE_SETUP #line 340 "lexer.l" { return BCS_PUNCT_SEMICOLON; } YY_BREAK case 174: YY_RULE_SETUP #line 341 "lexer.l" { return BCS_PUNCT_LESS_THAN; } YY_BREAK case 175: YY_RULE_SETUP #line 342 "lexer.l" { return BCS_PUNCT_EQUAL; } YY_BREAK case 176: YY_RULE_SETUP #line 343 "lexer.l" { return BCS_PUNCT_GREATER_THAN; } YY_BREAK case 177: YY_RULE_SETUP #line 344 "lexer.l" { return OP_CONDITIONAL; } YY_BREAK case 178: YY_RULE_SETUP #line 345 "lexer.l" { return BCS_PUNCT_OPEN_BRACKET; } YY_BREAK case 179: YY_RULE_SETUP #line 346 "lexer.l" { return BCS_PUNCT_BACKSLASH; } YY_BREAK case 180: YY_RULE_SETUP #line 347 "lexer.l" { return BCS_PUNCT_CLOSE_BRACKET; } YY_BREAK case 181: YY_RULE_SETUP #line 348 "lexer.l" { return BCS_PUNCT_CARET; } YY_BREAK case 182: YY_RULE_SETUP #line 349 "lexer.l" { return BCS_PUNCT_OPEN_BRACE; } YY_BREAK case 183: YY_RULE_SETUP #line 350 "lexer.l" { return BCS_PUNCT_VERTICAL_BAR; } YY_BREAK case 184: YY_RULE_SETUP #line 351 "lexer.l" { return BCS_PUNCT_CLOSE_BRACE; } YY_BREAK case 185: YY_RULE_SETUP #line 352 "lexer.l" { return BCS_PUNCT_TILDE; } YY_BREAK case 186: YY_RULE_SETUP #line 353 "lexer.l" { return ECS_NULL+yypp_text[0]; } YY_BREAK case 187: YY_RULE_SETUP #line 358 "lexer.l" { yy_push_state(X_PPD_IF_DEFINEDP); } YY_BREAK case 188: /* rule 188 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 359 "lexer.l" { yy_push_state(X_PPD_IF_DEFINED); } YY_BREAK case 189: YY_RULE_SETUP #line 362 "lexer.l" { yy_pop_state(); } YY_BREAK case 190: YY_RULE_SETUP #line 365 "lexer.l" { ; } YY_BREAK case 191: YY_RULE_SETUP #line 366 "lexer.l" { yyless(0); yy_push_state(X_PPD_IF_ID); } YY_BREAK case 192: YY_RULE_SETUP #line 367 "lexer.l" { yyless(0); yy_push_state(X_PPD_IF_ID); } YY_BREAK case 193: YY_RULE_SETUP #line 368 "lexer.l" { yyless(0); yy_push_state(X_PPD_IF_ID); } YY_BREAK case 194: /* rule 194 can match eol */ YY_RULE_SETUP #line 369 "lexer.l" { yyless(0); yy_pop_state(); } YY_BREAK case 195: YY_RULE_SETUP #line 370 "lexer.l" { yyless(0); yy_pop_state(); } YY_BREAK case 196: YY_RULE_SETUP #line 374 "lexer.l" { copy_string(yypp_text); } YY_BREAK case 197: YY_RULE_SETUP #line 375 "lexer.l" { copy_string(yypp_text); } YY_BREAK case 198: YY_RULE_SETUP #line 376 "lexer.l" { copy_utf8((unsigned char *) yypp_text); } YY_BREAK case 199: /* rule 199 can match eol */ YY_RULE_SETUP #line 377 "lexer.l" { yyless(0); yy_pop_state(); yypp_lval.ival=test_identifier(); return BOOLEAN_LITERAL; } YY_BREAK case 200: YY_RULE_SETUP #line 381 "lexer.l" { copy_string(yypp_text); } YY_BREAK case 201: YY_RULE_SETUP #line 382 "lexer.l" { copy_string(yypp_text); } YY_BREAK case 202: YY_RULE_SETUP #line 383 "lexer.l" { copy_utf8((unsigned char *) yypp_text); } YY_BREAK case 203: YY_RULE_SETUP #line 384 "lexer.l" { copy_utf8((unsigned char *) yypp_text); } YY_BREAK case 204: YY_RULE_SETUP #line 388 "lexer.l" { yy_pop_state(); return IDENTIFIER; } YY_BREAK case 205: YY_RULE_SETUP #line 389 "lexer.l" { yy_pop_state(); if (not_an_object_macro()) return IDENTIFIER; } YY_BREAK case 206: /* rule 206 can match eol */ YY_RULE_SETUP #line 390 "lexer.l" { yyless(0); yy_pop_state(); if (not_a_macro()) return IDENTIFIER; else return REPLACED_IDENTIFIER; } YY_BREAK case 207: /* rule 207 can match eol */ YY_RULE_SETUP #line 394 "lexer.l" { yyless(0); yy_pop_state(); return IDENTIFIER; } YY_BREAK case 208: /* rule 208 can match eol */ YY_RULE_SETUP #line 398 "lexer.l" { yyless(0); yy_pop_state(); if (is_param_id()) return IDENTIFIER; else if (is_macro_id()) return NON_REPLACEABLE_IDENTIFIER; else return STRING_LITERAL; } YY_BREAK case 209: /* rule 209 can match eol */ YY_RULE_SETUP #line 402 "lexer.l" { yyless(0); yy_pop_state(); return IDENTIFIER; } YY_BREAK case 210: /* rule 210 can match eol */ YY_RULE_SETUP #line 406 "lexer.l" { yyless(0); yy_pop_state(); } YY_BREAK case 211: /* rule 211 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 410 "lexer.l" { ; } YY_BREAK case 212: YY_RULE_SETUP #line 411 "lexer.l" { yy_pop_state(); handle_end_comment(); } YY_BREAK case 213: /* rule 213 can match eol */ YY_RULE_SETUP #line 412 "lexer.l" { yy_push_state(X_LINE); handle_comment_char('\n'); } YY_BREAK case 214: YY_RULE_SETUP #line 413 "lexer.l" { handle_comment_char(yypp_text[0]); } YY_BREAK case 215: YY_RULE_SETUP #line 418 "lexer.l" { add_char(yypp_text[1]); } YY_BREAK case 216: YY_RULE_SETUP #line 419 "lexer.l" { add_char(yypp_text[1]); } YY_BREAK case 217: YY_RULE_SETUP #line 420 "lexer.l" { yy_pop_state(); return STRING_LITERAL; } YY_BREAK case 218: YY_RULE_SETUP #line 421 "lexer.l" { add_char(yypp_text[0]); } YY_BREAK case 219: YY_RULE_SETUP #line 425 "lexer.l" { add_char(yypp_text[0]); add_char(yypp_text[1]); } YY_BREAK case 220: YY_RULE_SETUP #line 426 "lexer.l" { add_char(yypp_text[0]); add_char(yypp_text[1]); } YY_BREAK case 221: YY_RULE_SETUP #line 427 "lexer.l" { yy_pop_state(); return CHARACTER_LITERAL; } YY_BREAK case 222: YY_RULE_SETUP #line 428 "lexer.l" { add_char(yypp_text[0]); } YY_BREAK case 223: YY_RULE_SETUP #line 432 "lexer.l" { pp_not_a_literal(); copy_string(yypp_text); } YY_BREAK case 224: YY_RULE_SETUP #line 433 "lexer.l" { pp_not_a_literal(); copy_string(yypp_text); } YY_BREAK case 225: YY_RULE_SETUP #line 434 "lexer.l" { pp_not_a_literal(); copy_utf8((unsigned char *) yypp_text); } YY_BREAK case 226: YY_RULE_SETUP #line 435 "lexer.l" { pp_not_a_literal(); copy_utf8((unsigned char *) yypp_text); } YY_BREAK case 227: YY_RULE_SETUP #line 436 "lexer.l" { pp_not_a_literal(); copy_utf8((unsigned char *) yypp_text); } YY_BREAK case 228: YY_RULE_SETUP #line 437 "lexer.l" { pp_exponent(yypp_text[1]); add_char(yypp_text[0]); add_char(yypp_text[1]); } YY_BREAK case 229: YY_RULE_SETUP #line 438 "lexer.l" { pp_octal_digit(); add_char(yypp_text[0]); } YY_BREAK case 230: YY_RULE_SETUP #line 439 "lexer.l" { pp_decimal_digit(); add_char(yypp_text[0]); } YY_BREAK case 231: YY_RULE_SETUP #line 440 "lexer.l" { pp_hexadecimal_digit(); add_char(yypp_text[0]); } YY_BREAK case 232: YY_RULE_SETUP #line 441 "lexer.l" { pp_f_suffix(); add_char(yypp_text[0]); } YY_BREAK case 233: YY_RULE_SETUP #line 442 "lexer.l" { pp_not_a_literal(); add_char(yypp_text[0]); } YY_BREAK case 234: YY_RULE_SETUP #line 443 "lexer.l" { pp_l_suffix(); add_char(yypp_text[0]); } YY_BREAK case 235: YY_RULE_SETUP #line 444 "lexer.l" { pp_u_suffix(); add_char(yypp_text[0]); } YY_BREAK case 236: YY_RULE_SETUP #line 445 "lexer.l" { pp_period(); add_char(yypp_text[0]); } YY_BREAK case 237: /* rule 237 can match eol */ YY_RULE_SETUP #line 446 "lexer.l" { yyless(0); yy_pop_state(); return test_pp_number(); } YY_BREAK case 238: /* rule 238 can match eol */ YY_RULE_SETUP #line 450 "lexer.l" { yy_pop_state(); handle_location(); yy_push_state(X_LINE); return BCS_WHTSP_NEWLINE; } YY_BREAK case 239: YY_RULE_SETUP #line 451 "lexer.l" { copy_string_less(yypp_text); return SYSTEM_HEADER_STRING; } YY_BREAK case 240: YY_RULE_SETUP #line 452 "lexer.l" { copy_string_less(yypp_text); return HEADER_STRING; } YY_BREAK case 241: YY_RULE_SETUP #line 453 "lexer.l" { ; } YY_BREAK case 242: *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 457 "lexer.l" { yy_pop_state(); return INV_MFI_LOGICAL_AND; } YY_BREAK case 243: *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 458 "lexer.l" { yy_pop_state(); return INV_MFI_ASSIGN_BIT_AND; } YY_BREAK case 244: *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 459 "lexer.l" { yy_pop_state(); return INV_MFI_BIT_AND; } YY_BREAK case 245: *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 460 "lexer.l" { yy_pop_state(); return INV_MFI_BIT_OR; } YY_BREAK case 246: *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 461 "lexer.l" { yy_pop_state(); return INV_MFI_BIT_NOT; } YY_BREAK case 247: *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 462 "lexer.l" { yy_pop_state(); return INV_MFI_LOGICAL_NOT; } YY_BREAK case 248: *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 463 "lexer.l" { yy_pop_state(); return INV_MFI_NE; } YY_BREAK case 249: *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 464 "lexer.l" { yy_pop_state(); return INV_MFI_LOGICAL_OR; } YY_BREAK case 250: *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 465 "lexer.l" { yy_pop_state(); return INV_MFI_ASSIGN_BIT_OR; } YY_BREAK case 251: *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 466 "lexer.l" { yy_pop_state(); return INV_MFI_BIT_PLUS; } YY_BREAK case 252: *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 467 "lexer.l" { yy_pop_state(); return INV_MFI_ASSIGN_BIT_PLUS; } YY_BREAK case 253: /* rule 253 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 471 "lexer.l" { yy_pop_state(); return INV_ALT_LOGICAL_AND; } YY_BREAK case 254: /* rule 254 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 472 "lexer.l" { yy_pop_state(); return INV_ALT_ASSIGN_BIT_AND; } YY_BREAK case 255: /* rule 255 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 473 "lexer.l" { yy_pop_state(); return INV_ALT_BIT_AND; } YY_BREAK case 256: /* rule 256 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 474 "lexer.l" { yy_pop_state(); return INV_ALT_BIT_OR; } YY_BREAK case 257: /* rule 257 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 475 "lexer.l" { yy_pop_state(); return INV_ALT_BIT_NOT; } YY_BREAK case 258: /* rule 258 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 476 "lexer.l" { yy_pop_state(); return INV_ALT_LOGICAL_NOT; } YY_BREAK case 259: /* rule 259 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 477 "lexer.l" { yy_pop_state(); return INV_ALT_NE; } YY_BREAK case 260: /* rule 260 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 2; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 478 "lexer.l" { yy_pop_state(); return INV_ALT_LOGICAL_OR; } YY_BREAK case 261: /* rule 261 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 479 "lexer.l" { yy_pop_state(); return INV_ALT_ASSIGN_BIT_OR; } YY_BREAK case 262: /* rule 262 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 480 "lexer.l" { yy_pop_state(); return INV_ALT_BIT_PLUS; } YY_BREAK case 263: /* rule 263 can match eol */ *yy_cp = (yy_hold_char); /* undo effects of setting up yypp_text */ (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yypp_text again */ YY_RULE_SETUP #line 481 "lexer.l" { yy_pop_state(); return INV_ALT_ASSIGN_BIT_PLUS; } YY_BREAK case 264: YY_RULE_SETUP #line 485 "lexer.l" { yyless(0); yy_push_state(X_PPD_DEFINE_ID); } YY_BREAK case 265: YY_RULE_SETUP #line 486 "lexer.l" { yyless(0); yy_push_state(X_PPD_DEFINE_ID); } YY_BREAK case 266: YY_RULE_SETUP #line 487 "lexer.l" { yyless(0); yy_push_state(X_PPD_DEFINE_ID); } YY_BREAK case 267: YY_RULE_SETUP #line 488 "lexer.l" { yyless(0); yy_pop_state(); yy_push_state(X_MACRO_REPL); yy_push_state(X_MACRO_PARAMS); return MACRO_FUNCTION_IDENTIFIER; } YY_BREAK case 268: /* rule 268 can match eol */ YY_RULE_SETUP #line 489 "lexer.l" { yyless(0); yy_pop_state(); return MACRO_OBJECT_IDENTIFIER; } YY_BREAK case 269: YY_RULE_SETUP #line 490 "lexer.l" { yyless(0); yy_pop_state(); yy_push_state(X_MACRO_REPL); yy_push_state(X_SKIP_WHITESPACE); return MACRO_OBJECT_IDENTIFIER; } YY_BREAK case 270: YY_RULE_SETUP #line 494 "lexer.l" { return BCS_PUNCT_OPEN_PARENTHESIS;} YY_BREAK case 271: YY_RULE_SETUP #line 495 "lexer.l" { yy_pop_state(); yy_push_state(X_SKIP_WHITESPACE); return BCS_PUNCT_CLOSE_PARENTHESIS;} YY_BREAK case 272: YY_RULE_SETUP #line 496 "lexer.l" { return BCS_PUNCT_COMMA;} YY_BREAK case 273: YY_RULE_SETUP #line 497 "lexer.l" { yyless(0); yy_push_state(X_PARAM_ID); } YY_BREAK case 274: YY_RULE_SETUP #line 498 "lexer.l" { ; } YY_BREAK case 275: /* rule 275 can match eol */ YY_RULE_SETUP #line 499 "lexer.l" { yyless(0); yy_pop_state(); } YY_BREAK case 276: YY_RULE_SETUP #line 503 "lexer.l" { return OP_TOKEN_SPLICE;} YY_BREAK case 277: YY_RULE_SETUP #line 504 "lexer.l" { return OP_STRINGIZE;} YY_BREAK case 278: YY_RULE_SETUP #line 505 "lexer.l" { yyless(0); yy_push_state(X_REPL_ID); } YY_BREAK case 279: /* rule 279 can match eol */ YY_RULE_SETUP #line 506 "lexer.l" { yyless(0); yy_pop_state(); } YY_BREAK case 280: YY_RULE_SETUP #line 507 "lexer.l" { copy_string(yypp_text); yy_push_state(X_MACRO_STRING); } YY_BREAK case 281: YY_RULE_SETUP #line 511 "lexer.l" { paren_level++; copy_string(yypp_text); } YY_BREAK case 282: YY_RULE_SETUP #line 512 "lexer.l" { if(paren_level == 0) { yyless(0); yy_pop_state(); } else {paren_level--; copy_string(yypp_text);} } YY_BREAK case 283: YY_RULE_SETUP #line 513 "lexer.l" { if(paren_level == 0) handle_macro_arg(); else copy_string(yypp_text); } YY_BREAK case 284: YY_RULE_SETUP #line 514 "lexer.l" { copy_string(yypp_text); } YY_BREAK case 285: YY_RULE_SETUP #line 518 "lexer.l" { ; } YY_BREAK case 286: YY_RULE_SETUP #line 519 "lexer.l" { yy_pop_state(); } YY_BREAK case 287: YY_RULE_SETUP #line 520 "lexer.l" { yy_push_state(X_MACRO_ARGS); } YY_BREAK case 288: YY_RULE_SETUP #line 521 "lexer.l" { yy_pop_state(); handle_macro_arg(); do_replacement();} YY_BREAK case 289: /* rule 289 can match eol */ YY_RULE_SETUP #line 525 "lexer.l" { yy_push_state(X_LINE);} YY_BREAK case 290: /* rule 290 can match eol */ YY_RULE_SETUP #line 526 "lexer.l" { yyless(0); yy_pop_state(); return STRING_LITERAL; } YY_BREAK case 291: YY_RULE_SETUP #line 527 "lexer.l" { yyless(0); yy_pop_state(); return STRING_LITERAL; } YY_BREAK case 292: YY_RULE_SETUP #line 528 "lexer.l" { yyless(0); yy_pop_state(); return STRING_LITERAL; } YY_BREAK case 293: YY_RULE_SETUP #line 529 "lexer.l" { copy_string(yypp_text); } YY_BREAK case 294: /* rule 294 can match eol */ YY_RULE_SETUP #line 533 "lexer.l" { yy_push_state(X_LINE);} YY_BREAK case 295: /* rule 295 can match eol */ YY_RULE_SETUP #line 534 "lexer.l" { yyless(0); yy_pop_state(); return STRING_LITERAL; } YY_BREAK case 296: YY_RULE_SETUP #line 535 "lexer.l" { ; } YY_BREAK case 297: YY_RULE_SETUP #line 536 "lexer.l" { copy_string(yypp_text); } YY_BREAK case 298: YY_RULE_SETUP #line 540 "lexer.l" { ; } YY_BREAK case 299: /* rule 299 can match eol */ YY_RULE_SETUP #line 541 "lexer.l" { yy_push_state(X_LINE);} YY_BREAK case 300: /* rule 300 can match eol */ YY_RULE_SETUP #line 542 "lexer.l" { yyless(0); yy_pop_state(); } YY_BREAK case 301: YY_RULE_SETUP #line 543 "lexer.l" { yyless(0); yy_pop_state(); } YY_BREAK case 302: YY_RULE_SETUP #line 547 "lexer.l" { handle_use_on_code(strdup(yypp_text)); } YY_BREAK case 303: YY_RULE_SETUP #line 548 "lexer.l" { yy_pop_state(); } YY_BREAK case 304: /* rule 304 can match eol */ YY_RULE_SETUP #line 549 "lexer.l" { yyless(0); yy_pop_state(); } YY_BREAK case 305: YY_RULE_SETUP #line 550 "lexer.l" { ; } YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(X_LINE): case YY_STATE_EOF(X_INIT): case YY_STATE_EOF(X_COND): case YY_STATE_EOF(X_ID): case YY_STATE_EOF(X_COM): case YY_STATE_EOF(X_STR): case YY_STATE_EOF(X_CHR): case YY_STATE_EOF(X_PP_NUMBER): case YY_STATE_EOF(X_PPD_DEFINE): case YY_STATE_EOF(X_PPD_DEFINE_ID): case YY_STATE_EOF(X_MACRO_PARAMS): case YY_STATE_EOF(X_PARAM_ID): case YY_STATE_EOF(X_MACRO_REPL): case YY_STATE_EOF(X_MACRO_STRING): case YY_STATE_EOF(X_MACRO_INV): case YY_STATE_EOF(X_MACRO_ARGS): case YY_STATE_EOF(X_REPL_ID): case YY_STATE_EOF(X_PPD_STRING): case YY_STATE_EOF(X_PPD_ID): case YY_STATE_EOF(X_PPD_INCLUDE): case YY_STATE_EOF(X_PPD_IF): case YY_STATE_EOF(X_PPD_IF_DEFINED): case YY_STATE_EOF(X_PPD_IF_DEFINEDP): case YY_STATE_EOF(X_PPD_IF_ID): case YY_STATE_EOF(X_DONT_CARE): case YY_STATE_EOF(X_SKIP_WHITESPACE): case YY_STATE_EOF(X_UOC): #line 553 "lexer.l" { if (buffer_type[include_stack_ptr] == BUFFER_TYPE_RESCAN) { repl_level--; } if (include_stack_ptr <= 0) { yyterminate(); } else { yypp__delete_buffer(YY_CURRENT_BUFFER ); if(buffer_type[include_stack_ptr] == BUFFER_TYPE_FILE) { handle_file_end(preprocessing_file_index); file_stack_ptr--; curfilenode = filenode[file_stack_ptr]; } yypp__switch_to_buffer(include_stack[--include_stack_ptr] ); } } YY_BREAK case 306: YY_RULE_SETUP #line 570 "lexer.l" ECHO; YY_BREAK #line 4131 "lexer.c" 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 yypp_in at a new source and called * yypp_lex(). 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 = yypp_in; 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_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); goto yy_find_action; } } else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { (yy_did_buffer_switch_on_eof) = 0; if ( yypp_wrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yypp_text, 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 yypp_lex */ /* 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. */ yypp_realloc((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; yypp_restart(yypp_in ); } 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; (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); yy_current_state += YY_AT_BOL(); 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 >= 1101 ) 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 >= 1101 ) 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 == 1100); 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 yypp_text */ *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. */ yypp_restart(yypp_in ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( yypp_wrap( ) ) 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 yypp_text */ (yy_hold_char) = *++(yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); 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 yypp_restart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ yypp_ensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yypp__create_buffer(yypp_in,YY_BUF_SIZE ); } yypp__init_buffer(YY_CURRENT_BUFFER,input_file ); yypp__load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void yypp__switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * yypp_pop_buffer_state(); * yypp_push_buffer_state(new_buffer); */ yypp_ensure_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; yypp__load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yypp_wrap()) processing, but the only time this flag * is looked at is after yypp_wrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void yypp__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; yypp_in = 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 yypp__create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yypp_alloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yypp__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 *) yypp_alloc(b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yypp__create_buffer()" ); b->yy_is_our_buffer = 1; yypp__init_buffer(b,file ); return b; } /** Destroy the buffer. * @param b a buffer created with yypp__create_buffer() * */ void yypp__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 ) yypp_free((void *) b->yy_ch_buf ); yypp_free((void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yypp_restart() or at EOF. */ static void yypp__init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; yypp__flush_buffer(b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then yypp__init_buffer was _probably_ * called from yypp_restart() 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 = 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 yypp__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 ) yypp__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 yypp_push_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; yypp_ensure_buffer_stack(); /* This block is copied from yypp__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 yypp__switch_to_buffer. */ yypp__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 yypp_pop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; yypp__delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { yypp__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 yypp_ensure_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**)yypp_alloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); 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**)yypp_realloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); /* 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 yypp__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) yypp_alloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yypp__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; yypp__switch_to_buffer(b ); return b; } /** Setup the input buffer state to scan a string. The next call to yypp_lex() will * scan from a @e copy of @a str. * @param str 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 * yypp__scan_bytes() instead. */ YY_BUFFER_STATE yypp__scan_string (yyconst char * yystr ) { return yypp__scan_bytes(yystr,strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yypp_lex() 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 yypp__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 *) yypp_alloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yypp__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 = yypp__scan_buffer(buf,n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yypp__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; } static void yy_push_state (int new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; new_size = (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) (yy_start_stack) = (int *) yypp_alloc(new_size ); else (yy_start_stack) = (int *) yypp_realloc((void *) (yy_start_stack),new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); } (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; BEGIN(new_state); } static void yy_pop_state (void) { if ( --(yy_start_stack_ptr) < 0 ) YY_FATAL_ERROR( "start-condition stack underflow" ); BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); } static int yy_top_state (void) { return (yy_start_stack)[(yy_start_stack_ptr) - 1]; } #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 yypp_text. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yypp_text[yypp_leng] = (yy_hold_char); \ (yy_c_buf_p) = yypp_text + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ yypp_leng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int yypp_get_lineno (void) { return yypp_lineno; } /** Get the input stream. * */ FILE *yypp_get_in (void) { return yypp_in; } /** Get the output stream. * */ FILE *yypp_get_out (void) { return yypp_out; } /** Get the length of the current token. * */ int yypp_get_leng (void) { return yypp_leng; } /** Get the current token. * */ char *yypp_get_text (void) { return yypp_text; } /** Set the current line number. * @param line_number * */ void yypp_set_lineno (int line_number ) { yypp_lineno = line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * * @see yypp__switch_to_buffer */ void yypp_set_in (FILE * in_str ) { yypp_in = in_str ; } void yypp_set_out (FILE * out_str ) { yypp_out = out_str ; } int yypp_get_debug (void) { return yypp__flex_debug; } void yypp_set_debug (int bdebug ) { yypp__flex_debug = bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from yypp_lex_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; (yy_start_stack_ptr) = 0; (yy_start_stack_depth) = 0; (yy_start_stack) = NULL; /* Defined in main.c */ #ifdef YY_STDINIT yypp_in = stdin; yypp_out = stdout; #else yypp_in = (FILE *) 0; yypp_out = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * yypp_lex_init() */ return 0; } /* yypp_lex_destroy is for both reentrant and non-reentrant scanners. */ int yypp_lex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ yypp__delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypp_pop_buffer_state(); } /* Destroy the stack itself. */ yypp_free((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Destroy the start condition stack. */ yypp_free((yy_start_stack) ); (yy_start_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * yypp_lex() 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 *yypp_alloc (yy_size_t size ) { return (void *) malloc( size ); } void *yypp_realloc (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 yypp_free (void * ptr ) { free( (char *) ptr ); /* see yypp_realloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 570 "lexer.l" /* * */ void initialize_lexer(char *filename) { struct stat st; int res; include_stack_ptr = 0; file_stack_ptr = 0; curfilenode = newNodeFile(preprocessing_file_index); filenode[file_stack_ptr] = curfilenode; curfilenode->lines = 1; curfilenode->path = strdup(filename); res = stat(filename, &st); if (res == 0) { curfilenode->atime = st.st_atime; if (st.st_atime > max_st_atime) { max_st_atime = st.st_atime; } curfilenode->mtime = st.st_mtime; if (st.st_mtime > max_st_mtime) { max_st_mtime = st.st_mtime; } } repl_id[0] = NULL; line_buf = (char *) malloc(MAX_LINE_LENGTH); memset(line_buf,0,MAX_LINE_LENGTH); } /* * */ void handle_include_file() { int i,j,len; char *path; char *filename; int result; if (yypp_debug != 0) { fprintf(stderr,"%s %s\n",__func__,include_file_name); } // filename = filenames[file_stack_ptr]; filename = curfilenode->path; i = strlen(filename)-1; while (i >=0 && filename[i] != '/' && filename[i] != '\\') i--; i++; len=strlen(include_file_name)+i+1; if (yypp_debug != 0) { fprintf(stderr,"%s %s %d %d\n",filename,include_file_name,i,len); } path = (char *) malloc(len); for (j=i--; i >=0; i-- ) path[i] = filename[i]; for (i=0; include_file_name[i] >0; i++, j++ ) path[j] = include_file_name[i]; path[j] = 0; result = include_file(path); if (result != 0) { handle_file_begin(preprocessing_file_index); } } /* * */ FILE *open_include_file(char *path) { struct stat st; int res; FILE *file; if (yypp_debug != 0) { fprintf(stderr,"%s(%s) start\n",__func__,path); } file = fopen(path, "r" ); if ( file ) { include_stack[include_stack_ptr++] = YY_CURRENT_BUFFER; yypp__switch_to_buffer(yypp__create_buffer(yypp_in,YY_BUF_SIZE ) ); file_stack_ptr++; curfilenode = newNodeFile(preprocessing_file_index); filenode[file_stack_ptr] = curfilenode; curfilenode->lines = 1; curfilenode->path = strdup(path); buffer_type[include_stack_ptr] = BUFFER_TYPE_FILE; res = stat(path, &st); if (res == 0) { curfilenode->atime = st.st_atime; if (st.st_atime > max_st_atime) { max_st_atime = st.st_atime; } curfilenode->mtime = st.st_mtime; if (st.st_mtime > max_st_mtime) { max_st_mtime = st.st_mtime; } } } if (yypp_debug != 0) { fprintf(stderr,"%s(%s) end\n",__func__,path); } return file; } /* * */ int include_file(char *path) { static FILE *file; int result = 0; char *inc_path = 0; char buf[256]; char *fnm; if (yypp_debug != 0) { fprintf(stderr,"%s(%s) start\n",__func__,path); } if ( include_stack_ptr >= MAX_INCLUDE_DEPTH ) { fprintf( stderr, "Includes nested too deeply %s\n",path ); return 0; } else { file = open_include_file(path); if ( file ) { yypp_in = file; add_dependency(include_file_name); result = 1; } else { goto_incl_first(); while ((inc_path = get_incl_path()) != NULL) { sprintf(buf,"%s/%s",inc_path,include_file_name); fnm = strdup(buf); file = open_include_file(fnm); if ( file ) { yypp_in = file; add_dependency(strdup(fnm)); incl_path_used(); return 1; } free(fnm); goto_incl_next(); } fprintf( stderr, "Error: open failed for include file %s\n",path ); add_dependency(include_file_name); } } if (yypp_debug != 0) { fprintf(stderr,"%s(%s) end\n",__func__,path); } return result; } /* * */ void include_string(const char *string, int bfr_type) { if (bfr_type == BUFFER_TYPE_RESCAN) { if(repl_level < 10) { repl_level++; } else { return; } } include_stack[include_stack_ptr++] = YY_CURRENT_BUFFER; buffer_type[include_stack_ptr] = bfr_type; yypp__scan_string(string); } /* * */ int not_a_macro() { int result,tr; char *repl; result = 0; tr = test_identifier(); switch (tr) { case 1: // include_string("",BUFFER_TYPE_RESCAN); break; case 2: repl = get_replacement_string(); // repl = get_function_replacement_string(); if (repl != NULL) { include_string(repl,BUFFER_TYPE_RESCAN); } else { result = 1; } break; case 3: break; case 4: paren_level = 0; yy_push_state(X_MACRO_INV); break; default: result = 1; break; } if (yypp_debug != 0) { fprintf(stderr,"%s() = %d;\n",__func__,result); } return result; } /* * */ int not_an_object_macro() { int result,tr; char *repl; result = 0; tr = test_identifier(); switch (tr) { case 1: // include_string("",BUFFER_TYPE_RESCAN); break; case 2: repl = get_replacement_string(); // repl = get_function_replacement_string(); if (repl != NULL) { include_string(repl,BUFFER_TYPE_RESCAN); } else { result = 1; } break; case 3: case 4: default: result = 1; break; } if (yypp_debug != 0) { fprintf(stderr,"%s() = %d;\n",__func__,result); } return result; } /* * */ void do_replacement() { char *repl; repl = get_replacement_string(); // repl = get_function_replacement_string(); if (repl != NULL) { include_string(repl,BUFFER_TYPE_RESCAN); } } /* * */ char *getCurrentFilename() { if (yypp_debug != 0) { fprintf(stderr,"%s(%d);\n",__func__,file_stack_ptr); } // return filenames[file_stack_ptr]; return curfilenode->path; } /* * */ int getCurrentLineNumber() { if (yypp_debug != 0) { fprintf(stderr,"%s(%d);\n",__func__,file_stack_ptr); } // return line_counts[file_stack_ptr]; if(curfilenode != NULL) { return curfilenode->lines; } return -1; } /* * */ void pp_number_init(char first, char second) { switch (first) { case '0': if (second == 'X' || second == 'x') { isHex = 1; isOct = 0; } else { isHex = 0; isOct = 1; } isDec = 0; isFloat = 1; periods = 0; break; case '.': isHex = 0; isDec = 0; isOct = 0; isFloat = 1; periods = 1; break; default: isHex = 0; isDec = 1; isOct = 0; isFloat = 1; periods = 0; break; } f_suffix = 0; l_suffix = 0; u_suffix = 0; } /* * */ void pp_not_a_literal() { // fprintf(stderr,"pp_not_a_literal()\n"); isHex = 0; isDec = 0; isOct = 0; isFloat = 0; } /* * */ void pp_octal_digit() { if(u_suffix != 0 || l_suffix != 0) { pp_not_a_literal(); } } /* * */ void pp_decimal_digit() { if(u_suffix != 0 || l_suffix != 0) { pp_not_a_literal(); } isOct = 0; } /* * */ void pp_hexadecimal_digit() { if(u_suffix != 0 || l_suffix != 0) { pp_not_a_literal(); } isDec = 0; isOct = 0; isFloat = 0; } /* * */ void pp_l_suffix() { if(l_suffix != 0) { pp_not_a_literal(); } if(f_suffix != 0) { isFloat = 0; } l_suffix = 1; } /* * */ void pp_f_suffix() { if(u_suffix != 0 || l_suffix != 0) { pp_not_a_literal(); } isDec = 0; isOct = 0; f_suffix++; } /* * */ void pp_u_suffix() { if(u_suffix != 0) { pp_not_a_literal(); } isFloat = 0; u_suffix = 1; } /* * */ void pp_exponent(char second) { if (second == '+' || second == '-') isHex = 0; isDec = 0; isOct = 0; periods = 0; } /* * */ void pp_period() { if(periods != 0) { pp_not_a_literal(); } isHex = 0; isDec = 0; isOct = 0; periods = 1; } /* * */ int test_pp_number() { if (isOct) { yypp_lval.lval = get_value_octal(); return OCTAL_LITERAL; } if (isDec) { yypp_lval.lval = get_value_decimal(); return DECIMAL_LITERAL; } if (isHex) { yypp_lval.lval = get_value_hexadecimal(); return HEXADECIMAL_LITERAL; } if(f_suffix > 1) { isFloat = 0; } if (isFloat) { return FLOATING_LITERAL; } return PP_NUMBER; } /* * */ void end_of_line() { static char *ln; int matched; matched = use_on_code_matched(); if (yypp_debug != 0) { fprintf(stderr,"matched: %d, line %d %s: \"%s\"\n",matched,curfilenode->lines,curfilenode->path,line_buf); } line_buf[line_buf_ptr++] = '\n'; if (matched != 0) { handle_location(); // line_counts[file_stack_ptr]++; curfilenode->lines++; yy_pop_state(); ln = strdup(line_buf); include_string(ln,BUFFER_TYPE_LINE); } line_buf_ptr=0; memset(line_buf,0,MAX_LINE_LENGTH); } /* * */ void enter_cond_state() { int start; start = YY_START; if(start == X_PPD_IF) { yy_push_state(X_COND); } } /* * */ void exit_cond_state() { int start; start = YY_START; if(start == X_COND) { yy_pop_state(); } } /* * This exists only to prevent warnings during compilation. */ void dummy() { yyunput(0,0); if(yy_top_state == NULL); }