Kea 3.1.9
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>
325typedef int8_t flex_int8_t;
326typedef uint8_t flex_uint8_t;
327typedef int16_t flex_int16_t;
328typedef uint16_t flex_uint16_t;
329typedef int32_t flex_int32_t;
330typedef uint32_t flex_uint32_t;
331#else
332typedef signed char flex_int8_t;
333typedef short int flex_int16_t;
334typedef int flex_int32_t;
335typedef unsigned char flex_uint8_t;
336typedef unsigned short int flex_uint16_t;
337typedef 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
451typedef size_t yy_size_t;
452#endif
453
454/* %if-not-reentrant */
455extern int yyleng;
456/* %endif */
457
458/* %if-c-only */
459/* %if-not-reentrant */
460extern 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
488struct 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 */
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 */
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;
531
532 /* Whether to try to fill the input buffer when we reach the
533 * end of it.
534 */
535 int yy_fill_buffer;
536
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. */
561static size_t yy_buffer_stack_top = 0;
562static size_t yy_buffer_stack_max = 0;
563static 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. */
588static char yy_hold_char;
589static int yy_n_chars; /* number of characters read into yy_ch_buf */
591
592/* Points to current character in buffer. */
593static char *yy_c_buf_p = NULL;
594static int yy_init = 0; /* whether we need to initialize */
595static 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 */
600static int yy_did_buffer_switch_on_eof;
601/* %ok-for-header */
602
603/* %endif */
604
605void yyrestart ( FILE *input_file );
606void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
607YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
610void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
611void yypop_buffer_state ( void );
612
613static void yyensure_buffer_stack ( void );
614static void yy_load_buffer_state ( void );
615static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
616#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
617
618YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
619YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
620YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
621
622/* %endif */
623
624void *yyalloc ( yy_size_t );
625void *yyrealloc ( void *, yy_size_t );
626void 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
656typedef flex_uint8_t YY_CHAR;
657
658FILE *yyin = NULL, *yyout = NULL;
659
660typedef int yy_state_type;
661
662extern int yylineno;
663int yylineno = 1;
664
665extern 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
675static yy_state_type yy_get_previous_state ( void );
676static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
677static int yy_get_next_buffer ( void );
678static 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 254
695#define YY_END_OF_BUFFER 255
696/* This struct is not used in this scanner,
697 but its presence is necessary. */
698struct yy_trans_info
699 {
701 flex_int32_t yy_nxt;
702 };
703static const flex_int16_t yy_accept[2412] =
704 { 0,
705 247, 247, 0, 0, 0, 0, 0, 0, 0, 0,
706 255, 253, 10, 11, 253, 1, 247, 243, 247, 247,
707 253, 246, 246, 244, 253, 253, 253, 253, 253, 239,
708 240, 253, 253, 253, 241, 242, 5, 5, 5, 253,
709 253, 253, 10, 11, 0, 0, 234, 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, 0, 0,
713 1, 247, 247, 0, 246, 246, 247, 3, 2, 245,
714 246, 6, 0, 247, 0, 0, 0, 0, 0, 0,
715
716 4, 0, 0, 9, 0, 235, 0, 0, 0, 0,
717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
718 0, 237, 0, 0, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
725 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
726
727 0, 0, 8, 0, 0, 0, 186, 0, 0, 187,
728 0, 0, 0, 0, 0, 0, 0, 0, 236, 238,
729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
733 0, 0, 134, 0, 0, 0, 0, 0, 0, 0,
734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
737
738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
741 252, 250, 0, 249, 248, 0, 0, 0, 0, 0,
742 0, 185, 0, 0, 23, 0, 22, 0, 0, 0,
743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
748
749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
755 0, 0, 0, 0, 0, 0, 0, 0, 251, 248,
756 0, 0, 0, 0, 0, 24, 0, 0, 26, 0,
757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
758 0, 0, 0, 0, 139, 0, 0, 0, 0, 0,
759
760 0, 117, 0, 0, 0, 0, 0, 0, 0, 0,
761 0, 171, 0, 0, 0, 0, 0, 0, 0, 0,
762 0, 0, 0, 0, 53, 0, 0, 0, 208, 0,
763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
765 0, 0, 0, 116, 0, 0, 0, 0, 0, 0,
766 0, 0, 0, 0, 0, 0, 0, 0, 0, 127,
767 0, 0, 54, 0, 0, 0, 0, 0, 0, 0,
768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
770
771 0, 0, 0, 0, 0, 0, 0, 163, 0, 190,
772 0, 50, 207, 0, 51, 0, 0, 0, 0, 0,
773 0, 0, 0, 32, 29, 28, 0, 0, 0, 0,
774 0, 0, 0, 179, 0, 214, 0, 0, 0, 0,
775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
778 0, 0, 0, 0, 0, 153, 0, 0, 0, 0,
779 0, 0, 0, 209, 189, 0, 0, 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, 27,
783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
784 0, 0, 0, 0, 120, 0, 0, 0, 0, 0,
785 0, 0, 215, 0, 0, 0, 0, 180, 0, 0,
786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
787 0, 175, 0, 0, 0, 0, 0, 0, 0, 0,
788 0, 0, 0, 0, 0, 0, 0, 222, 0, 0,
789 7, 30, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0,
794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
798 155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799 0, 152, 0, 0, 0, 0, 0, 0, 0, 0,
800 0, 0, 0, 74, 0, 122, 0, 0, 0, 0,
801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
803
804 0, 0, 0, 0, 131, 0, 0, 0, 0, 0,
805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
807 0, 0, 0, 0, 0, 0, 217, 130, 0, 0,
808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
810 0, 0, 73, 0, 0, 0, 0, 0, 0, 0,
811 0, 0, 0, 174, 0, 0, 0, 0, 0, 0,
812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
813 0, 183, 149, 0, 0, 0, 0, 0, 0, 0,
814
815 154, 0, 0, 0, 0, 0, 0, 62, 0, 0,
816 0, 0, 0, 0, 0, 0, 0, 156, 0, 0,
817 55, 128, 0, 0, 0, 0, 0, 0, 0, 0,
818 0, 0, 0, 0, 0, 0, 75, 0, 0, 0,
819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
820 0, 0, 0, 0, 0, 0, 0, 0, 111, 0,
821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
823 0, 0, 0, 0, 0, 226, 0, 0, 0, 0,
824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
825
826 0, 0, 0, 0, 108, 0, 0, 0, 0, 0,
827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828 0, 0, 0, 0, 0, 0, 0, 0, 0, 173,
829 0, 0, 0, 0, 0, 0, 0, 0, 71, 0,
830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
832 0, 0, 0, 0, 0, 52, 0, 0, 121, 0,
833 0, 169, 0, 0, 0, 0, 49, 0, 0, 0,
834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
835 0, 0, 0, 0, 0, 158, 0, 0, 0, 0,
836
837 0, 72, 0, 0, 0, 0, 0, 0, 0, 0,
838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
839 0, 0, 0, 0, 90, 0, 0, 0, 0, 0,
840 0, 70, 0, 0, 0, 0, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
842 0, 0, 0, 0, 0, 0, 227, 0, 0, 216,
843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
844 0, 0, 0, 0, 0, 0, 0, 0, 0, 132,
845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
847
848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
849 0, 0, 0, 0, 0, 0, 36, 0, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 15, 0,
851 0, 184, 13, 0, 0, 0, 0, 0, 0, 0,
852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
853 0, 0, 218, 0, 76, 0, 0, 0, 0, 0,
854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
855 0, 0, 0, 0, 0, 0, 0, 0, 176, 0,
856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
857 0, 157, 0, 0, 0, 0, 0, 0, 0, 0,
858
859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
860 0, 0, 0, 172, 188, 0, 35, 0, 0, 0,
861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
862 0, 0, 0, 0, 19, 0, 119, 0, 0, 0,
863 114, 0, 0, 0, 182, 0, 0, 0, 0, 123,
864 225, 0, 0, 0, 0, 0, 0, 0, 0, 0,
865 0, 0, 0, 0, 0, 0, 88, 0, 0, 0,
866 0, 0, 0, 0, 0, 0, 144, 145, 0, 0,
867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
868 0, 0, 0, 0, 118, 0, 0, 0, 0, 0,
869
870 78, 0, 0, 0, 0, 0, 0, 0, 0, 0,
871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
872 0, 0, 0, 0, 0, 0, 0, 0, 178, 0,
873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
874 0, 0, 0, 0, 0, 0, 0, 0, 0, 140,
875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
876 0, 0, 115, 0, 0, 0, 0, 0, 0, 0,
877 0, 0, 0, 0, 0, 0, 0, 85, 0, 0,
878 0, 0, 16, 0, 14, 0, 0, 0, 210, 212,
879 206, 0, 0, 0, 0, 0, 0, 0, 0, 0,
880
881 0, 77, 0, 0, 0, 0, 0, 25, 0, 0,
882 0, 0, 0, 0, 0, 162, 0, 0, 0, 0,
883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
884 110, 109, 0, 0, 0, 0, 0, 0, 199, 0,
885 0, 224, 0, 0, 0, 0, 0, 0, 0, 0,
886 0, 0, 0, 0, 221, 133, 0, 168, 0, 41,
887 0, 0, 56, 0, 0, 0, 0, 0, 0, 0,
888 0, 0, 0, 18, 0, 0, 0, 0, 0, 0,
889 0, 91, 0, 135, 58, 86, 0, 0, 177, 0,
890 0, 167, 0, 0, 0, 0, 0, 0, 0, 0,
891
892 0, 0, 0, 0, 0, 0, 69, 0, 129, 0,
893 0, 0, 0, 0, 0, 0, 0, 0, 0, 147,
894 0, 0, 220, 0, 232, 0, 0, 0, 0, 0,
895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
896 0, 126, 0, 0, 0, 0, 191, 0, 0, 0,
897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
899 0, 0, 0, 0, 0, 0, 0, 219, 0, 0,
900 0, 0, 0, 0, 0, 0, 0, 0, 40, 0,
901 0, 0, 0, 0, 0, 0, 0, 0, 164, 0,
902
903 0, 0, 59, 0, 0, 0, 0, 0, 0, 0,
904 213, 0, 0, 159, 46, 0, 0, 0, 204, 0,
905 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,
906 0, 0, 0, 0, 0, 12, 0, 0, 0, 0,
907 0, 0, 0, 0, 0, 0, 44, 0, 0, 0,
908 43, 0, 0, 17, 0, 0, 0, 68, 0, 0,
909 0, 0, 0, 0, 151, 150, 0, 0, 0, 0,
910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
911 0, 0, 211, 0, 0, 0, 0, 0, 0, 82,
912 0, 0, 0, 0, 0, 0, 0, 146, 0, 0,
913
914 0, 57, 205, 0, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 0, 0, 0, 0, 124, 0,
916 0, 0, 0, 0, 0, 181, 0, 0, 0, 45,
917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
918 200, 0, 0, 0, 0, 0, 0, 0, 0, 0,
919 0, 0, 0, 0, 0, 0, 0, 0, 113, 0,
920 63, 0, 0, 0, 0, 0, 103, 0, 0, 31,
921 0, 0, 0, 47, 0, 0, 0, 0, 0, 0,
922 0, 0, 107, 0, 0, 0, 0, 0, 0, 0,
923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
924
925 0, 0, 0, 0, 197, 0, 0, 0, 0, 165,
926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
927 0, 0, 66, 0, 64, 0, 0, 0, 0, 60,
928 202, 0, 0, 0, 0, 0, 0, 0, 0, 0,
929 0, 0, 0, 0, 0, 94, 0, 0, 0, 0,
930 0, 0, 0, 0, 170, 0, 0, 0, 0, 0,
931 0, 20, 34, 0, 0, 0, 0, 0, 0, 0,
932 0, 0, 203, 0, 0, 0, 0, 0, 0, 0,
933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
935
936 0, 0, 0, 0, 0, 223, 0, 0, 0, 0,
937 0, 0, 0, 0, 0, 0, 0, 0, 0, 196,
938 0, 84, 0, 83, 0, 0, 79, 0, 0, 0,
939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
940 0, 0, 0, 104, 0, 0, 0, 143, 0, 0,
941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
942 0, 125, 0, 0, 0, 195, 0, 0, 0, 0,
943 0, 67, 0, 0, 89, 0, 61, 0, 0, 136,
944 0, 0, 0, 0, 0, 0, 0, 0, 112, 0,
945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
946
947 0, 100, 0, 0, 0, 0, 0, 0, 42, 0,
948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
949 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,
950 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
953 0, 0, 0, 0, 0, 0, 106, 0, 0, 48,
954 0, 0, 0, 99, 0, 0, 0, 0, 201, 0,
955 0, 0, 0, 0, 229, 233, 81, 80, 0, 0,
956 141, 160, 137, 0, 0, 0, 0, 0, 0, 0,
957
958 105, 0, 0, 0, 0, 95, 0, 0, 0, 0,
959 0, 0, 0, 0, 0, 166, 193, 0, 0, 0,
960 0, 0, 0, 198, 0, 0, 0, 0, 97, 0,
961 87, 0, 0, 0, 0, 0, 0, 0, 138, 0,
962 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
963 192, 0, 0, 21, 230, 0, 0, 0, 0, 0,
964 0, 231, 0, 0, 0, 0, 0, 0, 0, 0,
965 0, 0, 0, 0, 0, 0, 96, 0, 0, 161,
966 0, 0, 39, 37, 0, 0, 0, 0, 0, 101,
967 0, 0, 142, 0, 93, 0, 148, 102, 0, 0,
968
969 0, 0, 0, 0, 0, 92, 0, 194, 38, 228,
970 0
971 } ;
972
973static const YY_CHAR yy_ec[256] =
974 { 0,
975 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
976 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
977 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
978 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
979 5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
980 17, 18, 17, 19, 17, 17, 17, 20, 5, 21,
981 5, 22, 23, 5, 24, 25, 26, 27, 28, 29,
982 5, 30, 31, 32, 33, 34, 5, 35, 36, 37,
983 5, 38, 39, 40, 41, 42, 43, 44, 45, 5,
984 46, 47, 48, 5, 49, 5, 50, 51, 52, 53,
985
986 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
987 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
988 74, 75, 76, 5, 77, 5, 5, 5, 5, 5,
989 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
990 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
991 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
992 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
993 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
994 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
995 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
996
997 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
998 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
999 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1000 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1001 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1002 5, 5, 5, 5, 5
1003 } ;
1004
1005static const YY_CHAR yy_meta[78] =
1006 { 0,
1007 1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
1008 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1009 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1010 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1011 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1012 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1013 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1014 1, 1, 1, 1, 1, 1, 1
1015 } ;
1016
1017static const flex_int16_t yy_base[2420] =
1018 { 0,
1019 0, 76, 22, 29, 40, 48, 54, 62, 97, 105,
1020 2911, 2912, 32, 2907, 153, 0, 219, 2912, 227, 56,
1021 14, 242, 250, 2912, 2886, 118, 17, 71, 75, 2912,
1022 2912, 90, 74, 79, 2912, 2912, 2912, 43, 2895, 2844,
1023 0, 2884, 57, 2902, 2, 281, 2912, 87, 93, 2847,
1024 2868, 101, 79, 2868, 235, 250, 221, 220, 312, 253,
1025 2851, 326, 304, 222, 225, 228, 238, 2846, 314, 182,
1026 349, 301, 338, 2829, 229, 350, 395, 302, 230, 359,
1027 0, 413, 442, 457, 465, 473, 488, 2912, 0, 496,
1028 516, 2912, 420, 522, 361, 362, 212, 363, 364, 249,
1029
1030 2912, 2846, 2891, 2912, 56, 2912, 512, 255, 283, 2844,
1031 2889, 383, 17, 288, 423, 2883, 375, 456, 413, 332,
1032 2887, 0, 577, 2842, 486, 2824, 2821, 2821, 390, 2821,
1033 2822, 2828, 490, 2814, 2815, 2820, 448, 2830, 341, 2823,
1034 2813, 496, 2829, 497, 394, 493, 69, 2867, 514, 2808,
1035 2865, 2801, 343, 2822, 2822, 2816, 499, 2808, 2809, 2807,
1036 2801, 503, 434, 2798, 2797, 517, 2854, 2797, 379, 2809,
1037 2808, 2796, 586, 2797, 493, 2809, 2806, 2807, 2795, 262,
1038 2804, 2843, 2842, 534, 455, 2785, 2789, 537, 2785, 515,
1039 2795, 2787, 2780, 2788, 0, 541, 554, 562, 550, 564,
1040
1041 572, 2784, 2912, 584, 587, 2779, 2912, 572, 579, 2912,
1042 2837, 589, 593, 2836, 592, 2835, 587, 2834, 2912, 2912,
1043 642, 2774, 2774, 624, 2787, 2779, 2777, 2777, 2781, 2782,
1044 2762, 2773, 2775, 2774, 559, 609, 2816, 2776, 2757, 2754,
1045 2762, 2768, 2756, 2766, 2769, 2765, 2756, 2765, 2765, 2760,
1046 2752, 2751, 2753, 2756, 2736, 2740, 2754, 2746, 2736, 2739,
1047 2738, 2752, 2912, 2738, 2746, 52, 2788, 2730, 2739, 2785,
1048 2728, 2738, 2782, 612, 2781, 2722, 2736, 2778, 623, 2733,
1049 2713, 2728, 2720, 2724, 603, 2715, 2713, 623, 2713, 2719,
1050 2710, 2723, 2707, 2718, 2722, 580, 2716, 601, 2723, 2718,
1051
1052 2701, 2716, 2702, 2710, 2714, 2695, 2711, 2697, 2703, 2710,
1053 2750, 2691, 545, 2696, 2693, 2692, 670, 2691, 2686, 2700,
1054 2699, 647, 2698, 2678, 2700, 2682, 428, 2690, 2678, 651,
1055 2912, 2912, 654, 2912, 2912, 2676, 639, 652, 2726, 662,
1056 2738, 2912, 651, 657, 2912, 2737, 2912, 2731, 705, 2672,
1057 634, 653, 2666, 2685, 2686, 2683, 2666, 2683, 2723, 2679,
1058 2669, 2725, 2676, 2679, 2670, 2673, 2659, 2670, 693, 2713,
1059 2667, 2664, 2665, 689, 2668, 2668, 2712, 2643, 2655, 2650,
1060 2647, 2643, 2642, 2644, 2647, 2698, 2651, 2696, 2638, 729,
1061 730, 2651, 2651, 2634, 2635, 2648, 2646, 2644, 2644, 2643,
1062
1063 2638, 2645, 2640, 2625, 672, 2634, 2637, 638, 2632, 2683,
1064 687, 679, 2638, 2676, 2622, 2615, 2630, 2621, 2628, 2609,
1065 2626, 2618, 2614, 2619, 738, 2670, 693, 2621, 2621, 2619,
1066 699, 2610, 2608, 2620, 687, 2595, 2596, 2609, 2599, 2591,
1067 2595, 2609, 707, 2595, 2607, 2606, 2605, 2596, 2599, 2645,
1068 2601, 2600, 2599, 2598, 2581, 2589, 2643, 2598, 2641, 2577,
1069 2639, 2638, 2576, 742, 2589, 2587, 2585, 2585, 2912, 2912,
1070 2585, 706, 2626, 2630, 2629, 2912, 2628, 674, 2912, 731,
1071 793, 2575, 2582, 2620, 723, 2624, 2566, 2622, 2616, 2565,
1072 2567, 709, 2557, 2554, 2912, 2559, 2552, 2564, 2567, 2554,
1073
1074 2553, 2912, 2563, 715, 2554, 2551, 2563, 720, 2548, 2542,
1075 2549, 2912, 2598, 2554, 2539, 2541, 2555, 2551, 2549, 2549,
1076 2543, 764, 2533, 2588, 2912, 2531, 2547, 2585, 2912, 2538,
1077 2588, 2587, 2539, 2533, 2535, 2536, 2520, 2529, 2575, 2522,
1078 2521, 2516, 2515, 2517, 2513, 2509, 723, 2528, 2502, 2509,
1079 2508, 2524, 2562, 2912, 2508, 2504, 782, 2512, 2511, 2505,
1080 2498, 2497, 2511, 2511, 2499, 2495, 2500, 2496, 2491, 2912,
1081 2500, 2551, 2912, 2489, 2482, 2543, 2542, 2483, 2482, 2487,
1082 2543, 2495, 2489, 2483, 2492, 784, 2533, 2476, 2471, 2530,
1083 2466, 2472, 510, 2486, 2479, 2483, 2466, 2528, 2469, 2464,
1084
1085 2464, 2519, 2460, 2461, 2460, 2458, 2475, 2912, 2471, 2912,
1086 2512, 2912, 2912, 2459, 2912, 717, 2510, 2514, 2445, 2507,
1087 2463, 2510, 761, 2912, 2912, 2912, 773, 764, 763, 2444,
1088 2445, 2463, 818, 2912, 2443, 2912, 754, 2461, 2441, 2451,
1089 2454, 2496, 767, 2437, 2447, 2493, 2434, 2441, 2434, 2442,
1090 2435, 2444, 2426, 2426, 2441, 2440, 2424, 737, 2438, 2437,
1091 2421, 2436, 2418, 2468, 2422, 2431, 2428, 2472, 2412, 2414,
1092 2411, 2425, 2425, 2423, 2423, 2912, 2408, 2420, 2412, 2418,
1093 2409, 2417, 2415, 2912, 2912, 2401, 2412, 2416, 2398, 2410,
1094 2402, 673, 2393, 2392, 2386, 2391, 2388, 2403, 2402, 2403,
1095
1096 2382, 2392, 2398, 2445, 2396, 2388, 2379, 2380, 2382, 2912,
1097 2377, 2383, 771, 2432, 821, 2431, 2372, 2429, 2372, 2375,
1098 2373, 2375, 2366, 2381, 2912, 774, 825, 2364, 2380, 2377,
1099 2372, 2368, 2912, 2417, 2365, 2372, 2414, 2912, 2356, 2354,
1100 2368, 2371, 2356, 2408, 2407, 2350, 2405, 2361, 2345, 2398,
1101 12, 2912, 73, 80, 197, 276, 831, 321, 411, 468,
1102 486, 565, 585, 590, 627, 653, 742, 2912, 802, 745,
1103 2912, 2912, 794, 808, 809, 809, 823, 786, 788, 800,
1104 786, 797, 806, 800, 789, 785, 799, 795, 801, 811,
1105 858, 859, 817, 819, 862, 864, 814, 813, 818, 819,
1106
1107 829, 834, 820, 823, 826, 835, 835, 819, 880, 838,
1108 830, 840, 884, 829, 891, 837, 837, 839, 843, 848,
1109 851, 894, 853, 902, 855, 858, 853, 844, 859, 864,
1110 865, 862, 859, 866, 865, 853, 867, 865, 873, 913,
1111 871, 920, 921, 861, 874, 860, 870, 921, 875, 929,
1112 2912, 881, 879, 881, 877, 871, 887, 936, 932, 933,
1113 892, 2912, 882, 883, 882, 895, 885, 898, 946, 901,
1114 886, 949, 950, 2912, 903, 2912, 897, 891, 886, 897,
1115 910, 901, 890, 896, 955, 915, 899, 899, 912, 965,
1116 903, 910, 922, 917, 923, 920, 968, 906, 918, 933,
1117
1118 930, 928, 918, 915, 2912, 984, 937, 938, 926, 940,
1119 930, 934, 946, 937, 940, 945, 952, 947, 975, 968,
1120 998, 999, 972, 1001, 946, 961, 961, 964, 944, 951,
1121 965, 1014, 967, 952, 965, 963, 2912, 2912, 967, 962,
1122 977, 974, 960, 962, 981, 978, 979, 981, 969, 977,
1123 978, 988, 1036, 993, 1033, 991, 981, 995, 981, 980,
1124 986, 978, 2912, 989, 984, 985, 991, 1007, 990, 1048,
1125 1049, 1000, 1051, 2912, 1011, 1003, 1014, 1012, 1061, 999,
1126 1016, 1002, 1017, 1019, 1006, 1004, 1070, 1023, 1009, 1015,
1127 1013, 2912, 2912, 1029, 1028, 1029, 1034, 1022, 1032, 1034,
1128
1129 2912, 1034, 1036, 1023, 1041, 1028, 1030, 2912, 1027, 1045,
1130 1046, 1032, 1033, 1029, 1034, 1052, 1097, 2912, 1054, 1099,
1131 2912, 2912, 1053, 1053, 1103, 1045, 1049, 1043, 1059, 1108,
1132 1057, 1047, 1048, 1044, 1054, 1058, 2912, 1069, 1064, 1112,
1133 1067, 1060, 1062, 1058, 1075, 1065, 1080, 1063, 1126, 1079,
1134 1081, 1085, 1072, 1063, 1132, 1087, 1074, 1073, 2912, 1080,
1135 1081, 1134, 1135, 1083, 1096, 1138, 1081, 1097, 1097, 1103,
1136 1084, 1093, 1117, 1127, 1115, 1123, 1135, 1098, 1155, 1095,
1137 1101, 1115, 1155, 1113, 1157, 2912, 1163, 1112, 1103, 1122,
1138 1112, 1111, 1106, 1107, 1119, 1114, 1110, 1128, 1120, 1115,
1139
1140 1116, 1128, 1140, 1180, 2912, 1130, 1124, 1142, 1135, 1130,
1141 1187, 1193, 1146, 1137, 1196, 1152, 1143, 1151, 1153, 1138,
1142 1154, 1159, 1145, 1157, 1154, 1152, 1164, 1148, 1149, 2912,
1143 1165, 1168, 1165, 1152, 1154, 1216, 1155, 1174, 2912, 1173,
1144 1176, 1163, 1158, 1176, 1164, 1221, 1175, 1171, 1168, 1225,
1145 1170, 1227, 1185, 1171, 1189, 1189, 1189, 1191, 1176, 1191,
1146 1178, 1179, 1195, 1182, 1199, 2912, 1197, 1184, 2912, 1243,
1147 1192, 2912, 1202, 1195, 1252, 1195, 2912, 1198, 1203, 1251,
1148 1198, 1199, 1211, 1205, 1203, 1200, 1215, 1264, 1204, 1205,
1149 1267, 1268, 1208, 1220, 1213, 2912, 1209, 1226, 1218, 1214,
1150
1151 1217, 2912, 1272, 1211, 1232, 1218, 1219, 1220, 1221, 1227,
1152 1235, 1226, 1240, 1289, 1242, 1291, 1237, 1245, 1260, 1290,
1153 1272, 1264, 1269, 1251, 2912, 1252, 1254, 1239, 1259, 1242,
1154 1242, 2912, 1245, 1244, 1246, 1257, 1247, 1267, 1266, 1257,
1155 1268, 1315, 1253, 1265, 1274, 1267, 1271, 1275, 1258, 1283,
1156 1280, 1281, 1272, 1331, 1274, 1278, 2912, 1329, 1275, 2912,
1157 1293, 1275, 1275, 1296, 1293, 1337, 1296, 1283, 1301, 1289,
1158 1303, 1296, 1305, 1285, 1300, 1307, 1292, 1354, 1355, 2912,
1159 1304, 1357, 1310, 1296, 1306, 1316, 1300, 1320, 1303, 1305,
1160 1305, 1312, 1321, 1309, 1316, 1311, 1318, 1330, 1375, 1318,
1161
1162 1377, 1318, 1332, 1336, 1381, 1330, 1331, 1320, 1385, 1332,
1163 1335, 1330, 1334, 1390, 1391, 1340, 2912, 1329, 1346, 1339,
1164 1330, 1349, 1343, 1338, 1348, 1344, 1339, 1357, 2912, 1341,
1165 1337, 2912, 2912, 1343, 1407, 1362, 1343, 1349, 1363, 1349,
1166 1365, 1367, 1410, 1359, 1417, 1418, 1367, 1372, 1366, 1364,
1167 1375, 1357, 2912, 1362, 2912, 1371, 1369, 1395, 1408, 1396,
1168 1410, 1397, 1389, 1372, 1435, 1384, 1387, 1387, 1391, 1392,
1169 1441, 1380, 1380, 1383, 1400, 1395, 1399, 1394, 2912, 1391,
1170 1404, 1388, 1405, 1385, 1406, 1397, 1394, 1405, 1402, 1459,
1171 1408, 2912, 1421, 1419, 1422, 1406, 1415, 1419, 1424, 1410,
1172
1173 1474, 1423, 1429, 1429, 1416, 1430, 1428, 1425, 1421, 1439,
1174 1440, 1441, 1424, 2912, 2912, 1440, 2912, 1442, 1427, 1438,
1175 1429, 1448, 1441, 1439, 1495, 1448, 1445, 1493, 1453, 1442,
1176 1449, 1454, 1451, 1457, 2912, 1450, 2912, 1442, 1455, 1508,
1177 2912, 1451, 1452, 1463, 2912, 1464, 1458, 1453, 1463, 2912,
1178 2912, 1453, 1454, 1457, 1471, 1476, 1459, 1470, 1523, 1476,
1179 1463, 1482, 1473, 1528, 1524, 1530, 2912, 1477, 1474, 1485,
1180 1534, 1535, 1536, 1489, 1490, 1492, 2912, 2912, 1484, 1479,
1181 1537, 1482, 1498, 1482, 1494, 1547, 1484, 1544, 1526, 1527,
1182 1519, 1553, 1492, 1493, 2912, 1498, 1509, 1500, 1511, 1513,
1183
1184 2912, 1561, 1494, 1505, 1520, 1560, 1508, 1519, 1507, 1506,
1185 1522, 1523, 1520, 1568, 1527, 1575, 1576, 1533, 1522, 1533,
1186 1539, 1527, 1527, 1586, 1582, 1583, 1589, 1542, 2912, 1544,
1187 1540, 1544, 1546, 1537, 1540, 1549, 1546, 1536, 1539, 1539,
1188 1602, 1603, 1546, 1605, 1548, 1607, 1546, 1552, 1611, 2912,
1189 1565, 1544, 1559, 1552, 1555, 1568, 1571, 1570, 1568, 1621,
1190 1571, 1561, 2912, 1568, 1569, 1622, 1565, 1581, 1630, 1582,
1191 1632, 1633, 1634, 1574, 1584, 1637, 1590, 2912, 1582, 1640,
1192 1580, 1580, 2912, 1598, 2912, 1595, 1586, 1586, 2912, 2912,
1193 2912, 1600, 1583, 1603, 1604, 1590, 1592, 1655, 1601, 1657,
1194
1195 1602, 2912, 1596, 1623, 1641, 1658, 1642, 2912, 1614, 1660,
1196 1609, 1667, 1613, 1664, 1670, 2912, 1609, 1672, 1618, 1612,
1197 1609, 1612, 1614, 1610, 1674, 1633, 1676, 1625, 1637, 1640,
1198 2912, 2912, 1637, 1629, 1636, 1629, 1693, 1637, 2912, 1634,
1199 1633, 2912, 1635, 1698, 1636, 1648, 1639, 1697, 1655, 1657,
1200 1657, 1654, 1702, 1660, 2912, 2912, 1652, 2912, 1653, 2912,
1201 1663, 1655, 2912, 1708, 1666, 1667, 1665, 1713, 1657, 1672,
1202 1716, 1674, 1666, 2912, 1663, 1673, 1664, 1665, 1666, 1724,
1203 1730, 2912, 1683, 2912, 2912, 2912, 1727, 1670, 2912, 1687,
1204 1672, 2912, 1686, 1674, 1739, 1682, 1675, 1680, 1691, 1684,
1205
1206 1703, 1696, 1702, 1692, 1751, 1700, 2912, 1709, 2912, 1706,
1207 1755, 1731, 1732, 1738, 1723, 1731, 1756, 1701, 1763, 2912,
1208 1717, 1702, 2912, 1766, 2912, 1767, 1720, 1725, 1707, 1771,
1209 1772, 1712, 1769, 1729, 1726, 1722, 1715, 1722, 1775, 1729,
1210 1730, 2912, 1726, 1742, 1740, 1792, 2912, 1741, 1727, 1790,
1211 1750, 1750, 1793, 1737, 1742, 1740, 1803, 1755, 1743, 1806,
1212 1802, 1753, 1809, 1766, 1755, 1749, 1813, 1751, 1760, 1753,
1213 1767, 1770, 1761, 1820, 1821, 1770, 1768, 2912, 1761, 1759,
1214 1821, 1822, 1823, 1774, 1773, 1773, 1768, 1770, 2912, 1778,
1215 1784, 1775, 1776, 1839, 1776, 1778, 1837, 1779, 2912, 1775,
1216
1217 1793, 1846, 2912, 1813, 1827, 1826, 1815, 1817, 1789, 1805,
1218 2912, 1854, 1803, 2912, 2912, 1794, 1805, 1858, 2912, 1859,
1219 2912, 1812, 1802, 1807, 1805, 1859, 1814, 1819, 1805, 1808,
1220 1824, 1813, 1811, 1811, 1814, 2912, 1821, 1881, 1823, 1832,
1221 1879, 1822, 1887, 1831, 1841, 1842, 2912, 1891, 1840, 1888,
1222 2912, 1835, 1843, 2912, 1834, 1849, 1837, 2912, 1847, 1848,
1223 1849, 1902, 1856, 1847, 2912, 2912, 1836, 1854, 1855, 1864,
1224 1846, 1852, 1865, 1854, 1908, 1856, 1852, 1857, 1854, 1855,
1225 1914, 1920, 2912, 1866, 1922, 1871, 1861, 1877, 1870, 2912,
1226 1903, 1928, 1910, 1926, 1932, 1881, 1884, 2912, 1879, 1936,
1227
1228 1874, 2912, 2912, 1876, 1878, 1888, 1936, 1880, 1895, 1882,
1229 1945, 1898, 1884, 1891, 1891, 1902, 1903, 1895, 2912, 1898,
1230 1893, 1896, 1910, 1896, 1908, 2912, 1956, 1903, 1900, 2912,
1231 1914, 1901, 1922, 1918, 1920, 1969, 1918, 1915, 1923, 1917,
1232 2912, 1974, 1931, 1928, 1921, 1922, 1927, 1928, 1922, 1927,
1233 1938, 1922, 1931, 1981, 1987, 1936, 1989, 1934, 2912, 1928,
1234 2912, 1935, 1993, 1994, 1991, 1992, 2912, 1973, 1979, 2912,
1235 1943, 1949, 1954, 2912, 1998, 1946, 1957, 1958, 1943, 1944,
1236 1952, 2010, 2912, 1954, 2007, 2008, 1959, 1954, 1972, 1973,
1237 1970, 2019, 1962, 1975, 1970, 1967, 1972, 1972, 2028, 2029,
1238
1239 1973, 1970, 1984, 1971, 2912, 1986, 1987, 1988, 1989, 2912,
1240 1983, 2039, 1988, 1993, 1979, 1987, 1981, 2001, 2002, 1983,
1241 1984, 1991, 2912, 1993, 2912, 2007, 2004, 2048, 2005, 2912,
1242 2912, 2009, 2035, 2036, 2034, 2011, 1998, 1999, 1999, 2008,
1243 2015, 2008, 2007, 2018, 2005, 2912, 2021, 2009, 2012, 2072,
1244 2008, 2027, 2020, 2019, 2912, 2031, 2024, 2023, 2032, 2034,
1245 2040, 2912, 2912, 2034, 2025, 2025, 2089, 2028, 2091, 2029,
1246 2093, 2089, 2912, 2032, 2096, 2092, 2050, 2047, 2038, 2046,
1247 2057, 2044, 2055, 2041, 2039, 2047, 2046, 2051, 2043, 2088,
1248 2113, 2094, 2110, 2053, 2117, 2066, 2055, 2068, 2058, 2075,
1249
1250 2074, 2119, 2059, 2078, 2079, 2912, 2084, 2077, 2125, 2131,
1251 2084, 2071, 2086, 2135, 2088, 2091, 2078, 2089, 2090, 2912,
1252 2143, 2912, 2092, 2912, 2090, 2146, 2912, 2084, 2148, 2091,
1253 2088, 2151, 2095, 2148, 2149, 2107, 2151, 2093, 2097, 2115,
1254 2160, 2115, 2142, 2912, 2138, 2101, 2104, 2912, 2110, 2104,
1255 2101, 2164, 2126, 2119, 2115, 2173, 2112, 2114, 2113, 2120,
1256 2132, 2912, 2117, 2180, 2120, 2912, 2125, 2135, 2120, 2128,
1257 2130, 2912, 2131, 2137, 2912, 2139, 2912, 2135, 2145, 2912,
1258 2146, 2146, 2137, 2197, 2137, 2147, 2132, 2145, 2912, 2147,
1259 2178, 2184, 2153, 2162, 2159, 2156, 2209, 2146, 2148, 2145,
1260
1261 2169, 2912, 2156, 2163, 2164, 2167, 2163, 2157, 2912, 2215,
1262 2158, 2166, 2175, 2174, 2177, 2178, 2165, 2172, 2167, 2170,
1263 2170, 2182, 2177, 2912, 2188, 2176, 2233, 2180, 2192, 2220,
1264 2242, 2182, 2181, 2245, 2188, 2912, 2188, 2200, 2249, 2194,
1265 2196, 2194, 2195, 2254, 2211, 2204, 2191, 2206, 2211, 2260,
1266 2261, 2262, 2263, 2201, 2217, 2266, 2268, 2269, 2209, 2213,
1267 2209, 2225, 2208, 2220, 2214, 2277, 2912, 2230, 2227, 2912,
1268 2223, 2234, 2282, 2912, 2235, 2220, 2238, 2229, 2912, 2225,
1269 2231, 2245, 2241, 2234, 2912, 2912, 2912, 2912, 2292, 2293,
1270 2912, 2912, 2912, 2232, 2240, 2235, 2292, 2254, 2251, 2300,
1271
1272 2912, 2239, 2244, 2298, 2260, 2912, 2305, 2243, 2307, 2246,
1273 2247, 2260, 2259, 2260, 2250, 2912, 2912, 2251, 2315, 2264,
1274 2273, 2266, 2314, 2912, 2269, 2264, 2266, 2260, 2912, 2272,
1275 2912, 2320, 2278, 2327, 2265, 2281, 2330, 2331, 2912, 2284,
1276 2278, 2271, 2291, 2278, 2338, 2281, 2292, 2283, 2287, 2281,
1277 2912, 2339, 2284, 2912, 2912, 2284, 2292, 2343, 2299, 2292,
1278 2296, 2912, 2305, 2353, 2297, 2297, 2356, 2294, 2296, 2359,
1279 2360, 2298, 2314, 2299, 2317, 2317, 2912, 2366, 2309, 2912,
1280 2316, 2369, 2912, 2912, 2318, 2371, 2315, 2373, 2374, 2912,
1281 2321, 2320, 2912, 2321, 2912, 2315, 2912, 2912, 2315, 2332,
1282
1283 2333, 2382, 2324, 2384, 2385, 2912, 2386, 2912, 2912, 2912,
1284 2912, 2392, 2395, 2398, 2399, 2401, 2404, 2407, 2410
1285 } ;
1286
1287static const flex_int16_t yy_def[2420] =
1288 { 0,
1289 2412, 2412, 2413, 2413, 2412, 2412, 2412, 2412, 2412, 2412,
1290 2411, 2411, 2411, 2411, 2411, 2414, 2411, 2411, 2411, 2411,
1291 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
1292 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
1293 2415, 2411, 2411, 2411, 2416, 15, 2411, 46, 46, 46,
1294 46, 46, 46, 46, 46, 46, 46, 46, 2417, 46,
1295 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1296 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1297 2414, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2418, 2411,
1298 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
1299
1300 2411, 2411, 2415, 2411, 2416, 2411, 2411, 46, 46, 46,
1301 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1302 2419, 46, 2417, 46, 46, 46, 46, 46, 46, 46,
1303 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1304 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1305 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1306 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1307 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1308 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1309 46, 46, 46, 46, 2418, 2411, 2411, 2411, 2411, 2411,
1310
1311 2411, 2411, 2411, 46, 46, 46, 2411, 46, 46, 2411,
1312 46, 46, 46, 46, 46, 46, 46, 2419, 2411, 2411,
1313 123, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1314 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1315 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1316 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1317 46, 46, 2411, 46, 46, 46, 46, 46, 46, 46,
1318 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1319 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1320 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1321
1322 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1323 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1324 46, 46, 46, 46, 46, 46, 46, 46, 46, 2411,
1325 2411, 2411, 2411, 2411, 2411, 2411, 46, 46, 46, 46,
1326 46, 2411, 46, 46, 2411, 46, 2411, 46, 123, 46,
1327 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1328 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1329 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1330 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1331 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1332
1333 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1334 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1335 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1336 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1337 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1338 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1339 46, 46, 46, 46, 46, 46, 46, 46, 2411, 2411,
1340 2411, 46, 46, 46, 46, 2411, 46, 46, 2411, 46,
1341 123, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1342 46, 46, 46, 46, 2411, 46, 46, 46, 46, 46,
1343
1344 46, 2411, 46, 46, 46, 46, 46, 46, 46, 46,
1345 46, 2411, 46, 46, 46, 46, 46, 46, 46, 46,
1346 46, 46, 46, 46, 2411, 46, 46, 46, 2411, 46,
1347 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1348 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1349 46, 46, 46, 2411, 46, 46, 46, 46, 46, 46,
1350 46, 46, 46, 46, 46, 46, 46, 46, 46, 2411,
1351 46, 46, 2411, 46, 46, 46, 46, 46, 46, 46,
1352 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1353 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1354
1355 46, 46, 46, 46, 46, 46, 46, 2411, 46, 2411,
1356 46, 2411, 2411, 46, 2411, 46, 46, 46, 46, 46,
1357 2411, 46, 46, 2411, 2411, 2411, 46, 46, 46, 46,
1358 46, 46, 46, 2411, 46, 2411, 46, 46, 46, 46,
1359 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1360 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1361 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1362 46, 46, 46, 46, 46, 2411, 46, 46, 46, 46,
1363 46, 46, 46, 2411, 2411, 46, 46, 46, 46, 46,
1364 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1365
1366 46, 46, 46, 46, 46, 46, 46, 46, 46, 2411,
1367 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1368 46, 46, 46, 46, 2411, 46, 46, 46, 46, 46,
1369 46, 46, 2411, 46, 46, 46, 46, 2411, 46, 46,
1370 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1371 46, 2411, 46, 46, 46, 46, 46, 46, 46, 46,
1372 46, 46, 46, 46, 46, 46, 46, 2411, 46, 46,
1373 2411, 2411, 46, 46, 46, 46, 46, 46, 46, 46,
1374 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1375 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1376
1377 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1378 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1379 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1380 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1381 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1382 2411, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1383 46, 2411, 46, 46, 46, 46, 46, 46, 46, 46,
1384 46, 46, 46, 2411, 46, 2411, 46, 46, 46, 46,
1385 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1386 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1387
1388 46, 46, 46, 46, 2411, 46, 46, 46, 46, 46,
1389 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1390 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1391 46, 46, 46, 46, 46, 46, 2411, 2411, 46, 46,
1392 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1393 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1394 46, 46, 2411, 46, 46, 46, 46, 46, 46, 46,
1395 46, 46, 46, 2411, 46, 46, 46, 46, 46, 46,
1396 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1397 46, 2411, 2411, 46, 46, 46, 46, 46, 46, 46,
1398
1399 2411, 46, 46, 46, 46, 46, 46, 2411, 46, 46,
1400 46, 46, 46, 46, 46, 46, 46, 2411, 46, 46,
1401 2411, 2411, 46, 46, 46, 46, 46, 46, 46, 46,
1402 46, 46, 46, 46, 46, 46, 2411, 46, 46, 46,
1403 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1404 46, 46, 46, 46, 46, 46, 46, 46, 2411, 46,
1405 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1406 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1407 46, 46, 46, 46, 46, 2411, 46, 46, 46, 46,
1408 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1409
1410 46, 46, 46, 46, 2411, 46, 46, 46, 46, 46,
1411 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1412 46, 46, 46, 46, 46, 46, 46, 46, 46, 2411,
1413 46, 46, 46, 46, 46, 46, 46, 46, 2411, 46,
1414 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1415 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1416 46, 46, 46, 46, 46, 2411, 46, 46, 2411, 46,
1417 46, 2411, 46, 46, 46, 46, 2411, 46, 46, 46,
1418 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1419 46, 46, 46, 46, 46, 2411, 46, 46, 46, 46,
1420
1421 46, 2411, 46, 46, 46, 46, 46, 46, 46, 46,
1422 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1423 46, 46, 46, 46, 2411, 46, 46, 46, 46, 46,
1424 46, 2411, 46, 46, 46, 46, 46, 46, 46, 46,
1425 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1426 46, 46, 46, 46, 46, 46, 2411, 46, 46, 2411,
1427 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1428 46, 46, 46, 46, 46, 46, 46, 46, 46, 2411,
1429 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1430 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1431
1432 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1433 46, 46, 46, 46, 46, 46, 2411, 46, 46, 46,
1434 46, 46, 46, 46, 46, 46, 46, 46, 2411, 46,
1435 46, 2411, 2411, 46, 46, 46, 46, 46, 46, 46,
1436 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1437 46, 46, 2411, 46, 2411, 46, 46, 46, 46, 46,
1438 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1439 46, 46, 46, 46, 46, 46, 46, 46, 2411, 46,
1440 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1441 46, 2411, 46, 46, 46, 46, 46, 46, 46, 46,
1442
1443 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1444 46, 46, 46, 2411, 2411, 46, 2411, 46, 46, 46,
1445 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1446 46, 46, 46, 46, 2411, 46, 2411, 46, 46, 46,
1447 2411, 46, 46, 46, 2411, 46, 46, 46, 46, 2411,
1448 2411, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1449 46, 46, 46, 46, 46, 46, 2411, 46, 46, 46,
1450 46, 46, 46, 46, 46, 46, 2411, 2411, 46, 46,
1451 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1452 46, 46, 46, 46, 2411, 46, 46, 46, 46, 46,
1453
1454 2411, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1455 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1456 46, 46, 46, 46, 46, 46, 46, 46, 2411, 46,
1457 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1458 46, 46, 46, 46, 46, 46, 46, 46, 46, 2411,
1459 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1460 46, 46, 2411, 46, 46, 46, 46, 46, 46, 46,
1461 46, 46, 46, 46, 46, 46, 46, 2411, 46, 46,
1462 46, 46, 2411, 46, 2411, 46, 46, 46, 2411, 2411,
1463 2411, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1464
1465 46, 2411, 46, 46, 46, 46, 46, 2411, 46, 46,
1466 46, 46, 46, 46, 46, 2411, 46, 46, 46, 46,
1467 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1468 2411, 2411, 46, 46, 46, 46, 46, 46, 2411, 46,
1469 46, 2411, 46, 46, 46, 46, 46, 46, 46, 46,
1470 46, 46, 46, 46, 2411, 2411, 46, 2411, 46, 2411,
1471 46, 46, 2411, 46, 46, 46, 46, 46, 46, 46,
1472 46, 46, 46, 2411, 46, 46, 46, 46, 46, 46,
1473 46, 2411, 46, 2411, 2411, 2411, 46, 46, 2411, 46,
1474 46, 2411, 46, 46, 46, 46, 46, 46, 46, 46,
1475
1476 46, 46, 46, 46, 46, 46, 2411, 46, 2411, 46,
1477 46, 46, 46, 46, 46, 46, 46, 46, 46, 2411,
1478 46, 46, 2411, 46, 2411, 46, 46, 46, 46, 46,
1479 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1480 46, 2411, 46, 46, 46, 46, 2411, 46, 46, 46,
1481 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1482 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1483 46, 46, 46, 46, 46, 46, 46, 2411, 46, 46,
1484 46, 46, 46, 46, 46, 46, 46, 46, 2411, 46,
1485 46, 46, 46, 46, 46, 46, 46, 46, 2411, 46,
1486
1487 46, 46, 2411, 46, 46, 46, 46, 46, 46, 46,
1488 2411, 46, 46, 2411, 2411, 46, 46, 46, 2411, 46,
1489 2411, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1490 46, 46, 46, 46, 46, 2411, 46, 46, 46, 46,
1491 46, 46, 46, 46, 46, 46, 2411, 46, 46, 46,
1492 2411, 46, 46, 2411, 46, 46, 46, 2411, 46, 46,
1493 46, 46, 46, 46, 2411, 2411, 46, 46, 46, 46,
1494 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1495 46, 46, 2411, 46, 46, 46, 46, 46, 46, 2411,
1496 46, 46, 46, 46, 46, 46, 46, 2411, 46, 46,
1497
1498 46, 2411, 2411, 46, 46, 46, 46, 46, 46, 46,
1499 46, 46, 46, 46, 46, 46, 46, 46, 2411, 46,
1500 46, 46, 46, 46, 46, 2411, 46, 46, 46, 2411,
1501 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1502 2411, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1503 46, 46, 46, 46, 46, 46, 46, 46, 2411, 46,
1504 2411, 46, 46, 46, 46, 46, 2411, 46, 46, 2411,
1505 46, 46, 46, 2411, 46, 46, 46, 46, 46, 46,
1506 46, 46, 2411, 46, 46, 46, 46, 46, 46, 46,
1507 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1508
1509 46, 46, 46, 46, 2411, 46, 46, 46, 46, 2411,
1510 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1511 46, 46, 2411, 46, 2411, 46, 46, 46, 46, 2411,
1512 2411, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1513 46, 46, 46, 46, 46, 2411, 46, 46, 46, 46,
1514 46, 46, 46, 46, 2411, 46, 46, 46, 46, 46,
1515 46, 2411, 2411, 46, 46, 46, 46, 46, 46, 46,
1516 46, 46, 2411, 46, 46, 46, 46, 46, 46, 46,
1517 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1518 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1519
1520 46, 46, 46, 46, 46, 2411, 46, 46, 46, 46,
1521 46, 46, 46, 46, 46, 46, 46, 46, 46, 2411,
1522 46, 2411, 46, 2411, 46, 46, 2411, 46, 46, 46,
1523 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1524 46, 46, 46, 2411, 46, 46, 46, 2411, 46, 46,
1525 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1526 46, 2411, 46, 46, 46, 2411, 46, 46, 46, 46,
1527 46, 2411, 46, 46, 2411, 46, 2411, 46, 46, 2411,
1528 46, 46, 46, 46, 46, 46, 46, 46, 2411, 46,
1529 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1530
1531 46, 2411, 46, 46, 46, 46, 46, 46, 2411, 46,
1532 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1533 46, 46, 46, 2411, 46, 46, 46, 46, 46, 46,
1534 46, 46, 46, 46, 46, 2411, 46, 46, 46, 46,
1535 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1536 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1537 46, 46, 46, 46, 46, 46, 2411, 46, 46, 2411,
1538 46, 46, 46, 2411, 46, 46, 46, 46, 2411, 46,
1539 46, 46, 46, 46, 2411, 2411, 2411, 2411, 46, 46,
1540 2411, 2411, 2411, 46, 46, 46, 46, 46, 46, 46,
1541
1542 2411, 46, 46, 46, 46, 2411, 46, 46, 46, 46,
1543 46, 46, 46, 46, 46, 2411, 2411, 46, 46, 46,
1544 46, 46, 46, 2411, 46, 46, 46, 46, 2411, 46,
1545 2411, 46, 46, 46, 46, 46, 46, 46, 2411, 46,
1546 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1547 2411, 46, 46, 2411, 2411, 46, 46, 46, 46, 46,
1548 46, 2411, 46, 46, 46, 46, 46, 46, 46, 46,
1549 46, 46, 46, 46, 46, 46, 2411, 46, 46, 2411,
1550 46, 46, 2411, 2411, 46, 46, 46, 46, 46, 2411,
1551 46, 46, 2411, 46, 2411, 46, 2411, 2411, 46, 46,
1552
1553 46, 46, 46, 46, 46, 2411, 46, 2411, 2411, 2411,
1554 0, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411
1555 } ;
1556
1557static const flex_int16_t yy_nxt[2990] =
1558 { 0,
1559 2411, 13, 14, 13, 2411, 15, 16, 106, 17, 18,
1560 19, 20, 21, 22, 23, 23, 23, 23, 23, 24,
1561 25, 88, 900, 38, 14, 38, 89, 26, 27, 39,
1562 38, 14, 38, 43, 28, 43, 39, 2411, 2411, 29,
1563 95, 13, 14, 13, 43, 30, 43, 31, 107, 13,
1564 14, 13, 209, 26, 32, 13, 14, 13, 43, 41,
1565 43, 106, 33, 13, 14, 13, 95, 41, 34, 87,
1566 87, 87, 87, 87, 87, 35, 36, 13, 14, 13,
1567 209, 15, 16, 84, 17, 18, 19, 20, 21, 22,
1568 23, 23, 23, 23, 23, 24, 25, 40, 13, 14,
1569
1570 13, 396, 107, 26, 27, 40, 13, 14, 13, 84,
1571 28, 96, 97, 95, 96, 29, 97, 113, 397, 42,
1572 108, 30, 109, 31, 112, 901, 93, 42, 93, 26,
1573 32, 94, 94, 94, 94, 94, 94, 260, 33, 98,
1574 96, 97, 261, 99, 34, 100, 113, 108, 902, 109,
1575 112, 35, 36, 45, 45, 45, 46, 46, 47, 46,
1576 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1577 46, 46, 46, 46, 46, 46, 48, 46, 49, 50,
1578 51, 52, 46, 46, 53, 46, 54, 55, 46, 46,
1579 46, 46, 56, 57, 46, 58, 46, 46, 46, 59,
1580
1581 46, 46, 60, 61, 62, 63, 64, 65, 46, 66,
1582 67, 53, 68, 69, 70, 71, 72, 73, 74, 75,
1583 76, 77, 78, 79, 80, 46, 46, 46, 46, 46,
1584 82, 157, 83, 83, 83, 83, 83, 83, 82, 158,
1585 85, 86, 86, 86, 86, 86, 84, 119, 112, 120,
1586 903, 159, 198, 82, 84, 90, 90, 90, 90, 90,
1587 90, 82, 115, 91, 91, 91, 91, 91, 91, 84,
1588 116, 141, 84, 119, 112, 117, 120, 84, 172, 192,
1589 84, 198, 173, 193, 142, 145, 108, 118, 115, 198,
1590 149, 146, 143, 210, 144, 84, 147, 204, 116, 148,
1591
1592 150, 117, 151, 84, 46, 124, 46, 46, 46, 46,
1593 205, 312, 46, 125, 46, 46, 118, 122, 201, 126,
1594 46, 46, 127, 46, 46, 313, 204, 211, 119, 904,
1595 46, 46, 46, 46, 46, 46, 205, 46, 46, 46,
1596 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1597 46, 46, 46, 135, 119, 109, 136, 137, 46, 217,
1598 138, 139, 46, 163, 190, 164, 46, 153, 154, 191,
1599 165, 155, 907, 140, 46, 129, 115, 156, 46, 130,
1600 46, 123, 109, 131, 116, 217, 132, 166, 120, 133,
1601 167, 168, 268, 134, 196, 197, 196, 197, 160, 174,
1602
1603 161, 169, 162, 175, 170, 269, 176, 244, 245, 182,
1604 183, 214, 116, 177, 178, 120, 208, 179, 180, 181,
1605 117, 196, 197, 199, 200, 194, 87, 87, 87, 87,
1606 87, 87, 118, 94, 94, 94, 94, 94, 94, 214,
1607 84, 228, 290, 208, 280, 291, 184, 255, 185, 216,
1608 229, 186, 187, 82, 230, 83, 83, 83, 83, 83,
1609 83, 188, 908, 256, 212, 93, 84, 93, 189, 84,
1610 94, 94, 94, 94, 94, 94, 82, 216, 90, 90,
1611 90, 90, 90, 90, 82, 465, 91, 91, 91, 91,
1612 91, 91, 84, 212, 281, 84, 215, 466, 240, 241,
1613
1614 84, 87, 87, 87, 87, 87, 87, 82, 242, 90,
1615 90, 90, 90, 90, 90, 84, 318, 105, 84, 263,
1616 746, 909, 319, 84, 105, 215, 84, 82, 204, 91,
1617 91, 91, 91, 91, 91, 94, 94, 94, 94, 94,
1618 94, 84, 234, 84, 212, 248, 223, 249, 252, 84,
1619 273, 235, 236, 257, 910, 305, 258, 224, 105, 306,
1620 259, 253, 105, 307, 250, 254, 105, 264, 284, 84,
1621 214, 274, 324, 279, 105, 911, 747, 215, 105, 330,
1622 105, 105, 220, 285, 286, 287, 325, 331, 330, 332,
1623 221, 221, 221, 221, 221, 221, 295, 331, 317, 332,
1624
1625 221, 221, 221, 221, 221, 221, 322, 337, 330, 450,
1626 340, 451, 338, 341, 331, 332, 343, 333, 344, 346,
1627 363, 348, 405, 364, 334, 335, 221, 221, 221, 221,
1628 221, 221, 431, 337, 912, 296, 297, 298, 338, 340,
1629 432, 341, 343, 913, 344, 346, 299, 337, 300, 348,
1630 343, 301, 418, 302, 303, 349, 349, 349, 349, 349,
1631 349, 434, 419, 365, 435, 349, 349, 349, 349, 349,
1632 349, 366, 422, 352, 346, 345, 412, 367, 469, 406,
1633 455, 469, 407, 472, 473, 483, 478, 423, 477, 475,
1634 914, 349, 349, 349, 349, 349, 349, 472, 502, 508,
1635
1636 346, 627, 551, 503, 469, 484, 509, 470, 552, 579,
1637 915, 473, 472, 478, 460, 475, 477, 477, 481, 481,
1638 481, 481, 481, 481, 838, 839, 485, 627, 481, 481,
1639 481, 481, 481, 481, 525, 529, 545, 546, 547, 526,
1640 530, 555, 548, 570, 622, 557, 574, 615, 571, 584,
1641 575, 556, 616, 585, 481, 481, 481, 481, 481, 481,
1642 593, 622, 580, 640, 594, 628, 651, 629, 765, 676,
1643 652, 766, 662, 622, 677, 641, 700, 790, 653, 874,
1644 654, 655, 656, 657, 658, 663, 701, 710, 773, 738,
1645 633, 527, 711, 628, 739, 629, 528, 531, 775, 776,
1646
1647 777, 806, 916, 774, 807, 572, 46, 46, 46, 46,
1648 46, 46, 917, 918, 773, 783, 46, 46, 46, 46,
1649 46, 46, 784, 772, 775, 859, 862, 776, 781, 777,
1650 876, 863, 774, 860, 791, 877, 905, 919, 920, 924,
1651 875, 921, 46, 46, 46, 46, 46, 46, 922, 906,
1652 923, 925, 926, 927, 928, 929, 930, 931, 932, 933,
1653 934, 935, 936, 937, 938, 920, 919, 939, 921, 864,
1654 940, 941, 943, 942, 944, 945, 923, 922, 878, 946,
1655 947, 948, 949, 950, 951, 952, 953, 954, 955, 956,
1656 957, 958, 959, 960, 961, 962, 963, 964, 965, 968,
1657
1658 969, 970, 966, 971, 972, 973, 967, 974, 975, 976,
1659 977, 978, 979, 980, 981, 982, 983, 984, 985, 986,
1660 987, 988, 989, 990, 991, 992, 993, 994, 995, 996,
1661 997, 999, 1000, 998, 1001, 1002, 1003, 1004, 1005, 1006,
1662 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016,
1663 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026,
1664 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036,
1665 1037, 1039, 1040, 1041, 1042, 1038, 1044, 1045, 1048, 1049,
1666 1050, 1043, 1051, 1055, 1046, 1056, 1057, 1058, 1047, 1059,
1667 1060, 1061, 1062, 1063, 1064, 1052, 1065, 1053, 1066, 1067,
1668
1669 1068, 1054, 1069, 1070, 1072, 1073, 1071, 1074, 1075, 1076,
1670 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
1671 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096,
1672 1097, 1098, 1073, 1099, 1100, 1101, 1074, 1102, 1103, 1077,
1673 1104, 1105, 1107, 1108, 1109, 1110, 1106, 1111, 1112, 1113,
1674 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123,
1675 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1132, 1133, 1134,
1676 1135, 1131, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143,
1677 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153,
1678 1154, 1155, 1156, 1157, 1158, 1159, 1161, 1162, 1163, 1160,
1679
1680 1164, 1165, 1166, 1168, 1169, 1170, 1171, 1167, 1172, 1173,
1681 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183,
1682 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1193, 1194,
1683 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1192,
1684 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213,
1685 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1224, 1222,
1686 1225, 1226, 1223, 1227, 1228, 1229, 1230, 1231, 1232, 1233,
1687 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243,
1688 1244, 1245, 1246, 1220, 1219, 1247, 1221, 1222, 1223, 1248,
1689 1249, 1250, 1252, 1253, 1251, 1254, 1255, 1256, 1257, 1258,
1690
1691 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268,
1692 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278,
1693 1279, 1280, 1283, 1284, 1285, 1286, 1281, 1287, 1288, 1289,
1694 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299,
1695 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309,
1696 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319,
1697 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329,
1698 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339,
1699 1340, 1341, 1342, 1282, 1343, 1344, 1345, 1346, 1347, 1348,
1700 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358,
1701
1702 1359, 1361, 1360, 1362, 1363, 1364, 1365, 1366, 1367, 1368,
1703 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378,
1704 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1358, 1360,
1705 1361, 1362, 1387, 1389, 1390, 1391, 1392, 1393, 1394, 1395,
1706 1388, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404,
1707 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414,
1708 1415, 1416, 1417, 1419, 1420, 1421, 1422, 1418, 1423, 1424,
1709 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434,
1710 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444,
1711 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454,
1712
1713 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464,
1714 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474,
1715 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484,
1716 1485, 1486, 1487, 1488, 1489, 1490, 1492, 1491, 1493, 1494,
1717 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504,
1718 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514,
1719 1489, 1515, 1488, 1491, 1490, 1492, 1516, 1517, 1518, 1519,
1720 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529,
1721 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539,
1722 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549,
1723
1724 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559,
1725 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569,
1726 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579,
1727 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589,
1728 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599,
1729 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609,
1730 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1618, 1619, 1620,
1731 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630,
1732 1631, 1632, 1605, 1606, 1633, 1634, 1607, 1635, 1636, 1637,
1733 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647,
1734
1735 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657,
1736 1658, 1659, 1660, 1661, 1617, 1662, 1663, 1664, 1665, 1666,
1737 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1667, 1675, 1676,
1738 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686,
1739 1687, 1688, 1689, 1690, 1691, 1692, 1694, 1695, 1698, 1696,
1740 1693, 1697, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706,
1741 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1717, 1714, 1716,
1742 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727,
1743 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737,
1744 1738, 1739, 1713, 1715, 1712, 1716, 1740, 1741, 1742, 1743,
1745
1746 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753,
1747 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763,
1748 1764, 1715, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772,
1749 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782,
1750 1783, 1784, 1788, 1785, 1789, 1790, 1786, 1791, 1792, 1787,
1751 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802,
1752 1803, 1804, 1805, 1807, 1806, 1808, 1809, 1810, 1811, 1812,
1753 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1821, 1822, 1823,
1754 1824, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1804, 1805,
1755 1806, 1825, 1807, 1808, 1833, 1834, 1835, 1836, 1837, 1838,
1756
1757 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1849,
1758 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859,
1759 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869,
1760 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1820, 1878,
1761 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888,
1762 1889, 1890, 1891, 1892, 1894, 1893, 1895, 1896, 1897, 1898,
1763 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908,
1764 1848, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1892,
1765 1917, 1891, 1893, 1894, 1918, 1895, 1919, 1922, 1923, 1924,
1766 1925, 1920, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933,
1767
1768 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943,
1769 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953,
1770 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963,
1771 1964, 1965, 1966, 1967, 1921, 1968, 1969, 1970, 1971, 1972,
1772 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982,
1773 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1966,
1774 1992, 1968, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
1775 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
1776 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020,
1777 2021, 2022, 2023, 2024, 2025, 2026, 2028, 2029, 2030, 2031,
1778
1779 2027, 2032, 2033, 2034, 2036, 2035, 2037, 2038, 2039, 2040,
1780 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050,
1781 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060,
1782 2034, 2035, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068,
1783 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078,
1784 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088,
1785 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098,
1786 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108,
1787 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2090, 2091, 2116,
1788 2092, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125,
1789
1790 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135,
1791 2136, 2137, 2138, 2140, 2141, 2139, 2142, 2143, 2144, 2145,
1792 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155,
1793 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165,
1794 2166, 2167, 2168, 2169, 2143, 2145, 2170, 2171, 2172, 2173,
1795 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183,
1796 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193,
1797 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203,
1798 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213,
1799 2214, 2215, 2216, 2191, 2217, 2192, 2218, 2219, 2220, 2221,
1800
1801 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2232,
1802 2231, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241,
1803 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251,
1804 2252, 2253, 2254, 2255, 2256, 2230, 2231, 2257, 2258, 2259,
1805 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269,
1806 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279,
1807 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289,
1808 2290, 2291, 2266, 2292, 2293, 2294, 2295, 2296, 2297, 2298,
1809 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308,
1810 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318,
1811
1812 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328,
1813 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338,
1814 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348,
1815 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358,
1816 2359, 2361, 2360, 2362, 2363, 2364, 2365, 2366, 2367, 2368,
1817 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378,
1818 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388,
1819 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398,
1820 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408,
1821 2409, 2410, 12, 12, 12, 37, 37, 37, 81, 103,
1822
1823 81, 105, 105, 105, 121, 121, 121, 195, 899, 195,
1824 218, 218, 218, 898, 897, 896, 895, 894, 893, 892,
1825 891, 890, 889, 888, 887, 886, 885, 884, 883, 882,
1826 881, 880, 879, 873, 872, 871, 870, 869, 868, 867,
1827 866, 865, 861, 858, 857, 856, 855, 854, 853, 852,
1828 851, 850, 849, 848, 847, 846, 845, 844, 843, 842,
1829 841, 840, 837, 836, 835, 834, 833, 832, 831, 830,
1830 829, 828, 827, 826, 825, 824, 823, 822, 821, 820,
1831 819, 818, 817, 816, 815, 814, 813, 812, 811, 810,
1832 809, 808, 805, 804, 803, 802, 801, 800, 799, 798,
1833
1834 797, 796, 795, 794, 793, 792, 789, 788, 787, 786,
1835 785, 782, 780, 779, 778, 772, 771, 770, 769, 768,
1836 767, 764, 763, 762, 761, 760, 759, 758, 757, 756,
1837 755, 754, 753, 752, 751, 750, 749, 748, 745, 744,
1838 743, 742, 741, 740, 737, 736, 735, 734, 733, 732,
1839 731, 730, 729, 728, 727, 726, 725, 724, 723, 722,
1840 721, 720, 719, 718, 717, 716, 715, 714, 713, 712,
1841 709, 708, 707, 706, 705, 704, 703, 702, 699, 698,
1842 697, 696, 695, 694, 693, 692, 691, 690, 689, 688,
1843 687, 686, 685, 684, 683, 682, 681, 680, 679, 678,
1844
1845 675, 674, 673, 672, 671, 670, 669, 668, 667, 666,
1846 665, 664, 661, 660, 659, 650, 649, 648, 647, 646,
1847 645, 644, 643, 642, 639, 638, 637, 636, 635, 634,
1848 632, 631, 630, 626, 625, 624, 623, 621, 620, 619,
1849 618, 617, 614, 613, 612, 611, 610, 609, 608, 607,
1850 606, 605, 604, 603, 602, 601, 600, 599, 598, 597,
1851 596, 595, 592, 591, 590, 589, 588, 587, 586, 583,
1852 582, 581, 578, 577, 576, 573, 569, 568, 567, 566,
1853 565, 564, 563, 562, 561, 560, 559, 558, 554, 553,
1854 550, 549, 544, 543, 542, 541, 540, 539, 538, 537,
1855
1856 536, 535, 534, 533, 532, 524, 523, 522, 521, 520,
1857 519, 518, 517, 516, 515, 514, 513, 512, 511, 510,
1858 507, 506, 505, 504, 501, 500, 499, 498, 497, 496,
1859 495, 494, 493, 492, 491, 490, 489, 488, 487, 486,
1860 482, 480, 479, 476, 474, 471, 468, 467, 464, 463,
1861 462, 461, 459, 458, 457, 456, 454, 453, 452, 449,
1862 448, 447, 446, 445, 444, 443, 442, 441, 440, 439,
1863 438, 437, 436, 433, 430, 429, 428, 427, 426, 425,
1864 424, 421, 420, 417, 416, 415, 414, 413, 411, 410,
1865 409, 408, 404, 403, 402, 401, 400, 399, 398, 395,
1866
1867 394, 393, 392, 391, 390, 389, 388, 387, 386, 385,
1868 384, 383, 382, 381, 380, 379, 378, 377, 376, 375,
1869 374, 373, 372, 371, 370, 369, 368, 362, 361, 360,
1870 359, 358, 357, 356, 355, 354, 353, 351, 350, 219,
1871 347, 345, 342, 339, 336, 329, 328, 327, 326, 323,
1872 321, 320, 316, 315, 314, 311, 310, 309, 308, 304,
1873 294, 293, 292, 289, 288, 283, 282, 278, 277, 276,
1874 275, 272, 271, 270, 267, 266, 265, 262, 251, 247,
1875 246, 243, 239, 238, 237, 233, 232, 231, 227, 226,
1876 225, 222, 219, 213, 207, 206, 203, 202, 171, 152,
1877
1878 128, 114, 111, 110, 44, 104, 102, 101, 92, 44,
1879 2411, 11, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
1880 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
1881 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
1882 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
1883 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
1884 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
1885 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
1886 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411
1887 } ;
1888
1889static const flex_int16_t yy_chk[2990] =
1890 { 0,
1891 0, 1, 1, 1, 0, 1, 1, 45, 1, 1,
1892 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1893 1, 21, 751, 3, 3, 3, 21, 1, 1, 3,
1894 4, 4, 4, 13, 1, 13, 4, 0, 0, 1,
1895 27, 5, 5, 5, 38, 1, 38, 1, 45, 6,
1896 6, 6, 113, 1, 1, 7, 7, 7, 43, 7,
1897 43, 105, 1, 8, 8, 8, 27, 8, 1, 20,
1898 20, 20, 20, 20, 20, 1, 1, 2, 2, 2,
1899 113, 2, 2, 20, 2, 2, 2, 2, 2, 2,
1900 2, 2, 2, 2, 2, 2, 2, 5, 9, 9,
1901
1902 9, 266, 105, 2, 2, 6, 10, 10, 10, 20,
1903 2, 28, 29, 32, 33, 2, 34, 53, 266, 9,
1904 48, 2, 49, 2, 52, 753, 26, 10, 26, 2,
1905 2, 26, 26, 26, 26, 26, 26, 147, 2, 32,
1906 28, 29, 147, 33, 2, 34, 53, 48, 754, 49,
1907 52, 2, 2, 15, 15, 15, 15, 15, 15, 15,
1908 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1909 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1910 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1911 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1912
1913 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1914 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1915 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1916 17, 70, 17, 17, 17, 17, 17, 17, 19, 70,
1917 19, 19, 19, 19, 19, 19, 17, 57, 65, 58,
1918 755, 70, 97, 22, 19, 22, 22, 22, 22, 22,
1919 22, 23, 55, 23, 23, 23, 23, 23, 23, 22,
1920 55, 64, 17, 57, 65, 56, 58, 23, 75, 79,
1921 19, 97, 75, 79, 64, 65, 60, 56, 55, 100,
1922 67, 66, 64, 114, 64, 22, 66, 108, 55, 66,
1923
1924 67, 56, 67, 23, 46, 60, 46, 46, 46, 46,
1925 109, 180, 46, 60, 46, 46, 56, 59, 100, 60,
1926 46, 46, 60, 46, 59, 180, 108, 114, 78, 756,
1927 46, 46, 46, 46, 46, 46, 109, 46, 46, 46,
1928 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1929 46, 46, 46, 63, 78, 62, 63, 63, 59, 120,
1930 63, 63, 59, 72, 78, 72, 59, 69, 69, 78,
1931 72, 69, 758, 63, 59, 62, 71, 69, 59, 62,
1932 59, 59, 62, 62, 71, 120, 62, 73, 80, 62,
1933 73, 73, 153, 62, 95, 96, 98, 99, 71, 76,
1934
1935 71, 73, 71, 76, 73, 153, 76, 139, 139, 77,
1936 77, 117, 71, 76, 76, 80, 112, 76, 76, 76,
1937 77, 95, 96, 98, 99, 80, 82, 82, 82, 82,
1938 82, 82, 77, 93, 93, 93, 93, 93, 93, 117,
1939 82, 129, 169, 112, 163, 169, 77, 145, 77, 119,
1940 129, 77, 77, 83, 129, 83, 83, 83, 83, 83,
1941 83, 77, 759, 145, 115, 84, 82, 84, 77, 83,
1942 84, 84, 84, 84, 84, 84, 85, 119, 85, 85,
1943 85, 85, 85, 85, 86, 327, 86, 86, 86, 86,
1944 86, 86, 85, 115, 163, 83, 118, 327, 137, 137,
1945
1946 86, 87, 87, 87, 87, 87, 87, 90, 137, 90,
1947 90, 90, 90, 90, 90, 87, 185, 107, 85, 149,
1948 593, 760, 185, 90, 107, 118, 86, 91, 125, 91,
1949 91, 91, 91, 91, 91, 94, 94, 94, 94, 94,
1950 94, 87, 133, 91, 162, 142, 125, 142, 144, 90,
1951 157, 133, 133, 146, 761, 175, 146, 125, 107, 175,
1952 146, 144, 107, 175, 142, 144, 107, 149, 166, 91,
1953 184, 157, 190, 162, 107, 762, 593, 188, 107, 196,
1954 107, 107, 123, 166, 166, 166, 190, 197, 199, 198,
1955 123, 123, 123, 123, 123, 123, 173, 200, 184, 201,
1956
1957 123, 123, 123, 123, 123, 123, 188, 204, 196, 313,
1958 208, 313, 205, 209, 197, 198, 212, 199, 213, 215,
1959 235, 217, 274, 235, 200, 201, 123, 123, 123, 123,
1960 123, 123, 296, 204, 763, 173, 173, 173, 205, 208,
1961 296, 209, 212, 764, 213, 215, 173, 224, 173, 217,
1962 279, 173, 285, 173, 173, 221, 221, 221, 221, 221,
1963 221, 298, 285, 236, 298, 221, 221, 221, 221, 221,
1964 221, 236, 288, 224, 322, 317, 279, 236, 330, 274,
1965 317, 333, 274, 337, 338, 351, 344, 288, 343, 340,
1966 765, 221, 221, 221, 221, 221, 221, 352, 369, 374,
1967
1968 322, 478, 408, 369, 330, 351, 374, 333, 408, 431,
1969 766, 338, 337, 344, 322, 340, 412, 343, 349, 349,
1970 349, 349, 349, 349, 692, 692, 352, 478, 349, 349,
1971 349, 349, 349, 349, 390, 391, 405, 405, 405, 390,
1972 391, 411, 405, 425, 472, 412, 427, 464, 425, 435,
1973 427, 411, 464, 435, 349, 349, 349, 349, 349, 349,
1974 443, 485, 431, 492, 443, 480, 504, 480, 616, 522,
1975 504, 616, 508, 472, 522, 492, 547, 643, 504, 726,
1976 504, 504, 504, 504, 504, 508, 547, 557, 623, 586,
1977 485, 390, 557, 480, 586, 480, 390, 391, 627, 628,
1978
1979 629, 658, 767, 623, 658, 425, 481, 481, 481, 481,
1980 481, 481, 769, 770, 623, 637, 481, 481, 481, 481,
1981 481, 481, 637, 633, 627, 713, 715, 628, 633, 629,
1982 727, 715, 623, 713, 643, 727, 757, 773, 774, 778,
1983 726, 775, 481, 481, 481, 481, 481, 481, 776, 757,
1984 777, 779, 780, 781, 782, 783, 784, 785, 786, 787,
1985 788, 789, 790, 791, 792, 774, 773, 793, 775, 715,
1986 794, 794, 795, 794, 796, 797, 777, 776, 727, 798,
1987 799, 800, 801, 802, 803, 804, 805, 806, 807, 808,
1988 809, 810, 811, 812, 813, 814, 815, 816, 817, 818,
1989
1990 819, 820, 817, 821, 822, 823, 817, 824, 825, 826,
1991 827, 828, 829, 830, 831, 832, 833, 834, 835, 836,
1992 837, 838, 839, 840, 841, 842, 843, 844, 845, 846,
1993 847, 848, 849, 847, 850, 852, 853, 854, 855, 856,
1994 857, 858, 859, 860, 861, 863, 864, 865, 866, 867,
1995 868, 869, 870, 871, 872, 873, 875, 877, 878, 879,
1996 880, 881, 882, 883, 884, 885, 886, 887, 888, 889,
1997 890, 891, 892, 893, 894, 890, 895, 896, 897, 898,
1998 899, 894, 900, 901, 896, 902, 903, 904, 896, 906,
1999 907, 908, 909, 910, 911, 900, 912, 900, 913, 914,
2000
2001 915, 900, 916, 917, 918, 919, 917, 920, 921, 922,
2002 923, 924, 925, 926, 927, 928, 929, 930, 931, 932,
2003 933, 934, 935, 936, 939, 940, 941, 942, 943, 944,
2004 945, 946, 919, 947, 948, 949, 920, 950, 951, 923,
2005 952, 953, 954, 955, 956, 957, 953, 958, 959, 960,
2006 961, 962, 964, 965, 966, 967, 968, 969, 970, 971,
2007 972, 973, 975, 976, 977, 978, 979, 980, 981, 982,
2008 983, 979, 984, 985, 986, 987, 988, 989, 990, 991,
2009 994, 995, 996, 997, 998, 999, 1000, 1002, 1003, 1004,
2010 1005, 1006, 1007, 1009, 1010, 1011, 1012, 1013, 1014, 1011,
2011
2012 1015, 1016, 1017, 1019, 1020, 1023, 1024, 1017, 1025, 1026,
2013 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036,
2014 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047,
2015 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1045,
2016 1057, 1058, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067,
2017 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1078, 1076,
2018 1079, 1080, 1077, 1081, 1082, 1083, 1084, 1085, 1087, 1088,
2019 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098,
2020 1099, 1100, 1101, 1074, 1073, 1102, 1075, 1076, 1077, 1103,
2021 1104, 1106, 1107, 1108, 1106, 1109, 1110, 1111, 1112, 1113,
2022
2023 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123,
2024 1124, 1125, 1126, 1127, 1128, 1129, 1131, 1132, 1133, 1134,
2025 1135, 1136, 1137, 1138, 1140, 1141, 1136, 1142, 1143, 1144,
2026 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154,
2027 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164,
2028 1165, 1167, 1168, 1170, 1171, 1173, 1174, 1175, 1176, 1178,
2029 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188,
2030 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1197, 1198, 1199,
2031 1200, 1201, 1203, 1136, 1204, 1205, 1206, 1207, 1208, 1209,
2032 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219,
2033
2034 1220, 1222, 1221, 1223, 1224, 1226, 1227, 1228, 1229, 1230,
2035 1231, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241,
2036 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1219, 1221,
2037 1222, 1223, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1258,
2038 1250, 1259, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268,
2039 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278,
2040 1279, 1281, 1282, 1283, 1284, 1285, 1286, 1282, 1287, 1288,
2041 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298,
2042 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308,
2043 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1318, 1319,
2044
2045 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1330,
2046 1331, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342,
2047 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352,
2048 1354, 1356, 1357, 1358, 1359, 1360, 1362, 1361, 1363, 1364,
2049 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374,
2050 1375, 1376, 1377, 1378, 1380, 1381, 1382, 1383, 1384, 1385,
2051 1359, 1386, 1358, 1361, 1360, 1362, 1387, 1388, 1389, 1390,
2052 1391, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401,
2053 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411,
2054 1412, 1413, 1416, 1418, 1419, 1420, 1421, 1422, 1423, 1424,
2055
2056 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434,
2057 1436, 1438, 1439, 1440, 1442, 1443, 1444, 1446, 1447, 1448,
2058 1449, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460,
2059 1461, 1462, 1463, 1464, 1465, 1466, 1468, 1469, 1470, 1471,
2060 1472, 1473, 1474, 1475, 1476, 1479, 1480, 1481, 1482, 1483,
2061 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493,
2062 1494, 1496, 1497, 1498, 1499, 1500, 1502, 1503, 1504, 1505,
2063 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515,
2064 1516, 1517, 1489, 1490, 1518, 1519, 1491, 1520, 1521, 1522,
2065 1523, 1524, 1525, 1526, 1527, 1528, 1530, 1531, 1532, 1533,
2066
2067 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543,
2068 1544, 1545, 1546, 1547, 1502, 1548, 1549, 1551, 1552, 1553,
2069 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1553, 1561, 1562,
2070 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573,
2071 1574, 1575, 1576, 1577, 1579, 1580, 1581, 1582, 1586, 1584,
2072 1580, 1584, 1587, 1588, 1592, 1593, 1594, 1595, 1596, 1597,
2073 1598, 1599, 1600, 1601, 1603, 1604, 1605, 1609, 1606, 1607,
2074 1610, 1611, 1612, 1613, 1614, 1615, 1617, 1618, 1619, 1620,
2075 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630,
2076 1633, 1634, 1605, 1606, 1604, 1607, 1635, 1636, 1637, 1638,
2077
2078 1640, 1641, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650,
2079 1651, 1652, 1653, 1654, 1657, 1659, 1661, 1662, 1664, 1665,
2080 1666, 1606, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1675,
2081 1676, 1677, 1678, 1679, 1680, 1681, 1683, 1687, 1688, 1690,
2082 1691, 1693, 1694, 1693, 1695, 1696, 1693, 1697, 1698, 1693,
2083 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1708, 1710,
2084 1711, 1712, 1713, 1715, 1714, 1716, 1717, 1718, 1719, 1721,
2085 1722, 1724, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733,
2086 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1712, 1713,
2087 1714, 1734, 1715, 1716, 1743, 1744, 1745, 1746, 1748, 1749,
2088
2089 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1756, 1757, 1758,
2090 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768,
2091 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1779,
2092 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1730, 1788,
2093 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1800,
2094 1801, 1802, 1804, 1805, 1807, 1806, 1808, 1809, 1810, 1812,
2095 1813, 1816, 1817, 1818, 1820, 1822, 1823, 1824, 1825, 1826,
2096 1757, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1805,
2097 1835, 1804, 1806, 1807, 1837, 1808, 1838, 1839, 1840, 1841,
2098 1842, 1838, 1843, 1844, 1845, 1846, 1848, 1849, 1850, 1852,
2099
2100 1853, 1855, 1856, 1857, 1859, 1860, 1861, 1862, 1863, 1864,
2101 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876,
2102 1877, 1878, 1879, 1880, 1881, 1882, 1884, 1885, 1886, 1887,
2103 1888, 1889, 1891, 1892, 1838, 1893, 1894, 1895, 1896, 1897,
2104 1899, 1900, 1901, 1904, 1905, 1906, 1907, 1908, 1909, 1910,
2105 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1920, 1891,
2106 1921, 1893, 1922, 1923, 1924, 1925, 1927, 1928, 1929, 1931,
2107 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1942,
2108 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952,
2109 1953, 1954, 1955, 1956, 1957, 1958, 1960, 1962, 1963, 1964,
2110
2111 1958, 1965, 1966, 1968, 1971, 1969, 1972, 1973, 1975, 1976,
2112 1977, 1978, 1979, 1980, 1981, 1982, 1984, 1985, 1986, 1987,
2113 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
2114 1968, 1969, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006,
2115 2007, 2008, 2009, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
2116 2018, 2019, 2020, 2021, 2022, 2024, 2026, 2027, 2028, 2029,
2117 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041,
2118 2042, 2043, 2044, 2045, 2047, 2048, 2049, 2050, 2051, 2052,
2119 2053, 2054, 2056, 2057, 2058, 2059, 2060, 2033, 2034, 2061,
2120 2035, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072,
2121
2122 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083,
2123 2084, 2085, 2086, 2087, 2088, 2086, 2089, 2090, 2091, 2092,
2124 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102,
2125 2103, 2104, 2105, 2107, 2108, 2109, 2110, 2111, 2112, 2113,
2126 2114, 2115, 2116, 2117, 2090, 2092, 2118, 2119, 2121, 2123,
2127 2125, 2126, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135,
2128 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2145, 2146,
2129 2147, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157,
2130 2158, 2159, 2160, 2161, 2163, 2164, 2165, 2167, 2168, 2169,
2131 2170, 2171, 2173, 2143, 2174, 2145, 2176, 2178, 2179, 2181,
2132
2133 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2190, 2191, 2193,
2134 2192, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2203,
2135 2204, 2205, 2206, 2207, 2208, 2210, 2211, 2212, 2213, 2214,
2136 2215, 2216, 2217, 2218, 2219, 2191, 2192, 2220, 2221, 2222,
2137 2223, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233,
2138 2234, 2235, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244,
2139 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254,
2140 2255, 2256, 2230, 2257, 2258, 2259, 2260, 2261, 2262, 2263,
2141 2264, 2265, 2266, 2268, 2269, 2271, 2272, 2273, 2275, 2276,
2142 2277, 2278, 2280, 2281, 2282, 2283, 2284, 2289, 2290, 2294,
2143
2144 2295, 2296, 2297, 2298, 2299, 2300, 2302, 2303, 2304, 2305,
2145 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2318,
2146 2319, 2320, 2321, 2322, 2323, 2325, 2326, 2327, 2328, 2330,
2147 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2340, 2341, 2342,
2148 2343, 2344, 2343, 2345, 2346, 2347, 2348, 2349, 2350, 2352,
2149 2353, 2356, 2357, 2358, 2359, 2360, 2361, 2363, 2364, 2365,
2150 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375,
2151 2376, 2378, 2379, 2381, 2382, 2385, 2386, 2387, 2388, 2389,
2152 2391, 2392, 2394, 2396, 2399, 2400, 2401, 2402, 2403, 2404,
2153 2405, 2407, 2412, 2412, 2412, 2413, 2413, 2413, 2414, 2415,
2154
2155 2414, 2416, 2416, 2416, 2417, 2417, 2417, 2418, 750, 2418,
2156 2419, 2419, 2419, 749, 748, 747, 746, 745, 744, 743,
2157 742, 741, 740, 739, 737, 736, 735, 734, 732, 731,
2158 730, 729, 728, 724, 723, 722, 721, 720, 719, 718,
2159 717, 716, 714, 712, 711, 709, 708, 707, 706, 705,
2160 704, 703, 702, 701, 700, 699, 698, 697, 696, 695,
2161 694, 693, 691, 690, 689, 688, 687, 686, 683, 682,
2162 681, 680, 679, 678, 677, 675, 674, 673, 672, 671,
2163 670, 669, 668, 667, 666, 665, 664, 663, 662, 661,
2164 660, 659, 657, 656, 655, 654, 653, 652, 651, 650,
2165
2166 649, 648, 647, 646, 645, 644, 642, 641, 640, 639,
2167 638, 635, 632, 631, 630, 622, 621, 620, 619, 618,
2168 617, 614, 611, 609, 607, 606, 605, 604, 603, 602,
2169 601, 600, 599, 598, 597, 596, 595, 594, 592, 591,
2170 590, 589, 588, 587, 585, 584, 583, 582, 581, 580,
2171 579, 578, 577, 576, 575, 574, 572, 571, 569, 568,
2172 567, 566, 565, 564, 563, 562, 561, 560, 559, 558,
2173 556, 555, 553, 552, 551, 550, 549, 548, 546, 545,
2174 544, 543, 542, 541, 540, 539, 538, 537, 536, 535,
2175 534, 533, 532, 531, 530, 528, 527, 526, 524, 523,
2176
2177 521, 520, 519, 518, 517, 516, 515, 514, 513, 511,
2178 510, 509, 507, 506, 505, 503, 501, 500, 499, 498,
2179 497, 496, 494, 493, 491, 490, 489, 488, 487, 486,
2180 484, 483, 482, 477, 475, 474, 473, 471, 468, 467,
2181 466, 465, 463, 462, 461, 460, 459, 458, 457, 456,
2182 455, 454, 453, 452, 451, 450, 449, 448, 447, 446,
2183 445, 444, 442, 441, 440, 439, 438, 437, 436, 434,
2184 433, 432, 430, 429, 428, 426, 424, 423, 422, 421,
2185 420, 419, 418, 417, 416, 415, 414, 413, 410, 409,
2186 407, 406, 404, 403, 402, 401, 400, 399, 398, 397,
2187
2188 396, 395, 394, 393, 392, 389, 388, 387, 386, 385,
2189 384, 383, 382, 381, 380, 379, 378, 377, 376, 375,
2190 373, 372, 371, 370, 368, 367, 366, 365, 364, 363,
2191 362, 361, 360, 359, 358, 357, 356, 355, 354, 353,
2192 350, 348, 346, 341, 339, 336, 329, 328, 326, 325,
2193 324, 323, 321, 320, 319, 318, 316, 315, 314, 312,
2194 311, 310, 309, 308, 307, 306, 305, 304, 303, 302,
2195 301, 300, 299, 297, 295, 294, 293, 292, 291, 290,
2196 289, 287, 286, 284, 283, 282, 281, 280, 278, 277,
2197 276, 275, 273, 272, 271, 270, 269, 268, 267, 265,
2198
2199 264, 262, 261, 260, 259, 258, 257, 256, 255, 254,
2200 253, 252, 251, 250, 249, 248, 247, 246, 245, 244,
2201 243, 242, 241, 240, 239, 238, 237, 234, 233, 232,
2202 231, 230, 229, 228, 227, 226, 225, 223, 222, 218,
2203 216, 214, 211, 206, 202, 194, 193, 192, 191, 189,
2204 187, 186, 183, 182, 181, 179, 178, 177, 176, 174,
2205 172, 171, 170, 168, 167, 165, 164, 161, 160, 159,
2206 158, 156, 155, 154, 152, 151, 150, 148, 143, 141,
2207 140, 138, 136, 135, 134, 132, 131, 130, 128, 127,
2208 126, 124, 121, 116, 111, 110, 103, 102, 74, 68,
2209
2210 61, 54, 51, 50, 44, 42, 40, 39, 25, 14,
2211 11, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
2212 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
2213 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
2214 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
2215 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
2216 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
2217 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411,
2218 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411, 2411
2219 } ;
2220
2221static yy_state_type yy_last_accepting_state;
2222static char *yy_last_accepting_cpos;
2223
2224extern int yy_flex_debug;
2226
2227static const flex_int16_t yy_rule_linenum[254] =
2228 { 0,
2229 149, 151, 153, 158, 159, 164, 165, 166, 178, 180,
2230 185, 191, 200, 209, 218, 227, 236, 245, 254, 263,
2231 275, 287, 297, 307, 317, 327, 337, 346, 356, 366,
2232 376, 386, 395, 404, 413, 422, 431, 440, 449, 458,
2233 467, 476, 485, 494, 503, 512, 521, 530, 539, 548,
2234 562, 574, 586, 597, 608, 620, 631, 642, 653, 664,
2235 675, 686, 697, 706, 715, 724, 735, 746, 755, 767,
2236 779, 791, 802, 811, 820, 829, 838, 847, 858, 870,
2237 882, 894, 906, 918, 930, 941, 952, 961, 970, 979,
2238 990, 1001, 1010, 1019, 1031, 1043, 1055, 1067, 1079, 1091,
2239
2240 1103, 1114, 1126, 1135, 1144, 1153, 1162, 1174, 1186, 1198,
2241 1210, 1220, 1231, 1240, 1249, 1264, 1281, 1290, 1299, 1308,
2242 1317, 1326, 1335, 1344, 1353, 1362, 1371, 1380, 1390, 1417,
2243 1444, 1453, 1463, 1473, 1482, 1492, 1503, 1514, 1525, 1535,
2244 1544, 1553, 1562, 1573, 1584, 1595, 1606, 1617, 1628, 1637,
2245 1646, 1655, 1664, 1673, 1682, 1691, 1700, 1709, 1718, 1733,
2246 1745, 1757, 1770, 1779, 1788, 1797, 1806, 1816, 1826, 1835,
2247 1844, 1855, 1865, 1874, 1884, 1894, 1903, 1912, 1921, 1930,
2248 1940, 1949, 1958, 1967, 1976, 1985, 1994, 2003, 2012, 2021,
2249 2030, 2039, 2048, 2057, 2066, 2075, 2084, 2093, 2102, 2111,
2250
2251 2120, 2129, 2138, 2147, 2156, 2165, 2174, 2183, 2192, 2201,
2252 2210, 2219, 2228, 2237, 2246, 2255, 2264, 2273, 2282, 2291,
2253 2300, 2309, 2318, 2327, 2336, 2345, 2354, 2363, 2372, 2381,
2254 2390, 2399, 2408, 2417, 2518, 2534, 2583, 2591, 2606, 2607,
2255 2608, 2609, 2610, 2611, 2613, 2632, 2649, 2662, 2667, 2671,
2256 2673, 2675, 2677
2257 } ;
2258
2259/* The intent behind this definition is that it'll catch
2260 * any uses of REJECT which flex missed.
2261 */
2262#define REJECT reject_used_but_not_detected
2263#define yymore() yymore_used_but_not_detected
2264#define YY_MORE_ADJ 0
2265#define YY_RESTORE_YY_MORE_OFFSET
2267#line 1 "dhcp6_lexer.ll"
2268/* Copyright (C) 2016-2025 Internet Systems Consortium, Inc. ("ISC")
2269
2270 This Source Code Form is subject to the terms of the Mozilla Public
2271 License, v. 2.0. If a copy of the MPL was not distributed with this
2272 file, You can obtain one at http://mozilla.org/MPL/2.0/. */
2273#line 8 "dhcp6_lexer.ll"
2274
2275/* Generated files do not make clang static analyser so happy */
2276#ifndef __clang_analyzer__
2277
2278#include <cctype>
2279#include <cerrno>
2280#include <climits>
2281#include <cstdint>
2282#include <cstdlib>
2283#include <string>
2284#include <dhcp6/parser_context.h>
2285#include <asiolink/io_address.h>
2286#include <boost/lexical_cast.hpp>
2287#include <exceptions/exceptions.h>
2288
2289/* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
2290
2291/* Work around an incompatibility in flex (at least versions
2292 2.5.31 through 2.5.33): it generates code that does
2293 not conform to C89. See Debian bug 333231
2294 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
2295# undef yywrap
2296# define yywrap() 1
2297
2298namespace {
2299
2300bool start_token_flag = false;
2301
2303unsigned int comment_start_line = 0;
2304
2305using namespace isc::dhcp;
2306
2307};
2308
2309/* To avoid the call to exit... oops! */
2310#define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
2311#line 2311 "dhcp6_lexer.cc"
2312/* noyywrap disables automatic rewinding for the next file to parse. Since we
2313 always parse only a single string, there's no need to do any wraps. And
2314 using yywrap requires linking with -lfl, which provides the default yywrap
2315 implementation that always returns 1 anyway. */
2316/* nounput simplifies the lexer, by removing support for putting a character
2317 back into the input stream. We never use such capability anyway. */
2318/* batch means that we'll never use the generated lexer interactively. */
2319/* avoid to get static global variables to remain with C++. */
2320/* in last resort %option reentrant */
2321/* Enables debug mode. To see the debug messages, one needs to also set
2322 yy_flex_debug to 1, then the debug messages will be printed on stderr. */
2323/* I have no idea what this option does, except it was specified in the bison
2324 examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
2325 be on the safe side and keep it. */
2326#define YY_NO_INPUT 1
2327
2328/* These are not token expressions yet, just convenience expressions that
2329 can be used during actual token definitions. Note some can match
2330 incorrect inputs (e.g., IP addresses) which must be checked. */
2331/* for errors */
2332#line 96 "dhcp6_lexer.ll"
2333/* This code run each time a pattern is matched. It updates the location
2334 by moving it ahead by yyleng bytes. yyleng specifies the length of the
2335 currently matched token. */
2336#define YY_USER_ACTION driver.loc_.columns(yyleng);
2337#line 2337 "dhcp6_lexer.cc"
2338#line 2338 "dhcp6_lexer.cc"
2339
2340#define INITIAL 0
2341#define COMMENT 1
2342#define DIR_ENTER 2
2343#define DIR_INCLUDE 3
2344#define DIR_EXIT 4
2345
2346#ifndef YY_NO_UNISTD_H
2347/* Special case for "unistd.h", since it is non-ANSI. We include it way
2348 * down here because we want the user's section 1 to have been scanned first.
2349 * The user has a chance to override it with an option.
2350 */
2351/* %if-c-only */
2352#include <unistd.h>
2353/* %endif */
2354/* %if-c++-only */
2355/* %endif */
2356#endif
2357
2358#ifndef YY_EXTRA_TYPE
2359#define YY_EXTRA_TYPE void *
2360#endif
2361
2362/* %if-c-only Reentrant structure and macros (non-C++). */
2363/* %if-reentrant */
2364/* %if-c-only */
2365
2366static int yy_init_globals ( void );
2367
2368/* %endif */
2369/* %if-reentrant */
2370/* %endif */
2371/* %endif End reentrant structures and macros. */
2372
2373/* Accessor methods to globals.
2374 These are made visible to non-reentrant scanners for convenience. */
2375
2376int yylex_destroy ( void );
2377
2378int yyget_debug ( void );
2379
2380void yyset_debug ( int debug_flag );
2381
2382YY_EXTRA_TYPE yyget_extra ( void );
2383
2384void yyset_extra ( YY_EXTRA_TYPE user_defined );
2385
2386FILE *yyget_in ( void );
2387
2388void yyset_in ( FILE * _in_str );
2389
2390FILE *yyget_out ( void );
2391
2392void yyset_out ( FILE * _out_str );
2393
2394 int yyget_leng ( void );
2395
2396char *yyget_text ( void );
2397
2398int yyget_lineno ( void );
2399
2400void yyset_lineno ( int _line_number );
2401
2402/* %if-bison-bridge */
2403/* %endif */
2404
2405/* Macros after this point can all be overridden by user definitions in
2406 * section 1.
2407 */
2408
2409#ifndef YY_SKIP_YYWRAP
2410#ifdef __cplusplus
2411extern "C" int yywrap ( void );
2412#else
2413extern int yywrap ( void );
2414#endif
2415#endif
2416
2417/* %not-for-header */
2418#ifndef YY_NO_UNPUT
2419
2420#endif
2421/* %ok-for-header */
2422
2423/* %endif */
2424
2425#ifndef yytext_ptr
2426static void yy_flex_strncpy ( char *, const char *, int );
2427#endif
2428
2429#ifdef YY_NEED_STRLEN
2430static int yy_flex_strlen ( const char * );
2431#endif
2432
2433#ifndef YY_NO_INPUT
2434/* %if-c-only Standard (non-C++) definition */
2435/* %not-for-header */
2436#ifdef __cplusplus
2437static int yyinput ( void );
2438#else
2439static int input ( void );
2440#endif
2441/* %ok-for-header */
2442
2443/* %endif */
2444#endif
2445
2446/* %if-c-only */
2447
2448/* %endif */
2449
2450/* Amount of stuff to slurp up with each read. */
2451#ifndef YY_READ_BUF_SIZE
2452#ifdef __ia64__
2453/* On IA-64, the buffer size is 16k, not 8k */
2454#define YY_READ_BUF_SIZE 16384
2455#else
2456#define YY_READ_BUF_SIZE 8192
2457#endif /* __ia64__ */
2458#endif
2459
2460/* Copy whatever the last rule matched to the standard output. */
2461#ifndef ECHO
2462/* %if-c-only Standard (non-C++) definition */
2463/* This used to be an fputs(), but since the string might contain NUL's,
2464 * we now use fwrite().
2465 */
2466#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2467/* %endif */
2468/* %if-c++-only C++ definition */
2469/* %endif */
2470#endif
2471
2472/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2473 * is returned in "result".
2474 */
2475#ifndef YY_INPUT
2476#define YY_INPUT(buf,result,max_size) \
2477/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2478 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2479 { \
2480 int c = '*'; \
2481 int n; \
2482 for ( n = 0; n < max_size && \
2483 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2484 buf[n] = (char) c; \
2485 if ( c == '\n' ) \
2486 buf[n++] = (char) c; \
2487 if ( c == EOF && ferror( yyin ) ) \
2488 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2489 result = n; \
2490 } \
2491 else \
2492 { \
2493 errno=0; \
2494 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2495 { \
2496 if( errno != EINTR) \
2497 { \
2498 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2499 break; \
2500 } \
2501 errno=0; \
2502 clearerr(yyin); \
2503 } \
2504 }\
2505\
2506/* %if-c++-only C++ definition \ */\
2507/* %endif */
2508
2509#endif
2510
2511/* No semi-colon after return; correct usage is to write "yyterminate();" -
2512 * we don't want an extra ';' after the "return" because that will cause
2513 * some compilers to complain about unreachable statements.
2514 */
2515#ifndef yyterminate
2516#define yyterminate() return YY_NULL
2517#endif
2518
2519/* Number of entries by which start-condition stack grows. */
2520#ifndef YY_START_STACK_INCR
2521#define YY_START_STACK_INCR 25
2522#endif
2523
2524/* Report a fatal error. */
2525#ifndef YY_FATAL_ERROR
2526/* %if-c-only */
2527#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2528/* %endif */
2529/* %if-c++-only */
2530/* %endif */
2531#endif
2532
2533/* %if-tables-serialization structures and prototypes */
2534/* %not-for-header */
2535/* %ok-for-header */
2536
2537/* %not-for-header */
2538/* %tables-yydmap generated elements */
2539/* %endif */
2540/* end tables serialization structures and prototypes */
2541
2542/* %ok-for-header */
2543
2544/* Default declaration of generated scanner - a define so the user can
2545 * easily add parameters.
2546 */
2547#ifndef YY_DECL
2548#define YY_DECL_IS_OURS 1
2549/* %if-c-only Standard (non-C++) definition */
2550
2551extern int yylex (void);
2552
2553#define YY_DECL int yylex (void)
2554/* %endif */
2555/* %if-c++-only C++ definition */
2556/* %endif */
2557#endif /* !YY_DECL */
2558
2559/* Code executed at the beginning of each rule, after yytext and yyleng
2560 * have been set up.
2561 */
2562#ifndef YY_USER_ACTION
2563#define YY_USER_ACTION
2564#endif
2565
2566/* Code executed at the end of each rule. */
2567#ifndef YY_BREAK
2568#define YY_BREAK /*LINTED*/break;
2569#endif
2570
2571/* %% [6.0] YY_RULE_SETUP definition goes here */
2572#define YY_RULE_SETUP \
2573 YY_USER_ACTION
2574
2575/* %not-for-header */
2579{
2580 yy_state_type yy_current_state;
2581 char *yy_cp, *yy_bp;
2583
2584 if ( !(yy_init) )
2585 {
2586 (yy_init) = 1;
2587
2588#ifdef YY_USER_INIT
2589 YY_USER_INIT;
2590#endif
2591
2592 if ( ! (yy_start) )
2593 (yy_start) = 1; /* first start state */
2594
2595 if ( ! yyin )
2596/* %if-c-only */
2597 yyin = stdin;
2598/* %endif */
2599/* %if-c++-only */
2600/* %endif */
2601
2602 if ( ! yyout )
2603/* %if-c-only */
2604 yyout = stdout;
2605/* %endif */
2606/* %if-c++-only */
2607/* %endif */
2608
2609 if ( ! YY_CURRENT_BUFFER ) {
2613 }
2614
2616 }
2617
2618 {
2619/* %% [7.0] user's declarations go here */
2620#line 102 "dhcp6_lexer.ll"
2621
2622
2623
2624#line 106 "dhcp6_lexer.ll"
2625 /* This part of the code is copied over to the verbatim to the top
2626 of the generated yylex function. Explanation:
2627 http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2628
2629 /* Code run each time yylex is called. */
2630 driver.loc_.step();
2631
2632 if (start_token_flag) {
2633 start_token_flag = false;
2634 switch (start_token_value) {
2636 default:
2641 return isc::dhcp::Dhcp6Parser::make_SUB_DHCP6(driver.loc_);
2645 return isc::dhcp::Dhcp6Parser::make_SUB_SUBNET6(driver.loc_);
2647 return isc::dhcp::Dhcp6Parser::make_SUB_POOL6(driver.loc_);
2649 return isc::dhcp::Dhcp6Parser::make_SUB_PD_POOL(driver.loc_);
2664 }
2665 }
2666
2667
2668#line 2668 "dhcp6_lexer.cc"
2669
2670 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2671 {
2672/* %% [8.0] yymore()-related code goes here */
2673 yy_cp = (yy_c_buf_p);
2674
2675 /* Support of yytext. */
2676 *yy_cp = (yy_hold_char);
2677
2678 /* yy_bp points to the position in yy_ch_buf of the start of
2679 * the current run.
2680 */
2681 yy_bp = yy_cp;
2682
2683/* %% [9.0] code to set up and find next match goes here */
2684 yy_current_state = (yy_start);
2685yy_match:
2686 do
2687 {
2688 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2689 if ( yy_accept[yy_current_state] )
2690 {
2691 (yy_last_accepting_state) = yy_current_state;
2692 (yy_last_accepting_cpos) = yy_cp;
2693 }
2694 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2695 {
2696 yy_current_state = (int) yy_def[yy_current_state];
2697 if ( yy_current_state >= 2412 )
2698 yy_c = yy_meta[yy_c];
2699 }
2700 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2701 ++yy_cp;
2702 }
2703 while ( yy_current_state != 2411 );
2704 yy_cp = (yy_last_accepting_cpos);
2705 yy_current_state = (yy_last_accepting_state);
2706
2707yy_find_action:
2708/* %% [10.0] code to find the action number goes here */
2709 yy_act = yy_accept[yy_current_state];
2710
2712
2713/* %% [11.0] code for yylineno update goes here */
2714
2715do_action: /* This label is used only to access EOF actions. */
2716
2717/* %% [12.0] debug code goes here */
2718 if ( yy_flex_debug )
2719 {
2720 if ( yy_act == 0 )
2721 fprintf( stderr, "--scanner backing up\n" );
2722 else if ( yy_act < 254 )
2723 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2724 (long)yy_rule_linenum[yy_act], yytext );
2725 else if ( yy_act == 254 )
2726 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2727 yytext );
2728 else if ( yy_act == 255 )
2729 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2730 else
2731 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2732 }
2733
2734 switch ( yy_act )
2735 { /* beginning of action switch */
2736/* %% [13.0] actions go here */
2737 case 0: /* must back up */
2738 /* undo the effects of YY_DO_BEFORE_ACTION */
2739 *yy_cp = (yy_hold_char);
2740 yy_cp = (yy_last_accepting_cpos);
2741 yy_current_state = (yy_last_accepting_state);
2742 goto yy_find_action;
2743
2744case 1:
2746#line 149 "dhcp6_lexer.ll"
2747;
2748 YY_BREAK
2749case 2:
2751#line 151 "dhcp6_lexer.ll"
2752;
2753 YY_BREAK
2754case 3:
2756#line 153 "dhcp6_lexer.ll"
2757{
2758 BEGIN(COMMENT);
2759 comment_start_line = driver.loc_.end.line;;
2760}
2761 YY_BREAK
2762case 4:
2764#line 158 "dhcp6_lexer.ll"
2765BEGIN(INITIAL);
2766 YY_BREAK
2767case 5:
2769#line 159 "dhcp6_lexer.ll"
2770;
2771 YY_BREAK
2772case YY_STATE_EOF(COMMENT):
2773#line 160 "dhcp6_lexer.ll"
2774{
2775 isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line);
2776}
2777 YY_BREAK
2778case 6:
2780#line 164 "dhcp6_lexer.ll"
2782 YY_BREAK
2783case 7:
2785#line 165 "dhcp6_lexer.ll"
2787 YY_BREAK
2788case 8:
2790#line 166 "dhcp6_lexer.ll"
2791{
2792 /* Include directive. */
2793
2794 /* Extract the filename. */
2795 std::string tmp(yytext+1);
2796 tmp.resize(tmp.size() - 1);
2797
2798 driver.includeFile(tmp);
2799}
2800 YY_BREAK
2804#line 175 "dhcp6_lexer.ll"
2805{
2806 isc_throw(Dhcp6ParseError, "Directive not closed.");
2807}
2808 YY_BREAK
2809case 9:
2811#line 178 "dhcp6_lexer.ll"
2812BEGIN(INITIAL);
2813 YY_BREAK
2814case 10:
2816#line 180 "dhcp6_lexer.ll"
2817{
2818 /* Ok, we found a with space. Let's ignore it and update loc variable. */
2819 driver.loc_.step();
2820}
2821 YY_BREAK
2822case 11:
2823/* rule 11 can match eol */
2825#line 185 "dhcp6_lexer.ll"
2826{
2827 /* Newline found. Let's update the location and continue. */
2828 driver.loc_.lines(yyleng);
2829 driver.loc_.step();
2830}
2831 YY_BREAK
2832case 12:
2834#line 191 "dhcp6_lexer.ll"
2835{
2836 switch(driver.ctx_) {
2839 default:
2840 return isc::dhcp::Dhcp6Parser::make_STRING("enable-updates", driver.loc_);
2841 }
2842}
2843 YY_BREAK
2844case 13:
2846#line 200 "dhcp6_lexer.ll"
2847{
2848 switch(driver.ctx_) {
2850 return isc::dhcp::Dhcp6Parser::make_SERVER_IP(driver.loc_);
2851 default:
2852 return isc::dhcp::Dhcp6Parser::make_STRING("server-ip", driver.loc_);
2853 }
2854}
2855 YY_BREAK
2856case 14:
2858#line 209 "dhcp6_lexer.ll"
2859{
2860 switch(driver.ctx_) {
2862 return isc::dhcp::Dhcp6Parser::make_SERVER_PORT(driver.loc_);
2863 default:
2864 return isc::dhcp::Dhcp6Parser::make_STRING("server-port", driver.loc_);
2865 }
2866}
2867 YY_BREAK
2868case 15:
2870#line 218 "dhcp6_lexer.ll"
2871{
2872 switch(driver.ctx_) {
2874 return isc::dhcp::Dhcp6Parser::make_SENDER_IP(driver.loc_);
2875 default:
2876 return isc::dhcp::Dhcp6Parser::make_STRING("sender-ip", driver.loc_);
2877 }
2878}
2879 YY_BREAK
2880case 16:
2882#line 227 "dhcp6_lexer.ll"
2883{
2884 switch(driver.ctx_) {
2886 return isc::dhcp::Dhcp6Parser::make_SENDER_PORT(driver.loc_);
2887 default:
2888 return isc::dhcp::Dhcp6Parser::make_STRING("sender-port", driver.loc_);
2889 }
2890}
2891 YY_BREAK
2892case 17:
2894#line 236 "dhcp6_lexer.ll"
2895{
2896 switch(driver.ctx_) {
2899 default:
2900 return isc::dhcp::Dhcp6Parser::make_STRING("max-queue-size", driver.loc_);
2901 }
2902}
2903 YY_BREAK
2904case 18:
2906#line 245 "dhcp6_lexer.ll"
2907{
2908 switch(driver.ctx_) {
2911 default:
2912 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-protocol", driver.loc_);
2913 }
2914}
2915 YY_BREAK
2916case 19:
2918#line 254 "dhcp6_lexer.ll"
2919{
2920 switch(driver.ctx_) {
2922 return isc::dhcp::Dhcp6Parser::make_NCR_FORMAT(driver.loc_);
2923 default:
2924 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-format", driver.loc_);
2925 }
2926}
2927 YY_BREAK
2928case 20:
2930#line 263 "dhcp6_lexer.ll"
2931{
2932 switch(driver.ctx_) {
2938 default:
2939 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-set", driver.loc_);
2940 }
2941}
2942 YY_BREAK
2943case 21:
2945#line 275 "dhcp6_lexer.ll"
2946{
2947 switch(driver.ctx_) {
2953 default:
2954 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-replacement", driver.loc_);
2955 }
2956}
2957 YY_BREAK
2958case 22:
2960#line 287 "dhcp6_lexer.ll"
2961{
2962 /* dhcp-ddns value keywords are case insensitive */
2963 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2964 return isc::dhcp::Dhcp6Parser::make_UDP(driver.loc_);
2965 }
2966 std::string tmp(yytext+1);
2967 tmp.resize(tmp.size() - 1);
2968 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2969}
2970 YY_BREAK
2971case 23:
2973#line 297 "dhcp6_lexer.ll"
2974{
2975 /* dhcp-ddns value keywords are case insensitive */
2976 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2977 return isc::dhcp::Dhcp6Parser::make_TCP(driver.loc_);
2978 }
2979 std::string tmp(yytext+1);
2980 tmp.resize(tmp.size() - 1);
2981 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2982}
2983 YY_BREAK
2984case 24:
2986#line 307 "dhcp6_lexer.ll"
2987{
2988 /* dhcp-ddns value keywords are case insensitive */
2989 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) {
2990 return isc::dhcp::Dhcp6Parser::make_JSON(driver.loc_);
2991 }
2992 std::string tmp(yytext+1);
2993 tmp.resize(tmp.size() - 1);
2994 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2995}
2996 YY_BREAK
2997case 25:
2999#line 317 "dhcp6_lexer.ll"
3000{
3001 /* dhcp-ddns value keywords are case insensitive */
3004 }
3005 std::string tmp(yytext+1);
3006 tmp.resize(tmp.size() - 1);
3007 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3008}
3009 YY_BREAK
3010case 26:
3012#line 327 "dhcp6_lexer.ll"
3013{
3014 /* dhcp-ddns value keywords are case insensitive */
3017 }
3018 std::string tmp(yytext+1);
3019 tmp.resize(tmp.size() - 1);
3020 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3021}
3022 YY_BREAK
3023case 27:
3025#line 337 "dhcp6_lexer.ll"
3026{
3027 switch(driver.ctx_) {
3029 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
3030 default:
3031 return isc::dhcp::Dhcp6Parser::make_STRING("never", driver.loc_);
3032 }
3033}
3034 YY_BREAK
3035case 28:
3037#line 346 "dhcp6_lexer.ll"
3038{
3039 /* dhcp-ddns value keywords are case insensitive */
3041 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
3042 }
3043 std::string tmp(yytext+1);
3044 tmp.resize(tmp.size() - 1);
3045 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3046}
3047 YY_BREAK
3048case 29:
3050#line 356 "dhcp6_lexer.ll"
3051{
3052 /* dhcp-ddns value keywords are case insensitive */
3054 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
3055 }
3056 std::string tmp(yytext+1);
3057 tmp.resize(tmp.size() - 1);
3058 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3059}
3060 YY_BREAK
3061case 30:
3063#line 366 "dhcp6_lexer.ll"
3064{
3065 /* dhcp-ddns value keywords are case insensitive */
3067 return isc::dhcp::Dhcp6Parser::make_ALWAYS(driver.loc_);
3068 }
3069 std::string tmp(yytext+1);
3070 tmp.resize(tmp.size() - 1);
3071 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3072}
3073 YY_BREAK
3074case 31:
3076#line 376 "dhcp6_lexer.ll"
3077{
3078 /* dhcp-ddns value keywords are case insensitive */
3081 }
3082 std::string tmp(yytext+1);
3083 tmp.resize(tmp.size() - 1);
3084 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3085}
3086 YY_BREAK
3087case 32:
3089#line 386 "dhcp6_lexer.ll"
3090{
3091 switch(driver.ctx_) {
3093 return isc::dhcp::Dhcp6Parser::make_DHCP6(driver.loc_);
3094 default:
3095 return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp6", driver.loc_);
3096 }
3097}
3098 YY_BREAK
3099case 33:
3101#line 395 "dhcp6_lexer.ll"
3102{
3103 switch(driver.ctx_) {
3106 default:
3107 return isc::dhcp::Dhcp6Parser::make_STRING("data-directory", driver.loc_);
3108 }
3109}
3110 YY_BREAK
3111case 34:
3113#line 404 "dhcp6_lexer.ll"
3114{
3115 switch(driver.ctx_) {
3118 default:
3119 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", driver.loc_);
3120 }
3121}
3122 YY_BREAK
3123case 35:
3125#line 413 "dhcp6_lexer.ll"
3126{
3127 switch(driver.ctx_) {
3129 return isc::dhcp::Dhcp6Parser::make_INTERFACES(driver.loc_);
3130 default:
3131 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces", driver.loc_);
3132 }
3133}
3134 YY_BREAK
3135case 36:
3137#line 422 "dhcp6_lexer.ll"
3138{
3139 switch(driver.ctx_) {
3141 return isc::dhcp::Dhcp6Parser::make_RE_DETECT(driver.loc_);
3142 default:
3143 return isc::dhcp::Dhcp6Parser::make_STRING("re-detect", driver.loc_);
3144 }
3145}
3146 YY_BREAK
3147case 37:
3149#line 431 "dhcp6_lexer.ll"
3150{
3151 switch(driver.ctx_) {
3154 default:
3155 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-require-all", driver.loc_);
3156 }
3157}
3158 YY_BREAK
3159case 38:
3161#line 440 "dhcp6_lexer.ll"
3162{
3163 switch(driver.ctx_) {
3166 default:
3167 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-retry-wait-time", driver.loc_);
3168 }
3169}
3170 YY_BREAK
3171case 39:
3173#line 449 "dhcp6_lexer.ll"
3174{
3175 switch(driver.ctx_) {
3178 default:
3179 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-max-retries", driver.loc_);
3180 }
3181}
3182 YY_BREAK
3183case 40:
3185#line 458 "dhcp6_lexer.ll"
3186{
3187 switch(driver.ctx_) {
3190 default:
3191 return isc::dhcp::Dhcp6Parser::make_STRING("sanity-checks", driver.loc_);
3192 }
3193}
3194 YY_BREAK
3195case 41:
3197#line 467 "dhcp6_lexer.ll"
3198{
3199 switch(driver.ctx_) {
3202 default:
3203 return isc::dhcp::Dhcp6Parser::make_STRING("lease-checks", driver.loc_);
3204 }
3205}
3206 YY_BREAK
3207case 42:
3209#line 476 "dhcp6_lexer.ll"
3210{
3211 switch(driver.ctx_) {
3214 default:
3215 return isc::dhcp::Dhcp6Parser::make_STRING("extended-info-checks", driver.loc_);
3216 }
3217}
3218 YY_BREAK
3219case 43:
3221#line 485 "dhcp6_lexer.ll"
3222{
3223 switch(driver.ctx_) {
3226 default:
3227 return isc::dhcp::Dhcp6Parser::make_STRING("lease-database", driver.loc_);
3228 }
3229}
3230 YY_BREAK
3231case 44:
3233#line 494 "dhcp6_lexer.ll"
3234{
3235 switch(driver.ctx_) {
3238 default:
3239 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-database", driver.loc_);
3240 }
3241}
3242 YY_BREAK
3243case 45:
3245#line 503 "dhcp6_lexer.ll"
3246{
3247 switch(driver.ctx_) {
3250 default:
3251 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-databases", driver.loc_);
3252 }
3253}
3254 YY_BREAK
3255case 46:
3257#line 512 "dhcp6_lexer.ll"
3258{
3259 switch(driver.ctx_) {
3262 default:
3263 return isc::dhcp::Dhcp6Parser::make_STRING("config-control", driver.loc_);
3264 }
3265}
3266 YY_BREAK
3267case 47:
3269#line 521 "dhcp6_lexer.ll"
3270{
3271 switch(driver.ctx_) {
3274 default:
3275 return isc::dhcp::Dhcp6Parser::make_STRING("config-databases", driver.loc_);
3276 }
3277}
3278 YY_BREAK
3279case 48:
3281#line 530 "dhcp6_lexer.ll"
3282{
3283 switch(driver.ctx_) {
3286 default:
3287 return isc::dhcp::Dhcp6Parser::make_STRING("config-fetch-wait-time", driver.loc_);
3288 }
3289}
3290 YY_BREAK
3291case 49:
3293#line 539 "dhcp6_lexer.ll"
3294{
3295 switch(driver.ctx_) {
3297 return isc::dhcp::Dhcp6Parser::make_READONLY(driver.loc_);
3298 default:
3299 return isc::dhcp::Dhcp6Parser::make_STRING("readonly", driver.loc_);
3300 }
3301}
3302 YY_BREAK
3303case 50:
3305#line 548 "dhcp6_lexer.ll"
3306{
3307 switch(driver.ctx_) {
3314 return isc::dhcp::Dhcp6Parser::make_TYPE(driver.loc_);
3315 default:
3316 return isc::dhcp::Dhcp6Parser::make_STRING("type", driver.loc_);
3317 }
3318}
3319 YY_BREAK
3320case 51:
3322#line 562 "dhcp6_lexer.ll"
3323{
3324 switch(driver.ctx_) {
3329 return isc::dhcp::Dhcp6Parser::make_USER(driver.loc_);
3330 default:
3331 return isc::dhcp::Dhcp6Parser::make_STRING("user", driver.loc_);
3332 }
3333}
3334 YY_BREAK
3335case 52:
3337#line 574 "dhcp6_lexer.ll"
3338{
3339 switch(driver.ctx_) {
3344 return isc::dhcp::Dhcp6Parser::make_PASSWORD(driver.loc_);
3345 default:
3346 return isc::dhcp::Dhcp6Parser::make_STRING("password", driver.loc_);
3347 }
3348}
3349 YY_BREAK
3350case 53:
3352#line 586 "dhcp6_lexer.ll"
3353{
3354 switch(driver.ctx_) {
3358 return isc::dhcp::Dhcp6Parser::make_HOST(driver.loc_);
3359 default:
3360 return isc::dhcp::Dhcp6Parser::make_STRING("host", driver.loc_);
3361 }
3362}
3363 YY_BREAK
3364case 54:
3366#line 597 "dhcp6_lexer.ll"
3367{
3368 switch(driver.ctx_) {
3372 return isc::dhcp::Dhcp6Parser::make_PORT(driver.loc_);
3373 default:
3374 return isc::dhcp::Dhcp6Parser::make_STRING("port", driver.loc_);
3375 }
3376}
3377 YY_BREAK
3378case 55:
3380#line 608 "dhcp6_lexer.ll"
3381{
3382 switch(driver.ctx_) {
3387 return isc::dhcp::Dhcp6Parser::make_PERSIST(driver.loc_);
3388 default:
3389 return isc::dhcp::Dhcp6Parser::make_STRING("persist", driver.loc_);
3390 }
3391}
3392 YY_BREAK
3393case 56:
3395#line 620 "dhcp6_lexer.ll"
3396{
3397 switch(driver.ctx_) {
3402 default:
3403 return isc::dhcp::Dhcp6Parser::make_STRING("lfc-interval", driver.loc_);
3404 }
3405}
3406 YY_BREAK
3407case 57:
3409#line 631 "dhcp6_lexer.ll"
3410{
3411 switch(driver.ctx_) {
3416 default:
3417 return isc::dhcp::Dhcp6Parser::make_STRING("connect-timeout", driver.loc_);
3418 }
3419}
3420 YY_BREAK
3421case 58:
3423#line 642 "dhcp6_lexer.ll"
3424{
3425 switch(driver.ctx_) {
3430 default:
3431 return isc::dhcp::Dhcp6Parser::make_STRING("read-timeout", driver.loc_);
3432 }
3433}
3434 YY_BREAK
3435case 59:
3437#line 653 "dhcp6_lexer.ll"
3438{
3439 switch(driver.ctx_) {
3444 default:
3445 return isc::dhcp::Dhcp6Parser::make_STRING("write-timeout", driver.loc_);
3446 }
3447}
3448 YY_BREAK
3449case 60:
3451#line 664 "dhcp6_lexer.ll"
3452{
3453 switch(driver.ctx_) {
3458 default:
3459 return isc::dhcp::Dhcp6Parser::make_STRING("tcp-user-timeout", driver.loc_);
3460 }
3461}
3462 YY_BREAK
3463case 61:
3465#line 675 "dhcp6_lexer.ll"
3466{
3467 switch(driver.ctx_) {
3472 default:
3473 return isc::dhcp::Dhcp6Parser::make_STRING("reconnect-wait-time", driver.loc_);
3474 }
3475}
3476 YY_BREAK
3477case 62:
3479#line 686 "dhcp6_lexer.ll"
3480{
3481 switch(driver.ctx_) {
3485 return isc::dhcp::Dhcp6Parser::make_ON_FAIL(driver.loc_);
3486 default:
3487 return isc::dhcp::Dhcp6Parser::make_STRING("on-fail", driver.loc_);
3488 }
3489}
3490 YY_BREAK
3491case 63:
3493#line 697 "dhcp6_lexer.ll"
3494{
3495 switch(driver.ctx_) {
3498 default:
3499 return isc::dhcp::Dhcp6Parser::make_STRING("stop-retry-exit", driver.loc_);
3500 }
3501}
3502 YY_BREAK
3503case 64:
3505#line 706 "dhcp6_lexer.ll"
3506{
3507 switch(driver.ctx_) {
3510 default:
3511 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-exit", driver.loc_);
3512 }
3513}
3514 YY_BREAK
3515case 65:
3517#line 715 "dhcp6_lexer.ll"
3518{
3519 switch(driver.ctx_) {
3522 default:
3523 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-continue", driver.loc_);
3524 }
3525}
3526 YY_BREAK
3527case 66:
3529#line 724 "dhcp6_lexer.ll"
3530{
3531 switch(driver.ctx_) {
3536 default:
3537 return isc::dhcp::Dhcp6Parser::make_STRING("retry-on-startup", driver.loc_);
3538 }
3539}
3540 YY_BREAK
3541case 67:
3543#line 735 "dhcp6_lexer.ll"
3544{
3545 switch(driver.ctx_) {
3550 default:
3551 return isc::dhcp::Dhcp6Parser::make_STRING("max-reconnect-tries", driver.loc_);
3552 }
3553}
3554 YY_BREAK
3555case 68:
3557#line 746 "dhcp6_lexer.ll"
3558{
3559 switch(driver.ctx_) {
3562 default:
3563 return isc::dhcp::Dhcp6Parser::make_STRING("max-row-errors", driver.loc_);
3564 }
3565}
3566 YY_BREAK
3567case 69:
3569#line 755 "dhcp6_lexer.ll"
3570{
3571 switch(driver.ctx_) {
3577 default:
3578 return isc::dhcp::Dhcp6Parser::make_STRING("trust-anchor", driver.loc_);
3579 }
3580}
3581 YY_BREAK
3582case 70:
3584#line 767 "dhcp6_lexer.ll"
3585{
3586 switch(driver.ctx_) {
3591 return isc::dhcp::Dhcp6Parser::make_CERT_FILE(driver.loc_);
3592 default:
3593 return isc::dhcp::Dhcp6Parser::make_STRING("cert-file", driver.loc_);
3594 }
3595}
3596 YY_BREAK
3597case 71:
3599#line 779 "dhcp6_lexer.ll"
3600{
3601 switch(driver.ctx_) {
3606 return isc::dhcp::Dhcp6Parser::make_KEY_FILE(driver.loc_);
3607 default:
3608 return isc::dhcp::Dhcp6Parser::make_STRING("key-file", driver.loc_);
3609 }
3610}
3611 YY_BREAK
3612case 72:
3614#line 791 "dhcp6_lexer.ll"
3615{
3616 switch(driver.ctx_) {
3620 return isc::dhcp::Dhcp6Parser::make_SSL_MODE(driver.loc_);
3621 default:
3622 return isc::dhcp::Dhcp6Parser::make_STRING("ssl-mode", driver.loc_);
3623 }
3624}
3625 YY_BREAK
3626case 73:
3628#line 802 "dhcp6_lexer.ll"
3629{
3630 switch(driver.ctx_) {
3632 return isc::dhcp::Dhcp6Parser::make_DISABLE(driver.loc_);
3633 default:
3634 return isc::dhcp::Dhcp6Parser::make_STRING("disable", driver.loc_);
3635 }
3636}
3637 YY_BREAK
3638case 74:
3640#line 811 "dhcp6_lexer.ll"
3641{
3642 switch(driver.ctx_) {
3644 return isc::dhcp::Dhcp6Parser::make_PREFER(driver.loc_);
3645 default:
3646 return isc::dhcp::Dhcp6Parser::make_STRING("prefer", driver.loc_);
3647 }
3648}
3649 YY_BREAK
3650case 75:
3652#line 820 "dhcp6_lexer.ll"
3653{
3654 switch(driver.ctx_) {
3656 return isc::dhcp::Dhcp6Parser::make_REQUIRE(driver.loc_);
3657 default:
3658 return isc::dhcp::Dhcp6Parser::make_STRING("require", driver.loc_);
3659 }
3660}
3661 YY_BREAK
3662case 76:
3664#line 829 "dhcp6_lexer.ll"
3665{
3666 switch(driver.ctx_) {
3668 return isc::dhcp::Dhcp6Parser::make_VERIFY_CA(driver.loc_);
3669 default:
3670 return isc::dhcp::Dhcp6Parser::make_STRING("verify-ca", driver.loc_);
3671 }
3672}
3673 YY_BREAK
3674case 77:
3676#line 838 "dhcp6_lexer.ll"
3677{
3678 switch(driver.ctx_) {
3680 return isc::dhcp::Dhcp6Parser::make_VERIFY_FULL(driver.loc_);
3681 default:
3682 return isc::dhcp::Dhcp6Parser::make_STRING("verify-full", driver.loc_);
3683 }
3684}
3685 YY_BREAK
3686case 78:
3688#line 847 "dhcp6_lexer.ll"
3689{
3690 switch(driver.ctx_) {
3694 return isc::dhcp::Dhcp6Parser::make_CIPHER_LIST(driver.loc_);
3695 default:
3696 return isc::dhcp::Dhcp6Parser::make_STRING("cipher-list", driver.loc_);
3697 }
3698}
3699 YY_BREAK
3700case 79:
3702#line 858 "dhcp6_lexer.ll"
3703{
3704 switch(driver.ctx_) {
3710 default:
3711 return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_);
3712 }
3713}
3714 YY_BREAK
3715case 80:
3717#line 870 "dhcp6_lexer.ll"
3718{
3719 switch(driver.ctx_) {
3725 default:
3726 return isc::dhcp::Dhcp6Parser::make_STRING("min-preferred-lifetime", driver.loc_);
3727 }
3728}
3729 YY_BREAK
3730case 81:
3732#line 882 "dhcp6_lexer.ll"
3733{
3734 switch(driver.ctx_) {
3740 default:
3741 return isc::dhcp::Dhcp6Parser::make_STRING("max-preferred-lifetime", driver.loc_);
3742 }
3743}
3744 YY_BREAK
3745case 82:
3747#line 894 "dhcp6_lexer.ll"
3748{
3749 switch(driver.ctx_) {
3755 default:
3756 return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_);
3757 }
3758}
3759 YY_BREAK
3760case 83:
3762#line 906 "dhcp6_lexer.ll"
3763{
3764 switch(driver.ctx_) {
3770 default:
3771 return isc::dhcp::Dhcp6Parser::make_STRING("min-valid-lifetime", driver.loc_);
3772 }
3773}
3774 YY_BREAK
3775case 84:
3777#line 918 "dhcp6_lexer.ll"
3778{
3779 switch(driver.ctx_) {
3785 default:
3786 return isc::dhcp::Dhcp6Parser::make_STRING("max-valid-lifetime", driver.loc_);
3787 }
3788}
3789 YY_BREAK
3790case 85:
3792#line 930 "dhcp6_lexer.ll"
3793{
3794 switch(driver.ctx_) {
3798 return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_);
3799 default:
3800 return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_);
3801 }
3802}
3803 YY_BREAK
3804case 86:
3806#line 941 "dhcp6_lexer.ll"
3807{
3808 switch(driver.ctx_) {
3813 default:
3814 return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_);
3815 }
3816}
3817 YY_BREAK
3818case 87:
3820#line 952 "dhcp6_lexer.ll"
3821{
3822 switch(driver.ctx_) {
3825 default:
3826 return isc::dhcp::Dhcp6Parser::make_STRING("decline-probation-period", driver.loc_);
3827 }
3828}
3829 YY_BREAK
3830case 88:
3832#line 961 "dhcp6_lexer.ll"
3833{
3834 switch(driver.ctx_) {
3836 return isc::dhcp::Dhcp6Parser::make_SERVER_TAG(driver.loc_);
3837 default:
3838 return isc::dhcp::Dhcp6Parser::make_STRING("server-tag", driver.loc_);
3839 }
3840}
3841 YY_BREAK
3842case 89:
3844#line 970 "dhcp6_lexer.ll"
3845{
3846 switch(driver.ctx_) {
3849 default:
3850 return isc::dhcp::Dhcp6Parser::make_STRING("parked-packet-limit", driver.loc_);
3851 }
3852}
3853 YY_BREAK
3854case 90:
3856#line 979 "dhcp6_lexer.ll"
3857{
3858 switch(driver.ctx_) {
3862 return isc::dhcp::Dhcp6Parser::make_ALLOCATOR(driver.loc_);
3863 default:
3864 return isc::dhcp::Dhcp6Parser::make_STRING("allocator", driver.loc_);
3865 }
3866}
3867 YY_BREAK
3868case 91:
3870#line 990 "dhcp6_lexer.ll"
3871{
3872 switch(driver.ctx_) {
3877 default:
3878 return isc::dhcp::Dhcp6Parser::make_STRING("pd-allocator", driver.loc_);
3879 }
3880}
3881 YY_BREAK
3882case 92:
3884#line 1001 "dhcp6_lexer.ll"
3885{
3886 switch(driver.ctx_) {
3889 default:
3890 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3891 }
3892}
3893 YY_BREAK
3894case 93:
3896#line 1010 "dhcp6_lexer.ll"
3897{
3898 switch(driver.ctx_) {
3901 default:
3902 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3903 }
3904}
3905 YY_BREAK
3906case 94:
3908#line 1019 "dhcp6_lexer.ll"
3909{
3910 switch(driver.ctx_) {
3916 default:
3917 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-send-updates", driver.loc_);
3918 }
3919}
3920 YY_BREAK
3921case 95:
3923#line 1031 "dhcp6_lexer.ll"
3924{
3925 switch(driver.ctx_) {
3931 default:
3932 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-no-update", driver.loc_);
3933 }
3934}
3935 YY_BREAK
3936case 96:
3938#line 1043 "dhcp6_lexer.ll"
3939{
3940 switch(driver.ctx_) {
3946 default:
3947 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-client-update", driver.loc_);
3948 }
3949}
3950 YY_BREAK
3951case 97:
3953#line 1055 "dhcp6_lexer.ll"
3954{
3955 switch(driver.ctx_) {
3961 default:
3962 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3963 }
3964}
3965 YY_BREAK
3966case 98:
3968#line 1067 "dhcp6_lexer.ll"
3969{
3970 switch(driver.ctx_) {
3976 default:
3977 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-generated-prefix", driver.loc_);
3978 }
3979}
3980 YY_BREAK
3981case 99:
3983#line 1079 "dhcp6_lexer.ll"
3984{
3985 switch(driver.ctx_) {
3991 default:
3992 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
3993 }
3994}
3995 YY_BREAK
3996case 100:
3998#line 1091 "dhcp6_lexer.ll"
3999{
4000 switch(driver.ctx_) {
4006 default:
4007 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-update-on-renew", driver.loc_);
4008 }
4009}
4010 YY_BREAK
4011case 101:
4013#line 1103 "dhcp6_lexer.ll"
4014{
4015 switch(driver.ctx_) {
4020 default:
4021 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
4022 }
4023}
4024 YY_BREAK
4025case 102:
4027#line 1114 "dhcp6_lexer.ll"
4028{
4029 switch(driver.ctx_) {
4035 default:
4036 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-conflict-resolution-mode", driver.loc_);
4037 }
4038}
4039 YY_BREAK
4040case 103:
4042#line 1126 "dhcp6_lexer.ll"
4043{
4046 }
4047 std::string tmp(yytext+1);
4048 tmp.resize(tmp.size() - 1);
4049 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4050}
4051 YY_BREAK
4052case 104:
4054#line 1135 "dhcp6_lexer.ll"
4055{
4058 }
4059 std::string tmp(yytext+1);
4060 tmp.resize(tmp.size() - 1);
4061 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4062}
4063 YY_BREAK
4064case 105:
4066#line 1144 "dhcp6_lexer.ll"
4067{
4070 }
4071 std::string tmp(yytext+1);
4072 tmp.resize(tmp.size() - 1);
4073 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4074}
4075 YY_BREAK
4076case 106:
4078#line 1153 "dhcp6_lexer.ll"
4079{
4082 }
4083 std::string tmp(yytext+1);
4084 tmp.resize(tmp.size() - 1);
4085 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4086}
4087 YY_BREAK
4088case 107:
4090#line 1162 "dhcp6_lexer.ll"
4091{
4092 switch(driver.ctx_) {
4098 default:
4099 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-percent", driver.loc_);
4100 }
4101}
4102 YY_BREAK
4103case 108:
4105#line 1174 "dhcp6_lexer.ll"
4106{
4107 switch(driver.ctx_) {
4112 return isc::dhcp::Dhcp6Parser::make_DDNS_TTL(driver.loc_);
4113 default:
4114 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl", driver.loc_);
4115 }
4116}
4117 YY_BREAK
4118case 109:
4120#line 1186 "dhcp6_lexer.ll"
4121{
4122 switch(driver.ctx_) {
4128 default:
4129 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-min", driver.loc_);
4130 }
4131}
4132 YY_BREAK
4133case 110:
4135#line 1198 "dhcp6_lexer.ll"
4136{
4137 switch(driver.ctx_) {
4143 default:
4144 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-max", driver.loc_);
4145 }
4146}
4147 YY_BREAK
4148case 111:
4150#line 1210 "dhcp6_lexer.ll"
4151{
4152 switch(driver.ctx_) {
4155 return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_);
4156 default:
4157 return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_);
4158 }
4159}
4160 YY_BREAK
4161case 112:
4163#line 1220 "dhcp6_lexer.ll"
4164{
4165 switch(driver.ctx_) {
4170 default:
4171 return isc::dhcp::Dhcp6Parser::make_STRING("store-extended-info", driver.loc_);
4172 }
4173}
4174 YY_BREAK
4175case 113:
4177#line 1231 "dhcp6_lexer.ll"
4178{
4179 switch (driver.ctx_) {
4181 return Dhcp6Parser::make_SHARED_NETWORKS(driver.loc_);
4182 default:
4183 return Dhcp6Parser::make_STRING("shared-networks", driver.loc_);
4184 }
4185}
4186 YY_BREAK
4187case 114:
4189#line 1240 "dhcp6_lexer.ll"
4190{
4191 switch(driver.ctx_) {
4193 return isc::dhcp::Dhcp6Parser::make_OPTION_DEF(driver.loc_);
4194 default:
4195 return isc::dhcp::Dhcp6Parser::make_STRING("option-def", driver.loc_);
4196 }
4197}
4198 YY_BREAK
4199case 115:
4201#line 1249 "dhcp6_lexer.ll"
4202{
4203 switch(driver.ctx_) {
4211 return isc::dhcp::Dhcp6Parser::make_OPTION_DATA(driver.loc_);
4212 default:
4213 return isc::dhcp::Dhcp6Parser::make_STRING("option-data", driver.loc_);
4214 }
4215}
4216 YY_BREAK
4217case 116:
4219#line 1264 "dhcp6_lexer.ll"
4220{
4221 switch(driver.ctx_) {
4231 return isc::dhcp::Dhcp6Parser::make_NAME(driver.loc_);
4232 default:
4233 return isc::dhcp::Dhcp6Parser::make_STRING("name", driver.loc_);
4234 }
4235}
4236 YY_BREAK
4237case 117:
4239#line 1281 "dhcp6_lexer.ll"
4240{
4241 switch(driver.ctx_) {
4243 return isc::dhcp::Dhcp6Parser::make_DATA(driver.loc_);
4244 default:
4245 return isc::dhcp::Dhcp6Parser::make_STRING("data", driver.loc_);
4246 }
4247}
4248 YY_BREAK
4249case 118:
4251#line 1290 "dhcp6_lexer.ll"
4252{
4253 switch(driver.ctx_) {
4255 return isc::dhcp::Dhcp6Parser::make_ALWAYS_SEND(driver.loc_);
4256 default:
4257 return isc::dhcp::Dhcp6Parser::make_STRING("always-send", driver.loc_);
4258 }
4259}
4260 YY_BREAK
4261case 119:
4263#line 1299 "dhcp6_lexer.ll"
4264{
4265 switch(driver.ctx_) {
4267 return isc::dhcp::Dhcp6Parser::make_NEVER_SEND(driver.loc_);
4268 default:
4269 return isc::dhcp::Dhcp6Parser::make_STRING("never-send", driver.loc_);
4270 }
4271}
4272 YY_BREAK
4273case 120:
4275#line 1308 "dhcp6_lexer.ll"
4276{
4277 switch(driver.ctx_) {
4279 return isc::dhcp::Dhcp6Parser::make_POOLS(driver.loc_);
4280 default:
4281 return isc::dhcp::Dhcp6Parser::make_STRING("pools", driver.loc_);
4282 }
4283}
4284 YY_BREAK
4285case 121:
4287#line 1317 "dhcp6_lexer.ll"
4288{
4289 switch(driver.ctx_) {
4291 return isc::dhcp::Dhcp6Parser::make_PD_POOLS(driver.loc_);
4292 default:
4293 return isc::dhcp::Dhcp6Parser::make_STRING("pd-pools", driver.loc_);
4294 }
4295}
4296 YY_BREAK
4297case 122:
4299#line 1326 "dhcp6_lexer.ll"
4300{
4301 switch(driver.ctx_) {
4303 return isc::dhcp::Dhcp6Parser::make_PREFIX(driver.loc_);
4304 default:
4305 return isc::dhcp::Dhcp6Parser::make_STRING("prefix", driver.loc_);
4306 }
4307}
4308 YY_BREAK
4309case 123:
4311#line 1335 "dhcp6_lexer.ll"
4312{
4313 switch(driver.ctx_) {
4315 return isc::dhcp::Dhcp6Parser::make_PREFIX_LEN(driver.loc_);
4316 default:
4317 return isc::dhcp::Dhcp6Parser::make_STRING("prefix-len", driver.loc_);
4318 }
4319}
4320 YY_BREAK
4321case 124:
4323#line 1344 "dhcp6_lexer.ll"
4324{
4325 switch(driver.ctx_) {
4328 default:
4329 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix", driver.loc_);
4330 }
4331}
4332 YY_BREAK
4333case 125:
4335#line 1353 "dhcp6_lexer.ll"
4336{
4337 switch(driver.ctx_) {
4340 default:
4341 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix-len", driver.loc_);
4342 }
4343}
4344 YY_BREAK
4345case 126:
4347#line 1362 "dhcp6_lexer.ll"
4348{
4349 switch(driver.ctx_) {
4352 default:
4353 return isc::dhcp::Dhcp6Parser::make_STRING("delegated-len", driver.loc_);
4354 }
4355}
4356 YY_BREAK
4357case 127:
4359#line 1371 "dhcp6_lexer.ll"
4360{
4361 switch(driver.ctx_) {
4363 return isc::dhcp::Dhcp6Parser::make_POOL(driver.loc_);
4364 default:
4365 return isc::dhcp::Dhcp6Parser::make_STRING("pool", driver.loc_);
4366 }
4367}
4368 YY_BREAK
4369case 128:
4371#line 1380 "dhcp6_lexer.ll"
4372{
4373 switch(driver.ctx_) {
4376 return isc::dhcp::Dhcp6Parser::make_POOL_ID(driver.loc_);
4377 default:
4378 return isc::dhcp::Dhcp6Parser::make_STRING("pool-id", driver.loc_);
4379 }
4380}
4381 YY_BREAK
4382case 129:
4384#line 1390 "dhcp6_lexer.ll"
4385{
4386 switch(driver.ctx_) {
4407 default:
4408 return isc::dhcp::Dhcp6Parser::make_STRING("user-context", driver.loc_);
4409 }
4410}
4411 YY_BREAK
4412case 130:
4414#line 1417 "dhcp6_lexer.ll"
4415{
4416 switch(driver.ctx_) {
4436 return isc::dhcp::Dhcp6Parser::make_COMMENT(driver.loc_);
4437 default:
4438 return isc::dhcp::Dhcp6Parser::make_STRING("comment", driver.loc_);
4439 }
4440}
4441 YY_BREAK
4442case 131:
4444#line 1444 "dhcp6_lexer.ll"
4445{
4446 switch(driver.ctx_) {
4448 return isc::dhcp::Dhcp6Parser::make_SUBNET(driver.loc_);
4449 default:
4450 return isc::dhcp::Dhcp6Parser::make_STRING("subnet", driver.loc_);
4451 }
4452}
4453 YY_BREAK
4454case 132:
4456#line 1453 "dhcp6_lexer.ll"
4457{
4458 switch(driver.ctx_) {
4461 return isc::dhcp::Dhcp6Parser::make_INTERFACE(driver.loc_);
4462 default:
4463 return isc::dhcp::Dhcp6Parser::make_STRING("interface", driver.loc_);
4464 }
4465}
4466 YY_BREAK
4467case 133:
4469#line 1463 "dhcp6_lexer.ll"
4470{
4471 switch(driver.ctx_) {
4475 default:
4476 return isc::dhcp::Dhcp6Parser::make_STRING("interface-id", driver.loc_);
4477 }
4478}
4479 YY_BREAK
4480case 134:
4482#line 1473 "dhcp6_lexer.ll"
4483{
4484 switch(driver.ctx_) {
4486 return isc::dhcp::Dhcp6Parser::make_ID(driver.loc_);
4487 default:
4488 return isc::dhcp::Dhcp6Parser::make_STRING("id", driver.loc_);
4489 }
4490}
4491 YY_BREAK
4492case 135:
4494#line 1482 "dhcp6_lexer.ll"
4495{
4496 switch(driver.ctx_) {
4500 default:
4501 return isc::dhcp::Dhcp6Parser::make_STRING("rapid-commit", driver.loc_);
4502 }
4503}
4504 YY_BREAK
4505case 136:
4507#line 1492 "dhcp6_lexer.ll"
4508{
4509 switch(driver.ctx_) {
4514 default:
4515 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-global", driver.loc_);
4516 }
4517}
4518 YY_BREAK
4519case 137:
4521#line 1503 "dhcp6_lexer.ll"
4522{
4523 switch(driver.ctx_) {
4528 default:
4529 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-in-subnet", driver.loc_);
4530 }
4531}
4532 YY_BREAK
4533case 138:
4535#line 1514 "dhcp6_lexer.ll"
4536{
4537 switch(driver.ctx_) {
4542 default:
4543 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-out-of-pool", driver.loc_);
4544 }
4545}
4546 YY_BREAK
4547case 139:
4549#line 1525 "dhcp6_lexer.ll"
4550{
4551 switch(driver.ctx_) {
4554 return isc::dhcp::Dhcp6Parser::make_CODE(driver.loc_);
4555 default:
4556 return isc::dhcp::Dhcp6Parser::make_STRING("code", driver.loc_);
4557 }
4558}
4559 YY_BREAK
4560case 140:
4562#line 1535 "dhcp6_lexer.ll"
4563{
4564 switch(driver.ctx_) {
4566 return isc::dhcp::Dhcp6Parser::make_MAC_SOURCES(driver.loc_);
4567 default:
4568 return isc::dhcp::Dhcp6Parser::make_STRING("mac-sources", driver.loc_);
4569 }
4570}
4571 YY_BREAK
4572case 141:
4574#line 1544 "dhcp6_lexer.ll"
4575{
4576 switch(driver.ctx_) {
4579 default:
4580 return isc::dhcp::Dhcp6Parser::make_STRING("relay-supplied-options", driver.loc_);
4581 }
4582}
4583 YY_BREAK
4584case 142:
4586#line 1553 "dhcp6_lexer.ll"
4587{
4588 switch(driver.ctx_) {
4591 default:
4592 return isc::dhcp::Dhcp6Parser::make_STRING("host-reservation-identifiers", driver.loc_);
4593 }
4594}
4595 YY_BREAK
4596case 143:
4598#line 1562 "dhcp6_lexer.ll"
4599{
4600 switch(driver.ctx_) {
4605 default:
4606 return isc::dhcp::Dhcp6Parser::make_STRING("calculate-tee-times", driver.loc_);
4607 }
4608}
4609 YY_BREAK
4610case 144:
4612#line 1573 "dhcp6_lexer.ll"
4613{
4614 switch(driver.ctx_) {
4618 return isc::dhcp::Dhcp6Parser::make_T1_PERCENT(driver.loc_);
4619 default:
4620 return isc::dhcp::Dhcp6Parser::make_STRING("t1-percent", driver.loc_);
4621 }
4622}
4623 YY_BREAK
4624case 145:
4626#line 1584 "dhcp6_lexer.ll"
4627{
4628 switch(driver.ctx_) {
4632 return isc::dhcp::Dhcp6Parser::make_T2_PERCENT(driver.loc_);
4633 default:
4634 return isc::dhcp::Dhcp6Parser::make_STRING("t2-percent", driver.loc_);
4635 }
4636}
4637 YY_BREAK
4638case 146:
4640#line 1595 "dhcp6_lexer.ll"
4641{
4642 switch(driver.ctx_) {
4647 default:
4648 return isc::dhcp::Dhcp6Parser::make_STRING("cache-threshold", driver.loc_);
4649 }
4650}
4651 YY_BREAK
4652case 147:
4654#line 1606 "dhcp6_lexer.ll"
4655{
4656 switch(driver.ctx_) {
4661 default:
4662 return isc::dhcp::Dhcp6Parser::make_STRING("cache-max-age", driver.loc_);
4663 }
4664}
4665 YY_BREAK
4666case 148:
4668#line 1617 "dhcp6_lexer.ll"
4669{
4670 switch(driver.ctx_) {
4675 default:
4676 return isc::dhcp::Dhcp6Parser::make_STRING("adaptive-lease-time-threshold", driver.loc_);
4677 }
4678}
4679 YY_BREAK
4680case 149:
4682#line 1628 "dhcp6_lexer.ll"
4683{
4684 switch(driver.ctx_) {
4686 return isc::dhcp::Dhcp6Parser::make_LOGGERS(driver.loc_);
4687 default:
4688 return isc::dhcp::Dhcp6Parser::make_STRING("loggers", driver.loc_);
4689 }
4690}
4691 YY_BREAK
4692case 150:
4694#line 1637 "dhcp6_lexer.ll"
4695{
4696 switch(driver.ctx_) {
4699 default:
4700 return isc::dhcp::Dhcp6Parser::make_STRING("output_options", driver.loc_);
4701 }
4702}
4703 YY_BREAK
4704case 151:
4706#line 1646 "dhcp6_lexer.ll"
4707{
4708 switch(driver.ctx_) {
4711 default:
4712 return isc::dhcp::Dhcp6Parser::make_STRING("output-options", driver.loc_);
4713 }
4714}
4715 YY_BREAK
4716case 152:
4718#line 1655 "dhcp6_lexer.ll"
4719{
4720 switch(driver.ctx_) {
4722 return isc::dhcp::Dhcp6Parser::make_OUTPUT(driver.loc_);
4723 default:
4724 return isc::dhcp::Dhcp6Parser::make_STRING("output", driver.loc_);
4725 }
4726}
4727 YY_BREAK
4728case 153:
4730#line 1664 "dhcp6_lexer.ll"
4731{
4732 switch(driver.ctx_) {
4734 return isc::dhcp::Dhcp6Parser::make_FLUSH(driver.loc_);
4735 default:
4736 return isc::dhcp::Dhcp6Parser::make_STRING("flush", driver.loc_);
4737 }
4738}
4739 YY_BREAK
4740case 154:
4742#line 1673 "dhcp6_lexer.ll"
4743{
4744 switch(driver.ctx_) {
4746 return isc::dhcp::Dhcp6Parser::make_MAXSIZE(driver.loc_);
4747 default:
4748 return isc::dhcp::Dhcp6Parser::make_STRING("maxsize", driver.loc_);
4749 }
4750}
4751 YY_BREAK
4752case 155:
4754#line 1682 "dhcp6_lexer.ll"
4755{
4756 switch(driver.ctx_) {
4758 return isc::dhcp::Dhcp6Parser::make_MAXVER(driver.loc_);
4759 default:
4760 return isc::dhcp::Dhcp6Parser::make_STRING("maxver", driver.loc_);
4761 }
4762}
4763 YY_BREAK
4764case 156:
4766#line 1691 "dhcp6_lexer.ll"
4767{
4768 switch(driver.ctx_) {
4770 return isc::dhcp::Dhcp6Parser::make_PATTERN(driver.loc_);
4771 default:
4772 return isc::dhcp::Dhcp6Parser::make_STRING("pattern", driver.loc_);
4773 }
4774}
4775 YY_BREAK
4776case 157:
4778#line 1700 "dhcp6_lexer.ll"
4779{
4780 switch(driver.ctx_) {
4782 return isc::dhcp::Dhcp6Parser::make_DEBUGLEVEL(driver.loc_);
4783 default:
4784 return isc::dhcp::Dhcp6Parser::make_STRING("debuglevel", driver.loc_);
4785 }
4786}
4787 YY_BREAK
4788case 158:
4790#line 1709 "dhcp6_lexer.ll"
4791{
4792 switch(driver.ctx_) {
4794 return isc::dhcp::Dhcp6Parser::make_SEVERITY(driver.loc_);
4795 default:
4796 return isc::dhcp::Dhcp6Parser::make_STRING("severity", driver.loc_);
4797 }
4798}
4799 YY_BREAK
4800case 159:
4802#line 1718 "dhcp6_lexer.ll"
4803{
4804 switch(driver.ctx_) {
4813 default:
4814 return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", driver.loc_);
4815 }
4816}
4817 YY_BREAK
4818case 160:
4820#line 1733 "dhcp6_lexer.ll"
4821{
4822 switch(driver.ctx_) {
4828 default:
4829 return isc::dhcp::Dhcp6Parser::make_STRING("require-client-classes", driver.loc_);
4830 }
4831}
4832 YY_BREAK
4833case 161:
4835#line 1745 "dhcp6_lexer.ll"
4836{
4837 switch(driver.ctx_) {
4843 default:
4844 return isc::dhcp::Dhcp6Parser::make_STRING("evaluate-additional-classes", driver.loc_);
4845 }
4846}
4847 YY_BREAK
4848case 162:
4850#line 1757 "dhcp6_lexer.ll"
4851{
4852 switch(driver.ctx_) {
4859 default:
4860 return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_);
4861 }
4862}
4863 YY_BREAK
4864case 163:
4866#line 1770 "dhcp6_lexer.ll"
4867{
4868 switch(driver.ctx_) {
4870 return isc::dhcp::Dhcp6Parser::make_TEST(driver.loc_);
4871 default:
4872 return isc::dhcp::Dhcp6Parser::make_STRING("test", driver.loc_);
4873 }
4874}
4875 YY_BREAK
4876case 164:
4878#line 1779 "dhcp6_lexer.ll"
4879{
4880 switch(driver.ctx_) {
4883 default:
4884 return isc::dhcp::Dhcp6Parser::make_STRING("template-test", driver.loc_);
4885 }
4886}
4887 YY_BREAK
4888case 165:
4890#line 1788 "dhcp6_lexer.ll"
4891{
4892 switch(driver.ctx_) {
4895 default:
4896 return isc::dhcp::Dhcp6Parser::make_STRING("only-if-required", driver.loc_);
4897 }
4898}
4899 YY_BREAK
4900case 166:
4902#line 1797 "dhcp6_lexer.ll"
4903{
4904 switch(driver.ctx_) {
4907 default:
4908 return isc::dhcp::Dhcp6Parser::make_STRING("only-in-additional-list", driver.loc_);
4909 }
4910}
4911 YY_BREAK
4912case 167:
4914#line 1806 "dhcp6_lexer.ll"
4915{
4916 switch(driver.ctx_) {
4920 default:
4921 return isc::dhcp::Dhcp6Parser::make_STRING("reservations", driver.loc_);
4922 }
4923}
4924 YY_BREAK
4925case 168:
4927#line 1816 "dhcp6_lexer.ll"
4928{
4929 switch(driver.ctx_) {
4933 default:
4934 return isc::dhcp::Dhcp6Parser::make_STRING("ip-addresses", driver.loc_);
4935 }
4936}
4937 YY_BREAK
4938case 169:
4940#line 1826 "dhcp6_lexer.ll"
4941{
4942 switch(driver.ctx_) {
4944 return isc::dhcp::Dhcp6Parser::make_PREFIXES(driver.loc_);
4945 default:
4946 return isc::dhcp::Dhcp6Parser::make_STRING("prefixes", driver.loc_);
4947 }
4948}
4949 YY_BREAK
4950case 170:
4952#line 1835 "dhcp6_lexer.ll"
4953{
4954 switch(driver.ctx_) {
4957 default:
4958 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefixes", driver.loc_);
4959 }
4960}
4961 YY_BREAK
4962case 171:
4964#line 1844 "dhcp6_lexer.ll"
4965{
4966 switch(driver.ctx_) {
4970 return isc::dhcp::Dhcp6Parser::make_DUID(driver.loc_);
4971 default:
4972 return isc::dhcp::Dhcp6Parser::make_STRING("duid", driver.loc_);
4973 }
4974}
4975 YY_BREAK
4976case 172:
4978#line 1855 "dhcp6_lexer.ll"
4979{
4980 switch(driver.ctx_) {
4983 return isc::dhcp::Dhcp6Parser::make_HW_ADDRESS(driver.loc_);
4984 default:
4985 return isc::dhcp::Dhcp6Parser::make_STRING("hw-address", driver.loc_);
4986 }
4987}
4988 YY_BREAK
4989case 173:
4991#line 1865 "dhcp6_lexer.ll"
4992{
4993 switch(driver.ctx_) {
4995 return isc::dhcp::Dhcp6Parser::make_HOSTNAME(driver.loc_);
4996 default:
4997 return isc::dhcp::Dhcp6Parser::make_STRING("hostname", driver.loc_);
4998 }
4999}
5000 YY_BREAK
5001case 174:
5003#line 1874 "dhcp6_lexer.ll"
5004{
5005 switch(driver.ctx_) {
5008 return isc::dhcp::Dhcp6Parser::make_FLEX_ID(driver.loc_);
5009 default:
5010 return isc::dhcp::Dhcp6Parser::make_STRING("flex-id", driver.loc_);
5011 }
5012}
5013 YY_BREAK
5014case 175:
5016#line 1884 "dhcp6_lexer.ll"
5017{
5018 switch(driver.ctx_) {
5021 return isc::dhcp::Dhcp6Parser::make_SPACE(driver.loc_);
5022 default:
5023 return isc::dhcp::Dhcp6Parser::make_STRING("space", driver.loc_);
5024 }
5025}
5026 YY_BREAK
5027case 176:
5029#line 1894 "dhcp6_lexer.ll"
5030{
5031 switch(driver.ctx_) {
5033 return isc::dhcp::Dhcp6Parser::make_CSV_FORMAT(driver.loc_);
5034 default:
5035 return isc::dhcp::Dhcp6Parser::make_STRING("csv-format", driver.loc_);
5036 }
5037}
5038 YY_BREAK
5039case 177:
5041#line 1903 "dhcp6_lexer.ll"
5042{
5043 switch(driver.ctx_) {
5046 default:
5047 return isc::dhcp::Dhcp6Parser::make_STRING("record-types", driver.loc_);
5048 }
5049}
5050 YY_BREAK
5051case 178:
5053#line 1912 "dhcp6_lexer.ll"
5054{
5055 switch(driver.ctx_) {
5057 return isc::dhcp::Dhcp6Parser::make_ENCAPSULATE(driver.loc_);
5058 default:
5059 return isc::dhcp::Dhcp6Parser::make_STRING("encapsulate", driver.loc_);
5060 }
5061}
5062 YY_BREAK
5063case 179:
5065#line 1921 "dhcp6_lexer.ll"
5066{
5067 switch(driver.ctx_) {
5069 return isc::dhcp::Dhcp6Parser::make_ARRAY(driver.loc_);
5070 default:
5071 return isc::dhcp::Dhcp6Parser::make_STRING("array", driver.loc_);
5072 }
5073}
5074 YY_BREAK
5075case 180:
5077#line 1930 "dhcp6_lexer.ll"
5078{
5079 switch(driver.ctx_) {
5082 return isc::dhcp::Dhcp6Parser::make_RELAY(driver.loc_);
5083 default:
5084 return isc::dhcp::Dhcp6Parser::make_STRING("relay", driver.loc_);
5085 }
5086}
5087 YY_BREAK
5088case 181:
5090#line 1940 "dhcp6_lexer.ll"
5091{
5092 switch(driver.ctx_) {
5095 default:
5096 return isc::dhcp::Dhcp6Parser::make_STRING("hooks-libraries", driver.loc_);
5097 }
5098}
5099 YY_BREAK
5100case 182:
5102#line 1949 "dhcp6_lexer.ll"
5103{
5104 switch(driver.ctx_) {
5106 return isc::dhcp::Dhcp6Parser::make_PARAMETERS(driver.loc_);
5107 default:
5108 return isc::dhcp::Dhcp6Parser::make_STRING("parameters", driver.loc_);
5109 }
5110}
5111 YY_BREAK
5112case 183:
5114#line 1958 "dhcp6_lexer.ll"
5115{
5116 switch(driver.ctx_) {
5118 return isc::dhcp::Dhcp6Parser::make_LIBRARY(driver.loc_);
5119 default:
5120 return isc::dhcp::Dhcp6Parser::make_STRING("library", driver.loc_);
5121 }
5122}
5123 YY_BREAK
5124case 184:
5126#line 1967 "dhcp6_lexer.ll"
5127{
5128 switch(driver.ctx_) {
5130 return isc::dhcp::Dhcp6Parser::make_SERVER_ID(driver.loc_);
5131 default:
5132 return isc::dhcp::Dhcp6Parser::make_STRING("server-id", driver.loc_);
5133 }
5134}
5135 YY_BREAK
5136case 185:
5138#line 1976 "dhcp6_lexer.ll"
5139{
5140 switch(driver.ctx_) {
5142 return isc::dhcp::Dhcp6Parser::make_LLT(driver.loc_);
5143 default:
5144 return isc::dhcp::Dhcp6Parser::make_STRING("LLT", driver.loc_);
5145 }
5146}
5147 YY_BREAK
5148case 186:
5150#line 1985 "dhcp6_lexer.ll"
5151{
5152 switch(driver.ctx_) {
5154 return isc::dhcp::Dhcp6Parser::make_EN(driver.loc_);
5155 default:
5156 return isc::dhcp::Dhcp6Parser::make_STRING("EN", driver.loc_);
5157 }
5158}
5159 YY_BREAK
5160case 187:
5162#line 1994 "dhcp6_lexer.ll"
5163{
5164 switch(driver.ctx_) {
5166 return isc::dhcp::Dhcp6Parser::make_LL(driver.loc_);
5167 default:
5168 return isc::dhcp::Dhcp6Parser::make_STRING("LL", driver.loc_);
5169 }
5170}
5171 YY_BREAK
5172case 188:
5174#line 2003 "dhcp6_lexer.ll"
5175{
5176 switch(driver.ctx_) {
5178 return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(driver.loc_);
5179 default:
5180 return isc::dhcp::Dhcp6Parser::make_STRING("identifier", driver.loc_);
5181 }
5182}
5183 YY_BREAK
5184case 189:
5186#line 2012 "dhcp6_lexer.ll"
5187{
5188 switch(driver.ctx_) {
5190 return isc::dhcp::Dhcp6Parser::make_HTYPE(driver.loc_);
5191 default:
5192 return isc::dhcp::Dhcp6Parser::make_STRING("htype", driver.loc_);
5193 }
5194}
5195 YY_BREAK
5196case 190:
5198#line 2021 "dhcp6_lexer.ll"
5199{
5200 switch(driver.ctx_) {
5202 return isc::dhcp::Dhcp6Parser::make_TIME(driver.loc_);
5203 default:
5204 return isc::dhcp::Dhcp6Parser::make_STRING("time", driver.loc_);
5205 }
5206}
5207 YY_BREAK
5208case 191:
5210#line 2030 "dhcp6_lexer.ll"
5211{
5212 switch(driver.ctx_) {
5215 default:
5216 return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", driver.loc_);
5217 }
5218}
5219 YY_BREAK
5220case 192:
5222#line 2039 "dhcp6_lexer.ll"
5223{
5224 switch(driver.ctx_) {
5227 default:
5228 return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", driver.loc_);
5229 }
5230}
5231 YY_BREAK
5232case 193:
5234#line 2048 "dhcp6_lexer.ll"
5235{
5236 switch(driver.ctx_) {
5239 default:
5240 return isc::dhcp::Dhcp6Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
5241 }
5242}
5243 YY_BREAK
5244case 194:
5246#line 2057 "dhcp6_lexer.ll"
5247{
5248 switch(driver.ctx_) {
5251 default:
5252 return isc::dhcp::Dhcp6Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
5253 }
5254}
5255 YY_BREAK
5256case 195:
5258#line 2066 "dhcp6_lexer.ll"
5259{
5260 switch(driver.ctx_) {
5263 default:
5264 return isc::dhcp::Dhcp6Parser::make_STRING("hold-reclaimed-time", driver.loc_);
5265 }
5266}
5267 YY_BREAK
5268case 196:
5270#line 2075 "dhcp6_lexer.ll"
5271{
5272 switch(driver.ctx_) {
5275 default:
5276 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-leases", driver.loc_);
5277 }
5278}
5279 YY_BREAK
5280case 197:
5282#line 2084 "dhcp6_lexer.ll"
5283{
5284 switch(driver.ctx_) {
5287 default:
5288 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-time", driver.loc_);
5289 }
5290}
5291 YY_BREAK
5292case 198:
5294#line 2093 "dhcp6_lexer.ll"
5295{
5296 switch(driver.ctx_) {
5299 default:
5300 return isc::dhcp::Dhcp6Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
5301 }
5302}
5303 YY_BREAK
5304case 199:
5306#line 2102 "dhcp6_lexer.ll"
5307{
5308 switch(driver.ctx_) {
5311 default:
5312 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp4o6-port", driver.loc_);
5313 }
5314}
5315 YY_BREAK
5316case 200:
5318#line 2111 "dhcp6_lexer.ll"
5319{
5320 switch(driver.ctx_) {
5323 default:
5324 return isc::dhcp::Dhcp6Parser::make_STRING("multi-threading", driver.loc_);
5325 }
5326}
5327 YY_BREAK
5328case 201:
5330#line 2120 "dhcp6_lexer.ll"
5331{
5332 switch(driver.ctx_) {
5335 default:
5336 return isc::dhcp::Dhcp6Parser::make_STRING("enable-multi-threading", driver.loc_);
5337 }
5338}
5339 YY_BREAK
5340case 202:
5342#line 2129 "dhcp6_lexer.ll"
5343{
5344 switch(driver.ctx_) {
5347 default:
5348 return isc::dhcp::Dhcp6Parser::make_STRING("thread-pool-size", driver.loc_);
5349 }
5350}
5351 YY_BREAK
5352case 203:
5354#line 2138 "dhcp6_lexer.ll"
5355{
5356 switch(driver.ctx_) {
5359 default:
5360 return isc::dhcp::Dhcp6Parser::make_STRING("packet-queue-size", driver.loc_);
5361 }
5362}
5363 YY_BREAK
5364case 204:
5366#line 2147 "dhcp6_lexer.ll"
5367{
5368 switch(driver.ctx_) {
5371 default:
5372 return isc::dhcp::Dhcp6Parser::make_STRING("control-socket", driver.loc_);
5373 }
5374}
5375 YY_BREAK
5376case 205:
5378#line 2156 "dhcp6_lexer.ll"
5379{
5380 switch(driver.ctx_) {
5383 default:
5384 return isc::dhcp::Dhcp6Parser::make_STRING("control-sockets", driver.loc_);
5385 }
5386}
5387 YY_BREAK
5388case 206:
5390#line 2165 "dhcp6_lexer.ll"
5391{
5392 switch(driver.ctx_) {
5394 return isc::dhcp::Dhcp6Parser::make_SOCKET_TYPE(driver.loc_);
5395 default:
5396 return isc::dhcp::Dhcp6Parser::make_STRING("socket-type", driver.loc_);
5397 }
5398}
5399 YY_BREAK
5400case 207:
5402#line 2174 "dhcp6_lexer.ll"
5403{
5404 switch(driver.ctx_) {
5406 return isc::dhcp::Dhcp6Parser::make_UNIX(driver.loc_);
5407 default:
5408 return isc::dhcp::Dhcp6Parser::make_STRING("unix", driver.loc_);
5409 }
5410}
5411 YY_BREAK
5412case 208:
5414#line 2183 "dhcp6_lexer.ll"
5415{
5416 switch(driver.ctx_) {
5418 return isc::dhcp::Dhcp6Parser::make_HTTP(driver.loc_);
5419 default:
5420 return isc::dhcp::Dhcp6Parser::make_STRING("http", driver.loc_);
5421 }
5422}
5423 YY_BREAK
5424case 209:
5426#line 2192 "dhcp6_lexer.ll"
5427{
5428 switch(driver.ctx_) {
5430 return isc::dhcp::Dhcp6Parser::make_HTTPS(driver.loc_);
5431 default:
5432 return isc::dhcp::Dhcp6Parser::make_STRING("https", driver.loc_);
5433 }
5434}
5435 YY_BREAK
5436case 210:
5438#line 2201 "dhcp6_lexer.ll"
5439{
5440 switch(driver.ctx_) {
5442 return isc::dhcp::Dhcp6Parser::make_SOCKET_NAME(driver.loc_);
5443 default:
5444 return isc::dhcp::Dhcp6Parser::make_STRING("socket-name", driver.loc_);
5445 }
5446}
5447 YY_BREAK
5448case 211:
5450#line 2210 "dhcp6_lexer.ll"
5451{
5452 switch(driver.ctx_) {
5455 default:
5456 return isc::dhcp::Dhcp6Parser::make_STRING("socket-address", driver.loc_);
5457 }
5458}
5459 YY_BREAK
5460case 212:
5462#line 2219 "dhcp6_lexer.ll"
5463{
5464 switch(driver.ctx_) {
5466 return isc::dhcp::Dhcp6Parser::make_SOCKET_PORT(driver.loc_);
5467 default:
5468 return isc::dhcp::Dhcp6Parser::make_STRING("socket-port", driver.loc_);
5469 }
5470}
5471 YY_BREAK
5472case 213:
5474#line 2228 "dhcp6_lexer.ll"
5475{
5476 switch(driver.ctx_) {
5479 default:
5480 return isc::dhcp::Dhcp6Parser::make_STRING("authentication", driver.loc_);
5481 }
5482}
5483 YY_BREAK
5484case 214:
5486#line 2237 "dhcp6_lexer.ll"
5487{
5488 switch(driver.ctx_) {
5490 return isc::dhcp::Dhcp6Parser::make_BASIC(driver.loc_);
5491 default:
5492 return isc::dhcp::Dhcp6Parser::make_STRING("basic", driver.loc_);
5493 }
5494}
5495 YY_BREAK
5496case 215:
5498#line 2246 "dhcp6_lexer.ll"
5499{
5500 switch(driver.ctx_) {
5502 return isc::dhcp::Dhcp6Parser::make_REALM(driver.loc_);
5503 default:
5504 return isc::dhcp::Dhcp6Parser::make_STRING("realm", driver.loc_);
5505 }
5506}
5507 YY_BREAK
5508case 216:
5510#line 2255 "dhcp6_lexer.ll"
5511{
5512 switch(driver.ctx_) {
5514 return isc::dhcp::Dhcp6Parser::make_DIRECTORY(driver.loc_);
5515 default:
5516 return isc::dhcp::Dhcp6Parser::make_STRING("directory", driver.loc_);
5517 }
5518}
5519 YY_BREAK
5520case 217:
5522#line 2264 "dhcp6_lexer.ll"
5523{
5524 switch(driver.ctx_) {
5526 return isc::dhcp::Dhcp6Parser::make_CLIENTS(driver.loc_);
5527 default:
5528 return isc::dhcp::Dhcp6Parser::make_STRING("clients", driver.loc_);
5529 }
5530}
5531 YY_BREAK
5532case 218:
5534#line 2273 "dhcp6_lexer.ll"
5535{
5536 switch(driver.ctx_) {
5538 return isc::dhcp::Dhcp6Parser::make_USER_FILE(driver.loc_);
5539 default:
5540 return isc::dhcp::Dhcp6Parser::make_STRING("user-file", driver.loc_);
5541 }
5542}
5543 YY_BREAK
5544case 219:
5546#line 2282 "dhcp6_lexer.ll"
5547{
5548 switch(driver.ctx_) {
5551 default:
5552 return isc::dhcp::Dhcp6Parser::make_STRING("password-file", driver.loc_);
5553 }
5554}
5555 YY_BREAK
5556case 220:
5558#line 2291 "dhcp6_lexer.ll"
5559{
5560 switch(driver.ctx_) {
5563 default:
5564 return isc::dhcp::Dhcp6Parser::make_STRING("cert-required", driver.loc_);
5565 }
5566}
5567 YY_BREAK
5568case 221:
5570#line 2300 "dhcp6_lexer.ll"
5571{
5572 switch(driver.ctx_) {
5575 default:
5576 return isc::dhcp::Dhcp6Parser::make_STRING("http-headers", driver.loc_);
5577 }
5578}
5579 YY_BREAK
5580case 222:
5582#line 2309 "dhcp6_lexer.ll"
5583{
5584 switch(driver.ctx_) {
5586 return isc::dhcp::Dhcp6Parser::make_VALUE(driver.loc_);
5587 default:
5588 return isc::dhcp::Dhcp6Parser::make_STRING("value", driver.loc_);
5589 }
5590}
5591 YY_BREAK
5592case 223:
5594#line 2318 "dhcp6_lexer.ll"
5595{
5596 switch(driver.ctx_) {
5599 default:
5600 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-queue-control", driver.loc_);
5601 }
5602}
5603 YY_BREAK
5604case 224:
5606#line 2327 "dhcp6_lexer.ll"
5607{
5608 switch(driver.ctx_) {
5611 default:
5612 return isc::dhcp::Dhcp6Parser::make_STRING("enable-queue", driver.loc_);
5613 }
5614}
5615 YY_BREAK
5616case 225:
5618#line 2336 "dhcp6_lexer.ll"
5619{
5620 switch(driver.ctx_) {
5622 return isc::dhcp::Dhcp6Parser::make_QUEUE_TYPE(driver.loc_);
5623 default:
5624 return isc::dhcp::Dhcp6Parser::make_STRING("queue-type", driver.loc_);
5625 }
5626}
5627 YY_BREAK
5628case 226:
5630#line 2345 "dhcp6_lexer.ll"
5631{
5632 switch(driver.ctx_) {
5634 return isc::dhcp::Dhcp6Parser::make_CAPACITY(driver.loc_);
5635 default:
5636 return isc::dhcp::Dhcp6Parser::make_STRING("capacity", driver.loc_);
5637 }
5638}
5639 YY_BREAK
5640case 227:
5642#line 2354 "dhcp6_lexer.ll"
5643{
5644 switch(driver.ctx_) {
5646 return isc::dhcp::Dhcp6Parser::make_DHCP_DDNS(driver.loc_);
5647 default:
5648 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-ddns", driver.loc_);
5649 }
5650}
5651 YY_BREAK
5652case 228:
5654#line 2363 "dhcp6_lexer.ll"
5655{
5656 switch(driver.ctx_) {
5659 default:
5660 return isc::dhcp::Dhcp6Parser::make_STRING("early-global-reservations-lookup", driver.loc_);
5661 }
5662}
5663 YY_BREAK
5664case 229:
5666#line 2372 "dhcp6_lexer.ll"
5667{
5668 switch(driver.ctx_) {
5671 default:
5672 return isc::dhcp::Dhcp6Parser::make_STRING("ip-reservations-unique", driver.loc_);
5673 }
5674}
5675 YY_BREAK
5676case 230:
5678#line 2381 "dhcp6_lexer.ll"
5679{
5680 switch(driver.ctx_) {
5683 default:
5684 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-lookup-first", driver.loc_);
5685 }
5686}
5687 YY_BREAK
5688case 231:
5690#line 2390 "dhcp6_lexer.ll"
5691{
5692 switch(driver.ctx_) {
5695 default:
5696 return isc::dhcp::Dhcp6Parser::make_STRING("allow-address-registration", driver.loc_);
5697 }
5698}
5699 YY_BREAK
5700case 232:
5702#line 2399 "dhcp6_lexer.ll"
5703{
5704 switch(driver.ctx_) {
5707 default:
5708 return isc::dhcp::Dhcp6Parser::make_STRING("compatibility", driver.loc_);
5709 }
5710}
5711 YY_BREAK
5712case 233:
5714#line 2408 "dhcp6_lexer.ll"
5715{
5716 switch(driver.ctx_) {
5719 default:
5720 return isc::dhcp::Dhcp6Parser::make_STRING("lenient-option-parsing", driver.loc_);
5721 }
5722}
5723 YY_BREAK
5724case 234:
5726#line 2417 "dhcp6_lexer.ll"
5727{
5728 /* A string has been matched. It contains the actual string and single quotes.
5729 We need to get those quotes out of the way and just use its content, e.g.
5730 for 'foo' we should get foo */
5731 std::string raw(yytext+1);
5732 size_t len = raw.size() - 1;
5733 raw.resize(len);
5734 std::string decoded;
5735 decoded.reserve(len);
5736 for (size_t pos = 0; pos < len; ++pos) {
5737 int b = 0;
5738 char c = raw[pos];
5739 switch (c) {
5740 case '"':
5741 /* impossible condition */
5742 driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
5743 break;
5744 case '\\':
5745 ++pos;
5746 if (pos >= len) {
5747 /* impossible condition */
5748 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
5749 }
5750 c = raw[pos];
5751 switch (c) {
5752 case '"':
5753 case '\\':
5754 case '/':
5755 decoded.push_back(c);
5756 break;
5757 case 'b':
5758 decoded.push_back('\b');
5759 break;
5760 case 'f':
5761 decoded.push_back('\f');
5762 break;
5763 case 'n':
5764 decoded.push_back('\n');
5765 break;
5766 case 'r':
5767 decoded.push_back('\r');
5768 break;
5769 case 't':
5770 decoded.push_back('\t');
5771 break;
5772 case 'u':
5773 /* support only \u0000 to \u00ff */
5774 ++pos;
5775 if (pos + 4 > len) {
5776 /* impossible condition */
5777 driver.error(driver.loc_,
5778 "Overflow unicode escape in \"" + raw + "\"");
5779 }
5780 if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
5781 driver.error(driver.loc_,
5782 "Unsupported unicode escape in \"" + raw + "\"",
5783 pos + 1);
5784 }
5785 pos += 2;
5786 c = raw[pos];
5787 if ((c >= '0') && (c <= '9')) {
5788 b = (c - '0') << 4;
5789 } else if ((c >= 'A') && (c <= 'F')) {
5790 b = (c - 'A' + 10) << 4;
5791 } else if ((c >= 'a') && (c <= 'f')) {
5792 b = (c - 'a' + 10) << 4;
5793 } else {
5794 /* impossible condition */
5795 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5796 }
5797 pos++;
5798 c = raw[pos];
5799 if ((c >= '0') && (c <= '9')) {
5800 b |= c - '0';
5801 } else if ((c >= 'A') && (c <= 'F')) {
5802 b |= c - 'A' + 10;
5803 } else if ((c >= 'a') && (c <= 'f')) {
5804 b |= c - 'a' + 10;
5805 } else {
5806 /* impossible condition */
5807 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5808 }
5809 decoded.push_back(static_cast<char>(b & 0xff));
5810 break;
5811 default:
5812 /* impossible condition */
5813 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5814 }
5815 break;
5816 default:
5817 if ((c >= 0) && (c < 0x20)) {
5818 /* impossible condition */
5819 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5820 }
5821 decoded.push_back(c);
5822 }
5823 }
5824
5825 return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
5826}
5827 YY_BREAK
5828case 235:
5829/* rule 235 can match eol */
5831#line 2518 "dhcp6_lexer.ll"
5832{
5833 /* Bad string with a forbidden control character inside */
5834 std::string raw(yytext+1);
5835 size_t len = raw.size() - 1;
5836 size_t pos = 0;
5837 for (; pos < len; ++pos) {
5838 char c = raw[pos];
5839 if ((c >= 0) && (c < 0x20)) {
5840 break;
5841 }
5842 }
5843 driver.error(driver.loc_,
5844 "Invalid control in " + std::string(yytext),
5845 pos + 1);
5846}
5847 YY_BREAK
5848case 236:
5849/* rule 236 can match eol */
5851#line 2534 "dhcp6_lexer.ll"
5852{
5853 /* Bad string with a bad escape inside */
5854 std::string raw(yytext+1);
5855 size_t len = raw.size() - 1;
5856 size_t pos = 0;
5857 bool found = false;
5858 for (; pos < len; ++pos) {
5859 if (found) {
5860 break;
5861 }
5862 char c = raw[pos];
5863 if (c == '\\') {
5864 ++pos;
5865 c = raw[pos];
5866 switch (c) {
5867 case '"':
5868 case '\\':
5869 case '/':
5870 case 'b':
5871 case 'f':
5872 case 'n':
5873 case 'r':
5874 case 't':
5875 break;
5876 case 'u':
5877 if ((pos + 4 > len) ||
5878 !std::isxdigit(raw[pos + 1]) ||
5879 !std::isxdigit(raw[pos + 2]) ||
5880 !std::isxdigit(raw[pos + 3]) ||
5881 !std::isxdigit(raw[pos + 4])) {
5882 found = true;
5883 }
5884 break;
5885 default:
5886 found = true;
5887 break;
5888 }
5889 }
5890 }
5891 /* The rule stops on the first " including on \" so add ... in this case */
5892 std::string trailer = "";
5893 if (raw[len - 1] == '\\') {
5894 trailer = "...";
5895 }
5896 driver.error(driver.loc_,
5897 "Bad escape in " + std::string(yytext) + trailer,
5898 pos);
5899}
5900 YY_BREAK
5901case 237:
5903#line 2583 "dhcp6_lexer.ll"
5904{
5905 /* Bad string with an open escape at the end */
5906 std::string raw(yytext+1);
5907 driver.error(driver.loc_,
5908 "Overflow escape in " + std::string(yytext),
5909 raw.size() + 1);
5910}
5911 YY_BREAK
5912case 238:
5914#line 2591 "dhcp6_lexer.ll"
5915{
5916 /* Bad string with an open unicode escape at the end */
5917 std::string raw(yytext+1);
5918 size_t pos = raw.size() - 1;
5919 for (; pos > 0; --pos) {
5920 char c = raw[pos];
5921 if (c == 'u') {
5922 break;
5923 }
5924 }
5925 driver.error(driver.loc_,
5926 "Overflow unicode escape in " + std::string(yytext),
5927 pos + 1);
5928}
5929 YY_BREAK
5930case 239:
5932#line 2606 "dhcp6_lexer.ll"
5933{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
5934 YY_BREAK
5935case 240:
5937#line 2607 "dhcp6_lexer.ll"
5938{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
5939 YY_BREAK
5940case 241:
5942#line 2608 "dhcp6_lexer.ll"
5943{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
5944 YY_BREAK
5945case 242:
5947#line 2609 "dhcp6_lexer.ll"
5948{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
5949 YY_BREAK
5950case 243:
5952#line 2610 "dhcp6_lexer.ll"
5953{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
5954 YY_BREAK
5955case 244:
5957#line 2611 "dhcp6_lexer.ll"
5958{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
5959 YY_BREAK
5960case 245:
5962#line 2613 "dhcp6_lexer.ll"
5963{
5964 /* Integer with leading zeros. */
5965 std::string tmp(yytext);
5966 int64_t integer = 0;
5967 try {
5968 /* In substring we want to use negative values (e.g. -1).
5969 In enterprise-id we need to use values up to 0xffffffff.
5970 To cover both of those use cases, we need at least
5971 int64_t. */
5972 integer = boost::lexical_cast<int64_t>(tmp);
5973 } catch (const boost::bad_lexical_cast &) {
5974 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5975 }
5976
5977 driver.warning(driver.loc_, "leading zeros in integers will be deprecated.");
5978
5979 return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
5980}
5981 YY_BREAK
5982case 246:
5984#line 2632 "dhcp6_lexer.ll"
5985{
5986 /* An integer was found. */
5987 std::string tmp(yytext);
5988 int64_t integer = 0;
5989 try {
5990 /* In substring we want to use negative values (e.g. -1).
5991 In enterprise-id we need to use values up to 0xffffffff.
5992 To cover both of those use cases, we need at least
5993 int64_t. */
5994 integer = boost::lexical_cast<int64_t>(tmp);
5995 } catch (const boost::bad_lexical_cast &) {
5996 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5997 }
5998
5999 return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
6000}
6001 YY_BREAK
6002case 247:
6004#line 2649 "dhcp6_lexer.ll"
6005{
6006 /* A floating point was found. */
6007 std::string tmp(yytext);
6008 double fp = 0.0;
6009 try {
6010 fp = boost::lexical_cast<double>(tmp);
6011 } catch (const boost::bad_lexical_cast &) {
6012 driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
6013 }
6014
6015 return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
6016}
6017 YY_BREAK
6018case 248:
6020#line 2662 "dhcp6_lexer.ll"
6021{
6022 string tmp(yytext);
6023 return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
6024}
6025 YY_BREAK
6026case 249:
6028#line 2667 "dhcp6_lexer.ll"
6029{
6030 return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
6031}
6032 YY_BREAK
6033case 250:
6035#line 2671 "dhcp6_lexer.ll"
6036driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
6037 YY_BREAK
6038case 251:
6040#line 2673 "dhcp6_lexer.ll"
6041driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
6042 YY_BREAK
6043case 252:
6045#line 2675 "dhcp6_lexer.ll"
6046driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
6047 YY_BREAK
6048case 253:
6050#line 2677 "dhcp6_lexer.ll"
6051driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
6052 YY_BREAK
6053case YY_STATE_EOF(INITIAL):
6054#line 2679 "dhcp6_lexer.ll"
6055{
6056 if (driver.states_.empty()) {
6057 return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
6058 }
6059 driver.loc_ = driver.locs_.back();
6060 driver.locs_.pop_back();
6061 driver.file_ = driver.files_.back();
6062 driver.files_.pop_back();
6063 if (driver.sfile_) {
6064 fclose(driver.sfile_);
6065 driver.sfile_ = 0;
6066 }
6067 if (!driver.sfiles_.empty()) {
6068 driver.sfile_ = driver.sfiles_.back();
6069 driver.sfiles_.pop_back();
6070 }
6071 parser6__delete_buffer(YY_CURRENT_BUFFER);
6072 parser6__switch_to_buffer(driver.states_.back());
6073 driver.states_.pop_back();
6074
6075 BEGIN(DIR_EXIT);
6076}
6077 YY_BREAK
6078case 254:
6080#line 2702 "dhcp6_lexer.ll"
6081ECHO;
6082 YY_BREAK
6083#line 6083 "dhcp6_lexer.cc"
6084
6085 case YY_END_OF_BUFFER:
6086 {
6087 /* Amount of text matched not including the EOB char. */
6088 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
6089
6090 /* Undo the effects of YY_DO_BEFORE_ACTION. */
6091 *yy_cp = (yy_hold_char);
6093
6094 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
6095 {
6096 /* We're scanning a new file or input source. It's
6097 * possible that this happened because the user
6098 * just pointed yyin at a new source and called
6099 * yylex(). If so, then we have to assure
6100 * consistency between YY_CURRENT_BUFFER and our
6101 * globals. Here is the right place to do so, because
6102 * this is the first action (other than possibly a
6103 * back-up) that will match for the new input source.
6104 */
6105 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6106/* %if-c-only */
6107 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
6108/* %endif */
6109/* %if-c++-only */
6110/* %endif */
6111 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
6112 }
6113
6114 /* Note that here we test for yy_c_buf_p "<=" to the position
6115 * of the first EOB in the buffer, since yy_c_buf_p will
6116 * already have been incremented past the NUL character
6117 * (since all states make transitions on EOB to the
6118 * end-of-buffer state). Contrast this with the test
6119 * in input().
6120 */
6121 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6122 { /* This was really a NUL. */
6123 yy_state_type yy_next_state;
6124
6125 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
6126
6127 yy_current_state = yy_get_previous_state( );
6128
6129 /* Okay, we're now positioned to make the NUL
6130 * transition. We couldn't have
6131 * yy_get_previous_state() go ahead and do it
6132 * for us because it doesn't know how to deal
6133 * with the possibility of jamming (and we don't
6134 * want to build jamming into it because then it
6135 * will run more slowly).
6136 */
6137
6138 yy_next_state = yy_try_NUL_trans( yy_current_state );
6139
6141
6142 if ( yy_next_state )
6143 {
6144 /* Consume the NUL. */
6145 yy_cp = ++(yy_c_buf_p);
6146 yy_current_state = yy_next_state;
6147 goto yy_match;
6148 }
6149
6150 else
6151 {
6152/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
6153 yy_cp = (yy_last_accepting_cpos);
6154 yy_current_state = (yy_last_accepting_state);
6155 goto yy_find_action;
6156 }
6157 }
6158
6159 else switch ( yy_get_next_buffer( ) )
6160 {
6162 {
6163 (yy_did_buffer_switch_on_eof) = 0;
6164
6165 if ( yywrap( ) )
6166 {
6167 /* Note: because we've taken care in
6168 * yy_get_next_buffer() to have set up
6169 * yytext, we can now set up
6170 * yy_c_buf_p so that if some total
6171 * hoser (like flex itself) wants to
6172 * call the scanner after we return the
6173 * YY_NULL, it'll still work - another
6174 * YY_NULL will get returned.
6175 */
6176 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
6177
6179 goto do_action;
6180 }
6181
6182 else
6183 {
6184 if ( ! (yy_did_buffer_switch_on_eof) )
6186 }
6187 break;
6188 }
6189
6191 (yy_c_buf_p) =
6192 (yytext_ptr) + yy_amount_of_matched_text;
6193
6194 yy_current_state = yy_get_previous_state( );
6195
6196 yy_cp = (yy_c_buf_p);
6198 goto yy_match;
6199
6200 case EOB_ACT_LAST_MATCH:
6201 (yy_c_buf_p) =
6202 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
6203
6204 yy_current_state = yy_get_previous_state( );
6205
6206 yy_cp = (yy_c_buf_p);
6208 goto yy_find_action;
6209 }
6210 break;
6211 }
6212
6213 default:
6215 "fatal flex scanner internal error--no action found" );
6216 } /* end of action switch */
6217 } /* end of scanning one token */
6218 } /* end of user's declarations */
6219} /* end of yylex */
6220/* %ok-for-header */
6221
6222/* %if-c++-only */
6223/* %not-for-header */
6224/* %ok-for-header */
6225
6226/* %endif */
6227
6228/* yy_get_next_buffer - try to read in a new buffer
6229 *
6230 * Returns a code representing an action:
6231 * EOB_ACT_LAST_MATCH -
6232 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
6233 * EOB_ACT_END_OF_FILE - end of file
6234 */
6235/* %if-c-only */
6236static int yy_get_next_buffer (void)
6237/* %endif */
6238/* %if-c++-only */
6239/* %endif */
6240{
6241 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
6242 char *source = (yytext_ptr);
6243 int number_to_move, i;
6244 int ret_val;
6245
6246 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
6248 "fatal flex scanner internal error--end of buffer missed" );
6249
6250 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
6251 { /* Don't try to fill the buffer, so this is an EOF. */
6252 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
6253 {
6254 /* We matched a single character, the EOB, so
6255 * treat this as a final EOF.
6256 */
6257 return EOB_ACT_END_OF_FILE;
6258 }
6259
6260 else
6261 {
6262 /* We matched some text prior to the EOB, first
6263 * process it.
6264 */
6265 return EOB_ACT_LAST_MATCH;
6266 }
6267 }
6268
6269 /* Try to read more data. */
6270
6271 /* First move last chars to start of buffer. */
6272 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
6273
6274 for ( i = 0; i < number_to_move; ++i )
6275 *(dest++) = *(source++);
6276
6277 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
6278 /* don't do the read, it's not guaranteed to return an EOF,
6279 * just force an EOF
6280 */
6281 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
6282
6283 else
6284 {
6285 int num_to_read =
6286 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
6287
6288 while ( num_to_read <= 0 )
6289 { /* Not enough room in the buffer - grow it. */
6290
6291 /* just a shorter name for the current buffer */
6293
6294 int yy_c_buf_p_offset =
6295 (int) ((yy_c_buf_p) - b->yy_ch_buf);
6296
6297 if ( b->yy_is_our_buffer )
6298 {
6299 int new_size = b->yy_buf_size * 2;
6300
6301 if ( new_size <= 0 )
6302 b->yy_buf_size += b->yy_buf_size / 8;
6303 else
6304 b->yy_buf_size *= 2;
6305
6306 b->yy_ch_buf = (char *)
6307 /* Include room in for 2 EOB chars. */
6308 yyrealloc( (void *) b->yy_ch_buf,
6309 (yy_size_t) (b->yy_buf_size + 2) );
6310 }
6311 else
6312 /* Can't grow it, we don't own it. */
6313 b->yy_ch_buf = NULL;
6314
6315 if ( ! b->yy_ch_buf )
6317 "fatal error - scanner input buffer overflow" );
6318
6319 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
6320
6321 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
6322 number_to_move - 1;
6323
6324 }
6325
6326 if ( num_to_read > YY_READ_BUF_SIZE )
6327 num_to_read = YY_READ_BUF_SIZE;
6328
6329 /* Read in more data. */
6330 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
6331 (yy_n_chars), num_to_read );
6332
6333 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6334 }
6335
6336 if ( (yy_n_chars) == 0 )
6337 {
6338 if ( number_to_move == YY_MORE_ADJ )
6339 {
6340 ret_val = EOB_ACT_END_OF_FILE;
6341 yyrestart( yyin );
6342 }
6343
6344 else
6345 {
6346 ret_val = EOB_ACT_LAST_MATCH;
6347 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
6349 }
6350 }
6351
6352 else
6353 ret_val = EOB_ACT_CONTINUE_SCAN;
6354
6355 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
6356 /* Extend the array by 50%, plus the number we really need. */
6357 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
6358 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
6359 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
6360 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
6361 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
6362 /* "- 2" to take care of EOB's */
6363 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
6364 }
6365
6366 (yy_n_chars) += number_to_move;
6367 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
6368 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
6369
6370 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
6371
6372 return ret_val;
6373}
6374
6375/* yy_get_previous_state - get the state just before the EOB char was reached */
6376
6377/* %if-c-only */
6378/* %not-for-header */
6379 static yy_state_type yy_get_previous_state (void)
6380/* %endif */
6381/* %if-c++-only */
6382/* %endif */
6383{
6384 yy_state_type yy_current_state;
6385 char *yy_cp;
6386
6387/* %% [15.0] code to get the start state into yy_current_state goes here */
6388 yy_current_state = (yy_start);
6389
6390 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
6391 {
6392/* %% [16.0] code to find the next state goes here */
6393 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
6394 if ( yy_accept[yy_current_state] )
6395 {
6396 (yy_last_accepting_state) = yy_current_state;
6397 (yy_last_accepting_cpos) = yy_cp;
6398 }
6399 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6400 {
6401 yy_current_state = (int) yy_def[yy_current_state];
6402 if ( yy_current_state >= 2412 )
6403 yy_c = yy_meta[yy_c];
6404 }
6405 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6406 }
6407
6408 return yy_current_state;
6409}
6410
6411/* yy_try_NUL_trans - try to make a transition on the NUL character
6412 *
6413 * synopsis
6414 * next_state = yy_try_NUL_trans( current_state );
6415 */
6416/* %if-c-only */
6417 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
6418/* %endif */
6419/* %if-c++-only */
6420/* %endif */
6421{
6422 int yy_is_jam;
6423 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
6424 char *yy_cp = (yy_c_buf_p);
6425
6426 YY_CHAR yy_c = 1;
6427 if ( yy_accept[yy_current_state] )
6428 {
6429 (yy_last_accepting_state) = yy_current_state;
6430 (yy_last_accepting_cpos) = yy_cp;
6431 }
6432 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6433 {
6434 yy_current_state = (int) yy_def[yy_current_state];
6435 if ( yy_current_state >= 2412 )
6436 yy_c = yy_meta[yy_c];
6437 }
6438 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6439 yy_is_jam = (yy_current_state == 2411);
6440
6441 return yy_is_jam ? 0 : yy_current_state;
6442}
6443
6444#ifndef YY_NO_UNPUT
6445/* %if-c-only */
6446
6447/* %endif */
6448#endif
6449
6450/* %if-c-only */
6451#ifndef YY_NO_INPUT
6452#ifdef __cplusplus
6453 static int yyinput (void)
6454#else
6455 static int input (void)
6456#endif
6457
6458/* %endif */
6459/* %if-c++-only */
6460/* %endif */
6461{
6462 int c;
6463
6464 *(yy_c_buf_p) = (yy_hold_char);
6465
6466 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
6467 {
6468 /* yy_c_buf_p now points to the character we want to return.
6469 * If this occurs *before* the EOB characters, then it's a
6470 * valid NUL; if not, then we've hit the end of the buffer.
6471 */
6472 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6473 /* This was really a NUL. */
6474 *(yy_c_buf_p) = '\0';
6475
6476 else
6477 { /* need more input */
6478 int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
6479 ++(yy_c_buf_p);
6480
6481 switch ( yy_get_next_buffer( ) )
6482 {
6483 case EOB_ACT_LAST_MATCH:
6484 /* This happens because yy_g_n_b()
6485 * sees that we've accumulated a
6486 * token and flags that we need to
6487 * try matching the token before
6488 * proceeding. But for input(),
6489 * there's no matching to consider.
6490 * So convert the EOB_ACT_LAST_MATCH
6491 * to EOB_ACT_END_OF_FILE.
6492 */
6493
6494 /* Reset buffer status. */
6495 yyrestart( yyin );
6496
6497 /*FALLTHROUGH*/
6498
6500 {
6501 if ( yywrap( ) )
6502 return 0;
6503
6504 if ( ! (yy_did_buffer_switch_on_eof) )
6506#ifdef __cplusplus
6507 return yyinput();
6508#else
6509 return input();
6510#endif
6511 }
6512
6514 (yy_c_buf_p) = (yytext_ptr) + offset;
6515 break;
6516 }
6517 }
6518 }
6519
6520 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
6521 *(yy_c_buf_p) = '\0'; /* preserve yytext */
6522 (yy_hold_char) = *++(yy_c_buf_p);
6523
6524/* %% [19.0] update BOL and yylineno */
6525
6526 return c;
6527}
6528/* %if-c-only */
6529#endif /* ifndef YY_NO_INPUT */
6530/* %endif */
6531
6537/* %if-c-only */
6538 void yyrestart (FILE * input_file )
6539/* %endif */
6540/* %if-c++-only */
6541/* %endif */
6542{
6543
6544 if ( ! YY_CURRENT_BUFFER ){
6548 }
6549
6550 yy_init_buffer( YY_CURRENT_BUFFER, input_file );
6552}
6553
6554/* %if-c++-only */
6555/* %endif */
6556
6561/* %if-c-only */
6563/* %endif */
6564/* %if-c++-only */
6565/* %endif */
6566{
6567
6568 /* TODO. We should be able to replace this entire function body
6569 * with
6570 * yypop_buffer_state();
6571 * yypush_buffer_state(new_buffer);
6572 */
6574 if ( YY_CURRENT_BUFFER == new_buffer )
6575 return;
6576
6577 if ( YY_CURRENT_BUFFER )
6578 {
6579 /* Flush out information for old buffer. */
6580 *(yy_c_buf_p) = (yy_hold_char);
6581 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6582 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6583 }
6584
6585 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6587
6588 /* We don't actually know whether we did this switch during
6589 * EOF (yywrap()) processing, but the only time this flag
6590 * is looked at is after yywrap() is called, so it's safe
6591 * to go ahead and always set it.
6592 */
6593 (yy_did_buffer_switch_on_eof) = 1;
6594}
6595
6596/* %if-c-only */
6597static void yy_load_buffer_state (void)
6598/* %endif */
6599/* %if-c++-only */
6600/* %endif */
6601{
6602 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6603 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6604/* %if-c-only */
6605 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6606/* %endif */
6607/* %if-c++-only */
6608/* %endif */
6609 (yy_hold_char) = *(yy_c_buf_p);
6610}
6611
6618/* %if-c-only */
6620/* %endif */
6621/* %if-c++-only */
6622/* %endif */
6623{
6625
6626 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6627 if ( ! b )
6628 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6629
6630 b->yy_buf_size = size;
6631
6632 /* yy_ch_buf has to be 2 characters longer than the size given because
6633 * we need to put in 2 end-of-buffer characters.
6634 */
6635 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
6636 if ( ! b->yy_ch_buf )
6637 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6638
6639 b->yy_is_our_buffer = 1;
6640
6641 yy_init_buffer( b, file );
6642
6643 return b;
6644}
6645
6646/* %if-c++-only */
6647/* %endif */
6648
6653/* %if-c-only */
6655/* %endif */
6656/* %if-c++-only */
6657/* %endif */
6658{
6659
6660 if ( ! b )
6661 return;
6662
6663 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6665
6666 if ( b->yy_is_our_buffer )
6667 yyfree( (void *) b->yy_ch_buf );
6668
6669 yyfree( (void *) b );
6670}
6671
6672/* Initializes or reinitializes a buffer.
6673 * This function is sometimes called more than once on the same buffer,
6674 * such as during a yyrestart() or at EOF.
6675 */
6676/* %if-c-only */
6677 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
6678/* %endif */
6679/* %if-c++-only */
6680/* %endif */
6681
6682{
6683 int oerrno = errno;
6684
6685 yy_flush_buffer( b );
6686
6687/* %if-c-only */
6688 b->yy_input_file = file;
6689/* %endif */
6690/* %if-c++-only */
6691/* %endif */
6692 b->yy_fill_buffer = 1;
6693
6694 /* If b is the current buffer, then yy_init_buffer was _probably_
6695 * called from yyrestart() or through yy_get_next_buffer.
6696 * In that case, we don't want to reset the lineno or column.
6697 */
6698 if (b != YY_CURRENT_BUFFER){
6699 b->yy_bs_lineno = 1;
6700 b->yy_bs_column = 0;
6701 }
6702
6703/* %if-c-only */
6704
6705 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
6706
6707/* %endif */
6708/* %if-c++-only */
6709/* %endif */
6710 errno = oerrno;
6711}
6712
6717/* %if-c-only */
6719/* %endif */
6720/* %if-c++-only */
6721/* %endif */
6722{
6723 if ( ! b )
6724 return;
6725
6726 b->yy_n_chars = 0;
6727
6728 /* We always need two end-of-buffer characters. The first causes
6729 * a transition to the end-of-buffer state. The second causes
6730 * a jam in that state.
6731 */
6734
6735 b->yy_buf_pos = &b->yy_ch_buf[0];
6736
6737 b->yy_at_bol = 1;
6739
6740 if ( b == YY_CURRENT_BUFFER )
6742}
6743
6744/* %if-c-or-c++ */
6751/* %if-c-only */
6753/* %endif */
6754/* %if-c++-only */
6755/* %endif */
6756{
6757 if (new_buffer == NULL)
6758 return;
6759
6761
6762 /* This block is copied from yy_switch_to_buffer. */
6763 if ( YY_CURRENT_BUFFER )
6764 {
6765 /* Flush out information for old buffer. */
6766 *(yy_c_buf_p) = (yy_hold_char);
6767 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6768 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6769 }
6770
6771 /* Only push if top exists. Otherwise, replace top. */
6773 (yy_buffer_stack_top)++;
6774 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6775
6776 /* copied from yy_switch_to_buffer. */
6778 (yy_did_buffer_switch_on_eof) = 1;
6779}
6780/* %endif */
6781
6782/* %if-c-or-c++ */
6787/* %if-c-only */
6789/* %endif */
6790/* %if-c++-only */
6791/* %endif */
6792{
6793 if (!YY_CURRENT_BUFFER)
6794 return;
6795
6798 if ((yy_buffer_stack_top) > 0)
6799 --(yy_buffer_stack_top);
6800
6801 if (YY_CURRENT_BUFFER) {
6803 (yy_did_buffer_switch_on_eof) = 1;
6804 }
6805}
6806/* %endif */
6807
6808/* %if-c-or-c++ */
6809/* Allocates the stack if it does not exist.
6810 * Guarantees space for at least one push.
6811 */
6812/* %if-c-only */
6813static void yyensure_buffer_stack (void)
6814/* %endif */
6815/* %if-c++-only */
6816/* %endif */
6817{
6818 yy_size_t num_to_alloc;
6819
6820 if (!(yy_buffer_stack)) {
6821
6822 /* First allocation is just for 2 elements, since we don't know if this
6823 * scanner will even need a stack. We use 2 instead of 1 to avoid an
6824 * immediate realloc on the next call.
6825 */
6826 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
6827 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
6828 (num_to_alloc * sizeof(struct yy_buffer_state*)
6829 );
6830 if ( ! (yy_buffer_stack) )
6831 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6832
6833 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6834
6835 (yy_buffer_stack_max) = num_to_alloc;
6836 (yy_buffer_stack_top) = 0;
6837 return;
6838 }
6839
6840 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6841
6842 /* Increase the buffer to prepare for a possible push. */
6843 yy_size_t grow_size = 8 /* arbitrary grow size */;
6844
6845 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6846 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
6847 ((yy_buffer_stack),
6848 num_to_alloc * sizeof(struct yy_buffer_state*)
6849 );
6850 if ( ! (yy_buffer_stack) )
6851 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6852
6853 /* zero only the new slots.*/
6854 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6855 (yy_buffer_stack_max) = num_to_alloc;
6856 }
6857}
6858/* %endif */
6859
6860/* %if-c-only */
6868{
6870
6871 if ( size < 2 ||
6872 base[size-2] != YY_END_OF_BUFFER_CHAR ||
6873 base[size-1] != YY_END_OF_BUFFER_CHAR )
6874 /* They forgot to leave room for the EOB's. */
6875 return NULL;
6876
6877 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6878 if ( ! b )
6879 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
6880
6881 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
6882 b->yy_buf_pos = b->yy_ch_buf = base;
6883 b->yy_is_our_buffer = 0;
6884 b->yy_input_file = NULL;
6885 b->yy_n_chars = b->yy_buf_size;
6886 b->yy_is_interactive = 0;
6887 b->yy_at_bol = 1;
6888 b->yy_fill_buffer = 0;
6890
6892
6893 return b;
6894}
6895/* %endif */
6896
6897/* %if-c-only */
6906YY_BUFFER_STATE yy_scan_string (const char * yystr )
6907{
6908
6909 return yy_scan_bytes( yystr, (int) strlen(yystr) );
6910}
6911/* %endif */
6912
6913/* %if-c-only */
6921YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
6922{
6924 char *buf;
6925 yy_size_t n;
6926 int i;
6927
6928 /* Get memory for full buffer, including space for trailing EOB's. */
6929 n = (yy_size_t) (_yybytes_len + 2);
6930 buf = (char *) yyalloc( n );
6931 if ( ! buf )
6932 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
6933
6934 for ( i = 0; i < _yybytes_len; ++i )
6935 buf[i] = yybytes[i];
6936
6937 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6938
6939 b = yy_scan_buffer( buf, n );
6940 if ( ! b )
6941 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
6942
6943 /* It's okay to grow etc. this buffer, and we should throw it
6944 * away when we're done.
6945 */
6946 b->yy_is_our_buffer = 1;
6947
6948 return b;
6949}
6950/* %endif */
6951
6952#ifndef YY_EXIT_FAILURE
6953#define YY_EXIT_FAILURE 2
6954#endif
6955
6956/* %if-c-only */
6957static void yynoreturn yy_fatal_error (const char* msg )
6958{
6959 fprintf( stderr, "%s\n", msg );
6960 exit( YY_EXIT_FAILURE );
6961}
6962/* %endif */
6963/* %if-c++-only */
6964/* %endif */
6965
6966/* Redefine yyless() so it works in section 3 code. */
6967
6968#undef yyless
6969#define yyless(n) \
6970 do \
6971 { \
6972 /* Undo effects of setting up yytext. */ \
6973 int yyless_macro_arg = (n); \
6974 YY_LESS_LINENO(yyless_macro_arg);\
6975 yytext[yyleng] = (yy_hold_char); \
6976 (yy_c_buf_p) = yytext + yyless_macro_arg; \
6977 (yy_hold_char) = *(yy_c_buf_p); \
6978 *(yy_c_buf_p) = '\0'; \
6979 yyleng = yyless_macro_arg; \
6980 } \
6981 while ( 0 )
6982
6983/* Accessor methods (get/set functions) to struct members. */
6984
6985/* %if-c-only */
6986/* %if-reentrant */
6987/* %endif */
6988
6993{
6994
6995 return yylineno;
6996}
6997
7001FILE *yyget_in (void)
7002{
7003 return yyin;
7004}
7005
7009FILE *yyget_out (void)
7010{
7011 return yyout;
7012}
7013
7017int yyget_leng (void)
7018{
7019 return yyleng;
7020}
7021
7025
7026char *yyget_text (void)
7027{
7028 return yytext;
7029}
7030
7031/* %if-reentrant */
7032/* %endif */
7033
7038void yyset_lineno (int _line_number )
7039{
7040
7041 yylineno = _line_number;
7042}
7043
7050void yyset_in (FILE * _in_str )
7051{
7052 yyin = _in_str ;
7053}
7054
7055void yyset_out (FILE * _out_str )
7056{
7057 yyout = _out_str ;
7058}
7059
7060int yyget_debug (void)
7061{
7062 return yy_flex_debug;
7063}
7064
7065void yyset_debug (int _bdebug )
7066{
7067 yy_flex_debug = _bdebug ;
7068}
7069
7070/* %endif */
7071
7072/* %if-reentrant */
7073/* %if-bison-bridge */
7074/* %endif */
7075/* %endif if-c-only */
7076
7077/* %if-c-only */
7078static int yy_init_globals (void)
7079{
7080 /* Initialization is the same as for the non-reentrant scanner.
7081 * This function is called from yylex_destroy(), so don't allocate here.
7082 */
7083
7084 (yy_buffer_stack) = NULL;
7085 (yy_buffer_stack_top) = 0;
7086 (yy_buffer_stack_max) = 0;
7087 (yy_c_buf_p) = NULL;
7088 (yy_init) = 0;
7089 (yy_start) = 0;
7090
7091/* Defined in main.c */
7092#ifdef YY_STDINIT
7093 yyin = stdin;
7094 yyout = stdout;
7095#else
7096 yyin = NULL;
7097 yyout = NULL;
7098#endif
7099
7100 /* For future reference: Set errno on error, since we are called by
7101 * yylex_init()
7102 */
7103 return 0;
7104}
7105/* %endif */
7106
7107/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
7108/* yylex_destroy is for both reentrant and non-reentrant scanners. */
7110{
7111
7112 /* Pop the buffer stack, destroying each element. */
7113 while(YY_CURRENT_BUFFER){
7117 }
7118
7119 /* Destroy the stack itself. */
7120 yyfree((yy_buffer_stack) );
7121 (yy_buffer_stack) = NULL;
7122
7123 /* Reset the globals. This is important in a non-reentrant scanner so the next time
7124 * yylex() is called, initialization will occur. */
7125 yy_init_globals( );
7126
7127/* %if-reentrant */
7128/* %endif */
7129 return 0;
7130}
7131/* %endif */
7132
7133/*
7134 * Internal utility routines.
7135 */
7136
7137#ifndef yytext_ptr
7138static void yy_flex_strncpy (char* s1, const char * s2, int n )
7139{
7140
7141 int i;
7142 for ( i = 0; i < n; ++i )
7143 s1[i] = s2[i];
7144}
7145#endif
7146
7147#ifdef YY_NEED_STRLEN
7148static int yy_flex_strlen (const char * s )
7149{
7150 int n;
7151 for ( n = 0; s[n]; ++n )
7152 ;
7153
7154 return n;
7155}
7156#endif
7157
7158void *yyalloc (yy_size_t size )
7159{
7160 return malloc(size);
7161}
7162
7163void *yyrealloc (void * ptr, yy_size_t size )
7164{
7165
7166 /* The cast to (char *) in the following accommodates both
7167 * implementations that use char* generic pointers, and those
7168 * that use void* generic pointers. It works with the latter
7169 * because both ANSI C and C++ allow castless assignment from
7170 * any pointer type to void*, and deal with argument conversions
7171 * as though doing an assignment.
7172 */
7173 return realloc(ptr, size);
7174}
7175
7176void yyfree (void * ptr )
7177{
7178 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
7179}
7180
7181/* %if-tables-serialization definitions */
7182/* %define-yytables The name for this specific scanner's tables. */
7183#define YYTABLES_NAME "yytables"
7184/* %endif */
7185
7186/* %ok-for-header */
7187
7188#line 2702 "dhcp6_lexer.ll"
7189
7190
7191using namespace isc::dhcp;
7192
7193void
7194Parser6Context::scanStringBegin(const std::string& str, ParserType parser_type)
7195{
7196 start_token_flag = true;
7197 start_token_value = parser_type;
7198
7199 file_ = "<string>";
7200 sfile_ = 0;
7201 loc_.initialize(&file_);
7202 yy_flex_debug = trace_scanning_;
7203 YY_BUFFER_STATE buffer;
7204 buffer = parser6__scan_bytes(str.c_str(), str.size());
7205 if (!buffer) {
7206 fatal("cannot scan string");
7207 /* fatal() throws an exception so this can't be reached */
7208 }
7209}
7210
7211void
7213 const std::string& filename,
7214 ParserType parser_type)
7215{
7216 start_token_flag = true;
7217 start_token_value = parser_type;
7218
7219 file_ = filename;
7220 sfile_ = f;
7221 loc_.initialize(&file_);
7222 yy_flex_debug = trace_scanning_;
7223 YY_BUFFER_STATE buffer;
7224
7225 /* See dhcp6_lexer.cc header for available definitions */
7226 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
7227 if (!buffer) {
7228 fatal("cannot scan file " + filename);
7229 }
7230 parser6__switch_to_buffer(buffer);
7231}
7232
7233void
7235 if (sfile_)
7236 fclose(sfile_);
7237 sfile_ = 0;
7238 static_cast<void>(parser6_lex_destroy());
7239 /* Close files */
7240 while (!sfiles_.empty()) {
7241 FILE* f = sfiles_.back();
7242 if (f) {
7243 fclose(f);
7244 }
7245 sfiles_.pop_back();
7246 }
7247 /* Delete states */
7248 while (!states_.empty()) {
7249 parser6__delete_buffer(states_.back());
7250 states_.pop_back();
7251 }
7252}
7253
7254void
7255Parser6Context::includeFile(const std::string& filename) {
7256 if (states_.size() > 10) {
7257 fatal("Too many nested include.");
7258 }
7259
7260 FILE* f = fopen(filename.c_str(), "r");
7261 if (!f) {
7262 fatal("Can't open include file " + filename);
7263 }
7264 if (sfile_) {
7265 sfiles_.push_back(sfile_);
7266 }
7267 sfile_ = f;
7268 states_.push_back(YY_CURRENT_BUFFER);
7269 YY_BUFFER_STATE buffer;
7270 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
7271 if (!buffer) {
7272 fatal( "Can't scan include file " + filename);
7273 }
7274 parser6__switch_to_buffer(buffer);
7275 files_.push_back(file_);
7276 file_ = filename;
7277 locs_.push_back(loc_);
7278 loc_.initialize(&file_);
7279
7280 BEGIN(INITIAL);
7281}
7282
7283namespace {
7285class Dummy {
7286 /* cppcheck-suppress unusedPrivateFunction */
7287 void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
7288};
7289}
7290#endif /* !__clang_analyzer__ */
7291
Evaluation error exception raised when trying to parse.
static symbol_type make_ADAPTIVE_LEASE_TIME_THRESHOLD(const location_type &l)
static symbol_type make_SUB_RESERVATION(const location_type &l)
static symbol_type make_EXCLUDED_PREFIXES(const location_type &l)
static symbol_type make_NAME(const location_type &l)
static symbol_type make_CIPHER_LIST(const location_type &l)
static symbol_type make_SUB_HOOKS_LIBRARY(const location_type &l)
static symbol_type make_WHEN_PRESENT(const location_type &l)
static symbol_type make_COMMENT(const location_type &l)
static symbol_type make_LENIENT_OPTION_PARSING(const location_type &l)
static symbol_type make_VALUE(const location_type &l)
static symbol_type make_SENDER_PORT(const location_type &l)
static symbol_type make_CODE(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_AGE(const location_type &l)
static symbol_type make_CACHE_THRESHOLD(const location_type &l)
static symbol_type make_ALLOCATOR(const location_type &l)
static symbol_type make_DHCP6(const location_type &l)
static symbol_type make_PASSWORD_FILE(const location_type &l)
static symbol_type make_DIRECTORY(const location_type &l)
static symbol_type make_VERIFY_CA(const location_type &l)
static symbol_type make_HOSTS_DATABASE(const location_type &l)
static symbol_type make_DDNS_CONFLICT_RESOLUTION_MODE(const location_type &l)
static symbol_type make_SERVICE_SOCKETS_REQUIRE_ALL(const location_type &l)
static symbol_type make_USER_CONTEXT(const location_type &l)
static symbol_type make_ENTERPRISE_ID(const location_type &l)
static symbol_type make_COMMA(const location_type &l)
static symbol_type make_DHCP_DDNS(const location_type &l)
static symbol_type make_MAX_RECLAIM_TIME(const location_type &l)
static symbol_type make_SOCKET_NAME(const location_type &l)
static symbol_type make_NCR_FORMAT(const location_type &l)
static symbol_type make_RESERVATIONS_OUT_OF_POOL(const location_type &l)
static symbol_type make_NCR_PROTOCOL(const location_type &l)
static symbol_type make_HTTPS(const location_type &l)
static symbol_type make_FLOAT(const double &v, const location_type &l)
static symbol_type make_EN(const location_type &l)
static symbol_type make_ARRAY(const location_type &l)
static symbol_type make_DDNS_QUALIFYING_SUFFIX(const location_type &l)
static symbol_type make_COLON(const location_type &l)
static symbol_type make_RETRY_ON_STARTUP(const location_type &l)
static symbol_type make_SUB_DHCP6(const location_type &l)
static symbol_type make_ONLY_IN_ADDITIONAL_LIST(const location_type &l)
static symbol_type make_RE_DETECT(const location_type &l)
static symbol_type make_DELEGATED_LEN(const location_type &l)
static symbol_type make_THREAD_POOL_SIZE(const location_type &l)
static symbol_type make_INTERFACE_ID(const location_type &l)
static symbol_type make_RESERVATIONS_LOOKUP_FIRST(const location_type &l)
static symbol_type make_HOSTNAME(const location_type &l)
static symbol_type make_DATA_DIRECTORY(const location_type &l)
static symbol_type make_MAX_QUEUE_SIZE(const location_type &l)
static symbol_type make_SUB_POOL6(const location_type &l)
static symbol_type make_SUB_DHCP_DDNS(const location_type &l)
static symbol_type make_SUB_CONFIG_CONTROL(const location_type &l)
static symbol_type make_DDNS_SEND_UPDATES(const location_type &l)
static symbol_type make_IP_ADDRESSES(const location_type &l)
static symbol_type make_EVALUATE_ADDITIONAL_CLASSES(const location_type &l)
static symbol_type make_POOLS(const location_type &l)
static symbol_type make_PREFIX(const location_type &l)
static symbol_type make_ID(const location_type &l)
static symbol_type make_MAXVER(const location_type &l)
static symbol_type make_RESERVATIONS(const location_type &l)
static symbol_type make_REQUIRE(const location_type &l)
static symbol_type make_DATA(const location_type &l)
static symbol_type make_INTERFACES(const location_type &l)
static symbol_type make_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_SERVER_IP(const location_type &l)
static symbol_type make_PATTERN(const location_type &l)
static symbol_type make_MAXSIZE(const location_type &l)
static symbol_type make_VERIFY_FULL(const location_type &l)
static symbol_type make_POOL_ID(const location_type &l)
static symbol_type make_HOST_RESERVATION_IDENTIFIERS(const location_type &l)
static symbol_type make_OPTION_DATA(const location_type &l)
static symbol_type make_SUBNET6(const location_type &l)
static symbol_type make_PD_POOLS(const location_type &l)
static symbol_type make_RCURLY_BRACKET(const location_type &l)
static symbol_type make_TEMPLATE_TEST(const location_type &l)
static symbol_type make_MAX_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_TRUST_ANCHOR(const location_type &l)
static symbol_type make_PORT(const location_type &l)
static symbol_type make_AUTHENTICATION(const location_type &l)
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_ENABLE_UPDATES(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_REPLACEMENT(const location_type &l)
static symbol_type make_NULL_TYPE(const location_type &l)
static symbol_type make_MAX_RECONNECT_TRIES(const location_type &l)
static symbol_type make_MAX_VALID_LIFETIME(const location_type &l)
static symbol_type make_TIME(const location_type &l)
static symbol_type make_SOCKET_TYPE(const location_type &l)
static symbol_type make_CHECK_WITH_DHCID(const location_type &l)
static symbol_type make_SUB_INTERFACES6(const location_type &l)
static symbol_type make_JSON(const location_type &l)
static symbol_type make_MIN_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_LLT(const location_type &l)
static symbol_type make_READ_TIMEOUT(const location_type &l)
static symbol_type make_CERT_FILE(const location_type &l)
static symbol_type make_HTTP(const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
static symbol_type make_FLEX_ID(const location_type &l)
static symbol_type make_REQUIRE_CLIENT_CLASSES(const location_type &l)
static symbol_type make_DDNS_TTL(const location_type &l)
static symbol_type make_SERVER_PORT(const location_type &l)
static symbol_type make_ONLY_IF_REQUIRED(const location_type &l)
static symbol_type make_SHARED_NETWORKS(const location_type &l)
static symbol_type make_DDNS_REPLACE_CLIENT_NAME(const location_type &l)
static symbol_type make_HTTP_HEADERS(const location_type &l)
static symbol_type make_USER_FILE(const location_type &l)
static symbol_type make_SUB_OPTION_DATA(const location_type &l)
static symbol_type make_OPTION_DEF(const location_type &l)
static symbol_type make_TCP_USER_TIMEOUT(const location_type &l)
static symbol_type make_UNIX(const location_type &l)
static symbol_type make_DDNS_GENERATED_PREFIX(const location_type &l)
static symbol_type make_ALWAYS_SEND(const location_type &l)
static symbol_type make_CLIENT_CLASS(const location_type &l)
static symbol_type make_NEVER_SEND(const location_type &l)
static symbol_type make_IP_RESERVATIONS_UNIQUE(const location_type &l)
static symbol_type make_PARKED_PACKET_LIMIT(const location_type &l)
static symbol_type make_LFC_INTERVAL(const location_type &l)
static symbol_type make_USER(const location_type &l)
static symbol_type make_SUBNET(const location_type &l)
static symbol_type make_RECORD_TYPES(const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
static symbol_type make_RECONNECT_WAIT_TIME(const location_type &l)
static symbol_type make_SUB_SUBNET6(const location_type &l)
static symbol_type make_EXPIRED_LEASES_PROCESSING(const location_type &l)
static symbol_type make_EXCLUDED_PREFIX(const location_type &l)
static symbol_type make_ALWAYS(const location_type &l)
static symbol_type make_HOSTS_DATABASES(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
static symbol_type make_DDNS_USE_CONFLICT_RESOLUTION(const location_type &l)
static symbol_type make_ALLOW_ADDRESS_REGISTRATION(const location_type &l)
static symbol_type make_DDNS_UPDATE_ON_RENEW(const location_type &l)
static symbol_type make_SANITY_CHECKS(const location_type &l)
static symbol_type make_SOCKET_PORT(const location_type &l)
static symbol_type make_REALM(const location_type &l)
static symbol_type make_ENABLE_MULTI_THREADING(const location_type &l)
static symbol_type make_PERSIST(const location_type &l)
static symbol_type make_LEASE_DATABASE(const location_type &l)
static symbol_type make_INTERFACES_CONFIG(const location_type &l)
static symbol_type make_HTYPE(const location_type &l)
static symbol_type make_FLUSH_RECLAIMED_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_CONFIG_FETCH_WAIT_TIME(const location_type &l)
static symbol_type make_OUTPUT_OPTIONS(const location_type &l)
static symbol_type make_STORE_EXTENDED_INFO(const location_type &l)
static symbol_type make_CLIENT_CLASSES(const location_type &l)
static symbol_type make_PREFIX_LEN(const location_type &l)
static symbol_type make_RSQUARE_BRACKET(const location_type &l)
static symbol_type make_END(const location_type &l)
static symbol_type make_IDENTIFIER(const location_type &l)
static symbol_type make_CACHE_MAX_AGE(const location_type &l)
static symbol_type make_READONLY(const location_type &l)
static symbol_type make_PASSWORD(const location_type &l)
static symbol_type make_LEASE_CHECKS(const location_type &l)
static symbol_type make_FLUSH(const location_type &l)
static symbol_type make_MIN_VALID_LIFETIME(const location_type &l)
static symbol_type make_T2_PERCENT(const location_type &l)
static symbol_type make_UNWARNED_RECLAIM_CYCLES(const location_type &l)
static symbol_type make_DEBUGLEVEL(const location_type &l)
static symbol_type make_BASIC(const location_type &l)
static symbol_type make_HOOKS_LIBRARIES(const location_type &l)
static symbol_type make_TCP(const location_type &l)
static symbol_type make_POOL(const location_type &l)
static symbol_type make_SERVICE_SOCKETS_RETRY_WAIT_TIME(const location_type &l)
static symbol_type make_LL(const location_type &l)
static symbol_type make_WHEN_NOT_PRESENT(const location_type &l)
static symbol_type make_SERVE_RETRY_EXIT(const location_type &l)
static symbol_type make_INTERFACE(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_CLIENT_UPDATE(const location_type &l)
static symbol_type make_SERVE_RETRY_CONTINUE(const location_type &l)
static symbol_type make_ENABLE_QUEUE(const location_type &l)
static symbol_type make_STOP_RETRY_EXIT(const location_type &l)
static symbol_type make_CONFIG_DATABASES(const location_type &l)
static symbol_type make_DHCP_QUEUE_CONTROL(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_COUNT(const location_type &l)
static symbol_type make_CALCULATE_TEE_TIMES(const location_type &l)
static symbol_type make_CAPACITY(const location_type &l)
static symbol_type make_RECLAIM_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_SUB_OPTION_DEF(const location_type &l)
static symbol_type make_DHCP_MULTI_THREADING(const location_type &l)
static symbol_type make_EARLY_GLOBAL_RESERVATIONS_LOOKUP(const location_type &l)
static symbol_type make_CLIENTS(const location_type &l)
static symbol_type make_SUB_PD_POOL(const location_type &l)
static symbol_type make_T1_PERCENT(const location_type &l)
static symbol_type make_DDNS_TTL_MIN(const location_type &l)
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
static symbol_type make_DDNS_TTL_MAX(const location_type &l)
static symbol_type make_UDP(const location_type &l)
static symbol_type make_CHECK_EXISTS_WITH_DHCID(const location_type &l)
static symbol_type make_KEY_FILE(const location_type &l)
static symbol_type make_QUEUE_TYPE(const location_type &l)
static symbol_type make_CERT_REQUIRED(const location_type &l)
static symbol_type make_TOPLEVEL_DHCP6(const location_type &l)
static symbol_type make_SERVER_ID(const location_type &l)
static symbol_type make_RELAY(const location_type &l)
static symbol_type make_HOLD_RECLAIMED_TIME(const location_type &l)
static symbol_type make_RELAY_SUPPLIED_OPTIONS(const location_type &l)
static symbol_type make_COMPATIBILITY(const location_type &l)
static symbol_type make_SUB_OPTION_DEFS(const location_type &l)
static symbol_type make_PD_ALLOCATOR(const location_type &l)
static symbol_type make_CONTROL_SOCKET(const location_type &l)
static symbol_type make_NO_CHECK_WITH_DHCID(const location_type &l)
static symbol_type make_SOCKET_ADDRESS(const location_type &l)
static symbol_type make_WRITE_TIMEOUT(const location_type &l)
static symbol_type make_TYPE(const location_type &l)
static symbol_type make_DDNS_TTL_PERCENT(const location_type &l)
static symbol_type make_EXTENDED_INFO_CHECKS(const location_type &l)
static symbol_type make_CONNECT_TIMEOUT(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_LOGGERS(const location_type &l)
static symbol_type make_PACKET_QUEUE_SIZE(const location_type &l)
static symbol_type make_RESERVATIONS_IN_SUBNET(const location_type &l)
static symbol_type make_REBIND_TIMER(const location_type &l)
static symbol_type make_NO_CHECK_WITHOUT_DHCID(const location_type &l)
static symbol_type make_CONFIG_CONTROL(const location_type &l)
static symbol_type make_PREFIXES(const location_type &l)
static symbol_type make_CSV_FORMAT(const location_type &l)
static symbol_type make_MAC_SOURCES(const location_type &l)
static symbol_type make_SSL_MODE(const location_type &l)
static symbol_type make_DECLINE_PROBATION_PERIOD(const location_type &l)
static symbol_type make_TEST(const location_type &l)
static symbol_type make_SERVICE_SOCKETS_MAX_RETRIES(const location_type &l)
static symbol_type make_RAPID_COMMIT(const location_type &l)
static symbol_type make_DUID(const location_type &l)
static symbol_type make_PREFER(const location_type &l)
static symbol_type make_DHCP4O6_PORT(const location_type &l)
static symbol_type make_VALID_LIFETIME(const location_type &l)
static symbol_type make_ON_FAIL(const location_type &l)
static symbol_type make_SENDER_IP(const location_type &l)
static symbol_type make_HOST(const location_type &l)
static symbol_type make_MAX_RECLAIM_LEASES(const location_type &l)
static symbol_type make_CONTROL_SOCKETS(const location_type &l)
static symbol_type make_SPACE(const location_type &l)
static symbol_type make_TOPLEVEL_JSON(const location_type &l)
static symbol_type make_EXCLUDED_PREFIX_LEN(const location_type &l)
static symbol_type make_HW_ADDRESS(const location_type &l)
static symbol_type make_RENEW_TIMER(const location_type &l)
static symbol_type make_DISABLE(const location_type &l)
static symbol_type make_MAX_ROW_ERRORS(const location_type &l)
static symbol_type make_NEVER(const location_type &l)
static symbol_type make_BOOLEAN(const bool &v, const location_type &l)
static symbol_type make_ENCAPSULATE(const location_type &l)
static symbol_type make_RESERVATIONS_GLOBAL(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_SET(const location_type &l)
static symbol_type make_SERVER_TAG(const location_type &l)
static symbol_type make_OUTPUT(const location_type &l)
static symbol_type make_SEVERITY(const location_type &l)
std::vector< isc::dhcp::location > locs_
Location stack.
isc::dhcp::location loc_
Location of the current token.
void includeFile(const std::string &filename)
Divert input to an include file.
FILE * sfile_
sFile (aka FILE)
void scanStringBegin(const std::string &str, ParserType type)
Method called before scanning starts on a string.
std::vector< std::string > files_
File name stack.
@ LOGGERS
Used while parsing Dhcp6/loggers structures.
@ CLIENT_CLASSES
Used while parsing Dhcp6/client-classes structures.
@ DATABASE_ON_FAIL
Used while parsing Dhcp6/*-database/on-fail.
@ OPTION_DEF
Used while parsing Dhcp6/option-def structures.
@ POOLS
Used while parsing Dhcp6/subnet6/pools structures.
@ AUTHENTICATION
Used while parsing Dhcp6/control-socket/authentication structures.
@ EXPIRED_LEASES_PROCESSING
Used while parsing Dhcp6/expired-leases-processing.
@ OPTION_DATA
Used while parsing Dhcp6/option-data, Dhcp6/subnet6/option-data or anywhere option-data is present (c...
@ CONTROL_SOCKET
Used while parsing Dhcp6/control-socket structures.
@ DHCP_QUEUE_CONTROL
Used while parsing Dhcp6/dhcp-queue-control structures.
@ SERVER_ID
Used while parsing Dhcp6/server-id structures.
@ HOSTS_DATABASE
Used while parsing Dhcp6/hosts-database[s] structures.
@ SUBNET6
Used while parsing Dhcp6/Subnet6 structures.
@ RESERVATIONS
Used while parsing Dhcp6/reservations structures.
@ CONFIG_DATABASE
Used while parsing config-control/config-databases.
@ AUTH_TYPE
Used while parsing Dhcp6/control-socket/authentication/type structures.
@ SSL_MODE
Used while parsing Dhcp6/*-database/ssl-mode.
@ DHCP_DDNS
Used while parsing Dhcp6/dhcp-ddns.
@ COMPATIBILITY
Used while parsing compatibility parameters.
@ INTERFACES_CONFIG
Used while parsing Dhcp6/interfaces structures.
@ DUID_TYPE
Used while parsing Dhcp6/server-id/type structures.
@ HOOKS_LIBRARIES
Used while parsing Dhcp6/hooks-libraries.
@ CONFIG
Used while parsing content of Dhcp6.
@ DDNS_CONFLICT_RESOLUTION_MODE
Used while parsing Dhcp6/ddns-conflict-resolution-mode.
@ LEASE_DATABASE
Used while parsing Dhcp6/lease-database structures.
@ CLIENTS
Used while parsing Dhcp6/control-socket/authentication/clients structures.
@ NCR_PROTOCOL
Used while parsing Dhcp6/dhcp-ddns/ncr-protocol.
@ RELAY
Used while parsing Dhcp6/subnet6/relay structures.
@ OUTPUT_OPTIONS
Used while parsing Dhcp6/loggers/output-options structures.
@ HOST_RESERVATION_IDENTIFIERS
Used while parsing Dhcp6/host-reservation-identifiers.
@ NCR_FORMAT
Used while parsing Dhcp6/dhcp-ddns/ncr-format.
@ REPLACE_CLIENT_NAME
Used while parsing Dhcp6/dhcp-ddns/replace-client-name.
@ DHCP_MULTI_THREADING
Used while parsing Dhcp6/multi-threading structures.
@ SHARED_NETWORK
Used while parsing shared-networks structures.
@ CONTROL_SOCKET_TYPE
Used while parsing Dhcp6/control-socket/socket-type structures.
@ PD_POOLS
Used while parsing Dhcp6/subnet6/pd-pools structures.
@ MAC_SOURCES
Used while parsing Dhcp6/mac-sources structures.
@ CONFIG_CONTROL
Used while parsing Dhcp6/config-control.
void scanEnd()
Method called after the last tokens are scanned.
void scanFileBegin(FILE *f, const std::string &filename, ParserType type)
Method called before scanning starts on a file.
ParserType
Defines currently supported scopes.
@ PARSER_PD_POOL
This will parse the input as pd-pool content.
@ PARSER_DHCP6
This parser will parse the content as Dhcp6 config wrapped in a map (that's the regular config file).
@ PARSER_OPTION_DATA
This will parse the input as option data.
@ PARSER_HOOKS_LIBRARY
This will parse the input as hooks-library.
@ PARSER_POOL6
This will parse the input as pool6 content.
@ PARSER_JSON
This parser will parse the content as generic JSON.
@ PARSER_OPTION_DEF
This will parse the input as option definition.
@ PARSER_INTERFACES
This will parse the input as interfaces content.
@ PARSER_DHCP_DDNS
This will parse the input as dhcp-ddns. (D2 client config).
@ PARSER_CONFIG_CONTROL
This will parse the input as config-control.
@ PARSER_HOST_RESERVATION
This will parse the input as host-reservation.
@ PARSER_OPTION_DEFS
This will parse the input option definitions (for tests).
@ PARSER_SUBNET6
This will parse the input as Subnet6 content.
@ SUBPARSER_DHCP6
This parser will parse the content of Dhcp6 (without outer { } and without "Dhcp6").
std::vector< FILE * > sfiles_
sFile (aka FILE) stack
std::vector< struct yy_buffer_state * > states_
Lexer state stack.
#define YY_NEW_FILE
Definition d2_lexer.cc:424
unsigned char flex_uint8_t
Definition d2_lexer.cc:335
#define COMMENT
Definition d2_lexer.cc:1259
#define yyleng
Definition d2_lexer.cc:26
#define YY_EXTRA_TYPE
Definition d2_lexer.cc:1277
#define DIR_INCLUDE
Definition d2_lexer.cc:1261
#define yyout
Definition d2_lexer.cc:29
short int flex_int16_t
Definition d2_lexer.cc:333
#define yytext
Definition d2_lexer.cc:31
unsigned int flex_uint32_t
Definition d2_lexer.cc:337
#define YY_BREAK
Definition d2_lexer.cc:1486
#define yynoreturn
Definition d2_lexer.cc:388
int yy_act
Definition d2_lexer.cc:1500
struct yy_buffer_state * YY_BUFFER_STATE
Definition d2_lexer.cc:446
#define YY_BUFFER_NEW
Definition d2_lexer.cc:539
#define YY_RESTORE_YY_MORE_OFFSET
Definition d2_lexer.cc:1183
#define yylineno
Definition d2_lexer.cc:28
#define YY_BUFFER_NORMAL
Definition d2_lexer.cc:540
char * yy_cp
Definition d2_lexer.cc:1499
#define YY_MORE_ADJ
Definition d2_lexer.cc:1182
#define YY_RULE_SETUP
Definition d2_lexer.cc:1490
#define yy_flex_debug
Definition d2_lexer.cc:24
#define DIR_EXIT
Definition d2_lexer.cc:1262
#define yytext_ptr
Definition d2_lexer.cc:669
signed char flex_int8_t
Definition d2_lexer.cc:332
#define EOB_ACT_END_OF_FILE
Definition d2_lexer.cc:465
#define YY_CURRENT_BUFFER_LVALUE
Definition d2_lexer.cc:581
int flex_int32_t
Definition d2_lexer.cc:334
#define yyin
Definition d2_lexer.cc:25
#define YY_START
Definition d2_lexer.cc:419
int yy_state_type
Definition d2_lexer.cc:660
#define YY_CURRENT_BUFFER
Definition d2_lexer.cc:575
#define INITIAL
Definition d2_lexer.cc:1258
char * yy_bp
Definition d2_lexer.cc:1499
#define YY_READ_BUF_SIZE
Definition d2_lexer.cc:1374
#define ECHO
Definition d2_lexer.cc:1384
#define YY_END_OF_BUFFER
Definition d2_lexer.cc:695
#define BEGIN
Definition d2_lexer.cc:414
#define YY_END_OF_BUFFER_CHAR
Definition d2_lexer.cc:425
unsigned short int flex_uint16_t
Definition d2_lexer.cc:336
flex_uint8_t YY_CHAR
Definition d2_lexer.cc:656
#define YY_DO_BEFORE_ACTION
Definition d2_lexer.cc:685
#define EOB_ACT_LAST_MATCH
Definition d2_lexer.cc:466
size_t yy_size_t
Definition d2_lexer.cc:451
#define YY_BUFFER_EOF_PENDING
Definition d2_lexer.cc:551
#define EOB_ACT_CONTINUE_SCAN
Definition d2_lexer.cc:464
#define YY_DECL
Definition d2_lexer.cc:1471
#define YY_BUF_SIZE
Definition d2_lexer.cc:436
#define YY_EXIT_FAILURE
Definition d2_lexer.cc:3718
#define DIR_ENTER
Definition d2_lexer.cc:1260
#define yy_load_buffer_state
#define yyset_extra
#define yyset_lineno
#define yyrestart
#define yyset_debug
#define yy_scan_bytes
#define yyget_debug
#define yypush_buffer_state
#define yyget_in
Get the input stream.
#define yyfree
#define yylex
#define yyget_leng
Get the length of the current token.
#define yywrap
#define yyget_out
Get the output stream.
#define yyensure_buffer_stack
#define yy_scan_buffer
#define yy_scan_string
#define yyalloc
#define yylex_destroy
#define yyget_text
Get the current token.
#define yy_switch_to_buffer
#define yy_init_buffer
#define yyget_extra
#define YY_INPUT(buf, result, max_size)
#define yy_flush_buffer
#define yyrealloc
#define YY_STATE_EOF(state)
#define BEGIN
#define YY_FATAL_ERROR(msg)
#define yypop_buffer_state
Removes and deletes the top of the stack, if present.
#define yy_create_buffer
#define yy_delete_buffer
#define yyset_out
#define yyget_lineno
Get the current line number.
#define YY_SC_TO_UI(c)
#define yyset_in
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
@ fatal
Definition db_log.h:117
int yy_bs_column
The column count.
Definition d2_lexer.cc:530
FILE * yy_input_file
Definition d2_lexer.cc:491
int yy_bs_lineno
The line count.
Definition d2_lexer.cc:529
char * yy_buf_pos
Definition d2_lexer.cc:498
flex_int32_t yy_verify
Definition d2_lexer.cc:700