Kea  1.9.9-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 219
695 #define YY_END_OF_BUFFER 220
696 /* This struct is not used in this scanner,
697  but its presence is necessary. */
698 struct yy_trans_info
699  {
702  };
703 static const flex_int16_t yy_accept[2025] =
704  { 0,
705  212, 212, 0, 0, 0, 0, 0, 0, 0, 0,
706  220, 218, 10, 11, 218, 1, 212, 209, 212, 212,
707  218, 211, 210, 218, 218, 218, 218, 218, 205, 206,
708  218, 218, 218, 207, 208, 5, 5, 5, 218, 218,
709  218, 10, 11, 0, 0, 200, 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, 1, 212, 212,
713  0, 211, 212, 3, 2, 6, 0, 212, 0, 0,
714  0, 0, 0, 0, 4, 0, 0, 9, 0, 201,
715 
716  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
717  0, 0, 0, 203, 0, 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, 2, 0, 0, 0, 0, 0, 0, 0,
725  8, 0, 0, 171, 0, 0, 172, 0, 0, 0,
726 
727  0, 0, 0, 0, 202, 204, 0, 0, 0, 0,
728  0, 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, 118, 0, 0, 0, 0, 0, 0, 0, 0,
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, 217,
739  215, 0, 214, 213, 0, 0, 0, 0, 0, 170,
740  0, 28, 0, 27, 0, 0, 125, 0, 0, 0,
741  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
742  55, 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, 122, 0, 0, 0, 0,
747  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 216, 213, 0,
753  0, 0, 0, 29, 0, 31, 0, 0, 0, 0,
754  0, 0, 0, 0, 129, 0, 0, 0, 0, 0,
755  0, 0, 0, 103, 0, 0, 0, 0, 0, 0,
756  0, 0, 155, 0, 0, 0, 0, 0, 0, 0,
757  0, 0, 0, 0, 58, 0, 0, 0, 0, 0,
758  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
759 
760  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
761  0, 0, 102, 0, 0, 0, 0, 0, 0, 0,
762  0, 0, 0, 0, 0, 0, 0, 0, 112, 0,
763  59, 0, 0, 0, 0, 0, 0, 0, 0, 0,
764  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
765  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
766  0, 0, 0, 0, 0, 150, 0, 175, 51, 0,
767  56, 0, 0, 0, 0, 37, 34, 33, 0, 0,
768  0, 163, 0, 0, 0, 0, 0, 0, 0, 0,
769  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
770 
771  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
772  0, 0, 0, 0, 141, 0, 0, 0, 0, 0,
773  0, 0, 0, 174, 0, 0, 0, 0, 0, 0,
774  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
775  0, 0, 0, 0, 0, 0, 0, 53, 0, 0,
776  32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
777  0, 0, 0, 105, 0, 0, 0, 0, 0, 0,
778  0, 0, 0, 0, 0, 0, 164, 0, 0, 0,
779  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
780  0, 159, 0, 0, 0, 0, 0, 0, 0, 0,
781 
782  0, 0, 0, 0, 7, 35, 0, 0, 0, 0,
783  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
784  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
785  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
786  0, 0, 0, 0, 0, 124, 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  143, 0, 0, 0, 0, 0, 0, 0, 0, 0,
790  0, 140, 0, 0, 0, 0, 0, 0, 0, 0,
791  0, 0, 107, 0, 0, 0, 0, 0, 0, 0,
792 
793  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
794  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
795  0, 115, 0, 0, 0, 0, 0, 0, 0, 0,
796  0, 0, 0, 0, 0, 0, 0, 0, 0, 114,
797  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
798  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
800  0, 158, 0, 0, 0, 0, 0, 0, 0, 0,
801  0, 0, 0, 0, 0, 0, 0, 0, 0, 168,
802  138, 0, 0, 0, 0, 0, 0, 0, 142, 52,
803 
804  0, 0, 0, 0, 0, 67, 0, 0, 0, 0,
805  0, 0, 0, 0, 144, 0, 60, 0, 0, 0,
806  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
807  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
808  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
809  0, 97, 0, 0, 0, 0, 0, 0, 0, 0,
810  0, 0, 0, 0, 0, 0, 195, 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, 121, 0, 0, 0, 0, 0, 0, 0, 0,
814 
815  0, 0, 0, 0, 157, 0, 0, 0, 0, 0,
816  0, 0, 63, 0, 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, 57, 106, 0,
819  0, 0, 154, 0, 0, 0, 0, 50, 0, 0,
820  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
821  0, 0, 0, 0, 0, 0, 0, 146, 0, 0,
822  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
823  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
824  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
825 
826  0, 0, 0, 0, 0, 0, 0, 0, 0, 196,
827  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828  0, 0, 0, 0, 0, 0, 0, 0, 116, 0,
829  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
830  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
831  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
832  0, 0, 0, 0, 41, 0, 0, 0, 0, 0,
833  0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
834  169, 14, 0, 0, 0, 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, 160, 0, 0, 0, 0, 0, 0,
839  0, 0, 145, 0, 0, 0, 0, 0, 0, 0,
840  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
841  0, 156, 173, 0, 40, 0, 165, 0, 0, 0,
842  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
843  0, 0, 0, 20, 0, 0, 0, 100, 0, 0,
844  0, 0, 0, 167, 54, 0, 108, 0, 194, 0,
845  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
846  0, 0, 0, 0, 0, 86, 0, 0, 0, 0,
847 
848  0, 0, 134, 135, 0, 0, 0, 0, 0, 0,
849  0, 0, 104, 0, 0, 0, 0, 0, 0, 0,
850  0, 0, 64, 0, 0, 0, 0, 0, 0, 0,
851  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
852  162, 0, 0, 0, 0, 0, 0, 0, 0, 0,
853  0, 0, 0, 0, 0, 0, 0, 0, 0, 130,
854  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
855  0, 101, 123, 0, 0, 0, 0, 0, 0, 0,
856  0, 0, 0, 0, 0, 83, 0, 0, 0, 0,
857  0, 0, 17, 0, 0, 15, 0, 191, 190, 0,
858 
859  0, 0, 0, 73, 0, 0, 0, 0, 0, 30,
860  0, 0, 0, 149, 0, 0, 0, 0, 0, 0,
861  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
862  0, 0, 0, 184, 0, 193, 0, 0, 0, 0,
863  0, 0, 0, 0, 0, 0, 0, 117, 0, 153,
864  0, 43, 0, 0, 61, 0, 0, 0, 0, 0,
865  0, 0, 0, 0, 0, 19, 0, 0, 0, 0,
866  0, 0, 0, 119, 84, 0, 0, 161, 0, 0,
867  0, 0, 0, 152, 0, 0, 0, 0, 0, 0,
868  0, 0, 0, 0, 0, 0, 113, 0, 0, 137,
869 
870  0, 0, 0, 198, 0, 0, 0, 0, 0, 0,
871  0, 0, 0, 0, 0, 0, 0, 0, 0, 111,
872  0, 0, 0, 176, 0, 0, 0, 0, 0, 0,
873  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
874  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
875  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
876  0, 0, 0, 0, 42, 0, 0, 0, 0, 0,
877  0, 0, 72, 0, 0, 0, 0, 0, 0, 147,
878  47, 0, 0, 0, 74, 189, 38, 0, 0, 0,
879  0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
880 
881  0, 0, 0, 0, 0, 0, 0, 0, 45, 0,
882  0, 0, 44, 0, 0, 18, 0, 0, 0, 76,
883  0, 0, 0, 0, 0, 139, 0, 0, 0, 0,
884  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
885  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
886  80, 0, 136, 0, 0, 0, 62, 0, 0, 0,
887  0, 0, 0, 0, 0, 0, 0, 0, 109, 0,
888  0, 0, 0, 0, 166, 0, 0, 0, 46, 0,
889  0, 0, 0, 0, 0, 0, 0, 0, 0, 185,
890  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891 
892  71, 0, 0, 0, 0, 0, 0, 0, 0, 99,
893  0, 68, 0, 0, 0, 36, 0, 48, 0, 0,
894  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
895  0, 0, 0, 24, 0, 0, 0, 0, 0, 0,
896  0, 0, 0, 182, 0, 0, 0, 0, 151, 0,
897  0, 0, 0, 0, 0, 0, 0, 0, 0, 120,
898  0, 0, 0, 0, 0, 69, 0, 0, 187, 0,
899  0, 0, 0, 0, 0, 0, 0, 89, 0, 0,
900  0, 0, 0, 0, 0, 0, 0, 0, 0, 25,
901  39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
902 
903  0, 188, 0, 13, 0, 0, 0, 0, 0, 0,
904  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
905  0, 0, 0, 0, 0, 0, 0, 192, 0, 0,
906  0, 0, 0, 0, 0, 0, 0, 0, 181, 0,
907  82, 0, 81, 0, 21, 77, 0, 0, 0, 0,
908  0, 0, 0, 0, 65, 0, 0, 0, 0, 133,
909  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
910  110, 0, 0, 180, 0, 0, 0, 0, 0, 75,
911  0, 0, 0, 66, 0, 23, 0, 126, 0, 0,
912  0, 0, 98, 0, 0, 0, 0, 0, 0, 0,
913 
914  95, 0, 0, 0, 0, 0, 0, 0, 0, 0,
915  0, 0, 0, 0, 0, 0, 0, 0, 70, 0,
916  0, 0, 93, 0, 0, 0, 0, 0, 0, 0,
917  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
918  0, 0, 0, 0, 0, 0, 49, 0, 0, 94,
919  0, 0, 0, 186, 0, 0, 0, 0, 197, 199,
920  79, 78, 22, 0, 131, 148, 127, 0, 0, 0,
921  0, 90, 0, 0, 0, 0, 0, 0, 0, 178,
922  0, 0, 183, 0, 92, 0, 85, 0, 0, 0,
923  0, 128, 0, 0, 0, 177, 0, 0, 26, 0,
924 
925  0, 0, 0, 0, 0, 0, 0, 91, 0, 0,
926  0, 0, 0, 96, 0, 132, 88, 0, 0, 0,
927  0, 87, 179, 0
928  } ;
929 
930 static const YY_CHAR yy_ec[256] =
931  { 0,
932  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
933  1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
934  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
935  1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
936  5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
937  14, 17, 14, 18, 14, 14, 14, 19, 5, 20,
938  5, 21, 22, 5, 23, 24, 25, 26, 27, 28,
939  5, 29, 5, 30, 5, 31, 5, 32, 33, 34,
940  5, 35, 36, 37, 38, 39, 40, 5, 41, 5,
941  42, 43, 44, 5, 45, 5, 46, 47, 48, 49,
942 
943  50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
944  60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
945  70, 71, 72, 5, 73, 5, 5, 5, 5, 5,
946  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
947  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
948  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
949  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
950  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
951  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
952  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
953 
954  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
955  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
956  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
957  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
958  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
959  5, 5, 5, 5, 5
960  } ;
961 
962 static const YY_CHAR yy_meta[74] =
963  { 0,
964  1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
965  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
966  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
967  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
968  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
969  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
970  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
971  1, 1, 1
972  } ;
973 
974 static const flex_int16_t yy_base[2033] =
975  { 0,
976  0, 72, 21, 31, 43, 51, 54, 60, 91, 99,
977  2412, 2413, 34, 2408, 145, 0, 207, 2413, 214, 221,
978  13, 228, 2413, 2388, 118, 25, 2, 6, 2413, 2413,
979  73, 11, 17, 2413, 2413, 2413, 104, 2396, 2349, 0,
980  2386, 108, 2403, 24, 256, 2413, 67, 2352, 2372, 84,
981  75, 2372, 88, 226, 91, 89, 284, 196, 203, 279,
982  193, 224, 216, 60, 242, 2352, 286, 288, 314, 300,
983  319, 2335, 204, 324, 356, 329, 2354, 0, 380, 400,
984  420, 427, 406, 2413, 0, 2413, 385, 443, 238, 241,
985  310, 269, 299, 314, 2413, 2351, 2392, 2413, 405, 2413,
986 
987  419, 400, 2349, 2390, 326, 10, 262, 407, 224, 409,
988  352, 206, 2389, 0, 480, 412, 2331, 415, 2339, 406,
989  2335, 2324, 2325, 2330, 442, 2340, 2323, 2332, 327, 431,
990  226, 2326, 2324, 452, 2313, 2371, 399, 2316, 2369, 2309,
991  441, 2330, 2330, 2324, 339, 2317, 2315, 2316, 2308, 2313,
992  2307, 414, 2318, 456, 2303, 2302, 2316, 454, 2354, 2301,
993  451, 2313, 474, 2301, 490, 2302, 476, 2314, 2311, 2312,
994  293, 2310, 2345, 2344, 449, 2290, 2290, 2294, 2290, 2282,
995  2299, 2291, 0, 457, 491, 401, 489, 501, 496, 2290,
996  2413, 510, 2285, 2413, 498, 508, 2413, 2339, 514, 2338,
997 
998  515, 2337, 512, 2336, 2413, 2413, 558, 2335, 522, 2294,
999  2286, 2290, 2291, 2286, 2285, 219, 528, 2328, 2322, 2286,
1000  2267, 2264, 2272, 2278, 2266, 2280, 2276, 2277, 2277, 2272,
1001  2264, 2266, 2250, 2254, 2267, 2269, 2266, 2258, 2248, 2251,
1002  2265, 2413, 2251, 2259, 80, 2244, 2243, 2252, 2294, 2241,
1003  2251, 2291, 546, 2250, 2289, 2234, 2236, 2247, 2285, 528,
1004  2289, 2243, 2223, 2238, 539, 2228, 2234, 2243, 2224, 2222,
1005  2225, 2221, 2227, 2218, 2217, 2230, 2223, 2213, 2224, 2228,
1006  2227, 2221, 431, 2228, 2223, 2215, 2205, 2220, 2215, 2219,
1007  523, 2217, 2203, 2209, 2216, 2198, 410, 2203, 2200, 2199,
1008 
1009  555, 2194, 2208, 2207, 2206, 2209, 2191, 2199, 553, 2413,
1010  2413, 561, 2413, 2413, 2186, 519, 2233, 564, 2244, 2413,
1011  534, 2413, 2243, 2413, 2237, 601, 2413, 529, 2177, 2196,
1012  2179, 2196, 2184, 2236, 2191, 2194, 2185, 2188, 2183, 549,
1013  2413, 2185, 590, 2224, 2182, 2179, 2180, 619, 2184, 2224,
1014  2172, 2167, 2164, 2160, 2162, 2213, 2170, 2159, 2175, 2209,
1015  2155, 626, 2168, 2168, 2151, 2152, 2165, 2163, 2151, 2161,
1016  2160, 2155, 2162, 2157, 2142, 572, 2151, 2154, 2149, 577,
1017  2148, 2144, 2194, 570, 559, 2413, 2153, 2187, 2137, 2136,
1018  2129, 2131, 2143, 2134, 2123, 2140, 2129, 2134, 592, 2181,
1019 
1020  2134, 509, 2131, 2134, 2134, 2132, 2121, 2121, 2133, 582,
1021  2108, 2109, 2130, 592, 2112, 2109, 2123, 2126, 2121, 2107,
1022  2119, 2118, 2117, 2112, 2154, 2114, 2113, 2112, 2111, 564,
1023  2154, 2113, 2152, 2151, 2093, 647, 2106, 2413, 2413, 2105,
1024  604, 2147, 2146, 2413, 2145, 2413, 623, 677, 607, 2144,
1025  2138, 2091, 2093, 2081, 2413, 2086, 2079, 2091, 2094, 2077,
1026  2092, 2079, 2078, 2413, 2088, 610, 2079, 2076, 2088, 605,
1027  2073, 2075, 2413, 2081, 2066, 2068, 2079, 2077, 2072, 653,
1028  2079, 2067, 2060, 2111, 2413, 2058, 2074, 2108, 2112, 2068,
1029  2062, 2064, 2065, 2049, 2066, 2100, 2051, 2050, 2045, 2044,
1030 
1031  2046, 2042, 2038, 615, 2057, 2031, 2038, 2043, 2036, 2052,
1032  2086, 2090, 2413, 2035, 2031, 2087, 2038, 2037, 2031, 2038,
1033  2023, 2033, 2021, 2035, 2024, 2020, 2022, 2017, 2413, 2074,
1034  2413, 2016, 2015, 2008, 2025, 2064, 2063, 2008, 2013, 2022,
1035  2016, 2010, 2019, 655, 2056, 2018, 2001, 2001, 1996, 1992,
1036  1998, 2003, 649, 2005, 2009, 1992, 2050, 1991, 1991, 2042,
1037  1987, 1988, 1987, 1999, 1988, 2413, 1998, 2413, 2413, 1987,
1038  2413, 1997, 2033, 1993, 2036, 2413, 2413, 2413, 636, 643,
1039  675, 2413, 622, 1995, 1975, 2028, 1973, 1983, 2025, 1970,
1040  1969, 1968, 1975, 1968, 1976, 1979, 1961, 1961, 1976, 1975,
1041 
1042  646, 1974, 1973, 1957, 1972, 1954, 2001, 1968, 2006, 1950,
1043  1952, 1964, 1964, 1963, 2413, 1948, 1945, 2003, 1958, 1950,
1044  1956, 1947, 1955, 2413, 1940, 1951, 1955, 1937, 1949, 1950,
1045  640, 1932, 1931, 1925, 1930, 1927, 1942, 1941, 1942, 1921,
1046  1931, 1937, 1980, 1935, 1934, 1926, 1917, 2413, 1918, 1920,
1047  2413, 1922, 1927, 1966, 1965, 16, 1926, 1963, 1908, 1909,
1048  1912, 1913, 1904, 2413, 1918, 1904, 702, 1896, 1900, 1916,
1049  1913, 1905, 1950, 1902, 1909, 1947, 2413, 1893, 1891, 1905,
1050  1889, 1903, 1906, 1940, 1939, 1938, 1885, 1936, 1881, 1934,
1051  1933, 2413, 1878, 1892, 1891, 691, 1892, 1891, 1888, 1888,
1052 
1053  1925, 1885, 1874, 1876, 2413, 2413, 646, 671, 1868, 1885,
1054  1877, 1864, 1858, 1879, 1920, 1878, 666, 1913, 1873, 1911,
1055  1910, 1862, 1856, 1859, 1867, 1870, 1854, 1851, 92, 170,
1056  208, 333, 313, 543, 613, 666, 630, 671, 642, 662,
1057  669, 708, 714, 672, 680, 2413, 683, 678, 670, 685,
1058  690, 688, 685, 692, 691, 679, 693, 691, 699, 735,
1059  697, 742, 743, 687, 700, 687, 697, 744, 702, 752,
1060  2413, 753, 709, 707, 709, 705, 699, 759, 755, 718,
1061  707, 2413, 709, 720, 709, 722, 724, 768, 711, 770,
1062  713, 728, 2413, 722, 716, 727, 712, 723, 736, 715,
1063 
1064  721, 776, 740, 724, 724, 737, 781, 782, 783, 730,
1065  748, 743, 750, 749, 746, 731, 743, 744, 751, 741,
1066  739, 2413, 804, 762, 763, 753, 765, 755, 768, 759,
1067  765, 809, 785, 772, 754, 761, 775, 820, 770, 2413,
1068  774, 769, 784, 781, 767, 774, 773, 771, 790, 787,
1069  788, 776, 783, 784, 793, 797, 833, 795, 785, 798,
1070  784, 784, 790, 846, 787, 788, 794, 810, 793, 847,
1071  802, 2413, 812, 812, 805, 816, 814, 859, 801, 803,
1072  818, 819, 807, 805, 867, 824, 810, 816, 814, 2413,
1073  2413, 830, 829, 830, 835, 823, 833, 835, 2413, 2413,
1074 
1075  835, 837, 824, 842, 829, 2413, 827, 845, 832, 832,
1076  883, 830, 834, 892, 2413, 893, 2413, 838, 852, 852,
1077  897, 845, 844, 848, 842, 902, 855, 845, 846, 842,
1078  852, 856, 867, 851, 869, 864, 866, 859, 861, 862,
1079  858, 875, 865, 880, 921, 878, 883, 860, 883, 869,
1080  868, 2413, 875, 876, 891, 881, 879, 929, 876, 891,
1081  909, 917, 886, 935, 897, 937, 2413, 903, 893, 892,
1082  887, 888, 900, 907, 896, 897, 893, 911, 897, 898,
1083  908, 917, 953, 900, 918, 911, 906, 960, 966, 923,
1084  914, 2413, 918, 926, 928, 913, 929, 919, 931, 925,
1085 
1086  972, 938, 922, 923, 2413, 939, 942, 925, 927, 985,
1087  928, 947, 2413, 946, 949, 936, 931, 949, 937, 990,
1088  948, 944, 941, 994, 943, 996, 958, 944, 962, 961,
1089  947, 962, 954, 950, 968, 967, 954, 2413, 2413, 962,
1090  1009, 962, 2413, 970, 973, 966, 1019, 2413, 968, 974,
1091  1018, 969, 970, 982, 976, 980, 978, 976, 987, 1032,
1092  976, 981, 978, 1036, 1037, 981, 993, 2413, 981, 989,
1093  987, 1039, 981, 1002, 988, 989, 998, 1010, 997, 995,
1094  1009, 1010, 1026, 1031, 1013, 1018, 1001, 1001, 1003, 1014,
1095  1004, 1024, 1023, 1014, 1003, 1020, 1027, 1070, 1012, 1032,
1096 
1097  1025, 1029, 1033, 1016, 1033, 1024, 1079, 1026, 1030, 2413,
1098  1077, 1028, 1027, 1027, 1048, 1045, 1085, 1034, 1052, 1053,
1099  1039, 1047, 1056, 1036, 1051, 1058, 1100, 1101, 2413, 1054,
1100  1103, 1104, 1046, 1056, 1066, 1050, 1070, 1053, 1055, 1055,
1101  1062, 1071, 1059, 1066, 1061, 1068, 1080, 1121, 1068, 1067,
1102  1084, 1125, 1075, 1079, 1077, 1075, 1070, 1131, 1132, 1082,
1103  1134, 1130, 1136, 1089, 2413, 1094, 1087, 1078, 1097, 1091,
1104  1086, 1096, 1093, 1098, 1094, 1107, 2413, 1091, 1093, 1088,
1105  2413, 2413, 1094, 1154, 1093, 1112, 1113, 1115, 1154, 1107,
1106  1161, 1162, 1115, 1100, 1114, 1122, 1104, 1109, 1148, 1139,
1107 
1108  1171, 1126, 1126, 1130, 1117, 1117, 1120, 1137, 1132, 1136,
1109  1181, 1129, 1133, 2413, 1130, 1126, 1143, 1123, 1144, 1134,
1110  1185, 1138, 2413, 1152, 1150, 1153, 1137, 1149, 1155, 1141,
1111  1201, 1154, 1159, 1146, 1157, 1149, 1155, 1151, 1169, 1170,
1112  1171, 2413, 2413, 1169, 2413, 1171, 2413, 1156, 1167, 1158,
1113  1177, 1170, 1168, 1220, 1177, 1174, 1218, 1182, 1171, 1178,
1114  1183, 1180, 1186, 2413, 1179, 1171, 1232, 2413, 1233, 1180,
1115  1187, 1231, 1193, 2413, 2413, 1190, 2413, 1181, 2413, 1181,
1116  1184, 1198, 1203, 1186, 1197, 1246, 1203, 1204, 1205, 1245,
1117  1201, 1252, 1205, 1249, 1255, 2413, 1202, 1257, 1258, 1215,
1118 
1119  1216, 1218, 2413, 2413, 1201, 1263, 1259, 1223, 1207, 1219,
1120  1238, 1269, 2413, 1226, 1217, 1228, 1273, 1210, 1221, 1236,
1121  1272, 1224, 2413, 1220, 1236, 1224, 1238, 1239, 1236, 1280,
1122  1243, 1233, 1243, 1249, 1237, 1237, 1292, 1288, 1294, 1251,
1123  2413, 1254, 1253, 1255, 1248, 1257, 1258, 1256, 1246, 1249,
1124  1249, 1308, 1255, 1310, 1257, 1312, 1255, 1260, 1315, 2413,
1125  1273, 1253, 1268, 1261, 1264, 1277, 1280, 1279, 1277, 1326,
1126  1280, 2413, 2413, 1276, 1286, 1271, 1327, 1288, 1274, 1335,
1127  1336, 1280, 1290, 1339, 1296, 2413, 1288, 1288, 1290, 1292,
1128  1345, 1288, 2413, 1289, 1307, 2413, 1291, 2413, 2413, 1307,
1129 
1130  1290, 1310, 1311, 2413, 1298, 1306, 1358, 1307, 1339, 2413,
1131  1361, 1311, 1358, 2413, 1306, 1365, 1315, 1309, 1306, 1309,
1132  1312, 1312, 1308, 1330, 1369, 1322, 1334, 1337, 1325, 1328,
1133  1321, 1381, 1329, 2413, 1325, 2413, 1327, 1386, 1339, 1330,
1134  1345, 1345, 1348, 1348, 1345, 1389, 1351, 2413, 1343, 2413,
1135  1344, 2413, 1354, 1346, 2413, 1395, 1357, 1358, 1355, 1399,
1136  1347, 1362, 1402, 1364, 1356, 2413, 1353, 1353, 1359, 1358,
1137  1356, 1371, 1371, 2413, 2413, 1412, 1359, 2413, 1376, 1361,
1138  1361, 1363, 1369, 2413, 1378, 1425, 1368, 1374, 1366, 1380,
1139  1391, 1385, 1391, 1435, 1388, 1397, 2413, 1394, 1413, 2413,
1140 
1141  1397, 1382, 1442, 2413, 1443, 1400, 1405, 1387, 1447, 1448,
1142  1449, 1445, 1409, 1406, 1402, 1395, 1450, 1408, 1409, 2413,
1143  1399, 1412, 1460, 2413, 1398, 1458, 1421, 1417, 1462, 1410,
1144  1415, 1413, 1472, 1428, 1416, 1475, 1471, 1426, 1478, 1439,
1145  1428, 1422, 1482, 1424, 1433, 1426, 1440, 1443, 1488, 1430,
1146  1447, 1443, 1433, 1448, 1432, 1490, 1491, 1492, 1439, 1494,
1147  1457, 1450, 1449, 1443, 2413, 1460, 1452, 1458, 1449, 1448,
1148  1450, 1505, 2413, 1446, 1464, 1513, 1483, 1515, 1468, 2413,
1149  2413, 1459, 1470, 1519, 2413, 2413, 2413, 1465, 1470, 1468,
1150  1518, 1476, 1481, 1469, 1485, 1474, 1472, 1474, 2413, 1532,
1151 
1152  1478, 1529, 1472, 1477, 1538, 1486, 1496, 1497, 2413, 1543,
1153  1496, 1540, 2413, 1491, 1499, 2413, 1490, 1505, 1493, 2413,
1154  1503, 1504, 1505, 1554, 1512, 2413, 1551, 1517, 1493, 1511,
1155  1512, 1521, 1503, 1509, 1511, 1565, 1524, 1523, 1514, 1564,
1156  1511, 1518, 1513, 1514, 1574, 1524, 1576, 1529, 1534, 1527,
1157  2413, 1580, 2413, 1529, 1582, 1524, 2413, 1527, 1537, 1581,
1158  1529, 1544, 1531, 1546, 1532, 1539, 1539, 1550, 2413, 1544,
1159  1539, 1538, 1598, 1551, 2413, 1595, 1546, 1543, 2413, 1557,
1160  1544, 1565, 1561, 1563, 1608, 1561, 1558, 1566, 1560, 2413,
1161  1613, 1554, 1556, 1572, 1565, 1555, 1571, 1572, 1566, 1582,
1162 
1163  2413, 1572, 1624, 1584, 1568, 1622, 1586, 1581, 1630, 2413,
1164  1572, 2413, 1579, 1633, 1629, 2413, 1591, 2413, 1631, 1593,
1165  1594, 1579, 1580, 1588, 1642, 1590, 1639, 1640, 1595, 1607,
1166  1604, 1595, 1602, 2413, 1599, 1604, 1602, 1654, 1655, 1603,
1167  1600, 1614, 1601, 2413, 1616, 1617, 1618, 1619, 2413, 1609,
1168  1621, 1666, 1623, 1668, 1610, 1618, 1612, 1620, 1633, 2413,
1169  1634, 1615, 1622, 1613, 1625, 2413, 1674, 1635, 2413, 1639,
1170  1624, 1624, 1639, 1632, 1631, 1642, 1629, 2413, 1645, 1633,
1171  1636, 1692, 1650, 1641, 1653, 1644, 1653, 1655, 1659, 2413,
1172  2413, 1652, 1643, 1643, 1703, 1646, 1705, 1647, 1707, 1665,
1173 
1174  1709, 2413, 1710, 2413, 1706, 1668, 1665, 1670, 1657, 1665,
1175  1676, 1673, 1719, 1660, 1663, 1668, 1659, 1724, 1677, 1678,
1176  1668, 1685, 1684, 1725, 1669, 1688, 1689, 2413, 1686, 1735,
1177  1692, 1693, 1738, 1695, 1698, 1685, 1694, 1695, 2413, 1744,
1178  2413, 1697, 2413, 1706, 2413, 2413, 1688, 1748, 1695, 1750,
1179  1693, 1752, 1700, 1749, 2413, 1711, 1716, 1757, 1716, 2413,
1180  1707, 1697, 1756, 1722, 1715, 1711, 1765, 1708, 1710, 1715,
1181  2413, 1711, 1713, 2413, 1718, 1728, 1713, 1721, 1723, 2413,
1182  1724, 1718, 1730, 2413, 1726, 2413, 1736, 2413, 1737, 1727,
1183  1783, 1732, 2413, 1734, 1742, 1787, 1728, 1730, 1727, 1751,
1184 
1185  2413, 1738, 1745, 1748, 1737, 1791, 1738, 1746, 1755, 1754,
1186  1757, 1758, 1759, 1752, 1747, 1748, 1748, 1754, 2413, 1754,
1187  1766, 1811, 2413, 1757, 1769, 1814, 1763, 1765, 1763, 1818,
1188  1771, 1758, 1773, 1778, 1823, 1824, 1825, 1826, 1827, 1784,
1189  1829, 1830, 1831, 1778, 1782, 1776, 2413, 1792, 1836, 2413,
1190  1793, 1778, 1796, 2413, 1787, 1801, 1797, 1790, 2413, 2413,
1191  2413, 2413, 2413, 1844, 2413, 2413, 2413, 1794, 1802, 1847,
1192  1808, 2413, 1849, 1791, 1851, 1806, 1805, 1806, 1796, 2413,
1193  1856, 1852, 2413, 1799, 2413, 1811, 2413, 1860, 1802, 1818,
1194  1863, 2413, 1824, 1821, 1813, 2413, 1863, 1812, 2413, 1824,
1195 
1196  1817, 1872, 1820, 1815, 1817, 1832, 1817, 2413, 1878, 1831,
1197  1880, 1881, 1829, 2413, 1831, 2413, 2413, 1825, 1841, 1886,
1198  1887, 2413, 2413, 2413, 1893, 1896, 1899, 1900, 1902, 1905,
1199  1908, 1911
1200  } ;
1201 
1202 static const flex_int16_t yy_def[2033] =
1203  { 0,
1204  2025, 2025, 2026, 2026, 2025, 2025, 2025, 2025, 2025, 2025,
1205  2024, 2024, 2024, 2024, 2024, 2027, 2024, 2024, 2024, 2024,
1206  2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1207  2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2028,
1208  2024, 2024, 2024, 2029, 15, 2024, 45, 45, 45, 45,
1209  45, 45, 45, 45, 45, 45, 2030, 45, 45, 45,
1210  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1211  45, 45, 45, 45, 45, 45, 45, 2027, 2024, 2024,
1212  2024, 2024, 2024, 2024, 2031, 2024, 2024, 2024, 2024, 2024,
1213  2024, 2024, 2024, 2024, 2024, 2024, 2028, 2024, 2029, 2024,
1214 
1215  2024, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1216  45, 45, 2032, 45, 2030, 45, 45, 45, 45, 45,
1217  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1218  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1219  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1220  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1221  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1222  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1223  45, 45, 2031, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1224  2024, 45, 45, 2024, 45, 45, 2024, 45, 45, 45,
1225 
1226  45, 45, 45, 2032, 2024, 2024, 115, 45, 45, 45,
1227  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1228  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1229  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1230  45, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1231  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1232  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1233  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1234  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1235  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1236 
1237  45, 45, 45, 45, 45, 45, 45, 45, 2024, 2024,
1238  2024, 2024, 2024, 2024, 2024, 45, 45, 45, 45, 2024,
1239  45, 2024, 45, 2024, 45, 115, 2024, 45, 45, 45,
1240  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1241  2024, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1242  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1243  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1244  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1245  45, 45, 45, 45, 45, 2024, 45, 45, 45, 45,
1246  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1247 
1248  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1249  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1250  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1251  45, 45, 45, 45, 45, 45, 45, 2024, 2024, 2024,
1252  45, 45, 45, 2024, 45, 2024, 45, 115, 45, 45,
1253  45, 45, 45, 45, 2024, 45, 45, 45, 45, 45,
1254  45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1255  45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1256  45, 45, 45, 45, 2024, 45, 45, 45, 45, 45,
1257  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1258 
1259  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1260  45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1261  45, 45, 45, 45, 45, 45, 45, 45, 2024, 45,
1262  2024, 45, 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, 2024, 45, 2024, 2024, 45,
1266  2024, 45, 45, 2024, 45, 2024, 2024, 2024, 45, 45,
1267  45, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1268  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1269 
1270  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1271  45, 45, 45, 45, 2024, 45, 45, 45, 45, 45,
1272  45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1273  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1274  45, 45, 45, 45, 45, 45, 45, 2024, 45, 45,
1275  2024, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1276  45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1277  45, 45, 45, 45, 45, 45, 2024, 45, 45, 45,
1278  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1279  45, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1280 
1281  45, 45, 45, 45, 2024, 2024, 45, 45, 45, 45,
1282  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
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, 2024, 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  2024, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1289  45, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1290  45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1291 
1292  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1293  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1294  45, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1295  45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1296  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1297  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1298  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1299  45, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1300  45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1301  2024, 45, 45, 45, 45, 45, 45, 45, 2024, 2024,
1302 
1303  45, 45, 45, 45, 45, 2024, 45, 45, 45, 45,
1304  45, 45, 45, 45, 2024, 45, 2024, 45, 45, 45,
1305  45, 45, 45, 45, 45, 45, 45, 45, 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, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1309  45, 45, 45, 45, 45, 45, 2024, 45, 45, 45,
1310  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1311  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1312  45, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1313 
1314  45, 45, 45, 45, 2024, 45, 45, 45, 45, 45,
1315  45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1316  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1317  45, 45, 45, 45, 45, 45, 45, 2024, 2024, 45,
1318  45, 45, 2024, 45, 45, 45, 45, 2024, 45, 45,
1319  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1320  45, 45, 45, 45, 45, 45, 45, 2024, 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 
1325  45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1326  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1327  45, 45, 45, 45, 45, 45, 45, 45, 2024, 45,
1328  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1329  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1330  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1331  45, 45, 45, 45, 2024, 45, 45, 45, 45, 45,
1332  45, 45, 45, 45, 45, 45, 2024, 45, 45, 45,
1333  2024, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1334  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1335 
1336  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1337  45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1338  45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1339  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1340  45, 2024, 2024, 45, 2024, 45, 2024, 45, 45, 45,
1341  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1342  45, 45, 45, 2024, 45, 45, 45, 2024, 45, 45,
1343  45, 45, 45, 2024, 2024, 45, 2024, 45, 2024, 45,
1344  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1345  45, 45, 45, 45, 45, 2024, 45, 45, 45, 45,
1346 
1347  45, 45, 2024, 2024, 45, 45, 45, 45, 45, 45,
1348  45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1349  45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1350  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1351  2024, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1352  45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1353  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1354  45, 2024, 2024, 45, 45, 45, 45, 45, 45, 45,
1355  45, 45, 45, 45, 45, 2024, 45, 45, 45, 45,
1356  45, 45, 2024, 45, 45, 2024, 45, 2024, 2024, 45,
1357 
1358  45, 45, 45, 2024, 45, 45, 45, 45, 45, 2024,
1359  45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1360  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1361  45, 45, 45, 2024, 45, 2024, 45, 45, 45, 45,
1362  45, 45, 45, 45, 45, 45, 45, 2024, 45, 2024,
1363  45, 2024, 45, 45, 2024, 45, 45, 45, 45, 45,
1364  45, 45, 45, 45, 45, 2024, 45, 45, 45, 45,
1365  45, 45, 45, 2024, 2024, 45, 45, 2024, 45, 45,
1366  45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1367  45, 45, 45, 45, 45, 45, 2024, 45, 45, 2024,
1368 
1369  45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1370  45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1371  45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1372  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1373  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1374  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1375  45, 45, 45, 45, 2024, 45, 45, 45, 45, 45,
1376  45, 45, 2024, 45, 45, 45, 45, 45, 45, 2024,
1377  2024, 45, 45, 45, 2024, 2024, 2024, 45, 45, 45,
1378  45, 45, 45, 45, 45, 45, 45, 45, 2024, 45,
1379 
1380  45, 45, 45, 45, 45, 45, 45, 45, 2024, 45,
1381  45, 45, 2024, 45, 45, 2024, 45, 45, 45, 2024,
1382  45, 45, 45, 45, 45, 2024, 45, 45, 45, 45,
1383  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1384  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1385  2024, 45, 2024, 45, 45, 45, 2024, 45, 45, 45,
1386  45, 45, 45, 45, 45, 45, 45, 45, 2024, 45,
1387  45, 45, 45, 45, 2024, 45, 45, 45, 2024, 45,
1388  45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1389  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1390 
1391  2024, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1392  45, 2024, 45, 45, 45, 2024, 45, 2024, 45, 45,
1393  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1394  45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1395  45, 45, 45, 2024, 45, 45, 45, 45, 2024, 45,
1396  45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1397  45, 45, 45, 45, 45, 2024, 45, 45, 2024, 45,
1398  45, 45, 45, 45, 45, 45, 45, 2024, 45, 45,
1399  45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1400  2024, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1401 
1402  45, 2024, 45, 2024, 45, 45, 45, 45, 45, 45,
1403  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1404  45, 45, 45, 45, 45, 45, 45, 2024, 45, 45,
1405  45, 45, 45, 45, 45, 45, 45, 45, 2024, 45,
1406  2024, 45, 2024, 45, 2024, 2024, 45, 45, 45, 45,
1407  45, 45, 45, 45, 2024, 45, 45, 45, 45, 2024,
1408  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1409  2024, 45, 45, 2024, 45, 45, 45, 45, 45, 2024,
1410  45, 45, 45, 2024, 45, 2024, 45, 2024, 45, 45,
1411  45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1412 
1413  2024, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1414  45, 45, 45, 45, 45, 45, 45, 45, 2024, 45,
1415  45, 45, 2024, 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, 2024, 45, 45, 2024,
1418  45, 45, 45, 2024, 45, 45, 45, 45, 2024, 2024,
1419  2024, 2024, 2024, 45, 2024, 2024, 2024, 45, 45, 45,
1420  45, 2024, 45, 45, 45, 45, 45, 45, 45, 2024,
1421  45, 45, 2024, 45, 2024, 45, 2024, 45, 45, 45,
1422  45, 2024, 45, 45, 45, 2024, 45, 45, 2024, 45,
1423 
1424  45, 45, 45, 45, 45, 45, 45, 2024, 45, 45,
1425  45, 45, 45, 2024, 45, 2024, 2024, 45, 45, 45,
1426  45, 2024, 2024, 0, 2024, 2024, 2024, 2024, 2024, 2024,
1427  2024, 2024
1428  } ;
1429 
1430 static const flex_int16_t yy_nxt[2487] =
1431  { 0,
1432  2024, 13, 14, 13, 2024, 15, 16, 2024, 17, 18,
1433  19, 20, 21, 22, 22, 22, 22, 22, 23, 24,
1434  84, 782, 37, 14, 37, 85, 25, 26, 38, 100,
1435  2024, 27, 37, 14, 37, 42, 28, 42, 38, 90,
1436  91, 29, 196, 30, 13, 14, 13, 89, 90, 25,
1437  31, 91, 13, 14, 13, 13, 14, 13, 32, 40,
1438  783, 13, 14, 13, 33, 40, 101, 90, 91, 196,
1439  89, 34, 35, 13, 14, 13, 93, 15, 16, 94,
1440  17, 18, 19, 20, 21, 22, 22, 22, 22, 22,
1441  23, 24, 13, 14, 13, 89, 39, 102, 25, 26,
1442 
1443  13, 14, 13, 27, 39, 42, 105, 42, 28, 42,
1444  106, 42, 41, 29, 108, 30, 111, 112, 92, 134,
1445  41, 25, 31, 102, 135, 367, 87, 136, 87, 105,
1446  32, 88, 88, 88, 88, 88, 33, 108, 106, 111,
1447  856, 112, 368, 34, 35, 44, 44, 44, 45, 45,
1448  46, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1449  45, 45, 45, 45, 45, 45, 45, 47, 45, 45,
1450  48, 49, 50, 45, 51, 52, 53, 45, 45, 45,
1451  45, 54, 55, 45, 56, 45, 45, 57, 45, 45,
1452  58, 45, 59, 60, 61, 62, 63, 64, 65, 51,
1453 
1454  66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1455  76, 77, 56, 45, 45, 45, 45, 45, 79, 857,
1456  80, 80, 80, 80, 80, 79, 102, 82, 82, 82,
1457  82, 82, 203, 81, 83, 83, 83, 83, 83, 79,
1458  81, 82, 82, 82, 82, 82, 105, 81, 118, 164,
1459  109, 129, 116, 165, 81, 203, 81, 200, 117, 119,
1460  110, 130, 120, 81, 121, 132, 122, 197, 184, 105,
1461  81, 185, 133, 109, 858, 233, 335, 81, 45, 336,
1462  131, 45, 45, 45, 200, 45, 45, 45, 110, 114,
1463  137, 234, 45, 45, 184, 45, 45, 185, 198, 184,
1464 
1465  138, 45, 139, 45, 45, 45, 45, 45, 45, 45,
1466  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1467  45, 45, 45, 45, 123, 187, 45, 124, 125, 185,
1468  45, 126, 127, 145, 45, 141, 142, 146, 296, 143,
1469  108, 147, 45, 859, 128, 144, 45, 186, 45, 115,
1470  153, 186, 297, 148, 111, 188, 195, 149, 154, 150,
1471  155, 151, 860, 152, 158, 156, 157, 159, 160, 166,
1472  173, 174, 228, 167, 229, 186, 168, 111, 161, 189,
1473  109, 162, 195, 169, 170, 202, 252, 180, 171, 172,
1474  110, 230, 181, 83, 83, 83, 83, 83, 88, 88,
1475 
1476  88, 88, 88, 175, 242, 176, 81, 253, 177, 178,
1477  100, 79, 202, 80, 80, 80, 80, 80, 110, 83,
1478  83, 83, 83, 83, 99, 179, 81, 311, 87, 81,
1479  87, 99, 81, 88, 88, 88, 88, 88, 79, 192,
1480  82, 82, 82, 82, 82, 199, 201, 101, 243, 81,
1481  311, 192, 199, 81, 215, 81, 88, 88, 88, 88,
1482  88, 99, 211, 216, 217, 99, 262, 192, 208, 99,
1483  425, 212, 426, 199, 201, 213, 81, 99, 231, 209,
1484  260, 99, 200, 99, 99, 206, 247, 409, 222, 223,
1485  410, 232, 309, 207, 207, 207, 207, 207, 224, 248,
1486 
1487  280, 267, 207, 207, 207, 207, 207, 207, 237, 301,
1488  273, 238, 263, 274, 275, 239, 268, 269, 270, 277,
1489  309, 310, 311, 278, 309, 207, 207, 207, 207, 207,
1490  207, 310, 316, 318, 290, 281, 282, 283, 291, 319,
1491  321, 323, 292, 325, 316, 314, 284, 310, 285, 390,
1492  286, 287, 312, 288, 321, 316, 376, 313, 533, 441,
1493  322, 318, 534, 321, 323, 430, 319, 328, 445, 441,
1494  325, 326, 326, 326, 326, 326, 418, 385, 337, 438,
1495  326, 326, 326, 326, 326, 326, 338, 438, 441, 419,
1496  443, 339, 340, 445, 461, 464, 445, 529, 449, 391,
1497 
1498  465, 861, 438, 326, 326, 326, 326, 326, 326, 377,
1499  439, 462, 378, 443, 448, 448, 448, 448, 448, 564,
1500  514, 516, 565, 448, 448, 448, 448, 448, 448, 470,
1501  515, 485, 502, 503, 504, 471, 486, 509, 505, 575,
1502  542, 547, 575, 510, 543, 548, 448, 448, 448, 448,
1503  448, 448, 571, 605, 579, 530, 580, 572, 615, 687,
1504  677, 596, 862, 616, 639, 678, 606, 575, 707, 597,
1505  581, 598, 599, 600, 640, 601, 863, 708, 864, 710,
1506  706, 579, 832, 580, 487, 709, 711, 758, 759, 488,
1507  45, 45, 45, 45, 45, 707, 822, 833, 868, 45,
1508 
1509  45, 45, 45, 45, 45, 708, 729, 793, 823, 730,
1510  832, 688, 794, 842, 843, 869, 844, 870, 871, 872,
1511  833, 873, 45, 45, 45, 45, 45, 45, 865, 874,
1512  875, 876, 866, 877, 878, 879, 867, 880, 881, 882,
1513  883, 884, 885, 886, 887, 888, 889, 890, 891, 892,
1514  893, 795, 894, 895, 897, 898, 896, 899, 900, 901,
1515  902, 903, 904, 905, 906, 907, 908, 909, 910, 911,
1516  912, 913, 914, 915, 916, 917, 918, 919, 920, 921,
1517  922, 923, 924, 925, 926, 927, 928, 929, 930, 931,
1518  932, 933, 934, 935, 936, 937, 938, 940, 941, 942,
1519 
1520  945, 946, 947, 939, 949, 950, 943, 951, 948, 952,
1521  944, 953, 954, 955, 956, 957, 958, 959, 960, 961,
1522  962, 963, 964, 965, 966, 967, 968, 969, 970, 971,
1523  972, 973, 974, 975, 976, 977, 978, 979, 980, 981,
1524  982, 983, 984, 985, 986, 987, 988, 989, 962, 990,
1525  991, 992, 993, 994, 995, 996, 997, 998, 999, 1000,
1526  1001, 1002, 1003, 1004, 1005, 1007, 1008, 1009, 1010, 1006,
1527  1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
1528  1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030,
1529  1031, 1033, 1034, 1035, 1032, 1036, 1037, 1038, 1039, 1040,
1530 
1531  1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050,
1532  1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060,
1533  1061, 1062, 1063, 1064, 1066, 1067, 1068, 1069, 1070, 1071,
1534  1072, 1073, 1074, 1075, 1076, 1065, 1077, 1078, 1079, 1080,
1535  1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090,
1536  1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100,
1537  1101, 1102, 1103, 1104, 1105, 1106, 1084, 1107, 1108, 1083,
1538  1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118,
1539  1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128,
1540  1129, 1132, 1133, 1134, 1135, 1130, 1136, 1137, 1138, 1139,
1541 
1542  1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149,
1543  1150, 1151, 1152, 1153, 1154, 1155, 1157, 1158, 1159, 1160,
1544  1161, 1162, 1163, 1164, 1165, 1166, 1156, 1167, 1168, 1169,
1545  1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179,
1546  1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1131, 1188,
1547  1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198,
1548  1199, 1201, 1200, 1202, 1203, 1204, 1205, 1206, 1207, 1208,
1549  1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218,
1550  1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1199, 1200,
1551  1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236,
1552 
1553  1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1247,
1554  1249, 1250, 1251, 1246, 1252, 1253, 1254, 1255, 1256, 1257,
1555  1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267,
1556  1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277,
1557  1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287,
1558  1288, 1289, 1290, 1248, 1291, 1292, 1293, 1294, 1295, 1296,
1559  1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306,
1560  1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316,
1561  1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326,
1562  1327, 1328, 1329, 1330, 1331, 1332, 1333, 1311, 1334, 1335,
1563 
1564  1336, 1337, 1338, 1312, 1339, 1340, 1341, 1342, 1343, 1344,
1565  1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354,
1566  1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364,
1567  1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374,
1568  1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384,
1569  1385, 1386, 1387, 1388, 1389, 1390, 1392, 1393, 1394, 1395,
1570  1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405,
1571  1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1416,
1572  1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426,
1573  1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436,
1574 
1575  1437, 1409, 1438, 1439, 1440, 1441, 1442, 1443, 1391, 1444,
1576  1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454,
1577  1455, 1456, 1415, 1457, 1458, 1460, 1461, 1462, 1463, 1464,
1578  1465, 1466, 1459, 1467, 1468, 1469, 1470, 1471, 1472, 1473,
1579  1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483,
1580  1484, 1486, 1487, 1490, 1488, 1485, 1489, 1491, 1492, 1493,
1581  1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503,
1582  1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513,
1583  1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1499, 1522,
1584  1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532,
1585 
1586  1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542,
1587  1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552,
1588  1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562,
1589  1565, 1563, 1566, 1567, 1568, 1569, 1570, 1564, 1571, 1572,
1590  1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582,
1591  1583, 1584, 1585, 1586, 1587, 1588, 1589, 1591, 1592, 1593,
1592  1594, 1595, 1596, 1597, 1598, 1599, 1600, 1590, 1601, 1602,
1593  1603, 1577, 1604, 1605, 1606, 1607, 1608, 1609, 1611, 1612,
1594  1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622,
1595  1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632,
1596 
1597  1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642,
1598  1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652,
1599  1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662,
1600  1663, 1664, 1665, 1666, 1667, 1610, 1668, 1669, 1671, 1672,
1601  1673, 1674, 1670, 1675, 1676, 1677, 1678, 1652, 1679, 1680,
1602  1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690,
1603  1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700,
1604  1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710,
1605  1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720,
1606  1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730,
1607 
1608  1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740,
1609  1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750,
1610  1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760,
1611  1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770,
1612  1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780,
1613  1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790,
1614  1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800,
1615  1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810,
1616  1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820,
1617  1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830,
1618 
1619  1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840,
1620  1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850,
1621  1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860,
1622  1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870,
1623  1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880,
1624  1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890,
1625  1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900,
1626  1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910,
1627  1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920,
1628  1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930,
1629 
1630  1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940,
1631  1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950,
1632  1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960,
1633  1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970,
1634  1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980,
1635  1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990,
1636  1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
1637  2002, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
1638  2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020,
1639  2021, 2022, 2023, 12, 12, 12, 36, 36, 36, 78,
1640 
1641  97, 78, 99, 99, 99, 113, 113, 113, 183, 855,
1642  183, 204, 204, 204, 854, 853, 852, 851, 850, 849,
1643  848, 847, 846, 845, 841, 840, 839, 838, 837, 836,
1644  835, 834, 831, 830, 829, 828, 827, 826, 825, 824,
1645  821, 820, 819, 818, 817, 816, 815, 814, 813, 812,
1646  811, 810, 809, 808, 807, 806, 805, 804, 803, 802,
1647  801, 800, 799, 798, 797, 796, 792, 791, 790, 789,
1648  788, 787, 786, 785, 784, 781, 780, 779, 778, 777,
1649  776, 775, 774, 773, 772, 771, 770, 769, 768, 767,
1650  766, 765, 764, 763, 762, 761, 760, 757, 756, 755,
1651 
1652  754, 753, 752, 751, 750, 749, 748, 747, 746, 745,
1653  744, 743, 742, 741, 740, 739, 738, 737, 736, 735,
1654  734, 733, 732, 731, 728, 727, 726, 725, 724, 723,
1655  722, 721, 720, 719, 718, 717, 716, 715, 714, 713,
1656  712, 706, 705, 704, 703, 702, 701, 700, 699, 698,
1657  697, 696, 695, 694, 693, 692, 691, 690, 689, 686,
1658  685, 684, 683, 682, 681, 680, 679, 676, 675, 674,
1659  673, 672, 671, 670, 669, 668, 667, 666, 665, 664,
1660  663, 662, 661, 660, 659, 658, 657, 656, 655, 654,
1661  653, 652, 651, 650, 649, 648, 647, 646, 645, 644,
1662 
1663  643, 642, 641, 638, 637, 636, 635, 634, 633, 632,
1664  631, 630, 629, 628, 627, 626, 625, 624, 623, 622,
1665  621, 620, 619, 618, 617, 614, 613, 612, 611, 610,
1666  609, 608, 607, 604, 603, 602, 595, 594, 593, 592,
1667  591, 590, 589, 588, 587, 586, 585, 584, 583, 582,
1668  578, 577, 576, 574, 573, 570, 569, 568, 567, 566,
1669  563, 562, 561, 560, 559, 558, 557, 556, 555, 554,
1670  553, 552, 551, 550, 549, 546, 545, 544, 541, 540,
1671  539, 538, 537, 536, 535, 532, 531, 528, 527, 526,
1672  525, 524, 523, 522, 521, 520, 519, 518, 517, 513,
1673 
1674  512, 511, 508, 507, 506, 501, 500, 499, 498, 497,
1675  496, 495, 494, 493, 492, 491, 490, 489, 484, 483,
1676  482, 481, 480, 479, 478, 477, 476, 475, 474, 473,
1677  472, 469, 468, 467, 466, 463, 460, 459, 458, 457,
1678  456, 455, 454, 453, 452, 451, 450, 447, 446, 444,
1679  442, 440, 437, 436, 435, 434, 433, 432, 431, 429,
1680  428, 427, 424, 423, 422, 421, 420, 417, 416, 415,
1681  414, 413, 412, 411, 408, 407, 406, 405, 404, 403,
1682  402, 401, 400, 399, 398, 397, 396, 395, 394, 393,
1683  392, 389, 388, 387, 386, 384, 383, 382, 381, 380,
1684 
1685  379, 375, 374, 373, 372, 371, 370, 369, 366, 365,
1686  364, 363, 362, 361, 360, 359, 358, 357, 356, 355,
1687  354, 353, 352, 351, 350, 349, 348, 347, 346, 345,
1688  344, 343, 342, 341, 334, 333, 332, 331, 330, 329,
1689  327, 205, 324, 322, 320, 317, 315, 308, 307, 306,
1690  305, 304, 303, 302, 300, 299, 298, 295, 294, 293,
1691  289, 279, 276, 272, 271, 266, 265, 264, 261, 259,
1692  258, 257, 256, 255, 254, 251, 250, 249, 246, 245,
1693  244, 241, 240, 236, 235, 227, 226, 225, 221, 220,
1694  219, 218, 214, 210, 205, 194, 193, 191, 190, 182,
1695 
1696  163, 140, 107, 104, 103, 43, 98, 96, 95, 86,
1697  43, 2024, 11, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1698  2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1699  2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1700  2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1701  2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1702  2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1703  2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1704  2024, 2024, 2024, 2024, 2024, 2024
1705  } ;
1706 
1707 static const flex_int16_t yy_chk[2487] =
1708  { 0,
1709  0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
1710  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1711  21, 656, 3, 3, 3, 21, 1, 1, 3, 44,
1712  0, 1, 4, 4, 4, 13, 1, 13, 4, 27,
1713  28, 1, 106, 1, 5, 5, 5, 26, 32, 1,
1714  1, 33, 6, 6, 6, 7, 7, 7, 1, 7,
1715  656, 8, 8, 8, 1, 8, 44, 27, 28, 106,
1716  26, 1, 1, 2, 2, 2, 32, 2, 2, 33,
1717  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1718  2, 2, 9, 9, 9, 31, 5, 47, 2, 2,
1719 
1720  10, 10, 10, 2, 6, 37, 50, 37, 2, 42,
1721  51, 42, 9, 2, 53, 2, 55, 56, 31, 64,
1722  10, 2, 2, 47, 64, 245, 25, 64, 25, 50,
1723  2, 25, 25, 25, 25, 25, 2, 53, 51, 55,
1724  729, 56, 245, 2, 2, 15, 15, 15, 15, 15,
1725  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1726  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1727  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1728  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1729  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1730 
1731  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1732  15, 15, 15, 15, 15, 15, 15, 15, 17, 730,
1733  17, 17, 17, 17, 17, 19, 58, 19, 19, 19,
1734  19, 19, 112, 17, 20, 20, 20, 20, 20, 22,
1735  19, 22, 22, 22, 22, 22, 62, 20, 59, 73,
1736  54, 61, 58, 73, 22, 112, 17, 109, 58, 59,
1737  54, 61, 59, 19, 59, 63, 59, 107, 89, 62,
1738  20, 90, 63, 54, 731, 131, 216, 22, 45, 216,
1739  62, 45, 45, 45, 109, 45, 45, 45, 54, 57,
1740  65, 131, 45, 45, 89, 45, 57, 90, 107, 92,
1741 
1742  65, 45, 65, 45, 45, 45, 45, 45, 45, 45,
1743  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1744  45, 45, 45, 45, 60, 92, 57, 60, 60, 93,
1745  57, 60, 60, 68, 57, 67, 67, 68, 171, 67,
1746  69, 68, 57, 732, 60, 67, 57, 91, 57, 57,
1747  70, 94, 171, 68, 76, 93, 105, 68, 70, 69,
1748  70, 69, 733, 69, 71, 70, 70, 71, 71, 74,
1749  75, 75, 129, 74, 129, 91, 74, 76, 71, 94,
1750  75, 71, 105, 74, 74, 111, 145, 76, 74, 74,
1751  75, 129, 76, 79, 79, 79, 79, 79, 87, 87,
1752 
1753  87, 87, 87, 75, 137, 75, 79, 145, 75, 75,
1754  99, 80, 111, 80, 80, 80, 80, 80, 75, 83,
1755  83, 83, 83, 83, 101, 75, 80, 186, 81, 79,
1756  81, 101, 83, 81, 81, 81, 81, 81, 82, 102,
1757  82, 82, 82, 82, 82, 108, 110, 99, 137, 80,
1758  186, 116, 152, 82, 120, 83, 88, 88, 88, 88,
1759  88, 101, 118, 120, 120, 101, 154, 102, 116, 101,
1760  297, 118, 297, 108, 110, 118, 82, 101, 130, 116,
1761  152, 101, 175, 101, 101, 115, 141, 283, 125, 125,
1762  283, 130, 184, 115, 115, 115, 115, 115, 125, 141,
1763 
1764  165, 158, 115, 115, 115, 115, 115, 115, 134, 175,
1765  161, 134, 154, 161, 161, 134, 158, 158, 158, 163,
1766  184, 185, 189, 163, 187, 115, 115, 115, 115, 115,
1767  115, 188, 192, 195, 167, 165, 165, 165, 167, 196,
1768  199, 201, 167, 203, 209, 189, 165, 185, 165, 265,
1769  165, 165, 187, 165, 260, 192, 253, 188, 402, 316,
1770  301, 195, 402, 199, 201, 301, 196, 209, 321, 328,
1771  203, 207, 207, 207, 207, 207, 291, 260, 217, 309,
1772  207, 207, 207, 207, 207, 207, 217, 312, 316, 291,
1773  318, 217, 217, 385, 340, 343, 321, 399, 328, 265,
1774 
1775  343, 734, 309, 207, 207, 207, 207, 207, 207, 253,
1776  312, 340, 253, 318, 326, 326, 326, 326, 326, 430,
1777  384, 385, 430, 326, 326, 326, 326, 326, 326, 348,
1778  384, 362, 376, 376, 376, 348, 362, 380, 376, 441,
1779  410, 414, 449, 380, 410, 414, 326, 326, 326, 326,
1780  326, 326, 436, 470, 447, 399, 447, 436, 480, 553,
1781  544, 466, 735, 480, 504, 544, 470, 441, 579, 466,
1782  449, 466, 466, 466, 504, 466, 736, 580, 737, 583,
1783  581, 447, 707, 447, 362, 581, 583, 631, 631, 362,
1784  448, 448, 448, 448, 448, 579, 696, 708, 739, 448,
1785 
1786  448, 448, 448, 448, 448, 580, 601, 667, 696, 601,
1787  707, 553, 667, 717, 717, 740, 717, 741, 742, 743,
1788  708, 744, 448, 448, 448, 448, 448, 448, 738, 745,
1789  747, 748, 738, 749, 750, 751, 738, 752, 753, 754,
1790  755, 756, 757, 758, 759, 760, 761, 762, 763, 764,
1791  765, 667, 766, 767, 768, 769, 767, 770, 772, 773,
1792  774, 775, 776, 777, 778, 779, 780, 781, 783, 784,
1793  785, 786, 787, 788, 789, 790, 791, 792, 794, 795,
1794  796, 797, 798, 799, 800, 801, 802, 803, 804, 805,
1795  806, 807, 808, 809, 810, 811, 812, 813, 814, 815,
1796 
1797  816, 817, 818, 812, 819, 820, 815, 821, 818, 823,
1798  815, 824, 825, 826, 827, 828, 829, 830, 831, 832,
1799  833, 834, 835, 836, 837, 838, 839, 841, 842, 843,
1800  844, 845, 846, 847, 848, 849, 850, 851, 852, 853,
1801  854, 855, 856, 857, 858, 859, 860, 861, 833, 862,
1802  863, 864, 865, 866, 867, 868, 869, 870, 871, 873,
1803  874, 875, 876, 877, 878, 879, 880, 881, 882, 878,
1804  883, 884, 885, 886, 887, 888, 889, 892, 893, 894,
1805  895, 896, 897, 898, 901, 902, 903, 904, 905, 907,
1806  908, 909, 910, 911, 908, 912, 913, 914, 916, 918,
1807 
1808  919, 920, 921, 922, 923, 924, 925, 926, 927, 928,
1809  929, 930, 931, 932, 933, 934, 935, 936, 937, 938,
1810  939, 940, 941, 942, 943, 944, 945, 946, 947, 948,
1811  949, 950, 951, 953, 954, 942, 955, 956, 957, 958,
1812  959, 960, 961, 962, 963, 964, 965, 966, 968, 969,
1813  970, 971, 972, 973, 974, 975, 976, 977, 978, 979,
1814  980, 981, 982, 983, 984, 985, 962, 986, 987, 961,
1815  988, 989, 990, 991, 993, 994, 995, 996, 997, 998,
1816  999, 1000, 1001, 1002, 1003, 1004, 1006, 1007, 1008, 1009,
1817  1010, 1011, 1012, 1014, 1015, 1010, 1016, 1017, 1018, 1019,
1818 
1819  1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029,
1820  1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1040, 1041,
1821  1042, 1044, 1045, 1046, 1047, 1049, 1035, 1050, 1051, 1052,
1822  1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062,
1823  1063, 1064, 1065, 1066, 1067, 1069, 1070, 1071, 1010, 1072,
1824  1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,
1825  1083, 1085, 1084, 1086, 1087, 1088, 1089, 1090, 1091, 1092,
1826  1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102,
1827  1103, 1104, 1105, 1106, 1107, 1108, 1109, 1111, 1083, 1084,
1828  1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121,
1829 
1830  1122, 1123, 1124, 1125, 1126, 1127, 1128, 1130, 1131, 1132,
1831  1133, 1134, 1135, 1131, 1136, 1137, 1138, 1139, 1140, 1141,
1832  1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151,
1833  1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161,
1834  1162, 1163, 1164, 1166, 1167, 1168, 1169, 1170, 1171, 1172,
1835  1173, 1174, 1175, 1132, 1176, 1178, 1179, 1180, 1183, 1184,
1836  1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194,
1837  1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204,
1838  1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1215,
1839  1216, 1217, 1218, 1219, 1220, 1221, 1222, 1199, 1224, 1225,
1840 
1841  1226, 1227, 1228, 1200, 1229, 1230, 1231, 1232, 1233, 1234,
1842  1235, 1236, 1237, 1238, 1239, 1240, 1241, 1244, 1246, 1248,
1843  1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258,
1844  1259, 1260, 1261, 1262, 1263, 1265, 1266, 1267, 1269, 1270,
1845  1271, 1272, 1273, 1276, 1278, 1280, 1281, 1282, 1283, 1284,
1846  1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294,
1847  1295, 1297, 1298, 1299, 1300, 1301, 1302, 1305, 1306, 1307,
1848  1308, 1309, 1310, 1311, 1312, 1314, 1315, 1316, 1317, 1318,
1849  1319, 1320, 1321, 1322, 1324, 1325, 1326, 1327, 1328, 1329,
1850  1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339,
1851 
1852  1340, 1311, 1342, 1343, 1344, 1345, 1346, 1347, 1290, 1348,
1853  1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358,
1854  1359, 1361, 1317, 1362, 1363, 1364, 1365, 1366, 1367, 1368,
1855  1369, 1370, 1363, 1371, 1374, 1375, 1376, 1377, 1378, 1379,
1856  1380, 1381, 1382, 1383, 1384, 1385, 1387, 1388, 1389, 1390,
1857  1391, 1392, 1394, 1397, 1395, 1391, 1395, 1400, 1401, 1402,
1858  1403, 1405, 1406, 1407, 1408, 1409, 1411, 1412, 1413, 1415,
1859  1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425,
1860  1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1409, 1435,
1861  1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446,
1862 
1863  1447, 1449, 1451, 1453, 1454, 1456, 1457, 1458, 1459, 1460,
1864  1461, 1462, 1463, 1464, 1465, 1467, 1468, 1469, 1470, 1471,
1865  1472, 1473, 1476, 1477, 1479, 1480, 1481, 1482, 1483, 1485,
1866  1486, 1485, 1487, 1488, 1489, 1490, 1491, 1485, 1492, 1493,
1867  1494, 1495, 1496, 1498, 1499, 1501, 1502, 1503, 1505, 1506,
1868  1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516,
1869  1517, 1518, 1519, 1521, 1522, 1523, 1525, 1513, 1526, 1527,
1870  1528, 1499, 1529, 1530, 1531, 1532, 1532, 1533, 1534, 1535,
1871  1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545,
1872  1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555,
1873 
1874  1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1566,
1875  1567, 1568, 1569, 1570, 1571, 1572, 1574, 1575, 1576, 1577,
1876  1578, 1579, 1582, 1583, 1584, 1588, 1589, 1590, 1591, 1592,
1877  1593, 1594, 1595, 1596, 1597, 1533, 1598, 1600, 1601, 1602,
1878  1603, 1604, 1600, 1605, 1606, 1607, 1608, 1577, 1610, 1611,
1879  1612, 1614, 1615, 1617, 1618, 1619, 1621, 1622, 1623, 1624,
1880  1625, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635,
1881  1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645,
1882  1646, 1647, 1648, 1649, 1650, 1652, 1654, 1655, 1656, 1658,
1883  1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668,
1884 
1885  1670, 1671, 1672, 1673, 1674, 1676, 1677, 1678, 1680, 1681,
1886  1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1691, 1692,
1887  1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1702, 1703,
1888  1704, 1705, 1706, 1707, 1708, 1709, 1711, 1713, 1714, 1715,
1889  1717, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727,
1890  1728, 1729, 1730, 1731, 1732, 1733, 1735, 1736, 1737, 1738,
1891  1739, 1740, 1741, 1742, 1743, 1745, 1746, 1747, 1748, 1750,
1892  1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1761,
1893  1762, 1763, 1764, 1765, 1767, 1768, 1770, 1771, 1772, 1773,
1894  1774, 1775, 1776, 1777, 1779, 1780, 1781, 1782, 1783, 1784,
1895 
1896  1785, 1786, 1787, 1788, 1789, 1792, 1793, 1794, 1795, 1796,
1897  1797, 1798, 1799, 1800, 1801, 1803, 1805, 1806, 1807, 1808,
1898  1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818,
1899  1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1829,
1900  1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1840,
1901  1842, 1844, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854,
1902  1856, 1857, 1858, 1859, 1861, 1862, 1863, 1864, 1865, 1866,
1903  1867, 1868, 1869, 1870, 1872, 1873, 1875, 1876, 1877, 1878,
1904  1879, 1881, 1882, 1883, 1885, 1887, 1889, 1890, 1891, 1892,
1905  1894, 1895, 1896, 1897, 1898, 1899, 1900, 1902, 1903, 1904,
1906 
1907  1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914,
1908  1915, 1916, 1917, 1918, 1920, 1921, 1922, 1924, 1925, 1926,
1909  1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936,
1910  1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946,
1911  1948, 1949, 1951, 1952, 1953, 1955, 1956, 1957, 1958, 1964,
1912  1968, 1969, 1970, 1971, 1973, 1974, 1975, 1976, 1977, 1978,
1913  1979, 1981, 1982, 1984, 1986, 1988, 1989, 1990, 1991, 1993,
1914  1994, 1993, 1995, 1997, 1998, 2000, 2001, 2002, 2003, 2004,
1915  2005, 2006, 2007, 2009, 2010, 2011, 2012, 2013, 2015, 2018,
1916  2019, 2020, 2021, 2025, 2025, 2025, 2026, 2026, 2026, 2027,
1917 
1918  2028, 2027, 2029, 2029, 2029, 2030, 2030, 2030, 2031, 728,
1919  2031, 2032, 2032, 2032, 727, 726, 725, 724, 723, 722,
1920  721, 720, 719, 718, 716, 715, 714, 713, 712, 711,
1921  710, 709, 704, 703, 702, 701, 700, 699, 698, 697,
1922  695, 694, 693, 691, 690, 689, 688, 687, 686, 685,
1923  684, 683, 682, 681, 680, 679, 678, 676, 675, 674,
1924  673, 672, 671, 670, 669, 668, 666, 665, 663, 662,
1925  661, 660, 659, 658, 657, 655, 654, 653, 652, 650,
1926  649, 647, 646, 645, 644, 643, 642, 641, 640, 639,
1927  638, 637, 636, 635, 634, 633, 632, 630, 629, 628,
1928 
1929  627, 626, 625, 623, 622, 621, 620, 619, 618, 617,
1930  616, 614, 613, 612, 611, 610, 609, 608, 607, 606,
1931  605, 604, 603, 602, 600, 599, 598, 597, 596, 595,
1932  594, 593, 592, 591, 590, 589, 588, 587, 586, 585,
1933  584, 575, 574, 573, 572, 570, 567, 565, 564, 563,
1934  562, 561, 560, 559, 558, 557, 556, 555, 554, 552,
1935  551, 550, 549, 548, 547, 546, 545, 543, 542, 541,
1936  540, 539, 538, 537, 536, 535, 534, 533, 532, 530,
1937  528, 527, 526, 525, 524, 523, 522, 521, 520, 519,
1938  518, 517, 516, 515, 514, 512, 511, 510, 509, 508,
1939 
1940  507, 506, 505, 503, 502, 501, 500, 499, 498, 497,
1941  496, 495, 494, 493, 492, 491, 490, 489, 488, 487,
1942  486, 484, 483, 482, 481, 479, 478, 477, 476, 475,
1943  474, 472, 471, 469, 468, 467, 465, 463, 462, 461,
1944  460, 459, 458, 457, 456, 454, 453, 452, 451, 450,
1945  445, 443, 442, 440, 437, 435, 434, 433, 432, 431,
1946  429, 428, 427, 426, 425, 424, 423, 422, 421, 420,
1947  419, 418, 417, 416, 415, 413, 412, 411, 409, 408,
1948  407, 406, 405, 404, 403, 401, 400, 398, 397, 396,
1949  395, 394, 393, 392, 391, 390, 389, 388, 387, 383,
1950 
1951  382, 381, 379, 378, 377, 375, 374, 373, 372, 371,
1952  370, 369, 368, 367, 366, 365, 364, 363, 361, 360,
1953  359, 358, 357, 356, 355, 354, 353, 352, 351, 350,
1954  349, 347, 346, 345, 344, 342, 339, 338, 337, 336,
1955  335, 334, 333, 332, 331, 330, 329, 325, 323, 319,
1956  317, 315, 308, 307, 306, 305, 304, 303, 302, 300,
1957  299, 298, 296, 295, 294, 293, 292, 290, 289, 288,
1958  287, 286, 285, 284, 282, 281, 280, 279, 278, 277,
1959  276, 275, 274, 273, 272, 271, 270, 269, 268, 267,
1960  266, 264, 263, 262, 261, 259, 258, 257, 256, 255,
1961 
1962  254, 252, 251, 250, 249, 248, 247, 246, 244, 243,
1963  241, 240, 239, 238, 237, 236, 235, 234, 233, 232,
1964  231, 230, 229, 228, 227, 226, 225, 224, 223, 222,
1965  221, 220, 219, 218, 215, 214, 213, 212, 211, 210,
1966  208, 204, 202, 200, 198, 193, 190, 182, 181, 180,
1967  179, 178, 177, 176, 174, 173, 172, 170, 169, 168,
1968  166, 164, 162, 160, 159, 157, 156, 155, 153, 151,
1969  150, 149, 148, 147, 146, 144, 143, 142, 140, 139,
1970  138, 136, 135, 133, 132, 128, 127, 126, 124, 123,
1971  122, 121, 119, 117, 113, 104, 103, 97, 96, 77,
1972 
1973  72, 66, 52, 49, 48, 43, 41, 39, 38, 24,
1974  14, 11, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1975  2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1976  2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1977  2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1978  2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1979  2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1980  2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1981  2024, 2024, 2024, 2024, 2024, 2024
1982  } ;
1983 
1984 static yy_state_type yy_last_accepting_state;
1985 static char *yy_last_accepting_cpos;
1986 
1987 extern int yy_flex_debug;
1989 
1990 static const flex_int16_t yy_rule_linenum[219] =
1991  { 0,
1992  148, 150, 152, 157, 158, 163, 164, 165, 177, 180,
1993  185, 192, 201, 210, 219, 228, 237, 246, 255, 264,
1994  273, 282, 291, 300, 309, 321, 333, 343, 353, 363,
1995  373, 383, 392, 402, 412, 422, 432, 441, 450, 459,
1996  468, 477, 486, 495, 504, 513, 522, 531, 540, 549,
1997  558, 571, 580, 589, 598, 607, 618, 629, 640, 651,
1998  663, 674, 685, 696, 707, 718, 729, 740, 749, 758,
1999  767, 778, 789, 800, 811, 822, 831, 842, 853, 864,
2000  875, 886, 897, 908, 919, 928, 937, 946, 955, 966,
2001  977, 988, 999, 1010, 1021, 1032, 1044, 1054, 1065, 1074,
2002 
2003  1083, 1098, 1114, 1123, 1132, 1141, 1150, 1159, 1168, 1177,
2004  1186, 1195, 1204, 1228, 1252, 1261, 1271, 1281, 1290, 1300,
2005  1311, 1320, 1329, 1338, 1347, 1356, 1367, 1378, 1389, 1399,
2006  1408, 1417, 1426, 1437, 1448, 1459, 1470, 1481, 1490, 1499,
2007  1508, 1517, 1526, 1535, 1544, 1553, 1562, 1572, 1584, 1597,
2008  1606, 1615, 1625, 1635, 1644, 1655, 1665, 1674, 1684, 1694,
2009  1703, 1712, 1721, 1730, 1740, 1749, 1758, 1767, 1776, 1785,
2010  1794, 1803, 1812, 1821, 1830, 1839, 1848, 1857, 1866, 1875,
2011  1884, 1893, 1902, 1911, 1920, 1929, 1938, 1947, 1956, 1965,
2012  1974, 1983, 1992, 2001, 2010, 2019, 2028, 2037, 2046, 2055,
2013 
2014  2156, 2172, 2221, 2229, 2244, 2245, 2246, 2247, 2248, 2249,
2015  2251, 2269, 2282, 2287, 2291, 2293, 2295, 2297
2016  } ;
2017 
2018 /* The intent behind this definition is that it'll catch
2019  * any uses of REJECT which flex missed.
2020  */
2021 #define REJECT reject_used_but_not_detected
2022 #define yymore() yymore_used_but_not_detected
2023 #define YY_MORE_ADJ 0
2024 #define YY_RESTORE_YY_MORE_OFFSET
2025 char *yytext;
2026 #line 1 "dhcp6_lexer.ll"
2027 /* Copyright (C) 2016-2021 Internet Systems Consortium, Inc. ("ISC")
2028 
2029  This Source Code Form is subject to the terms of the Mozilla Public
2030  License, v. 2.0. If a copy of the MPL was not distributed with this
2031  file, You can obtain one at http://mozilla.org/MPL/2.0/. */
2032 #line 8 "dhcp6_lexer.ll"
2033 
2034 /* Generated files do not make clang static analyser so happy */
2035 #ifndef __clang_analyzer__
2036 
2037 #include <cctype>
2038 #include <cerrno>
2039 #include <climits>
2040 #include <cstdlib>
2041 #include <string>
2042 #include <dhcp6/parser_context.h>
2043 #include <asiolink/io_address.h>
2044 #include <boost/lexical_cast.hpp>
2045 #include <exceptions/exceptions.h>
2046 
2047 /* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
2048 
2049 /* Work around an incompatibility in flex (at least versions
2050  2.5.31 through 2.5.33): it generates code that does
2051  not conform to C89. See Debian bug 333231
2052  <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
2053 # undef yywrap
2054 # define yywrap() 1
2055 
2056 namespace {
2057 
2058 bool start_token_flag = false;
2059 
2060 isc::dhcp::Parser6Context::ParserType start_token_value;
2061 unsigned int comment_start_line = 0;
2062 
2063 using namespace isc::dhcp;
2064 
2065 };
2066 
2067 /* To avoid the call to exit... oops! */
2068 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
2069 #line 2069 "dhcp6_lexer.cc"
2070 /* noyywrap disables automatic rewinding for the next file to parse. Since we
2071  always parse only a single string, there's no need to do any wraps. And
2072  using yywrap requires linking with -lfl, which provides the default yywrap
2073  implementation that always returns 1 anyway. */
2074 /* nounput simplifies the lexer, by removing support for putting a character
2075  back into the input stream. We never use such capability anyway. */
2076 /* batch means that we'll never use the generated lexer interactively. */
2077 /* avoid to get static global variables to remain with C++. */
2078 /* in last resort %option reentrant */
2079 /* Enables debug mode. To see the debug messages, one needs to also set
2080  yy_flex_debug to 1, then the debug messages will be printed on stderr. */
2081 /* I have no idea what this option does, except it was specified in the bison
2082  examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
2083  be on the safe side and keep it. */
2084 #define YY_NO_INPUT 1
2085 
2086 /* These are not token expressions yet, just convenience expressions that
2087  can be used during actual token definitions. Note some can match
2088  incorrect inputs (e.g., IP addresses) which must be checked. */
2089 /* for errors */
2090 #line 95 "dhcp6_lexer.ll"
2091 /* This code run each time a pattern is matched. It updates the location
2092  by moving it ahead by yyleng bytes. yyleng specifies the length of the
2093  currently matched token. */
2094 #define YY_USER_ACTION driver.loc_.columns(yyleng);
2095 #line 2095 "dhcp6_lexer.cc"
2096 #line 2096 "dhcp6_lexer.cc"
2097 
2098 #define INITIAL 0
2099 #define COMMENT 1
2100 #define DIR_ENTER 2
2101 #define DIR_INCLUDE 3
2102 #define DIR_EXIT 4
2103 
2104 #ifndef YY_NO_UNISTD_H
2105 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2106  * down here because we want the user's section 1 to have been scanned first.
2107  * The user has a chance to override it with an option.
2108  */
2109 /* %if-c-only */
2110 #include <unistd.h>
2111 /* %endif */
2112 /* %if-c++-only */
2113 /* %endif */
2114 #endif
2115 
2116 #ifndef YY_EXTRA_TYPE
2117 #define YY_EXTRA_TYPE void *
2118 #endif
2119 
2120 /* %if-c-only Reentrant structure and macros (non-C++). */
2121 /* %if-reentrant */
2122 /* %if-c-only */
2123 
2124 static int yy_init_globals ( void );
2125 
2126 /* %endif */
2127 /* %if-reentrant */
2128 /* %endif */
2129 /* %endif End reentrant structures and macros. */
2130 
2131 /* Accessor methods to globals.
2132  These are made visible to non-reentrant scanners for convenience. */
2133 
2134 int yylex_destroy ( void );
2135 
2136 int yyget_debug ( void );
2137 
2138 void yyset_debug ( int debug_flag );
2139 
2140 YY_EXTRA_TYPE yyget_extra ( void );
2141 
2142 void yyset_extra ( YY_EXTRA_TYPE user_defined );
2143 
2144 FILE *yyget_in ( void );
2145 
2146 void yyset_in ( FILE * _in_str );
2147 
2148 FILE *yyget_out ( void );
2149 
2150 void yyset_out ( FILE * _out_str );
2151 
2152  int yyget_leng ( void );
2153 
2154 char *yyget_text ( void );
2155 
2156 int yyget_lineno ( void );
2157 
2158 void yyset_lineno ( int _line_number );
2159 
2160 /* %if-bison-bridge */
2161 /* %endif */
2162 
2163 /* Macros after this point can all be overridden by user definitions in
2164  * section 1.
2165  */
2166 
2167 #ifndef YY_SKIP_YYWRAP
2168 #ifdef __cplusplus
2169 extern "C" int yywrap ( void );
2170 #else
2171 extern int yywrap ( void );
2172 #endif
2173 #endif
2174 
2175 /* %not-for-header */
2176 #ifndef YY_NO_UNPUT
2177 
2178 #endif
2179 /* %ok-for-header */
2180 
2181 /* %endif */
2182 
2183 #ifndef yytext_ptr
2184 static void yy_flex_strncpy ( char *, const char *, int );
2185 #endif
2186 
2187 #ifdef YY_NEED_STRLEN
2188 static int yy_flex_strlen ( const char * );
2189 #endif
2190 
2191 #ifndef YY_NO_INPUT
2192 /* %if-c-only Standard (non-C++) definition */
2193 /* %not-for-header */
2194 #ifdef __cplusplus
2195 static int yyinput ( void );
2196 #else
2197 static int input ( void );
2198 #endif
2199 /* %ok-for-header */
2200 
2201 /* %endif */
2202 #endif
2203 
2204 /* %if-c-only */
2205 
2206 /* %endif */
2207 
2208 /* Amount of stuff to slurp up with each read. */
2209 #ifndef YY_READ_BUF_SIZE
2210 #ifdef __ia64__
2211 /* On IA-64, the buffer size is 16k, not 8k */
2212 #define YY_READ_BUF_SIZE 16384
2213 #else
2214 #define YY_READ_BUF_SIZE 8192
2215 #endif /* __ia64__ */
2216 #endif
2217 
2218 /* Copy whatever the last rule matched to the standard output. */
2219 #ifndef ECHO
2220 /* %if-c-only Standard (non-C++) definition */
2221 /* This used to be an fputs(), but since the string might contain NUL's,
2222  * we now use fwrite().
2223  */
2224 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2225 /* %endif */
2226 /* %if-c++-only C++ definition */
2227 /* %endif */
2228 #endif
2229 
2230 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2231  * is returned in "result".
2232  */
2233 #ifndef YY_INPUT
2234 #define YY_INPUT(buf,result,max_size) \
2235 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2236  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2237  { \
2238  int c = '*'; \
2239  int n; \
2240  for ( n = 0; n < max_size && \
2241  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2242  buf[n] = (char) c; \
2243  if ( c == '\n' ) \
2244  buf[n++] = (char) c; \
2245  if ( c == EOF && ferror( yyin ) ) \
2246  YY_FATAL_ERROR( "input in flex scanner failed" ); \
2247  result = n; \
2248  } \
2249  else \
2250  { \
2251  errno=0; \
2252  while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2253  { \
2254  if( errno != EINTR) \
2255  { \
2256  YY_FATAL_ERROR( "input in flex scanner failed" ); \
2257  break; \
2258  } \
2259  errno=0; \
2260  clearerr(yyin); \
2261  } \
2262  }\
2263 \
2264 /* %if-c++-only C++ definition \ */\
2265 /* %endif */
2266 
2267 #endif
2268 
2269 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2270  * we don't want an extra ';' after the "return" because that will cause
2271  * some compilers to complain about unreachable statements.
2272  */
2273 #ifndef yyterminate
2274 #define yyterminate() return YY_NULL
2275 #endif
2276 
2277 /* Number of entries by which start-condition stack grows. */
2278 #ifndef YY_START_STACK_INCR
2279 #define YY_START_STACK_INCR 25
2280 #endif
2281 
2282 /* Report a fatal error. */
2283 #ifndef YY_FATAL_ERROR
2284 /* %if-c-only */
2285 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2286 /* %endif */
2287 /* %if-c++-only */
2288 /* %endif */
2289 #endif
2290 
2291 /* %if-tables-serialization structures and prototypes */
2292 /* %not-for-header */
2293 /* %ok-for-header */
2294 
2295 /* %not-for-header */
2296 /* %tables-yydmap generated elements */
2297 /* %endif */
2298 /* end tables serialization structures and prototypes */
2299 
2300 /* %ok-for-header */
2301 
2302 /* Default declaration of generated scanner - a define so the user can
2303  * easily add parameters.
2304  */
2305 #ifndef YY_DECL
2306 #define YY_DECL_IS_OURS 1
2307 /* %if-c-only Standard (non-C++) definition */
2308 
2309 extern int yylex (void);
2310 
2311 #define YY_DECL int yylex (void)
2312 /* %endif */
2313 /* %if-c++-only C++ definition */
2314 /* %endif */
2315 #endif /* !YY_DECL */
2316 
2317 /* Code executed at the beginning of each rule, after yytext and yyleng
2318  * have been set up.
2319  */
2320 #ifndef YY_USER_ACTION
2321 #define YY_USER_ACTION
2322 #endif
2323 
2324 /* Code executed at the end of each rule. */
2325 #ifndef YY_BREAK
2326 #define YY_BREAK /*LINTED*/break;
2327 #endif
2328 
2329 /* %% [6.0] YY_RULE_SETUP definition goes here */
2330 #define YY_RULE_SETUP \
2331  YY_USER_ACTION
2332 
2333 /* %not-for-header */
2336 YY_DECL
2338  yy_state_type yy_current_state;
2339  char *yy_cp, *yy_bp;
2340  int yy_act;
2341 
2342  if ( !(yy_init) )
2343  {
2344  (yy_init) = 1;
2345 
2346 #ifdef YY_USER_INIT
2347  YY_USER_INIT;
2348 #endif
2349 
2350  if ( ! (yy_start) )
2351  (yy_start) = 1; /* first start state */
2352 
2353  if ( ! yyin )
2354 /* %if-c-only */
2355  yyin = stdin;
2356 /* %endif */
2357 /* %if-c++-only */
2358 /* %endif */
2359 
2360  if ( ! yyout )
2361 /* %if-c-only */
2362  yyout = stdout;
2363 /* %endif */
2364 /* %if-c++-only */
2365 /* %endif */
2366 
2367  if ( ! YY_CURRENT_BUFFER ) {
2371  }
2372 
2374  }
2375 
2376  {
2377 /* %% [7.0] user's declarations go here */
2378 #line 101 "dhcp6_lexer.ll"
2379 
2380 
2381 
2382 #line 105 "dhcp6_lexer.ll"
2383  /* This part of the code is copied over to the verbatim to the top
2384  of the generated yylex function. Explanation:
2385  http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2386 
2387  /* Code run each time yylex is called. */
2388  driver.loc_.step();
2389 
2390  if (start_token_flag) {
2391  start_token_flag = false;
2392  switch (start_token_value) {
2393  case Parser6Context::PARSER_JSON:
2394  default:
2395  return isc::dhcp::Dhcp6Parser::make_TOPLEVEL_JSON(driver.loc_);
2396  case Parser6Context::PARSER_DHCP6:
2397  return isc::dhcp::Dhcp6Parser::make_TOPLEVEL_DHCP6(driver.loc_);
2398  case Parser6Context::SUBPARSER_DHCP6:
2399  return isc::dhcp::Dhcp6Parser::make_SUB_DHCP6(driver.loc_);
2400  case Parser6Context::PARSER_INTERFACES:
2402  case Parser6Context::PARSER_SUBNET6:
2403  return isc::dhcp::Dhcp6Parser::make_SUB_SUBNET6(driver.loc_);
2404  case Parser6Context::PARSER_POOL6:
2405  return isc::dhcp::Dhcp6Parser::make_SUB_POOL6(driver.loc_);
2406  case Parser6Context::PARSER_PD_POOL:
2407  return isc::dhcp::Dhcp6Parser::make_SUB_PD_POOL(driver.loc_);
2408  case Parser6Context::PARSER_HOST_RESERVATION:
2410  case Parser6Context::PARSER_OPTION_DEFS:
2412  case Parser6Context::PARSER_OPTION_DEF:
2413  return isc::dhcp::Dhcp6Parser::make_SUB_OPTION_DEF(driver.loc_);
2414  case Parser6Context::PARSER_OPTION_DATA:
2416  case Parser6Context::PARSER_HOOKS_LIBRARY:
2418  case Parser6Context::PARSER_DHCP_DDNS:
2419  return isc::dhcp::Dhcp6Parser::make_SUB_DHCP_DDNS(driver.loc_);
2420  case Parser6Context::PARSER_CONFIG_CONTROL:
2422  }
2423  }
2424 
2425 
2426 #line 2426 "dhcp6_lexer.cc"
2427 
2428  while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2429  {
2430 /* %% [8.0] yymore()-related code goes here */
2431  yy_cp = (yy_c_buf_p);
2432 
2433  /* Support of yytext. */
2434  *yy_cp = (yy_hold_char);
2435 
2436  /* yy_bp points to the position in yy_ch_buf of the start of
2437  * the current run.
2438  */
2439  yy_bp = yy_cp;
2440 
2441 /* %% [9.0] code to set up and find next match goes here */
2442  yy_current_state = (yy_start);
2443 yy_match:
2444  do
2445  {
2446  YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2447  if ( yy_accept[yy_current_state] )
2448  {
2449  (yy_last_accepting_state) = yy_current_state;
2450  (yy_last_accepting_cpos) = yy_cp;
2451  }
2452  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2453  {
2454  yy_current_state = (int) yy_def[yy_current_state];
2455  if ( yy_current_state >= 2025 )
2456  yy_c = yy_meta[yy_c];
2457  }
2458  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2459  ++yy_cp;
2460  }
2461  while ( yy_current_state != 2024 );
2462  yy_cp = (yy_last_accepting_cpos);
2463  yy_current_state = (yy_last_accepting_state);
2464 
2465 yy_find_action:
2466 /* %% [10.0] code to find the action number goes here */
2467  yy_act = yy_accept[yy_current_state];
2468 
2470 
2471 /* %% [11.0] code for yylineno update goes here */
2472 
2473 do_action: /* This label is used only to access EOF actions. */
2474 
2475 /* %% [12.0] debug code goes here */
2476  if ( yy_flex_debug )
2477  {
2478  if ( yy_act == 0 )
2479  fprintf( stderr, "--scanner backing up\n" );
2480  else if ( yy_act < 219 )
2481  fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2482  (long)yy_rule_linenum[yy_act], yytext );
2483  else if ( yy_act == 219 )
2484  fprintf( stderr, "--accepting default rule (\"%s\")\n",
2485  yytext );
2486  else if ( yy_act == 220 )
2487  fprintf( stderr, "--(end of buffer or a NUL)\n" );
2488  else
2489  fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2490  }
2491 
2492  switch ( yy_act )
2493  { /* beginning of action switch */
2494 /* %% [13.0] actions go here */
2495  case 0: /* must back up */
2496  /* undo the effects of YY_DO_BEFORE_ACTION */
2497  *yy_cp = (yy_hold_char);
2498  yy_cp = (yy_last_accepting_cpos);
2499  yy_current_state = (yy_last_accepting_state);
2500  goto yy_find_action;
2501 
2502 case 1:
2504 #line 148 "dhcp6_lexer.ll"
2505 ;
2506  YY_BREAK
2507 case 2:
2509 #line 150 "dhcp6_lexer.ll"
2510 ;
2511  YY_BREAK
2512 case 3:
2514 #line 152 "dhcp6_lexer.ll"
2515 {
2516  BEGIN(COMMENT);
2517  comment_start_line = driver.loc_.end.line;;
2518 }
2519  YY_BREAK
2520 case 4:
2522 #line 157 "dhcp6_lexer.ll"
2523 BEGIN(INITIAL);
2524  YY_BREAK
2525 case 5:
2527 #line 158 "dhcp6_lexer.ll"
2528 ;
2529  YY_BREAK
2530 case YY_STATE_EOF(COMMENT):
2531 #line 159 "dhcp6_lexer.ll"
2532 {
2533  isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line);
2534 }
2535  YY_BREAK
2536 case 6:
2538 #line 163 "dhcp6_lexer.ll"
2539 BEGIN(DIR_ENTER);
2540  YY_BREAK
2541 case 7:
2543 #line 164 "dhcp6_lexer.ll"
2545  YY_BREAK
2546 case 8:
2548 #line 165 "dhcp6_lexer.ll"
2549 {
2550  /* Include directive. */
2551 
2552  /* Extract the filename. */
2553  std::string tmp(yytext+1);
2554  tmp.resize(tmp.size() - 1);
2555 
2556  driver.includeFile(tmp);
2557 }
2558  YY_BREAK
2559 case YY_STATE_EOF(DIR_ENTER):
2561 case YY_STATE_EOF(DIR_EXIT):
2562 #line 174 "dhcp6_lexer.ll"
2563 {
2564  isc_throw(Dhcp6ParseError, "Directive not closed.");
2565 }
2566  YY_BREAK
2567 case 9:
2569 #line 177 "dhcp6_lexer.ll"
2570 BEGIN(INITIAL);
2571  YY_BREAK
2572 case 10:
2574 #line 180 "dhcp6_lexer.ll"
2575 {
2576  /* Ok, we found a with space. Let's ignore it and update loc variable. */
2577  driver.loc_.step();
2578 }
2579  YY_BREAK
2580 case 11:
2581 /* rule 11 can match eol */
2583 #line 185 "dhcp6_lexer.ll"
2584 {
2585  /* Newline found. Let's update the location and continue. */
2586  driver.loc_.lines(yyleng);
2587  driver.loc_.step();
2588 }
2589  YY_BREAK
2590 case 12:
2592 #line 192 "dhcp6_lexer.ll"
2593 {
2594  switch(driver.ctx_) {
2596  return isc::dhcp::Dhcp6Parser::make_ENABLE_UPDATES(driver.loc_);
2597  default:
2598  return isc::dhcp::Dhcp6Parser::make_STRING("enable-updates", driver.loc_);
2599  }
2600 }
2601  YY_BREAK
2602 case 13:
2604 #line 201 "dhcp6_lexer.ll"
2605 {
2606  switch(driver.ctx_) {
2609  default:
2610  return isc::dhcp::Dhcp6Parser::make_STRING("qualifying-suffix", driver.loc_);
2611  }
2612 }
2613  YY_BREAK
2614 case 14:
2616 #line 210 "dhcp6_lexer.ll"
2617 {
2618  switch(driver.ctx_) {
2620  return isc::dhcp::Dhcp6Parser::make_SERVER_IP(driver.loc_);
2621  default:
2622  return isc::dhcp::Dhcp6Parser::make_STRING("server-ip", driver.loc_);
2623  }
2624 }
2625  YY_BREAK
2626 case 15:
2628 #line 219 "dhcp6_lexer.ll"
2629 {
2630  switch(driver.ctx_) {
2632  return isc::dhcp::Dhcp6Parser::make_SERVER_PORT(driver.loc_);
2633  default:
2634  return isc::dhcp::Dhcp6Parser::make_STRING("server-port", driver.loc_);
2635  }
2636 }
2637  YY_BREAK
2638 case 16:
2640 #line 228 "dhcp6_lexer.ll"
2641 {
2642  switch(driver.ctx_) {
2644  return isc::dhcp::Dhcp6Parser::make_SENDER_IP(driver.loc_);
2645  default:
2646  return isc::dhcp::Dhcp6Parser::make_STRING("sender-ip", driver.loc_);
2647  }
2648 }
2649  YY_BREAK
2650 case 17:
2652 #line 237 "dhcp6_lexer.ll"
2653 {
2654  switch(driver.ctx_) {
2656  return isc::dhcp::Dhcp6Parser::make_SENDER_PORT(driver.loc_);
2657  default:
2658  return isc::dhcp::Dhcp6Parser::make_STRING("sender-port", driver.loc_);
2659  }
2660 }
2661  YY_BREAK
2662 case 18:
2664 #line 246 "dhcp6_lexer.ll"
2665 {
2666  switch(driver.ctx_) {
2668  return isc::dhcp::Dhcp6Parser::make_MAX_QUEUE_SIZE(driver.loc_);
2669  default:
2670  return isc::dhcp::Dhcp6Parser::make_STRING("max-queue-size", driver.loc_);
2671  }
2672 }
2673  YY_BREAK
2674 case 19:
2676 #line 255 "dhcp6_lexer.ll"
2677 {
2678  switch(driver.ctx_) {
2680  return isc::dhcp::Dhcp6Parser::make_NCR_PROTOCOL(driver.loc_);
2681  default:
2682  return isc::dhcp::Dhcp6Parser::make_STRING("ncr-protocol", driver.loc_);
2683  }
2684 }
2685  YY_BREAK
2686 case 20:
2688 #line 264 "dhcp6_lexer.ll"
2689 {
2690  switch(driver.ctx_) {
2692  return isc::dhcp::Dhcp6Parser::make_NCR_FORMAT(driver.loc_);
2693  default:
2694  return isc::dhcp::Dhcp6Parser::make_STRING("ncr-format", driver.loc_);
2695  }
2696 }
2697  YY_BREAK
2698 case 21:
2700 #line 273 "dhcp6_lexer.ll"
2701 {
2702  switch(driver.ctx_) {
2705  default:
2706  return isc::dhcp::Dhcp6Parser::make_STRING("override-no-update", driver.loc_);
2707  }
2708 }
2709  YY_BREAK
2710 case 22:
2712 #line 282 "dhcp6_lexer.ll"
2713 {
2714  switch(driver.ctx_) {
2717  default:
2718  return isc::dhcp::Dhcp6Parser::make_STRING("override-client-update", driver.loc_);
2719  }
2720 }
2721  YY_BREAK
2722 case 23:
2724 #line 291 "dhcp6_lexer.ll"
2725 {
2726  switch(driver.ctx_) {
2729  default:
2730  return isc::dhcp::Dhcp6Parser::make_STRING("replace-client-name", driver.loc_);
2731  }
2732 }
2733  YY_BREAK
2734 case 24:
2736 #line 300 "dhcp6_lexer.ll"
2737 {
2738  switch(driver.ctx_) {
2741  default:
2742  return isc::dhcp::Dhcp6Parser::make_STRING("generated-prefix", driver.loc_);
2743  }
2744 }
2745  YY_BREAK
2746 case 25:
2748 #line 309 "dhcp6_lexer.ll"
2749 {
2750  switch(driver.ctx_) {
2756  default:
2757  return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-set", driver.loc_);
2758  }
2759 }
2760  YY_BREAK
2761 case 26:
2763 #line 321 "dhcp6_lexer.ll"
2764 {
2765  switch(driver.ctx_) {
2771  default:
2772  return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-replacement", driver.loc_);
2773  }
2774 }
2775  YY_BREAK
2776 case 27:
2778 #line 333 "dhcp6_lexer.ll"
2779 {
2780  /* dhcp-ddns value keywords are case insensitive */
2781  if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2782  return isc::dhcp::Dhcp6Parser::make_UDP(driver.loc_);
2783  }
2784  std::string tmp(yytext+1);
2785  tmp.resize(tmp.size() - 1);
2786  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2787 }
2788  YY_BREAK
2789 case 28:
2791 #line 343 "dhcp6_lexer.ll"
2792 {
2793  /* dhcp-ddns value keywords are case insensitive */
2794  if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2795  return isc::dhcp::Dhcp6Parser::make_TCP(driver.loc_);
2796  }
2797  std::string tmp(yytext+1);
2798  tmp.resize(tmp.size() - 1);
2799  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2800 }
2801  YY_BREAK
2802 case 29:
2804 #line 353 "dhcp6_lexer.ll"
2805 {
2806  /* dhcp-ddns value keywords are case insensitive */
2807  if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) {
2808  return isc::dhcp::Dhcp6Parser::make_JSON(driver.loc_);
2809  }
2810  std::string tmp(yytext+1);
2811  tmp.resize(tmp.size() - 1);
2812  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2813 }
2814  YY_BREAK
2815 case 30:
2817 #line 363 "dhcp6_lexer.ll"
2818 {
2819  /* dhcp-ddns value keywords are case insensitive */
2821  return isc::dhcp::Dhcp6Parser::make_WHEN_PRESENT(driver.loc_);
2822  }
2823  std::string tmp(yytext+1);
2824  tmp.resize(tmp.size() - 1);
2825  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2826 }
2827  YY_BREAK
2828 case 31:
2830 #line 373 "dhcp6_lexer.ll"
2831 {
2832  /* dhcp-ddns value keywords are case insensitive */
2834  return isc::dhcp::Dhcp6Parser::make_WHEN_PRESENT(driver.loc_);
2835  }
2836  std::string tmp(yytext+1);
2837  tmp.resize(tmp.size() - 1);
2838  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2839 }
2840  YY_BREAK
2841 case 32:
2843 #line 383 "dhcp6_lexer.ll"
2844 {
2845  switch(driver.ctx_) {
2847  return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2848  default:
2849  return isc::dhcp::Dhcp6Parser::make_STRING("never", driver.loc_);
2850  }
2851 }
2852  YY_BREAK
2853 case 33:
2855 #line 392 "dhcp6_lexer.ll"
2856 {
2857  /* dhcp-ddns value keywords are case insensitive */
2859  return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2860  }
2861  std::string tmp(yytext+1);
2862  tmp.resize(tmp.size() - 1);
2863  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2864 }
2865  YY_BREAK
2866 case 34:
2868 #line 402 "dhcp6_lexer.ll"
2869 {
2870  /* dhcp-ddns value keywords are case insensitive */
2872  return isc::dhcp::Dhcp6Parser::make_NEVER(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 35:
2881 #line 412 "dhcp6_lexer.ll"
2882 {
2883  /* dhcp-ddns value keywords are case insensitive */
2885  return isc::dhcp::Dhcp6Parser::make_ALWAYS(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 36:
2894 #line 422 "dhcp6_lexer.ll"
2895 {
2896  /* dhcp-ddns value keywords are case insensitive */
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 37:
2907 #line 432 "dhcp6_lexer.ll"
2908 {
2909  switch(driver.ctx_) {
2911  return isc::dhcp::Dhcp6Parser::make_DHCP6(driver.loc_);
2912  default:
2913  return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp6", driver.loc_);
2914  }
2915 }
2916  YY_BREAK
2917 case 38:
2919 #line 441 "dhcp6_lexer.ll"
2920 {
2921  switch(driver.ctx_) {
2923  return isc::dhcp::Dhcp6Parser::make_DATA_DIRECTORY(driver.loc_);
2924  default:
2925  return isc::dhcp::Dhcp6Parser::make_STRING("data-directory", driver.loc_);
2926  }
2927 }
2928  YY_BREAK
2929 case 39:
2931 #line 450 "dhcp6_lexer.ll"
2932 {
2933  switch(driver.ctx_) {
2936  default:
2937  return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", driver.loc_);
2938  }
2939 }
2940  YY_BREAK
2941 case 40:
2943 #line 459 "dhcp6_lexer.ll"
2944 {
2945  switch(driver.ctx_) {
2947  return isc::dhcp::Dhcp6Parser::make_INTERFACES(driver.loc_);
2948  default:
2949  return isc::dhcp::Dhcp6Parser::make_STRING("interfaces", driver.loc_);
2950  }
2951 }
2952  YY_BREAK
2953 case 41:
2955 #line 468 "dhcp6_lexer.ll"
2956 {
2957  switch(driver.ctx_) {
2959  return isc::dhcp::Dhcp6Parser::make_RE_DETECT(driver.loc_);
2960  default:
2961  return isc::dhcp::Dhcp6Parser::make_STRING("re-detect", driver.loc_);
2962  }
2963 }
2964  YY_BREAK
2965 case 42:
2967 #line 477 "dhcp6_lexer.ll"
2968 {
2969  switch(driver.ctx_) {
2971  return isc::dhcp::Dhcp6Parser::make_SANITY_CHECKS(driver.loc_);
2972  default:
2973  return isc::dhcp::Dhcp6Parser::make_STRING("sanity-checks", driver.loc_);
2974  }
2975 }
2976  YY_BREAK
2977 case 43:
2979 #line 486 "dhcp6_lexer.ll"
2980 {
2981  switch(driver.ctx_) {
2983  return isc::dhcp::Dhcp6Parser::make_LEASE_CHECKS(driver.loc_);
2984  default:
2985  return isc::dhcp::Dhcp6Parser::make_STRING("lease-checks", driver.loc_);
2986  }
2987 }
2988  YY_BREAK
2989 case 44:
2991 #line 495 "dhcp6_lexer.ll"
2992 {
2993  switch(driver.ctx_) {
2995  return isc::dhcp::Dhcp6Parser::make_LEASE_DATABASE(driver.loc_);
2996  default:
2997  return isc::dhcp::Dhcp6Parser::make_STRING("lease-database", driver.loc_);
2998  }
2999 }
3000  YY_BREAK
3001 case 45:
3003 #line 504 "dhcp6_lexer.ll"
3004 {
3005  switch(driver.ctx_) {
3007  return isc::dhcp::Dhcp6Parser::make_HOSTS_DATABASE(driver.loc_);
3008  default:
3009  return isc::dhcp::Dhcp6Parser::make_STRING("hosts-database", driver.loc_);
3010  }
3011 }
3012  YY_BREAK
3013 case 46:
3015 #line 513 "dhcp6_lexer.ll"
3016 {
3017  switch(driver.ctx_) {
3020  default:
3021  return isc::dhcp::Dhcp6Parser::make_STRING("hosts-databases", driver.loc_);
3022  }
3023 }
3024  YY_BREAK
3025 case 47:
3027 #line 522 "dhcp6_lexer.ll"
3028 {
3029  switch(driver.ctx_) {
3031  return isc::dhcp::Dhcp6Parser::make_CONFIG_CONTROL(driver.loc_);
3032  default:
3033  return isc::dhcp::Dhcp6Parser::make_STRING("config-control", driver.loc_);
3034  }
3035 }
3036  YY_BREAK
3037 case 48:
3039 #line 531 "dhcp6_lexer.ll"
3040 {
3041  switch(driver.ctx_) {
3044  default:
3045  return isc::dhcp::Dhcp6Parser::make_STRING("config-databases", driver.loc_);
3046  }
3047 }
3048  YY_BREAK
3049 case 49:
3051 #line 540 "dhcp6_lexer.ll"
3052 {
3053  switch(driver.ctx_) {
3056  default:
3057  return isc::dhcp::Dhcp6Parser::make_STRING("config-fetch-wait-time", driver.loc_);
3058  }
3059 }
3060  YY_BREAK
3061 case 50:
3063 #line 549 "dhcp6_lexer.ll"
3064 {
3065  switch(driver.ctx_) {
3067  return isc::dhcp::Dhcp6Parser::make_READONLY(driver.loc_);
3068  default:
3069  return isc::dhcp::Dhcp6Parser::make_STRING("readonly", driver.loc_);
3070  }
3071 }
3072  YY_BREAK
3073 case 51:
3075 #line 558 "dhcp6_lexer.ll"
3076 {
3077  switch(driver.ctx_) {
3083  return isc::dhcp::Dhcp6Parser::make_TYPE(driver.loc_);
3084  default:
3085  return isc::dhcp::Dhcp6Parser::make_STRING("type", driver.loc_);
3086  }
3087 }
3088  YY_BREAK
3089 case 52:
3091 #line 571 "dhcp6_lexer.ll"
3092 {
3093  switch(driver.ctx_) {
3095  return isc::dhcp::Dhcp6Parser::make_MEMFILE(driver.loc_);
3096  default:
3097  return isc::dhcp::Dhcp6Parser::make_STRING("memfile", driver.loc_);
3098  }
3099 }
3100  YY_BREAK
3101 case 53:
3103 #line 580 "dhcp6_lexer.ll"
3104 {
3105  switch(driver.ctx_) {
3107  return isc::dhcp::Dhcp6Parser::make_MYSQL(driver.loc_);
3108  default:
3109  return isc::dhcp::Dhcp6Parser::make_STRING("mysql", driver.loc_);
3110  }
3111 }
3112  YY_BREAK
3113 case 54:
3115 #line 589 "dhcp6_lexer.ll"
3116 {
3117  switch(driver.ctx_) {
3119  return isc::dhcp::Dhcp6Parser::make_POSTGRESQL(driver.loc_);
3120  default:
3121  return isc::dhcp::Dhcp6Parser::make_STRING("postgresql", driver.loc_);
3122  }
3123 }
3124  YY_BREAK
3125 case 55:
3127 #line 598 "dhcp6_lexer.ll"
3128 {
3129  switch(driver.ctx_) {
3131  return isc::dhcp::Dhcp6Parser::make_CQL(driver.loc_);
3132  default:
3133  return isc::dhcp::Dhcp6Parser::make_STRING("cql", driver.loc_);
3134  }
3135 }
3136  YY_BREAK
3137 case 56:
3139 #line 607 "dhcp6_lexer.ll"
3140 {
3141  switch(driver.ctx_) {
3145  return isc::dhcp::Dhcp6Parser::make_USER(driver.loc_);
3146  default:
3147  return isc::dhcp::Dhcp6Parser::make_STRING("user", driver.loc_);
3148  }
3149 }
3150  YY_BREAK
3151 case 57:
3153 #line 618 "dhcp6_lexer.ll"
3154 {
3155  switch(driver.ctx_) {
3159  return isc::dhcp::Dhcp6Parser::make_PASSWORD(driver.loc_);
3160  default:
3161  return isc::dhcp::Dhcp6Parser::make_STRING("password", driver.loc_);
3162  }
3163 }
3164  YY_BREAK
3165 case 58:
3167 #line 629 "dhcp6_lexer.ll"
3168 {
3169  switch(driver.ctx_) {
3173  return isc::dhcp::Dhcp6Parser::make_HOST(driver.loc_);
3174  default:
3175  return isc::dhcp::Dhcp6Parser::make_STRING("host", driver.loc_);
3176  }
3177 }
3178  YY_BREAK
3179 case 59:
3181 #line 640 "dhcp6_lexer.ll"
3182 {
3183  switch(driver.ctx_) {
3187  return isc::dhcp::Dhcp6Parser::make_PORT(driver.loc_);
3188  default:
3189  return isc::dhcp::Dhcp6Parser::make_STRING("port", driver.loc_);
3190  }
3191 }
3192  YY_BREAK
3193 case 60:
3195 #line 651 "dhcp6_lexer.ll"
3196 {
3197  switch(driver.ctx_) {
3202  return isc::dhcp::Dhcp6Parser::make_PERSIST(driver.loc_);
3203  default:
3204  return isc::dhcp::Dhcp6Parser::make_STRING("persist", driver.loc_);
3205  }
3206 }
3207  YY_BREAK
3208 case 61:
3210 #line 663 "dhcp6_lexer.ll"
3211 {
3212  switch(driver.ctx_) {
3216  return isc::dhcp::Dhcp6Parser::make_LFC_INTERVAL(driver.loc_);
3217  default:
3218  return isc::dhcp::Dhcp6Parser::make_STRING("lfc-interval", driver.loc_);
3219  }
3220 }
3221  YY_BREAK
3222 case 62:
3224 #line 674 "dhcp6_lexer.ll"
3225 {
3226  switch(driver.ctx_) {
3231  default:
3232  return isc::dhcp::Dhcp6Parser::make_STRING("connect-timeout", driver.loc_);
3233  }
3234 }
3235  YY_BREAK
3236 case 63:
3238 #line 685 "dhcp6_lexer.ll"
3239 {
3240  switch(driver.ctx_) {
3244  return isc::dhcp::Dhcp6Parser::make_KEYSPACE(driver.loc_);
3245  default:
3246  return isc::dhcp::Dhcp6Parser::make_STRING("keyspace", driver.loc_);
3247  }
3248 }
3249  YY_BREAK
3250 case 64:
3252 #line 696 "dhcp6_lexer.ll"
3253 {
3254  switch(driver.ctx_) {
3258  return isc::dhcp::Dhcp6Parser::make_CONSISTENCY(driver.loc_);
3259  default:
3260  return isc::dhcp::Dhcp6Parser::make_STRING("consistency", driver.loc_);
3261  }
3262 }
3263  YY_BREAK
3264 case 65:
3266 #line 707 "dhcp6_lexer.ll"
3267 {
3268  switch(driver.ctx_) {
3273  default:
3274  return isc::dhcp::Dhcp6Parser::make_STRING("serial-consistency", driver.loc_);
3275  }
3276 }
3277  YY_BREAK
3278 case 66:
3280 #line 718 "dhcp6_lexer.ll"
3281 {
3282  switch(driver.ctx_) {
3287  default:
3288  return isc::dhcp::Dhcp6Parser::make_STRING("reconnect-wait-time", driver.loc_);
3289  }
3290 }
3291  YY_BREAK
3292 case 67:
3294 #line 729 "dhcp6_lexer.ll"
3295 {
3296  switch(driver.ctx_) {
3300  return isc::dhcp::Dhcp6Parser::make_ON_FAIL(driver.loc_);
3301  default:
3302  return isc::dhcp::Dhcp6Parser::make_STRING("on-fail", driver.loc_);
3303  }
3304 }
3305  YY_BREAK
3306 case 68:
3308 #line 740 "dhcp6_lexer.ll"
3309 {
3310  switch(driver.ctx_) {
3313  default:
3314  return isc::dhcp::Dhcp6Parser::make_STRING("stop-retry-exit", driver.loc_);
3315  }
3316 }
3317  YY_BREAK
3318 case 69:
3320 #line 749 "dhcp6_lexer.ll"
3321 {
3322  switch(driver.ctx_) {
3325  default:
3326  return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-exit", driver.loc_);
3327  }
3328 }
3329  YY_BREAK
3330 case 70:
3332 #line 758 "dhcp6_lexer.ll"
3333 {
3334  switch(driver.ctx_) {
3337  default:
3338  return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-continue", driver.loc_);
3339  }
3340 }
3341  YY_BREAK
3342 case 71:
3344 #line 767 "dhcp6_lexer.ll"
3345 {
3346  switch(driver.ctx_) {
3351  default:
3352  return isc::dhcp::Dhcp6Parser::make_STRING("request-timeout", driver.loc_);
3353  }
3354 }
3355  YY_BREAK
3356 case 72:
3358 #line 778 "dhcp6_lexer.ll"
3359 {
3360  switch(driver.ctx_) {
3364  return isc::dhcp::Dhcp6Parser::make_TCP_KEEPALIVE(driver.loc_);
3365  default:
3366  return isc::dhcp::Dhcp6Parser::make_STRING("tcp-keepalive", driver.loc_);
3367  }
3368 }
3369  YY_BREAK
3370 case 73:
3372 #line 789 "dhcp6_lexer.ll"
3373 {
3374  switch(driver.ctx_) {
3378  return isc::dhcp::Dhcp6Parser::make_TCP_NODELAY(driver.loc_);
3379  default:
3380  return isc::dhcp::Dhcp6Parser::make_STRING("tcp-nodelay", driver.loc_);
3381  }
3382 }
3383  YY_BREAK
3384 case 74:
3386 #line 800 "dhcp6_lexer.ll"
3387 {
3388  switch(driver.ctx_) {
3392  return isc::dhcp::Dhcp6Parser::make_CONTACT_POINTS(driver.loc_);
3393  default:
3394  return isc::dhcp::Dhcp6Parser::make_STRING("contact-points", driver.loc_);
3395  }
3396 }
3397  YY_BREAK
3398 case 75:
3400 #line 811 "dhcp6_lexer.ll"
3401 {
3402  switch(driver.ctx_) {
3407  default:
3408  return isc::dhcp::Dhcp6Parser::make_STRING("max-reconnect-tries", driver.loc_);
3409  }
3410 }
3411  YY_BREAK
3412 case 76:
3414 #line 822 "dhcp6_lexer.ll"
3415 {
3416  switch(driver.ctx_) {
3418  return isc::dhcp::Dhcp6Parser::make_MAX_ROW_ERRORS(driver.loc_);
3419  default:
3420  return isc::dhcp::Dhcp6Parser::make_STRING("max_row_errors", driver.loc_);
3421  }
3422 }
3423  YY_BREAK
3424 case 77:
3426 #line 831 "dhcp6_lexer.ll"
3427 {
3428  switch(driver.ctx_) {
3433  default:
3434  return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_);
3435  }
3436 }
3437  YY_BREAK
3438 case 78:
3440 #line 842 "dhcp6_lexer.ll"
3441 {
3442  switch(driver.ctx_) {
3447  default:
3448  return isc::dhcp::Dhcp6Parser::make_STRING("min-preferred-lifetime", driver.loc_);
3449  }
3450 }
3451  YY_BREAK
3452 case 79:
3454 #line 853 "dhcp6_lexer.ll"
3455 {
3456  switch(driver.ctx_) {
3461  default:
3462  return isc::dhcp::Dhcp6Parser::make_STRING("max-preferred-lifetime", driver.loc_);
3463  }
3464 }
3465  YY_BREAK
3466 case 80:
3468 #line 864 "dhcp6_lexer.ll"
3469 {
3470  switch(driver.ctx_) {
3474  return isc::dhcp::Dhcp6Parser::make_VALID_LIFETIME(driver.loc_);
3475  default:
3476  return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_);
3477  }
3478 }
3479  YY_BREAK
3480 case 81:
3482 #line 875 "dhcp6_lexer.ll"
3483 {
3484  switch(driver.ctx_) {
3489  default:
3490  return isc::dhcp::Dhcp6Parser::make_STRING("min-valid-lifetime", driver.loc_);
3491  }
3492 }
3493  YY_BREAK
3494 case 82:
3496 #line 886 "dhcp6_lexer.ll"
3497 {
3498  switch(driver.ctx_) {
3503  default:
3504  return isc::dhcp::Dhcp6Parser::make_STRING("max-valid-lifetime", driver.loc_);
3505  }
3506 }
3507  YY_BREAK
3508 case 83:
3510 #line 897 "dhcp6_lexer.ll"
3511 {
3512  switch(driver.ctx_) {
3516  return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_);
3517  default:
3518  return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_);
3519  }
3520 }
3521  YY_BREAK
3522 case 84:
3524 #line 908 "dhcp6_lexer.ll"
3525 {
3526  switch(driver.ctx_) {
3530  return isc::dhcp::Dhcp6Parser::make_REBIND_TIMER(driver.loc_);
3531  default:
3532  return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_);
3533  }
3534 }
3535  YY_BREAK
3536 case 85:
3538 #line 919 "dhcp6_lexer.ll"
3539 {
3540  switch(driver.ctx_) {
3543  default:
3544  return isc::dhcp::Dhcp6Parser::make_STRING("decline-probation-period", driver.loc_);
3545  }
3546 }
3547  YY_BREAK
3548 case 86:
3550 #line 928 "dhcp6_lexer.ll"
3551 {
3552  switch(driver.ctx_) {
3554  return isc::dhcp::Dhcp6Parser::make_SERVER_TAG(driver.loc_);
3555  default:
3556  return isc::dhcp::Dhcp6Parser::make_STRING("server-tag", driver.loc_);
3557  }
3558 }
3559  YY_BREAK
3560 case 87:
3562 #line 937 "dhcp6_lexer.ll"
3563 {
3564  switch(driver.ctx_) {
3567  default:
3568  return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3569  }
3570 }
3571  YY_BREAK
3572 case 88:
3574 #line 946 "dhcp6_lexer.ll"
3575 {
3576  switch(driver.ctx_) {
3579  default:
3580  return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3581  }
3582 }
3583  YY_BREAK
3584 case 89:
3586 #line 955 "dhcp6_lexer.ll"
3587 {
3588  switch(driver.ctx_) {
3593  default:
3594  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-send-updates", driver.loc_);
3595  }
3596 }
3597  YY_BREAK
3598 case 90:
3600 #line 966 "dhcp6_lexer.ll"
3601 {
3602  switch(driver.ctx_) {
3607  default:
3608  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-no-update", driver.loc_);
3609  }
3610 }
3611  YY_BREAK
3612 case 91:
3614 #line 977 "dhcp6_lexer.ll"
3615 {
3616  switch(driver.ctx_) {
3621  default:
3622  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-client-update", driver.loc_);
3623  }
3624 }
3625  YY_BREAK
3626 case 92:
3628 #line 988 "dhcp6_lexer.ll"
3629 {
3630  switch(driver.ctx_) {
3635  default:
3636  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3637  }
3638 }
3639  YY_BREAK
3640 case 93:
3642 #line 999 "dhcp6_lexer.ll"
3643 {
3644  switch(driver.ctx_) {
3649  default:
3650  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-generated-prefix", driver.loc_);
3651  }
3652 }
3653  YY_BREAK
3654 case 94:
3656 #line 1010 "dhcp6_lexer.ll"
3657 {
3658  switch(driver.ctx_) {
3663  default:
3664  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
3665  }
3666 }
3667  YY_BREAK
3668 case 95:
3670 #line 1021 "dhcp6_lexer.ll"
3671 {
3672  switch(driver.ctx_) {
3677  default:
3678  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-update-on-renew", driver.loc_);
3679  }
3680 }
3681  YY_BREAK
3682 case 96:
3684 #line 1032 "dhcp6_lexer.ll"
3685 {
3686  switch(driver.ctx_) {
3691  default:
3692  return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
3693  }
3694 }
3695  YY_BREAK
3696 case 97:
3698 #line 1044 "dhcp6_lexer.ll"
3699 {
3700  switch(driver.ctx_) {
3703  return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_);
3704  default:
3705  return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_);
3706  }
3707 }
3708  YY_BREAK
3709 case 98:
3711 #line 1054 "dhcp6_lexer.ll"
3712 {
3713  switch(driver.ctx_) {
3718  default:
3719  return isc::dhcp::Dhcp6Parser::make_STRING("store-extended-info", driver.loc_);
3720  }
3721 }
3722  YY_BREAK
3723 case 99:
3725 #line 1065 "dhcp6_lexer.ll"
3726 {
3727  switch (driver.ctx_) {
3729  return Dhcp6Parser::make_SHARED_NETWORKS(driver.loc_);
3730  default:
3731  return Dhcp6Parser::make_STRING("shared-networks", driver.loc_);
3732  }
3733 }
3734  YY_BREAK
3735 case 100:
3737 #line 1074 "dhcp6_lexer.ll"
3738 {
3739  switch(driver.ctx_) {
3741  return isc::dhcp::Dhcp6Parser::make_OPTION_DEF(driver.loc_);
3742  default:
3743  return isc::dhcp::Dhcp6Parser::make_STRING("option-def", driver.loc_);
3744  }
3745 }
3746  YY_BREAK
3747 case 101:
3749 #line 1083 "dhcp6_lexer.ll"
3750 {
3751  switch(driver.ctx_) {
3759  return isc::dhcp::Dhcp6Parser::make_OPTION_DATA(driver.loc_);
3760  default:
3761  return isc::dhcp::Dhcp6Parser::make_STRING("option-data", driver.loc_);
3762  }
3763 }
3764  YY_BREAK
3765 case 102:
3767 #line 1098 "dhcp6_lexer.ll"
3768 {
3769  switch(driver.ctx_) {
3778  return isc::dhcp::Dhcp6Parser::make_NAME(driver.loc_);
3779  default:
3780  return isc::dhcp::Dhcp6Parser::make_STRING("name", driver.loc_);
3781  }
3782 }
3783  YY_BREAK
3784 case 103:
3786 #line 1114 "dhcp6_lexer.ll"
3787 {
3788  switch(driver.ctx_) {
3790  return isc::dhcp::Dhcp6Parser::make_DATA(driver.loc_);
3791  default:
3792  return isc::dhcp::Dhcp6Parser::make_STRING("data", driver.loc_);
3793  }
3794 }
3795  YY_BREAK
3796 case 104:
3798 #line 1123 "dhcp6_lexer.ll"
3799 {
3800  switch(driver.ctx_) {
3802  return isc::dhcp::Dhcp6Parser::make_ALWAYS_SEND(driver.loc_);
3803  default:
3804  return isc::dhcp::Dhcp6Parser::make_STRING("always-send", driver.loc_);
3805  }
3806 }
3807  YY_BREAK
3808 case 105:
3810 #line 1132 "dhcp6_lexer.ll"
3811 {
3812  switch(driver.ctx_) {
3814  return isc::dhcp::Dhcp6Parser::make_POOLS(driver.loc_);
3815  default:
3816  return isc::dhcp::Dhcp6Parser::make_STRING("pools", driver.loc_);
3817  }
3818 }
3819  YY_BREAK
3820 case 106:
3822 #line 1141 "dhcp6_lexer.ll"
3823 {
3824  switch(driver.ctx_) {
3826  return isc::dhcp::Dhcp6Parser::make_PD_POOLS(driver.loc_);
3827  default:
3828  return isc::dhcp::Dhcp6Parser::make_STRING("pd-pools", driver.loc_);
3829  }
3830 }
3831  YY_BREAK
3832 case 107:
3834 #line 1150 "dhcp6_lexer.ll"
3835 {
3836  switch(driver.ctx_) {
3838  return isc::dhcp::Dhcp6Parser::make_PREFIX(driver.loc_);
3839  default:
3840  return isc::dhcp::Dhcp6Parser::make_STRING("prefix", driver.loc_);
3841  }
3842 }
3843  YY_BREAK
3844 case 108:
3846 #line 1159 "dhcp6_lexer.ll"
3847 {
3848  switch(driver.ctx_) {
3850  return isc::dhcp::Dhcp6Parser::make_PREFIX_LEN(driver.loc_);
3851  default:
3852  return isc::dhcp::Dhcp6Parser::make_STRING("prefix-len", driver.loc_);
3853  }
3854 }
3855  YY_BREAK
3856 case 109:
3858 #line 1168 "dhcp6_lexer.ll"
3859 {
3860  switch(driver.ctx_) {
3863  default:
3864  return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix", driver.loc_);
3865  }
3866 }
3867  YY_BREAK
3868 case 110:
3870 #line 1177 "dhcp6_lexer.ll"
3871 {
3872  switch(driver.ctx_) {
3875  default:
3876  return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix-len", driver.loc_);
3877  }
3878 }
3879  YY_BREAK
3880 case 111:
3882 #line 1186 "dhcp6_lexer.ll"
3883 {
3884  switch(driver.ctx_) {
3886  return isc::dhcp::Dhcp6Parser::make_DELEGATED_LEN(driver.loc_);
3887  default:
3888  return isc::dhcp::Dhcp6Parser::make_STRING("delegated-len", driver.loc_);
3889  }
3890 }
3891  YY_BREAK
3892 case 112:
3894 #line 1195 "dhcp6_lexer.ll"
3895 {
3896  switch(driver.ctx_) {
3898  return isc::dhcp::Dhcp6Parser::make_POOL(driver.loc_);
3899  default:
3900  return isc::dhcp::Dhcp6Parser::make_STRING("pool", driver.loc_);
3901  }
3902 }
3903  YY_BREAK
3904 case 113:
3906 #line 1204 "dhcp6_lexer.ll"
3907 {
3908  switch(driver.ctx_) {
3925  return isc::dhcp::Dhcp6Parser::make_USER_CONTEXT(driver.loc_);
3926  default:
3927  return isc::dhcp::Dhcp6Parser::make_STRING("user-context", driver.loc_);
3928  }
3929 }
3930  YY_BREAK
3931 case 114:
3933 #line 1228 "dhcp6_lexer.ll"
3934 {
3935  switch(driver.ctx_) {
3952  return isc::dhcp::Dhcp6Parser::make_COMMENT(driver.loc_);
3953  default:
3954  return isc::dhcp::Dhcp6Parser::make_STRING("comment", driver.loc_);
3955  }
3956 }
3957  YY_BREAK
3958 case 115:
3960 #line 1252 "dhcp6_lexer.ll"
3961 {
3962  switch(driver.ctx_) {
3964  return isc::dhcp::Dhcp6Parser::make_SUBNET(driver.loc_);
3965  default:
3966  return isc::dhcp::Dhcp6Parser::make_STRING("subnet", driver.loc_);
3967  }
3968 }
3969  YY_BREAK
3970 case 116:
3972 #line 1261 "dhcp6_lexer.ll"
3973 {
3974  switch(driver.ctx_) {
3977  return isc::dhcp::Dhcp6Parser::make_INTERFACE(driver.loc_);
3978  default:
3979  return isc::dhcp::Dhcp6Parser::make_STRING("interface", driver.loc_);
3980  }
3981 }
3982  YY_BREAK
3983 case 117:
3985 #line 1271 "dhcp6_lexer.ll"
3986 {
3987  switch(driver.ctx_) {
3990  return isc::dhcp::Dhcp6Parser::make_INTERFACE_ID(driver.loc_);
3991  default:
3992  return isc::dhcp::Dhcp6Parser::make_STRING("interface-id", driver.loc_);
3993  }
3994 }
3995  YY_BREAK
3996 case 118:
3998 #line 1281 "dhcp6_lexer.ll"
3999 {
4000  switch(driver.ctx_) {
4002  return isc::dhcp::Dhcp6Parser::make_ID(driver.loc_);
4003  default:
4004  return isc::dhcp::Dhcp6Parser::make_STRING("id", driver.loc_);
4005  }
4006 }
4007  YY_BREAK
4008 case 119:
4010 #line 1290 "dhcp6_lexer.ll"
4011 {
4012  switch(driver.ctx_) {
4015  return isc::dhcp::Dhcp6Parser::make_RAPID_COMMIT(driver.loc_);
4016  default:
4017  return isc::dhcp::Dhcp6Parser::make_STRING("rapid-commit", driver.loc_);
4018  }
4019 }
4020  YY_BREAK
4021 case 120:
4023 #line 1300 "dhcp6_lexer.ll"
4024 {
4025  switch(driver.ctx_) {
4030  default:
4031  return isc::dhcp::Dhcp6Parser::make_STRING("reservation-mode", driver.loc_);
4032  }
4033 }
4034  YY_BREAK
4035 case 121:
4037 #line 1311 "dhcp6_lexer.ll"
4038 {
4039  switch(driver.ctx_) {
4041  return isc::dhcp::Dhcp6Parser::make_DISABLED(driver.loc_);
4042  default:
4043  return isc::dhcp::Dhcp6Parser::make_STRING("disabled", driver.loc_);
4044  }
4045 }
4046  YY_BREAK
4047 case 122:
4049 #line 1320 "dhcp6_lexer.ll"
4050 {
4051  switch(driver.ctx_) {
4053  return isc::dhcp::Dhcp6Parser::make_DISABLED(driver.loc_);
4054  default:
4055  return isc::dhcp::Dhcp6Parser::make_STRING("off", driver.loc_);
4056  }
4057 }
4058  YY_BREAK
4059 case 123:
4061 #line 1329 "dhcp6_lexer.ll"
4062 {
4063  switch(driver.ctx_) {
4065  return isc::dhcp::Dhcp6Parser::make_OUT_OF_POOL(driver.loc_);
4066  default:
4067  return isc::dhcp::Dhcp6Parser::make_STRING("out-of-pool", driver.loc_);
4068  }
4069 }
4070  YY_BREAK
4071 case 124:
4073 #line 1338 "dhcp6_lexer.ll"
4074 {
4075  switch(driver.ctx_) {
4077  return isc::dhcp::Dhcp6Parser::make_GLOBAL(driver.loc_);
4078  default:
4079  return isc::dhcp::Dhcp6Parser::make_STRING("global", driver.loc_);
4080  }
4081 }
4082  YY_BREAK
4083 case 125:
4085 #line 1347 "dhcp6_lexer.ll"
4086 {
4087  switch(driver.ctx_) {
4089  return isc::dhcp::Dhcp6Parser::make_ALL(driver.loc_);
4090  default:
4091  return isc::dhcp::Dhcp6Parser::make_STRING("all", driver.loc_);
4092  }
4093 }
4094  YY_BREAK
4095 case 126:
4097 #line 1356 "dhcp6_lexer.ll"
4098 {
4099  switch(driver.ctx_) {
4104  default:
4105  return isc::dhcp::Dhcp6Parser::make_STRING("reservations-global", driver.loc_);
4106  }
4107 }
4108  YY_BREAK
4109 case 127:
4111 #line 1367 "dhcp6_lexer.ll"
4112 {
4113  switch(driver.ctx_) {
4118  default:
4119  return isc::dhcp::Dhcp6Parser::make_STRING("reservations-in-subnet", driver.loc_);
4120  }
4121 }
4122  YY_BREAK
4123 case 128:
4125 #line 1378 "dhcp6_lexer.ll"
4126 {
4127  switch(driver.ctx_) {
4132  default:
4133  return isc::dhcp::Dhcp6Parser::make_STRING("reservations-out-of-pool", driver.loc_);
4134  }
4135 }
4136  YY_BREAK
4137 case 129:
4139 #line 1389 "dhcp6_lexer.ll"
4140 {
4141  switch(driver.ctx_) {
4144  return isc::dhcp::Dhcp6Parser::make_CODE(driver.loc_);
4145  default:
4146  return isc::dhcp::Dhcp6Parser::make_STRING("code", driver.loc_);
4147  }
4148 }
4149  YY_BREAK
4150 case 130:
4152 #line 1399 "dhcp6_lexer.ll"
4153 {
4154  switch(driver.ctx_) {
4156  return isc::dhcp::Dhcp6Parser::make_MAC_SOURCES(driver.loc_);
4157  default:
4158  return isc::dhcp::Dhcp6Parser::make_STRING("mac-sources", driver.loc_);
4159  }
4160 }
4161  YY_BREAK
4162 case 131:
4164 #line 1408 "dhcp6_lexer.ll"
4165 {
4166  switch(driver.ctx_) {
4169  default:
4170  return isc::dhcp::Dhcp6Parser::make_STRING("relay-supplied-options", driver.loc_);
4171  }
4172 }
4173  YY_BREAK
4174 case 132:
4176 #line 1417 "dhcp6_lexer.ll"
4177 {
4178  switch(driver.ctx_) {
4181  default:
4182  return isc::dhcp::Dhcp6Parser::make_STRING("host-reservation-identifiers", driver.loc_);
4183  }
4184 }
4185  YY_BREAK
4186 case 133:
4188 #line 1426 "dhcp6_lexer.ll"
4189 {
4190  switch(driver.ctx_) {
4195  default:
4196  return isc::dhcp::Dhcp6Parser::make_STRING("calculate-tee-times", driver.loc_);
4197  }
4198 }
4199  YY_BREAK
4200 case 134:
4202 #line 1437 "dhcp6_lexer.ll"
4203 {
4204  switch(driver.ctx_) {
4208  return isc::dhcp::Dhcp6Parser::make_T1_PERCENT(driver.loc_);
4209  default:
4210  return isc::dhcp::Dhcp6Parser::make_STRING("t1-percent", driver.loc_);
4211  }
4212 }
4213  YY_BREAK
4214 case 135:
4216 #line 1448 "dhcp6_lexer.ll"
4217 {
4218  switch(driver.ctx_) {
4222  return isc::dhcp::Dhcp6Parser::make_T2_PERCENT(driver.loc_);
4223  default:
4224  return isc::dhcp::Dhcp6Parser::make_STRING("t2-percent", driver.loc_);
4225  }
4226 }
4227  YY_BREAK
4228 case 136:
4230 #line 1459 "dhcp6_lexer.ll"
4231 {
4232  switch(driver.ctx_) {
4237  default:
4238  return isc::dhcp::Dhcp6Parser::make_STRING("cache-threshold", driver.loc_);
4239  }
4240 }
4241  YY_BREAK
4242 case 137:
4244 #line 1470 "dhcp6_lexer.ll"
4245 {
4246  switch(driver.ctx_) {
4250  return isc::dhcp::Dhcp6Parser::make_CACHE_MAX_AGE(driver.loc_);
4251  default:
4252  return isc::dhcp::Dhcp6Parser::make_STRING("cache-max-age", driver.loc_);
4253  }
4254 }
4255  YY_BREAK
4256 case 138:
4258 #line 1481 "dhcp6_lexer.ll"
4259 {
4260  switch(driver.ctx_) {
4262  return isc::dhcp::Dhcp6Parser::make_LOGGERS(driver.loc_);
4263  default:
4264  return isc::dhcp::Dhcp6Parser::make_STRING("loggers", driver.loc_);
4265  }
4266 }
4267  YY_BREAK
4268 case 139:
4270 #line 1490 "dhcp6_lexer.ll"
4271 {
4272  switch(driver.ctx_) {
4274  return isc::dhcp::Dhcp6Parser::make_OUTPUT_OPTIONS(driver.loc_);
4275  default:
4276  return isc::dhcp::Dhcp6Parser::make_STRING("output_options", driver.loc_);
4277  }
4278 }
4279  YY_BREAK
4280 case 140:
4282 #line 1499 "dhcp6_lexer.ll"
4283 {
4284  switch(driver.ctx_) {
4286  return isc::dhcp::Dhcp6Parser::make_OUTPUT(driver.loc_);
4287  default:
4288  return isc::dhcp::Dhcp6Parser::make_STRING("output", driver.loc_);
4289  }
4290 }
4291  YY_BREAK
4292 case 141:
4294 #line 1508 "dhcp6_lexer.ll"
4295 {
4296  switch(driver.ctx_) {
4298  return isc::dhcp::Dhcp6Parser::make_FLUSH(driver.loc_);
4299  default:
4300  return isc::dhcp::Dhcp6Parser::make_STRING("flush", driver.loc_);
4301  }
4302 }
4303  YY_BREAK
4304 case 142:
4306 #line 1517 "dhcp6_lexer.ll"
4307 {
4308  switch(driver.ctx_) {
4310  return isc::dhcp::Dhcp6Parser::make_MAXSIZE(driver.loc_);
4311  default:
4312  return isc::dhcp::Dhcp6Parser::make_STRING("maxsize", driver.loc_);
4313  }
4314 }
4315  YY_BREAK
4316 case 143:
4318 #line 1526 "dhcp6_lexer.ll"
4319 {
4320  switch(driver.ctx_) {
4322  return isc::dhcp::Dhcp6Parser::make_MAXVER(driver.loc_);
4323  default:
4324  return isc::dhcp::Dhcp6Parser::make_STRING("maxver", driver.loc_);
4325  }
4326 }
4327  YY_BREAK
4328 case 144:
4330 #line 1535 "dhcp6_lexer.ll"
4331 {
4332  switch(driver.ctx_) {
4334  return isc::dhcp::Dhcp6Parser::make_PATTERN(driver.loc_);
4335  default:
4336  return isc::dhcp::Dhcp6Parser::make_STRING("pattern", driver.loc_);
4337  }
4338 }
4339  YY_BREAK
4340 case 145:
4342 #line 1544 "dhcp6_lexer.ll"
4343 {
4344  switch(driver.ctx_) {
4346  return isc::dhcp::Dhcp6Parser::make_DEBUGLEVEL(driver.loc_);
4347  default:
4348  return isc::dhcp::Dhcp6Parser::make_STRING("debuglevel", driver.loc_);
4349  }
4350 }
4351  YY_BREAK
4352 case 146:
4354 #line 1553 "dhcp6_lexer.ll"
4355 {
4356  switch(driver.ctx_) {
4358  return isc::dhcp::Dhcp6Parser::make_SEVERITY(driver.loc_);
4359  default:
4360  return isc::dhcp::Dhcp6Parser::make_STRING("severity", driver.loc_);
4361  }
4362 }
4363  YY_BREAK
4364 case 147:
4366 #line 1562 "dhcp6_lexer.ll"
4367 {
4368  switch(driver.ctx_) {
4371  return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASSES(driver.loc_);
4372  default:
4373  return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", driver.loc_);
4374  }
4375 }
4376  YY_BREAK
4377 case 148:
4379 #line 1572 "dhcp6_lexer.ll"
4380 {
4381  switch(driver.ctx_) {
4387  default:
4388  return isc::dhcp::Dhcp6Parser::make_STRING("require-client-classes", driver.loc_);
4389  }
4390 }
4391  YY_BREAK
4392 case 149:
4394 #line 1584 "dhcp6_lexer.ll"
4395 {
4396  switch(driver.ctx_) {
4402  return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASS(driver.loc_);
4403  default:
4404  return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_);
4405  }
4406 }
4407  YY_BREAK
4408 case 150:
4410 #line 1597 "dhcp6_lexer.ll"
4411 {
4412  switch(driver.ctx_) {
4414  return isc::dhcp::Dhcp6Parser::make_TEST(driver.loc_);
4415  default:
4416  return isc::dhcp::Dhcp6Parser::make_STRING("test", driver.loc_);
4417  }
4418 }
4419  YY_BREAK
4420 case 151:
4422 #line 1606 "dhcp6_lexer.ll"
4423 {
4424  switch(driver.ctx_) {
4427  default:
4428  return isc::dhcp::Dhcp6Parser::make_STRING("only-if-required", driver.loc_);
4429  }
4430 }
4431  YY_BREAK
4432 case 152:
4434 #line 1615 "dhcp6_lexer.ll"
4435 {
4436  switch(driver.ctx_) {
4439  return isc::dhcp::Dhcp6Parser::make_RESERVATIONS(driver.loc_);
4440  default:
4441  return isc::dhcp::Dhcp6Parser::make_STRING("reservations", driver.loc_);
4442  }
4443 }
4444  YY_BREAK
4445 case 153:
4447 #line 1625 "dhcp6_lexer.ll"
4448 {
4449  switch(driver.ctx_) {
4452  return isc::dhcp::Dhcp6Parser::make_IP_ADDRESSES(driver.loc_);
4453  default:
4454  return isc::dhcp::Dhcp6Parser::make_STRING("ip-addresses", driver.loc_);
4455  }
4456 }
4457  YY_BREAK
4458 case 154:
4460 #line 1635 "dhcp6_lexer.ll"
4461 {
4462  switch(driver.ctx_) {
4464  return isc::dhcp::Dhcp6Parser::make_PREFIXES(driver.loc_);
4465  default:
4466  return isc::dhcp::Dhcp6Parser::make_STRING("prefixes", driver.loc_);
4467  }
4468 }
4469  YY_BREAK
4470 case 155:
4472 #line 1644 "dhcp6_lexer.ll"
4473 {
4474  switch(driver.ctx_) {
4478  return isc::dhcp::Dhcp6Parser::make_DUID(driver.loc_);
4479  default:
4480  return isc::dhcp::Dhcp6Parser::make_STRING("duid", driver.loc_);
4481  }
4482 }
4483  YY_BREAK
4484 case 156:
4486 #line 1655 "dhcp6_lexer.ll"
4487 {
4488  switch(driver.ctx_) {
4491  return isc::dhcp::Dhcp6Parser::make_HW_ADDRESS(driver.loc_);
4492  default:
4493  return isc::dhcp::Dhcp6Parser::make_STRING("hw-address", driver.loc_);
4494  }
4495 }
4496  YY_BREAK
4497 case 157:
4499 #line 1665 "dhcp6_lexer.ll"
4500 {
4501  switch(driver.ctx_) {
4503  return isc::dhcp::Dhcp6Parser::make_HOSTNAME(driver.loc_);
4504  default:
4505  return isc::dhcp::Dhcp6Parser::make_STRING("hostname", driver.loc_);
4506  }
4507 }
4508  YY_BREAK
4509 case 158:
4511 #line 1674 "dhcp6_lexer.ll"
4512 {
4513  switch(driver.ctx_) {
4516  return isc::dhcp::Dhcp6Parser::make_FLEX_ID(driver.loc_);
4517  default:
4518  return isc::dhcp::Dhcp6Parser::make_STRING("flex-id", driver.loc_);
4519  }
4520 }
4521  YY_BREAK
4522 case 159:
4524 #line 1684 "dhcp6_lexer.ll"
4525 {
4526  switch(driver.ctx_) {
4529  return isc::dhcp::Dhcp6Parser::make_SPACE(driver.loc_);
4530  default:
4531  return isc::dhcp::Dhcp6Parser::make_STRING("space", driver.loc_);
4532  }
4533 }
4534  YY_BREAK
4535 case 160:
4537 #line 1694 "dhcp6_lexer.ll"
4538 {
4539  switch(driver.ctx_) {
4541  return isc::dhcp::Dhcp6Parser::make_CSV_FORMAT(driver.loc_);
4542  default:
4543  return isc::dhcp::Dhcp6Parser::make_STRING("csv-format", driver.loc_);
4544  }
4545 }
4546  YY_BREAK
4547 case 161:
4549 #line 1703 "dhcp6_lexer.ll"
4550 {
4551  switch(driver.ctx_) {
4553  return isc::dhcp::Dhcp6Parser::make_RECORD_TYPES(driver.loc_);
4554  default:
4555  return isc::dhcp::Dhcp6Parser::make_STRING("record-types", driver.loc_);
4556  }
4557 }
4558  YY_BREAK
4559 case 162:
4561 #line 1712 "dhcp6_lexer.ll"
4562 {
4563  switch(driver.ctx_) {
4565  return isc::dhcp::Dhcp6Parser::make_ENCAPSULATE(driver.loc_);
4566  default:
4567  return isc::dhcp::Dhcp6Parser::make_STRING("encapsulate", driver.loc_);
4568  }
4569 }
4570  YY_BREAK
4571 case 163:
4573 #line 1721 "dhcp6_lexer.ll"
4574 {
4575  switch(driver.ctx_) {
4577  return isc::dhcp::Dhcp6Parser::make_ARRAY(driver.loc_);
4578  default:
4579  return isc::dhcp::Dhcp6Parser::make_STRING("array", driver.loc_);
4580  }
4581 }
4582  YY_BREAK
4583 case 164:
4585 #line 1730 "dhcp6_lexer.ll"
4586 {
4587  switch(driver.ctx_) {
4590  return isc::dhcp::Dhcp6Parser::make_RELAY(driver.loc_);
4591  default:
4592  return isc::dhcp::Dhcp6Parser::make_STRING("relay", driver.loc_);
4593  }
4594 }
4595  YY_BREAK
4596 case 165:
4598 #line 1740 "dhcp6_lexer.ll"
4599 {
4600  switch(driver.ctx_) {
4602  return isc::dhcp::Dhcp6Parser::make_IP_ADDRESS(driver.loc_);
4603  default:
4604  return isc::dhcp::Dhcp6Parser::make_STRING("ip-address", driver.loc_);
4605  }
4606 }
4607  YY_BREAK
4608 case 166:
4610 #line 1749 "dhcp6_lexer.ll"
4611 {
4612  switch(driver.ctx_) {
4615  default:
4616  return isc::dhcp::Dhcp6Parser::make_STRING("hooks-libraries", driver.loc_);
4617  }
4618 }
4619  YY_BREAK
4620 case 167:
4622 #line 1758 "dhcp6_lexer.ll"
4623 {
4624  switch(driver.ctx_) {
4626  return isc::dhcp::Dhcp6Parser::make_PARAMETERS(driver.loc_);
4627  default:
4628  return isc::dhcp::Dhcp6Parser::make_STRING("parameters", driver.loc_);
4629  }
4630 }
4631  YY_BREAK
4632 case 168:
4634 #line 1767 "dhcp6_lexer.ll"
4635 {
4636  switch(driver.ctx_) {
4638  return isc::dhcp::Dhcp6Parser::make_LIBRARY(driver.loc_);
4639  default:
4640  return isc::dhcp::Dhcp6Parser::make_STRING("library", driver.loc_);
4641  }
4642 }
4643  YY_BREAK
4644 case 169:
4646 #line 1776 "dhcp6_lexer.ll"
4647 {
4648  switch(driver.ctx_) {
4650  return isc::dhcp::Dhcp6Parser::make_SERVER_ID(driver.loc_);
4651  default:
4652  return isc::dhcp::Dhcp6Parser::make_STRING("server-id", driver.loc_);
4653  }
4654 }
4655  YY_BREAK
4656 case 170:
4658 #line 1785 "dhcp6_lexer.ll"
4659 {
4660  switch(driver.ctx_) {
4662  return isc::dhcp::Dhcp6Parser::make_LLT(driver.loc_);
4663  default:
4664  return isc::dhcp::Dhcp6Parser::make_STRING("LLT", driver.loc_);
4665  }
4666 }
4667  YY_BREAK
4668 case 171:
4670 #line 1794 "dhcp6_lexer.ll"
4671 {
4672  switch(driver.ctx_) {
4674  return isc::dhcp::Dhcp6Parser::make_EN(driver.loc_);
4675  default:
4676  return isc::dhcp::Dhcp6Parser::make_STRING("EN", driver.loc_);
4677  }
4678 }
4679  YY_BREAK
4680 case 172:
4682 #line 1803 "dhcp6_lexer.ll"
4683 {
4684  switch(driver.ctx_) {
4686  return isc::dhcp::Dhcp6Parser::make_LL(driver.loc_);
4687  default:
4688  return isc::dhcp::Dhcp6Parser::make_STRING("LL", driver.loc_);
4689  }
4690 }
4691  YY_BREAK
4692 case 173:
4694 #line 1812 "dhcp6_lexer.ll"
4695 {
4696  switch(driver.ctx_) {
4698  return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(driver.loc_);
4699  default:
4700  return isc::dhcp::Dhcp6Parser::make_STRING("identifier", driver.loc_);
4701  }
4702 }
4703  YY_BREAK
4704 case 174:
4706 #line 1821 "dhcp6_lexer.ll"
4707 {
4708  switch(driver.ctx_) {
4710  return isc::dhcp::Dhcp6Parser::make_HTYPE(driver.loc_);
4711  default:
4712  return isc::dhcp::Dhcp6Parser::make_STRING("htype", driver.loc_);
4713  }
4714 }
4715  YY_BREAK
4716 case 175:
4718 #line 1830 "dhcp6_lexer.ll"
4719 {
4720  switch(driver.ctx_) {
4722  return isc::dhcp::Dhcp6Parser::make_TIME(driver.loc_);
4723  default:
4724  return isc::dhcp::Dhcp6Parser::make_STRING("time", driver.loc_);
4725  }
4726 }
4727  YY_BREAK
4728 case 176:
4730 #line 1839 "dhcp6_lexer.ll"
4731 {
4732  switch(driver.ctx_) {
4734  return isc::dhcp::Dhcp6Parser::make_ENTERPRISE_ID(driver.loc_);
4735  default:
4736  return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", driver.loc_);
4737  }
4738 }
4739  YY_BREAK
4740 case 177:
4742 #line 1848 "dhcp6_lexer.ll"
4743 {
4744  switch(driver.ctx_) {
4747  default:
4748  return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", driver.loc_);
4749  }
4750 }
4751  YY_BREAK
4752 case 178:
4754 #line 1857 "dhcp6_lexer.ll"
4755 {
4756  switch(driver.ctx_) {
4759  default:
4760  return isc::dhcp::Dhcp6Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
4761  }
4762 }
4763  YY_BREAK
4764 case 179:
4766 #line 1866 "dhcp6_lexer.ll"
4767 {
4768  switch(driver.ctx_) {
4771  default:
4772  return isc::dhcp::Dhcp6Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
4773  }
4774 }
4775  YY_BREAK
4776 case 180:
4778 #line 1875 "dhcp6_lexer.ll"
4779 {
4780  switch(driver.ctx_) {
4783  default:
4784  return isc::dhcp::Dhcp6Parser::make_STRING("hold-reclaimed-time", driver.loc_);
4785  }
4786 }
4787  YY_BREAK
4788 case 181:
4790 #line 1884 "dhcp6_lexer.ll"
4791 {
4792  switch(driver.ctx_) {
4795  default:
4796  return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-leases", driver.loc_);
4797  }
4798 }
4799  YY_BREAK
4800 case 182:
4802 #line 1893 "dhcp6_lexer.ll"
4803 {
4804  switch(driver.ctx_) {
4807  default:
4808  return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-time", driver.loc_);
4809  }
4810 }
4811  YY_BREAK
4812 case 183:
4814 #line 1902 "dhcp6_lexer.ll"
4815 {
4816  switch(driver.ctx_) {
4819  default:
4820  return isc::dhcp::Dhcp6Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
4821  }
4822 }
4823  YY_BREAK
4824 case 184:
4826 #line 1911 "dhcp6_lexer.ll"
4827 {
4828  switch(driver.ctx_) {
4830  return isc::dhcp::Dhcp6Parser::make_DHCP4O6_PORT(driver.loc_);
4831  default:
4832  return isc::dhcp::Dhcp6Parser::make_STRING("dhcp4o6-port", driver.loc_);
4833  }
4834 }
4835  YY_BREAK
4836 case 185:
4838 #line 1920 "dhcp6_lexer.ll"
4839 {
4840  switch(driver.ctx_) {
4843  default:
4844  return isc::dhcp::Dhcp6Parser::make_STRING("multi-threading", driver.loc_);
4845  }
4846 }
4847  YY_BREAK
4848 case 186:
4850 #line 1929 "dhcp6_lexer.ll"
4851 {
4852  switch(driver.ctx_) {
4855  default:
4856  return isc::dhcp::Dhcp6Parser::make_STRING("enable-multi-threading", driver.loc_);
4857  }
4858 }
4859  YY_BREAK
4860 case 187:
4862 #line 1938 "dhcp6_lexer.ll"
4863 {
4864  switch(driver.ctx_) {
4867  default:
4868  return isc::dhcp::Dhcp6Parser::make_STRING("thread-pool-size", driver.loc_);
4869  }
4870 }
4871  YY_BREAK
4872 case 188:
4874 #line 1947 "dhcp6_lexer.ll"
4875 {
4876  switch(driver.ctx_) {
4879  default:
4880  return isc::dhcp::Dhcp6Parser::make_STRING("packet-queue-size", driver.loc_);
4881  }
4882 }
4883  YY_BREAK
4884 case 189:
4886 #line 1956 "dhcp6_lexer.ll"
4887 {
4888  switch(driver.ctx_) {
4890  return isc::dhcp::Dhcp6Parser::make_CONTROL_SOCKET(driver.loc_);
4891  default:
4892  return isc::dhcp::Dhcp6Parser::make_STRING("control-socket", driver.loc_);
4893  }
4894 }
4895  YY_BREAK
4896 case 190:
4898 #line 1965 "dhcp6_lexer.ll"
4899 {
4900  switch(driver.ctx_) {
4902  return isc::dhcp::Dhcp6Parser::make_SOCKET_TYPE(driver.loc_);
4903  default:
4904  return isc::dhcp::Dhcp6Parser::make_STRING("socket-type", driver.loc_);
4905  }
4906 }
4907  YY_BREAK
4908 case 191:
4910 #line 1974 "dhcp6_lexer.ll"
4911 {
4912  switch(driver.ctx_) {
4914  return isc::dhcp::Dhcp6Parser::make_SOCKET_NAME(driver.loc_);
4915  default:
4916  return isc::dhcp::Dhcp6Parser::make_STRING("socket-name", driver.loc_);
4917  }
4918 }
4919  YY_BREAK
4920 case 192:
4922 #line 1983 "dhcp6_lexer.ll"
4923 {
4924  switch(driver.ctx_) {
4927  default:
4928  return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-queue-control", driver.loc_);
4929  }
4930 }
4931  YY_BREAK
4932 case 193:
4934 #line 1992 "dhcp6_lexer.ll"
4935 {
4936  switch(driver.ctx_) {
4938  return isc::dhcp::Dhcp6Parser::make_ENABLE_QUEUE(driver.loc_);
4939  default:
4940  return isc::dhcp::Dhcp6Parser::make_STRING("enable-queue", driver.loc_);
4941  }
4942 }
4943  YY_BREAK
4944 case 194:
4946 #line 2001 "dhcp6_lexer.ll"
4947 {
4948  switch(driver.ctx_) {
4950  return isc::dhcp::Dhcp6Parser::make_QUEUE_TYPE(driver.loc_);
4951  default:
4952  return isc::dhcp::Dhcp6Parser::make_STRING("queue-type", driver.loc_);
4953  }
4954 }
4955  YY_BREAK
4956 case 195:
4958 #line 2010 "dhcp6_lexer.ll"
4959 {
4960  switch(driver.ctx_) {
4962  return isc::dhcp::Dhcp6Parser::make_CAPACITY(driver.loc_);
4963  default:
4964  return isc::dhcp::Dhcp6Parser::make_STRING("capacity", driver.loc_);
4965  }
4966 }
4967  YY_BREAK
4968 case 196:
4970 #line 2019 "dhcp6_lexer.ll"
4971 {
4972  switch(driver.ctx_) {
4974  return isc::dhcp::Dhcp6Parser::make_DHCP_DDNS(driver.loc_);
4975  default:
4976  return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-ddns", driver.loc_);
4977  }
4978 }
4979  YY_BREAK
4980 case 197:
4982 #line 2028 "dhcp6_lexer.ll"
4983 {
4984  switch(driver.ctx_) {
4987  default:
4988  return isc::dhcp::Dhcp6Parser::make_STRING("ip-reservations-unique", driver.loc_);
4989  }
4990 }
4991  YY_BREAK
4992 case 198:
4994 #line 2037 "dhcp6_lexer.ll"
4995 {
4996  switch(driver.ctx_) {
4998  return isc::dhcp::Dhcp6Parser::make_COMPATIBILITY(driver.loc_);
4999  default:
5000  return isc::dhcp::Dhcp6Parser::make_STRING("compatibility", driver.loc_);
5001  }
5002 }
5003  YY_BREAK
5004 case 199:
5006 #line 2046 "dhcp6_lexer.ll"
5007 {
5008  switch(driver.ctx_) {
5011  default:
5012  return isc::dhcp::Dhcp6Parser::make_STRING("lenient-option-parsing", driver.loc_);
5013  }
5014 }
5015  YY_BREAK
5016 case 200:
5018 #line 2055 "dhcp6_lexer.ll"
5019 {
5020  /* A string has been matched. It contains the actual string and single quotes.
5021  We need to get those quotes out of the way and just use its content, e.g.
5022  for 'foo' we should get foo */
5023  std::string raw(yytext+1);
5024  size_t len = raw.size() - 1;
5025  raw.resize(len);
5026  std::string decoded;
5027  decoded.reserve(len);
5028  for (size_t pos = 0; pos < len; ++pos) {
5029  int b = 0;
5030  char c = raw[pos];
5031  switch (c) {
5032  case '"':
5033  /* impossible condition */
5034  driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
5035  break;
5036  case '\\':
5037  ++pos;
5038  if (pos >= len) {
5039  /* impossible condition */
5040  driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
5041  }
5042  c = raw[pos];
5043  switch (c) {
5044  case '"':
5045  case '\\':
5046  case '/':
5047  decoded.push_back(c);
5048  break;
5049  case 'b':
5050  decoded.push_back('\b');
5051  break;
5052  case 'f':
5053  decoded.push_back('\f');
5054  break;
5055  case 'n':
5056  decoded.push_back('\n');
5057  break;
5058  case 'r':
5059  decoded.push_back('\r');
5060  break;
5061  case 't':
5062  decoded.push_back('\t');
5063  break;
5064  case 'u':
5065  /* support only \u0000 to \u00ff */
5066  ++pos;
5067  if (pos + 4 > len) {
5068  /* impossible condition */
5069  driver.error(driver.loc_,
5070  "Overflow unicode escape in \"" + raw + "\"");
5071  }
5072  if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
5073  driver.error(driver.loc_,
5074  "Unsupported unicode escape in \"" + raw + "\"",
5075  pos + 1);
5076  }
5077  pos += 2;
5078  c = raw[pos];
5079  if ((c >= '0') && (c <= '9')) {
5080  b = (c - '0') << 4;
5081  } else if ((c >= 'A') && (c <= 'F')) {
5082  b = (c - 'A' + 10) << 4;
5083  } else if ((c >= 'a') && (c <= 'f')) {
5084  b = (c - 'a' + 10) << 4;
5085  } else {
5086  /* impossible condition */
5087  driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5088  }
5089  pos++;
5090  c = raw[pos];
5091  if ((c >= '0') && (c <= '9')) {
5092  b |= c - '0';
5093  } else if ((c >= 'A') && (c <= 'F')) {
5094  b |= c - 'A' + 10;
5095  } else if ((c >= 'a') && (c <= 'f')) {
5096  b |= c - 'a' + 10;
5097  } else {
5098  /* impossible condition */
5099  driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5100  }
5101  decoded.push_back(static_cast<char>(b & 0xff));
5102  break;
5103  default:
5104  /* impossible condition */
5105  driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5106  }
5107  break;
5108  default:
5109  if ((c >= 0) && (c < 0x20)) {
5110  /* impossible condition */
5111  driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5112  }
5113  decoded.push_back(c);
5114  }
5115  }
5116 
5117  return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
5118 }
5119  YY_BREAK
5120 case 201:
5121 /* rule 201 can match eol */
5123 #line 2156 "dhcp6_lexer.ll"
5124 {
5125  /* Bad string with a forbidden control character inside */
5126  std::string raw(yytext+1);
5127  size_t len = raw.size() - 1;
5128  size_t pos = 0;
5129  for (; pos < len; ++pos) {
5130  char c = raw[pos];
5131  if ((c >= 0) && (c < 0x20)) {
5132  break;
5133  }
5134  }
5135  driver.error(driver.loc_,
5136  "Invalid control in " + std::string(yytext),
5137  pos + 1);
5138 }
5139  YY_BREAK
5140 case 202:
5141 /* rule 202 can match eol */
5143 #line 2172 "dhcp6_lexer.ll"
5144 {
5145  /* Bad string with a bad escape inside */
5146  std::string raw(yytext+1);
5147  size_t len = raw.size() - 1;
5148  size_t pos = 0;
5149  bool found = false;
5150  for (; pos < len; ++pos) {
5151  if (found) {
5152  break;
5153  }
5154  char c = raw[pos];
5155  if (c == '\\') {
5156  ++pos;
5157  c = raw[pos];
5158  switch (c) {
5159  case '"':
5160  case '\\':
5161  case '/':
5162  case 'b':
5163  case 'f':
5164  case 'n':
5165  case 'r':
5166  case 't':
5167  break;
5168  case 'u':
5169  if ((pos + 4 > len) ||
5170  !std::isxdigit(raw[pos + 1]) ||
5171  !std::isxdigit(raw[pos + 2]) ||
5172  !std::isxdigit(raw[pos + 3]) ||
5173  !std::isxdigit(raw[pos + 4])) {
5174  found = true;
5175  }
5176  break;
5177  default:
5178  found = true;
5179  break;
5180  }
5181  }
5182  }
5183  /* The rule stops on the first " including on \" so add ... in this case */
5184  std::string trailer = "";
5185  if (raw[len - 1] == '\\') {
5186  trailer = "...";
5187  }
5188  driver.error(driver.loc_,
5189  "Bad escape in " + std::string(yytext) + trailer,
5190  pos);
5191 }
5192  YY_BREAK
5193 case 203:
5195 #line 2221 "dhcp6_lexer.ll"
5196 {
5197  /* Bad string with an open escape at the end */
5198  std::string raw(yytext+1);
5199  driver.error(driver.loc_,
5200  "Overflow escape in " + std::string(yytext),
5201  raw.size() + 1);
5202 }
5203  YY_BREAK
5204 case 204:
5206 #line 2229 "dhcp6_lexer.ll"
5207 {
5208  /* Bad string with an open unicode escape at the end */
5209  std::string raw(yytext+1);
5210  size_t pos = raw.size() - 1;
5211  for (; pos > 0; --pos) {
5212  char c = raw[pos];
5213  if (c == 'u') {
5214  break;
5215  }
5216  }
5217  driver.error(driver.loc_,
5218  "Overflow unicode escape in " + std::string(yytext),
5219  pos + 1);
5220 }
5221  YY_BREAK
5222 case 205:
5224 #line 2244 "dhcp6_lexer.ll"
5225 { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
5226  YY_BREAK
5227 case 206:
5229 #line 2245 "dhcp6_lexer.ll"
5230 { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
5231  YY_BREAK
5232 case 207:
5234 #line 2246 "dhcp6_lexer.ll"
5235 { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
5236  YY_BREAK
5237 case 208:
5239 #line 2247 "dhcp6_lexer.ll"
5240 { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
5241  YY_BREAK
5242 case 209:
5244 #line 2248 "dhcp6_lexer.ll"
5245 { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
5246  YY_BREAK
5247 case 210:
5249 #line 2249 "dhcp6_lexer.ll"
5250 { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
5251  YY_BREAK
5252 case 211:
5254 #line 2251 "dhcp6_lexer.ll"
5255 {
5256  /* An integer was found. */
5257  std::string tmp(yytext);
5258  int64_t integer = 0;
5259  try {
5260  /* In substring we want to use negative values (e.g. -1).
5261  In enterprise-id we need to use values up to 0xffffffff.
5262  To cover both of those use cases, we need at least
5263  int64_t. */
5264  integer = boost::lexical_cast<int64_t>(tmp);
5265  } catch (const boost::bad_lexical_cast &) {
5266  driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5267  }
5268 
5269  /* The parser needs the string form as double conversion is no lossless */
5270  return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
5271 }
5272  YY_BREAK
5273 case 212:
5275 #line 2269 "dhcp6_lexer.ll"
5276 {
5277  /* A floating point was found. */
5278  std::string tmp(yytext);
5279  double fp = 0.0;
5280  try {
5281  fp = boost::lexical_cast<double>(tmp);
5282  } catch (const boost::bad_lexical_cast &) {
5283  driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
5284  }
5285 
5286  return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
5287 }
5288  YY_BREAK
5289 case 213:
5291 #line 2282 "dhcp6_lexer.ll"
5292 {
5293  string tmp(yytext);
5294  return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
5295 }
5296  YY_BREAK
5297 case 214:
5299 #line 2287 "dhcp6_lexer.ll"
5300 {
5301  return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
5302 }
5303  YY_BREAK
5304 case 215:
5306 #line 2291 "dhcp6_lexer.ll"
5307 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
5308  YY_BREAK
5309 case 216:
5311 #line 2293 "dhcp6_lexer.ll"
5312 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
5313  YY_BREAK
5314 case 217:
5316 #line 2295 "dhcp6_lexer.ll"
5317 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
5318  YY_BREAK
5319 case 218:
5321 #line 2297 "dhcp6_lexer.ll"
5322 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
5323  YY_BREAK
5324 case YY_STATE_EOF(INITIAL):
5325 #line 2299 "dhcp6_lexer.ll"
5326 {
5327  if (driver.states_.empty()) {
5328  return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
5329  }
5330  driver.loc_ = driver.locs_.back();
5331  driver.locs_.pop_back();
5332  driver.file_ = driver.files_.back();
5333  driver.files_.pop_back();
5334  if (driver.sfile_) {
5335  fclose(driver.sfile_);
5336  driver.sfile_ = 0;
5337  }
5338  if (!driver.sfiles_.empty()) {
5339  driver.sfile_ = driver.sfiles_.back();
5340  driver.sfiles_.pop_back();
5341  }
5342  parser6__delete_buffer(YY_CURRENT_BUFFER);
5343  parser6__switch_to_buffer(driver.states_.back());
5344  driver.states_.pop_back();
5345 
5346  BEGIN(DIR_EXIT);
5347 }
5348  YY_BREAK
5349 case 219:
5351 #line 2322 "dhcp6_lexer.ll"
5352 ECHO;
5353  YY_BREAK
5354 #line 5354 "dhcp6_lexer.cc"
5355 
5356  case YY_END_OF_BUFFER:
5357  {
5358  /* Amount of text matched not including the EOB char. */
5359  int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5360 
5361  /* Undo the effects of YY_DO_BEFORE_ACTION. */
5362  *yy_cp = (yy_hold_char);
5364 
5365  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5366  {
5367  /* We're scanning a new file or input source. It's
5368  * possible that this happened because the user
5369  * just pointed yyin at a new source and called
5370  * yylex(). If so, then we have to assure
5371  * consistency between YY_CURRENT_BUFFER and our
5372  * globals. Here is the right place to do so, because
5373  * this is the first action (other than possibly a
5374  * back-up) that will match for the new input source.
5375  */
5376  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5377 /* %if-c-only */
5378  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
5379 /* %endif */
5380 /* %if-c++-only */
5381 /* %endif */
5382  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5383  }
5384 
5385  /* Note that here we test for yy_c_buf_p "<=" to the position
5386  * of the first EOB in the buffer, since yy_c_buf_p will
5387  * already have been incremented past the NUL character
5388  * (since all states make transitions on EOB to the
5389  * end-of-buffer state). Contrast this with the test
5390  * in input().
5391  */
5392  if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5393  { /* This was really a NUL. */
5394  yy_state_type yy_next_state;
5395 
5396  (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5397 
5398  yy_current_state = yy_get_previous_state( );
5399 
5400  /* Okay, we're now positioned to make the NUL
5401  * transition. We couldn't have
5402  * yy_get_previous_state() go ahead and do it
5403  * for us because it doesn't know how to deal
5404  * with the possibility of jamming (and we don't
5405  * want to build jamming into it because then it
5406  * will run more slowly).
5407  */
5408 
5409  yy_next_state = yy_try_NUL_trans( yy_current_state );
5410 
5411  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5412 
5413  if ( yy_next_state )
5414  {
5415  /* Consume the NUL. */
5416  yy_cp = ++(yy_c_buf_p);
5417  yy_current_state = yy_next_state;
5418  goto yy_match;
5419  }
5420 
5421  else
5422  {
5423 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
5424  yy_cp = (yy_last_accepting_cpos);
5425  yy_current_state = (yy_last_accepting_state);
5426  goto yy_find_action;
5427  }
5428  }
5429 
5430  else switch ( yy_get_next_buffer( ) )
5431  {
5432  case EOB_ACT_END_OF_FILE:
5433  {
5434  (yy_did_buffer_switch_on_eof) = 0;
5435 
5436  if ( yywrap( ) )
5437  {
5438  /* Note: because we've taken care in
5439  * yy_get_next_buffer() to have set up
5440  * yytext, we can now set up
5441  * yy_c_buf_p so that if some total
5442  * hoser (like flex itself) wants to
5443  * call the scanner after we return the
5444  * YY_NULL, it'll still work - another
5445  * YY_NULL will get returned.
5446  */
5447  (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5448 
5449  yy_act = YY_STATE_EOF(YY_START);
5450  goto do_action;
5451  }
5452 
5453  else
5454  {
5455  if ( ! (yy_did_buffer_switch_on_eof) )
5456  YY_NEW_FILE;
5457  }
5458  break;
5459  }
5460 
5461  case EOB_ACT_CONTINUE_SCAN:
5462  (yy_c_buf_p) =
5463  (yytext_ptr) + yy_amount_of_matched_text;
5464 
5465  yy_current_state = yy_get_previous_state( );
5466 
5467  yy_cp = (yy_c_buf_p);
5468  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5469  goto yy_match;
5470 
5471  case EOB_ACT_LAST_MATCH:
5472  (yy_c_buf_p) =
5473  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5474 
5475  yy_current_state = yy_get_previous_state( );
5476 
5477  yy_cp = (yy_c_buf_p);
5478  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
5479  goto yy_find_action;
5480  }
5481  break;
5482  }
5483 
5484  default:
5486  "fatal flex scanner internal error--no action found" );
5487  } /* end of action switch */
5488  } /* end of scanning one token */
5489  } /* end of user's declarations */
5490 } /* end of yylex */
5491 /* %ok-for-header */
5492 
5493 /* %if-c++-only */
5494 /* %not-for-header */
5495 /* %ok-for-header */
5496 
5497 /* %endif */
5498 
5499 /* yy_get_next_buffer - try to read in a new buffer
5500  *
5501  * Returns a code representing an action:
5502  * EOB_ACT_LAST_MATCH -
5503  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5504  * EOB_ACT_END_OF_FILE - end of file
5505  */
5506 /* %if-c-only */
5507 static int yy_get_next_buffer (void)
5508 /* %endif */
5509 /* %if-c++-only */
5510 /* %endif */
5511 {
5512  char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5513  char *source = (yytext_ptr);
5514  int number_to_move, i;
5515  int ret_val;
5516 
5517  if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
5519  "fatal flex scanner internal error--end of buffer missed" );
5520 
5521  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
5522  { /* Don't try to fill the buffer, so this is an EOF. */
5523  if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
5524  {
5525  /* We matched a single character, the EOB, so
5526  * treat this as a final EOF.
5527  */
5528  return EOB_ACT_END_OF_FILE;
5529  }
5530 
5531  else
5532  {
5533  /* We matched some text prior to the EOB, first
5534  * process it.
5535  */
5536  return EOB_ACT_LAST_MATCH;
5537  }
5538  }
5539 
5540  /* Try to read more data. */
5541 
5542  /* First move last chars to start of buffer. */
5543  number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
5544 
5545  for ( i = 0; i < number_to_move; ++i )
5546  *(dest++) = *(source++);
5547 
5548  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
5549  /* don't do the read, it's not guaranteed to return an EOF,
5550  * just force an EOF
5551  */
5552  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
5553 
5554  else
5555  {
5556  int num_to_read =
5557  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
5558 
5559  while ( num_to_read <= 0 )
5560  { /* Not enough room in the buffer - grow it. */
5561 
5562  /* just a shorter name for the current buffer */
5563  YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
5564 
5565  int yy_c_buf_p_offset =
5566  (int) ((yy_c_buf_p) - b->yy_ch_buf);
5567 
5568  if ( b->yy_is_our_buffer )
5569  {
5570  int new_size = b->yy_buf_size * 2;
5571 
5572  if ( new_size <= 0 )
5573  b->yy_buf_size += b->yy_buf_size / 8;
5574  else
5575  b->yy_buf_size *= 2;
5576 
5577  b->yy_ch_buf = (char *)
5578  /* Include room in for 2 EOB chars. */
5579  yyrealloc( (void *) b->yy_ch_buf,
5580  (yy_size_t) (b->yy_buf_size + 2) );
5581  }
5582  else
5583  /* Can't grow it, we don't own it. */
5584  b->yy_ch_buf = NULL;
5585 
5586  if ( ! b->yy_ch_buf )
5588  "fatal error - scanner input buffer overflow" );
5589 
5590  (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
5591 
5592  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
5593  number_to_move - 1;
5594 
5595  }
5596 
5597  if ( num_to_read > YY_READ_BUF_SIZE )
5598  num_to_read = YY_READ_BUF_SIZE;
5599 
5600  /* Read in more data. */
5601  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
5602  (yy_n_chars), num_to_read );
5603 
5604  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5605  }
5606 
5607  if ( (yy_n_chars) == 0 )
5608  {
5609  if ( number_to_move == YY_MORE_ADJ )
5610  {
5611  ret_val = EOB_ACT_END_OF_FILE;
5612  yyrestart( yyin );
5613  }
5614 
5615  else
5616  {
5617  ret_val = EOB_ACT_LAST_MATCH;
5618  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
5620  }
5621  }
5622 
5623  else
5624  ret_val = EOB_ACT_CONTINUE_SCAN;
5625 
5626  if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
5627  /* Extend the array by 50%, plus the number we really need. */
5628  int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
5629  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
5630  (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
5631  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
5632  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
5633  /* "- 2" to take care of EOB's */
5634  YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
5635  }
5636 
5637  (yy_n_chars) += number_to_move;
5638  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
5639  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
5640 
5641  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
5642 
5643  return ret_val;
5644 }
5645 
5646 /* yy_get_previous_state - get the state just before the EOB char was reached */
5647 
5648 /* %if-c-only */
5649 /* %not-for-header */
5650  static yy_state_type yy_get_previous_state (void)
5651 /* %endif */
5652 /* %if-c++-only */
5653 /* %endif */
5654 {
5655  yy_state_type yy_current_state;
5656  char *yy_cp;
5657 
5658 /* %% [15.0] code to get the start state into yy_current_state goes here */
5659  yy_current_state = (yy_start);
5660 
5661  for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
5662  {
5663 /* %% [16.0] code to find the next state goes here */
5664  YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
5665  if ( yy_accept[yy_current_state] )
5666  {
5667  (yy_last_accepting_state) = yy_current_state;
5668  (yy_last_accepting_cpos) = yy_cp;
5669  }
5670  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5671  {
5672  yy_current_state = (int) yy_def[yy_current_state];
5673  if ( yy_current_state >= 2025 )
5674  yy_c = yy_meta[yy_c];
5675  }
5676  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5677  }
5678 
5679  return yy_current_state;
5680 }
5681 
5682 /* yy_try_NUL_trans - try to make a transition on the NUL character
5683  *
5684  * synopsis
5685  * next_state = yy_try_NUL_trans( current_state );
5686  */
5687 /* %if-c-only */
5688  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
5689 /* %endif */
5690 /* %if-c++-only */
5691 /* %endif */
5692 {
5693  int yy_is_jam;
5694  /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
5695  char *yy_cp = (yy_c_buf_p);
5696 
5697  YY_CHAR yy_c = 1;
5698  if ( yy_accept[yy_current_state] )
5699  {
5700  (yy_last_accepting_state) = yy_current_state;
5701  (yy_last_accepting_cpos) = yy_cp;
5702  }
5703  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5704  {
5705  yy_current_state = (int) yy_def[yy_current_state];
5706  if ( yy_current_state >= 2025 )
5707  yy_c = yy_meta[yy_c];
5708  }
5709  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5710  yy_is_jam = (yy_current_state == 2024);
5711 
5712  return yy_is_jam ? 0 : yy_current_state;
5713 }
5714 
5715 #ifndef YY_NO_UNPUT
5716 /* %if-c-only */
5717 
5718 /* %endif */
5719 #endif
5720 
5721 /* %if-c-only */
5722 #ifndef YY_NO_INPUT
5723 #ifdef __cplusplus
5724  static int yyinput (void)
5725 #else
5726  static int input (void)
5727 #endif
5728 
5729 /* %endif */
5730 /* %if-c++-only */
5731 /* %endif */
5732 {
5733  int c;
5734 
5735  *(yy_c_buf_p) = (yy_hold_char);
5736 
5737  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
5738  {
5739  /* yy_c_buf_p now points to the character we want to return.
5740  * If this occurs *before* the EOB characters, then it's a
5741  * valid NUL; if not, then we've hit the end of the buffer.
5742  */
5743  if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5744  /* This was really a NUL. */
5745  *(yy_c_buf_p) = '\0';
5746 
5747  else
5748  { /* need more input */
5749  int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
5750  ++(yy_c_buf_p);
5751 
5752  switch ( yy_get_next_buffer( ) )
5753  {
5754  case EOB_ACT_LAST_MATCH:
5755  /* This happens because yy_g_n_b()
5756  * sees that we've accumulated a
5757  * token and flags that we need to
5758  * try matching the token before
5759  * proceeding. But for input(),
5760  * there's no matching to consider.
5761  * So convert the EOB_ACT_LAST_MATCH
5762  * to EOB_ACT_END_OF_FILE.
5763  */
5764 
5765  /* Reset buffer status. */
5766  yyrestart( yyin );
5767 
5768  /*FALLTHROUGH*/
5769 
5770  case EOB_ACT_END_OF_FILE:
5771  {
5772  if ( yywrap( ) )
5773  return 0;
5774 
5775  if ( ! (yy_did_buffer_switch_on_eof) )
5776  YY_NEW_FILE;
5777 #ifdef __cplusplus
5778  return yyinput();
5779 #else
5780  return input();
5781 #endif
5782  }
5783 
5784  case EOB_ACT_CONTINUE_SCAN:
5785  (yy_c_buf_p) = (yytext_ptr) + offset;
5786  break;
5787  }
5788  }
5789  }
5790 
5791  c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
5792  *(yy_c_buf_p) = '\0'; /* preserve yytext */
5793  (yy_hold_char) = *++(yy_c_buf_p);
5794 
5795 /* %% [19.0] update BOL and yylineno */
5796 
5797  return c;
5798 }
5799 /* %if-c-only */
5800 #endif /* ifndef YY_NO_INPUT */
5801 /* %endif */
5802 
5808 /* %if-c-only */
5809  void yyrestart (FILE * input_file )
5810 /* %endif */
5811 /* %if-c++-only */
5812 /* %endif */
5813 {
5814 
5815  if ( ! YY_CURRENT_BUFFER ){
5819  }
5820 
5821  yy_init_buffer( YY_CURRENT_BUFFER, input_file );
5823 }
5824 
5825 /* %if-c++-only */
5826 /* %endif */
5827 
5832 /* %if-c-only */
5833  void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
5834 /* %endif */
5835 /* %if-c++-only */
5836 /* %endif */
5837 {
5838 
5839  /* TODO. We should be able to replace this entire function body
5840  * with
5841  * yypop_buffer_state();
5842  * yypush_buffer_state(new_buffer);
5843  */
5845  if ( YY_CURRENT_BUFFER == new_buffer )
5846  return;
5847 
5848  if ( YY_CURRENT_BUFFER )
5849  {
5850  /* Flush out information for old buffer. */
5851  *(yy_c_buf_p) = (yy_hold_char);
5852  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
5853  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5854  }
5855 
5856  YY_CURRENT_BUFFER_LVALUE = new_buffer;
5858 
5859  /* We don't actually know whether we did this switch during
5860  * EOF (yywrap()) processing, but the only time this flag
5861  * is looked at is after yywrap() is called, so it's safe
5862  * to go ahead and always set it.
5863  */
5864  (yy_did_buffer_switch_on_eof) = 1;
5865 }
5866 
5867 /* %if-c-only */
5868 static void yy_load_buffer_state (void)
5869 /* %endif */
5870 /* %if-c++-only */
5871 /* %endif */
5872 {
5873  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5874  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
5875 /* %if-c-only */
5876  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
5877 /* %endif */
5878 /* %if-c++-only */
5879 /* %endif */
5880  (yy_hold_char) = *(yy_c_buf_p);
5881 }
5882 
5889 /* %if-c-only */
5890  YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
5891 /* %endif */
5892 /* %if-c++-only */
5893 /* %endif */
5894 {
5895  YY_BUFFER_STATE b;
5896 
5897  b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
5898  if ( ! b )
5899  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5900 
5901  b->yy_buf_size = size;
5902 
5903  /* yy_ch_buf has to be 2 characters longer than the size given because
5904  * we need to put in 2 end-of-buffer characters.
5905  */
5906  b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
5907  if ( ! b->yy_ch_buf )
5908  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5909 
5910  b->yy_is_our_buffer = 1;
5911 
5912  yy_init_buffer( b, file );
5913 
5914  return b;
5915 }
5916 
5917 /* %if-c++-only */
5918 /* %endif */
5919 
5924 /* %if-c-only */
5925  void yy_delete_buffer (YY_BUFFER_STATE b )
5926 /* %endif */
5927 /* %if-c++-only */
5928 /* %endif */
5929 {
5930 
5931  if ( ! b )
5932  return;
5933 
5934  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
5936 
5937  if ( b->yy_is_our_buffer )
5938  yyfree( (void *) b->yy_ch_buf );
5939 
5940  yyfree( (void *) b );
5941 }
5942 
5943 /* Initializes or reinitializes a buffer.
5944  * This function is sometimes called more than once on the same buffer,
5945  * such as during a yyrestart() or at EOF.
5946  */
5947 /* %if-c-only */
5948  static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
5949 /* %endif */
5950 /* %if-c++-only */
5951 /* %endif */
5952 
5953 {
5954  int oerrno = errno;
5955 
5956  yy_flush_buffer( b );
5957 
5958 /* %if-c-only */
5959  b->yy_input_file = file;
5960 /* %endif */
5961 /* %if-c++-only */
5962 /* %endif */
5963  b->yy_fill_buffer = 1;
5964 
5965  /* If b is the current buffer, then yy_init_buffer was _probably_
5966  * called from yyrestart() or through yy_get_next_buffer.
5967  * In that case, we don't want to reset the lineno or column.
5968  */
5969  if (b != YY_CURRENT_BUFFER){
5970  b->yy_bs_lineno = 1;
5971  b->yy_bs_column = 0;
5972  }
5973 
5974 /* %if-c-only */
5975 
5976  b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
5977 
5978 /* %endif */
5979 /* %if-c++-only */
5980 /* %endif */
5981  errno = oerrno;
5982 }
5983 
5988 /* %if-c-only */
5989  void yy_flush_buffer (YY_BUFFER_STATE b )
5990 /* %endif */
5991 /* %if-c++-only */
5992 /* %endif */
5993 {
5994  if ( ! b )
5995  return;
5996 
5997  b->yy_n_chars = 0;
5998 
5999  /* We always need two end-of-buffer characters. The first causes
6000  * a transition to the end-of-buffer state. The second causes
6001  * a jam in that state.
6002  */
6005 
6006  b->yy_buf_pos = &b->yy_ch_buf[0];
6007 
6008  b->yy_at_bol = 1;
6010 
6011  if ( b == YY_CURRENT_BUFFER )
6013 }
6014 
6015 /* %if-c-or-c++ */
6022 /* %if-c-only */
6023 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
6024 /* %endif */
6025 /* %if-c++-only */
6026 /* %endif */
6027 {
6028  if (new_buffer == NULL)
6029  return;
6030 
6032 
6033  /* This block is copied from yy_switch_to_buffer. */
6034  if ( YY_CURRENT_BUFFER )
6035  {
6036  /* Flush out information for old buffer. */
6037  *(yy_c_buf_p) = (yy_hold_char);
6038  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6039  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6040  }
6041 
6042  /* Only push if top exists. Otherwise, replace top. */
6043  if (YY_CURRENT_BUFFER)
6044  (yy_buffer_stack_top)++;
6045  YY_CURRENT_BUFFER_LVALUE = new_buffer;
6046 
6047  /* copied from yy_switch_to_buffer. */
6049  (yy_did_buffer_switch_on_eof) = 1;
6050 }
6051 /* %endif */
6052 
6053 /* %if-c-or-c++ */
6058 /* %if-c-only */
6060 /* %endif */
6061 /* %if-c++-only */
6062 /* %endif */
6063 {
6064  if (!YY_CURRENT_BUFFER)
6065  return;
6066 
6068  YY_CURRENT_BUFFER_LVALUE = NULL;
6069  if ((yy_buffer_stack_top) > 0)
6070  --(yy_buffer_stack_top);
6071 
6072  if (YY_CURRENT_BUFFER) {
6074  (yy_did_buffer_switch_on_eof) = 1;
6075  }
6076 }
6077 /* %endif */
6078 
6079 /* %if-c-or-c++ */
6080 /* Allocates the stack if it does not exist.
6081  * Guarantees space for at least one push.
6082  */
6083 /* %if-c-only */
6084 static void yyensure_buffer_stack (void)
6085 /* %endif */
6086 /* %if-c++-only */
6087 /* %endif */
6088 {
6089  yy_size_t num_to_alloc;
6090 
6091  if (!(yy_buffer_stack)) {
6092 
6093  /* First allocation is just for 2 elements, since we don't know if this
6094  * scanner will even need a stack. We use 2 instead of 1 to avoid an
6095  * immediate realloc on the next call.
6096  */
6097  num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
6098  (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
6099  (num_to_alloc * sizeof(struct yy_buffer_state*)
6100  );
6101  if ( ! (yy_buffer_stack) )
6102  YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6103 
6104  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6105 
6106  (yy_buffer_stack_max) = num_to_alloc;
6107  (yy_buffer_stack_top) = 0;
6108  return;
6109  }
6110 
6111  if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6112 
6113  /* Increase the buffer to prepare for a possible push. */
6114  yy_size_t grow_size = 8 /* arbitrary grow size */;
6115 
6116  num_to_alloc = (yy_buffer_stack_max) + grow_size;
6117  (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
6118  ((yy_buffer_stack),
6119  num_to_alloc * sizeof(struct yy_buffer_state*)
6120  );
6121  if ( ! (yy_buffer_stack) )
6122  YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6123 
6124  /* zero only the new slots.*/
6125  memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6126  (yy_buffer_stack_max) = num_to_alloc;
6127  }
6128 }
6129 /* %endif */
6130 
6131 /* %if-c-only */
6138 YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
6139 {
6140  YY_BUFFER_STATE b;
6141 
6142  if ( size < 2 ||
6143  base[size-2] != YY_END_OF_BUFFER_CHAR ||
6144  base[size-1] != YY_END_OF_BUFFER_CHAR )
6145  /* They forgot to leave room for the EOB's. */
6146  return NULL;
6147 
6148  b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6149  if ( ! b )
6150  YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
6151 
6152  b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
6153  b->yy_buf_pos = b->yy_ch_buf = base;
6154  b->yy_is_our_buffer = 0;
6155  b->yy_input_file = NULL;
6156  b->yy_n_chars = b->yy_buf_size;
6157  b->yy_is_interactive = 0;
6158  b->yy_at_bol = 1;
6159  b->yy_fill_buffer = 0;
6161 
6162  yy_switch_to_buffer( b );
6163 
6164  return b;
6165 }
6166 /* %endif */
6167 
6168 /* %if-c-only */
6177 YY_BUFFER_STATE yy_scan_string (const char * yystr )
6178 {
6179 
6180  return yy_scan_bytes( yystr, (int) strlen(yystr) );
6181 }
6182 /* %endif */
6183 
6184 /* %if-c-only */
6192 YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
6193 {
6194  YY_BUFFER_STATE b;
6195  char *buf;
6196  yy_size_t n;
6197  int i;
6198 
6199  /* Get memory for full buffer, including space for trailing EOB's. */
6200  n = (yy_size_t) (_yybytes_len + 2);
6201  buf = (char *) yyalloc( n );
6202  if ( ! buf )
6203  YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
6204 
6205  for ( i = 0; i < _yybytes_len; ++i )
6206  buf[i] = yybytes[i];
6207 
6208  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6209 
6210  b = yy_scan_buffer( buf, n );
6211  if ( ! b )
6212  YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
6213 
6214  /* It's okay to grow etc. this buffer, and we should throw it
6215  * away when we're done.
6216  */
6217  b->yy_is_our_buffer = 1;
6218 
6219  return b;
6220 }
6221 /* %endif */
6222 
6223 #ifndef YY_EXIT_FAILURE
6224 #define YY_EXIT_FAILURE 2
6225 #endif
6226 
6227 /* %if-c-only */
6228 static void yynoreturn yy_fatal_error (const char* msg )
6229 {
6230  fprintf( stderr, "%s\n", msg );
6231  exit( YY_EXIT_FAILURE );
6232 }
6233 /* %endif */
6234 /* %if-c++-only */
6235 /* %endif */
6236 
6237 /* Redefine yyless() so it works in section 3 code. */
6238 
6239 #undef yyless
6240 #define yyless(n) \
6241  do \
6242  { \
6243  /* Undo effects of setting up yytext. */ \
6244  int yyless_macro_arg = (n); \
6245  YY_LESS_LINENO(yyless_macro_arg);\
6246  yytext[yyleng] = (yy_hold_char); \
6247  (yy_c_buf_p) = yytext + yyless_macro_arg; \
6248  (yy_hold_char) = *(yy_c_buf_p); \
6249  *(yy_c_buf_p) = '\0'; \
6250  yyleng = yyless_macro_arg; \
6251  } \
6252  while ( 0 )
6253 
6254 /* Accessor methods (get/set functions) to struct members. */
6255 
6256 /* %if-c-only */
6257 /* %if-reentrant */
6258 /* %endif */
6259 
6263 int yyget_lineno (void)
6264 {
6265 
6266  return yylineno;
6267 }
6268 
6272 FILE *yyget_in (void)
6273 {
6274  return yyin;
6275 }
6276 
6280 FILE *yyget_out (void)
6281 {
6282  return yyout;
6283 }
6284 
6288 int yyget_leng (void)
6289 {
6290  return yyleng;
6291 }
6292 
6297 char *yyget_text (void)
6298 {
6299  return yytext;
6300 }
6301 
6302 /* %if-reentrant */
6303 /* %endif */
6304 
6309 void yyset_lineno (int _line_number )
6310 {
6311 
6312  yylineno = _line_number;
6313 }
6314 
6321 void yyset_in (FILE * _in_str )
6322 {
6323  yyin = _in_str ;
6324 }
6325 
6326 void yyset_out (FILE * _out_str )
6327 {
6328  yyout = _out_str ;
6329 }
6330 
6331 int yyget_debug (void)
6332 {
6333  return yy_flex_debug;
6334 }
6335 
6336 void yyset_debug (int _bdebug )
6337 {
6338  yy_flex_debug = _bdebug ;
6339 }
6340 
6341 /* %endif */
6342 
6343 /* %if-reentrant */
6344 /* %if-bison-bridge */
6345 /* %endif */
6346 /* %endif if-c-only */
6347 
6348 /* %if-c-only */
6349 static int yy_init_globals (void)
6350 {
6351  /* Initialization is the same as for the non-reentrant scanner.
6352  * This function is called from yylex_destroy(), so don't allocate here.
6353  */
6354 
6355  (yy_buffer_stack) = NULL;
6356  (yy_buffer_stack_top) = 0;
6357  (yy_buffer_stack_max) = 0;
6358  (yy_c_buf_p) = NULL;
6359  (yy_init) = 0;
6360  (yy_start) = 0;
6361 
6362 /* Defined in main.c */
6363 #ifdef YY_STDINIT
6364  yyin = stdin;
6365  yyout = stdout;
6366 #else
6367  yyin = NULL;
6368  yyout = NULL;
6369 #endif
6370 
6371  /* For future reference: Set errno on error, since we are called by
6372  * yylex_init()
6373  */
6374  return 0;
6375 }
6376 /* %endif */
6377 
6378 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
6379 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
6380 int yylex_destroy (void)
6381 {
6382 
6383  /* Pop the buffer stack, destroying each element. */
6384  while(YY_CURRENT_BUFFER){
6386  YY_CURRENT_BUFFER_LVALUE = NULL;
6388  }
6389 
6390  /* Destroy the stack itself. */
6391  yyfree((yy_buffer_stack) );
6392  (yy_buffer_stack) = NULL;
6393 
6394  /* Reset the globals. This is important in a non-reentrant scanner so the next time
6395  * yylex() is called, initialization will occur. */
6396  yy_init_globals( );
6397 
6398 /* %if-reentrant */
6399 /* %endif */
6400  return 0;
6401 }
6402 /* %endif */
6403 
6404 /*
6405  * Internal utility routines.
6406  */
6407 
6408 #ifndef yytext_ptr
6409 static void yy_flex_strncpy (char* s1, const char * s2, int n )
6410 {
6411 
6412  int i;
6413  for ( i = 0; i < n; ++i )
6414  s1[i] = s2[i];
6415 }
6416 #endif
6417 
6418 #ifdef YY_NEED_STRLEN
6419 static int yy_flex_strlen (const char * s )
6420 {
6421  int n;
6422  for ( n = 0; s[n]; ++n )
6423  ;
6424 
6425  return n;
6426 }
6427 #endif
6428 
6429 void *yyalloc (yy_size_t size )
6430 {
6431  return malloc(size);
6432 }
6433 
6434 void *yyrealloc (void * ptr, yy_size_t size )
6435 {
6436 
6437  /* The cast to (char *) in the following accommodates both
6438  * implementations that use char* generic pointers, and those
6439  * that use void* generic pointers. It works with the latter
6440  * because both ANSI C and C++ allow castless assignment from
6441  * any pointer type to void*, and deal with argument conversions
6442  * as though doing an assignment.
6443  */
6444  return realloc(ptr, size);
6445 }
6446 
6447 void yyfree (void * ptr )
6448 {
6449  free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
6450 }
6451 
6452 /* %if-tables-serialization definitions */
6453 /* %define-yytables The name for this specific scanner's tables. */
6454 #define YYTABLES_NAME "yytables"
6455 /* %endif */
6456 
6457 /* %ok-for-header */
6458 
6459 #line 2322 "dhcp6_lexer.ll"
6460 
6461 
6462 using namespace isc::dhcp;
6463 
6464 void
6465 Parser6Context::scanStringBegin(const std::string& str, ParserType parser_type)
6466 {
6467  start_token_flag = true;
6468  start_token_value = parser_type;
6469 
6470  file_ = "<string>";
6471  sfile_ = 0;
6472  loc_.initialize(&file_);
6473  yy_flex_debug = trace_scanning_;
6474  YY_BUFFER_STATE buffer;
6475  buffer = parser6__scan_bytes(str.c_str(), str.size());
6476  if (!buffer) {
6477  fatal("cannot scan string");
6478  /* fatal() throws an exception so this can't be reached */
6479  }
6480 }
6481 
6482 void
6484  const std::string& filename,
6485  ParserType parser_type)
6486 {
6487  start_token_flag = true;
6488  start_token_value = parser_type;
6489 
6490  file_ = filename;
6491  sfile_ = f;
6492  loc_.initialize(&file_);
6493  yy_flex_debug = trace_scanning_;
6494  YY_BUFFER_STATE buffer;
6495 
6496  /* See dhcp6_lexer.cc header for available definitions */
6497  buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
6498  if (!buffer) {
6499  fatal("cannot scan file " + filename);
6500  }
6501  parser6__switch_to_buffer(buffer);
6502 }
6503 
6504 void
6506  if (sfile_)
6507  fclose(sfile_);
6508  sfile_ = 0;
6509  static_cast<void>(parser6_lex_destroy());
6510  /* Close files */
6511  while (!sfiles_.empty()) {
6512  FILE* f = sfiles_.back();
6513  if (f) {
6514  fclose(f);
6515  }
6516  sfiles_.pop_back();
6517  }
6518  /* Delete states */
6519  while (!states_.empty()) {
6520  parser6__delete_buffer(states_.back());
6521  states_.pop_back();
6522  }
6523 }
6524 
6525 void
6526 Parser6Context::includeFile(const std::string& filename) {
6527  if (states_.size() > 10) {
6528  fatal("Too many nested include.");
6529  }
6530 
6531  FILE* f = fopen(filename.c_str(), "r");
6532  if (!f) {
6533  fatal("Can't open include file " + filename);
6534  }
6535  if (sfile_) {
6536  sfiles_.push_back(sfile_);
6537  }
6538  sfile_ = f;
6539  states_.push_back(YY_CURRENT_BUFFER);
6540  YY_BUFFER_STATE buffer;
6541  buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
6542  if (!buffer) {
6543  fatal( "Can't scan include file " + filename);
6544  }
6545  parser6__switch_to_buffer(buffer);
6546  files_.push_back(file_);
6547  file_ = filename;
6548  locs_.push_back(loc_);
6549  loc_.initialize(&file_);
6550 
6551  BEGIN(INITIAL);
6552 }
6553 
6554 namespace {
6556 class Dummy {
6557  /* cppcheck-suppress unusedPrivateFunction */
6558  void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
6559 };
6560 }
6561 #endif /* !__clang_analyzer__ */
6562 
Used while parsing Dhcp6/lease-database structures.
static symbol_type make_USER(const location_type &l)
static symbol_type make_READONLY(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_COUNT(const location_type &l)
#define yylex
Definition: dhcp6_lexer.cc:27
#define yyfree
Definition: dhcp6_lexer.cc:35
Used while parsing Dhcp6/option-def structures.
static symbol_type make_SUB_CONFIG_CONTROL(const location_type &l)
FILE * yy_input_file
Definition: agent_lexer.cc:491
static symbol_type make_SUBNET(const location_type &l)
static symbol_type make_CONNECT_TIMEOUT(const location_type &l)
#define YY_BUFFER_EOF_PENDING
Definition: dhcp6_lexer.cc:551
#define YY_CURRENT_BUFFER
Definition: dhcp6_lexer.cc:575
#define yyrestart
Definition: dhcp6_lexer.cc:30
static symbol_type make_SUB_POOL6(const location_type &l)
Used while parsing config-control/config-databases.
static symbol_type make_STORE_EXTENDED_INFO(const location_type &l)
static symbol_type make_DDNS_QUALIFYING_SUFFIX(const location_type &l)
#define yyset_lineno
Definition: dhcp6_lexer.cc:224
static symbol_type make_MEMFILE(const location_type &l)
static symbol_type make_ALWAYS_SEND(const location_type &l)
static symbol_type make_DHCP4O6_PORT(const location_type &l)
static symbol_type make_SENDER_PORT(const location_type &l)
static symbol_type make_TOPLEVEL_DHCP6(const location_type &l)
static symbol_type make_OVERRIDE_CLIENT_UPDATE(const location_type &l)
static symbol_type make_T1_PERCENT(const location_type &l)
#define YY_NEW_FILE
Definition: dhcp6_lexer.cc:424
static symbol_type make_ONLY_IF_REQUIRED(const location_type &l)
Used while parsing Dhcp6/client-classes structures.
#define yyset_out
Definition: dhcp6_lexer.cc:200
Used while parsing Dhcp6/dhcp-queue-control structures.
static symbol_type make_MAXSIZE(const location_type &l)
static symbol_type make_PASSWORD(const location_type &l)
static symbol_type make_IP_ADDRESS(const location_type &l)
#define YY_EXIT_FAILURE
static symbol_type make_SUB_OPTION_DEFS(const location_type &l)
#define yyget_text
Definition: dhcp6_lexer.cc:212
Used while parsing Dhcp6/reservations structures.
static symbol_type make_CONFIG_FETCH_WAIT_TIME(const location_type &l)
static symbol_type make_ENABLE_UPDATES(const location_type &l)
static symbol_type make_ALWAYS(const location_type &l)
static symbol_type make_LLT(const location_type &l)
static symbol_type make_RECONNECT_WAIT_TIME(const location_type &l)
static symbol_type make_FLUSH(const location_type &l)
static symbol_type make_ENTERPRISE_ID(const location_type &l)
static symbol_type make_DDNS_USE_CONFLICT_RESOLUTION(const location_type &l)
static symbol_type make_INTERFACE_ID(const location_type &l)
#define YY_END_OF_BUFFER
Definition: dhcp6_lexer.cc:695
static symbol_type make_BOOLEAN(const bool &v, const location_type &l)
static symbol_type make_CLIENT_CLASSES(const location_type &l)
static symbol_type make_HOSTS_DATABASES(const location_type &l)
static symbol_type make_SUB_SUBNET6(const location_type &l)
size_t yy_size_t
Definition: dhcp6_lexer.cc:451
static symbol_type make_REQUEST_TIMEOUT(const location_type &l)
#define DIR_INCLUDE
static symbol_type make_RESERVATION_MODE(const location_type &l)
flex_uint8_t YY_CHAR
Definition: dhcp6_lexer.cc:656
#define yypop_buffer_state
Definition: dhcp6_lexer.cc:22
static symbol_type make_CONTACT_POINTS(const location_type &l)
static symbol_type make_SERVER_IP(const location_type &l)
static symbol_type make_NCR_FORMAT(const location_type &l)
#define yytext_ptr
Definition: dhcp6_lexer.cc:669
static symbol_type make_RELAY_SUPPLIED_OPTIONS(const location_type &l)
#define YY_READ_BUF_SIZE
#define yy_scan_bytes
Definition: dhcp6_lexer.cc:16
int yy_act
static symbol_type make_CSV_FORMAT(const location_type &l)
static symbol_type make_NAME(const location_type &l)
Used while parsing Dhcp6/config-control.
static symbol_type make_CLIENT_CLASS(const location_type &l)
int yy_bs_lineno
The line count.
Definition: agent_lexer.cc:529
static symbol_type make_SUB_INTERFACES6(const location_type &l)
static symbol_type make_POSTGRESQL(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_AGE(const location_type &l)
static symbol_type make_CQL(const location_type &l)
#define yyget_debug
Definition: dhcp6_lexer.cc:158
static symbol_type make_IDENTIFIER(const location_type &l)
Used while parsing Dhcp6/dhcp-ddns/ncr-protocol.
#define YY_BUFFER_NEW
Definition: dhcp6_lexer.cc:539
static symbol_type make_HW_ADDRESS(const location_type &l)
static symbol_type make_SUB_OPTION_DATA(const location_type &l)
static symbol_type make_RESERVATIONS_GLOBAL(const location_type &l)
#define yy_flush_buffer
Definition: dhcp6_lexer.cc:18
static symbol_type make_MAC_SOURCES(const location_type &l)
static symbol_type make_RESERVATIONS(const location_type &l)
static symbol_type make_INTERFACE(const location_type &l)
static symbol_type make_PD_POOLS(const location_type &l)
static symbol_type make_EN(const location_type &l)
static symbol_type make_HOST_RESERVATION_IDENTIFIERS(const location_type &l)
static symbol_type make_DHCP_QUEUE_CONTROL(const location_type &l)
static symbol_type make_GENERATED_PREFIX(const location_type &l)
static symbol_type make_SUB_DHCP6(const location_type &l)
unsigned char flex_uint8_t
Definition: dhcp6_lexer.cc:335
static symbol_type make_WHEN_NOT_PRESENT(const location_type &l)
#define yywrap
static symbol_type make_HOLD_RECLAIMED_TIME(const location_type &l)
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
std::vector< std::string > files_
File name stack.
static symbol_type make_END(const location_type &l)
Used while parsing Dhcp6/dhcp-ddns/ncr-format.
#define YY_SC_TO_UI(c)
Definition: dhcp6_lexer.cc:400
static symbol_type make_DDNS_SEND_UPDATES(const location_type &l)
#define COMMENT
static symbol_type make_INTERFACES(const location_type &l)
static symbol_type make_ENCAPSULATE(const location_type &l)
#define yyleng
Definition: dhcp6_lexer.cc:26
static symbol_type make_POOL(const location_type &l)
void scanStringBegin(const std::string &str, ParserType type)
Method called before scanning starts on a string.
int flex_int32_t
Definition: agent_lexer.cc:334
Used while parsing Dhcp6/*-database/on-fail.
Used while parsing Dhcp6/server-id/type structures.
#define yy_create_buffer
Definition: dhcp6_lexer.cc:12
#define yy_scan_buffer
Definition: dhcp6_lexer.cc:14
static symbol_type make_HOSTS_DATABASE(const location_type &l)
#define yylineno
Definition: dhcp6_lexer.cc:28
#define EOB_ACT_END_OF_FILE
Definition: dhcp6_lexer.cc:465
static symbol_type make_TCP(const location_type &l)
Used while parsing Dhcp6/expired-leases-processing.
static symbol_type make_KEYSPACE(const location_type &l)
static symbol_type make_CACHE_MAX_AGE(const location_type &l)
static void fatal(const std::string &what)
Fatal error handler.
#define yy_flex_debug
Definition: dhcp6_lexer.cc:24
Used while parsing Dhcp6/mac-sources structures.
static symbol_type make_HOSTNAME(const location_type &l)
static symbol_type make_TYPE(const location_type &l)
Evaluation error exception raised when trying to parse.
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
Used while parsing Dhcp6/loggers/output_options structures.
#define BEGIN
Definition: dhcp6_lexer.cc:414
static symbol_type make_SOCKET_TYPE(const location_type &l)
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_TCP_NODELAY(const location_type &l)
static symbol_type make_CODE(const location_type &l)
#define YY_STATE_EOF(state)
Definition: dhcp6_lexer.cc:422
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
static symbol_type make_ENABLE_QUEUE(const location_type &l)
#define YY_DO_BEFORE_ACTION
Definition: dhcp6_lexer.cc:685
#define YY_FATAL_ERROR(msg)
#define ECHO
static symbol_type make_CALCULATE_TEE_TIMES(const location_type &l)
static symbol_type make_SERVER_TAG(const location_type &l)
static symbol_type make_SPACE(const location_type &l)
static symbol_type make_DHCP_DDNS(const location_type &l)
Used while parsing content of Dhcp6.
#define yy_load_buffer_state
Definition: dhcp6_lexer.cc:19
int yy_bs_column
The column count.
Definition: agent_lexer.cc:530
ParserType
Defines currently supported scopes.
static symbol_type make_EXCLUDED_PREFIX(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_CLIENT_UPDATE(const location_type &l)
int yy_state_type
Definition: dhcp6_lexer.cc:660
static symbol_type make_QUEUE_TYPE(const location_type &l)
static symbol_type make_COMMENT(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_REPLACEMENT(const location_type &l)
FILE * sfile_
sFile (aka FILE)
static symbol_type make_DISABLED(const location_type &l)
static symbol_type make_QUALIFYING_SUFFIX(const location_type &l)
#define EOB_ACT_LAST_MATCH
Definition: dhcp6_lexer.cc:466
static symbol_type make_ARRAY(const location_type &l)
Used while parsing Dhcp6/*-database/type.
flex_uint8_t YY_CHAR
Definition: agent_lexer.cc:656
static symbol_type make_OUTPUT(const location_type &l)
static symbol_type make_LENIENT_OPTION_PARSING(const location_type &l)
static symbol_type make_MAX_RECLAIM_LEASES(const location_type &l)
static symbol_type make_CONSISTENCY(const location_type &l)
unsigned short int flex_uint16_t
Definition: dhcp6_lexer.cc:336
#define YY_START
Definition: dhcp6_lexer.cc:419
static symbol_type make_SUB_OPTION_DEF(const location_type &l)
#define yyalloc
Definition: dhcp6_lexer.cc:33
#define YY_RULE_SETUP
static symbol_type make_FLOAT(const double &v, const location_type &l)
static symbol_type make_PERSIST(const location_type &l)
static symbol_type make_DHCP6(const location_type &l)
static symbol_type make_CAPACITY(const location_type &l)
static symbol_type make_USER_CONTEXT(const location_type &l)
static symbol_type make_MIN_VALID_LIFETIME(const location_type &l)
static symbol_type make_DATA(const location_type &l)
#define YY_MORE_ADJ
static symbol_type make_DECLINE_PROBATION_PERIOD(const location_type &l)
Used while parsing Dhcp6/subnet6/pd-pools structures.
Used while parsing Dhcp6/option-data, Dhcp6/subnet6/option-data or anywhere option-data is present (c...
#define yyset_debug
Definition: dhcp6_lexer.cc:164
isc::dhcp::location loc_
Location of the current token.
static symbol_type make_RESERVATIONS_IN_SUBNET(const location_type &l)
char * yy_bp
static symbol_type make_PREFIX_LEN(const location_type &l)
int flex_int32_t
Definition: dhcp6_lexer.cc:334
static symbol_type make_RAPID_COMMIT(const location_type &l)
Used while parsing Dhcp6/hosts-database[s] structures.
#define YY_END_OF_BUFFER_CHAR
Definition: dhcp6_lexer.cc:425
Used while parsing Dhcp6/loggers structures.
static symbol_type make_CACHE_THRESHOLD(const location_type &l)
std::vector< FILE * > sfiles_
sFile (aka FILE) stack
static symbol_type make_IP_ADDRESSES(const location_type &l)
static symbol_type make_OUTPUT_OPTIONS(const location_type &l)
static symbol_type make_PREFIX(const location_type &l)
void scanEnd()
Method called after the last tokens are scanned.
static symbol_type make_TIME(const location_type &l)
static symbol_type make_DUID(const location_type &l)
static symbol_type make_SUBNET6(const location_type &l)
#define yyget_out
Definition: dhcp6_lexer.cc:194
static symbol_type make_MAX_QUEUE_SIZE(const location_type &l)
static symbol_type make_SUB_HOOKS_LIBRARY(const location_type &l)
#define DIR_EXIT
static symbol_type make_RENEW_TIMER(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_SET(const location_type &l)
#define yyget_extra
Definition: dhcp6_lexer.cc:170
static symbol_type make_DDNS_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_SOCKET_NAME(const location_type &l)
#define yyget_leng
Definition: dhcp6_lexer.cc:206
#define YY_CURRENT_BUFFER_LVALUE
Definition: dhcp6_lexer.cc:581
static symbol_type make_FLEX_ID(const location_type &l)
static symbol_type make_SUB_DHCP_DDNS(const location_type &l)
static symbol_type make_REQUIRE_CLIENT_CLASSES(const location_type &l)
static symbol_type make_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_HOST(const location_type &l)
static symbol_type make_PATTERN(const location_type &l)
static symbol_type make_ON_FAIL(const location_type &l)
Used while parsing Dhcp6/interfaces structures.
#define INITIAL
#define YY_RESTORE_YY_MORE_OFFSET
static symbol_type make_LFC_INTERVAL(const location_type &l)
static symbol_type make_TCP_KEEPALIVE(const location_type &l)
static symbol_type make_VALID_LIFETIME(const location_type &l)
static symbol_type make_ENABLE_MULTI_THREADING(const location_type &l)
size_t yy_size_t
Definition: agent_lexer.cc:451
#define yytext
Definition: dhcp6_lexer.cc:31
static symbol_type make_LEASE_DATABASE(const location_type &l)
static symbol_type make_CONFIG_DATABASES(const location_type &l)
#define yyrealloc
Definition: dhcp6_lexer.cc:34
static symbol_type make_OVERRIDE_NO_UPDATE(const location_type &l)
Used while parsing shared-networks structures.
static symbol_type make_DEBUGLEVEL(const location_type &l)
#define yyout
Definition: dhcp6_lexer.cc:29
static symbol_type make_THREAD_POOL_SIZE(const location_type &l)
static symbol_type make_SERIAL_CONSISTENCY(const location_type &l)
static symbol_type make_DDNS_UPDATE_ON_RENEW(const location_type &l)
static symbol_type make_RESERVATIONS_OUT_OF_POOL(const location_type &l)
unsigned char flex_uint8_t
Definition: agent_lexer.cc:335
char * yy_cp
static symbol_type make_RCURLY_BRACKET(const location_type &l)
static symbol_type make_MAXVER(const location_type &l)
static symbol_type make_SERVER_PORT(const location_type &l)
static symbol_type make_EXCLUDED_PREFIX_LEN(const location_type &l)
static symbol_type make_HOOKS_LIBRARIES(const location_type &l)
static symbol_type make_MAX_PREFERRED_LIFETIME(const location_type &l)
Used while parsing Dhcp6/dhcp-ddns/replace-client-name.
static symbol_type make_INTERFACES_CONFIG(const location_type &l)
static symbol_type make_MYSQL(const location_type &l)
#define YY_BUF_SIZE
Definition: dhcp6_lexer.cc:436
#define YY_INPUT(buf, result, max_size)
struct yy_buffer_state * YY_BUFFER_STATE
Definition: dhcp6_lexer.cc:446
static symbol_type make_ID(const location_type &l)
static symbol_type make_MIN_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_OPTION_DEF(const location_type &l)
Used while parsing Dhcp6/control-socket structures.
#define yyset_in
Definition: dhcp6_lexer.cc:188
static symbol_type make_SERVER_ID(const location_type &l)
flex_int32_t yy_verify
Definition: agent_lexer.cc:700
void includeFile(const std::string &filename)
Divert input to an include file.
static symbol_type make_IP_RESERVATIONS_UNIQUE(const location_type &l)
static symbol_type make_RELAY(const location_type &l)
#define EOB_ACT_CONTINUE_SCAN
Definition: dhcp6_lexer.cc:464
static symbol_type make_TOPLEVEL_JSON(const location_type &l)
#define YY_BREAK
#define yylex_destroy
Definition: dhcp6_lexer.cc:152
static symbol_type make_UDP(const location_type &l)
static symbol_type make_T2_PERCENT(const location_type &l)
static symbol_type make_PACKET_QUEUE_SIZE(const location_type &l)
Used while parsing Dhcp6/host-reservation-identifiers.
static symbol_type make_RECORD_TYPES(const location_type &l)
static symbol_type make_EXPIRED_LEASES_PROCESSING(const location_type &l)
static symbol_type make_DDNS_REPLACE_CLIENT_NAME(const location_type &l)
short int flex_int16_t
Definition: agent_lexer.cc:333
std::string file_
File name.
static symbol_type make_LL(const location_type &l)
static symbol_type make_COMPATIBILITY(const location_type &l)
static symbol_type make_RE_DETECT(const location_type &l)
flex_int32_t yy_nxt
Definition: agent_lexer.cc:701
static symbol_type make_GLOBAL(const location_type &l)
std::vector< isc::dhcp::location > locs_
Location stack.
static symbol_type make_SERVE_RETRY_CONTINUE(const location_type &l)
static symbol_type make_MAX_RECLAIM_TIME(const location_type &l)
Used while parsing compatibility parameters.
int yy_state_type
Definition: agent_lexer.cc:660
Used while parsing Dhcp6/subnet6/relay structures.
static symbol_type make_OUT_OF_POOL(const location_type &l)
#define yyset_extra
Definition: dhcp6_lexer.cc:176
static symbol_type make_ALL(const location_type &l)
#define yy_switch_to_buffer
Definition: dhcp6_lexer.cc:20
static symbol_type make_SENDER_IP(const location_type &l)
static symbol_type make_SUB_PD_POOL(const location_type &l)
Used while parsing Dhcp6/multi-threading structures.
static symbol_type make_NULL_TYPE(const location_type &l)
short int flex_int16_t
Definition: dhcp6_lexer.cc:333
static symbol_type make_UNWARNED_RECLAIM_CYCLES(const location_type &l)
static symbol_type make_JSON(const location_type &l)
static symbol_type make_LOGGERS(const location_type &l)
#define yy_delete_buffer
Definition: dhcp6_lexer.cc:13
static symbol_type make_DHCP_MULTI_THREADING(const location_type &l)
static symbol_type make_SERVE_RETRY_EXIT(const location_type &l)
static symbol_type make_CONTROL_SOCKET(const location_type &l)
static symbol_type make_SUB_RESERVATION(const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
#define DIR_ENTER
static symbol_type make_DATA_DIRECTORY(const location_type &l)
Used while parsing Dhcp6/subnet6/pools structures.
#define YY_BUFFER_NORMAL
Definition: dhcp6_lexer.cc:540
#define yyin
Definition: dhcp6_lexer.cc:25
#define YY_EXTRA_TYPE
static symbol_type make_OPTION_DATA(const location_type &l)
static symbol_type make_DDNS_GENERATED_PREFIX(const location_type &l)
unsigned int flex_uint32_t
Definition: dhcp6_lexer.cc:337
static symbol_type make_LEASE_CHECKS(const location_type &l)
static symbol_type make_PREFIXES(const location_type &l)
static symbol_type make_FLUSH_RECLAIMED_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_SANITY_CHECKS(const location_type &l)
static symbol_type make_TEST(const location_type &l)
#define YY_DECL
Used while parsing Dhcp6/reservation-mode.
static symbol_type make_STOP_RETRY_EXIT(const location_type &l)
static symbol_type make_POOLS(const location_type &l)
#define yyget_in
Definition: dhcp6_lexer.cc:182
Used while parsing Dhcp6/hooks-libraries.
#define yyget_lineno
Definition: dhcp6_lexer.cc:218
static symbol_type make_HTYPE(const location_type &l)
signed char flex_int8_t
Definition: dhcp6_lexer.cc:332
static symbol_type make_RSQUARE_BRACKET(const location_type &l)
static symbol_type make_NEVER(const location_type &l)
static symbol_type make_COLON(const location_type &l)
static symbol_type make_PORT(const location_type &l)
static symbol_type make_MAX_RECONNECT_TRIES(const location_type &l)
#define yy_scan_string
Definition: dhcp6_lexer.cc:15
#define yy_init_buffer
Definition: dhcp6_lexer.cc:17
Used while parsing Dhcp6/Subnet6 structures.
static symbol_type make_LCURLY_BRACKET(const location_type &l)
Used while parsing Dhcp6/dhcp-ddns.
static symbol_type make_WHEN_PRESENT(const location_type &l)
Used while parsing Dhcp6/server-id structures.
std::vector< struct yy_buffer_state * > states_
Lexer state stack.
#define yypush_buffer_state
Definition: dhcp6_lexer.cc:21
static symbol_type make_CONFIG_CONTROL(const location_type &l)
static symbol_type make_MAX_VALID_LIFETIME(const location_type &l)
static symbol_type make_DELEGATED_LEN(const location_type &l)
static symbol_type make_NCR_PROTOCOL(const location_type &l)
void scanFileBegin(FILE *f, const std::string &filename, ParserType type)
Method called before scanning starts on a file.
static symbol_type make_SEVERITY(const location_type &l)
static symbol_type make_REBIND_TIMER(const location_type &l)
static symbol_type make_RECLAIM_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_REPLACE_CLIENT_NAME(const location_type &l)
#define yynoreturn
Definition: dhcp6_lexer.cc:388
static symbol_type make_MAX_ROW_ERRORS(const location_type &l)
#define yyensure_buffer_stack
Definition: dhcp6_lexer.cc:23
static symbol_type make_COMMA(const location_type &l)