Kea  1.5.0
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 );
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 179
695 #define YY_END_OF_BUFFER 180
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[1453] =
704  { 0,
705  172, 172, 0, 0, 0, 0, 0, 0, 0, 0,
706  180, 178, 10, 11, 178, 1, 172, 169, 172, 172,
707  178, 171, 170, 178, 178, 178, 178, 178, 165, 166,
708  178, 178, 178, 167, 168, 5, 5, 5, 178, 178,
709  178, 10, 11, 0, 0, 161, 0, 0, 0, 0,
710  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
711  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
712  0, 0, 0, 0, 0, 0, 0, 0, 1, 172,
713  172, 0, 171, 172, 3, 2, 6, 0, 172, 0,
714  0, 0, 0, 0, 0, 4, 0, 0, 9, 0,
715 
716  162, 0, 0, 0, 0, 0, 0, 0, 0, 0,
717  0, 0, 0, 0, 0, 0, 164, 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, 2, 0, 0,
724  0, 0, 0, 0, 0, 8, 0, 0, 0, 0,
725  139, 0, 0, 140, 0, 0, 0, 0, 0, 0,
726 
727  0, 0, 163, 0, 0, 0, 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, 94, 0, 0, 0, 0, 0,
731  0, 0, 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  177, 175, 0, 174, 173, 0, 0, 0, 0, 0,
737 
738  0, 0, 138, 0, 0, 28, 0, 27, 0, 0,
739  101, 0, 0, 0, 0, 0, 0, 0, 0, 53,
740  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
741  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
742  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
743  0, 0, 0, 0, 0, 0, 0, 0, 0, 98,
744  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
745  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
746  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
747  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
748 
749  176, 173, 0, 0, 0, 0, 0, 0, 0, 0,
750  29, 0, 0, 31, 0, 0, 0, 0, 0, 102,
751  0, 0, 0, 0, 0, 0, 79, 0, 0, 0,
752  0, 0, 0, 123, 0, 0, 0, 0, 0, 0,
753  0, 0, 0, 0, 0, 56, 0, 0, 0, 0,
754  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
755  0, 0, 0, 0, 0, 0, 78, 0, 0, 0,
756  0, 0, 0, 0, 0, 0, 0, 0, 0, 88,
757  0, 57, 0, 0, 0, 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, 118,
761  143, 49, 0, 54, 0, 0, 0, 0, 0, 0,
762  158, 37, 0, 34, 0, 33, 0, 0, 0, 131,
763  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
764  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
765  110, 0, 0, 0, 0, 0, 0, 0, 0, 142,
766  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
767  0, 0, 0, 0, 0, 51, 0, 0, 32, 0,
768  0, 0, 0, 0, 0, 0, 0, 0, 81, 0,
769  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
770 
771  132, 0, 0, 0, 0, 0, 0, 0, 0, 0,
772  0, 0, 0, 127, 0, 0, 0, 0, 0, 0,
773  7, 35, 0, 0, 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, 0, 0, 0,
776  100, 0, 0, 0, 0, 0, 0, 0, 0, 0,
777  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
778  112, 0, 0, 0, 0, 0, 0, 109, 0, 0,
779  0, 0, 0, 0, 0, 0, 83, 0, 0, 0,
780  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
781 
782  0, 0, 0, 0, 0, 0, 0, 0, 0, 91,
783  0, 0, 0, 0, 0, 0, 0, 0, 106, 0,
784  0, 0, 0, 90, 0, 0, 0, 0, 0, 0,
785  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
786  0, 0, 126, 0, 0, 0, 0, 0, 0, 0,
787  0, 0, 0, 0, 0, 0, 0, 0, 136, 107,
788  0, 0, 0, 0, 111, 50, 0, 0, 0, 0,
789  0, 0, 0, 0, 0, 0, 58, 0, 0, 0,
790  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
791  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
792 
793  0, 0, 0, 0, 0, 74, 0, 0, 0, 0,
794  0, 0, 159, 0, 0, 0, 0, 0, 0, 0,
795  0, 0, 0, 0, 0, 0, 0, 0, 0, 97,
796  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
797  125, 0, 0, 0, 0, 0, 0, 61, 0, 0,
798  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799  0, 0, 0, 0, 55, 82, 0, 0, 0, 122,
800  0, 0, 0, 48, 0, 0, 0, 0, 0, 0,
801  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
802  0, 114, 0, 0, 0, 0, 0, 0, 0, 0,
803 
804  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
805  0, 0, 0, 0, 157, 0, 0, 0, 0, 0,
806  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
807  0, 92, 0, 0, 0, 0, 0, 0, 0, 0,
808  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
809  0, 0, 0, 0, 0, 0, 0, 40, 0, 0,
810  0, 0, 0, 0, 0, 0, 0, 0, 0, 16,
811  0, 137, 14, 0, 0, 0, 0, 0, 0, 0,
812  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
813  0, 0, 0, 128, 113, 0, 0, 0, 0, 0,
814 
815  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
816  0, 124, 141, 0, 39, 0, 133, 0, 0, 0,
817  0, 0, 0, 0, 0, 20, 0, 0, 0, 76,
818  0, 0, 0, 0, 135, 52, 0, 84, 0, 0,
819  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
820  0, 0, 0, 73, 0, 0, 0, 0, 0, 0,
821  0, 0, 0, 0, 0, 80, 0, 0, 0, 0,
822  0, 0, 0, 0, 0, 0, 0, 130, 0, 0,
823  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
824  0, 0, 0, 0, 103, 0, 0, 0, 0, 0,
825 
826  77, 99, 0, 0, 0, 0, 0, 0, 0, 0,
827  0, 0, 0, 70, 0, 0, 0, 0, 0, 0,
828  17, 15, 0, 155, 154, 0, 65, 0, 0, 0,
829  0, 0, 30, 117, 0, 0, 0, 0, 0, 0,
830  0, 0, 0, 152, 0, 0, 0, 0, 0, 0,
831  0, 0, 0, 0, 0, 93, 0, 121, 42, 0,
832  59, 0, 0, 0, 0, 19, 0, 0, 0, 0,
833  0, 0, 95, 71, 0, 0, 129, 0, 0, 0,
834  0, 0, 120, 0, 0, 0, 0, 89, 0, 160,
835  0, 0, 0, 0, 0, 0, 0, 0, 87, 0,
836 
837  0, 144, 0, 0, 0, 0, 0, 0, 0, 0,
838  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
839  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
840  41, 0, 64, 0, 0, 0, 115, 46, 0, 0,
841  66, 153, 0, 0, 12, 0, 0, 0, 0, 0,
842  0, 0, 0, 0, 44, 0, 0, 43, 18, 0,
843  0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
844  0, 0, 0, 0, 0, 0, 0, 69, 0, 0,
845  60, 0, 0, 85, 0, 0, 0, 0, 0, 134,
846  0, 0, 0, 45, 0, 0, 0, 0, 0, 0,
847 
848  0, 0, 0, 0, 0, 0, 0, 63, 0, 0,
849  75, 0, 36, 47, 0, 0, 0, 0, 0, 24,
850  0, 0, 0, 0, 0, 0, 150, 0, 119, 0,
851  0, 0, 0, 0, 0, 0, 0, 0, 96, 0,
852  0, 0, 0, 0, 0, 0, 0, 0, 25, 38,
853  0, 0, 0, 0, 0, 13, 0, 0, 0, 0,
854  0, 0, 0, 156, 0, 0, 0, 0, 0, 0,
855  149, 0, 0, 21, 68, 0, 0, 0, 0, 0,
856  0, 0, 86, 0, 0, 148, 0, 0, 67, 0,
857  0, 62, 0, 23, 0, 0, 0, 0, 0, 0,
858 
859  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
860  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
861  0, 22, 0, 104, 116, 0, 0, 0, 0, 0,
862  0, 146, 151, 72, 0, 0, 0, 0, 145, 0,
863  0, 26, 0, 0, 0, 0, 0, 105, 0, 0,
864  147, 0
865  } ;
866 
867 static const YY_CHAR yy_ec[256] =
868  { 0,
869  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
870  1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
871  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
872  1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
873  5, 8, 9, 10, 11, 12, 13, 14, 14, 14,
874  14, 15, 14, 16, 14, 14, 14, 17, 5, 18,
875  5, 19, 20, 5, 21, 22, 23, 24, 25, 26,
876  5, 27, 5, 28, 5, 29, 5, 30, 31, 32,
877  5, 33, 34, 35, 36, 37, 38, 5, 39, 5,
878  40, 41, 42, 5, 43, 5, 44, 45, 46, 47,
879 
880  48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
881  58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
882  68, 69, 70, 5, 71, 5, 5, 5, 5, 5,
883  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
884  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
885  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
886  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
887  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
888  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
889  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
890 
891  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
892  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
893  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
894  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
895  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
896  5, 5, 5, 5, 5
897  } ;
898 
899 static const YY_CHAR yy_meta[72] =
900  { 0,
901  1, 1, 2, 3, 3, 4, 3, 3, 3, 3,
902  3, 3, 3, 5, 5, 5, 3, 3, 3, 3,
903  5, 5, 5, 5, 5, 5, 3, 3, 3, 3,
904  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
905  3, 3, 3, 5, 5, 5, 5, 5, 5, 3,
906  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
907  3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
908  3
909  } ;
910 
911 static const flex_int16_t yy_base[1465] =
912  { 0,
913  0, 70, 19, 29, 41, 49, 52, 58, 87, 95,
914  1817, 1818, 32, 1813, 141, 0, 201, 1818, 206, 88,
915  11, 213, 1818, 1795, 114, 25, 2, 6, 1818, 1818,
916  73, 11, 17, 1818, 1818, 1818, 104, 1801, 1756, 0,
917  1793, 107, 1808, 217, 241, 1818, 185, 1752, 1758, 1778,
918  93, 58, 190, 91, 211, 200, 14, 267, 213, 175,
919  269, 64, 231, 184, 187, 75, 1759, 274, 215, 290,
920  278, 297, 1742, 207, 302, 316, 316, 1761, 0, 355,
921  360, 372, 377, 380, 1818, 0, 1818, 295, 383, 227,
922  296, 283, 327, 361, 293, 1818, 1758, 1797, 1818, 237,
923 
924  1818, 394, 363, 1745, 1755, 1794, 375, 321, 403, 1749,
925  369, 378, 376, 382, 388, 1792, 0, 445, 407, 1736,
926  1744, 364, 1740, 1729, 1730, 372, 1746, 1729, 1738, 387,
927  308, 378, 1732, 1730, 391, 1719, 1775, 416, 1722, 1773,
928  1715, 1738, 1735, 1735, 1729, 214, 1722, 1715, 1720, 1714,
929  382, 1725, 1718, 1709, 1708, 1722, 362, 1758, 1707, 414,
930  1719, 1722, 1706, 441, 1707, 417, 1719, 1716, 1717, 1715,
931  422, 1697, 1702, 1698, 1690, 1707, 1699, 0, 422, 450,
932  440, 446, 454, 470, 1698, 1818, 0, 476, 1689, 1692,
933  1818, 465, 447, 1818, 1744, 1699, 477, 1742, 481, 1741,
934 
935  477, 1740, 1818, 521, 1739, 489, 1700, 1695, 1694, 1685,
936  465, 1734, 1728, 1694, 1673, 1681, 1687, 1675, 1689, 1685,
937  1686, 1686, 1681, 1673, 1675, 1659, 1663, 1676, 1678, 1675,
938  1667, 1657, 1660, 1674, 1818, 1660, 1668, 1671, 1652, 1651,
939  1701, 1650, 1660, 1698, 510, 1659, 1647, 1658, 1694, 490,
940  1698, 1635, 1650, 9, 1640, 1656, 1637, 1639, 1635, 1641,
941  1632, 1631, 1644, 1637, 1639, 1643, 1642, 1636, 80, 1643,
942  1638, 1630, 1620, 1635, 1630, 1634, 1615, 1631, 1617, 1623,
943  1630, 1618, 230, 1611, 1625, 1624, 1627, 1609, 1617, 491,
944  1818, 1818, 492, 1818, 1818, 1604, 0, 376, 1606, 508,
945 
946  501, 1660, 1818, 1613, 480, 1818, 1658, 1818, 1652, 562,
947  1818, 480, 1594, 1604, 1654, 1611, 1606, 1609, 304, 1818,
948  1607, 1649, 1604, 1601, 1602, 303, 1606, 1644, 1594, 1589,
949  1586, 1582, 1584, 1633, 1592, 1581, 1597, 1629, 1577, 568,
950  1590, 1590, 1573, 1574, 1587, 1574, 1584, 1579, 1586, 1581,
951  1566, 451, 1575, 1578, 1573, 1569, 1617, 501, 497, 1818,
952  1611, 1563, 1562, 1555, 1557, 1561, 1550, 1557, 1562, 550,
953  1607, 1562, 503, 1559, 1563, 1561, 1550, 1550, 1562, 496,
954  1537, 1538, 1559, 511, 1541, 1538, 1552, 1551, 1537, 1549,
955  1548, 1547, 1546, 507, 1587, 1586, 1585, 1529, 583, 1542,
956 
957  1818, 1818, 1541, 0, 518, 1529, 1580, 1579, 1537, 1577,
958  1818, 1525, 1575, 1818, 541, 617, 520, 1574, 1516, 1818,
959  1521, 1527, 1530, 1529, 1516, 1515, 1818, 1517, 1514, 1526,
960  543, 1511, 1513, 1818, 1519, 1504, 1506, 1517, 1515, 1510,
961  585, 1517, 1505, 1498, 1547, 1818, 1496, 1512, 1544, 1548,
962  1506, 1500, 1502, 1503, 1505, 1537, 1490, 1485, 1484, 1486,
963  1479, 1494, 1472, 1479, 1484, 1532, 1818, 1479, 1475, 1529,
964  1482, 1476, 1483, 1468, 1478, 1481, 1470, 1469, 1464, 1818,
965  1519, 1818, 1463, 1462, 1455, 1472, 1509, 1456, 1461, 1470,
966  1464, 1458, 1467, 586, 1502, 1466, 1449, 1449, 1444, 1440,
967 
968  1446, 1445, 1453, 1457, 1440, 1496, 1438, 1452, 1441, 1818,
969  1818, 1818, 1441, 1818, 1451, 1485, 1447, 0, 1488, 1438,
970  1818, 1818, 1435, 1818, 1441, 1818, 562, 562, 593, 1818,
971  1479, 1426, 1477, 1424, 1423, 1430, 1423, 1435, 1434, 1418,
972  1433, 1415, 1462, 1429, 1465, 1411, 1413, 1425, 1425, 1424,
973  1818, 1409, 1406, 1462, 1419, 1411, 1417, 1408, 1416, 1818,
974  1401, 1412, 1416, 1398, 1412, 555, 1394, 1388, 1393, 1390,
975  1405, 1406, 1403, 1444, 1401, 1818, 1387, 1389, 1818, 1397,
976  1434, 1433, 575, 1396, 1379, 1380, 1385, 1376, 1818, 1390,
977  1376, 608, 1368, 1389, 1386, 1378, 1421, 1375, 1382, 1418,
978 
979  1818, 1366, 1364, 1378, 1362, 1376, 1379, 1411, 1410, 1409,
980  1356, 1407, 1406, 1818, 599, 1368, 1368, 1366, 1355, 1357,
981  1818, 1818, 1400, 1348, 1403, 581, 588, 1346, 1361, 1400,
982  575, 1394, 1393, 1392, 1346, 1336, 1389, 1351, 1341, 1349,
983  1385, 1348, 1330, 1338, 1340, 1344, 1379, 1383, 1340, 1339,
984  1818, 1340, 1333, 1322, 1335, 1338, 1333, 1328, 1333, 1330,
985  1329, 1325, 1331, 1326, 1367, 1366, 1310, 1306, 569, 1363,
986  1818, 1362, 1311, 1303, 1354, 1317, 1304, 1818, 1304, 1313,
987  1312, 1312, 1296, 1351, 1294, 1307, 1818, 1299, 1291, 1300,
988  1293, 1304, 1281, 1285, 1336, 1300, 1282, 1280, 1291, 1331,
989 
990  1330, 1329, 1276, 1292, 576, 594, 1269, 1279, 588, 1818,
991  1329, 1275, 1285, 1285, 1274, 1278, 1285, 1322, 1818, 1316,
992  592, 1278, 1270, 1818, 1266, 1279, 1259, 1262, 1258, 1275,
993  11, 65, 79, 184, 220, 300, 426, 389, 419, 469,
994  551, 562, 1818, 583, 587, 582, 602, 600, 644, 586,
995  590, 610, 611, 598, 661, 620, 606, 609, 1818, 1818,
996  625, 624, 629, 617, 1818, 1818, 631, 618, 616, 634,
997  621, 621, 670, 622, 678, 679, 1818, 626, 640, 640,
998  683, 633, 635, 629, 687, 642, 632, 633, 629, 639,
999  643, 654, 638, 656, 651, 653, 646, 648, 660, 650,
1000 
1001  665, 704, 663, 668, 645, 1818, 670, 660, 705, 654,
1002  669, 670, 1818, 689, 697, 666, 680, 668, 663, 675,
1003  670, 671, 667, 676, 671, 722, 728, 687, 678, 1818,
1004  690, 675, 691, 681, 693, 687, 732, 700, 685, 686,
1005  1818, 703, 706, 689, 691, 747, 692, 1818, 709, 712,
1006  692, 711, 749, 709, 705, 700, 718, 717, 703, 718,
1007  710, 706, 724, 709, 1818, 1818, 717, 762, 717, 1818,
1008  725, 720, 771, 1818, 722, 727, 769, 723, 724, 736,
1009  730, 734, 732, 730, 741, 784, 730, 786, 787, 733,
1010  745, 1818, 733, 741, 739, 744, 756, 740, 754, 755,
1011 
1012  756, 772, 777, 759, 746, 747, 767, 756, 761, 768,
1013  809, 810, 759, 763, 1818, 808, 759, 777, 774, 812,
1014  763, 781, 782, 768, 776, 785, 765, 780, 787, 829,
1015  830, 1818, 785, 832, 833, 786, 796, 798, 782, 783,
1016  790, 799, 842, 791, 790, 807, 846, 798, 802, 800,
1017  798, 851, 852, 804, 854, 850, 810, 1818, 815, 808,
1018  799, 818, 812, 807, 817, 814, 819, 815, 827, 1818,
1019  811, 1818, 1818, 812, 870, 811, 830, 831, 828, 814,
1020  835, 817, 822, 829, 862, 853, 883, 828, 830, 847,
1021  845, 837, 841, 1818, 1818, 851, 849, 852, 836, 837,
1022 
1023  895, 850, 855, 842, 853, 845, 851, 847, 865, 867,
1024  868, 1818, 1818, 866, 1818, 868, 1818, 853, 855, 874,
1025  864, 914, 869, 911, 877, 1818, 869, 861, 920, 1818,
1026  921, 870, 877, 919, 1818, 1818, 879, 1818, 870, 870,
1027  873, 887, 892, 875, 886, 933, 892, 893, 894, 932,
1028  890, 939, 940, 1818, 889, 942, 943, 885, 945, 906,
1029  890, 902, 892, 922, 951, 1818, 952, 901, 916, 903,
1030  899, 915, 920, 908, 908, 961, 920, 1818, 922, 921,
1031  923, 916, 925, 926, 923, 913, 916, 916, 973, 922,
1032  975, 976, 921, 979, 1818, 917, 932, 925, 983, 938,
1033 
1034  1818, 1818, 934, 944, 929, 947, 933, 992, 993, 940,
1035  950, 997, 956, 1818, 948, 948, 950, 952, 1003, 948,
1036  1818, 1818, 950, 1818, 1818, 964, 1818, 958, 1008, 959,
1037  1010, 992, 1818, 1818, 956, 964, 958, 957, 960, 960,
1038  961, 1019, 969, 1818, 965, 1022, 977, 968, 983, 983,
1039  986, 986, 983, 1025, 989, 1818, 981, 1818, 1818, 991,
1040  1818, 993, 994, 991, 1033, 1818, 984, 984, 990, 989,
1041  1001, 1001, 1818, 1818, 1040, 989, 1818, 1006, 991, 991,
1042  993, 999, 1818, 1052, 1005, 1054, 1017, 1818, 1014, 1818,
1043  1033, 1058, 1059, 1018, 1004, 1062, 1063, 1018, 1818, 1008,
1044 
1045  1066, 1818, 1006, 1063, 1028, 1024, 1066, 1016, 1021, 1019,
1046  1076, 1034, 1078, 1079, 1042, 1031, 1025, 1041, 1085, 1029,
1047  1046, 1031, 1046, 1030, 1086, 1087, 1088, 1037, 1090, 1055,
1048  1818, 1041, 1818, 1052, 1099, 1071, 1818, 1818, 1045, 1102,
1049  1818, 1818, 1051, 1049, 1818, 1105, 1053, 1102, 1047, 1052,
1050  1111, 1061, 1071, 1072, 1818, 1115, 1070, 1818, 1818, 1061,
1051  1076, 1064, 1079, 1818, 1116, 1084, 1077, 1078, 1087, 1069,
1052  1075, 1078, 1130, 1091, 1091, 1134, 1085, 1818, 1136, 1137,
1053  1818, 1087, 1087, 1818, 1091, 1086, 1085, 1143, 1098, 1818,
1054  1140, 1093, 1090, 1818, 1104, 1107, 1150, 1105, 1152, 1095,
1055 
1056  1097, 1105, 1095, 1111, 1112, 1106, 1122, 1818, 1112, 1162,
1057  1818, 1158, 1818, 1818, 1159, 1116, 1124, 1115, 1122, 1818,
1058  1119, 1124, 1122, 1172, 1173, 1118, 1818, 1133, 1818, 1123,
1059  1135, 1136, 1179, 1123, 1131, 1125, 1133, 1146, 1818, 1145,
1060  1133, 1187, 1137, 1149, 1140, 1149, 1151, 1155, 1818, 1818,
1061  1194, 1139, 1155, 1197, 1198, 1818, 1194, 1158, 1155, 1160,
1062  1147, 1142, 1163, 1818, 1206, 1165, 1166, 1209, 1168, 1171,
1063  1818, 1212, 1175, 1818, 1818, 1157, 1215, 1164, 1217, 1162,
1064  1179, 1165, 1818, 1165, 1167, 1818, 1172, 1182, 1818, 1168,
1065  1180, 1818, 1176, 1818, 1186, 1180, 1184, 1175, 1227, 1176,
1066 
1067  1184, 1193, 1186, 1181, 1182, 1197, 1188, 1195, 1182, 1197,
1068  1202, 1245, 1204, 1247, 1248, 1193, 1209, 1200, 1214, 1210,
1069  1203, 1818, 1255, 1818, 1818, 1256, 1257, 1214, 1213, 1214,
1070  1204, 1818, 1818, 1818, 1262, 1206, 1222, 1265, 1818, 1261,
1071  1212, 1818, 1211, 1213, 1224, 1271, 1222, 1818, 1231, 1274,
1072  1818, 1818, 1280, 1285, 1290, 1295, 1300, 1305, 1310, 1313,
1073  1287, 1292, 1294, 1307
1074  } ;
1075 
1076 static const flex_int16_t yy_def[1465] =
1077  { 0,
1078  1453, 1453, 1454, 1454, 1453, 1453, 1453, 1453, 1453, 1453,
1079  1452, 1452, 1452, 1452, 1452, 1455, 1452, 1452, 1452, 1452,
1080  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
1081  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1456,
1082  1452, 1452, 1452, 1457, 15, 1452, 45, 45, 45, 45,
1083  45, 45, 45, 45, 45, 45, 45, 1458, 45, 45,
1084  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1085  45, 45, 45, 45, 45, 45, 45, 45, 1455, 1452,
1086  1452, 1452, 1452, 1452, 1452, 1459, 1452, 1452, 1452, 1452,
1087  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1456, 1452, 1457,
1088 
1089  1452, 1452, 45, 45, 45, 45, 45, 45, 45, 45,
1090  45, 45, 45, 45, 45, 1460, 45, 1458, 45, 45,
1091  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1092  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1093  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1094  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1095  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1096  45, 45, 45, 45, 45, 45, 45, 1459, 1452, 1452,
1097  1452, 1452, 1452, 1452, 1452, 1452, 1461, 45, 45, 45,
1098  1452, 45, 45, 1452, 45, 45, 45, 45, 45, 45,
1099 
1100  45, 1460, 1452, 1458, 45, 45, 45, 45, 45, 45,
1101  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1102  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1103  45, 45, 45, 45, 1452, 45, 45, 45, 45, 45,
1104  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1105  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1106  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1107  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1108  45, 45, 45, 45, 45, 45, 45, 45, 45, 1452,
1109  1452, 1452, 1452, 1452, 1452, 1452, 1462, 45, 45, 45,
1110 
1111  45, 45, 1452, 45, 45, 1452, 45, 1452, 45, 1458,
1112  1452, 45, 45, 45, 45, 45, 45, 45, 45, 1452,
1113  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1114  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1115  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1116  45, 45, 45, 45, 45, 45, 45, 45, 45, 1452,
1117  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1118  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1119  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1120  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1121 
1122  1452, 1452, 1452, 1463, 45, 45, 45, 45, 45, 45,
1123  1452, 45, 45, 1452, 45, 1458, 45, 45, 45, 1452,
1124  45, 45, 45, 45, 45, 45, 1452, 45, 45, 45,
1125  45, 45, 45, 1452, 45, 45, 45, 45, 45, 45,
1126  45, 45, 45, 45, 45, 1452, 45, 45, 45, 45,
1127  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1128  45, 45, 45, 45, 45, 45, 1452, 45, 45, 45,
1129  45, 45, 45, 45, 45, 45, 45, 45, 45, 1452,
1130  45, 1452, 45, 45, 45, 45, 45, 45, 45, 45,
1131  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1132 
1133  45, 45, 45, 45, 45, 45, 45, 45, 45, 1452,
1134  1452, 1452, 45, 1452, 45, 45, 1452, 1464, 45, 45,
1135  1452, 1452, 45, 1452, 45, 1452, 45, 45, 45, 1452,
1136  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1137  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1138  1452, 45, 45, 45, 45, 45, 45, 45, 45, 1452,
1139  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1140  45, 45, 45, 45, 45, 1452, 45, 45, 1452, 45,
1141  45, 45, 45, 45, 45, 45, 45, 45, 1452, 45,
1142  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1143 
1144  1452, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1145  45, 45, 45, 1452, 45, 45, 45, 45, 45, 45,
1146  1452, 1452, 45, 45, 45, 45, 45, 45, 45, 45,
1147  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1148  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1149  1452, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1150  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1151  1452, 45, 45, 45, 45, 45, 45, 1452, 45, 45,
1152  45, 45, 45, 45, 45, 45, 1452, 45, 45, 45,
1153  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1154 
1155  45, 45, 45, 45, 45, 45, 45, 45, 45, 1452,
1156  45, 45, 45, 45, 45, 45, 45, 45, 1452, 45,
1157  45, 45, 45, 1452, 45, 45, 45, 45, 45, 45,
1158  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1159  45, 45, 1452, 45, 45, 45, 45, 45, 45, 45,
1160  45, 45, 45, 45, 45, 45, 45, 45, 1452, 1452,
1161  45, 45, 45, 45, 1452, 1452, 45, 45, 45, 45,
1162  45, 45, 45, 45, 45, 45, 1452, 45, 45, 45,
1163  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1164  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1165 
1166  45, 45, 45, 45, 45, 1452, 45, 45, 45, 45,
1167  45, 45, 1452, 45, 45, 45, 45, 45, 45, 45,
1168  45, 45, 45, 45, 45, 45, 45, 45, 45, 1452,
1169  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1170  1452, 45, 45, 45, 45, 45, 45, 1452, 45, 45,
1171  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1172  45, 45, 45, 45, 1452, 1452, 45, 45, 45, 1452,
1173  45, 45, 45, 1452, 45, 45, 45, 45, 45, 45,
1174  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1175  45, 1452, 45, 45, 45, 45, 45, 45, 45, 45,
1176 
1177  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1178  45, 45, 45, 45, 1452, 45, 45, 45, 45, 45,
1179  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1180  45, 1452, 45, 45, 45, 45, 45, 45, 45, 45,
1181  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1182  45, 45, 45, 45, 45, 45, 45, 1452, 45, 45,
1183  45, 45, 45, 45, 45, 45, 45, 45, 45, 1452,
1184  45, 1452, 1452, 45, 45, 45, 45, 45, 45, 45,
1185  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1186  45, 45, 45, 1452, 1452, 45, 45, 45, 45, 45,
1187 
1188  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1189  45, 1452, 1452, 45, 1452, 45, 1452, 45, 45, 45,
1190  45, 45, 45, 45, 45, 1452, 45, 45, 45, 1452,
1191  45, 45, 45, 45, 1452, 1452, 45, 1452, 45, 45,
1192  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1193  45, 45, 45, 1452, 45, 45, 45, 45, 45, 45,
1194  45, 45, 45, 45, 45, 1452, 45, 45, 45, 45,
1195  45, 45, 45, 45, 45, 45, 45, 1452, 45, 45,
1196  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1197  45, 45, 45, 45, 1452, 45, 45, 45, 45, 45,
1198 
1199  1452, 1452, 45, 45, 45, 45, 45, 45, 45, 45,
1200  45, 45, 45, 1452, 45, 45, 45, 45, 45, 45,
1201  1452, 1452, 45, 1452, 1452, 45, 1452, 45, 45, 45,
1202  45, 45, 1452, 1452, 45, 45, 45, 45, 45, 45,
1203  45, 45, 45, 1452, 45, 45, 45, 45, 45, 45,
1204  45, 45, 45, 45, 45, 1452, 45, 1452, 1452, 45,
1205  1452, 45, 45, 45, 45, 1452, 45, 45, 45, 45,
1206  45, 45, 1452, 1452, 45, 45, 1452, 45, 45, 45,
1207  45, 45, 1452, 45, 45, 45, 45, 1452, 45, 1452,
1208  45, 45, 45, 45, 45, 45, 45, 45, 1452, 45,
1209 
1210  45, 1452, 45, 45, 45, 45, 45, 45, 45, 45,
1211  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1212  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1213  1452, 45, 1452, 45, 45, 45, 1452, 1452, 45, 45,
1214  1452, 1452, 45, 45, 1452, 45, 45, 45, 45, 45,
1215  45, 45, 45, 45, 1452, 45, 45, 1452, 1452, 45,
1216  45, 45, 45, 1452, 45, 45, 45, 45, 45, 45,
1217  45, 45, 45, 45, 45, 45, 45, 1452, 45, 45,
1218  1452, 45, 45, 1452, 45, 45, 45, 45, 45, 1452,
1219  45, 45, 45, 1452, 45, 45, 45, 45, 45, 45,
1220 
1221  45, 45, 45, 45, 45, 45, 45, 1452, 45, 45,
1222  1452, 45, 1452, 1452, 45, 45, 45, 45, 45, 1452,
1223  45, 45, 45, 45, 45, 45, 1452, 45, 1452, 45,
1224  45, 45, 45, 45, 45, 45, 45, 45, 1452, 45,
1225  45, 45, 45, 45, 45, 45, 45, 45, 1452, 1452,
1226  45, 45, 45, 45, 45, 1452, 45, 45, 45, 45,
1227  45, 45, 45, 1452, 45, 45, 45, 45, 45, 45,
1228  1452, 45, 45, 1452, 1452, 45, 45, 45, 45, 45,
1229  45, 45, 1452, 45, 45, 1452, 45, 45, 1452, 45,
1230  45, 1452, 45, 1452, 45, 45, 45, 45, 45, 45,
1231 
1232  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1233  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1234  45, 1452, 45, 1452, 1452, 45, 45, 45, 45, 45,
1235  45, 1452, 1452, 1452, 45, 45, 45, 45, 1452, 45,
1236  45, 1452, 45, 45, 45, 45, 45, 1452, 45, 45,
1237  1452, 0, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
1238  1452, 1452, 1452, 1452
1239  } ;
1240 
1241 static const flex_int16_t yy_nxt[1890] =
1242  { 0,
1243  1452, 13, 14, 13, 1452, 15, 16, 1452, 17, 18,
1244  19, 20, 21, 22, 22, 22, 23, 24, 85, 363,
1245  37, 14, 37, 86, 25, 26, 38, 1452, 1452, 27,
1246  37, 14, 37, 42, 28, 42, 38, 91, 92, 29,
1247  115, 30, 13, 14, 13, 90, 91, 25, 31, 92,
1248  13, 14, 13, 13, 14, 13, 32, 40, 824, 13,
1249  14, 13, 33, 40, 115, 91, 92, 364, 90, 34,
1250  35, 13, 14, 13, 94, 15, 16, 95, 17, 18,
1251  19, 20, 21, 22, 22, 22, 23, 24, 13, 14,
1252  13, 108, 39, 90, 25, 26, 13, 14, 13, 27,
1253 
1254  39, 84, 84, 84, 28, 42, 41, 42, 42, 29,
1255  42, 30, 82, 107, 41, 111, 93, 25, 31, 108,
1256  130, 138, 88, 825, 88, 826, 32, 89, 89, 89,
1257  131, 139, 33, 140, 379, 82, 107, 380, 111, 34,
1258  35, 44, 44, 44, 45, 45, 46, 45, 45, 45,
1259  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1260  45, 47, 45, 48, 49, 50, 51, 45, 52, 53,
1261  54, 45, 45, 45, 45, 55, 56, 45, 57, 45,
1262  45, 58, 45, 45, 59, 45, 60, 61, 62, 63,
1263  64, 65, 66, 52, 67, 68, 69, 70, 71, 72,
1264 
1265  73, 74, 75, 76, 77, 78, 57, 45, 45, 45,
1266  45, 45, 80, 103, 81, 81, 81, 80, 109, 83,
1267  83, 83, 101, 114, 80, 82, 83, 83, 83, 121,
1268  82, 133, 122, 112, 123, 306, 124, 82, 134, 103,
1269  394, 103, 101, 113, 135, 827, 114, 110, 82, 136,
1270  163, 107, 137, 82, 164, 179, 112, 102, 146, 244,
1271  82, 45, 147, 45, 45, 45, 45, 119, 45, 45,
1272  45, 113, 117, 120, 107, 45, 45, 102, 45, 45,
1273  245, 179, 148, 828, 45, 132, 45, 45, 45, 45,
1274  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1275 
1276  45, 45, 45, 45, 45, 45, 45, 45, 89, 89,
1277  89, 45, 125, 431, 111, 45, 126, 432, 181, 127,
1278  128, 142, 143, 45, 180, 144, 152, 45, 181, 45,
1279  118, 145, 129, 149, 153, 150, 154, 151, 112, 114,
1280  157, 155, 156, 158, 159, 165, 181, 424, 113, 166,
1281  180, 193, 167, 224, 160, 179, 184, 161, 829, 168,
1282  169, 171, 114, 172, 425, 170, 225, 173, 84, 84,
1283  84, 80, 175, 81, 81, 81, 113, 176, 193, 82,
1284  88, 182, 88, 174, 82, 89, 89, 89, 80, 180,
1285  83, 83, 83, 84, 84, 84, 89, 89, 89, 100,
1286 
1287  188, 82, 82, 192, 82, 197, 100, 82, 194, 198,
1288  209, 199, 201, 200, 405, 183, 215, 216, 197, 210,
1289  211, 235, 256, 257, 82, 226, 217, 82, 188, 192,
1290  221, 830, 222, 197, 100, 201, 198, 195, 100, 199,
1291  200, 227, 100, 405, 188, 230, 250, 831, 231, 223,
1292  100, 266, 232, 198, 100, 290, 100, 187, 204, 204,
1293  204, 205, 832, 236, 292, 204, 204, 204, 204, 204,
1294  204, 260, 206, 276, 261, 262, 302, 277, 291, 290,
1295  283, 278, 291, 290, 267, 268, 269, 292, 204, 204,
1296  204, 204, 204, 204, 292, 270, 298, 271, 301, 272,
1297 
1298  273, 305, 274, 302, 291, 307, 309, 293, 294, 298,
1299  461, 462, 413, 317, 305, 401, 401, 295, 405, 298,
1300  352, 318, 407, 408, 305, 410, 301, 319, 307, 413,
1301  833, 409, 312, 309, 310, 310, 310, 359, 401, 402,
1302  413, 310, 310, 310, 310, 310, 310, 417, 410, 468,
1303  484, 519, 492, 519, 485, 480, 493, 470, 497, 469,
1304  508, 834, 498, 509, 310, 310, 310, 310, 310, 310,
1305  527, 353, 528, 446, 354, 416, 416, 416, 447, 519,
1306  678, 529, 416, 416, 416, 416, 416, 416, 514, 541,
1307  551, 601, 626, 515, 627, 552, 602, 527, 622, 528,
1308 
1309  662, 663, 542, 628, 710, 416, 416, 416, 416, 416,
1310  416, 481, 721, 687, 711, 720, 835, 679, 688, 626,
1311  725, 726, 627, 763, 448, 815, 764, 797, 836, 449,
1312  45, 45, 45, 837, 798, 721, 838, 45, 45, 45,
1313  45, 45, 45, 720, 804, 799, 839, 840, 843, 841,
1314  805, 844, 800, 815, 842, 689, 801, 845, 846, 847,
1315  45, 45, 45, 45, 45, 45, 848, 849, 850, 851,
1316  852, 853, 854, 855, 856, 857, 858, 859, 861, 862,
1317  863, 860, 864, 865, 866, 867, 868, 869, 870, 871,
1318  872, 873, 874, 875, 876, 877, 878, 879, 880, 881,
1319 
1320  882, 883, 884, 885, 886, 887, 888, 890, 891, 892,
1321  893, 894, 895, 896, 897, 898, 899, 900, 889, 901,
1322  902, 903, 904, 905, 906, 907, 908, 909, 910, 911,
1323  912, 913, 914, 915, 916, 917, 918, 919, 920, 921,
1324  922, 923, 924, 925, 903, 926, 927, 902, 928, 929,
1325  930, 931, 932, 935, 936, 937, 938, 933, 939, 940,
1326  941, 942, 943, 944, 945, 946, 947, 948, 949, 950,
1327  952, 953, 954, 955, 956, 957, 958, 959, 960, 961,
1328  951, 962, 963, 964, 965, 966, 967, 968, 969, 970,
1329  971, 972, 973, 974, 975, 976, 977, 978, 979, 980,
1330 
1331  981, 982, 983, 984, 985, 987, 986, 988, 934, 989,
1332  990, 991, 992, 993, 994, 995, 996, 997, 998, 999,
1333  1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
1334  1010, 1011, 985, 986, 1012, 1013, 1014, 1015, 1017, 1019,
1335  1020, 1021, 1016, 1022, 1023, 1024, 1025, 1026, 1027, 1028,
1336  1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038,
1337  1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048,
1338  1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058,
1339  1018, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067,
1340  1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077,
1341 
1342  1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1064,
1343  1087, 1088, 1089, 1090, 1091, 1065, 1092, 1093, 1094, 1095,
1344  1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105,
1345  1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115,
1346  1116, 1117, 1118, 1120, 1121, 1122, 1123, 1124, 1125, 1126,
1347  1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1136, 1137,
1348  1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147,
1349  1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157,
1350  1158, 1159, 1160, 1132, 1161, 1162, 1163, 1165, 1166, 1167,
1351  1168, 1169, 1170, 1119, 1164, 1171, 1172, 1173, 1174, 1135,
1352 
1353  1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184,
1354  1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194,
1355  1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204,
1356  1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1191,
1357  1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223,
1358  1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233,
1359  1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243,
1360  1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253,
1361  1254, 1255, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1236,
1362  1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273,
1363 
1364  1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283,
1365  1284, 1286, 1287, 1288, 1289, 1285, 1290, 1291, 1292, 1293,
1366  1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303,
1367  1304, 1305, 1306, 1279, 1307, 1308, 1309, 1256, 1310, 1311,
1368  1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321,
1369  1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331,
1370  1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341,
1371  1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351,
1372  1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361,
1373  1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371,
1374 
1375  1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381,
1376  1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391,
1377  1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401,
1378  1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411,
1379  1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421,
1380  1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431,
1381  1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441,
1382  1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451,
1383  12, 12, 12, 12, 12, 36, 36, 36, 36, 36,
1384  79, 297, 79, 79, 79, 98, 404, 98, 518, 98,
1385 
1386  100, 100, 100, 100, 100, 116, 116, 116, 116, 116,
1387  178, 100, 178, 178, 178, 202, 202, 202, 823, 822,
1388  821, 820, 819, 818, 817, 816, 814, 813, 812, 811,
1389  810, 809, 808, 807, 806, 803, 802, 796, 795, 794,
1390  793, 792, 791, 790, 789, 788, 787, 786, 785, 784,
1391  783, 782, 781, 780, 779, 778, 777, 776, 775, 774,
1392  773, 772, 771, 770, 769, 768, 767, 766, 765, 762,
1393  761, 760, 759, 758, 757, 756, 755, 754, 753, 752,
1394  751, 750, 749, 748, 747, 746, 745, 744, 743, 742,
1395  741, 740, 739, 738, 737, 736, 735, 734, 733, 732,
1396 
1397  731, 730, 729, 728, 727, 724, 723, 722, 719, 718,
1398  717, 716, 715, 714, 713, 712, 709, 708, 707, 706,
1399  705, 704, 703, 702, 701, 700, 699, 698, 697, 696,
1400  695, 694, 693, 692, 691, 690, 686, 685, 684, 683,
1401  682, 681, 680, 677, 676, 675, 674, 673, 672, 671,
1402  670, 669, 668, 667, 666, 665, 664, 661, 660, 659,
1403  658, 657, 656, 655, 654, 653, 652, 651, 650, 649,
1404  648, 647, 646, 645, 644, 643, 642, 641, 640, 639,
1405  638, 637, 636, 635, 634, 633, 632, 631, 630, 629,
1406  625, 624, 623, 622, 621, 620, 619, 618, 617, 616,
1407 
1408  615, 614, 613, 612, 611, 610, 609, 608, 607, 606,
1409  605, 604, 603, 600, 599, 598, 597, 596, 595, 594,
1410  593, 592, 591, 590, 589, 588, 587, 586, 585, 584,
1411  583, 582, 581, 580, 579, 578, 577, 576, 575, 574,
1412  573, 572, 571, 570, 569, 568, 567, 566, 565, 564,
1413  563, 562, 561, 560, 559, 558, 557, 556, 555, 554,
1414  553, 550, 549, 548, 547, 546, 545, 544, 543, 540,
1415  539, 538, 537, 536, 535, 534, 533, 532, 531, 530,
1416  526, 525, 524, 523, 522, 521, 520, 517, 516, 513,
1417  512, 511, 510, 507, 506, 505, 504, 503, 502, 501,
1418 
1419  500, 499, 496, 495, 494, 491, 490, 489, 488, 487,
1420  486, 483, 482, 479, 478, 477, 476, 475, 474, 473,
1421  472, 471, 467, 466, 465, 464, 463, 460, 459, 458,
1422  457, 456, 455, 454, 453, 452, 451, 450, 445, 444,
1423  443, 442, 441, 440, 439, 438, 437, 436, 435, 434,
1424  433, 430, 429, 428, 427, 426, 423, 422, 421, 420,
1425  419, 418, 415, 414, 412, 411, 406, 403, 400, 399,
1426  398, 397, 396, 395, 393, 392, 391, 390, 389, 388,
1427  387, 386, 385, 384, 383, 382, 381, 378, 377, 376,
1428  375, 374, 373, 372, 371, 370, 369, 368, 367, 366,
1429 
1430  365, 362, 361, 360, 358, 357, 356, 355, 351, 350,
1431  349, 348, 347, 346, 345, 344, 343, 342, 341, 340,
1432  339, 338, 337, 336, 335, 334, 333, 332, 331, 330,
1433  329, 328, 327, 326, 325, 324, 323, 322, 321, 320,
1434  316, 315, 314, 313, 311, 203, 308, 306, 304, 303,
1435  300, 299, 296, 289, 288, 287, 286, 285, 284, 282,
1436  281, 280, 279, 275, 265, 264, 263, 259, 258, 255,
1437  254, 253, 252, 251, 249, 248, 247, 246, 243, 242,
1438  241, 240, 239, 238, 237, 234, 233, 229, 228, 220,
1439  219, 218, 214, 213, 212, 208, 207, 203, 196, 191,
1440 
1441  190, 189, 186, 185, 177, 162, 141, 106, 105, 104,
1442  43, 99, 97, 96, 87, 43, 1452, 11, 1452, 1452,
1443  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
1444  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
1445  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
1446  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
1447  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
1448  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
1449  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452
1450  } ;
1451 
1452 static const flex_int16_t yy_chk[1890] =
1453  { 0,
1454  0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
1455  1, 1, 1, 1, 1, 1, 1, 1, 21, 254,
1456  3, 3, 3, 21, 1, 1, 3, 0, 0, 1,
1457  4, 4, 4, 13, 1, 13, 4, 27, 28, 1,
1458  57, 1, 5, 5, 5, 26, 32, 1, 1, 33,
1459  6, 6, 6, 7, 7, 7, 1, 7, 731, 8,
1460  8, 8, 1, 8, 57, 27, 28, 254, 26, 1,
1461  1, 2, 2, 2, 32, 2, 2, 33, 2, 2,
1462  2, 2, 2, 2, 2, 2, 2, 2, 9, 9,
1463  9, 52, 5, 31, 2, 2, 10, 10, 10, 2,
1464 
1465  6, 20, 20, 20, 2, 37, 9, 37, 42, 2,
1466  42, 2, 20, 51, 10, 54, 31, 2, 2, 52,
1467  62, 66, 25, 732, 25, 733, 2, 25, 25, 25,
1468  62, 66, 2, 66, 269, 20, 51, 269, 54, 2,
1469  2, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1470  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1471  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1472  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1473  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1474  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1475 
1476  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1477  15, 15, 17, 47, 17, 17, 17, 19, 53, 19,
1478  19, 19, 44, 56, 22, 17, 22, 22, 22, 60,
1479  19, 64, 60, 55, 60, 283, 60, 22, 64, 47,
1480  283, 59, 100, 55, 65, 734, 56, 53, 17, 65,
1481  74, 63, 65, 19, 74, 90, 55, 44, 69, 146,
1482  22, 45, 69, 45, 45, 45, 45, 59, 45, 45,
1483  45, 55, 58, 59, 63, 45, 45, 100, 45, 58,
1484  146, 90, 69, 735, 45, 63, 45, 45, 45, 45,
1485  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1486 
1487  45, 45, 45, 45, 45, 45, 45, 58, 88, 88,
1488  88, 58, 61, 326, 70, 58, 61, 326, 92, 61,
1489  61, 68, 68, 58, 91, 68, 71, 58, 95, 58,
1490  58, 68, 61, 70, 71, 70, 71, 70, 76, 77,
1491  72, 71, 71, 72, 72, 75, 92, 319, 76, 75,
1492  91, 108, 75, 131, 72, 93, 95, 72, 736, 75,
1493  75, 76, 77, 76, 319, 75, 131, 76, 80, 80,
1494  80, 81, 77, 81, 81, 81, 76, 77, 108, 80,
1495  82, 93, 82, 76, 81, 82, 82, 82, 83, 94,
1496  83, 83, 83, 84, 84, 84, 89, 89, 89, 102,
1497 
1498  103, 83, 80, 107, 84, 111, 102, 81, 109, 112,
1499  122, 113, 115, 114, 298, 94, 126, 126, 151, 122,
1500  122, 138, 157, 157, 83, 132, 126, 84, 103, 107,
1501  130, 737, 130, 111, 102, 115, 112, 109, 102, 113,
1502  114, 132, 102, 298, 119, 135, 151, 738, 135, 130,
1503  102, 164, 135, 171, 102, 179, 102, 102, 118, 118,
1504  118, 119, 739, 138, 181, 118, 118, 118, 118, 118,
1505  118, 160, 119, 166, 160, 160, 193, 166, 180, 182,
1506  171, 166, 183, 179, 164, 164, 164, 181, 118, 118,
1507  118, 118, 118, 118, 184, 164, 188, 164, 192, 164,
1508 
1509  164, 197, 164, 193, 180, 199, 201, 182, 183, 206,
1510  352, 352, 305, 211, 250, 290, 293, 184, 312, 188,
1511  245, 211, 300, 300, 197, 301, 192, 211, 199, 359,
1512  740, 300, 206, 201, 204, 204, 204, 250, 290, 293,
1513  305, 204, 204, 204, 204, 204, 204, 312, 301, 358,
1514  373, 405, 380, 417, 373, 370, 380, 359, 384, 358,
1515  394, 741, 384, 394, 204, 204, 204, 204, 204, 204,
1516  415, 245, 415, 340, 245, 310, 310, 310, 340, 405,
1517  583, 417, 310, 310, 310, 310, 310, 310, 399, 431,
1518  441, 494, 527, 399, 528, 441, 494, 415, 529, 415,
1519 
1520  566, 566, 431, 529, 615, 310, 310, 310, 310, 310,
1521  310, 370, 627, 592, 615, 626, 742, 583, 592, 527,
1522  631, 631, 528, 669, 340, 721, 669, 705, 744, 340,
1523  416, 416, 416, 745, 705, 627, 746, 416, 416, 416,
1524  416, 416, 416, 626, 709, 706, 747, 748, 750, 749,
1525  709, 751, 706, 721, 749, 592, 706, 752, 753, 754,
1526  416, 416, 416, 416, 416, 416, 755, 756, 757, 758,
1527  761, 762, 763, 764, 767, 768, 769, 770, 771, 772,
1528  773, 770, 774, 775, 776, 778, 779, 780, 781, 782,
1529  783, 784, 785, 786, 787, 788, 789, 790, 791, 792,
1530 
1531  793, 794, 795, 796, 797, 798, 799, 800, 801, 802,
1532  803, 804, 805, 807, 808, 809, 810, 811, 799, 812,
1533  814, 815, 816, 817, 818, 819, 820, 821, 822, 823,
1534  824, 825, 826, 827, 828, 829, 831, 832, 833, 834,
1535  835, 836, 837, 838, 815, 839, 840, 814, 842, 843,
1536  844, 845, 846, 847, 849, 850, 851, 846, 852, 853,
1537  854, 855, 856, 857, 858, 859, 860, 861, 862, 863,
1538  864, 867, 868, 869, 871, 872, 873, 875, 876, 877,
1539  863, 878, 879, 880, 881, 882, 883, 884, 885, 886,
1540  887, 888, 889, 890, 891, 893, 894, 895, 896, 897,
1541 
1542  898, 899, 900, 901, 902, 904, 903, 905, 846, 906,
1543  907, 908, 909, 910, 911, 912, 913, 914, 916, 917,
1544  918, 919, 920, 921, 922, 923, 924, 925, 926, 927,
1545  928, 929, 902, 903, 930, 931, 933, 934, 935, 936,
1546  937, 938, 934, 939, 940, 941, 942, 943, 944, 945,
1547  946, 947, 948, 949, 950, 951, 952, 953, 954, 955,
1548  956, 957, 959, 960, 961, 962, 963, 964, 965, 966,
1549  967, 968, 969, 971, 974, 975, 976, 977, 978, 979,
1550  935, 980, 981, 982, 983, 984, 985, 986, 987, 988,
1551  989, 990, 991, 992, 993, 996, 997, 998, 999, 1000,
1552 
1553  1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 985,
1554  1010, 1011, 1014, 1016, 1018, 986, 1019, 1020, 1021, 1022,
1555  1023, 1024, 1025, 1027, 1028, 1029, 1031, 1032, 1033, 1034,
1556  1037, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047,
1557  1048, 1049, 1050, 1051, 1052, 1053, 1055, 1056, 1057, 1058,
1558  1059, 1060, 1061, 1062, 1063, 1064, 1065, 1067, 1068, 1069,
1559  1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1079, 1080,
1560  1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090,
1561  1091, 1092, 1093, 1064, 1094, 1096, 1097, 1098, 1099, 1100,
1562  1103, 1104, 1105, 1050, 1097, 1106, 1107, 1108, 1109, 1067,
1563 
1564  1110, 1111, 1112, 1113, 1115, 1116, 1117, 1118, 1119, 1120,
1565  1123, 1126, 1128, 1129, 1130, 1131, 1132, 1135, 1136, 1137,
1566  1138, 1139, 1140, 1141, 1142, 1143, 1145, 1146, 1147, 1148,
1567  1149, 1150, 1151, 1152, 1153, 1154, 1155, 1157, 1160, 1132,
1568  1162, 1163, 1164, 1165, 1167, 1168, 1169, 1170, 1171, 1172,
1569  1175, 1176, 1178, 1179, 1180, 1181, 1182, 1184, 1185, 1186,
1570  1187, 1189, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198,
1571  1200, 1201, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210,
1572  1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1191,
1573  1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228,
1574 
1575  1229, 1230, 1232, 1234, 1235, 1236, 1239, 1240, 1243, 1244,
1576  1246, 1247, 1248, 1249, 1250, 1246, 1251, 1252, 1253, 1254,
1577  1256, 1257, 1260, 1261, 1262, 1263, 1265, 1266, 1267, 1268,
1578  1269, 1270, 1271, 1236, 1272, 1273, 1274, 1211, 1275, 1276,
1579  1277, 1279, 1280, 1282, 1283, 1285, 1286, 1287, 1288, 1289,
1580  1291, 1292, 1293, 1295, 1296, 1297, 1298, 1299, 1300, 1301,
1581  1302, 1303, 1304, 1305, 1306, 1307, 1309, 1310, 1312, 1315,
1582  1316, 1317, 1318, 1319, 1321, 1322, 1323, 1324, 1325, 1326,
1583  1328, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338,
1584  1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1351,
1585 
1586  1352, 1353, 1354, 1355, 1357, 1358, 1359, 1360, 1361, 1362,
1587  1363, 1365, 1366, 1367, 1368, 1369, 1370, 1372, 1373, 1376,
1588  1377, 1378, 1379, 1380, 1381, 1382, 1384, 1385, 1387, 1388,
1589  1390, 1391, 1393, 1395, 1396, 1397, 1398, 1399, 1400, 1401,
1590  1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411,
1591  1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421,
1592  1423, 1426, 1427, 1428, 1429, 1430, 1431, 1435, 1436, 1437,
1593  1438, 1440, 1441, 1443, 1444, 1445, 1446, 1447, 1449, 1450,
1594  1453, 1453, 1453, 1453, 1453, 1454, 1454, 1454, 1454, 1454,
1595  1455, 1461, 1455, 1455, 1455, 1456, 1462, 1456, 1463, 1456,
1596 
1597  1457, 1457, 1457, 1457, 1457, 1458, 1458, 1458, 1458, 1458,
1598  1459, 1464, 1459, 1459, 1459, 1460, 1460, 1460, 730, 729,
1599  728, 727, 726, 725, 723, 722, 720, 718, 717, 716,
1600  715, 714, 713, 712, 711, 708, 707, 704, 703, 702,
1601  701, 700, 699, 698, 697, 696, 695, 694, 693, 692,
1602  691, 690, 689, 688, 686, 685, 684, 683, 682, 681,
1603  680, 679, 677, 676, 675, 674, 673, 672, 670, 668,
1604  667, 666, 665, 664, 663, 662, 661, 660, 659, 658,
1605  657, 656, 655, 654, 653, 652, 650, 649, 648, 647,
1606  646, 645, 644, 643, 642, 641, 640, 639, 638, 637,
1607 
1608  636, 635, 634, 633, 632, 630, 629, 628, 625, 624,
1609  623, 620, 619, 618, 617, 616, 613, 612, 611, 610,
1610  609, 608, 607, 606, 605, 604, 603, 602, 600, 599,
1611  598, 597, 596, 595, 594, 593, 591, 590, 588, 587,
1612  586, 585, 584, 582, 581, 580, 578, 577, 575, 574,
1613  573, 572, 571, 570, 569, 568, 567, 565, 564, 563,
1614  562, 561, 559, 558, 557, 556, 555, 554, 553, 552,
1615  550, 549, 548, 547, 546, 545, 544, 543, 542, 541,
1616  540, 539, 538, 537, 536, 535, 534, 533, 532, 531,
1617  525, 523, 520, 519, 517, 516, 515, 513, 509, 508,
1618 
1619  507, 506, 505, 504, 503, 502, 501, 500, 499, 498,
1620  497, 496, 495, 493, 492, 491, 490, 489, 488, 487,
1621  486, 485, 484, 483, 481, 479, 478, 477, 476, 475,
1622  474, 473, 472, 471, 470, 469, 468, 466, 465, 464,
1623  463, 462, 461, 460, 459, 458, 457, 456, 455, 454,
1624  453, 452, 451, 450, 449, 448, 447, 445, 444, 443,
1625  442, 440, 439, 438, 437, 436, 435, 433, 432, 430,
1626  429, 428, 426, 425, 424, 423, 422, 421, 419, 418,
1627  413, 412, 410, 409, 408, 407, 406, 403, 400, 398,
1628  397, 396, 395, 393, 392, 391, 390, 389, 388, 387,
1629 
1630  386, 385, 383, 382, 381, 379, 378, 377, 376, 375,
1631  374, 372, 371, 369, 368, 367, 366, 365, 364, 363,
1632  362, 361, 357, 356, 355, 354, 353, 351, 350, 349,
1633  348, 347, 346, 345, 344, 343, 342, 341, 339, 338,
1634  337, 336, 335, 334, 333, 332, 331, 330, 329, 328,
1635  327, 325, 324, 323, 322, 321, 318, 317, 316, 315,
1636  314, 313, 309, 307, 304, 302, 299, 296, 289, 288,
1637  287, 286, 285, 284, 282, 281, 280, 279, 278, 277,
1638  276, 275, 274, 273, 272, 271, 270, 268, 267, 266,
1639  265, 264, 263, 262, 261, 260, 259, 258, 257, 256,
1640 
1641  255, 253, 252, 251, 249, 248, 247, 246, 244, 243,
1642  242, 241, 240, 239, 238, 237, 236, 234, 233, 232,
1643  231, 230, 229, 228, 227, 226, 225, 224, 223, 222,
1644  221, 220, 219, 218, 217, 216, 215, 214, 213, 212,
1645  210, 209, 208, 207, 205, 202, 200, 198, 196, 195,
1646  190, 189, 185, 177, 176, 175, 174, 173, 172, 170,
1647  169, 168, 167, 165, 163, 162, 161, 159, 158, 156,
1648  155, 154, 153, 152, 150, 149, 148, 147, 145, 144,
1649  143, 142, 141, 140, 139, 137, 136, 134, 133, 129,
1650  128, 127, 125, 124, 123, 121, 120, 116, 110, 106,
1651 
1652  105, 104, 98, 97, 78, 73, 67, 50, 49, 48,
1653  43, 41, 39, 38, 24, 14, 11, 1452, 1452, 1452,
1654  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
1655  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
1656  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
1657  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
1658  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
1659  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452,
1660  1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452, 1452
1661  } ;
1662 
1663 static yy_state_type yy_last_accepting_state;
1664 static char *yy_last_accepting_cpos;
1665 
1666 extern int yy_flex_debug;
1668 
1669 static const flex_int16_t yy_rule_linenum[179] =
1670  { 0,
1671  149, 151, 153, 158, 159, 164, 165, 166, 178, 181,
1672  186, 193, 202, 211, 220, 229, 238, 247, 256, 265,
1673  274, 283, 292, 301, 310, 319, 328, 338, 348, 358,
1674  368, 378, 387, 397, 407, 417, 427, 436, 445, 454,
1675  463, 472, 481, 490, 499, 508, 517, 527, 536, 549,
1676  558, 567, 576, 585, 596, 607, 618, 629, 641, 652,
1677  663, 674, 685, 696, 707, 718, 729, 740, 751, 762,
1678  773, 784, 793, 802, 812, 821, 830, 845, 861, 870,
1679  879, 888, 897, 906, 915, 924, 933, 942, 951, 973,
1680  995, 1004, 1014, 1024, 1033, 1043, 1054, 1063, 1072, 1081,
1681 
1682  1090, 1099, 1109, 1118, 1127, 1136, 1145, 1154, 1163, 1172,
1683  1181, 1190, 1200, 1209, 1218, 1228, 1240, 1253, 1262, 1271,
1684  1281, 1291, 1300, 1311, 1321, 1330, 1340, 1350, 1359, 1368,
1685  1377, 1386, 1396, 1405, 1415, 1424, 1433, 1442, 1451, 1460,
1686  1469, 1478, 1487, 1496, 1505, 1514, 1523, 1532, 1541, 1550,
1687  1559, 1568, 1577, 1586, 1595, 1604, 1613, 1622, 1631, 1640,
1688  1650, 1749, 1754, 1759, 1764, 1765, 1766, 1767, 1768, 1769,
1689  1771, 1789, 1802, 1807, 1811, 1813, 1815, 1817
1690  } ;
1691 
1692 /* The intent behind this definition is that it'll catch
1693  * any uses of REJECT which flex missed.
1694  */
1695 #define REJECT reject_used_but_not_detected
1696 #define yymore() yymore_used_but_not_detected
1697 #define YY_MORE_ADJ 0
1698 #define YY_RESTORE_YY_MORE_OFFSET
1699 char *yytext;
1700 #line 1 "dhcp6_lexer.ll"
1701 /* Copyright (C) 2016-2018 Internet Systems Consortium, Inc. ("ISC")
1702 
1703  This Source Code Form is subject to the terms of the Mozilla Public
1704  License, v. 2.0. If a copy of the MPL was not distributed with this
1705  file, You can obtain one at http://mozilla.org/MPL/2.0/. */
1706 #line 8 "dhcp6_lexer.ll"
1707 
1708 /* Generated files do not make clang static analyser so happy */
1709 #ifndef __clang_analyzer__
1710 
1711 #include <cerrno>
1712 #include <climits>
1713 #include <cstdlib>
1714 #include <string>
1715 #include <dhcp6/parser_context.h>
1716 #include <asiolink/io_address.h>
1717 #include <boost/lexical_cast.hpp>
1718 #include <exceptions/exceptions.h>
1719 
1720 /* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
1721 
1722 /* Work around an incompatibility in flex (at least versions
1723  2.5.31 through 2.5.33): it generates code that does
1724  not conform to C89. See Debian bug 333231
1725  <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
1726 # undef yywrap
1727 # define yywrap() 1
1728 
1729 namespace {
1730 
1731 bool start_token_flag = false;
1732 
1733 isc::dhcp::Parser6Context::ParserType start_token_value;
1734 unsigned int comment_start_line = 0;
1735 
1736 using namespace isc::dhcp;
1737 
1738 };
1739 
1740 /* To avoid the call to exit... oops! */
1741 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
1742 #line 1742 "dhcp6_lexer.cc"
1743 /* noyywrap disables automatic rewinding for the next file to parse. Since we
1744  always parse only a single string, there's no need to do any wraps. And
1745  using yywrap requires linking with -lfl, which provides the default yywrap
1746  implementation that always returns 1 anyway. */
1747 /* nounput simplifies the lexer, by removing support for putting a character
1748  back into the input stream. We never use such capability anyway. */
1749 /* batch means that we'll never use the generated lexer interactively. */
1750 /* avoid to get static global variables to remain with C++. */
1751 /* in last resort %option reentrant */
1752 /* Enables debug mode. To see the debug messages, one needs to also set
1753  yy_flex_debug to 1, then the debug messages will be printed on stderr. */
1754 /* I have no idea what this option does, except it was specified in the bison
1755  examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
1756  be on the safe side and keep it. */
1757 #define YY_NO_INPUT 1
1758 
1759 /* These are not token expressions yet, just convenience expressions that
1760  can be used during actual token definitions. Note some can match
1761  incorrect inputs (e.g., IP addresses) which must be checked. */
1762 /* for errors */
1763 #line 94 "dhcp6_lexer.ll"
1764 /* This code run each time a pattern is matched. It updates the location
1765  by moving it ahead by yyleng bytes. yyleng specifies the length of the
1766  currently matched token. */
1767 #define YY_USER_ACTION driver.loc_.columns(yyleng);
1768 #line 1768 "dhcp6_lexer.cc"
1769 #line 1769 "dhcp6_lexer.cc"
1770 
1771 #define INITIAL 0
1772 #define COMMENT 1
1773 #define DIR_ENTER 2
1774 #define DIR_INCLUDE 3
1775 #define DIR_EXIT 4
1776 
1777 #ifndef YY_NO_UNISTD_H
1778 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1779  * down here because we want the user's section 1 to have been scanned first.
1780  * The user has a chance to override it with an option.
1781  */
1782 /* %if-c-only */
1783 #include <unistd.h>
1784 /* %endif */
1785 /* %if-c++-only */
1786 /* %endif */
1787 #endif
1788 
1789 #ifndef YY_EXTRA_TYPE
1790 #define YY_EXTRA_TYPE void *
1791 #endif
1792 
1793 /* %if-c-only Reentrant structure and macros (non-C++). */
1794 /* %if-reentrant */
1795 /* %if-c-only */
1796 
1797 static int yy_init_globals ( void );
1798 
1799 /* %endif */
1800 /* %if-reentrant */
1801 /* %endif */
1802 /* %endif End reentrant structures and macros. */
1803 
1804 /* Accessor methods to globals.
1805  These are made visible to non-reentrant scanners for convenience. */
1806 
1807 int yylex_destroy ( void );
1808 
1809 int yyget_debug ( void );
1810 
1811 void yyset_debug ( int debug_flag );
1812 
1813 YY_EXTRA_TYPE yyget_extra ( void );
1814 
1815 void yyset_extra ( YY_EXTRA_TYPE user_defined );
1816 
1817 FILE *yyget_in ( void );
1818 
1819 void yyset_in ( FILE * _in_str );
1820 
1821 FILE *yyget_out ( void );
1822 
1823 void yyset_out ( FILE * _out_str );
1824 
1825  int yyget_leng ( void );
1826 
1827 char *yyget_text ( void );
1828 
1829 int yyget_lineno ( void );
1830 
1831 void yyset_lineno ( int _line_number );
1832 
1833 /* %if-bison-bridge */
1834 /* %endif */
1835 
1836 /* Macros after this point can all be overridden by user definitions in
1837  * section 1.
1838  */
1839 
1840 #ifndef YY_SKIP_YYWRAP
1841 #ifdef __cplusplus
1842 extern "C" int yywrap ( void );
1843 #else
1844 extern int yywrap ( void );
1845 #endif
1846 #endif
1847 
1848 /* %not-for-header */
1849 #ifndef YY_NO_UNPUT
1850 
1851 #endif
1852 /* %ok-for-header */
1853 
1854 /* %endif */
1855 
1856 #ifndef yytext_ptr
1857 static void yy_flex_strncpy ( char *, const char *, int );
1858 #endif
1859 
1860 #ifdef YY_NEED_STRLEN
1861 static int yy_flex_strlen ( const char * );
1862 #endif
1863 
1864 #ifndef YY_NO_INPUT
1865 /* %if-c-only Standard (non-C++) definition */
1866 /* %not-for-header */
1867 #ifdef __cplusplus
1868 static int yyinput ( void );
1869 #else
1870 static int input ( void );
1871 #endif
1872 /* %ok-for-header */
1873 
1874 /* %endif */
1875 #endif
1876 
1877 /* %if-c-only */
1878 
1879 /* %endif */
1880 
1881 /* Amount of stuff to slurp up with each read. */
1882 #ifndef YY_READ_BUF_SIZE
1883 #ifdef __ia64__
1884 /* On IA-64, the buffer size is 16k, not 8k */
1885 #define YY_READ_BUF_SIZE 16384
1886 #else
1887 #define YY_READ_BUF_SIZE 8192
1888 #endif /* __ia64__ */
1889 #endif
1890 
1891 /* Copy whatever the last rule matched to the standard output. */
1892 #ifndef ECHO
1893 /* %if-c-only Standard (non-C++) definition */
1894 /* This used to be an fputs(), but since the string might contain NUL's,
1895  * we now use fwrite().
1896  */
1897 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
1898 /* %endif */
1899 /* %if-c++-only C++ definition */
1900 /* %endif */
1901 #endif
1902 
1903 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1904  * is returned in "result".
1905  */
1906 #ifndef YY_INPUT
1907 #define YY_INPUT(buf,result,max_size) \
1908 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
1909  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1910  { \
1911  int c = '*'; \
1912  int n; \
1913  for ( n = 0; n < max_size && \
1914  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1915  buf[n] = (char) c; \
1916  if ( c == '\n' ) \
1917  buf[n++] = (char) c; \
1918  if ( c == EOF && ferror( yyin ) ) \
1919  YY_FATAL_ERROR( "input in flex scanner failed" ); \
1920  result = n; \
1921  } \
1922  else \
1923  { \
1924  errno=0; \
1925  while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
1926  { \
1927  if( errno != EINTR) \
1928  { \
1929  YY_FATAL_ERROR( "input in flex scanner failed" ); \
1930  break; \
1931  } \
1932  errno=0; \
1933  clearerr(yyin); \
1934  } \
1935  }\
1936 \
1937 /* %if-c++-only C++ definition \ */\
1938 /* %endif */
1939 
1940 #endif
1941 
1942 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1943  * we don't want an extra ';' after the "return" because that will cause
1944  * some compilers to complain about unreachable statements.
1945  */
1946 #ifndef yyterminate
1947 #define yyterminate() return YY_NULL
1948 #endif
1949 
1950 /* Number of entries by which start-condition stack grows. */
1951 #ifndef YY_START_STACK_INCR
1952 #define YY_START_STACK_INCR 25
1953 #endif
1954 
1955 /* Report a fatal error. */
1956 #ifndef YY_FATAL_ERROR
1957 /* %if-c-only */
1958 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1959 /* %endif */
1960 /* %if-c++-only */
1961 /* %endif */
1962 #endif
1963 
1964 /* %if-tables-serialization structures and prototypes */
1965 /* %not-for-header */
1966 /* %ok-for-header */
1967 
1968 /* %not-for-header */
1969 /* %tables-yydmap generated elements */
1970 /* %endif */
1971 /* end tables serialization structures and prototypes */
1972 
1973 /* %ok-for-header */
1974 
1975 /* Default declaration of generated scanner - a define so the user can
1976  * easily add parameters.
1977  */
1978 #ifndef YY_DECL
1979 #define YY_DECL_IS_OURS 1
1980 /* %if-c-only Standard (non-C++) definition */
1981 
1982 extern int yylex (void);
1983 
1984 #define YY_DECL int yylex (void)
1985 /* %endif */
1986 /* %if-c++-only C++ definition */
1987 /* %endif */
1988 #endif /* !YY_DECL */
1989 
1990 /* Code executed at the beginning of each rule, after yytext and yyleng
1991  * have been set up.
1992  */
1993 #ifndef YY_USER_ACTION
1994 #define YY_USER_ACTION
1995 #endif
1996 
1997 /* Code executed at the end of each rule. */
1998 #ifndef YY_BREAK
1999 #define YY_BREAK /*LINTED*/break;
2000 #endif
2001 
2002 /* %% [6.0] YY_RULE_SETUP definition goes here */
2003 #define YY_RULE_SETUP \
2004  YY_USER_ACTION
2005 
2006 /* %not-for-header */
2009 YY_DECL
2011  yy_state_type yy_current_state;
2012  char *yy_cp, *yy_bp;
2013  int yy_act;
2014 
2015  if ( !(yy_init) )
2016  {
2017  (yy_init) = 1;
2018 
2019 #ifdef YY_USER_INIT
2020  YY_USER_INIT;
2021 #endif
2022 
2023  if ( ! (yy_start) )
2024  (yy_start) = 1; /* first start state */
2025 
2026  if ( ! yyin )
2027 /* %if-c-only */
2028  yyin = stdin;
2029 /* %endif */
2030 /* %if-c++-only */
2031 /* %endif */
2032 
2033  if ( ! yyout )
2034 /* %if-c-only */
2035  yyout = stdout;
2036 /* %endif */
2037 /* %if-c++-only */
2038 /* %endif */
2039 
2040  if ( ! YY_CURRENT_BUFFER ) {
2044  }
2045 
2047  }
2048 
2049  {
2050 /* %% [7.0] user's declarations go here */
2051 #line 100 "dhcp6_lexer.ll"
2052 
2053 
2054 
2055 #line 104 "dhcp6_lexer.ll"
2056  /* This part of the code is copied over to the verbatim to the top
2057  of the generated yylex function. Explanation:
2058  http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2059 
2060  /* Code run each time yylex is called. */
2061  driver.loc_.step();
2062 
2063  if (start_token_flag) {
2064  start_token_flag = false;
2065  switch (start_token_value) {
2066  case Parser6Context::PARSER_JSON:
2067  default:
2068  return isc::dhcp::Dhcp6Parser::make_TOPLEVEL_JSON(driver.loc_);
2069  case Parser6Context::PARSER_DHCP6:
2070  return isc::dhcp::Dhcp6Parser::make_TOPLEVEL_DHCP6(driver.loc_);
2071  case Parser6Context::SUBPARSER_DHCP6:
2072  return isc::dhcp::Dhcp6Parser::make_SUB_DHCP6(driver.loc_);
2073  case Parser6Context::PARSER_INTERFACES:
2075  case Parser6Context::PARSER_SUBNET6:
2076  return isc::dhcp::Dhcp6Parser::make_SUB_SUBNET6(driver.loc_);
2077  case Parser6Context::PARSER_POOL6:
2078  return isc::dhcp::Dhcp6Parser::make_SUB_POOL6(driver.loc_);
2079  case Parser6Context::PARSER_PD_POOL:
2080  return isc::dhcp::Dhcp6Parser::make_SUB_PD_POOL(driver.loc_);
2081  case Parser6Context::PARSER_HOST_RESERVATION:
2083  case Parser6Context::PARSER_OPTION_DEFS:
2085  case Parser6Context::PARSER_OPTION_DEF:
2086  return isc::dhcp::Dhcp6Parser::make_SUB_OPTION_DEF(driver.loc_);
2087  case Parser6Context::PARSER_OPTION_DATA:
2089  case Parser6Context::PARSER_HOOKS_LIBRARY:
2091  case Parser6Context::PARSER_DHCP_DDNS:
2092  return isc::dhcp::Dhcp6Parser::make_SUB_DHCP_DDNS(driver.loc_);
2093  case Parser6Context::PARSER_CONFIG_CONTROL:
2095  case Parser6Context::PARSER_LOGGING:
2096  return isc::dhcp::Dhcp6Parser::make_SUB_LOGGING(driver.loc_);
2097  }
2098  }
2099 
2100 
2101 #line 2101 "dhcp6_lexer.cc"
2102 
2103  while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2104  {
2105 /* %% [8.0] yymore()-related code goes here */
2106  yy_cp = (yy_c_buf_p);
2107 
2108  /* Support of yytext. */
2109  *yy_cp = (yy_hold_char);
2110 
2111  /* yy_bp points to the position in yy_ch_buf of the start of
2112  * the current run.
2113  */
2114  yy_bp = yy_cp;
2115 
2116 /* %% [9.0] code to set up and find next match goes here */
2117  yy_current_state = (yy_start);
2118 yy_match:
2119  do
2120  {
2121  YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2122  if ( yy_accept[yy_current_state] )
2123  {
2124  (yy_last_accepting_state) = yy_current_state;
2125  (yy_last_accepting_cpos) = yy_cp;
2126  }
2127  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2128  {
2129  yy_current_state = (int) yy_def[yy_current_state];
2130  if ( yy_current_state >= 1453 )
2131  yy_c = yy_meta[yy_c];
2132  }
2133  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2134  ++yy_cp;
2135  }
2136  while ( yy_current_state != 1452 );
2137  yy_cp = (yy_last_accepting_cpos);
2138  yy_current_state = (yy_last_accepting_state);
2139 
2140 yy_find_action:
2141 /* %% [10.0] code to find the action number goes here */
2142  yy_act = yy_accept[yy_current_state];
2143 
2145 
2146 /* %% [11.0] code for yylineno update goes here */
2147 
2148 do_action: /* This label is used only to access EOF actions. */
2149 
2150 /* %% [12.0] debug code goes here */
2151  if ( yy_flex_debug )
2152  {
2153  if ( yy_act == 0 )
2154  fprintf( stderr, "--scanner backing up\n" );
2155  else if ( yy_act < 179 )
2156  fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2157  (long)yy_rule_linenum[yy_act], yytext );
2158  else if ( yy_act == 179 )
2159  fprintf( stderr, "--accepting default rule (\"%s\")\n",
2160  yytext );
2161  else if ( yy_act == 180 )
2162  fprintf( stderr, "--(end of buffer or a NUL)\n" );
2163  else
2164  fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2165  }
2166 
2167  switch ( yy_act )
2168  { /* beginning of action switch */
2169 /* %% [13.0] actions go here */
2170  case 0: /* must back up */
2171  /* undo the effects of YY_DO_BEFORE_ACTION */
2172  *yy_cp = (yy_hold_char);
2173  yy_cp = (yy_last_accepting_cpos);
2174  yy_current_state = (yy_last_accepting_state);
2175  goto yy_find_action;
2176 
2177 case 1:
2179 #line 149 "dhcp6_lexer.ll"
2180 ;
2181  YY_BREAK
2182 case 2:
2184 #line 151 "dhcp6_lexer.ll"
2185 ;
2186  YY_BREAK
2187 case 3:
2189 #line 153 "dhcp6_lexer.ll"
2190 {
2191  BEGIN(COMMENT);
2192  comment_start_line = driver.loc_.end.line;;
2193 }
2194  YY_BREAK
2195 case 4:
2197 #line 158 "dhcp6_lexer.ll"
2198 BEGIN(INITIAL);
2199  YY_BREAK
2200 case 5:
2202 #line 159 "dhcp6_lexer.ll"
2203 ;
2204  YY_BREAK
2205 case YY_STATE_EOF(COMMENT):
2206 #line 160 "dhcp6_lexer.ll"
2207 {
2208  isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line);
2209 }
2210  YY_BREAK
2211 case 6:
2213 #line 164 "dhcp6_lexer.ll"
2214 BEGIN(DIR_ENTER);
2215  YY_BREAK
2216 case 7:
2218 #line 165 "dhcp6_lexer.ll"
2220  YY_BREAK
2221 case 8:
2223 #line 166 "dhcp6_lexer.ll"
2224 {
2225  /* Include directive. */
2226 
2227  /* Extract the filename. */
2228  std::string tmp(yytext+1);
2229  tmp.resize(tmp.size() - 1);
2230 
2231  driver.includeFile(tmp);
2232 }
2233  YY_BREAK
2234 case YY_STATE_EOF(DIR_ENTER):
2236 case YY_STATE_EOF(DIR_EXIT):
2237 #line 175 "dhcp6_lexer.ll"
2238 {
2239  isc_throw(Dhcp6ParseError, "Directive not closed.");
2240 }
2241  YY_BREAK
2242 case 9:
2244 #line 178 "dhcp6_lexer.ll"
2245 BEGIN(INITIAL);
2246  YY_BREAK
2247 case 10:
2249 #line 181 "dhcp6_lexer.ll"
2250 {
2251  /* Ok, we found a with space. Let's ignore it and update loc variable. */
2252  driver.loc_.step();
2253 }
2254  YY_BREAK
2255 case 11:
2256 /* rule 11 can match eol */
2258 #line 186 "dhcp6_lexer.ll"
2259 {
2260  /* Newline found. Let's update the location and continue. */
2261  driver.loc_.lines(yyleng);
2262  driver.loc_.step();
2263 }
2264  YY_BREAK
2265 case 12:
2267 #line 193 "dhcp6_lexer.ll"
2268 {
2269  switch(driver.ctx_) {
2271  return isc::dhcp::Dhcp6Parser::make_ENABLE_UPDATES(driver.loc_);
2272  default:
2273  return isc::dhcp::Dhcp6Parser::make_STRING("enable-updates", driver.loc_);
2274  }
2275 }
2276  YY_BREAK
2277 case 13:
2279 #line 202 "dhcp6_lexer.ll"
2280 {
2281  switch(driver.ctx_) {
2284  default:
2285  return isc::dhcp::Dhcp6Parser::make_STRING("qualifying-suffix", driver.loc_);
2286  }
2287 }
2288  YY_BREAK
2289 case 14:
2291 #line 211 "dhcp6_lexer.ll"
2292 {
2293  switch(driver.ctx_) {
2295  return isc::dhcp::Dhcp6Parser::make_SERVER_IP(driver.loc_);
2296  default:
2297  return isc::dhcp::Dhcp6Parser::make_STRING("server-ip", driver.loc_);
2298  }
2299 }
2300  YY_BREAK
2301 case 15:
2303 #line 220 "dhcp6_lexer.ll"
2304 {
2305  switch(driver.ctx_) {
2307  return isc::dhcp::Dhcp6Parser::make_SERVER_PORT(driver.loc_);
2308  default:
2309  return isc::dhcp::Dhcp6Parser::make_STRING("server-port", driver.loc_);
2310  }
2311 }
2312  YY_BREAK
2313 case 16:
2315 #line 229 "dhcp6_lexer.ll"
2316 {
2317  switch(driver.ctx_) {
2319  return isc::dhcp::Dhcp6Parser::make_SENDER_IP(driver.loc_);
2320  default:
2321  return isc::dhcp::Dhcp6Parser::make_STRING("sender-ip", driver.loc_);
2322  }
2323 }
2324  YY_BREAK
2325 case 17:
2327 #line 238 "dhcp6_lexer.ll"
2328 {
2329  switch(driver.ctx_) {
2331  return isc::dhcp::Dhcp6Parser::make_SENDER_PORT(driver.loc_);
2332  default:
2333  return isc::dhcp::Dhcp6Parser::make_STRING("sender-port", driver.loc_);
2334  }
2335 }
2336  YY_BREAK
2337 case 18:
2339 #line 247 "dhcp6_lexer.ll"
2340 {
2341  switch(driver.ctx_) {
2343  return isc::dhcp::Dhcp6Parser::make_MAX_QUEUE_SIZE(driver.loc_);
2344  default:
2345  return isc::dhcp::Dhcp6Parser::make_STRING("max-queue-size", driver.loc_);
2346  }
2347 }
2348  YY_BREAK
2349 case 19:
2351 #line 256 "dhcp6_lexer.ll"
2352 {
2353  switch(driver.ctx_) {
2355  return isc::dhcp::Dhcp6Parser::make_NCR_PROTOCOL(driver.loc_);
2356  default:
2357  return isc::dhcp::Dhcp6Parser::make_STRING("ncr-protocol", driver.loc_);
2358  }
2359 }
2360  YY_BREAK
2361 case 20:
2363 #line 265 "dhcp6_lexer.ll"
2364 {
2365  switch(driver.ctx_) {
2367  return isc::dhcp::Dhcp6Parser::make_NCR_FORMAT(driver.loc_);
2368  default:
2369  return isc::dhcp::Dhcp6Parser::make_STRING("ncr-format", driver.loc_);
2370  }
2371 }
2372  YY_BREAK
2373 case 21:
2375 #line 274 "dhcp6_lexer.ll"
2376 {
2377  switch(driver.ctx_) {
2380  default:
2381  return isc::dhcp::Dhcp6Parser::make_STRING("override-no-update", driver.loc_);
2382  }
2383 }
2384  YY_BREAK
2385 case 22:
2387 #line 283 "dhcp6_lexer.ll"
2388 {
2389  switch(driver.ctx_) {
2392  default:
2393  return isc::dhcp::Dhcp6Parser::make_STRING("override-client-update", driver.loc_);
2394  }
2395 }
2396  YY_BREAK
2397 case 23:
2399 #line 292 "dhcp6_lexer.ll"
2400 {
2401  switch(driver.ctx_) {
2404  default:
2405  return isc::dhcp::Dhcp6Parser::make_STRING("replace-client-name", driver.loc_);
2406  }
2407 }
2408  YY_BREAK
2409 case 24:
2411 #line 301 "dhcp6_lexer.ll"
2412 {
2413  switch(driver.ctx_) {
2416  default:
2417  return isc::dhcp::Dhcp6Parser::make_STRING("generated-prefix", driver.loc_);
2418  }
2419 }
2420  YY_BREAK
2421 case 25:
2423 #line 310 "dhcp6_lexer.ll"
2424 {
2425  switch(driver.ctx_) {
2428  default:
2429  return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-set", driver.loc_);
2430  }
2431 }
2432  YY_BREAK
2433 case 26:
2435 #line 319 "dhcp6_lexer.ll"
2436 {
2437  switch(driver.ctx_) {
2440  default:
2441  return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-replacement", driver.loc_);
2442  }
2443 }
2444  YY_BREAK
2445 case 27:
2447 #line 328 "dhcp6_lexer.ll"
2448 {
2449  /* dhcp-ddns value keywords are case insensitive */
2450  if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2451  return isc::dhcp::Dhcp6Parser::make_UDP(driver.loc_);
2452  }
2453  std::string tmp(yytext+1);
2454  tmp.resize(tmp.size() - 1);
2455  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2456 }
2457  YY_BREAK
2458 case 28:
2460 #line 338 "dhcp6_lexer.ll"
2461 {
2462  /* dhcp-ddns value keywords are case insensitive */
2463  if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2464  return isc::dhcp::Dhcp6Parser::make_TCP(driver.loc_);
2465  }
2466  std::string tmp(yytext+1);
2467  tmp.resize(tmp.size() - 1);
2468  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2469 }
2470  YY_BREAK
2471 case 29:
2473 #line 348 "dhcp6_lexer.ll"
2474 {
2475  /* dhcp-ddns value keywords are case insensitive */
2476  if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) {
2477  return isc::dhcp::Dhcp6Parser::make_JSON(driver.loc_);
2478  }
2479  std::string tmp(yytext+1);
2480  tmp.resize(tmp.size() - 1);
2481  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2482 }
2483  YY_BREAK
2484 case 30:
2486 #line 358 "dhcp6_lexer.ll"
2487 {
2488  /* dhcp-ddns value keywords are case insensitive */
2490  return isc::dhcp::Dhcp6Parser::make_WHEN_PRESENT(driver.loc_);
2491  }
2492  std::string tmp(yytext+1);
2493  tmp.resize(tmp.size() - 1);
2494  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2495 }
2496  YY_BREAK
2497 case 31:
2499 #line 368 "dhcp6_lexer.ll"
2500 {
2501  /* dhcp-ddns value keywords are case insensitive */
2503  return isc::dhcp::Dhcp6Parser::make_WHEN_PRESENT(driver.loc_);
2504  }
2505  std::string tmp(yytext+1);
2506  tmp.resize(tmp.size() - 1);
2507  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2508 }
2509  YY_BREAK
2510 case 32:
2512 #line 378 "dhcp6_lexer.ll"
2513 {
2514  switch(driver.ctx_) {
2516  return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2517  default:
2518  return isc::dhcp::Dhcp6Parser::make_STRING("never", driver.loc_);
2519  }
2520 }
2521  YY_BREAK
2522 case 33:
2524 #line 387 "dhcp6_lexer.ll"
2525 {
2526  /* dhcp-ddns value keywords are case insensitive */
2528  return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2529  }
2530  std::string tmp(yytext+1);
2531  tmp.resize(tmp.size() - 1);
2532  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2533 }
2534  YY_BREAK
2535 case 34:
2537 #line 397 "dhcp6_lexer.ll"
2538 {
2539  /* dhcp-ddns value keywords are case insensitive */
2541  return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2542  }
2543  std::string tmp(yytext+1);
2544  tmp.resize(tmp.size() - 1);
2545  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2546 }
2547  YY_BREAK
2548 case 35:
2550 #line 407 "dhcp6_lexer.ll"
2551 {
2552  /* dhcp-ddns value keywords are case insensitive */
2554  return isc::dhcp::Dhcp6Parser::make_ALWAYS(driver.loc_);
2555  }
2556  std::string tmp(yytext+1);
2557  tmp.resize(tmp.size() - 1);
2558  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2559 }
2560  YY_BREAK
2561 case 36:
2563 #line 417 "dhcp6_lexer.ll"
2564 {
2565  /* dhcp-ddns value keywords are case insensitive */
2568  }
2569  std::string tmp(yytext+1);
2570  tmp.resize(tmp.size() - 1);
2571  return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2572 }
2573  YY_BREAK
2574 case 37:
2576 #line 427 "dhcp6_lexer.ll"
2577 {
2578  switch(driver.ctx_) {
2580  return isc::dhcp::Dhcp6Parser::make_DHCP6(driver.loc_);
2581  default:
2582  return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp6", driver.loc_);
2583  }
2584 }
2585  YY_BREAK
2586 case 38:
2588 #line 436 "dhcp6_lexer.ll"
2589 {
2590  switch(driver.ctx_) {
2593  default:
2594  return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", driver.loc_);
2595  }
2596 }
2597  YY_BREAK
2598 case 39:
2600 #line 445 "dhcp6_lexer.ll"
2601 {
2602  switch(driver.ctx_) {
2604  return isc::dhcp::Dhcp6Parser::make_INTERFACES(driver.loc_);
2605  default:
2606  return isc::dhcp::Dhcp6Parser::make_STRING("interfaces", driver.loc_);
2607  }
2608 }
2609  YY_BREAK
2610 case 40:
2612 #line 454 "dhcp6_lexer.ll"
2613 {
2614  switch(driver.ctx_) {
2616  return isc::dhcp::Dhcp6Parser::make_RE_DETECT(driver.loc_);
2617  default:
2618  return isc::dhcp::Dhcp6Parser::make_STRING("re-detect", driver.loc_);
2619  }
2620 }
2621  YY_BREAK
2622 case 41:
2624 #line 463 "dhcp6_lexer.ll"
2625 {
2626  switch(driver.ctx_) {
2628  return isc::dhcp::Dhcp6Parser::make_SANITY_CHECKS(driver.loc_);
2629  default:
2630  return isc::dhcp::Dhcp6Parser::make_STRING("sanity-checks", driver.loc_);
2631  }
2632 }
2633  YY_BREAK
2634 case 42:
2636 #line 472 "dhcp6_lexer.ll"
2637 {
2638  switch(driver.ctx_) {
2640  return isc::dhcp::Dhcp6Parser::make_LEASE_CHECKS(driver.loc_);
2641  default:
2642  return isc::dhcp::Dhcp6Parser::make_STRING("lease-checks", driver.loc_);
2643  }
2644 }
2645  YY_BREAK
2646 case 43:
2648 #line 481 "dhcp6_lexer.ll"
2649 {
2650  switch(driver.ctx_) {
2652  return isc::dhcp::Dhcp6Parser::make_LEASE_DATABASE(driver.loc_);
2653  default:
2654  return isc::dhcp::Dhcp6Parser::make_STRING("lease-database", driver.loc_);
2655  }
2656 }
2657  YY_BREAK
2658 case 44:
2660 #line 490 "dhcp6_lexer.ll"
2661 {
2662  switch(driver.ctx_) {
2664  return isc::dhcp::Dhcp6Parser::make_HOSTS_DATABASE(driver.loc_);
2665  default:
2666  return isc::dhcp::Dhcp6Parser::make_STRING("hosts-database", driver.loc_);
2667  }
2668 }
2669  YY_BREAK
2670 case 45:
2672 #line 499 "dhcp6_lexer.ll"
2673 {
2674  switch(driver.ctx_) {
2677  default:
2678  return isc::dhcp::Dhcp6Parser::make_STRING("hosts-databases", driver.loc_);
2679  }
2680 }
2681  YY_BREAK
2682 case 46:
2684 #line 508 "dhcp6_lexer.ll"
2685 {
2686  switch(driver.ctx_) {
2688  return isc::dhcp::Dhcp6Parser::make_CONFIG_CONTROL(driver.loc_);
2689  default:
2690  return isc::dhcp::Dhcp6Parser::make_STRING("config-control", driver.loc_);
2691  }
2692 }
2693  YY_BREAK
2694 case 47:
2696 #line 517 "dhcp6_lexer.ll"
2697 {
2698  switch(driver.ctx_) {
2701  default:
2702  return isc::dhcp::Dhcp6Parser::make_STRING("config-databases", driver.loc_);
2703  }
2704 }
2705  YY_BREAK
2706 case 48:
2708 #line 527 "dhcp6_lexer.ll"
2709 {
2710  switch(driver.ctx_) {
2712  return isc::dhcp::Dhcp6Parser::make_READONLY(driver.loc_);
2713  default:
2714  return isc::dhcp::Dhcp6Parser::make_STRING("readonly", driver.loc_);
2715  }
2716 }
2717  YY_BREAK
2718 case 49:
2720 #line 536 "dhcp6_lexer.ll"
2721 {
2722  switch(driver.ctx_) {
2728  return isc::dhcp::Dhcp6Parser::make_TYPE(driver.loc_);
2729  default:
2730  return isc::dhcp::Dhcp6Parser::make_STRING("type", driver.loc_);
2731  }
2732 }
2733  YY_BREAK
2734 case 50:
2736 #line 549 "dhcp6_lexer.ll"
2737 {
2738  switch(driver.ctx_) {
2740  return isc::dhcp::Dhcp6Parser::make_MEMFILE(driver.loc_);
2741  default:
2742  return isc::dhcp::Dhcp6Parser::make_STRING("memfile", driver.loc_);
2743  }
2744 }
2745  YY_BREAK
2746 case 51:
2748 #line 558 "dhcp6_lexer.ll"
2749 {
2750  switch(driver.ctx_) {
2752  return isc::dhcp::Dhcp6Parser::make_MYSQL(driver.loc_);
2753  default:
2754  return isc::dhcp::Dhcp6Parser::make_STRING("mysql", driver.loc_);
2755  }
2756 }
2757  YY_BREAK
2758 case 52:
2760 #line 567 "dhcp6_lexer.ll"
2761 {
2762  switch(driver.ctx_) {
2764  return isc::dhcp::Dhcp6Parser::make_POSTGRESQL(driver.loc_);
2765  default:
2766  return isc::dhcp::Dhcp6Parser::make_STRING("postgresql", driver.loc_);
2767  }
2768 }
2769  YY_BREAK
2770 case 53:
2772 #line 576 "dhcp6_lexer.ll"
2773 {
2774  switch(driver.ctx_) {
2776  return isc::dhcp::Dhcp6Parser::make_CQL(driver.loc_);
2777  default:
2778  return isc::dhcp::Dhcp6Parser::make_STRING("cql", driver.loc_);
2779  }
2780 }
2781  YY_BREAK
2782 case 54:
2784 #line 585 "dhcp6_lexer.ll"
2785 {
2786  switch(driver.ctx_) {
2790  return isc::dhcp::Dhcp6Parser::make_USER(driver.loc_);
2791  default:
2792  return isc::dhcp::Dhcp6Parser::make_STRING("user", driver.loc_);
2793  }
2794 }
2795  YY_BREAK
2796 case 55:
2798 #line 596 "dhcp6_lexer.ll"
2799 {
2800  switch(driver.ctx_) {
2804  return isc::dhcp::Dhcp6Parser::make_PASSWORD(driver.loc_);
2805  default:
2806  return isc::dhcp::Dhcp6Parser::make_STRING("password", driver.loc_);
2807  }
2808 }
2809  YY_BREAK
2810 case 56:
2812 #line 607 "dhcp6_lexer.ll"
2813 {
2814  switch(driver.ctx_) {
2818  return isc::dhcp::Dhcp6Parser::make_HOST(driver.loc_);
2819  default:
2820  return isc::dhcp::Dhcp6Parser::make_STRING("host", driver.loc_);
2821  }
2822 }
2823  YY_BREAK
2824 case 57:
2826 #line 618 "dhcp6_lexer.ll"
2827 {
2828  switch(driver.ctx_) {
2832  return isc::dhcp::Dhcp6Parser::make_PORT(driver.loc_);
2833  default:
2834  return isc::dhcp::Dhcp6Parser::make_STRING("port", driver.loc_);
2835  }
2836 }
2837  YY_BREAK
2838 case 58:
2840 #line 629 "dhcp6_lexer.ll"
2841 {
2842  switch(driver.ctx_) {
2847  return isc::dhcp::Dhcp6Parser::make_PERSIST(driver.loc_);
2848  default:
2849  return isc::dhcp::Dhcp6Parser::make_STRING("persist", driver.loc_);
2850  }
2851 }
2852  YY_BREAK
2853 case 59:
2855 #line 641 "dhcp6_lexer.ll"
2856 {
2857  switch(driver.ctx_) {
2861  return isc::dhcp::Dhcp6Parser::make_LFC_INTERVAL(driver.loc_);
2862  default:
2863  return isc::dhcp::Dhcp6Parser::make_STRING("lfc-interval", driver.loc_);
2864  }
2865 }
2866  YY_BREAK
2867 case 60:
2869 #line 652 "dhcp6_lexer.ll"
2870 {
2871  switch(driver.ctx_) {
2876  default:
2877  return isc::dhcp::Dhcp6Parser::make_STRING("connect-timeout", driver.loc_);
2878  }
2879 }
2880  YY_BREAK
2881 case 61:
2883 #line 663 "dhcp6_lexer.ll"
2884 {
2885  switch(driver.ctx_) {
2889  return isc::dhcp::Dhcp6Parser::make_KEYSPACE(driver.loc_);
2890  default:
2891  return isc::dhcp::Dhcp6Parser::make_STRING("keyspace", driver.loc_);
2892  }
2893 }
2894  YY_BREAK
2895 case 62:
2897 #line 674 "dhcp6_lexer.ll"
2898 {
2899  switch(driver.ctx_) {
2904  default:
2905  return isc::dhcp::Dhcp6Parser::make_STRING("reconnect-wait-time", driver.loc_);
2906  }
2907 }
2908  YY_BREAK
2909 case 63:
2911 #line 685 "dhcp6_lexer.ll"
2912 {
2913  switch(driver.ctx_) {
2918  default:
2919  return isc::dhcp::Dhcp6Parser::make_STRING("request-timeout", driver.loc_);
2920  }
2921 }
2922  YY_BREAK
2923 case 64:
2925 #line 696 "dhcp6_lexer.ll"
2926 {
2927  switch(driver.ctx_) {
2931  return isc::dhcp::Dhcp6Parser::make_TCP_KEEPALIVE(driver.loc_);
2932  default:
2933  return isc::dhcp::Dhcp6Parser::make_STRING("tcp-keepalive", driver.loc_);
2934  }
2935 }
2936  YY_BREAK
2937 case 65:
2939 #line 707 "dhcp6_lexer.ll"
2940 {
2941  switch(driver.ctx_) {
2945  return isc::dhcp::Dhcp6Parser::make_TCP_NODELAY(driver.loc_);
2946  default:
2947  return isc::dhcp::Dhcp6Parser::make_STRING("tcp-nodelay", driver.loc_);
2948  }
2949 }
2950  YY_BREAK
2951 case 66:
2953 #line 718 "dhcp6_lexer.ll"
2954 {
2955  switch(driver.ctx_) {
2959  return isc::dhcp::Dhcp6Parser::make_CONTACT_POINTS(driver.loc_);
2960  default:
2961  return isc::dhcp::Dhcp6Parser::make_STRING("contact-points", driver.loc_);
2962  }
2963 }
2964  YY_BREAK
2965 case 67:
2967 #line 729 "dhcp6_lexer.ll"
2968 {
2969  switch(driver.ctx_) {
2974  default:
2975  return isc::dhcp::Dhcp6Parser::make_STRING("max-reconnect-tries", driver.loc_);
2976  }
2977 }
2978  YY_BREAK
2979 case 68:
2981 #line 740 "dhcp6_lexer.ll"
2982 {
2983  switch(driver.ctx_) {
2988  default:
2989  return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_);
2990  }
2991 }
2992  YY_BREAK
2993 case 69:
2995 #line 751 "dhcp6_lexer.ll"
2996 {
2997  switch(driver.ctx_) {
3001  return isc::dhcp::Dhcp6Parser::make_VALID_LIFETIME(driver.loc_);
3002  default:
3003  return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_);
3004  }
3005 }
3006  YY_BREAK
3007 case 70:
3009 #line 762 "dhcp6_lexer.ll"
3010 {
3011  switch(driver.ctx_) {
3015  return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_);
3016  default:
3017  return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_);
3018  }
3019 }
3020  YY_BREAK
3021 case 71:
3023 #line 773 "dhcp6_lexer.ll"
3024 {
3025  switch(driver.ctx_) {
3029  return isc::dhcp::Dhcp6Parser::make_REBIND_TIMER(driver.loc_);
3030  default:
3031  return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_);
3032  }
3033 }
3034  YY_BREAK
3035 case 72:
3037 #line 784 "dhcp6_lexer.ll"
3038 {
3039  switch(driver.ctx_) {
3042  default:
3043  return isc::dhcp::Dhcp6Parser::make_STRING("decline-probation-period", driver.loc_);
3044  }
3045 }
3046  YY_BREAK
3047 case 73:
3049 #line 793 "dhcp6_lexer.ll"
3050 {
3051  switch(driver.ctx_) {
3053  return isc::dhcp::Dhcp6Parser::make_SERVER_TAG(driver.loc_);
3054  default:
3055  return isc::dhcp::Dhcp6Parser::make_STRING("server-tag", driver.loc_);
3056  }
3057 }
3058  YY_BREAK
3059 case 74:
3061 #line 802 "dhcp6_lexer.ll"
3062 {
3063  switch(driver.ctx_) {
3066  return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_);
3067  default:
3068  return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_);
3069  }
3070 }
3071  YY_BREAK
3072 case 75:
3074 #line 812 "dhcp6_lexer.ll"
3075 {
3076  switch (driver.ctx_) {
3078  return Dhcp6Parser::make_SHARED_NETWORKS(driver.loc_);
3079  default:
3080  return Dhcp6Parser::make_STRING("shared-networks", driver.loc_);
3081  }
3082 }
3083  YY_BREAK
3084 case 76:
3086 #line 821 "dhcp6_lexer.ll"
3087 {
3088  switch(driver.ctx_) {
3090  return isc::dhcp::Dhcp6Parser::make_OPTION_DEF(driver.loc_);
3091  default:
3092  return isc::dhcp::Dhcp6Parser::make_STRING("option-def", driver.loc_);
3093  }
3094 }
3095  YY_BREAK
3096 case 77:
3098 #line 830 "dhcp6_lexer.ll"
3099 {
3100  switch(driver.ctx_) {
3108  return isc::dhcp::Dhcp6Parser::make_OPTION_DATA(driver.loc_);
3109  default:
3110  return isc::dhcp::Dhcp6Parser::make_STRING("option-data", driver.loc_);
3111  }
3112 }
3113  YY_BREAK
3114 case 78:
3116 #line 845 "dhcp6_lexer.ll"
3117 {
3118  switch(driver.ctx_) {
3127  return isc::dhcp::Dhcp6Parser::make_NAME(driver.loc_);
3128  default:
3129  return isc::dhcp::Dhcp6Parser::make_STRING("name", driver.loc_);
3130  }
3131 }
3132  YY_BREAK
3133 case 79:
3135 #line 861 "dhcp6_lexer.ll"
3136 {
3137  switch(driver.ctx_) {
3139  return isc::dhcp::Dhcp6Parser::make_DATA(driver.loc_);
3140  default:
3141  return isc::dhcp::Dhcp6Parser::make_STRING("data", driver.loc_);
3142  }
3143 }
3144  YY_BREAK
3145 case 80:
3147 #line 870 "dhcp6_lexer.ll"
3148 {
3149  switch(driver.ctx_) {
3151  return isc::dhcp::Dhcp6Parser::make_ALWAYS_SEND(driver.loc_);
3152  default:
3153  return isc::dhcp::Dhcp6Parser::make_STRING("always-send", driver.loc_);
3154  }
3155 }
3156  YY_BREAK
3157 case 81:
3159 #line 879 "dhcp6_lexer.ll"
3160 {
3161  switch(driver.ctx_) {
3163  return isc::dhcp::Dhcp6Parser::make_POOLS(driver.loc_);
3164  default:
3165  return isc::dhcp::Dhcp6Parser::make_STRING("pools", driver.loc_);
3166  }
3167 }
3168  YY_BREAK
3169 case 82:
3171 #line 888 "dhcp6_lexer.ll"
3172 {
3173  switch(driver.ctx_) {
3175  return isc::dhcp::Dhcp6Parser::make_PD_POOLS(driver.loc_);
3176  default:
3177  return isc::dhcp::Dhcp6Parser::make_STRING("pd-pools", driver.loc_);
3178  }
3179 }
3180  YY_BREAK
3181 case 83:
3183 #line 897 "dhcp6_lexer.ll"
3184 {
3185  switch(driver.ctx_) {
3187  return isc::dhcp::Dhcp6Parser::make_PREFIX(driver.loc_);
3188  default:
3189  return isc::dhcp::Dhcp6Parser::make_STRING("prefix", driver.loc_);
3190  }
3191 }
3192  YY_BREAK
3193 case 84:
3195 #line 906 "dhcp6_lexer.ll"
3196 {
3197  switch(driver.ctx_) {
3199  return isc::dhcp::Dhcp6Parser::make_PREFIX_LEN(driver.loc_);
3200  default:
3201  return isc::dhcp::Dhcp6Parser::make_STRING("prefix-len", driver.loc_);
3202  }
3203 }
3204  YY_BREAK
3205 case 85:
3207 #line 915 "dhcp6_lexer.ll"
3208 {
3209  switch(driver.ctx_) {
3212  default:
3213  return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix", driver.loc_);
3214  }
3215 }
3216  YY_BREAK
3217 case 86:
3219 #line 924 "dhcp6_lexer.ll"
3220 {
3221  switch(driver.ctx_) {
3224  default:
3225  return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix-len", driver.loc_);
3226  }
3227 }
3228  YY_BREAK
3229 case 87:
3231 #line 933 "dhcp6_lexer.ll"
3232 {
3233  switch(driver.ctx_) {
3235  return isc::dhcp::Dhcp6Parser::make_DELEGATED_LEN(driver.loc_);
3236  default:
3237  return isc::dhcp::Dhcp6Parser::make_STRING("delegated-len", driver.loc_);
3238  }
3239 }
3240  YY_BREAK
3241 case 88:
3243 #line 942 "dhcp6_lexer.ll"
3244 {
3245  switch(driver.ctx_) {
3247  return isc::dhcp::Dhcp6Parser::make_POOL(driver.loc_);
3248  default:
3249  return isc::dhcp::Dhcp6Parser::make_STRING("pool", driver.loc_);
3250  }
3251 }
3252  YY_BREAK
3253 case 89:
3255 #line 951 "dhcp6_lexer.ll"
3256 {
3257  switch(driver.ctx_) {
3272  return isc::dhcp::Dhcp6Parser::make_USER_CONTEXT(driver.loc_);
3273  default:
3274  return isc::dhcp::Dhcp6Parser::make_STRING("user-context", driver.loc_);
3275  }
3276 }
3277  YY_BREAK
3278 case 90:
3280 #line 973 "dhcp6_lexer.ll"
3281 {
3282  switch(driver.ctx_) {
3297  return isc::dhcp::Dhcp6Parser::make_COMMENT(driver.loc_);
3298  default:
3299  return isc::dhcp::Dhcp6Parser::make_STRING("comment", driver.loc_);
3300  }
3301 }
3302  YY_BREAK
3303 case 91:
3305 #line 995 "dhcp6_lexer.ll"
3306 {
3307  switch(driver.ctx_) {
3309  return isc::dhcp::Dhcp6Parser::make_SUBNET(driver.loc_);
3310  default:
3311  return isc::dhcp::Dhcp6Parser::make_STRING("subnet", driver.loc_);
3312  }
3313 }
3314  YY_BREAK
3315 case 92:
3317 #line 1004 "dhcp6_lexer.ll"
3318 {
3319  switch(driver.ctx_) {
3322  return isc::dhcp::Dhcp6Parser::make_INTERFACE(driver.loc_);
3323  default:
3324  return isc::dhcp::Dhcp6Parser::make_STRING("interface", driver.loc_);
3325  }
3326 }
3327  YY_BREAK
3328 case 93:
3330 #line 1014 "dhcp6_lexer.ll"
3331 {
3332  switch(driver.ctx_) {
3335  return isc::dhcp::Dhcp6Parser::make_INTERFACE_ID(driver.loc_);
3336  default:
3337  return isc::dhcp::Dhcp6Parser::make_STRING("interface-id", driver.loc_);
3338  }
3339 }
3340  YY_BREAK
3341 case 94:
3343 #line 1024 "dhcp6_lexer.ll"
3344 {
3345  switch(driver.ctx_) {
3347  return isc::dhcp::Dhcp6Parser::make_ID(driver.loc_);
3348  default:
3349  return isc::dhcp::Dhcp6Parser::make_STRING("id", driver.loc_);
3350  }
3351 }
3352  YY_BREAK
3353 case 95:
3355 #line 1033 "dhcp6_lexer.ll"
3356 {
3357  switch(driver.ctx_) {
3360  return isc::dhcp::Dhcp6Parser::make_RAPID_COMMIT(driver.loc_);
3361  default:
3362  return isc::dhcp::Dhcp6Parser::make_STRING("rapid-commit", driver.loc_);
3363  }
3364 }
3365  YY_BREAK
3366 case 96:
3368 #line 1043 "dhcp6_lexer.ll"
3369 {
3370  switch(driver.ctx_) {
3375  default:
3376  return isc::dhcp::Dhcp6Parser::make_STRING("reservation-mode", driver.loc_);
3377  }
3378 }
3379  YY_BREAK
3380 case 97:
3382 #line 1054 "dhcp6_lexer.ll"
3383 {
3384  switch(driver.ctx_) {
3386  return isc::dhcp::Dhcp6Parser::make_DISABLED(driver.loc_);
3387  default:
3388  return isc::dhcp::Dhcp6Parser::make_STRING("disabled", driver.loc_);
3389  }
3390 }
3391  YY_BREAK
3392 case 98:
3394 #line 1063 "dhcp6_lexer.ll"
3395 {
3396  switch(driver.ctx_) {
3398  return isc::dhcp::Dhcp6Parser::make_DISABLED(driver.loc_);
3399  default:
3400  return isc::dhcp::Dhcp6Parser::make_STRING("off", driver.loc_);
3401  }
3402 }
3403  YY_BREAK
3404 case 99:
3406 #line 1072 "dhcp6_lexer.ll"
3407 {
3408  switch(driver.ctx_) {
3410  return isc::dhcp::Dhcp6Parser::make_OUT_OF_POOL(driver.loc_);
3411  default:
3412  return isc::dhcp::Dhcp6Parser::make_STRING("out-of-pool", driver.loc_);
3413  }
3414 }
3415  YY_BREAK
3416 case 100:
3418 #line 1081 "dhcp6_lexer.ll"
3419 {
3420  switch(driver.ctx_) {
3422  return isc::dhcp::Dhcp6Parser::make_GLOBAL(driver.loc_);
3423  default:
3424  return isc::dhcp::Dhcp6Parser::make_STRING("global", driver.loc_);
3425  }
3426 }
3427  YY_BREAK
3428 case 101:
3430 #line 1090 "dhcp6_lexer.ll"
3431 {
3432  switch(driver.ctx_) {
3434  return isc::dhcp::Dhcp6Parser::make_ALL(driver.loc_);
3435  default:
3436  return isc::dhcp::Dhcp6Parser::make_STRING("all", driver.loc_);
3437  }
3438 }
3439  YY_BREAK
3440 case 102:
3442 #line 1099 "dhcp6_lexer.ll"
3443 {
3444  switch(driver.ctx_) {
3447  return isc::dhcp::Dhcp6Parser::make_CODE(driver.loc_);
3448  default:
3449  return isc::dhcp::Dhcp6Parser::make_STRING("code", driver.loc_);
3450  }
3451 }
3452  YY_BREAK
3453 case 103:
3455 #line 1109 "dhcp6_lexer.ll"
3456 {
3457  switch(driver.ctx_) {
3459  return isc::dhcp::Dhcp6Parser::make_MAC_SOURCES(driver.loc_);
3460  default:
3461  return isc::dhcp::Dhcp6Parser::make_STRING("mac-sources", driver.loc_);
3462  }
3463 }
3464  YY_BREAK
3465 case 104:
3467 #line 1118 "dhcp6_lexer.ll"
3468 {
3469  switch(driver.ctx_) {
3472  default:
3473  return isc::dhcp::Dhcp6Parser::make_STRING("relay-supplied-options", driver.loc_);
3474  }
3475 }
3476  YY_BREAK
3477 case 105:
3479 #line 1127 "dhcp6_lexer.ll"
3480 {
3481  switch(driver.ctx_) {
3484  default:
3485  return isc::dhcp::Dhcp6Parser::make_STRING("host-reservation-identifiers", driver.loc_);
3486  }
3487 }
3488  YY_BREAK
3489 case 106:
3491 #line 1136 "dhcp6_lexer.ll"
3492 {
3493  switch(driver.ctx_) {
3495  return isc::dhcp::Dhcp6Parser::make_LOGGING(driver.loc_);
3496  default:
3497  return isc::dhcp::Dhcp6Parser::make_STRING("Logging", driver.loc_);
3498  }
3499 }
3500  YY_BREAK
3501 case 107:
3503 #line 1145 "dhcp6_lexer.ll"
3504 {
3505  switch(driver.ctx_) {
3507  return isc::dhcp::Dhcp6Parser::make_LOGGERS(driver.loc_);
3508  default:
3509  return isc::dhcp::Dhcp6Parser::make_STRING("loggers", driver.loc_);
3510  }
3511 }
3512  YY_BREAK
3513 case 108:
3515 #line 1154 "dhcp6_lexer.ll"
3516 {
3517  switch(driver.ctx_) {
3519  return isc::dhcp::Dhcp6Parser::make_OUTPUT_OPTIONS(driver.loc_);
3520  default:
3521  return isc::dhcp::Dhcp6Parser::make_STRING("output_options", driver.loc_);
3522  }
3523 }
3524  YY_BREAK
3525 case 109:
3527 #line 1163 "dhcp6_lexer.ll"
3528 {
3529  switch(driver.ctx_) {
3531  return isc::dhcp::Dhcp6Parser::make_OUTPUT(driver.loc_);
3532  default:
3533  return isc::dhcp::Dhcp6Parser::make_STRING("output", driver.loc_);
3534  }
3535 }
3536  YY_BREAK
3537 case 110:
3539 #line 1172 "dhcp6_lexer.ll"
3540 {
3541  switch(driver.ctx_) {
3543  return isc::dhcp::Dhcp6Parser::make_FLUSH(driver.loc_);
3544  default:
3545  return isc::dhcp::Dhcp6Parser::make_STRING("flush", driver.loc_);
3546  }
3547 }
3548  YY_BREAK
3549 case 111:
3551 #line 1181 "dhcp6_lexer.ll"
3552 {
3553  switch(driver.ctx_) {
3555  return isc::dhcp::Dhcp6Parser::make_MAXSIZE(driver.loc_);
3556  default:
3557  return isc::dhcp::Dhcp6Parser::make_STRING("maxsize", driver.loc_);
3558  }
3559 }
3560  YY_BREAK
3561 case 112:
3563 #line 1190 "dhcp6_lexer.ll"
3564 {
3565  switch(driver.ctx_) {
3567  return isc::dhcp::Dhcp6Parser::make_MAXVER(driver.loc_);
3568  default:
3569  return isc::dhcp::Dhcp6Parser::make_STRING("maxver", driver.loc_);
3570  }
3571 }
3572  YY_BREAK
3573 case 113:
3575 #line 1200 "dhcp6_lexer.ll"
3576 {
3577  switch(driver.ctx_) {
3579  return isc::dhcp::Dhcp6Parser::make_DEBUGLEVEL(driver.loc_);
3580  default:
3581  return isc::dhcp::Dhcp6Parser::make_STRING("debuglevel", driver.loc_);
3582  }
3583 }
3584  YY_BREAK
3585 case 114:
3587 #line 1209 "dhcp6_lexer.ll"
3588 {
3589  switch(driver.ctx_) {
3591  return isc::dhcp::Dhcp6Parser::make_SEVERITY(driver.loc_);
3592  default:
3593  return isc::dhcp::Dhcp6Parser::make_STRING("severity", driver.loc_);
3594  }
3595 }
3596  YY_BREAK
3597 case 115:
3599 #line 1218 "dhcp6_lexer.ll"
3600 {
3601  switch(driver.ctx_) {
3604  return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASSES(driver.loc_);
3605  default:
3606  return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", driver.loc_);
3607  }
3608 }
3609  YY_BREAK
3610 case 116:
3612 #line 1228 "dhcp6_lexer.ll"
3613 {
3614  switch(driver.ctx_) {
3620  default:
3621  return isc::dhcp::Dhcp6Parser::make_STRING("require-client-classes", driver.loc_);
3622  }
3623 }
3624  YY_BREAK
3625 case 117:
3627 #line 1240 "dhcp6_lexer.ll"
3628 {
3629  switch(driver.ctx_) {
3635  return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASS(driver.loc_);
3636  default:
3637  return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_);
3638  }
3639 }
3640  YY_BREAK
3641 case 118:
3643 #line 1253 "dhcp6_lexer.ll"
3644 {
3645  switch(driver.ctx_) {
3647  return isc::dhcp::Dhcp6Parser::make_TEST(driver.loc_);
3648  default:
3649  return isc::dhcp::Dhcp6Parser::make_STRING("test", driver.loc_);
3650  }
3651 }
3652  YY_BREAK
3653 case 119:
3655 #line 1262 "dhcp6_lexer.ll"
3656 {
3657  switch(driver.ctx_) {
3660  default:
3661  return isc::dhcp::Dhcp6Parser::make_STRING("only-if-required", driver.loc_);
3662  }
3663 }
3664  YY_BREAK
3665 case 120:
3667 #line 1271 "dhcp6_lexer.ll"
3668 {
3669  switch(driver.ctx_) {
3672  return isc::dhcp::Dhcp6Parser::make_RESERVATIONS(driver.loc_);
3673  default:
3674  return isc::dhcp::Dhcp6Parser::make_STRING("reservations", driver.loc_);
3675  }
3676 }
3677  YY_BREAK
3678 case 121:
3680 #line 1281 "dhcp6_lexer.ll"
3681 {
3682  switch(driver.ctx_) {
3685  return isc::dhcp::Dhcp6Parser::make_IP_ADDRESSES(driver.loc_);
3686  default:
3687  return isc::dhcp::Dhcp6Parser::make_STRING("ip-addresses", driver.loc_);
3688  }
3689 }
3690  YY_BREAK
3691 case 122:
3693 #line 1291 "dhcp6_lexer.ll"
3694 {
3695  switch(driver.ctx_) {
3697  return isc::dhcp::Dhcp6Parser::make_PREFIXES(driver.loc_);
3698  default:
3699  return isc::dhcp::Dhcp6Parser::make_STRING("prefixes", driver.loc_);
3700  }
3701 }
3702  YY_BREAK
3703 case 123:
3705 #line 1300 "dhcp6_lexer.ll"
3706 {
3707  switch(driver.ctx_) {
3711  return isc::dhcp::Dhcp6Parser::make_DUID(driver.loc_);
3712  default:
3713  return isc::dhcp::Dhcp6Parser::make_STRING("duid", driver.loc_);
3714  }
3715 }
3716  YY_BREAK
3717 case 124:
3719 #line 1311 "dhcp6_lexer.ll"
3720 {
3721  switch(driver.ctx_) {
3724  return isc::dhcp::Dhcp6Parser::make_HW_ADDRESS(driver.loc_);
3725  default:
3726  return isc::dhcp::Dhcp6Parser::make_STRING("hw-address", driver.loc_);
3727  }
3728 }
3729  YY_BREAK
3730 case 125:
3732 #line 1321 "dhcp6_lexer.ll"
3733 {
3734  switch(driver.ctx_) {
3736  return isc::dhcp::Dhcp6Parser::make_HOSTNAME(driver.loc_);
3737  default:
3738  return isc::dhcp::Dhcp6Parser::make_STRING("hostname", driver.loc_);
3739  }
3740 }
3741  YY_BREAK
3742 case 126:
3744 #line 1330 "dhcp6_lexer.ll"
3745 {
3746  switch(driver.ctx_) {
3749  return isc::dhcp::Dhcp6Parser::make_FLEX_ID(driver.loc_);
3750  default:
3751  return isc::dhcp::Dhcp6Parser::make_STRING("flex-id", driver.loc_);
3752  }
3753 }
3754  YY_BREAK
3755 case 127:
3757 #line 1340 "dhcp6_lexer.ll"
3758 {
3759  switch(driver.ctx_) {
3762  return isc::dhcp::Dhcp6Parser::make_SPACE(driver.loc_);
3763  default:
3764  return isc::dhcp::Dhcp6Parser::make_STRING("space", driver.loc_);
3765  }
3766 }
3767  YY_BREAK
3768 case 128:
3770 #line 1350 "dhcp6_lexer.ll"
3771 {
3772  switch(driver.ctx_) {
3774  return isc::dhcp::Dhcp6Parser::make_CSV_FORMAT(driver.loc_);
3775  default:
3776  return isc::dhcp::Dhcp6Parser::make_STRING("csv-format", driver.loc_);
3777  }
3778 }
3779  YY_BREAK
3780 case 129:
3782 #line 1359 "dhcp6_lexer.ll"
3783 {
3784  switch(driver.ctx_) {
3786  return isc::dhcp::Dhcp6Parser::make_RECORD_TYPES(driver.loc_);
3787  default:
3788  return isc::dhcp::Dhcp6Parser::make_STRING("record-types", driver.loc_);
3789  }
3790 }
3791  YY_BREAK
3792 case 130:
3794 #line 1368 "dhcp6_lexer.ll"
3795 {
3796  switch(driver.ctx_) {
3798  return isc::dhcp::Dhcp6Parser::make_ENCAPSULATE(driver.loc_);
3799  default:
3800  return isc::dhcp::Dhcp6Parser::make_STRING("encapsulate", driver.loc_);
3801  }
3802 }
3803  YY_BREAK
3804 case 131:
3806 #line 1377 "dhcp6_lexer.ll"
3807 {
3808  switch(driver.ctx_) {
3810  return isc::dhcp::Dhcp6Parser::make_ARRAY(driver.loc_);
3811  default:
3812  return isc::dhcp::Dhcp6Parser::make_STRING("array", driver.loc_);
3813  }
3814 }
3815  YY_BREAK
3816 case 132:
3818 #line 1386 "dhcp6_lexer.ll"
3819 {
3820  switch(driver.ctx_) {
3823  return isc::dhcp::Dhcp6Parser::make_RELAY(driver.loc_);
3824  default:
3825  return isc::dhcp::Dhcp6Parser::make_STRING("relay", driver.loc_);
3826  }
3827 }
3828  YY_BREAK
3829 case 133:
3831 #line 1396 "dhcp6_lexer.ll"
3832 {
3833  switch(driver.ctx_) {
3835  return isc::dhcp::Dhcp6Parser::make_IP_ADDRESS(driver.loc_);
3836  default:
3837  return isc::dhcp::Dhcp6Parser::make_STRING("ip-address", driver.loc_);
3838  }
3839 }
3840  YY_BREAK
3841 case 134:
3843 #line 1405 "dhcp6_lexer.ll"
3844 {
3845  switch(driver.ctx_) {
3848  default:
3849  return isc::dhcp::Dhcp6Parser::make_STRING("hooks-libraries", driver.loc_);
3850  }
3851 }
3852  YY_BREAK
3853 case 135:
3855 #line 1415 "dhcp6_lexer.ll"
3856 {
3857  switch(driver.ctx_) {
3859  return isc::dhcp::Dhcp6Parser::make_PARAMETERS(driver.loc_);
3860  default:
3861  return isc::dhcp::Dhcp6Parser::make_STRING("parameters", driver.loc_);
3862  }
3863 }
3864  YY_BREAK
3865 case 136:
3867 #line 1424 "dhcp6_lexer.ll"
3868 {
3869  switch(driver.ctx_) {
3871  return isc::dhcp::Dhcp6Parser::make_LIBRARY(driver.loc_);
3872  default:
3873  return isc::dhcp::Dhcp6Parser::make_STRING("library", driver.loc_);
3874  }
3875 }
3876  YY_BREAK
3877 case 137:
3879 #line 1433 "dhcp6_lexer.ll"
3880 {
3881  switch(driver.ctx_) {
3883  return isc::dhcp::Dhcp6Parser::make_SERVER_ID(driver.loc_);
3884  default:
3885  return isc::dhcp::Dhcp6Parser::make_STRING("server-id", driver.loc_);
3886  }
3887 }
3888  YY_BREAK
3889 case 138:
3891 #line 1442 "dhcp6_lexer.ll"
3892 {
3893  switch(driver.ctx_) {
3895  return isc::dhcp::Dhcp6Parser::make_LLT(driver.loc_);
3896  default:
3897  return isc::dhcp::Dhcp6Parser::make_STRING("LLT", driver.loc_);
3898  }
3899 }
3900  YY_BREAK
3901 case 139:
3903 #line 1451 "dhcp6_lexer.ll"
3904 {
3905  switch(driver.ctx_) {
3907  return isc::dhcp::Dhcp6Parser::make_EN(driver.loc_);
3908  default:
3909  return isc::dhcp::Dhcp6Parser::make_STRING("EN", driver.loc_);
3910  }
3911 }
3912  YY_BREAK
3913 case 140:
3915 #line 1460 "dhcp6_lexer.ll"
3916 {
3917  switch(driver.ctx_) {
3919  return isc::dhcp::Dhcp6Parser::make_LL(driver.loc_);
3920  default:
3921  return isc::dhcp::Dhcp6Parser::make_STRING("LL", driver.loc_);
3922  }
3923 }
3924  YY_BREAK
3925 case 141:
3927 #line 1469 "dhcp6_lexer.ll"
3928 {
3929  switch(driver.ctx_) {
3931  return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(driver.loc_);
3932  default:
3933  return isc::dhcp::Dhcp6Parser::make_STRING("identifier", driver.loc_);
3934  }
3935 }
3936  YY_BREAK
3937 case 142:
3939 #line 1478 "dhcp6_lexer.ll"
3940 {
3941  switch(driver.ctx_) {
3943  return isc::dhcp::Dhcp6Parser::make_HTYPE(driver.loc_);
3944  default:
3945  return isc::dhcp::Dhcp6Parser::make_STRING("htype", driver.loc_);
3946  }
3947 }
3948  YY_BREAK
3949 case 143:
3951 #line 1487 "dhcp6_lexer.ll"
3952 {
3953  switch(driver.ctx_) {
3955  return isc::dhcp::Dhcp6Parser::make_TIME(driver.loc_);
3956  default:
3957  return isc::dhcp::Dhcp6Parser::make_STRING("time", driver.loc_);
3958  }
3959 }
3960  YY_BREAK
3961 case 144:
3963 #line 1496 "dhcp6_lexer.ll"
3964 {
3965  switch(driver.ctx_) {
3967  return isc::dhcp::Dhcp6Parser::make_ENTERPRISE_ID(driver.loc_);
3968  default:
3969  return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", driver.loc_);
3970  }
3971 }
3972  YY_BREAK
3973 case 145:
3975 #line 1505 "dhcp6_lexer.ll"
3976 {
3977  switch(driver.ctx_) {
3980  default:
3981  return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", driver.loc_);
3982  }
3983 }
3984  YY_BREAK
3985 case 146:
3987 #line 1514 "dhcp6_lexer.ll"
3988 {
3989  switch(driver.ctx_) {
3992  default:
3993  return isc::dhcp::Dhcp6Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
3994  }
3995 }
3996  YY_BREAK
3997 case 147:
3999 #line 1523 "dhcp6_lexer.ll"
4000 {
4001  switch(driver.ctx_) {
4004  default:
4005  return isc::dhcp::Dhcp6Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
4006  }
4007 }
4008  YY_BREAK
4009 case 148:
4011 #line 1532 "dhcp6_lexer.ll"
4012 {
4013  switch(driver.ctx_) {
4016  default:
4017  return isc::dhcp::Dhcp6Parser::make_STRING("hold-reclaimed-time", driver.loc_);
4018  }
4019 }
4020  YY_BREAK
4021 case 149:
4023 #line 1541 "dhcp6_lexer.ll"
4024 {
4025  switch(driver.ctx_) {
4028  default:
4029  return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-leases", driver.loc_);
4030  }
4031 }
4032  YY_BREAK
4033 case 150:
4035 #line 1550 "dhcp6_lexer.ll"
4036 {
4037  switch(driver.ctx_) {
4040  default:
4041  return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-time", driver.loc_);
4042  }
4043 }
4044  YY_BREAK
4045 case 151:
4047 #line 1559 "dhcp6_lexer.ll"
4048 {
4049  switch(driver.ctx_) {
4052  default:
4053  return isc::dhcp::Dhcp6Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
4054  }
4055 }
4056  YY_BREAK
4057 case 152:
4059 #line 1568 "dhcp6_lexer.ll"
4060 {
4061  switch(driver.ctx_) {
4063  return isc::dhcp::Dhcp6Parser::make_DHCP4O6_PORT(driver.loc_);
4064  default:
4065  return isc::dhcp::Dhcp6Parser::make_STRING("dhcp4o6-port", driver.loc_);
4066  }
4067 }
4068  YY_BREAK
4069 case 153:
4071 #line 1577 "dhcp6_lexer.ll"
4072 {
4073  switch(driver.ctx_) {
4075  return isc::dhcp::Dhcp6Parser::make_CONTROL_SOCKET(driver.loc_);
4076  default:
4077  return isc::dhcp::Dhcp6Parser::make_STRING("control-socket", driver.loc_);
4078  }
4079 }
4080  YY_BREAK
4081 case 154:
4083 #line 1586 "dhcp6_lexer.ll"
4084 {
4085  switch(driver.ctx_) {
4087  return isc::dhcp::Dhcp6Parser::make_SOCKET_TYPE(driver.loc_);
4088  default:
4089  return isc::dhcp::Dhcp6Parser::make_STRING("socket-type", driver.loc_);
4090  }
4091 }
4092  YY_BREAK
4093 case 155:
4095 #line 1595 "dhcp6_lexer.ll"
4096 {
4097  switch(driver.ctx_) {
4099  return isc::dhcp::Dhcp6Parser::make_SOCKET_NAME(driver.loc_);
4100  default:
4101  return isc::dhcp::Dhcp6Parser::make_STRING("socket-name", driver.loc_);
4102  }
4103 }
4104  YY_BREAK
4105 case 156:
4107 #line 1604 "dhcp6_lexer.ll"
4108 {
4109  switch(driver.ctx_) {
4112  default:
4113  return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-queue-control", driver.loc_);
4114  }
4115 }
4116  YY_BREAK
4117 case 157:
4119 #line 1613 "dhcp6_lexer.ll"
4120 {
4121  switch(driver.ctx_) {
4123  return isc::dhcp::Dhcp6Parser::make_DHCP_DDNS(driver.loc_);
4124  default:
4125  return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-ddns", driver.loc_);
4126  }
4127 }
4128  YY_BREAK
4129 case 158:
4131 #line 1622 "dhcp6_lexer.ll"
4132 {
4133  switch(driver.ctx_) {
4135  return isc::dhcp::Dhcp6Parser::make_DHCP4(driver.loc_);
4136  default:
4137  return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp4", driver.loc_);
4138  }
4139 }
4140  YY_BREAK
4141 case 159:
4143 #line 1631 "dhcp6_lexer.ll"
4144 {
4145  switch(driver.ctx_) {
4147  return isc::dhcp::Dhcp6Parser::make_DHCPDDNS(driver.loc_);
4148  default:
4149  return isc::dhcp::Dhcp6Parser::make_STRING("DhcpDdns", driver.loc_);
4150  }
4151 }
4152  YY_BREAK
4153 case 160:
4155 #line 1640 "dhcp6_lexer.ll"
4156 {
4157  switch(driver.ctx_) {
4159  return isc::dhcp::Dhcp6Parser::make_CONTROL_AGENT(driver.loc_);
4160  default:
4161  return isc::dhcp::Dhcp6Parser::make_STRING("Control-agent", driver.loc_);
4162  }
4163 }
4164  YY_BREAK
4165 case 161:
4167 #line 1650 "dhcp6_lexer.ll"
4168 {
4169  /* A string has been matched. It contains the actual string and single quotes.
4170  We need to get those quotes out of the way and just use its content, e.g.
4171  for 'foo' we should get foo */
4172  std::string raw(yytext+1);
4173  size_t len = raw.size() - 1;
4174  raw.resize(len);
4175  std::string decoded;
4176  decoded.reserve(len);
4177  for (size_t pos = 0; pos < len; ++pos) {
4178  int b = 0;
4179  char c = raw[pos];
4180  switch (c) {
4181  case '"':
4182  /* impossible condition */
4183  driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
4184  break;
4185  case '\\':
4186  ++pos;
4187  if (pos >= len) {
4188  /* impossible condition */
4189  driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
4190  }
4191  c = raw[pos];
4192  switch (c) {
4193  case '"':
4194  case '\\':
4195  case '/':
4196  decoded.push_back(c);
4197  break;
4198  case 'b':
4199  decoded.push_back('\b');
4200  break;
4201  case 'f':
4202  decoded.push_back('\f');
4203  break;
4204  case 'n':
4205  decoded.push_back('\n');
4206  break;
4207  case 'r':
4208  decoded.push_back('\r');
4209  break;
4210  case 't':
4211  decoded.push_back('\t');
4212  break;
4213  case 'u':
4214  /* support only \u0000 to \u00ff */
4215  ++pos;
4216  if (pos + 4 > len) {
4217  /* impossible condition */
4218  driver.error(driver.loc_,
4219  "Overflow unicode escape in \"" + raw + "\"");
4220  }
4221  if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
4222  driver.error(driver.loc_, "Unsupported unicode escape in \"" + raw + "\"");
4223  }
4224  pos += 2;
4225  c = raw[pos];
4226  if ((c >= '0') && (c <= '9')) {
4227  b = (c - '0') << 4;
4228  } else if ((c >= 'A') && (c <= 'F')) {
4229  b = (c - 'A' + 10) << 4;
4230  } else if ((c >= 'a') && (c <= 'f')) {
4231  b = (c - 'a' + 10) << 4;
4232  } else {
4233  /* impossible condition */
4234  driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
4235  }
4236  pos++;
4237  c = raw[pos];
4238  if ((c >= '0') && (c <= '9')) {
4239  b |= c - '0';
4240  } else if ((c >= 'A') && (c <= 'F')) {
4241  b |= c - 'A' + 10;
4242  } else if ((c >= 'a') && (c <= 'f')) {
4243  b |= c - 'a' + 10;
4244  } else {
4245  /* impossible condition */
4246  driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
4247  }
4248  decoded.push_back(static_cast<char>(b & 0xff));
4249  break;
4250  default:
4251  /* impossible condition */
4252  driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
4253  }
4254  break;
4255  default:
4256  if ((c >= 0) && (c < 0x20)) {
4257  /* impossible condition */
4258  driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
4259  }
4260  decoded.push_back(c);
4261  }
4262  }
4263 
4264  return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
4265 }
4266  YY_BREAK
4267 case 162:
4268 /* rule 162 can match eol */
4270 #line 1749 "dhcp6_lexer.ll"
4271 {
4272  /* Bad string with a forbidden control character inside */
4273  driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
4274 }
4275  YY_BREAK
4276 case 163:
4277 /* rule 163 can match eol */
4279 #line 1754 "dhcp6_lexer.ll"
4280 {
4281  /* Bad string with a bad escape inside */
4282  driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
4283 }
4284  YY_BREAK
4285 case 164:
4287 #line 1759 "dhcp6_lexer.ll"
4288 {
4289  /* Bad string with an open escape at the end */
4290  driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
4291 }
4292  YY_BREAK
4293 case 165:
4295 #line 1764 "dhcp6_lexer.ll"
4296 { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
4297  YY_BREAK
4298 case 166:
4300 #line 1765 "dhcp6_lexer.ll"
4301 { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
4302  YY_BREAK
4303 case 167:
4305 #line 1766 "dhcp6_lexer.ll"
4306 { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
4307  YY_BREAK
4308 case 168:
4310 #line 1767 "dhcp6_lexer.ll"
4311 { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
4312  YY_BREAK
4313 case 169:
4315 #line 1768 "dhcp6_lexer.ll"
4316 { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
4317  YY_BREAK
4318 case 170:
4320 #line 1769 "dhcp6_lexer.ll"
4321 { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
4322  YY_BREAK
4323 case 171:
4325 #line 1771 "dhcp6_lexer.ll"
4326 {
4327  /* An integer was found. */
4328  std::string tmp(yytext);
4329  int64_t integer = 0;
4330  try {
4331  /* In substring we want to use negative values (e.g. -1).
4332  In enterprise-id we need to use values up to 0xffffffff.
4333  To cover both of those use cases, we need at least
4334  int64_t. */
4335  integer = boost::lexical_cast<int64_t>(tmp);
4336  } catch (const boost::bad_lexical_cast &) {
4337  driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
4338  }
4339 
4340  /* The parser needs the string form as double conversion is no lossless */
4341  return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
4342 }
4343  YY_BREAK
4344 case 172:
4346 #line 1789 "dhcp6_lexer.ll"
4347 {
4348  /* A floating point was found. */
4349  std::string tmp(yytext);
4350  double fp = 0.0;
4351  try {
4352  fp = boost::lexical_cast<double>(tmp);
4353  } catch (const boost::bad_lexical_cast &) {
4354  driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
4355  }
4356 
4357  return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
4358 }
4359  YY_BREAK
4360 case 173:
4362 #line 1802 "dhcp6_lexer.ll"
4363 {
4364  string tmp(yytext);
4365  return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
4366 }
4367  YY_BREAK
4368 case 174:
4370 #line 1807 "dhcp6_lexer.ll"
4371 {
4372  return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
4373 }
4374  YY_BREAK
4375 case 175:
4377 #line 1811 "dhcp6_lexer.ll"
4378 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
4379  YY_BREAK
4380 case 176:
4382 #line 1813 "dhcp6_lexer.ll"
4383 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
4384  YY_BREAK
4385 case 177:
4387 #line 1815 "dhcp6_lexer.ll"
4388 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
4389  YY_BREAK
4390 case 178:
4392 #line 1817 "dhcp6_lexer.ll"
4393 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
4394  YY_BREAK
4395 case YY_STATE_EOF(INITIAL):
4396 #line 1819 "dhcp6_lexer.ll"
4397 {
4398  if (driver.states_.empty()) {
4399  return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
4400  }
4401  driver.loc_ = driver.locs_.back();
4402  driver.locs_.pop_back();
4403  driver.file_ = driver.files_.back();
4404  driver.files_.pop_back();
4405  if (driver.sfile_) {
4406  fclose(driver.sfile_);
4407  driver.sfile_ = 0;
4408  }
4409  if (!driver.sfiles_.empty()) {
4410  driver.sfile_ = driver.sfiles_.back();
4411  driver.sfiles_.pop_back();
4412  }
4413  parser6__delete_buffer(YY_CURRENT_BUFFER);
4414  parser6__switch_to_buffer(driver.states_.back());
4415  driver.states_.pop_back();
4416 
4417  BEGIN(DIR_EXIT);
4418 }
4419  YY_BREAK
4420 case 179:
4422 #line 1842 "dhcp6_lexer.ll"
4423 ECHO;
4424  YY_BREAK
4425 #line 4425 "dhcp6_lexer.cc"
4426 
4427  case YY_END_OF_BUFFER:
4428  {
4429  /* Amount of text matched not including the EOB char. */
4430  int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
4431 
4432  /* Undo the effects of YY_DO_BEFORE_ACTION. */
4433  *yy_cp = (yy_hold_char);
4435 
4436  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
4437  {
4438  /* We're scanning a new file or input source. It's
4439  * possible that this happened because the user
4440  * just pointed yyin at a new source and called
4441  * yylex(). If so, then we have to assure
4442  * consistency between YY_CURRENT_BUFFER and our
4443  * globals. Here is the right place to do so, because
4444  * this is the first action (other than possibly a
4445  * back-up) that will match for the new input source.
4446  */
4447  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4448 /* %if-c-only */
4449  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
4450 /* %endif */
4451 /* %if-c++-only */
4452 /* %endif */
4453  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
4454  }
4455 
4456  /* Note that here we test for yy_c_buf_p "<=" to the position
4457  * of the first EOB in the buffer, since yy_c_buf_p will
4458  * already have been incremented past the NUL character
4459  * (since all states make transitions on EOB to the
4460  * end-of-buffer state). Contrast this with the test
4461  * in input().
4462  */
4463  if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4464  { /* This was really a NUL. */
4465  yy_state_type yy_next_state;
4466 
4467  (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
4468 
4469  yy_current_state = yy_get_previous_state( );
4470 
4471  /* Okay, we're now positioned to make the NUL
4472  * transition. We couldn't have
4473  * yy_get_previous_state() go ahead and do it
4474  * for us because it doesn't know how to deal
4475  * with the possibility of jamming (and we don't
4476  * want to build jamming into it because then it
4477  * will run more slowly).
4478  */
4479 
4480  yy_next_state = yy_try_NUL_trans( yy_current_state );
4481 
4483 
4484  if ( yy_next_state )
4485  {
4486  /* Consume the NUL. */
4487  yy_cp = ++(yy_c_buf_p);
4488  yy_current_state = yy_next_state;
4489  goto yy_match;
4490  }
4491 
4492  else
4493  {
4494 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
4495  yy_cp = (yy_last_accepting_cpos);
4496  yy_current_state = (yy_last_accepting_state);
4497  goto yy_find_action;
4498  }
4499  }
4500 
4501  else switch ( yy_get_next_buffer( ) )
4502  {
4503  case EOB_ACT_END_OF_FILE:
4504  {
4505  (yy_did_buffer_switch_on_eof) = 0;
4506 
4507  if ( yywrap( ) )
4508  {
4509  /* Note: because we've taken care in
4510  * yy_get_next_buffer() to have set up
4511  * yytext, we can now set up
4512  * yy_c_buf_p so that if some total
4513  * hoser (like flex itself) wants to
4514  * call the scanner after we return the
4515  * YY_NULL, it'll still work - another
4516  * YY_NULL will get returned.
4517  */
4518  (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
4519 
4521  goto do_action;
4522  }
4523 
4524  else
4525  {
4526  if ( ! (yy_did_buffer_switch_on_eof) )
4527  YY_NEW_FILE;
4528  }
4529  break;
4530  }
4531 
4532  case EOB_ACT_CONTINUE_SCAN:
4533  (yy_c_buf_p) =
4534  (yytext_ptr) + yy_amount_of_matched_text;
4535 
4536  yy_current_state = yy_get_previous_state( );
4537 
4538  yy_cp = (yy_c_buf_p);
4540  goto yy_match;
4541 
4542  case EOB_ACT_LAST_MATCH:
4543  (yy_c_buf_p) =
4544  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
4545 
4546  yy_current_state = yy_get_previous_state( );
4547 
4548  yy_cp = (yy_c_buf_p);
4550  goto yy_find_action;
4551  }
4552  break;
4553  }
4554 
4555  default:
4557  "fatal flex scanner internal error--no action found" );
4558  } /* end of action switch */
4559  } /* end of scanning one token */
4560  } /* end of user's declarations */
4561 } /* end of yylex */
4562 /* %ok-for-header */
4563 
4564 /* %if-c++-only */
4565 /* %not-for-header */
4566 /* %ok-for-header */
4567 
4568 /* %endif */
4569 
4570 /* yy_get_next_buffer - try to read in a new buffer
4571  *
4572  * Returns a code representing an action:
4573  * EOB_ACT_LAST_MATCH -
4574  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4575  * EOB_ACT_END_OF_FILE - end of file
4576  */
4577 /* %if-c-only */
4578 static int yy_get_next_buffer (void)
4579 /* %endif */
4580 /* %if-c++-only */
4581 /* %endif */
4582 {
4583  char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
4584  char *source = (yytext_ptr);
4585  int number_to_move, i;
4586  int ret_val;
4587 
4588  if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
4590  "fatal flex scanner internal error--end of buffer missed" );
4591 
4592  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
4593  { /* Don't try to fill the buffer, so this is an EOF. */
4594  if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
4595  {
4596  /* We matched a single character, the EOB, so
4597  * treat this as a final EOF.
4598  */
4599  return EOB_ACT_END_OF_FILE;
4600  }
4601 
4602  else
4603  {
4604  /* We matched some text prior to the EOB, first
4605  * process it.
4606  */
4607  return EOB_ACT_LAST_MATCH;
4608  }
4609  }
4610 
4611  /* Try to read more data. */
4612 
4613  /* First move last chars to start of buffer. */
4614  number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
4615 
4616  for ( i = 0; i < number_to_move; ++i )
4617  *(dest++) = *(source++);
4618 
4619  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4620  /* don't do the read, it's not guaranteed to return an EOF,
4621  * just force an EOF
4622  */
4623  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
4624 
4625  else
4626  {
4627  int num_to_read =
4628  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
4629 
4630  while ( num_to_read <= 0 )
4631  { /* Not enough room in the buffer - grow it. */
4632 
4633  /* just a shorter name for the current buffer */
4635 
4636  int yy_c_buf_p_offset =
4637  (int) ((yy_c_buf_p) - b->yy_ch_buf);
4638 
4639  if ( b->yy_is_our_buffer )
4640  {
4641  int new_size = b->yy_buf_size * 2;
4642 
4643  if ( new_size <= 0 )
4644  b->yy_buf_size += b->yy_buf_size / 8;
4645  else
4646  b->yy_buf_size *= 2;
4647 
4648  b->yy_ch_buf = (char *)
4649  /* Include room in for 2 EOB chars. */
4650  yyrealloc( (void *) b->yy_ch_buf,
4651  (yy_size_t) (b->yy_buf_size + 2) );
4652  }
4653  else
4654  /* Can't grow it, we don't own it. */
4655  b->yy_ch_buf = NULL;
4656 
4657  if ( ! b->yy_ch_buf )
4659  "fatal error - scanner input buffer overflow" );
4660 
4661  (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
4662 
4663  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4664  number_to_move - 1;
4665 
4666  }
4667 
4668  if ( num_to_read > YY_READ_BUF_SIZE )
4669  num_to_read = YY_READ_BUF_SIZE;
4670 
4671  /* Read in more data. */
4672  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4673  (yy_n_chars), num_to_read );
4674 
4675  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4676  }
4677 
4678  if ( (yy_n_chars) == 0 )
4679  {
4680  if ( number_to_move == YY_MORE_ADJ )
4681  {
4682  ret_val = EOB_ACT_END_OF_FILE;
4683  yyrestart( yyin );
4684  }
4685 
4686  else
4687  {
4688  ret_val = EOB_ACT_LAST_MATCH;
4689  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4691  }
4692  }
4693 
4694  else
4695  ret_val = EOB_ACT_CONTINUE_SCAN;
4696 
4697  if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
4698  /* Extend the array by 50%, plus the number we really need. */
4699  int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
4700  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
4701  (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
4702  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4703  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4704  /* "- 2" to take care of EOB's */
4705  YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
4706  }
4707 
4708  (yy_n_chars) += number_to_move;
4709  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
4710  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
4711 
4712  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4713 
4714  return ret_val;
4715 }
4716 
4717 /* yy_get_previous_state - get the state just before the EOB char was reached */
4718 
4719 /* %if-c-only */
4720 /* %not-for-header */
4721  static yy_state_type yy_get_previous_state (void)
4722 /* %endif */
4723 /* %if-c++-only */
4724 /* %endif */
4725 {
4726  yy_state_type yy_current_state;
4727  char *yy_cp;
4728 
4729 /* %% [15.0] code to get the start state into yy_current_state goes here */
4730  yy_current_state = (yy_start);
4731 
4732  for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
4733  {
4734 /* %% [16.0] code to find the next state goes here */
4735  YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4736  if ( yy_accept[yy_current_state] )
4737  {
4738  (yy_last_accepting_state) = yy_current_state;
4739  (yy_last_accepting_cpos) = yy_cp;
4740  }
4741  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4742  {
4743  yy_current_state = (int) yy_def[yy_current_state];
4744  if ( yy_current_state >= 1453 )
4745  yy_c = yy_meta[yy_c];
4746  }
4747  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4748  }
4749 
4750  return yy_current_state;
4751 }
4752 
4753 /* yy_try_NUL_trans - try to make a transition on the NUL character
4754  *
4755  * synopsis
4756  * next_state = yy_try_NUL_trans( current_state );
4757  */
4758 /* %if-c-only */
4759  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
4760 /* %endif */
4761 /* %if-c++-only */
4762 /* %endif */
4763 {
4764  int yy_is_jam;
4765  /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
4766  char *yy_cp = (yy_c_buf_p);
4767 
4768  YY_CHAR yy_c = 1;
4769  if ( yy_accept[yy_current_state] )
4770  {
4771  (yy_last_accepting_state) = yy_current_state;
4772  (yy_last_accepting_cpos) = yy_cp;
4773  }
4774  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4775  {
4776  yy_current_state = (int) yy_def[yy_current_state];
4777  if ( yy_current_state >= 1453 )
4778  yy_c = yy_meta[yy_c];
4779  }
4780  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4781  yy_is_jam = (yy_current_state == 1452);
4782 
4783  return yy_is_jam ? 0 : yy_current_state;
4784 }
4785 
4786 #ifndef YY_NO_UNPUT
4787 /* %if-c-only */
4788 
4789 /* %endif */
4790 #endif
4791 
4792 /* %if-c-only */
4793 #ifndef YY_NO_INPUT
4794 #ifdef __cplusplus
4795  static int yyinput (void)
4796 #else
4797  static int input (void)
4798 #endif
4799 
4800 /* %endif */
4801 /* %if-c++-only */
4802 /* %endif */
4803 {
4804  int c;
4805 
4806  *(yy_c_buf_p) = (yy_hold_char);
4807 
4808  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4809  {
4810  /* yy_c_buf_p now points to the character we want to return.
4811  * If this occurs *before* the EOB characters, then it's a
4812  * valid NUL; if not, then we've hit the end of the buffer.
4813  */
4814  if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4815  /* This was really a NUL. */
4816  *(yy_c_buf_p) = '\0';
4817 
4818  else
4819  { /* need more input */
4820  int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
4821  ++(yy_c_buf_p);
4822 
4823  switch ( yy_get_next_buffer( ) )
4824  {
4825  case EOB_ACT_LAST_MATCH:
4826  /* This happens because yy_g_n_b()
4827  * sees that we've accumulated a
4828  * token and flags that we need to
4829  * try matching the token before
4830  * proceeding. But for input(),
4831  * there's no matching to consider.
4832  * So convert the EOB_ACT_LAST_MATCH
4833  * to EOB_ACT_END_OF_FILE.
4834  */
4835 
4836  /* Reset buffer status. */
4837  yyrestart( yyin );
4838 
4839  /*FALLTHROUGH*/
4840 
4841  case EOB_ACT_END_OF_FILE:
4842  {
4843  if ( yywrap( ) )
4844  return 0;
4845 
4846  if ( ! (yy_did_buffer_switch_on_eof) )
4847  YY_NEW_FILE;
4848 #ifdef __cplusplus
4849  return yyinput();
4850 #else
4851  return input();
4852 #endif
4853  }
4854 
4855  case EOB_ACT_CONTINUE_SCAN:
4856  (yy_c_buf_p) = (yytext_ptr) + offset;
4857  break;
4858  }
4859  }
4860  }
4861 
4862  c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
4863  *(yy_c_buf_p) = '\0'; /* preserve yytext */
4864  (yy_hold_char) = *++(yy_c_buf_p);
4865 
4866 /* %% [19.0] update BOL and yylineno */
4867 
4868  return c;
4869 }
4870 /* %if-c-only */
4871 #endif /* ifndef YY_NO_INPUT */
4872 /* %endif */
4873 
4879 /* %if-c-only */
4880  void yyrestart (FILE * input_file )
4881 /* %endif */
4882 /* %if-c++-only */
4883 /* %endif */
4884 {
4885 
4886  if ( ! YY_CURRENT_BUFFER ){
4890  }
4891 
4892  yy_init_buffer( YY_CURRENT_BUFFER, input_file );
4894 }
4895 
4896 /* %if-c++-only */
4897 /* %endif */
4898 
4903 /* %if-c-only */
4905 /* %endif */
4906 /* %if-c++-only */
4907 /* %endif */
4908 {
4909 
4910  /* TODO. We should be able to replace this entire function body
4911  * with
4912  * yypop_buffer_state();
4913  * yypush_buffer_state(new_buffer);
4914  */
4916  if ( YY_CURRENT_BUFFER == new_buffer )
4917  return;
4918 
4919  if ( YY_CURRENT_BUFFER )
4920  {
4921  /* Flush out information for old buffer. */
4922  *(yy_c_buf_p) = (yy_hold_char);
4923  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4924  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4925  }
4926 
4927  YY_CURRENT_BUFFER_LVALUE = new_buffer;
4929 
4930  /* We don't actually know whether we did this switch during
4931  * EOF (yywrap()) processing, but the only time this flag
4932  * is looked at is after yywrap() is called, so it's safe
4933  * to go ahead and always set it.
4934  */
4935  (yy_did_buffer_switch_on_eof) = 1;
4936 }
4937 
4938 /* %if-c-only */
4939 static void yy_load_buffer_state (void)
4940 /* %endif */
4941 /* %if-c++-only */
4942 /* %endif */
4943 {
4944  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4945  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4946 /* %if-c-only */
4947  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4948 /* %endif */
4949 /* %if-c++-only */
4950 /* %endif */
4951  (yy_hold_char) = *(yy_c_buf_p);
4952 }
4953 
4960 /* %if-c-only */
4961  YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
4962 /* %endif */
4963 /* %if-c++-only */
4964 /* %endif */
4965 {
4966  YY_BUFFER_STATE b;
4967 
4968  b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
4969  if ( ! b )
4970  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4971 
4972  b->yy_buf_size = size;
4973 
4974  /* yy_ch_buf has to be 2 characters longer than the size given because
4975  * we need to put in 2 end-of-buffer characters.
4976  */
4977  b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
4978  if ( ! b->yy_ch_buf )
4979  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4980 
4981  b->yy_is_our_buffer = 1;
4982 
4983  yy_init_buffer( b, file );
4984 
4985  return b;
4986 }
4987 
4988 /* %if-c++-only */
4989 /* %endif */
4990 
4995 /* %if-c-only */
4997 /* %endif */
4998 /* %if-c++-only */
4999 /* %endif */
5000 {
5001 
5002  if ( ! b )
5003  return;
5004 
5005  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
5007 
5008  if ( b->yy_is_our_buffer )
5009  yyfree( (void *) b->yy_ch_buf );
5010 
5011  yyfree( (void *) b );
5012 }
5013 
5014 /* Initializes or reinitializes a buffer.
5015  * This function is sometimes called more than once on the same buffer,
5016  * such as during a yyrestart() or at EOF.
5017  */
5018 /* %if-c-only */
5019  static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
5020 /* %endif */
5021 /* %if-c++-only */
5022 /* %endif */
5023 
5024 {
5025  int oerrno = errno;
5026 
5027  yy_flush_buffer( b );
5028 
5029 /* %if-c-only */
5030  b->yy_input_file = file;
5031 /* %endif */
5032 /* %if-c++-only */
5033 /* %endif */
5034  b->yy_fill_buffer = 1;
5035 
5036  /* If b is the current buffer, then yy_init_buffer was _probably_
5037  * called from yyrestart() or through yy_get_next_buffer.
5038  * In that case, we don't want to reset the lineno or column.
5039  */
5040  if (b != YY_CURRENT_BUFFER){
5041  b->yy_bs_lineno = 1;
5042  b->yy_bs_column = 0;
5043  }
5044 
5045 /* %if-c-only */
5046 
5047  b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
5048 
5049 /* %endif */
5050 /* %if-c++-only */
5051 /* %endif */
5052  errno = oerrno;
5053 }
5054 
5059 /* %if-c-only */
5061 /* %endif */
5062 /* %if-c++-only */
5063 /* %endif */
5064 {
5065  if ( ! b )
5066  return;
5067 
5068  b->yy_n_chars = 0;
5069 
5070  /* We always need two end-of-buffer characters. The first causes
5071  * a transition to the end-of-buffer state. The second causes
5072  * a jam in that state.
5073  */
5076 
5077  b->yy_buf_pos = &b->yy_ch_buf[0];
5078 
5079  b->yy_at_bol = 1;
5081 
5082  if ( b == YY_CURRENT_BUFFER )
5084 }
5085 
5086 /* %if-c-or-c++ */
5093 /* %if-c-only */
5095 /* %endif */
5096 /* %if-c++-only */
5097 /* %endif */
5098 {
5099  if (new_buffer == NULL)
5100  return;
5101 
5103 
5104  /* This block is copied from yy_switch_to_buffer. */
5105  if ( YY_CURRENT_BUFFER )
5106  {
5107  /* Flush out information for old buffer. */
5108  *(yy_c_buf_p) = (yy_hold_char);
5109  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
5110  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5111  }
5112 
5113  /* Only push if top exists. Otherwise, replace top. */
5114  if (YY_CURRENT_BUFFER)
5115  (yy_buffer_stack_top)++;
5116  YY_CURRENT_BUFFER_LVALUE = new_buffer;
5117 
5118  /* copied from yy_switch_to_buffer. */
5120  (yy_did_buffer_switch_on_eof) = 1;
5121 }
5122 /* %endif */
5123 
5124 /* %if-c-or-c++ */
5129 /* %if-c-only */
5131 /* %endif */
5132 /* %if-c++-only */
5133 /* %endif */
5134 {
5135  if (!YY_CURRENT_BUFFER)
5136  return;
5137 
5139  YY_CURRENT_BUFFER_LVALUE = NULL;
5140  if ((yy_buffer_stack_top) > 0)
5141  --(yy_buffer_stack_top);
5142 
5143  if (YY_CURRENT_BUFFER) {
5145  (yy_did_buffer_switch_on_eof) = 1;
5146  }
5147 }
5148 /* %endif */
5149 
5150 /* %if-c-or-c++ */
5151 /* Allocates the stack if it does not exist.
5152  * Guarantees space for at least one push.
5153  */
5154 /* %if-c-only */
5155 static void yyensure_buffer_stack (void)
5156 /* %endif */
5157 /* %if-c++-only */
5158 /* %endif */
5159 {
5160  yy_size_t num_to_alloc;
5161 
5162  if (!(yy_buffer_stack)) {
5163 
5164  /* First allocation is just for 2 elements, since we don't know if this
5165  * scanner will even need a stack. We use 2 instead of 1 to avoid an
5166  * immediate realloc on the next call.
5167  */
5168  num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
5169  (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
5170  (num_to_alloc * sizeof(struct yy_buffer_state*)
5171  );
5172  if ( ! (yy_buffer_stack) )
5173  YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
5174 
5175  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
5176 
5177  (yy_buffer_stack_max) = num_to_alloc;
5178  (yy_buffer_stack_top) = 0;
5179  return;
5180  }
5181 
5182  if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
5183 
5184  /* Increase the buffer to prepare for a possible push. */
5185  yy_size_t grow_size = 8 /* arbitrary grow size */;
5186 
5187  num_to_alloc = (yy_buffer_stack_max) + grow_size;
5188  (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
5189  ((yy_buffer_stack),
5190  num_to_alloc * sizeof(struct yy_buffer_state*)
5191  );
5192  if ( ! (yy_buffer_stack) )
5193  YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
5194 
5195  /* zero only the new slots.*/
5196  memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
5197  (yy_buffer_stack_max) = num_to_alloc;
5198  }
5199 }
5200 /* %endif */
5201 
5202 /* %if-c-only */
5210 {
5211  YY_BUFFER_STATE b;
5212 
5213  if ( size < 2 ||
5214  base[size-2] != YY_END_OF_BUFFER_CHAR ||
5215  base[size-1] != YY_END_OF_BUFFER_CHAR )
5216  /* They forgot to leave room for the EOB's. */
5217  return NULL;
5218 
5219  b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
5220  if ( ! b )
5221  YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
5222 
5223  b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
5224  b->yy_buf_pos = b->yy_ch_buf = base;
5225  b->yy_is_our_buffer = 0;
5226  b->yy_input_file = NULL;
5227  b->yy_n_chars = b->yy_buf_size;
5228  b->yy_is_interactive = 0;
5229  b->yy_at_bol = 1;
5230  b->yy_fill_buffer = 0;
5232 
5233  yy_switch_to_buffer( b );
5234 
5235  return b;
5236 }
5237 /* %endif */
5238 
5239 /* %if-c-only */
5248 YY_BUFFER_STATE yy_scan_string (const char * yystr )
5249 {
5250 
5251  return yy_scan_bytes( yystr, (int) strlen(yystr) );
5252 }
5253 /* %endif */
5254 
5255 /* %if-c-only */
5263 YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
5264 {
5265  YY_BUFFER_STATE b;
5266  char *buf;
5267  yy_size_t n;
5268  int i;
5269 
5270  /* Get memory for full buffer, including space for trailing EOB's. */
5271  n = (yy_size_t) (_yybytes_len + 2);
5272  buf = (char *) yyalloc( n );
5273  if ( ! buf )
5274  YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
5275 
5276  for ( i = 0; i < _yybytes_len; ++i )
5277  buf[i] = yybytes[i];
5278 
5279  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
5280 
5281  b = yy_scan_buffer( buf, n );
5282  if ( ! b )
5283  YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
5284 
5285  /* It's okay to grow etc. this buffer, and we should throw it
5286  * away when we're done.
5287  */
5288  b->yy_is_our_buffer = 1;
5289 
5290  return b;
5291 }
5292 /* %endif */
5293 
5294 #ifndef YY_EXIT_FAILURE
5295 #define YY_EXIT_FAILURE 2
5296 #endif
5297 
5298 /* %if-c-only */
5299 static void yynoreturn yy_fatal_error (const char* msg )
5300 {
5301  fprintf( stderr, "%s\n", msg );
5302  exit( YY_EXIT_FAILURE );
5303 }
5304 /* %endif */
5305 /* %if-c++-only */
5306 /* %endif */
5307 
5308 /* Redefine yyless() so it works in section 3 code. */
5309 
5310 #undef yyless
5311 #define yyless(n) \
5312  do \
5313  { \
5314  /* Undo effects of setting up yytext. */ \
5315  int yyless_macro_arg = (n); \
5316  YY_LESS_LINENO(yyless_macro_arg);\
5317  yytext[yyleng] = (yy_hold_char); \
5318  (yy_c_buf_p) = yytext + yyless_macro_arg; \
5319  (yy_hold_char) = *(yy_c_buf_p); \
5320  *(yy_c_buf_p) = '\0'; \
5321  yyleng = yyless_macro_arg; \
5322  } \
5323  while ( 0 )
5324 
5325 /* Accessor methods (get/set functions) to struct members. */
5326 
5327 /* %if-c-only */
5328 /* %if-reentrant */
5329 /* %endif */
5330 
5334 int yyget_lineno (void)
5335 {
5336 
5337  return yylineno;
5338 }
5339 
5343 FILE *yyget_in (void)
5344 {
5345  return yyin;
5346 }
5347 
5351 FILE *yyget_out (void)
5352 {
5353  return yyout;
5354 }
5355 
5359 int yyget_leng (void)
5360 {
5361  return yyleng;
5362 }
5363 
5368 char *yyget_text (void)
5369 {
5370  return yytext;
5371 }
5372 
5373 /* %if-reentrant */
5374 /* %endif */
5375 
5380 void yyset_lineno (int _line_number )
5381 {
5382 
5383  yylineno = _line_number;
5384 }
5385 
5392 void yyset_in (FILE * _in_str )
5393 {
5394  yyin = _in_str ;
5395 }
5396 
5397 void yyset_out (FILE * _out_str )
5398 {
5399  yyout = _out_str ;
5400 }
5401 
5402 int yyget_debug (void)
5403 {
5404  return yy_flex_debug;
5405 }
5406 
5407 void yyset_debug (int _bdebug )
5408 {
5409  yy_flex_debug = _bdebug ;
5410 }
5411 
5412 /* %endif */
5413 
5414 /* %if-reentrant */
5415 /* %if-bison-bridge */
5416 /* %endif */
5417 /* %endif if-c-only */
5418 
5419 /* %if-c-only */
5420 static int yy_init_globals (void)
5421 {
5422  /* Initialization is the same as for the non-reentrant scanner.
5423  * This function is called from yylex_destroy(), so don't allocate here.
5424  */
5425 
5426  (yy_buffer_stack) = NULL;
5427  (yy_buffer_stack_top) = 0;
5428  (yy_buffer_stack_max) = 0;
5429  (yy_c_buf_p) = NULL;
5430  (yy_init) = 0;
5431  (yy_start) = 0;
5432 
5433 /* Defined in main.c */
5434 #ifdef YY_STDINIT
5435  yyin = stdin;
5436  yyout = stdout;
5437 #else
5438  yyin = NULL;
5439  yyout = NULL;
5440 #endif
5441 
5442  /* For future reference: Set errno on error, since we are called by
5443  * yylex_init()
5444  */
5445  return 0;
5446 }
5447 /* %endif */
5448 
5449 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
5450 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
5451 int yylex_destroy (void)
5452 {
5453 
5454  /* Pop the buffer stack, destroying each element. */
5455  while(YY_CURRENT_BUFFER){
5457  YY_CURRENT_BUFFER_LVALUE = NULL;
5459  }
5460 
5461  /* Destroy the stack itself. */
5462  yyfree((yy_buffer_stack) );
5463  (yy_buffer_stack) = NULL;
5464 
5465  /* Reset the globals. This is important in a non-reentrant scanner so the next time
5466  * yylex() is called, initialization will occur. */
5467  yy_init_globals( );
5468 
5469 /* %if-reentrant */
5470 /* %endif */
5471  return 0;
5472 }
5473 /* %endif */
5474 
5475 /*
5476  * Internal utility routines.
5477  */
5478 
5479 #ifndef yytext_ptr
5480 static void yy_flex_strncpy (char* s1, const char * s2, int n )
5481 {
5482 
5483  int i;
5484  for ( i = 0; i < n; ++i )
5485  s1[i] = s2[i];
5486 }
5487 #endif
5488 
5489 #ifdef YY_NEED_STRLEN
5490 static int yy_flex_strlen (const char * s )
5491 {
5492  int n;
5493  for ( n = 0; s[n]; ++n )
5494  ;
5495 
5496  return n;
5497 }
5498 #endif
5499 
5500 void *yyalloc (yy_size_t size )
5501 {
5502  return malloc(size);
5503 }
5504 
5505 void *yyrealloc (void * ptr, yy_size_t size )
5506 {
5507 
5508  /* The cast to (char *) in the following accommodates both
5509  * implementations that use char* generic pointers, and those
5510  * that use void* generic pointers. It works with the latter
5511  * because both ANSI C and C++ allow castless assignment from
5512  * any pointer type to void*, and deal with argument conversions
5513  * as though doing an assignment.
5514  */
5515  return realloc(ptr, size);
5516 }
5517 
5518 void yyfree (void * ptr )
5519 {
5520  free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
5521 }
5522 
5523 /* %if-tables-serialization definitions */
5524 /* %define-yytables The name for this specific scanner's tables. */
5525 #define YYTABLES_NAME "yytables"
5526 /* %endif */
5527 
5528 /* %ok-for-header */
5529 
5530 #line 1842 "dhcp6_lexer.ll"
5531 
5532 
5533 using namespace isc::dhcp;
5534 
5535 void
5536 Parser6Context::scanStringBegin(const std::string& str, ParserType parser_type)
5537 {
5538  start_token_flag = true;
5539  start_token_value = parser_type;
5540 
5541  file_ = "<string>";
5542  sfile_ = 0;
5543  loc_.initialize(&file_);
5544  yy_flex_debug = trace_scanning_;
5545  YY_BUFFER_STATE buffer;
5546  buffer = parser6__scan_bytes(str.c_str(), str.size());
5547  if (!buffer) {
5548  fatal("cannot scan string");
5549  /* fatal() throws an exception so this can't be reached */
5550  }
5551 }
5552 
5553 void
5555  const std::string& filename,
5556  ParserType parser_type)
5557 {
5558  start_token_flag = true;
5559  start_token_value = parser_type;
5560 
5561  file_ = filename;
5562  sfile_ = f;
5563  loc_.initialize(&file_);
5564  yy_flex_debug = trace_scanning_;
5565  YY_BUFFER_STATE buffer;
5566 
5567  /* See dhcp6_lexer.cc header for available definitions */
5568  buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
5569  if (!buffer) {
5570  fatal("cannot scan file " + filename);
5571  }
5572  parser6__switch_to_buffer(buffer);
5573 }
5574 
5575 void
5577  if (sfile_)
5578  fclose(sfile_);
5579  sfile_ = 0;
5580  static_cast<void>(parser6_lex_destroy());
5581  /* Close files */
5582  while (!sfiles_.empty()) {
5583  FILE* f = sfiles_.back();
5584  if (f) {
5585  fclose(f);
5586  }
5587  sfiles_.pop_back();
5588  }
5589  /* Delete states */
5590  while (!states_.empty()) {
5591  parser6__delete_buffer(states_.back());
5592  states_.pop_back();
5593  }
5594 }
5595 
5596 void
5597 Parser6Context::includeFile(const std::string& filename) {
5598  if (states_.size() > 10) {
5599  fatal("Too many nested include.");
5600  }
5601 
5602  FILE* f = fopen(filename.c_str(), "r");
5603  if (!f) {
5604  fatal("Can't open include file " + filename);
5605  }
5606  if (sfile_) {
5607  sfiles_.push_back(sfile_);
5608  }
5609  sfile_ = f;
5610  states_.push_back(YY_CURRENT_BUFFER);
5611  YY_BUFFER_STATE buffer;
5612  buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
5613  if (!buffer) {
5614  fatal( "Can't scan include file " + filename);
5615  }
5616  parser6__switch_to_buffer(buffer);
5617  files_.push_back(file_);
5618  file_ = filename;
5619  locs_.push_back(loc_);
5620  loc_.initialize(&file_);
5621 
5622  BEGIN(INITIAL);
5623 }
5624 
5625 namespace {
5627 class Dummy {
5628  /* cppcheck-suppress unusedPrivateFunction */
5629  void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
5630 };
5631 }
5632 #endif /* !__clang_analyzer__ */
5633 
Used while parsing Dhcp6/lease-database structures.
static symbol_type make_CQL(YY_COPY(location_type) l)
static symbol_type make_CONTROL_AGENT(YY_COPY(location_type) l)
static symbol_type make_WHEN_NOT_PRESENT(YY_COPY(location_type) l)
static symbol_type make_NULL_TYPE(YY_COPY(location_type) l)
static symbol_type make_STRING(YY_COPY(std::string) v, YY_COPY(location_type) l)
#define yylex
Definition: dhcp6_lexer.cc:27
static symbol_type make_NAME(YY_COPY(location_type) l)
static symbol_type make_HOST(YY_COPY(location_type) l)
#define yyfree
Definition: dhcp6_lexer.cc:35
static symbol_type make_RECONNECT_WAIT_TIME(YY_COPY(location_type) l)
Used while parsing Dhcp6/option-def structures.
FILE * yy_input_file
Definition: agent_lexer.cc:491
#define YY_BUFFER_EOF_PENDING
Definition: dhcp6_lexer.cc:551
static symbol_type make_RSQUARE_BRACKET(YY_COPY(location_type) l)
static symbol_type make_SPACE(YY_COPY(location_type) l)
#define YY_CURRENT_BUFFER
Definition: dhcp6_lexer.cc:575
#define yyrestart
Definition: dhcp6_lexer.cc:30
Used while parsing config-control/config-databases.
static symbol_type make_SANITY_CHECKS(YY_COPY(location_type) l)
static symbol_type make_VALID_LIFETIME(YY_COPY(location_type) l)
#define yyset_lineno
Definition: dhcp6_lexer.cc:224
static symbol_type make_IDENTIFIER(YY_COPY(location_type) l)
static symbol_type make_DHCPDDNS(YY_COPY(location_type) l)
static symbol_type make_SENDER_PORT(YY_COPY(location_type) l)
static symbol_type make_LL(YY_COPY(location_type) l)
static symbol_type make_DISABLED(YY_COPY(location_type) l)
static symbol_type make_DHCP4O6_PORT(YY_COPY(location_type) l)
static symbol_type make_SUB_INTERFACES6(YY_COPY(location_type) l)
static symbol_type make_PREFERRED_LIFETIME(YY_COPY(location_type) l)
static symbol_type make_EXPIRED_LEASES_PROCESSING(YY_COPY(location_type) l)
#define YY_NEW_FILE
Definition: dhcp6_lexer.cc:424
Used while parsing Dhcp6/client-classes structures.
#define yyset_out
Definition: dhcp6_lexer.cc:200
static symbol_type make_CLIENT_CLASS(YY_COPY(location_type) l)
#define YY_EXIT_FAILURE
#define yyget_text
Definition: dhcp6_lexer.cc:212
static symbol_type make_LOGGERS(YY_COPY(location_type) l)
Used while parsing Dhcp6/reservations structures.
static symbol_type make_RAPID_COMMIT(YY_COPY(location_type) l)
static symbol_type make_DATA(YY_COPY(location_type) l)
static symbol_type make_PASSWORD(YY_COPY(location_type) l)
static symbol_type make_INTERFACES_CONFIG(YY_COPY(location_type) l)
static symbol_type make_HOSTNAME_CHAR_REPLACEMENT(YY_COPY(location_type) l)
static symbol_type make_SUB_RESERVATION(YY_COPY(location_type) l)
#define YY_END_OF_BUFFER
Definition: dhcp6_lexer.cc:695
static symbol_type make_SUB_LOGGING(YY_COPY(location_type) l)
static symbol_type make_PERSIST(YY_COPY(location_type) l)
static symbol_type make_CSV_FORMAT(YY_COPY(location_type) l)
size_t yy_size_t
Definition: dhcp6_lexer.cc:451
#define DIR_INCLUDE
static symbol_type make_UDP(YY_COPY(location_type) l)
static symbol_type make_LEASE_DATABASE(YY_COPY(location_type) l)
flex_uint8_t YY_CHAR
Definition: dhcp6_lexer.cc:656
static symbol_type make_HOSTNAME_CHAR_SET(YY_COPY(location_type) l)
static symbol_type make_INTERFACE_ID(YY_COPY(location_type) l)
static symbol_type make_MAX_RECONNECT_TRIES(YY_COPY(location_type) l)
#define yypop_buffer_state
Definition: dhcp6_lexer.cc:22
static symbol_type make_RELAY(YY_COPY(location_type) l)
#define yytext_ptr
Definition: dhcp6_lexer.cc:669
#define YY_READ_BUF_SIZE
#define yy_scan_bytes
Definition: dhcp6_lexer.cc:16
int yy_act
static symbol_type make_READONLY(YY_COPY(location_type) l)
static symbol_type make_NCR_PROTOCOL(YY_COPY(location_type) l)
Used while parsing Dhcp4/config-control.
int yy_bs_lineno
The line count.
Definition: agent_lexer.cc:529
#define yyget_debug
Definition: dhcp6_lexer.cc:158
Used while parsing Dhcp6/dhcp-ddns/ncr-protocol.
static symbol_type make_REQUIRE_CLIENT_CLASSES(YY_COPY(location_type) l)
#define YY_BUFFER_NEW
Definition: dhcp6_lexer.cc:539
static symbol_type make_RESERVATIONS(YY_COPY(location_type) l)
static symbol_type make_GLOBAL(YY_COPY(location_type) l)
static symbol_type make_TOPLEVEL_JSON(YY_COPY(location_type) l)
static symbol_type make_TEST(YY_COPY(location_type) l)
#define yy_flush_buffer
Definition: dhcp6_lexer.cc:18
static symbol_type make_ALWAYS_SEND(YY_COPY(location_type) l)
static symbol_type make_SERVER_IP(YY_COPY(location_type) l)
unsigned char flex_uint8_t
Definition: dhcp6_lexer.cc:335
static symbol_type make_IP_ADDRESS(YY_COPY(location_type) l)
static symbol_type make_NCR_FORMAT(YY_COPY(location_type) l)
static symbol_type make_FLOAT(YY_COPY(double) v, YY_COPY(location_type) l)
#define yywrap
std::vector< std::string > files_
File name stack.
static symbol_type make_SUBNET(YY_COPY(location_type) l)
static symbol_type make_TIME(YY_COPY(location_type) l)
Used while parsing Dhcp6/dhcp-ddns/ncr-format.
#define YY_SC_TO_UI(c)
Definition: dhcp6_lexer.cc:400
#define COMMENT
static symbol_type make_END(YY_COPY(location_type) l)
#define yyleng
Definition: dhcp6_lexer.cc:26
static symbol_type make_RELAY_SUPPLIED_OPTIONS(YY_COPY(location_type) l)
static symbol_type make_OVERRIDE_CLIENT_UPDATE(YY_COPY(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
static symbol_type make_ALWAYS(YY_COPY(location_type) l)
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
Used while parsing content of Logging.
#define yylineno
Definition: dhcp6_lexer.cc:28
#define EOB_ACT_END_OF_FILE
Definition: dhcp6_lexer.cc:465
static symbol_type make_CLIENT_CLASSES(YY_COPY(location_type) l)
static symbol_type make_OUTPUT(YY_COPY(location_type) l)
Used while parsing Dhcp6/expired-leases-processing.
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_SEVERITY(YY_COPY(location_type) l)
static symbol_type make_RE_DETECT(YY_COPY(location_type) l)
static symbol_type make_LSQUARE_BRACKET(YY_COPY(location_type) l)
static symbol_type make_SUB_CONFIG_CONTROL(YY_COPY(location_type) l)
static symbol_type make_GENERATED_PREFIX(YY_COPY(location_type) l)
Evaluation error exception raised when trying to parse.
static symbol_type make_HOSTNAME(YY_COPY(location_type) l)
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
Used while parsing Logging/loggers/output_options structures.
#define BEGIN
Definition: dhcp6_lexer.cc:414
#define YY_STATE_EOF(state)
Definition: dhcp6_lexer.cc:422
static symbol_type make_TCP(YY_COPY(location_type) l)
#define YY_DO_BEFORE_ACTION
Definition: dhcp6_lexer.cc:685
#define YY_FATAL_ERROR(msg)
static symbol_type make_DECLINE_PROBATION_PERIOD(YY_COPY(location_type) l)
static symbol_type make_SUB_DHCP6(YY_COPY(location_type) l)
#define ECHO
static symbol_type make_MEMFILE(YY_COPY(location_type) l)
static symbol_type make_HOSTS_DATABASE(YY_COPY(location_type) l)
static symbol_type make_ENCAPSULATE(YY_COPY(location_type) l)
Used while parsing content of Dhcp6.
static symbol_type make_OPTION_DEF(YY_COPY(location_type) l)
#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_COMMENT(YY_COPY(location_type) l)
static symbol_type make_COLON(YY_COPY(location_type) l)
static symbol_type make_FLUSH(YY_COPY(location_type) l)
static symbol_type make_CONFIG_CONTROL(YY_COPY(location_type) l)
int yy_state_type
Definition: dhcp6_lexer.cc:660
static symbol_type make_LIBRARY(YY_COPY(location_type) l)
static symbol_type make_TOPLEVEL_DHCP6(YY_COPY(location_type) l)
FILE * sfile_
sFile (aka FILE)
static symbol_type make_KEYSPACE(YY_COPY(location_type) l)
static symbol_type make_DHCP6(YY_COPY(location_type) l)
#define EOB_ACT_LAST_MATCH
Definition: dhcp6_lexer.cc:466
static symbol_type make_PREFIX(YY_COPY(location_type) l)
Used while parsing Dhcp6/*-database/type.
flex_uint8_t YY_CHAR
Definition: agent_lexer.cc:656
static symbol_type make_HOLD_RECLAIMED_TIME(YY_COPY(location_type) l)
static symbol_type make_INTERFACE(YY_COPY(location_type) l)
unsigned short int flex_uint16_t
Definition: dhcp6_lexer.cc:336
#define YY_START
Definition: dhcp6_lexer.cc:419
#define yyalloc
Definition: dhcp6_lexer.cc:33
#define YY_RULE_SETUP
static symbol_type make_USER_CONTEXT(YY_COPY(location_type) l)
static symbol_type make_LLT(YY_COPY(location_type) l)
#define YY_MORE_ADJ
static symbol_type make_PARAMETERS(YY_COPY(location_type) l)
Used while parsing Dhcp6/subnet6/pd-pools structures.
static symbol_type make_LEASE_CHECKS(YY_COPY(location_type) l)
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
static symbol_type make_ALL(YY_COPY(location_type) l)
isc::dhcp::location loc_
Location of the current token.
static symbol_type make_INTERFACES(YY_COPY(location_type) l)
char * yy_bp
int flex_int32_t
Definition: dhcp6_lexer.cc:334
static symbol_type make_MAX_QUEUE_SIZE(YY_COPY(location_type) l)
static symbol_type make_MYSQL(YY_COPY(location_type) l)
Used while parsing Dhcp6/hosts-database[s] structures.
static symbol_type make_SERVER_TAG(YY_COPY(location_type) l)
#define YY_END_OF_BUFFER_CHAR
Definition: dhcp6_lexer.cc:425
Used while parsing Logging/loggers structures.
std::vector< FILE * > sfiles_
sFile (aka FILE) stack
static symbol_type make_JSON(YY_COPY(location_type) l)
void scanEnd()
Method called after the last tokens are scanned.
static symbol_type make_HW_ADDRESS(YY_COPY(location_type) l)
#define yyget_out
Definition: dhcp6_lexer.cc:194
static symbol_type make_NEVER(YY_COPY(location_type) l)
#define DIR_EXIT
static symbol_type make_CONTACT_POINTS(YY_COPY(location_type) l)
#define yyget_extra
Definition: dhcp6_lexer.cc:170
static symbol_type make_SUBNET6(YY_COPY(location_type) l)
static symbol_type make_CODE(YY_COPY(location_type) l)
static symbol_type make_HOST_RESERVATION_IDENTIFIERS(YY_COPY(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_RENEW_TIMER(YY_COPY(location_type) l)
static symbol_type make_SUB_SUBNET6(YY_COPY(location_type) l)
Used while parsing Dhcp6/interfaces structures.
#define INITIAL
#define YY_RESTORE_YY_MORE_OFFSET
static symbol_type make_RCURLY_BRACKET(YY_COPY(location_type) l)
static symbol_type make_MAXSIZE(YY_COPY(location_type) l)
static symbol_type make_EXCLUDED_PREFIX_LEN(YY_COPY(location_type) l)
size_t yy_size_t
Definition: agent_lexer.cc:451
static symbol_type make_OUT_OF_POOL(YY_COPY(location_type) l)
#define yytext
Definition: dhcp6_lexer.cc:31
#define yyrealloc
Definition: dhcp6_lexer.cc:34
static symbol_type make_DHCP_QUEUE_CONTROL(YY_COPY(location_type) l)
static symbol_type make_ID(YY_COPY(location_type) l)
static symbol_type make_SERVER_PORT(YY_COPY(location_type) l)
static symbol_type make_SERVER_ID(YY_COPY(location_type) l)
Used while parsing shared-networks structures.
static symbol_type make_CONNECT_TIMEOUT(YY_COPY(location_type) l)
#define yyout
Definition: dhcp6_lexer.cc:29
static symbol_type make_FLUSH_RECLAIMED_TIMER_WAIT_TIME(YY_COPY(location_type) l)
static symbol_type make_EN(YY_COPY(location_type) l)
unsigned char flex_uint8_t
Definition: agent_lexer.cc:335
char * yy_cp
static symbol_type make_COMMA(YY_COPY(location_type) l)
static symbol_type make_ONLY_IF_REQUIRED(YY_COPY(location_type) l)
Used while parsing Dhcp6/dhcp-ddns/replace-client-name.
static symbol_type make_MAX_RECLAIM_TIME(YY_COPY(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_SUB_PD_POOL(YY_COPY(location_type) l)
Used while parsing Dhcp6/control-socket structures.
static symbol_type make_MAC_SOURCES(YY_COPY(location_type) l)
#define yyset_in
Definition: dhcp6_lexer.cc:188
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_HOOKS_LIBRARIES(YY_COPY(location_type) l)
static symbol_type make_INTEGER(YY_COPY(int64_t) v, YY_COPY(location_type) l)
static symbol_type make_REBIND_TIMER(YY_COPY(location_type) l)
#define EOB_ACT_CONTINUE_SCAN
Definition: dhcp6_lexer.cc:464
static symbol_type make_PREFIX_LEN(YY_COPY(location_type) l)
static symbol_type make_FLEX_ID(YY_COPY(location_type) l)
static symbol_type make_MAXVER(YY_COPY(location_type) l)
#define YY_BREAK
static symbol_type make_DEBUGLEVEL(YY_COPY(location_type) l)
#define yylex_destroy
Definition: dhcp6_lexer.cc:152
static symbol_type make_USER(YY_COPY(location_type) l)
static symbol_type make_SUB_OPTION_DATA(YY_COPY(location_type) l)
static symbol_type make_REQUEST_TIMEOUT(YY_COPY(location_type) l)
static symbol_type make_LCURLY_BRACKET(YY_COPY(location_type) l)
Used while parsing Dhcp6/host-reservation-identifiers.
static symbol_type make_BOOLEAN(YY_COPY(bool) v, YY_COPY(location_type) l)
static symbol_type make_RECORD_TYPES(YY_COPY(location_type) l)
static symbol_type make_SOCKET_NAME(YY_COPY(location_type) l)
static symbol_type make_ENTERPRISE_ID(YY_COPY(location_type) l)
static symbol_type make_TYPE(YY_COPY(location_type) l)
static symbol_type make_DHCP_DDNS(YY_COPY(location_type) l)
static symbol_type make_ENABLE_UPDATES(YY_COPY(location_type) l)
short int flex_int16_t
Definition: agent_lexer.cc:333
static symbol_type make_SUB_POOL6(YY_COPY(location_type) l)
std::string file_
File name.
static symbol_type make_OVERRIDE_NO_UPDATE(YY_COPY(location_type) l)
static symbol_type make_REPLACE_CLIENT_NAME(YY_COPY(location_type) l)
flex_int32_t yy_nxt
Definition: agent_lexer.cc:701
std::vector< isc::dhcp::location > locs_
Location stack.
static symbol_type make_HTYPE(YY_COPY(location_type) l)
static symbol_type make_TCP_NODELAY(YY_COPY(location_type) l)
int yy_state_type
Definition: agent_lexer.cc:660
static symbol_type make_RESERVATION_MODE(YY_COPY(location_type) l)
Used while parsing Dhcp6/subnet6/relay structures.
static symbol_type make_LOGGING(YY_COPY(location_type) l)
#define yyset_extra
Definition: dhcp6_lexer.cc:176
#define yy_switch_to_buffer
Definition: dhcp6_lexer.cc:20
short int flex_int16_t
Definition: dhcp6_lexer.cc:333
static symbol_type make_SUB_OPTION_DEFS(YY_COPY(location_type) l)
static symbol_type make_POOL(YY_COPY(location_type) l)
static symbol_type make_OPTION_DATA(YY_COPY(location_type) l)
static symbol_type make_SENDER_IP(YY_COPY(location_type) l)
static symbol_type make_SOCKET_TYPE(YY_COPY(location_type) l)
#define yy_delete_buffer
Definition: dhcp6_lexer.cc:13
static symbol_type make_WHEN_PRESENT(YY_COPY(location_type) l)
static symbol_type make_MAX_RECLAIM_LEASES(YY_COPY(location_type) l)
static symbol_type make_TCP_KEEPALIVE(YY_COPY(location_type) l)
#define DIR_ENTER
static symbol_type make_POSTGRESQL(YY_COPY(location_type) l)
Used while parsing Dhcp6/subnet6/pools structures.
static symbol_type make_CONFIG_DATABASES(YY_COPY(location_type) l)
#define YY_BUFFER_NORMAL
Definition: dhcp6_lexer.cc:540
#define yyin
Definition: dhcp6_lexer.cc:25
static symbol_type make_OUTPUT_OPTIONS(YY_COPY(location_type) l)
static symbol_type make_SUB_HOOKS_LIBRARY(YY_COPY(location_type) l)
static symbol_type make_PREFIXES(YY_COPY(location_type) l)
#define YY_EXTRA_TYPE
static symbol_type make_PORT(YY_COPY(location_type) l)
static symbol_type make_DHCP4(YY_COPY(location_type) l)
unsigned int flex_uint32_t
Definition: dhcp6_lexer.cc:337
static symbol_type make_EXCLUDED_PREFIX(YY_COPY(location_type) l)
#define YY_DECL
Used while parsing Dhcp6/reservation-mode.
static symbol_type make_HOSTS_DATABASES(YY_COPY(location_type) l)
#define yyget_in
Definition: dhcp6_lexer.cc:182
static symbol_type make_ARRAY(YY_COPY(location_type) l)
Used while parsing Dhcp6/hooks-libraries.
#define yyget_lineno
Definition: dhcp6_lexer.cc:218
static symbol_type make_IP_ADDRESSES(YY_COPY(location_type) l)
signed char flex_int8_t
Definition: dhcp6_lexer.cc:332
static symbol_type make_DELEGATED_LEN(YY_COPY(location_type) l)
static symbol_type make_POOLS(YY_COPY(location_type) l)
static symbol_type make_QUALIFYING_SUFFIX(YY_COPY(location_type) l)
static symbol_type make_SUB_DHCP_DDNS(YY_COPY(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.
Used while parsing Dhcp6/dhcp-ddns.
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
void scanFileBegin(FILE *f, const std::string &filename, ParserType type)
Method called before scanning starts on a file.
static symbol_type make_PD_POOLS(YY_COPY(location_type) l)
#define yynoreturn
Definition: dhcp6_lexer.cc:388
static symbol_type make_LFC_INTERVAL(YY_COPY(location_type) l)
static symbol_type make_UNWARNED_RECLAIM_CYCLES(YY_COPY(location_type) l)
static symbol_type make_SUB_OPTION_DEF(YY_COPY(location_type) l)
static symbol_type make_DUID(YY_COPY(location_type) l)
static symbol_type make_CONTROL_SOCKET(YY_COPY(location_type) l)
static symbol_type make_RECLAIM_TIMER_WAIT_TIME(YY_COPY(location_type) l)
#define yyensure_buffer_stack
Definition: dhcp6_lexer.cc:23