diff --git a/src/parsers/plan2/holidayscannerplan.cpp b/src/parsers/plan2/holidayscannerplan.cpp index 124075e..80bf970 100644 --- a/src/parsers/plan2/holidayscannerplan.cpp +++ b/src/parsers/plan2/holidayscannerplan.cpp @@ -1,3766 +1,3765 @@ #line 2 "holidayscannerplan.cpp" #line 4 "holidayscannerplan.cpp" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ /* %not-for-header */ /* %if-c-only */ /* %if-not-reentrant */ /* %endif */ /* %endif */ /* %ok-for-header */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* %if-c++-only */ /* The c++ scanner is a mess. The FlexLexer.h header file relies on the * following macro. This is required in order to pass the c++-multiple-scanners * test in the regression suite. We get reports that it breaks inheritance. * We will address this in a future release of flex, or omit the C++ scanner * altogether. */ #define yyFlexLexer HolidayScannerFlexLexer /* %endif */ /* %if-c-only */ /* %endif */ /* %if-c-only */ /* %endif */ /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ /* %if-c-only */ /* %endif */ /* %if-tables-serialization */ /* %endif */ /* end standard C headers. */ /* %if-c-or-c++ */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; /* 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 /* ! C99 */ #endif /* ! FLEXINT_H */ /* %endif */ /* %if-c++-only */ /* begin standard C++ headers. */ #include #include #include #include #include /* end standard C++ headers. */ /* %endif */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ /* C99 requires __STDC__ to be defined as 1. */ #if defined (__STDC__) #define YY_USE_CONST #endif /* defined (__STDC__) */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* %not-for-header */ /* Returned upon end-of-file. */ #define YY_NULL 0 /* %ok-for-header */ /* %not-for-header */ /* 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) /* %ok-for-header */ /* %if-reentrant */ /* %endif */ /* %if-not-reentrant */ /* %endif */ /* 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 yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. * Ditto for the __ia64__ case accordingly. */ #define YY_BUF_SIZE 32768 #else #define YY_BUF_SIZE 16384 #endif /* __ia64__ */ #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 /* %if-not-reentrant */ extern int yyleng; /* %endif */ /* %if-c-only */ /* %if-not-reentrant */ /* %endif */ /* %endif */ #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 yytext. */ \ 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 yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { /* %if-c-only */ /* %endif */ /* %if-c++-only */ std::istream *yy_input_file; /* %endif */ 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 yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* %if-c-only Standard (non-C++) definition */ /* %not-for-header */ /* %if-not-reentrant */ /* %endif */ /* %ok-for-header */ /* %endif */ /* 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)] /* %if-c-only Standard (non-C++) definition */ /* %if-not-reentrant */ /* %not-for-header */ /* %ok-for-header */ /* %endif */ /* %endif */ void *HolidayScanneralloc(yy_size_t); void *HolidayScannerrealloc(void *, yy_size_t); void HolidayScannerfree(void *); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */ /* Begin user sect3 */ #define FLEX_DEBUG typedef unsigned char YY_CHAR; #define yytext_ptr yytext #include /* %if-c-only Standard (non-C++) definition */ /* %endif */ /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\ yyleng = (size_t) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ #define YY_NUM_RULES 202 #define YY_END_OF_BUFFER 203 /* 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[982] = { 0, 0, 0, 203, 201, 3, 4, 5, 201, 201, 5, 201, 10, 10, 10, 10, 10, 10, 31, 201, 32, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 5, 3, 4, 28, 0, 11, 0, 1, 33, 10, 0, 0, 0, 0, 0, 29, 27, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 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, 18, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 34, 0, 2, 35, 36, 37, 38, 39, 0, 0, 0, 0, 41, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 191, 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, 62, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, 125, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 118, 131, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 64, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 172, 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 132, 44, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 39, 0, 35, 0, 0, 0, 0, 0, 0, 109, 115, 0, 0, 101, 0, 141, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, 87, 79, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 95, 94, 0, 0, 0, 148, 0, 0, 0, 143, 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 26, 0, 124, 128, 0, 0, 0, 0, 129, 0, 123, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, 168, 65, 192, 43, 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, 0, 23, 193, 0, 0, 0, 0, 38, 74, 107, 0, 0, 0, 80, 119, 0, 0, 0, 181, 0, 57, 0, 0, 169, 0, 122, 0, 0, 0, 25, 0, 0, 0, 83, 0, 89, 0, 70, 186, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 91, 0, 0, 0, 45, 117, 0, 0, 0, 0, 0, 0, 48, 0, 36, 0, 0, 149, 0, 0, 199, 0, 0, 0, 0, 76, 102, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 0, 0, 0, 162, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 58, 0, 0, 184, 0, 0, 0, 105, 0, 0, 0, 106, 0, 54, 0, 67, 0, 111, 0, 0, 0, 86, 93, 173, 0, 0, 0, 0, 150, 180, 0, 0, 0, 0, 0, 0, 139, 0, 151, 0, 0, 0, 100, 0, 0, 0, 120, 0, 71, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 69, 0, 194, 0, 0, 59, 0, 0, 0, 177, 0, 0, 0, 0, 0, 7, 22, 113, 175, 99, 142, 68, 0, 0, 0, 85, 0, 92, 0, 0, 0, 179, 75, 55, 0, 195, 0, 166, 174, 0, 0, 0, 73, 97, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 0, 134, 0, 0, 0, 167, 176, 0, 0, 0, 98, 182, 50, 0, 56, 0, 0, 0, 164, 0, 0, 0, 0, 96, 0, 0, 47, 66, 187, 178, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 200, 0, 140, 138, 0, 170, 0, 0, 0, 49, 53, 0, 0, 0, 90, 0, 197, 84, 144, 0, 0, 152, 0, 160, 0, 0, 0, 0, 159, 0, 135, 0, 0, 9, 0, 0, 0, 183, 0, 153, 0, 156, 0, 158, 0, 137, 196, 0, 0, 0, 0, 145, 0, 0, 0, 52, 0, 146, 0, 155, 154, 157, 161, 0, 147, 0 }; static yyconst flex_int32_t yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 5, 6, 1, 7, 8, 1, 7, 7, 7, 7, 1, 7, 7, 7, 9, 10, 11, 12, 13, 14, 9, 9, 9, 9, 15, 1, 16, 17, 18, 7, 1, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 1, 42, 43, 7, 1, 7, 1, 1, 1, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 1, 67, 68, 1, 69, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int32_t yy_meta[70] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; static yyconst flex_int16_t yy_base[985] = { 0, 0, 415, 427, 2013, 424, 422, 407, 380, 378, 2013, 371, 61, 67, 73, 79, 85, 97, 361, 243, 217, 141, 93, 87, 98, 191, 135, 191, 188, 184, 83, 238, 105, 239, 240, 249, 292, 95, 290, 338, 384, 115, 141, 293, 135, 182, 180, 152, 2013, 147, 2013, 133, 2013, 2013, 440, 129, 147, 148, 146, 148, 2013, 2013, 2013, 157, 193, 175, 182, 177, 184, 202, 197, 236, 2013, 249, 243, 250, 256, 254, 258, 239, 286, 250, 265, 287, 282, 284, 288, 289, 312, 334, 336, 340, 330, 347, 344, 330, 343, 340, 333, 351, 339, 377, 384, 381, 2013, 390, 395, 390, 425, 397, 383, 425, 440, 421, 429, 443, 463, 439, 436, 437, 438, 440, 446, 442, 474, 468, 2013, 486, 515, 488, 490, 471, 523, 484, 496, 496, 535, 489, 501, 521, 531, 582, 566, 518, 530, 558, 538, 569, 584, 559, 555, 579, 585, 586, 603, 606, 618, 609, 2013, 130, 2013, 2013, 2013, 2013, 2013, 2013, 611, 610, 626, 632, 2013, 625, 2013, 634, 615, 619, 625, 624, 636, 633, 637, 634, 635, 629, 637, 635, 648, 664, 2013, 669, 667, 657, 674, 667, 665, 682, 675, 667, 664, 669, 668, 688, 671, 673, 689, 693, 691, 691, 678, 705, 697, 689, 718, 714, 707, 707, 719, 711, 730, 712, 725, 734, 731, 728, 718, 722, 733, 731, 735, 739, 728, 739, 750, 768, 748, 765, 772, 2013, 759, 770, 758, 782, 780, 782, 786, 783, 788, 789, 775, 788, 780, 787, 777, 789, 791, 812, 819, 800, 806, 814, 817, 812, 831, 819, 820, 821, 825, 837, 830, 839, 840, 834, 836, 2013, 845, 839, 828, 840, 838, 852, 855, 867, 855, 868, 875, 872, 878, 880, 883, 884, 868, 883, 869, 869, 870, 2013, 888, 877, 881, 904, 2013, 891, 889, 912, 900, 906, 912, 926, 927, 911, 912, 930, 2013, 925, 917, 928, 925, 934, 930, 922, 2013, 942, 927, 928, 954, 956, 947, 957, 967, 966, 956, 956, 2013, 965, 961, 980, 978, 2013, 2013, 2013, 970, 970, 962, 986, 967, 981, 976, 971, 973, 994, 981, 980, 984, 983, 1002, 998, 1004, 1017, 1007, 1004, 1018, 1013, 1028, 2013, 1019, 1032, 1033, 2013, 1034, 1031, 2013, 1018, 1029, 1035, 1029, 1036, 1034, 1024, 2013, 1022, 1028, 1047, 2013, 1050, 1056, 1059, 2013, 1060, 1067, 1057, 1057, 1052, 1077, 1078, 1063, 1079, 1065, 1071, 2013, 1073, 1085, 1086, 1076, 1071, 1086, 1088, 1082, 1081, 1090, 1084, 1097, 1092, 1116, 1112, 2013, 1120, 1112, 1105, 1106, 1119, 1116, 1130, 1131, 1130, 1134, 1129, 1119, 1116, 1121, 1125, 1126, 1129, 1130, 2013, 1141, 1147, 1173, 1137, 1155, 1144, 1149, 1150, 1156, 1163, 1156, 1178, 1180, 1182, 1159, 1180, 1166, 1183, 1167, 1177, 1171, 1173, 1184, 2013, 1191, 1188, 1193, 1185, 1195, 1216, 2013, 1211, 1214, 1219, 1217, 1217, 2013, 1226, 2013, 1221, 1217, 1213, 1220, 1230, 1235, 1215, 1220, 1221, 2013, 1227, 1238, 1225, 1227, 1244, 1239, 1241, 1239, 1263, 1253, 2013, 1254, 1273, 2013, 1272, 2013, 1268, 1253, 1258, 1265, 1263, 1282, 2013, 2013, 1266, 1262, 2013, 1285, 2013, 1269, 1274, 1280, 1272, 1277, 1289, 2013, 1287, 1285, 1297, 2013, 1283, 1293, 1316, 1314, 1314, 1315, 1318, 1314, 2013, 1309, 1310, 1324, 2013, 1307, 1309, 1330, 1317, 1335, 1332, 2013, 1336, 1334, 1335, 1336, 1335, 2013, 2013, 1337, 1325, 1347, 1341, 2013, 1342, 1346, 1348, 1371, 1369, 2013, 2013, 1372, 1371, 1365, 2013, 1377, 1361, 1372, 2013, 1382, 1380, 1373, 1372, 1383, 2013, 1375, 1375, 1376, 1390, 1384, 1390, 1395, 2013, 1397, 2013, 2013, 1404, 1385, 1393, 1400, 2013, 1409, 2013, 2013, 1404, 1417, 1422, 1422, 1427, 1428, 1430, 1414, 1426, 1416, 1425, 1437, 1438, 1418, 1422, 1462, 2013, 1419, 1444, 2013, 2013, 2013, 2013, 1432, 1454, 1438, 1468, 1457, 2013, 1451, 1475, 1472, 1462, 1477, 2013, 2013, 1472, 1479, 1466, 1476, 2013, 2013, 2013, 1473, 1478, 1470, 2013, 2013, 1475, 1481, 1477, 2013, 1469, 2013, 1494, 1478, 2013, 1501, 2013, 1506, 1510, 1518, 2013, 1501, 1508, 1502, 2013, 1520, 2013, 1525, 2013, 2013, 1526, 1504, 2013, 1524, 1513, 1525, 1520, 1534, 1521, 1517, 2013, 1519, 1518, 2013, 1526, 1521, 1529, 2013, 2013, 1547, 1531, 1554, 1542, 1551, 1570, 2013, 1571, 2013, 1572, 1573, 2013, 1556, 1555, 2013, 1566, 1565, 1563, 1582, 2013, 2013, 1564, 2013, 1576, 1577, 1586, 1564, 1578, 1566, 1580, 1589, 1575, 1590, 1616, 1591, 1594, 1610, 1613, 1608, 1605, 1619, 1628, 2013, 1630, 1615, 1626, 2013, 1618, 2013, 1625, 1620, 1619, 1635, 1640, 1634, 1621, 1647, 1650, 1656, 1666, 2013, 1666, 1670, 2013, 1671, 1666, 2013, 1673, 1671, 1659, 2013, 1663, 1678, 1668, 2013, 1670, 2013, 1666, 2013, 1680, 2013, 1672, 1667, 1683, 2013, 2013, 2013, 1674, 1670, 1668, 1685, 2013, 2013, 1674, 1697, 1681, 1695, 1712, 1714, 2013, 1720, 2013, 1721, 1723, 1707, 2013, 1716, 1723, 1704, 2013, 1724, 2013, 1723, 1732, 2013, 1713, 1727, 1716, 1716, 1730, 1738, 1738, 1732, 1734, 1733, 1746, 1749, 1748, 1755, 1767, 1771, 1773, 1774, 2013, 2013, 1767, 2013, 1763, 1764, 2013, 1767, 1767, 1769, 2013, 1783, 1765, 1774, 1786, 1773, 2013, 2013, 2013, 2013, 2013, 2013, 2013, 1770, 1788, 1786, 2013, 1779, 2013, 1794, 1797, 1786, 2013, 2013, 2013, 1789, 2013, 1799, 2013, 2013, 1818, 1811, 1821, 2013, 2013, 2013, 1800, 1813, 1825, 1825, 1820, 1816, 1830, 1831, 1829, 1816, 2013, 1822, 2013, 1828, 1830, 1838, 2013, 2013, 1826, 1821, 1828, 2013, 2013, 2013, 1825, 2013, 1836, 1846, 1856, 2013, 1847, 1861, 1866, 1856, 2013, 1862, 1874, 2013, 2013, 2013, 2013, 1876, 1870, 2013, 1878, 1877, 1874, 1870, 1872, 1873, 1867, 2013, 1880, 2013, 2013, 1880, 2013, 1888, 1882, 1879, 2013, 2013, 1880, 1875, 1897, 2013, 1887, 2013, 2013, 2013, 1903, 1911, 2013, 1901, 2013, 1921, 1923, 1924, 1921, 2013, 1918, 2013, 1923, 1907, 2013, 1917, 1932, 1933, 2013, 1926, 2013, 1928, 2013, 1928, 2013, 1933, 2013, 2013, 1934, 1939, 1929, 1942, 2013, 1944, 1934, 1936, 2013, 1945, 2013, 1953, 2013, 2013, 2013, 2013, 1960, 2013, 2013, 102, 100, 99 }; static yyconst flex_int16_t yy_def[985] = { 0, 981, 1, 981, 981, 981, 981, 981, 982, 983, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 984, 981, 981, 981, 982, 981, 983, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 984, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 0, 981, 981, 981 }; static yyconst flex_int16_t yy_nxt[2083] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 10, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 4, 41, 42, 43, 4, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 4, 41, 42, 43, 4, 44, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 159, 51, 107, 49, 55, 56, 54, 54, 54, 54, 54, 54, 74, 78, 79, 57, 75, 82, 135, 76, 80, 83, 108, 58, 114, 109, 81, 107, 115, 55, 56, 84, 77, 160, 153, 59, 52, 74, 78, 79, 57, 75, 82, 135, 76, 80, 83, 108, 58, 114, 109, 81, 50, 115, 92, 47, 84, 77, 93, 153, 59, 63, 94, 64, 154, 65, 66, 161, 95, 162, 163, 96, 164, 67, 165, 68, 166, 69, 70, 92, 71, 72, 46, 93, 73, 160, 63, 94, 64, 154, 65, 66, 161, 95, 162, 163, 96, 164, 67, 165, 68, 166, 69, 70, 158, 71, 72, 101, 104, 73, 85, 102, 167, 168, 97, 103, 105, 86, 169, 170, 171, 87, 172, 173, 98, 88, 106, 99, 89, 90, 100, 91, 101, 104, 62, 85, 102, 167, 168, 97, 103, 105, 86, 169, 170, 171, 87, 172, 173, 98, 88, 106, 99, 89, 90, 100, 91, 110, 116, 121, 61, 174, 117, 122, 111, 112, 118, 123, 175, 176, 125, 113, 119, 124, 177, 178, 179, 180, 120, 181, 185, 126, 110, 116, 121, 127, 174, 117, 122, 111, 112, 118, 123, 175, 176, 125, 113, 119, 124, 177, 178, 179, 180, 120, 181, 185, 126, 186, 187, 136, 127, 128, 155, 137, 188, 129, 156, 182, 130, 190, 183, 191, 131, 138, 189, 184, 157, 192, 193, 132, 133, 134, 186, 187, 136, 194, 128, 155, 137, 188, 129, 156, 182, 130, 190, 183, 191, 131, 138, 189, 184, 157, 192, 193, 132, 133, 134, 139, 195, 140, 194, 141, 196, 197, 142, 143, 198, 199, 200, 203, 204, 144, 205, 206, 207, 208, 201, 145, 60, 53, 202, 52, 139, 195, 140, 50, 141, 196, 197, 142, 143, 198, 199, 200, 203, 204, 144, 205, 206, 207, 208, 201, 145, 146, 211, 202, 212, 147, 209, 214, 148, 149, 216, 150, 217, 210, 223, 151, 215, 224, 218, 213, 219, 152, 48, 47, 46, 981, 146, 211, 45, 212, 147, 209, 214, 148, 149, 216, 150, 217, 210, 223, 151, 215, 224, 218, 213, 219, 152, 54, 54, 54, 54, 54, 54, 220, 221, 222, 225, 226, 228, 229, 231, 981, 244, 238, 230, 981, 240, 242, 981, 245, 246, 243, 981, 232, 239, 227, 241, 247, 220, 221, 222, 225, 226, 228, 229, 231, 233, 244, 238, 230, 234, 240, 242, 235, 245, 246, 243, 236, 232, 239, 227, 241, 247, 237, 250, 248, 251, 260, 261, 265, 258, 233, 249, 981, 266, 234, 267, 272, 235, 273, 981, 981, 236, 259, 981, 981, 981, 981, 237, 250, 248, 251, 260, 261, 265, 258, 981, 249, 252, 266, 262, 267, 272, 274, 273, 253, 254, 263, 259, 255, 256, 275, 257, 268, 264, 277, 288, 276, 981, 289, 981, 269, 292, 252, 270, 262, 981, 293, 274, 981, 253, 254, 263, 271, 255, 256, 275, 257, 268, 264, 277, 288, 276, 284, 289, 290, 269, 292, 291, 270, 981, 285, 293, 300, 301, 302, 981, 303, 271, 278, 286, 279, 294, 295, 287, 280, 304, 296, 284, 297, 290, 305, 281, 291, 282, 298, 285, 283, 300, 301, 302, 299, 303, 306, 278, 286, 279, 294, 295, 287, 280, 304, 296, 307, 297, 309, 305, 281, 311, 282, 298, 312, 283, 308, 313, 310, 299, 314, 306, 315, 316, 317, 319, 320, 321, 322, 323, 324, 307, 327, 309, 325, 326, 311, 328, 329, 312, 330, 308, 313, 310, 331, 314, 318, 315, 316, 317, 319, 320, 321, 322, 323, 324, 332, 327, 333, 325, 326, 334, 328, 329, 335, 330, 336, 337, 338, 331, 339, 318, 340, 341, 342, 343, 344, 345, 346, 347, 348, 332, 349, 333, 350, 351, 334, 352, 353, 335, 981, 336, 337, 338, 356, 339, 357, 340, 341, 342, 343, 344, 345, 346, 347, 348, 354, 349, 358, 350, 351, 359, 352, 353, 360, 355, 361, 362, 363, 356, 364, 357, 365, 366, 368, 370, 371, 372, 369, 373, 374, 354, 375, 358, 376, 377, 359, 378, 367, 360, 355, 361, 362, 363, 379, 364, 380, 365, 366, 368, 370, 371, 372, 369, 373, 374, 383, 375, 381, 376, 377, 384, 378, 367, 385, 382, 386, 387, 390, 379, 388, 380, 391, 392, 389, 393, 394, 395, 396, 397, 398, 383, 399, 381, 400, 401, 384, 402, 403, 385, 382, 386, 387, 390, 404, 388, 405, 391, 392, 389, 393, 394, 395, 396, 397, 398, 406, 399, 410, 400, 401, 408, 402, 403, 407, 411, 409, 412, 413, 404, 414, 405, 415, 416, 417, 418, 419, 420, 421, 422, 423, 406, 424, 410, 425, 426, 408, 427, 428, 407, 411, 409, 412, 413, 429, 414, 430, 415, 416, 417, 418, 419, 420, 421, 422, 423, 431, 424, 432, 425, 426, 433, 427, 428, 434, 435, 436, 440, 441, 429, 442, 430, 437, 443, 444, 445, 446, 447, 438, 448, 449, 431, 450, 432, 451, 452, 433, 439, 455, 434, 435, 436, 440, 441, 453, 442, 456, 437, 443, 444, 445, 446, 447, 438, 448, 449, 457, 450, 458, 451, 452, 454, 439, 455, 459, 460, 461, 462, 464, 453, 465, 456, 466, 469, 470, 471, 472, 473, 474, 463, 475, 457, 476, 458, 477, 478, 454, 467, 468, 459, 460, 461, 462, 464, 479, 465, 480, 466, 469, 470, 471, 472, 473, 474, 463, 475, 481, 476, 482, 477, 478, 483, 467, 468, 484, 485, 486, 487, 488, 479, 489, 480, 490, 491, 492, 493, 494, 495, 496, 497, 498, 481, 499, 482, 500, 501, 483, 502, 503, 484, 485, 486, 487, 488, 504, 489, 505, 490, 491, 492, 493, 494, 495, 496, 497, 498, 506, 499, 507, 500, 501, 508, 502, 503, 509, 510, 511, 512, 513, 504, 514, 505, 515, 516, 517, 518, 519, 520, 521, 522, 523, 506, 524, 507, 525, 526, 508, 527, 528, 509, 510, 511, 512, 513, 529, 514, 530, 515, 516, 517, 518, 519, 520, 521, 522, 523, 531, 524, 532, 525, 526, 533, 527, 528, 534, 535, 536, 537, 538, 529, 539, 530, 540, 541, 542, 543, 544, 545, 546, 547, 548, 531, 549, 532, 550, 551, 533, 552, 553, 534, 535, 536, 537, 538, 554, 539, 555, 540, 541, 542, 543, 544, 545, 546, 547, 548, 556, 549, 557, 550, 551, 558, 552, 553, 559, 560, 561, 562, 563, 554, 564, 555, 565, 566, 567, 568, 569, 570, 571, 572, 573, 556, 574, 557, 575, 576, 558, 577, 981, 559, 560, 561, 562, 563, 580, 564, 581, 565, 566, 567, 568, 569, 570, 571, 572, 573, 582, 574, 583, 575, 576, 584, 577, 578, 579, 585, 586, 587, 588, 580, 589, 581, 590, 591, 592, 593, 594, 595, 596, 597, 598, 582, 599, 583, 600, 601, 584, 602, 578, 579, 585, 586, 587, 588, 603, 589, 604, 590, 591, 592, 593, 594, 595, 596, 597, 598, 605, 599, 606, 600, 601, 607, 602, 608, 610, 611, 612, 609, 613, 603, 614, 604, 615, 616, 617, 618, 619, 620, 621, 622, 623, 605, 624, 606, 625, 626, 607, 627, 608, 610, 611, 612, 609, 613, 628, 614, 629, 615, 616, 617, 618, 619, 620, 621, 622, 623, 630, 624, 631, 625, 626, 632, 627, 633, 634, 635, 636, 637, 638, 628, 639, 629, 640, 641, 642, 643, 644, 645, 646, 647, 648, 630, 649, 631, 650, 651, 632, 652, 633, 634, 635, 636, 637, 638, 653, 639, 654, 640, 641, 642, 643, 644, 645, 646, 647, 648, 655, 649, 656, 650, 651, 657, 652, 658, 659, 660, 661, 662, 663, 653, 664, 654, 665, 666, 667, 668, 669, 670, 671, 672, 673, 655, 674, 656, 675, 676, 657, 677, 658, 659, 660, 661, 662, 663, 678, 664, 679, 665, 666, 667, 668, 669, 670, 671, 672, 673, 680, 674, 681, 675, 676, 682, 677, 683, 684, 685, 686, 687, 688, 678, 689, 679, 690, 691, 692, 693, 694, 695, 696, 697, 698, 680, 699, 681, 700, 701, 682, 702, 683, 684, 685, 686, 687, 688, 703, 689, 704, 690, 691, 692, 693, 694, 695, 696, 697, 698, 705, 699, 706, 700, 701, 707, 702, 708, 709, 711, 712, 713, 714, 703, 715, 704, 716, 710, 717, 718, 719, 720, 721, 722, 723, 705, 727, 706, 728, 981, 707, 729, 708, 709, 711, 712, 713, 714, 730, 715, 731, 716, 710, 717, 718, 719, 720, 721, 722, 723, 724, 727, 732, 728, 725, 733, 729, 726, 734, 735, 736, 737, 738, 730, 739, 731, 740, 741, 742, 743, 744, 745, 746, 747, 748, 724, 749, 732, 750, 725, 733, 751, 726, 734, 735, 736, 737, 738, 752, 739, 753, 740, 741, 742, 743, 744, 745, 746, 747, 748, 754, 749, 755, 750, 756, 757, 751, 758, 759, 760, 761, 762, 763, 752, 764, 753, 765, 766, 767, 768, 769, 770, 771, 772, 773, 754, 774, 755, 777, 756, 757, 775, 758, 759, 760, 761, 762, 763, 778, 764, 779, 765, 766, 767, 768, 769, 770, 771, 772, 773, 776, 774, 780, 777, 781, 782, 775, 783, 784, 785, 786, 787, 788, 778, 789, 779, 790, 791, 792, 793, 794, 795, 796, 797, 798, 776, 799, 780, 800, 781, 782, 801, 783, 784, 785, 786, 787, 788, 807, 789, 808, 790, 791, 792, 793, 794, 795, 796, 797, 798, 802, 799, 809, 800, 810, 811, 801, 812, 803, 804, 805, 813, 814, 807, 815, 808, 816, 817, 806, 818, 819, 820, 821, 822, 823, 802, 824, 809, 825, 810, 811, 826, 812, 803, 804, 805, 813, 814, 827, 815, 828, 816, 817, 806, 818, 819, 820, 821, 822, 823, 829, 824, 830, 825, 831, 832, 826, 833, 834, 835, 836, 837, 838, 827, 839, 828, 840, 841, 842, 843, 844, 845, 846, 847, 848, 829, 849, 830, 850, 831, 832, 851, 833, 834, 835, 836, 837, 838, 852, 839, 853, 840, 841, 842, 843, 844, 845, 846, 847, 848, 854, 849, 855, 850, 856, 857, 851, 858, 859, 860, 861, 862, 863, 852, 864, 853, 865, 866, 867, 869, 870, 871, 872, 873, 874, 854, 875, 855, 868, 856, 857, 876, 858, 859, 860, 861, 862, 863, 877, 864, 878, 865, 866, 867, 869, 870, 871, 872, 873, 874, 879, 875, 880, 868, 881, 882, 876, 883, 884, 885, 886, 887, 888, 877, 889, 878, 890, 891, 892, 893, 894, 895, 896, 897, 898, 879, 899, 880, 900, 881, 882, 901, 883, 884, 885, 886, 887, 888, 902, 889, 903, 890, 891, 892, 893, 894, 895, 896, 897, 898, 904, 899, 905, 900, 906, 907, 901, 908, 909, 910, 911, 912, 913, 902, 914, 903, 915, 916, 917, 918, 919, 920, 921, 922, 923, 904, 924, 905, 925, 906, 907, 926, 908, 909, 910, 911, 912, 913, 927, 914, 928, 915, 916, 917, 918, 919, 920, 921, 922, 923, 930, 924, 931, 925, 932, 933, 926, 934, 935, 929, 936, 937, 938, 927, 939, 928, 940, 941, 942, 943, 944, 945, 946, 947, 948, 930, 949, 931, 950, 932, 933, 951, 934, 935, 929, 936, 937, 938, 952, 939, 953, 940, 941, 942, 943, 944, 945, 946, 947, 948, 954, 949, 955, 950, 956, 957, 951, 958, 959, 960, 961, 962, 963, 952, 964, 953, 965, 966, 967, 968, 969, 970, 971, 972, 973, 954, 974, 955, 975, 956, 957, 976, 958, 959, 960, 961, 962, 963, 977, 964, 978, 965, 966, 967, 968, 969, 970, 971, 972, 973, 979, 974, 980, 975, 981, 981, 976, 981, 981, 981, 981, 981, 981, 977, 981, 978, 981, 981, 981, 981, 981, 981, 981, 981, 981, 979, 981, 980, 3, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981 }; static yyconst flex_int16_t yy_chk[2083] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 984, 983, 30, 982, 13, 14, 17, 17, 17, 17, 17, 17, 22, 23, 23, 15, 22, 24, 37, 22, 23, 24, 30, 16, 32, 30, 23, 30, 32, 13, 14, 24, 22, 159, 41, 17, 51, 22, 23, 23, 15, 22, 24, 37, 22, 23, 24, 30, 16, 32, 30, 23, 49, 32, 26, 47, 24, 22, 26, 41, 17, 21, 26, 21, 42, 21, 21, 55, 26, 56, 57, 26, 58, 21, 59, 21, 63, 21, 21, 26, 21, 21, 46, 26, 21, 45, 21, 26, 21, 42, 21, 21, 55, 26, 56, 57, 26, 58, 21, 59, 21, 63, 21, 21, 44, 21, 21, 28, 29, 21, 25, 28, 64, 65, 27, 28, 29, 25, 66, 67, 68, 25, 69, 70, 27, 25, 29, 27, 25, 25, 27, 25, 28, 29, 20, 25, 28, 64, 65, 27, 28, 29, 25, 66, 67, 68, 25, 69, 70, 27, 25, 29, 27, 25, 25, 27, 25, 31, 33, 34, 19, 71, 33, 34, 31, 31, 33, 34, 73, 74, 35, 31, 33, 34, 75, 76, 77, 78, 33, 79, 81, 35, 31, 33, 34, 35, 71, 33, 34, 31, 31, 33, 34, 73, 74, 35, 31, 33, 34, 75, 76, 77, 78, 33, 79, 81, 35, 82, 83, 38, 35, 36, 43, 38, 83, 36, 43, 80, 36, 84, 80, 85, 36, 38, 83, 80, 43, 86, 87, 36, 36, 36, 82, 83, 38, 88, 36, 43, 38, 83, 36, 43, 80, 36, 84, 80, 85, 36, 38, 83, 80, 43, 86, 87, 36, 36, 36, 39, 89, 39, 88, 39, 90, 91, 39, 39, 92, 93, 94, 95, 96, 39, 97, 98, 99, 100, 94, 39, 18, 11, 94, 9, 39, 89, 39, 8, 39, 90, 91, 39, 39, 92, 93, 94, 95, 96, 39, 97, 98, 99, 100, 94, 39, 40, 102, 94, 102, 40, 101, 103, 40, 40, 105, 40, 106, 101, 109, 40, 103, 110, 107, 102, 107, 40, 7, 6, 5, 3, 40, 102, 2, 102, 40, 101, 103, 40, 40, 105, 40, 106, 101, 109, 40, 103, 110, 107, 102, 107, 40, 54, 54, 54, 54, 54, 54, 108, 108, 108, 111, 112, 113, 114, 115, 0, 120, 117, 114, 0, 118, 119, 0, 121, 122, 119, 0, 115, 117, 112, 118, 123, 108, 108, 108, 111, 112, 113, 114, 115, 116, 120, 117, 114, 116, 118, 119, 116, 121, 122, 119, 116, 115, 117, 112, 118, 123, 116, 125, 124, 127, 130, 131, 133, 129, 116, 124, 0, 134, 116, 135, 137, 116, 138, 0, 0, 116, 129, 0, 0, 0, 0, 116, 125, 124, 127, 130, 131, 133, 129, 0, 124, 128, 134, 132, 135, 137, 139, 138, 128, 128, 132, 129, 128, 128, 139, 128, 136, 132, 140, 143, 139, 0, 144, 0, 136, 146, 128, 136, 132, 0, 146, 139, 0, 128, 128, 132, 136, 128, 128, 139, 128, 136, 132, 140, 143, 139, 142, 144, 145, 136, 146, 145, 136, 0, 142, 146, 149, 149, 150, 0, 151, 136, 141, 142, 141, 147, 147, 142, 141, 152, 147, 142, 148, 145, 153, 141, 145, 141, 148, 142, 141, 149, 149, 150, 148, 151, 154, 141, 142, 141, 147, 147, 142, 141, 152, 147, 155, 148, 156, 153, 141, 157, 141, 148, 166, 141, 155, 167, 156, 148, 168, 154, 169, 171, 173, 174, 175, 176, 177, 178, 179, 155, 181, 156, 180, 180, 157, 182, 183, 166, 184, 155, 167, 156, 185, 168, 173, 169, 171, 173, 174, 175, 176, 177, 178, 179, 186, 181, 187, 180, 180, 189, 182, 183, 190, 184, 191, 192, 193, 185, 194, 173, 195, 196, 197, 198, 199, 200, 201, 202, 203, 186, 204, 187, 205, 206, 189, 207, 208, 190, 0, 191, 192, 193, 210, 194, 211, 195, 196, 197, 198, 199, 200, 201, 202, 203, 209, 204, 212, 205, 206, 213, 207, 208, 214, 209, 215, 216, 217, 210, 218, 211, 219, 220, 221, 222, 223, 224, 221, 225, 226, 209, 227, 212, 228, 229, 213, 230, 220, 214, 209, 215, 216, 217, 231, 218, 232, 219, 220, 221, 222, 223, 224, 221, 225, 226, 234, 227, 233, 228, 229, 235, 230, 220, 236, 233, 238, 239, 240, 231, 239, 232, 241, 242, 239, 243, 244, 245, 246, 247, 248, 234, 249, 233, 250, 251, 235, 252, 253, 236, 233, 238, 239, 240, 254, 239, 254, 241, 242, 239, 243, 244, 245, 246, 247, 248, 255, 249, 257, 250, 251, 256, 252, 253, 255, 258, 256, 259, 260, 254, 261, 254, 262, 263, 264, 265, 266, 267, 268, 269, 270, 255, 271, 257, 272, 274, 256, 275, 276, 255, 258, 256, 259, 260, 277, 261, 278, 262, 263, 264, 265, 266, 267, 268, 269, 270, 279, 271, 280, 272, 274, 281, 275, 276, 282, 283, 284, 285, 286, 277, 287, 278, 284, 288, 289, 290, 291, 292, 284, 293, 294, 279, 296, 280, 297, 298, 281, 284, 301, 282, 283, 284, 285, 286, 299, 287, 302, 284, 288, 289, 290, 291, 292, 284, 293, 294, 303, 296, 304, 297, 298, 299, 284, 301, 305, 306, 307, 308, 309, 299, 310, 302, 311, 313, 314, 315, 316, 317, 318, 308, 319, 303, 321, 304, 322, 323, 299, 311, 311, 305, 306, 307, 308, 309, 324, 310, 325, 311, 313, 314, 315, 316, 317, 318, 308, 319, 326, 321, 327, 322, 323, 328, 311, 311, 329, 330, 331, 333, 334, 324, 335, 325, 336, 340, 341, 342, 343, 344, 345, 346, 347, 326, 348, 327, 349, 350, 328, 351, 352, 329, 330, 331, 333, 334, 353, 335, 354, 336, 340, 341, 342, 343, 344, 345, 346, 347, 355, 348, 356, 349, 350, 357, 351, 352, 358, 359, 360, 361, 362, 353, 364, 354, 365, 366, 368, 369, 371, 372, 373, 374, 375, 355, 376, 356, 377, 379, 357, 380, 381, 358, 359, 360, 361, 362, 383, 364, 384, 365, 366, 368, 369, 371, 372, 373, 374, 375, 385, 376, 387, 377, 379, 388, 380, 381, 389, 390, 391, 392, 393, 383, 394, 384, 395, 396, 397, 399, 400, 401, 402, 403, 404, 385, 405, 387, 406, 407, 388, 408, 409, 389, 390, 391, 392, 393, 410, 394, 411, 395, 396, 397, 399, 400, 401, 402, 403, 404, 412, 405, 413, 406, 407, 415, 408, 409, 416, 417, 418, 419, 420, 410, 421, 411, 422, 423, 424, 425, 426, 427, 428, 429, 430, 412, 431, 413, 432, 434, 415, 435, 0, 416, 417, 418, 419, 420, 437, 421, 438, 422, 423, 424, 425, 426, 427, 428, 429, 430, 439, 431, 440, 432, 434, 441, 435, 436, 436, 442, 443, 444, 445, 437, 446, 438, 447, 448, 449, 450, 451, 452, 453, 454, 455, 439, 456, 440, 458, 459, 441, 460, 436, 436, 442, 443, 444, 445, 461, 446, 462, 447, 448, 449, 450, 451, 452, 453, 454, 455, 463, 456, 465, 458, 459, 466, 460, 467, 468, 469, 471, 467, 473, 461, 474, 462, 475, 476, 477, 478, 479, 480, 481, 483, 484, 463, 485, 465, 486, 487, 466, 488, 467, 468, 469, 471, 467, 473, 489, 474, 490, 475, 476, 477, 478, 479, 480, 481, 483, 484, 491, 485, 492, 486, 487, 494, 488, 495, 497, 499, 500, 501, 502, 489, 503, 490, 504, 507, 508, 510, 512, 513, 514, 515, 516, 491, 517, 492, 519, 520, 494, 521, 495, 497, 499, 500, 501, 502, 523, 503, 524, 504, 507, 508, 510, 512, 513, 514, 515, 516, 525, 517, 526, 519, 520, 527, 521, 528, 529, 530, 532, 533, 534, 523, 536, 524, 537, 538, 539, 540, 541, 543, 544, 545, 546, 525, 547, 526, 550, 551, 527, 552, 528, 529, 530, 532, 533, 534, 553, 536, 555, 537, 538, 539, 540, 541, 543, 544, 545, 546, 556, 547, 557, 550, 551, 558, 552, 559, 562, 563, 564, 566, 567, 553, 568, 555, 570, 571, 572, 573, 574, 576, 577, 578, 579, 556, 580, 557, 581, 582, 558, 584, 559, 562, 563, 564, 566, 567, 587, 568, 588, 570, 571, 572, 573, 574, 576, 577, 578, 579, 589, 580, 590, 581, 582, 592, 584, 595, 596, 597, 598, 599, 600, 587, 601, 588, 602, 596, 603, 604, 605, 606, 607, 608, 609, 589, 612, 590, 613, 0, 592, 618, 595, 596, 597, 598, 599, 600, 619, 601, 620, 602, 596, 603, 604, 605, 606, 607, 608, 609, 610, 612, 621, 613, 610, 622, 618, 610, 624, 625, 626, 627, 628, 619, 631, 620, 632, 633, 634, 638, 639, 640, 643, 644, 645, 610, 647, 621, 649, 610, 622, 650, 610, 624, 625, 626, 627, 628, 652, 631, 654, 632, 633, 634, 638, 639, 640, 643, 644, 645, 655, 647, 656, 649, 658, 659, 650, 660, 662, 664, 667, 668, 670, 652, 671, 654, 672, 673, 674, 675, 676, 678, 679, 681, 682, 655, 683, 656, 687, 658, 659, 686, 660, 662, 664, 667, 668, 670, 688, 671, 689, 672, 673, 674, 675, 676, 678, 679, 681, 682, 686, 683, 690, 687, 691, 693, 686, 695, 696, 698, 699, 701, 702, 688, 703, 689, 704, 707, 709, 710, 711, 712, 713, 714, 715, 686, 716, 690, 717, 691, 693, 718, 695, 696, 698, 699, 701, 702, 720, 703, 721, 704, 707, 709, 710, 711, 712, 713, 714, 715, 719, 716, 722, 717, 723, 724, 718, 725, 719, 719, 719, 726, 727, 720, 729, 721, 730, 731, 719, 733, 735, 736, 737, 738, 739, 719, 740, 722, 741, 723, 724, 742, 725, 719, 719, 719, 726, 727, 743, 729, 744, 730, 731, 719, 733, 735, 736, 737, 738, 739, 745, 740, 747, 741, 748, 750, 742, 751, 753, 754, 755, 757, 758, 743, 759, 744, 761, 763, 765, 767, 768, 769, 773, 774, 775, 745, 776, 747, 779, 748, 750, 780, 751, 753, 754, 755, 757, 758, 781, 759, 782, 761, 763, 765, 767, 768, 769, 773, 774, 775, 783, 776, 784, 779, 786, 788, 780, 789, 790, 792, 793, 794, 796, 781, 798, 782, 799, 801, 802, 803, 804, 805, 806, 807, 808, 783, 809, 784, 802, 786, 788, 810, 789, 790, 792, 793, 794, 796, 811, 798, 812, 799, 801, 802, 803, 804, 805, 806, 807, 808, 813, 809, 814, 802, 815, 816, 810, 817, 818, 821, 823, 824, 826, 811, 827, 812, 828, 830, 831, 832, 833, 834, 842, 843, 844, 813, 846, 814, 848, 815, 816, 849, 817, 818, 821, 823, 824, 826, 850, 827, 854, 828, 830, 831, 832, 833, 834, 842, 843, 844, 856, 846, 859, 848, 860, 861, 849, 865, 866, 867, 868, 869, 870, 850, 871, 854, 872, 873, 874, 876, 878, 879, 880, 883, 884, 856, 885, 859, 889, 860, 861, 891, 865, 866, 867, 868, 869, 870, 892, 871, 893, 872, 873, 874, 876, 878, 879, 880, 883, 884, 895, 885, 896, 889, 897, 898, 891, 900, 901, 893, 906, 907, 909, 892, 910, 893, 911, 912, 913, 914, 915, 917, 920, 922, 923, 895, 924, 896, 927, 897, 898, 928, 900, 901, 893, 906, 907, 909, 929, 910, 931, 911, 912, 913, 914, 915, 917, 920, 922, 923, 935, 924, 936, 927, 938, 940, 928, 941, 942, 943, 945, 947, 948, 929, 950, 931, 951, 952, 954, 956, 958, 960, 963, 964, 965, 935, 966, 936, 968, 938, 940, 969, 941, 942, 943, 945, 947, 948, 970, 950, 972, 951, 952, 954, 956, 958, 960, 963, 964, 965, 974, 966, 979, 968, 0, 0, 969, 0, 0, 0, 0, 0, 0, 970, 0, 972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 974, 0, 979, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981 }; static yyconst flex_int16_t yy_rule_linenum[202] = { 0, 89, 90, 91, 92, 93, 95, 96, 97, 98, 100, 102, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125, 126, 127, 128, 129, 131, 132, 133, 134, 135, 136, 137, 138, 140, 141, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 155, 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 171, 172, 173, 174, 175, 176, 177, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 195, 196, 197, 198, 199, 200, 201, 203, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 219, 220, 221, 222, 223, 224, 225, 227, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 244, 245, 246, 247, 248, 249, 250, 252, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 267, 268, 269, 270, 271, 272, 273, 275, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 290, 291, 292, 293, 294, 295, 296, 298, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 313, 314, 315, 316, 317, 318, 319, 321 }; /* 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 #line 1 "holidayscannerplan.lpp" /* Original version from plan by Thomas Driemeyer Adapted for use in KOrganizer by Preston Brown and Reinhold Kainhofer Major rewrite using Bison C++ skeleton: Copyright 2010 John Layt This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #line 28 "holidayscannerplan.lpp" # include # include # include # include # include # include "holidayscannerplan_p.h" # include "holidayparserdriverplan_p.h" # include "holidayparserplan.hpp" /* import the parser's token type into a local typedef */ typedef KHolidays::HolidayParserPlan::token token; typedef KHolidays::HolidayParserPlan::token_type token_type; /* By default yylex returns int, we use token_type. Unfortunately yyterminate * by default returns 0, which is not of token_type. */ # define yyterminate() return token::END /* This disables inclusion of unistd.h, which is not available under Visual C++ * on Win32. The C++ scanner uses STL streams instead. */ # define YY_NO_UNISTD_H /*** Flex Declarations and Options ***/ /* enable c++ scanner class generation */ /* change the name of the scanner class. results in "HolidayScannerFlexLexer" */ /* the manual says "somewhat more optimized" */ /* enable scanner to generate debug output. disable this for release * versions. */ /* no support for include files is planned */ /* enables the use of start condition stacks */ /* The following paragraph suffices to track locations accurately. Each time * yylex is invoked, the begin position is moved onto the end position. */ #line 78 "holidayscannerplan.lpp" # define YY_USER_ACTION yylloc->columns( yyleng ); #line 1359 "holidayscannerplan.cpp" #define INITIAL 0 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ /* %if-c-only */ /* %endif */ /* %if-c++-only */ #include /* %endif */ #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif /* %if-c-only Reentrant structure and macros (non-C++). */ /* %if-reentrant */ /* %if-c-only */ /* %endif */ /* %if-reentrant */ /* %endif */ /* %endif End reentrant structures and macros. */ /* %if-bison-bridge */ /* %endif */ /* %not-for-header */ /* %ok-for-header */ /* %endif */ #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 /* %if-c-only Standard (non-C++) definition */ /* %not-for-header */ /* %ok-for-header */ /* %endif */ #endif /* %if-c-only */ /* %endif */ /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k */ #define YY_READ_BUF_SIZE 16384 #else #define YY_READ_BUF_SIZE 8192 #endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* %if-c-only Standard (non-C++) definition */ /* %endif */ /* %if-c++-only C++ definition */ #define ECHO LexerOutput( yytext, yyleng ) /* %endif */ #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) \ /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\ \ /* %if-c++-only C++ definition \ */\ if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); /* %endif */ #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 /* %if-c-only */ /* %endif */ /* %if-c++-only */ #define YY_FATAL_ERROR(msg) LexerError( msg ) /* %endif */ #endif /* %if-tables-serialization structures and prototypes */ /* %not-for-header */ /* %ok-for-header */ /* %not-for-header */ /* %tables-yydmap generated elements */ /* %endif */ /* end tables serialization structures and prototypes */ /* %ok-for-header */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 /* %if-c-only Standard (non-C++) definition */ /* %endif */ /* %if-c++-only C++ definition */ #define YY_DECL int yyFlexLexer::yylex() /* %endif */ #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * 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 /* %% [6.0] YY_RULE_SETUP definition goes here */ #define YY_RULE_SETUP \ if ( yyleng > 0 ) \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ (yytext[yyleng - 1] == '\n'); \ YY_USER_ACTION /* %not-for-header */ /** The main scanner function which does all the work. */ YY_DECL { yy_state_type yy_current_state; char *yy_cp, *yy_bp; int yy_act; /* %% [7.0] user's declarations go here */ #line 81 "holidayscannerplan.lpp" /* code to place at the beginning of yylex() */ // reset location yylloc->step(); #line 1533 "holidayscannerplan.cpp" if (!(yy_init)) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if (!(yy_start)) { (yy_start) = 1; /* first start state */ } if (! yyin) /* %if-c-only */ /* %endif */ /* %if-c++-only */ { yyin = & std::cin; } /* %endif */ if (! yyout) /* %if-c-only */ /* %endif */ /* %if-c++-only */ { yyout = & std::cout; } /* %endif */ if (! YY_CURRENT_BUFFER) { yyensure_buffer_stack(); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer(yyin, YY_BUF_SIZE); } yy_load_buffer_state(); } while (1) /* loops until end-of-file is reached */ { /* %% [8.0] yymore()-related code goes here */ yy_cp = (yy_c_buf_p); /* Support of yytext. */ *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; /* %% [9.0] code to set up and find next match goes here */ yy_current_state = (yy_start); yy_current_state += YY_AT_BOL(); yy_match: do { 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 >= 982) { 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 != 981); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); yy_find_action: /* %% [10.0] code to find the action number goes here */ yy_act = yy_accept[yy_current_state]; YY_DO_BEFORE_ACTION; /* %% [11.0] code for yylineno update goes here */ do_action: /* This label is used only to access EOF actions. */ /* %% [12.0] debug code goes here */ if (yy_flex_debug) { if (yy_act == 0) { std::cerr << "--scanner backing up\n"; } else if (yy_act < 202) std::cerr << "--accepting rule at line " << yy_rule_linenum[yy_act] << "(\"" << yytext << "\")\n"; else if (yy_act == 202) { std::cerr << "--accepting default rule (\"" << yytext << "\")\n"; } else if (yy_act == 203) { std::cerr << "--(end of buffer or a NUL)\n"; } else { std::cerr << "--EOF (start condition " << YY_START << ")\n"; } } switch (yy_act) { /* beginning of action switch */ /* %% [13.0] actions go here */ 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 89 "holidayscannerplan.lpp" +#line 89 "holidayscannerplan.lpp" { yylloc->lines(yyleng); yylloc->step(); } YY_BREAK case 2: /* rule 2 can match eol */ YY_RULE_SETUP -#line 90 "holidayscannerplan.lpp" +#line 90 "holidayscannerplan.lpp" { yylloc->lines(yyleng); yylloc->step(); } YY_BREAK case 3: YY_RULE_SETUP -#line 91 "holidayscannerplan.lpp" +#line 91 "holidayscannerplan.lpp" { yylloc->step(); } YY_BREAK case 4: /* rule 4 can match eol */ YY_RULE_SETUP -#line 92 "holidayscannerplan.lpp" +#line 92 "holidayscannerplan.lpp" { yylloc->lines(yyleng); yylloc->step(); } YY_BREAK case 5: YY_RULE_SETUP -#line 93 "holidayscannerplan.lpp" +#line 93 "holidayscannerplan.lpp" { return KHolidays::HolidayParserPlan::token_type(*yytext); } YY_BREAK case 6: YY_RULE_SETUP -#line 95 "holidayscannerplan.lpp" +#line 95 "holidayscannerplan.lpp" { return token::COUNTRY; } YY_BREAK case 7: YY_RULE_SETUP -#line 96 "holidayscannerplan.lpp" +#line 96 "holidayscannerplan.lpp" { return token::LANGUAGE; } YY_BREAK case 8: YY_RULE_SETUP -#line 97 "holidayscannerplan.lpp" +#line 97 "holidayscannerplan.lpp" { return token::NAME; } YY_BREAK case 9: YY_RULE_SETUP -#line 98 "holidayscannerplan.lpp" +#line 98 "holidayscannerplan.lpp" { return token::DESCRIPTION; } YY_BREAK case 10: YY_RULE_SETUP -#line 100 "holidayscannerplan.lpp" +#line 100 "holidayscannerplan.lpp" { yylval->ival = atoi(yytext); return token::NUMBER; } YY_BREAK case 11: /* rule 11 can match eol */ YY_RULE_SETUP #line 102 "holidayscannerplan.lpp" { yylval->sval = strdup(yytext + 1); yylval->sval[ strlen(yylval->sval) - 1 ] = 0; return token::STRING; } YY_BREAK case 12: YY_RULE_SETUP #line 106 "holidayscannerplan.lpp" ; YY_BREAK case 13: YY_RULE_SETUP #line 107 "holidayscannerplan.lpp" ; YY_BREAK case 14: YY_RULE_SETUP #line 108 "holidayscannerplan.lpp" ; YY_BREAK case 15: YY_RULE_SETUP #line 109 "holidayscannerplan.lpp" ; YY_BREAK case 16: YY_RULE_SETUP #line 110 "holidayscannerplan.lpp" ; YY_BREAK case 17: YY_RULE_SETUP -#line 111 "holidayscannerplan.lpp" +#line 111 "holidayscannerplan.lpp" { return token::INOP; } YY_BREAK case 18: YY_RULE_SETUP -#line 112 "holidayscannerplan.lpp" +#line 112 "holidayscannerplan.lpp" { return token::IF; } YY_BREAK case 19: YY_RULE_SETUP -#line 113 "holidayscannerplan.lpp" +#line 113 "holidayscannerplan.lpp" { return token::PLUS; } YY_BREAK case 20: YY_RULE_SETUP -#line 114 "holidayscannerplan.lpp" +#line 114 "holidayscannerplan.lpp" { return token::MINUS; } YY_BREAK case 21: YY_RULE_SETUP -#line 115 "holidayscannerplan.lpp" +#line 115 "holidayscannerplan.lpp" { return token::YEAR; } YY_BREAK case 22: YY_RULE_SETUP -#line 116 "holidayscannerplan.lpp" +#line 116 "holidayscannerplan.lpp" { return token::LEAPYEAR; } YY_BREAK case 23: YY_RULE_SETUP -#line 117 "holidayscannerplan.lpp" +#line 117 "holidayscannerplan.lpp" { return token::EASTER; } YY_BREAK case 24: YY_RULE_SETUP -#line 118 "holidayscannerplan.lpp" +#line 118 "holidayscannerplan.lpp" { return token::PASCHA; } YY_BREAK case 25: YY_RULE_SETUP -#line 119 "holidayscannerplan.lpp" +#line 119 "holidayscannerplan.lpp" { return token::LENGTH; } YY_BREAK case 26: YY_RULE_SETUP -#line 120 "holidayscannerplan.lpp" +#line 120 "holidayscannerplan.lpp" { return token::SHIFT; } YY_BREAK case 27: YY_RULE_SETUP -#line 122 "holidayscannerplan.lpp" +#line 122 "holidayscannerplan.lpp" { return token::EQ; } YY_BREAK case 28: YY_RULE_SETUP -#line 123 "holidayscannerplan.lpp" +#line 123 "holidayscannerplan.lpp" { return token::NE; } YY_BREAK case 29: YY_RULE_SETUP -#line 124 "holidayscannerplan.lpp" +#line 124 "holidayscannerplan.lpp" { return token::LE; } YY_BREAK case 30: YY_RULE_SETUP -#line 125 "holidayscannerplan.lpp" +#line 125 "holidayscannerplan.lpp" { return token::GE; } YY_BREAK case 31: YY_RULE_SETUP -#line 126 "holidayscannerplan.lpp" +#line 126 "holidayscannerplan.lpp" { return token::LT; } YY_BREAK case 32: YY_RULE_SETUP -#line 127 "holidayscannerplan.lpp" +#line 127 "holidayscannerplan.lpp" { return token::GT; } YY_BREAK case 33: YY_RULE_SETUP -#line 128 "holidayscannerplan.lpp" +#line 128 "holidayscannerplan.lpp" { return token::AND;} YY_BREAK case 34: YY_RULE_SETUP -#line 129 "holidayscannerplan.lpp" +#line 129 "holidayscannerplan.lpp" { return token::OR; } YY_BREAK case 35: YY_RULE_SETUP -#line 131 "holidayscannerplan.lpp" +#line 131 "holidayscannerplan.lpp" { yylval->ival = 1; return token::NUMBER; } YY_BREAK case 36: YY_RULE_SETUP -#line 132 "holidayscannerplan.lpp" +#line 132 "holidayscannerplan.lpp" { yylval->ival = 2; return token::NUMBER; } YY_BREAK case 37: YY_RULE_SETUP -#line 133 "holidayscannerplan.lpp" +#line 133 "holidayscannerplan.lpp" { yylval->ival = 3; return token::NUMBER; } YY_BREAK case 38: YY_RULE_SETUP -#line 134 "holidayscannerplan.lpp" +#line 134 "holidayscannerplan.lpp" { yylval->ival = 4; return token::NUMBER; } YY_BREAK case 39: YY_RULE_SETUP -#line 135 "holidayscannerplan.lpp" +#line 135 "holidayscannerplan.lpp" { yylval->ival = 5; return token::NUMBER; } YY_BREAK case 40: YY_RULE_SETUP -#line 136 "holidayscannerplan.lpp" +#line 136 "holidayscannerplan.lpp" { yylval->ival = 99999; return token::NUMBER; } YY_BREAK case 41: YY_RULE_SETUP -#line 137 "holidayscannerplan.lpp" +#line 137 "holidayscannerplan.lpp" { yylval->ival = -99999; return token::NUMBER; } YY_BREAK case 42: YY_RULE_SETUP -#line 138 "holidayscannerplan.lpp" +#line 138 "holidayscannerplan.lpp" { yylval->ival = 0; return token::NUMBER; } YY_BREAK case 43: YY_RULE_SETUP -#line 140 "holidayscannerplan.lpp" +#line 140 "holidayscannerplan.lpp" { yylval->ival = -1; return token::NUMBER; } YY_BREAK case 44: YY_RULE_SETUP -#line 141 "holidayscannerplan.lpp" +#line 141 "holidayscannerplan.lpp" { yylval->ival = 1; return token::NUMBER; } YY_BREAK case 45: YY_RULE_SETUP -#line 143 "holidayscannerplan.lpp" - { yylval->sval = "public"; return token::CATEGORY; } +#line 143 "holidayscannerplan.lpp" + { yylval->sval = (char *)"public"; return token::CATEGORY; } YY_BREAK case 46: YY_RULE_SETUP -#line 144 "holidayscannerplan.lpp" - { yylval->sval = "civil"; return token::CATEGORY; } +#line 144 "holidayscannerplan.lpp" + { yylval->sval = (char *)"civil"; return token::CATEGORY; } YY_BREAK case 47: YY_RULE_SETUP -#line 145 "holidayscannerplan.lpp" - { yylval->sval = "religious"; return token::CATEGORY; } +#line 145 "holidayscannerplan.lpp" + { yylval->sval = (char *)"religious"; return token::CATEGORY; } YY_BREAK case 48: YY_RULE_SETUP -#line 146 "holidayscannerplan.lpp" - { yylval->sval = "school"; return token::CATEGORY; } +#line 146 "holidayscannerplan.lpp" + { yylval->sval = (char *)"school"; return token::CATEGORY; } YY_BREAK case 49: YY_RULE_SETUP -#line 147 "holidayscannerplan.lpp" - { yylval->sval = "government"; return token::CATEGORY; } +#line 147 "holidayscannerplan.lpp" + { yylval->sval = (char *)"government"; return token::CATEGORY; } YY_BREAK case 50: YY_RULE_SETUP -#line 148 "holidayscannerplan.lpp" - { yylval->sval = "financial"; return token::CATEGORY; } +#line 148 "holidayscannerplan.lpp" + { yylval->sval = (char *)"financial"; return token::CATEGORY; } YY_BREAK case 51: YY_RULE_SETUP -#line 149 "holidayscannerplan.lpp" - { yylval->sval = "cultural"; return token::CATEGORY; } +#line 149 "holidayscannerplan.lpp" + { yylval->sval = (char *)"cultural"; return token::CATEGORY; } YY_BREAK case 52: YY_RULE_SETUP -#line 150 "holidayscannerplan.lpp" - { yylval->sval = "commemorative"; return token::CATEGORY; } +#line 150 "holidayscannerplan.lpp" + { yylval->sval = (char *)"commemorative"; return token::CATEGORY; } YY_BREAK case 53: YY_RULE_SETUP -#line 151 "holidayscannerplan.lpp" - { yylval->sval = "historical"; return token::CATEGORY; } +#line 151 "holidayscannerplan.lpp" + { yylval->sval = (char *)"historical"; return token::CATEGORY; } YY_BREAK case 54: YY_RULE_SETUP -#line 152 "holidayscannerplan.lpp" - { yylval->sval = "nameday"; return token::CATEGORY; } +#line 152 "holidayscannerplan.lpp" + { yylval->sval = (char *)"nameday"; return token::CATEGORY; } YY_BREAK case 55: YY_RULE_SETUP -#line 153 "holidayscannerplan.lpp" - { yylval->sval = "seasonal"; return token::CATEGORY; } +#line 153 "holidayscannerplan.lpp" + { yylval->sval = (char *)"seasonal"; return token::CATEGORY; } YY_BREAK case 56: YY_RULE_SETUP -#line 155 "holidayscannerplan.lpp" - { yylval->sval = "gregorian"; return token::CALENDAR; } +#line 155 "holidayscannerplan.lpp" + { yylval->sval = (char *)"gregorian"; return token::CALENDAR; } YY_BREAK case 57: YY_RULE_SETUP -#line 156 "holidayscannerplan.lpp" - { yylval->sval = "julian"; return token::CALENDAR; } +#line 156 "holidayscannerplan.lpp" + { yylval->sval = (char *)"julian"; return token::CALENDAR; } YY_BREAK case 58: YY_RULE_SETUP -#line 158 "holidayscannerplan.lpp" +#line 158 "holidayscannerplan.lpp" { yylval->ival = 1; return token::MONTH; } YY_BREAK case 59: YY_RULE_SETUP -#line 159 "holidayscannerplan.lpp" +#line 159 "holidayscannerplan.lpp" { yylval->ival = 2; return token::MONTH; } YY_BREAK case 60: YY_RULE_SETUP -#line 160 "holidayscannerplan.lpp" +#line 160 "holidayscannerplan.lpp" { yylval->ival = 3; return token::MONTH; } YY_BREAK case 61: YY_RULE_SETUP -#line 161 "holidayscannerplan.lpp" +#line 161 "holidayscannerplan.lpp" { yylval->ival = 4; return token::MONTH; } YY_BREAK case 62: YY_RULE_SETUP -#line 162 "holidayscannerplan.lpp" +#line 162 "holidayscannerplan.lpp" { yylval->ival = 5; return token::MONTH; } YY_BREAK case 63: YY_RULE_SETUP -#line 163 "holidayscannerplan.lpp" +#line 163 "holidayscannerplan.lpp" { yylval->ival = 6; return token::MONTH; } YY_BREAK case 64: YY_RULE_SETUP -#line 164 "holidayscannerplan.lpp" +#line 164 "holidayscannerplan.lpp" { yylval->ival = 7; return token::MONTH; } YY_BREAK case 65: YY_RULE_SETUP -#line 165 "holidayscannerplan.lpp" +#line 165 "holidayscannerplan.lpp" { yylval->ival = 8; return token::MONTH; } YY_BREAK case 66: YY_RULE_SETUP -#line 166 "holidayscannerplan.lpp" +#line 166 "holidayscannerplan.lpp" { yylval->ival = 9; return token::MONTH; } YY_BREAK case 67: YY_RULE_SETUP -#line 167 "holidayscannerplan.lpp" +#line 167 "holidayscannerplan.lpp" { yylval->ival = 10; return token::MONTH; } YY_BREAK case 68: YY_RULE_SETUP -#line 168 "holidayscannerplan.lpp" +#line 168 "holidayscannerplan.lpp" { yylval->ival = 11; return token::MONTH; } YY_BREAK case 69: YY_RULE_SETUP -#line 169 "holidayscannerplan.lpp" +#line 169 "holidayscannerplan.lpp" { yylval->ival = 12; return token::MONTH; } YY_BREAK case 70: YY_RULE_SETUP -#line 171 "holidayscannerplan.lpp" +#line 171 "holidayscannerplan.lpp" { yylval->ival = 1; return token::WDAY; } YY_BREAK case 71: YY_RULE_SETUP -#line 172 "holidayscannerplan.lpp" +#line 172 "holidayscannerplan.lpp" { yylval->ival = 2; return token::WDAY; } YY_BREAK case 72: YY_RULE_SETUP -#line 173 "holidayscannerplan.lpp" +#line 173 "holidayscannerplan.lpp" { yylval->ival = 3; return token::WDAY; } YY_BREAK case 73: YY_RULE_SETUP -#line 174 "holidayscannerplan.lpp" +#line 174 "holidayscannerplan.lpp" { yylval->ival = 4; return token::WDAY; } YY_BREAK case 74: YY_RULE_SETUP -#line 175 "holidayscannerplan.lpp" +#line 175 "holidayscannerplan.lpp" { yylval->ival = 5; return token::WDAY; } YY_BREAK case 75: YY_RULE_SETUP -#line 176 "holidayscannerplan.lpp" +#line 176 "holidayscannerplan.lpp" { yylval->ival = 6; return token::WDAY; } YY_BREAK case 76: YY_RULE_SETUP -#line 177 "holidayscannerplan.lpp" +#line 177 "holidayscannerplan.lpp" { yylval->ival = 7; return token::WDAY; } YY_BREAK case 77: YY_RULE_SETUP -#line 179 "holidayscannerplan.lpp" - { yylval->sval = "coptic"; return token::CALENDAR; } +#line 179 "holidayscannerplan.lpp" + { yylval->sval = (char *)"coptic"; return token::CALENDAR; } YY_BREAK case 78: YY_RULE_SETUP -#line 181 "holidayscannerplan.lpp" +#line 181 "holidayscannerplan.lpp" { yylval->ival = 1; return token::MONTH; } YY_BREAK case 79: YY_RULE_SETUP -#line 182 "holidayscannerplan.lpp" +#line 182 "holidayscannerplan.lpp" { yylval->ival = 2; return token::MONTH; } YY_BREAK case 80: YY_RULE_SETUP -#line 183 "holidayscannerplan.lpp" +#line 183 "holidayscannerplan.lpp" { yylval->ival = 3; return token::MONTH; } YY_BREAK case 81: YY_RULE_SETUP -#line 184 "holidayscannerplan.lpp" +#line 184 "holidayscannerplan.lpp" { yylval->ival = 4; return token::MONTH; } YY_BREAK case 82: YY_RULE_SETUP -#line 185 "holidayscannerplan.lpp" +#line 185 "holidayscannerplan.lpp" { yylval->ival = 5; return token::MONTH; } YY_BREAK case 83: YY_RULE_SETUP -#line 186 "holidayscannerplan.lpp" +#line 186 "holidayscannerplan.lpp" { yylval->ival = 6; return token::MONTH; } YY_BREAK case 84: YY_RULE_SETUP -#line 187 "holidayscannerplan.lpp" +#line 187 "holidayscannerplan.lpp" { yylval->ival = 7; return token::MONTH; } YY_BREAK case 85: YY_RULE_SETUP -#line 188 "holidayscannerplan.lpp" +#line 188 "holidayscannerplan.lpp" { yylval->ival = 8; return token::MONTH; } YY_BREAK case 86: YY_RULE_SETUP -#line 189 "holidayscannerplan.lpp" +#line 189 "holidayscannerplan.lpp" { yylval->ival = 9; return token::MONTH; } YY_BREAK case 87: YY_RULE_SETUP -#line 190 "holidayscannerplan.lpp" +#line 190 "holidayscannerplan.lpp" { yylval->ival = 10; return token::MONTH; } YY_BREAK case 88: YY_RULE_SETUP -#line 191 "holidayscannerplan.lpp" +#line 191 "holidayscannerplan.lpp" { yylval->ival = 11; return token::MONTH; } YY_BREAK case 89: YY_RULE_SETUP -#line 192 "holidayscannerplan.lpp" +#line 192 "holidayscannerplan.lpp" { yylval->ival = 12; return token::MONTH; } YY_BREAK case 90: YY_RULE_SETUP -#line 193 "holidayscannerplan.lpp" +#line 193 "holidayscannerplan.lpp" { yylval->ival = 13; return token::MONTH; } YY_BREAK case 91: YY_RULE_SETUP -#line 195 "holidayscannerplan.lpp" +#line 195 "holidayscannerplan.lpp" { yylval->ival = 1; return token::WDAY; } YY_BREAK case 92: YY_RULE_SETUP -#line 196 "holidayscannerplan.lpp" +#line 196 "holidayscannerplan.lpp" { yylval->ival = 2; return token::WDAY; } YY_BREAK case 93: YY_RULE_SETUP -#line 197 "holidayscannerplan.lpp" +#line 197 "holidayscannerplan.lpp" { yylval->ival = 3; return token::WDAY; } YY_BREAK case 94: YY_RULE_SETUP -#line 198 "holidayscannerplan.lpp" +#line 198 "holidayscannerplan.lpp" { yylval->ival = 4; return token::WDAY; } YY_BREAK case 95: YY_RULE_SETUP -#line 199 "holidayscannerplan.lpp" +#line 199 "holidayscannerplan.lpp" { yylval->ival = 5; return token::WDAY; } YY_BREAK case 96: YY_RULE_SETUP -#line 200 "holidayscannerplan.lpp" +#line 200 "holidayscannerplan.lpp" { yylval->ival = 6; return token::WDAY; } YY_BREAK case 97: YY_RULE_SETUP -#line 201 "holidayscannerplan.lpp" +#line 201 "holidayscannerplan.lpp" { yylval->ival = 7; return token::WDAY; } YY_BREAK case 98: YY_RULE_SETUP -#line 203 "holidayscannerplan.lpp" - { yylval->sval = "ethiopian"; return token::CALENDAR; } +#line 203 "holidayscannerplan.lpp" + { yylval->sval = (char *)"ethiopian"; return token::CALENDAR; } YY_BREAK case 99: YY_RULE_SETUP -#line 205 "holidayscannerplan.lpp" +#line 205 "holidayscannerplan.lpp" { yylval->ival = 1; return token::MONTH; } YY_BREAK case 100: YY_RULE_SETUP -#line 206 "holidayscannerplan.lpp" +#line 206 "holidayscannerplan.lpp" { yylval->ival = 2; return token::MONTH; } YY_BREAK case 101: YY_RULE_SETUP -#line 207 "holidayscannerplan.lpp" +#line 207 "holidayscannerplan.lpp" { yylval->ival = 3; return token::MONTH; } YY_BREAK case 102: YY_RULE_SETUP -#line 208 "holidayscannerplan.lpp" +#line 208 "holidayscannerplan.lpp" { yylval->ival = 4; return token::MONTH; } YY_BREAK case 103: YY_RULE_SETUP -#line 209 "holidayscannerplan.lpp" +#line 209 "holidayscannerplan.lpp" { yylval->ival = 5; return token::MONTH; } YY_BREAK case 104: YY_RULE_SETUP -#line 210 "holidayscannerplan.lpp" +#line 210 "holidayscannerplan.lpp" { yylval->ival = 6; return token::MONTH; } YY_BREAK case 105: YY_RULE_SETUP -#line 211 "holidayscannerplan.lpp" +#line 211 "holidayscannerplan.lpp" { yylval->ival = 7; return token::MONTH; } YY_BREAK case 106: YY_RULE_SETUP -#line 212 "holidayscannerplan.lpp" +#line 212 "holidayscannerplan.lpp" { yylval->ival = 8; return token::MONTH; } YY_BREAK case 107: YY_RULE_SETUP -#line 213 "holidayscannerplan.lpp" +#line 213 "holidayscannerplan.lpp" { yylval->ival = 9; return token::MONTH; } YY_BREAK case 108: YY_RULE_SETUP -#line 214 "holidayscannerplan.lpp" +#line 214 "holidayscannerplan.lpp" { yylval->ival = 10; return token::MONTH; } YY_BREAK case 109: YY_RULE_SETUP -#line 215 "holidayscannerplan.lpp" +#line 215 "holidayscannerplan.lpp" { yylval->ival = 11; return token::MONTH; } YY_BREAK case 110: YY_RULE_SETUP -#line 216 "holidayscannerplan.lpp" +#line 216 "holidayscannerplan.lpp" { yylval->ival = 12; return token::MONTH; } YY_BREAK case 111: YY_RULE_SETUP -#line 217 "holidayscannerplan.lpp" +#line 217 "holidayscannerplan.lpp" { yylval->ival = 13; return token::MONTH; } YY_BREAK case 112: YY_RULE_SETUP -#line 219 "holidayscannerplan.lpp" +#line 219 "holidayscannerplan.lpp" { yylval->ival = 1; return token::WDAY; } YY_BREAK case 113: YY_RULE_SETUP -#line 220 "holidayscannerplan.lpp" +#line 220 "holidayscannerplan.lpp" { yylval->ival = 2; return token::WDAY; } YY_BREAK case 114: YY_RULE_SETUP -#line 221 "holidayscannerplan.lpp" +#line 221 "holidayscannerplan.lpp" { yylval->ival = 3; return token::WDAY; } YY_BREAK case 115: YY_RULE_SETUP -#line 222 "holidayscannerplan.lpp" +#line 222 "holidayscannerplan.lpp" { yylval->ival = 4; return token::WDAY; } YY_BREAK case 116: YY_RULE_SETUP -#line 223 "holidayscannerplan.lpp" +#line 223 "holidayscannerplan.lpp" { yylval->ival = 5; return token::WDAY; } YY_BREAK case 117: YY_RULE_SETUP -#line 224 "holidayscannerplan.lpp" +#line 224 "holidayscannerplan.lpp" { yylval->ival = 6; return token::WDAY; } YY_BREAK case 118: YY_RULE_SETUP -#line 225 "holidayscannerplan.lpp" +#line 225 "holidayscannerplan.lpp" { yylval->ival = 7; return token::WDAY; } YY_BREAK case 119: YY_RULE_SETUP -#line 227 "holidayscannerplan.lpp" - { yylval->sval = "hebrew"; return token::CALENDAR; } +#line 227 "holidayscannerplan.lpp" + { yylval->sval = (char *)"hebrew"; return token::CALENDAR; } YY_BREAK case 120: YY_RULE_SETUP -#line 229 "holidayscannerplan.lpp" +#line 229 "holidayscannerplan.lpp" { yylval->ival = 1; return token::MONTH; } YY_BREAK case 121: YY_RULE_SETUP -#line 230 "holidayscannerplan.lpp" +#line 230 "holidayscannerplan.lpp" { yylval->ival = 2; return token::MONTH; } YY_BREAK case 122: YY_RULE_SETUP -#line 231 "holidayscannerplan.lpp" +#line 231 "holidayscannerplan.lpp" { yylval->ival = 3; return token::MONTH; } YY_BREAK case 123: YY_RULE_SETUP -#line 232 "holidayscannerplan.lpp" +#line 232 "holidayscannerplan.lpp" { yylval->ival = 4; return token::MONTH; } YY_BREAK case 124: YY_RULE_SETUP -#line 233 "holidayscannerplan.lpp" +#line 233 "holidayscannerplan.lpp" { yylval->ival = 5; return token::MONTH; } YY_BREAK case 125: YY_RULE_SETUP -#line 234 "holidayscannerplan.lpp" +#line 234 "holidayscannerplan.lpp" { yylval->ival = 6; return token::MONTH; } YY_BREAK case 126: YY_RULE_SETUP -#line 235 "holidayscannerplan.lpp" +#line 235 "holidayscannerplan.lpp" { yylval->ival = 7; return token::MONTH; } YY_BREAK case 127: YY_RULE_SETUP -#line 236 "holidayscannerplan.lpp" +#line 236 "holidayscannerplan.lpp" { yylval->ival = 8; return token::MONTH; } YY_BREAK case 128: YY_RULE_SETUP -#line 237 "holidayscannerplan.lpp" +#line 237 "holidayscannerplan.lpp" { yylval->ival = 9; return token::MONTH; } YY_BREAK case 129: YY_RULE_SETUP -#line 238 "holidayscannerplan.lpp" +#line 238 "holidayscannerplan.lpp" { yylval->ival = 10; return token::MONTH; } YY_BREAK case 130: YY_RULE_SETUP -#line 239 "holidayscannerplan.lpp" +#line 239 "holidayscannerplan.lpp" { yylval->ival = 11; return token::MONTH; } YY_BREAK case 131: YY_RULE_SETUP -#line 240 "holidayscannerplan.lpp" +#line 240 "holidayscannerplan.lpp" { yylval->ival = 12; return token::MONTH; } YY_BREAK case 132: YY_RULE_SETUP -#line 241 "holidayscannerplan.lpp" +#line 241 "holidayscannerplan.lpp" { yylval->ival = 13; return token::MONTH; } YY_BREAK case 133: YY_RULE_SETUP -#line 242 "holidayscannerplan.lpp" +#line 242 "holidayscannerplan.lpp" { yylval->ival = 14; return token::MONTH; } YY_BREAK case 134: YY_RULE_SETUP -#line 244 "holidayscannerplan.lpp" +#line 244 "holidayscannerplan.lpp" { yylval->ival = 1; return token::WDAY; } YY_BREAK case 135: YY_RULE_SETUP -#line 245 "holidayscannerplan.lpp" +#line 245 "holidayscannerplan.lpp" { yylval->ival = 2; return token::WDAY; } YY_BREAK case 136: YY_RULE_SETUP -#line 246 "holidayscannerplan.lpp" +#line 246 "holidayscannerplan.lpp" { yylval->ival = 3; return token::WDAY; } YY_BREAK case 137: YY_RULE_SETUP -#line 247 "holidayscannerplan.lpp" +#line 247 "holidayscannerplan.lpp" { yylval->ival = 4; return token::WDAY; } YY_BREAK case 138: YY_RULE_SETUP -#line 248 "holidayscannerplan.lpp" +#line 248 "holidayscannerplan.lpp" { yylval->ival = 5; return token::WDAY; } YY_BREAK case 139: YY_RULE_SETUP -#line 249 "holidayscannerplan.lpp" +#line 249 "holidayscannerplan.lpp" { yylval->ival = 6; return token::WDAY; } YY_BREAK case 140: YY_RULE_SETUP -#line 250 "holidayscannerplan.lpp" +#line 250 "holidayscannerplan.lpp" { yylval->ival = 7; return token::WDAY; } YY_BREAK case 141: YY_RULE_SETUP -#line 252 "holidayscannerplan.lpp" - { yylval->sval = "hijri"; return token::CALENDAR; } +#line 252 "holidayscannerplan.lpp" + { yylval->sval = (char *)"hijri"; return token::CALENDAR; } YY_BREAK case 142: YY_RULE_SETUP -#line 254 "holidayscannerplan.lpp" +#line 254 "holidayscannerplan.lpp" { yylval->ival = 1; return token::MONTH; } YY_BREAK case 143: YY_RULE_SETUP -#line 255 "holidayscannerplan.lpp" +#line 255 "holidayscannerplan.lpp" { yylval->ival = 2; return token::MONTH; } YY_BREAK case 144: YY_RULE_SETUP -#line 256 "holidayscannerplan.lpp" +#line 256 "holidayscannerplan.lpp" { yylval->ival = 3; return token::MONTH; } YY_BREAK case 145: YY_RULE_SETUP -#line 257 "holidayscannerplan.lpp" +#line 257 "holidayscannerplan.lpp" { yylval->ival = 4; return token::MONTH; } YY_BREAK case 146: YY_RULE_SETUP -#line 258 "holidayscannerplan.lpp" +#line 258 "holidayscannerplan.lpp" { yylval->ival = 5; return token::MONTH; } YY_BREAK case 147: YY_RULE_SETUP -#line 259 "holidayscannerplan.lpp" +#line 259 "holidayscannerplan.lpp" { yylval->ival = 6; return token::MONTH; } YY_BREAK case 148: YY_RULE_SETUP -#line 260 "holidayscannerplan.lpp" +#line 260 "holidayscannerplan.lpp" { yylval->ival = 7; return token::MONTH; } YY_BREAK case 149: YY_RULE_SETUP -#line 261 "holidayscannerplan.lpp" +#line 261 "holidayscannerplan.lpp" { yylval->ival = 8; return token::MONTH; } YY_BREAK case 150: YY_RULE_SETUP -#line 262 "holidayscannerplan.lpp" +#line 262 "holidayscannerplan.lpp" { yylval->ival = 9; return token::MONTH; } YY_BREAK case 151: YY_RULE_SETUP -#line 263 "holidayscannerplan.lpp" +#line 263 "holidayscannerplan.lpp" { yylval->ival = 10; return token::MONTH; } YY_BREAK case 152: YY_RULE_SETUP -#line 264 "holidayscannerplan.lpp" +#line 264 "holidayscannerplan.lpp" { yylval->ival = 11; return token::MONTH; } YY_BREAK case 153: YY_RULE_SETUP -#line 265 "holidayscannerplan.lpp" +#line 265 "holidayscannerplan.lpp" { yylval->ival = 12; return token::MONTH; } YY_BREAK case 154: YY_RULE_SETUP -#line 267 "holidayscannerplan.lpp" +#line 267 "holidayscannerplan.lpp" { yylval->ival = 1; return token::WDAY; } YY_BREAK case 155: YY_RULE_SETUP -#line 268 "holidayscannerplan.lpp" +#line 268 "holidayscannerplan.lpp" { yylval->ival = 2; return token::WDAY; } YY_BREAK case 156: YY_RULE_SETUP -#line 269 "holidayscannerplan.lpp" +#line 269 "holidayscannerplan.lpp" { yylval->ival = 3; return token::WDAY; } YY_BREAK case 157: YY_RULE_SETUP -#line 270 "holidayscannerplan.lpp" +#line 270 "holidayscannerplan.lpp" { yylval->ival = 4; return token::WDAY; } YY_BREAK case 158: YY_RULE_SETUP -#line 271 "holidayscannerplan.lpp" +#line 271 "holidayscannerplan.lpp" { yylval->ival = 5; return token::WDAY; } YY_BREAK case 159: YY_RULE_SETUP -#line 272 "holidayscannerplan.lpp" +#line 272 "holidayscannerplan.lpp" { yylval->ival = 6; return token::WDAY; } YY_BREAK case 160: YY_RULE_SETUP -#line 273 "holidayscannerplan.lpp" +#line 273 "holidayscannerplan.lpp" { yylval->ival = 7; return token::WDAY; } YY_BREAK case 161: YY_RULE_SETUP -#line 275 "holidayscannerplan.lpp" - { yylval->sval = "indian-national"; return token::CALENDAR; } +#line 275 "holidayscannerplan.lpp" + { yylval->sval = (char *)"indian-national"; return token::CALENDAR; } YY_BREAK case 162: YY_RULE_SETUP -#line 277 "holidayscannerplan.lpp" +#line 277 "holidayscannerplan.lpp" { yylval->ival = 1; return token::MONTH; } YY_BREAK case 163: YY_RULE_SETUP -#line 278 "holidayscannerplan.lpp" +#line 278 "holidayscannerplan.lpp" { yylval->ival = 2; return token::MONTH; } YY_BREAK case 164: YY_RULE_SETUP -#line 279 "holidayscannerplan.lpp" +#line 279 "holidayscannerplan.lpp" { yylval->ival = 3; return token::MONTH; } YY_BREAK case 165: YY_RULE_SETUP -#line 280 "holidayscannerplan.lpp" +#line 280 "holidayscannerplan.lpp" { yylval->ival = 4; return token::MONTH; } YY_BREAK case 166: YY_RULE_SETUP -#line 281 "holidayscannerplan.lpp" +#line 281 "holidayscannerplan.lpp" { yylval->ival = 5; return token::MONTH; } YY_BREAK case 167: YY_RULE_SETUP -#line 282 "holidayscannerplan.lpp" +#line 282 "holidayscannerplan.lpp" { yylval->ival = 6; return token::MONTH; } YY_BREAK case 168: YY_RULE_SETUP -#line 283 "holidayscannerplan.lpp" +#line 283 "holidayscannerplan.lpp" { yylval->ival = 7; return token::MONTH; } YY_BREAK case 169: YY_RULE_SETUP -#line 284 "holidayscannerplan.lpp" +#line 284 "holidayscannerplan.lpp" { yylval->ival = 8; return token::MONTH; } YY_BREAK case 170: YY_RULE_SETUP -#line 285 "holidayscannerplan.lpp" +#line 285 "holidayscannerplan.lpp" { yylval->ival = 9; return token::MONTH; } YY_BREAK case 171: YY_RULE_SETUP -#line 286 "holidayscannerplan.lpp" +#line 286 "holidayscannerplan.lpp" { yylval->ival = 10; return token::MONTH; } YY_BREAK case 172: YY_RULE_SETUP -#line 287 "holidayscannerplan.lpp" +#line 287 "holidayscannerplan.lpp" { yylval->ival = 11; return token::MONTH; } YY_BREAK case 173: YY_RULE_SETUP -#line 288 "holidayscannerplan.lpp" +#line 288 "holidayscannerplan.lpp" { yylval->ival = 12; return token::MONTH; } YY_BREAK case 174: YY_RULE_SETUP -#line 290 "holidayscannerplan.lpp" +#line 290 "holidayscannerplan.lpp" { yylval->ival = 1; return token::WDAY; } YY_BREAK case 175: YY_RULE_SETUP -#line 291 "holidayscannerplan.lpp" +#line 291 "holidayscannerplan.lpp" { yylval->ival = 2; return token::WDAY; } YY_BREAK case 176: YY_RULE_SETUP -#line 292 "holidayscannerplan.lpp" +#line 292 "holidayscannerplan.lpp" { yylval->ival = 3; return token::WDAY; } YY_BREAK case 177: YY_RULE_SETUP -#line 293 "holidayscannerplan.lpp" +#line 293 "holidayscannerplan.lpp" { yylval->ival = 4; return token::WDAY; } YY_BREAK case 178: YY_RULE_SETUP -#line 294 "holidayscannerplan.lpp" +#line 294 "holidayscannerplan.lpp" { yylval->ival = 5; return token::WDAY; } YY_BREAK case 179: YY_RULE_SETUP -#line 295 "holidayscannerplan.lpp" +#line 295 "holidayscannerplan.lpp" { yylval->ival = 6; return token::WDAY; } YY_BREAK case 180: YY_RULE_SETUP -#line 296 "holidayscannerplan.lpp" +#line 296 "holidayscannerplan.lpp" { yylval->ival = 7; return token::WDAY; } YY_BREAK case 181: YY_RULE_SETUP -#line 298 "holidayscannerplan.lpp" - { yylval->sval = "jalali"; return token::CALENDAR; } +#line 298 "holidayscannerplan.lpp" + { yylval->sval = (char *)"jalali"; return token::CALENDAR; } YY_BREAK case 182: YY_RULE_SETUP -#line 300 "holidayscannerplan.lpp" +#line 300 "holidayscannerplan.lpp" { yylval->ival = 1; return token::MONTH; } YY_BREAK case 183: YY_RULE_SETUP -#line 301 "holidayscannerplan.lpp" +#line 301 "holidayscannerplan.lpp" { yylval->ival = 2; return token::MONTH; } YY_BREAK case 184: YY_RULE_SETUP -#line 302 "holidayscannerplan.lpp" +#line 302 "holidayscannerplan.lpp" { yylval->ival = 3; return token::MONTH; } YY_BREAK case 185: YY_RULE_SETUP -#line 303 "holidayscannerplan.lpp" +#line 303 "holidayscannerplan.lpp" { yylval->ival = 4; return token::MONTH; } YY_BREAK case 186: YY_RULE_SETUP -#line 304 "holidayscannerplan.lpp" +#line 304 "holidayscannerplan.lpp" { yylval->ival = 5; return token::MONTH; } YY_BREAK case 187: YY_RULE_SETUP -#line 305 "holidayscannerplan.lpp" +#line 305 "holidayscannerplan.lpp" { yylval->ival = 6; return token::MONTH; } YY_BREAK case 188: YY_RULE_SETUP -#line 306 "holidayscannerplan.lpp" +#line 306 "holidayscannerplan.lpp" { yylval->ival = 7; return token::MONTH; } YY_BREAK case 189: YY_RULE_SETUP -#line 307 "holidayscannerplan.lpp" +#line 307 "holidayscannerplan.lpp" { yylval->ival = 8; return token::MONTH; } YY_BREAK case 190: YY_RULE_SETUP -#line 308 "holidayscannerplan.lpp" +#line 308 "holidayscannerplan.lpp" { yylval->ival = 9; return token::MONTH; } YY_BREAK case 191: YY_RULE_SETUP -#line 309 "holidayscannerplan.lpp" +#line 309 "holidayscannerplan.lpp" { yylval->ival = 10; return token::MONTH; } YY_BREAK case 192: YY_RULE_SETUP -#line 310 "holidayscannerplan.lpp" +#line 310 "holidayscannerplan.lpp" { yylval->ival = 11; return token::MONTH; } YY_BREAK case 193: YY_RULE_SETUP -#line 311 "holidayscannerplan.lpp" +#line 311 "holidayscannerplan.lpp" { yylval->ival = 12; return token::MONTH; } YY_BREAK case 194: YY_RULE_SETUP -#line 313 "holidayscannerplan.lpp" +#line 313 "holidayscannerplan.lpp" { yylval->ival = 1; return token::WDAY; } YY_BREAK case 195: YY_RULE_SETUP -#line 314 "holidayscannerplan.lpp" +#line 314 "holidayscannerplan.lpp" { yylval->ival = 2; return token::WDAY; } YY_BREAK case 196: YY_RULE_SETUP -#line 315 "holidayscannerplan.lpp" +#line 315 "holidayscannerplan.lpp" { yylval->ival = 3; return token::WDAY; } YY_BREAK case 197: YY_RULE_SETUP -#line 316 "holidayscannerplan.lpp" +#line 316 "holidayscannerplan.lpp" { yylval->ival = 4; return token::WDAY; } YY_BREAK case 198: YY_RULE_SETUP -#line 317 "holidayscannerplan.lpp" +#line 317 "holidayscannerplan.lpp" { yylval->ival = 5; return token::WDAY; } YY_BREAK case 199: YY_RULE_SETUP -#line 318 "holidayscannerplan.lpp" +#line 318 "holidayscannerplan.lpp" { yylval->ival = 6; return token::WDAY; } YY_BREAK case 200: YY_RULE_SETUP -#line 319 "holidayscannerplan.lpp" +#line 319 "holidayscannerplan.lpp" { yylval->ival = 7; return token::WDAY; } YY_BREAK case 201: YY_RULE_SETUP -#line 321 "holidayscannerplan.lpp" +#line 321 "holidayscannerplan.lpp" { LexerError(yytext); } YY_BREAK case 202: YY_RULE_SETUP #line 323 "holidayscannerplan.lpp" ECHO; YY_BREAK #line 2659 "holidayscannerplan.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int)(yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). 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 = yyin; 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 { /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */ 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 (yywrap()) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, 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 yylex */ /* %ok-for-header */ /* %if-c++-only */ /* %not-for-header */ /* The contents of this function are C++ specific, so the () macro is not used. */ yyFlexLexer::yyFlexLexer(std::istream *arg_yyin, std::ostream *arg_yyout) { yyin = arg_yyin; yyout = arg_yyout; yy_c_buf_p = nullptr; yy_init = 0; yy_start = 0; yy_flex_debug = 0; yylineno = 1; // this will only get updated if %option yylineno yy_did_buffer_switch_on_eof = 0; yy_looking_for_trail_begin = 0; yy_more_flag = 0; yy_more_len = 0; yy_more_offset = yy_prev_more_offset = 0; yy_start_stack_ptr = yy_start_stack_depth = 0; yy_start_stack = nullptr; yy_buffer_stack = nullptr; yy_buffer_stack_top = 0; yy_buffer_stack_max = 0; yy_state_buf = nullptr; } /* The contents of this function are C++ specific, so the () macro is not used. */ yyFlexLexer::~yyFlexLexer() { delete [] yy_state_buf; HolidayScannerfree(yy_start_stack); yy_delete_buffer(YY_CURRENT_BUFFER); HolidayScannerfree(yy_buffer_stack); } /* The contents of this function are C++ specific, so the () macro is not used. */ void yyFlexLexer::switch_streams(std::istream *new_in, std::ostream *new_out) { if (new_in) { yy_delete_buffer(YY_CURRENT_BUFFER); yy_switch_to_buffer(yy_create_buffer(new_in, YY_BUF_SIZE)); } if (new_out) { yyout = new_out; } } #ifdef YY_INTERACTIVE int yyFlexLexer::LexerInput(char *buf, int /* max_size */) #else int yyFlexLexer::LexerInput(char *buf, int max_size) #endif { if (yyin->eof() || yyin->fail()) { return 0; } #ifdef YY_INTERACTIVE yyin->get(buf[0]); if (yyin->eof()) { return 0; } if (yyin->bad()) { return -1; } return 1; #else (void) yyin->read(buf, max_size); if (yyin->bad()) { return -1; } else { return yyin->gcount(); } #endif } void yyFlexLexer::LexerOutput(const char *buf, int size) { (void) yyout->write(buf, size); } /* %ok-for-header */ /* %endif */ /* 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 */ /* %if-c-only */ /* %endif */ /* %if-c++-only */ int yyFlexLexer::yy_get_next_buffer() /* %endif */ { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); 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. */ HolidayScannerrealloc((void *) b->yy_ch_buf, b->yy_buf_size + 2); } else /* Can't grow it, we don't own it. */ { b->yy_ch_buf = nullptr; } if (! b->yy_ch_buf) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow"); (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if (num_to_read > YY_READ_BUF_SIZE) { num_to_read = YY_READ_BUF_SIZE; } /* Read in more data. */ YY_INPUT((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), (yy_n_chars), (size_t) num_to_read); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } if ((yy_n_chars) == 0) { if (number_to_move == YY_MORE_ADJ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart(yyin); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else { ret_val = EOB_ACT_CONTINUE_SCAN; } if ((yy_size_t)((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) HolidayScannerrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size); if (! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) { YY_FATAL_ERROR("out of dynamic memory in yy_get_next_buffer()"); } } (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ /* %if-c-only */ /* %not-for-header */ /* %endif */ /* %if-c++-only */ yy_state_type yyFlexLexer::yy_get_previous_state() /* %endif */ { yy_state_type yy_current_state; char *yy_cp; /* %% [15.0] code to get the start state into yy_current_state goes here */ 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) { /* %% [16.0] code to find the next state goes here */ 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 >= 982) { 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 ); */ /* %if-c-only */ /* %endif */ /* %if-c++-only */ yy_state_type yyFlexLexer::yy_try_NUL_trans(yy_state_type yy_current_state) /* %endif */ { int yy_is_jam; /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */ char *yy_cp = (yy_c_buf_p); 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 >= 982) { 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 == 981); return yy_is_jam ? 0 : yy_current_state; } /* %if-c-only */ /* %endif */ /* %if-c++-only */ void yyFlexLexer::yyunput(int c, char *yy_bp) /* %endif */ { char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up yytext */ *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. */ int number_to_move = (yy_n_chars) + 2; char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; 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; /* %% [18.0] update yylineno here */ (yytext_ptr) = yy_bp; (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } /* %if-c-only */ /* %endif */ /* %if-c-only */ /* %endif */ /* %if-c++-only */ int yyFlexLexer::yyinput() /* %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. */ yyrestart(yyin); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if (yywrap()) { 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 yytext */ (yy_hold_char) = *++(yy_c_buf_p); /* %% [19.0] update BOL and yylineno */ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); return c; } /* %if-c-only */ /* %endif */ /** 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 . */ /* %if-c-only */ /* %endif */ /* %if-c++-only */ void yyFlexLexer::yyrestart(std::istream *input_file) /* %endif */ { if (! YY_CURRENT_BUFFER) { yyensure_buffer_stack(); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer(yyin, YY_BUF_SIZE); } yy_init_buffer(YY_CURRENT_BUFFER, input_file); yy_load_buffer_state(); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ /* %if-c-only */ /* %endif */ /* %if-c++-only */ void yyFlexLexer::yy_switch_to_buffer(YY_BUFFER_STATE new_buffer) /* %endif */ { /* TODO. We should be able to replace this entire function body * with * yypop_buffer_state(); * yypush_buffer_state(new_buffer); */ yyensure_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; yy_load_buffer_state(); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } /* %if-c-only */ /* %endif */ /* %if-c++-only */ void yyFlexLexer::yy_load_buffer_state() /* %endif */ { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = 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. */ /* %if-c-only */ /* %endif */ /* %if-c++-only */ YY_BUFFER_STATE yyFlexLexer::yy_create_buffer(std::istream *file, int size) /* %endif */ { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) HolidayScanneralloc(sizeof(struct yy_buffer_state)); if (! b) { YY_FATAL_ERROR("out of dynamic memory in yy_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 *) HolidayScanneralloc(b->yy_buf_size + 2); if (! b->yy_ch_buf) { YY_FATAL_ERROR("out of dynamic memory in yy_create_buffer()"); } b->yy_is_our_buffer = 1; yy_init_buffer(b, file); return b; } /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * */ /* %if-c-only */ /* %endif */ /* %if-c++-only */ void yyFlexLexer::yy_delete_buffer(YY_BUFFER_STATE b) /* %endif */ { if (! b) { return; } if (b == YY_CURRENT_BUFFER) { /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) nullptr; } if (b->yy_is_our_buffer) { HolidayScannerfree((void *) b->yy_ch_buf); } HolidayScannerfree((void *) b); } /* %if-c-only */ /* %endif */ /* %if-c++-only */ extern "C" int isatty(int); /* %endif */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ /* %if-c-only */ /* %endif */ /* %if-c++-only */ void yyFlexLexer::yy_init_buffer(YY_BUFFER_STATE b, std::istream *file) /* %endif */ { int oerrno = errno; yy_flush_buffer(b); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ * called from yyrestart() 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; } /* %if-c-only */ /* %endif */ /* %if-c++-only */ b->yy_is_interactive = 0; /* %endif */ 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. * */ /* %if-c-only */ /* %endif */ /* %if-c++-only */ void yyFlexLexer::yy_flush_buffer(YY_BUFFER_STATE b) /* %endif */ { 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) { yy_load_buffer_state(); } } /* %if-c-or-c++ */ /** 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. * */ /* %if-c-only */ /* %endif */ /* %if-c++-only */ void yyFlexLexer::yypush_buffer_state(YY_BUFFER_STATE new_buffer) /* %endif */ { if (new_buffer == nullptr) { return; } yyensure_buffer_stack(); /* This block is copied from yy_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 yy_switch_to_buffer. */ yy_load_buffer_state(); (yy_did_buffer_switch_on_eof) = 1; } /* %endif */ /* %if-c-or-c++ */ /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * */ /* %if-c-only */ /* %endif */ /* %if-c++-only */ void yyFlexLexer::yypop_buffer_state(void) /* %endif */ { if (!YY_CURRENT_BUFFER) { return; } yy_delete_buffer(YY_CURRENT_BUFFER); YY_CURRENT_BUFFER_LVALUE = nullptr; if ((yy_buffer_stack_top) > 0) { --(yy_buffer_stack_top); } if (YY_CURRENT_BUFFER) { yy_load_buffer_state(); (yy_did_buffer_switch_on_eof) = 1; } } /* %endif */ /* %if-c-or-c++ */ /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ /* %if-c-only */ /* %endif */ /* %if-c++-only */ void yyFlexLexer::yyensure_buffer_stack(void) /* %endif */ { 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 **)HolidayScanneralloc (num_to_alloc * sizeof(struct yy_buffer_state *) ); if (!(yy_buffer_stack)) { YY_FATAL_ERROR("out of dynamic memory in yyensure_buffer_stack()"); } memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state *)); (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; } if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1) { /* Increase the buffer to prepare for a possible push. */ int grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state **)HolidayScannerrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state *) ); if (!(yy_buffer_stack)) { YY_FATAL_ERROR("out of dynamic memory in yyensure_buffer_stack()"); } /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state *)); (yy_buffer_stack_max) = num_to_alloc; } } /* %endif */ /* %if-c-only */ /* %endif */ /* %if-c-only */ /* %endif */ /* %if-c-only */ /* %endif */ /* %if-c-only */ /* %endif */ /* %if-c++-only */ void yyFlexLexer::yy_push_state(int new_state) /* %endif */ { 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 *) HolidayScanneralloc(new_size); } else { (yy_start_stack) = (int *) HolidayScannerrealloc((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); } /* %if-c-only */ /* %endif */ /* %if-c++-only */ void yyFlexLexer::yy_pop_state() /* %endif */ { if (--(yy_start_stack_ptr) < 0) { YY_FATAL_ERROR("start-condition stack underflow"); } BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); } /* %if-c-only */ /* %endif */ /* %if-c++-only */ int yyFlexLexer::yy_top_state() /* %endif */ { return (yy_start_stack)[(yy_start_stack_ptr) - 1]; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif /* %if-c-only */ /* %endif */ /* %if-c++-only */ void yyFlexLexer::LexerError(yyconst char msg[]) { std::cerr << msg << std::endl; exit(YY_EXIT_FAILURE); } /* %endif */ /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /* %if-c-only */ /* %if-reentrant */ /* %endif */ /* %if-reentrant */ /* %endif */ /* %endif */ /* %if-reentrant */ /* %if-bison-bridge */ /* %endif */ /* %endif if-c-only */ /* %if-c-only */ /* %endif */ /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */ /* %if-reentrant */ /* %endif */ /* %endif */ /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy(char *s1, yyconst char *s2, int n) { 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) { int n; for (n = 0; s[n]; ++n) ; return n; } #endif void *HolidayScanneralloc(yy_size_t size) { return (void *) malloc(size); } void *HolidayScannerrealloc(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 HolidayScannerfree(void *ptr) { free((char *) ptr); /* see HolidayScannerrealloc() for (char *) cast */ } /* %if-tables-serialization definitions */ /* %define-yytables The name for this specific scanner's tables. */ #define YYTABLES_NAME "yytables" /* %endif */ /* %ok-for-header */ #line 323 "holidayscannerplan.lpp" namespace KHolidays { HolidayScannerPlan::HolidayScannerPlan(std::istream *in, std::ostream *out) : HolidayScannerFlexLexer(in, out) { } HolidayScannerPlan::~HolidayScannerPlan() { } void HolidayScannerPlan::set_debug(bool b) { yy_flex_debug = b; } } // namespace KHolidays /* This implementation of HolidayScannerFlexLexer::yylex() is required to fill the * vtable of the class HolidayScannerFlexLexer. We define the scanner's main yylex * function via YY_DECL to reside in the HolidayScannerPlan class instead. */ #ifdef yylex #undef yylex #endif int HolidayScannerFlexLexer::yylex() { qDebug() << "in HolidayScannerFlexLexer::yylex() !"; return 0; } /* When the scanner receives an end-of-file indication from YY_INPUT, it then * checks the yywrap() function. If yywrap() returns false (zero), then it is * assumed that the function has gone ahead and set up `yyin' to point to * another input file, and scanning continues. If it returns true (non-zero), * then the scanner terminates, returning 0 to its caller. */ int HolidayScannerFlexLexer::yywrap() { return 1; } - diff --git a/src/parsers/plan2/holidayscannerplan.lpp b/src/parsers/plan2/holidayscannerplan.lpp index d80c46a..4d19c25 100644 --- a/src/parsers/plan2/holidayscannerplan.lpp +++ b/src/parsers/plan2/holidayscannerplan.lpp @@ -1,366 +1,366 @@ /* Original version from plan by Thomas Driemeyer Adapted for use in KOrganizer by Preston Brown and Reinhold Kainhofer Major rewrite using Bison C++ skeleton: Copyright 2010 John Layt This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ %{ /*** C/C++ Declarations ***/ # include # include # include # include # include # include "holidayscannerplan_p.h" # include "holidayparserdriverplan_p.h" # include "holidayparserplan.hpp" /* import the parser's token type into a local typedef */ typedef KHolidays::HolidayParserPlan::token token; typedef KHolidays::HolidayParserPlan::token_type token_type; /* By default yylex returns int, we use token_type. Unfortunately yyterminate * by default returns 0, which is not of token_type. */ # define yyterminate() return token::END /* This disables inclusion of unistd.h, which is not available under Visual C++ * on Win32. The C++ scanner uses STL streams instead. */ # define YY_NO_UNISTD_H %} /*** Flex Declarations and Options ***/ /* enable c++ scanner class generation */ %option c++ /* change the name of the scanner class. results in "HolidayScannerFlexLexer" */ %option prefix="HolidayScanner" /* the manual says "somewhat more optimized" */ %option batch /* enable scanner to generate debug output. disable this for release * versions. */ %option debug /* no support for include files is planned */ %option yywrap nounput /* enables the use of start condition stacks */ %option stack %option 8bit /* The following paragraph suffices to track locations accurately. Each time * yylex is invoked, the begin position is moved onto the end position. */ %{ # define YY_USER_ACTION yylloc->columns( yyleng ); %} %% /*** Regular Expressions Part ***/ %{ /* code to place at the beginning of yylex() */ // reset location yylloc->step(); %} #.*\n { yylloc->lines( yyleng ); yylloc->step(); } ^:.*\n { yylloc->lines( yyleng ); yylloc->step(); } [ \t\r]+ { yylloc->step(); } [\n]+ { yylloc->lines( yyleng ); yylloc->step(); } [-+*/%.!?:()\[\]] { return KHolidays::HolidayParserPlan::token_type( *yytext ); } country { return token::COUNTRY; } language { return token::LANGUAGE; } name { return token::NAME; } description { return token::DESCRIPTION; } [0-9]+ { yylval->ival = atoi( yytext ); return token::NUMBER; } \"[^"]*\" { yylval->sval = strdup( yytext + 1 ); yylval->sval[ strlen( yylval->sval ) - 1 ] = 0; return token::STRING; } every ; day ; days ; on ; to ; in { return token::INOP; } if { return token::IF; } plus { return token::PLUS; } minus { return token::MINUS; } year { return token::YEAR; } leapyear { return token::LEAPYEAR; } easter { return token::EASTER; } pascha { return token::PASCHA; } length { return token::LENGTH; } shift { return token::SHIFT; } "==" { return token::EQ; } "!=" { return token::NE; } "<=" { return token::LE; } ">=" { return token::GE; } "<" { return token::LT; } ">" { return token::GT; } "&&" { return token::AND;} "||" { return token::OR; } 1st|first { yylval->ival = 1; return token::NUMBER; } 2nd|second { yylval->ival = 2; return token::NUMBER; } 3rd|third { yylval->ival = 3; return token::NUMBER; } 4th|fourth { yylval->ival = 4; return token::NUMBER; } 5th|fifth { yylval->ival = 5; return token::NUMBER; } last { yylval->ival = 99999; return token::NUMBER; } any { yylval->ival = -99999; return token::NUMBER; } noop { yylval->ival = 0; return token::NUMBER; } before { yylval->ival = -1; return token::NUMBER; } after { yylval->ival = 1; return token::NUMBER; } -public { yylval->sval = "public"; return token::CATEGORY; } -civil { yylval->sval = "civil"; return token::CATEGORY; } -religious { yylval->sval = "religious"; return token::CATEGORY; } -school { yylval->sval = "school"; return token::CATEGORY; } -government { yylval->sval = "government"; return token::CATEGORY; } -financial { yylval->sval = "financial"; return token::CATEGORY; } -cultural { yylval->sval = "cultural"; return token::CATEGORY; } -commemorative { yylval->sval = "commemorative"; return token::CATEGORY; } -historical { yylval->sval = "historical"; return token::CATEGORY; } -nameday { yylval->sval = "nameday"; return token::CATEGORY; } -seasonal { yylval->sval = "seasonal"; return token::CATEGORY; } - -gregorian { yylval->sval = "gregorian"; return token::CALENDAR; } -julian { yylval->sval = "julian"; return token::CALENDAR; } +public { yylval->sval = (char *)"public"; return token::CATEGORY; } +civil { yylval->sval = (char *)"civil"; return token::CATEGORY; } +religious { yylval->sval = (char *)"religious"; return token::CATEGORY; } +school { yylval->sval = (char *)"school"; return token::CATEGORY; } +government { yylval->sval = (char *)"government"; return token::CATEGORY; } +financial { yylval->sval = (char *)"financial"; return token::CATEGORY; } +cultural { yylval->sval = (char *)"cultural"; return token::CATEGORY; } +commemorative { yylval->sval = (char *)"commemorative"; return token::CATEGORY; } +historical { yylval->sval = (char *)"historical"; return token::CATEGORY; } +nameday { yylval->sval = (char *)"nameday"; return token::CATEGORY; } +seasonal { yylval->sval = (char *)"seasonal"; return token::CATEGORY; } + +gregorian { yylval->sval = (char *)"gregorian"; return token::CALENDAR; } +julian { yylval->sval = (char *)"julian"; return token::CALENDAR; } january { yylval->ival = 1; return token::MONTH; } february { yylval->ival = 2; return token::MONTH; } march { yylval->ival = 3; return token::MONTH; } april { yylval->ival = 4; return token::MONTH; } may { yylval->ival = 5; return token::MONTH; } june { yylval->ival = 6; return token::MONTH; } july { yylval->ival = 7; return token::MONTH; } august { yylval->ival = 8; return token::MONTH; } september { yylval->ival = 9; return token::MONTH; } october { yylval->ival = 10; return token::MONTH; } november { yylval->ival = 11; return token::MONTH; } december { yylval->ival = 12; return token::MONTH; } monday { yylval->ival = 1; return token::WDAY; } tuesday { yylval->ival = 2; return token::WDAY; } wednesday { yylval->ival = 3; return token::WDAY; } thursday { yylval->ival = 4; return token::WDAY; } friday { yylval->ival = 5; return token::WDAY; } saturday { yylval->ival = 6; return token::WDAY; } sunday { yylval->ival = 7; return token::WDAY; } -coptic { yylval->sval = "coptic"; return token::CALENDAR; } +coptic { yylval->sval = (char *)"coptic"; return token::CALENDAR; } thoout { yylval->ival = 1; return token::MONTH; } paope { yylval->ival = 2; return token::MONTH; } hathor { yylval->ival = 3; return token::MONTH; } kiahk { yylval->ival = 4; return token::MONTH; } tobe { yylval->ival = 5; return token::MONTH; } meshir { yylval->ival = 6; return token::MONTH; } paremhotep { yylval->ival = 7; return token::MONTH; } parmoute { yylval->ival = 8; return token::MONTH; } pashons { yylval->ival = 9; return token::MONTH; } paone { yylval->ival = 10; return token::MONTH; } epep { yylval->ival = 11; return token::MONTH; } mesore { yylval->ival = 12; return token::MONTH; } koujinabot { yylval->ival = 13; return token::MONTH; } pesnau { yylval->ival = 1; return token::WDAY; } pshoment { yylval->ival = 2; return token::WDAY; } peftoou { yylval->ival = 3; return token::WDAY; } ptiou { yylval->ival = 4; return token::WDAY; } psoou { yylval->ival = 5; return token::WDAY; } psabbaton { yylval->ival = 6; return token::WDAY; } tkyriake { yylval->ival = 7; return token::WDAY; } -ethiopian { yylval->sval = "ethiopian"; return token::CALENDAR; } +ethiopian { yylval->sval = (char *)"ethiopian"; return token::CALENDAR; } meskerem { yylval->ival = 1; return token::MONTH; } tequemt { yylval->ival = 2; return token::MONTH; } hedar { yylval->ival = 3; return token::MONTH; } tahsas { yylval->ival = 4; return token::MONTH; } ter { yylval->ival = 5; return token::MONTH; } yakatit { yylval->ival = 6; return token::MONTH; } magabit { yylval->ival = 7; return token::MONTH; } miyazya { yylval->ival = 8; return token::MONTH; } genbot { yylval->ival = 9; return token::MONTH; } sene { yylval->ival = 10; return token::MONTH; } hamle { yylval->ival = 11; return token::MONTH; } nehase { yylval->ival = 12; return token::MONTH; } pagumen { yylval->ival = 13; return token::MONTH; } segno { yylval->ival = 1; return token::WDAY; } maksegno { yylval->ival = 2; return token::WDAY; } rob { yylval->ival = 3; return token::WDAY; } hamus { yylval->ival = 4; return token::WDAY; } arb { yylval->ival = 5; return token::WDAY; } qedame { yylval->ival = 6; return token::WDAY; } ehud { yylval->ival = 7; return token::WDAY; } -hebrew { yylval->sval = "hebrew"; return token::CALENDAR; } +hebrew { yylval->sval = (char *)"hebrew"; return token::CALENDAR; } tishrey { yylval->ival = 1; return token::MONTH; } heshvan { yylval->ival = 2; return token::MONTH; } kislev { yylval->ival = 3; return token::MONTH; } tevet { yylval->ival = 4; return token::MONTH; } shvat { yylval->ival = 5; return token::MONTH; } adar { yylval->ival = 6; return token::MONTH; } nisan { yylval->ival = 7; return token::MONTH; } iyar { yylval->ival = 8; return token::MONTH; } sivan { yylval->ival = 9; return token::MONTH; } tamuz { yylval->ival = 10; return token::MONTH; } av { yylval->ival = 11; return token::MONTH; } elul { yylval->ival = 12; return token::MONTH; } adari { yylval->ival = 13; return token::MONTH; } adarii { yylval->ival = 14; return token::MONTH; } yomsheni { yylval->ival = 1; return token::WDAY; } yomshlishi { yylval->ival = 2; return token::WDAY; } yomrevii { yylval->ival = 3; return token::WDAY; } yomchamishi { yylval->ival = 4; return token::WDAY; } yomshishi { yylval->ival = 5; return token::WDAY; } shabbat { yylval->ival = 6; return token::WDAY; } yomrishon { yylval->ival = 7; return token::WDAY; } -hijri { yylval->sval = "hijri"; return token::CALENDAR; } +hijri { yylval->sval = (char *)"hijri"; return token::CALENDAR; } muharram { yylval->ival = 1; return token::MONTH; } safar { yylval->ival = 2; return token::MONTH; } rabialawal { yylval->ival = 3; return token::MONTH; } rabialthaani { yylval->ival = 4; return token::MONTH; } jumaadaalawal { yylval->ival = 5; return token::MONTH; } jumaadaalthaani { yylval->ival = 6; return token::MONTH; } rajab { yylval->ival = 7; return token::MONTH; } shaban { yylval->ival = 8; return token::MONTH; } ramadan { yylval->ival = 9; return token::MONTH; } shawwal { yylval->ival = 10; return token::MONTH; } thualqidah { yylval->ival = 11; return token::MONTH; } thualhijjah { yylval->ival = 12; return token::MONTH; } yaumalithnain { yylval->ival = 1; return token::WDAY; } yaualthulatha { yylval->ival = 2; return token::WDAY; } yaumalarbia { yylval->ival = 3; return token::WDAY; } yaumalkhamees { yylval->ival = 4; return token::WDAY; } yaumaljumma { yylval->ival = 5; return token::WDAY; } yaumalsabt { yylval->ival = 6; return token::WDAY; } yaumalahad { yylval->ival = 7; return token::WDAY; } -indiannational { yylval->sval = "indian-national"; return token::CALENDAR; } +indiannational { yylval->sval = (char *)"indian-national"; return token::CALENDAR; } chaitra { yylval->ival = 1; return token::MONTH; } vaishakh { yylval->ival = 2; return token::MONTH; } jyaishtha { yylval->ival = 3; return token::MONTH; } ashadha { yylval->ival = 4; return token::MONTH; } shravana { yylval->ival = 5; return token::MONTH; } bhadrapad { yylval->ival = 6; return token::MONTH; } ashwin { yylval->ival = 7; return token::MONTH; } kartik { yylval->ival = 8; return token::MONTH; } agrahayana { yylval->ival = 9; return token::MONTH; } paush { yylval->ival = 10; return token::MONTH; } magh { yylval->ival = 11; return token::MONTH; } phalgun { yylval->ival = 12; return token::MONTH; } somavara { yylval->ival = 1; return token::WDAY; } mangalva { yylval->ival = 2; return token::WDAY; } budhavara { yylval->ival = 3; return token::WDAY; } guruvara { yylval->ival = 4; return token::WDAY; } sukravara { yylval->ival = 5; return token::WDAY; } sanivara { yylval->ival = 6; return token::WDAY; } raviara { yylval->ival = 7; return token::WDAY; } -jalali { yylval->sval = "jalali"; return token::CALENDAR; } +jalali { yylval->sval = (char *)"jalali"; return token::CALENDAR; } farvardin { yylval->ival = 1; return token::MONTH; } ordibehesht { yylval->ival = 2; return token::MONTH; } khordad { yylval->ival = 3; return token::MONTH; } tir { yylval->ival = 4; return token::MONTH; } mordad { yylval->ival = 5; return token::MONTH; } shahrivar { yylval->ival = 6; return token::MONTH; } mehr { yylval->ival = 7; return token::MONTH; } aban { yylval->ival = 8; return token::MONTH; } azar { yylval->ival = 9; return token::MONTH; } dei { yylval->ival = 10; return token::MONTH; } bahman { yylval->ival = 11; return token::MONTH; } esfand { yylval->ival = 12; return token::MONTH; } doshanbe { yylval->ival = 1; return token::WDAY; } seshanbe { yylval->ival = 2; return token::WDAY; } chaharshanbe { yylval->ival = 3; return token::WDAY; } panjshanbe { yylval->ival = 4; return token::WDAY; } jumee { yylval->ival = 5; return token::WDAY; } shanbe { yylval->ival = 6; return token::WDAY; } yekshanbe { yylval->ival = 7; return token::WDAY; } . { LexerError( yytext ); } %% /*** Additional Code ***/ namespace KHolidays { HolidayScannerPlan::HolidayScannerPlan(std::istream* in, std::ostream* out) : HolidayScannerFlexLexer(in, out) { } HolidayScannerPlan::~HolidayScannerPlan() { } void HolidayScannerPlan::set_debug(bool b) { yy_flex_debug = b; } } // namespace KHolidays /* This implementation of HolidayScannerFlexLexer::yylex() is required to fill the * vtable of the class HolidayScannerFlexLexer. We define the scanner's main yylex * function via YY_DECL to reside in the HolidayScannerPlan class instead. */ #ifdef yylex #undef yylex #endif int HolidayScannerFlexLexer::yylex() { qDebug() << "in HolidayScannerFlexLexer::yylex() !"; return 0; } /* When the scanner receives an end-of-file indication from YY_INPUT, it then * checks the yywrap() function. If yywrap() returns false (zero), then it is * assumed that the function has gone ahead and set up `yyin' to point to * another input file, and scanning continues. If it returns true (non-zero), * then the scanner terminates, returning 0 to its caller. */ int HolidayScannerFlexLexer::yywrap() { return 1; }