• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepimlibs API Reference
  • KDE Home
  • Contact Us
 

KHolidays Library

  • sources
  • kde-4.14
  • kdepimlibs
  • kholidays
  • parsers
  • plan2
holidayscannerplan.cpp
1 #line 2 "holidayscannerplan.cpp"
2 
3 #line 4 "holidayscannerplan.cpp"
4 
5 #define YY_INT_ALIGNED short int
6 
7 /* A lexical scanner generated by flex */
8 
9 /* %not-for-header */
10 
11 /* %if-c-only */
12 /* %if-not-reentrant */
13 /* %endif */
14 /* %endif */
15 /* %ok-for-header */
16 
17 #define FLEX_SCANNER
18 #define YY_FLEX_MAJOR_VERSION 2
19 #define YY_FLEX_MINOR_VERSION 5
20 #define YY_FLEX_SUBMINOR_VERSION 35
21 #if YY_FLEX_SUBMINOR_VERSION > 0
22 #define FLEX_BETA
23 #endif
24 
25 /* %if-c++-only */
26  /* The c++ scanner is a mess. The FlexLexer.h header file relies on the
27  * following macro. This is required in order to pass the c++-multiple-scanners
28  * test in the regression suite. We get reports that it breaks inheritance.
29  * We will address this in a future release of flex, or omit the C++ scanner
30  * altogether.
31  */
32  #define yyFlexLexer HolidayScannerFlexLexer
33 /* %endif */
34 
35 /* %if-c-only */
36 /* %endif */
37 
38 /* %if-c-only */
39 /* %endif */
40 
41 /* First, we deal with platform-specific or compiler-specific issues. */
42 
43 /* begin standard C headers. */
44 /* %if-c-only */
45 /* %endif */
46 
47 /* %if-tables-serialization */
48 /* %endif */
49 /* end standard C headers. */
50 
51 /* %if-c-or-c++ */
52 /* flex integer type definitions */
53 
54 #ifndef FLEXINT_H
55 #define FLEXINT_H
56 
57 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
58 
59 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
60 
61 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
62  * if you want the limit (max/min) macros for int types.
63  */
64 #ifndef __STDC_LIMIT_MACROS
65 #define __STDC_LIMIT_MACROS 1
66 #endif
67 
68 #include <inttypes.h>
69 typedef int8_t flex_int8_t;
70 typedef uint8_t flex_uint8_t;
71 typedef int16_t flex_int16_t;
72 typedef uint16_t flex_uint16_t;
73 typedef int32_t flex_int32_t;
74 typedef uint32_t flex_uint32_t;
75 #else
76 typedef signed char flex_int8_t;
77 typedef short int flex_int16_t;
78 typedef int flex_int32_t;
79 typedef unsigned char flex_uint8_t;
80 typedef unsigned short int flex_uint16_t;
81 typedef unsigned int flex_uint32_t;
82 
83 /* Limits of integral types. */
84 #ifndef INT8_MIN
85 #define INT8_MIN (-128)
86 #endif
87 #ifndef INT16_MIN
88 #define INT16_MIN (-32767-1)
89 #endif
90 #ifndef INT32_MIN
91 #define INT32_MIN (-2147483647-1)
92 #endif
93 #ifndef INT8_MAX
94 #define INT8_MAX (127)
95 #endif
96 #ifndef INT16_MAX
97 #define INT16_MAX (32767)
98 #endif
99 #ifndef INT32_MAX
100 #define INT32_MAX (2147483647)
101 #endif
102 #ifndef UINT8_MAX
103 #define UINT8_MAX (255U)
104 #endif
105 #ifndef UINT16_MAX
106 #define UINT16_MAX (65535U)
107 #endif
108 #ifndef UINT32_MAX
109 #define UINT32_MAX (4294967295U)
110 #endif
111 
112 #endif /* ! C99 */
113 
114 #endif /* ! FLEXINT_H */
115 
116 /* %endif */
117 
118 /* %if-c++-only */
119 /* begin standard C++ headers. */
120 #include <iostream>
121 #include <errno.h>
122 #include <cstdlib>
123 #include <cstdio>
124 #include <cstring>
125 /* end standard C++ headers. */
126 /* %endif */
127 
128 #ifdef __cplusplus
129 
130 /* The "const" storage-class-modifier is valid. */
131 #define YY_USE_CONST
132 
133 #else /* ! __cplusplus */
134 
135 /* C99 requires __STDC__ to be defined as 1. */
136 #if defined (__STDC__)
137 
138 #define YY_USE_CONST
139 
140 #endif /* defined (__STDC__) */
141 #endif /* ! __cplusplus */
142 
143 #ifdef YY_USE_CONST
144 #define yyconst const
145 #else
146 #define yyconst
147 #endif
148 
149 /* %not-for-header */
150 
151 /* Returned upon end-of-file. */
152 #define YY_NULL 0
153 /* %ok-for-header */
154 
155 /* %not-for-header */
156 
157 /* Promotes a possibly negative, possibly signed char to an unsigned
158  * integer for use as an array index. If the signed char is negative,
159  * we want to instead treat it as an 8-bit unsigned char, hence the
160  * double cast.
161  */
162 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
163 /* %ok-for-header */
164 
165 /* %if-reentrant */
166 /* %endif */
167 
168 /* %if-not-reentrant */
169 
170 /* %endif */
171 
172 /* Enter a start condition. This macro really ought to take a parameter,
173  * but we do it the disgusting crufty way forced on us by the ()-less
174  * definition of BEGIN.
175  */
176 #define BEGIN (yy_start) = 1 + 2 *
177 
178 /* Translate the current start state into a value that can be later handed
179  * to BEGIN to return to the state. The YYSTATE alias is for lex
180  * compatibility.
181  */
182 #define YY_START (((yy_start) - 1) / 2)
183 #define YYSTATE YY_START
184 
185 /* Action number for EOF rule of a given start state. */
186 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
187 
188 /* Special action meaning "start processing a new file". */
189 #define YY_NEW_FILE yyrestart( yyin )
190 
191 #define YY_END_OF_BUFFER_CHAR 0
192 
193 /* Size of default input buffer. */
194 #ifndef YY_BUF_SIZE
195 #ifdef __ia64__
196 /* On IA-64, the buffer size is 16k, not 8k.
197  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
198  * Ditto for the __ia64__ case accordingly.
199  */
200 #define YY_BUF_SIZE 32768
201 #else
202 #define YY_BUF_SIZE 16384
203 #endif /* __ia64__ */
204 #endif
205 
206 /* The state buf must be large enough to hold one state per character in the main buffer.
207  */
208 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
209 
210 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
211 #define YY_TYPEDEF_YY_BUFFER_STATE
212 typedef struct yy_buffer_state *YY_BUFFER_STATE;
213 #endif
214 
215 /* %if-not-reentrant */
216 extern int yyleng;
217 /* %endif */
218 
219 /* %if-c-only */
220 /* %if-not-reentrant */
221 /* %endif */
222 /* %endif */
223 
224 #define EOB_ACT_CONTINUE_SCAN 0
225 #define EOB_ACT_END_OF_FILE 1
226 #define EOB_ACT_LAST_MATCH 2
227 
228  #define YY_LESS_LINENO(n)
229 
230 /* Return all but the first "n" matched characters back to the input stream. */
231 #define yyless(n) \
232  do \
233  { \
234  /* Undo effects of setting up yytext. */ \
235  int yyless_macro_arg = (n); \
236  YY_LESS_LINENO(yyless_macro_arg);\
237  *yy_cp = (yy_hold_char); \
238  YY_RESTORE_YY_MORE_OFFSET \
239  (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
240  YY_DO_BEFORE_ACTION; /* set up yytext again */ \
241  } \
242  while ( 0 )
243 
244 #define unput(c) yyunput( c, (yytext_ptr) )
245 
246 #ifndef YY_TYPEDEF_YY_SIZE_T
247 #define YY_TYPEDEF_YY_SIZE_T
248 typedef size_t yy_size_t;
249 #endif
250 
251 #ifndef YY_STRUCT_YY_BUFFER_STATE
252 #define YY_STRUCT_YY_BUFFER_STATE
253 struct yy_buffer_state
254  {
255 /* %if-c-only */
256 /* %endif */
257 
258 /* %if-c++-only */
259  std::istream* yy_input_file;
260 /* %endif */
261 
262  char *yy_ch_buf; /* input buffer */
263  char *yy_buf_pos; /* current position in input buffer */
264 
265  /* Size of input buffer in bytes, not including room for EOB
266  * characters.
267  */
268  yy_size_t yy_buf_size;
269 
270  /* Number of characters read into yy_ch_buf, not including EOB
271  * characters.
272  */
273  int yy_n_chars;
274 
275  /* Whether we "own" the buffer - i.e., we know we created it,
276  * and can realloc() it to grow it, and should free() it to
277  * delete it.
278  */
279  int yy_is_our_buffer;
280 
281  /* Whether this is an "interactive" input source; if so, and
282  * if we're using stdio for input, then we want to use getc()
283  * instead of fread(), to make sure we stop fetching input after
284  * each newline.
285  */
286  int yy_is_interactive;
287 
288  /* Whether we're considered to be at the beginning of a line.
289  * If so, '^' rules will be active on the next match, otherwise
290  * not.
291  */
292  int yy_at_bol;
293 
294  int yy_bs_lineno;
295  int yy_bs_column;
297  /* Whether to try to fill the input buffer when we reach the
298  * end of it.
299  */
300  int yy_fill_buffer;
301 
302  int yy_buffer_status;
303 
304 #define YY_BUFFER_NEW 0
305 #define YY_BUFFER_NORMAL 1
306  /* When an EOF's been seen but there's still some text to process
307  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
308  * shouldn't try reading from the input source any more. We might
309  * still have a bunch of tokens to match, though, because of
310  * possible backing-up.
311  *
312  * When we actually see the EOF, we change the status to "new"
313  * (via yyrestart()), so that the user can continue scanning by
314  * just pointing yyin at a new input file.
315  */
316 #define YY_BUFFER_EOF_PENDING 2
317 
318  };
319 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
320 
321 /* %if-c-only Standard (non-C++) definition */
322 /* %not-for-header */
323 
324 /* %if-not-reentrant */
325 /* %endif */
326 /* %ok-for-header */
327 
328 /* %endif */
329 
330 /* We provide macros for accessing buffer states in case in the
331  * future we want to put the buffer states in a more general
332  * "scanner state".
333  *
334  * Returns the top of the stack, or NULL.
335  */
336 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
337  ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
338  : NULL)
339 
340 /* Same as previous macro, but useful when we know that the buffer stack is not
341  * NULL or when we need an lvalue. For internal use only.
342  */
343 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
344 
345 /* %if-c-only Standard (non-C++) definition */
346 /* %if-not-reentrant */
347 /* %not-for-header */
348 
349 /* %ok-for-header */
350 
351 /* %endif */
352 /* %endif */
353 
354 void *HolidayScanneralloc (yy_size_t );
355 void *HolidayScannerrealloc (void *,yy_size_t );
356 void HolidayScannerfree (void * );
357 
358 #define yy_new_buffer yy_create_buffer
359 
360 #define yy_set_interactive(is_interactive) \
361  { \
362  if ( ! YY_CURRENT_BUFFER ){ \
363  yyensure_buffer_stack (); \
364  YY_CURRENT_BUFFER_LVALUE = \
365  yy_create_buffer( yyin, YY_BUF_SIZE ); \
366  } \
367  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
368  }
369 
370 #define yy_set_bol(at_bol) \
371  { \
372  if ( ! YY_CURRENT_BUFFER ){\
373  yyensure_buffer_stack (); \
374  YY_CURRENT_BUFFER_LVALUE = \
375  yy_create_buffer( yyin, YY_BUF_SIZE ); \
376  } \
377  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
378  }
379 
380 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
381 
382 /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
383 /* Begin user sect3 */
384 
385 #define FLEX_DEBUG
386 
387 typedef unsigned char YY_CHAR;
388 
389 #define yytext_ptr yytext
390 
391 #include <FlexLexer.h>
392 
393 /* %if-c-only Standard (non-C++) definition */
394 /* %endif */
395 
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up yytext.
398  */
399 #define YY_DO_BEFORE_ACTION \
400  (yytext_ptr) = yy_bp; \
401 /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
402  yyleng = (size_t) (yy_cp - yy_bp); \
403  (yy_hold_char) = *yy_cp; \
404  *yy_cp = '\0'; \
405 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
406  (yy_c_buf_p) = yy_cp;
407 
408 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
409 #define YY_NUM_RULES 202
410 #define YY_END_OF_BUFFER 203
411 /* This struct is not used in this scanner,
412  but its presence is necessary. */
413 struct yy_trans_info
414  {
415  flex_int32_t yy_verify;
416  flex_int32_t yy_nxt;
417  };
418 static yyconst flex_int16_t yy_accept[982] =
419  { 0,
420  0, 0, 203, 201, 3, 4, 5, 201, 201, 5,
421  201, 10, 10, 10, 10, 10, 10, 31, 201, 32,
422  201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
423  201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
424  201, 201, 201, 201, 5, 3, 4, 28, 0, 11,
425  0, 1, 33, 10, 0, 0, 0, 0, 0, 29,
426  27, 30, 0, 0, 0, 0, 0, 0, 0, 0,
427  0, 130, 0, 0, 0, 0, 0, 0, 0, 0,
428  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
429  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
430 
431  0, 0, 0, 18, 17, 0, 0, 0, 0, 0,
432  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
433  0, 0, 0, 0, 0, 15, 0, 0, 0, 0,
434  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
435  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
436  16, 0, 0, 0, 0, 0, 0, 34, 0, 2,
437  35, 36, 37, 38, 39, 0, 0, 0, 0, 41,
438  0, 116, 0, 0, 0, 0, 0, 0, 0, 0,
439  0, 0, 0, 0, 0, 13, 0, 191, 0, 0,
440  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
441 
442  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
443  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
444  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
445  0, 0, 0, 0, 0, 0, 62, 0, 0, 0,
446  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
447  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
448  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
449  0, 0, 114, 0, 0, 0, 0, 0, 0, 0,
450  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
451  0, 0, 0, 0, 103, 0, 0, 0, 0, 185,
452 
453  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
454  0, 189, 125, 0, 0, 0, 0, 0, 0, 190,
455  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
456  0, 14, 0, 0, 0, 0, 118, 131, 88, 0,
457  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
458  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
459  0, 0, 127, 0, 0, 0, 64, 0, 0, 63,
460  0, 0, 0, 0, 0, 0, 0, 40, 0, 0,
461  0, 172, 0, 0, 0, 188, 0, 0, 0, 0,
462  0, 0, 0, 0, 8, 0, 0, 42, 0, 0,
463 
464  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
465  0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
466  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
467  0, 0, 108, 0, 0, 0, 0, 0, 0, 0,
468  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
469  0, 0, 0, 0, 0, 0, 82, 0, 0, 0,
470  0, 0, 0, 21, 0, 0, 0, 0, 132, 44,
471  0, 61, 0, 0, 0, 0, 0, 0, 0, 0,
472  0, 46, 0, 0, 0, 0, 0, 0, 0, 0,
473  0, 0, 12, 0, 0, 39, 0, 35, 0, 0,
474 
475  0, 0, 0, 0, 109, 115, 0, 0, 101, 0,
476  141, 0, 0, 0, 0, 0, 0, 198, 0, 0,
477  0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
478  60, 0, 0, 0, 20, 0, 0, 0, 0, 0,
479  0, 126, 0, 0, 0, 0, 0, 87, 79, 0,
480  0, 0, 0, 171, 0, 0, 0, 0, 0, 95,
481  94, 0, 0, 0, 148, 0, 0, 0, 143, 0,
482  0, 0, 0, 0, 112, 0, 0, 0, 0, 0,
483  0, 0, 26, 0, 124, 128, 0, 0, 0, 0,
484  129, 0, 123, 37, 0, 0, 0, 0, 0, 0,
485 
486  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
487  133, 0, 0, 168, 65, 192, 43, 0, 0, 0,
488  0, 0, 77, 0, 0, 0, 0, 0, 23, 193,
489  0, 0, 0, 0, 38, 74, 107, 0, 0, 0,
490  80, 119, 0, 0, 0, 181, 0, 57, 0, 0,
491  169, 0, 122, 0, 0, 0, 25, 0, 0, 0,
492  83, 0, 89, 0, 70, 186, 0, 0, 110, 0,
493  0, 0, 0, 0, 0, 0, 24, 0, 0, 91,
494  0, 0, 0, 45, 117, 0, 0, 0, 0, 0,
495  0, 48, 0, 36, 0, 0, 149, 0, 0, 199,
496 
497  0, 0, 0, 0, 76, 102, 0, 78, 0, 0,
498  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
499  0, 0, 0, 0, 0, 0, 0, 165, 0, 0,
500  0, 162, 0, 6, 0, 0, 0, 0, 0, 0,
501  0, 0, 0, 0, 0, 121, 0, 0, 58, 0,
502  0, 184, 0, 0, 0, 105, 0, 0, 0, 106,
503  0, 54, 0, 67, 0, 111, 0, 0, 0, 86,
504  93, 173, 0, 0, 0, 0, 150, 180, 0, 0,
505  0, 0, 0, 0, 139, 0, 151, 0, 0, 0,
506  100, 0, 0, 0, 120, 0, 71, 0, 0, 104,
507 
508  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
509  0, 0, 0, 0, 0, 0, 0, 0, 51, 69,
510  0, 194, 0, 0, 59, 0, 0, 0, 177, 0,
511  0, 0, 0, 0, 7, 22, 113, 175, 99, 142,
512  68, 0, 0, 0, 85, 0, 92, 0, 0, 0,
513  179, 75, 55, 0, 195, 0, 166, 174, 0, 0,
514  0, 73, 97, 163, 0, 0, 0, 0, 0, 0,
515  0, 0, 0, 0, 136, 0, 134, 0, 0, 0,
516  167, 176, 0, 0, 0, 98, 182, 50, 0, 56,
517  0, 0, 0, 164, 0, 0, 0, 0, 96, 0,
518 
519  0, 47, 66, 187, 178, 0, 0, 72, 0, 0,
520  0, 0, 0, 0, 0, 200, 0, 140, 138, 0,
521  170, 0, 0, 0, 49, 53, 0, 0, 0, 90,
522  0, 197, 84, 144, 0, 0, 152, 0, 160, 0,
523  0, 0, 0, 159, 0, 135, 0, 0, 9, 0,
524  0, 0, 183, 0, 153, 0, 156, 0, 158, 0,
525  137, 196, 0, 0, 0, 0, 145, 0, 0, 0,
526  52, 0, 146, 0, 155, 154, 157, 161, 0, 147,
527  0
528  } ;
529 
530 static yyconst flex_int32_t yy_ec[256] =
531  { 0,
532  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
533  1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
534  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
535  1, 2, 4, 5, 6, 1, 7, 8, 1, 7,
536  7, 7, 7, 1, 7, 7, 7, 9, 10, 11,
537  12, 13, 14, 9, 9, 9, 9, 15, 1, 16,
538  17, 18, 7, 1, 19, 20, 21, 22, 23, 24,
539  25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
540  35, 36, 37, 38, 39, 40, 41, 1, 42, 43,
541  7, 1, 7, 1, 1, 1, 44, 45, 46, 47,
542 
543  48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
544  58, 59, 60, 61, 62, 63, 64, 65, 66, 1,
545  67, 68, 1, 69, 1, 1, 1, 1, 1, 1,
546  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
547  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
548  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
549  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
550  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
551  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
552  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
553 
554  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
555  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
556  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
557  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
558  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
559  1, 1, 1, 1, 1
560  } ;
561 
562 static yyconst flex_int32_t yy_meta[70] =
563  { 0,
564  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
565  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
566  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
567  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
568  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
569  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
570  1, 1, 1, 1, 1, 1, 1, 1, 1
571  } ;
572 
573 static yyconst flex_int16_t yy_base[985] =
574  { 0,
575  0, 415, 427, 2013, 424, 422, 407, 380, 378, 2013,
576  371, 61, 67, 73, 79, 85, 97, 361, 243, 217,
577  141, 93, 87, 98, 191, 135, 191, 188, 184, 83,
578  238, 105, 239, 240, 249, 292, 95, 290, 338, 384,
579  115, 141, 293, 135, 182, 180, 152, 2013, 147, 2013,
580  133, 2013, 2013, 440, 129, 147, 148, 146, 148, 2013,
581  2013, 2013, 157, 193, 175, 182, 177, 184, 202, 197,
582  236, 2013, 249, 243, 250, 256, 254, 258, 239, 286,
583  250, 265, 287, 282, 284, 288, 289, 312, 334, 336,
584  340, 330, 347, 344, 330, 343, 340, 333, 351, 339,
585 
586  377, 384, 381, 2013, 390, 395, 390, 425, 397, 383,
587  425, 440, 421, 429, 443, 463, 439, 436, 437, 438,
588  440, 446, 442, 474, 468, 2013, 486, 515, 488, 490,
589  471, 523, 484, 496, 496, 535, 489, 501, 521, 531,
590  582, 566, 518, 530, 558, 538, 569, 584, 559, 555,
591  579, 585, 586, 603, 606, 618, 609, 2013, 130, 2013,
592  2013, 2013, 2013, 2013, 2013, 611, 610, 626, 632, 2013,
593  625, 2013, 634, 615, 619, 625, 624, 636, 633, 637,
594  634, 635, 629, 637, 635, 648, 664, 2013, 669, 667,
595  657, 674, 667, 665, 682, 675, 667, 664, 669, 668,
596 
597  688, 671, 673, 689, 693, 691, 691, 678, 705, 697,
598  689, 718, 714, 707, 707, 719, 711, 730, 712, 725,
599  734, 731, 728, 718, 722, 733, 731, 735, 739, 728,
600  739, 750, 768, 748, 765, 772, 2013, 759, 770, 758,
601  782, 780, 782, 786, 783, 788, 789, 775, 788, 780,
602  787, 777, 789, 791, 812, 819, 800, 806, 814, 817,
603  812, 831, 819, 820, 821, 825, 837, 830, 839, 840,
604  834, 836, 2013, 845, 839, 828, 840, 838, 852, 855,
605  867, 855, 868, 875, 872, 878, 880, 883, 884, 868,
606  883, 869, 869, 870, 2013, 888, 877, 881, 904, 2013,
607 
608  891, 889, 912, 900, 906, 912, 926, 927, 911, 912,
609  930, 2013, 925, 917, 928, 925, 934, 930, 922, 2013,
610  942, 927, 928, 954, 956, 947, 957, 967, 966, 956,
611  956, 2013, 965, 961, 980, 978, 2013, 2013, 2013, 970,
612  970, 962, 986, 967, 981, 976, 971, 973, 994, 981,
613  980, 984, 983, 1002, 998, 1004, 1017, 1007, 1004, 1018,
614  1013, 1028, 2013, 1019, 1032, 1033, 2013, 1034, 1031, 2013,
615  1018, 1029, 1035, 1029, 1036, 1034, 1024, 2013, 1022, 1028,
616  1047, 2013, 1050, 1056, 1059, 2013, 1060, 1067, 1057, 1057,
617  1052, 1077, 1078, 1063, 1079, 1065, 1071, 2013, 1073, 1085,
618 
619  1086, 1076, 1071, 1086, 1088, 1082, 1081, 1090, 1084, 1097,
620  1092, 1116, 1112, 2013, 1120, 1112, 1105, 1106, 1119, 1116,
621  1130, 1131, 1130, 1134, 1129, 1119, 1116, 1121, 1125, 1126,
622  1129, 1130, 2013, 1141, 1147, 1173, 1137, 1155, 1144, 1149,
623  1150, 1156, 1163, 1156, 1178, 1180, 1182, 1159, 1180, 1166,
624  1183, 1167, 1177, 1171, 1173, 1184, 2013, 1191, 1188, 1193,
625  1185, 1195, 1216, 2013, 1211, 1214, 1219, 1217, 1217, 2013,
626  1226, 2013, 1221, 1217, 1213, 1220, 1230, 1235, 1215, 1220,
627  1221, 2013, 1227, 1238, 1225, 1227, 1244, 1239, 1241, 1239,
628  1263, 1253, 2013, 1254, 1273, 2013, 1272, 2013, 1268, 1253,
629 
630  1258, 1265, 1263, 1282, 2013, 2013, 1266, 1262, 2013, 1285,
631  2013, 1269, 1274, 1280, 1272, 1277, 1289, 2013, 1287, 1285,
632  1297, 2013, 1283, 1293, 1316, 1314, 1314, 1315, 1318, 1314,
633  2013, 1309, 1310, 1324, 2013, 1307, 1309, 1330, 1317, 1335,
634  1332, 2013, 1336, 1334, 1335, 1336, 1335, 2013, 2013, 1337,
635  1325, 1347, 1341, 2013, 1342, 1346, 1348, 1371, 1369, 2013,
636  2013, 1372, 1371, 1365, 2013, 1377, 1361, 1372, 2013, 1382,
637  1380, 1373, 1372, 1383, 2013, 1375, 1375, 1376, 1390, 1384,
638  1390, 1395, 2013, 1397, 2013, 2013, 1404, 1385, 1393, 1400,
639  2013, 1409, 2013, 2013, 1404, 1417, 1422, 1422, 1427, 1428,
640 
641  1430, 1414, 1426, 1416, 1425, 1437, 1438, 1418, 1422, 1462,
642  2013, 1419, 1444, 2013, 2013, 2013, 2013, 1432, 1454, 1438,
643  1468, 1457, 2013, 1451, 1475, 1472, 1462, 1477, 2013, 2013,
644  1472, 1479, 1466, 1476, 2013, 2013, 2013, 1473, 1478, 1470,
645  2013, 2013, 1475, 1481, 1477, 2013, 1469, 2013, 1494, 1478,
646  2013, 1501, 2013, 1506, 1510, 1518, 2013, 1501, 1508, 1502,
647  2013, 1520, 2013, 1525, 2013, 2013, 1526, 1504, 2013, 1524,
648  1513, 1525, 1520, 1534, 1521, 1517, 2013, 1519, 1518, 2013,
649  1526, 1521, 1529, 2013, 2013, 1547, 1531, 1554, 1542, 1551,
650  1570, 2013, 1571, 2013, 1572, 1573, 2013, 1556, 1555, 2013,
651 
652  1566, 1565, 1563, 1582, 2013, 2013, 1564, 2013, 1576, 1577,
653  1586, 1564, 1578, 1566, 1580, 1589, 1575, 1590, 1616, 1591,
654  1594, 1610, 1613, 1608, 1605, 1619, 1628, 2013, 1630, 1615,
655  1626, 2013, 1618, 2013, 1625, 1620, 1619, 1635, 1640, 1634,
656  1621, 1647, 1650, 1656, 1666, 2013, 1666, 1670, 2013, 1671,
657  1666, 2013, 1673, 1671, 1659, 2013, 1663, 1678, 1668, 2013,
658  1670, 2013, 1666, 2013, 1680, 2013, 1672, 1667, 1683, 2013,
659  2013, 2013, 1674, 1670, 1668, 1685, 2013, 2013, 1674, 1697,
660  1681, 1695, 1712, 1714, 2013, 1720, 2013, 1721, 1723, 1707,
661  2013, 1716, 1723, 1704, 2013, 1724, 2013, 1723, 1732, 2013,
662 
663  1713, 1727, 1716, 1716, 1730, 1738, 1738, 1732, 1734, 1733,
664  1746, 1749, 1748, 1755, 1767, 1771, 1773, 1774, 2013, 2013,
665  1767, 2013, 1763, 1764, 2013, 1767, 1767, 1769, 2013, 1783,
666  1765, 1774, 1786, 1773, 2013, 2013, 2013, 2013, 2013, 2013,
667  2013, 1770, 1788, 1786, 2013, 1779, 2013, 1794, 1797, 1786,
668  2013, 2013, 2013, 1789, 2013, 1799, 2013, 2013, 1818, 1811,
669  1821, 2013, 2013, 2013, 1800, 1813, 1825, 1825, 1820, 1816,
670  1830, 1831, 1829, 1816, 2013, 1822, 2013, 1828, 1830, 1838,
671  2013, 2013, 1826, 1821, 1828, 2013, 2013, 2013, 1825, 2013,
672  1836, 1846, 1856, 2013, 1847, 1861, 1866, 1856, 2013, 1862,
673 
674  1874, 2013, 2013, 2013, 2013, 1876, 1870, 2013, 1878, 1877,
675  1874, 1870, 1872, 1873, 1867, 2013, 1880, 2013, 2013, 1880,
676  2013, 1888, 1882, 1879, 2013, 2013, 1880, 1875, 1897, 2013,
677  1887, 2013, 2013, 2013, 1903, 1911, 2013, 1901, 2013, 1921,
678  1923, 1924, 1921, 2013, 1918, 2013, 1923, 1907, 2013, 1917,
679  1932, 1933, 2013, 1926, 2013, 1928, 2013, 1928, 2013, 1933,
680  2013, 2013, 1934, 1939, 1929, 1942, 2013, 1944, 1934, 1936,
681  2013, 1945, 2013, 1953, 2013, 2013, 2013, 2013, 1960, 2013,
682  2013, 102, 100, 99
683  } ;
684 
685 static yyconst flex_int16_t yy_def[985] =
686  { 0,
687  981, 1, 981, 981, 981, 981, 981, 982, 983, 981,
688  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
689  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
690  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
691  981, 981, 981, 981, 984, 981, 981, 981, 982, 981,
692  983, 981, 981, 981, 981, 981, 981, 981, 981, 981,
693  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
694  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
695  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
696  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
697 
698  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
699  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
700  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
701  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
702  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
703  981, 981, 981, 981, 981, 981, 981, 981, 984, 981,
704  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
705  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
706  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
707  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
708 
709  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
710  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
711  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
712  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
713  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
714  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
715  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
716  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
717  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
718  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
719 
720  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
721  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
722  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
723  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
724  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
725  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
726  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
727  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
728  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
729  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
730 
731  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
732  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
733  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
734  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
735  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
736  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
737  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
738  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
739  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
740  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
741 
742  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
743  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
744  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
745  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
746  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
747  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
748  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
749  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
750  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
751  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
752 
753  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
754  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
755  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
756  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
757  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
758  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
759  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
760  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
761  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
762  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
763 
764  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
765  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
766  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
767  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
768  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
769  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
770  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
771  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
772  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
773  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
774 
775  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
776  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
777  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
778  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
779  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
780  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
781  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
782  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
783  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
784  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
785 
786  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
787  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
788  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
789  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
790  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
791  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
792  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
793  981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
794  0, 981, 981, 981
795  } ;
796 
797 static yyconst flex_int16_t yy_nxt[2083] =
798  { 0,
799  4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
800  14, 15, 16, 17, 10, 18, 19, 20, 21, 22,
801  23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
802  33, 34, 35, 36, 37, 38, 39, 40, 4, 41,
803  42, 43, 4, 21, 22, 23, 24, 25, 26, 27,
804  28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
805  38, 39, 40, 4, 41, 42, 43, 4, 44, 54,
806  54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
807  54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
808  54, 54, 54, 54, 54, 54, 54, 54, 54, 159,
809 
810  51, 107, 49, 55, 56, 54, 54, 54, 54, 54,
811  54, 74, 78, 79, 57, 75, 82, 135, 76, 80,
812  83, 108, 58, 114, 109, 81, 107, 115, 55, 56,
813  84, 77, 160, 153, 59, 52, 74, 78, 79, 57,
814  75, 82, 135, 76, 80, 83, 108, 58, 114, 109,
815  81, 50, 115, 92, 47, 84, 77, 93, 153, 59,
816  63, 94, 64, 154, 65, 66, 161, 95, 162, 163,
817  96, 164, 67, 165, 68, 166, 69, 70, 92, 71,
818  72, 46, 93, 73, 160, 63, 94, 64, 154, 65,
819  66, 161, 95, 162, 163, 96, 164, 67, 165, 68,
820 
821  166, 69, 70, 158, 71, 72, 101, 104, 73, 85,
822  102, 167, 168, 97, 103, 105, 86, 169, 170, 171,
823  87, 172, 173, 98, 88, 106, 99, 89, 90, 100,
824  91, 101, 104, 62, 85, 102, 167, 168, 97, 103,
825  105, 86, 169, 170, 171, 87, 172, 173, 98, 88,
826  106, 99, 89, 90, 100, 91, 110, 116, 121, 61,
827  174, 117, 122, 111, 112, 118, 123, 175, 176, 125,
828  113, 119, 124, 177, 178, 179, 180, 120, 181, 185,
829  126, 110, 116, 121, 127, 174, 117, 122, 111, 112,
830  118, 123, 175, 176, 125, 113, 119, 124, 177, 178,
831 
832  179, 180, 120, 181, 185, 126, 186, 187, 136, 127,
833  128, 155, 137, 188, 129, 156, 182, 130, 190, 183,
834  191, 131, 138, 189, 184, 157, 192, 193, 132, 133,
835  134, 186, 187, 136, 194, 128, 155, 137, 188, 129,
836  156, 182, 130, 190, 183, 191, 131, 138, 189, 184,
837  157, 192, 193, 132, 133, 134, 139, 195, 140, 194,
838  141, 196, 197, 142, 143, 198, 199, 200, 203, 204,
839  144, 205, 206, 207, 208, 201, 145, 60, 53, 202,
840  52, 139, 195, 140, 50, 141, 196, 197, 142, 143,
841  198, 199, 200, 203, 204, 144, 205, 206, 207, 208,
842 
843  201, 145, 146, 211, 202, 212, 147, 209, 214, 148,
844  149, 216, 150, 217, 210, 223, 151, 215, 224, 218,
845  213, 219, 152, 48, 47, 46, 981, 146, 211, 45,
846  212, 147, 209, 214, 148, 149, 216, 150, 217, 210,
847  223, 151, 215, 224, 218, 213, 219, 152, 54, 54,
848  54, 54, 54, 54, 220, 221, 222, 225, 226, 228,
849  229, 231, 981, 244, 238, 230, 981, 240, 242, 981,
850  245, 246, 243, 981, 232, 239, 227, 241, 247, 220,
851  221, 222, 225, 226, 228, 229, 231, 233, 244, 238,
852  230, 234, 240, 242, 235, 245, 246, 243, 236, 232,
853 
854  239, 227, 241, 247, 237, 250, 248, 251, 260, 261,
855  265, 258, 233, 249, 981, 266, 234, 267, 272, 235,
856  273, 981, 981, 236, 259, 981, 981, 981, 981, 237,
857  250, 248, 251, 260, 261, 265, 258, 981, 249, 252,
858  266, 262, 267, 272, 274, 273, 253, 254, 263, 259,
859  255, 256, 275, 257, 268, 264, 277, 288, 276, 981,
860  289, 981, 269, 292, 252, 270, 262, 981, 293, 274,
861  981, 253, 254, 263, 271, 255, 256, 275, 257, 268,
862  264, 277, 288, 276, 284, 289, 290, 269, 292, 291,
863  270, 981, 285, 293, 300, 301, 302, 981, 303, 271,
864 
865  278, 286, 279, 294, 295, 287, 280, 304, 296, 284,
866  297, 290, 305, 281, 291, 282, 298, 285, 283, 300,
867  301, 302, 299, 303, 306, 278, 286, 279, 294, 295,
868  287, 280, 304, 296, 307, 297, 309, 305, 281, 311,
869  282, 298, 312, 283, 308, 313, 310, 299, 314, 306,
870  315, 316, 317, 319, 320, 321, 322, 323, 324, 307,
871  327, 309, 325, 326, 311, 328, 329, 312, 330, 308,
872  313, 310, 331, 314, 318, 315, 316, 317, 319, 320,
873  321, 322, 323, 324, 332, 327, 333, 325, 326, 334,
874  328, 329, 335, 330, 336, 337, 338, 331, 339, 318,
875 
876  340, 341, 342, 343, 344, 345, 346, 347, 348, 332,
877  349, 333, 350, 351, 334, 352, 353, 335, 981, 336,
878  337, 338, 356, 339, 357, 340, 341, 342, 343, 344,
879  345, 346, 347, 348, 354, 349, 358, 350, 351, 359,
880  352, 353, 360, 355, 361, 362, 363, 356, 364, 357,
881  365, 366, 368, 370, 371, 372, 369, 373, 374, 354,
882  375, 358, 376, 377, 359, 378, 367, 360, 355, 361,
883  362, 363, 379, 364, 380, 365, 366, 368, 370, 371,
884  372, 369, 373, 374, 383, 375, 381, 376, 377, 384,
885  378, 367, 385, 382, 386, 387, 390, 379, 388, 380,
886 
887  391, 392, 389, 393, 394, 395, 396, 397, 398, 383,
888  399, 381, 400, 401, 384, 402, 403, 385, 382, 386,
889  387, 390, 404, 388, 405, 391, 392, 389, 393, 394,
890  395, 396, 397, 398, 406, 399, 410, 400, 401, 408,
891  402, 403, 407, 411, 409, 412, 413, 404, 414, 405,
892  415, 416, 417, 418, 419, 420, 421, 422, 423, 406,
893  424, 410, 425, 426, 408, 427, 428, 407, 411, 409,
894  412, 413, 429, 414, 430, 415, 416, 417, 418, 419,
895  420, 421, 422, 423, 431, 424, 432, 425, 426, 433,
896  427, 428, 434, 435, 436, 440, 441, 429, 442, 430,
897 
898  437, 443, 444, 445, 446, 447, 438, 448, 449, 431,
899  450, 432, 451, 452, 433, 439, 455, 434, 435, 436,
900  440, 441, 453, 442, 456, 437, 443, 444, 445, 446,
901  447, 438, 448, 449, 457, 450, 458, 451, 452, 454,
902  439, 455, 459, 460, 461, 462, 464, 453, 465, 456,
903  466, 469, 470, 471, 472, 473, 474, 463, 475, 457,
904  476, 458, 477, 478, 454, 467, 468, 459, 460, 461,
905  462, 464, 479, 465, 480, 466, 469, 470, 471, 472,
906  473, 474, 463, 475, 481, 476, 482, 477, 478, 483,
907  467, 468, 484, 485, 486, 487, 488, 479, 489, 480,
908 
909  490, 491, 492, 493, 494, 495, 496, 497, 498, 481,
910  499, 482, 500, 501, 483, 502, 503, 484, 485, 486,
911  487, 488, 504, 489, 505, 490, 491, 492, 493, 494,
912  495, 496, 497, 498, 506, 499, 507, 500, 501, 508,
913  502, 503, 509, 510, 511, 512, 513, 504, 514, 505,
914  515, 516, 517, 518, 519, 520, 521, 522, 523, 506,
915  524, 507, 525, 526, 508, 527, 528, 509, 510, 511,
916  512, 513, 529, 514, 530, 515, 516, 517, 518, 519,
917  520, 521, 522, 523, 531, 524, 532, 525, 526, 533,
918  527, 528, 534, 535, 536, 537, 538, 529, 539, 530,
919 
920  540, 541, 542, 543, 544, 545, 546, 547, 548, 531,
921  549, 532, 550, 551, 533, 552, 553, 534, 535, 536,
922  537, 538, 554, 539, 555, 540, 541, 542, 543, 544,
923  545, 546, 547, 548, 556, 549, 557, 550, 551, 558,
924  552, 553, 559, 560, 561, 562, 563, 554, 564, 555,
925  565, 566, 567, 568, 569, 570, 571, 572, 573, 556,
926  574, 557, 575, 576, 558, 577, 981, 559, 560, 561,
927  562, 563, 580, 564, 581, 565, 566, 567, 568, 569,
928  570, 571, 572, 573, 582, 574, 583, 575, 576, 584,
929  577, 578, 579, 585, 586, 587, 588, 580, 589, 581,
930 
931  590, 591, 592, 593, 594, 595, 596, 597, 598, 582,
932  599, 583, 600, 601, 584, 602, 578, 579, 585, 586,
933  587, 588, 603, 589, 604, 590, 591, 592, 593, 594,
934  595, 596, 597, 598, 605, 599, 606, 600, 601, 607,
935  602, 608, 610, 611, 612, 609, 613, 603, 614, 604,
936  615, 616, 617, 618, 619, 620, 621, 622, 623, 605,
937  624, 606, 625, 626, 607, 627, 608, 610, 611, 612,
938  609, 613, 628, 614, 629, 615, 616, 617, 618, 619,
939  620, 621, 622, 623, 630, 624, 631, 625, 626, 632,
940  627, 633, 634, 635, 636, 637, 638, 628, 639, 629,
941 
942  640, 641, 642, 643, 644, 645, 646, 647, 648, 630,
943  649, 631, 650, 651, 632, 652, 633, 634, 635, 636,
944  637, 638, 653, 639, 654, 640, 641, 642, 643, 644,
945  645, 646, 647, 648, 655, 649, 656, 650, 651, 657,
946  652, 658, 659, 660, 661, 662, 663, 653, 664, 654,
947  665, 666, 667, 668, 669, 670, 671, 672, 673, 655,
948  674, 656, 675, 676, 657, 677, 658, 659, 660, 661,
949  662, 663, 678, 664, 679, 665, 666, 667, 668, 669,
950  670, 671, 672, 673, 680, 674, 681, 675, 676, 682,
951  677, 683, 684, 685, 686, 687, 688, 678, 689, 679,
952 
953  690, 691, 692, 693, 694, 695, 696, 697, 698, 680,
954  699, 681, 700, 701, 682, 702, 683, 684, 685, 686,
955  687, 688, 703, 689, 704, 690, 691, 692, 693, 694,
956  695, 696, 697, 698, 705, 699, 706, 700, 701, 707,
957  702, 708, 709, 711, 712, 713, 714, 703, 715, 704,
958  716, 710, 717, 718, 719, 720, 721, 722, 723, 705,
959  727, 706, 728, 981, 707, 729, 708, 709, 711, 712,
960  713, 714, 730, 715, 731, 716, 710, 717, 718, 719,
961  720, 721, 722, 723, 724, 727, 732, 728, 725, 733,
962  729, 726, 734, 735, 736, 737, 738, 730, 739, 731,
963 
964  740, 741, 742, 743, 744, 745, 746, 747, 748, 724,
965  749, 732, 750, 725, 733, 751, 726, 734, 735, 736,
966  737, 738, 752, 739, 753, 740, 741, 742, 743, 744,
967  745, 746, 747, 748, 754, 749, 755, 750, 756, 757,
968  751, 758, 759, 760, 761, 762, 763, 752, 764, 753,
969  765, 766, 767, 768, 769, 770, 771, 772, 773, 754,
970  774, 755, 777, 756, 757, 775, 758, 759, 760, 761,
971  762, 763, 778, 764, 779, 765, 766, 767, 768, 769,
972  770, 771, 772, 773, 776, 774, 780, 777, 781, 782,
973  775, 783, 784, 785, 786, 787, 788, 778, 789, 779,
974 
975  790, 791, 792, 793, 794, 795, 796, 797, 798, 776,
976  799, 780, 800, 781, 782, 801, 783, 784, 785, 786,
977  787, 788, 807, 789, 808, 790, 791, 792, 793, 794,
978  795, 796, 797, 798, 802, 799, 809, 800, 810, 811,
979  801, 812, 803, 804, 805, 813, 814, 807, 815, 808,
980  816, 817, 806, 818, 819, 820, 821, 822, 823, 802,
981  824, 809, 825, 810, 811, 826, 812, 803, 804, 805,
982  813, 814, 827, 815, 828, 816, 817, 806, 818, 819,
983  820, 821, 822, 823, 829, 824, 830, 825, 831, 832,
984  826, 833, 834, 835, 836, 837, 838, 827, 839, 828,
985 
986  840, 841, 842, 843, 844, 845, 846, 847, 848, 829,
987  849, 830, 850, 831, 832, 851, 833, 834, 835, 836,
988  837, 838, 852, 839, 853, 840, 841, 842, 843, 844,
989  845, 846, 847, 848, 854, 849, 855, 850, 856, 857,
990  851, 858, 859, 860, 861, 862, 863, 852, 864, 853,
991  865, 866, 867, 869, 870, 871, 872, 873, 874, 854,
992  875, 855, 868, 856, 857, 876, 858, 859, 860, 861,
993  862, 863, 877, 864, 878, 865, 866, 867, 869, 870,
994  871, 872, 873, 874, 879, 875, 880, 868, 881, 882,
995  876, 883, 884, 885, 886, 887, 888, 877, 889, 878,
996 
997  890, 891, 892, 893, 894, 895, 896, 897, 898, 879,
998  899, 880, 900, 881, 882, 901, 883, 884, 885, 886,
999  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 by Thomas Driemeyer <thomas@bitrot.de>
1300 
1301  Adapted for use in KOrganizer by
1302  Preston Brown <pbrown@kde.org> and
1303  Reinhold Kainhofer <reinhold@kainhofer.com>
1304 
1305  Major rewrite using Bison C++ skeleton:
1306  Copyright 2010 John Layt <john@layt.net>
1307 
1308  This library is free software; you can redistribute it and/or
1309  modify it under the terms of the GNU Library General Public
1310  License as published by the Free Software Foundation; either
1311  version 2 of the License, or (at your option) any later version.
1312 
1313  This library is distributed in the hope that it will be useful,
1314  but WITHOUT ANY WARRANTY; without even the implied warranty of
1315  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1316  GNU Library General Public License for more details.
1317 
1318  You should have received a copy of the GNU Library General Public License
1319  along with this library; see the file COPYING.LIB. If not, write to the
1320  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
1321  Boston, MA 02110-1301, USA.
1322 */
1323 #line 28 "holidayscannerplan.lpp"
1324 # include <cstdlib>
1325 # include <errno.h>
1326 # include <limits.h>
1327 # include <string>
1328 
1329 # include <kdebug.h>
1330 
1331 # include "holidayscannerplan_p.h"
1332 # include "holidayparserdriverplan_p.h"
1333 # include "holidayparserplan.hpp"
1334 
1335 /* import the parser's token type into a local typedef */
1336 typedef KHolidays::HolidayParserPlan::token token;
1337 typedef KHolidays::HolidayParserPlan::token_type token_type;
1338 
1339 /* By default yylex returns int, we use token_type. Unfortunately yyterminate
1340  * by default returns 0, which is not of token_type. */
1341 # define yyterminate() return token::END
1342 
1343 /* This disables inclusion of unistd.h, which is not available under Visual C++
1344  * on Win32. The C++ scanner uses STL streams instead. */
1345 # define YY_NO_UNISTD_H
1346 /*** Flex Declarations and Options ***/
1347 /* enable c++ scanner class generation */
1348 /* change the name of the scanner class. results in "HolidayScannerFlexLexer" */
1349 /* the manual says "somewhat more optimized" */
1350 /* enable scanner to generate debug output. disable this for release
1351  * versions. */
1352 /* no support for include files is planned */
1353 /* enables the use of start condition stacks */
1354 /* The following paragraph suffices to track locations accurately. Each time
1355  * yylex is invoked, the begin position is moved onto the end position. */
1356 #line 78 "holidayscannerplan.lpp"
1357 # define YY_USER_ACTION yylloc->columns( yyleng );
1358 #line 1359 "holidayscannerplan.cpp"
1359 
1360 #define INITIAL 0
1361 
1362 #ifndef YY_NO_UNISTD_H
1363 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1364  * down here because we want the user's section 1 to have been scanned first.
1365  * The user has a chance to override it with an option.
1366  */
1367 /* %if-c-only */
1368 /* %endif */
1369 /* %if-c++-only */
1370 #include <unistd.h>
1371 /* %endif */
1372 #endif
1373 
1374 #ifndef YY_EXTRA_TYPE
1375 #define YY_EXTRA_TYPE void *
1376 #endif
1377 
1378 /* %if-c-only Reentrant structure and macros (non-C++). */
1379 /* %if-reentrant */
1380 /* %if-c-only */
1381 /* %endif */
1382 /* %if-reentrant */
1383 /* %endif */
1384 /* %endif End reentrant structures and macros. */
1385 /* %if-bison-bridge */
1386 /* %endif */
1387 /* %not-for-header */
1388 
1389 /* %ok-for-header */
1390 
1391 /* %endif */
1392 
1393 #ifndef yytext_ptr
1394 static void yy_flex_strncpy (char *,yyconst char *,int );
1395 #endif
1396 
1397 #ifdef YY_NEED_STRLEN
1398 static int yy_flex_strlen (yyconst char * );
1399 #endif
1400 
1401 #ifndef YY_NO_INPUT
1402 /* %if-c-only Standard (non-C++) definition */
1403 /* %not-for-header */
1404 
1405 /* %ok-for-header */
1406 
1407 /* %endif */
1408 #endif
1409 
1410 /* %if-c-only */
1411 /* %endif */
1412 
1413 /* Amount of stuff to slurp up with each read. */
1414 #ifndef YY_READ_BUF_SIZE
1415 #ifdef __ia64__
1416 /* On IA-64, the buffer size is 16k, not 8k */
1417 #define YY_READ_BUF_SIZE 16384
1418 #else
1419 #define YY_READ_BUF_SIZE 8192
1420 #endif /* __ia64__ */
1421 #endif
1422 
1423 /* Copy whatever the last rule matched to the standard output. */
1424 #ifndef ECHO
1425 /* %if-c-only Standard (non-C++) definition */
1426 /* %endif */
1427 /* %if-c++-only C++ definition */
1428 #define ECHO LexerOutput( yytext, yyleng )
1429 /* %endif */
1430 #endif
1431 
1432 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1433  * is returned in "result".
1434  */
1435 #ifndef YY_INPUT
1436 #define YY_INPUT(buf,result,max_size) \
1437 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
1438 \
1439 /* %if-c++-only C++ definition \ */\
1440  if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \
1441  YY_FATAL_ERROR( "input in flex scanner failed" );
1442 /* %endif */
1443 
1444 #endif
1445 
1446 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1447  * we don't want an extra ';' after the "return" because that will cause
1448  * some compilers to complain about unreachable statements.
1449  */
1450 #ifndef yyterminate
1451 #define yyterminate() return YY_NULL
1452 #endif
1453 
1454 /* Number of entries by which start-condition stack grows. */
1455 #ifndef YY_START_STACK_INCR
1456 #define YY_START_STACK_INCR 25
1457 #endif
1458 
1459 /* Report a fatal error. */
1460 #ifndef YY_FATAL_ERROR
1461 /* %if-c-only */
1462 /* %endif */
1463 /* %if-c++-only */
1464 #define YY_FATAL_ERROR(msg) LexerError( msg )
1465 /* %endif */
1466 #endif
1467 
1468 /* %if-tables-serialization structures and prototypes */
1469 /* %not-for-header */
1470 
1471 /* %ok-for-header */
1472 
1473 /* %not-for-header */
1474 
1475 /* %tables-yydmap generated elements */
1476 /* %endif */
1477 /* end tables serialization structures and prototypes */
1478 
1479 /* %ok-for-header */
1480 
1481 /* Default declaration of generated scanner - a define so the user can
1482  * easily add parameters.
1483  */
1484 #ifndef YY_DECL
1485 #define YY_DECL_IS_OURS 1
1486 /* %if-c-only Standard (non-C++) definition */
1487 /* %endif */
1488 /* %if-c++-only C++ definition */
1489 #define YY_DECL int yyFlexLexer::yylex()
1490 /* %endif */
1491 #endif /* !YY_DECL */
1492 
1493 /* Code executed at the beginning of each rule, after yytext and yyleng
1494  * have been set up.
1495  */
1496 #ifndef YY_USER_ACTION
1497 #define YY_USER_ACTION
1498 #endif
1499 
1500 /* Code executed at the end of each rule. */
1501 #ifndef YY_BREAK
1502 #define YY_BREAK break;
1503 #endif
1504 
1505 /* %% [6.0] YY_RULE_SETUP definition goes here */
1506 #define YY_RULE_SETUP \
1507  if ( yyleng > 0 ) \
1508  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1509  (yytext[yyleng - 1] == '\n'); \
1510  YY_USER_ACTION
1511 
1512 /* %not-for-header */
1513 
1516 YY_DECL
1517 {
1518  register yy_state_type yy_current_state;
1519  register char *yy_cp, *yy_bp;
1520  register int yy_act;
1521 
1522 /* %% [7.0] user's declarations go here */
1523 #line 81 "holidayscannerplan.lpp"
1524 
1525 
1526 
1527  /* code to place at the beginning of yylex() */
1528  // reset location
1529  yylloc->step();
1530 
1531 
1532 #line 1533 "holidayscannerplan.cpp"
1533 
1534  if ( !(yy_init) )
1535  {
1536  (yy_init) = 1;
1537 
1538 #ifdef YY_USER_INIT
1539  YY_USER_INIT;
1540 #endif
1541 
1542  if ( ! (yy_start) )
1543  (yy_start) = 1; /* first start state */
1544 
1545  if ( ! yyin )
1546 /* %if-c-only */
1547 /* %endif */
1548 /* %if-c++-only */
1549  yyin = & std::cin;
1550 /* %endif */
1551 
1552  if ( ! yyout )
1553 /* %if-c-only */
1554 /* %endif */
1555 /* %if-c++-only */
1556  yyout = & std::cout;
1557 /* %endif */
1558 
1559  if ( ! YY_CURRENT_BUFFER ) {
1560  yyensure_buffer_stack ();
1561  YY_CURRENT_BUFFER_LVALUE =
1562  yy_create_buffer( yyin, YY_BUF_SIZE );
1563  }
1564 
1565  yy_load_buffer_state( );
1566  }
1567 
1568  while ( 1 ) /* loops until end-of-file is reached */
1569  {
1570 /* %% [8.0] yymore()-related code goes here */
1571  yy_cp = (yy_c_buf_p);
1572 
1573  /* Support of yytext. */
1574  *yy_cp = (yy_hold_char);
1575 
1576  /* yy_bp points to the position in yy_ch_buf of the start of
1577  * the current run.
1578  */
1579  yy_bp = yy_cp;
1580 
1581 /* %% [9.0] code to set up and find next match goes here */
1582  yy_current_state = (yy_start);
1583  yy_current_state += YY_AT_BOL();
1584 yy_match:
1585  do
1586  {
1587  register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1588  if ( yy_accept[yy_current_state] )
1589  {
1590  (yy_last_accepting_state) = yy_current_state;
1591  (yy_last_accepting_cpos) = yy_cp;
1592  }
1593  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1594  {
1595  yy_current_state = (int) yy_def[yy_current_state];
1596  if ( yy_current_state >= 982 )
1597  yy_c = yy_meta[(unsigned int) yy_c];
1598  }
1599  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1600  ++yy_cp;
1601  }
1602  while ( yy_current_state != 981 );
1603  yy_cp = (yy_last_accepting_cpos);
1604  yy_current_state = (yy_last_accepting_state);
1605 
1606 yy_find_action:
1607 /* %% [10.0] code to find the action number goes here */
1608  yy_act = yy_accept[yy_current_state];
1609 
1610  YY_DO_BEFORE_ACTION;
1611 
1612 /* %% [11.0] code for yylineno update goes here */
1613 
1614 do_action: /* This label is used only to access EOF actions. */
1615 
1616 /* %% [12.0] debug code goes here */
1617  if ( yy_flex_debug )
1618  {
1619  if ( yy_act == 0 )
1620  std::cerr << "--scanner backing up\n";
1621  else if ( yy_act < 202 )
1622  std::cerr << "--accepting rule at line " << yy_rule_linenum[yy_act] <<
1623  "(\"" << yytext << "\")\n";
1624  else if ( yy_act == 202 )
1625  std::cerr << "--accepting default rule (\"" << yytext << "\")\n";
1626  else if ( yy_act == 203 )
1627  std::cerr << "--(end of buffer or a NUL)\n";
1628  else
1629  std::cerr << "--EOF (start condition " << YY_START << ")\n";
1630  }
1631 
1632  switch ( yy_act )
1633  { /* beginning of action switch */
1634 /* %% [13.0] actions go here */
1635  case 0: /* must back up */
1636  /* undo the effects of YY_DO_BEFORE_ACTION */
1637  *yy_cp = (yy_hold_char);
1638  yy_cp = (yy_last_accepting_cpos);
1639  yy_current_state = (yy_last_accepting_state);
1640  goto yy_find_action;
1641 
1642 case 1:
1643 /* rule 1 can match eol */
1644 YY_RULE_SETUP
1645 #line 89 "holidayscannerplan.lpp"
1646 { yylloc->lines( yyleng ); yylloc->step(); }
1647  YY_BREAK
1648 case 2:
1649 /* rule 2 can match eol */
1650 YY_RULE_SETUP
1651 #line 90 "holidayscannerplan.lpp"
1652 { yylloc->lines( yyleng ); yylloc->step(); }
1653  YY_BREAK
1654 case 3:
1655 YY_RULE_SETUP
1656 #line 91 "holidayscannerplan.lpp"
1657 { yylloc->step(); }
1658  YY_BREAK
1659 case 4:
1660 /* rule 4 can match eol */
1661 YY_RULE_SETUP
1662 #line 92 "holidayscannerplan.lpp"
1663 { yylloc->lines( yyleng ); yylloc->step(); }
1664  YY_BREAK
1665 case 5:
1666 YY_RULE_SETUP
1667 #line 93 "holidayscannerplan.lpp"
1668 { return KHolidays::HolidayParserPlan::token_type( *yytext ); }
1669  YY_BREAK
1670 case 6:
1671 YY_RULE_SETUP
1672 #line 95 "holidayscannerplan.lpp"
1673 { return token::COUNTRY; }
1674  YY_BREAK
1675 case 7:
1676 YY_RULE_SETUP
1677 #line 96 "holidayscannerplan.lpp"
1678 { return token::LANGUAGE; }
1679  YY_BREAK
1680 case 8:
1681 YY_RULE_SETUP
1682 #line 97 "holidayscannerplan.lpp"
1683 { return token::NAME; }
1684  YY_BREAK
1685 case 9:
1686 YY_RULE_SETUP
1687 #line 98 "holidayscannerplan.lpp"
1688 { return token::DESCRIPTION; }
1689  YY_BREAK
1690 case 10:
1691 YY_RULE_SETUP
1692 #line 100 "holidayscannerplan.lpp"
1693 { yylval->ival = atoi( yytext ); return token::NUMBER; }
1694  YY_BREAK
1695 case 11:
1696 /* rule 11 can match eol */
1697 YY_RULE_SETUP
1698 #line 102 "holidayscannerplan.lpp"
1699 { yylval->sval = strdup( yytext + 1 );
1700  yylval->sval[ strlen( yylval->sval ) - 1 ] = 0;
1701  return token::STRING; }
1702  YY_BREAK
1703 case 12:
1704 YY_RULE_SETUP
1705 #line 106 "holidayscannerplan.lpp"
1706 ;
1707  YY_BREAK
1708 case 13:
1709 YY_RULE_SETUP
1710 #line 107 "holidayscannerplan.lpp"
1711 ;
1712  YY_BREAK
1713 case 14:
1714 YY_RULE_SETUP
1715 #line 108 "holidayscannerplan.lpp"
1716 ;
1717  YY_BREAK
1718 case 15:
1719 YY_RULE_SETUP
1720 #line 109 "holidayscannerplan.lpp"
1721 ;
1722  YY_BREAK
1723 case 16:
1724 YY_RULE_SETUP
1725 #line 110 "holidayscannerplan.lpp"
1726 ;
1727  YY_BREAK
1728 case 17:
1729 YY_RULE_SETUP
1730 #line 111 "holidayscannerplan.lpp"
1731 { return token::INOP; }
1732  YY_BREAK
1733 case 18:
1734 YY_RULE_SETUP
1735 #line 112 "holidayscannerplan.lpp"
1736 { return token::IF; }
1737  YY_BREAK
1738 case 19:
1739 YY_RULE_SETUP
1740 #line 113 "holidayscannerplan.lpp"
1741 { return token::PLUS; }
1742  YY_BREAK
1743 case 20:
1744 YY_RULE_SETUP
1745 #line 114 "holidayscannerplan.lpp"
1746 { return token::MINUS; }
1747  YY_BREAK
1748 case 21:
1749 YY_RULE_SETUP
1750 #line 115 "holidayscannerplan.lpp"
1751 { return token::YEAR; }
1752  YY_BREAK
1753 case 22:
1754 YY_RULE_SETUP
1755 #line 116 "holidayscannerplan.lpp"
1756 { return token::LEAPYEAR; }
1757  YY_BREAK
1758 case 23:
1759 YY_RULE_SETUP
1760 #line 117 "holidayscannerplan.lpp"
1761 { return token::EASTER; }
1762  YY_BREAK
1763 case 24:
1764 YY_RULE_SETUP
1765 #line 118 "holidayscannerplan.lpp"
1766 { return token::PASCHA; }
1767  YY_BREAK
1768 case 25:
1769 YY_RULE_SETUP
1770 #line 119 "holidayscannerplan.lpp"
1771 { return token::LENGTH; }
1772  YY_BREAK
1773 case 26:
1774 YY_RULE_SETUP
1775 #line 120 "holidayscannerplan.lpp"
1776 { return token::SHIFT; }
1777  YY_BREAK
1778 case 27:
1779 YY_RULE_SETUP
1780 #line 122 "holidayscannerplan.lpp"
1781 { return token::EQ; }
1782  YY_BREAK
1783 case 28:
1784 YY_RULE_SETUP
1785 #line 123 "holidayscannerplan.lpp"
1786 { return token::NE; }
1787  YY_BREAK
1788 case 29:
1789 YY_RULE_SETUP
1790 #line 124 "holidayscannerplan.lpp"
1791 { return token::LE; }
1792  YY_BREAK
1793 case 30:
1794 YY_RULE_SETUP
1795 #line 125 "holidayscannerplan.lpp"
1796 { return token::GE; }
1797  YY_BREAK
1798 case 31:
1799 YY_RULE_SETUP
1800 #line 126 "holidayscannerplan.lpp"
1801 { return token::LT; }
1802  YY_BREAK
1803 case 32:
1804 YY_RULE_SETUP
1805 #line 127 "holidayscannerplan.lpp"
1806 { return token::GT; }
1807  YY_BREAK
1808 case 33:
1809 YY_RULE_SETUP
1810 #line 128 "holidayscannerplan.lpp"
1811 { return token::AND;}
1812  YY_BREAK
1813 case 34:
1814 YY_RULE_SETUP
1815 #line 129 "holidayscannerplan.lpp"
1816 { return token::OR; }
1817  YY_BREAK
1818 case 35:
1819 YY_RULE_SETUP
1820 #line 131 "holidayscannerplan.lpp"
1821 { yylval->ival = 1; return token::NUMBER; }
1822  YY_BREAK
1823 case 36:
1824 YY_RULE_SETUP
1825 #line 132 "holidayscannerplan.lpp"
1826 { yylval->ival = 2; return token::NUMBER; }
1827  YY_BREAK
1828 case 37:
1829 YY_RULE_SETUP
1830 #line 133 "holidayscannerplan.lpp"
1831 { yylval->ival = 3; return token::NUMBER; }
1832  YY_BREAK
1833 case 38:
1834 YY_RULE_SETUP
1835 #line 134 "holidayscannerplan.lpp"
1836 { yylval->ival = 4; return token::NUMBER; }
1837  YY_BREAK
1838 case 39:
1839 YY_RULE_SETUP
1840 #line 135 "holidayscannerplan.lpp"
1841 { yylval->ival = 5; return token::NUMBER; }
1842  YY_BREAK
1843 case 40:
1844 YY_RULE_SETUP
1845 #line 136 "holidayscannerplan.lpp"
1846 { yylval->ival = 99999; return token::NUMBER; }
1847  YY_BREAK
1848 case 41:
1849 YY_RULE_SETUP
1850 #line 137 "holidayscannerplan.lpp"
1851 { yylval->ival = -99999; return token::NUMBER; }
1852  YY_BREAK
1853 case 42:
1854 YY_RULE_SETUP
1855 #line 138 "holidayscannerplan.lpp"
1856 { yylval->ival = 0; return token::NUMBER; }
1857  YY_BREAK
1858 case 43:
1859 YY_RULE_SETUP
1860 #line 140 "holidayscannerplan.lpp"
1861 { yylval->ival = -1; return token::NUMBER; }
1862  YY_BREAK
1863 case 44:
1864 YY_RULE_SETUP
1865 #line 141 "holidayscannerplan.lpp"
1866 { yylval->ival = 1; return token::NUMBER; }
1867  YY_BREAK
1868 case 45:
1869 YY_RULE_SETUP
1870 #line 143 "holidayscannerplan.lpp"
1871 { yylval->sval = "public"; return token::CATEGORY; }
1872  YY_BREAK
1873 case 46:
1874 YY_RULE_SETUP
1875 #line 144 "holidayscannerplan.lpp"
1876 { yylval->sval = "civil"; return token::CATEGORY; }
1877  YY_BREAK
1878 case 47:
1879 YY_RULE_SETUP
1880 #line 145 "holidayscannerplan.lpp"
1881 { yylval->sval = "religious"; return token::CATEGORY; }
1882  YY_BREAK
1883 case 48:
1884 YY_RULE_SETUP
1885 #line 146 "holidayscannerplan.lpp"
1886 { yylval->sval = "school"; return token::CATEGORY; }
1887  YY_BREAK
1888 case 49:
1889 YY_RULE_SETUP
1890 #line 147 "holidayscannerplan.lpp"
1891 { yylval->sval = "government"; return token::CATEGORY; }
1892  YY_BREAK
1893 case 50:
1894 YY_RULE_SETUP
1895 #line 148 "holidayscannerplan.lpp"
1896 { yylval->sval = "financial"; return token::CATEGORY; }
1897  YY_BREAK
1898 case 51:
1899 YY_RULE_SETUP
1900 #line 149 "holidayscannerplan.lpp"
1901 { yylval->sval = "cultural"; return token::CATEGORY; }
1902  YY_BREAK
1903 case 52:
1904 YY_RULE_SETUP
1905 #line 150 "holidayscannerplan.lpp"
1906 { yylval->sval = "commemorative"; return token::CATEGORY; }
1907  YY_BREAK
1908 case 53:
1909 YY_RULE_SETUP
1910 #line 151 "holidayscannerplan.lpp"
1911 { yylval->sval = "historical"; return token::CATEGORY; }
1912  YY_BREAK
1913 case 54:
1914 YY_RULE_SETUP
1915 #line 152 "holidayscannerplan.lpp"
1916 { yylval->sval = "nameday"; return token::CATEGORY; }
1917  YY_BREAK
1918 case 55:
1919 YY_RULE_SETUP
1920 #line 153 "holidayscannerplan.lpp"
1921 { yylval->sval = "seasonal"; return token::CATEGORY; }
1922  YY_BREAK
1923 case 56:
1924 YY_RULE_SETUP
1925 #line 155 "holidayscannerplan.lpp"
1926 { yylval->sval = "gregorian"; return token::CALENDAR; }
1927  YY_BREAK
1928 case 57:
1929 YY_RULE_SETUP
1930 #line 156 "holidayscannerplan.lpp"
1931 { yylval->sval = "julian"; return token::CALENDAR; }
1932  YY_BREAK
1933 case 58:
1934 YY_RULE_SETUP
1935 #line 158 "holidayscannerplan.lpp"
1936 { yylval->ival = 1; return token::MONTH; }
1937  YY_BREAK
1938 case 59:
1939 YY_RULE_SETUP
1940 #line 159 "holidayscannerplan.lpp"
1941 { yylval->ival = 2; return token::MONTH; }
1942  YY_BREAK
1943 case 60:
1944 YY_RULE_SETUP
1945 #line 160 "holidayscannerplan.lpp"
1946 { yylval->ival = 3; return token::MONTH; }
1947  YY_BREAK
1948 case 61:
1949 YY_RULE_SETUP
1950 #line 161 "holidayscannerplan.lpp"
1951 { yylval->ival = 4; return token::MONTH; }
1952  YY_BREAK
1953 case 62:
1954 YY_RULE_SETUP
1955 #line 162 "holidayscannerplan.lpp"
1956 { yylval->ival = 5; return token::MONTH; }
1957  YY_BREAK
1958 case 63:
1959 YY_RULE_SETUP
1960 #line 163 "holidayscannerplan.lpp"
1961 { yylval->ival = 6; return token::MONTH; }
1962  YY_BREAK
1963 case 64:
1964 YY_RULE_SETUP
1965 #line 164 "holidayscannerplan.lpp"
1966 { yylval->ival = 7; return token::MONTH; }
1967  YY_BREAK
1968 case 65:
1969 YY_RULE_SETUP
1970 #line 165 "holidayscannerplan.lpp"
1971 { yylval->ival = 8; return token::MONTH; }
1972  YY_BREAK
1973 case 66:
1974 YY_RULE_SETUP
1975 #line 166 "holidayscannerplan.lpp"
1976 { yylval->ival = 9; return token::MONTH; }
1977  YY_BREAK
1978 case 67:
1979 YY_RULE_SETUP
1980 #line 167 "holidayscannerplan.lpp"
1981 { yylval->ival = 10; return token::MONTH; }
1982  YY_BREAK
1983 case 68:
1984 YY_RULE_SETUP
1985 #line 168 "holidayscannerplan.lpp"
1986 { yylval->ival = 11; return token::MONTH; }
1987  YY_BREAK
1988 case 69:
1989 YY_RULE_SETUP
1990 #line 169 "holidayscannerplan.lpp"
1991 { yylval->ival = 12; return token::MONTH; }
1992  YY_BREAK
1993 case 70:
1994 YY_RULE_SETUP
1995 #line 171 "holidayscannerplan.lpp"
1996 { yylval->ival = 1; return token::WDAY; }
1997  YY_BREAK
1998 case 71:
1999 YY_RULE_SETUP
2000 #line 172 "holidayscannerplan.lpp"
2001 { yylval->ival = 2; return token::WDAY; }
2002  YY_BREAK
2003 case 72:
2004 YY_RULE_SETUP
2005 #line 173 "holidayscannerplan.lpp"
2006 { yylval->ival = 3; return token::WDAY; }
2007  YY_BREAK
2008 case 73:
2009 YY_RULE_SETUP
2010 #line 174 "holidayscannerplan.lpp"
2011 { yylval->ival = 4; return token::WDAY; }
2012  YY_BREAK
2013 case 74:
2014 YY_RULE_SETUP
2015 #line 175 "holidayscannerplan.lpp"
2016 { yylval->ival = 5; return token::WDAY; }
2017  YY_BREAK
2018 case 75:
2019 YY_RULE_SETUP
2020 #line 176 "holidayscannerplan.lpp"
2021 { yylval->ival = 6; return token::WDAY; }
2022  YY_BREAK
2023 case 76:
2024 YY_RULE_SETUP
2025 #line 177 "holidayscannerplan.lpp"
2026 { yylval->ival = 7; return token::WDAY; }
2027  YY_BREAK
2028 case 77:
2029 YY_RULE_SETUP
2030 #line 179 "holidayscannerplan.lpp"
2031 { yylval->sval = "coptic"; return token::CALENDAR; }
2032  YY_BREAK
2033 case 78:
2034 YY_RULE_SETUP
2035 #line 181 "holidayscannerplan.lpp"
2036 { yylval->ival = 1; return token::MONTH; }
2037  YY_BREAK
2038 case 79:
2039 YY_RULE_SETUP
2040 #line 182 "holidayscannerplan.lpp"
2041 { yylval->ival = 2; return token::MONTH; }
2042  YY_BREAK
2043 case 80:
2044 YY_RULE_SETUP
2045 #line 183 "holidayscannerplan.lpp"
2046 { yylval->ival = 3; return token::MONTH; }
2047  YY_BREAK
2048 case 81:
2049 YY_RULE_SETUP
2050 #line 184 "holidayscannerplan.lpp"
2051 { yylval->ival = 4; return token::MONTH; }
2052  YY_BREAK
2053 case 82:
2054 YY_RULE_SETUP
2055 #line 185 "holidayscannerplan.lpp"
2056 { yylval->ival = 5; return token::MONTH; }
2057  YY_BREAK
2058 case 83:
2059 YY_RULE_SETUP
2060 #line 186 "holidayscannerplan.lpp"
2061 { yylval->ival = 6; return token::MONTH; }
2062  YY_BREAK
2063 case 84:
2064 YY_RULE_SETUP
2065 #line 187 "holidayscannerplan.lpp"
2066 { yylval->ival = 7; return token::MONTH; }
2067  YY_BREAK
2068 case 85:
2069 YY_RULE_SETUP
2070 #line 188 "holidayscannerplan.lpp"
2071 { yylval->ival = 8; return token::MONTH; }
2072  YY_BREAK
2073 case 86:
2074 YY_RULE_SETUP
2075 #line 189 "holidayscannerplan.lpp"
2076 { yylval->ival = 9; return token::MONTH; }
2077  YY_BREAK
2078 case 87:
2079 YY_RULE_SETUP
2080 #line 190 "holidayscannerplan.lpp"
2081 { yylval->ival = 10; return token::MONTH; }
2082  YY_BREAK
2083 case 88:
2084 YY_RULE_SETUP
2085 #line 191 "holidayscannerplan.lpp"
2086 { yylval->ival = 11; return token::MONTH; }
2087  YY_BREAK
2088 case 89:
2089 YY_RULE_SETUP
2090 #line 192 "holidayscannerplan.lpp"
2091 { yylval->ival = 12; return token::MONTH; }
2092  YY_BREAK
2093 case 90:
2094 YY_RULE_SETUP
2095 #line 193 "holidayscannerplan.lpp"
2096 { yylval->ival = 13; return token::MONTH; }
2097  YY_BREAK
2098 case 91:
2099 YY_RULE_SETUP
2100 #line 195 "holidayscannerplan.lpp"
2101 { yylval->ival = 1; return token::WDAY; }
2102  YY_BREAK
2103 case 92:
2104 YY_RULE_SETUP
2105 #line 196 "holidayscannerplan.lpp"
2106 { yylval->ival = 2; return token::WDAY; }
2107  YY_BREAK
2108 case 93:
2109 YY_RULE_SETUP
2110 #line 197 "holidayscannerplan.lpp"
2111 { yylval->ival = 3; return token::WDAY; }
2112  YY_BREAK
2113 case 94:
2114 YY_RULE_SETUP
2115 #line 198 "holidayscannerplan.lpp"
2116 { yylval->ival = 4; return token::WDAY; }
2117  YY_BREAK
2118 case 95:
2119 YY_RULE_SETUP
2120 #line 199 "holidayscannerplan.lpp"
2121 { yylval->ival = 5; return token::WDAY; }
2122  YY_BREAK
2123 case 96:
2124 YY_RULE_SETUP
2125 #line 200 "holidayscannerplan.lpp"
2126 { yylval->ival = 6; return token::WDAY; }
2127  YY_BREAK
2128 case 97:
2129 YY_RULE_SETUP
2130 #line 201 "holidayscannerplan.lpp"
2131 { yylval->ival = 7; return token::WDAY; }
2132  YY_BREAK
2133 case 98:
2134 YY_RULE_SETUP
2135 #line 203 "holidayscannerplan.lpp"
2136 { yylval->sval = "ethiopian"; return token::CALENDAR; }
2137  YY_BREAK
2138 case 99:
2139 YY_RULE_SETUP
2140 #line 205 "holidayscannerplan.lpp"
2141 { yylval->ival = 1; return token::MONTH; }
2142  YY_BREAK
2143 case 100:
2144 YY_RULE_SETUP
2145 #line 206 "holidayscannerplan.lpp"
2146 { yylval->ival = 2; return token::MONTH; }
2147  YY_BREAK
2148 case 101:
2149 YY_RULE_SETUP
2150 #line 207 "holidayscannerplan.lpp"
2151 { yylval->ival = 3; return token::MONTH; }
2152  YY_BREAK
2153 case 102:
2154 YY_RULE_SETUP
2155 #line 208 "holidayscannerplan.lpp"
2156 { yylval->ival = 4; return token::MONTH; }
2157  YY_BREAK
2158 case 103:
2159 YY_RULE_SETUP
2160 #line 209 "holidayscannerplan.lpp"
2161 { yylval->ival = 5; return token::MONTH; }
2162  YY_BREAK
2163 case 104:
2164 YY_RULE_SETUP
2165 #line 210 "holidayscannerplan.lpp"
2166 { yylval->ival = 6; return token::MONTH; }
2167  YY_BREAK
2168 case 105:
2169 YY_RULE_SETUP
2170 #line 211 "holidayscannerplan.lpp"
2171 { yylval->ival = 7; return token::MONTH; }
2172  YY_BREAK
2173 case 106:
2174 YY_RULE_SETUP
2175 #line 212 "holidayscannerplan.lpp"
2176 { yylval->ival = 8; return token::MONTH; }
2177  YY_BREAK
2178 case 107:
2179 YY_RULE_SETUP
2180 #line 213 "holidayscannerplan.lpp"
2181 { yylval->ival = 9; return token::MONTH; }
2182  YY_BREAK
2183 case 108:
2184 YY_RULE_SETUP
2185 #line 214 "holidayscannerplan.lpp"
2186 { yylval->ival = 10; return token::MONTH; }
2187  YY_BREAK
2188 case 109:
2189 YY_RULE_SETUP
2190 #line 215 "holidayscannerplan.lpp"
2191 { yylval->ival = 11; return token::MONTH; }
2192  YY_BREAK
2193 case 110:
2194 YY_RULE_SETUP
2195 #line 216 "holidayscannerplan.lpp"
2196 { yylval->ival = 12; return token::MONTH; }
2197  YY_BREAK
2198 case 111:
2199 YY_RULE_SETUP
2200 #line 217 "holidayscannerplan.lpp"
2201 { yylval->ival = 13; return token::MONTH; }
2202  YY_BREAK
2203 case 112:
2204 YY_RULE_SETUP
2205 #line 219 "holidayscannerplan.lpp"
2206 { yylval->ival = 1; return token::WDAY; }
2207  YY_BREAK
2208 case 113:
2209 YY_RULE_SETUP
2210 #line 220 "holidayscannerplan.lpp"
2211 { yylval->ival = 2; return token::WDAY; }
2212  YY_BREAK
2213 case 114:
2214 YY_RULE_SETUP
2215 #line 221 "holidayscannerplan.lpp"
2216 { yylval->ival = 3; return token::WDAY; }
2217  YY_BREAK
2218 case 115:
2219 YY_RULE_SETUP
2220 #line 222 "holidayscannerplan.lpp"
2221 { yylval->ival = 4; return token::WDAY; }
2222  YY_BREAK
2223 case 116:
2224 YY_RULE_SETUP
2225 #line 223 "holidayscannerplan.lpp"
2226 { yylval->ival = 5; return token::WDAY; }
2227  YY_BREAK
2228 case 117:
2229 YY_RULE_SETUP
2230 #line 224 "holidayscannerplan.lpp"
2231 { yylval->ival = 6; return token::WDAY; }
2232  YY_BREAK
2233 case 118:
2234 YY_RULE_SETUP
2235 #line 225 "holidayscannerplan.lpp"
2236 { yylval->ival = 7; return token::WDAY; }
2237  YY_BREAK
2238 case 119:
2239 YY_RULE_SETUP
2240 #line 227 "holidayscannerplan.lpp"
2241 { yylval->sval = "hebrew"; return token::CALENDAR; }
2242  YY_BREAK
2243 case 120:
2244 YY_RULE_SETUP
2245 #line 229 "holidayscannerplan.lpp"
2246 { yylval->ival = 1; return token::MONTH; }
2247  YY_BREAK
2248 case 121:
2249 YY_RULE_SETUP
2250 #line 230 "holidayscannerplan.lpp"
2251 { yylval->ival = 2; return token::MONTH; }
2252  YY_BREAK
2253 case 122:
2254 YY_RULE_SETUP
2255 #line 231 "holidayscannerplan.lpp"
2256 { yylval->ival = 3; return token::MONTH; }
2257  YY_BREAK
2258 case 123:
2259 YY_RULE_SETUP
2260 #line 232 "holidayscannerplan.lpp"
2261 { yylval->ival = 4; return token::MONTH; }
2262  YY_BREAK
2263 case 124:
2264 YY_RULE_SETUP
2265 #line 233 "holidayscannerplan.lpp"
2266 { yylval->ival = 5; return token::MONTH; }
2267  YY_BREAK
2268 case 125:
2269 YY_RULE_SETUP
2270 #line 234 "holidayscannerplan.lpp"
2271 { yylval->ival = 6; return token::MONTH; }
2272  YY_BREAK
2273 case 126:
2274 YY_RULE_SETUP
2275 #line 235 "holidayscannerplan.lpp"
2276 { yylval->ival = 7; return token::MONTH; }
2277  YY_BREAK
2278 case 127:
2279 YY_RULE_SETUP
2280 #line 236 "holidayscannerplan.lpp"
2281 { yylval->ival = 8; return token::MONTH; }
2282  YY_BREAK
2283 case 128:
2284 YY_RULE_SETUP
2285 #line 237 "holidayscannerplan.lpp"
2286 { yylval->ival = 9; return token::MONTH; }
2287  YY_BREAK
2288 case 129:
2289 YY_RULE_SETUP
2290 #line 238 "holidayscannerplan.lpp"
2291 { yylval->ival = 10; return token::MONTH; }
2292  YY_BREAK
2293 case 130:
2294 YY_RULE_SETUP
2295 #line 239 "holidayscannerplan.lpp"
2296 { yylval->ival = 11; return token::MONTH; }
2297  YY_BREAK
2298 case 131:
2299 YY_RULE_SETUP
2300 #line 240 "holidayscannerplan.lpp"
2301 { yylval->ival = 12; return token::MONTH; }
2302  YY_BREAK
2303 case 132:
2304 YY_RULE_SETUP
2305 #line 241 "holidayscannerplan.lpp"
2306 { yylval->ival = 13; return token::MONTH; }
2307  YY_BREAK
2308 case 133:
2309 YY_RULE_SETUP
2310 #line 242 "holidayscannerplan.lpp"
2311 { yylval->ival = 14; return token::MONTH; }
2312  YY_BREAK
2313 case 134:
2314 YY_RULE_SETUP
2315 #line 244 "holidayscannerplan.lpp"
2316 { yylval->ival = 1; return token::WDAY; }
2317  YY_BREAK
2318 case 135:
2319 YY_RULE_SETUP
2320 #line 245 "holidayscannerplan.lpp"
2321 { yylval->ival = 2; return token::WDAY; }
2322  YY_BREAK
2323 case 136:
2324 YY_RULE_SETUP
2325 #line 246 "holidayscannerplan.lpp"
2326 { yylval->ival = 3; return token::WDAY; }
2327  YY_BREAK
2328 case 137:
2329 YY_RULE_SETUP
2330 #line 247 "holidayscannerplan.lpp"
2331 { yylval->ival = 4; return token::WDAY; }
2332  YY_BREAK
2333 case 138:
2334 YY_RULE_SETUP
2335 #line 248 "holidayscannerplan.lpp"
2336 { yylval->ival = 5; return token::WDAY; }
2337  YY_BREAK
2338 case 139:
2339 YY_RULE_SETUP
2340 #line 249 "holidayscannerplan.lpp"
2341 { yylval->ival = 6; return token::WDAY; }
2342  YY_BREAK
2343 case 140:
2344 YY_RULE_SETUP
2345 #line 250 "holidayscannerplan.lpp"
2346 { yylval->ival = 7; return token::WDAY; }
2347  YY_BREAK
2348 case 141:
2349 YY_RULE_SETUP
2350 #line 252 "holidayscannerplan.lpp"
2351 { yylval->sval = "hijri"; return token::CALENDAR; }
2352  YY_BREAK
2353 case 142:
2354 YY_RULE_SETUP
2355 #line 254 "holidayscannerplan.lpp"
2356 { yylval->ival = 1; return token::MONTH; }
2357  YY_BREAK
2358 case 143:
2359 YY_RULE_SETUP
2360 #line 255 "holidayscannerplan.lpp"
2361 { yylval->ival = 2; return token::MONTH; }
2362  YY_BREAK
2363 case 144:
2364 YY_RULE_SETUP
2365 #line 256 "holidayscannerplan.lpp"
2366 { yylval->ival = 3; return token::MONTH; }
2367  YY_BREAK
2368 case 145:
2369 YY_RULE_SETUP
2370 #line 257 "holidayscannerplan.lpp"
2371 { yylval->ival = 4; return token::MONTH; }
2372  YY_BREAK
2373 case 146:
2374 YY_RULE_SETUP
2375 #line 258 "holidayscannerplan.lpp"
2376 { yylval->ival = 5; return token::MONTH; }
2377  YY_BREAK
2378 case 147:
2379 YY_RULE_SETUP
2380 #line 259 "holidayscannerplan.lpp"
2381 { yylval->ival = 6; return token::MONTH; }
2382  YY_BREAK
2383 case 148:
2384 YY_RULE_SETUP
2385 #line 260 "holidayscannerplan.lpp"
2386 { yylval->ival = 7; return token::MONTH; }
2387  YY_BREAK
2388 case 149:
2389 YY_RULE_SETUP
2390 #line 261 "holidayscannerplan.lpp"
2391 { yylval->ival = 8; return token::MONTH; }
2392  YY_BREAK
2393 case 150:
2394 YY_RULE_SETUP
2395 #line 262 "holidayscannerplan.lpp"
2396 { yylval->ival = 9; return token::MONTH; }
2397  YY_BREAK
2398 case 151:
2399 YY_RULE_SETUP
2400 #line 263 "holidayscannerplan.lpp"
2401 { yylval->ival = 10; return token::MONTH; }
2402  YY_BREAK
2403 case 152:
2404 YY_RULE_SETUP
2405 #line 264 "holidayscannerplan.lpp"
2406 { yylval->ival = 11; return token::MONTH; }
2407  YY_BREAK
2408 case 153:
2409 YY_RULE_SETUP
2410 #line 265 "holidayscannerplan.lpp"
2411 { yylval->ival = 12; return token::MONTH; }
2412  YY_BREAK
2413 case 154:
2414 YY_RULE_SETUP
2415 #line 267 "holidayscannerplan.lpp"
2416 { yylval->ival = 1; return token::WDAY; }
2417  YY_BREAK
2418 case 155:
2419 YY_RULE_SETUP
2420 #line 268 "holidayscannerplan.lpp"
2421 { yylval->ival = 2; return token::WDAY; }
2422  YY_BREAK
2423 case 156:
2424 YY_RULE_SETUP
2425 #line 269 "holidayscannerplan.lpp"
2426 { yylval->ival = 3; return token::WDAY; }
2427  YY_BREAK
2428 case 157:
2429 YY_RULE_SETUP
2430 #line 270 "holidayscannerplan.lpp"
2431 { yylval->ival = 4; return token::WDAY; }
2432  YY_BREAK
2433 case 158:
2434 YY_RULE_SETUP
2435 #line 271 "holidayscannerplan.lpp"
2436 { yylval->ival = 5; return token::WDAY; }
2437  YY_BREAK
2438 case 159:
2439 YY_RULE_SETUP
2440 #line 272 "holidayscannerplan.lpp"
2441 { yylval->ival = 6; return token::WDAY; }
2442  YY_BREAK
2443 case 160:
2444 YY_RULE_SETUP
2445 #line 273 "holidayscannerplan.lpp"
2446 { yylval->ival = 7; return token::WDAY; }
2447  YY_BREAK
2448 case 161:
2449 YY_RULE_SETUP
2450 #line 275 "holidayscannerplan.lpp"
2451 { yylval->sval = "indian-national"; return token::CALENDAR; }
2452  YY_BREAK
2453 case 162:
2454 YY_RULE_SETUP
2455 #line 277 "holidayscannerplan.lpp"
2456 { yylval->ival = 1; return token::MONTH; }
2457  YY_BREAK
2458 case 163:
2459 YY_RULE_SETUP
2460 #line 278 "holidayscannerplan.lpp"
2461 { yylval->ival = 2; return token::MONTH; }
2462  YY_BREAK
2463 case 164:
2464 YY_RULE_SETUP
2465 #line 279 "holidayscannerplan.lpp"
2466 { yylval->ival = 3; return token::MONTH; }
2467  YY_BREAK
2468 case 165:
2469 YY_RULE_SETUP
2470 #line 280 "holidayscannerplan.lpp"
2471 { yylval->ival = 4; return token::MONTH; }
2472  YY_BREAK
2473 case 166:
2474 YY_RULE_SETUP
2475 #line 281 "holidayscannerplan.lpp"
2476 { yylval->ival = 5; return token::MONTH; }
2477  YY_BREAK
2478 case 167:
2479 YY_RULE_SETUP
2480 #line 282 "holidayscannerplan.lpp"
2481 { yylval->ival = 6; return token::MONTH; }
2482  YY_BREAK
2483 case 168:
2484 YY_RULE_SETUP
2485 #line 283 "holidayscannerplan.lpp"
2486 { yylval->ival = 7; return token::MONTH; }
2487  YY_BREAK
2488 case 169:
2489 YY_RULE_SETUP
2490 #line 284 "holidayscannerplan.lpp"
2491 { yylval->ival = 8; return token::MONTH; }
2492  YY_BREAK
2493 case 170:
2494 YY_RULE_SETUP
2495 #line 285 "holidayscannerplan.lpp"
2496 { yylval->ival = 9; return token::MONTH; }
2497  YY_BREAK
2498 case 171:
2499 YY_RULE_SETUP
2500 #line 286 "holidayscannerplan.lpp"
2501 { yylval->ival = 10; return token::MONTH; }
2502  YY_BREAK
2503 case 172:
2504 YY_RULE_SETUP
2505 #line 287 "holidayscannerplan.lpp"
2506 { yylval->ival = 11; return token::MONTH; }
2507  YY_BREAK
2508 case 173:
2509 YY_RULE_SETUP
2510 #line 288 "holidayscannerplan.lpp"
2511 { yylval->ival = 12; return token::MONTH; }
2512  YY_BREAK
2513 case 174:
2514 YY_RULE_SETUP
2515 #line 290 "holidayscannerplan.lpp"
2516 { yylval->ival = 1; return token::WDAY; }
2517  YY_BREAK
2518 case 175:
2519 YY_RULE_SETUP
2520 #line 291 "holidayscannerplan.lpp"
2521 { yylval->ival = 2; return token::WDAY; }
2522  YY_BREAK
2523 case 176:
2524 YY_RULE_SETUP
2525 #line 292 "holidayscannerplan.lpp"
2526 { yylval->ival = 3; return token::WDAY; }
2527  YY_BREAK
2528 case 177:
2529 YY_RULE_SETUP
2530 #line 293 "holidayscannerplan.lpp"
2531 { yylval->ival = 4; return token::WDAY; }
2532  YY_BREAK
2533 case 178:
2534 YY_RULE_SETUP
2535 #line 294 "holidayscannerplan.lpp"
2536 { yylval->ival = 5; return token::WDAY; }
2537  YY_BREAK
2538 case 179:
2539 YY_RULE_SETUP
2540 #line 295 "holidayscannerplan.lpp"
2541 { yylval->ival = 6; return token::WDAY; }
2542  YY_BREAK
2543 case 180:
2544 YY_RULE_SETUP
2545 #line 296 "holidayscannerplan.lpp"
2546 { yylval->ival = 7; return token::WDAY; }
2547  YY_BREAK
2548 case 181:
2549 YY_RULE_SETUP
2550 #line 298 "holidayscannerplan.lpp"
2551 { yylval->sval = "jalali"; return token::CALENDAR; }
2552  YY_BREAK
2553 case 182:
2554 YY_RULE_SETUP
2555 #line 300 "holidayscannerplan.lpp"
2556 { yylval->ival = 1; return token::MONTH; }
2557  YY_BREAK
2558 case 183:
2559 YY_RULE_SETUP
2560 #line 301 "holidayscannerplan.lpp"
2561 { yylval->ival = 2; return token::MONTH; }
2562  YY_BREAK
2563 case 184:
2564 YY_RULE_SETUP
2565 #line 302 "holidayscannerplan.lpp"
2566 { yylval->ival = 3; return token::MONTH; }
2567  YY_BREAK
2568 case 185:
2569 YY_RULE_SETUP
2570 #line 303 "holidayscannerplan.lpp"
2571 { yylval->ival = 4; return token::MONTH; }
2572  YY_BREAK
2573 case 186:
2574 YY_RULE_SETUP
2575 #line 304 "holidayscannerplan.lpp"
2576 { yylval->ival = 5; return token::MONTH; }
2577  YY_BREAK
2578 case 187:
2579 YY_RULE_SETUP
2580 #line 305 "holidayscannerplan.lpp"
2581 { yylval->ival = 6; return token::MONTH; }
2582  YY_BREAK
2583 case 188:
2584 YY_RULE_SETUP
2585 #line 306 "holidayscannerplan.lpp"
2586 { yylval->ival = 7; return token::MONTH; }
2587  YY_BREAK
2588 case 189:
2589 YY_RULE_SETUP
2590 #line 307 "holidayscannerplan.lpp"
2591 { yylval->ival = 8; return token::MONTH; }
2592  YY_BREAK
2593 case 190:
2594 YY_RULE_SETUP
2595 #line 308 "holidayscannerplan.lpp"
2596 { yylval->ival = 9; return token::MONTH; }
2597  YY_BREAK
2598 case 191:
2599 YY_RULE_SETUP
2600 #line 309 "holidayscannerplan.lpp"
2601 { yylval->ival = 10; return token::MONTH; }
2602  YY_BREAK
2603 case 192:
2604 YY_RULE_SETUP
2605 #line 310 "holidayscannerplan.lpp"
2606 { yylval->ival = 11; return token::MONTH; }
2607  YY_BREAK
2608 case 193:
2609 YY_RULE_SETUP
2610 #line 311 "holidayscannerplan.lpp"
2611 { yylval->ival = 12; return token::MONTH; }
2612  YY_BREAK
2613 case 194:
2614 YY_RULE_SETUP
2615 #line 313 "holidayscannerplan.lpp"
2616 { yylval->ival = 1; return token::WDAY; }
2617  YY_BREAK
2618 case 195:
2619 YY_RULE_SETUP
2620 #line 314 "holidayscannerplan.lpp"
2621 { yylval->ival = 2; return token::WDAY; }
2622  YY_BREAK
2623 case 196:
2624 YY_RULE_SETUP
2625 #line 315 "holidayscannerplan.lpp"
2626 { yylval->ival = 3; return token::WDAY; }
2627  YY_BREAK
2628 case 197:
2629 YY_RULE_SETUP
2630 #line 316 "holidayscannerplan.lpp"
2631 { yylval->ival = 4; return token::WDAY; }
2632  YY_BREAK
2633 case 198:
2634 YY_RULE_SETUP
2635 #line 317 "holidayscannerplan.lpp"
2636 { yylval->ival = 5; return token::WDAY; }
2637  YY_BREAK
2638 case 199:
2639 YY_RULE_SETUP
2640 #line 318 "holidayscannerplan.lpp"
2641 { yylval->ival = 6; return token::WDAY; }
2642  YY_BREAK
2643 case 200:
2644 YY_RULE_SETUP
2645 #line 319 "holidayscannerplan.lpp"
2646 { yylval->ival = 7; return token::WDAY; }
2647  YY_BREAK
2648 case 201:
2649 YY_RULE_SETUP
2650 #line 321 "holidayscannerplan.lpp"
2651 { LexerError( yytext ); }
2652  YY_BREAK
2653 case 202:
2654 YY_RULE_SETUP
2655 #line 323 "holidayscannerplan.lpp"
2656 ECHO;
2657  YY_BREAK
2658 #line 2659 "holidayscannerplan.cpp"
2659 case YY_STATE_EOF(INITIAL):
2660  yyterminate();
2661 
2662  case YY_END_OF_BUFFER:
2663  {
2664  /* Amount of text matched not including the EOB char. */
2665  int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2666 
2667  /* Undo the effects of YY_DO_BEFORE_ACTION. */
2668  *yy_cp = (yy_hold_char);
2669  YY_RESTORE_YY_MORE_OFFSET
2670 
2671  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2672  {
2673  /* We're scanning a new file or input source. It's
2674  * possible that this happened because the user
2675  * just pointed yyin at a new source and called
2676  * yylex(). If so, then we have to assure
2677  * consistency between YY_CURRENT_BUFFER and our
2678  * globals. Here is the right place to do so, because
2679  * this is the first action (other than possibly a
2680  * back-up) that will match for the new input source.
2681  */
2682  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2683  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2684  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2685  }
2686 
2687  /* Note that here we test for yy_c_buf_p "<=" to the position
2688  * of the first EOB in the buffer, since yy_c_buf_p will
2689  * already have been incremented past the NUL character
2690  * (since all states make transitions on EOB to the
2691  * end-of-buffer state). Contrast this with the test
2692  * in input().
2693  */
2694  if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2695  { /* This was really a NUL. */
2696  yy_state_type yy_next_state;
2697 
2698  (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2699 
2700  yy_current_state = yy_get_previous_state( );
2701 
2702  /* Okay, we're now positioned to make the NUL
2703  * transition. We couldn't have
2704  * yy_get_previous_state() go ahead and do it
2705  * for us because it doesn't know how to deal
2706  * with the possibility of jamming (and we don't
2707  * want to build jamming into it because then it
2708  * will run more slowly).
2709  */
2710 
2711  yy_next_state = yy_try_NUL_trans( yy_current_state );
2712 
2713  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2714 
2715  if ( yy_next_state )
2716  {
2717  /* Consume the NUL. */
2718  yy_cp = ++(yy_c_buf_p);
2719  yy_current_state = yy_next_state;
2720  goto yy_match;
2721  }
2722 
2723  else
2724  {
2725 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
2726  yy_cp = (yy_last_accepting_cpos);
2727  yy_current_state = (yy_last_accepting_state);
2728  goto yy_find_action;
2729  }
2730  }
2731 
2732  else switch ( yy_get_next_buffer( ) )
2733  {
2734  case EOB_ACT_END_OF_FILE:
2735  {
2736  (yy_did_buffer_switch_on_eof) = 0;
2737 
2738  if ( yywrap( ) )
2739  {
2740  /* Note: because we've taken care in
2741  * yy_get_next_buffer() to have set up
2742  * yytext, we can now set up
2743  * yy_c_buf_p so that if some total
2744  * hoser (like flex itself) wants to
2745  * call the scanner after we return the
2746  * YY_NULL, it'll still work - another
2747  * YY_NULL will get returned.
2748  */
2749  (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2750 
2751  yy_act = YY_STATE_EOF(YY_START);
2752  goto do_action;
2753  }
2754 
2755  else
2756  {
2757  if ( ! (yy_did_buffer_switch_on_eof) )
2758  YY_NEW_FILE;
2759  }
2760  break;
2761  }
2762 
2763  case EOB_ACT_CONTINUE_SCAN:
2764  (yy_c_buf_p) =
2765  (yytext_ptr) + yy_amount_of_matched_text;
2766 
2767  yy_current_state = yy_get_previous_state( );
2768 
2769  yy_cp = (yy_c_buf_p);
2770  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2771  goto yy_match;
2772 
2773  case EOB_ACT_LAST_MATCH:
2774  (yy_c_buf_p) =
2775  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2776 
2777  yy_current_state = yy_get_previous_state( );
2778 
2779  yy_cp = (yy_c_buf_p);
2780  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2781  goto yy_find_action;
2782  }
2783  break;
2784  }
2785 
2786  default:
2787  YY_FATAL_ERROR(
2788  "fatal flex scanner internal error--no action found" );
2789  } /* end of action switch */
2790  } /* end of scanning one token */
2791 } /* end of yylex */
2792 /* %ok-for-header */
2793 
2794 /* %if-c++-only */
2795 /* %not-for-header */
2796 
2797 /* The contents of this function are C++ specific, so the () macro is not used.
2798  */
2799 yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
2800 {
2801  yyin = arg_yyin;
2802  yyout = arg_yyout;
2803  yy_c_buf_p = 0;
2804  yy_init = 0;
2805  yy_start = 0;
2806  yy_flex_debug = 0;
2807  yylineno = 1; // this will only get updated if %option yylineno
2808 
2809  yy_did_buffer_switch_on_eof = 0;
2810 
2811  yy_looking_for_trail_begin = 0;
2812  yy_more_flag = 0;
2813  yy_more_len = 0;
2814  yy_more_offset = yy_prev_more_offset = 0;
2815 
2816  yy_start_stack_ptr = yy_start_stack_depth = 0;
2817  yy_start_stack = NULL;
2818 
2819  yy_buffer_stack = 0;
2820  yy_buffer_stack_top = 0;
2821  yy_buffer_stack_max = 0;
2822 
2823  yy_state_buf = 0;
2824 
2825 }
2826 
2827 /* The contents of this function are C++ specific, so the () macro is not used.
2828  */
2829 yyFlexLexer::~yyFlexLexer()
2830 {
2831  delete [] yy_state_buf;
2832  HolidayScannerfree(yy_start_stack );
2833  yy_delete_buffer( YY_CURRENT_BUFFER );
2834  HolidayScannerfree(yy_buffer_stack );
2835 }
2836 
2837 /* The contents of this function are C++ specific, so the () macro is not used.
2838  */
2839 void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out )
2840 {
2841  if ( new_in )
2842  {
2843  yy_delete_buffer( YY_CURRENT_BUFFER );
2844  yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) );
2845  }
2846 
2847  if ( new_out )
2848  yyout = new_out;
2849 }
2850 
2851 #ifdef YY_INTERACTIVE
2852 int yyFlexLexer::LexerInput( char* buf, int /* max_size */ )
2853 #else
2854 int yyFlexLexer::LexerInput( char* buf, int max_size )
2855 #endif
2856 {
2857  if ( yyin->eof() || yyin->fail() )
2858  return 0;
2859 
2860 #ifdef YY_INTERACTIVE
2861  yyin->get( buf[0] );
2862 
2863  if ( yyin->eof() )
2864  return 0;
2865 
2866  if ( yyin->bad() )
2867  return -1;
2868 
2869  return 1;
2870 
2871 #else
2872  (void) yyin->read( buf, max_size );
2873 
2874  if ( yyin->bad() )
2875  return -1;
2876  else
2877  return yyin->gcount();
2878 #endif
2879 }
2880 
2881 void yyFlexLexer::LexerOutput( const char* buf, int size )
2882 {
2883  (void) yyout->write( buf, size );
2884 }
2885 /* %ok-for-header */
2886 
2887 /* %endif */
2888 
2889 /* yy_get_next_buffer - try to read in a new buffer
2890  *
2891  * Returns a code representing an action:
2892  * EOB_ACT_LAST_MATCH -
2893  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2894  * EOB_ACT_END_OF_FILE - end of file
2895  */
2896 /* %if-c-only */
2897 /* %endif */
2898 /* %if-c++-only */
2899 int yyFlexLexer::yy_get_next_buffer()
2900 /* %endif */
2901 {
2902  register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2903  register char *source = (yytext_ptr);
2904  register int number_to_move, i;
2905  int ret_val;
2906 
2907  if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2908  YY_FATAL_ERROR(
2909  "fatal flex scanner internal error--end of buffer missed" );
2910 
2911  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2912  { /* Don't try to fill the buffer, so this is an EOF. */
2913  if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2914  {
2915  /* We matched a single character, the EOB, so
2916  * treat this as a final EOF.
2917  */
2918  return EOB_ACT_END_OF_FILE;
2919  }
2920 
2921  else
2922  {
2923  /* We matched some text prior to the EOB, first
2924  * process it.
2925  */
2926  return EOB_ACT_LAST_MATCH;
2927  }
2928  }
2929 
2930  /* Try to read more data. */
2931 
2932  /* First move last chars to start of buffer. */
2933  number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2934 
2935  for ( i = 0; i < number_to_move; ++i )
2936  *(dest++) = *(source++);
2937 
2938  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2939  /* don't do the read, it's not guaranteed to return an EOF,
2940  * just force an EOF
2941  */
2942  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2943 
2944  else
2945  {
2946  int num_to_read =
2947  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2948 
2949  while ( num_to_read <= 0 )
2950  { /* Not enough room in the buffer - grow it. */
2951 
2952  /* just a shorter name for the current buffer */
2953  YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2954 
2955  int yy_c_buf_p_offset =
2956  (int) ((yy_c_buf_p) - b->yy_ch_buf);
2957 
2958  if ( b->yy_is_our_buffer )
2959  {
2960  int new_size = b->yy_buf_size * 2;
2961 
2962  if ( new_size <= 0 )
2963  b->yy_buf_size += b->yy_buf_size / 8;
2964  else
2965  b->yy_buf_size *= 2;
2966 
2967  b->yy_ch_buf = (char *)
2968  /* Include room in for 2 EOB chars. */
2969  HolidayScannerrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2970  }
2971  else
2972  /* Can't grow it, we don't own it. */
2973  b->yy_ch_buf = 0;
2974 
2975  if ( ! b->yy_ch_buf )
2976  YY_FATAL_ERROR(
2977  "fatal error - scanner input buffer overflow" );
2978 
2979  (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2980 
2981  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2982  number_to_move - 1;
2983 
2984  }
2985 
2986  if ( num_to_read > YY_READ_BUF_SIZE )
2987  num_to_read = YY_READ_BUF_SIZE;
2988 
2989  /* Read in more data. */
2990  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2991  (yy_n_chars), (size_t) num_to_read );
2992 
2993  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2994  }
2995 
2996  if ( (yy_n_chars) == 0 )
2997  {
2998  if ( number_to_move == YY_MORE_ADJ )
2999  {
3000  ret_val = EOB_ACT_END_OF_FILE;
3001  yyrestart( yyin );
3002  }
3003 
3004  else
3005  {
3006  ret_val = EOB_ACT_LAST_MATCH;
3007  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3008  YY_BUFFER_EOF_PENDING;
3009  }
3010  }
3011 
3012  else
3013  ret_val = EOB_ACT_CONTINUE_SCAN;
3014 
3015  if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3016  /* Extend the array by 50%, plus the number we really need. */
3017  yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3018  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) HolidayScannerrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
3019  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3020  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3021  }
3022 
3023  (yy_n_chars) += number_to_move;
3024  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3025  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3026 
3027  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3028 
3029  return ret_val;
3030 }
3031 
3032 /* yy_get_previous_state - get the state just before the EOB char was reached */
3033 
3034 /* %if-c-only */
3035 /* %not-for-header */
3036 
3037 /* %endif */
3038 /* %if-c++-only */
3039  yy_state_type yyFlexLexer::yy_get_previous_state()
3040 /* %endif */
3041 {
3042  register yy_state_type yy_current_state;
3043  register char *yy_cp;
3044 
3045 /* %% [15.0] code to get the start state into yy_current_state goes here */
3046  yy_current_state = (yy_start);
3047  yy_current_state += YY_AT_BOL();
3048 
3049  for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3050  {
3051 /* %% [16.0] code to find the next state goes here */
3052  register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3053  if ( yy_accept[yy_current_state] )
3054  {
3055  (yy_last_accepting_state) = yy_current_state;
3056  (yy_last_accepting_cpos) = yy_cp;
3057  }
3058  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3059  {
3060  yy_current_state = (int) yy_def[yy_current_state];
3061  if ( yy_current_state >= 982 )
3062  yy_c = yy_meta[(unsigned int) yy_c];
3063  }
3064  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3065  }
3066 
3067  return yy_current_state;
3068 }
3069 
3070 /* yy_try_NUL_trans - try to make a transition on the NUL character
3071  *
3072  * synopsis
3073  * next_state = yy_try_NUL_trans( current_state );
3074  */
3075 /* %if-c-only */
3076 /* %endif */
3077 /* %if-c++-only */
3078  yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state )
3079 /* %endif */
3080 {
3081  register int yy_is_jam;
3082  /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
3083  register char *yy_cp = (yy_c_buf_p);
3084 
3085  register YY_CHAR yy_c = 1;
3086  if ( yy_accept[yy_current_state] )
3087  {
3088  (yy_last_accepting_state) = yy_current_state;
3089  (yy_last_accepting_cpos) = yy_cp;
3090  }
3091  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3092  {
3093  yy_current_state = (int) yy_def[yy_current_state];
3094  if ( yy_current_state >= 982 )
3095  yy_c = yy_meta[(unsigned int) yy_c];
3096  }
3097  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3098  yy_is_jam = (yy_current_state == 981);
3099 
3100  return yy_is_jam ? 0 : yy_current_state;
3101 }
3102 
3103 /* %if-c-only */
3104 /* %endif */
3105 /* %if-c++-only */
3106  void yyFlexLexer::yyunput( int c, register char* yy_bp)
3107 /* %endif */
3108 {
3109  register char *yy_cp;
3110 
3111  yy_cp = (yy_c_buf_p);
3112 
3113  /* undo effects of setting up yytext */
3114  *yy_cp = (yy_hold_char);
3115 
3116  if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3117  { /* need to shift things up to make room */
3118  /* +2 for EOB chars. */
3119  register int number_to_move = (yy_n_chars) + 2;
3120  register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
3121  YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
3122  register char *source =
3123  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
3124 
3125  while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3126  *--dest = *--source;
3127 
3128  yy_cp += (int) (dest - source);
3129  yy_bp += (int) (dest - source);
3130  YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
3131  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
3132 
3133  if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
3134  YY_FATAL_ERROR( "flex scanner push-back overflow" );
3135  }
3136 
3137  *--yy_cp = (char) c;
3138 
3139 /* %% [18.0] update yylineno here */
3140 
3141  (yytext_ptr) = yy_bp;
3142  (yy_hold_char) = *yy_cp;
3143  (yy_c_buf_p) = yy_cp;
3144 }
3145 /* %if-c-only */
3146 /* %endif */
3147 
3148 /* %if-c-only */
3149 /* %endif */
3150 /* %if-c++-only */
3151  int yyFlexLexer::yyinput()
3152 /* %endif */
3153 {
3154  int c;
3155 
3156  *(yy_c_buf_p) = (yy_hold_char);
3157 
3158  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3159  {
3160  /* yy_c_buf_p now points to the character we want to return.
3161  * If this occurs *before* the EOB characters, then it's a
3162  * valid NUL; if not, then we've hit the end of the buffer.
3163  */
3164  if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3165  /* This was really a NUL. */
3166  *(yy_c_buf_p) = '\0';
3167 
3168  else
3169  { /* need more input */
3170  int offset = (yy_c_buf_p) - (yytext_ptr);
3171  ++(yy_c_buf_p);
3172 
3173  switch ( yy_get_next_buffer( ) )
3174  {
3175  case EOB_ACT_LAST_MATCH:
3176  /* This happens because yy_g_n_b()
3177  * sees that we've accumulated a
3178  * token and flags that we need to
3179  * try matching the token before
3180  * proceeding. But for input(),
3181  * there's no matching to consider.
3182  * So convert the EOB_ACT_LAST_MATCH
3183  * to EOB_ACT_END_OF_FILE.
3184  */
3185 
3186  /* Reset buffer status. */
3187  yyrestart( yyin );
3188 
3189  /*FALLTHROUGH*/
3190 
3191  case EOB_ACT_END_OF_FILE:
3192  {
3193  if ( yywrap( ) )
3194  return EOF;
3195 
3196  if ( ! (yy_did_buffer_switch_on_eof) )
3197  YY_NEW_FILE;
3198 #ifdef __cplusplus
3199  return yyinput();
3200 #else
3201  return input();
3202 #endif
3203  }
3204 
3205  case EOB_ACT_CONTINUE_SCAN:
3206  (yy_c_buf_p) = (yytext_ptr) + offset;
3207  break;
3208  }
3209  }
3210  }
3211 
3212  c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
3213  *(yy_c_buf_p) = '\0'; /* preserve yytext */
3214  (yy_hold_char) = *++(yy_c_buf_p);
3215 
3216 /* %% [19.0] update BOL and yylineno */
3217  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
3218 
3219  return c;
3220 }
3221 /* %if-c-only */
3222 /* %endif */
3223 
3229 /* %if-c-only */
3230 /* %endif */
3231 /* %if-c++-only */
3232  void yyFlexLexer::yyrestart( std::istream* input_file )
3233 /* %endif */
3234 {
3235 
3236  if ( ! YY_CURRENT_BUFFER ){
3237  yyensure_buffer_stack ();
3238  YY_CURRENT_BUFFER_LVALUE =
3239  yy_create_buffer( yyin, YY_BUF_SIZE );
3240  }
3241 
3242  yy_init_buffer( YY_CURRENT_BUFFER, input_file );
3243  yy_load_buffer_state( );
3244 }
3245 
3250 /* %if-c-only */
3251 /* %endif */
3252 /* %if-c++-only */
3253  void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
3254 /* %endif */
3255 {
3256 
3257  /* TODO. We should be able to replace this entire function body
3258  * with
3259  * yypop_buffer_state();
3260  * yypush_buffer_state(new_buffer);
3261  */
3262  yyensure_buffer_stack ();
3263  if ( YY_CURRENT_BUFFER == new_buffer )
3264  return;
3265 
3266  if ( YY_CURRENT_BUFFER )
3267  {
3268  /* Flush out information for old buffer. */
3269  *(yy_c_buf_p) = (yy_hold_char);
3270  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3271  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3272  }
3273 
3274  YY_CURRENT_BUFFER_LVALUE = new_buffer;
3275  yy_load_buffer_state( );
3276 
3277  /* We don't actually know whether we did this switch during
3278  * EOF (yywrap()) processing, but the only time this flag
3279  * is looked at is after yywrap() is called, so it's safe
3280  * to go ahead and always set it.
3281  */
3282  (yy_did_buffer_switch_on_eof) = 1;
3283 }
3284 
3285 /* %if-c-only */
3286 /* %endif */
3287 /* %if-c++-only */
3288  void yyFlexLexer::yy_load_buffer_state()
3289 /* %endif */
3290 {
3291  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3292  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3293  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3294  (yy_hold_char) = *(yy_c_buf_p);
3295 }
3296 
3303 /* %if-c-only */
3304 /* %endif */
3305 /* %if-c++-only */
3306  YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size )
3307 /* %endif */
3308 {
3309  YY_BUFFER_STATE b;
3310 
3311  b = (YY_BUFFER_STATE) HolidayScanneralloc(sizeof( struct yy_buffer_state ) );
3312  if ( ! b )
3313  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3314 
3315  b->yy_buf_size = size;
3316 
3317  /* yy_ch_buf has to be 2 characters longer than the size given because
3318  * we need to put in 2 end-of-buffer characters.
3319  */
3320  b->yy_ch_buf = (char *) HolidayScanneralloc(b->yy_buf_size + 2 );
3321  if ( ! b->yy_ch_buf )
3322  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3323 
3324  b->yy_is_our_buffer = 1;
3325 
3326  yy_init_buffer( b, file );
3327 
3328  return b;
3329 }
3330 
3335 /* %if-c-only */
3336 /* %endif */
3337 /* %if-c++-only */
3338  void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b )
3339 /* %endif */
3340 {
3341 
3342  if ( ! b )
3343  return;
3344 
3345  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3346  YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3347 
3348  if ( b->yy_is_our_buffer )
3349  HolidayScannerfree((void *) b->yy_ch_buf );
3350 
3351  HolidayScannerfree((void *) b );
3352 }
3353 
3354 /* %if-c-only */
3355 /* %endif */
3356 
3357 /* %if-c++-only */
3358 
3359 extern "C" int isatty (int );
3360 
3361 /* %endif */
3362 
3363 /* Initializes or reinitializes a buffer.
3364  * This function is sometimes called more than once on the same buffer,
3365  * such as during a yyrestart() or at EOF.
3366  */
3367 /* %if-c-only */
3368 /* %endif */
3369 /* %if-c++-only */
3370  void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file )
3371 /* %endif */
3372 
3373 {
3374  int oerrno = errno;
3375 
3376  yy_flush_buffer( b );
3377 
3378  b->yy_input_file = file;
3379  b->yy_fill_buffer = 1;
3380 
3381  /* If b is the current buffer, then yy_init_buffer was _probably_
3382  * called from yyrestart() or through yy_get_next_buffer.
3383  * In that case, we don't want to reset the lineno or column.
3384  */
3385  if (b != YY_CURRENT_BUFFER){
3386  b->yy_bs_lineno = 1;
3387  b->yy_bs_column = 0;
3388  }
3389 
3390 /* %if-c-only */
3391 /* %endif */
3392 /* %if-c++-only */
3393  b->yy_is_interactive = 0;
3394 /* %endif */
3395  errno = oerrno;
3396 }
3397 
3402 /* %if-c-only */
3403 /* %endif */
3404 /* %if-c++-only */
3405  void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b )
3406 /* %endif */
3407 {
3408  if ( ! b )
3409  return;
3410 
3411  b->yy_n_chars = 0;
3412 
3413  /* We always need two end-of-buffer characters. The first causes
3414  * a transition to the end-of-buffer state. The second causes
3415  * a jam in that state.
3416  */
3417  b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3418  b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3419 
3420  b->yy_buf_pos = &b->yy_ch_buf[0];
3421 
3422  b->yy_at_bol = 1;
3423  b->yy_buffer_status = YY_BUFFER_NEW;
3424 
3425  if ( b == YY_CURRENT_BUFFER )
3426  yy_load_buffer_state( );
3427 }
3428 
3429 /* %if-c-or-c++ */
3436 /* %if-c-only */
3437 /* %endif */
3438 /* %if-c++-only */
3439 void yyFlexLexer::yypush_buffer_state (YY_BUFFER_STATE new_buffer)
3440 /* %endif */
3441 {
3442  if (new_buffer == NULL)
3443  return;
3444 
3445  yyensure_buffer_stack();
3446 
3447  /* This block is copied from yy_switch_to_buffer. */
3448  if ( YY_CURRENT_BUFFER )
3449  {
3450  /* Flush out information for old buffer. */
3451  *(yy_c_buf_p) = (yy_hold_char);
3452  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3453  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3454  }
3455 
3456  /* Only push if top exists. Otherwise, replace top. */
3457  if (YY_CURRENT_BUFFER)
3458  (yy_buffer_stack_top)++;
3459  YY_CURRENT_BUFFER_LVALUE = new_buffer;
3460 
3461  /* copied from yy_switch_to_buffer. */
3462  yy_load_buffer_state( );
3463  (yy_did_buffer_switch_on_eof) = 1;
3464 }
3465 /* %endif */
3466 
3467 /* %if-c-or-c++ */
3472 /* %if-c-only */
3473 /* %endif */
3474 /* %if-c++-only */
3475 void yyFlexLexer::yypop_buffer_state (void)
3476 /* %endif */
3477 {
3478  if (!YY_CURRENT_BUFFER)
3479  return;
3480 
3481  yy_delete_buffer(YY_CURRENT_BUFFER );
3482  YY_CURRENT_BUFFER_LVALUE = NULL;
3483  if ((yy_buffer_stack_top) > 0)
3484  --(yy_buffer_stack_top);
3485 
3486  if (YY_CURRENT_BUFFER) {
3487  yy_load_buffer_state( );
3488  (yy_did_buffer_switch_on_eof) = 1;
3489  }
3490 }
3491 /* %endif */
3492 
3493 /* %if-c-or-c++ */
3494 /* Allocates the stack if it does not exist.
3495  * Guarantees space for at least one push.
3496  */
3497 /* %if-c-only */
3498 /* %endif */
3499 /* %if-c++-only */
3500 void yyFlexLexer::yyensure_buffer_stack(void)
3501 /* %endif */
3502 {
3503  int num_to_alloc;
3504 
3505  if (!(yy_buffer_stack)) {
3506 
3507  /* First allocation is just for 2 elements, since we don't know if this
3508  * scanner will even need a stack. We use 2 instead of 1 to avoid an
3509  * immediate realloc on the next call.
3510  */
3511  num_to_alloc = 1;
3512  (yy_buffer_stack) = (struct yy_buffer_state**)HolidayScanneralloc
3513  (num_to_alloc * sizeof(struct yy_buffer_state*)
3514  );
3515  if ( ! (yy_buffer_stack) )
3516  YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3517 
3518  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3519 
3520  (yy_buffer_stack_max) = num_to_alloc;
3521  (yy_buffer_stack_top) = 0;
3522  return;
3523  }
3524 
3525  if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3526 
3527  /* Increase the buffer to prepare for a possible push. */
3528  int grow_size = 8 /* arbitrary grow size */;
3529 
3530  num_to_alloc = (yy_buffer_stack_max) + grow_size;
3531  (yy_buffer_stack) = (struct yy_buffer_state**)HolidayScannerrealloc
3532  ((yy_buffer_stack),
3533  num_to_alloc * sizeof(struct yy_buffer_state*)
3534  );
3535  if ( ! (yy_buffer_stack) )
3536  YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3537 
3538  /* zero only the new slots.*/
3539  memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3540  (yy_buffer_stack_max) = num_to_alloc;
3541  }
3542 }
3543 /* %endif */
3544 
3545 /* %if-c-only */
3546 /* %endif */
3547 
3548 /* %if-c-only */
3549 /* %endif */
3550 
3551 /* %if-c-only */
3552 /* %endif */
3553 
3554 /* %if-c-only */
3555 /* %endif */
3556 /* %if-c++-only */
3557  void yyFlexLexer::yy_push_state( int new_state )
3558 /* %endif */
3559 {
3560  if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
3561  {
3562  yy_size_t new_size;
3563 
3564  (yy_start_stack_depth) += YY_START_STACK_INCR;
3565  new_size = (yy_start_stack_depth) * sizeof( int );
3566 
3567  if ( ! (yy_start_stack) )
3568  (yy_start_stack) = (int *) HolidayScanneralloc(new_size );
3569 
3570  else
3571  (yy_start_stack) = (int *) HolidayScannerrealloc((void *) (yy_start_stack),new_size );
3572 
3573  if ( ! (yy_start_stack) )
3574  YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
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  BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
3592 }
3593 
3594 /* %if-c-only */
3595 /* %endif */
3596 /* %if-c++-only */
3597  int yyFlexLexer::yy_top_state()
3598 /* %endif */
3599 {
3600  return (yy_start_stack)[(yy_start_stack_ptr) - 1];
3601 }
3602 
3603 #ifndef YY_EXIT_FAILURE
3604 #define YY_EXIT_FAILURE 2
3605 #endif
3606 
3607 /* %if-c-only */
3608 /* %endif */
3609 /* %if-c++-only */
3610 void yyFlexLexer::LexerError( yyconst char msg[] )
3611 {
3612  std::cerr << msg << std::endl;
3613  exit( YY_EXIT_FAILURE );
3614 }
3615 /* %endif */
3616 
3617 /* Redefine yyless() so it works in section 3 code. */
3618 
3619 #undef yyless
3620 #define yyless(n) \
3621  do \
3622  { \
3623  /* Undo effects of setting up yytext. */ \
3624  int yyless_macro_arg = (n); \
3625  YY_LESS_LINENO(yyless_macro_arg);\
3626  yytext[yyleng] = (yy_hold_char); \
3627  (yy_c_buf_p) = yytext + yyless_macro_arg; \
3628  (yy_hold_char) = *(yy_c_buf_p); \
3629  *(yy_c_buf_p) = '\0'; \
3630  yyleng = yyless_macro_arg; \
3631  } \
3632  while ( 0 )
3633 
3634 /* Accessor methods (get/set functions) to struct members. */
3635 
3636 /* %if-c-only */
3637 /* %if-reentrant */
3638 /* %endif */
3639 /* %if-reentrant */
3640 /* %endif */
3641 /* %endif */
3642 
3643 /* %if-reentrant */
3644 /* %if-bison-bridge */
3645 /* %endif */
3646 /* %endif if-c-only */
3647 
3648 /* %if-c-only */
3649 /* %endif */
3650 
3651 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
3652 /* %if-reentrant */
3653 /* %endif */
3654 /* %endif */
3655 
3656 /*
3657  * Internal utility routines.
3658  */
3659 
3660 #ifndef yytext_ptr
3661 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3662 {
3663  register int i;
3664  for ( i = 0; i < n; ++i )
3665  s1[i] = s2[i];
3666 }
3667 #endif
3668 
3669 #ifdef YY_NEED_STRLEN
3670 static int yy_flex_strlen (yyconst char * s )
3671 {
3672  register int n;
3673  for ( n = 0; s[n]; ++n )
3674  ;
3675 
3676  return n;
3677 }
3678 #endif
3679 
3680 void *HolidayScanneralloc (yy_size_t size )
3681 {
3682  return (void *) malloc( size );
3683 }
3684 
3685 void *HolidayScannerrealloc (void * ptr, yy_size_t size )
3686 {
3687  /* The cast to (char *) in the following accommodates both
3688  * implementations that use char* generic pointers, and those
3689  * that use void* generic pointers. It works with the latter
3690  * because both ANSI C and C++ allow castless assignment from
3691  * any pointer type to void*, and deal with argument conversions
3692  * as though doing an assignment.
3693  */
3694  return (void *) realloc( (char *) ptr, size );
3695 }
3696 
3697 void HolidayScannerfree (void * ptr )
3698 {
3699  free( (char *) ptr ); /* see HolidayScannerrealloc() for (char *) cast */
3700 }
3701 
3702 /* %if-tables-serialization definitions */
3703 /* %define-yytables The name for this specific scanner's tables. */
3704 #define YYTABLES_NAME "yytables"
3705 /* %endif */
3706 
3707 /* %ok-for-header */
3708 
3709 #line 323 "holidayscannerplan.lpp"
3710 
3711 
3712 
3713 namespace KHolidays {
3714 
3715 HolidayScannerPlan::HolidayScannerPlan(std::istream* in, std::ostream* out)
3716  : HolidayScannerFlexLexer(in, out)
3717 {
3718 }
3719 
3720 HolidayScannerPlan::~HolidayScannerPlan()
3721 {
3722 }
3723 
3724 void HolidayScannerPlan::set_debug(bool b)
3725 {
3726  yy_flex_debug = b;
3727 }
3728 
3729 } // namespace KHolidays
3730 
3731 /* This implementation of HolidayScannerFlexLexer::yylex() is required to fill the
3732  * vtable of the class HolidayScannerFlexLexer. We define the scanner's main yylex
3733  * function via YY_DECL to reside in the HolidayScannerPlan class instead. */
3734 
3735 #ifdef yylex
3736 #undef yylex
3737 #endif
3738 
3739 int HolidayScannerFlexLexer::yylex()
3740 {
3741  kDebug() << "in HolidayScannerFlexLexer::yylex() !";
3742  return 0;
3743 }
3744 
3745 /* When the scanner receives an end-of-file indication from YY_INPUT, it then
3746  * checks the yywrap() function. If yywrap() returns false (zero), then it is
3747  * assumed that the function has gone ahead and set up `yyin' to point to
3748  * another input file, and scanning continues. If it returns true (non-zero),
3749  * then the scanner terminates, returning 0 to its caller. */
3750 
3751 int HolidayScannerFlexLexer::yywrap()
3752 {
3753  return 1;
3754 }
3755 
KHolidays::HolidayParserPlan::token_type
token::yytokentype token_type
Token type.
Definition: holidayparserplan.hpp:174
KHolidays::HolidayParserPlan::token
Tokens.
Definition: holidayparserplan.hpp:136
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:37:00 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KHolidays Library

Skip menu "KHolidays Library"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • Related Pages

kdepimlibs API Reference

Skip menu "kdepimlibs API Reference"
  • akonadi
  •   contact
  •   kmime
  •   socialutils
  • kabc
  • kalarmcal
  • kblog
  • kcal
  • kcalcore
  • kcalutils
  • kholidays
  • kimap
  • kioslave
  •   imap4
  •   mbox
  •   nntp
  • kldap
  • kmbox
  • kmime
  • kontactinterface
  • kpimidentities
  • kpimtextedit
  • kpimutils
  • kresources
  • ktnef
  • kxmlrpcclient
  • mailtransport
  • microblog
  • qgpgme
  • syndication
  •   atom
  •   rdf
  •   rss2

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal