File indexing completed on 2024-04-14 03:52:09

0001 // clang-format off
0002 
0003 #line 2 "holidayscannerplan.cpp"
0004 
0005 #line 4 "holidayscannerplan.cpp"
0006 
0007 #define  YY_INT_ALIGNED short int
0008 
0009 /* A lexical scanner generated by flex */
0010 
0011 /* %not-for-header */
0012 
0013 /* %if-c-only */
0014 /* %if-not-reentrant */
0015 /* %endif */
0016 /* %endif */
0017 /* %ok-for-header */
0018 
0019 #define FLEX_SCANNER
0020 #define YY_FLEX_MAJOR_VERSION 2
0021 #define YY_FLEX_MINOR_VERSION 5
0022 #define YY_FLEX_SUBMINOR_VERSION 35
0023 #if YY_FLEX_SUBMINOR_VERSION > 0
0024 #define FLEX_BETA
0025 #endif
0026 
0027 /* %if-c++-only */
0028 /* The c++ scanner is a mess. The FlexLexer.h header file relies on the
0029  * following macro. This is required in order to pass the c++-multiple-scanners
0030  * test in the regression suite. We get reports that it breaks inheritance.
0031  * We will address this in a future release of flex, or omit the C++ scanner
0032  * altogether.
0033  */
0034 #define yyFlexLexer HolidayScannerFlexLexer
0035 /* %endif */
0036 
0037 /* %if-c-only */
0038 /* %endif */
0039 
0040 /* %if-c-only */
0041 /* %endif */
0042 
0043 /* First, we deal with  platform-specific or compiler-specific issues. */
0044 
0045 /* begin standard C headers. */
0046 /* %if-c-only */
0047 /* %endif */
0048 
0049 /* %if-tables-serialization */
0050 /* %endif */
0051 /* end standard C headers. */
0052 
0053 /* %if-c-or-c++ */
0054 /* flex integer type definitions */
0055 
0056 #ifndef FLEXINT_H
0057 #define FLEXINT_H
0058 
0059 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
0060 
0061 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
0062 
0063 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
0064  * if you want the limit (max/min) macros for int types.
0065  */
0066 #ifndef __STDC_LIMIT_MACROS
0067 #define __STDC_LIMIT_MACROS 1
0068 #endif
0069 
0070 #include <inttypes.h>
0071 typedef int8_t flex_int8_t;
0072 typedef uint8_t flex_uint8_t;
0073 typedef int16_t flex_int16_t;
0074 typedef uint16_t flex_uint16_t;
0075 typedef int32_t flex_int32_t;
0076 typedef uint32_t flex_uint32_t;
0077 #else
0078 typedef signed char flex_int8_t;
0079 typedef short int flex_int16_t;
0080 typedef int flex_int32_t;
0081 typedef unsigned char flex_uint8_t;
0082 typedef unsigned short int flex_uint16_t;
0083 typedef unsigned int flex_uint32_t;
0084 
0085 /* Limits of integral types. */
0086 #ifndef INT8_MIN
0087 #define INT8_MIN               (-128)
0088 #endif
0089 #ifndef INT16_MIN
0090 #define INT16_MIN              (-32767-1)
0091 #endif
0092 #ifndef INT32_MIN
0093 #define INT32_MIN              (-2147483647-1)
0094 #endif
0095 #ifndef INT8_MAX
0096 #define INT8_MAX               (127)
0097 #endif
0098 #ifndef INT16_MAX
0099 #define INT16_MAX              (32767)
0100 #endif
0101 #ifndef INT32_MAX
0102 #define INT32_MAX              (2147483647)
0103 #endif
0104 #ifndef UINT8_MAX
0105 #define UINT8_MAX              (255U)
0106 #endif
0107 #ifndef UINT16_MAX
0108 #define UINT16_MAX             (65535U)
0109 #endif
0110 #ifndef UINT32_MAX
0111 #define UINT32_MAX             (4294967295U)
0112 #endif
0113 
0114 #endif /* ! C99 */
0115 
0116 #endif /* ! FLEXINT_H */
0117 
0118 /* %endif */
0119 
0120 /* %if-c++-only */
0121 /* begin standard C++ headers. */
0122 #include <iostream>
0123 #include <cerrno>
0124 #include <cstdlib>
0125 #include <cstdio>
0126 #include <cstring>
0127 /* end standard C++ headers. */
0128 /* %endif */
0129 
0130 #ifdef __cplusplus
0131 
0132 /* The "const" storage-class-modifier is valid. */
0133 #define YY_USE_CONST
0134 
0135 #else   /* ! __cplusplus */
0136 
0137 /* C99 requires __STDC__ to be defined as 1. */
0138 #if defined (__STDC__)
0139 
0140 #define YY_USE_CONST
0141 
0142 #endif  /* defined (__STDC__) */
0143 #endif  /* ! __cplusplus */
0144 
0145 #ifdef YY_USE_CONST
0146 #define yyconst const
0147 #else
0148 #define yyconst
0149 #endif
0150 
0151 /* %not-for-header */
0152 
0153 /* Returned upon end-of-file. */
0154 #define YY_NULL 0
0155 /* %ok-for-header */
0156 
0157 /* %not-for-header */
0158 
0159 /* Promotes a possibly negative, possibly signed char to an unsigned
0160  * integer for use as an array index.  If the signed char is negative,
0161  * we want to instead treat it as an 8-bit unsigned char, hence the
0162  * double cast.
0163  */
0164 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
0165 /* %ok-for-header */
0166 
0167 /* %if-reentrant */
0168 /* %endif */
0169 
0170 /* %if-not-reentrant */
0171 
0172 /* %endif */
0173 
0174 /* Enter a start condition.  This macro really ought to take a parameter,
0175  * but we do it the disgusting crufty way forced on us by the ()-less
0176  * definition of BEGIN.
0177  */
0178 #define BEGIN (yy_start) = 1 + 2 *
0179 
0180 /* Translate the current start state into a value that can be later handed
0181  * to BEGIN to return to the state.  The YYSTATE alias is for lex
0182  * compatibility.
0183  */
0184 #define YY_START (((yy_start) - 1) / 2)
0185 #define YYSTATE YY_START
0186 
0187 /* Action number for EOF rule of a given start state. */
0188 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
0189 
0190 /* Special action meaning "start processing a new file". */
0191 #define YY_NEW_FILE yyrestart( yyin  )
0192 
0193 #define YY_END_OF_BUFFER_CHAR 0
0194 
0195 /* Size of default input buffer. */
0196 #ifndef YY_BUF_SIZE
0197 #ifdef __ia64__
0198 /* On IA-64, the buffer size is 16k, not 8k.
0199  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
0200  * Ditto for the __ia64__ case accordingly.
0201  */
0202 #define YY_BUF_SIZE 32768
0203 #else
0204 #define YY_BUF_SIZE 16384
0205 #endif /* __ia64__ */
0206 #endif
0207 
0208 /* The state buf must be large enough to hold one state per character in the main buffer.
0209  */
0210 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
0211 
0212 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
0213 #define YY_TYPEDEF_YY_BUFFER_STATE
0214 typedef struct yy_buffer_state *YY_BUFFER_STATE;
0215 #endif
0216 
0217 /* %if-not-reentrant */
0218 extern int yyleng;
0219 /* %endif */
0220 
0221 /* %if-c-only */
0222 /* %if-not-reentrant */
0223 /* %endif */
0224 /* %endif */
0225 
0226 #define EOB_ACT_CONTINUE_SCAN 0
0227 #define EOB_ACT_END_OF_FILE 1
0228 #define EOB_ACT_LAST_MATCH 2
0229 
0230 #define YY_LESS_LINENO(n)
0231 
0232 /* Return all but the first "n" matched characters back to the input stream. */
0233 #define yyless(n) \
0234     do \
0235     { \
0236         /* Undo effects of setting up yytext. */ \
0237         int yyless_macro_arg = (n); \
0238         YY_LESS_LINENO(yyless_macro_arg);\
0239         *yy_cp = (yy_hold_char); \
0240         YY_RESTORE_YY_MORE_OFFSET \
0241         (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
0242         YY_DO_BEFORE_ACTION; /* set up yytext again */ \
0243     } \
0244     while ( 0 )
0245 
0246 #define unput(c) yyunput( c, (yytext_ptr)  )
0247 
0248 #ifndef YY_TYPEDEF_YY_SIZE_T
0249 #define YY_TYPEDEF_YY_SIZE_T
0250 typedef size_t yy_size_t;
0251 #endif
0252 
0253 #ifndef YY_STRUCT_YY_BUFFER_STATE
0254 #define YY_STRUCT_YY_BUFFER_STATE
0255 struct yy_buffer_state {
0256     /* %if-c-only */
0257     /* %endif */
0258 
0259     /* %if-c++-only */
0260     std::istream *yy_input_file;
0261     /* %endif */
0262 
0263     char *yy_ch_buf;        /* input buffer */
0264     char *yy_buf_pos;       /* current position in input buffer */
0265 
0266     /* Size of input buffer in bytes, not including room for EOB
0267      * characters.
0268      */
0269     yy_size_t yy_buf_size;
0270 
0271     /* Number of characters read into yy_ch_buf, not including EOB
0272      * characters.
0273      */
0274     int yy_n_chars;
0275 
0276     /* Whether we "own" the buffer - i.e., we know we created it,
0277      * and can realloc() it to grow it, and should free() it to
0278      * delete it.
0279      */
0280     int yy_is_our_buffer;
0281 
0282     /* Whether this is an "interactive" input source; if so, and
0283      * if we're using stdio for input, then we want to use getc()
0284      * instead of fread(), to make sure we stop fetching input after
0285      * each newline.
0286      */
0287     int yy_is_interactive;
0288 
0289     /* Whether we're considered to be at the beginning of a line.
0290      * If so, '^' rules will be active on the next match, otherwise
0291      * not.
0292      */
0293     int yy_at_bol;
0294 
0295     int yy_bs_lineno; /**< The line count. */
0296     int yy_bs_column; /**< The column count. */
0297 
0298     /* Whether to try to fill the input buffer when we reach the
0299      * end of it.
0300      */
0301     int yy_fill_buffer;
0302 
0303     int yy_buffer_status;
0304 
0305 #define YY_BUFFER_NEW 0
0306 #define YY_BUFFER_NORMAL 1
0307     /* When an EOF's been seen but there's still some text to process
0308      * then we mark the buffer as YY_EOF_PENDING, to indicate that we
0309      * shouldn't try reading from the input source any more.  We might
0310      * still have a bunch of tokens to match, though, because of
0311      * possible backing-up.
0312      *
0313      * When we actually see the EOF, we change the status to "new"
0314      * (via yyrestart()), so that the user can continue scanning by
0315      * just pointing yyin at a new input file.
0316      */
0317 #define YY_BUFFER_EOF_PENDING 2
0318 
0319 };
0320 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
0321 
0322 /* %if-c-only Standard (non-C++) definition */
0323 /* %not-for-header */
0324 
0325 /* %if-not-reentrant */
0326 /* %endif */
0327 /* %ok-for-header */
0328 
0329 /* %endif */
0330 
0331 /* We provide macros for accessing buffer states in case in the
0332  * future we want to put the buffer states in a more general
0333  * "scanner state".
0334  *
0335  * Returns the top of the stack, or NULL.
0336  */
0337 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
0338                             ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
0339                             : NULL)
0340 
0341 /* Same as previous macro, but useful when we know that the buffer stack is not
0342  * NULL or when we need an lvalue. For internal use only.
0343  */
0344 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
0345 
0346 /* %if-c-only Standard (non-C++) definition */
0347 /* %if-not-reentrant */
0348 /* %not-for-header */
0349 
0350 /* %ok-for-header */
0351 
0352 /* %endif */
0353 /* %endif */
0354 
0355 void *HolidayScanneralloc(yy_size_t);
0356 void *HolidayScannerrealloc(void *, yy_size_t);
0357 void HolidayScannerfree(void *);
0358 
0359 #define yy_new_buffer yy_create_buffer
0360 
0361 #define yy_set_interactive(is_interactive) \
0362     { \
0363         if ( ! YY_CURRENT_BUFFER ){ \
0364             yyensure_buffer_stack (); \
0365             YY_CURRENT_BUFFER_LVALUE =    \
0366                                           yy_create_buffer( yyin, YY_BUF_SIZE ); \
0367         } \
0368         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
0369     }
0370 
0371 #define yy_set_bol(at_bol) \
0372     { \
0373         if ( ! YY_CURRENT_BUFFER ){\
0374             yyensure_buffer_stack (); \
0375             YY_CURRENT_BUFFER_LVALUE =    \
0376                                           yy_create_buffer( yyin, YY_BUF_SIZE ); \
0377         } \
0378         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
0379     }
0380 
0381 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
0382 
0383 /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
0384 /* Begin user sect3 */
0385 
0386 #define FLEX_DEBUG
0387 
0388 typedef unsigned char YY_CHAR;
0389 
0390 #define yytext_ptr yytext
0391 
0392 #include <FlexLexer.h>
0393 
0394 /* %if-c-only Standard (non-C++) definition */
0395 /* %endif */
0396 
0397 /* Done after the current pattern has been matched and before the
0398  * corresponding action - sets up yytext.
0399  */
0400 #define YY_DO_BEFORE_ACTION \
0401     (yytext_ptr) = yy_bp; \
0402     /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
0403     yyleng = (size_t) (yy_cp - yy_bp); \
0404     (yy_hold_char) = *yy_cp; \
0405     *yy_cp = '\0'; \
0406     /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
0407     (yy_c_buf_p) = yy_cp;
0408 
0409 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
0410 #define YY_NUM_RULES 202
0411 #define YY_END_OF_BUFFER 203
0412 /* This struct is not used in this scanner,
0413    but its presence is necessary. */
0414 struct yy_trans_info {
0415     flex_int32_t yy_verify;
0416     flex_int32_t yy_nxt;
0417 };
0418 static yyconst flex_int16_t yy_accept[982] = {
0419     0,
0420     0,    0,  203,  201,    3,    4,    5,  201,  201,    5,
0421     201,   10,   10,   10,   10,   10,   10,   31,  201,   32,
0422     201,  201,  201,  201,  201,  201,  201,  201,  201,  201,
0423     201,  201,  201,  201,  201,  201,  201,  201,  201,  201,
0424     201,  201,  201,  201,    5,    3,    4,   28,    0,   11,
0425     0,    1,   33,   10,    0,    0,    0,    0,    0,   29,
0426     27,   30,    0,    0,    0,    0,    0,    0,    0,    0,
0427     0,  130,    0,    0,    0,    0,    0,    0,    0,    0,
0428     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0429     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0430 
0431     0,    0,    0,   18,   17,    0,    0,    0,    0,    0,
0432     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0433     0,    0,    0,    0,    0,   15,    0,    0,    0,    0,
0434     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0435     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0436     16,    0,    0,    0,    0,    0,    0,   34,    0,    2,
0437     35,   36,   37,   38,   39,    0,    0,    0,    0,   41,
0438     0,  116,    0,    0,    0,    0,    0,    0,    0,    0,
0439     0,    0,    0,    0,    0,   13,    0,  191,    0,    0,
0440     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0441 
0442     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0443     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0444     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0445     0,    0,    0,    0,    0,    0,   62,    0,    0,    0,
0446     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0447     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0448     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0449     0,    0,  114,    0,    0,    0,    0,    0,    0,    0,
0450     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0451     0,    0,    0,    0,  103,    0,    0,    0,    0,  185,
0452 
0453     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0454     0,  189,  125,    0,    0,    0,    0,    0,    0,  190,
0455     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0456     0,   14,    0,    0,    0,    0,  118,  131,   88,    0,
0457     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0458     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0459     0,    0,  127,    0,    0,    0,   64,    0,    0,   63,
0460     0,    0,    0,    0,    0,    0,    0,   40,    0,    0,
0461     0,  172,    0,    0,    0,  188,    0,    0,    0,    0,
0462     0,    0,    0,    0,    8,    0,    0,   42,    0,    0,
0463 
0464     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0465     0,    0,    0,   19,    0,    0,    0,    0,    0,    0,
0466     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0467     0,    0,  108,    0,    0,    0,    0,    0,    0,    0,
0468     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0469     0,    0,    0,    0,    0,    0,   82,    0,    0,    0,
0470     0,    0,    0,   21,    0,    0,    0,    0,  132,   44,
0471     0,   61,    0,    0,    0,    0,    0,    0,    0,    0,
0472     0,   46,    0,    0,    0,    0,    0,    0,    0,    0,
0473     0,    0,   12,    0,    0,   39,    0,   35,    0,    0,
0474 
0475     0,    0,    0,    0,  109,  115,    0,    0,  101,    0,
0476     141,    0,    0,    0,    0,    0,    0,  198,    0,    0,
0477     0,   81,    0,    0,    0,    0,    0,    0,    0,    0,
0478     60,    0,    0,    0,   20,    0,    0,    0,    0,    0,
0479     0,  126,    0,    0,    0,    0,    0,   87,   79,    0,
0480     0,    0,    0,  171,    0,    0,    0,    0,    0,   95,
0481     94,    0,    0,    0,  148,    0,    0,    0,  143,    0,
0482     0,    0,    0,    0,  112,    0,    0,    0,    0,    0,
0483     0,    0,   26,    0,  124,  128,    0,    0,    0,    0,
0484     129,    0,  123,   37,    0,    0,    0,    0,    0,    0,
0485 
0486     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0487     133,    0,    0,  168,   65,  192,   43,    0,    0,    0,
0488     0,    0,   77,    0,    0,    0,    0,    0,   23,  193,
0489     0,    0,    0,    0,   38,   74,  107,    0,    0,    0,
0490     80,  119,    0,    0,    0,  181,    0,   57,    0,    0,
0491     169,    0,  122,    0,    0,    0,   25,    0,    0,    0,
0492     83,    0,   89,    0,   70,  186,    0,    0,  110,    0,
0493     0,    0,    0,    0,    0,    0,   24,    0,    0,   91,
0494     0,    0,    0,   45,  117,    0,    0,    0,    0,    0,
0495     0,   48,    0,   36,    0,    0,  149,    0,    0,  199,
0496 
0497     0,    0,    0,    0,   76,  102,    0,   78,    0,    0,
0498     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0499     0,    0,    0,    0,    0,    0,    0,  165,    0,    0,
0500     0,  162,    0,    6,    0,    0,    0,    0,    0,    0,
0501     0,    0,    0,    0,    0,  121,    0,    0,   58,    0,
0502     0,  184,    0,    0,    0,  105,    0,    0,    0,  106,
0503     0,   54,    0,   67,    0,  111,    0,    0,    0,   86,
0504     93,  173,    0,    0,    0,    0,  150,  180,    0,    0,
0505     0,    0,    0,    0,  139,    0,  151,    0,    0,    0,
0506     100,    0,    0,    0,  120,    0,   71,    0,    0,  104,
0507 
0508     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
0509     0,    0,    0,    0,    0,    0,    0,    0,   51,   69,
0510     0,  194,    0,    0,   59,    0,    0,    0,  177,    0,
0511     0,    0,    0,    0,    7,   22,  113,  175,   99,  142,
0512     68,    0,    0,    0,   85,    0,   92,    0,    0,    0,
0513     179,   75,   55,    0,  195,    0,  166,  174,    0,    0,
0514     0,   73,   97,  163,    0,    0,    0,    0,    0,    0,
0515     0,    0,    0,    0,  136,    0,  134,    0,    0,    0,
0516     167,  176,    0,    0,    0,   98,  182,   50,    0,   56,
0517     0,    0,    0,  164,    0,    0,    0,    0,   96,    0,
0518 
0519     0,   47,   66,  187,  178,    0,    0,   72,    0,    0,
0520     0,    0,    0,    0,    0,  200,    0,  140,  138,    0,
0521     170,    0,    0,    0,   49,   53,    0,    0,    0,   90,
0522     0,  197,   84,  144,    0,    0,  152,    0,  160,    0,
0523     0,    0,    0,  159,    0,  135,    0,    0,    9,    0,
0524     0,    0,  183,    0,  153,    0,  156,    0,  158,    0,
0525     137,  196,    0,    0,    0,    0,  145,    0,    0,    0,
0526     52,    0,  146,    0,  155,  154,  157,  161,    0,  147,
0527     0
0528 };
0529 
0530 static yyconst flex_int32_t yy_ec[256] = {
0531     0,
0532     1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
0533     1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
0534     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0535     1,    2,    4,    5,    6,    1,    7,    8,    1,    7,
0536     7,    7,    7,    1,    7,    7,    7,    9,   10,   11,
0537     12,   13,   14,    9,    9,    9,    9,   15,    1,   16,
0538     17,   18,    7,    1,   19,   20,   21,   22,   23,   24,
0539     25,   26,   27,   28,   29,   30,   31,   32,   33,   34,
0540     35,   36,   37,   38,   39,   40,   41,    1,   42,   43,
0541     7,    1,    7,    1,    1,    1,   44,   45,   46,   47,
0542 
0543     48,   49,   50,   51,   52,   53,   54,   55,   56,   57,
0544     58,   59,   60,   61,   62,   63,   64,   65,   66,    1,
0545     67,   68,    1,   69,    1,    1,    1,    1,    1,    1,
0546     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0547     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0548     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0549     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0550     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0551     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0552     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0553 
0554     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0555     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0556     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0557     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0558     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0559     1,    1,    1,    1,    1
0560 };
0561 
0562 static yyconst flex_int32_t yy_meta[70] = {
0563     0,
0564     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0565     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0566     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0567     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0568     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0569     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
0570     1,    1,    1,    1,    1,    1,    1,    1,    1
0571 };
0572 
0573 static yyconst flex_int16_t yy_base[985] = {
0574     0,
0575     0,  415,  427, 2013,  424,  422,  407,  380,  378, 2013,
0576     371,   61,   67,   73,   79,   85,   97,  361,  243,  217,
0577     141,   93,   87,   98,  191,  135,  191,  188,  184,   83,
0578     238,  105,  239,  240,  249,  292,   95,  290,  338,  384,
0579     115,  141,  293,  135,  182,  180,  152, 2013,  147, 2013,
0580     133, 2013, 2013,  440,  129,  147,  148,  146,  148, 2013,
0581     2013, 2013,  157,  193,  175,  182,  177,  184,  202,  197,
0582     236, 2013,  249,  243,  250,  256,  254,  258,  239,  286,
0583     250,  265,  287,  282,  284,  288,  289,  312,  334,  336,
0584     340,  330,  347,  344,  330,  343,  340,  333,  351,  339,
0585 
0586     377,  384,  381, 2013,  390,  395,  390,  425,  397,  383,
0587     425,  440,  421,  429,  443,  463,  439,  436,  437,  438,
0588     440,  446,  442,  474,  468, 2013,  486,  515,  488,  490,
0589     471,  523,  484,  496,  496,  535,  489,  501,  521,  531,
0590     582,  566,  518,  530,  558,  538,  569,  584,  559,  555,
0591     579,  585,  586,  603,  606,  618,  609, 2013,  130, 2013,
0592     2013, 2013, 2013, 2013, 2013,  611,  610,  626,  632, 2013,
0593     625, 2013,  634,  615,  619,  625,  624,  636,  633,  637,
0594     634,  635,  629,  637,  635,  648,  664, 2013,  669,  667,
0595     657,  674,  667,  665,  682,  675,  667,  664,  669,  668,
0596 
0597     688,  671,  673,  689,  693,  691,  691,  678,  705,  697,
0598     689,  718,  714,  707,  707,  719,  711,  730,  712,  725,
0599     734,  731,  728,  718,  722,  733,  731,  735,  739,  728,
0600     739,  750,  768,  748,  765,  772, 2013,  759,  770,  758,
0601     782,  780,  782,  786,  783,  788,  789,  775,  788,  780,
0602     787,  777,  789,  791,  812,  819,  800,  806,  814,  817,
0603     812,  831,  819,  820,  821,  825,  837,  830,  839,  840,
0604     834,  836, 2013,  845,  839,  828,  840,  838,  852,  855,
0605     867,  855,  868,  875,  872,  878,  880,  883,  884,  868,
0606     883,  869,  869,  870, 2013,  888,  877,  881,  904, 2013,
0607 
0608     891,  889,  912,  900,  906,  912,  926,  927,  911,  912,
0609     930, 2013,  925,  917,  928,  925,  934,  930,  922, 2013,
0610     942,  927,  928,  954,  956,  947,  957,  967,  966,  956,
0611     956, 2013,  965,  961,  980,  978, 2013, 2013, 2013,  970,
0612     970,  962,  986,  967,  981,  976,  971,  973,  994,  981,
0613     980,  984,  983, 1002,  998, 1004, 1017, 1007, 1004, 1018,
0614     1013, 1028, 2013, 1019, 1032, 1033, 2013, 1034, 1031, 2013,
0615     1018, 1029, 1035, 1029, 1036, 1034, 1024, 2013, 1022, 1028,
0616     1047, 2013, 1050, 1056, 1059, 2013, 1060, 1067, 1057, 1057,
0617     1052, 1077, 1078, 1063, 1079, 1065, 1071, 2013, 1073, 1085,
0618 
0619     1086, 1076, 1071, 1086, 1088, 1082, 1081, 1090, 1084, 1097,
0620     1092, 1116, 1112, 2013, 1120, 1112, 1105, 1106, 1119, 1116,
0621     1130, 1131, 1130, 1134, 1129, 1119, 1116, 1121, 1125, 1126,
0622     1129, 1130, 2013, 1141, 1147, 1173, 1137, 1155, 1144, 1149,
0623     1150, 1156, 1163, 1156, 1178, 1180, 1182, 1159, 1180, 1166,
0624     1183, 1167, 1177, 1171, 1173, 1184, 2013, 1191, 1188, 1193,
0625     1185, 1195, 1216, 2013, 1211, 1214, 1219, 1217, 1217, 2013,
0626     1226, 2013, 1221, 1217, 1213, 1220, 1230, 1235, 1215, 1220,
0627     1221, 2013, 1227, 1238, 1225, 1227, 1244, 1239, 1241, 1239,
0628     1263, 1253, 2013, 1254, 1273, 2013, 1272, 2013, 1268, 1253,
0629 
0630     1258, 1265, 1263, 1282, 2013, 2013, 1266, 1262, 2013, 1285,
0631     2013, 1269, 1274, 1280, 1272, 1277, 1289, 2013, 1287, 1285,
0632     1297, 2013, 1283, 1293, 1316, 1314, 1314, 1315, 1318, 1314,
0633     2013, 1309, 1310, 1324, 2013, 1307, 1309, 1330, 1317, 1335,
0634     1332, 2013, 1336, 1334, 1335, 1336, 1335, 2013, 2013, 1337,
0635     1325, 1347, 1341, 2013, 1342, 1346, 1348, 1371, 1369, 2013,
0636     2013, 1372, 1371, 1365, 2013, 1377, 1361, 1372, 2013, 1382,
0637     1380, 1373, 1372, 1383, 2013, 1375, 1375, 1376, 1390, 1384,
0638     1390, 1395, 2013, 1397, 2013, 2013, 1404, 1385, 1393, 1400,
0639     2013, 1409, 2013, 2013, 1404, 1417, 1422, 1422, 1427, 1428,
0640 
0641     1430, 1414, 1426, 1416, 1425, 1437, 1438, 1418, 1422, 1462,
0642     2013, 1419, 1444, 2013, 2013, 2013, 2013, 1432, 1454, 1438,
0643     1468, 1457, 2013, 1451, 1475, 1472, 1462, 1477, 2013, 2013,
0644     1472, 1479, 1466, 1476, 2013, 2013, 2013, 1473, 1478, 1470,
0645     2013, 2013, 1475, 1481, 1477, 2013, 1469, 2013, 1494, 1478,
0646     2013, 1501, 2013, 1506, 1510, 1518, 2013, 1501, 1508, 1502,
0647     2013, 1520, 2013, 1525, 2013, 2013, 1526, 1504, 2013, 1524,
0648     1513, 1525, 1520, 1534, 1521, 1517, 2013, 1519, 1518, 2013,
0649     1526, 1521, 1529, 2013, 2013, 1547, 1531, 1554, 1542, 1551,
0650     1570, 2013, 1571, 2013, 1572, 1573, 2013, 1556, 1555, 2013,
0651 
0652     1566, 1565, 1563, 1582, 2013, 2013, 1564, 2013, 1576, 1577,
0653     1586, 1564, 1578, 1566, 1580, 1589, 1575, 1590, 1616, 1591,
0654     1594, 1610, 1613, 1608, 1605, 1619, 1628, 2013, 1630, 1615,
0655     1626, 2013, 1618, 2013, 1625, 1620, 1619, 1635, 1640, 1634,
0656     1621, 1647, 1650, 1656, 1666, 2013, 1666, 1670, 2013, 1671,
0657     1666, 2013, 1673, 1671, 1659, 2013, 1663, 1678, 1668, 2013,
0658     1670, 2013, 1666, 2013, 1680, 2013, 1672, 1667, 1683, 2013,
0659     2013, 2013, 1674, 1670, 1668, 1685, 2013, 2013, 1674, 1697,
0660     1681, 1695, 1712, 1714, 2013, 1720, 2013, 1721, 1723, 1707,
0661     2013, 1716, 1723, 1704, 2013, 1724, 2013, 1723, 1732, 2013,
0662 
0663     1713, 1727, 1716, 1716, 1730, 1738, 1738, 1732, 1734, 1733,
0664     1746, 1749, 1748, 1755, 1767, 1771, 1773, 1774, 2013, 2013,
0665     1767, 2013, 1763, 1764, 2013, 1767, 1767, 1769, 2013, 1783,
0666     1765, 1774, 1786, 1773, 2013, 2013, 2013, 2013, 2013, 2013,
0667     2013, 1770, 1788, 1786, 2013, 1779, 2013, 1794, 1797, 1786,
0668     2013, 2013, 2013, 1789, 2013, 1799, 2013, 2013, 1818, 1811,
0669     1821, 2013, 2013, 2013, 1800, 1813, 1825, 1825, 1820, 1816,
0670     1830, 1831, 1829, 1816, 2013, 1822, 2013, 1828, 1830, 1838,
0671     2013, 2013, 1826, 1821, 1828, 2013, 2013, 2013, 1825, 2013,
0672     1836, 1846, 1856, 2013, 1847, 1861, 1866, 1856, 2013, 1862,
0673 
0674     1874, 2013, 2013, 2013, 2013, 1876, 1870, 2013, 1878, 1877,
0675     1874, 1870, 1872, 1873, 1867, 2013, 1880, 2013, 2013, 1880,
0676     2013, 1888, 1882, 1879, 2013, 2013, 1880, 1875, 1897, 2013,
0677     1887, 2013, 2013, 2013, 1903, 1911, 2013, 1901, 2013, 1921,
0678     1923, 1924, 1921, 2013, 1918, 2013, 1923, 1907, 2013, 1917,
0679     1932, 1933, 2013, 1926, 2013, 1928, 2013, 1928, 2013, 1933,
0680     2013, 2013, 1934, 1939, 1929, 1942, 2013, 1944, 1934, 1936,
0681     2013, 1945, 2013, 1953, 2013, 2013, 2013, 2013, 1960, 2013,
0682     2013,  102,  100,   99
0683 };
0684 
0685 static yyconst flex_int16_t yy_def[985] = {
0686     0,
0687     981,    1,  981,  981,  981,  981,  981,  982,  983,  981,
0688     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0689     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0690     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0691     981,  981,  981,  981,  984,  981,  981,  981,  982,  981,
0692     983,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0693     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0694     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0695     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0696     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0697 
0698     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0699     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0700     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0701     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0702     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0703     981,  981,  981,  981,  981,  981,  981,  981,  984,  981,
0704     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0705     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0706     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0707     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0708 
0709     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0710     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0711     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0712     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0713     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0714     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0715     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0716     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0717     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0718     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0719 
0720     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0721     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0722     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0723     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0724     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0725     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0726     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0727     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0728     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0729     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0730 
0731     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0732     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0733     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0734     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0735     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0736     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0737     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0738     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0739     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0740     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0741 
0742     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0743     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0744     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0745     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0746     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0747     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0748     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0749     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0750     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0751     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0752 
0753     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0754     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0755     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0756     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0757     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0758     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0759     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0760     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0761     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0762     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0763 
0764     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0765     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0766     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0767     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0768     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0769     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0770     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0771     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0772     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0773     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0774 
0775     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0776     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0777     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0778     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0779     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0780     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0781     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0782     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0783     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0784     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0785 
0786     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0787     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0788     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0789     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0790     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0791     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0792     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0793     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
0794     0,  981,  981,  981
0795 };
0796 
0797 static yyconst flex_int16_t yy_nxt[2083] = {
0798     0,
0799     4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
0800     14,   15,   16,   17,   10,   18,   19,   20,   21,   22,
0801     23,   24,   25,   26,   27,   28,   29,   30,   31,   32,
0802     33,   34,   35,   36,   37,   38,   39,   40,    4,   41,
0803     42,   43,    4,   21,   22,   23,   24,   25,   26,   27,
0804     28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
0805     38,   39,   40,    4,   41,   42,   43,    4,   44,   54,
0806     54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
0807     54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
0808     54,   54,   54,   54,   54,   54,   54,   54,   54,  159,
0809 
0810     51,  107,   49,   55,   56,   54,   54,   54,   54,   54,
0811     54,   74,   78,   79,   57,   75,   82,  135,   76,   80,
0812     83,  108,   58,  114,  109,   81,  107,  115,   55,   56,
0813     84,   77,  160,  153,   59,   52,   74,   78,   79,   57,
0814     75,   82,  135,   76,   80,   83,  108,   58,  114,  109,
0815     81,   50,  115,   92,   47,   84,   77,   93,  153,   59,
0816     63,   94,   64,  154,   65,   66,  161,   95,  162,  163,
0817     96,  164,   67,  165,   68,  166,   69,   70,   92,   71,
0818     72,   46,   93,   73,  160,   63,   94,   64,  154,   65,
0819     66,  161,   95,  162,  163,   96,  164,   67,  165,   68,
0820 
0821     166,   69,   70,  158,   71,   72,  101,  104,   73,   85,
0822     102,  167,  168,   97,  103,  105,   86,  169,  170,  171,
0823     87,  172,  173,   98,   88,  106,   99,   89,   90,  100,
0824     91,  101,  104,   62,   85,  102,  167,  168,   97,  103,
0825     105,   86,  169,  170,  171,   87,  172,  173,   98,   88,
0826     106,   99,   89,   90,  100,   91,  110,  116,  121,   61,
0827     174,  117,  122,  111,  112,  118,  123,  175,  176,  125,
0828     113,  119,  124,  177,  178,  179,  180,  120,  181,  185,
0829     126,  110,  116,  121,  127,  174,  117,  122,  111,  112,
0830     118,  123,  175,  176,  125,  113,  119,  124,  177,  178,
0831 
0832     179,  180,  120,  181,  185,  126,  186,  187,  136,  127,
0833     128,  155,  137,  188,  129,  156,  182,  130,  190,  183,
0834     191,  131,  138,  189,  184,  157,  192,  193,  132,  133,
0835     134,  186,  187,  136,  194,  128,  155,  137,  188,  129,
0836     156,  182,  130,  190,  183,  191,  131,  138,  189,  184,
0837     157,  192,  193,  132,  133,  134,  139,  195,  140,  194,
0838     141,  196,  197,  142,  143,  198,  199,  200,  203,  204,
0839     144,  205,  206,  207,  208,  201,  145,   60,   53,  202,
0840     52,  139,  195,  140,   50,  141,  196,  197,  142,  143,
0841     198,  199,  200,  203,  204,  144,  205,  206,  207,  208,
0842 
0843     201,  145,  146,  211,  202,  212,  147,  209,  214,  148,
0844     149,  216,  150,  217,  210,  223,  151,  215,  224,  218,
0845     213,  219,  152,   48,   47,   46,  981,  146,  211,   45,
0846     212,  147,  209,  214,  148,  149,  216,  150,  217,  210,
0847     223,  151,  215,  224,  218,  213,  219,  152,   54,   54,
0848     54,   54,   54,   54,  220,  221,  222,  225,  226,  228,
0849     229,  231,  981,  244,  238,  230,  981,  240,  242,  981,
0850     245,  246,  243,  981,  232,  239,  227,  241,  247,  220,
0851     221,  222,  225,  226,  228,  229,  231,  233,  244,  238,
0852     230,  234,  240,  242,  235,  245,  246,  243,  236,  232,
0853 
0854     239,  227,  241,  247,  237,  250,  248,  251,  260,  261,
0855     265,  258,  233,  249,  981,  266,  234,  267,  272,  235,
0856     273,  981,  981,  236,  259,  981,  981,  981,  981,  237,
0857     250,  248,  251,  260,  261,  265,  258,  981,  249,  252,
0858     266,  262,  267,  272,  274,  273,  253,  254,  263,  259,
0859     255,  256,  275,  257,  268,  264,  277,  288,  276,  981,
0860     289,  981,  269,  292,  252,  270,  262,  981,  293,  274,
0861     981,  253,  254,  263,  271,  255,  256,  275,  257,  268,
0862     264,  277,  288,  276,  284,  289,  290,  269,  292,  291,
0863     270,  981,  285,  293,  300,  301,  302,  981,  303,  271,
0864 
0865     278,  286,  279,  294,  295,  287,  280,  304,  296,  284,
0866     297,  290,  305,  281,  291,  282,  298,  285,  283,  300,
0867     301,  302,  299,  303,  306,  278,  286,  279,  294,  295,
0868     287,  280,  304,  296,  307,  297,  309,  305,  281,  311,
0869     282,  298,  312,  283,  308,  313,  310,  299,  314,  306,
0870     315,  316,  317,  319,  320,  321,  322,  323,  324,  307,
0871     327,  309,  325,  326,  311,  328,  329,  312,  330,  308,
0872     313,  310,  331,  314,  318,  315,  316,  317,  319,  320,
0873     321,  322,  323,  324,  332,  327,  333,  325,  326,  334,
0874     328,  329,  335,  330,  336,  337,  338,  331,  339,  318,
0875 
0876     340,  341,  342,  343,  344,  345,  346,  347,  348,  332,
0877     349,  333,  350,  351,  334,  352,  353,  335,  981,  336,
0878     337,  338,  356,  339,  357,  340,  341,  342,  343,  344,
0879     345,  346,  347,  348,  354,  349,  358,  350,  351,  359,
0880     352,  353,  360,  355,  361,  362,  363,  356,  364,  357,
0881     365,  366,  368,  370,  371,  372,  369,  373,  374,  354,
0882     375,  358,  376,  377,  359,  378,  367,  360,  355,  361,
0883     362,  363,  379,  364,  380,  365,  366,  368,  370,  371,
0884     372,  369,  373,  374,  383,  375,  381,  376,  377,  384,
0885     378,  367,  385,  382,  386,  387,  390,  379,  388,  380,
0886 
0887     391,  392,  389,  393,  394,  395,  396,  397,  398,  383,
0888     399,  381,  400,  401,  384,  402,  403,  385,  382,  386,
0889     387,  390,  404,  388,  405,  391,  392,  389,  393,  394,
0890     395,  396,  397,  398,  406,  399,  410,  400,  401,  408,
0891     402,  403,  407,  411,  409,  412,  413,  404,  414,  405,
0892     415,  416,  417,  418,  419,  420,  421,  422,  423,  406,
0893     424,  410,  425,  426,  408,  427,  428,  407,  411,  409,
0894     412,  413,  429,  414,  430,  415,  416,  417,  418,  419,
0895     420,  421,  422,  423,  431,  424,  432,  425,  426,  433,
0896     427,  428,  434,  435,  436,  440,  441,  429,  442,  430,
0897 
0898     437,  443,  444,  445,  446,  447,  438,  448,  449,  431,
0899     450,  432,  451,  452,  433,  439,  455,  434,  435,  436,
0900     440,  441,  453,  442,  456,  437,  443,  444,  445,  446,
0901     447,  438,  448,  449,  457,  450,  458,  451,  452,  454,
0902     439,  455,  459,  460,  461,  462,  464,  453,  465,  456,
0903     466,  469,  470,  471,  472,  473,  474,  463,  475,  457,
0904     476,  458,  477,  478,  454,  467,  468,  459,  460,  461,
0905     462,  464,  479,  465,  480,  466,  469,  470,  471,  472,
0906     473,  474,  463,  475,  481,  476,  482,  477,  478,  483,
0907     467,  468,  484,  485,  486,  487,  488,  479,  489,  480,
0908 
0909     490,  491,  492,  493,  494,  495,  496,  497,  498,  481,
0910     499,  482,  500,  501,  483,  502,  503,  484,  485,  486,
0911     487,  488,  504,  489,  505,  490,  491,  492,  493,  494,
0912     495,  496,  497,  498,  506,  499,  507,  500,  501,  508,
0913     502,  503,  509,  510,  511,  512,  513,  504,  514,  505,
0914     515,  516,  517,  518,  519,  520,  521,  522,  523,  506,
0915     524,  507,  525,  526,  508,  527,  528,  509,  510,  511,
0916     512,  513,  529,  514,  530,  515,  516,  517,  518,  519,
0917     520,  521,  522,  523,  531,  524,  532,  525,  526,  533,
0918     527,  528,  534,  535,  536,  537,  538,  529,  539,  530,
0919 
0920     540,  541,  542,  543,  544,  545,  546,  547,  548,  531,
0921     549,  532,  550,  551,  533,  552,  553,  534,  535,  536,
0922     537,  538,  554,  539,  555,  540,  541,  542,  543,  544,
0923     545,  546,  547,  548,  556,  549,  557,  550,  551,  558,
0924     552,  553,  559,  560,  561,  562,  563,  554,  564,  555,
0925     565,  566,  567,  568,  569,  570,  571,  572,  573,  556,
0926     574,  557,  575,  576,  558,  577,  981,  559,  560,  561,
0927     562,  563,  580,  564,  581,  565,  566,  567,  568,  569,
0928     570,  571,  572,  573,  582,  574,  583,  575,  576,  584,
0929     577,  578,  579,  585,  586,  587,  588,  580,  589,  581,
0930 
0931     590,  591,  592,  593,  594,  595,  596,  597,  598,  582,
0932     599,  583,  600,  601,  584,  602,  578,  579,  585,  586,
0933     587,  588,  603,  589,  604,  590,  591,  592,  593,  594,
0934     595,  596,  597,  598,  605,  599,  606,  600,  601,  607,
0935     602,  608,  610,  611,  612,  609,  613,  603,  614,  604,
0936     615,  616,  617,  618,  619,  620,  621,  622,  623,  605,
0937     624,  606,  625,  626,  607,  627,  608,  610,  611,  612,
0938     609,  613,  628,  614,  629,  615,  616,  617,  618,  619,
0939     620,  621,  622,  623,  630,  624,  631,  625,  626,  632,
0940     627,  633,  634,  635,  636,  637,  638,  628,  639,  629,
0941 
0942     640,  641,  642,  643,  644,  645,  646,  647,  648,  630,
0943     649,  631,  650,  651,  632,  652,  633,  634,  635,  636,
0944     637,  638,  653,  639,  654,  640,  641,  642,  643,  644,
0945     645,  646,  647,  648,  655,  649,  656,  650,  651,  657,
0946     652,  658,  659,  660,  661,  662,  663,  653,  664,  654,
0947     665,  666,  667,  668,  669,  670,  671,  672,  673,  655,
0948     674,  656,  675,  676,  657,  677,  658,  659,  660,  661,
0949     662,  663,  678,  664,  679,  665,  666,  667,  668,  669,
0950     670,  671,  672,  673,  680,  674,  681,  675,  676,  682,
0951     677,  683,  684,  685,  686,  687,  688,  678,  689,  679,
0952 
0953     690,  691,  692,  693,  694,  695,  696,  697,  698,  680,
0954     699,  681,  700,  701,  682,  702,  683,  684,  685,  686,
0955     687,  688,  703,  689,  704,  690,  691,  692,  693,  694,
0956     695,  696,  697,  698,  705,  699,  706,  700,  701,  707,
0957     702,  708,  709,  711,  712,  713,  714,  703,  715,  704,
0958     716,  710,  717,  718,  719,  720,  721,  722,  723,  705,
0959     727,  706,  728,  981,  707,  729,  708,  709,  711,  712,
0960     713,  714,  730,  715,  731,  716,  710,  717,  718,  719,
0961     720,  721,  722,  723,  724,  727,  732,  728,  725,  733,
0962     729,  726,  734,  735,  736,  737,  738,  730,  739,  731,
0963 
0964     740,  741,  742,  743,  744,  745,  746,  747,  748,  724,
0965     749,  732,  750,  725,  733,  751,  726,  734,  735,  736,
0966     737,  738,  752,  739,  753,  740,  741,  742,  743,  744,
0967     745,  746,  747,  748,  754,  749,  755,  750,  756,  757,
0968     751,  758,  759,  760,  761,  762,  763,  752,  764,  753,
0969     765,  766,  767,  768,  769,  770,  771,  772,  773,  754,
0970     774,  755,  777,  756,  757,  775,  758,  759,  760,  761,
0971     762,  763,  778,  764,  779,  765,  766,  767,  768,  769,
0972     770,  771,  772,  773,  776,  774,  780,  777,  781,  782,
0973     775,  783,  784,  785,  786,  787,  788,  778,  789,  779,
0974 
0975     790,  791,  792,  793,  794,  795,  796,  797,  798,  776,
0976     799,  780,  800,  781,  782,  801,  783,  784,  785,  786,
0977     787,  788,  807,  789,  808,  790,  791,  792,  793,  794,
0978     795,  796,  797,  798,  802,  799,  809,  800,  810,  811,
0979     801,  812,  803,  804,  805,  813,  814,  807,  815,  808,
0980     816,  817,  806,  818,  819,  820,  821,  822,  823,  802,
0981     824,  809,  825,  810,  811,  826,  812,  803,  804,  805,
0982     813,  814,  827,  815,  828,  816,  817,  806,  818,  819,
0983     820,  821,  822,  823,  829,  824,  830,  825,  831,  832,
0984     826,  833,  834,  835,  836,  837,  838,  827,  839,  828,
0985 
0986     840,  841,  842,  843,  844,  845,  846,  847,  848,  829,
0987     849,  830,  850,  831,  832,  851,  833,  834,  835,  836,
0988     837,  838,  852,  839,  853,  840,  841,  842,  843,  844,
0989     845,  846,  847,  848,  854,  849,  855,  850,  856,  857,
0990     851,  858,  859,  860,  861,  862,  863,  852,  864,  853,
0991     865,  866,  867,  869,  870,  871,  872,  873,  874,  854,
0992     875,  855,  868,  856,  857,  876,  858,  859,  860,  861,
0993     862,  863,  877,  864,  878,  865,  866,  867,  869,  870,
0994     871,  872,  873,  874,  879,  875,  880,  868,  881,  882,
0995     876,  883,  884,  885,  886,  887,  888,  877,  889,  878,
0996 
0997     890,  891,  892,  893,  894,  895,  896,  897,  898,  879,
0998     899,  880,  900,  881,  882,  901,  883,  884,  885,  886,
0999     887,  888,  902,  889,  903,  890,  891,  892,  893,  894,
1000     895,  896,  897,  898,  904,  899,  905,  900,  906,  907,
1001     901,  908,  909,  910,  911,  912,  913,  902,  914,  903,
1002     915,  916,  917,  918,  919,  920,  921,  922,  923,  904,
1003     924,  905,  925,  906,  907,  926,  908,  909,  910,  911,
1004     912,  913,  927,  914,  928,  915,  916,  917,  918,  919,
1005     920,  921,  922,  923,  930,  924,  931,  925,  932,  933,
1006     926,  934,  935,  929,  936,  937,  938,  927,  939,  928,
1007 
1008     940,  941,  942,  943,  944,  945,  946,  947,  948,  930,
1009     949,  931,  950,  932,  933,  951,  934,  935,  929,  936,
1010     937,  938,  952,  939,  953,  940,  941,  942,  943,  944,
1011     945,  946,  947,  948,  954,  949,  955,  950,  956,  957,
1012     951,  958,  959,  960,  961,  962,  963,  952,  964,  953,
1013     965,  966,  967,  968,  969,  970,  971,  972,  973,  954,
1014     974,  955,  975,  956,  957,  976,  958,  959,  960,  961,
1015     962,  963,  977,  964,  978,  965,  966,  967,  968,  969,
1016     970,  971,  972,  973,  979,  974,  980,  975,  981,  981,
1017     976,  981,  981,  981,  981,  981,  981,  977,  981,  978,
1018 
1019     981,  981,  981,  981,  981,  981,  981,  981,  981,  979,
1020     981,  980,    3,  981,  981,  981,  981,  981,  981,  981,
1021     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
1022     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
1023     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
1024     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
1025     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
1026     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
1027     981,  981
1028 };
1029 
1030 static yyconst flex_int16_t yy_chk[2083] = {
1031     0,
1032     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1033     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1034     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1035     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1036     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1037     1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1038     1,    1,    1,    1,    1,    1,    1,    1,    1,   12,
1039     12,   12,   12,   12,   12,   13,   13,   13,   13,   13,
1040     13,   14,   14,   14,   14,   14,   14,   15,   15,   15,
1041     15,   15,   15,   16,   16,   16,   16,   16,   16,  984,
1042 
1043     983,   30,  982,   13,   14,   17,   17,   17,   17,   17,
1044     17,   22,   23,   23,   15,   22,   24,   37,   22,   23,
1045     24,   30,   16,   32,   30,   23,   30,   32,   13,   14,
1046     24,   22,  159,   41,   17,   51,   22,   23,   23,   15,
1047     22,   24,   37,   22,   23,   24,   30,   16,   32,   30,
1048     23,   49,   32,   26,   47,   24,   22,   26,   41,   17,
1049     21,   26,   21,   42,   21,   21,   55,   26,   56,   57,
1050     26,   58,   21,   59,   21,   63,   21,   21,   26,   21,
1051     21,   46,   26,   21,   45,   21,   26,   21,   42,   21,
1052     21,   55,   26,   56,   57,   26,   58,   21,   59,   21,
1053 
1054     63,   21,   21,   44,   21,   21,   28,   29,   21,   25,
1055     28,   64,   65,   27,   28,   29,   25,   66,   67,   68,
1056     25,   69,   70,   27,   25,   29,   27,   25,   25,   27,
1057     25,   28,   29,   20,   25,   28,   64,   65,   27,   28,
1058     29,   25,   66,   67,   68,   25,   69,   70,   27,   25,
1059     29,   27,   25,   25,   27,   25,   31,   33,   34,   19,
1060     71,   33,   34,   31,   31,   33,   34,   73,   74,   35,
1061     31,   33,   34,   75,   76,   77,   78,   33,   79,   81,
1062     35,   31,   33,   34,   35,   71,   33,   34,   31,   31,
1063     33,   34,   73,   74,   35,   31,   33,   34,   75,   76,
1064 
1065     77,   78,   33,   79,   81,   35,   82,   83,   38,   35,
1066     36,   43,   38,   83,   36,   43,   80,   36,   84,   80,
1067     85,   36,   38,   83,   80,   43,   86,   87,   36,   36,
1068     36,   82,   83,   38,   88,   36,   43,   38,   83,   36,
1069     43,   80,   36,   84,   80,   85,   36,   38,   83,   80,
1070     43,   86,   87,   36,   36,   36,   39,   89,   39,   88,
1071     39,   90,   91,   39,   39,   92,   93,   94,   95,   96,
1072     39,   97,   98,   99,  100,   94,   39,   18,   11,   94,
1073     9,   39,   89,   39,    8,   39,   90,   91,   39,   39,
1074     92,   93,   94,   95,   96,   39,   97,   98,   99,  100,
1075 
1076     94,   39,   40,  102,   94,  102,   40,  101,  103,   40,
1077     40,  105,   40,  106,  101,  109,   40,  103,  110,  107,
1078     102,  107,   40,    7,    6,    5,    3,   40,  102,    2,
1079     102,   40,  101,  103,   40,   40,  105,   40,  106,  101,
1080     109,   40,  103,  110,  107,  102,  107,   40,   54,   54,
1081     54,   54,   54,   54,  108,  108,  108,  111,  112,  113,
1082     114,  115,    0,  120,  117,  114,    0,  118,  119,    0,
1083     121,  122,  119,    0,  115,  117,  112,  118,  123,  108,
1084     108,  108,  111,  112,  113,  114,  115,  116,  120,  117,
1085     114,  116,  118,  119,  116,  121,  122,  119,  116,  115,
1086 
1087     117,  112,  118,  123,  116,  125,  124,  127,  130,  131,
1088     133,  129,  116,  124,    0,  134,  116,  135,  137,  116,
1089     138,    0,    0,  116,  129,    0,    0,    0,    0,  116,
1090     125,  124,  127,  130,  131,  133,  129,    0,  124,  128,
1091     134,  132,  135,  137,  139,  138,  128,  128,  132,  129,
1092     128,  128,  139,  128,  136,  132,  140,  143,  139,    0,
1093     144,    0,  136,  146,  128,  136,  132,    0,  146,  139,
1094     0,  128,  128,  132,  136,  128,  128,  139,  128,  136,
1095     132,  140,  143,  139,  142,  144,  145,  136,  146,  145,
1096     136,    0,  142,  146,  149,  149,  150,    0,  151,  136,
1097 
1098     141,  142,  141,  147,  147,  142,  141,  152,  147,  142,
1099     148,  145,  153,  141,  145,  141,  148,  142,  141,  149,
1100     149,  150,  148,  151,  154,  141,  142,  141,  147,  147,
1101     142,  141,  152,  147,  155,  148,  156,  153,  141,  157,
1102     141,  148,  166,  141,  155,  167,  156,  148,  168,  154,
1103     169,  171,  173,  174,  175,  176,  177,  178,  179,  155,
1104     181,  156,  180,  180,  157,  182,  183,  166,  184,  155,
1105     167,  156,  185,  168,  173,  169,  171,  173,  174,  175,
1106     176,  177,  178,  179,  186,  181,  187,  180,  180,  189,
1107     182,  183,  190,  184,  191,  192,  193,  185,  194,  173,
1108 
1109     195,  196,  197,  198,  199,  200,  201,  202,  203,  186,
1110     204,  187,  205,  206,  189,  207,  208,  190,    0,  191,
1111     192,  193,  210,  194,  211,  195,  196,  197,  198,  199,
1112     200,  201,  202,  203,  209,  204,  212,  205,  206,  213,
1113     207,  208,  214,  209,  215,  216,  217,  210,  218,  211,
1114     219,  220,  221,  222,  223,  224,  221,  225,  226,  209,
1115     227,  212,  228,  229,  213,  230,  220,  214,  209,  215,
1116     216,  217,  231,  218,  232,  219,  220,  221,  222,  223,
1117     224,  221,  225,  226,  234,  227,  233,  228,  229,  235,
1118     230,  220,  236,  233,  238,  239,  240,  231,  239,  232,
1119 
1120     241,  242,  239,  243,  244,  245,  246,  247,  248,  234,
1121     249,  233,  250,  251,  235,  252,  253,  236,  233,  238,
1122     239,  240,  254,  239,  254,  241,  242,  239,  243,  244,
1123     245,  246,  247,  248,  255,  249,  257,  250,  251,  256,
1124     252,  253,  255,  258,  256,  259,  260,  254,  261,  254,
1125     262,  263,  264,  265,  266,  267,  268,  269,  270,  255,
1126     271,  257,  272,  274,  256,  275,  276,  255,  258,  256,
1127     259,  260,  277,  261,  278,  262,  263,  264,  265,  266,
1128     267,  268,  269,  270,  279,  271,  280,  272,  274,  281,
1129     275,  276,  282,  283,  284,  285,  286,  277,  287,  278,
1130 
1131     284,  288,  289,  290,  291,  292,  284,  293,  294,  279,
1132     296,  280,  297,  298,  281,  284,  301,  282,  283,  284,
1133     285,  286,  299,  287,  302,  284,  288,  289,  290,  291,
1134     292,  284,  293,  294,  303,  296,  304,  297,  298,  299,
1135     284,  301,  305,  306,  307,  308,  309,  299,  310,  302,
1136     311,  313,  314,  315,  316,  317,  318,  308,  319,  303,
1137     321,  304,  322,  323,  299,  311,  311,  305,  306,  307,
1138     308,  309,  324,  310,  325,  311,  313,  314,  315,  316,
1139     317,  318,  308,  319,  326,  321,  327,  322,  323,  328,
1140     311,  311,  329,  330,  331,  333,  334,  324,  335,  325,
1141 
1142     336,  340,  341,  342,  343,  344,  345,  346,  347,  326,
1143     348,  327,  349,  350,  328,  351,  352,  329,  330,  331,
1144     333,  334,  353,  335,  354,  336,  340,  341,  342,  343,
1145     344,  345,  346,  347,  355,  348,  356,  349,  350,  357,
1146     351,  352,  358,  359,  360,  361,  362,  353,  364,  354,
1147     365,  366,  368,  369,  371,  372,  373,  374,  375,  355,
1148     376,  356,  377,  379,  357,  380,  381,  358,  359,  360,
1149     361,  362,  383,  364,  384,  365,  366,  368,  369,  371,
1150     372,  373,  374,  375,  385,  376,  387,  377,  379,  388,
1151     380,  381,  389,  390,  391,  392,  393,  383,  394,  384,
1152 
1153     395,  396,  397,  399,  400,  401,  402,  403,  404,  385,
1154     405,  387,  406,  407,  388,  408,  409,  389,  390,  391,
1155     392,  393,  410,  394,  411,  395,  396,  397,  399,  400,
1156     401,  402,  403,  404,  412,  405,  413,  406,  407,  415,
1157     408,  409,  416,  417,  418,  419,  420,  410,  421,  411,
1158     422,  423,  424,  425,  426,  427,  428,  429,  430,  412,
1159     431,  413,  432,  434,  415,  435,    0,  416,  417,  418,
1160     419,  420,  437,  421,  438,  422,  423,  424,  425,  426,
1161     427,  428,  429,  430,  439,  431,  440,  432,  434,  441,
1162     435,  436,  436,  442,  443,  444,  445,  437,  446,  438,
1163 
1164     447,  448,  449,  450,  451,  452,  453,  454,  455,  439,
1165     456,  440,  458,  459,  441,  460,  436,  436,  442,  443,
1166     444,  445,  461,  446,  462,  447,  448,  449,  450,  451,
1167     452,  453,  454,  455,  463,  456,  465,  458,  459,  466,
1168     460,  467,  468,  469,  471,  467,  473,  461,  474,  462,
1169     475,  476,  477,  478,  479,  480,  481,  483,  484,  463,
1170     485,  465,  486,  487,  466,  488,  467,  468,  469,  471,
1171     467,  473,  489,  474,  490,  475,  476,  477,  478,  479,
1172     480,  481,  483,  484,  491,  485,  492,  486,  487,  494,
1173     488,  495,  497,  499,  500,  501,  502,  489,  503,  490,
1174 
1175     504,  507,  508,  510,  512,  513,  514,  515,  516,  491,
1176     517,  492,  519,  520,  494,  521,  495,  497,  499,  500,
1177     501,  502,  523,  503,  524,  504,  507,  508,  510,  512,
1178     513,  514,  515,  516,  525,  517,  526,  519,  520,  527,
1179     521,  528,  529,  530,  532,  533,  534,  523,  536,  524,
1180     537,  538,  539,  540,  541,  543,  544,  545,  546,  525,
1181     547,  526,  550,  551,  527,  552,  528,  529,  530,  532,
1182     533,  534,  553,  536,  555,  537,  538,  539,  540,  541,
1183     543,  544,  545,  546,  556,  547,  557,  550,  551,  558,
1184     552,  559,  562,  563,  564,  566,  567,  553,  568,  555,
1185 
1186     570,  571,  572,  573,  574,  576,  577,  578,  579,  556,
1187     580,  557,  581,  582,  558,  584,  559,  562,  563,  564,
1188     566,  567,  587,  568,  588,  570,  571,  572,  573,  574,
1189     576,  577,  578,  579,  589,  580,  590,  581,  582,  592,
1190     584,  595,  596,  597,  598,  599,  600,  587,  601,  588,
1191     602,  596,  603,  604,  605,  606,  607,  608,  609,  589,
1192     612,  590,  613,    0,  592,  618,  595,  596,  597,  598,
1193     599,  600,  619,  601,  620,  602,  596,  603,  604,  605,
1194     606,  607,  608,  609,  610,  612,  621,  613,  610,  622,
1195     618,  610,  624,  625,  626,  627,  628,  619,  631,  620,
1196 
1197     632,  633,  634,  638,  639,  640,  643,  644,  645,  610,
1198     647,  621,  649,  610,  622,  650,  610,  624,  625,  626,
1199     627,  628,  652,  631,  654,  632,  633,  634,  638,  639,
1200     640,  643,  644,  645,  655,  647,  656,  649,  658,  659,
1201     650,  660,  662,  664,  667,  668,  670,  652,  671,  654,
1202     672,  673,  674,  675,  676,  678,  679,  681,  682,  655,
1203     683,  656,  687,  658,  659,  686,  660,  662,  664,  667,
1204     668,  670,  688,  671,  689,  672,  673,  674,  675,  676,
1205     678,  679,  681,  682,  686,  683,  690,  687,  691,  693,
1206     686,  695,  696,  698,  699,  701,  702,  688,  703,  689,
1207 
1208     704,  707,  709,  710,  711,  712,  713,  714,  715,  686,
1209     716,  690,  717,  691,  693,  718,  695,  696,  698,  699,
1210     701,  702,  720,  703,  721,  704,  707,  709,  710,  711,
1211     712,  713,  714,  715,  719,  716,  722,  717,  723,  724,
1212     718,  725,  719,  719,  719,  726,  727,  720,  729,  721,
1213     730,  731,  719,  733,  735,  736,  737,  738,  739,  719,
1214     740,  722,  741,  723,  724,  742,  725,  719,  719,  719,
1215     726,  727,  743,  729,  744,  730,  731,  719,  733,  735,
1216     736,  737,  738,  739,  745,  740,  747,  741,  748,  750,
1217     742,  751,  753,  754,  755,  757,  758,  743,  759,  744,
1218 
1219     761,  763,  765,  767,  768,  769,  773,  774,  775,  745,
1220     776,  747,  779,  748,  750,  780,  751,  753,  754,  755,
1221     757,  758,  781,  759,  782,  761,  763,  765,  767,  768,
1222     769,  773,  774,  775,  783,  776,  784,  779,  786,  788,
1223     780,  789,  790,  792,  793,  794,  796,  781,  798,  782,
1224     799,  801,  802,  803,  804,  805,  806,  807,  808,  783,
1225     809,  784,  802,  786,  788,  810,  789,  790,  792,  793,
1226     794,  796,  811,  798,  812,  799,  801,  802,  803,  804,
1227     805,  806,  807,  808,  813,  809,  814,  802,  815,  816,
1228     810,  817,  818,  821,  823,  824,  826,  811,  827,  812,
1229 
1230     828,  830,  831,  832,  833,  834,  842,  843,  844,  813,
1231     846,  814,  848,  815,  816,  849,  817,  818,  821,  823,
1232     824,  826,  850,  827,  854,  828,  830,  831,  832,  833,
1233     834,  842,  843,  844,  856,  846,  859,  848,  860,  861,
1234     849,  865,  866,  867,  868,  869,  870,  850,  871,  854,
1235     872,  873,  874,  876,  878,  879,  880,  883,  884,  856,
1236     885,  859,  889,  860,  861,  891,  865,  866,  867,  868,
1237     869,  870,  892,  871,  893,  872,  873,  874,  876,  878,
1238     879,  880,  883,  884,  895,  885,  896,  889,  897,  898,
1239     891,  900,  901,  893,  906,  907,  909,  892,  910,  893,
1240 
1241     911,  912,  913,  914,  915,  917,  920,  922,  923,  895,
1242     924,  896,  927,  897,  898,  928,  900,  901,  893,  906,
1243     907,  909,  929,  910,  931,  911,  912,  913,  914,  915,
1244     917,  920,  922,  923,  935,  924,  936,  927,  938,  940,
1245     928,  941,  942,  943,  945,  947,  948,  929,  950,  931,
1246     951,  952,  954,  956,  958,  960,  963,  964,  965,  935,
1247     966,  936,  968,  938,  940,  969,  941,  942,  943,  945,
1248     947,  948,  970,  950,  972,  951,  952,  954,  956,  958,
1249     960,  963,  964,  965,  974,  966,  979,  968,    0,    0,
1250     969,    0,    0,    0,    0,    0,    0,  970,    0,  972,
1251 
1252     0,    0,    0,    0,    0,    0,    0,    0,    0,  974,
1253     0,  979,  981,  981,  981,  981,  981,  981,  981,  981,
1254     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
1255     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
1256     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
1257     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
1258     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
1259     981,  981,  981,  981,  981,  981,  981,  981,  981,  981,
1260     981,  981
1261 };
1262 
1263 static yyconst flex_int16_t yy_rule_linenum[202] = {
1264     0,
1265     89,   90,   91,   92,   93,   95,   96,   97,   98,  100,
1266     102,  106,  107,  108,  109,  110,  111,  112,  113,  114,
1267     115,  116,  117,  118,  119,  120,  122,  123,  124,  125,
1268     126,  127,  128,  129,  131,  132,  133,  134,  135,  136,
1269     137,  138,  140,  141,  143,  144,  145,  146,  147,  148,
1270     149,  150,  151,  152,  153,  155,  156,  158,  159,  160,
1271     161,  162,  163,  164,  165,  166,  167,  168,  169,  171,
1272     172,  173,  174,  175,  176,  177,  179,  181,  182,  183,
1273     184,  185,  186,  187,  188,  189,  190,  191,  192,  193,
1274     195,  196,  197,  198,  199,  200,  201,  203,  205,  206,
1275 
1276     207,  208,  209,  210,  211,  212,  213,  214,  215,  216,
1277     217,  219,  220,  221,  222,  223,  224,  225,  227,  229,
1278     230,  231,  232,  233,  234,  235,  236,  237,  238,  239,
1279     240,  241,  242,  244,  245,  246,  247,  248,  249,  250,
1280     252,  254,  255,  256,  257,  258,  259,  260,  261,  262,
1281     263,  264,  265,  267,  268,  269,  270,  271,  272,  273,
1282     275,  277,  278,  279,  280,  281,  282,  283,  284,  285,
1283     286,  287,  288,  290,  291,  292,  293,  294,  295,  296,
1284     298,  300,  301,  302,  303,  304,  305,  306,  307,  308,
1285     309,  310,  311,  313,  314,  315,  316,  317,  318,  319,
1286 
1287     321
1288 };
1289 
1290 /* The intent behind this definition is that it'll catch
1291  * any uses of REJECT which flex missed.
1292  */
1293 #define REJECT reject_used_but_not_detected
1294 #define yymore() yymore_used_but_not_detected
1295 #define YY_MORE_ADJ 0
1296 #define YY_RESTORE_YY_MORE_OFFSET
1297 #line 1 "holidayscannerplan.lpp"
1298 /*
1299     Original version from plan:
1300         SPDX-FileCopyrightText: Thomas Driemeyer <thomas@bitrot.de>
1301 
1302     Adapted for use in KOrganizer:
1303         SPDX-FileCopyrightText: Preston Brown <pbrown@kde.org> and
1304         SPDX-FileCopyrightText: Reinhold Kainhofer <reinhold@kainhofer.com>
1305 
1306     Major rewrite using Bison C++ skeleton:
1307         SPDX-FileCopyrightText: 2010 John Layt <john@layt.net>
1308 
1309     SPDX-License-Identifier: LGPL-2.0-or-later
1310 */
1311 #line 28 "holidayscannerplan.lpp"
1312 # include <cstdlib>
1313 # include <errno.h>
1314 # include <limits.h>
1315 # include <string>
1316 
1317 # include <kholidays_debug.h>
1318 
1319 # include "holidayscannerplan_p.h"
1320 # include "holidayparserdriverplan_p.h"
1321 # include "holidayparserplan.hpp"
1322 
1323 /* import the parser's token type into a local typedef */
1324 typedef KHolidays::HolidayParserPlan::token token;
1325 typedef KHolidays::HolidayParserPlan::token_type token_type;
1326 
1327 /* By default yylex returns int, we use token_type. Unfortunately yyterminate
1328  * by default returns 0, which is not of token_type. */
1329 # define yyterminate() return token::END
1330 
1331 /* This disables inclusion of unistd.h, which is not available under Visual C++
1332  * on Win32. The C++ scanner uses STL streams instead. */
1333 # define YY_NO_UNISTD_H
1334 /*** Flex Declarations and Options ***/
1335 /* enable c++ scanner class generation */
1336 /* change the name of the scanner class. results in "HolidayScannerFlexLexer" */
1337 /* the manual says "somewhat more optimized" */
1338 /* enable scanner to generate debug output. disable this for release
1339  * versions. */
1340 /* no support for include files is planned */
1341 /* enables the use of start condition stacks */
1342 /* The following paragraph suffices to track locations accurately. Each time
1343  * yylex is invoked, the begin position is moved onto the end position. */
1344 #line 78 "holidayscannerplan.lpp"
1345 # define YY_USER_ACTION  yylloc->columns( yyleng );
1346 #line 1359 "holidayscannerplan.cpp"
1347 
1348 #define INITIAL 0
1349 
1350 #ifndef YY_NO_UNISTD_H
1351 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1352  * down here because we want the user's section 1 to have been scanned first.
1353  * The user has a chance to override it with an option.
1354  */
1355 /* %if-c-only */
1356 /* %endif */
1357 /* %if-c++-only */
1358 #include <unistd.h>
1359 /* %endif */
1360 #endif
1361 
1362 #ifndef YY_EXTRA_TYPE
1363 #define YY_EXTRA_TYPE void *
1364 #endif
1365 
1366 /* %if-c-only Reentrant structure and macros (non-C++). */
1367 /* %if-reentrant */
1368 /* %if-c-only */
1369 /* %endif */
1370 /* %if-reentrant */
1371 /* %endif */
1372 /* %endif End reentrant structures and macros. */
1373 /* %if-bison-bridge */
1374 /* %endif */
1375 /* %not-for-header */
1376 
1377 /* %ok-for-header */
1378 
1379 /* %endif */
1380 
1381 #ifndef yytext_ptr
1382 static void yy_flex_strncpy(char *, yyconst char *, int);
1383 #endif
1384 
1385 #ifdef YY_NEED_STRLEN
1386 static int yy_flex_strlen(yyconst char *);
1387 #endif
1388 
1389 #ifndef YY_NO_INPUT
1390 /* %if-c-only Standard (non-C++) definition */
1391 /* %not-for-header */
1392 
1393 /* %ok-for-header */
1394 
1395 /* %endif */
1396 #endif
1397 
1398 /* %if-c-only */
1399 /* %endif */
1400 
1401 /* Amount of stuff to slurp up with each read. */
1402 #ifndef YY_READ_BUF_SIZE
1403 #ifdef __ia64__
1404 /* On IA-64, the buffer size is 16k, not 8k */
1405 #define YY_READ_BUF_SIZE 16384
1406 #else
1407 #define YY_READ_BUF_SIZE 8192
1408 #endif /* __ia64__ */
1409 #endif
1410 
1411 /* Copy whatever the last rule matched to the standard output. */
1412 #ifndef ECHO
1413 /* %if-c-only Standard (non-C++) definition */
1414 /* %endif */
1415 /* %if-c++-only C++ definition */
1416 #define ECHO LexerOutput( yytext, yyleng )
1417 /* %endif */
1418 #endif
1419 
1420 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1421  * is returned in "result".
1422  */
1423 #ifndef YY_INPUT
1424 #define YY_INPUT(buf,result,max_size) \
1425     /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
1426     \
1427     /* %if-c++-only C++ definition \ */\
1428     if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \
1429         YY_FATAL_ERROR( "input in flex scanner failed" );
1430 /* %endif */
1431 
1432 #endif
1433 
1434 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1435  * we don't want an extra ';' after the "return" because that will cause
1436  * some compilers to complain about unreachable statements.
1437  */
1438 #ifndef yyterminate
1439 #define yyterminate() return YY_NULL
1440 #endif
1441 
1442 /* Number of entries by which start-condition stack grows. */
1443 #ifndef YY_START_STACK_INCR
1444 #define YY_START_STACK_INCR 25
1445 #endif
1446 
1447 /* Report a fatal error. */
1448 #ifndef YY_FATAL_ERROR
1449 /* %if-c-only */
1450 /* %endif */
1451 /* %if-c++-only */
1452 #define YY_FATAL_ERROR(msg) LexerError( msg )
1453 /* %endif */
1454 #endif
1455 
1456 /* %if-tables-serialization structures and prototypes */
1457 /* %not-for-header */
1458 
1459 /* %ok-for-header */
1460 
1461 /* %not-for-header */
1462 
1463 /* %tables-yydmap generated elements */
1464 /* %endif */
1465 /* end tables serialization structures and prototypes */
1466 
1467 /* %ok-for-header */
1468 
1469 /* Default declaration of generated scanner - a define so the user can
1470  * easily add parameters.
1471  */
1472 #ifndef YY_DECL
1473 #define YY_DECL_IS_OURS 1
1474 /* %if-c-only Standard (non-C++) definition */
1475 /* %endif */
1476 /* %if-c++-only C++ definition */
1477 #define YY_DECL int yyFlexLexer::yylex()
1478 /* %endif */
1479 #endif /* !YY_DECL */
1480 
1481 /* Code executed at the beginning of each rule, after yytext and yyleng
1482  * have been set up.
1483  */
1484 #ifndef YY_USER_ACTION
1485 #define YY_USER_ACTION
1486 #endif
1487 
1488 /* Code executed at the end of each rule. */
1489 #ifndef YY_BREAK
1490 #define YY_BREAK break;
1491 #endif
1492 
1493 /* %% [6.0] YY_RULE_SETUP definition goes here */
1494 #define YY_RULE_SETUP \
1495     if ( yyleng > 0 ) \
1496         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1497                                               (yytext[yyleng - 1] == '\n'); \
1498     YY_USER_ACTION
1499 
1500 /* %not-for-header */
1501 
1502 /** The main scanner function which does all the work.
1503  */
1504 YY_DECL {
1505     yy_state_type yy_current_state;
1506     char *yy_cp, *yy_bp;
1507     int yy_act;
1508 
1509     /* %% [7.0] user's declarations go here */
1510 #line 81 "holidayscannerplan.lpp"
1511 
1512     /* code to place at the beginning of yylex() */
1513     // reset location
1514     yylloc->step();
1515 
1516 #line 1533 "holidayscannerplan.cpp"
1517 
1518     if (!(yy_init))
1519     {
1520         (yy_init) = 1;
1521 
1522 #ifdef YY_USER_INIT
1523         YY_USER_INIT;
1524 #endif
1525 
1526         if (!(yy_start)) {
1527             (yy_start) = 1;    /* first start state */
1528         }
1529 
1530         if (! yyin)
1531             /* %if-c-only */
1532             /* %endif */
1533             /* %if-c++-only */
1534         {
1535             yyin = & std::cin;
1536         }
1537         /* %endif */
1538 
1539         if (! yyout)
1540             /* %if-c-only */
1541             /* %endif */
1542             /* %if-c++-only */
1543         {
1544             yyout = & std::cout;
1545         }
1546         /* %endif */
1547 
1548         if (! YY_CURRENT_BUFFER) {
1549             yyensure_buffer_stack();
1550             YY_CURRENT_BUFFER_LVALUE =
1551                 yy_create_buffer(yyin, YY_BUF_SIZE);
1552         }
1553 
1554         yy_load_buffer_state();
1555     }
1556 
1557     while (1)        /* loops until end-of-file is reached */
1558     {
1559         /* %% [8.0] yymore()-related code goes here */
1560         yy_cp = (yy_c_buf_p);
1561 
1562         /* Support of yytext. */
1563         *yy_cp = (yy_hold_char);
1564 
1565         /* yy_bp points to the position in yy_ch_buf of the start of
1566          * the current run.
1567          */
1568         yy_bp = yy_cp;
1569 
1570         /* %% [9.0] code to set up and find next match goes here */
1571         yy_current_state = (yy_start);
1572         yy_current_state += YY_AT_BOL();
1573     yy_match:
1574         do {
1575             YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1576             if (yy_accept[yy_current_state]) {
1577                 (yy_last_accepting_state) = yy_current_state;
1578                 (yy_last_accepting_cpos) = yy_cp;
1579             }
1580             while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) {
1581                 yy_current_state = (int) yy_def[yy_current_state];
1582                 if (yy_current_state >= 982) {
1583                     yy_c = yy_meta[(unsigned int) yy_c];
1584                 }
1585             }
1586             yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1587             ++yy_cp;
1588         } while (yy_current_state != 981);
1589         yy_cp = (yy_last_accepting_cpos);
1590         yy_current_state = (yy_last_accepting_state);
1591 
1592     yy_find_action:
1593         /* %% [10.0] code to find the action number goes here */
1594         yy_act = yy_accept[yy_current_state];
1595 
1596         YY_DO_BEFORE_ACTION;
1597 
1598         /* %% [11.0] code for yylineno update goes here */
1599 
1600     do_action:  /* This label is used only to access EOF actions. */
1601 
1602         /* %% [12.0] debug code goes here */
1603         if (yy_flex_debug) {
1604             if (yy_act == 0) {
1605                 std::cerr << "--scanner backing up\n";
1606             } else if (yy_act < 202)
1607                 std::cerr << "--accepting rule at line " << yy_rule_linenum[yy_act] <<
1608                           "(\"" << yytext << "\")\n";
1609             else if (yy_act == 202) {
1610                 std::cerr << "--accepting default rule (\"" << yytext << "\")\n";
1611             } else if (yy_act == 203) {
1612                 std::cerr << "--(end of buffer or a NUL)\n";
1613             } else {
1614                 std::cerr << "--EOF (start condition " << YY_START << ")\n";
1615             }
1616         }
1617 
1618         switch (yy_act) {
1619         /* beginning of action switch */
1620         /* %% [13.0] actions go here */
1621         case 0: /* must back up */
1622             /* undo the effects of YY_DO_BEFORE_ACTION */
1623             *yy_cp = (yy_hold_char);
1624             yy_cp = (yy_last_accepting_cpos);
1625             yy_current_state = (yy_last_accepting_state);
1626             goto yy_find_action;
1627 
1628         case 1:
1629             /* rule 1 can match eol */
1630             YY_RULE_SETUP
1631 #line 89 "holidayscannerplan.lpp"
1632             { yylloc->lines(yyleng); yylloc->step(); }
1633             YY_BREAK
1634         case 2:
1635             /* rule 2 can match eol */
1636             YY_RULE_SETUP
1637 #line 90 "holidayscannerplan.lpp"
1638             { yylloc->lines(yyleng); yylloc->step(); }
1639             YY_BREAK
1640         case 3:
1641             YY_RULE_SETUP
1642 #line 91 "holidayscannerplan.lpp"
1643             { yylloc->step(); }
1644             YY_BREAK
1645         case 4:
1646             /* rule 4 can match eol */
1647             YY_RULE_SETUP
1648 #line 92 "holidayscannerplan.lpp"
1649             { yylloc->lines(yyleng); yylloc->step(); }
1650             YY_BREAK
1651         case 5:
1652             YY_RULE_SETUP
1653 #line 93 "holidayscannerplan.lpp"
1654             { return KHolidays::HolidayParserPlan::token_type(*yytext); }
1655             YY_BREAK
1656         case 6:
1657             YY_RULE_SETUP
1658 #line 95 "holidayscannerplan.lpp"
1659             { return token::COUNTRY; }
1660             YY_BREAK
1661         case 7:
1662             YY_RULE_SETUP
1663 #line 96 "holidayscannerplan.lpp"
1664             { return token::LANGUAGE; }
1665             YY_BREAK
1666         case 8:
1667             YY_RULE_SETUP
1668 #line 97 "holidayscannerplan.lpp"
1669             { return token::NAME; }
1670             YY_BREAK
1671         case 9:
1672             YY_RULE_SETUP
1673 #line 98 "holidayscannerplan.lpp"
1674             { return token::DESCRIPTION; }
1675             YY_BREAK
1676         case 10:
1677             YY_RULE_SETUP
1678 #line 100 "holidayscannerplan.lpp"
1679             { yylval->ival = atoi(yytext); return token::NUMBER; }
1680             YY_BREAK
1681         case 11:
1682             /* rule 11 can match eol */
1683             YY_RULE_SETUP
1684 #line 102 "holidayscannerplan.lpp"
1685             {
1686                 yylval->sval = strdup(yytext + 1);
1687                 yylval->sval[ strlen(yylval->sval) - 1 ] = 0;
1688                 return token::STRING;
1689             }
1690             YY_BREAK
1691         case 12:
1692             YY_RULE_SETUP
1693 #line 106 "holidayscannerplan.lpp"
1694             ;
1695             YY_BREAK
1696         case 13:
1697             YY_RULE_SETUP
1698 #line 107 "holidayscannerplan.lpp"
1699             ;
1700             YY_BREAK
1701         case 14:
1702             YY_RULE_SETUP
1703 #line 108 "holidayscannerplan.lpp"
1704             ;
1705             YY_BREAK
1706         case 15:
1707             YY_RULE_SETUP
1708 #line 109 "holidayscannerplan.lpp"
1709             ;
1710             YY_BREAK
1711         case 16:
1712             YY_RULE_SETUP
1713 #line 110 "holidayscannerplan.lpp"
1714             ;
1715             YY_BREAK
1716         case 17:
1717             YY_RULE_SETUP
1718 #line 111 "holidayscannerplan.lpp"
1719             { return token::INOP; }
1720             YY_BREAK
1721         case 18:
1722             YY_RULE_SETUP
1723 #line 112 "holidayscannerplan.lpp"
1724             { return token::IF; }
1725             YY_BREAK
1726         case 19:
1727             YY_RULE_SETUP
1728 #line 113 "holidayscannerplan.lpp"
1729             { return token::PLUS; }
1730             YY_BREAK
1731         case 20:
1732             YY_RULE_SETUP
1733 #line 114 "holidayscannerplan.lpp"
1734             { return token::MINUS; }
1735             YY_BREAK
1736         case 21:
1737             YY_RULE_SETUP
1738 #line 115 "holidayscannerplan.lpp"
1739             { return token::YEAR; }
1740             YY_BREAK
1741         case 22:
1742             YY_RULE_SETUP
1743 #line 116 "holidayscannerplan.lpp"
1744             { return token::LEAPYEAR; }
1745             YY_BREAK
1746         case 23:
1747             YY_RULE_SETUP
1748 #line 117 "holidayscannerplan.lpp"
1749             { return token::EASTER; }
1750             YY_BREAK
1751         case 24:
1752             YY_RULE_SETUP
1753 #line 118 "holidayscannerplan.lpp"
1754             { return token::PASCHA; }
1755             YY_BREAK
1756         case 25:
1757             YY_RULE_SETUP
1758 #line 119 "holidayscannerplan.lpp"
1759             { return token::LENGTH; }
1760             YY_BREAK
1761         case 26:
1762             YY_RULE_SETUP
1763 #line 120 "holidayscannerplan.lpp"
1764             { return token::SHIFT; }
1765             YY_BREAK
1766         case 27:
1767             YY_RULE_SETUP
1768 #line 122 "holidayscannerplan.lpp"
1769             { return token::EQ; }
1770             YY_BREAK
1771         case 28:
1772             YY_RULE_SETUP
1773 #line 123 "holidayscannerplan.lpp"
1774             { return token::NE; }
1775             YY_BREAK
1776         case 29:
1777             YY_RULE_SETUP
1778 #line 124 "holidayscannerplan.lpp"
1779             { return token::LE; }
1780             YY_BREAK
1781         case 30:
1782             YY_RULE_SETUP
1783 #line 125 "holidayscannerplan.lpp"
1784             { return token::GE; }
1785             YY_BREAK
1786         case 31:
1787             YY_RULE_SETUP
1788 #line 126 "holidayscannerplan.lpp"
1789             { return token::LT; }
1790             YY_BREAK
1791         case 32:
1792             YY_RULE_SETUP
1793 #line 127 "holidayscannerplan.lpp"
1794             { return token::GT; }
1795             YY_BREAK
1796         case 33:
1797             YY_RULE_SETUP
1798 #line 128 "holidayscannerplan.lpp"
1799             { return token::AND;}
1800             YY_BREAK
1801         case 34:
1802             YY_RULE_SETUP
1803 #line 129 "holidayscannerplan.lpp"
1804             { return token::OR; }
1805             YY_BREAK
1806         case 35:
1807             YY_RULE_SETUP
1808 #line 131 "holidayscannerplan.lpp"
1809             { yylval->ival =      1; return token::NUMBER; }
1810             YY_BREAK
1811         case 36:
1812             YY_RULE_SETUP
1813 #line 132 "holidayscannerplan.lpp"
1814             { yylval->ival =      2; return token::NUMBER; }
1815             YY_BREAK
1816         case 37:
1817             YY_RULE_SETUP
1818 #line 133 "holidayscannerplan.lpp"
1819             { yylval->ival =      3; return token::NUMBER; }
1820             YY_BREAK
1821         case 38:
1822             YY_RULE_SETUP
1823 #line 134 "holidayscannerplan.lpp"
1824             { yylval->ival =      4; return token::NUMBER; }
1825             YY_BREAK
1826         case 39:
1827             YY_RULE_SETUP
1828 #line 135 "holidayscannerplan.lpp"
1829             { yylval->ival =      5; return token::NUMBER; }
1830             YY_BREAK
1831         case 40:
1832             YY_RULE_SETUP
1833 #line 136 "holidayscannerplan.lpp"
1834             { yylval->ival =  99999; return token::NUMBER; }
1835             YY_BREAK
1836         case 41:
1837             YY_RULE_SETUP
1838 #line 137 "holidayscannerplan.lpp"
1839             { yylval->ival = -99999; return token::NUMBER; }
1840             YY_BREAK
1841         case 42:
1842             YY_RULE_SETUP
1843 #line 138 "holidayscannerplan.lpp"
1844             { yylval->ival =      0; return token::NUMBER; }
1845             YY_BREAK
1846         case 43:
1847             YY_RULE_SETUP
1848 #line 140 "holidayscannerplan.lpp"
1849             { yylval->ival =  -1; return token::NUMBER; }
1850             YY_BREAK
1851         case 44:
1852             YY_RULE_SETUP
1853 #line 141 "holidayscannerplan.lpp"
1854             { yylval->ival =   1; return token::NUMBER; }
1855             YY_BREAK
1856         case 45:
1857             YY_RULE_SETUP
1858 #line 143 "holidayscannerplan.lpp"
1859             { yylval->sval = (char *)"public"; return token::CATEGORY; }
1860             YY_BREAK
1861         case 46:
1862             YY_RULE_SETUP
1863 #line 144 "holidayscannerplan.lpp"
1864             { yylval->sval = (char *)"civil"; return token::CATEGORY; }
1865             YY_BREAK
1866         case 47:
1867             YY_RULE_SETUP
1868 #line 145 "holidayscannerplan.lpp"
1869             { yylval->sval = (char *)"religious"; return token::CATEGORY; }
1870             YY_BREAK
1871         case 48:
1872             YY_RULE_SETUP
1873 #line 146 "holidayscannerplan.lpp"
1874             { yylval->sval = (char *)"school"; return token::CATEGORY; }
1875             YY_BREAK
1876         case 49:
1877             YY_RULE_SETUP
1878 #line 147 "holidayscannerplan.lpp"
1879             { yylval->sval = (char *)"government"; return token::CATEGORY; }
1880             YY_BREAK
1881         case 50:
1882             YY_RULE_SETUP
1883 #line 148 "holidayscannerplan.lpp"
1884             { yylval->sval = (char *)"financial"; return token::CATEGORY; }
1885             YY_BREAK
1886         case 51:
1887             YY_RULE_SETUP
1888 #line 149 "holidayscannerplan.lpp"
1889             { yylval->sval = (char *)"cultural"; return token::CATEGORY; }
1890             YY_BREAK
1891         case 52:
1892             YY_RULE_SETUP
1893 #line 150 "holidayscannerplan.lpp"
1894             { yylval->sval = (char *)"commemorative"; return token::CATEGORY; }
1895             YY_BREAK
1896         case 53:
1897             YY_RULE_SETUP
1898 #line 151 "holidayscannerplan.lpp"
1899             { yylval->sval = (char *)"historical"; return token::CATEGORY; }
1900             YY_BREAK
1901         case 54:
1902             YY_RULE_SETUP
1903 #line 152 "holidayscannerplan.lpp"
1904             { yylval->sval = (char *)"nameday"; return token::CATEGORY; }
1905             YY_BREAK
1906         case 55:
1907             YY_RULE_SETUP
1908 #line 153 "holidayscannerplan.lpp"
1909             { yylval->sval = (char *)"seasonal"; return token::CATEGORY; }
1910             YY_BREAK
1911         case 56:
1912             YY_RULE_SETUP
1913 #line 155 "holidayscannerplan.lpp"
1914             { yylval->sval = (char *)"gregorian"; return token::CALENDAR; }
1915             YY_BREAK
1916         case 57:
1917             YY_RULE_SETUP
1918 #line 156 "holidayscannerplan.lpp"
1919             { yylval->sval = (char *)"julian"; return token::CALENDAR; }
1920             YY_BREAK
1921         case 58:
1922             YY_RULE_SETUP
1923 #line 158 "holidayscannerplan.lpp"
1924             { yylval->ival =   1; return token::MONTH; }
1925             YY_BREAK
1926         case 59:
1927             YY_RULE_SETUP
1928 #line 159 "holidayscannerplan.lpp"
1929             { yylval->ival =   2; return token::MONTH; }
1930             YY_BREAK
1931         case 60:
1932             YY_RULE_SETUP
1933 #line 160 "holidayscannerplan.lpp"
1934             { yylval->ival =   3; return token::MONTH; }
1935             YY_BREAK
1936         case 61:
1937             YY_RULE_SETUP
1938 #line 161 "holidayscannerplan.lpp"
1939             { yylval->ival =   4; return token::MONTH; }
1940             YY_BREAK
1941         case 62:
1942             YY_RULE_SETUP
1943 #line 162 "holidayscannerplan.lpp"
1944             { yylval->ival =   5; return token::MONTH; }
1945             YY_BREAK
1946         case 63:
1947             YY_RULE_SETUP
1948 #line 163 "holidayscannerplan.lpp"
1949             { yylval->ival =   6; return token::MONTH; }
1950             YY_BREAK
1951         case 64:
1952             YY_RULE_SETUP
1953 #line 164 "holidayscannerplan.lpp"
1954             { yylval->ival =   7; return token::MONTH; }
1955             YY_BREAK
1956         case 65:
1957             YY_RULE_SETUP
1958 #line 165 "holidayscannerplan.lpp"
1959             { yylval->ival =   8; return token::MONTH; }
1960             YY_BREAK
1961         case 66:
1962             YY_RULE_SETUP
1963 #line 166 "holidayscannerplan.lpp"
1964             { yylval->ival =   9; return token::MONTH; }
1965             YY_BREAK
1966         case 67:
1967             YY_RULE_SETUP
1968 #line 167 "holidayscannerplan.lpp"
1969             { yylval->ival =  10; return token::MONTH; }
1970             YY_BREAK
1971         case 68:
1972             YY_RULE_SETUP
1973 #line 168 "holidayscannerplan.lpp"
1974             { yylval->ival =  11; return token::MONTH; }
1975             YY_BREAK
1976         case 69:
1977             YY_RULE_SETUP
1978 #line 169 "holidayscannerplan.lpp"
1979             { yylval->ival =  12; return token::MONTH; }
1980             YY_BREAK
1981         case 70:
1982             YY_RULE_SETUP
1983 #line 171 "holidayscannerplan.lpp"
1984             { yylval->ival =   1; return token::WDAY; }
1985             YY_BREAK
1986         case 71:
1987             YY_RULE_SETUP
1988 #line 172 "holidayscannerplan.lpp"
1989             { yylval->ival =   2; return token::WDAY; }
1990             YY_BREAK
1991         case 72:
1992             YY_RULE_SETUP
1993 #line 173 "holidayscannerplan.lpp"
1994             { yylval->ival =   3; return token::WDAY; }
1995             YY_BREAK
1996         case 73:
1997             YY_RULE_SETUP
1998 #line 174 "holidayscannerplan.lpp"
1999             { yylval->ival =   4; return token::WDAY; }
2000             YY_BREAK
2001         case 74:
2002             YY_RULE_SETUP
2003 #line 175 "holidayscannerplan.lpp"
2004             { yylval->ival =   5; return token::WDAY; }
2005             YY_BREAK
2006         case 75:
2007             YY_RULE_SETUP
2008 #line 176 "holidayscannerplan.lpp"
2009             { yylval->ival =   6; return token::WDAY; }
2010             YY_BREAK
2011         case 76:
2012             YY_RULE_SETUP
2013 #line 177 "holidayscannerplan.lpp"
2014             { yylval->ival =   7; return token::WDAY; }
2015             YY_BREAK
2016         case 77:
2017             YY_RULE_SETUP
2018 #line 179 "holidayscannerplan.lpp"
2019             { yylval->sval = (char *)"coptic"; return token::CALENDAR; }
2020             YY_BREAK
2021         case 78:
2022             YY_RULE_SETUP
2023 #line 181 "holidayscannerplan.lpp"
2024             { yylval->ival =   1; return token::MONTH; }
2025             YY_BREAK
2026         case 79:
2027             YY_RULE_SETUP
2028 #line 182 "holidayscannerplan.lpp"
2029             { yylval->ival =   2; return token::MONTH; }
2030             YY_BREAK
2031         case 80:
2032             YY_RULE_SETUP
2033 #line 183 "holidayscannerplan.lpp"
2034             { yylval->ival =   3; return token::MONTH; }
2035             YY_BREAK
2036         case 81:
2037             YY_RULE_SETUP
2038 #line 184 "holidayscannerplan.lpp"
2039             { yylval->ival =   4; return token::MONTH; }
2040             YY_BREAK
2041         case 82:
2042             YY_RULE_SETUP
2043 #line 185 "holidayscannerplan.lpp"
2044             { yylval->ival =   5; return token::MONTH; }
2045             YY_BREAK
2046         case 83:
2047             YY_RULE_SETUP
2048 #line 186 "holidayscannerplan.lpp"
2049             { yylval->ival =   6; return token::MONTH; }
2050             YY_BREAK
2051         case 84:
2052             YY_RULE_SETUP
2053 #line 187 "holidayscannerplan.lpp"
2054             { yylval->ival =   7; return token::MONTH; }
2055             YY_BREAK
2056         case 85:
2057             YY_RULE_SETUP
2058 #line 188 "holidayscannerplan.lpp"
2059             { yylval->ival =   8; return token::MONTH; }
2060             YY_BREAK
2061         case 86:
2062             YY_RULE_SETUP
2063 #line 189 "holidayscannerplan.lpp"
2064             { yylval->ival =   9; return token::MONTH; }
2065             YY_BREAK
2066         case 87:
2067             YY_RULE_SETUP
2068 #line 190 "holidayscannerplan.lpp"
2069             { yylval->ival =  10; return token::MONTH; }
2070             YY_BREAK
2071         case 88:
2072             YY_RULE_SETUP
2073 #line 191 "holidayscannerplan.lpp"
2074             { yylval->ival =  11; return token::MONTH; }
2075             YY_BREAK
2076         case 89:
2077             YY_RULE_SETUP
2078 #line 192 "holidayscannerplan.lpp"
2079             { yylval->ival =  12; return token::MONTH; }
2080             YY_BREAK
2081         case 90:
2082             YY_RULE_SETUP
2083 #line 193 "holidayscannerplan.lpp"
2084             { yylval->ival =  13; return token::MONTH; }
2085             YY_BREAK
2086         case 91:
2087             YY_RULE_SETUP
2088 #line 195 "holidayscannerplan.lpp"
2089             { yylval->ival =   1; return token::WDAY; }
2090             YY_BREAK
2091         case 92:
2092             YY_RULE_SETUP
2093 #line 196 "holidayscannerplan.lpp"
2094             { yylval->ival =   2; return token::WDAY; }
2095             YY_BREAK
2096         case 93:
2097             YY_RULE_SETUP
2098 #line 197 "holidayscannerplan.lpp"
2099             { yylval->ival =   3; return token::WDAY; }
2100             YY_BREAK
2101         case 94:
2102             YY_RULE_SETUP
2103 #line 198 "holidayscannerplan.lpp"
2104             { yylval->ival =   4; return token::WDAY; }
2105             YY_BREAK
2106         case 95:
2107             YY_RULE_SETUP
2108 #line 199 "holidayscannerplan.lpp"
2109             { yylval->ival =   5; return token::WDAY; }
2110             YY_BREAK
2111         case 96:
2112             YY_RULE_SETUP
2113 #line 200 "holidayscannerplan.lpp"
2114             { yylval->ival =   6; return token::WDAY; }
2115             YY_BREAK
2116         case 97:
2117             YY_RULE_SETUP
2118 #line 201 "holidayscannerplan.lpp"
2119             { yylval->ival =   7; return token::WDAY; }
2120             YY_BREAK
2121         case 98:
2122             YY_RULE_SETUP
2123 #line 203 "holidayscannerplan.lpp"
2124             { yylval->sval = (char *)"ethiopian"; return token::CALENDAR; }
2125             YY_BREAK
2126         case 99:
2127             YY_RULE_SETUP
2128 #line 205 "holidayscannerplan.lpp"
2129             { yylval->ival =   1; return token::MONTH; }
2130             YY_BREAK
2131         case 100:
2132             YY_RULE_SETUP
2133 #line 206 "holidayscannerplan.lpp"
2134             { yylval->ival =   2; return token::MONTH; }
2135             YY_BREAK
2136         case 101:
2137             YY_RULE_SETUP
2138 #line 207 "holidayscannerplan.lpp"
2139             { yylval->ival =   3; return token::MONTH; }
2140             YY_BREAK
2141         case 102:
2142             YY_RULE_SETUP
2143 #line 208 "holidayscannerplan.lpp"
2144             { yylval->ival =   4; return token::MONTH; }
2145             YY_BREAK
2146         case 103:
2147             YY_RULE_SETUP
2148 #line 209 "holidayscannerplan.lpp"
2149             { yylval->ival =   5; return token::MONTH; }
2150             YY_BREAK
2151         case 104:
2152             YY_RULE_SETUP
2153 #line 210 "holidayscannerplan.lpp"
2154             { yylval->ival =   6; return token::MONTH; }
2155             YY_BREAK
2156         case 105:
2157             YY_RULE_SETUP
2158 #line 211 "holidayscannerplan.lpp"
2159             { yylval->ival =   7; return token::MONTH; }
2160             YY_BREAK
2161         case 106:
2162             YY_RULE_SETUP
2163 #line 212 "holidayscannerplan.lpp"
2164             { yylval->ival =   8; return token::MONTH; }
2165             YY_BREAK
2166         case 107:
2167             YY_RULE_SETUP
2168 #line 213 "holidayscannerplan.lpp"
2169             { yylval->ival =   9; return token::MONTH; }
2170             YY_BREAK
2171         case 108:
2172             YY_RULE_SETUP
2173 #line 214 "holidayscannerplan.lpp"
2174             { yylval->ival =  10; return token::MONTH; }
2175             YY_BREAK
2176         case 109:
2177             YY_RULE_SETUP
2178 #line 215 "holidayscannerplan.lpp"
2179             { yylval->ival =  11; return token::MONTH; }
2180             YY_BREAK
2181         case 110:
2182             YY_RULE_SETUP
2183 #line 216 "holidayscannerplan.lpp"
2184             { yylval->ival =  12; return token::MONTH; }
2185             YY_BREAK
2186         case 111:
2187             YY_RULE_SETUP
2188 #line 217 "holidayscannerplan.lpp"
2189             { yylval->ival =  13; return token::MONTH; }
2190             YY_BREAK
2191         case 112:
2192             YY_RULE_SETUP
2193 #line 219 "holidayscannerplan.lpp"
2194             { yylval->ival =   1; return token::WDAY; }
2195             YY_BREAK
2196         case 113:
2197             YY_RULE_SETUP
2198 #line 220 "holidayscannerplan.lpp"
2199             { yylval->ival =   2; return token::WDAY; }
2200             YY_BREAK
2201         case 114:
2202             YY_RULE_SETUP
2203 #line 221 "holidayscannerplan.lpp"
2204             { yylval->ival =   3; return token::WDAY; }
2205             YY_BREAK
2206         case 115:
2207             YY_RULE_SETUP
2208 #line 222 "holidayscannerplan.lpp"
2209             { yylval->ival =   4; return token::WDAY; }
2210             YY_BREAK
2211         case 116:
2212             YY_RULE_SETUP
2213 #line 223 "holidayscannerplan.lpp"
2214             { yylval->ival =   5; return token::WDAY; }
2215             YY_BREAK
2216         case 117:
2217             YY_RULE_SETUP
2218 #line 224 "holidayscannerplan.lpp"
2219             { yylval->ival =   6; return token::WDAY; }
2220             YY_BREAK
2221         case 118:
2222             YY_RULE_SETUP
2223 #line 225 "holidayscannerplan.lpp"
2224             { yylval->ival =   7; return token::WDAY; }
2225             YY_BREAK
2226         case 119:
2227             YY_RULE_SETUP
2228 #line 227 "holidayscannerplan.lpp"
2229                 { yylval->sval = (char *)"hebrew"; return token::CALENDAR; }
2230             YY_BREAK
2231         case 120:
2232             YY_RULE_SETUP
2233 #line 229 "holidayscannerplan.lpp"
2234             { yylval->ival =   1; return token::MONTH; }
2235             YY_BREAK
2236         case 121:
2237             YY_RULE_SETUP
2238 #line 230 "holidayscannerplan.lpp"
2239             { yylval->ival =   2; return token::MONTH; }
2240             YY_BREAK
2241         case 122:
2242             YY_RULE_SETUP
2243 #line 231 "holidayscannerplan.lpp"
2244             { yylval->ival =   3; return token::MONTH; }
2245             YY_BREAK
2246         case 123:
2247             YY_RULE_SETUP
2248 #line 232 "holidayscannerplan.lpp"
2249             { yylval->ival =   4; return token::MONTH; }
2250             YY_BREAK
2251         case 124:
2252             YY_RULE_SETUP
2253 #line 233 "holidayscannerplan.lpp"
2254             { yylval->ival =   5; return token::MONTH; }
2255             YY_BREAK
2256         case 125:
2257             YY_RULE_SETUP
2258 #line 234 "holidayscannerplan.lpp"
2259             { yylval->ival =   6; return token::MONTH; }
2260             YY_BREAK
2261         case 126:
2262             YY_RULE_SETUP
2263 #line 235 "holidayscannerplan.lpp"
2264             { yylval->ival =   7; return token::MONTH; }
2265             YY_BREAK
2266         case 127:
2267             YY_RULE_SETUP
2268 #line 236 "holidayscannerplan.lpp"
2269             { yylval->ival =   8; return token::MONTH; }
2270             YY_BREAK
2271         case 128:
2272             YY_RULE_SETUP
2273 #line 237 "holidayscannerplan.lpp"
2274             { yylval->ival =   9; return token::MONTH; }
2275             YY_BREAK
2276         case 129:
2277             YY_RULE_SETUP
2278 #line 238 "holidayscannerplan.lpp"
2279             { yylval->ival =  10; return token::MONTH; }
2280             YY_BREAK
2281         case 130:
2282             YY_RULE_SETUP
2283 #line 239 "holidayscannerplan.lpp"
2284             { yylval->ival =  11; return token::MONTH; }
2285             YY_BREAK
2286         case 131:
2287             YY_RULE_SETUP
2288 #line 240 "holidayscannerplan.lpp"
2289             { yylval->ival =  12; return token::MONTH; }
2290             YY_BREAK
2291         case 132:
2292             YY_RULE_SETUP
2293 #line 241 "holidayscannerplan.lpp"
2294             { yylval->ival =  13; return token::MONTH; }
2295             YY_BREAK
2296         case 133:
2297             YY_RULE_SETUP
2298 #line 242 "holidayscannerplan.lpp"
2299             { yylval->ival =  14; return token::MONTH; }
2300             YY_BREAK
2301         case 134:
2302             YY_RULE_SETUP
2303 #line 244 "holidayscannerplan.lpp"
2304             { yylval->ival =   1; return token::WDAY; }
2305             YY_BREAK
2306         case 135:
2307             YY_RULE_SETUP
2308 #line 245 "holidayscannerplan.lpp"
2309             { yylval->ival =   2; return token::WDAY; }
2310             YY_BREAK
2311         case 136:
2312             YY_RULE_SETUP
2313 #line 246 "holidayscannerplan.lpp"
2314             { yylval->ival =   3; return token::WDAY; }
2315             YY_BREAK
2316         case 137:
2317             YY_RULE_SETUP
2318 #line 247 "holidayscannerplan.lpp"
2319             { yylval->ival =   4; return token::WDAY; }
2320             YY_BREAK
2321         case 138:
2322             YY_RULE_SETUP
2323 #line 248 "holidayscannerplan.lpp"
2324             { yylval->ival =   5; return token::WDAY; }
2325             YY_BREAK
2326         case 139:
2327             YY_RULE_SETUP
2328 #line 249 "holidayscannerplan.lpp"
2329             { yylval->ival =   6; return token::WDAY; }
2330             YY_BREAK
2331         case 140:
2332             YY_RULE_SETUP
2333 #line 250 "holidayscannerplan.lpp"
2334             { yylval->ival =   7; return token::WDAY; }
2335             YY_BREAK
2336         case 141:
2337             YY_RULE_SETUP
2338 #line 252 "holidayscannerplan.lpp"
2339             { yylval->sval = (char *)"hijri"; return token::CALENDAR; }
2340             YY_BREAK
2341         case 142:
2342             YY_RULE_SETUP
2343 #line 254 "holidayscannerplan.lpp"
2344             { yylval->ival =   1; return token::MONTH; }
2345             YY_BREAK
2346         case 143:
2347             YY_RULE_SETUP
2348 #line 255 "holidayscannerplan.lpp"
2349             { yylval->ival =   2; return token::MONTH; }
2350             YY_BREAK
2351         case 144:
2352             YY_RULE_SETUP
2353 #line 256 "holidayscannerplan.lpp"
2354             { yylval->ival =   3; return token::MONTH; }
2355             YY_BREAK
2356         case 145:
2357             YY_RULE_SETUP
2358 #line 257 "holidayscannerplan.lpp"
2359             { yylval->ival =   4; return token::MONTH; }
2360             YY_BREAK
2361         case 146:
2362             YY_RULE_SETUP
2363 #line 258 "holidayscannerplan.lpp"
2364             { yylval->ival =   5; return token::MONTH; }
2365             YY_BREAK
2366         case 147:
2367             YY_RULE_SETUP
2368 #line 259 "holidayscannerplan.lpp"
2369             { yylval->ival =   6; return token::MONTH; }
2370             YY_BREAK
2371         case 148:
2372             YY_RULE_SETUP
2373 #line 260 "holidayscannerplan.lpp"
2374             { yylval->ival =   7; return token::MONTH; }
2375             YY_BREAK
2376         case 149:
2377             YY_RULE_SETUP
2378 #line 261 "holidayscannerplan.lpp"
2379             { yylval->ival =   8; return token::MONTH; }
2380             YY_BREAK
2381         case 150:
2382             YY_RULE_SETUP
2383 #line 262 "holidayscannerplan.lpp"
2384             { yylval->ival =   9; return token::MONTH; }
2385             YY_BREAK
2386         case 151:
2387             YY_RULE_SETUP
2388 #line 263 "holidayscannerplan.lpp"
2389             { yylval->ival =  10; return token::MONTH; }
2390             YY_BREAK
2391         case 152:
2392             YY_RULE_SETUP
2393 #line 264 "holidayscannerplan.lpp"
2394             { yylval->ival =  11; return token::MONTH; }
2395             YY_BREAK
2396         case 153:
2397             YY_RULE_SETUP
2398 #line 265 "holidayscannerplan.lpp"
2399             { yylval->ival =  12; return token::MONTH; }
2400             YY_BREAK
2401         case 154:
2402             YY_RULE_SETUP
2403 #line 267 "holidayscannerplan.lpp"
2404             { yylval->ival =   1; return token::WDAY; }
2405             YY_BREAK
2406         case 155:
2407             YY_RULE_SETUP
2408 #line 268 "holidayscannerplan.lpp"
2409             { yylval->ival =   2; return token::WDAY; }
2410             YY_BREAK
2411         case 156:
2412             YY_RULE_SETUP
2413 #line 269 "holidayscannerplan.lpp"
2414             { yylval->ival =   3; return token::WDAY; }
2415             YY_BREAK
2416         case 157:
2417             YY_RULE_SETUP
2418 #line 270 "holidayscannerplan.lpp"
2419             { yylval->ival =   4; return token::WDAY; }
2420             YY_BREAK
2421         case 158:
2422             YY_RULE_SETUP
2423 #line 271 "holidayscannerplan.lpp"
2424             { yylval->ival =   5; return token::WDAY; }
2425             YY_BREAK
2426         case 159:
2427             YY_RULE_SETUP
2428 #line 272 "holidayscannerplan.lpp"
2429             { yylval->ival =   6; return token::WDAY; }
2430             YY_BREAK
2431         case 160:
2432             YY_RULE_SETUP
2433 #line 273 "holidayscannerplan.lpp"
2434             { yylval->ival =   7; return token::WDAY; }
2435             YY_BREAK
2436         case 161:
2437             YY_RULE_SETUP
2438 #line 275 "holidayscannerplan.lpp"
2439             { yylval->sval = (char *)"indiannational"; return token::CALENDAR; }
2440             YY_BREAK
2441         case 162:
2442             YY_RULE_SETUP
2443 #line 277 "holidayscannerplan.lpp"
2444             { yylval->ival =   1; return token::MONTH; }
2445             YY_BREAK
2446         case 163:
2447             YY_RULE_SETUP
2448 #line 278 "holidayscannerplan.lpp"
2449             { yylval->ival =   2; return token::MONTH; }
2450             YY_BREAK
2451         case 164:
2452             YY_RULE_SETUP
2453 #line 279 "holidayscannerplan.lpp"
2454             { yylval->ival =   3; return token::MONTH; }
2455             YY_BREAK
2456         case 165:
2457             YY_RULE_SETUP
2458 #line 280 "holidayscannerplan.lpp"
2459             { yylval->ival =   4; return token::MONTH; }
2460             YY_BREAK
2461         case 166:
2462             YY_RULE_SETUP
2463 #line 281 "holidayscannerplan.lpp"
2464             { yylval->ival =   5; return token::MONTH; }
2465             YY_BREAK
2466         case 167:
2467             YY_RULE_SETUP
2468 #line 282 "holidayscannerplan.lpp"
2469             { yylval->ival =   6; return token::MONTH; }
2470             YY_BREAK
2471         case 168:
2472             YY_RULE_SETUP
2473 #line 283 "holidayscannerplan.lpp"
2474             { yylval->ival =   7; return token::MONTH; }
2475             YY_BREAK
2476         case 169:
2477             YY_RULE_SETUP
2478 #line 284 "holidayscannerplan.lpp"
2479             { yylval->ival =   8; return token::MONTH; }
2480             YY_BREAK
2481         case 170:
2482             YY_RULE_SETUP
2483 #line 285 "holidayscannerplan.lpp"
2484             { yylval->ival =   9; return token::MONTH; }
2485             YY_BREAK
2486         case 171:
2487             YY_RULE_SETUP
2488 #line 286 "holidayscannerplan.lpp"
2489             { yylval->ival =  10; return token::MONTH; }
2490             YY_BREAK
2491         case 172:
2492             YY_RULE_SETUP
2493 #line 287 "holidayscannerplan.lpp"
2494             { yylval->ival =  11; return token::MONTH; }
2495             YY_BREAK
2496         case 173:
2497             YY_RULE_SETUP
2498 #line 288 "holidayscannerplan.lpp"
2499             { yylval->ival =  12; return token::MONTH; }
2500             YY_BREAK
2501         case 174:
2502             YY_RULE_SETUP
2503 #line 290 "holidayscannerplan.lpp"
2504             { yylval->ival =   1; return token::WDAY; }
2505             YY_BREAK
2506         case 175:
2507             YY_RULE_SETUP
2508 #line 291 "holidayscannerplan.lpp"
2509             { yylval->ival =   2; return token::WDAY; }
2510             YY_BREAK
2511         case 176:
2512             YY_RULE_SETUP
2513 #line 292 "holidayscannerplan.lpp"
2514             { yylval->ival =   3; return token::WDAY; }
2515             YY_BREAK
2516         case 177:
2517             YY_RULE_SETUP
2518 #line 293 "holidayscannerplan.lpp"
2519             { yylval->ival =   4; return token::WDAY; }
2520             YY_BREAK
2521         case 178:
2522             YY_RULE_SETUP
2523 #line 294 "holidayscannerplan.lpp"
2524             { yylval->ival =   5; return token::WDAY; }
2525             YY_BREAK
2526         case 179:
2527             YY_RULE_SETUP
2528 #line 295 "holidayscannerplan.lpp"
2529             { yylval->ival =   6; return token::WDAY; }
2530             YY_BREAK
2531         case 180:
2532             YY_RULE_SETUP
2533 #line 296 "holidayscannerplan.lpp"
2534             { yylval->ival =   7; return token::WDAY; }
2535             YY_BREAK
2536         case 181:
2537             YY_RULE_SETUP
2538 #line 298 "holidayscannerplan.lpp"
2539             { yylval->sval = (char *)"jalali"; return token::CALENDAR; }
2540             YY_BREAK
2541         case 182:
2542             YY_RULE_SETUP
2543 #line 300 "holidayscannerplan.lpp"
2544             { yylval->ival =   1; return token::MONTH; }
2545             YY_BREAK
2546         case 183:
2547             YY_RULE_SETUP
2548 #line 301 "holidayscannerplan.lpp"
2549             { yylval->ival =   2; return token::MONTH; }
2550             YY_BREAK
2551         case 184:
2552             YY_RULE_SETUP
2553 #line 302 "holidayscannerplan.lpp"
2554             { yylval->ival =   3; return token::MONTH; }
2555             YY_BREAK
2556         case 185:
2557             YY_RULE_SETUP
2558 #line 303 "holidayscannerplan.lpp"
2559             { yylval->ival =   4; return token::MONTH; }
2560             YY_BREAK
2561         case 186:
2562             YY_RULE_SETUP
2563 #line 304 "holidayscannerplan.lpp"
2564             { yylval->ival =   5; return token::MONTH; }
2565             YY_BREAK
2566         case 187:
2567             YY_RULE_SETUP
2568 #line 305 "holidayscannerplan.lpp"
2569             { yylval->ival =   6; return token::MONTH; }
2570             YY_BREAK
2571         case 188:
2572             YY_RULE_SETUP
2573 #line 306 "holidayscannerplan.lpp"
2574             { yylval->ival =   7; return token::MONTH; }
2575             YY_BREAK
2576         case 189:
2577             YY_RULE_SETUP
2578 #line 307 "holidayscannerplan.lpp"
2579             { yylval->ival =   8; return token::MONTH; }
2580             YY_BREAK
2581         case 190:
2582             YY_RULE_SETUP
2583 #line 308 "holidayscannerplan.lpp"
2584             { yylval->ival =   9; return token::MONTH; }
2585             YY_BREAK
2586         case 191:
2587             YY_RULE_SETUP
2588 #line 309 "holidayscannerplan.lpp"
2589             { yylval->ival =  10; return token::MONTH; }
2590             YY_BREAK
2591         case 192:
2592             YY_RULE_SETUP
2593 #line 310 "holidayscannerplan.lpp"
2594             { yylval->ival =  11; return token::MONTH; }
2595             YY_BREAK
2596         case 193:
2597             YY_RULE_SETUP
2598 #line 311 "holidayscannerplan.lpp"
2599             { yylval->ival =  12; return token::MONTH; }
2600             YY_BREAK
2601         case 194:
2602             YY_RULE_SETUP
2603 #line 313 "holidayscannerplan.lpp"
2604             { yylval->ival =   1; return token::WDAY; }
2605             YY_BREAK
2606         case 195:
2607             YY_RULE_SETUP
2608 #line 314 "holidayscannerplan.lpp"
2609             { yylval->ival =   2; return token::WDAY; }
2610             YY_BREAK
2611         case 196:
2612             YY_RULE_SETUP
2613 #line 315 "holidayscannerplan.lpp"
2614             { yylval->ival =   3; return token::WDAY; }
2615             YY_BREAK
2616         case 197:
2617             YY_RULE_SETUP
2618 #line 316 "holidayscannerplan.lpp"
2619             { yylval->ival =   4; return token::WDAY; }
2620             YY_BREAK
2621         case 198:
2622             YY_RULE_SETUP
2623 #line 317 "holidayscannerplan.lpp"
2624             { yylval->ival =   5; return token::WDAY; }
2625             YY_BREAK
2626         case 199:
2627             YY_RULE_SETUP
2628 #line 318 "holidayscannerplan.lpp"
2629             { yylval->ival =   6; return token::WDAY; }
2630             YY_BREAK
2631         case 200:
2632             YY_RULE_SETUP
2633 #line 319 "holidayscannerplan.lpp"
2634             { yylval->ival =   7; return token::WDAY; }
2635             YY_BREAK
2636         case 201:
2637             YY_RULE_SETUP
2638 #line 321 "holidayscannerplan.lpp"
2639             { LexerError(yytext); }
2640             YY_BREAK
2641         case 202:
2642             YY_RULE_SETUP
2643 #line 323 "holidayscannerplan.lpp"
2644             ECHO;
2645             YY_BREAK
2646 #line 2659 "holidayscannerplan.cpp"
2647         case YY_STATE_EOF(INITIAL):
2648             yyterminate();
2649 
2650         case YY_END_OF_BUFFER: {
2651             /* Amount of text matched not including the EOB char. */
2652             int yy_amount_of_matched_text = (int)(yy_cp - (yytext_ptr)) - 1;
2653 
2654             /* Undo the effects of YY_DO_BEFORE_ACTION. */
2655             *yy_cp = (yy_hold_char);
2656             YY_RESTORE_YY_MORE_OFFSET
2657 
2658             if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW) {
2659                 /* We're scanning a new file or input source.  It's
2660                  * possible that this happened because the user
2661                  * just pointed yyin at a new source and called
2662                  * yylex().  If so, then we have to assure
2663                  * consistency between YY_CURRENT_BUFFER and our
2664                  * globals.  Here is the right place to do so, because
2665                  * this is the first action (other than possibly a
2666                  * back-up) that will match for the new input source.
2667                  */
2668                 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2669                 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2670                 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2671             }
2672 
2673             /* Note that here we test for yy_c_buf_p "<=" to the position
2674              * of the first EOB in the buffer, since yy_c_buf_p will
2675              * already have been incremented past the NUL character
2676              * (since all states make transitions on EOB to the
2677              * end-of-buffer state).  Contrast this with the test
2678              * in input().
2679              */
2680             if ((yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]) {
2681                 /* This was really a NUL. */
2682                 yy_state_type yy_next_state;
2683 
2684                 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2685 
2686                 yy_current_state = yy_get_previous_state();
2687 
2688                 /* Okay, we're now positioned to make the NUL
2689                  * transition.  We couldn't have
2690                  * yy_get_previous_state() go ahead and do it
2691                  * for us because it doesn't know how to deal
2692                  * with the possibility of jamming (and we don't
2693                  * want to build jamming into it because then it
2694                  * will run more slowly).
2695                  */
2696 
2697                 yy_next_state = yy_try_NUL_trans(yy_current_state);
2698 
2699                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2700 
2701                 if (yy_next_state) {
2702                     /* Consume the NUL. */
2703                     yy_cp = ++(yy_c_buf_p);
2704                     yy_current_state = yy_next_state;
2705                     goto yy_match;
2706                 }
2707 
2708                 else {
2709                     /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
2710                     yy_cp = (yy_last_accepting_cpos);
2711                     yy_current_state = (yy_last_accepting_state);
2712                     goto yy_find_action;
2713                 }
2714             }
2715 
2716             else switch (yy_get_next_buffer()) {
2717                 case EOB_ACT_END_OF_FILE: {
2718                     (yy_did_buffer_switch_on_eof) = 0;
2719 
2720                     if (yywrap()) {
2721                         /* Note: because we've taken care in
2722                          * yy_get_next_buffer() to have set up
2723                          * yytext, we can now set up
2724                          * yy_c_buf_p so that if some total
2725                          * hoser (like flex itself) wants to
2726                          * call the scanner after we return the
2727                          * YY_NULL, it'll still work - another
2728                          * YY_NULL will get returned.
2729                          */
2730                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2731 
2732                         yy_act = YY_STATE_EOF(YY_START);
2733                         goto do_action;
2734                     }
2735 
2736                     else {
2737                         if (!(yy_did_buffer_switch_on_eof)) {
2738                             YY_NEW_FILE;
2739                         }
2740                     }
2741                     break;
2742                 }
2743 
2744                 case EOB_ACT_CONTINUE_SCAN:
2745                     (yy_c_buf_p) =
2746                         (yytext_ptr) + yy_amount_of_matched_text;
2747 
2748                     yy_current_state = yy_get_previous_state();
2749 
2750                     yy_cp = (yy_c_buf_p);
2751                     yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2752                     goto yy_match;
2753 
2754                 case EOB_ACT_LAST_MATCH:
2755                     (yy_c_buf_p) =
2756                         &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2757 
2758                     yy_current_state = yy_get_previous_state();
2759 
2760                     yy_cp = (yy_c_buf_p);
2761                     yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2762                     goto yy_find_action;
2763                 }
2764             break;
2765         }
2766 
2767         default:
2768             YY_FATAL_ERROR(
2769                 "fatal flex scanner internal error--no action found");
2770         } /* end of action switch */
2771     } /* end of scanning one token */
2772 } /* end of yylex */
2773 /* %ok-for-header */
2774 
2775 /* %if-c++-only */
2776 /* %not-for-header */
2777 
2778 /* The contents of this function are C++ specific, so the () macro is not used.
2779  */
2780 yyFlexLexer::yyFlexLexer(std::istream *arg_yyin, std::ostream *arg_yyout)
2781 {
2782     yyin = arg_yyin;
2783     yyout = arg_yyout;
2784     yy_c_buf_p = nullptr;
2785     yy_init = 0;
2786     yy_start = 0;
2787     yy_flex_debug = 0;
2788     yylineno = 1;   // this will only get updated if %option yylineno
2789 
2790     yy_did_buffer_switch_on_eof = 0;
2791 
2792     yy_looking_for_trail_begin = 0;
2793     yy_more_flag = 0;
2794     yy_more_len = 0;
2795     yy_more_offset = yy_prev_more_offset = 0;
2796 
2797     yy_start_stack_ptr = yy_start_stack_depth = 0;
2798     yy_start_stack = nullptr;
2799 
2800     yy_buffer_stack = nullptr;
2801     yy_buffer_stack_top = 0;
2802     yy_buffer_stack_max = 0;
2803 
2804     yy_state_buf = nullptr;
2805 
2806 }
2807 
2808 /* The contents of this function are C++ specific, so the () macro is not used.
2809  */
2810 yyFlexLexer::~yyFlexLexer()
2811 {
2812     delete [] yy_state_buf;
2813     HolidayScannerfree(yy_start_stack);
2814     yy_delete_buffer(YY_CURRENT_BUFFER);
2815     HolidayScannerfree(yy_buffer_stack);
2816 }
2817 
2818 /* The contents of this function are C++ specific, so the () macro is not used.
2819  */
2820 void yyFlexLexer::switch_streams(std::istream *new_in, std::ostream *new_out)
2821 {
2822     if (new_in) {
2823         yy_delete_buffer(YY_CURRENT_BUFFER);
2824         yy_switch_to_buffer(yy_create_buffer(new_in, YY_BUF_SIZE));
2825     }
2826 
2827     if (new_out) {
2828         yyout = new_out;
2829     }
2830 }
2831 
2832 #ifdef YY_INTERACTIVE
2833 int yyFlexLexer::LexerInput(char *buf, int /* max_size */)
2834 #else
2835 int yyFlexLexer::LexerInput(char *buf, int max_size)
2836 #endif
2837 {
2838     if (yyin->eof() || yyin->fail()) {
2839         return 0;
2840     }
2841 
2842 #ifdef YY_INTERACTIVE
2843     yyin->get(buf[0]);
2844 
2845     if (yyin->eof()) {
2846         return 0;
2847     }
2848 
2849     if (yyin->bad()) {
2850         return -1;
2851     }
2852 
2853     return 1;
2854 
2855 #else
2856     (void) yyin->read(buf, max_size);
2857 
2858     if (yyin->bad()) {
2859         return -1;
2860     } else {
2861         return yyin->gcount();
2862     }
2863 #endif
2864 }
2865 
2866 void yyFlexLexer::LexerOutput(const char *buf, int size)
2867 {
2868     (void) yyout->write(buf, size);
2869 }
2870 /* %ok-for-header */
2871 
2872 /* %endif */
2873 
2874 /* yy_get_next_buffer - try to read in a new buffer
2875  *
2876  * Returns a code representing an action:
2877  *  EOB_ACT_LAST_MATCH -
2878  *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2879  *  EOB_ACT_END_OF_FILE - end of file
2880  */
2881 /* %if-c-only */
2882 /* %endif */
2883 /* %if-c++-only */
2884 int yyFlexLexer::yy_get_next_buffer()
2885 /* %endif */
2886 {
2887     char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2888     char *source = (yytext_ptr);
2889     int number_to_move, i;
2890     int ret_val;
2891 
2892     if ((yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1])
2893         YY_FATAL_ERROR(
2894             "fatal flex scanner internal error--end of buffer missed");
2895 
2896     if (YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0) {
2897         /* Don't try to fill the buffer, so this is an EOF. */
2898         if ((yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1) {
2899             /* We matched a single character, the EOB, so
2900              * treat this as a final EOF.
2901              */
2902             return EOB_ACT_END_OF_FILE;
2903         }
2904 
2905         else {
2906             /* We matched some text prior to the EOB, first
2907              * process it.
2908              */
2909             return EOB_ACT_LAST_MATCH;
2910         }
2911     }
2912 
2913     /* Try to read more data. */
2914 
2915     /* First move last chars to start of buffer. */
2916     number_to_move = (int)((yy_c_buf_p) - (yytext_ptr)) - 1;
2917 
2918     for (i = 0; i < number_to_move; ++i) {
2919         *(dest++) = *(source++);
2920     }
2921 
2922     if (YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING)
2923         /* don't do the read, it's not guaranteed to return an EOF,
2924          * just force an EOF
2925          */
2926     {
2927         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2928     }
2929 
2930     else {
2931         int num_to_read =
2932             YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2933 
2934         while (num_to_read <= 0) {
2935             /* Not enough room in the buffer - grow it. */
2936 
2937             /* just a shorter name for the current buffer */
2938             YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2939 
2940             int yy_c_buf_p_offset =
2941                 (int)((yy_c_buf_p) - b->yy_ch_buf);
2942 
2943             if (b->yy_is_our_buffer) {
2944                 int new_size = b->yy_buf_size * 2;
2945 
2946                 if (new_size <= 0) {
2947                     b->yy_buf_size += b->yy_buf_size / 8;
2948                 } else {
2949                     b->yy_buf_size *= 2;
2950                 }
2951 
2952                 b->yy_ch_buf = (char *)
2953                                /* Include room in for 2 EOB chars. */
2954                                HolidayScannerrealloc((void *) b->yy_ch_buf, b->yy_buf_size + 2);
2955             } else
2956                 /* Can't grow it, we don't own it. */
2957             {
2958                 b->yy_ch_buf = nullptr;
2959             }
2960 
2961             if (! b->yy_ch_buf)
2962                 YY_FATAL_ERROR(
2963                     "fatal error - scanner input buffer overflow");
2964 
2965             (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2966 
2967             num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2968                           number_to_move - 1;
2969 
2970         }
2971 
2972         if (num_to_read > YY_READ_BUF_SIZE) {
2973             num_to_read = YY_READ_BUF_SIZE;
2974         }
2975 
2976         /* Read in more data. */
2977         YY_INPUT((&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2978                  (yy_n_chars), (size_t) num_to_read);
2979 
2980         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2981     }
2982 
2983     if ((yy_n_chars) == 0) {
2984         if (number_to_move == YY_MORE_ADJ) {
2985             ret_val = EOB_ACT_END_OF_FILE;
2986             yyrestart(yyin);
2987         }
2988 
2989         else {
2990             ret_val = EOB_ACT_LAST_MATCH;
2991             YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2992                 YY_BUFFER_EOF_PENDING;
2993         }
2994     }
2995 
2996     else {
2997         ret_val = EOB_ACT_CONTINUE_SCAN;
2998     }
2999 
3000     if ((yy_size_t)((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3001         /* Extend the array by 50%, plus the number we really need. */
3002         yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3003         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) HolidayScannerrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size);
3004         if (! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) {
3005             YY_FATAL_ERROR("out of dynamic memory in yy_get_next_buffer()");
3006         }
3007     }
3008 
3009     (yy_n_chars) += number_to_move;
3010     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3011     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3012 
3013     (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3014 
3015     return ret_val;
3016 }
3017 
3018 /* yy_get_previous_state - get the state just before the EOB char was reached */
3019 
3020 /* %if-c-only */
3021 /* %not-for-header */
3022 
3023 /* %endif */
3024 /* %if-c++-only */
3025 yy_state_type yyFlexLexer::yy_get_previous_state()
3026 /* %endif */
3027 {
3028     yy_state_type yy_current_state;
3029     char *yy_cp;
3030 
3031     /* %% [15.0] code to get the start state into yy_current_state goes here */
3032     yy_current_state = (yy_start);
3033     yy_current_state += YY_AT_BOL();
3034 
3035     for (yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp) {
3036         /* %% [16.0] code to find the next state goes here */
3037         YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3038         if (yy_accept[yy_current_state]) {
3039             (yy_last_accepting_state) = yy_current_state;
3040             (yy_last_accepting_cpos) = yy_cp;
3041         }
3042         while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) {
3043             yy_current_state = (int) yy_def[yy_current_state];
3044             if (yy_current_state >= 982) {
3045                 yy_c = yy_meta[(unsigned int) yy_c];
3046             }
3047         }
3048         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3049     }
3050 
3051     return yy_current_state;
3052 }
3053 
3054 /* yy_try_NUL_trans - try to make a transition on the NUL character
3055  *
3056  * synopsis
3057  *  next_state = yy_try_NUL_trans( current_state );
3058  */
3059 /* %if-c-only */
3060 /* %endif */
3061 /* %if-c++-only */
3062 yy_state_type yyFlexLexer::yy_try_NUL_trans(yy_state_type yy_current_state)
3063 /* %endif */
3064 {
3065     int yy_is_jam;
3066     /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
3067     char *yy_cp = (yy_c_buf_p);
3068 
3069     YY_CHAR yy_c = 1;
3070     if (yy_accept[yy_current_state]) {
3071         (yy_last_accepting_state) = yy_current_state;
3072         (yy_last_accepting_cpos) = yy_cp;
3073     }
3074     while (yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state) {
3075         yy_current_state = (int) yy_def[yy_current_state];
3076         if (yy_current_state >= 982) {
3077             yy_c = yy_meta[(unsigned int) yy_c];
3078         }
3079     }
3080     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3081     yy_is_jam = (yy_current_state == 981);
3082 
3083     return yy_is_jam ? 0 : yy_current_state;
3084 }
3085 
3086 /* %if-c-only */
3087 /* %endif */
3088 /* %if-c++-only */
3089 void yyFlexLexer::yyunput(int c, char *yy_bp)
3090 /* %endif */
3091 {
3092     char *yy_cp;
3093 
3094     yy_cp = (yy_c_buf_p);
3095 
3096     /* undo effects of setting up yytext */
3097     *yy_cp = (yy_hold_char);
3098 
3099     if (yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2) {
3100         /* need to shift things up to make room */
3101         /* +2 for EOB chars. */
3102         int number_to_move = (yy_n_chars) + 2;
3103         char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3104                          YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3105         char *source =
3106             &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3107 
3108         while (source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf) {
3109             *--dest = *--source;
3110         }
3111 
3112         yy_cp += (int)(dest - source);
3113         yy_bp += (int)(dest - source);
3114         YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3115             (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3116 
3117         if (yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2) {
3118             YY_FATAL_ERROR("flex scanner push-back overflow");
3119         }
3120     }
3121 
3122     *--yy_cp = (char) c;
3123 
3124     /* %% [18.0] update yylineno here */
3125 
3126     (yytext_ptr) = yy_bp;
3127     (yy_hold_char) = *yy_cp;
3128     (yy_c_buf_p) = yy_cp;
3129 }
3130 /* %if-c-only */
3131 /* %endif */
3132 
3133 /* %if-c-only */
3134 /* %endif */
3135 /* %if-c++-only */
3136 int yyFlexLexer::yyinput()
3137 /* %endif */
3138 {
3139     int c;
3140 
3141     *(yy_c_buf_p) = (yy_hold_char);
3142 
3143     if (*(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR) {
3144         /* yy_c_buf_p now points to the character we want to return.
3145          * If this occurs *before* the EOB characters, then it's a
3146          * valid NUL; if not, then we've hit the end of the buffer.
3147          */
3148         if ((yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)])
3149             /* This was really a NUL. */
3150         {
3151             *(yy_c_buf_p) = '\0';
3152         }
3153 
3154         else {
3155             /* need more input */
3156             int offset = (yy_c_buf_p) - (yytext_ptr);
3157             ++(yy_c_buf_p);
3158 
3159             switch (yy_get_next_buffer()) {
3160             case EOB_ACT_LAST_MATCH:
3161                 /* This happens because yy_g_n_b()
3162                  * sees that we've accumulated a
3163                  * token and flags that we need to
3164                  * try matching the token before
3165                  * proceeding.  But for input(),
3166                  * there's no matching to consider.
3167                  * So convert the EOB_ACT_LAST_MATCH
3168                  * to EOB_ACT_END_OF_FILE.
3169                  */
3170 
3171                 /* Reset buffer status. */
3172                 yyrestart(yyin);
3173 
3174             /*FALLTHROUGH*/
3175 
3176             case EOB_ACT_END_OF_FILE: {
3177                 if (yywrap()) {
3178                     return EOF;
3179                 }
3180 
3181                 if (!(yy_did_buffer_switch_on_eof)) {
3182                     YY_NEW_FILE;
3183                 }
3184 #ifdef __cplusplus
3185                 return yyinput();
3186 #else
3187                 return input();
3188 #endif
3189             }
3190 
3191             case EOB_ACT_CONTINUE_SCAN:
3192                 (yy_c_buf_p) = (yytext_ptr) + offset;
3193                 break;
3194             }
3195         }
3196     }
3197 
3198     c = *(unsigned char *)(yy_c_buf_p);     /* cast for 8-bit char's */
3199     *(yy_c_buf_p) = '\0';   /* preserve yytext */
3200     (yy_hold_char) = *++(yy_c_buf_p);
3201 
3202     /* %% [19.0] update BOL and yylineno */
3203     YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
3204 
3205     return c;
3206 }
3207 /* %if-c-only */
3208 /* %endif */
3209 
3210 /** Immediately switch to a different input stream.
3211  * @param input_file A readable stream.
3212  *
3213  * @note This function does not reset the start condition to @c INITIAL .
3214  */
3215 /* %if-c-only */
3216 /* %endif */
3217 /* %if-c++-only */
3218 void yyFlexLexer::yyrestart(std::istream *input_file)
3219 /* %endif */
3220 {
3221 
3222     if (! YY_CURRENT_BUFFER) {
3223         yyensure_buffer_stack();
3224         YY_CURRENT_BUFFER_LVALUE =
3225             yy_create_buffer(yyin, YY_BUF_SIZE);
3226     }
3227 
3228     yy_init_buffer(YY_CURRENT_BUFFER, input_file);
3229     yy_load_buffer_state();
3230 }
3231 
3232 /** Switch to a different input buffer.
3233  * @param new_buffer The new input buffer.
3234  *
3235  */
3236 /* %if-c-only */
3237 /* %endif */
3238 /* %if-c++-only */
3239 void yyFlexLexer::yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)
3240 /* %endif */
3241 {
3242 
3243     /* TODO. We should be able to replace this entire function body
3244      * with
3245      *      yypop_buffer_state();
3246      *      yypush_buffer_state(new_buffer);
3247      */
3248     yyensure_buffer_stack();
3249     if (YY_CURRENT_BUFFER == new_buffer) {
3250         return;
3251     }
3252 
3253     if (YY_CURRENT_BUFFER) {
3254         /* Flush out information for old buffer. */
3255         *(yy_c_buf_p) = (yy_hold_char);
3256         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3257         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3258     }
3259 
3260     YY_CURRENT_BUFFER_LVALUE = new_buffer;
3261     yy_load_buffer_state();
3262 
3263     /* We don't actually know whether we did this switch during
3264      * EOF (yywrap()) processing, but the only time this flag
3265      * is looked at is after yywrap() is called, so it's safe
3266      * to go ahead and always set it.
3267      */
3268     (yy_did_buffer_switch_on_eof) = 1;
3269 }
3270 
3271 /* %if-c-only */
3272 /* %endif */
3273 /* %if-c++-only */
3274 void yyFlexLexer::yy_load_buffer_state()
3275 /* %endif */
3276 {
3277     (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3278     (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3279     yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3280     (yy_hold_char) = *(yy_c_buf_p);
3281 }
3282 
3283 /** Allocate and initialize an input buffer state.
3284  * @param file A readable stream.
3285  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3286  *
3287  * @return the allocated buffer state.
3288  */
3289 /* %if-c-only */
3290 /* %endif */
3291 /* %if-c++-only */
3292 YY_BUFFER_STATE yyFlexLexer::yy_create_buffer(std::istream *file, int size)
3293 /* %endif */
3294 {
3295     YY_BUFFER_STATE b;
3296 
3297     b = (YY_BUFFER_STATE) HolidayScanneralloc(sizeof(struct yy_buffer_state));
3298     if (! b) {
3299         YY_FATAL_ERROR("out of dynamic memory in yy_create_buffer()");
3300     }
3301 
3302     b->yy_buf_size = size;
3303 
3304     /* yy_ch_buf has to be 2 characters longer than the size given because
3305      * we need to put in 2 end-of-buffer characters.
3306      */
3307     b->yy_ch_buf = (char *) HolidayScanneralloc(b->yy_buf_size + 2);
3308     if (! b->yy_ch_buf) {
3309         YY_FATAL_ERROR("out of dynamic memory in yy_create_buffer()");
3310     }
3311 
3312     b->yy_is_our_buffer = 1;
3313 
3314     yy_init_buffer(b, file);
3315 
3316     return b;
3317 }
3318 
3319 /** Destroy the buffer.
3320  * @param b a buffer created with yy_create_buffer()
3321  *
3322  */
3323 /* %if-c-only */
3324 /* %endif */
3325 /* %if-c++-only */
3326 void yyFlexLexer::yy_delete_buffer(YY_BUFFER_STATE b)
3327 /* %endif */
3328 {
3329 
3330     if (! b) {
3331         return;
3332     }
3333 
3334     if (b == YY_CURRENT_BUFFER) { /* Not sure if we should pop here. */
3335         YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) nullptr;
3336     }
3337 
3338     if (b->yy_is_our_buffer) {
3339         HolidayScannerfree((void *) b->yy_ch_buf);
3340     }
3341 
3342     HolidayScannerfree((void *) b);
3343 }
3344 
3345 /* %if-c-only */
3346 /* %endif */
3347 
3348 /* %if-c++-only */
3349 
3350 extern "C" int isatty(int);
3351 
3352 /* %endif */
3353 
3354 /* Initializes or reinitializes a buffer.
3355  * This function is sometimes called more than once on the same buffer,
3356  * such as during a yyrestart() or at EOF.
3357  */
3358 /* %if-c-only */
3359 /* %endif */
3360 /* %if-c++-only */
3361 void yyFlexLexer::yy_init_buffer(YY_BUFFER_STATE b, std::istream *file)
3362 /* %endif */
3363 
3364 {
3365     int oerrno = errno;
3366 
3367     yy_flush_buffer(b);
3368 
3369     b->yy_input_file = file;
3370     b->yy_fill_buffer = 1;
3371 
3372     /* If b is the current buffer, then yy_init_buffer was _probably_
3373      * called from yyrestart() or through yy_get_next_buffer.
3374      * In that case, we don't want to reset the lineno or column.
3375      */
3376     if (b != YY_CURRENT_BUFFER) {
3377         b->yy_bs_lineno = 1;
3378         b->yy_bs_column = 0;
3379     }
3380 
3381     /* %if-c-only */
3382     /* %endif */
3383     /* %if-c++-only */
3384     b->yy_is_interactive = 0;
3385     /* %endif */
3386     errno = oerrno;
3387 }
3388 
3389 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3390  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3391  *
3392  */
3393 /* %if-c-only */
3394 /* %endif */
3395 /* %if-c++-only */
3396 void yyFlexLexer::yy_flush_buffer(YY_BUFFER_STATE b)
3397 /* %endif */
3398 {
3399     if (! b) {
3400         return;
3401     }
3402 
3403     b->yy_n_chars = 0;
3404 
3405     /* We always need two end-of-buffer characters.  The first causes
3406      * a transition to the end-of-buffer state.  The second causes
3407      * a jam in that state.
3408      */
3409     b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3410     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3411 
3412     b->yy_buf_pos = &b->yy_ch_buf[0];
3413 
3414     b->yy_at_bol = 1;
3415     b->yy_buffer_status = YY_BUFFER_NEW;
3416 
3417     if (b == YY_CURRENT_BUFFER) {
3418         yy_load_buffer_state();
3419     }
3420 }
3421 
3422 /* %if-c-or-c++ */
3423 /** Pushes the new state onto the stack. The new state becomes
3424  *  the current state. This function will allocate the stack
3425  *  if necessary.
3426  *  @param new_buffer The new state.
3427  *
3428  */
3429 /* %if-c-only */
3430 /* %endif */
3431 /* %if-c++-only */
3432 void yyFlexLexer::yypush_buffer_state(YY_BUFFER_STATE new_buffer)
3433 /* %endif */
3434 {
3435     if (new_buffer == nullptr) {
3436         return;
3437     }
3438 
3439     yyensure_buffer_stack();
3440 
3441     /* This block is copied from yy_switch_to_buffer. */
3442     if (YY_CURRENT_BUFFER) {
3443         /* Flush out information for old buffer. */
3444         *(yy_c_buf_p) = (yy_hold_char);
3445         YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3446         YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3447     }
3448 
3449     /* Only push if top exists. Otherwise, replace top. */
3450     if (YY_CURRENT_BUFFER) {
3451         (yy_buffer_stack_top)++;
3452     }
3453     YY_CURRENT_BUFFER_LVALUE = new_buffer;
3454 
3455     /* copied from yy_switch_to_buffer. */
3456     yy_load_buffer_state();
3457     (yy_did_buffer_switch_on_eof) = 1;
3458 }
3459 /* %endif */
3460 
3461 /* %if-c-or-c++ */
3462 /** Removes and deletes the top of the stack, if present.
3463  *  The next element becomes the new top.
3464  *
3465  */
3466 /* %if-c-only */
3467 /* %endif */
3468 /* %if-c++-only */
3469 void yyFlexLexer::yypop_buffer_state(void)
3470 /* %endif */
3471 {
3472     if (!YY_CURRENT_BUFFER) {
3473         return;
3474     }
3475 
3476     yy_delete_buffer(YY_CURRENT_BUFFER);
3477     YY_CURRENT_BUFFER_LVALUE = nullptr;
3478     if ((yy_buffer_stack_top) > 0) {
3479         --(yy_buffer_stack_top);
3480     }
3481 
3482     if (YY_CURRENT_BUFFER) {
3483         yy_load_buffer_state();
3484         (yy_did_buffer_switch_on_eof) = 1;
3485     }
3486 }
3487 /* %endif */
3488 
3489 /* %if-c-or-c++ */
3490 /* Allocates the stack if it does not exist.
3491  *  Guarantees space for at least one push.
3492  */
3493 /* %if-c-only */
3494 /* %endif */
3495 /* %if-c++-only */
3496 void yyFlexLexer::yyensure_buffer_stack(void)
3497 /* %endif */
3498 {
3499     int num_to_alloc;
3500 
3501     if (!(yy_buffer_stack)) {
3502 
3503         /* First allocation is just for 2 elements, since we don't know if this
3504          * scanner will even need a stack. We use 2 instead of 1 to avoid an
3505          * immediate realloc on the next call.
3506          */
3507         num_to_alloc = 1;
3508         (yy_buffer_stack) = (struct yy_buffer_state **)HolidayScanneralloc
3509                             (num_to_alloc * sizeof(struct yy_buffer_state *)
3510                             );
3511         if (!(yy_buffer_stack)) {
3512             YY_FATAL_ERROR("out of dynamic memory in yyensure_buffer_stack()");
3513         }
3514 
3515         memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state *));
3516 
3517         (yy_buffer_stack_max) = num_to_alloc;
3518         (yy_buffer_stack_top) = 0;
3519         return;
3520     }
3521 
3522     if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1) {
3523 
3524         /* Increase the buffer to prepare for a possible push. */
3525         int grow_size = 8 /* arbitrary grow size */;
3526 
3527         num_to_alloc = (yy_buffer_stack_max) + grow_size;
3528         (yy_buffer_stack) = (struct yy_buffer_state **)HolidayScannerrealloc
3529                             ((yy_buffer_stack),
3530                              num_to_alloc * sizeof(struct yy_buffer_state *)
3531                             );
3532         if (!(yy_buffer_stack)) {
3533             YY_FATAL_ERROR("out of dynamic memory in yyensure_buffer_stack()");
3534         }
3535 
3536         /* zero only the new slots.*/
3537         memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state *));
3538         (yy_buffer_stack_max) = num_to_alloc;
3539     }
3540 }
3541 /* %endif */
3542 
3543 /* %if-c-only */
3544 /* %endif */
3545 
3546 /* %if-c-only */
3547 /* %endif */
3548 
3549 /* %if-c-only */
3550 /* %endif */
3551 
3552 /* %if-c-only */
3553 /* %endif */
3554 /* %if-c++-only */
3555 void yyFlexLexer::yy_push_state(int new_state)
3556 /* %endif */
3557 {
3558     if ((yy_start_stack_ptr) >= (yy_start_stack_depth)) {
3559         yy_size_t new_size;
3560 
3561         (yy_start_stack_depth) += YY_START_STACK_INCR;
3562         new_size = (yy_start_stack_depth) * sizeof(int);
3563 
3564         if (!(yy_start_stack)) {
3565             (yy_start_stack) = (int *) HolidayScanneralloc(new_size);
3566         }
3567 
3568         else {
3569             (yy_start_stack) = (int *) HolidayScannerrealloc((void *)(yy_start_stack), new_size);
3570         }
3571 
3572         if (!(yy_start_stack)) {
3573             YY_FATAL_ERROR("out of memory expanding start-condition stack");
3574         }
3575     }
3576 
3577     (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
3578 
3579     BEGIN(new_state);
3580 }
3581 
3582 /* %if-c-only */
3583 /* %endif */
3584 /* %if-c++-only */
3585 void yyFlexLexer::yy_pop_state()
3586 /* %endif */
3587 {
3588     if (--(yy_start_stack_ptr) < 0) {
3589         YY_FATAL_ERROR("start-condition stack underflow");
3590     }
3591 
3592     BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
3593 }
3594 
3595 /* %if-c-only */
3596 /* %endif */
3597 /* %if-c++-only */
3598 int yyFlexLexer::yy_top_state()
3599 /* %endif */
3600 {
3601     return (yy_start_stack)[(yy_start_stack_ptr) - 1];
3602 }
3603 
3604 #ifndef YY_EXIT_FAILURE
3605 #define YY_EXIT_FAILURE 2
3606 #endif
3607 
3608 /* %if-c-only */
3609 /* %endif */
3610 /* %if-c++-only */
3611 void yyFlexLexer::LexerError(yyconst char msg[])
3612 {
3613     std::cerr << msg << std::endl;
3614     exit(YY_EXIT_FAILURE);
3615 }
3616 /* %endif */
3617 
3618 /* Redefine yyless() so it works in section 3 code. */
3619 
3620 #undef yyless
3621 #define yyless(n) \
3622     do \
3623     { \
3624         /* Undo effects of setting up yytext. */ \
3625         int yyless_macro_arg = (n); \
3626         YY_LESS_LINENO(yyless_macro_arg);\
3627         yytext[yyleng] = (yy_hold_char); \
3628         (yy_c_buf_p) = yytext + yyless_macro_arg; \
3629         (yy_hold_char) = *(yy_c_buf_p); \
3630         *(yy_c_buf_p) = '\0'; \
3631         yyleng = yyless_macro_arg; \
3632     } \
3633     while ( 0 )
3634 
3635 /* Accessor  methods (get/set functions) to struct members. */
3636 
3637 /* %if-c-only */
3638 /* %if-reentrant */
3639 /* %endif */
3640 /* %if-reentrant */
3641 /* %endif */
3642 /* %endif */
3643 
3644 /* %if-reentrant */
3645 /* %if-bison-bridge */
3646 /* %endif */
3647 /* %endif if-c-only */
3648 
3649 /* %if-c-only */
3650 /* %endif */
3651 
3652 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
3653 /* %if-reentrant */
3654 /* %endif */
3655 /* %endif */
3656 
3657 /*
3658  * Internal utility routines.
3659  */
3660 
3661 #ifndef yytext_ptr
3662 static void yy_flex_strncpy(char *s1, yyconst char *s2, int n)
3663 {
3664     int i;
3665     for (i = 0; i < n; ++i) {
3666         s1[i] = s2[i];
3667     }
3668 }
3669 #endif
3670 
3671 #ifdef YY_NEED_STRLEN
3672 static int yy_flex_strlen(yyconst char *s)
3673 {
3674     int n;
3675     for (n = 0; s[n]; ++n)
3676         ;
3677 
3678     return n;
3679 }
3680 #endif
3681 
3682 void *HolidayScanneralloc(yy_size_t  size)
3683 {
3684     return (void *) malloc(size);
3685 }
3686 
3687 void *HolidayScannerrealloc(void *ptr, yy_size_t  size)
3688 {
3689     /* The cast to (char *) in the following accommodates both
3690      * implementations that use char* generic pointers, and those
3691      * that use void* generic pointers.  It works with the latter
3692      * because both ANSI C and C++ allow castless assignment from
3693      * any pointer type to void*, and deal with argument conversions
3694      * as though doing an assignment.
3695      */
3696     return (void *) realloc((char *) ptr, size);
3697 }
3698 
3699 void HolidayScannerfree(void *ptr)
3700 {
3701     free((char *) ptr);      /* see HolidayScannerrealloc() for (char *) cast */
3702 }
3703 
3704 /* %if-tables-serialization definitions */
3705 /* %define-yytables   The name for this specific scanner's tables. */
3706 #define YYTABLES_NAME "yytables"
3707 /* %endif */
3708 
3709 /* %ok-for-header */
3710 
3711 #line 323 "holidayscannerplan.lpp"
3712 
3713 namespace KHolidays
3714 {
3715 
3716 HolidayScannerPlan::HolidayScannerPlan(std::istream *in, std::ostream *out)
3717     : HolidayScannerFlexLexer(in, out)
3718 {
3719 }
3720 
3721 HolidayScannerPlan::~HolidayScannerPlan()
3722 {
3723 }
3724 
3725 void HolidayScannerPlan::set_debug(bool b)
3726 {
3727     yy_flex_debug = b;
3728 }
3729 
3730 } // namespace KHolidays
3731 
3732 /* This implementation of HolidayScannerFlexLexer::yylex() is required to fill the
3733  * vtable of the class HolidayScannerFlexLexer. We define the scanner's main yylex
3734  * function via YY_DECL to reside in the HolidayScannerPlan class instead. */
3735 
3736 #ifdef yylex
3737 #undef yylex
3738 #endif
3739 
3740 int HolidayScannerFlexLexer::yylex()
3741 {
3742     qCDebug(KHOLIDAYS_LOG) << "in HolidayScannerFlexLexer::yylex() !";
3743     return 0;
3744 }
3745 
3746 /* When the scanner receives an end-of-file indication from YY_INPUT, it then
3747  * checks the yywrap() function. If yywrap() returns false (zero), then it is
3748  * assumed that the function has gone ahead and set up `yyin' to point to
3749  * another input file, and scanning continues. If it returns true (non-zero),
3750  * then the scanner terminates, returning 0 to its caller. */
3751 
3752 int HolidayScannerFlexLexer::yywrap()
3753 {
3754     return 1;
3755 }