Kea  2.3.5-git
dhcp6_lexer.cc
Go to the documentation of this file.
1 #line 1 "dhcp6_lexer.cc"
2 
3 #line 3 "dhcp6_lexer.cc"
4 
5 #define YY_INT_ALIGNED short int
6 
7 /* A lexical scanner generated by flex */
8 
9 /* %not-for-header */
10 /* %if-c-only */
11 /* %if-not-reentrant */
12 #define yy_create_buffer parser6__create_buffer
13 #define yy_delete_buffer parser6__delete_buffer
14 #define yy_scan_buffer parser6__scan_buffer
15 #define yy_scan_string parser6__scan_string
16 #define yy_scan_bytes parser6__scan_bytes
17 #define yy_init_buffer parser6__init_buffer
18 #define yy_flush_buffer parser6__flush_buffer
19 #define yy_load_buffer_state parser6__load_buffer_state
20 #define yy_switch_to_buffer parser6__switch_to_buffer
21 #define yypush_buffer_state parser6_push_buffer_state
22 #define yypop_buffer_state parser6_pop_buffer_state
23 #define yyensure_buffer_stack parser6_ensure_buffer_stack
24 #define yy_flex_debug parser6__flex_debug
25 #define yyin parser6_in
26 #define yyleng parser6_leng
27 #define yylex parser6_lex
28 #define yylineno parser6_lineno
29 #define yyout parser6_out
30 #define yyrestart parser6_restart
31 #define yytext parser6_text
32 #define yywrap parser6_wrap
33 #define yyalloc parser6_alloc
34 #define yyrealloc parser6_realloc
35 #define yyfree parser6_free
36 
37 /* %endif */
38 /* %endif */
39 /* %ok-for-header */
40 
41 #define FLEX_SCANNER
42 #define YY_FLEX_MAJOR_VERSION 2
43 #define YY_FLEX_MINOR_VERSION 6
44 #define YY_FLEX_SUBMINOR_VERSION 4
45 #if YY_FLEX_SUBMINOR_VERSION > 0
46 #define FLEX_BETA
47 #endif
48 
49 /* %if-c++-only */
50 /* %endif */
51 
52 /* %if-c-only */
53 #ifdef yy_create_buffer
54 #define parser6__create_buffer_ALREADY_DEFINED
55 #else
56 #define yy_create_buffer parser6__create_buffer
57 #endif
58 
59 #ifdef yy_delete_buffer
60 #define parser6__delete_buffer_ALREADY_DEFINED
61 #else
62 #define yy_delete_buffer parser6__delete_buffer
63 #endif
64 
65 #ifdef yy_scan_buffer
66 #define parser6__scan_buffer_ALREADY_DEFINED
67 #else
68 #define yy_scan_buffer parser6__scan_buffer
69 #endif
70 
71 #ifdef yy_scan_string
72 #define parser6__scan_string_ALREADY_DEFINED
73 #else
74 #define yy_scan_string parser6__scan_string
75 #endif
76 
77 #ifdef yy_scan_bytes
78 #define parser6__scan_bytes_ALREADY_DEFINED
79 #else
80 #define yy_scan_bytes parser6__scan_bytes
81 #endif
82 
83 #ifdef yy_init_buffer
84 #define parser6__init_buffer_ALREADY_DEFINED
85 #else
86 #define yy_init_buffer parser6__init_buffer
87 #endif
88 
89 #ifdef yy_flush_buffer
90 #define parser6__flush_buffer_ALREADY_DEFINED
91 #else
92 #define yy_flush_buffer parser6__flush_buffer
93 #endif
94 
95 #ifdef yy_load_buffer_state
96 #define parser6__load_buffer_state_ALREADY_DEFINED
97 #else
98 #define yy_load_buffer_state parser6__load_buffer_state
99 #endif
100 
101 #ifdef yy_switch_to_buffer
102 #define parser6__switch_to_buffer_ALREADY_DEFINED
103 #else
104 #define yy_switch_to_buffer parser6__switch_to_buffer
105 #endif
106 
107 #ifdef yypush_buffer_state
108 #define parser6_push_buffer_state_ALREADY_DEFINED
109 #else
110 #define yypush_buffer_state parser6_push_buffer_state
111 #endif
112 
113 #ifdef yypop_buffer_state
114 #define parser6_pop_buffer_state_ALREADY_DEFINED
115 #else
116 #define yypop_buffer_state parser6_pop_buffer_state
117 #endif
118 
119 #ifdef yyensure_buffer_stack
120 #define parser6_ensure_buffer_stack_ALREADY_DEFINED
121 #else
122 #define yyensure_buffer_stack parser6_ensure_buffer_stack
123 #endif
124 
125 #ifdef yylex
126 #define parser6_lex_ALREADY_DEFINED
127 #else
128 #define yylex parser6_lex
129 #endif
130 
131 #ifdef yyrestart
132 #define parser6_restart_ALREADY_DEFINED
133 #else
134 #define yyrestart parser6_restart
135 #endif
136 
137 #ifdef yylex_init
138 #define parser6_lex_init_ALREADY_DEFINED
139 #else
140 #define yylex_init parser6_lex_init
141 #endif
142 
143 #ifdef yylex_init_extra
144 #define parser6_lex_init_extra_ALREADY_DEFINED
145 #else
146 #define yylex_init_extra parser6_lex_init_extra
147 #endif
148 
149 #ifdef yylex_destroy
150 #define parser6_lex_destroy_ALREADY_DEFINED
151 #else
152 #define yylex_destroy parser6_lex_destroy
153 #endif
154 
155 #ifdef yyget_debug
156 #define parser6_get_debug_ALREADY_DEFINED
157 #else
158 #define yyget_debug parser6_get_debug
159 #endif
160 
161 #ifdef yyset_debug
162 #define parser6_set_debug_ALREADY_DEFINED
163 #else
164 #define yyset_debug parser6_set_debug
165 #endif
166 
167 #ifdef yyget_extra
168 #define parser6_get_extra_ALREADY_DEFINED
169 #else
170 #define yyget_extra parser6_get_extra
171 #endif
172 
173 #ifdef yyset_extra
174 #define parser6_set_extra_ALREADY_DEFINED
175 #else
176 #define yyset_extra parser6_set_extra
177 #endif
178 
179 #ifdef yyget_in
180 #define parser6_get_in_ALREADY_DEFINED
181 #else
182 #define yyget_in parser6_get_in
183 #endif
184 
185 #ifdef yyset_in
186 #define parser6_set_in_ALREADY_DEFINED
187 #else
188 #define yyset_in parser6_set_in
189 #endif
190 
191 #ifdef yyget_out
192 #define parser6_get_out_ALREADY_DEFINED
193 #else
194 #define yyget_out parser6_get_out
195 #endif
196 
197 #ifdef yyset_out
198 #define parser6_set_out_ALREADY_DEFINED
199 #else
200 #define yyset_out parser6_set_out
201 #endif
202 
203 #ifdef yyget_leng
204 #define parser6_get_leng_ALREADY_DEFINED
205 #else
206 #define yyget_leng parser6_get_leng
207 #endif
208 
209 #ifdef yyget_text
210 #define parser6_get_text_ALREADY_DEFINED
211 #else
212 #define yyget_text parser6_get_text
213 #endif
214 
215 #ifdef yyget_lineno
216 #define parser6_get_lineno_ALREADY_DEFINED
217 #else
218 #define yyget_lineno parser6_get_lineno
219 #endif
220 
221 #ifdef yyset_lineno
222 #define parser6_set_lineno_ALREADY_DEFINED
223 #else
224 #define yyset_lineno parser6_set_lineno
225 #endif
226 
227 #ifdef yywrap
228 #define parser6_wrap_ALREADY_DEFINED
229 #else
230 #define yywrap parser6_wrap
231 #endif
232 
233 /* %endif */
234 
235 #ifdef yyalloc
236 #define parser6_alloc_ALREADY_DEFINED
237 #else
238 #define yyalloc parser6_alloc
239 #endif
240 
241 #ifdef yyrealloc
242 #define parser6_realloc_ALREADY_DEFINED
243 #else
244 #define yyrealloc parser6_realloc
245 #endif
246 
247 #ifdef yyfree
248 #define parser6_free_ALREADY_DEFINED
249 #else
250 #define yyfree parser6_free
251 #endif
252 
253 /* %if-c-only */
254 
255 #ifdef yytext
256 #define parser6_text_ALREADY_DEFINED
257 #else
258 #define yytext parser6_text
259 #endif
260 
261 #ifdef yyleng
262 #define parser6_leng_ALREADY_DEFINED
263 #else
264 #define yyleng parser6_leng
265 #endif
266 
267 #ifdef yyin
268 #define parser6_in_ALREADY_DEFINED
269 #else
270 #define yyin parser6_in
271 #endif
272 
273 #ifdef yyout
274 #define parser6_out_ALREADY_DEFINED
275 #else
276 #define yyout parser6_out
277 #endif
278 
279 #ifdef yy_flex_debug
280 #define parser6__flex_debug_ALREADY_DEFINED
281 #else
282 #define yy_flex_debug parser6__flex_debug
283 #endif
284 
285 #ifdef yylineno
286 #define parser6_lineno_ALREADY_DEFINED
287 #else
288 #define yylineno parser6_lineno
289 #endif
290 
291 /* %endif */
292 
293 /* First, we deal with platform-specific or compiler-specific issues. */
294 
295 /* begin standard C headers. */
296 /* %if-c-only */
297 #include <stdio.h>
298 #include <string.h>
299 #include <errno.h>
300 #include <stdlib.h>
301 /* %endif */
302 
303 /* %if-tables-serialization */
304 /* %endif */
305 /* end standard C headers. */
306 
307 /* %if-c-or-c++ */
308 /* flex integer type definitions */
309 
310 #ifndef FLEXINT_H
311 #define FLEXINT_H
312 
313 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
314 
315 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
316 
317 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
318  * if you want the limit (max/min) macros for int types.
319  */
320 #ifndef __STDC_LIMIT_MACROS
321 #define __STDC_LIMIT_MACROS 1
322 #endif
323 
324 #include <inttypes.h>
325 typedef int8_t flex_int8_t;
326 typedef uint8_t flex_uint8_t;
327 typedef int16_t flex_int16_t;
328 typedef uint16_t flex_uint16_t;
329 typedef int32_t flex_int32_t;
330 typedef uint32_t flex_uint32_t;
331 #else
332 typedef signed char flex_int8_t;
333 typedef short int flex_int16_t;
334 typedef int flex_int32_t;
335 typedef unsigned char flex_uint8_t;
336 typedef unsigned short int flex_uint16_t;
337 typedef unsigned int flex_uint32_t;
338 
339 /* Limits of integral types. */
340 #ifndef INT8_MIN
341 #define INT8_MIN (-128)
342 #endif
343 #ifndef INT16_MIN
344 #define INT16_MIN (-32767-1)
345 #endif
346 #ifndef INT32_MIN
347 #define INT32_MIN (-2147483647-1)
348 #endif
349 #ifndef INT8_MAX
350 #define INT8_MAX (127)
351 #endif
352 #ifndef INT16_MAX
353 #define INT16_MAX (32767)
354 #endif
355 #ifndef INT32_MAX
356 #define INT32_MAX (2147483647)
357 #endif
358 #ifndef UINT8_MAX
359 #define UINT8_MAX (255U)
360 #endif
361 #ifndef UINT16_MAX
362 #define UINT16_MAX (65535U)
363 #endif
364 #ifndef UINT32_MAX
365 #define UINT32_MAX (4294967295U)
366 #endif
367 
368 #ifndef SIZE_MAX
369 #define SIZE_MAX (~(size_t)0)
370 #endif
371 
372 #endif /* ! C99 */
373 
374 #endif /* ! FLEXINT_H */
375 
376 /* %endif */
377 
378 /* begin standard C++ headers. */
379 /* %if-c++-only */
380 /* %endif */
381 
382 /* TODO: this is always defined, so inline it */
383 #define yyconst const
384 
385 #if defined(__GNUC__) && __GNUC__ >= 3
386 #define yynoreturn __attribute__((__noreturn__))
387 #else
388 #define yynoreturn
389 #endif
390 
391 /* %not-for-header */
392 /* Returned upon end-of-file. */
393 #define YY_NULL 0
394 /* %ok-for-header */
395 
396 /* %not-for-header */
397 /* Promotes a possibly negative, possibly signed char to an
398  * integer in range [0..255] for use as an array index.
399  */
400 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
401 /* %ok-for-header */
402 
403 /* %if-reentrant */
404 /* %endif */
405 
406 /* %if-not-reentrant */
407 
408 /* %endif */
409 
410 /* Enter a start condition. This macro really ought to take a parameter,
411  * but we do it the disgusting crufty way forced on us by the ()-less
412  * definition of BEGIN.
413  */
414 #define BEGIN (yy_start) = 1 + 2 *
415 /* Translate the current start state into a value that can be later handed
416  * to BEGIN to return to the state. The YYSTATE alias is for lex
417  * compatibility.
418  */
419 #define YY_START (((yy_start) - 1) / 2)
420 #define YYSTATE YY_START
421 /* Action number for EOF rule of a given start state. */
422 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
423 /* Special action meaning "start processing a new file". */
424 #define YY_NEW_FILE yyrestart( yyin )
425 #define YY_END_OF_BUFFER_CHAR 0
426 
427 /* Size of default input buffer. */
428 #ifndef YY_BUF_SIZE
429 #ifdef __ia64__
430 /* On IA-64, the buffer size is 16k, not 8k.
431  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
432  * Ditto for the __ia64__ case accordingly.
433  */
434 #define YY_BUF_SIZE 32768
435 #else
436 #define YY_BUF_SIZE 16384
437 #endif /* __ia64__ */
438 #endif
439 
440 /* The state buf must be large enough to hold one state per character in the main buffer.
441  */
442 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
443 
444 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
445 #define YY_TYPEDEF_YY_BUFFER_STATE
447 #endif
448 
449 #ifndef YY_TYPEDEF_YY_SIZE_T
450 #define YY_TYPEDEF_YY_SIZE_T
451 typedef size_t yy_size_t;
452 #endif
453 
454 /* %if-not-reentrant */
455 extern int yyleng;
456 /* %endif */
457 
458 /* %if-c-only */
459 /* %if-not-reentrant */
460 extern FILE *yyin, *yyout;
461 /* %endif */
462 /* %endif */
463 
464 #define EOB_ACT_CONTINUE_SCAN 0
465 #define EOB_ACT_END_OF_FILE 1
466 #define EOB_ACT_LAST_MATCH 2
467 
468  #define YY_LESS_LINENO(n)
469  #define YY_LINENO_REWIND_TO(ptr)
470 
471 /* Return all but the first "n" matched characters back to the input stream. */
472 #define yyless(n) \
473  do \
474  { \
475  /* Undo effects of setting up yytext. */ \
476  int yyless_macro_arg = (n); \
477  YY_LESS_LINENO(yyless_macro_arg);\
478  *yy_cp = (yy_hold_char); \
479  YY_RESTORE_YY_MORE_OFFSET \
480  (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
481  YY_DO_BEFORE_ACTION; /* set up yytext again */ \
482  } \
483  while ( 0 )
484 #define unput(c) yyunput( c, (yytext_ptr) )
485 
486 #ifndef YY_STRUCT_YY_BUFFER_STATE
487 #define YY_STRUCT_YY_BUFFER_STATE
488 struct yy_buffer_state
489  {
490 /* %if-c-only */
491  FILE *yy_input_file;
492 /* %endif */
493 
494 /* %if-c++-only */
495 /* %endif */
496 
497  char *yy_ch_buf; /* input buffer */
498  char *yy_buf_pos; /* current position in input buffer */
499 
500  /* Size of input buffer in bytes, not including room for EOB
501  * characters.
502  */
503  int yy_buf_size;
504 
505  /* Number of characters read into yy_ch_buf, not including EOB
506  * characters.
507  */
508  int yy_n_chars;
509 
510  /* Whether we "own" the buffer - i.e., we know we created it,
511  * and can realloc() it to grow it, and should free() it to
512  * delete it.
513  */
514  int yy_is_our_buffer;
515 
516  /* Whether this is an "interactive" input source; if so, and
517  * if we're using stdio for input, then we want to use getc()
518  * instead of fread(), to make sure we stop fetching input after
519  * each newline.
520  */
521  int yy_is_interactive;
522 
523  /* Whether we're considered to be at the beginning of a line.
524  * If so, '^' rules will be active on the next match, otherwise
525  * not.
526  */
527  int yy_at_bol;
528 
529  int yy_bs_lineno;
530  int yy_bs_column;
532  /* Whether to try to fill the input buffer when we reach the
533  * end of it.
534  */
535  int yy_fill_buffer;
536 
537  int yy_buffer_status;
538 
539 #define YY_BUFFER_NEW 0
540 #define YY_BUFFER_NORMAL 1
541  /* When an EOF's been seen but there's still some text to process
542  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
543  * shouldn't try reading from the input source any more. We might
544  * still have a bunch of tokens to match, though, because of
545  * possible backing-up.
546  *
547  * When we actually see the EOF, we change the status to "new"
548  * (via yyrestart()), so that the user can continue scanning by
549  * just pointing yyin at a new input file.
550  */
551 #define YY_BUFFER_EOF_PENDING 2
552 
553  };
554 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
555 
556 /* %if-c-only Standard (non-C++) definition */
557 /* %not-for-header */
558 /* %if-not-reentrant */
559 
560 /* Stack of input buffers. */
561 static size_t yy_buffer_stack_top = 0;
562 static size_t yy_buffer_stack_max = 0;
563 static YY_BUFFER_STATE * yy_buffer_stack = NULL;
564 /* %endif */
565 /* %ok-for-header */
566 
567 /* %endif */
568 
569 /* We provide macros for accessing buffer states in case in the
570  * future we want to put the buffer states in a more general
571  * "scanner state".
572  *
573  * Returns the top of the stack, or NULL.
574  */
575 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
576  ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
577  : NULL)
578 /* Same as previous macro, but useful when we know that the buffer stack is not
579  * NULL or when we need an lvalue. For internal use only.
580  */
581 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
582 
583 /* %if-c-only Standard (non-C++) definition */
584 
585 /* %if-not-reentrant */
586 /* %not-for-header */
587 /* yy_hold_char holds the character lost when yytext is formed. */
588 static char yy_hold_char;
589 static int yy_n_chars; /* number of characters read into yy_ch_buf */
590 int yyleng;
591 
592 /* Points to current character in buffer. */
593 static char *yy_c_buf_p = NULL;
594 static int yy_init = 0; /* whether we need to initialize */
595 static int yy_start = 0; /* start state number */
596 
597 /* Flag which is used to allow yywrap()'s to do buffer switches
598  * instead of setting up a fresh yyin. A bit of a hack ...
599  */
600 static int yy_did_buffer_switch_on_eof;
601 /* %ok-for-header */
602 
603 /* %endif */
604 
605 void yyrestart ( FILE *input_file );
606 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
607 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
608 void yy_delete_buffer ( YY_BUFFER_STATE b );
609 void yy_flush_buffer ( YY_BUFFER_STATE b );
610 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
611 void yypop_buffer_state ( void );
612 
613 static void yyensure_buffer_stack ( void );
614 static void yy_load_buffer_state ( void );
615 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
616 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
617 
618 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
619 YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
620 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
621 
622 /* %endif */
623 
624 void *yyalloc ( yy_size_t );
625 void *yyrealloc ( void *, yy_size_t );
626 void yyfree ( void * );
627 
628 #define yy_new_buffer yy_create_buffer
629 #define yy_set_interactive(is_interactive) \
630  { \
631  if ( ! YY_CURRENT_BUFFER ){ \
632  yyensure_buffer_stack (); \
633  YY_CURRENT_BUFFER_LVALUE = \
634  yy_create_buffer( yyin, YY_BUF_SIZE ); \
635  } \
636  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
637  }
638 #define yy_set_bol(at_bol) \
639  { \
640  if ( ! YY_CURRENT_BUFFER ){\
641  yyensure_buffer_stack (); \
642  YY_CURRENT_BUFFER_LVALUE = \
643  yy_create_buffer( yyin, YY_BUF_SIZE ); \
644  } \
645  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
646  }
647 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
648 
649 /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
650 /* Begin user sect3 */
651 
652 #define parser6_wrap() (/*CONSTCOND*/1)
653 #define YY_SKIP_YYWRAP
654 
655 #define FLEX_DEBUG
657 
658 FILE *yyin = NULL, *yyout = NULL;
659 
660 typedef int yy_state_type;
661 
662 extern int yylineno;
663 int yylineno = 1;
664 
665 extern char *yytext;
666 #ifdef yytext_ptr
667 #undef yytext_ptr
668 #endif
669 #define yytext_ptr yytext
670 
671 /* %% [1.5] DFA */
672 
673 /* %if-c-only Standard (non-C++) definition */
674 
675 static yy_state_type yy_get_previous_state ( void );
676 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
677 static int yy_get_next_buffer ( void );
678 static void yynoreturn yy_fatal_error ( const char* msg );
679 
680 /* %endif */
681 
682 /* Done after the current pattern has been matched and before the
683  * corresponding action - sets up yytext.
684  */
685 #define YY_DO_BEFORE_ACTION \
686  (yytext_ptr) = yy_bp; \
687 /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
688  yyleng = (int) (yy_cp - yy_bp); \
689  (yy_hold_char) = *yy_cp; \
690  *yy_cp = '\0'; \
691 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
692  (yy_c_buf_p) = yy_cp;
693 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
694 #define YY_NUM_RULES 228
695 #define YY_END_OF_BUFFER 229
696 /* This struct is not used in this scanner,
697  but its presence is necessary. */
698 struct yy_trans_info
699  {
700  flex_int32_t yy_verify;
701  flex_int32_t yy_nxt;
702  };
703 static const flex_int16_t yy_accept[2184] =
704  { 0,
705  221, 221, 0, 0, 0, 0, 0, 0, 0, 0,
706  229, 227, 10, 11, 227, 1, 221, 218, 221, 221,
707  227, 220, 219, 227, 227, 227, 227, 227, 214, 215,
708  227, 227, 227, 216, 217, 5, 5, 5, 227, 227,
709  227, 10, 11, 0, 0, 209, 0, 0, 0, 0,
710  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
711  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
712  0, 0, 0, 0, 0, 0, 0, 0, 1, 221,
713  221, 0, 220, 221, 3, 2, 6, 0, 221, 0,
714  0, 0, 0, 0, 0, 4, 0, 0, 9, 0,
715 
716  210, 0, 0, 0, 0, 0, 0, 0, 0, 0,
717  0, 0, 0, 0, 212, 0, 0, 0, 0, 0,
718  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
719  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724  0, 0, 0, 0, 0, 0, 0, 2, 0, 0,
725  0, 0, 0, 0, 0, 8, 0, 0, 178, 0,
726 
727  0, 179, 0, 0, 0, 0, 0, 0, 0, 211,
728  213, 0, 0, 0, 0, 0, 0, 0, 0, 0,
729  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
730  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
731  0, 0, 0, 0, 0, 0, 0, 0, 0, 124,
732  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
733  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
734  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
735  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
736  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
737 
738  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
740  226, 224, 0, 223, 222, 0, 0, 0, 0, 0,
741  177, 0, 28, 0, 27, 0, 0, 131, 0, 0,
742  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
743  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
744  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
745  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
746  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
747  0, 0, 0, 0, 0, 0, 0, 0, 0, 128,
748 
749  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
750  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
751  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
752  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
753  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
754  0, 0, 0, 0, 0, 225, 222, 0, 0, 0,
755  0, 29, 0, 31, 0, 0, 0, 0, 0, 0,
756  0, 0, 0, 0, 0, 135, 0, 0, 0, 0,
757  0, 0, 109, 0, 0, 0, 0, 0, 0, 0,
758  0, 162, 0, 0, 0, 0, 0, 0, 0, 0,
759 
760  0, 0, 0, 0, 0, 61, 0, 0, 0, 0,
761  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
762  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
763  0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
764  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
765  0, 118, 0, 62, 0, 0, 0, 0, 0, 0,
766  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
767  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
768  0, 0, 0, 0, 0, 0, 0, 0, 156, 0,
769  182, 0, 55, 0, 59, 0, 0, 0, 0, 0,
770 
771  37, 34, 33, 0, 0, 0, 0, 170, 0, 0,
772  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
773  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
774  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
775  0, 0, 147, 0, 0, 0, 0, 0, 0, 0,
776  0, 181, 0, 0, 0, 0, 0, 0, 0, 0,
777  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
778  0, 0, 0, 0, 0, 57, 0, 0, 32, 0,
779  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
780  0, 0, 0, 111, 0, 0, 0, 0, 0, 0,
781 
782  0, 0, 0, 0, 0, 0, 0, 171, 0, 0,
783  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
784  0, 166, 0, 0, 0, 0, 0, 0, 0, 0,
785  0, 0, 0, 0, 0, 0, 7, 35, 0, 0,
786  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
787  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
788  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
789  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
790  130, 0, 0, 0, 0, 0, 0, 0, 0, 0,
791  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
792 
793  0, 0, 0, 0, 0, 149, 0, 0, 0, 0,
794  0, 0, 0, 0, 0, 0, 146, 0, 0, 0,
795  0, 0, 0, 0, 0, 0, 0, 0, 0, 113,
796  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
797  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
798  0, 0, 0, 0, 0, 0, 0, 0, 121, 0,
799  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
800  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
801  0, 120, 0, 0, 0, 0, 0, 0, 0, 0,
802  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
803 
804  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
805  0, 0, 0, 165, 0, 0, 0, 0, 0, 0,
806  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
807  0, 175, 144, 0, 0, 0, 0, 0, 0, 0,
808  148, 56, 0, 0, 0, 0, 0, 70, 0, 0,
809  0, 0, 0, 0, 0, 0, 0, 150, 0, 0,
810  63, 0, 0, 0, 0, 0, 0, 0, 0, 0,
811  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
812  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
813  0, 0, 0, 0, 0, 103, 0, 0, 0, 0,
814 
815  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
816  0, 0, 0, 202, 0, 0, 0, 0, 0, 0,
817  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
818  0, 0, 0, 0, 0, 0, 0, 0, 127, 0,
819  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
820  0, 0, 0, 164, 0, 0, 0, 0, 0, 0,
821  0, 78, 0, 0, 0, 0, 0, 0, 0, 0,
822  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
823  0, 0, 0, 0, 0, 0, 0, 60, 0, 112,
824  0, 0, 0, 161, 0, 0, 0, 0, 0, 54,
825 
826  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
827  0, 0, 0, 0, 0, 0, 0, 0, 152, 0,
828  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
829  0, 0, 0, 0, 0, 0, 0, 91, 0, 0,
830  0, 0, 77, 0, 0, 0, 0, 0, 0, 0,
831  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
832  0, 0, 0, 203, 0, 0, 0, 0, 0, 0,
833  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
834  0, 0, 0, 0, 122, 0, 0, 0, 0, 0,
835  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
836 
837  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
838  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
839  0, 0, 41, 0, 0, 0, 0, 0, 0, 0,
840  0, 0, 0, 0, 16, 0, 0, 176, 14, 0,
841  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
842  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
843  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
844  0, 0, 167, 0, 0, 0, 0, 0, 0, 0,
845  0, 151, 0, 0, 0, 0, 0, 0, 0, 0,
846  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
847 
848  0, 0, 163, 180, 0, 40, 0, 172, 0, 0,
849  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
850  0, 0, 0, 0, 20, 0, 0, 0, 106, 0,
851  0, 0, 0, 0, 174, 0, 0, 58, 0, 114,
852  0, 201, 0, 0, 0, 0, 0, 0, 0, 0,
853  0, 0, 0, 0, 0, 0, 0, 89, 0, 0,
854  0, 0, 0, 0, 0, 140, 141, 0, 0, 0,
855  0, 0, 0, 0, 0, 0, 0, 110, 0, 0,
856  0, 79, 0, 0, 0, 0, 0, 0, 0, 0,
857  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
858 
859  0, 0, 0, 0, 0, 169, 0, 0, 0, 0,
860  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
861  0, 0, 0, 0, 0, 136, 0, 0, 0, 0,
862  0, 0, 0, 0, 0, 0, 0, 107, 129, 0,
863  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
864  0, 0, 0, 0, 86, 0, 0, 0, 0, 0,
865  17, 0, 15, 0, 0, 198, 197, 0, 0, 0,
866  0, 0, 0, 0, 0, 0, 0, 0, 0, 30,
867  0, 0, 0, 155, 0, 0, 0, 0, 0, 0,
868  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
869 
870  0, 0, 191, 0, 0, 200, 0, 0, 0, 0,
871  0, 0, 0, 0, 0, 0, 0, 0, 123, 0,
872  160, 0, 46, 0, 0, 64, 0, 0, 0, 0,
873  0, 0, 0, 0, 0, 0, 19, 0, 0, 0,
874  0, 0, 0, 92, 0, 0, 125, 66, 87, 0,
875  0, 168, 0, 0, 0, 0, 159, 0, 0, 0,
876  0, 0, 0, 0, 0, 0, 0, 0, 0, 76,
877  0, 119, 0, 0, 0, 143, 0, 0, 0, 207,
878  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
879  0, 0, 0, 0, 117, 0, 0, 0, 0, 183,
880 
881  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
882  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
883  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
884  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
885  0, 0, 45, 0, 0, 0, 0, 0, 0, 0,
886  0, 157, 0, 0, 0, 67, 0, 0, 0, 153,
887  51, 0, 0, 0, 196, 38, 0, 0, 0, 0,
888  0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
889  0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
890  0, 0, 0, 48, 0, 0, 18, 0, 0, 0,
891 
892  75, 0, 0, 0, 0, 0, 145, 0, 0, 0,
893  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
894  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
895  0, 0, 0, 83, 0, 142, 0, 0, 0, 65,
896  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
897  0, 0, 115, 0, 0, 0, 0, 0, 0, 173,
898  0, 0, 0, 50, 0, 0, 0, 0, 0, 0,
899  0, 0, 0, 0, 192, 0, 0, 0, 0, 0,
900  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
901  0, 0, 0, 0, 0, 105, 0, 71, 0, 0,
902 
903  0, 0, 36, 0, 52, 0, 0, 0, 0, 0,
904  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
905  0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
906  0, 0, 189, 0, 0, 0, 0, 158, 0, 0,
907  0, 0, 0, 0, 0, 0, 0, 0, 0, 126,
908  0, 0, 0, 0, 0, 72, 0, 0, 0, 0,
909  68, 194, 0, 0, 0, 0, 0, 0, 0, 0,
910  95, 0, 0, 0, 0, 0, 0, 0, 0, 0,
911  0, 0, 0, 0, 25, 39, 0, 0, 0, 0,
912  0, 0, 0, 0, 0, 0, 195, 0, 0, 13,
913 
914  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
915  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
916  0, 0, 0, 0, 0, 199, 0, 0, 0, 0,
917  0, 0, 0, 0, 0, 0, 0, 0, 188, 0,
918  85, 0, 84, 0, 21, 0, 80, 0, 0, 0,
919  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
920  0, 0, 0, 139, 0, 0, 0, 0, 0, 0,
921  0, 0, 0, 0, 0, 116, 0, 0, 0, 187,
922  0, 0, 0, 0, 0, 74, 0, 0, 90, 0,
923  69, 0, 23, 0, 132, 0, 0, 0, 0, 0,
924 
925  0, 0, 0, 104, 0, 0, 0, 0, 0, 0,
926  0, 101, 0, 0, 0, 0, 0, 47, 0, 0,
927  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
928  0, 0, 73, 0, 0, 0, 0, 0, 0, 99,
929  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
930  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
931  0, 0, 0, 0, 0, 0, 0, 0, 53, 0,
932  0, 100, 0, 0, 0, 0, 193, 0, 0, 0,
933  0, 205, 208, 82, 81, 22, 0, 137, 154, 133,
934  0, 0, 0, 0, 0, 0, 0, 0, 96, 0,
935 
936  0, 0, 0, 0, 0, 0, 0, 185, 0, 0,
937  0, 0, 0, 0, 190, 0, 98, 0, 88, 0,
938  0, 0, 0, 0, 0, 134, 0, 0, 0, 0,
939  0, 0, 0, 184, 0, 0, 26, 206, 0, 0,
940  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
941  0, 0, 0, 97, 0, 0, 0, 0, 44, 42,
942  0, 0, 0, 102, 0, 0, 138, 0, 94, 0,
943  0, 0, 0, 0, 0, 0, 0, 93, 0, 186,
944  43, 204, 0
945  } ;
946 
947 static const YY_CHAR yy_ec[256] =
948  { 0,
949  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
950  1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
951  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
952  1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
953  5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
954  14, 17, 14, 18, 14, 14, 14, 19, 5, 20,
955  5, 21, 22, 5, 23, 24, 25, 26, 27, 28,
956  5, 29, 5, 30, 5, 31, 5, 32, 33, 34,
957  5, 35, 36, 37, 38, 39, 40, 5, 41, 5,
958  42, 43, 44, 5, 45, 5, 46, 47, 48, 49,
959 
960  50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
961  60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
962  70, 71, 72, 5, 73, 5, 5, 5, 5, 5,
963  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
964  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
965  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
966  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
967  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
968  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
969  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
970 
971  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
972  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
973  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
974  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
975  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
976  5, 5, 5, 5, 5
977  } ;
978 
979 static const YY_CHAR yy_meta[74] =
980  { 0,
981  1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
982  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
983  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
984  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
985  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
986  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
987  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
988  1, 1, 1
989  } ;
990 
991 static const flex_int16_t yy_base[2192] =
992  { 0,
993  0, 72, 21, 31, 43, 51, 54, 60, 91, 99,
994  2574, 2575, 34, 2570, 145, 0, 207, 2575, 214, 221,
995  13, 228, 2575, 2550, 118, 25, 2, 6, 2575, 2575,
996  73, 11, 17, 2575, 2575, 2575, 104, 2558, 2511, 0,
997  2548, 108, 2565, 24, 256, 2575, 67, 2514, 2534, 84,
998  75, 2534, 88, 226, 91, 89, 284, 196, 206, 219,
999  208, 235, 241, 60, 277, 2514, 279, 291, 253, 293,
1000  316, 2497, 282, 317, 356, 325, 2516, 305, 0, 378,
1001  385, 406, 415, 422, 2575, 0, 2575, 429, 436, 218,
1002  219, 287, 333, 354, 342, 2575, 2513, 2554, 2575, 382,
1003 
1004  2575, 428, 346, 2511, 2552, 356, 10, 336, 409, 186,
1005  417, 314, 319, 2551, 0, 489, 416, 2493, 409, 2492,
1006  2493, 2499, 409, 2485, 2486, 2491, 412, 2501, 2484, 2493,
1007  2483, 415, 416, 290, 2486, 2484, 425, 2473, 2531, 412,
1008  2476, 2529, 2469, 440, 2490, 2490, 2484, 440, 2477, 2475,
1009  2476, 2468, 2473, 2467, 435, 2478, 467, 2463, 2462, 2476,
1010  462, 2514, 2461, 437, 2473, 446, 2461, 497, 2462, 483,
1011  2474, 2471, 2472, 472, 2470, 2505, 2504, 486, 464, 2451,
1012  2455, 483, 2451, 2443, 2460, 2452, 2454, 0, 487, 498,
1013  484, 505, 500, 503, 2450, 2575, 525, 2445, 2575, 516,
1014 
1015  501, 2575, 2499, 535, 2498, 536, 2497, 532, 2496, 2575,
1016  2575, 578, 513, 542, 2455, 2447, 2451, 2452, 2432, 2443,
1017  2445, 2444, 509, 517, 2482, 2446, 2427, 2424, 2432, 2438,
1018  2426, 2440, 2436, 2427, 2436, 2436, 2431, 2423, 2425, 2428,
1019  2408, 2412, 2425, 2427, 2424, 2416, 2406, 2409, 2423, 2575,
1020  2409, 2417, 80, 2455, 2401, 2410, 2452, 2399, 2409, 2449,
1021  555, 2408, 2447, 2392, 2394, 2405, 2443, 547, 2447, 2401,
1022  2381, 2396, 570, 2386, 2392, 531, 2383, 2381, 529, 2381,
1023  2387, 2378, 2377, 2390, 2383, 2373, 2384, 2388, 2387, 2381,
1024  550, 2388, 2383, 2375, 2365, 2380, 2375, 2379, 2360, 2376,
1025 
1026  2362, 2368, 2375, 2357, 537, 2362, 2359, 2358, 289, 2357,
1027  2352, 2366, 2365, 582, 2364, 2367, 2349, 2357, 2345, 562,
1028  2575, 2575, 584, 2575, 2575, 2343, 192, 2390, 586, 2401,
1029  2575, 579, 2575, 2400, 2575, 2394, 633, 2575, 2356, 538,
1030  2333, 2352, 2335, 2352, 2388, 2348, 2338, 2390, 2345, 2348,
1031  2339, 2342, 2328, 2339, 572, 2378, 2336, 2333, 2334, 604,
1032  2338, 2378, 2313, 2325, 2320, 2317, 2313, 2315, 2318, 2365,
1033  2322, 2311, 2327, 2361, 2307, 612, 2320, 2320, 2303, 2304,
1034  2317, 2315, 2313, 2313, 2312, 2307, 2314, 2309, 2294, 576,
1035  2303, 2306, 2301, 574, 2300, 2296, 2346, 569, 581, 2575,
1036 
1037  2305, 2339, 2289, 2288, 2281, 2283, 2295, 2286, 2293, 2274,
1038  2291, 2283, 2279, 2284, 611, 2331, 2284, 612, 2281, 2284,
1039  2284, 2282, 573, 2272, 2284, 604, 2259, 2260, 2281, 2272,
1040  2262, 2259, 2273, 614, 2259, 2271, 2270, 2269, 2264, 2306,
1041  2266, 2265, 2264, 2263, 2246, 2254, 2304, 2263, 2302, 2242,
1042  2300, 2242, 634, 2255, 2253, 2575, 2575, 2253, 629, 2295,
1043  2294, 2575, 2293, 2575, 638, 686, 2252, 641, 2291, 2285,
1044  2238, 2240, 2242, 2229, 2226, 2575, 2231, 2224, 2236, 2239,
1045  2226, 2225, 2575, 2235, 626, 2226, 2223, 2235, 625, 2220,
1046  2222, 2575, 2267, 2227, 2212, 2214, 2225, 2223, 2223, 2217,
1047 
1048  685, 2224, 2212, 2205, 2256, 2575, 2203, 2219, 2253, 2257,
1049  2213, 2207, 2209, 2210, 2194, 2203, 2245, 2196, 2195, 2190,
1050  2189, 2191, 2187, 2183, 635, 2202, 2176, 2183, 2188, 2181,
1051  2197, 2231, 2235, 2575, 2180, 2176, 2232, 2183, 2182, 2176,
1052  2183, 2168, 2178, 2166, 2180, 2180, 2168, 2164, 2169, 2165,
1053  2160, 2575, 2217, 2575, 2159, 2158, 2151, 2168, 2207, 2206,
1054  2151, 2150, 2155, 2164, 2158, 2152, 2161, 709, 2198, 2160,
1055  2144, 2139, 2135, 2141, 344, 2155, 2148, 2152, 2135, 2193,
1056  2134, 2134, 2185, 2130, 2131, 2130, 2128, 2145, 2575, 2141,
1057  2575, 2178, 2575, 2129, 2575, 2139, 2175, 2174, 2134, 2177,
1058 
1059  2575, 2575, 2575, 539, 659, 2117, 710, 2575, 659, 2135,
1060  2115, 2125, 2167, 2166, 2111, 2121, 2163, 2108, 2115, 2108,
1061  2116, 2119, 2101, 2101, 2116, 2115, 591, 2114, 2113, 2097,
1062  2112, 2094, 2141, 2108, 2105, 2145, 2089, 2091, 2103, 2103,
1063  2101, 2101, 2575, 2086, 2083, 2141, 2096, 2088, 2094, 2085,
1064  2093, 2575, 2078, 2089, 2093, 2075, 2087, 2079, 605, 2070,
1065  2069, 2063, 2068, 2065, 2080, 2079, 2080, 2059, 2069, 2075,
1066  2118, 2073, 2072, 2064, 2055, 2575, 2056, 2058, 2575, 2060,
1067  2065, 2104, 2103, 16, 2064, 2101, 2046, 2099, 2046, 2049,
1068  2047, 2049, 2040, 2575, 2054, 2040, 712, 2032, 2036, 2052,
1069 
1070  2049, 2044, 2040, 2085, 2037, 2044, 2082, 2575, 2028, 2026,
1071  2040, 2039, 2042, 2076, 2075, 2022, 2073, 2033, 2017, 2070,
1072  2069, 2575, 2014, 2028, 2027, 701, 2024, 93, 348, 351,
1073  479, 452, 619, 613, 641, 641, 2575, 2575, 688, 681,
1074  666, 663, 682, 676, 665, 668, 682, 683, 693, 736,
1075  696, 696, 735, 737, 691, 687, 692, 702, 708, 694,
1076  697, 708, 708, 692, 749, 711, 704, 714, 754, 717,
1077  710, 710, 712, 716, 722, 762, 725, 769, 727, 728,
1078  2575, 731, 726, 717, 732, 737, 734, 731, 738, 737,
1079  725, 739, 737, 745, 781, 743, 788, 789, 733, 746,
1080 
1081  732, 742, 789, 747, 797, 2575, 798, 754, 752, 754,
1082  750, 744, 804, 800, 763, 752, 2575, 754, 765, 754,
1083  767, 757, 770, 814, 773, 758, 817, 760, 775, 2575,
1084  769, 763, 774, 759, 770, 783, 774, 763, 769, 824,
1085  788, 772, 772, 785, 829, 830, 777, 795, 790, 795,
1086  792, 836, 778, 790, 791, 798, 789, 786, 2575, 852,
1087  809, 810, 798, 812, 802, 805, 816, 807, 813, 814,
1088  858, 834, 808, 822, 804, 811, 825, 870, 827, 824,
1089  822, 2575, 826, 821, 836, 833, 819, 821, 840, 837,
1090  838, 826, 833, 834, 843, 847, 883, 845, 835, 848,
1091 
1092  835, 834, 840, 896, 843, 838, 839, 845, 861, 844,
1093  898, 853, 900, 2575, 864, 864, 857, 868, 866, 911,
1094  853, 855, 870, 871, 859, 857, 919, 876, 862, 868,
1095  866, 2575, 2575, 882, 881, 882, 887, 875, 885, 887,
1096  2575, 2575, 887, 889, 876, 894, 881, 2575, 879, 897,
1097  884, 884, 935, 882, 886, 904, 945, 2575, 906, 947,
1098  2575, 892, 906, 906, 951, 899, 898, 902, 896, 912,
1099  957, 910, 900, 901, 897, 907, 911, 922, 923, 918,
1100  920, 913, 915, 911, 928, 918, 933, 916, 975, 932,
1101  937, 914, 937, 923, 922, 2575, 929, 931, 980, 981,
1102 
1103  933, 946, 984, 931, 946, 940, 965, 973, 995, 943,
1104  992, 954, 994, 2575, 1000, 943, 962, 952, 951, 946,
1105  947, 959, 954, 950, 968, 954, 955, 965, 974, 1010,
1106  957, 976, 968, 964, 1017, 1023, 980, 971, 2575, 985,
1107  976, 984, 986, 971, 987, 977, 989, 986, 984, 1031,
1108  997, 981, 982, 2575, 998, 1001, 984, 986, 1044, 987,
1109  1006, 2575, 1005, 1008, 995, 990, 1008, 996, 1049, 1007,
1110  1003, 1000, 1053, 1002, 1055, 1017, 1003, 1021, 1020, 1006,
1111  1021, 1013, 1009, 1027, 1026, 1013, 1030, 2575, 1014, 2575,
1112  1023, 1070, 1023, 2575, 1031, 1034, 1027, 1081, 1028, 2575,
1113 
1114  1031, 1036, 1080, 1031, 1032, 1044, 1038, 1039, 1037, 1048,
1115  1093, 1037, 1038, 1096, 1097, 1041, 1053, 1046, 2575, 1042,
1116  1051, 1049, 1100, 1042, 1063, 1049, 1050, 1051, 1052, 1058,
1117  1066, 1057, 1071, 1072, 1073, 1089, 1094, 2575, 1076, 1081,
1118  1064, 1064, 2575, 1065, 1067, 1078, 1068, 1088, 1087, 1078,
1119  1089, 1132, 1074, 1094, 1087, 1091, 1095, 1078, 1095, 1086,
1120  1141, 1088, 1092, 2575, 1139, 1088, 1108, 1090, 1090, 1111,
1121  1108, 1148, 1097, 1115, 1103, 1117, 1103, 1111, 1120, 1100,
1122  1115, 1122, 1164, 1165, 2575, 1118, 1167, 1168, 1110, 1120,
1123  1130, 1114, 1134, 1117, 1119, 1119, 1126, 1135, 1123, 1130,
1124 
1125  1125, 1132, 1144, 1185, 1132, 1131, 1148, 1189, 1139, 1143,
1126  1141, 1139, 1134, 1195, 1146, 1143, 1198, 1148, 1200, 1196,
1127  1202, 1155, 2575, 1144, 1161, 1154, 1145, 1164, 1158, 1153,
1128  1163, 1165, 1161, 1173, 2575, 1157, 1153, 2575, 2575, 1159,
1129  1219, 1178, 1159, 1178, 1179, 1181, 1220, 1173, 1227, 1228,
1130  1181, 1186, 1180, 1178, 1189, 1171, 1176, 1182, 1216, 1207,
1131  1239, 1194, 1194, 1198, 1243, 1186, 1186, 1189, 1206, 1201,
1132  1205, 1200, 2575, 1197, 1193, 1210, 1190, 1211, 1201, 1252,
1133  1205, 2575, 1218, 1217, 1220, 1204, 1213, 1217, 1223, 1209,
1134  1269, 1222, 1227, 1214, 1228, 1226, 1218, 1224, 1220, 1238,
1135 
1136  1239, 1240, 2575, 2575, 1238, 2575, 1240, 2575, 1225, 1236,
1137  1227, 1246, 1239, 1237, 1289, 1246, 1243, 1287, 1251, 1240,
1138  1247, 1252, 1249, 1255, 2575, 1248, 1240, 1301, 2575, 1302,
1139  1249, 1256, 1300, 1262, 2575, 1263, 1251, 2575, 1261, 2575,
1140  1252, 2575, 1252, 1253, 1256, 1270, 1275, 1258, 1269, 1318,
1141  1275, 1276, 1316, 1272, 1323, 1319, 1325, 2575, 1276, 1273,
1142  1328, 1329, 1286, 1287, 1289, 2575, 2575, 1281, 1276, 1330,
1143  1279, 1295, 1279, 1291, 1280, 1311, 1342, 2575, 1299, 1290,
1144  1301, 2575, 1346, 1283, 1294, 1309, 1345, 1297, 1308, 1296,
1145  1310, 1311, 1308, 1352, 1315, 1305, 1315, 1321, 1309, 1309,
1146 
1147  1364, 1360, 1361, 1367, 1324, 2575, 1327, 1326, 1328, 1319,
1148  1323, 1332, 1333, 1330, 1320, 1323, 1323, 1382, 1329, 1384,
1149  1331, 1386, 1329, 1334, 1389, 2575, 1348, 1327, 1342, 1335,
1150  1338, 1351, 1354, 1353, 1351, 1400, 1354, 2575, 2575, 1350,
1151  1360, 1345, 1401, 1348, 1408, 1364, 1350, 1411, 1412, 1413,
1152  1357, 1367, 1416, 1373, 2575, 1365, 1366, 1368, 1421, 1364,
1153  2575, 1381, 2575, 1380, 1370, 2575, 2575, 1383, 1366, 1386,
1154  1387, 1373, 1375, 1434, 1384, 1436, 1385, 1379, 1418, 2575,
1155  1440, 1390, 1437, 2575, 1385, 1444, 1394, 1388, 1385, 1388,
1156  1390, 1386, 1408, 1447, 1400, 1412, 1415, 1403, 1406, 1399,
1157 
1158  1459, 1407, 2575, 1404, 1404, 2575, 1406, 1465, 1418, 1409,
1159  1463, 1425, 1425, 1428, 1428, 1425, 1469, 1431, 2575, 1423,
1160  2575, 1424, 2575, 1434, 1426, 2575, 1475, 1437, 1438, 1435,
1161  1479, 1427, 1442, 1482, 1444, 1436, 2575, 1433, 1433, 1439,
1162  1438, 1436, 1490, 2575, 1452, 1452, 2575, 2575, 2575, 1493,
1163  1440, 2575, 1457, 1442, 1443, 1449, 2575, 1458, 1505, 1453,
1164  1445, 1451, 1461, 1473, 1466, 1472, 1462, 1517, 1470, 2575,
1165  1479, 2575, 1476, 1521, 1496, 2575, 1480, 1465, 1525, 2575,
1166  1526, 1483, 1488, 1470, 1530, 1531, 1527, 1491, 1488, 1484,
1167  1477, 1532, 1490, 1491, 2575, 1481, 1497, 1495, 1543, 2575,
1168 
1169  1482, 1541, 1505, 1505, 1502, 1546, 1494, 1499, 1497, 1556,
1170  1512, 1500, 1559, 1555, 1510, 1562, 1523, 1512, 1506, 1566,
1171  1508, 1517, 1510, 1524, 1527, 1572, 1514, 1531, 1527, 1525,
1172  1518, 1533, 1517, 1575, 1576, 1577, 1578, 1541, 1534, 1533,
1173  1533, 1528, 2575, 1536, 1542, 1533, 1534, 1533, 1535, 1590,
1174  1536, 2575, 1532, 1550, 1599, 2575, 1569, 1601, 1554, 2575,
1175  2575, 1545, 1556, 1605, 2575, 2575, 1551, 1556, 1554, 1604,
1176  1562, 1567, 1555, 1571, 1561, 1559, 1559, 1561, 2575, 1619,
1177  1565, 1574, 1617, 1560, 1566, 1626, 1574, 1585, 1586, 2575,
1178  1631, 1584, 1628, 2575, 1579, 1587, 2575, 1578, 1593, 1581,
1179 
1180  2575, 1591, 1592, 1593, 1642, 1600, 2575, 1639, 1605, 1581,
1181  1599, 1600, 1601, 1610, 1592, 1598, 1600, 1612, 1611, 1602,
1182  1652, 1604, 1600, 1601, 1602, 1657, 1663, 1613, 1665, 1618,
1183  1608, 1624, 1617, 2575, 1670, 2575, 1619, 1672, 1614, 2575,
1184  1617, 1627, 1671, 1619, 1634, 1621, 1636, 1622, 1629, 1629,
1185  1640, 1641, 2575, 1635, 1630, 1644, 1630, 1690, 1643, 2575,
1186  1687, 1638, 1635, 2575, 1649, 1636, 1657, 1653, 1655, 1700,
1187  1653, 1650, 1658, 1652, 2575, 1705, 1646, 1648, 1664, 1657,
1188  1658, 1648, 1664, 1665, 1659, 1675, 1665, 1717, 1677, 1661,
1189  1670, 1716, 1674, 1723, 1672, 2575, 1666, 2575, 1673, 1727,
1190 
1191  1728, 1725, 2575, 1687, 2575, 1727, 1689, 1690, 1675, 1676,
1192  1684, 1738, 1686, 1735, 1736, 1691, 1686, 1704, 1701, 1692,
1193  1705, 1700, 2575, 1697, 1702, 1700, 1752, 1753, 1701, 1698,
1194  1712, 1699, 2575, 1714, 1715, 1716, 1717, 2575, 1707, 1719,
1195  1764, 1717, 1722, 1767, 1709, 1717, 1711, 1719, 1732, 2575,
1196  1733, 1714, 1715, 1722, 1724, 2575, 1738, 1735, 1775, 1736,
1197  2575, 2575, 1740, 1725, 1725, 1740, 1733, 1732, 1743, 1730,
1198  2575, 1746, 1734, 1737, 1793, 1733, 1752, 1743, 1755, 1748,
1199  1747, 1756, 1758, 1762, 2575, 2575, 1755, 1746, 1746, 1806,
1200  1749, 1808, 1750, 1810, 1768, 1812, 2575, 1754, 1814, 2575,
1201 
1202  1810, 1772, 1769, 1774, 1761, 1769, 1780, 1767, 1778, 1764,
1203  1762, 1770, 1769, 1774, 1766, 1831, 1784, 1785, 1775, 1792,
1204  1791, 1832, 1776, 1795, 1796, 2575, 1801, 1794, 1843, 1800,
1205  1787, 1802, 1847, 1804, 1807, 1794, 1803, 1804, 2575, 1853,
1206  2575, 1806, 2575, 1815, 2575, 1856, 2575, 1798, 1858, 1805,
1207  1860, 1803, 1862, 1810, 1859, 1860, 1822, 1862, 1808, 1812,
1208  1830, 1871, 1830, 2575, 1821, 1811, 1870, 1836, 1829, 1825,
1209  1879, 1822, 1824, 1823, 1830, 2575, 1826, 1885, 1829, 2575,
1210  1834, 1844, 1829, 1837, 1839, 2575, 1840, 1834, 2575, 1846,
1211  2575, 1842, 2575, 1852, 2575, 1853, 1853, 1844, 1900, 1844,
1212 
1213  1854, 1839, 1852, 2575, 1854, 1862, 1907, 1848, 1850, 1847,
1214  1871, 2575, 1858, 1865, 1866, 1869, 1858, 2575, 1912, 1859,
1215  1867, 1876, 1875, 1878, 1879, 1880, 1873, 1868, 1869, 1869,
1216  1881, 1876, 2575, 1887, 1875, 1928, 1879, 1891, 1936, 2575,
1217  1882, 1894, 1939, 1888, 1890, 1888, 1889, 1944, 1897, 1884,
1218  1899, 1904, 1949, 1950, 1951, 1952, 1953, 1910, 1955, 1956,
1219  1957, 1901, 1905, 1901, 1917, 1900, 1912, 1906, 2575, 1922,
1220  1966, 2575, 1923, 1908, 1926, 1917, 2575, 1918, 1932, 1928,
1221  1921, 2575, 2575, 2575, 2575, 2575, 1975, 2575, 2575, 2575,
1222  1918, 1926, 1921, 1974, 1940, 1937, 1982, 1943, 2575, 1984,
1223 
1224  1926, 1986, 1929, 1942, 1941, 1942, 1932, 2575, 1933, 1993,
1225  1946, 1955, 1948, 1992, 2575, 1939, 2575, 1951, 2575, 1995,
1226  2001, 1943, 1959, 2004, 2005, 2575, 1962, 1956, 1949, 1969,
1227  1966, 1958, 1962, 2575, 2009, 1958, 2575, 2575, 1958, 1966,
1228  2013, 1973, 1966, 2021, 1969, 1969, 1965, 1967, 2026, 2027,
1229  1969, 1985, 1970, 2575, 2031, 1978, 1985, 2034, 2575, 2575,
1230  1987, 2036, 1984, 2575, 1988, 1987, 2575, 1988, 2575, 1982,
1231  1982, 1999, 2000, 2045, 1991, 2047, 2048, 2575, 2049, 2575,
1232  2575, 2575, 2575, 2055, 2058, 2061, 2062, 2064, 2067, 2070,
1233  2073
1234 
1235  } ;
1236 
1237 static const flex_int16_t yy_def[2192] =
1238  { 0,
1239  2184, 2184, 2185, 2185, 2184, 2184, 2184, 2184, 2184, 2184,
1240  2183, 2183, 2183, 2183, 2183, 2186, 2183, 2183, 2183, 2183,
1241  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
1242  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2187,
1243  2183, 2183, 2183, 2188, 15, 2183, 45, 45, 45, 45,
1244  45, 45, 45, 45, 45, 45, 2189, 45, 45, 45,
1245  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1246  45, 45, 45, 45, 45, 45, 45, 45, 2186, 2183,
1247  2183, 2183, 2183, 2183, 2183, 2190, 2183, 2183, 2183, 2183,
1248  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2187, 2183, 2188,
1249 
1250  2183, 2183, 45, 45, 45, 45, 45, 45, 45, 45,
1251  45, 45, 45, 2191, 45, 2189, 45, 45, 45, 45,
1252  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1253  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1254  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1255  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1256  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1257  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1258  45, 45, 45, 45, 45, 45, 45, 2190, 2183, 2183,
1259  2183, 2183, 2183, 2183, 2183, 2183, 45, 45, 2183, 45,
1260 
1261  45, 2183, 45, 45, 45, 45, 45, 45, 2191, 2183,
1262  2183, 116, 45, 45, 45, 45, 45, 45, 45, 45,
1263  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1264  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1265  45, 45, 45, 45, 45, 45, 45, 45, 45, 2183,
1266  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1267  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1268  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1269  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1270  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1271 
1272  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1273  45, 45, 45, 45, 45, 45, 45, 45, 45, 2183,
1274  2183, 2183, 2183, 2183, 2183, 2183, 45, 45, 45, 45,
1275  2183, 45, 2183, 45, 2183, 45, 116, 2183, 45, 45,
1276  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1277  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1278  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1279  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1280  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1281  45, 45, 45, 45, 45, 45, 45, 45, 45, 2183,
1282 
1283  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1284  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1285  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1286  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1287  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1288  45, 45, 45, 45, 45, 2183, 2183, 2183, 45, 45,
1289  45, 2183, 45, 2183, 45, 116, 45, 45, 45, 45,
1290  45, 45, 45, 45, 45, 2183, 45, 45, 45, 45,
1291  45, 45, 2183, 45, 45, 45, 45, 45, 45, 45,
1292  45, 2183, 45, 45, 45, 45, 45, 45, 45, 45,
1293 
1294  45, 45, 45, 45, 45, 2183, 45, 45, 45, 45,
1295  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1296  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1297  45, 45, 45, 2183, 45, 45, 45, 45, 45, 45,
1298  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1299  45, 2183, 45, 2183, 45, 45, 45, 45, 45, 45,
1300  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1301  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1302  45, 45, 45, 45, 45, 45, 45, 45, 2183, 45,
1303  2183, 45, 2183, 45, 2183, 45, 45, 45, 2183, 45,
1304 
1305  2183, 2183, 2183, 45, 45, 45, 45, 2183, 45, 45,
1306  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1307  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1308  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1309  45, 45, 2183, 45, 45, 45, 45, 45, 45, 45,
1310  45, 2183, 45, 45, 45, 45, 45, 45, 45, 45,
1311  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1312  45, 45, 45, 45, 45, 2183, 45, 45, 2183, 45,
1313  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1314  45, 45, 45, 2183, 45, 45, 45, 45, 45, 45,
1315 
1316  45, 45, 45, 45, 45, 45, 45, 2183, 45, 45,
1317  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1318  45, 2183, 45, 45, 45, 45, 45, 45, 45, 45,
1319  45, 45, 45, 45, 45, 45, 2183, 2183, 45, 45,
1320  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1321  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1322  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1323  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1324  2183, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1325  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1326 
1327  45, 45, 45, 45, 45, 2183, 45, 45, 45, 45,
1328  45, 45, 45, 45, 45, 45, 2183, 45, 45, 45,
1329  45, 45, 45, 45, 45, 45, 45, 45, 45, 2183,
1330  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1331  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1332  45, 45, 45, 45, 45, 45, 45, 45, 2183, 45,
1333  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1334  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1335  45, 2183, 45, 45, 45, 45, 45, 45, 45, 45,
1336  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1337 
1338  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1339  45, 45, 45, 2183, 45, 45, 45, 45, 45, 45,
1340  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1341  45, 2183, 2183, 45, 45, 45, 45, 45, 45, 45,
1342  2183, 2183, 45, 45, 45, 45, 45, 2183, 45, 45,
1343  45, 45, 45, 45, 45, 45, 45, 2183, 45, 45,
1344  2183, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1345  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1346  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1347  45, 45, 45, 45, 45, 2183, 45, 45, 45, 45,
1348 
1349  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1350  45, 45, 45, 2183, 45, 45, 45, 45, 45, 45,
1351  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1352  45, 45, 45, 45, 45, 45, 45, 45, 2183, 45,
1353  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1354  45, 45, 45, 2183, 45, 45, 45, 45, 45, 45,
1355  45, 2183, 45, 45, 45, 45, 45, 45, 45, 45,
1356  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1357  45, 45, 45, 45, 45, 45, 45, 2183, 45, 2183,
1358  45, 45, 45, 2183, 45, 45, 45, 45, 45, 2183,
1359 
1360  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1361  45, 45, 45, 45, 45, 45, 45, 45, 2183, 45,
1362  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1363  45, 45, 45, 45, 45, 45, 45, 2183, 45, 45,
1364  45, 45, 2183, 45, 45, 45, 45, 45, 45, 45,
1365  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1366  45, 45, 45, 2183, 45, 45, 45, 45, 45, 45,
1367  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1368  45, 45, 45, 45, 2183, 45, 45, 45, 45, 45,
1369  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1370 
1371  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1372  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1373  45, 45, 2183, 45, 45, 45, 45, 45, 45, 45,
1374  45, 45, 45, 45, 2183, 45, 45, 2183, 2183, 45,
1375  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1376  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1377  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1378  45, 45, 2183, 45, 45, 45, 45, 45, 45, 45,
1379  45, 2183, 45, 45, 45, 45, 45, 45, 45, 45,
1380  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1381 
1382  45, 45, 2183, 2183, 45, 2183, 45, 2183, 45, 45,
1383  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1384  45, 45, 45, 45, 2183, 45, 45, 45, 2183, 45,
1385  45, 45, 45, 45, 2183, 45, 45, 2183, 45, 2183,
1386  45, 2183, 45, 45, 45, 45, 45, 45, 45, 45,
1387  45, 45, 45, 45, 45, 45, 45, 2183, 45, 45,
1388  45, 45, 45, 45, 45, 2183, 2183, 45, 45, 45,
1389  45, 45, 45, 45, 45, 45, 45, 2183, 45, 45,
1390  45, 2183, 45, 45, 45, 45, 45, 45, 45, 45,
1391  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1392 
1393  45, 45, 45, 45, 45, 2183, 45, 45, 45, 45,
1394  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1395  45, 45, 45, 45, 45, 2183, 45, 45, 45, 45,
1396  45, 45, 45, 45, 45, 45, 45, 2183, 2183, 45,
1397  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1398  45, 45, 45, 45, 2183, 45, 45, 45, 45, 45,
1399  2183, 45, 2183, 45, 45, 2183, 2183, 45, 45, 45,
1400  45, 45, 45, 45, 45, 45, 45, 45, 45, 2183,
1401  45, 45, 45, 2183, 45, 45, 45, 45, 45, 45,
1402  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1403 
1404  45, 45, 2183, 45, 45, 2183, 45, 45, 45, 45,
1405  45, 45, 45, 45, 45, 45, 45, 45, 2183, 45,
1406  2183, 45, 2183, 45, 45, 2183, 45, 45, 45, 45,
1407  45, 45, 45, 45, 45, 45, 2183, 45, 45, 45,
1408  45, 45, 45, 2183, 45, 45, 2183, 2183, 2183, 45,
1409  45, 2183, 45, 45, 45, 45, 2183, 45, 45, 45,
1410  45, 45, 45, 45, 45, 45, 45, 45, 45, 2183,
1411  45, 2183, 45, 45, 45, 2183, 45, 45, 45, 2183,
1412  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1413  45, 45, 45, 45, 2183, 45, 45, 45, 45, 2183,
1414 
1415  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1416  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1417  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1418  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1419  45, 45, 2183, 45, 45, 45, 45, 45, 45, 45,
1420  45, 2183, 45, 45, 45, 2183, 45, 45, 45, 2183,
1421  2183, 45, 45, 45, 2183, 2183, 45, 45, 45, 45,
1422  45, 45, 45, 45, 45, 45, 45, 45, 2183, 45,
1423  45, 45, 45, 45, 45, 45, 45, 45, 45, 2183,
1424  45, 45, 45, 2183, 45, 45, 2183, 45, 45, 45,
1425 
1426  2183, 45, 45, 45, 45, 45, 2183, 45, 45, 45,
1427  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1428  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1429  45, 45, 45, 2183, 45, 2183, 45, 45, 45, 2183,
1430  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1431  45, 45, 2183, 45, 45, 45, 45, 45, 45, 2183,
1432  45, 45, 45, 2183, 45, 45, 45, 45, 45, 45,
1433  45, 45, 45, 45, 2183, 45, 45, 45, 45, 45,
1434  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1435  45, 45, 45, 45, 45, 2183, 45, 2183, 45, 45,
1436 
1437  45, 45, 2183, 45, 2183, 45, 45, 45, 45, 45,
1438  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1439  45, 45, 2183, 45, 45, 45, 45, 45, 45, 45,
1440  45, 45, 2183, 45, 45, 45, 45, 2183, 45, 45,
1441  45, 45, 45, 45, 45, 45, 45, 45, 45, 2183,
1442  45, 45, 45, 45, 45, 2183, 45, 45, 45, 45,
1443  2183, 2183, 45, 45, 45, 45, 45, 45, 45, 45,
1444  2183, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1445  45, 45, 45, 45, 2183, 2183, 45, 45, 45, 45,
1446  45, 45, 45, 45, 45, 45, 2183, 45, 45, 2183,
1447 
1448  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1449  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1450  45, 45, 45, 45, 45, 2183, 45, 45, 45, 45,
1451  45, 45, 45, 45, 45, 45, 45, 45, 2183, 45,
1452  2183, 45, 2183, 45, 2183, 45, 2183, 45, 45, 45,
1453  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1454  45, 45, 45, 2183, 45, 45, 45, 45, 45, 45,
1455  45, 45, 45, 45, 45, 2183, 45, 45, 45, 2183,
1456  45, 45, 45, 45, 45, 2183, 45, 45, 2183, 45,
1457  2183, 45, 2183, 45, 2183, 45, 45, 45, 45, 45,
1458 
1459  45, 45, 45, 2183, 45, 45, 45, 45, 45, 45,
1460  45, 2183, 45, 45, 45, 45, 45, 2183, 45, 45,
1461  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1462  45, 45, 2183, 45, 45, 45, 45, 45, 45, 2183,
1463  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1464  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1465  45, 45, 45, 45, 45, 45, 45, 45, 2183, 45,
1466  45, 2183, 45, 45, 45, 45, 2183, 45, 45, 45,
1467  45, 2183, 2183, 2183, 2183, 2183, 45, 2183, 2183, 2183,
1468  45, 45, 45, 45, 45, 45, 45, 45, 2183, 45,
1469 
1470  45, 45, 45, 45, 45, 45, 45, 2183, 45, 45,
1471  45, 45, 45, 45, 2183, 45, 2183, 45, 2183, 45,
1472  45, 45, 45, 45, 45, 2183, 45, 45, 45, 45,
1473  45, 45, 45, 2183, 45, 45, 2183, 2183, 45, 45,
1474  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1475  45, 45, 45, 2183, 45, 45, 45, 45, 2183, 2183,
1476  45, 45, 45, 2183, 45, 45, 2183, 45, 2183, 45,
1477  45, 45, 45, 45, 45, 45, 45, 2183, 45, 2183,
1478  2183, 2183, 0, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
1479  2183
1480 
1481  } ;
1482 
1483 static const flex_int16_t yy_nxt[2649] =
1484  { 0,
1485  2183, 13, 14, 13, 2183, 15, 16, 2183, 17, 18,
1486  19, 20, 21, 22, 22, 22, 22, 22, 23, 24,
1487  85, 817, 37, 14, 37, 86, 25, 26, 38, 101,
1488  2183, 27, 37, 14, 37, 42, 28, 42, 38, 91,
1489  92, 29, 201, 30, 13, 14, 13, 90, 91, 25,
1490  31, 92, 13, 14, 13, 13, 14, 13, 32, 40,
1491  818, 13, 14, 13, 33, 40, 102, 91, 92, 201,
1492  90, 34, 35, 13, 14, 13, 94, 15, 16, 95,
1493  17, 18, 19, 20, 21, 22, 22, 22, 22, 22,
1494  23, 24, 13, 14, 13, 90, 39, 103, 25, 26,
1495 
1496  13, 14, 13, 27, 39, 42, 106, 42, 28, 42,
1497  107, 42, 41, 29, 109, 30, 112, 113, 93, 137,
1498  41, 25, 31, 103, 138, 381, 88, 139, 88, 106,
1499  32, 89, 89, 89, 89, 89, 33, 109, 107, 112,
1500  862, 113, 382, 34, 35, 44, 44, 44, 45, 45,
1501  46, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1502  45, 45, 45, 45, 45, 45, 45, 47, 45, 45,
1503  48, 49, 50, 45, 51, 52, 53, 45, 45, 45,
1504  45, 54, 55, 45, 56, 45, 45, 57, 45, 45,
1505  58, 45, 59, 60, 61, 62, 63, 64, 65, 51,
1506 
1507  66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1508  76, 77, 78, 45, 45, 45, 45, 45, 80, 205,
1509  81, 81, 81, 81, 81, 80, 103, 83, 83, 83,
1510  83, 83, 459, 82, 84, 84, 84, 84, 84, 80,
1511  82, 83, 83, 83, 83, 83, 205, 82, 189, 190,
1512  110, 119, 117, 131, 82, 120, 82, 106, 118, 121,
1513  111, 459, 122, 82, 125, 123, 132, 126, 127, 124,
1514  82, 128, 129, 110, 189, 190, 133, 82, 45, 109,
1515  106, 45, 45, 45, 130, 45, 45, 45, 111, 115,
1516  135, 134, 45, 45, 333, 45, 45, 136, 153, 445,
1517 
1518  154, 45, 155, 45, 45, 45, 45, 45, 45, 45,
1519  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1520  45, 45, 45, 45, 191, 140, 45, 167, 144, 145,
1521  45, 168, 146, 113, 45, 141, 148, 142, 147, 241,
1522  149, 202, 45, 156, 150, 208, 45, 207, 45, 116,
1523  112, 157, 191, 158, 716, 242, 151, 113, 159, 160,
1524  152, 161, 169, 189, 162, 163, 170, 187, 208, 171,
1525  176, 177, 203, 112, 207, 164, 172, 173, 165, 191,
1526  110, 174, 175, 184, 190, 197, 200, 101, 185, 192,
1527  111, 84, 84, 84, 84, 84, 80, 863, 81, 81,
1528 
1529  81, 81, 81, 178, 82, 179, 717, 194, 180, 181,
1530  193, 82, 200, 197, 88, 864, 88, 250, 182, 89,
1531  89, 89, 89, 89, 102, 183, 80, 82, 83, 83,
1532  83, 83, 83, 100, 82, 84, 84, 84, 84, 84,
1533  100, 82, 89, 89, 89, 89, 89, 204, 82, 89,
1534  89, 89, 89, 89, 206, 197, 216, 222, 228, 229,
1535  235, 251, 236, 238, 82, 217, 223, 224, 230, 218,
1536  100, 82, 213, 204, 100, 204, 239, 270, 100, 237,
1537  240, 245, 206, 214, 246, 255, 100, 260, 247, 865,
1538  100, 285, 100, 100, 211, 286, 281, 866, 256, 282,
1539 
1540  283, 268, 212, 212, 212, 212, 212, 288, 261, 275,
1541  322, 212, 212, 212, 212, 212, 212, 304, 338, 205,
1542  206, 310, 320, 271, 276, 277, 278, 311, 321, 322,
1543  321, 305, 330, 322, 212, 212, 212, 212, 212, 212,
1544  320, 298, 289, 290, 291, 299, 309, 327, 314, 300,
1545  320, 329, 325, 292, 321, 293, 324, 294, 295, 330,
1546  296, 332, 334, 336, 327, 390, 349, 351, 323, 350,
1547  327, 739, 339, 332, 412, 352, 408, 483, 459, 329,
1548  404, 353, 484, 562, 332, 334, 409, 340, 456, 413,
1549  336, 337, 337, 337, 337, 337, 399, 440, 739, 441,
1550 
1551  337, 337, 337, 337, 337, 337, 425, 468, 334, 426,
1552  456, 456, 461, 463, 489, 463, 552, 506, 391, 535,
1553  490, 392, 507, 337, 337, 337, 337, 337, 337, 536,
1554  405, 334, 563, 457, 530, 461, 523, 524, 525, 595,
1555  531, 463, 526, 537, 596, 450, 466, 466, 466, 466,
1556  466, 762, 793, 794, 763, 466, 466, 466, 466, 466,
1557  466, 556, 566, 575, 600, 557, 567, 576, 867, 604,
1558  508, 605, 868, 631, 553, 509, 600, 622, 466, 466,
1559  466, 466, 466, 466, 667, 623, 632, 624, 625, 626,
1560  643, 627, 600, 740, 668, 644, 604, 869, 605, 45,
1561 
1562  45, 45, 45, 45, 607, 870, 859, 872, 45, 45,
1563  45, 45, 45, 45, 708, 738, 743, 830, 860, 709,
1564  742, 740, 831, 744, 871, 873, 874, 875, 876, 877,
1565  872, 45, 45, 45, 45, 45, 45, 878, 879, 880,
1566  881, 882, 883, 884, 885, 887, 886, 888, 889, 890,
1567  891, 892, 871, 893, 894, 895, 896, 897, 898, 899,
1568  900, 832, 901, 902, 903, 904, 905, 906, 909, 910,
1569  911, 907, 912, 913, 914, 908, 915, 916, 917, 918,
1570  919, 920, 921, 922, 923, 924, 925, 926, 927, 928,
1571  929, 930, 931, 932, 933, 934, 935, 936, 937, 939,
1572 
1573  940, 938, 941, 942, 943, 944, 945, 946, 947, 948,
1574  949, 950, 951, 952, 953, 954, 955, 956, 957, 958,
1575  959, 960, 961, 962, 963, 964, 965, 966, 967, 968,
1576  969, 970, 971, 972, 973, 974, 975, 976, 977, 978,
1577  979, 980, 981, 982, 984, 985, 988, 989, 990, 991,
1578  983, 993, 986, 994, 995, 992, 987, 996, 997, 998,
1579  999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
1580  1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
1581  1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028,
1582  1029, 1030, 1031, 1032, 1033, 1034, 1035, 1008, 1036, 1037,
1583 
1584  1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047,
1585  1048, 1049, 1050, 1051, 1052, 1053, 1054, 1056, 1057, 1058,
1586  1059, 1055, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067,
1587  1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077,
1588  1078, 1079, 1080, 1082, 1083, 1084, 1081, 1085, 1086, 1087,
1589  1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097,
1590  1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107,
1591  1108, 1109, 1110, 1111, 1112, 1113, 1114, 1116, 1117, 1118,
1592  1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1115, 1127,
1593  1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137,
1594 
1595  1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147,
1596  1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157,
1597  1158, 1159, 1137, 1160, 1161, 1136, 1162, 1163, 1164, 1165,
1598  1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175,
1599  1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185,
1600  1188, 1189, 1190, 1191, 1186, 1192, 1193, 1194, 1195, 1196,
1601  1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206,
1602  1207, 1208, 1209, 1210, 1211, 1213, 1214, 1215, 1216, 1217,
1603  1218, 1219, 1220, 1221, 1222, 1212, 1223, 1224, 1225, 1226,
1604  1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236,
1605 
1606  1237, 1238, 1239, 1240, 1241, 1242, 1243, 1187, 1244, 1245,
1607  1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255,
1608  1256, 1257, 1258, 1259, 1261, 1260, 1262, 1263, 1264, 1265,
1609  1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275,
1610  1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285,
1611  1286, 1259, 1260, 1287, 1288, 1289, 1290, 1291, 1292, 1293,
1612  1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303,
1613  1304, 1305, 1306, 1308, 1310, 1311, 1312, 1307, 1313, 1314,
1614  1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324,
1615  1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334,
1616 
1617  1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344,
1618  1345, 1346, 1347, 1348, 1349, 1350, 1351, 1309, 1352, 1353,
1619  1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363,
1620  1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373,
1621  1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383,
1622  1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393,
1623  1394, 1395, 1396, 1397, 1398, 1376, 1399, 1400, 1401, 1402,
1624  1403, 1377, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411,
1625  1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421,
1626  1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431,
1627 
1628  1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441,
1629  1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451,
1630  1452, 1453, 1454, 1455, 1456, 1457, 1458, 1460, 1461, 1462,
1631  1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472,
1632  1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482,
1633  1483, 1484, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493,
1634  1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503,
1635  1504, 1505, 1506, 1507, 1479, 1508, 1509, 1510, 1511, 1459,
1636  1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521,
1637  1522, 1523, 1524, 1525, 1526, 1485, 1527, 1528, 1529, 1531,
1638 
1639  1532, 1533, 1534, 1535, 1536, 1537, 1530, 1538, 1539, 1540,
1640  1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550,
1641  1551, 1552, 1553, 1554, 1555, 1556, 1557, 1559, 1560, 1562,
1642  1561, 1558, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570,
1643  1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580,
1644  1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590,
1645  1591, 1592, 1593, 1594, 1595, 1596, 1597, 1575, 1598, 1599,
1646  1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609,
1647  1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619,
1648  1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629,
1649 
1650  1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639,
1651  1643, 1640, 1644, 1645, 1641, 1646, 1647, 1642, 1648, 1649,
1652  1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659,
1653  1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1670,
1654  1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1669,
1655  1680, 1681, 1682, 1683, 1657, 1684, 1685, 1686, 1687, 1688,
1656  1689, 1690, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699,
1657  1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709,
1658  1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719,
1659  1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729,
1660 
1661  1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739,
1662  1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1691,
1663  1749, 1750, 1751, 1752, 1753, 1755, 1756, 1757, 1758, 1754,
1664  1759, 1760, 1761, 1735, 1762, 1763, 1764, 1765, 1766, 1767,
1665  1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777,
1666  1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787,
1667  1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797,
1668  1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807,
1669  1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817,
1670  1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827,
1671 
1672  1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837,
1673  1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847,
1674  1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857,
1675  1859, 1860, 1861, 1862, 1858, 1863, 1864, 1865, 1866, 1867,
1676  1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877,
1677  1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887,
1678  1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897,
1679  1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907,
1680  1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917,
1681  1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927,
1682 
1683  1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937,
1684  1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947,
1685  1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957,
1686  1958, 1959, 1961, 1962, 1960, 1963, 1964, 1965, 1966, 1967,
1687  1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977,
1688  1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987,
1689  1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
1690  1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
1691  2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
1692  2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027,
1693 
1694  2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037,
1695  2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047,
1696  2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057,
1697  2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067,
1698  2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077,
1699  2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087,
1700  2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097,
1701  2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107,
1702  2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117,
1703  2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127,
1704 
1705  2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137,
1706  2138, 2139, 2140, 2141, 2142, 2144, 2143, 2145, 2146, 2147,
1707  2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157,
1708  2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167,
1709  2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177,
1710  2178, 2179, 2180, 2181, 2182, 12, 12, 12, 36, 36,
1711  36, 79, 98, 79, 100, 100, 100, 114, 114, 114,
1712  188, 861, 188, 209, 209, 209, 858, 857, 856, 855,
1713  854, 853, 852, 851, 850, 849, 848, 847, 846, 845,
1714  844, 843, 842, 841, 840, 839, 838, 837, 836, 835,
1715 
1716  834, 833, 829, 828, 827, 826, 825, 824, 823, 822,
1717  821, 820, 819, 816, 815, 814, 813, 812, 811, 810,
1718  809, 808, 807, 806, 805, 804, 803, 802, 801, 800,
1719  799, 798, 797, 796, 795, 792, 791, 790, 789, 788,
1720  787, 786, 785, 784, 783, 782, 781, 780, 779, 778,
1721  777, 776, 775, 774, 773, 772, 771, 770, 769, 768,
1722  767, 766, 765, 764, 761, 760, 759, 758, 757, 756,
1723  755, 754, 753, 752, 751, 750, 749, 748, 747, 746,
1724  745, 741, 738, 737, 736, 735, 734, 733, 732, 731,
1725  730, 729, 728, 727, 726, 725, 724, 723, 722, 721,
1726 
1727  720, 719, 718, 715, 714, 713, 712, 711, 710, 707,
1728  706, 705, 704, 703, 702, 701, 700, 699, 698, 697,
1729  696, 695, 694, 693, 692, 691, 690, 689, 688, 687,
1730  686, 685, 684, 683, 682, 681, 680, 679, 678, 677,
1731  676, 675, 674, 673, 672, 671, 670, 669, 666, 665,
1732  664, 663, 662, 661, 660, 659, 658, 657, 656, 655,
1733  654, 653, 652, 651, 650, 649, 648, 647, 646, 645,
1734  642, 641, 640, 639, 638, 637, 636, 635, 634, 633,
1735  630, 629, 628, 621, 620, 619, 618, 617, 616, 615,
1736  614, 613, 612, 611, 610, 609, 608, 606, 603, 602,
1737 
1738  601, 599, 598, 597, 594, 593, 592, 591, 590, 589,
1739  588, 587, 586, 585, 584, 583, 582, 581, 580, 579,
1740  578, 577, 574, 573, 572, 571, 570, 569, 568, 565,
1741  564, 561, 560, 559, 558, 555, 554, 551, 550, 549,
1742  548, 547, 546, 545, 544, 543, 542, 541, 540, 539,
1743  538, 534, 533, 532, 529, 528, 527, 522, 521, 520,
1744  519, 518, 517, 516, 515, 514, 513, 512, 511, 510,
1745  505, 504, 503, 502, 501, 500, 499, 498, 497, 496,
1746  495, 494, 493, 492, 491, 488, 487, 486, 485, 482,
1747  481, 480, 479, 478, 477, 476, 475, 474, 473, 472,
1748 
1749  471, 470, 469, 467, 465, 464, 462, 460, 458, 455,
1750  454, 453, 452, 451, 449, 448, 447, 446, 444, 443,
1751  442, 439, 438, 437, 436, 435, 434, 433, 432, 431,
1752  430, 429, 428, 427, 424, 423, 422, 421, 420, 419,
1753  418, 417, 416, 415, 414, 411, 410, 407, 406, 403,
1754  402, 401, 400, 398, 397, 396, 395, 394, 393, 389,
1755  388, 387, 386, 385, 384, 383, 380, 379, 378, 377,
1756  376, 375, 374, 373, 372, 371, 370, 369, 368, 367,
1757  366, 365, 364, 363, 362, 361, 360, 359, 358, 357,
1758  356, 355, 354, 348, 347, 346, 345, 344, 343, 342,
1759 
1760  341, 210, 335, 333, 331, 328, 326, 319, 318, 317,
1761  316, 315, 313, 312, 308, 307, 306, 303, 302, 301,
1762  297, 287, 284, 280, 279, 274, 273, 272, 269, 267,
1763  266, 265, 264, 263, 262, 259, 258, 257, 254, 253,
1764  252, 249, 248, 244, 243, 234, 233, 232, 231, 227,
1765  226, 225, 221, 220, 219, 215, 210, 199, 198, 196,
1766  195, 186, 166, 143, 108, 105, 104, 43, 99, 97,
1767  96, 87, 43, 2183, 11, 2183, 2183, 2183, 2183, 2183,
1768  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
1769  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
1770 
1771  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
1772  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
1773  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
1774  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
1775  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183
1776  } ;
1777 
1778 static const flex_int16_t yy_chk[2649] =
1779  { 0,
1780  0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
1781  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1782  21, 684, 3, 3, 3, 21, 1, 1, 3, 44,
1783  0, 1, 4, 4, 4, 13, 1, 13, 4, 27,
1784  28, 1, 107, 1, 5, 5, 5, 26, 32, 1,
1785  1, 33, 6, 6, 6, 7, 7, 7, 1, 7,
1786  684, 8, 8, 8, 1, 8, 44, 27, 28, 107,
1787  26, 1, 1, 2, 2, 2, 32, 2, 2, 33,
1788  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1789  2, 2, 9, 9, 9, 31, 5, 47, 2, 2,
1790 
1791  10, 10, 10, 2, 6, 37, 50, 37, 2, 42,
1792  51, 42, 9, 2, 53, 2, 55, 56, 31, 64,
1793  10, 2, 2, 47, 64, 253, 25, 64, 25, 50,
1794  2, 25, 25, 25, 25, 25, 2, 53, 51, 55,
1795  728, 56, 253, 2, 2, 15, 15, 15, 15, 15,
1796  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1797  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1798  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1799  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1800  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1801 
1802  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1803  15, 15, 15, 15, 15, 15, 15, 15, 17, 110,
1804  17, 17, 17, 17, 17, 19, 58, 19, 19, 19,
1805  19, 19, 327, 17, 20, 20, 20, 20, 20, 22,
1806  19, 22, 22, 22, 22, 22, 110, 20, 90, 91,
1807  54, 59, 58, 61, 22, 59, 17, 62, 58, 59,
1808  54, 327, 59, 19, 60, 59, 61, 60, 60, 59,
1809  20, 60, 60, 54, 90, 91, 61, 22, 45, 69,
1810  62, 45, 45, 45, 60, 45, 45, 45, 54, 57,
1811  63, 62, 45, 45, 309, 45, 57, 63, 69, 309,
1812 
1813  69, 45, 69, 45, 45, 45, 45, 45, 45, 45,
1814  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1815  45, 45, 45, 45, 92, 65, 57, 73, 67, 67,
1816  57, 73, 67, 78, 57, 65, 68, 65, 67, 134,
1817  68, 108, 57, 70, 68, 113, 57, 112, 57, 57,
1818  76, 70, 92, 70, 575, 134, 68, 78, 70, 70,
1819  68, 71, 74, 93, 71, 71, 74, 78, 113, 74,
1820  75, 75, 108, 76, 112, 71, 74, 74, 71, 95,
1821  75, 74, 74, 76, 94, 103, 106, 100, 76, 93,
1822  75, 80, 80, 80, 80, 80, 81, 729, 81, 81,
1823 
1824  81, 81, 81, 75, 80, 75, 575, 95, 75, 75,
1825  94, 81, 106, 103, 82, 730, 82, 140, 75, 82,
1826  82, 82, 82, 82, 100, 75, 83, 80, 83, 83,
1827  83, 83, 83, 102, 81, 84, 84, 84, 84, 84,
1828  102, 83, 88, 88, 88, 88, 88, 109, 84, 89,
1829  89, 89, 89, 89, 111, 117, 119, 123, 127, 127,
1830  132, 140, 132, 133, 83, 119, 123, 123, 127, 119,
1831  102, 84, 117, 155, 102, 109, 133, 157, 102, 132,
1832  133, 137, 111, 117, 137, 144, 102, 148, 137, 731,
1833  102, 166, 102, 102, 116, 166, 164, 732, 144, 164,
1834 
1835  164, 155, 116, 116, 116, 116, 116, 168, 148, 161,
1836  191, 116, 116, 116, 116, 116, 116, 174, 213, 178,
1837  182, 179, 189, 157, 161, 161, 161, 179, 190, 194,
1838  193, 174, 201, 191, 116, 116, 116, 116, 116, 116,
1839  192, 170, 168, 168, 168, 170, 178, 197, 182, 170,
1840  189, 200, 194, 168, 190, 168, 193, 168, 168, 201,
1841  168, 204, 206, 208, 214, 261, 223, 224, 192, 223,
1842  197, 604, 213, 268, 279, 224, 276, 355, 340, 200,
1843  273, 224, 355, 423, 204, 206, 276, 214, 320, 279,
1844  208, 212, 212, 212, 212, 212, 268, 305, 604, 305,
1845 
1846  212, 212, 212, 212, 212, 212, 291, 340, 314, 291,
1847  323, 320, 329, 332, 360, 399, 415, 376, 261, 398,
1848  360, 261, 376, 212, 212, 212, 212, 212, 212, 398,
1849  273, 314, 423, 323, 394, 329, 390, 390, 390, 453,
1850  394, 332, 390, 399, 453, 314, 337, 337, 337, 337,
1851  337, 627, 659, 659, 627, 337, 337, 337, 337, 337,
1852  337, 418, 426, 434, 459, 418, 426, 434, 733, 465,
1853  376, 465, 734, 489, 415, 376, 468, 485, 337, 337,
1854  337, 337, 337, 337, 525, 485, 489, 485, 485, 485,
1855  501, 485, 459, 605, 525, 501, 465, 735, 465, 466,
1856 
1857  466, 466, 466, 466, 468, 736, 726, 740, 466, 466,
1858  466, 466, 466, 466, 568, 607, 609, 697, 726, 568,
1859  607, 605, 697, 609, 739, 741, 742, 743, 744, 745,
1860  740, 466, 466, 466, 466, 466, 466, 746, 747, 748,
1861  749, 750, 751, 752, 752, 753, 752, 754, 755, 756,
1862  757, 758, 739, 759, 760, 761, 762, 763, 764, 765,
1863  766, 697, 767, 768, 769, 770, 771, 772, 773, 774,
1864  775, 772, 776, 777, 778, 772, 779, 780, 782, 783,
1865  784, 785, 786, 787, 788, 789, 790, 791, 792, 793,
1866  794, 795, 796, 797, 798, 799, 800, 801, 802, 803,
1867 
1868  804, 802, 805, 807, 808, 809, 810, 811, 812, 813,
1869  814, 815, 816, 818, 819, 820, 821, 822, 823, 824,
1870  825, 826, 827, 828, 829, 831, 832, 833, 834, 835,
1871  836, 837, 838, 839, 840, 841, 842, 843, 844, 845,
1872  846, 847, 848, 849, 850, 851, 852, 853, 854, 855,
1873  849, 856, 851, 857, 858, 855, 851, 860, 861, 862,
1874  863, 864, 865, 866, 867, 868, 869, 870, 871, 872,
1875  873, 874, 875, 876, 877, 878, 879, 880, 881, 883,
1876  884, 885, 886, 887, 888, 889, 890, 891, 892, 893,
1877  894, 895, 896, 897, 898, 899, 900, 872, 901, 902,
1878 
1879  903, 904, 905, 906, 907, 908, 909, 910, 911, 912,
1880  913, 915, 916, 917, 918, 919, 920, 921, 922, 923,
1881  924, 920, 925, 926, 927, 928, 929, 930, 931, 934,
1882  935, 936, 937, 938, 939, 940, 943, 944, 945, 946,
1883  947, 949, 950, 951, 952, 953, 950, 954, 955, 956,
1884  957, 959, 960, 962, 963, 964, 965, 966, 967, 968,
1885  969, 970, 971, 972, 973, 974, 975, 976, 977, 978,
1886  979, 980, 981, 982, 983, 984, 985, 986, 987, 988,
1887  989, 990, 991, 992, 993, 994, 995, 997, 985, 998,
1888  999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
1889 
1890  1009, 1010, 1011, 1012, 1013, 1015, 1016, 1017, 1018, 1019,
1891  1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029,
1892  1030, 1031, 1008, 1032, 1033, 1007, 1034, 1035, 1036, 1037,
1893  1038, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048,
1894  1049, 1050, 1051, 1052, 1053, 1055, 1056, 1057, 1058, 1059,
1895  1060, 1061, 1063, 1064, 1059, 1065, 1066, 1067, 1068, 1069,
1896  1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079,
1897  1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1089, 1091,
1898  1092, 1093, 1095, 1096, 1097, 1084, 1098, 1099, 1101, 1102,
1899  1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112,
1900 
1901  1113, 1114, 1115, 1116, 1117, 1118, 1120, 1059, 1121, 1122,
1902  1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132,
1903  1133, 1134, 1135, 1136, 1139, 1137, 1140, 1141, 1142, 1144,
1904  1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154,
1905  1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1165,
1906  1166, 1136, 1137, 1167, 1168, 1169, 1170, 1171, 1172, 1173,
1907  1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183,
1908  1184, 1186, 1187, 1188, 1189, 1190, 1191, 1187, 1192, 1193,
1909  1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203,
1910  1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213,
1911 
1912  1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1224,
1913  1225, 1226, 1227, 1228, 1229, 1230, 1231, 1188, 1232, 1233,
1914  1234, 1236, 1237, 1240, 1241, 1242, 1243, 1244, 1245, 1246,
1915  1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256,
1916  1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266,
1917  1267, 1268, 1269, 1270, 1271, 1272, 1274, 1275, 1276, 1277,
1918  1278, 1279, 1280, 1281, 1283, 1259, 1284, 1285, 1286, 1287,
1919  1288, 1260, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296,
1920  1297, 1298, 1299, 1300, 1301, 1302, 1305, 1307, 1309, 1310,
1921  1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320,
1922 
1923  1321, 1322, 1323, 1324, 1326, 1327, 1328, 1330, 1331, 1332,
1924  1333, 1334, 1336, 1337, 1339, 1341, 1343, 1344, 1345, 1346,
1925  1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356,
1926  1357, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1368, 1369,
1927  1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1379, 1380,
1928  1381, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391,
1929  1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401,
1930  1402, 1403, 1404, 1405, 1376, 1407, 1408, 1409, 1410, 1353,
1931  1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420,
1932  1421, 1422, 1423, 1424, 1425, 1383, 1427, 1428, 1429, 1430,
1933 
1934  1431, 1432, 1433, 1434, 1435, 1436, 1429, 1437, 1440, 1441,
1935  1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451,
1936  1452, 1453, 1454, 1456, 1457, 1458, 1459, 1460, 1462, 1464,
1937  1462, 1459, 1465, 1468, 1469, 1470, 1471, 1472, 1473, 1474,
1938  1475, 1476, 1477, 1478, 1479, 1481, 1482, 1483, 1485, 1486,
1939  1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496,
1940  1497, 1498, 1499, 1500, 1501, 1502, 1504, 1479, 1505, 1507,
1941  1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517,
1942  1518, 1520, 1522, 1524, 1525, 1527, 1528, 1529, 1530, 1531,
1943  1532, 1533, 1534, 1535, 1536, 1538, 1539, 1540, 1541, 1542,
1944 
1945  1543, 1545, 1546, 1550, 1551, 1553, 1554, 1555, 1556, 1558,
1946  1559, 1558, 1560, 1561, 1558, 1562, 1563, 1558, 1564, 1565,
1947  1566, 1567, 1568, 1569, 1571, 1573, 1574, 1575, 1577, 1578,
1948  1579, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589,
1949  1590, 1591, 1592, 1593, 1594, 1596, 1597, 1598, 1599, 1588,
1950  1601, 1602, 1603, 1604, 1575, 1605, 1606, 1607, 1608, 1609,
1951  1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618,
1952  1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628,
1953  1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638,
1954  1639, 1640, 1641, 1642, 1644, 1645, 1646, 1647, 1648, 1649,
1955 
1956  1650, 1651, 1653, 1654, 1655, 1657, 1658, 1659, 1662, 1663,
1957  1664, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1610,
1958  1675, 1676, 1677, 1678, 1680, 1681, 1682, 1683, 1684, 1680,
1959  1685, 1686, 1687, 1657, 1688, 1689, 1691, 1692, 1693, 1695,
1960  1696, 1698, 1699, 1700, 1702, 1703, 1704, 1705, 1706, 1708,
1961  1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718,
1962  1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728,
1963  1729, 1730, 1731, 1732, 1733, 1735, 1737, 1738, 1739, 1741,
1964  1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751,
1965  1752, 1754, 1755, 1756, 1757, 1758, 1759, 1761, 1762, 1763,
1966 
1967  1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774,
1968  1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785,
1969  1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795,
1970  1797, 1799, 1800, 1801, 1795, 1802, 1804, 1806, 1807, 1808,
1971  1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818,
1972  1819, 1820, 1821, 1822, 1824, 1825, 1826, 1827, 1828, 1829,
1973  1830, 1831, 1832, 1834, 1835, 1836, 1837, 1839, 1840, 1841,
1974  1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1851, 1852,
1975  1853, 1854, 1855, 1857, 1858, 1859, 1860, 1863, 1864, 1865,
1976  1866, 1867, 1868, 1869, 1870, 1872, 1873, 1874, 1875, 1876,
1977 
1978  1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1887, 1888,
1979  1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1898, 1899,
1980  1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910,
1981  1911, 1912, 1913, 1914, 1912, 1915, 1916, 1917, 1918, 1919,
1982  1920, 1921, 1922, 1923, 1924, 1925, 1927, 1928, 1929, 1930,
1983  1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1940, 1942,
1984  1944, 1946, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955,
1985  1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1965, 1966,
1986  1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1977,
1987  1978, 1979, 1981, 1982, 1983, 1984, 1985, 1987, 1988, 1990,
1988 
1989  1992, 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
1990  2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013, 2014, 2015,
1991  2016, 2017, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
1992  2027, 2028, 2029, 2030, 2031, 2032, 2034, 2035, 2036, 2037,
1993  2038, 2039, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048,
1994  2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058,
1995  2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068,
1996  2070, 2071, 2073, 2074, 2075, 2076, 2078, 2079, 2080, 2081,
1997  2087, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2100,
1998  2101, 2102, 2103, 2104, 2105, 2106, 2107, 2109, 2110, 2111,
1999 
2000  2112, 2113, 2114, 2116, 2118, 2120, 2121, 2122, 2123, 2124,
2001  2125, 2127, 2128, 2129, 2130, 2131, 2130, 2132, 2133, 2135,
2002  2136, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147,
2003  2148, 2149, 2150, 2151, 2152, 2153, 2155, 2156, 2157, 2158,
2004  2161, 2162, 2163, 2165, 2166, 2168, 2170, 2171, 2172, 2173,
2005  2174, 2175, 2176, 2177, 2179, 2184, 2184, 2184, 2185, 2185,
2006  2185, 2186, 2187, 2186, 2188, 2188, 2188, 2189, 2189, 2189,
2007  2190, 727, 2190, 2191, 2191, 2191, 725, 724, 723, 721,
2008  720, 719, 718, 717, 716, 715, 714, 713, 712, 711,
2009  710, 709, 707, 706, 705, 704, 703, 702, 701, 700,
2010 
2011  699, 698, 696, 695, 693, 692, 691, 690, 689, 688,
2012  687, 686, 685, 683, 682, 681, 680, 678, 677, 675,
2013  674, 673, 672, 671, 670, 669, 668, 667, 666, 665,
2014  664, 663, 662, 661, 660, 658, 657, 656, 655, 654,
2015  653, 651, 650, 649, 648, 647, 646, 645, 644, 642,
2016  641, 640, 639, 638, 637, 636, 635, 634, 633, 632,
2017  631, 630, 629, 628, 626, 625, 624, 623, 622, 621,
2018  620, 619, 618, 617, 616, 615, 614, 613, 612, 611,
2019  610, 606, 600, 599, 598, 597, 596, 594, 592, 590,
2020  588, 587, 586, 585, 584, 583, 582, 581, 580, 579,
2021 
2022  578, 577, 576, 574, 573, 572, 571, 570, 569, 567,
2023  566, 565, 564, 563, 562, 561, 560, 559, 558, 557,
2024  556, 555, 553, 551, 550, 549, 548, 547, 546, 545,
2025  544, 543, 542, 541, 540, 539, 538, 537, 536, 535,
2026  533, 532, 531, 530, 529, 528, 527, 526, 524, 523,
2027  522, 521, 520, 519, 518, 517, 516, 515, 514, 513,
2028  512, 511, 510, 509, 508, 507, 505, 504, 503, 502,
2029  500, 499, 498, 497, 496, 495, 494, 493, 491, 490,
2030  488, 487, 486, 484, 482, 481, 480, 479, 478, 477,
2031  475, 474, 473, 472, 471, 470, 469, 467, 463, 461,
2032 
2033  460, 458, 455, 454, 452, 451, 450, 449, 448, 447,
2034  446, 445, 444, 443, 442, 441, 440, 439, 438, 437,
2035  436, 435, 433, 432, 431, 430, 429, 428, 427, 425,
2036  424, 422, 421, 420, 419, 417, 416, 414, 413, 412,
2037  411, 410, 409, 408, 407, 406, 405, 404, 403, 402,
2038  401, 397, 396, 395, 393, 392, 391, 389, 388, 387,
2039  386, 385, 384, 383, 382, 381, 380, 379, 378, 377,
2040  375, 374, 373, 372, 371, 370, 369, 368, 367, 366,
2041  365, 364, 363, 362, 361, 359, 358, 357, 356, 354,
2042  353, 352, 351, 350, 349, 348, 347, 346, 345, 344,
2043 
2044  343, 342, 341, 339, 336, 334, 330, 328, 326, 319,
2045  318, 317, 316, 315, 313, 312, 311, 310, 308, 307,
2046  306, 304, 303, 302, 301, 300, 299, 298, 297, 296,
2047  295, 294, 293, 292, 290, 289, 288, 287, 286, 285,
2048  284, 283, 282, 281, 280, 278, 277, 275, 274, 272,
2049  271, 270, 269, 267, 266, 265, 264, 263, 262, 260,
2050  259, 258, 257, 256, 255, 254, 252, 251, 249, 248,
2051  247, 246, 245, 244, 243, 242, 241, 240, 239, 238,
2052  237, 236, 235, 234, 233, 232, 231, 230, 229, 228,
2053  227, 226, 225, 222, 221, 220, 219, 218, 217, 216,
2054 
2055  215, 209, 207, 205, 203, 198, 195, 187, 186, 185,
2056  184, 183, 181, 180, 177, 176, 175, 173, 172, 171,
2057  169, 167, 165, 163, 162, 160, 159, 158, 156, 154,
2058  153, 152, 151, 150, 149, 147, 146, 145, 143, 142,
2059  141, 139, 138, 136, 135, 131, 130, 129, 128, 126,
2060  125, 124, 122, 121, 120, 118, 114, 105, 104, 98,
2061  97, 77, 72, 66, 52, 49, 48, 43, 41, 39,
2062  38, 24, 14, 11, 2183, 2183, 2183, 2183, 2183, 2183,
2063  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
2064  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
2065 
2066  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
2067  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
2068  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
2069  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
2070  2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183
2071  } ;
2072 
2073 static yy_state_type yy_last_accepting_state;
2074 static char *yy_last_accepting_cpos;
2075 
2076 extern int yy_flex_debug;
2078 
2079 static const flex_int16_t yy_rule_linenum[228] =
2080  { 0,
2081  148, 150, 152, 157, 158, 163, 164, 165, 177, 180,
2082  185, 192, 201, 210, 219, 228, 237, 246, 255, 264,
2083  273, 282, 291, 300, 309, 321, 333, 343, 353, 363,
2084  373, 383, 392, 402, 412, 422, 432, 441, 450, 459,
2085  468, 477, 486, 495, 504, 513, 522, 531, 540, 549,
2086  558, 567, 576, 585, 594, 607, 616, 625, 634, 645,
2087  656, 667, 678, 690, 701, 712, 723, 734, 745, 756,
2088  767, 776, 785, 794, 805, 814, 825, 836, 847, 858,
2089  870, 882, 894, 906, 918, 930, 941, 952, 961, 970,
2090  979, 990, 1001, 1010, 1019, 1030, 1041, 1052, 1063, 1074,
2091 
2092  1085, 1096, 1108, 1118, 1129, 1138, 1147, 1162, 1178, 1187,
2093  1196, 1205, 1214, 1223, 1232, 1241, 1250, 1259, 1268, 1292,
2094  1316, 1325, 1335, 1345, 1354, 1364, 1375, 1384, 1393, 1402,
2095  1411, 1420, 1431, 1442, 1453, 1463, 1472, 1481, 1490, 1501,
2096  1512, 1523, 1534, 1545, 1554, 1563, 1572, 1581, 1590, 1599,
2097  1608, 1617, 1626, 1636, 1648, 1661, 1670, 1679, 1688, 1698,
2098  1708, 1717, 1728, 1738, 1747, 1757, 1767, 1776, 1785, 1794,
2099  1803, 1813, 1822, 1831, 1840, 1849, 1858, 1867, 1876, 1885,
2100  1894, 1903, 1912, 1921, 1930, 1939, 1948, 1957, 1966, 1975,
2101  1984, 1993, 2002, 2011, 2020, 2029, 2038, 2047, 2056, 2065,
2102 
2103  2074, 2083, 2092, 2101, 2110, 2119, 2128, 2137, 2146, 2247,
2104  2263, 2312, 2320, 2335, 2336, 2337, 2338, 2339, 2340, 2342,
2105  2360, 2373, 2378, 2382, 2384, 2386, 2388
2106  } ;
2107 
2108 /* The intent behind this definition is that it'll catch
2109  * any uses of REJECT which flex missed.
2110  */
2111 #define REJECT reject_used_but_not_detected
2112 #define yymore() yymore_used_but_not_detected
2113 #define YY_MORE_ADJ 0
2114 #define YY_RESTORE_YY_MORE_OFFSET
2115 char *yytext;
2116 #line 1 "dhcp6_lexer.ll"
2117 /* Copyright (C) 2016-2023 Internet Systems Consortium, Inc. ("ISC")
2118 
2119  This Source Code Form is subject to the terms of the Mozilla Public
2120  License, v. 2.0. If a copy of the MPL was not distributed with this
2121  file, You can obtain one at http://mozilla.org/MPL/2.0/. */
2122 #line 8 "dhcp6_lexer.ll"
2123 
2124 /* Generated files do not make clang static analyser so happy */
2125 #ifndef __clang_analyzer__
2126 
2127 #include <cctype>
2128 #include <cerrno>
2129 #include <climits>
2130 #include <cstdlib>
2131 #include <string>
2132 #include <dhcp6/parser_context.h>
2133 #include <asiolink/io_address.h>
2134 #include <boost/lexical_cast.hpp>
2135 #include <exceptions/exceptions.h>
2136 
2137 /* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
2138 
2139 /* Work around an incompatibility in flex (at least versions
2140  2.5.31 through 2.5.33): it generates code that does
2141  not conform to C89. See Debian bug 333231
2142  <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
2143 # undef yywrap
2144 # define yywrap() 1
2145 
2146 namespace {
2147 
2148 bool start_token_flag = false;
2149 
2150 isc::dhcp::Parser6Context::ParserType start_token_value;
2151 unsigned int comment_start_line = 0;
2152 
2153 using namespace isc::dhcp;
2154 
2155 };
2156 
2157 /* To avoid the call to exit... oops! */
2158 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
2159 #line 2159 "dhcp6_lexer.cc"
2160 /* noyywrap disables automatic rewinding for the next file to parse. Since we
2161  always parse only a single string, there's no need to do any wraps. And
2162  using yywrap requires linking with -lfl, which provides the default yywrap
2163  implementation that always returns 1 anyway. */
2164 /* nounput simplifies the lexer, by removing support for putting a character
2165  back into the input stream. We never use such capability anyway. */
2166 /* batch means that we'll never use the generated lexer interactively. */
2167 /* avoid to get static global variables to remain with C++. */
2168 /* in last resort %option reentrant */
2169 /* Enables debug mode. To see the debug messages, one needs to also set
2170  yy_flex_debug to 1, then the debug messages will be printed on stderr. */
2171 /* I have no idea what this option does, except it was specified in the bison
2172  examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
2173  be on the safe side and keep it. */
2174 #define YY_NO_INPUT 1
2175 
2176 /* These are not token expressions yet, just convenience expressions that
2177  can be used during actual token definitions. Note some can match
2178  incorrect inputs (e.g., IP addresses) which must be checked. */
2179 /* for errors */
2180 #line 95 "dhcp6_lexer.ll"
2181 /* This code run each time a pattern is matched. It updates the location
2182  by moving it ahead by yyleng bytes. yyleng specifies the length of the
2183  currently matched token. */
2184 #define YY_USER_ACTION driver.loc_.columns(yyleng);
2185 #line 2185 "dhcp6_lexer.cc"
2186 #line 2186 "dhcp6_lexer.cc"
2187 
2188 #define INITIAL 0
2189 #define COMMENT 1
2190 #define DIR_ENTER 2
2191 #define DIR_INCLUDE 3
2192 #define DIR_EXIT 4
2193 
2194 #ifndef YY_NO_UNISTD_H
2195 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2196  * down here because we want the user's section 1 to have been scanned first.
2197  * The user has a chance to override it with an option.
2198  */
2199 /* %if-c-only */
2200 #include <unistd.h>
2201 /* %endif */
2202 /* %if-c++-only */
2203 /* %endif */
2204 #endif
2205 
2206 #ifndef YY_EXTRA_TYPE
2207 #define YY_EXTRA_TYPE void *
2208 #endif
2209 
2210 /* %if-c-only Reentrant structure and macros (non-C++). */
2211 /* %if-reentrant */
2212 /* %if-c-only */
2213 
2214 static int yy_init_globals ( void );
2215 
2216 /* %endif */
2217 /* %if-reentrant */
2218 /* %endif */
2219 /* %endif End reentrant structures and macros. */
2220 
2221 /* Accessor methods to globals.
2222  These are made visible to non-reentrant scanners for convenience. */
2223 
2224 int yylex_destroy ( void );
2225 
2226 int yyget_debug ( void );
2227 
2228 void yyset_debug ( int debug_flag );
2229 
2230 YY_EXTRA_TYPE yyget_extra ( void );
2231 
2232 void yyset_extra ( YY_EXTRA_TYPE user_defined );
2233 
2234 FILE *yyget_in ( void );
2235 
2236 void yyset_in ( FILE * _in_str );
2237 
2238 FILE *yyget_out ( void );
2239 
2240 void yyset_out ( FILE * _out_str );
2241 
2242  int yyget_leng ( void );
2243 
2244 char *yyget_text ( void );
2245 
2246 int yyget_lineno ( void );
2247 
2248 void yyset_lineno ( int _line_number );
2249 
2250 /* %if-bison-bridge */
2251 /* %endif */
2252 
2253 /* Macros after this point can all be overridden by user definitions in
2254  * section 1.
2255  */
2256 
2257 #ifndef YY_SKIP_YYWRAP
2258 #ifdef __cplusplus
2259 extern "C" int yywrap ( void );
2260 #else
2261 extern int yywrap ( void );
2262 #endif
2263 #endif
2264 
2265 /* %not-for-header */
2266 #ifndef YY_NO_UNPUT
2267 
2268 #endif
2269 /* %ok-for-header */
2270 
2271 /* %endif */
2272 
2273 #ifndef yytext_ptr
2274 static void yy_flex_strncpy ( char *, const char *, int );
2275 #endif
2276 
2277 #ifdef YY_NEED_STRLEN
2278 static int yy_flex_strlen ( const char * );
2279 #endif
2280 
2281 #ifndef YY_NO_INPUT
2282 /* %if-c-only Standard (non-C++) definition */
2283 /* %not-for-header */
2284 #ifdef __cplusplus
2285 static int yyinput ( void );
2286 #else
2287 static int input ( void );
2288 #endif
2289 /* %ok-for-header */
2290 
2291 /* %endif */
2292 #endif
2293 
2294 /* %if-c-only */
2295 
2296 /* %endif */
2297 
2298 /* Amount of stuff to slurp up with each read. */
2299 #ifndef YY_READ_BUF_SIZE
2300 #ifdef __ia64__
2301 /* On IA-64, the buffer size is 16k, not 8k */
2302 #define YY_READ_BUF_SIZE 16384
2303 #else
2304 #define YY_READ_BUF_SIZE 8192
2305 #endif /* __ia64__ */
2306 #endif
2307 
2308 /* Copy whatever the last rule matched to the standard output. */
2309 #ifndef ECHO
2310 /* %if-c-only Standard (non-C++) definition */
2311 /* This used to be an fputs(), but since the string might contain NUL's,
2312  * we now use fwrite().
2313  */
2314 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2315 /* %endif */
2316 /* %if-c++-only C++ definition */
2317 /* %endif */
2318 #endif
2319 
2320 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2321  * is returned in "result".
2322  */
2323 #ifndef YY_INPUT
2324 #define YY_INPUT(buf,result,max_size) \
2325 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2326  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2327  { \
2328  int c = '*'; \
2329  int n; \
2330  for ( n = 0; n < max_size && \
2331  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2332  buf[n] = (char) c; \
2333  if ( c == '\n' ) \
2334  buf[n++] = (char) c; \
2335  if ( c == EOF && ferror( yyin ) ) \
2336  YY_FATAL_ERROR( "input in flex scanner failed" ); \
2337  result = n; \
2338  } \
2339  else \
2340  { \
2341  errno=0; \
2342  while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2343  { \
2344  if( errno != EINTR) \
2345  { \
2346  YY_FATAL_ERROR( "input in flex scanner failed" ); \
2347  break; \
2348  } \
2349  errno=0; \
2350  clearerr(yyin); \
2351  } \
2352  }\
2353 \
2354 /* %if-c++-only C++ definition \ */\
2355 /* %endif */
2356 
2357 #endif
2358 
2359 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2360  * we don't want an extra ';' after the "return" because that will cause
2361  * some compilers to complain about unreachable statements.
2362  */
2363 #ifndef yyterminate
2364 #define yyterminate() return YY_NULL
2365 #endif
2366 
2367 /* Number of entries by which start-condition stack grows. */
2368 #ifndef YY_START_STACK_INCR
2369 #define YY_START_STACK_INCR 25
2370 #endif
2371 
2372 /* Report a fatal error. */
2373 #ifndef YY_FATAL_ERROR
2374 /* %if-c-only */
2375 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2376 /* %endif */
2377 /* %if-c++-only */
2378 /* %endif */
2379 #endif
2380 
2381 /* %if-tables-serialization structures and prototypes */
2382 /* %not-for-header */
2383 /* %ok-for-header */
2384 
2385 /* %not-for-header */
2386 /* %tables-yydmap generated elements */
2387 /* %endif */
2388 /* end tables serialization structures and prototypes */
2389 
2390 /* %ok-for-header */
2391 
2392 /* Default declaration of generated scanner - a define so the user can
2393  * easily add parameters.
2394  */
2395 #ifndef YY_DECL
2396 #define YY_DECL_IS_OURS 1
2397 /* %if-c-only Standard (non-C++) definition */
2398 
2399 extern int yylex (void);
2400 
2401 #define YY_DECL int yylex (void)
2402 /* %endif */
2403 /* %if-c++-only C++ definition */
2404 /* %endif */
2405 #endif /* !YY_DECL */
2406 
2407 /* Code executed at the beginning of each rule, after yytext and yyleng
2408  * have been set up.
2409  */
2410 #ifndef YY_USER_ACTION
2411 #define YY_USER_ACTION
2412 #endif
2413 
2414 /* Code executed at the end of each rule. */
2415 #ifndef YY_BREAK
2416 #define YY_BREAK /*LINTED*/break;
2417 #endif
2418 
2419 /* %% [6.0] YY_RULE_SETUP definition goes here */
2420 #define YY_RULE_SETUP \
2421  YY_USER_ACTION
2422 
2423 /* %not-for-header */
2426 YY_DECL
2428  yy_state_type yy_current_state;
2429  char *yy_cp, *yy_bp;
2430  int yy_act;
2431 
2432  if ( !(yy_init) )
2433  {
2434  (yy_init) = 1;
2435 
2436 #ifdef YY_USER_INIT
2437  YY_USER_INIT;
2438 #endif
2439 
2440  if ( ! (yy_start) )
2441  (yy_start) = 1; /* first start state */
2442 
2443  if ( ! yyin )
2444 /* %if-c-only */
2445  yyin = stdin;
2446 /* %endif */
2447 /* %if-c++-only */
2448 /* %endif */
2449 
2450  if ( ! yyout )
2451 /* %if-c-only */
2452  yyout = stdout;
2453 /* %endif */
2454 /* %if-c++-only */
2455 /* %endif */
2456 
2457  if ( ! YY_CURRENT_BUFFER ) {
2461  }
2462 
2464  }
2465 
2466  {
2467 /* %% [7.0] user's declarations go here */
2468 #line 101 "dhcp6_lexer.ll"
2469 
2470 
2471 
2472 #line 105 "dhcp6_lexer.ll"
2473  /* This part of the code is copied over to the verbatim to the top
2474  of the generated yylex function. Explanation:
2475  http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2476 
2477  /* Code run each time yylex is called. */
2478  driver.loc_.step();
2479 
2480  if (start_token_flag) {
2481  start_token_flag = false;
2482  switch (start_token_value) {
2483  case Parser6Context::PARSER_JSON:
2484  default:
2485  return isc::dhcp::Dhcp6Parser::make_TOPLEVEL_JSON(driver.loc_);
2486  case Parser6Context::PARSER_DHCP6:
2487  return isc::dhcp::Dhcp6Parser::make_TOPLEVEL_DHCP6(driver.loc_);
2488  case Parser6Context::SUBPARSER_DHCP6:
2489  return isc::dhcp::Dhcp6Parser::make_SUB_DHCP6(driver.loc_);
2490  case Parser6Context::PARSER_INTERFACES:
2492  case Parser6Context::PARSER_SUBNET6:
2493  return isc::dhcp::Dhcp6Parser::make_SUB_SUBNET6(driver.loc_);
2494  case Parser6Context::PARSER_POOL6:
2495  return isc::dhcp::Dhcp6Parser::make_SUB_POOL6(driver.loc_);
2496  case Parser6Context::PARSER_PD_POOL:
2497  return isc::dhcp::Dhcp6Parser::make_SUB_PD_POOL(driver.loc_);
2498  case Parser6Context::PARSER_HOST_RESERVATION:
2500  case Parser6Context::PARSER_OPTION_DEFS:
2502  case Parser6Context::PARSER_OPTION_DEF:
2503  return isc::dhcp::Dhcp6Parser::make_SUB_OPTION_DEF(driver.loc_);
2504  case Parser6Context::PARSER_OPTION_DATA:
2506  case Parser6Context::PARSER_HOOKS_LIBRARY:
2508  case Parser6Context::PARSER_DHCP_DDNS:
2509  return isc::dhcp::Dhcp6Parser::make_SUB_DHCP_DDNS(driver.loc_);
2510  case Parser6Context::PARSER_CONFIG_CONTROL:
2512  }
2513  }
2514 
2515 
2516 #line 2516 "dhcp6_lexer.cc"
2517 
2518  while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2519  {
2520 /* %% [8.0] yymore()-related code goes here */
2521  yy_cp = (yy_c_buf_p);
2522 
2523  /* Support of yytext. */
2524  *yy_cp = (yy_hold_char);
2525 
2526  /* yy_bp points to the position in yy_ch_buf of the start of
2527  * the current run.
2528  */
2529  yy_bp = yy_cp;
2530 
2531 /* %% [9.0] code to set up and find next match goes here */
2532  yy_current_state = (yy_start);
2533 yy_match:
2534  do
2535  {
2536  YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2537  if ( yy_accept[yy_current_state] )
2538  {
2539  (yy_last_accepting_state) = yy_current_state;
2540  (yy_last_accepting_cpos) = yy_cp;
2541  }
2542  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2543  {
2544  yy_current_state = (int) yy_def[yy_current_state];
2545  if ( yy_current_state >= 2184 )
2546  yy_c = yy_meta[yy_c];
2547  }
2548  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2549  ++yy_cp;
2550  }
2551  while ( yy_current_state != 2183 );
2552  yy_cp = (yy_last_accepting_cpos);
2553  yy_current_state = (yy_last_accepting_state);
2554 
2555 yy_find_action:
2556 /* %% [10.0] code to find the action number goes here */
2557  yy_act = yy_accept[yy_current_state];
2558 
2560 
2561 /* %% [11.0] code for yylineno update goes here */
2562 
2563 do_action: /* This label is used only to access EOF actions. */
2564 
2565 /* %% [12.0] debug code goes here */
2566  if ( yy_flex_debug )
2567  {
2568  if ( yy_act == 0 )
2569  fprintf( stderr, "--scanner backing up\n" );
2570  else if ( yy_act < 228 )
2571  fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2572  (long)yy_rule_linenum[yy_act], yytext );
2573  else if ( yy_act == 228 )
2574  fprintf( stderr, "--accepting default rule (\"%s\")\n",
2575  yytext );
2576  else if ( yy_act == 229 )
2577  fprintf( stderr, "--(end of buffer or a NUL)\n" );
2578  else
2579  fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2580  }
2581 
2582  switch ( yy_act )
2583  { /* beginning of action switch */
2584 /* %% [13.0] actions go here */
2585  case 0: /* must back up */
2586  /* undo the effects of YY_DO_BEFORE_ACTION */
2587  *yy_cp = (yy_hold_char);
2588  yy_cp = (yy_last_accepting_cpos);
2589  yy_current_state = (yy_last_accepting_state);
2590  goto yy_find_action;
2591 
2592 case 1:
2594 #line 148 "dhcp6_lexer.ll"
2595 ;
2596  YY_BREAK
2597 case 2:
2599 #line 150 "dhcp6_lexer.ll"
2600 ;
2601  YY_BREAK
2602 case 3:
2604 #line 152 "dhcp6_lexer.ll"
2605 {
2606  BEGIN(COMMENT);
2607  comment_start_line = driver.loc_.end.line;;
2608 }
2609  YY_BREAK
2610 case 4:
2612 #line 157 "dhcp6_lexer.ll"
2613 BEGIN(INITIAL);
2614  YY_BREAK
2615 case 5:
2617 #line 158 "dhcp6_lexer.ll"
2618 ;
2619  YY_BREAK
2620 case YY_STATE_EOF(COMMENT):
2621 #line 159 "dhcp6_lexer.ll"
2622 {
2623  isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line);
2624 }
2625  YY_BREAK
2626 case 6:
2628 #line 163 "dhcp6_lexer.ll"
2629 BEGIN(DIR_ENTER);
2630  YY_BREAK
2631 case 7:
2633 #line 164 "dhcp6_lexer.ll"
2635  YY_BREAK
2636 case 8:
2638 #line 165 "dhcp6_lexer.ll"
2639 {
2640  /* Include directive. */
2641 
2642  /* Extract the filename. */
2643  std::string tmp(yytext+1);
2644  tmp.resize(tmp.size() - 1);
2645 
2646  driver.includeFile(tmp);
2647 }
2648  YY_BREAK
2649 case YY_STATE_EOF(DIR_ENTER):
2651 case YY_STATE_EOF(DIR_EXIT):
2652 #line 174 "dhcp6_lexer.ll"
2653 {
2654  isc_throw(Dhcp6ParseError, "Directive not closed.");
2655 }
2656  YY_BREAK
2657 case 9:
2659 #line 177 "dhcp6_lexer.ll"
2660 BEGIN(INITIAL);
2661  YY_BREAK
2662 case 10:
2664 #line 180 "dhcp6_lexer.ll"
2665 {
2666  /* Ok, we found a with space. Let's ignore it and update loc variable. */
2667  driver.loc_.step();
2668 }
2669  YY_BREAK
2670 case 11:
2671 /* rule 11 can match eol */
2673 #line 185 "dhcp6_lexer.ll"
2674 {
2675  /* Newline found. Let's update the location and continue. */
2676  driver.loc_.lines(yyleng);
2677  driver.loc_.step();
2678 }
2679  YY_BREAK
2680 case 12:
2682 #line 192 "dhcp6_lexer.ll"
2683 {
2684  switch(driver.ctx_) {
2686  return isc::dhcp::Dhcp6Parser::make_ENABLE_UPDATES(driver.loc_);
2687  default:
2688  return isc::dhcp::Dhcp6Parser::make_STRING("enable-updates", driver.loc_);
2689  }
2690 }
2691  YY_BREAK
2692 case 13:
2694 #line 201 "dhcp6_lexer.ll"
2695 {
2696  switch(driver.ctx_) {
2699  default:
2700  return isc::dhcp::Dhcp6Parser::make_STRING("qualifying-suffix", driver.loc_);
2701  }
2702 }
2703  YY_BREAK
2704 case 14:
2706 #line 210 "dhcp6_lexer.ll"
2707 {
2708  switch(driver.ctx_) {
2710  return isc::dhcp::Dhcp6Parser::make_SERVER_IP(driver.loc_);
2711  default:
2712  return isc::dhcp::Dhcp6Parser::make_STRING("server-ip", driver.loc_);
2713  }
2714 }
2715  YY_BREAK
2716 case 15:
2718 #line 219 "dhcp6_lexer.ll"
2719 {
2720  switch(driver.ctx_) {
2722  return isc::dhcp::Dhcp6Parser::make_SERVER_PORT(driver.loc_);
2723  default:
2724  return isc::dhcp::Dhcp6Parser::make_STRING("server-port", driver.loc_);
2725  }
2726 }
2727  YY_BREAK
2728 case 16:
2730 #line 228 "dhcp6_lexer.ll"
2731 {
2732  switch(driver.ctx_) {
2734  return isc::dhcp::Dhcp6Parser::make_SENDER_IP(driver.loc_);
2735  default:
2736  return isc::dhcp::Dhcp6Parser::make_STRING("sender-ip", driver.loc_);
2737  }
2738 }
2739  YY_BREAK
2740 case 17:
2742 #line 237 "dhcp6_lexer.ll"
2743 {
2744  switch(driver.ctx_) {
2746  return isc::dhcp::Dhcp6Parser::make_SENDER_PORT(driver.loc_);
2747  default:
2748  return isc::dhcp::Dhcp6Parser::make_STRING("sender-port", driver.loc_);
2749  }
2750 }
2751  YY_BREAK
2752 case 18:
2754 #line 246 "dhcp6_lexer.ll"
2755 {
2756  switch(driver.ctx_) {
2758  return isc::dhcp::Dhcp6Parser::make_MAX_QUEUE_SIZE(driver.loc_);
2759  default:
2760  return isc::dhcp::Dhcp6Parser::make_STRING("max-queue-size", driver.loc_);
2761  }
2762 }
2763  YY_BREAK
2764 case 19:
2766 #line 255 "dhcp6_lexer.ll"
2767 {
2768  switch(driver.ctx_) {
2770  return isc::dhcp::Dhcp6Parser::make_NCR_PROTOCOL(driver.loc_);
2771  default:
2772  return isc::dhcp::Dhcp6Parser::make_STRING("ncr-protocol", driver.loc_);
2773  }
2774 }
2775  YY_BREAK
2776 case 20:
2778 #line 264 "dhcp6_lexer.ll"
2779 {
2780  switch(driver.ctx_) {
2782  return isc::dhcp::Dhcp6Parser::make_NCR_FORMAT(driver.loc_);
2783  default:
2784  return isc::dhcp::Dhcp6Parser::make_STRING("ncr-format", driver.loc_);
2785  }
2786 }
2787  YY_BREAK
2788 case 21:
2790 #line 273 "dhcp6_lexer.ll"
2791 {
2792  switch(driver.ctx_) {
2795  default:
2796  return isc::dhcp::Dhcp6Parser::make_STRING("override-no-update", driver.loc_);
2797  }
2798 }
2799  YY_BREAK
2800 case 22:
2802 #line 282 "dhcp6_lexer.ll"
2803 {
2804  switch(driver.ctx_) {
2807  default:
2808  return isc::dhcp::Dhcp6Parser::make_STRING("override-client-update", driver.loc_);
2809  }
2810 }
2811  YY_BREAK
2812 case 23:
2814 #line 291 "dhcp6_lexer.ll"
2815 {
2816  switch(driver.ctx_) {
2819  default:
2820  return isc::dhcp::Dhcp6Parser::make_STRING("replace-client-name", driver.loc_);
2821  }
2822 }
2823  YY_BREAK
2824 case 24:
2826 #line 300 "dhcp6_lexer.ll"
2827 {
2828  switch(driver.ctx_) {
2831  default:
2832  return isc::dhcp::Dhcp6Parser::make_STRING("generated-prefix", driver.loc_);
2833  }
2834 }
2835  YY_BREAK
2836 case 25:
2838 #line 309 "dhcp6_lexer.ll"
2839 {
2840  switch(driver.ctx_) {
2846  default:
2847  return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-set", driver.loc_);
2848  }
2849 }
2850  YY_BREAK
2851 case 26:
2853 #line 321 "dhcp6_lexer.ll"
2854 {
2855  switch(driver.ctx_) {
2861  default:
2862  return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-replacement", driver.loc_);
2863  }
2864 }
2865  YY_BREAK
2866 case 27:
2868 #line 333 "dhcp6_lexer.ll"
2869 {
2870  /* dhcp-ddns value keywords are case insensitive */
2871  if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2872  return isc::dhcp::Dhcp6Parser::make_UDP(driver.loc_);
2873  }
2874  std::string tmp(yytext+1);
2875  tmp.resize(tmp.size() - 1);
2876  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2877 }
2878  YY_BREAK
2879 case 28:
2881 #line 343 "dhcp6_lexer.ll"
2882 {
2883  /* dhcp-ddns value keywords are case insensitive */
2884  if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2885  return isc::dhcp::Dhcp6Parser::make_TCP(driver.loc_);
2886  }
2887  std::string tmp(yytext+1);
2888  tmp.resize(tmp.size() - 1);
2889  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2890 }
2891  YY_BREAK
2892 case 29:
2894 #line 353 "dhcp6_lexer.ll"
2895 {
2896  /* dhcp-ddns value keywords are case insensitive */
2897  if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) {
2898  return isc::dhcp::Dhcp6Parser::make_JSON(driver.loc_);
2899  }
2900  std::string tmp(yytext+1);
2901  tmp.resize(tmp.size() - 1);
2902  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2903 }
2904  YY_BREAK
2905 case 30:
2907 #line 363 "dhcp6_lexer.ll"
2908 {
2909  /* dhcp-ddns value keywords are case insensitive */
2911  return isc::dhcp::Dhcp6Parser::make_WHEN_PRESENT(driver.loc_);
2912  }
2913  std::string tmp(yytext+1);
2914  tmp.resize(tmp.size() - 1);
2915  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2916 }
2917  YY_BREAK
2918 case 31:
2920 #line 373 "dhcp6_lexer.ll"
2921 {
2922  /* dhcp-ddns value keywords are case insensitive */
2924  return isc::dhcp::Dhcp6Parser::make_WHEN_PRESENT(driver.loc_);
2925  }
2926  std::string tmp(yytext+1);
2927  tmp.resize(tmp.size() - 1);
2928  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2929 }
2930  YY_BREAK
2931 case 32:
2933 #line 383 "dhcp6_lexer.ll"
2934 {
2935  switch(driver.ctx_) {
2937  return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2938  default:
2939  return isc::dhcp::Dhcp6Parser::make_STRING("never", driver.loc_);
2940  }
2941 }
2942  YY_BREAK
2943 case 33:
2945 #line 392 "dhcp6_lexer.ll"
2946 {
2947  /* dhcp-ddns value keywords are case insensitive */
2949  return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2950  }
2951  std::string tmp(yytext+1);
2952  tmp.resize(tmp.size() - 1);
2953  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2954 }
2955  YY_BREAK
2956 case 34:
2958 #line 402 "dhcp6_lexer.ll"
2959 {
2960  /* dhcp-ddns value keywords are case insensitive */
2962  return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2963  }
2964  std::string tmp(yytext+1);
2965  tmp.resize(tmp.size() - 1);
2966  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2967 }
2968  YY_BREAK
2969 case 35:
2971 #line 412 "dhcp6_lexer.ll"
2972 {
2973  /* dhcp-ddns value keywords are case insensitive */
2975  return isc::dhcp::Dhcp6Parser::make_ALWAYS(driver.loc_);
2976  }
2977  std::string tmp(yytext+1);
2978  tmp.resize(tmp.size() - 1);
2979  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2980 }
2981  YY_BREAK
2982 case 36:
2984 #line 422 "dhcp6_lexer.ll"
2985 {
2986  /* dhcp-ddns value keywords are case insensitive */
2989  }
2990  std::string tmp(yytext+1);
2991  tmp.resize(tmp.size() - 1);
2992  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2993 }
2994  YY_BREAK
2995 case 37:
2997 #line 432 "dhcp6_lexer.ll"
2998 {
2999  switch(driver.ctx_) {
3001  return isc::dhcp::Dhcp6Parser::make_DHCP6(driver.loc_);
3002  default:
3003  return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp6", driver.loc_);
3004  }
3005 }
3006  YY_BREAK
3007 case 38:
3009 #line 441 "dhcp6_lexer.ll"
3010 {
3011  switch(driver.ctx_) {
3013  return isc::dhcp::Dhcp6Parser::make_DATA_DIRECTORY(driver.loc_);
3014  default:
3015  return isc::dhcp::Dhcp6Parser::make_STRING("data-directory", driver.loc_);
3016  }
3017 }
3018  YY_BREAK
3019 case 39:
3021 #line 450 "dhcp6_lexer.ll"
3022 {
3023  switch(driver.ctx_) {
3026  default:
3027  return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", driver.loc_);
3028  }
3029 }
3030  YY_BREAK
3031 case 40:
3033 #line 459 "dhcp6_lexer.ll"
3034 {
3035  switch(driver.ctx_) {
3037  return isc::dhcp::Dhcp6Parser::make_INTERFACES(driver.loc_);
3038  default:
3039  return isc::dhcp::Dhcp6Parser::make_STRING("interfaces", driver.loc_);
3040  }
3041 }
3042  YY_BREAK
3043 case 41:
3045 #line 468 "dhcp6_lexer.ll"
3046 {
3047  switch(driver.ctx_) {
3049  return isc::dhcp::Dhcp6Parser::make_RE_DETECT(driver.loc_);
3050  default:
3051  return isc::dhcp::Dhcp6Parser::make_STRING("re-detect", driver.loc_);
3052  }
3053 }
3054  YY_BREAK
3055 case 42:
3057 #line 477 "dhcp6_lexer.ll"
3058 {
3059  switch(driver.ctx_) {
3062  default:
3063  return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-require-all", driver.loc_);
3064  }
3065 }
3066  YY_BREAK
3067 case 43:
3069 #line 486 "dhcp6_lexer.ll"
3070 {
3071  switch(driver.ctx_) {
3074  default:
3075  return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-retry-wait-time", driver.loc_);
3076  }
3077 }
3078  YY_BREAK
3079 case 44:
3081 #line 495 "dhcp6_lexer.ll"
3082 {
3083  switch(driver.ctx_) {
3086  default:
3087  return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-max-retries", driver.loc_);
3088  }
3089 }
3090  YY_BREAK
3091 case 45:
3093 #line 504 "dhcp6_lexer.ll"
3094 {
3095  switch(driver.ctx_) {
3097  return isc::dhcp::Dhcp6Parser::make_SANITY_CHECKS(driver.loc_);
3098  default:
3099  return isc::dhcp::Dhcp6Parser::make_STRING("sanity-checks", driver.loc_);
3100  }
3101 }
3102  YY_BREAK
3103 case 46:
3105 #line 513 "dhcp6_lexer.ll"
3106 {
3107  switch(driver.ctx_) {
3109  return isc::dhcp::Dhcp6Parser::make_LEASE_CHECKS(driver.loc_);
3110  default:
3111  return isc::dhcp::Dhcp6Parser::make_STRING("lease-checks", driver.loc_);
3112  }
3113 }
3114  YY_BREAK
3115 case 47:
3117 #line 522 "dhcp6_lexer.ll"
3118 {
3119  switch(driver.ctx_) {
3122  default:
3123  return isc::dhcp::Dhcp6Parser::make_STRING("extended-info-checks", driver.loc_);
3124  }
3125 }
3126  YY_BREAK
3127 case 48:
3129 #line 531 "dhcp6_lexer.ll"
3130 {
3131  switch(driver.ctx_) {
3133  return isc::dhcp::Dhcp6Parser::make_LEASE_DATABASE(driver.loc_);
3134  default:
3135  return isc::dhcp::Dhcp6Parser::make_STRING("lease-database", driver.loc_);
3136  }
3137 }
3138  YY_BREAK
3139 case 49:
3141 #line 540 "dhcp6_lexer.ll"
3142 {
3143  switch(driver.ctx_) {
3145  return isc::dhcp::Dhcp6Parser::make_HOSTS_DATABASE(driver.loc_);
3146  default:
3147  return isc::dhcp::Dhcp6Parser::make_STRING("hosts-database", driver.loc_);
3148  }
3149 }
3150  YY_BREAK
3151 case 50:
3153 #line 549 "dhcp6_lexer.ll"
3154 {
3155  switch(driver.ctx_) {
3158  default:
3159  return isc::dhcp::Dhcp6Parser::make_STRING("hosts-databases", driver.loc_);
3160  }
3161 }
3162  YY_BREAK
3163 case 51:
3165 #line 558 "dhcp6_lexer.ll"
3166 {
3167  switch(driver.ctx_) {
3169  return isc::dhcp::Dhcp6Parser::make_CONFIG_CONTROL(driver.loc_);
3170  default:
3171  return isc::dhcp::Dhcp6Parser::make_STRING("config-control", driver.loc_);
3172  }
3173 }
3174  YY_BREAK
3175 case 52:
3177 #line 567 "dhcp6_lexer.ll"
3178 {
3179  switch(driver.ctx_) {
3182  default:
3183  return isc::dhcp::Dhcp6Parser::make_STRING("config-databases", driver.loc_);
3184  }
3185 }
3186  YY_BREAK
3187 case 53:
3189 #line 576 "dhcp6_lexer.ll"
3190 {
3191  switch(driver.ctx_) {
3194  default:
3195  return isc::dhcp::Dhcp6Parser::make_STRING("config-fetch-wait-time", driver.loc_);
3196  }
3197 }
3198  YY_BREAK
3199 case 54:
3201 #line 585 "dhcp6_lexer.ll"
3202 {
3203  switch(driver.ctx_) {
3205  return isc::dhcp::Dhcp6Parser::make_READONLY(driver.loc_);
3206  default:
3207  return isc::dhcp::Dhcp6Parser::make_STRING("readonly", driver.loc_);
3208  }
3209 }
3210  YY_BREAK
3211 case 55:
3213 #line 594 "dhcp6_lexer.ll"
3214 {
3215  switch(driver.ctx_) {
3221  return isc::dhcp::Dhcp6Parser::make_TYPE(driver.loc_);
3222  default:
3223  return isc::dhcp::Dhcp6Parser::make_STRING("type", driver.loc_);
3224  }
3225 }
3226  YY_BREAK
3227 case 56:
3229 #line 607 "dhcp6_lexer.ll"
3230 {
3231  switch(driver.ctx_) {
3233  return isc::dhcp::Dhcp6Parser::make_MEMFILE(driver.loc_);
3234  default:
3235  return isc::dhcp::Dhcp6Parser::make_STRING("memfile", driver.loc_);
3236  }
3237 }
3238  YY_BREAK
3239 case 57:
3241 #line 616 "dhcp6_lexer.ll"
3242 {
3243  switch(driver.ctx_) {
3245  return isc::dhcp::Dhcp6Parser::make_MYSQL(driver.loc_);
3246  default:
3247  return isc::dhcp::Dhcp6Parser::make_STRING("mysql", driver.loc_);
3248  }
3249 }
3250  YY_BREAK
3251 case 58:
3253 #line 625 "dhcp6_lexer.ll"
3254 {
3255  switch(driver.ctx_) {
3257  return isc::dhcp::Dhcp6Parser::make_POSTGRESQL(driver.loc_);
3258  default:
3259  return isc::dhcp::Dhcp6Parser::make_STRING("postgresql", driver.loc_);
3260  }
3261 }
3262  YY_BREAK
3263 case 59:
3265 #line 634 "dhcp6_lexer.ll"
3266 {
3267  switch(driver.ctx_) {
3271  return isc::dhcp::Dhcp6Parser::make_USER(driver.loc_);
3272  default:
3273  return isc::dhcp::Dhcp6Parser::make_STRING("user", driver.loc_);
3274  }
3275 }
3276  YY_BREAK
3277 case 60:
3279 #line 645 "dhcp6_lexer.ll"
3280 {
3281  switch(driver.ctx_) {
3285  return isc::dhcp::Dhcp6Parser::make_PASSWORD(driver.loc_);
3286  default:
3287  return isc::dhcp::Dhcp6Parser::make_STRING("password", driver.loc_);
3288  }
3289 }
3290  YY_BREAK
3291 case 61:
3293 #line 656 "dhcp6_lexer.ll"
3294 {
3295  switch(driver.ctx_) {
3299  return isc::dhcp::Dhcp6Parser::make_HOST(driver.loc_);
3300  default:
3301  return isc::dhcp::Dhcp6Parser::make_STRING("host", driver.loc_);
3302  }
3303 }
3304  YY_BREAK
3305 case 62:
3307 #line 667 "dhcp6_lexer.ll"
3308 {
3309  switch(driver.ctx_) {
3313  return isc::dhcp::Dhcp6Parser::make_PORT(driver.loc_);
3314  default:
3315  return isc::dhcp::Dhcp6Parser::make_STRING("port", driver.loc_);
3316  }
3317 }
3318  YY_BREAK
3319 case 63:
3321 #line 678 "dhcp6_lexer.ll"
3322 {
3323  switch(driver.ctx_) {
3328  return isc::dhcp::Dhcp6Parser::make_PERSIST(driver.loc_);
3329  default:
3330  return isc::dhcp::Dhcp6Parser::make_STRING("persist", driver.loc_);
3331  }
3332 }
3333  YY_BREAK
3334 case 64:
3336 #line 690 "dhcp6_lexer.ll"
3337 {
3338  switch(driver.ctx_) {
3342  return isc::dhcp::Dhcp6Parser::make_LFC_INTERVAL(driver.loc_);
3343  default:
3344  return isc::dhcp::Dhcp6Parser::make_STRING("lfc-interval", driver.loc_);
3345  }
3346 }
3347  YY_BREAK
3348 case 65:
3350 #line 701 "dhcp6_lexer.ll"
3351 {
3352  switch(driver.ctx_) {
3357  default:
3358  return isc::dhcp::Dhcp6Parser::make_STRING("connect-timeout", driver.loc_);
3359  }
3360 }
3361  YY_BREAK
3362 case 66:
3364 #line 712 "dhcp6_lexer.ll"
3365 {
3366  switch(driver.ctx_) {
3370  return isc::dhcp::Dhcp6Parser::make_READ_TIMEOUT(driver.loc_);
3371  default:
3372  return isc::dhcp::Dhcp6Parser::make_STRING("read-timeout", driver.loc_);
3373  }
3374 }
3375  YY_BREAK
3376 case 67:
3378 #line 723 "dhcp6_lexer.ll"
3379 {
3380  switch(driver.ctx_) {
3384  return isc::dhcp::Dhcp6Parser::make_WRITE_TIMEOUT(driver.loc_);
3385  default:
3386  return isc::dhcp::Dhcp6Parser::make_STRING("write-timeout", driver.loc_);
3387  }
3388 }
3389  YY_BREAK
3390 case 68:
3392 #line 734 "dhcp6_lexer.ll"
3393 {
3394  switch(driver.ctx_) {
3399  default:
3400  return isc::dhcp::Dhcp6Parser::make_STRING("tcp-user-timeout", driver.loc_);
3401  }
3402 }
3403  YY_BREAK
3404 case 69:
3406 #line 745 "dhcp6_lexer.ll"
3407 {
3408  switch(driver.ctx_) {
3413  default:
3414  return isc::dhcp::Dhcp6Parser::make_STRING("reconnect-wait-time", driver.loc_);
3415  }
3416 }
3417  YY_BREAK
3418 case 70:
3420 #line 756 "dhcp6_lexer.ll"
3421 {
3422  switch(driver.ctx_) {
3426  return isc::dhcp::Dhcp6Parser::make_ON_FAIL(driver.loc_);
3427  default:
3428  return isc::dhcp::Dhcp6Parser::make_STRING("on-fail", driver.loc_);
3429  }
3430 }
3431  YY_BREAK
3432 case 71:
3434 #line 767 "dhcp6_lexer.ll"
3435 {
3436  switch(driver.ctx_) {
3439  default:
3440  return isc::dhcp::Dhcp6Parser::make_STRING("stop-retry-exit", driver.loc_);
3441  }
3442 }
3443  YY_BREAK
3444 case 72:
3446 #line 776 "dhcp6_lexer.ll"
3447 {
3448  switch(driver.ctx_) {
3451  default:
3452  return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-exit", driver.loc_);
3453  }
3454 }
3455  YY_BREAK
3456 case 73:
3458 #line 785 "dhcp6_lexer.ll"
3459 {
3460  switch(driver.ctx_) {
3463  default:
3464  return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-continue", driver.loc_);
3465  }
3466 }
3467  YY_BREAK
3468 case 74:
3470 #line 794 "dhcp6_lexer.ll"
3471 {
3472  switch(driver.ctx_) {
3477  default:
3478  return isc::dhcp::Dhcp6Parser::make_STRING("max-reconnect-tries", driver.loc_);
3479  }
3480 }
3481  YY_BREAK
3482 case 75:
3484 #line 805 "dhcp6_lexer.ll"
3485 {
3486  switch(driver.ctx_) {
3488  return isc::dhcp::Dhcp6Parser::make_MAX_ROW_ERRORS(driver.loc_);
3489  default:
3490  return isc::dhcp::Dhcp6Parser::make_STRING("max-row-errors", driver.loc_);
3491  }
3492 }
3493  YY_BREAK
3494 case 76:
3496 #line 814 "dhcp6_lexer.ll"
3497 {
3498  switch(driver.ctx_) {
3502  return isc::dhcp::Dhcp6Parser::make_TRUST_ANCHOR(driver.loc_);
3503  default:
3504  return isc::dhcp::Dhcp6Parser::make_STRING("trust-anchor", driver.loc_);
3505  }
3506 }
3507  YY_BREAK
3508 case 77:
3510 #line 825 "dhcp6_lexer.ll"
3511 {
3512  switch(driver.ctx_) {
3516  return isc::dhcp::Dhcp6Parser::make_CERT_FILE(driver.loc_);
3517  default:
3518  return isc::dhcp::Dhcp6Parser::make_STRING("cert-file", driver.loc_);
3519  }
3520 }
3521  YY_BREAK
3522 case 78:
3524 #line 836 "dhcp6_lexer.ll"
3525 {
3526  switch(driver.ctx_) {
3530  return isc::dhcp::Dhcp6Parser::make_KEY_FILE(driver.loc_);
3531  default:
3532  return isc::dhcp::Dhcp6Parser::make_STRING("key-file", driver.loc_);
3533  }
3534 }
3535  YY_BREAK
3536 case 79:
3538 #line 847 "dhcp6_lexer.ll"
3539 {
3540  switch(driver.ctx_) {
3544  return isc::dhcp::Dhcp6Parser::make_CIPHER_LIST(driver.loc_);
3545  default:
3546  return isc::dhcp::Dhcp6Parser::make_STRING("cipher-list", driver.loc_);
3547  }
3548 }
3549  YY_BREAK
3550 case 80:
3552 #line 858 "dhcp6_lexer.ll"
3553 {
3554  switch(driver.ctx_) {
3560  default:
3561  return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_);
3562  }
3563 }
3564  YY_BREAK
3565 case 81:
3567 #line 870 "dhcp6_lexer.ll"
3568 {
3569  switch(driver.ctx_) {
3575  default:
3576  return isc::dhcp::Dhcp6Parser::make_STRING("min-preferred-lifetime", driver.loc_);
3577  }
3578 }
3579  YY_BREAK
3580 case 82:
3582 #line 882 "dhcp6_lexer.ll"
3583 {
3584  switch(driver.ctx_) {
3590  default:
3591  return isc::dhcp::Dhcp6Parser::make_STRING("max-preferred-lifetime", driver.loc_);
3592  }
3593 }
3594  YY_BREAK
3595 case 83:
3597 #line 894 "dhcp6_lexer.ll"
3598 {
3599  switch(driver.ctx_) {
3604  return isc::dhcp::Dhcp6Parser::make_VALID_LIFETIME(driver.loc_);
3605  default:
3606  return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_);
3607  }
3608 }
3609  YY_BREAK
3610 case 84:
3612 #line 906 "dhcp6_lexer.ll"
3613 {
3614  switch(driver.ctx_) {
3620  default:
3621  return isc::dhcp::Dhcp6Parser::make_STRING("min-valid-lifetime", driver.loc_);
3622  }
3623 }
3624  YY_BREAK
3625 case 85:
3627 #line 918 "dhcp6_lexer.ll"
3628 {
3629  switch(driver.ctx_) {
3635  default:
3636  return isc::dhcp::Dhcp6Parser::make_STRING("max-valid-lifetime", driver.loc_);
3637  }
3638 }
3639  YY_BREAK
3640 case 86:
3642 #line 930 "dhcp6_lexer.ll"
3643 {
3644  switch(driver.ctx_) {
3648  return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_);
3649  default:
3650  return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_);
3651  }
3652 }
3653  YY_BREAK
3654 case 87:
3656 #line 941 "dhcp6_lexer.ll"
3657 {
3658  switch(driver.ctx_) {
3662  return isc::dhcp::Dhcp6Parser::make_REBIND_TIMER(driver.loc_);
3663  default:
3664  return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_);
3665  }
3666 }
3667  YY_BREAK
3668 case 88:
3670 #line 952 "dhcp6_lexer.ll"
3671 {
3672  switch(driver.ctx_) {
3675  default:
3676  return isc::dhcp::Dhcp6Parser::make_STRING("decline-probation-period", driver.loc_);
3677  }
3678 }
3679  YY_BREAK
3680 case 89:
3682 #line 961 "dhcp6_lexer.ll"
3683 {
3684  switch(driver.ctx_) {
3686  return isc::dhcp::Dhcp6Parser::make_SERVER_TAG(driver.loc_);
3687  default:
3688  return isc::dhcp::Dhcp6Parser::make_STRING("server-tag", driver.loc_);
3689  }
3690 }
3691  YY_BREAK
3692 case 90:
3694 #line 970 "dhcp6_lexer.ll"
3695 {
3696  switch(driver.ctx_) {
3699  default:
3700  return isc::dhcp::Dhcp6Parser::make_STRING("parked-packet-limit", driver.loc_);
3701  }
3702 }
3703  YY_BREAK
3704 case 91:
3706 #line 979 "dhcp6_lexer.ll"
3707 {
3708  switch(driver.ctx_) {
3712  return isc::dhcp::Dhcp6Parser::make_ALLOCATOR(driver.loc_);
3713  default:
3714  return isc::dhcp::Dhcp6Parser::make_STRING("allocator", driver.loc_);
3715  }
3716 }
3717  YY_BREAK
3718 case 92:
3720 #line 990 "dhcp6_lexer.ll"
3721 {
3722  switch(driver.ctx_) {
3726  return isc::dhcp::Dhcp6Parser::make_PD_ALLOCATOR(driver.loc_);
3727  default:
3728  return isc::dhcp::Dhcp6Parser::make_STRING("pd-allocator", driver.loc_);
3729  }
3730 }
3731  YY_BREAK
3732 case 93:
3734 #line 1001 "dhcp6_lexer.ll"
3735 {
3736  switch(driver.ctx_) {
3739  default:
3740  return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3741  }
3742 }
3743  YY_BREAK
3744 case 94:
3746 #line 1010 "dhcp6_lexer.ll"
3747 {
3748  switch(driver.ctx_) {
3751  default:
3752  return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3753  }
3754 }
3755  YY_BREAK
3756 case 95:
3758 #line 1019 "dhcp6_lexer.ll"
3759 {
3760  switch(driver.ctx_) {
3765  default:
3766  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-send-updates", driver.loc_);
3767  }
3768 }
3769  YY_BREAK
3770 case 96:
3772 #line 1030 "dhcp6_lexer.ll"
3773 {
3774  switch(driver.ctx_) {
3779  default:
3780  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-no-update", driver.loc_);
3781  }
3782 }
3783  YY_BREAK
3784 case 97:
3786 #line 1041 "dhcp6_lexer.ll"
3787 {
3788  switch(driver.ctx_) {
3793  default:
3794  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-client-update", driver.loc_);
3795  }
3796 }
3797  YY_BREAK
3798 case 98:
3800 #line 1052 "dhcp6_lexer.ll"
3801 {
3802  switch(driver.ctx_) {
3807  default:
3808  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3809  }
3810 }
3811  YY_BREAK
3812 case 99:
3814 #line 1063 "dhcp6_lexer.ll"
3815 {
3816  switch(driver.ctx_) {
3821  default:
3822  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-generated-prefix", driver.loc_);
3823  }
3824 }
3825  YY_BREAK
3826 case 100:
3828 #line 1074 "dhcp6_lexer.ll"
3829 {
3830  switch(driver.ctx_) {
3835  default:
3836  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
3837  }
3838 }
3839  YY_BREAK
3840 case 101:
3842 #line 1085 "dhcp6_lexer.ll"
3843 {
3844  switch(driver.ctx_) {
3849  default:
3850  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-update-on-renew", driver.loc_);
3851  }
3852 }
3853  YY_BREAK
3854 case 102:
3856 #line 1096 "dhcp6_lexer.ll"
3857 {
3858  switch(driver.ctx_) {
3863  default:
3864  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
3865  }
3866 }
3867  YY_BREAK
3868 case 103:
3870 #line 1108 "dhcp6_lexer.ll"
3871 {
3872  switch(driver.ctx_) {
3875  return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_);
3876  default:
3877  return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_);
3878  }
3879 }
3880  YY_BREAK
3881 case 104:
3883 #line 1118 "dhcp6_lexer.ll"
3884 {
3885  switch(driver.ctx_) {
3890  default:
3891  return isc::dhcp::Dhcp6Parser::make_STRING("store-extended-info", driver.loc_);
3892  }
3893 }
3894  YY_BREAK
3895 case 105:
3897 #line 1129 "dhcp6_lexer.ll"
3898 {
3899  switch (driver.ctx_) {
3901  return Dhcp6Parser::make_SHARED_NETWORKS(driver.loc_);
3902  default:
3903  return Dhcp6Parser::make_STRING("shared-networks", driver.loc_);
3904  }
3905 }
3906  YY_BREAK
3907 case 106:
3909 #line 1138 "dhcp6_lexer.ll"
3910 {
3911  switch(driver.ctx_) {
3913  return isc::dhcp::Dhcp6Parser::make_OPTION_DEF(driver.loc_);
3914  default:
3915  return isc::dhcp::Dhcp6Parser::make_STRING("option-def", driver.loc_);
3916  }
3917 }
3918  YY_BREAK
3919 case 107:
3921 #line 1147 "dhcp6_lexer.ll"
3922 {
3923  switch(driver.ctx_) {
3931  return isc::dhcp::Dhcp6Parser::make_OPTION_DATA(driver.loc_);
3932  default:
3933  return isc::dhcp::Dhcp6Parser::make_STRING("option-data", driver.loc_);
3934  }
3935 }
3936  YY_BREAK
3937 case 108:
3939 #line 1162 "dhcp6_lexer.ll"
3940 {
3941  switch(driver.ctx_) {
3950  return isc::dhcp::Dhcp6Parser::make_NAME(driver.loc_);
3951  default:
3952  return isc::dhcp::Dhcp6Parser::make_STRING("name", driver.loc_);
3953  }
3954 }
3955  YY_BREAK
3956 case 109:
3958 #line 1178 "dhcp6_lexer.ll"
3959 {
3960  switch(driver.ctx_) {
3962  return isc::dhcp::Dhcp6Parser::make_DATA(driver.loc_);
3963  default:
3964  return isc::dhcp::Dhcp6Parser::make_STRING("data", driver.loc_);
3965  }
3966 }
3967  YY_BREAK
3968 case 110:
3970 #line 1187 "dhcp6_lexer.ll"
3971 {
3972  switch(driver.ctx_) {
3974  return isc::dhcp::Dhcp6Parser::make_ALWAYS_SEND(driver.loc_);
3975  default:
3976  return isc::dhcp::Dhcp6Parser::make_STRING("always-send", driver.loc_);
3977  }
3978 }
3979  YY_BREAK
3980 case 111:
3982 #line 1196 "dhcp6_lexer.ll"
3983 {
3984  switch(driver.ctx_) {
3986  return isc::dhcp::Dhcp6Parser::make_POOLS(driver.loc_);
3987  default:
3988  return isc::dhcp::Dhcp6Parser::make_STRING("pools", driver.loc_);
3989  }
3990 }
3991  YY_BREAK
3992 case 112:
3994 #line 1205 "dhcp6_lexer.ll"
3995 {
3996  switch(driver.ctx_) {
3998  return isc::dhcp::Dhcp6Parser::make_PD_POOLS(driver.loc_);
3999  default:
4000  return isc::dhcp::Dhcp6Parser::make_STRING("pd-pools", driver.loc_);
4001  }
4002 }
4003  YY_BREAK
4004 case 113:
4006 #line 1214 "dhcp6_lexer.ll"
4007 {
4008  switch(driver.ctx_) {
4010  return isc::dhcp::Dhcp6Parser::make_PREFIX(driver.loc_);
4011  default:
4012  return isc::dhcp::Dhcp6Parser::make_STRING("prefix", driver.loc_);
4013  }
4014 }
4015  YY_BREAK
4016 case 114:
4018 #line 1223 "dhcp6_lexer.ll"
4019 {
4020  switch(driver.ctx_) {
4022  return isc::dhcp::Dhcp6Parser::make_PREFIX_LEN(driver.loc_);
4023  default:
4024  return isc::dhcp::Dhcp6Parser::make_STRING("prefix-len", driver.loc_);
4025  }
4026 }
4027  YY_BREAK
4028 case 115:
4030 #line 1232 "dhcp6_lexer.ll"
4031 {
4032  switch(driver.ctx_) {
4035  default:
4036  return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix", driver.loc_);
4037  }
4038 }
4039  YY_BREAK
4040 case 116:
4042 #line 1241 "dhcp6_lexer.ll"
4043 {
4044  switch(driver.ctx_) {
4047  default:
4048  return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix-len", driver.loc_);
4049  }
4050 }
4051  YY_BREAK
4052 case 117:
4054 #line 1250 "dhcp6_lexer.ll"
4055 {
4056  switch(driver.ctx_) {
4058  return isc::dhcp::Dhcp6Parser::make_DELEGATED_LEN(driver.loc_);
4059  default:
4060  return isc::dhcp::Dhcp6Parser::make_STRING("delegated-len", driver.loc_);
4061  }
4062 }
4063  YY_BREAK
4064 case 118:
4066 #line 1259 "dhcp6_lexer.ll"
4067 {
4068  switch(driver.ctx_) {
4070  return isc::dhcp::Dhcp6Parser::make_POOL(driver.loc_);
4071  default:
4072  return isc::dhcp::Dhcp6Parser::make_STRING("pool", driver.loc_);
4073  }
4074 }
4075  YY_BREAK
4076 case 119:
4078 #line 1268 "dhcp6_lexer.ll"
4079 {
4080  switch(driver.ctx_) {
4097  return isc::dhcp::Dhcp6Parser::make_USER_CONTEXT(driver.loc_);
4098  default:
4099  return isc::dhcp::Dhcp6Parser::make_STRING("user-context", driver.loc_);
4100  }
4101 }
4102  YY_BREAK
4103 case 120:
4105 #line 1292 "dhcp6_lexer.ll"
4106 {
4107  switch(driver.ctx_) {
4124  return isc::dhcp::Dhcp6Parser::make_COMMENT(driver.loc_);
4125  default:
4126  return isc::dhcp::Dhcp6Parser::make_STRING("comment", driver.loc_);
4127  }
4128 }
4129  YY_BREAK
4130 case 121:
4132 #line 1316 "dhcp6_lexer.ll"
4133 {
4134  switch(driver.ctx_) {
4136  return isc::dhcp::Dhcp6Parser::make_SUBNET(driver.loc_);
4137  default:
4138  return isc::dhcp::Dhcp6Parser::make_STRING("subnet", driver.loc_);
4139  }
4140 }
4141  YY_BREAK
4142 case 122:
4144 #line 1325 "dhcp6_lexer.ll"
4145 {
4146  switch(driver.ctx_) {
4149  return isc::dhcp::Dhcp6Parser::make_INTERFACE(driver.loc_);
4150  default:
4151  return isc::dhcp::Dhcp6Parser::make_STRING("interface", driver.loc_);
4152  }
4153 }
4154  YY_BREAK
4155 case 123:
4157 #line 1335 "dhcp6_lexer.ll"
4158 {
4159  switch(driver.ctx_) {
4162  return isc::dhcp::Dhcp6Parser::make_INTERFACE_ID(driver.loc_);
4163  default:
4164  return isc::dhcp::Dhcp6Parser::make_STRING("interface-id", driver.loc_);
4165  }
4166 }
4167  YY_BREAK
4168 case 124:
4170 #line 1345 "dhcp6_lexer.ll"
4171 {
4172  switch(driver.ctx_) {
4174  return isc::dhcp::Dhcp6Parser::make_ID(driver.loc_);
4175  default:
4176  return isc::dhcp::Dhcp6Parser::make_STRING("id", driver.loc_);
4177  }
4178 }
4179  YY_BREAK
4180 case 125:
4182 #line 1354 "dhcp6_lexer.ll"
4183 {
4184  switch(driver.ctx_) {
4187  return isc::dhcp::Dhcp6Parser::make_RAPID_COMMIT(driver.loc_);
4188  default:
4189  return isc::dhcp::Dhcp6Parser::make_STRING("rapid-commit", driver.loc_);
4190  }
4191 }
4192  YY_BREAK
4193 case 126:
4195 #line 1364 "dhcp6_lexer.ll"
4196 {
4197  switch(driver.ctx_) {
4202  default:
4203  return isc::dhcp::Dhcp6Parser::make_STRING("reservation-mode", driver.loc_);
4204  }
4205 }
4206  YY_BREAK
4207 case 127:
4209 #line 1375 "dhcp6_lexer.ll"
4210 {
4211  switch(driver.ctx_) {
4213  return isc::dhcp::Dhcp6Parser::make_DISABLED(driver.loc_);
4214  default:
4215  return isc::dhcp::Dhcp6Parser::make_STRING("disabled", driver.loc_);
4216  }
4217 }
4218  YY_BREAK
4219 case 128:
4221 #line 1384 "dhcp6_lexer.ll"
4222 {
4223  switch(driver.ctx_) {
4225  return isc::dhcp::Dhcp6Parser::make_DISABLED(driver.loc_);
4226  default:
4227  return isc::dhcp::Dhcp6Parser::make_STRING("off", driver.loc_);
4228  }
4229 }
4230  YY_BREAK
4231 case 129:
4233 #line 1393 "dhcp6_lexer.ll"
4234 {
4235  switch(driver.ctx_) {
4237  return isc::dhcp::Dhcp6Parser::make_OUT_OF_POOL(driver.loc_);
4238  default:
4239  return isc::dhcp::Dhcp6Parser::make_STRING("out-of-pool", driver.loc_);
4240  }
4241 }
4242  YY_BREAK
4243 case 130:
4245 #line 1402 "dhcp6_lexer.ll"
4246 {
4247  switch(driver.ctx_) {
4249  return isc::dhcp::Dhcp6Parser::make_GLOBAL(driver.loc_);
4250  default:
4251  return isc::dhcp::Dhcp6Parser::make_STRING("global", driver.loc_);
4252  }
4253 }
4254  YY_BREAK
4255 case 131:
4257 #line 1411 "dhcp6_lexer.ll"
4258 {
4259  switch(driver.ctx_) {
4261  return isc::dhcp::Dhcp6Parser::make_ALL(driver.loc_);
4262  default:
4263  return isc::dhcp::Dhcp6Parser::make_STRING("all", driver.loc_);
4264  }
4265 }
4266  YY_BREAK
4267 case 132:
4269 #line 1420 "dhcp6_lexer.ll"
4270 {
4271  switch(driver.ctx_) {
4276  default:
4277  return isc::dhcp::Dhcp6Parser::make_STRING("reservations-global", driver.loc_);
4278  }
4279 }
4280  YY_BREAK
4281 case 133:
4283 #line 1431 "dhcp6_lexer.ll"
4284 {
4285  switch(driver.ctx_) {
4290  default:
4291  return isc::dhcp::Dhcp6Parser::make_STRING("reservations-in-subnet", driver.loc_);
4292  }
4293 }
4294  YY_BREAK
4295 case 134:
4297 #line 1442 "dhcp6_lexer.ll"
4298 {
4299  switch(driver.ctx_) {
4304  default:
4305  return isc::dhcp::Dhcp6Parser::make_STRING("reservations-out-of-pool", driver.loc_);
4306  }
4307 }
4308  YY_BREAK
4309 case 135:
4311 #line 1453 "dhcp6_lexer.ll"
4312 {
4313  switch(driver.ctx_) {
4316  return isc::dhcp::Dhcp6Parser::make_CODE(driver.loc_);
4317  default:
4318  return isc::dhcp::Dhcp6Parser::make_STRING("code", driver.loc_);
4319  }
4320 }
4321  YY_BREAK
4322 case 136:
4324 #line 1463 "dhcp6_lexer.ll"
4325 {
4326  switch(driver.ctx_) {
4328  return isc::dhcp::Dhcp6Parser::make_MAC_SOURCES(driver.loc_);
4329  default:
4330  return isc::dhcp::Dhcp6Parser::make_STRING("mac-sources", driver.loc_);
4331  }
4332 }
4333  YY_BREAK
4334 case 137:
4336 #line 1472 "dhcp6_lexer.ll"
4337 {
4338  switch(driver.ctx_) {
4341  default:
4342  return isc::dhcp::Dhcp6Parser::make_STRING("relay-supplied-options", driver.loc_);
4343  }
4344 }
4345  YY_BREAK
4346 case 138:
4348 #line 1481 "dhcp6_lexer.ll"
4349 {
4350  switch(driver.ctx_) {
4353  default:
4354  return isc::dhcp::Dhcp6Parser::make_STRING("host-reservation-identifiers", driver.loc_);
4355  }
4356 }
4357  YY_BREAK
4358 case 139:
4360 #line 1490 "dhcp6_lexer.ll"
4361 {
4362  switch(driver.ctx_) {
4367  default:
4368  return isc::dhcp::Dhcp6Parser::make_STRING("calculate-tee-times", driver.loc_);
4369  }
4370 }
4371  YY_BREAK
4372 case 140:
4374 #line 1501 "dhcp6_lexer.ll"
4375 {
4376  switch(driver.ctx_) {
4380  return isc::dhcp::Dhcp6Parser::make_T1_PERCENT(driver.loc_);
4381  default:
4382  return isc::dhcp::Dhcp6Parser::make_STRING("t1-percent", driver.loc_);
4383  }
4384 }
4385  YY_BREAK
4386 case 141:
4388 #line 1512 "dhcp6_lexer.ll"
4389 {
4390  switch(driver.ctx_) {
4394  return isc::dhcp::Dhcp6Parser::make_T2_PERCENT(driver.loc_);
4395  default:
4396  return isc::dhcp::Dhcp6Parser::make_STRING("t2-percent", driver.loc_);
4397  }
4398 }
4399  YY_BREAK
4400 case 142:
4402 #line 1523 "dhcp6_lexer.ll"
4403 {
4404  switch(driver.ctx_) {
4409  default:
4410  return isc::dhcp::Dhcp6Parser::make_STRING("cache-threshold", driver.loc_);
4411  }
4412 }
4413  YY_BREAK
4414 case 143:
4416 #line 1534 "dhcp6_lexer.ll"
4417 {
4418  switch(driver.ctx_) {
4422  return isc::dhcp::Dhcp6Parser::make_CACHE_MAX_AGE(driver.loc_);
4423  default:
4424  return isc::dhcp::Dhcp6Parser::make_STRING("cache-max-age", driver.loc_);
4425  }
4426 }
4427  YY_BREAK
4428 case 144:
4430 #line 1545 "dhcp6_lexer.ll"
4431 {
4432  switch(driver.ctx_) {
4434  return isc::dhcp::Dhcp6Parser::make_LOGGERS(driver.loc_);
4435  default:
4436  return isc::dhcp::Dhcp6Parser::make_STRING("loggers", driver.loc_);
4437  }
4438 }
4439  YY_BREAK
4440 case 145:
4442 #line 1554 "dhcp6_lexer.ll"
4443 {
4444  switch(driver.ctx_) {
4446  return isc::dhcp::Dhcp6Parser::make_OUTPUT_OPTIONS(driver.loc_);
4447  default:
4448  return isc::dhcp::Dhcp6Parser::make_STRING("output_options", driver.loc_);
4449  }
4450 }
4451  YY_BREAK
4452 case 146:
4454 #line 1563 "dhcp6_lexer.ll"
4455 {
4456  switch(driver.ctx_) {
4458  return isc::dhcp::Dhcp6Parser::make_OUTPUT(driver.loc_);
4459  default:
4460  return isc::dhcp::Dhcp6Parser::make_STRING("output", driver.loc_);
4461  }
4462 }
4463  YY_BREAK
4464 case 147:
4466 #line 1572 "dhcp6_lexer.ll"
4467 {
4468  switch(driver.ctx_) {
4470  return isc::dhcp::Dhcp6Parser::make_FLUSH(driver.loc_);
4471  default:
4472  return isc::dhcp::Dhcp6Parser::make_STRING("flush", driver.loc_);
4473  }
4474 }
4475  YY_BREAK
4476 case 148:
4478 #line 1581 "dhcp6_lexer.ll"
4479 {
4480  switch(driver.ctx_) {
4482  return isc::dhcp::Dhcp6Parser::make_MAXSIZE(driver.loc_);
4483  default:
4484  return isc::dhcp::Dhcp6Parser::make_STRING("maxsize", driver.loc_);
4485  }
4486 }
4487  YY_BREAK
4488 case 149:
4490 #line 1590 "dhcp6_lexer.ll"
4491 {
4492  switch(driver.ctx_) {
4494  return isc::dhcp::Dhcp6Parser::make_MAXVER(driver.loc_);
4495  default:
4496  return isc::dhcp::Dhcp6Parser::make_STRING("maxver", driver.loc_);
4497  }
4498 }
4499  YY_BREAK
4500 case 150:
4502 #line 1599 "dhcp6_lexer.ll"
4503 {
4504  switch(driver.ctx_) {
4506  return isc::dhcp::Dhcp6Parser::make_PATTERN(driver.loc_);
4507  default:
4508  return isc::dhcp::Dhcp6Parser::make_STRING("pattern", driver.loc_);
4509  }
4510 }
4511  YY_BREAK
4512 case 151:
4514 #line 1608 "dhcp6_lexer.ll"
4515 {
4516  switch(driver.ctx_) {
4518  return isc::dhcp::Dhcp6Parser::make_DEBUGLEVEL(driver.loc_);
4519  default:
4520  return isc::dhcp::Dhcp6Parser::make_STRING("debuglevel", driver.loc_);
4521  }
4522 }
4523  YY_BREAK
4524 case 152:
4526 #line 1617 "dhcp6_lexer.ll"
4527 {
4528  switch(driver.ctx_) {
4530  return isc::dhcp::Dhcp6Parser::make_SEVERITY(driver.loc_);
4531  default:
4532  return isc::dhcp::Dhcp6Parser::make_STRING("severity", driver.loc_);
4533  }
4534 }
4535  YY_BREAK
4536 case 153:
4538 #line 1626 "dhcp6_lexer.ll"
4539 {
4540  switch(driver.ctx_) {
4543  return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASSES(driver.loc_);
4544  default:
4545  return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", driver.loc_);
4546  }
4547 }
4548  YY_BREAK
4549 case 154:
4551 #line 1636 "dhcp6_lexer.ll"
4552 {
4553  switch(driver.ctx_) {
4559  default:
4560  return isc::dhcp::Dhcp6Parser::make_STRING("require-client-classes", driver.loc_);
4561  }
4562 }
4563  YY_BREAK
4564 case 155:
4566 #line 1648 "dhcp6_lexer.ll"
4567 {
4568  switch(driver.ctx_) {
4574  return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASS(driver.loc_);
4575  default:
4576  return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_);
4577  }
4578 }
4579  YY_BREAK
4580 case 156:
4582 #line 1661 "dhcp6_lexer.ll"
4583 {
4584  switch(driver.ctx_) {
4586  return isc::dhcp::Dhcp6Parser::make_TEST(driver.loc_);
4587  default:
4588  return isc::dhcp::Dhcp6Parser::make_STRING("test", driver.loc_);
4589  }
4590 }
4591  YY_BREAK
4592 case 157:
4594 #line 1670 "dhcp6_lexer.ll"
4595 {
4596  switch(driver.ctx_) {
4598  return isc::dhcp::Dhcp6Parser::make_TEMPLATE_TEST(driver.loc_);
4599  default:
4600  return isc::dhcp::Dhcp6Parser::make_STRING("template-test", driver.loc_);
4601  }
4602 }
4603  YY_BREAK
4604 case 158:
4606 #line 1679 "dhcp6_lexer.ll"
4607 {
4608  switch(driver.ctx_) {
4611  default:
4612  return isc::dhcp::Dhcp6Parser::make_STRING("only-if-required", driver.loc_);
4613  }
4614 }
4615  YY_BREAK
4616 case 159:
4618 #line 1688 "dhcp6_lexer.ll"
4619 {
4620  switch(driver.ctx_) {
4623  return isc::dhcp::Dhcp6Parser::make_RESERVATIONS(driver.loc_);
4624  default:
4625  return isc::dhcp::Dhcp6Parser::make_STRING("reservations", driver.loc_);
4626  }
4627 }
4628  YY_BREAK
4629 case 160:
4631 #line 1698 "dhcp6_lexer.ll"
4632 {
4633  switch(driver.ctx_) {
4636  return isc::dhcp::Dhcp6Parser::make_IP_ADDRESSES(driver.loc_);
4637  default:
4638  return isc::dhcp::Dhcp6Parser::make_STRING("ip-addresses", driver.loc_);
4639  }
4640 }
4641  YY_BREAK
4642 case 161:
4644 #line 1708 "dhcp6_lexer.ll"
4645 {
4646  switch(driver.ctx_) {
4648  return isc::dhcp::Dhcp6Parser::make_PREFIXES(driver.loc_);
4649  default:
4650  return isc::dhcp::Dhcp6Parser::make_STRING("prefixes", driver.loc_);
4651  }
4652 }
4653  YY_BREAK
4654 case 162:
4656 #line 1717 "dhcp6_lexer.ll"
4657 {
4658  switch(driver.ctx_) {
4662  return isc::dhcp::Dhcp6Parser::make_DUID(driver.loc_);
4663  default:
4664  return isc::dhcp::Dhcp6Parser::make_STRING("duid", driver.loc_);
4665  }
4666 }
4667  YY_BREAK
4668 case 163:
4670 #line 1728 "dhcp6_lexer.ll"
4671 {
4672  switch(driver.ctx_) {
4675  return isc::dhcp::Dhcp6Parser::make_HW_ADDRESS(driver.loc_);
4676  default:
4677  return isc::dhcp::Dhcp6Parser::make_STRING("hw-address", driver.loc_);
4678  }
4679 }
4680  YY_BREAK
4681 case 164:
4683 #line 1738 "dhcp6_lexer.ll"
4684 {
4685  switch(driver.ctx_) {
4687  return isc::dhcp::Dhcp6Parser::make_HOSTNAME(driver.loc_);
4688  default:
4689  return isc::dhcp::Dhcp6Parser::make_STRING("hostname", driver.loc_);
4690  }
4691 }
4692  YY_BREAK
4693 case 165:
4695 #line 1747 "dhcp6_lexer.ll"
4696 {
4697  switch(driver.ctx_) {
4700  return isc::dhcp::Dhcp6Parser::make_FLEX_ID(driver.loc_);
4701  default:
4702  return isc::dhcp::Dhcp6Parser::make_STRING("flex-id", driver.loc_);
4703  }
4704 }
4705  YY_BREAK
4706 case 166:
4708 #line 1757 "dhcp6_lexer.ll"
4709 {
4710  switch(driver.ctx_) {
4713  return isc::dhcp::Dhcp6Parser::make_SPACE(driver.loc_);
4714  default:
4715  return isc::dhcp::Dhcp6Parser::make_STRING("space", driver.loc_);
4716  }
4717 }
4718  YY_BREAK
4719 case 167:
4721 #line 1767 "dhcp6_lexer.ll"
4722 {
4723  switch(driver.ctx_) {
4725  return isc::dhcp::Dhcp6Parser::make_CSV_FORMAT(driver.loc_);
4726  default:
4727  return isc::dhcp::Dhcp6Parser::make_STRING("csv-format", driver.loc_);
4728  }
4729 }
4730  YY_BREAK
4731 case 168:
4733 #line 1776 "dhcp6_lexer.ll"
4734 {
4735  switch(driver.ctx_) {
4737  return isc::dhcp::Dhcp6Parser::make_RECORD_TYPES(driver.loc_);
4738  default:
4739  return isc::dhcp::Dhcp6Parser::make_STRING("record-types", driver.loc_);
4740  }
4741 }
4742  YY_BREAK
4743 case 169:
4745 #line 1785 "dhcp6_lexer.ll"
4746 {
4747  switch(driver.ctx_) {
4749  return isc::dhcp::Dhcp6Parser::make_ENCAPSULATE(driver.loc_);
4750  default:
4751  return isc::dhcp::Dhcp6Parser::make_STRING("encapsulate", driver.loc_);
4752  }
4753 }
4754  YY_BREAK
4755 case 170:
4757 #line 1794 "dhcp6_lexer.ll"
4758 {
4759  switch(driver.ctx_) {
4761  return isc::dhcp::Dhcp6Parser::make_ARRAY(driver.loc_);
4762  default:
4763  return isc::dhcp::Dhcp6Parser::make_STRING("array", driver.loc_);
4764  }
4765 }
4766  YY_BREAK
4767 case 171:
4769 #line 1803 "dhcp6_lexer.ll"
4770 {
4771  switch(driver.ctx_) {
4774  return isc::dhcp::Dhcp6Parser::make_RELAY(driver.loc_);
4775  default:
4776  return isc::dhcp::Dhcp6Parser::make_STRING("relay", driver.loc_);
4777  }
4778 }
4779  YY_BREAK
4780 case 172:
4782 #line 1813 "dhcp6_lexer.ll"
4783 {
4784  switch(driver.ctx_) {
4786  return isc::dhcp::Dhcp6Parser::make_IP_ADDRESS(driver.loc_);
4787  default:
4788  return isc::dhcp::Dhcp6Parser::make_STRING("ip-address", driver.loc_);
4789  }
4790 }
4791  YY_BREAK
4792 case 173:
4794 #line 1822 "dhcp6_lexer.ll"
4795 {
4796  switch(driver.ctx_) {
4799  default:
4800  return isc::dhcp::Dhcp6Parser::make_STRING("hooks-libraries", driver.loc_);
4801  }
4802 }
4803  YY_BREAK
4804 case 174:
4806 #line 1831 "dhcp6_lexer.ll"
4807 {
4808  switch(driver.ctx_) {
4810  return isc::dhcp::Dhcp6Parser::make_PARAMETERS(driver.loc_);
4811  default:
4812  return isc::dhcp::Dhcp6Parser::make_STRING("parameters", driver.loc_);
4813  }
4814 }
4815  YY_BREAK
4816 case 175:
4818 #line 1840 "dhcp6_lexer.ll"
4819 {
4820  switch(driver.ctx_) {
4822  return isc::dhcp::Dhcp6Parser::make_LIBRARY(driver.loc_);
4823  default:
4824  return isc::dhcp::Dhcp6Parser::make_STRING("library", driver.loc_);
4825  }
4826 }
4827  YY_BREAK
4828 case 176:
4830 #line 1849 "dhcp6_lexer.ll"
4831 {
4832  switch(driver.ctx_) {
4834  return isc::dhcp::Dhcp6Parser::make_SERVER_ID(driver.loc_);
4835  default:
4836  return isc::dhcp::Dhcp6Parser::make_STRING("server-id", driver.loc_);
4837  }
4838 }
4839  YY_BREAK
4840 case 177:
4842 #line 1858 "dhcp6_lexer.ll"
4843 {
4844  switch(driver.ctx_) {
4846  return isc::dhcp::Dhcp6Parser::make_LLT(driver.loc_);
4847  default:
4848  return isc::dhcp::Dhcp6Parser::make_STRING("LLT", driver.loc_);
4849  }
4850 }
4851  YY_BREAK
4852 case 178:
4854 #line 1867 "dhcp6_lexer.ll"
4855 {
4856  switch(driver.ctx_) {
4858  return isc::dhcp::Dhcp6Parser::make_EN(driver.loc_);
4859  default:
4860  return isc::dhcp::Dhcp6Parser::make_STRING("EN", driver.loc_);
4861  }
4862 }
4863  YY_BREAK
4864 case 179:
4866 #line 1876 "dhcp6_lexer.ll"
4867 {
4868  switch(driver.ctx_) {
4870  return isc::dhcp::Dhcp6Parser::make_LL(driver.loc_);
4871  default:
4872  return isc::dhcp::Dhcp6Parser::make_STRING("LL", driver.loc_);
4873  }
4874 }
4875  YY_BREAK
4876 case 180:
4878 #line 1885 "dhcp6_lexer.ll"
4879 {
4880  switch(driver.ctx_) {
4882  return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(driver.loc_);
4883  default:
4884  return isc::dhcp::Dhcp6Parser::make_STRING("identifier", driver.loc_);
4885  }
4886 }
4887  YY_BREAK
4888 case 181:
4890 #line 1894 "dhcp6_lexer.ll"
4891 {
4892  switch(driver.ctx_) {
4894  return isc::dhcp::Dhcp6Parser::make_HTYPE(driver.loc_);
4895  default:
4896  return isc::dhcp::Dhcp6Parser::make_STRING("htype", driver.loc_);
4897  }
4898 }
4899  YY_BREAK
4900 case 182:
4902 #line 1903 "dhcp6_lexer.ll"
4903 {
4904  switch(driver.ctx_) {
4906  return isc::dhcp::Dhcp6Parser::make_TIME(driver.loc_);
4907  default:
4908  return isc::dhcp::Dhcp6Parser::make_STRING("time", driver.loc_);
4909  }
4910 }
4911  YY_BREAK
4912 case 183:
4914 #line 1912 "dhcp6_lexer.ll"
4915 {
4916  switch(driver.ctx_) {
4918  return isc::dhcp::Dhcp6Parser::make_ENTERPRISE_ID(driver.loc_);
4919  default:
4920  return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", driver.loc_);
4921  }
4922 }
4923  YY_BREAK
4924 case 184:
4926 #line 1921 "dhcp6_lexer.ll"
4927 {
4928  switch(driver.ctx_) {
4931  default:
4932  return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", driver.loc_);
4933  }
4934 }
4935  YY_BREAK
4936 case 185:
4938 #line 1930 "dhcp6_lexer.ll"
4939 {
4940  switch(driver.ctx_) {
4943  default:
4944  return isc::dhcp::Dhcp6Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
4945  }
4946 }
4947  YY_BREAK
4948 case 186:
4950 #line 1939 "dhcp6_lexer.ll"
4951 {
4952  switch(driver.ctx_) {
4955  default:
4956  return isc::dhcp::Dhcp6Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
4957  }
4958 }
4959  YY_BREAK
4960 case 187:
4962 #line 1948 "dhcp6_lexer.ll"
4963 {
4964  switch(driver.ctx_) {
4967  default:
4968  return isc::dhcp::Dhcp6Parser::make_STRING("hold-reclaimed-time", driver.loc_);
4969  }
4970 }
4971  YY_BREAK
4972 case 188:
4974 #line 1957 "dhcp6_lexer.ll"
4975 {
4976  switch(driver.ctx_) {
4979  default:
4980  return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-leases", driver.loc_);
4981  }
4982 }
4983  YY_BREAK
4984 case 189:
4986 #line 1966 "dhcp6_lexer.ll"
4987 {
4988  switch(driver.ctx_) {
4991  default:
4992  return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-time", driver.loc_);
4993  }
4994 }
4995  YY_BREAK
4996 case 190:
4998 #line 1975 "dhcp6_lexer.ll"
4999 {
5000  switch(driver.ctx_) {
5003  default:
5004  return isc::dhcp::Dhcp6Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
5005  }
5006 }
5007  YY_BREAK
5008 case 191:
5010 #line 1984 "dhcp6_lexer.ll"
5011 {
5012  switch(driver.ctx_) {
5014  return isc::dhcp::Dhcp6Parser::make_DHCP4O6_PORT(driver.loc_);
5015  default:
5016  return isc::dhcp::Dhcp6Parser::make_STRING("dhcp4o6-port", driver.loc_);
5017  }
5018 }
5019  YY_BREAK
5020 case 192:
5022 #line 1993 "dhcp6_lexer.ll"
5023 {
5024  switch(driver.ctx_) {
5027  default:
5028  return isc::dhcp::Dhcp6Parser::make_STRING("multi-threading", driver.loc_);
5029  }
5030 }
5031  YY_BREAK
5032 case 193:
5034 #line 2002 "dhcp6_lexer.ll"
5035 {
5036  switch(driver.ctx_) {
5039  default:
5040  return isc::dhcp::Dhcp6Parser::make_STRING("enable-multi-threading", driver.loc_);
5041  }
5042 }
5043  YY_BREAK
5044 case 194:
5046 #line 2011 "dhcp6_lexer.ll"
5047 {
5048  switch(driver.ctx_) {
5051  default:
5052  return isc::dhcp::Dhcp6Parser::make_STRING("thread-pool-size", driver.loc_);
5053  }
5054 }
5055  YY_BREAK
5056 case 195:
5058 #line 2020 "dhcp6_lexer.ll"
5059 {
5060  switch(driver.ctx_) {
5063  default:
5064  return isc::dhcp::Dhcp6Parser::make_STRING("packet-queue-size", driver.loc_);
5065  }
5066 }
5067  YY_BREAK
5068 case 196:
5070 #line 2029 "dhcp6_lexer.ll"
5071 {
5072  switch(driver.ctx_) {
5074  return isc::dhcp::Dhcp6Parser::make_CONTROL_SOCKET(driver.loc_);
5075  default:
5076  return isc::dhcp::Dhcp6Parser::make_STRING("control-socket", driver.loc_);
5077  }
5078 }
5079  YY_BREAK
5080 case 197:
5082 #line 2038 "dhcp6_lexer.ll"
5083 {
5084  switch(driver.ctx_) {
5086  return isc::dhcp::Dhcp6Parser::make_SOCKET_TYPE(driver.loc_);
5087  default:
5088  return isc::dhcp::Dhcp6Parser::make_STRING("socket-type", driver.loc_);
5089  }
5090 }
5091  YY_BREAK
5092 case 198:
5094 #line 2047 "dhcp6_lexer.ll"
5095 {
5096  switch(driver.ctx_) {
5098  return isc::dhcp::Dhcp6Parser::make_SOCKET_NAME(driver.loc_);
5099  default:
5100  return isc::dhcp::Dhcp6Parser::make_STRING("socket-name", driver.loc_);
5101  }
5102 }
5103  YY_BREAK
5104 case 199:
5106 #line 2056 "dhcp6_lexer.ll"
5107 {
5108  switch(driver.ctx_) {
5111  default:
5112  return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-queue-control", driver.loc_);
5113  }
5114 }
5115  YY_BREAK
5116 case 200:
5118 #line 2065 "dhcp6_lexer.ll"
5119 {
5120  switch(driver.ctx_) {
5122  return isc::dhcp::Dhcp6Parser::make_ENABLE_QUEUE(driver.loc_);
5123  default:
5124  return isc::dhcp::Dhcp6Parser::make_STRING("enable-queue", driver.loc_);
5125  }
5126 }
5127  YY_BREAK
5128 case 201:
5130 #line 2074 "dhcp6_lexer.ll"
5131 {
5132  switch(driver.ctx_) {
5134  return isc::dhcp::Dhcp6Parser::make_QUEUE_TYPE(driver.loc_);
5135  default:
5136  return isc::dhcp::Dhcp6Parser::make_STRING("queue-type", driver.loc_);
5137  }
5138 }
5139  YY_BREAK
5140 case 202:
5142 #line 2083 "dhcp6_lexer.ll"
5143 {
5144  switch(driver.ctx_) {
5146  return isc::dhcp::Dhcp6Parser::make_CAPACITY(driver.loc_);
5147  default:
5148  return isc::dhcp::Dhcp6Parser::make_STRING("capacity", driver.loc_);
5149  }
5150 }
5151  YY_BREAK
5152 case 203:
5154 #line 2092 "dhcp6_lexer.ll"
5155 {
5156  switch(driver.ctx_) {
5158  return isc::dhcp::Dhcp6Parser::make_DHCP_DDNS(driver.loc_);
5159  default:
5160  return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-ddns", driver.loc_);
5161  }
5162 }
5163  YY_BREAK
5164 case 204:
5166 #line 2101 "dhcp6_lexer.ll"
5167 {
5168  switch(driver.ctx_) {
5171  default:
5172  return isc::dhcp::Dhcp6Parser::make_STRING("early-global-reservations-lookup", driver.loc_);
5173  }
5174 }
5175  YY_BREAK
5176 case 205:
5178 #line 2110 "dhcp6_lexer.ll"
5179 {
5180  switch(driver.ctx_) {
5183  default:
5184  return isc::dhcp::Dhcp6Parser::make_STRING("ip-reservations-unique", driver.loc_);
5185  }
5186 }
5187  YY_BREAK
5188 case 206:
5190 #line 2119 "dhcp6_lexer.ll"
5191 {
5192  switch(driver.ctx_) {
5195  default:
5196  return isc::dhcp::Dhcp6Parser::make_STRING("reservations-lookup-first", driver.loc_);
5197  }
5198 }
5199  YY_BREAK
5200 case 207:
5202 #line 2128 "dhcp6_lexer.ll"
5203 {
5204  switch(driver.ctx_) {
5206  return isc::dhcp::Dhcp6Parser::make_COMPATIBILITY(driver.loc_);
5207  default:
5208  return isc::dhcp::Dhcp6Parser::make_STRING("compatibility", driver.loc_);
5209  }
5210 }
5211  YY_BREAK
5212 case 208:
5214 #line 2137 "dhcp6_lexer.ll"
5215 {
5216  switch(driver.ctx_) {
5219  default:
5220  return isc::dhcp::Dhcp6Parser::make_STRING("lenient-option-parsing", driver.loc_);
5221  }
5222 }
5223  YY_BREAK
5224 case 209:
5226 #line 2146 "dhcp6_lexer.ll"
5227 {
5228  /* A string has been matched. It contains the actual string and single quotes.
5229  We need to get those quotes out of the way and just use its content, e.g.
5230  for 'foo' we should get foo */
5231  std::string raw(yytext+1);
5232  size_t len = raw.size() - 1;
5233  raw.resize(len);
5234  std::string decoded;
5235  decoded.reserve(len);
5236  for (size_t pos = 0; pos < len; ++pos) {
5237  int b = 0;
5238  char c = raw[pos];
5239  switch (c) {
5240  case '"':
5241  /* impossible condition */
5242  driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
5243  break;
5244  case '\\':
5245  ++pos;
5246  if (pos >= len) {
5247  /* impossible condition */
5248  driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
5249  }
5250  c = raw[pos];
5251  switch (c) {
5252  case '"':
5253  case '\\':
5254  case '/':
5255  decoded.push_back(c);
5256  break;
5257  case 'b':
5258  decoded.push_back('\b');
5259  break;
5260  case 'f':
5261  decoded.push_back('\f');
5262  break;
5263  case 'n':
5264  decoded.push_back('\n');
5265  break;
5266  case 'r':
5267  decoded.push_back('\r');
5268  break;
5269  case 't':
5270  decoded.push_back('\t');
5271  break;
5272  case 'u':
5273  /* support only \u0000 to \u00ff */
5274  ++pos;
5275  if (pos + 4 > len) {
5276  /* impossible condition */
5277  driver.error(driver.loc_,
5278  "Overflow unicode escape in \"" + raw + "\"");
5279  }
5280  if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
5281  driver.error(driver.loc_,
5282  "Unsupported unicode escape in \"" + raw + "\"",
5283  pos + 1);
5284  }
5285  pos += 2;
5286  c = raw[pos];
5287  if ((c >= '0') && (c <= '9')) {
5288  b = (c - '0') << 4;
5289  } else if ((c >= 'A') && (c <= 'F')) {
5290  b = (c - 'A' + 10) << 4;
5291  } else if ((c >= 'a') && (c <= 'f')) {
5292  b = (c - 'a' + 10) << 4;
5293  } else {
5294  /* impossible condition */
5295  driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5296  }
5297  pos++;
5298  c = raw[pos];
5299  if ((c >= '0') && (c <= '9')) {
5300  b |= c - '0';
5301  } else if ((c >= 'A') && (c <= 'F')) {
5302  b |= c - 'A' + 10;
5303  } else if ((c >= 'a') && (c <= 'f')) {
5304  b |= c - 'a' + 10;
5305  } else {
5306  /* impossible condition */
5307  driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5308  }
5309  decoded.push_back(static_cast<char>(b & 0xff));
5310  break;
5311  default:
5312  /* impossible condition */
5313  driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5314  }
5315  break;
5316  default:
5317  if ((c >= 0) && (c < 0x20)) {
5318  /* impossible condition */
5319  driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5320  }
5321  decoded.push_back(c);
5322  }
5323  }
5324 
5325  return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
5326 }
5327  YY_BREAK
5328 case 210:
5329 /* rule 210 can match eol */
5331 #line 2247 "dhcp6_lexer.ll"
5332 {
5333  /* Bad string with a forbidden control character inside */
5334  std::string raw(yytext+1);
5335  size_t len = raw.size() - 1;
5336  size_t pos = 0;
5337  for (; pos < len; ++pos) {
5338  char c = raw[pos];
5339  if ((c >= 0) && (c < 0x20)) {
5340  break;
5341  }
5342  }
5343  driver.error(driver.loc_,
5344  "Invalid control in " + std::string(yytext),
5345  pos + 1);
5346 }
5347  YY_BREAK
5348 case 211:
5349 /* rule 211 can match eol */
5351 #line 2263 "dhcp6_lexer.ll"
5352 {
5353  /* Bad string with a bad escape inside */
5354  std::string raw(yytext+1);
5355  size_t len = raw.size() - 1;
5356  size_t pos = 0;
5357  bool found = false;
5358  for (; pos < len; ++pos) {
5359  if (found) {
5360  break;
5361  }
5362  char c = raw[pos];
5363  if (c == '\\') {
5364  ++pos;
5365  c = raw[pos];
5366  switch (c) {
5367  case '"':
5368  case '\\':
5369  case '/':
5370  case 'b':
5371  case 'f':
5372  case 'n':
5373  case 'r':
5374  case 't':
5375  break;
5376  case 'u':
5377  if ((pos + 4 > len) ||
5378  !std::isxdigit(raw[pos + 1]) ||
5379  !std::isxdigit(raw[pos + 2]) ||
5380  !std::isxdigit(raw[pos + 3]) ||
5381  !std::isxdigit(raw[pos + 4])) {
5382  found = true;
5383  }
5384  break;
5385  default:
5386  found = true;
5387  break;
5388  }
5389  }
5390  }
5391  /* The rule stops on the first " including on \" so add ... in this case */
5392  std::string trailer = "";
5393  if (raw[len - 1] == '\\') {
5394  trailer = "...";
5395  }
5396  driver.error(driver.loc_,
5397  "Bad escape in " + std::string(yytext) + trailer,
5398  pos);
5399 }
5400  YY_BREAK
5401 case 212:
5403 #line 2312 "dhcp6_lexer.ll"
5404 {
5405  /* Bad string with an open escape at the end */
5406  std::string raw(yytext+1);
5407  driver.error(driver.loc_,
5408  "Overflow escape in " + std::string(yytext),
5409  raw.size() + 1);
5410 }
5411  YY_BREAK
5412 case 213:
5414 #line 2320 "dhcp6_lexer.ll"
5415 {
5416  /* Bad string with an open unicode escape at the end */
5417  std::string raw(yytext+1);
5418  size_t pos = raw.size() - 1;
5419  for (; pos > 0; --pos) {
5420  char c = raw[pos];
5421  if (c == 'u') {
5422  break;
5423  }
5424  }
5425  driver.error(driver.loc_,
5426  "Overflow unicode escape in " + std::string(yytext),
5427  pos + 1);
5428 }
5429  YY_BREAK
5430 case 214:
5432 #line 2335 "dhcp6_lexer.ll"
5433 { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
5434  YY_BREAK
5435 case 215:
5437 #line 2336 "dhcp6_lexer.ll"
5438 { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
5439  YY_BREAK
5440 case 216:
5442 #line 2337 "dhcp6_lexer.ll"
5443 { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
5444  YY_BREAK
5445 case 217:
5447 #line 2338 "dhcp6_lexer.ll"
5448 { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
5449  YY_BREAK
5450 case 218:
5452 #line 2339 "dhcp6_lexer.ll"
5453 { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
5454  YY_BREAK
5455 case 219:
5457 #line 2340 "dhcp6_lexer.ll"
5458 { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
5459  YY_BREAK
5460 case 220:
5462 #line 2342 "dhcp6_lexer.ll"
5463 {
5464  /* An integer was found. */
5465  std::string tmp(yytext);
5466  int64_t integer = 0;
5467  try {
5468  /* In substring we want to use negative values (e.g. -1).
5469  In enterprise-id we need to use values up to 0xffffffff.
5470  To cover both of those use cases, we need at least
5471  int64_t. */
5472  integer = boost::lexical_cast<int64_t>(tmp);
5473  } catch (const boost::bad_lexical_cast &) {
5474  driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5475  }
5476 
5477  /* The parser needs the string form as double conversion is no lossless */
5478  return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
5479 }
5480  YY_BREAK
5481 case 221:
5483 #line 2360 "dhcp6_lexer.ll"
5484 {
5485  /* A floating point was found. */
5486  std::string tmp(yytext);
5487  double fp = 0.0;
5488  try {
5489  fp = boost::lexical_cast<double>(tmp);
5490  } catch (const boost::bad_lexical_cast &) {
5491  driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
5492  }
5493 
5494  return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
5495 }
5496  YY_BREAK
5497 case 222:
5499 #line 2373 "dhcp6_lexer.ll"
5500 {
5501  string tmp(yytext);
5502  return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
5503 }
5504  YY_BREAK
5505 case 223:
5507 #line 2378 "dhcp6_lexer.ll"
5508 {
5509  return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
5510 }
5511  YY_BREAK
5512 case 224:
5514 #line 2382 "dhcp6_lexer.ll"
5515 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
5516  YY_BREAK
5517 case 225:
5519 #line 2384 "dhcp6_lexer.ll"
5520 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
5521  YY_BREAK
5522 case 226:
5524 #line 2386 "dhcp6_lexer.ll"
5525 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
5526  YY_BREAK
5527 case 227:
5529 #line 2388 "dhcp6_lexer.ll"
5530 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
5531  YY_BREAK
5532 case YY_STATE_EOF(INITIAL):
5533 #line 2390 "dhcp6_lexer.ll"
5534 {
5535  if (driver.states_.empty()) {
5536  return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
5537  }
5538  driver.loc_ = driver.locs_.back();
5539  driver.locs_.pop_back();
5540  driver.file_ = driver.files_.back();
5541  driver.files_.pop_back();
5542  if (driver.sfile_) {
5543  fclose(driver.sfile_);
5544  driver.sfile_ = 0;
5545  }
5546  if (!driver.sfiles_.empty()) {
5547  driver.sfile_ = driver.sfiles_.back();
5548  driver.sfiles_.pop_back();
5549  }
5550  parser6__delete_buffer(YY_CURRENT_BUFFER);
5551  parser6__switch_to_buffer(driver.states_.back());
5552  driver.states_.pop_back();
5553 
5554  BEGIN(DIR_EXIT);
5555 }
5556  YY_BREAK
5557 case 228:
5559 #line 2413 "dhcp6_lexer.ll"
5560 ECHO;
5561  YY_BREAK
5562 #line 5562 "dhcp6_lexer.cc"
5563 
5564  case YY_END_OF_BUFFER:
5565  {
5566  /* Amount of text matched not including the EOB char. */
5567  int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5568 
5569  /* Undo the effects of YY_DO_BEFORE_ACTION. */
5570  *yy_cp = (yy_hold_char);
5572 
5573  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5574  {
5575  /* We're scanning a new file or input source. It's
5576  * possible that this happened because the user
5577  * just pointed yyin at a new source and called
5578  * yylex(). If so, then we have to assure
5579  * consistency between YY_CURRENT_BUFFER and our
5580  * globals. Here is the right place to do so, because
5581  * this is the first action (other than possibly a
5582  * back-up) that will match for the new input source.
5583  */
5584  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5585 /* %if-c-only */
5586  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
5587 /* %endif */
5588 /* %if-c++-only */
5589 /* %endif */
5590  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5591  }
5592 
5593  /* Note that here we test for yy_c_buf_p "<=" to the position
5594  * of the first EOB in the buffer, since yy_c_buf_p will
5595  * already have been incremented past the NUL character
5596  * (since all states make transitions on EOB to the
5597  * end-of-buffer state). Contrast this with the test
5598  * in input().
5599  */
5600  if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5601  { /* This was really a NUL. */
5602  yy_state_type yy_next_state;
5603 
5604  (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5605 
5606  yy_current_state = yy_get_previous_state( );
5607 
5608  /* Okay, we're now positioned to make the NUL
5609  * transition. We couldn't have
5610  * yy_get_previous_state() go ahead and do it
5611  * for us because it doesn't know how to deal
5612  * with the possibility of jamming (and we don't
5613  * want to build jamming into it because then it
5614  * will run more slowly).
5615  */
5616 
5617  yy_next_state = yy_try_NUL_trans( yy_current_state );
5618 
5619  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5620 
5621  if ( yy_next_state )
5622  {
5623  /* Consume the NUL. */
5624  yy_cp = ++(yy_c_buf_p);
5625  yy_current_state = yy_next_state;
5626  goto yy_match;
5627  }
5628 
5629  else
5630  {
5631 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
5632  yy_cp = (yy_last_accepting_cpos);
5633  yy_current_state = (yy_last_accepting_state);
5634  goto yy_find_action;
5635  }
5636  }
5637 
5638  else switch ( yy_get_next_buffer( ) )
5639  {
5640  case EOB_ACT_END_OF_FILE:
5641  {
5642  (yy_did_buffer_switch_on_eof) = 0;
5643 
5644  if ( yywrap( ) )
5645  {
5646  /* Note: because we've taken care in
5647  * yy_get_next_buffer() to have set up
5648  * yytext, we can now set up
5649  * yy_c_buf_p so that if some total
5650  * hoser (like flex itself) wants to
5651  * call the scanner after we return the
5652  * YY_NULL, it'll still work - another
5653  * YY_NULL will get returned.
5654  */
5655  (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5656 
5657  yy_act = YY_STATE_EOF(YY_START);
5658  goto do_action;
5659  }
5660 
5661  else
5662  {
5663  if ( ! (yy_did_buffer_switch_on_eof) )
5664  YY_NEW_FILE;
5665  }
5666  break;
5667  }
5668 
5669  case EOB_ACT_CONTINUE_SCAN:
5670  (yy_c_buf_p) =
5671  (yytext_ptr) + yy_amount_of_matched_text;
5672 
5673  yy_current_state = yy_get_previous_state( );
5674 
5675  yy_cp = (yy_c_buf_p);
5676  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5677  goto yy_match;
5678 
5679  case EOB_ACT_LAST_MATCH:
5680  (yy_c_buf_p) =
5681  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5682 
5683  yy_current_state = yy_get_previous_state( );
5684 
5685  yy_cp = (yy_c_buf_p);
5686  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5687  goto yy_find_action;
5688  }
5689  break;
5690  }
5691 
5692  default:
5694  "fatal flex scanner internal error--no action found" );
5695  } /* end of action switch */
5696  } /* end of scanning one token */
5697  } /* end of user's declarations */
5698 } /* end of yylex */
5699 /* %ok-for-header */
5700 
5701 /* %if-c++-only */
5702 /* %not-for-header */
5703 /* %ok-for-header */
5704 
5705 /* %endif */
5706 
5707 /* yy_get_next_buffer - try to read in a new buffer
5708  *
5709  * Returns a code representing an action:
5710  * EOB_ACT_LAST_MATCH -
5711  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5712  * EOB_ACT_END_OF_FILE - end of file
5713  */
5714 /* %if-c-only */
5715 static int yy_get_next_buffer (void)
5716 /* %endif */
5717 /* %if-c++-only */
5718 /* %endif */
5719 {
5720  char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5721  char *source = (yytext_ptr);
5722  int number_to_move, i;
5723  int ret_val;
5724 
5725  if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
5727  "fatal flex scanner internal error--end of buffer missed" );
5728 
5729  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
5730  { /* Don't try to fill the buffer, so this is an EOF. */
5731  if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
5732  {
5733  /* We matched a single character, the EOB, so
5734  * treat this as a final EOF.
5735  */
5736  return EOB_ACT_END_OF_FILE;
5737  }
5738 
5739  else
5740  {
5741  /* We matched some text prior to the EOB, first
5742  * process it.
5743  */
5744  return EOB_ACT_LAST_MATCH;
5745  }
5746  }
5747 
5748  /* Try to read more data. */
5749 
5750  /* First move last chars to start of buffer. */
5751  number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
5752 
5753  for ( i = 0; i < number_to_move; ++i )
5754  *(dest++) = *(source++);
5755 
5756  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
5757  /* don't do the read, it's not guaranteed to return an EOF,
5758  * just force an EOF
5759  */
5760  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
5761 
5762  else
5763  {
5764  int num_to_read =
5765  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
5766 
5767  while ( num_to_read <= 0 )
5768  { /* Not enough room in the buffer - grow it. */
5769 
5770  /* just a shorter name for the current buffer */
5771  YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
5772 
5773  int yy_c_buf_p_offset =
5774  (int) ((yy_c_buf_p) - b->yy_ch_buf);
5775 
5776  if ( b->yy_is_our_buffer )
5777  {
5778  int new_size = b->yy_buf_size * 2;
5779 
5780  if ( new_size <= 0 )
5781  b->yy_buf_size += b->yy_buf_size / 8;
5782  else
5783  b->yy_buf_size *= 2;
5784 
5785  b->yy_ch_buf = (char *)
5786  /* Include room in for 2 EOB chars. */
5787  yyrealloc( (void *) b->yy_ch_buf,
5788  (yy_size_t) (b->yy_buf_size + 2) );
5789  }
5790  else
5791  /* Can't grow it, we don't own it. */
5792  b->yy_ch_buf = NULL;
5793 
5794  if ( ! b->yy_ch_buf )
5796  "fatal error - scanner input buffer overflow" );
5797 
5798  (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
5799 
5800  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
5801  number_to_move - 1;
5802 
5803  }
5804 
5805  if ( num_to_read > YY_READ_BUF_SIZE )
5806  num_to_read = YY_READ_BUF_SIZE;
5807 
5808  /* Read in more data. */
5809  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
5810  (yy_n_chars), num_to_read );
5811 
5812  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5813  }
5814 
5815  if ( (yy_n_chars) == 0 )
5816  {
5817  if ( number_to_move == YY_MORE_ADJ )
5818  {
5819  ret_val = EOB_ACT_END_OF_FILE;
5820  yyrestart( yyin );
5821  }
5822 
5823  else
5824  {
5825  ret_val = EOB_ACT_LAST_MATCH;
5826  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
5828  }
5829  }
5830 
5831  else
5832  ret_val = EOB_ACT_CONTINUE_SCAN;
5833 
5834  if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
5835  /* Extend the array by 50%, plus the number we really need. */
5836  int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
5837  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
5838  (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
5839  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
5840  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
5841  /* "- 2" to take care of EOB's */
5842  YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
5843  }
5844 
5845  (yy_n_chars) += number_to_move;
5848 
5849  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
5850 
5851  return ret_val;
5852 }
5853 
5854 /* yy_get_previous_state - get the state just before the EOB char was reached */
5855 
5856 /* %if-c-only */
5857 /* %not-for-header */
5858  static yy_state_type yy_get_previous_state (void)
5859 /* %endif */
5860 /* %if-c++-only */
5861 /* %endif */
5862 {
5863  yy_state_type yy_current_state;
5864  char *yy_cp;
5865 
5866 /* %% [15.0] code to get the start state into yy_current_state goes here */
5867  yy_current_state = (yy_start);
5868 
5869  for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
5870  {
5871 /* %% [16.0] code to find the next state goes here */
5872  YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
5873  if ( yy_accept[yy_current_state] )
5874  {
5875  (yy_last_accepting_state) = yy_current_state;
5876  (yy_last_accepting_cpos) = yy_cp;
5877  }
5878  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5879  {
5880  yy_current_state = (int) yy_def[yy_current_state];
5881  if ( yy_current_state >= 2184 )
5882  yy_c = yy_meta[yy_c];
5883  }
5884  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5885  }
5886 
5887  return yy_current_state;
5888 }
5889 
5890 /* yy_try_NUL_trans - try to make a transition on the NUL character
5891  *
5892  * synopsis
5893  * next_state = yy_try_NUL_trans( current_state );
5894  */
5895 /* %if-c-only */
5896  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
5897 /* %endif */
5898 /* %if-c++-only */
5899 /* %endif */
5900 {
5901  int yy_is_jam;
5902  /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
5903  char *yy_cp = (yy_c_buf_p);
5904 
5905  YY_CHAR yy_c = 1;
5906  if ( yy_accept[yy_current_state] )
5907  {
5908  (yy_last_accepting_state) = yy_current_state;
5909  (yy_last_accepting_cpos) = yy_cp;
5910  }
5911  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5912  {
5913  yy_current_state = (int) yy_def[yy_current_state];
5914  if ( yy_current_state >= 2184 )
5915  yy_c = yy_meta[yy_c];
5916  }
5917  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5918  yy_is_jam = (yy_current_state == 2183);
5919 
5920  return yy_is_jam ? 0 : yy_current_state;
5921 }
5922 
5923 #ifndef YY_NO_UNPUT
5924 /* %if-c-only */
5925 
5926 /* %endif */
5927 #endif
5928 
5929 /* %if-c-only */
5930 #ifndef YY_NO_INPUT
5931 #ifdef __cplusplus
5932  static int yyinput (void)
5933 #else
5934  static int input (void)
5935 #endif
5936 
5937 /* %endif */
5938 /* %if-c++-only */
5939 /* %endif */
5940 {
5941  int c;
5942 
5943  *(yy_c_buf_p) = (yy_hold_char);
5944 
5945  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
5946  {
5947  /* yy_c_buf_p now points to the character we want to return.
5948  * If this occurs *before* the EOB characters, then it's a
5949  * valid NUL; if not, then we've hit the end of the buffer.
5950  */
5951  if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5952  /* This was really a NUL. */
5953  *(yy_c_buf_p) = '\0';
5954 
5955  else
5956  { /* need more input */
5957  int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
5958  ++(yy_c_buf_p);
5959 
5960  switch ( yy_get_next_buffer( ) )
5961  {
5962  case EOB_ACT_LAST_MATCH:
5963  /* This happens because yy_g_n_b()
5964  * sees that we've accumulated a
5965  * token and flags that we need to
5966  * try matching the token before
5967  * proceeding. But for input(),
5968  * there's no matching to consider.
5969  * So convert the EOB_ACT_LAST_MATCH
5970  * to EOB_ACT_END_OF_FILE.
5971  */
5972 
5973  /* Reset buffer status. */
5974  yyrestart( yyin );
5975 
5976  /*FALLTHROUGH*/
5977 
5978  case EOB_ACT_END_OF_FILE:
5979  {
5980  if ( yywrap( ) )
5981  return 0;
5982 
5983  if ( ! (yy_did_buffer_switch_on_eof) )
5984  YY_NEW_FILE;
5985 #ifdef __cplusplus
5986  return yyinput();
5987 #else
5988  return input();
5989 #endif
5990  }
5991 
5992  case EOB_ACT_CONTINUE_SCAN:
5993  (yy_c_buf_p) = (yytext_ptr) + offset;
5994  break;
5995  }
5996  }
5997  }
5998 
5999  c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
6000  *(yy_c_buf_p) = '\0'; /* preserve yytext */
6001  (yy_hold_char) = *++(yy_c_buf_p);
6002 
6003 /* %% [19.0] update BOL and yylineno */
6004 
6005  return c;
6006 }
6007 /* %if-c-only */
6008 #endif /* ifndef YY_NO_INPUT */
6009 /* %endif */
6010 
6016 /* %if-c-only */
6017  void yyrestart (FILE * input_file )
6018 /* %endif */
6019 /* %if-c++-only */
6020 /* %endif */
6021 {
6022 
6023  if ( ! YY_CURRENT_BUFFER ){
6027  }
6028 
6029  yy_init_buffer( YY_CURRENT_BUFFER, input_file );
6031 }
6032 
6033 /* %if-c++-only */
6034 /* %endif */
6035 
6040 /* %if-c-only */
6041  void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
6042 /* %endif */
6043 /* %if-c++-only */
6044 /* %endif */
6045 {
6046 
6047  /* TODO. We should be able to replace this entire function body
6048  * with
6049  * yypop_buffer_state();
6050  * yypush_buffer_state(new_buffer);
6051  */
6053  if ( YY_CURRENT_BUFFER == new_buffer )
6054  return;
6055 
6056  if ( YY_CURRENT_BUFFER )
6057  {
6058  /* Flush out information for old buffer. */
6059  *(yy_c_buf_p) = (yy_hold_char);
6060  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6061  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6062  }
6063 
6064  YY_CURRENT_BUFFER_LVALUE = new_buffer;
6066 
6067  /* We don't actually know whether we did this switch during
6068  * EOF (yywrap()) processing, but the only time this flag
6069  * is looked at is after yywrap() is called, so it's safe
6070  * to go ahead and always set it.
6071  */
6072  (yy_did_buffer_switch_on_eof) = 1;
6073 }
6074 
6075 /* %if-c-only */
6076 static void yy_load_buffer_state (void)
6077 /* %endif */
6078 /* %if-c++-only */
6079 /* %endif */
6080 {
6081  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6082  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6083 /* %if-c-only */
6084  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6085 /* %endif */
6086 /* %if-c++-only */
6087 /* %endif */
6088  (yy_hold_char) = *(yy_c_buf_p);
6089 }
6090 
6097 /* %if-c-only */
6098  YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
6099 /* %endif */
6100 /* %if-c++-only */
6101 /* %endif */
6102 {
6103  YY_BUFFER_STATE b;
6104 
6105  b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6106  if ( ! b )
6107  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6108 
6109  b->yy_buf_size = size;
6110 
6111  /* yy_ch_buf has to be 2 characters longer than the size given because
6112  * we need to put in 2 end-of-buffer characters.
6113  */
6114  b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
6115  if ( ! b->yy_ch_buf )
6116  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6117 
6118  b->yy_is_our_buffer = 1;
6119 
6120  yy_init_buffer( b, file );
6121 
6122  return b;
6123 }
6124 
6125 /* %if-c++-only */
6126 /* %endif */
6127 
6132 /* %if-c-only */
6133  void yy_delete_buffer (YY_BUFFER_STATE b )
6134 /* %endif */
6135 /* %if-c++-only */
6136 /* %endif */
6137 {
6138 
6139  if ( ! b )
6140  return;
6141 
6142  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6144 
6145  if ( b->yy_is_our_buffer )
6146  yyfree( (void *) b->yy_ch_buf );
6147 
6148  yyfree( (void *) b );
6149 }
6150 
6151 /* Initializes or reinitializes a buffer.
6152  * This function is sometimes called more than once on the same buffer,
6153  * such as during a yyrestart() or at EOF.
6154  */
6155 /* %if-c-only */
6156  static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
6157 /* %endif */
6158 /* %if-c++-only */
6159 /* %endif */
6160 
6161 {
6162  int oerrno = errno;
6163 
6164  yy_flush_buffer( b );
6165 
6166 /* %if-c-only */
6167  b->yy_input_file = file;
6168 /* %endif */
6169 /* %if-c++-only */
6170 /* %endif */
6171  b->yy_fill_buffer = 1;
6172 
6173  /* If b is the current buffer, then yy_init_buffer was _probably_
6174  * called from yyrestart() or through yy_get_next_buffer.
6175  * In that case, we don't want to reset the lineno or column.
6176  */
6177  if (b != YY_CURRENT_BUFFER){
6178  b->yy_bs_lineno = 1;
6179  b->yy_bs_column = 0;
6180  }
6181 
6182 /* %if-c-only */
6183 
6184  b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
6185 
6186 /* %endif */
6187 /* %if-c++-only */
6188 /* %endif */
6189  errno = oerrno;
6190 }
6191 
6196 /* %if-c-only */
6197  void yy_flush_buffer (YY_BUFFER_STATE b )
6198 /* %endif */
6199 /* %if-c++-only */
6200 /* %endif */
6201 {
6202  if ( ! b )
6203  return;
6204 
6205  b->yy_n_chars = 0;
6206 
6207  /* We always need two end-of-buffer characters. The first causes
6208  * a transition to the end-of-buffer state. The second causes
6209  * a jam in that state.
6210  */
6213 
6214  b->yy_buf_pos = &b->yy_ch_buf[0];
6215 
6216  b->yy_at_bol = 1;
6218 
6219  if ( b == YY_CURRENT_BUFFER )
6221 }
6222 
6223 /* %if-c-or-c++ */
6230 /* %if-c-only */
6231 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
6232 /* %endif */
6233 /* %if-c++-only */
6234 /* %endif */
6235 {
6236  if (new_buffer == NULL)
6237  return;
6238 
6240 
6241  /* This block is copied from yy_switch_to_buffer. */
6242  if ( YY_CURRENT_BUFFER )
6243  {
6244  /* Flush out information for old buffer. */
6245  *(yy_c_buf_p) = (yy_hold_char);
6246  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6247  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (