Kea 3.1.5
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 253
695#define YY_END_OF_BUFFER 254
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[2408] =
704 { 0,
705 246, 246, 0, 0, 0, 0, 0, 0, 0, 0,
706 254, 252, 10, 11, 252, 1, 246, 243, 246, 246,
707 252, 245, 244, 252, 252, 252, 252, 252, 239, 240,
708 252, 252, 252, 241, 242, 5, 5, 5, 252, 252,
709 252, 10, 11, 0, 0, 234, 0, 0, 0, 0,
710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
712 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
713 246, 246, 0, 245, 246, 3, 2, 6, 0, 246,
714 0, 0, 0, 0, 0, 0, 4, 0, 0, 9,
715
716 0, 235, 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 0, 0, 0, 0, 0, 0, 237, 0, 0,
718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
725 2, 0, 0, 0, 0, 0, 0, 0, 8, 0,
726
727 0, 0, 186, 0, 0, 187, 0, 0, 0, 0,
728 0, 0, 0, 0, 236, 238, 0, 0, 0, 0,
729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
732 0, 0, 0, 0, 0, 0, 0, 0, 134, 0,
733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
737
738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
740 0, 0, 0, 0, 0, 0, 251, 249, 0, 248,
741 247, 0, 0, 0, 0, 0, 0, 185, 0, 0,
742 23, 0, 22, 0, 0, 0, 0, 0, 0, 0,
743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
747 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 250, 247, 0, 0, 0, 0,
756 0, 24, 0, 0, 26, 0, 0, 0, 0, 0,
757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
758 139, 0, 0, 0, 0, 0, 0, 117, 0, 0,
759
760 0, 0, 0, 0, 0, 0, 0, 171, 0, 0,
761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
762 53, 0, 0, 0, 208, 0, 0, 0, 0, 0,
763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
764 0, 0, 0, 0, 0, 0, 0, 0, 0, 116,
765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
766 0, 0, 0, 0, 0, 127, 0, 0, 54, 0,
767 0, 0, 0, 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, 163, 0, 190, 0, 50, 207, 0,
772 51, 0, 0, 0, 0, 0, 0, 0, 0, 32,
773 29, 28, 0, 0, 0, 0, 0, 0, 0, 179,
774 0, 214, 0, 0, 0, 0, 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, 153, 0, 0, 0, 0, 0, 0, 0, 209,
779 189, 0, 0, 0, 0, 0, 0, 0, 0, 0,
780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
781
782 0, 0, 0, 0, 0, 27, 0, 0, 0, 0,
783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
784 120, 0, 0, 0, 0, 0, 0, 0, 215, 0,
785 0, 0, 0, 180, 0, 0, 0, 0, 0, 0,
786 0, 0, 0, 0, 0, 0, 0, 175, 0, 0,
787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
788 0, 0, 0, 222, 0, 0, 7, 30, 0, 0,
789 0, 0, 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, 155, 0, 0, 0,
798 0, 0, 0, 0, 0, 0, 0, 152, 0, 0,
799 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,
800 0, 122, 0, 0, 0, 0, 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 131, 0, 0, 0, 0, 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, 217, 130, 0, 0, 0, 0, 0, 0,
808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
809 0, 0, 0, 0, 0, 0, 0, 0, 73, 0,
810 0, 0, 0, 0, 0, 0, 0, 0, 0, 174,
811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
812 0, 0, 0, 0, 0, 0, 0, 183, 149, 0,
813 0, 0, 0, 0, 0, 0, 154, 0, 0, 0,
814
815 0, 0, 0, 62, 0, 0, 0, 0, 0, 0,
816 0, 0, 0, 156, 0, 0, 55, 128, 0, 0,
817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
818 0, 0, 75, 0, 0, 0, 0, 0, 0, 0,
819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
820 0, 0, 0, 0, 111, 0, 0, 0, 0, 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, 226, 0, 0, 0, 0, 0, 0, 0, 0,
824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
825
826 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828 0, 0, 0, 0, 0, 173, 0, 0, 0, 0,
829 0, 0, 0, 0, 71, 0, 0, 0, 0, 0,
830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
832 0, 52, 0, 0, 121, 0, 0, 169, 0, 0,
833 0, 0, 49, 0, 0, 0, 0, 0, 0, 0,
834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
835 0, 158, 0, 0, 0, 0, 0, 72, 0, 0,
836
837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
839 90, 0, 0, 0, 0, 0, 0, 70, 0, 0,
840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
842 0, 0, 227, 0, 0, 216, 0, 0, 0, 0,
843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
844 0, 0, 0, 0, 0, 132, 0, 0, 0, 0,
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, 36, 0, 0, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 15, 0, 0, 184, 13, 0,
851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
852 0, 0, 0, 0, 0, 0, 0, 0, 218, 0,
853 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
855 0, 0, 0, 0, 176, 0, 0, 0, 0, 0,
856 0, 0, 0, 0, 0, 0, 0, 157, 0, 0,
857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
858
859 0, 0, 0, 0, 0, 0, 0, 0, 0, 172,
860 188, 0, 35, 0, 0, 0, 0, 0, 0, 0,
861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
862 19, 0, 119, 0, 0, 0, 114, 0, 0, 0,
863 182, 0, 0, 0, 0, 123, 225, 0, 0, 0,
864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
865 0, 0, 88, 0, 0, 0, 0, 0, 0, 0,
866 0, 0, 144, 145, 0, 0, 0, 0, 0, 0,
867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
868 118, 0, 0, 0, 0, 0, 78, 0, 0, 0,
869
870 0, 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, 178, 0, 0, 0, 0, 0,
873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
874 0, 0, 0, 0, 0, 140, 0, 0, 0, 0,
875 0, 0, 0, 0, 0, 0, 0, 0, 115, 0,
876 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
877 0, 0, 0, 85, 0, 0, 0, 0, 16, 0,
878 14, 0, 0, 0, 210, 212, 206, 0, 0, 0,
879 0, 0, 0, 0, 0, 0, 0, 77, 0, 0,
880
881 0, 0, 0, 25, 0, 0, 0, 0, 0, 0,
882 0, 162, 0, 0, 0, 0, 0, 0, 0, 0,
883 0, 0, 0, 0, 0, 0, 110, 109, 0, 0,
884 0, 0, 0, 0, 199, 0, 0, 224, 0, 0,
885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
886 221, 133, 0, 168, 0, 41, 0, 0, 56, 0,
887 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
888 0, 0, 0, 0, 0, 0, 0, 91, 0, 135,
889 58, 86, 0, 0, 177, 0, 0, 167, 0, 0,
890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891
892 0, 0, 69, 0, 129, 0, 0, 0, 0, 0,
893 0, 0, 0, 0, 0, 147, 0, 0, 220, 0,
894 232, 0, 0, 0, 0, 0, 0, 0, 0, 0,
895 0, 0, 0, 0, 0, 0, 0, 126, 0, 0,
896 0, 0, 191, 0, 0, 0, 0, 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, 219, 0, 0, 0, 0, 0, 0,
900 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
901 0, 0, 0, 0, 164, 0, 0, 0, 59, 0,
902
903 0, 0, 0, 0, 0, 0, 213, 0, 0, 159,
904 46, 0, 0, 0, 204, 0, 33, 0, 0, 0,
905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
906 0, 12, 0, 0, 0, 0, 0, 0, 0, 0,
907 0, 0, 44, 0, 0, 0, 43, 0, 0, 17,
908 0, 0, 0, 68, 0, 0, 0, 0, 0, 0,
909 151, 150, 0, 0, 0, 0, 0, 0, 0, 0,
910 0, 0, 0, 0, 0, 0, 0, 0, 211, 0,
911 0, 0, 0, 0, 0, 82, 0, 0, 0, 0,
912 0, 0, 0, 146, 0, 0, 0, 57, 205, 0,
913
914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 124, 0, 0, 0, 0, 0,
916 0, 181, 0, 0, 0, 45, 0, 0, 0, 0,
917 0, 0, 0, 0, 0, 0, 200, 0, 0, 0,
918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
919 0, 0, 0, 0, 113, 0, 63, 0, 0, 0,
920 0, 0, 103, 0, 0, 31, 0, 0, 0, 47,
921 0, 0, 0, 0, 0, 0, 0, 0, 107, 0,
922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
924
925 197, 0, 0, 0, 0, 165, 0, 0, 0, 0,
926 0, 0, 0, 0, 0, 0, 0, 0, 66, 0,
927 64, 0, 0, 0, 0, 60, 202, 0, 0, 0,
928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
929 0, 94, 0, 0, 0, 0, 0, 0, 0, 0,
930 170, 0, 0, 0, 0, 0, 0, 20, 34, 0,
931 0, 0, 0, 0, 0, 0, 0, 0, 203, 0,
932 0, 0, 0, 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, 223, 0, 0, 0, 0, 0, 0, 0, 0,
937 0, 0, 0, 0, 0, 196, 0, 84, 0, 83,
938 0, 0, 79, 0, 0, 0, 0, 0, 0, 0,
939 0, 0, 0, 0, 0, 0, 0, 0, 0, 104,
940 0, 0, 0, 143, 0, 0, 0, 0, 0, 0,
941 0, 0, 0, 0, 0, 0, 0, 125, 0, 0,
942 0, 195, 0, 0, 0, 0, 0, 67, 0, 0,
943 89, 0, 61, 0, 0, 136, 0, 0, 0, 0,
944 0, 0, 0, 0, 112, 0, 0, 0, 0, 0,
945 0, 0, 0, 0, 0, 0, 0, 100, 0, 0,
946
947 0, 0, 0, 0, 42, 0, 0, 0, 0, 0,
948 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,
949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
950 0, 98, 0, 0, 0, 0, 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, 106, 0, 0, 48, 0, 0, 0, 99,
954 0, 0, 0, 0, 201, 0, 0, 0, 0, 0,
955 229, 233, 81, 80, 0, 0, 141, 160, 137, 0,
956 0, 0, 0, 0, 0, 0, 105, 0, 0, 0,
957
958 0, 95, 0, 0, 0, 0, 0, 0, 0, 0,
959 0, 166, 193, 0, 0, 0, 0, 0, 0, 198,
960 0, 0, 0, 0, 97, 0, 87, 0, 0, 0,
961 0, 0, 0, 0, 138, 0, 0, 0, 0, 0,
962 0, 0, 0, 0, 0, 0, 192, 0, 0, 21,
963 230, 0, 0, 0, 0, 0, 0, 231, 0, 0,
964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
965 0, 0, 96, 0, 0, 161, 0, 0, 39, 37,
966 0, 0, 0, 0, 0, 101, 0, 0, 142, 0,
967 93, 0, 148, 102, 0, 0, 0, 0, 0, 0,
968
969 0, 92, 0, 194, 38, 228, 0
970 } ;
971
972static const YY_CHAR yy_ec[256] =
973 { 0,
974 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
975 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
976 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
977 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
978 5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
979 14, 17, 14, 18, 14, 14, 14, 19, 5, 20,
980 5, 21, 22, 5, 23, 24, 25, 26, 27, 28,
981 5, 29, 30, 31, 32, 33, 5, 34, 35, 36,
982 5, 37, 38, 39, 40, 41, 42, 43, 44, 5,
983 45, 46, 47, 5, 48, 5, 49, 50, 51, 52,
984
985 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
986 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
987 73, 74, 75, 5, 76, 5, 5, 5, 5, 5,
988 5, 5, 5, 5, 5, 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
996 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
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
1002 } ;
1003
1004static const YY_CHAR yy_meta[77] =
1005 { 0,
1006 1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
1007 1, 1, 1, 1, 1, 1, 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
1014 } ;
1015
1016static const flex_int16_t yy_base[2416] =
1017 { 0,
1018 0, 75, 21, 28, 39, 47, 53, 61, 95, 103,
1019 2855, 2856, 31, 2851, 151, 0, 216, 2856, 223, 230,
1020 13, 237, 2856, 2831, 124, 17, 4, 34, 2856, 2856,
1021 23, 43, 64, 2856, 2856, 2856, 56, 2839, 2789, 0,
1022 2829, 106, 2846, 2, 268, 2856, 85, 90, 2792, 2813,
1023 98, 77, 2813, 235, 231, 97, 207, 298, 240, 2796,
1024 294, 306, 62, 254, 203, 223, 2791, 315, 210, 338,
1025 196, 327, 2774, 21, 339, 384, 319, 78, 249, 0,
1026 396, 412, 437, 444, 452, 2856, 0, 2856, 401, 458,
1027 253, 256, 272, 323, 337, 313, 2856, 2791, 2835, 2856,
1028
1029 379, 2856, 432, 362, 367, 2789, 2833, 372, 17, 392,
1030 393, 2827, 310, 424, 313, 369, 2831, 0, 500, 2787,
1031 439, 2769, 2766, 2766, 432, 2766, 2767, 2773, 428, 2759,
1032 2760, 2765, 452, 2775, 214, 2768, 2758, 436, 2774, 468,
1033 438, 470, 374, 2811, 16, 2753, 2809, 2746, 64, 2767,
1034 2767, 2761, 437, 2753, 2754, 2752, 2746, 443, 484, 2743,
1035 2742, 480, 2798, 2742, 445, 2754, 2753, 2741, 509, 2742,
1036 472, 2754, 2751, 2752, 2740, 472, 2749, 2787, 2786, 493,
1037 478, 2730, 2734, 501, 2730, 504, 2740, 2732, 2725, 2733,
1038 0, 505, 507, 528, 518, 529, 537, 2729, 2856, 542,
1039
1040 541, 2724, 2856, 530, 539, 2856, 2781, 551, 554, 2780,
1041 553, 2779, 548, 2778, 2856, 2856, 597, 2719, 2719, 560,
1042 2732, 2724, 2722, 2722, 2726, 2727, 2707, 2718, 2720, 2719,
1043 523, 532, 2760, 2721, 2702, 2699, 2707, 2713, 2701, 2711,
1044 2714, 2710, 2701, 2710, 2710, 2705, 2697, 2696, 2698, 2701,
1045 2681, 2685, 2699, 2691, 2681, 2684, 2683, 2697, 2856, 2683,
1046 2691, 550, 2732, 2675, 2684, 2729, 2673, 2683, 2726, 585,
1047 2725, 2667, 2681, 2722, 566, 2678, 2658, 2673, 2665, 2669,
1048 539, 2660, 2658, 553, 2658, 2664, 2655, 2668, 2652, 2663,
1049 2667, 384, 2661, 566, 2668, 2663, 2646, 2661, 2647, 2655,
1050
1051 2659, 2640, 2656, 2642, 2648, 2655, 2694, 2636, 276, 2641,
1052 2638, 2637, 597, 2636, 2631, 2645, 2644, 591, 2643, 2623,
1053 2645, 2627, 79, 2635, 2623, 580, 2856, 2856, 600, 2856,
1054 2856, 2621, 584, 600, 2671, 603, 2682, 2856, 594, 605,
1055 2856, 2681, 2856, 2675, 648, 2617, 616, 595, 2611, 2630,
1056 2631, 2628, 2611, 2628, 2667, 2624, 2614, 2669, 2621, 2624,
1057 2615, 2618, 2604, 2615, 629, 2657, 2612, 2609, 2610, 625,
1058 2613, 2613, 2656, 2588, 2600, 2595, 2592, 2588, 2587, 2589,
1059 2592, 2642, 2596, 2640, 2583, 671, 672, 2596, 2596, 2579,
1060 2580, 2593, 2591, 2589, 2589, 2588, 2583, 2590, 2585, 2570,
1061
1062 615, 2579, 2582, 573, 2577, 2627, 630, 604, 2583, 2620,
1063 2567, 2560, 2575, 2566, 2573, 2554, 2571, 2563, 2559, 2564,
1064 680, 2614, 635, 2566, 2566, 2564, 627, 2555, 2553, 2565,
1065 627, 2540, 2541, 2554, 2544, 2536, 2540, 2554, 650, 2540,
1066 2552, 2551, 2550, 2541, 2544, 2589, 2546, 2545, 2544, 2543,
1067 2526, 2534, 2587, 2543, 2585, 2522, 2583, 2582, 2521, 698,
1068 2534, 2532, 2530, 2530, 2856, 2856, 2530, 657, 2570, 2574,
1069 2573, 2856, 2572, 669, 2856, 672, 734, 2520, 2527, 2564,
1070 673, 2568, 2511, 2566, 2560, 2510, 2512, 218, 2502, 2499,
1071 2856, 2504, 2497, 2509, 2512, 2499, 2498, 2856, 2508, 662,
1072
1073 2499, 2496, 2508, 177, 2493, 2487, 2494, 2856, 2542, 2499,
1074 2484, 2486, 2500, 2496, 2494, 2494, 2488, 699, 2478, 2532,
1075 2856, 2476, 2492, 2529, 2856, 2483, 2532, 2531, 2484, 2478,
1076 2480, 2481, 2465, 2474, 2519, 2467, 2466, 2461, 2460, 2462,
1077 2458, 2454, 663, 2473, 2447, 2454, 2453, 2469, 2506, 2856,
1078 2453, 2449, 708, 2457, 2456, 2450, 2443, 2442, 2456, 2456,
1079 2444, 2440, 2445, 2441, 2436, 2856, 2445, 2495, 2856, 2434,
1080 2427, 2487, 2486, 2428, 2427, 2432, 2487, 2440, 2434, 2428,
1081 2437, 709, 2477, 2421, 2416, 2474, 2411, 2417, 50, 2431,
1082 2424, 2428, 2411, 2472, 2414, 2409, 2409, 2463, 2405, 2406,
1083
1084 2405, 2403, 2420, 2856, 2416, 2856, 2456, 2856, 2856, 2404,
1085 2856, 667, 2454, 2458, 2390, 2451, 2408, 2454, 726, 2856,
1086 2856, 2856, 712, 706, 698, 2389, 2390, 2408, 759, 2856,
1087 2388, 2856, 705, 2406, 2386, 2396, 2399, 2440, 731, 2382,
1088 2392, 2437, 2379, 2386, 2379, 2387, 2380, 2389, 2371, 2371,
1089 2386, 2385, 2369, 679, 2383, 2382, 2366, 2381, 2363, 2413,
1090 2367, 2376, 2373, 2416, 2357, 2359, 2356, 2370, 2370, 2368,
1091 2368, 2856, 2353, 2365, 2357, 2363, 2354, 2362, 2360, 2856,
1092 2856, 2346, 2357, 2361, 2343, 2355, 2347, 693, 2338, 2337,
1093 2331, 2336, 2333, 2348, 2347, 2348, 2327, 2337, 2343, 2389,
1094
1095 2341, 2333, 2324, 2325, 2327, 2856, 2322, 2328, 713, 2376,
1096 765, 2375, 2317, 2373, 2317, 2320, 2318, 2320, 2311, 2326,
1097 2856, 706, 771, 2309, 2325, 2322, 2317, 2313, 2856, 2361,
1098 2310, 2317, 2358, 2856, 2301, 2299, 2313, 2316, 2301, 2352,
1099 2351, 2295, 2349, 2306, 2290, 2342, 26, 2856, 209, 316,
1100 390, 424, 772, 471, 512, 542, 577, 643, 620, 670,
1101 669, 697, 695, 2856, 745, 706, 2856, 2856, 737, 751,
1102 757, 752, 765, 740, 731, 743, 729, 742, 751, 745,
1103 734, 730, 744, 740, 746, 756, 804, 805, 762, 763,
1104 808, 810, 761, 757, 763, 764, 774, 779, 765, 768,
1105
1106 771, 780, 780, 764, 824, 783, 775, 785, 828, 774,
1107 835, 782, 782, 784, 788, 793, 796, 838, 798, 846,
1108 800, 803, 798, 789, 804, 809, 810, 807, 804, 811,
1109 810, 798, 812, 810, 818, 857, 816, 864, 865, 806,
1110 819, 805, 815, 865, 820, 873, 2856, 826, 824, 826,
1111 822, 816, 832, 880, 876, 877, 837, 2856, 827, 828,
1112 827, 840, 830, 843, 890, 846, 831, 893, 894, 2856,
1113 848, 2856, 842, 836, 831, 842, 855, 846, 835, 841,
1114 899, 860, 844, 844, 857, 909, 848, 855, 867, 862,
1115 868, 865, 912, 851, 863, 878, 875, 873, 863, 860,
1116
1117 2856, 928, 882, 883, 871, 885, 875, 879, 891, 882,
1118 885, 890, 897, 892, 920, 913, 942, 943, 917, 945,
1119 891, 906, 906, 909, 889, 896, 910, 958, 912, 897,
1120 910, 908, 2856, 2856, 912, 907, 922, 919, 905, 907,
1121 926, 923, 924, 926, 914, 922, 923, 933, 980, 938,
1122 977, 936, 926, 940, 926, 925, 931, 923, 2856, 934,
1123 929, 930, 936, 952, 935, 992, 993, 945, 995, 2856,
1124 956, 948, 959, 957, 1005, 944, 961, 947, 962, 964,
1125 951, 949, 1014, 968, 954, 960, 958, 2856, 2856, 974,
1126 973, 974, 979, 967, 977, 979, 2856, 979, 981, 968,
1127
1128 986, 973, 975, 2856, 972, 990, 991, 977, 978, 974,
1129 979, 997, 1041, 2856, 999, 1043, 2856, 2856, 998, 998,
1130 1047, 990, 994, 988, 1004, 1052, 1002, 992, 993, 989,
1131 999, 1003, 2856, 1014, 1009, 1056, 1012, 1005, 1007, 1003,
1132 1020, 1010, 1025, 1008, 1070, 1024, 1026, 1030, 1017, 1008,
1133 1076, 1032, 1019, 1018, 2856, 1025, 1026, 1078, 1079, 1028,
1134 1041, 1082, 1026, 1042, 1042, 1048, 1029, 1038, 1062, 1072,
1135 1060, 1068, 1080, 1043, 1099, 1040, 1046, 1060, 1099, 1058,
1136 1101, 2856, 1107, 1057, 1048, 1067, 1057, 1056, 1051, 1052,
1137 1064, 1059, 1055, 1073, 1065, 1060, 1061, 1073, 1085, 1124,
1138
1139 2856, 1075, 1069, 1087, 1080, 1075, 1131, 1137, 1091, 1082,
1140 1140, 1097, 1088, 1096, 1098, 1083, 1099, 1104, 1090, 1102,
1141 1099, 1097, 1109, 1093, 1094, 2856, 1110, 1113, 1110, 1097,
1142 1099, 1160, 1100, 1119, 2856, 1118, 1121, 1108, 1103, 1121,
1143 1109, 1165, 1120, 1116, 1113, 1169, 1115, 1171, 1130, 1116,
1144 1134, 1134, 1134, 1136, 1121, 1136, 1123, 1124, 1140, 1127,
1145 1144, 2856, 1142, 1129, 2856, 1187, 1137, 2856, 1147, 1140,
1146 1196, 1140, 2856, 1143, 1148, 1195, 1143, 1144, 1156, 1150,
1147 1148, 1145, 1160, 1208, 1149, 1150, 1211, 1212, 1153, 1165,
1148 1158, 2856, 1154, 1171, 1163, 1159, 1162, 2856, 1217, 1156,
1149
1150 1177, 1163, 1164, 1165, 1166, 1172, 1180, 1171, 1185, 1233,
1151 1187, 1235, 1182, 1190, 1205, 1234, 1217, 1209, 1214, 1196,
1152 2856, 1197, 1199, 1184, 1204, 1187, 1187, 2856, 1190, 1189,
1153 1191, 1202, 1192, 1212, 1211, 1202, 1213, 1259, 1198, 1210,
1154 1219, 1212, 1216, 1220, 1203, 1228, 1225, 1226, 1217, 1275,
1155 1219, 1223, 2856, 1273, 1220, 2856, 1238, 1220, 1220, 1241,
1156 1238, 1281, 1241, 1228, 1246, 1234, 1248, 1241, 1250, 1230,
1157 1245, 1252, 1237, 1298, 1299, 2856, 1249, 1301, 1255, 1241,
1158 1251, 1261, 1245, 1265, 1248, 1250, 1250, 1257, 1266, 1254,
1159 1261, 1256, 1263, 1275, 1319, 1263, 1321, 1263, 1277, 1281,
1160
1161 1325, 1275, 1276, 1265, 1329, 1277, 1280, 1275, 1279, 1334,
1162 1335, 1285, 2856, 1274, 1291, 1284, 1275, 1294, 1288, 1283,
1163 1293, 1289, 1284, 1302, 2856, 1286, 1282, 2856, 2856, 1288,
1164 1351, 1307, 1288, 1294, 1308, 1294, 1310, 1312, 1354, 1304,
1165 1361, 1362, 1312, 1317, 1311, 1309, 1320, 1302, 2856, 1307,
1166 2856, 1316, 1314, 1340, 1353, 1341, 1355, 1342, 1334, 1317,
1167 1379, 1329, 1332, 1332, 1336, 1337, 1385, 1325, 1325, 1328,
1168 1345, 1340, 1344, 1339, 2856, 1336, 1349, 1333, 1350, 1330,
1169 1351, 1342, 1339, 1350, 1347, 1403, 1353, 2856, 1366, 1364,
1170 1367, 1351, 1360, 1364, 1369, 1355, 1418, 1368, 1374, 1374,
1171
1172 1361, 1375, 1373, 1370, 1366, 1384, 1385, 1386, 1369, 2856,
1173 2856, 1385, 2856, 1387, 1372, 1383, 1374, 1393, 1386, 1384,
1174 1439, 1393, 1390, 1437, 1398, 1387, 1394, 1399, 1396, 1402,
1175 2856, 1395, 2856, 1387, 1400, 1452, 2856, 1396, 1397, 1408,
1176 2856, 1409, 1403, 1398, 1408, 2856, 2856, 1398, 1399, 1402,
1177 1416, 1421, 1404, 1415, 1467, 1421, 1408, 1427, 1418, 1472,
1178 1468, 1474, 2856, 1422, 1419, 1430, 1478, 1479, 1480, 1434,
1179 1435, 1437, 2856, 2856, 1429, 1424, 1481, 1427, 1443, 1427,
1180 1439, 1491, 1429, 1488, 1471, 1472, 1464, 1497, 1437, 1438,
1181 2856, 1443, 1454, 1445, 1456, 1458, 2856, 1505, 1439, 1450,
1182
1183 1465, 1504, 1453, 1464, 1452, 1451, 1467, 1468, 1465, 1512,
1184 1472, 1519, 1520, 1478, 1467, 1478, 1484, 1472, 1472, 1530,
1185 1526, 1527, 1533, 1487, 2856, 1489, 1485, 1489, 1491, 1482,
1186 1485, 1494, 1491, 1481, 1484, 1484, 1546, 1547, 1491, 1549,
1187 1493, 1551, 1492, 1497, 1555, 2856, 1510, 1489, 1504, 1497,
1188 1500, 1513, 1516, 1515, 1513, 1565, 1516, 1506, 2856, 1513,
1189 1514, 1566, 1510, 1526, 1574, 1527, 1576, 1577, 1578, 1519,
1190 1529, 1581, 1535, 2856, 1527, 1584, 1525, 1525, 2856, 1543,
1191 2856, 1540, 1531, 1531, 2856, 2856, 2856, 1545, 1528, 1548,
1192 1549, 1535, 1537, 1599, 1546, 1601, 1547, 2856, 1541, 1568,
1193
1194 1586, 1601, 1587, 2856, 1560, 1604, 1554, 1611, 1558, 1608,
1195 1614, 2856, 1554, 1616, 1563, 1557, 1554, 1557, 1559, 1555,
1196 1618, 1578, 1620, 1570, 1582, 1585, 2856, 2856, 1582, 1576,
1197 1581, 1574, 1637, 1582, 2856, 1579, 1578, 2856, 1580, 1642,
1198 1581, 1593, 1584, 1641, 1600, 1602, 1602, 1599, 1646, 1605,
1199 2856, 2856, 1597, 2856, 1598, 2856, 1608, 1600, 2856, 1652,
1200 1612, 1613, 1610, 1657, 1602, 1617, 1660, 1619, 1611, 2856,
1201 1608, 1618, 1609, 1610, 1611, 1668, 1674, 2856, 1628, 2856,
1202 2856, 2856, 1671, 1615, 2856, 1632, 1617, 2856, 1631, 1619,
1203 1683, 1627, 1620, 1625, 1636, 1629, 1648, 1641, 1647, 1637,
1204
1205 1695, 1645, 2856, 1654, 2856, 1651, 1699, 1676, 1677, 1683,
1206 1668, 1676, 1700, 1646, 1707, 2856, 1662, 1647, 2856, 1710,
1207 2856, 1711, 1665, 1670, 1652, 1715, 1716, 1657, 1713, 1674,
1208 1671, 1667, 1660, 1667, 1719, 1674, 1675, 2856, 1671, 1687,
1209 1685, 1736, 2856, 1686, 1672, 1734, 1695, 1695, 1737, 1682,
1210 1687, 1685, 1747, 1700, 1688, 1750, 1746, 1698, 1753, 1711,
1211 1700, 1694, 1757, 1696, 1705, 1698, 1712, 1715, 1706, 1764,
1212 1765, 1715, 1713, 2856, 1706, 1704, 1765, 1766, 1767, 1719,
1213 1718, 1718, 1714, 1715, 2856, 1723, 1729, 1720, 1721, 1783,
1214 1721, 1723, 1781, 1724, 2856, 1720, 1738, 1790, 2856, 1758,
1215
1216 1772, 1771, 1760, 1762, 1734, 1750, 2856, 1798, 1748, 2856,
1217 2856, 1739, 1750, 1802, 2856, 1803, 2856, 1757, 1747, 1752,
1218 1750, 1804, 1759, 1764, 1750, 1753, 1769, 1758, 1756, 1756,
1219 1759, 2856, 1766, 1825, 1768, 1777, 1823, 1767, 1831, 1776,
1220 1786, 1787, 2856, 1835, 1785, 1832, 2856, 1780, 1788, 2856,
1221 1779, 1794, 1782, 2856, 1792, 1793, 1794, 1846, 1801, 1792,
1222 2856, 2856, 1781, 1799, 1800, 1809, 1791, 1797, 1810, 1799,
1223 1852, 1801, 1797, 1802, 1799, 1800, 1858, 1864, 2856, 1811,
1224 1866, 1816, 1806, 1822, 1815, 2856, 1848, 1873, 1855, 1870,
1225 1876, 1826, 1829, 2856, 1824, 1880, 1819, 2856, 2856, 1821,
1226
1227 1823, 1833, 1880, 1825, 1840, 1827, 1889, 1843, 1829, 1836,
1228 1836, 1847, 1848, 1840, 2856, 1843, 1838, 1841, 1855, 1841,
1229 1853, 2856, 1900, 1848, 1845, 2856, 1859, 1846, 1867, 1863,
1230 1865, 1913, 1863, 1860, 1868, 1862, 2856, 1918, 1876, 1873,
1231 1866, 1867, 1872, 1873, 1867, 1872, 1883, 1867, 1876, 1925,
1232 1931, 1881, 1933, 1879, 2856, 1873, 2856, 1880, 1937, 1938,
1233 1935, 1936, 2856, 1918, 1924, 2856, 1888, 1894, 1899, 2856,
1234 1942, 1891, 1902, 1903, 1888, 1889, 1897, 1954, 2856, 1899,
1235 1951, 1952, 1904, 1899, 1917, 1918, 1915, 1963, 1907, 1920,
1236 1915, 1912, 1917, 1917, 1972, 1973, 1918, 1915, 1929, 1916,
1237
1238 2856, 1931, 1932, 1933, 1934, 2856, 1928, 1983, 1933, 1938,
1239 1924, 1932, 1926, 1946, 1947, 1928, 1929, 1936, 2856, 1938,
1240 2856, 1952, 1949, 1992, 1950, 2856, 2856, 1954, 1980, 1981,
1241 1979, 1956, 1943, 1944, 1944, 1953, 1960, 1953, 1952, 1963,
1242 1950, 2856, 1966, 1954, 1957, 2016, 1953, 1972, 1965, 1964,
1243 2856, 1976, 1969, 1968, 1977, 1979, 1985, 2856, 2856, 1979,
1244 1970, 1970, 2033, 1973, 2035, 1974, 2037, 2033, 2856, 1977,
1245 2040, 2036, 1995, 1992, 1983, 1991, 2002, 1989, 2000, 1986,
1246 1984, 1992, 1991, 1996, 1988, 2033, 2057, 2039, 2054, 1998,
1247 2061, 2011, 2000, 2013, 2003, 2020, 2019, 2063, 2004, 2023,
1248
1249 2024, 2856, 2029, 2022, 2069, 2075, 2029, 2016, 2031, 2079,
1250 2033, 2036, 2023, 2034, 2035, 2856, 2087, 2856, 2037, 2856,
1251 2035, 2090, 2856, 2029, 2092, 2036, 2033, 2095, 2040, 2092,
1252 2093, 2052, 2095, 2038, 2042, 2060, 2104, 2060, 2087, 2856,
1253 2083, 2046, 2049, 2856, 2055, 2049, 2046, 2108, 2071, 2064,
1254 2060, 2117, 2057, 2059, 2058, 2065, 2077, 2856, 2062, 2124,
1255 2065, 2856, 2070, 2080, 2065, 2073, 2075, 2856, 2076, 2082,
1256 2856, 2084, 2856, 2080, 2090, 2856, 2091, 2091, 2082, 2141,
1257 2082, 2092, 2077, 2090, 2856, 2092, 2123, 2129, 2098, 2107,
1258 2104, 2101, 2153, 2091, 2093, 2090, 2114, 2856, 2101, 2108,
1259
1260 2109, 2112, 2108, 2102, 2856, 2159, 2103, 2111, 2120, 2119,
1261 2122, 2123, 2110, 2117, 2112, 2115, 2115, 2127, 2122, 2856,
1262 2133, 2121, 2177, 2125, 2137, 2165, 2186, 2127, 2126, 2189,
1263 2133, 2856, 2133, 2145, 2193, 2139, 2141, 2139, 2140, 2198,
1264 2156, 2149, 2136, 2151, 2156, 2204, 2205, 2206, 2207, 2146,
1265 2162, 2210, 2212, 2213, 2154, 2158, 2154, 2170, 2153, 2165,
1266 2159, 2221, 2856, 2175, 2172, 2856, 2168, 2179, 2226, 2856,
1267 2180, 2165, 2183, 2174, 2856, 2170, 2176, 2190, 2186, 2179,
1268 2856, 2856, 2856, 2856, 2236, 2237, 2856, 2856, 2856, 2177,
1269 2185, 2180, 2236, 2199, 2196, 2244, 2856, 2184, 2189, 2242,
1270
1271 2205, 2856, 2249, 2188, 2251, 2191, 2192, 2205, 2204, 2205,
1272 2195, 2856, 2856, 2196, 2259, 2209, 2218, 2211, 2258, 2856,
1273 2214, 2209, 2211, 2205, 2856, 2217, 2856, 2264, 2223, 2271,
1274 2210, 2226, 2274, 2275, 2856, 2229, 2223, 2216, 2236, 2223,
1275 2282, 2226, 2237, 2228, 2232, 2226, 2856, 2283, 2229, 2856,
1276 2856, 2229, 2237, 2287, 2244, 2237, 2241, 2856, 2250, 2297,
1277 2242, 2242, 2300, 2239, 2241, 2303, 2304, 2243, 2259, 2244,
1278 2262, 2262, 2856, 2310, 2254, 2856, 2261, 2313, 2856, 2856,
1279 2263, 2315, 2260, 2317, 2318, 2856, 2266, 2265, 2856, 2266,
1280 2856, 2260, 2856, 2856, 2260, 2277, 2278, 2326, 2269, 2328,
1281
1282 2329, 2856, 2330, 2856, 2856, 2856, 2856, 2336, 2339, 2342,
1283 2343, 2345, 2348, 2351, 2354
1284 } ;
1285
1286static const flex_int16_t yy_def[2416] =
1287 { 0,
1288 2408, 2408, 2409, 2409, 2408, 2408, 2408, 2408, 2408, 2408,
1289 2407, 2407, 2407, 2407, 2407, 2410, 2407, 2407, 2407, 2407,
1290 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
1291 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2411,
1292 2407, 2407, 2407, 2412, 15, 2407, 45, 45, 45, 45,
1293 45, 45, 45, 45, 45, 45, 45, 2413, 45, 45,
1294 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1295 45, 45, 45, 45, 45, 45, 45, 45, 45, 2410,
1296 2407, 2407, 2407, 2407, 2407, 2407, 2414, 2407, 2407, 2407,
1297 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2411, 2407,
1298
1299 2412, 2407, 2407, 45, 45, 45, 45, 45, 45, 45,
1300 45, 45, 45, 45, 45, 45, 2415, 45, 2413, 45,
1301 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1302 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1303 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1304 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1305 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1306 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1307 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1308 2414, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 45,
1309
1310 45, 45, 2407, 45, 45, 2407, 45, 45, 45, 45,
1311 45, 45, 45, 2415, 2407, 2407, 119, 45, 45, 45,
1312 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1313 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1314 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1315 45, 45, 45, 45, 45, 45, 45, 45, 2407, 45,
1316 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1317 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1318 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1319 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1320
1321 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1322 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1323 45, 45, 45, 45, 45, 2407, 2407, 2407, 2407, 2407,
1324 2407, 2407, 45, 45, 45, 45, 45, 2407, 45, 45,
1325 2407, 45, 2407, 45, 119, 45, 45, 45, 45, 45,
1326 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1327 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1328 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1329 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1330 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1331
1332 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1333 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1334 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1335 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1336 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1337 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1338 45, 45, 45, 45, 2407, 2407, 2407, 45, 45, 45,
1339 45, 2407, 45, 45, 2407, 45, 119, 45, 45, 45,
1340 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1341 2407, 45, 45, 45, 45, 45, 45, 2407, 45, 45,
1342
1343 45, 45, 45, 45, 45, 45, 45, 2407, 45, 45,
1344 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1345 2407, 45, 45, 45, 2407, 45, 45, 45, 45, 45,
1346 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1347 45, 45, 45, 45, 45, 45, 45, 45, 45, 2407,
1348 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1349 45, 45, 45, 45, 45, 2407, 45, 45, 2407, 45,
1350 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1351 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1352 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1353
1354 45, 45, 45, 2407, 45, 2407, 45, 2407, 2407, 45,
1355 2407, 45, 45, 45, 45, 45, 2407, 45, 45, 2407,
1356 2407, 2407, 45, 45, 45, 45, 45, 45, 45, 2407,
1357 45, 2407, 45, 45, 45, 45, 45, 45, 45, 45,
1358 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1359 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1360 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1361 45, 2407, 45, 45, 45, 45, 45, 45, 45, 2407,
1362 2407, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1363 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1364
1365 45, 45, 45, 45, 45, 2407, 45, 45, 45, 45,
1366 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1367 2407, 45, 45, 45, 45, 45, 45, 45, 2407, 45,
1368 45, 45, 45, 2407, 45, 45, 45, 45, 45, 45,
1369 45, 45, 45, 45, 45, 45, 45, 2407, 45, 45,
1370 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1371 45, 45, 45, 2407, 45, 45, 2407, 2407, 45, 45,
1372 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1373 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1374 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1375
1376 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1377 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1378 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1379 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1380 45, 45, 45, 45, 45, 45, 2407, 45, 45, 45,
1381 45, 45, 45, 45, 45, 45, 45, 2407, 45, 45,
1382 45, 45, 45, 45, 45, 45, 45, 45, 45, 2407,
1383 45, 2407, 45, 45, 45, 45, 45, 45, 45, 45,
1384 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1385 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1386
1387 2407, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1388 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1389 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1390 45, 45, 2407, 2407, 45, 45, 45, 45, 45, 45,
1391 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1392 45, 45, 45, 45, 45, 45, 45, 45, 2407, 45,
1393 45, 45, 45, 45, 45, 45, 45, 45, 45, 2407,
1394 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1395 45, 45, 45, 45, 45, 45, 45, 2407, 2407, 45,
1396 45, 45, 45, 45, 45, 45, 2407, 45, 45, 45,
1397
1398 45, 45, 45, 2407, 45, 45, 45, 45, 45, 45,
1399 45, 45, 45, 2407, 45, 45, 2407, 2407, 45, 45,
1400 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1401 45, 45, 2407, 45, 45, 45, 45, 45, 45, 45,
1402 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1403 45, 45, 45, 45, 2407, 45, 45, 45, 45, 45,
1404 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1405 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1406 45, 2407, 45, 45, 45, 45, 45, 45, 45, 45,
1407 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1408
1409 2407, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1410 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1411 45, 45, 45, 45, 45, 2407, 45, 45, 45, 45,
1412 45, 45, 45, 45, 2407, 45, 45, 45, 45, 45,
1413 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1414 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1415 45, 2407, 45, 45, 2407, 45, 45, 2407, 45, 45,
1416 45, 45, 2407, 45, 45, 45, 45, 45, 45, 45,
1417 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1418 45, 2407, 45, 45, 45, 45, 45, 2407, 45, 45,
1419
1420 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1421 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1422 2407, 45, 45, 45, 45, 45, 45, 2407, 45, 45,
1423 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1424 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1425 45, 45, 2407, 45, 45, 2407, 45, 45, 45, 45,
1426 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1427 45, 45, 45, 45, 45, 2407, 45, 45, 45, 45,
1428 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1429 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1430
1431 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1432 45, 45, 2407, 45, 45, 45, 45, 45, 45, 45,
1433 45, 45, 45, 45, 2407, 45, 45, 2407, 2407, 45,
1434 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1435 45, 45, 45, 45, 45, 45, 45, 45, 2407, 45,
1436 2407, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1437 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1438 45, 45, 45, 45, 2407, 45, 45, 45, 45, 45,
1439 45, 45, 45, 45, 45, 45, 45, 2407, 45, 45,
1440 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1441
1442 45, 45, 45, 45, 45, 45, 45, 45, 45, 2407,
1443 2407, 45, 2407, 45, 45, 45, 45, 45, 45, 45,
1444 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1445 2407, 45, 2407, 45, 45, 45, 2407, 45, 45, 45,
1446 2407, 45, 45, 45, 45, 2407, 2407, 45, 45, 45,
1447 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1448 45, 45, 2407, 45, 45, 45, 45, 45, 45, 45,
1449 45, 45, 2407, 2407, 45, 45, 45, 45, 45, 45,
1450 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1451 2407, 45, 45, 45, 45, 45, 2407, 45, 45, 45,
1452
1453 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1454 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1455 45, 45, 45, 45, 2407, 45, 45, 45, 45, 45,
1456 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1457 45, 45, 45, 45, 45, 2407, 45, 45, 45, 45,
1458 45, 45, 45, 45, 45, 45, 45, 45, 2407, 45,
1459 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1460 45, 45, 45, 2407, 45, 45, 45, 45, 2407, 45,
1461 2407, 45, 45, 45, 2407, 2407, 2407, 45, 45, 45,
1462 45, 45, 45, 45, 45, 45, 45, 2407, 45, 45,
1463
1464 45, 45, 45, 2407, 45, 45, 45, 45, 45, 45,
1465 45, 2407, 45, 45, 45, 45, 45, 45, 45, 45,
1466 45, 45, 45, 45, 45, 45, 2407, 2407, 45, 45,
1467 45, 45, 45, 45, 2407, 45, 45, 2407, 45, 45,
1468 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1469 2407, 2407, 45, 2407, 45, 2407, 45, 45, 2407, 45,
1470 45, 45, 45, 45, 45, 45, 45, 45, 45, 2407,
1471 45, 45, 45, 45, 45, 45, 45, 2407, 45, 2407,
1472 2407, 2407, 45, 45, 2407, 45, 45, 2407, 45, 45,
1473 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1474
1475 45, 45, 2407, 45, 2407, 45, 45, 45, 45, 45,
1476 45, 45, 45, 45, 45, 2407, 45, 45, 2407, 45,
1477 2407, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1478 45, 45, 45, 45, 45, 45, 45, 2407, 45, 45,
1479 45, 45, 2407, 45, 45, 45, 45, 45, 45, 45,
1480 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1481 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1482 45, 45, 45, 2407, 45, 45, 45, 45, 45, 45,
1483 45, 45, 45, 45, 2407, 45, 45, 45, 45, 45,
1484 45, 45, 45, 45, 2407, 45, 45, 45, 2407, 45,
1485
1486 45, 45, 45, 45, 45, 45, 2407, 45, 45, 2407,
1487 2407, 45, 45, 45, 2407, 45, 2407, 45, 45, 45,
1488 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1489 45, 2407, 45, 45, 45, 45, 45, 45, 45, 45,
1490 45, 45, 2407, 45, 45, 45, 2407, 45, 45, 2407,
1491 45, 45, 45, 2407, 45, 45, 45, 45, 45, 45,
1492 2407, 2407, 45, 45, 45, 45, 45, 45, 45, 45,
1493 45, 45, 45, 45, 45, 45, 45, 45, 2407, 45,
1494 45, 45, 45, 45, 45, 2407, 45, 45, 45, 45,
1495 45, 45, 45, 2407, 45, 45, 45, 2407, 2407, 45,
1496
1497 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1498 45, 45, 45, 45, 2407, 45, 45, 45, 45, 45,
1499 45, 2407, 45, 45, 45, 2407, 45, 45, 45, 45,
1500 45, 45, 45, 45, 45, 45, 2407, 45, 45, 45,
1501 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1502 45, 45, 45, 45, 2407, 45, 2407, 45, 45, 45,
1503 45, 45, 2407, 45, 45, 2407, 45, 45, 45, 2407,
1504 45, 45, 45, 45, 45, 45, 45, 45, 2407, 45,
1505 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1506 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1507
1508 2407, 45, 45, 45, 45, 2407, 45, 45, 45, 45,
1509 45, 45, 45, 45, 45, 45, 45, 45, 2407, 45,
1510 2407, 45, 45, 45, 45, 2407, 2407, 45, 45, 45,
1511 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1512 45, 2407, 45, 45, 45, 45, 45, 45, 45, 45,
1513 2407, 45, 45, 45, 45, 45, 45, 2407, 2407, 45,
1514 45, 45, 45, 45, 45, 45, 45, 45, 2407, 45,
1515 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1516 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1517 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1518
1519 45, 2407, 45, 45, 45, 45, 45, 45, 45, 45,
1520 45, 45, 45, 45, 45, 2407, 45, 2407, 45, 2407,
1521 45, 45, 2407, 45, 45, 45, 45, 45, 45, 45,
1522 45, 45, 45, 45, 45, 45, 45, 45, 45, 2407,
1523 45, 45, 45, 2407, 45, 45, 45, 45, 45, 45,
1524 45, 45, 45, 45, 45, 45, 45, 2407, 45, 45,
1525 45, 2407, 45, 45, 45, 45, 45, 2407, 45, 45,
1526 2407, 45, 2407, 45, 45, 2407, 45, 45, 45, 45,
1527 45, 45, 45, 45, 2407, 45, 45, 45, 45, 45,
1528 45, 45, 45, 45, 45, 45, 45, 2407, 45, 45,
1529
1530 45, 45, 45, 45, 2407, 45, 45, 45, 45, 45,
1531 45, 45, 45, 45, 45, 45, 45, 45, 45, 2407,
1532 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1533 45, 2407, 45, 45, 45, 45, 45, 45, 45, 45,
1534 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1535 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1536 45, 45, 2407, 45, 45, 2407, 45, 45, 45, 2407,
1537 45, 45, 45, 45, 2407, 45, 45, 45, 45, 45,
1538 2407, 2407, 2407, 2407, 45, 45, 2407, 2407, 2407, 45,
1539 45, 45, 45, 45, 45, 45, 2407, 45, 45, 45,
1540
1541 45, 2407, 45, 45, 45, 45, 45, 45, 45, 45,
1542 45, 2407, 2407, 45, 45, 45, 45, 45, 45, 2407,
1543 45, 45, 45, 45, 2407, 45, 2407, 45, 45, 45,
1544 45, 45, 45, 45, 2407, 45, 45, 45, 45, 45,
1545 45, 45, 45, 45, 45, 45, 2407, 45, 45, 2407,
1546 2407, 45, 45, 45, 45, 45, 45, 2407, 45, 45,
1547 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1548 45, 45, 2407, 45, 45, 2407, 45, 45, 2407, 2407,
1549 45, 45, 45, 45, 45, 2407, 45, 45, 2407, 45,
1550 2407, 45, 2407, 2407, 45, 45, 45, 45, 45, 45,
1551
1552 45, 2407, 45, 2407, 2407, 2407, 0, 2407, 2407, 2407,
1553 2407, 2407, 2407, 2407, 2407
1554 } ;
1555
1556static const flex_int16_t yy_nxt[2933] =
1557 { 0,
1558 2407, 13, 14, 13, 2407, 15, 16, 102, 17, 18,
1559 19, 20, 21, 22, 22, 22, 22, 22, 23, 24,
1560 86, 259, 37, 14, 37, 87, 25, 26, 38, 37,
1561 14, 37, 42, 27, 42, 38, 896, 2407, 28, 91,
1562 13, 14, 13, 92, 29, 91, 30, 103, 13, 14,
1563 13, 205, 25, 31, 13, 14, 13, 42, 40, 42,
1564 742, 32, 13, 14, 13, 91, 40, 33, 260, 168,
1565 93, 94, 92, 169, 34, 35, 13, 14, 13, 205,
1566 15, 16, 92, 17, 18, 19, 20, 21, 22, 22,
1567 22, 22, 22, 23, 24, 39, 13, 14, 13, 93,
1568
1569 93, 25, 26, 39, 13, 14, 13, 42, 27, 42,
1570 137, 95, 264, 28, 109, 743, 41, 104, 105, 29,
1571 108, 30, 115, 138, 41, 265, 188, 25, 31, 96,
1572 189, 139, 89, 140, 89, 461, 32, 90, 90, 90,
1573 90, 90, 33, 109, 104, 105, 108, 462, 115, 34,
1574 35, 44, 44, 44, 45, 45, 46, 45, 45, 45,
1575 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1576 45, 45, 45, 47, 45, 48, 49, 50, 51, 45,
1577 45, 52, 45, 53, 54, 45, 45, 45, 45, 55,
1578 56, 45, 57, 45, 45, 45, 58, 45, 45, 59,
1579
1580 60, 61, 62, 63, 64, 45, 65, 66, 52, 67,
1581 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1582 78, 79, 45, 45, 45, 45, 45, 81, 658, 82,
1583 82, 82, 82, 82, 81, 116, 84, 84, 84, 84,
1584 84, 659, 83, 85, 85, 85, 85, 85, 81, 83,
1585 84, 84, 84, 84, 84, 113, 83, 159, 153, 160,
1586 897, 111, 116, 83, 161, 142, 154, 114, 83, 112,
1587 143, 636, 104, 144, 145, 83, 108, 116, 155, 240,
1588 241, 113, 83, 637, 146, 192, 147, 111, 193, 83,
1589 45, 120, 45, 45, 45, 45, 114, 112, 45, 121,
1590
1591 45, 45, 108, 118, 116, 122, 45, 45, 123, 45,
1592 45, 194, 192, 141, 190, 193, 45, 45, 45, 45,
1593 45, 45, 105, 45, 45, 45, 45, 45, 45, 45,
1594 45, 45, 45, 45, 45, 45, 45, 45, 45, 446,
1595 194, 447, 125, 45, 115, 210, 126, 45, 212, 105,
1596 127, 45, 194, 128, 131, 192, 129, 132, 133, 45,
1597 130, 134, 135, 45, 111, 45, 119, 149, 150, 193,
1598 115, 151, 112, 210, 136, 162, 212, 152, 163, 164,
1599 186, 197, 195, 898, 102, 187, 156, 170, 157, 165,
1600 158, 171, 166, 201, 172, 213, 196, 206, 178, 179,
1601
1602 112, 173, 174, 200, 204, 175, 176, 177, 113, 85,
1603 85, 85, 85, 85, 90, 90, 90, 90, 90, 201,
1604 114, 213, 83, 81, 103, 82, 82, 82, 82, 82,
1605 207, 204, 200, 208, 180, 427, 181, 101, 83, 182,
1606 183, 256, 899, 428, 101, 89, 257, 89, 83, 184,
1607 90, 90, 90, 90, 90, 81, 185, 84, 84, 84,
1608 84, 84, 208, 211, 83, 85, 85, 85, 85, 85,
1609 83, 90, 90, 90, 90, 90, 900, 101, 83, 230,
1610 200, 101, 224, 208, 244, 101, 245, 269, 231, 232,
1611 251, 225, 211, 101, 276, 226, 83, 101, 219, 101,
1612
1613 101, 236, 237, 246, 83, 216, 252, 286, 270, 220,
1614 287, 238, 275, 217, 217, 217, 217, 217, 248, 291,
1615 308, 903, 217, 217, 217, 217, 217, 217, 210, 253,
1616 280, 249, 254, 301, 309, 250, 255, 302, 314, 327,
1617 211, 303, 326, 277, 315, 281, 282, 283, 217, 217,
1618 217, 217, 217, 217, 328, 326, 313, 292, 293, 294,
1619 320, 327, 904, 328, 333, 334, 327, 336, 295, 318,
1620 296, 326, 337, 297, 321, 298, 299, 339, 340, 342,
1621 328, 344, 333, 359, 329, 361, 360, 414, 330, 331,
1622 333, 334, 339, 362, 905, 401, 336, 415, 392, 363,
1623
1624 337, 418, 341, 339, 340, 342, 465, 451, 348, 344,
1625 345, 345, 345, 345, 345, 393, 419, 342, 408, 345,
1626 345, 345, 345, 345, 345, 430, 465, 468, 431, 471,
1627 473, 469, 465, 474, 498, 504, 547, 575, 468, 499,
1628 473, 505, 548, 342, 906, 345, 345, 345, 345, 345,
1629 345, 402, 466, 907, 403, 471, 468, 456, 469, 473,
1630 474, 477, 477, 477, 477, 477, 479, 481, 908, 553,
1631 477, 477, 477, 477, 477, 477, 521, 525, 541, 542,
1632 543, 522, 526, 551, 544, 566, 480, 570, 580, 576,
1633 567, 571, 581, 552, 618, 623, 477, 477, 477, 477,
1634
1635 477, 477, 589, 611, 672, 624, 590, 625, 612, 673,
1636 618, 870, 647, 706, 734, 696, 648, 761, 707, 735,
1637 762, 623, 909, 618, 649, 697, 650, 651, 652, 653,
1638 654, 910, 523, 624, 773, 625, 771, 524, 527, 629,
1639 772, 786, 802, 834, 835, 803, 568, 45, 45, 45,
1640 45, 45, 769, 911, 912, 913, 45, 45, 45, 45,
1641 45, 45, 771, 773, 768, 779, 855, 770, 772, 777,
1642 858, 871, 780, 914, 856, 859, 872, 901, 769, 915,
1643 916, 873, 45, 45, 45, 45, 45, 45, 917, 902,
1644 918, 919, 920, 921, 922, 923, 770, 787, 924, 925,
1645
1646 926, 927, 928, 929, 930, 931, 932, 916, 915, 933,
1647 934, 935, 860, 936, 937, 917, 938, 919, 939, 918,
1648 940, 941, 942, 874, 943, 944, 945, 946, 947, 948,
1649 949, 950, 951, 952, 953, 954, 955, 956, 957, 958,
1650 959, 960, 961, 964, 965, 966, 962, 967, 968, 969,
1651 963, 970, 971, 972, 973, 974, 975, 976, 977, 978,
1652 979, 980, 981, 982, 983, 984, 985, 986, 987, 988,
1653 989, 990, 991, 992, 993, 995, 996, 994, 997, 998,
1654 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
1655 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
1656
1657 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028,
1658 1029, 1030, 1031, 1032, 1033, 1035, 1036, 1037, 1038, 1034,
1659 1040, 1041, 1044, 1045, 1046, 1039, 1047, 1051, 1042, 1052,
1660 1053, 1054, 1043, 1055, 1056, 1057, 1058, 1059, 1060, 1048,
1661 1061, 1049, 1062, 1063, 1064, 1050, 1065, 1066, 1068, 1069,
1662 1067, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078,
1663 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088,
1664 1089, 1090, 1091, 1092, 1093, 1094, 1069, 1095, 1096, 1097,
1665 1070, 1098, 1099, 1073, 1100, 1101, 1103, 1104, 1105, 1106,
1666 1102, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115,
1667
1668 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125,
1669 1126, 1128, 1129, 1130, 1131, 1127, 1132, 1133, 1134, 1135,
1670 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145,
1671 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155,
1672 1157, 1158, 1159, 1156, 1160, 1161, 1162, 1164, 1165, 1166,
1673 1167, 1163, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175,
1674 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185,
1675 1186, 1187, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196,
1676 1197, 1198, 1199, 1188, 1200, 1201, 1202, 1203, 1204, 1205,
1677 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
1678
1679 1216, 1217, 1220, 1218, 1221, 1222, 1219, 1223, 1224, 1225,
1680 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235,
1681 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1216, 1215, 1243,
1682 1217, 1218, 1219, 1244, 1245, 1246, 1248, 1249, 1247, 1250,
1683 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260,
1684 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270,
1685 1271, 1272, 1273, 1274, 1275, 1276, 1279, 1280, 1281, 1282,
1686 1277, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291,
1687 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301,
1688 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
1689
1690 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321,
1691 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331,
1692 1332, 1333, 1334, 1335, 1336, 1337, 1278, 1338, 1339, 1340,
1693 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350,
1694 1351, 1352, 1353, 1354, 1355, 1357, 1356, 1358, 1359, 1360,
1695 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370,
1696 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380,
1697 1381, 1382, 1354, 1356, 1357, 1358, 1383, 1385, 1386, 1387,
1698 1388, 1389, 1390, 1391, 1384, 1392, 1393, 1394, 1395, 1396,
1699 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406,
1700
1701 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1415, 1416, 1417,
1702 1418, 1414, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426,
1703 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436,
1704 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446,
1705 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456,
1706 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466,
1707 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476,
1708 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486,
1709 1488, 1487, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496,
1710 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506,
1711
1712 1507, 1508, 1509, 1510, 1485, 1511, 1484, 1487, 1486, 1488,
1713 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521,
1714 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531,
1715 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541,
1716 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551,
1717 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561,
1718 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571,
1719 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581,
1720 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591,
1721 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601,
1722
1723 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611,
1724 1612, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622,
1725 1623, 1624, 1625, 1626, 1627, 1628, 1601, 1602, 1629, 1630,
1726 1603, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639,
1727 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649,
1728 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1613, 1657, 1658,
1729 1659, 1660, 1661, 1662, 1664, 1665, 1666, 1667, 1668, 1669,
1730 1670, 1663, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678,
1731 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688,
1732 1690, 1691, 1694, 1692, 1689, 1693, 1695, 1696, 1697, 1698,
1733
1734 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708,
1735 1709, 1710, 1713, 1712, 1714, 1715, 1716, 1717, 1718, 1719,
1736 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729,
1737 1730, 1731, 1732, 1733, 1734, 1711, 1709, 1735, 1708, 1712,
1738 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745,
1739 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755,
1740 1756, 1757, 1758, 1711, 1759, 1760, 1761, 1762, 1763, 1764,
1741 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774,
1742 1775, 1776, 1777, 1778, 1779, 1780, 1784, 1781, 1785, 1786,
1743 1782, 1787, 1788, 1783, 1789, 1790, 1791, 1792, 1793, 1794,
1744
1745 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1803, 1802, 1804,
1746 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814,
1747 1815, 1817, 1818, 1819, 1820, 1822, 1823, 1824, 1825, 1826,
1748 1827, 1828, 1800, 1801, 1802, 1821, 1803, 1804, 1829, 1830,
1749 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840,
1750 1841, 1842, 1843, 1845, 1846, 1847, 1848, 1849, 1850, 1851,
1751 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861,
1752 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871,
1753 1872, 1816, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880,
1754 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1890, 1889,
1755
1756 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900,
1757 1901, 1902, 1903, 1844, 1904, 1905, 1906, 1907, 1908, 1909,
1758 1910, 1911, 1912, 1888, 1913, 1887, 1889, 1890, 1914, 1891,
1759 1915, 1918, 1919, 1920, 1921, 1916, 1922, 1923, 1924, 1925,
1760 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935,
1761 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945,
1762 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955,
1763 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1917, 1963, 1964,
1764 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974,
1765 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984,
1766
1767 1985, 1986, 1987, 1962, 1988, 1964, 1989, 1990, 1991, 1992,
1768 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
1769 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
1770 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022,
1771 2024, 2025, 2026, 2027, 2023, 2028, 2029, 2030, 2032, 2031,
1772 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042,
1773 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052,
1774 2053, 2054, 2055, 2056, 2030, 2031, 2057, 2058, 2059, 2060,
1775 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070,
1776 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080,
1777
1778 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090,
1779 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100,
1780 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110,
1781 2111, 2086, 2087, 2112, 2088, 2113, 2114, 2115, 2116, 2117,
1782 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127,
1783 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2136, 2137, 2135,
1784 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147,
1785 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157,
1786 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2139, 2141,
1787 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175,
1788
1789 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185,
1790 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195,
1791 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205,
1792 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2187, 2213, 2188,
1793 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223,
1794 2224, 2225, 2226, 2228, 2227, 2229, 2230, 2231, 2232, 2233,
1795 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243,
1796 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2226,
1797 2227, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261,
1798 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271,
1799
1800 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281,
1801 2282, 2283, 2284, 2285, 2286, 2287, 2262, 2288, 2289, 2290,
1802 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300,
1803 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310,
1804 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320,
1805 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330,
1806 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340,
1807 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350,
1808 2351, 2352, 2353, 2354, 2355, 2357, 2356, 2358, 2359, 2360,
1809 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370,
1810
1811 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380,
1812 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390,
1813 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400,
1814 2401, 2402, 2403, 2404, 2405, 2406, 12, 12, 12, 36,
1815 36, 36, 80, 99, 80, 101, 101, 101, 117, 117,
1816 117, 191, 895, 191, 214, 214, 214, 894, 893, 892,
1817 891, 890, 889, 888, 887, 886, 885, 884, 883, 882,
1818 881, 880, 879, 878, 877, 876, 875, 869, 868, 867,
1819 866, 865, 864, 863, 862, 861, 857, 854, 853, 852,
1820 851, 850, 849, 848, 847, 846, 845, 844, 843, 842,
1821
1822 841, 840, 839, 838, 837, 836, 833, 832, 831, 830,
1823 829, 828, 827, 826, 825, 824, 823, 822, 821, 820,
1824 819, 818, 817, 816, 815, 814, 813, 812, 811, 810,
1825 809, 808, 807, 806, 805, 804, 801, 800, 799, 798,
1826 797, 796, 795, 794, 793, 792, 791, 790, 789, 788,
1827 785, 784, 783, 782, 781, 778, 776, 775, 774, 768,
1828 767, 766, 765, 764, 763, 760, 759, 758, 757, 756,
1829 755, 754, 753, 752, 751, 750, 749, 748, 747, 746,
1830 745, 744, 741, 740, 739, 738, 737, 736, 733, 732,
1831 731, 730, 729, 728, 727, 726, 725, 724, 723, 722,
1832
1833 721, 720, 719, 718, 717, 716, 715, 714, 713, 712,
1834 711, 710, 709, 708, 705, 704, 703, 702, 701, 700,
1835 699, 698, 695, 694, 693, 692, 691, 690, 689, 688,
1836 687, 686, 685, 684, 683, 682, 681, 680, 679, 678,
1837 677, 676, 675, 674, 671, 670, 669, 668, 667, 666,
1838 665, 664, 663, 662, 661, 660, 657, 656, 655, 646,
1839 645, 644, 643, 642, 641, 640, 639, 638, 635, 634,
1840 633, 632, 631, 630, 628, 627, 626, 622, 621, 620,
1841 619, 617, 616, 615, 614, 613, 610, 609, 608, 607,
1842 606, 605, 604, 603, 602, 601, 600, 599, 598, 597,
1843
1844 596, 595, 594, 593, 592, 591, 588, 587, 586, 585,
1845 584, 583, 582, 579, 578, 577, 574, 573, 572, 569,
1846 565, 564, 563, 562, 561, 560, 559, 558, 557, 556,
1847 555, 554, 550, 549, 546, 545, 540, 539, 538, 537,
1848 536, 535, 534, 533, 532, 531, 530, 529, 528, 520,
1849 519, 518, 517, 516, 515, 514, 513, 512, 511, 510,
1850 509, 508, 507, 506, 503, 502, 501, 500, 497, 496,
1851 495, 494, 493, 492, 491, 490, 489, 488, 487, 486,
1852 485, 484, 483, 482, 478, 476, 475, 472, 470, 467,
1853 464, 463, 460, 459, 458, 457, 455, 454, 453, 452,
1854
1855 450, 449, 448, 445, 444, 443, 442, 441, 440, 439,
1856 438, 437, 436, 435, 434, 433, 432, 429, 426, 425,
1857 424, 423, 422, 421, 420, 417, 416, 413, 412, 411,
1858 410, 409, 407, 406, 405, 404, 400, 399, 398, 397,
1859 396, 395, 394, 391, 390, 389, 388, 387, 386, 385,
1860 384, 383, 382, 381, 380, 379, 378, 377, 376, 375,
1861 374, 373, 372, 371, 370, 369, 368, 367, 366, 365,
1862 364, 358, 357, 356, 355, 354, 353, 352, 351, 350,
1863 349, 347, 346, 215, 343, 341, 338, 335, 332, 325,
1864 324, 323, 322, 319, 317, 316, 312, 311, 310, 307,
1865
1866 306, 305, 304, 300, 290, 289, 288, 285, 284, 279,
1867 278, 274, 273, 272, 271, 268, 267, 266, 263, 262,
1868 261, 258, 247, 243, 242, 239, 235, 234, 233, 229,
1869 228, 227, 223, 222, 221, 218, 215, 209, 203, 202,
1870 199, 198, 167, 148, 124, 110, 107, 106, 43, 100,
1871 98, 97, 88, 43, 2407, 11, 2407, 2407, 2407, 2407,
1872 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
1873 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
1874 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
1875 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
1876
1877 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
1878 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
1879 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
1880 2407, 2407
1881 } ;
1882
1883static const flex_int16_t yy_chk[2933] =
1884 { 0,
1885 0, 1, 1, 1, 0, 1, 1, 44, 1, 1,
1886 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1887 21, 145, 3, 3, 3, 21, 1, 1, 3, 4,
1888 4, 4, 13, 1, 13, 4, 747, 0, 1, 26,
1889 5, 5, 5, 27, 1, 31, 1, 44, 6, 6,
1890 6, 109, 1, 1, 7, 7, 7, 37, 7, 37,
1891 589, 1, 8, 8, 8, 26, 8, 1, 145, 74,
1892 28, 31, 27, 74, 1, 1, 2, 2, 2, 109,
1893 2, 2, 32, 2, 2, 2, 2, 2, 2, 2,
1894 2, 2, 2, 2, 2, 5, 9, 9, 9, 28,
1895
1896 33, 2, 2, 6, 10, 10, 10, 42, 2, 42,
1897 63, 32, 149, 2, 52, 589, 9, 47, 48, 2,
1898 51, 2, 56, 63, 10, 149, 78, 2, 2, 33,
1899 78, 63, 25, 63, 25, 323, 2, 25, 25, 25,
1900 25, 25, 2, 52, 47, 48, 51, 323, 56, 2,
1901 2, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1902 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1903 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1904 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1905 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1906
1907 15, 15, 15, 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, 17, 504, 17,
1910 17, 17, 17, 17, 19, 57, 19, 19, 19, 19,
1911 19, 504, 17, 20, 20, 20, 20, 20, 22, 19,
1912 22, 22, 22, 22, 22, 55, 20, 71, 69, 71,
1913 749, 54, 57, 22, 71, 65, 69, 55, 17, 54,
1914 65, 488, 59, 65, 66, 19, 64, 79, 69, 135,
1915 135, 55, 20, 488, 66, 91, 66, 54, 92, 22,
1916 45, 59, 45, 45, 45, 45, 55, 54, 45, 59,
1917
1918 45, 45, 64, 58, 79, 59, 45, 45, 59, 45,
1919 58, 93, 91, 64, 79, 92, 45, 45, 45, 45,
1920 45, 45, 61, 45, 45, 45, 45, 45, 45, 45,
1921 45, 45, 45, 45, 45, 45, 45, 45, 45, 309,
1922 93, 309, 61, 58, 77, 113, 61, 58, 115, 61,
1923 61, 58, 96, 61, 62, 94, 61, 62, 62, 58,
1924 61, 62, 62, 58, 70, 58, 58, 68, 68, 95,
1925 77, 68, 70, 113, 62, 72, 115, 68, 72, 72,
1926 77, 96, 94, 750, 101, 77, 70, 75, 70, 72,
1927 70, 75, 72, 105, 75, 116, 95, 110, 76, 76,
1928
1929 70, 75, 75, 104, 108, 75, 75, 75, 76, 81,
1930 81, 81, 81, 81, 89, 89, 89, 89, 89, 105,
1931 76, 116, 81, 82, 101, 82, 82, 82, 82, 82,
1932 110, 108, 104, 111, 76, 292, 76, 103, 82, 76,
1933 76, 143, 751, 292, 103, 83, 143, 83, 81, 76,
1934 83, 83, 83, 83, 83, 84, 76, 84, 84, 84,
1935 84, 84, 111, 114, 82, 85, 85, 85, 85, 85,
1936 84, 90, 90, 90, 90, 90, 752, 103, 85, 129,
1937 121, 103, 125, 158, 138, 103, 138, 153, 129, 129,
1938 141, 125, 114, 103, 159, 125, 84, 103, 121, 103,
1939
1940 103, 133, 133, 138, 85, 119, 141, 165, 153, 121,
1941 165, 133, 158, 119, 119, 119, 119, 119, 140, 169,
1942 176, 754, 119, 119, 119, 119, 119, 119, 180, 142,
1943 162, 140, 142, 171, 176, 140, 142, 171, 181, 193,
1944 184, 171, 192, 159, 181, 162, 162, 162, 119, 119,
1945 119, 119, 119, 119, 194, 195, 180, 169, 169, 169,
1946 186, 196, 755, 197, 200, 201, 193, 204, 169, 184,
1947 169, 192, 205, 169, 186, 169, 169, 208, 209, 211,
1948 194, 213, 220, 231, 195, 232, 231, 281, 196, 197,
1949 200, 201, 275, 232, 756, 270, 204, 281, 262, 232,
1950
1951 205, 284, 313, 208, 209, 211, 326, 313, 220, 213,
1952 217, 217, 217, 217, 217, 262, 284, 318, 275, 217,
1953 217, 217, 217, 217, 217, 294, 329, 333, 294, 336,
1954 339, 334, 326, 340, 365, 370, 404, 427, 348, 365,
1955 408, 370, 404, 318, 757, 217, 217, 217, 217, 217,
1956 217, 270, 329, 758, 270, 336, 333, 318, 334, 339,
1957 340, 345, 345, 345, 345, 345, 347, 348, 759, 408,
1958 345, 345, 345, 345, 345, 345, 386, 387, 401, 401,
1959 401, 386, 387, 407, 401, 421, 347, 423, 431, 427,
1960 421, 423, 431, 407, 468, 474, 345, 345, 345, 345,
1961
1962 345, 345, 439, 460, 518, 476, 439, 476, 460, 518,
1963 481, 722, 500, 553, 582, 543, 500, 612, 553, 582,
1964 612, 474, 760, 468, 500, 543, 500, 500, 500, 500,
1965 500, 761, 386, 476, 625, 476, 623, 386, 387, 481,
1966 624, 639, 654, 688, 688, 654, 421, 477, 477, 477,
1967 477, 477, 619, 762, 763, 765, 477, 477, 477, 477,
1968 477, 477, 623, 625, 629, 633, 709, 619, 624, 629,
1969 711, 722, 633, 766, 709, 711, 723, 753, 619, 769,
1970 770, 723, 477, 477, 477, 477, 477, 477, 771, 753,
1971 772, 773, 774, 775, 776, 777, 619, 639, 778, 779,
1972
1973 780, 781, 782, 783, 784, 785, 786, 770, 769, 787,
1974 788, 789, 711, 790, 790, 771, 790, 773, 791, 772,
1975 792, 793, 794, 723, 795, 796, 797, 798, 799, 800,
1976 801, 802, 803, 804, 805, 806, 807, 808, 809, 810,
1977 811, 812, 813, 814, 815, 816, 813, 817, 818, 819,
1978 813, 820, 821, 822, 823, 824, 825, 826, 827, 828,
1979 829, 830, 831, 832, 833, 834, 835, 836, 837, 838,
1980 839, 840, 841, 842, 843, 844, 845, 843, 846, 848,
1981 849, 850, 851, 852, 853, 854, 855, 856, 857, 859,
1982 860, 861, 862, 863, 864, 865, 866, 867, 868, 869,
1983
1984 871, 873, 874, 875, 876, 877, 878, 879, 880, 881,
1985 882, 883, 884, 885, 886, 887, 888, 889, 890, 886,
1986 891, 892, 893, 894, 895, 890, 896, 897, 892, 898,
1987 899, 900, 892, 902, 903, 904, 905, 906, 907, 896,
1988 908, 896, 909, 910, 911, 896, 912, 913, 914, 915,
1989 913, 916, 917, 918, 919, 920, 921, 922, 923, 924,
1990 925, 926, 927, 928, 929, 930, 931, 932, 935, 936,
1991 937, 938, 939, 940, 941, 942, 915, 943, 944, 945,
1992 916, 946, 947, 919, 948, 949, 950, 951, 952, 953,
1993 949, 954, 955, 956, 957, 958, 960, 961, 962, 963,
1994
1995 964, 965, 966, 967, 968, 969, 971, 972, 973, 974,
1996 975, 976, 977, 978, 979, 975, 980, 981, 982, 983,
1997 984, 985, 986, 987, 990, 991, 992, 993, 994, 995,
1998 996, 998, 999, 1000, 1001, 1002, 1003, 1005, 1006, 1007,
1999 1008, 1009, 1010, 1007, 1011, 1012, 1013, 1015, 1016, 1019,
2000 1020, 1013, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028,
2001 1029, 1030, 1031, 1032, 1034, 1035, 1036, 1037, 1038, 1039,
2002 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049,
2003 1050, 1051, 1052, 1041, 1053, 1054, 1056, 1057, 1058, 1059,
2004 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,
2005
2006 1070, 1071, 1074, 1072, 1075, 1076, 1073, 1077, 1078, 1079,
2007 1080, 1081, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090,
2008 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1070, 1069, 1098,
2009 1071, 1072, 1073, 1099, 1100, 1102, 1103, 1104, 1102, 1105,
2010 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115,
2011 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125,
2012 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1136, 1137,
2013 1132, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146,
2014 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156,
2015 1157, 1158, 1159, 1160, 1161, 1163, 1164, 1166, 1167, 1169,
2016
2017 1170, 1171, 1172, 1174, 1175, 1176, 1177, 1178, 1179, 1180,
2018 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190,
2019 1191, 1193, 1194, 1195, 1196, 1197, 1132, 1199, 1200, 1201,
2020 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211,
2021 1212, 1213, 1214, 1215, 1216, 1218, 1217, 1219, 1220, 1222,
2022 1223, 1224, 1225, 1226, 1227, 1229, 1230, 1231, 1232, 1233,
2023 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243,
2024 1244, 1245, 1215, 1217, 1218, 1219, 1246, 1247, 1248, 1249,
2025 1250, 1251, 1252, 1254, 1246, 1255, 1257, 1258, 1259, 1260,
2026 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270,
2027
2028 1271, 1272, 1273, 1274, 1275, 1277, 1278, 1279, 1280, 1281,
2029 1282, 1278, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290,
2030 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300,
2031 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310,
2032 1311, 1312, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321,
2033 1322, 1323, 1324, 1326, 1327, 1330, 1331, 1332, 1333, 1334,
2034 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344,
2035 1345, 1346, 1347, 1348, 1350, 1352, 1353, 1354, 1355, 1356,
2036 1358, 1357, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366,
2037 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1376, 1377,
2038
2039 1378, 1379, 1380, 1381, 1355, 1382, 1354, 1357, 1356, 1358,
2040 1383, 1384, 1385, 1386, 1387, 1389, 1390, 1391, 1392, 1393,
2041 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403,
2042 1404, 1405, 1406, 1407, 1408, 1409, 1412, 1414, 1415, 1416,
2043 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426,
2044 1427, 1428, 1429, 1430, 1432, 1434, 1435, 1436, 1438, 1439,
2045 1440, 1442, 1443, 1444, 1445, 1448, 1449, 1450, 1451, 1452,
2046 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462,
2047 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1475,
2048 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485,
2049
2050 1486, 1487, 1488, 1489, 1490, 1492, 1493, 1494, 1495, 1496,
2051 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507,
2052 1508, 1509, 1510, 1511, 1512, 1513, 1485, 1486, 1514, 1515,
2053 1487, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524,
2054 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535,
2055 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1498, 1543, 1544,
2056 1545, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555,
2057 1556, 1549, 1557, 1558, 1560, 1561, 1562, 1563, 1564, 1565,
2058 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1575, 1576,
2059 1577, 1578, 1582, 1580, 1576, 1580, 1583, 1584, 1588, 1589,
2060
2061 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1599, 1600,
2062 1601, 1602, 1605, 1603, 1606, 1607, 1608, 1609, 1610, 1611,
2063 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622,
2064 1623, 1624, 1625, 1626, 1629, 1602, 1601, 1630, 1600, 1603,
2065 1631, 1632, 1633, 1634, 1636, 1637, 1639, 1640, 1641, 1642,
2066 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1653, 1655,
2067 1657, 1658, 1660, 1602, 1661, 1662, 1663, 1664, 1665, 1666,
2068 1667, 1668, 1669, 1671, 1672, 1673, 1674, 1675, 1676, 1677,
2069 1679, 1683, 1684, 1686, 1687, 1689, 1690, 1689, 1691, 1692,
2070 1689, 1693, 1694, 1689, 1695, 1696, 1697, 1698, 1699, 1700,
2071
2072 1701, 1702, 1704, 1706, 1707, 1708, 1709, 1711, 1710, 1712,
2073 1713, 1714, 1715, 1717, 1718, 1720, 1722, 1723, 1724, 1725,
2074 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735,
2075 1736, 1737, 1708, 1709, 1710, 1730, 1711, 1712, 1739, 1740,
2076 1741, 1742, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751,
2077 1752, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760,
2078 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770,
2079 1771, 1772, 1773, 1775, 1776, 1777, 1778, 1779, 1780, 1781,
2080 1782, 1726, 1783, 1784, 1786, 1787, 1788, 1789, 1790, 1791,
2081 1792, 1793, 1794, 1796, 1797, 1798, 1800, 1801, 1803, 1802,
2082
2083 1804, 1805, 1806, 1808, 1809, 1812, 1813, 1814, 1816, 1818,
2084 1819, 1820, 1821, 1753, 1822, 1823, 1824, 1825, 1826, 1827,
2085 1828, 1829, 1830, 1801, 1831, 1800, 1802, 1803, 1833, 1804,
2086 1834, 1835, 1836, 1837, 1838, 1834, 1839, 1840, 1841, 1842,
2087 1844, 1845, 1846, 1848, 1849, 1851, 1852, 1853, 1855, 1856,
2088 1857, 1858, 1859, 1860, 1863, 1864, 1865, 1866, 1867, 1868,
2089 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878,
2090 1880, 1881, 1882, 1883, 1884, 1885, 1887, 1834, 1888, 1889,
2091 1890, 1891, 1892, 1893, 1895, 1896, 1897, 1900, 1901, 1902,
2092 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912,
2093
2094 1913, 1914, 1916, 1887, 1917, 1889, 1918, 1919, 1920, 1921,
2095 1923, 1924, 1925, 1927, 1928, 1929, 1930, 1931, 1932, 1933,
2096 1934, 1935, 1936, 1938, 1939, 1940, 1941, 1942, 1943, 1944,
2097 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954,
2098 1956, 1958, 1959, 1960, 1954, 1961, 1962, 1964, 1967, 1965,
2099 1968, 1969, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978,
2100 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989,
2101 1990, 1991, 1992, 1993, 1964, 1965, 1994, 1995, 1996, 1997,
2102 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2007, 2008, 2009,
2103 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2020,
2104
2105 2022, 2023, 2024, 2025, 2028, 2029, 2030, 2031, 2032, 2033,
2106 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2043, 2044,
2107 2045, 2046, 2047, 2048, 2049, 2050, 2052, 2053, 2054, 2055,
2108 2056, 2029, 2030, 2057, 2031, 2060, 2061, 2062, 2063, 2064,
2109 2065, 2066, 2067, 2068, 2070, 2071, 2072, 2073, 2074, 2075,
2110 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2082,
2111 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094,
2112 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2103, 2104, 2105,
2113 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2086, 2088,
2114 2114, 2115, 2117, 2119, 2121, 2122, 2124, 2125, 2126, 2127,
2115
2116 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137,
2117 2138, 2139, 2141, 2142, 2143, 2145, 2146, 2147, 2148, 2149,
2118 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2159, 2160,
2119 2161, 2163, 2164, 2165, 2166, 2167, 2169, 2139, 2170, 2141,
2120 2172, 2174, 2175, 2177, 2178, 2179, 2180, 2181, 2182, 2183,
2121 2184, 2186, 2187, 2189, 2188, 2190, 2191, 2192, 2193, 2194,
2122 2195, 2196, 2197, 2199, 2200, 2201, 2202, 2203, 2204, 2206,
2123 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2187,
2124 2188, 2216, 2217, 2218, 2219, 2221, 2222, 2223, 2224, 2225,
2125 2226, 2227, 2228, 2229, 2230, 2231, 2233, 2234, 2235, 2236,
2126
2127 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246,
2128 2247, 2248, 2249, 2250, 2251, 2252, 2226, 2253, 2254, 2255,
2129 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2264, 2265, 2267,
2130 2268, 2269, 2271, 2272, 2273, 2274, 2276, 2277, 2278, 2279,
2131 2280, 2285, 2286, 2290, 2291, 2292, 2293, 2294, 2295, 2296,
2132 2298, 2299, 2300, 2301, 2303, 2304, 2305, 2306, 2307, 2308,
2133 2309, 2310, 2311, 2314, 2315, 2316, 2317, 2318, 2319, 2321,
2134 2322, 2323, 2324, 2326, 2328, 2329, 2330, 2331, 2332, 2333,
2135 2334, 2336, 2337, 2338, 2339, 2340, 2339, 2341, 2342, 2343,
2136 2344, 2345, 2346, 2348, 2349, 2352, 2353, 2354, 2355, 2356,
2137
2138 2357, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367,
2139 2368, 2369, 2370, 2371, 2372, 2374, 2375, 2377, 2378, 2381,
2140 2382, 2383, 2384, 2385, 2387, 2388, 2390, 2392, 2395, 2396,
2141 2397, 2398, 2399, 2400, 2401, 2403, 2408, 2408, 2408, 2409,
2142 2409, 2409, 2410, 2411, 2410, 2412, 2412, 2412, 2413, 2413,
2143 2413, 2414, 746, 2414, 2415, 2415, 2415, 745, 744, 743,
2144 742, 741, 740, 739, 738, 737, 736, 735, 733, 732,
2145 731, 730, 728, 727, 726, 725, 724, 720, 719, 718,
2146 717, 716, 715, 714, 713, 712, 710, 708, 707, 705,
2147 704, 703, 702, 701, 700, 699, 698, 697, 696, 695,
2148
2149 694, 693, 692, 691, 690, 689, 687, 686, 685, 684,
2150 683, 682, 679, 678, 677, 676, 675, 674, 673, 671,
2151 670, 669, 668, 667, 666, 665, 664, 663, 662, 661,
2152 660, 659, 658, 657, 656, 655, 653, 652, 651, 650,
2153 649, 648, 647, 646, 645, 644, 643, 642, 641, 640,
2154 638, 637, 636, 635, 634, 631, 628, 627, 626, 618,
2155 617, 616, 615, 614, 613, 610, 607, 605, 603, 602,
2156 601, 600, 599, 598, 597, 596, 595, 594, 593, 592,
2157 591, 590, 588, 587, 586, 585, 584, 583, 581, 580,
2158 579, 578, 577, 576, 575, 574, 573, 572, 571, 570,
2159
2160 568, 567, 565, 564, 563, 562, 561, 560, 559, 558,
2161 557, 556, 555, 554, 552, 551, 549, 548, 547, 546,
2162 545, 544, 542, 541, 540, 539, 538, 537, 536, 535,
2163 534, 533, 532, 531, 530, 529, 528, 527, 526, 524,
2164 523, 522, 520, 519, 517, 516, 515, 514, 513, 512,
2165 511, 510, 509, 507, 506, 505, 503, 502, 501, 499,
2166 497, 496, 495, 494, 493, 492, 490, 489, 487, 486,
2167 485, 484, 483, 482, 480, 479, 478, 473, 471, 470,
2168 469, 467, 464, 463, 462, 461, 459, 458, 457, 456,
2169 455, 454, 453, 452, 451, 450, 449, 448, 447, 446,
2170
2171 445, 444, 443, 442, 441, 440, 438, 437, 436, 435,
2172 434, 433, 432, 430, 429, 428, 426, 425, 424, 422,
2173 420, 419, 418, 417, 416, 415, 414, 413, 412, 411,
2174 410, 409, 406, 405, 403, 402, 400, 399, 398, 397,
2175 396, 395, 394, 393, 392, 391, 390, 389, 388, 385,
2176 384, 383, 382, 381, 380, 379, 378, 377, 376, 375,
2177 374, 373, 372, 371, 369, 368, 367, 366, 364, 363,
2178 362, 361, 360, 359, 358, 357, 356, 355, 354, 353,
2179 352, 351, 350, 349, 346, 344, 342, 337, 335, 332,
2180 325, 324, 322, 321, 320, 319, 317, 316, 315, 314,
2181
2182 312, 311, 310, 308, 307, 306, 305, 304, 303, 302,
2183 301, 300, 299, 298, 297, 296, 295, 293, 291, 290,
2184 289, 288, 287, 286, 285, 283, 282, 280, 279, 278,
2185 277, 276, 274, 273, 272, 271, 269, 268, 267, 266,
2186 265, 264, 263, 261, 260, 258, 257, 256, 255, 254,
2187 253, 252, 251, 250, 249, 248, 247, 246, 245, 244,
2188 243, 242, 241, 240, 239, 238, 237, 236, 235, 234,
2189 233, 230, 229, 228, 227, 226, 225, 224, 223, 222,
2190 221, 219, 218, 214, 212, 210, 207, 202, 198, 190,
2191 189, 188, 187, 185, 183, 182, 179, 178, 177, 175,
2192
2193 174, 173, 172, 170, 168, 167, 166, 164, 163, 161,
2194 160, 157, 156, 155, 154, 152, 151, 150, 148, 147,
2195 146, 144, 139, 137, 136, 134, 132, 131, 130, 128,
2196 127, 126, 124, 123, 122, 120, 117, 112, 107, 106,
2197 99, 98, 73, 67, 60, 53, 50, 49, 43, 41,
2198 39, 38, 24, 14, 11, 2407, 2407, 2407, 2407, 2407,
2199 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
2200 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
2201 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
2202 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
2203
2204 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
2205 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
2206 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
2207 2407, 2407
2208 } ;
2209
2210static yy_state_type yy_last_accepting_state;
2211static char *yy_last_accepting_cpos;
2212
2213extern int yy_flex_debug;
2215
2216static const flex_int16_t yy_rule_linenum[253] =
2217 { 0,
2218 149, 151, 153, 158, 159, 164, 165, 166, 178, 180,
2219 185, 191, 200, 209, 218, 227, 236, 245, 254, 263,
2220 275, 287, 297, 307, 317, 327, 337, 346, 356, 366,
2221 376, 386, 395, 404, 413, 422, 431, 440, 449, 458,
2222 467, 476, 485, 494, 503, 512, 521, 530, 539, 548,
2223 562, 574, 586, 597, 608, 620, 631, 642, 653, 664,
2224 675, 686, 697, 706, 715, 724, 735, 746, 755, 767,
2225 779, 791, 802, 811, 820, 829, 838, 847, 858, 870,
2226 882, 894, 906, 918, 930, 941, 952, 961, 970, 979,
2227 990, 1001, 1010, 1019, 1031, 1043, 1055, 1067, 1079, 1091,
2228
2229 1103, 1114, 1126, 1135, 1144, 1153, 1162, 1174, 1186, 1198,
2230 1210, 1220, 1231, 1240, 1249, 1264, 1281, 1290, 1299, 1308,
2231 1317, 1326, 1335, 1344, 1353, 1362, 1371, 1380, 1390, 1417,
2232 1444, 1453, 1463, 1473, 1482, 1492, 1503, 1514, 1525, 1535,
2233 1544, 1553, 1562, 1573, 1584, 1595, 1606, 1617, 1628, 1637,
2234 1646, 1655, 1664, 1673, 1682, 1691, 1700, 1709, 1718, 1733,
2235 1745, 1757, 1770, 1779, 1788, 1797, 1806, 1816, 1826, 1835,
2236 1844, 1855, 1865, 1874, 1884, 1894, 1903, 1912, 1921, 1930,
2237 1940, 1949, 1958, 1967, 1976, 1985, 1994, 2003, 2012, 2021,
2238 2030, 2039, 2048, 2057, 2066, 2075, 2084, 2093, 2102, 2111,
2239
2240 2120, 2129, 2138, 2147, 2156, 2165, 2174, 2183, 2192, 2201,
2241 2210, 2219, 2228, 2237, 2246, 2255, 2264, 2273, 2282, 2291,
2242 2300, 2309, 2318, 2327, 2336, 2345, 2354, 2363, 2372, 2381,
2243 2390, 2399, 2408, 2417, 2518, 2534, 2583, 2591, 2606, 2607,
2244 2608, 2609, 2610, 2611, 2613, 2631, 2644, 2649, 2653, 2655,
2245 2657, 2659
2246 } ;
2247
2248/* The intent behind this definition is that it'll catch
2249 * any uses of REJECT which flex missed.
2250 */
2251#define REJECT reject_used_but_not_detected
2252#define yymore() yymore_used_but_not_detected
2253#define YY_MORE_ADJ 0
2254#define YY_RESTORE_YY_MORE_OFFSET
2256#line 1 "dhcp6_lexer.ll"
2257/* Copyright (C) 2016-2025 Internet Systems Consortium, Inc. ("ISC")
2258
2259 This Source Code Form is subject to the terms of the Mozilla Public
2260 License, v. 2.0. If a copy of the MPL was not distributed with this
2261 file, You can obtain one at http://mozilla.org/MPL/2.0/. */
2262#line 8 "dhcp6_lexer.ll"
2263
2264/* Generated files do not make clang static analyser so happy */
2265#ifndef __clang_analyzer__
2266
2267#include <cctype>
2268#include <cerrno>
2269#include <climits>
2270#include <cstdint>
2271#include <cstdlib>
2272#include <string>
2273#include <dhcp6/parser_context.h>
2274#include <asiolink/io_address.h>
2275#include <boost/lexical_cast.hpp>
2276#include <exceptions/exceptions.h>
2277
2278/* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
2279
2280/* Work around an incompatibility in flex (at least versions
2281 2.5.31 through 2.5.33): it generates code that does
2282 not conform to C89. See Debian bug 333231
2283 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
2284# undef yywrap
2285# define yywrap() 1
2286
2287namespace {
2288
2289bool start_token_flag = false;
2290
2292unsigned int comment_start_line = 0;
2293
2294using namespace isc::dhcp;
2295
2296};
2297
2298/* To avoid the call to exit... oops! */
2299#define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
2300#line 2300 "dhcp6_lexer.cc"
2301/* noyywrap disables automatic rewinding for the next file to parse. Since we
2302 always parse only a single string, there's no need to do any wraps. And
2303 using yywrap requires linking with -lfl, which provides the default yywrap
2304 implementation that always returns 1 anyway. */
2305/* nounput simplifies the lexer, by removing support for putting a character
2306 back into the input stream. We never use such capability anyway. */
2307/* batch means that we'll never use the generated lexer interactively. */
2308/* avoid to get static global variables to remain with C++. */
2309/* in last resort %option reentrant */
2310/* Enables debug mode. To see the debug messages, one needs to also set
2311 yy_flex_debug to 1, then the debug messages will be printed on stderr. */
2312/* I have no idea what this option does, except it was specified in the bison
2313 examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
2314 be on the safe side and keep it. */
2315#define YY_NO_INPUT 1
2316
2317/* These are not token expressions yet, just convenience expressions that
2318 can be used during actual token definitions. Note some can match
2319 incorrect inputs (e.g., IP addresses) which must be checked. */
2320/* for errors */
2321#line 96 "dhcp6_lexer.ll"
2322/* This code run each time a pattern is matched. It updates the location
2323 by moving it ahead by yyleng bytes. yyleng specifies the length of the
2324 currently matched token. */
2325#define YY_USER_ACTION driver.loc_.columns(yyleng);
2326#line 2326 "dhcp6_lexer.cc"
2327#line 2327 "dhcp6_lexer.cc"
2328
2329#define INITIAL 0
2330#define COMMENT 1
2331#define DIR_ENTER 2
2332#define DIR_INCLUDE 3
2333#define DIR_EXIT 4
2334
2335#ifndef YY_NO_UNISTD_H
2336/* Special case for "unistd.h", since it is non-ANSI. We include it way
2337 * down here because we want the user's section 1 to have been scanned first.
2338 * The user has a chance to override it with an option.
2339 */
2340/* %if-c-only */
2341#include <unistd.h>
2342/* %endif */
2343/* %if-c++-only */
2344/* %endif */
2345#endif
2346
2347#ifndef YY_EXTRA_TYPE
2348#define YY_EXTRA_TYPE void *
2349#endif
2350
2351/* %if-c-only Reentrant structure and macros (non-C++). */
2352/* %if-reentrant */
2353/* %if-c-only */
2354
2355static int yy_init_globals ( void );
2356
2357/* %endif */
2358/* %if-reentrant */
2359/* %endif */
2360/* %endif End reentrant structures and macros. */
2361
2362/* Accessor methods to globals.
2363 These are made visible to non-reentrant scanners for convenience. */
2364
2365int yylex_destroy ( void );
2366
2367int yyget_debug ( void );
2368
2369void yyset_debug ( int debug_flag );
2370
2371YY_EXTRA_TYPE yyget_extra ( void );
2372
2373void yyset_extra ( YY_EXTRA_TYPE user_defined );
2374
2375FILE *yyget_in ( void );
2376
2377void yyset_in ( FILE * _in_str );
2378
2379FILE *yyget_out ( void );
2380
2381void yyset_out ( FILE * _out_str );
2382
2383 int yyget_leng ( void );
2384
2385char *yyget_text ( void );
2386
2387int yyget_lineno ( void );
2388
2389void yyset_lineno ( int _line_number );
2390
2391/* %if-bison-bridge */
2392/* %endif */
2393
2394/* Macros after this point can all be overridden by user definitions in
2395 * section 1.
2396 */
2397
2398#ifndef YY_SKIP_YYWRAP
2399#ifdef __cplusplus
2400extern "C" int yywrap ( void );
2401#else
2402extern int yywrap ( void );
2403#endif
2404#endif
2405
2406/* %not-for-header */
2407#ifndef YY_NO_UNPUT
2408
2409#endif
2410/* %ok-for-header */
2411
2412/* %endif */
2413
2414#ifndef yytext_ptr
2415static void yy_flex_strncpy ( char *, const char *, int );
2416#endif
2417
2418#ifdef YY_NEED_STRLEN
2419static int yy_flex_strlen ( const char * );
2420#endif
2421
2422#ifndef YY_NO_INPUT
2423/* %if-c-only Standard (non-C++) definition */
2424/* %not-for-header */
2425#ifdef __cplusplus
2426static int yyinput ( void );
2427#else
2428static int input ( void );
2429#endif
2430/* %ok-for-header */
2431
2432/* %endif */
2433#endif
2434
2435/* %if-c-only */
2436
2437/* %endif */
2438
2439/* Amount of stuff to slurp up with each read. */
2440#ifndef YY_READ_BUF_SIZE
2441#ifdef __ia64__
2442/* On IA-64, the buffer size is 16k, not 8k */
2443#define YY_READ_BUF_SIZE 16384
2444#else
2445#define YY_READ_BUF_SIZE 8192
2446#endif /* __ia64__ */
2447#endif
2448
2449/* Copy whatever the last rule matched to the standard output. */
2450#ifndef ECHO
2451/* %if-c-only Standard (non-C++) definition */
2452/* This used to be an fputs(), but since the string might contain NUL's,
2453 * we now use fwrite().
2454 */
2455#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2456/* %endif */
2457/* %if-c++-only C++ definition */
2458/* %endif */
2459#endif
2460
2461/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2462 * is returned in "result".
2463 */
2464#ifndef YY_INPUT
2465#define YY_INPUT(buf,result,max_size) \
2466/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2467 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2468 { \
2469 int c = '*'; \
2470 int n; \
2471 for ( n = 0; n < max_size && \
2472 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2473 buf[n] = (char) c; \
2474 if ( c == '\n' ) \
2475 buf[n++] = (char) c; \
2476 if ( c == EOF && ferror( yyin ) ) \
2477 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2478 result = n; \
2479 } \
2480 else \
2481 { \
2482 errno=0; \
2483 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2484 { \
2485 if( errno != EINTR) \
2486 { \
2487 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2488 break; \
2489 } \
2490 errno=0; \
2491 clearerr(yyin); \
2492 } \
2493 }\
2494\
2495/* %if-c++-only C++ definition \ */\
2496/* %endif */
2497
2498#endif
2499
2500/* No semi-colon after return; correct usage is to write "yyterminate();" -
2501 * we don't want an extra ';' after the "return" because that will cause
2502 * some compilers to complain about unreachable statements.
2503 */
2504#ifndef yyterminate
2505#define yyterminate() return YY_NULL
2506#endif
2507
2508/* Number of entries by which start-condition stack grows. */
2509#ifndef YY_START_STACK_INCR
2510#define YY_START_STACK_INCR 25
2511#endif
2512
2513/* Report a fatal error. */
2514#ifndef YY_FATAL_ERROR
2515/* %if-c-only */
2516#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2517/* %endif */
2518/* %if-c++-only */
2519/* %endif */
2520#endif
2521
2522/* %if-tables-serialization structures and prototypes */
2523/* %not-for-header */
2524/* %ok-for-header */
2525
2526/* %not-for-header */
2527/* %tables-yydmap generated elements */
2528/* %endif */
2529/* end tables serialization structures and prototypes */
2530
2531/* %ok-for-header */
2532
2533/* Default declaration of generated scanner - a define so the user can
2534 * easily add parameters.
2535 */
2536#ifndef YY_DECL
2537#define YY_DECL_IS_OURS 1
2538/* %if-c-only Standard (non-C++) definition */
2539
2540extern int yylex (void);
2541
2542#define YY_DECL int yylex (void)
2543/* %endif */
2544/* %if-c++-only C++ definition */
2545/* %endif */
2546#endif /* !YY_DECL */
2547
2548/* Code executed at the beginning of each rule, after yytext and yyleng
2549 * have been set up.
2550 */
2551#ifndef YY_USER_ACTION
2552#define YY_USER_ACTION
2553#endif
2554
2555/* Code executed at the end of each rule. */
2556#ifndef YY_BREAK
2557#define YY_BREAK /*LINTED*/break;
2558#endif
2559
2560/* %% [6.0] YY_RULE_SETUP definition goes here */
2561#define YY_RULE_SETUP \
2562 YY_USER_ACTION
2563
2564/* %not-for-header */
2568{
2569 yy_state_type yy_current_state;
2570 char *yy_cp, *yy_bp;
2572
2573 if ( !(yy_init) )
2574 {
2575 (yy_init) = 1;
2576
2577#ifdef YY_USER_INIT
2578 YY_USER_INIT;
2579#endif
2580
2581 if ( ! (yy_start) )
2582 (yy_start) = 1; /* first start state */
2583
2584 if ( ! yyin )
2585/* %if-c-only */
2586 yyin = stdin;
2587/* %endif */
2588/* %if-c++-only */
2589/* %endif */
2590
2591 if ( ! yyout )
2592/* %if-c-only */
2593 yyout = stdout;
2594/* %endif */
2595/* %if-c++-only */
2596/* %endif */
2597
2598 if ( ! YY_CURRENT_BUFFER ) {
2602 }
2603
2605 }
2606
2607 {
2608/* %% [7.0] user's declarations go here */
2609#line 102 "dhcp6_lexer.ll"
2610
2611
2612
2613#line 106 "dhcp6_lexer.ll"
2614 /* This part of the code is copied over to the verbatim to the top
2615 of the generated yylex function. Explanation:
2616 http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2617
2618 /* Code run each time yylex is called. */
2619 driver.loc_.step();
2620
2621 if (start_token_flag) {
2622 start_token_flag = false;
2623 switch (start_token_value) {
2625 default:
2630 return isc::dhcp::Dhcp6Parser::make_SUB_DHCP6(driver.loc_);
2634 return isc::dhcp::Dhcp6Parser::make_SUB_SUBNET6(driver.loc_);
2636 return isc::dhcp::Dhcp6Parser::make_SUB_POOL6(driver.loc_);
2638 return isc::dhcp::Dhcp6Parser::make_SUB_PD_POOL(driver.loc_);
2653 }
2654 }
2655
2656
2657#line 2657 "dhcp6_lexer.cc"
2658
2659 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2660 {
2661/* %% [8.0] yymore()-related code goes here */
2662 yy_cp = (yy_c_buf_p);
2663
2664 /* Support of yytext. */
2665 *yy_cp = (yy_hold_char);
2666
2667 /* yy_bp points to the position in yy_ch_buf of the start of
2668 * the current run.
2669 */
2670 yy_bp = yy_cp;
2671
2672/* %% [9.0] code to set up and find next match goes here */
2673 yy_current_state = (yy_start);
2674yy_match:
2675 do
2676 {
2677 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2678 if ( yy_accept[yy_current_state] )
2679 {
2680 (yy_last_accepting_state) = yy_current_state;
2681 (yy_last_accepting_cpos) = yy_cp;
2682 }
2683 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2684 {
2685 yy_current_state = (int) yy_def[yy_current_state];
2686 if ( yy_current_state >= 2408 )
2687 yy_c = yy_meta[yy_c];
2688 }
2689 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2690 ++yy_cp;
2691 }
2692 while ( yy_current_state != 2407 );
2693 yy_cp = (yy_last_accepting_cpos);
2694 yy_current_state = (yy_last_accepting_state);
2695
2696yy_find_action:
2697/* %% [10.0] code to find the action number goes here */
2698 yy_act = yy_accept[yy_current_state];
2699
2701
2702/* %% [11.0] code for yylineno update goes here */
2703
2704do_action: /* This label is used only to access EOF actions. */
2705
2706/* %% [12.0] debug code goes here */
2707 if ( yy_flex_debug )
2708 {
2709 if ( yy_act == 0 )
2710 fprintf( stderr, "--scanner backing up\n" );
2711 else if ( yy_act < 253 )
2712 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2713 (long)yy_rule_linenum[yy_act], yytext );
2714 else if ( yy_act == 253 )
2715 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2716 yytext );
2717 else if ( yy_act == 254 )
2718 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2719 else
2720 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2721 }
2722
2723 switch ( yy_act )
2724 { /* beginning of action switch */
2725/* %% [13.0] actions go here */
2726 case 0: /* must back up */
2727 /* undo the effects of YY_DO_BEFORE_ACTION */
2728 *yy_cp = (yy_hold_char);
2729 yy_cp = (yy_last_accepting_cpos);
2730 yy_current_state = (yy_last_accepting_state);
2731 goto yy_find_action;
2732
2733case 1:
2735#line 149 "dhcp6_lexer.ll"
2736;
2737 YY_BREAK
2738case 2:
2740#line 151 "dhcp6_lexer.ll"
2741;
2742 YY_BREAK
2743case 3:
2745#line 153 "dhcp6_lexer.ll"
2746{
2747 BEGIN(COMMENT);
2748 comment_start_line = driver.loc_.end.line;;
2749}
2750 YY_BREAK
2751case 4:
2753#line 158 "dhcp6_lexer.ll"
2754BEGIN(INITIAL);
2755 YY_BREAK
2756case 5:
2758#line 159 "dhcp6_lexer.ll"
2759;
2760 YY_BREAK
2761case YY_STATE_EOF(COMMENT):
2762#line 160 "dhcp6_lexer.ll"
2763{
2764 isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line);
2765}
2766 YY_BREAK
2767case 6:
2769#line 164 "dhcp6_lexer.ll"
2771 YY_BREAK
2772case 7:
2774#line 165 "dhcp6_lexer.ll"
2776 YY_BREAK
2777case 8:
2779#line 166 "dhcp6_lexer.ll"
2780{
2781 /* Include directive. */
2782
2783 /* Extract the filename. */
2784 std::string tmp(yytext+1);
2785 tmp.resize(tmp.size() - 1);
2786
2787 driver.includeFile(tmp);
2788}
2789 YY_BREAK
2793#line 175 "dhcp6_lexer.ll"
2794{
2795 isc_throw(Dhcp6ParseError, "Directive not closed.");
2796}
2797 YY_BREAK
2798case 9:
2800#line 178 "dhcp6_lexer.ll"
2801BEGIN(INITIAL);
2802 YY_BREAK
2803case 10:
2805#line 180 "dhcp6_lexer.ll"
2806{
2807 /* Ok, we found a with space. Let's ignore it and update loc variable. */
2808 driver.loc_.step();
2809}
2810 YY_BREAK
2811case 11:
2812/* rule 11 can match eol */
2814#line 185 "dhcp6_lexer.ll"
2815{
2816 /* Newline found. Let's update the location and continue. */
2817 driver.loc_.lines(yyleng);
2818 driver.loc_.step();
2819}
2820 YY_BREAK
2821case 12:
2823#line 191 "dhcp6_lexer.ll"
2824{
2825 switch(driver.ctx_) {
2828 default:
2829 return isc::dhcp::Dhcp6Parser::make_STRING("enable-updates", driver.loc_);
2830 }
2831}
2832 YY_BREAK
2833case 13:
2835#line 200 "dhcp6_lexer.ll"
2836{
2837 switch(driver.ctx_) {
2839 return isc::dhcp::Dhcp6Parser::make_SERVER_IP(driver.loc_);
2840 default:
2841 return isc::dhcp::Dhcp6Parser::make_STRING("server-ip", driver.loc_);
2842 }
2843}
2844 YY_BREAK
2845case 14:
2847#line 209 "dhcp6_lexer.ll"
2848{
2849 switch(driver.ctx_) {
2851 return isc::dhcp::Dhcp6Parser::make_SERVER_PORT(driver.loc_);
2852 default:
2853 return isc::dhcp::Dhcp6Parser::make_STRING("server-port", driver.loc_);
2854 }
2855}
2856 YY_BREAK
2857case 15:
2859#line 218 "dhcp6_lexer.ll"
2860{
2861 switch(driver.ctx_) {
2863 return isc::dhcp::Dhcp6Parser::make_SENDER_IP(driver.loc_);
2864 default:
2865 return isc::dhcp::Dhcp6Parser::make_STRING("sender-ip", driver.loc_);
2866 }
2867}
2868 YY_BREAK
2869case 16:
2871#line 227 "dhcp6_lexer.ll"
2872{
2873 switch(driver.ctx_) {
2875 return isc::dhcp::Dhcp6Parser::make_SENDER_PORT(driver.loc_);
2876 default:
2877 return isc::dhcp::Dhcp6Parser::make_STRING("sender-port", driver.loc_);
2878 }
2879}
2880 YY_BREAK
2881case 17:
2883#line 236 "dhcp6_lexer.ll"
2884{
2885 switch(driver.ctx_) {
2888 default:
2889 return isc::dhcp::Dhcp6Parser::make_STRING("max-queue-size", driver.loc_);
2890 }
2891}
2892 YY_BREAK
2893case 18:
2895#line 245 "dhcp6_lexer.ll"
2896{
2897 switch(driver.ctx_) {
2900 default:
2901 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-protocol", driver.loc_);
2902 }
2903}
2904 YY_BREAK
2905case 19:
2907#line 254 "dhcp6_lexer.ll"
2908{
2909 switch(driver.ctx_) {
2911 return isc::dhcp::Dhcp6Parser::make_NCR_FORMAT(driver.loc_);
2912 default:
2913 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-format", driver.loc_);
2914 }
2915}
2916 YY_BREAK
2917case 20:
2919#line 263 "dhcp6_lexer.ll"
2920{
2921 switch(driver.ctx_) {
2927 default:
2928 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-set", driver.loc_);
2929 }
2930}
2931 YY_BREAK
2932case 21:
2934#line 275 "dhcp6_lexer.ll"
2935{
2936 switch(driver.ctx_) {
2942 default:
2943 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-replacement", driver.loc_);
2944 }
2945}
2946 YY_BREAK
2947case 22:
2949#line 287 "dhcp6_lexer.ll"
2950{
2951 /* dhcp-ddns value keywords are case insensitive */
2952 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2953 return isc::dhcp::Dhcp6Parser::make_UDP(driver.loc_);
2954 }
2955 std::string tmp(yytext+1);
2956 tmp.resize(tmp.size() - 1);
2957 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2958}
2959 YY_BREAK
2960case 23:
2962#line 297 "dhcp6_lexer.ll"
2963{
2964 /* dhcp-ddns value keywords are case insensitive */
2965 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2966 return isc::dhcp::Dhcp6Parser::make_TCP(driver.loc_);
2967 }
2968 std::string tmp(yytext+1);
2969 tmp.resize(tmp.size() - 1);
2970 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2971}
2972 YY_BREAK
2973case 24:
2975#line 307 "dhcp6_lexer.ll"
2976{
2977 /* dhcp-ddns value keywords are case insensitive */
2978 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) {
2979 return isc::dhcp::Dhcp6Parser::make_JSON(driver.loc_);
2980 }
2981 std::string tmp(yytext+1);
2982 tmp.resize(tmp.size() - 1);
2983 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2984}
2985 YY_BREAK
2986case 25:
2988#line 317 "dhcp6_lexer.ll"
2989{
2990 /* dhcp-ddns value keywords are case insensitive */
2993 }
2994 std::string tmp(yytext+1);
2995 tmp.resize(tmp.size() - 1);
2996 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2997}
2998 YY_BREAK
2999case 26:
3001#line 327 "dhcp6_lexer.ll"
3002{
3003 /* dhcp-ddns value keywords are case insensitive */
3006 }
3007 std::string tmp(yytext+1);
3008 tmp.resize(tmp.size() - 1);
3009 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3010}
3011 YY_BREAK
3012case 27:
3014#line 337 "dhcp6_lexer.ll"
3015{
3016 switch(driver.ctx_) {
3018 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
3019 default:
3020 return isc::dhcp::Dhcp6Parser::make_STRING("never", driver.loc_);
3021 }
3022}
3023 YY_BREAK
3024case 28:
3026#line 346 "dhcp6_lexer.ll"
3027{
3028 /* dhcp-ddns value keywords are case insensitive */
3030 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
3031 }
3032 std::string tmp(yytext+1);
3033 tmp.resize(tmp.size() - 1);
3034 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3035}
3036 YY_BREAK
3037case 29:
3039#line 356 "dhcp6_lexer.ll"
3040{
3041 /* dhcp-ddns value keywords are case insensitive */
3043 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
3044 }
3045 std::string tmp(yytext+1);
3046 tmp.resize(tmp.size() - 1);
3047 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3048}
3049 YY_BREAK
3050case 30:
3052#line 366 "dhcp6_lexer.ll"
3053{
3054 /* dhcp-ddns value keywords are case insensitive */
3056 return isc::dhcp::Dhcp6Parser::make_ALWAYS(driver.loc_);
3057 }
3058 std::string tmp(yytext+1);
3059 tmp.resize(tmp.size() - 1);
3060 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3061}
3062 YY_BREAK
3063case 31:
3065#line 376 "dhcp6_lexer.ll"
3066{
3067 /* dhcp-ddns value keywords are case insensitive */
3070 }
3071 std::string tmp(yytext+1);
3072 tmp.resize(tmp.size() - 1);
3073 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3074}
3075 YY_BREAK
3076case 32:
3078#line 386 "dhcp6_lexer.ll"
3079{
3080 switch(driver.ctx_) {
3082 return isc::dhcp::Dhcp6Parser::make_DHCP6(driver.loc_);
3083 default:
3084 return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp6", driver.loc_);
3085 }
3086}
3087 YY_BREAK
3088case 33:
3090#line 395 "dhcp6_lexer.ll"
3091{
3092 switch(driver.ctx_) {
3095 default:
3096 return isc::dhcp::Dhcp6Parser::make_STRING("data-directory", driver.loc_);
3097 }
3098}
3099 YY_BREAK
3100case 34:
3102#line 404 "dhcp6_lexer.ll"
3103{
3104 switch(driver.ctx_) {
3107 default:
3108 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", driver.loc_);
3109 }
3110}
3111 YY_BREAK
3112case 35:
3114#line 413 "dhcp6_lexer.ll"
3115{
3116 switch(driver.ctx_) {
3118 return isc::dhcp::Dhcp6Parser::make_INTERFACES(driver.loc_);
3119 default:
3120 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces", driver.loc_);
3121 }
3122}
3123 YY_BREAK
3124case 36:
3126#line 422 "dhcp6_lexer.ll"
3127{
3128 switch(driver.ctx_) {
3130 return isc::dhcp::Dhcp6Parser::make_RE_DETECT(driver.loc_);
3131 default:
3132 return isc::dhcp::Dhcp6Parser::make_STRING("re-detect", driver.loc_);
3133 }
3134}
3135 YY_BREAK
3136case 37:
3138#line 431 "dhcp6_lexer.ll"
3139{
3140 switch(driver.ctx_) {
3143 default:
3144 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-require-all", driver.loc_);
3145 }
3146}
3147 YY_BREAK
3148case 38:
3150#line 440 "dhcp6_lexer.ll"
3151{
3152 switch(driver.ctx_) {
3155 default:
3156 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-retry-wait-time", driver.loc_);
3157 }
3158}
3159 YY_BREAK
3160case 39:
3162#line 449 "dhcp6_lexer.ll"
3163{
3164 switch(driver.ctx_) {
3167 default:
3168 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-max-retries", driver.loc_);
3169 }
3170}
3171 YY_BREAK
3172case 40:
3174#line 458 "dhcp6_lexer.ll"
3175{
3176 switch(driver.ctx_) {
3179 default:
3180 return isc::dhcp::Dhcp6Parser::make_STRING("sanity-checks", driver.loc_);
3181 }
3182}
3183 YY_BREAK
3184case 41:
3186#line 467 "dhcp6_lexer.ll"
3187{
3188 switch(driver.ctx_) {
3191 default:
3192 return isc::dhcp::Dhcp6Parser::make_STRING("lease-checks", driver.loc_);
3193 }
3194}
3195 YY_BREAK
3196case 42:
3198#line 476 "dhcp6_lexer.ll"
3199{
3200 switch(driver.ctx_) {
3203 default:
3204 return isc::dhcp::Dhcp6Parser::make_STRING("extended-info-checks", driver.loc_);
3205 }
3206}
3207 YY_BREAK
3208case 43:
3210#line 485 "dhcp6_lexer.ll"
3211{
3212 switch(driver.ctx_) {
3215 default:
3216 return isc::dhcp::Dhcp6Parser::make_STRING("lease-database", driver.loc_);
3217 }
3218}
3219 YY_BREAK
3220case 44:
3222#line 494 "dhcp6_lexer.ll"
3223{
3224 switch(driver.ctx_) {
3227 default:
3228 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-database", driver.loc_);
3229 }
3230}
3231 YY_BREAK
3232case 45:
3234#line 503 "dhcp6_lexer.ll"
3235{
3236 switch(driver.ctx_) {
3239 default:
3240 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-databases", driver.loc_);
3241 }
3242}
3243 YY_BREAK
3244case 46:
3246#line 512 "dhcp6_lexer.ll"
3247{
3248 switch(driver.ctx_) {
3251 default:
3252 return isc::dhcp::Dhcp6Parser::make_STRING("config-control", driver.loc_);
3253 }
3254}
3255 YY_BREAK
3256case 47:
3258#line 521 "dhcp6_lexer.ll"
3259{
3260 switch(driver.ctx_) {
3263 default:
3264 return isc::dhcp::Dhcp6Parser::make_STRING("config-databases", driver.loc_);
3265 }
3266}
3267 YY_BREAK
3268case 48:
3270#line 530 "dhcp6_lexer.ll"
3271{
3272 switch(driver.ctx_) {
3275 default:
3276 return isc::dhcp::Dhcp6Parser::make_STRING("config-fetch-wait-time", driver.loc_);
3277 }
3278}
3279 YY_BREAK
3280case 49:
3282#line 539 "dhcp6_lexer.ll"
3283{
3284 switch(driver.ctx_) {
3286 return isc::dhcp::Dhcp6Parser::make_READONLY(driver.loc_);
3287 default:
3288 return isc::dhcp::Dhcp6Parser::make_STRING("readonly", driver.loc_);
3289 }
3290}
3291 YY_BREAK
3292case 50:
3294#line 548 "dhcp6_lexer.ll"
3295{
3296 switch(driver.ctx_) {
3303 return isc::dhcp::Dhcp6Parser::make_TYPE(driver.loc_);
3304 default:
3305 return isc::dhcp::Dhcp6Parser::make_STRING("type", driver.loc_);
3306 }
3307}
3308 YY_BREAK
3309case 51:
3311#line 562 "dhcp6_lexer.ll"
3312{
3313 switch(driver.ctx_) {
3318 return isc::dhcp::Dhcp6Parser::make_USER(driver.loc_);
3319 default:
3320 return isc::dhcp::Dhcp6Parser::make_STRING("user", driver.loc_);
3321 }
3322}
3323 YY_BREAK
3324case 52:
3326#line 574 "dhcp6_lexer.ll"
3327{
3328 switch(driver.ctx_) {
3333 return isc::dhcp::Dhcp6Parser::make_PASSWORD(driver.loc_);
3334 default:
3335 return isc::dhcp::Dhcp6Parser::make_STRING("password", driver.loc_);
3336 }
3337}
3338 YY_BREAK
3339case 53:
3341#line 586 "dhcp6_lexer.ll"
3342{
3343 switch(driver.ctx_) {
3347 return isc::dhcp::Dhcp6Parser::make_HOST(driver.loc_);
3348 default:
3349 return isc::dhcp::Dhcp6Parser::make_STRING("host", driver.loc_);
3350 }
3351}
3352 YY_BREAK
3353case 54:
3355#line 597 "dhcp6_lexer.ll"
3356{
3357 switch(driver.ctx_) {
3361 return isc::dhcp::Dhcp6Parser::make_PORT(driver.loc_);
3362 default:
3363 return isc::dhcp::Dhcp6Parser::make_STRING("port", driver.loc_);
3364 }
3365}
3366 YY_BREAK
3367case 55:
3369#line 608 "dhcp6_lexer.ll"
3370{
3371 switch(driver.ctx_) {
3376 return isc::dhcp::Dhcp6Parser::make_PERSIST(driver.loc_);
3377 default:
3378 return isc::dhcp::Dhcp6Parser::make_STRING("persist", driver.loc_);
3379 }
3380}
3381 YY_BREAK
3382case 56:
3384#line 620 "dhcp6_lexer.ll"
3385{
3386 switch(driver.ctx_) {
3391 default:
3392 return isc::dhcp::Dhcp6Parser::make_STRING("lfc-interval", driver.loc_);
3393 }
3394}
3395 YY_BREAK
3396case 57:
3398#line 631 "dhcp6_lexer.ll"
3399{
3400 switch(driver.ctx_) {
3405 default:
3406 return isc::dhcp::Dhcp6Parser::make_STRING("connect-timeout", driver.loc_);
3407 }
3408}
3409 YY_BREAK
3410case 58:
3412#line 642 "dhcp6_lexer.ll"
3413{
3414 switch(driver.ctx_) {
3419 default:
3420 return isc::dhcp::Dhcp6Parser::make_STRING("read-timeout", driver.loc_);
3421 }
3422}
3423 YY_BREAK
3424case 59:
3426#line 653 "dhcp6_lexer.ll"
3427{
3428 switch(driver.ctx_) {
3433 default:
3434 return isc::dhcp::Dhcp6Parser::make_STRING("write-timeout", driver.loc_);
3435 }
3436}
3437 YY_BREAK
3438case 60:
3440#line 664 "dhcp6_lexer.ll"
3441{
3442 switch(driver.ctx_) {
3447 default:
3448 return isc::dhcp::Dhcp6Parser::make_STRING("tcp-user-timeout", driver.loc_);
3449 }
3450}
3451 YY_BREAK
3452case 61:
3454#line 675 "dhcp6_lexer.ll"
3455{
3456 switch(driver.ctx_) {
3461 default:
3462 return isc::dhcp::Dhcp6Parser::make_STRING("reconnect-wait-time", driver.loc_);
3463 }
3464}
3465 YY_BREAK
3466case 62:
3468#line 686 "dhcp6_lexer.ll"
3469{
3470 switch(driver.ctx_) {
3474 return isc::dhcp::Dhcp6Parser::make_ON_FAIL(driver.loc_);
3475 default:
3476 return isc::dhcp::Dhcp6Parser::make_STRING("on-fail", driver.loc_);
3477 }
3478}
3479 YY_BREAK
3480case 63:
3482#line 697 "dhcp6_lexer.ll"
3483{
3484 switch(driver.ctx_) {
3487 default:
3488 return isc::dhcp::Dhcp6Parser::make_STRING("stop-retry-exit", driver.loc_);
3489 }
3490}
3491 YY_BREAK
3492case 64:
3494#line 706 "dhcp6_lexer.ll"
3495{
3496 switch(driver.ctx_) {
3499 default:
3500 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-exit", driver.loc_);
3501 }
3502}
3503 YY_BREAK
3504case 65:
3506#line 715 "dhcp6_lexer.ll"
3507{
3508 switch(driver.ctx_) {
3511 default:
3512 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-continue", driver.loc_);
3513 }
3514}
3515 YY_BREAK
3516case 66:
3518#line 724 "dhcp6_lexer.ll"
3519{
3520 switch(driver.ctx_) {
3525 default:
3526 return isc::dhcp::Dhcp6Parser::make_STRING("retry-on-startup", driver.loc_);
3527 }
3528}
3529 YY_BREAK
3530case 67:
3532#line 735 "dhcp6_lexer.ll"
3533{
3534 switch(driver.ctx_) {
3539 default:
3540 return isc::dhcp::Dhcp6Parser::make_STRING("max-reconnect-tries", driver.loc_);
3541 }
3542}
3543 YY_BREAK
3544case 68:
3546#line 746 "dhcp6_lexer.ll"
3547{
3548 switch(driver.ctx_) {
3551 default:
3552 return isc::dhcp::Dhcp6Parser::make_STRING("max-row-errors", driver.loc_);
3553 }
3554}
3555 YY_BREAK
3556case 69:
3558#line 755 "dhcp6_lexer.ll"
3559{
3560 switch(driver.ctx_) {
3566 default:
3567 return isc::dhcp::Dhcp6Parser::make_STRING("trust-anchor", driver.loc_);
3568 }
3569}
3570 YY_BREAK
3571case 70:
3573#line 767 "dhcp6_lexer.ll"
3574{
3575 switch(driver.ctx_) {
3580 return isc::dhcp::Dhcp6Parser::make_CERT_FILE(driver.loc_);
3581 default:
3582 return isc::dhcp::Dhcp6Parser::make_STRING("cert-file", driver.loc_);
3583 }
3584}
3585 YY_BREAK
3586case 71:
3588#line 779 "dhcp6_lexer.ll"
3589{
3590 switch(driver.ctx_) {
3595 return isc::dhcp::Dhcp6Parser::make_KEY_FILE(driver.loc_);
3596 default:
3597 return isc::dhcp::Dhcp6Parser::make_STRING("key-file", driver.loc_);
3598 }
3599}
3600 YY_BREAK
3601case 72:
3603#line 791 "dhcp6_lexer.ll"
3604{
3605 switch(driver.ctx_) {
3609 return isc::dhcp::Dhcp6Parser::make_SSL_MODE(driver.loc_);
3610 default:
3611 return isc::dhcp::Dhcp6Parser::make_STRING("ssl-mode", driver.loc_);
3612 }
3613}
3614 YY_BREAK
3615case 73:
3617#line 802 "dhcp6_lexer.ll"
3618{
3619 switch(driver.ctx_) {
3621 return isc::dhcp::Dhcp6Parser::make_DISABLE(driver.loc_);
3622 default:
3623 return isc::dhcp::Dhcp6Parser::make_STRING("disable", driver.loc_);
3624 }
3625}
3626 YY_BREAK
3627case 74:
3629#line 811 "dhcp6_lexer.ll"
3630{
3631 switch(driver.ctx_) {
3633 return isc::dhcp::Dhcp6Parser::make_PREFER(driver.loc_);
3634 default:
3635 return isc::dhcp::Dhcp6Parser::make_STRING("prefer", driver.loc_);
3636 }
3637}
3638 YY_BREAK
3639case 75:
3641#line 820 "dhcp6_lexer.ll"
3642{
3643 switch(driver.ctx_) {
3645 return isc::dhcp::Dhcp6Parser::make_REQUIRE(driver.loc_);
3646 default:
3647 return isc::dhcp::Dhcp6Parser::make_STRING("require", driver.loc_);
3648 }
3649}
3650 YY_BREAK
3651case 76:
3653#line 829 "dhcp6_lexer.ll"
3654{
3655 switch(driver.ctx_) {
3657 return isc::dhcp::Dhcp6Parser::make_VERIFY_CA(driver.loc_);
3658 default:
3659 return isc::dhcp::Dhcp6Parser::make_STRING("verify-ca", driver.loc_);
3660 }
3661}
3662 YY_BREAK
3663case 77:
3665#line 838 "dhcp6_lexer.ll"
3666{
3667 switch(driver.ctx_) {
3669 return isc::dhcp::Dhcp6Parser::make_VERIFY_FULL(driver.loc_);
3670 default:
3671 return isc::dhcp::Dhcp6Parser::make_STRING("verify-full", driver.loc_);
3672 }
3673}
3674 YY_BREAK
3675case 78:
3677#line 847 "dhcp6_lexer.ll"
3678{
3679 switch(driver.ctx_) {
3683 return isc::dhcp::Dhcp6Parser::make_CIPHER_LIST(driver.loc_);
3684 default:
3685 return isc::dhcp::Dhcp6Parser::make_STRING("cipher-list", driver.loc_);
3686 }
3687}
3688 YY_BREAK
3689case 79:
3691#line 858 "dhcp6_lexer.ll"
3692{
3693 switch(driver.ctx_) {
3699 default:
3700 return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_);
3701 }
3702}
3703 YY_BREAK
3704case 80:
3706#line 870 "dhcp6_lexer.ll"
3707{
3708 switch(driver.ctx_) {
3714 default:
3715 return isc::dhcp::Dhcp6Parser::make_STRING("min-preferred-lifetime", driver.loc_);
3716 }
3717}
3718 YY_BREAK
3719case 81:
3721#line 882 "dhcp6_lexer.ll"
3722{
3723 switch(driver.ctx_) {
3729 default:
3730 return isc::dhcp::Dhcp6Parser::make_STRING("max-preferred-lifetime", driver.loc_);
3731 }
3732}
3733 YY_BREAK
3734case 82:
3736#line 894 "dhcp6_lexer.ll"
3737{
3738 switch(driver.ctx_) {
3744 default:
3745 return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_);
3746 }
3747}
3748 YY_BREAK
3749case 83:
3751#line 906 "dhcp6_lexer.ll"
3752{
3753 switch(driver.ctx_) {
3759 default:
3760 return isc::dhcp::Dhcp6Parser::make_STRING("min-valid-lifetime", driver.loc_);
3761 }
3762}
3763 YY_BREAK
3764case 84:
3766#line 918 "dhcp6_lexer.ll"
3767{
3768 switch(driver.ctx_) {
3774 default:
3775 return isc::dhcp::Dhcp6Parser::make_STRING("max-valid-lifetime", driver.loc_);
3776 }
3777}
3778 YY_BREAK
3779case 85:
3781#line 930 "dhcp6_lexer.ll"
3782{
3783 switch(driver.ctx_) {
3787 return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_);
3788 default:
3789 return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_);
3790 }
3791}
3792 YY_BREAK
3793case 86:
3795#line 941 "dhcp6_lexer.ll"
3796{
3797 switch(driver.ctx_) {
3802 default:
3803 return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_);
3804 }
3805}
3806 YY_BREAK
3807case 87:
3809#line 952 "dhcp6_lexer.ll"
3810{
3811 switch(driver.ctx_) {
3814 default:
3815 return isc::dhcp::Dhcp6Parser::make_STRING("decline-probation-period", driver.loc_);
3816 }
3817}
3818 YY_BREAK
3819case 88:
3821#line 961 "dhcp6_lexer.ll"
3822{
3823 switch(driver.ctx_) {
3825 return isc::dhcp::Dhcp6Parser::make_SERVER_TAG(driver.loc_);
3826 default:
3827 return isc::dhcp::Dhcp6Parser::make_STRING("server-tag", driver.loc_);
3828 }
3829}
3830 YY_BREAK
3831case 89:
3833#line 970 "dhcp6_lexer.ll"
3834{
3835 switch(driver.ctx_) {
3838 default:
3839 return isc::dhcp::Dhcp6Parser::make_STRING("parked-packet-limit", driver.loc_);
3840 }
3841}
3842 YY_BREAK
3843case 90:
3845#line 979 "dhcp6_lexer.ll"
3846{
3847 switch(driver.ctx_) {
3851 return isc::dhcp::Dhcp6Parser::make_ALLOCATOR(driver.loc_);
3852 default:
3853 return isc::dhcp::Dhcp6Parser::make_STRING("allocator", driver.loc_);
3854 }
3855}
3856 YY_BREAK
3857case 91:
3859#line 990 "dhcp6_lexer.ll"
3860{
3861 switch(driver.ctx_) {
3866 default:
3867 return isc::dhcp::Dhcp6Parser::make_STRING("pd-allocator", driver.loc_);
3868 }
3869}
3870 YY_BREAK
3871case 92:
3873#line 1001 "dhcp6_lexer.ll"
3874{
3875 switch(driver.ctx_) {
3878 default:
3879 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3880 }
3881}
3882 YY_BREAK
3883case 93:
3885#line 1010 "dhcp6_lexer.ll"
3886{
3887 switch(driver.ctx_) {
3890 default:
3891 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3892 }
3893}
3894 YY_BREAK
3895case 94:
3897#line 1019 "dhcp6_lexer.ll"
3898{
3899 switch(driver.ctx_) {
3905 default:
3906 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-send-updates", driver.loc_);
3907 }
3908}
3909 YY_BREAK
3910case 95:
3912#line 1031 "dhcp6_lexer.ll"
3913{
3914 switch(driver.ctx_) {
3920 default:
3921 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-no-update", driver.loc_);
3922 }
3923}
3924 YY_BREAK
3925case 96:
3927#line 1043 "dhcp6_lexer.ll"
3928{
3929 switch(driver.ctx_) {
3935 default:
3936 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-client-update", driver.loc_);
3937 }
3938}
3939 YY_BREAK
3940case 97:
3942#line 1055 "dhcp6_lexer.ll"
3943{
3944 switch(driver.ctx_) {
3950 default:
3951 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3952 }
3953}
3954 YY_BREAK
3955case 98:
3957#line 1067 "dhcp6_lexer.ll"
3958{
3959 switch(driver.ctx_) {
3965 default:
3966 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-generated-prefix", driver.loc_);
3967 }
3968}
3969 YY_BREAK
3970case 99:
3972#line 1079 "dhcp6_lexer.ll"
3973{
3974 switch(driver.ctx_) {
3980 default:
3981 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
3982 }
3983}
3984 YY_BREAK
3985case 100:
3987#line 1091 "dhcp6_lexer.ll"
3988{
3989 switch(driver.ctx_) {
3995 default:
3996 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-update-on-renew", driver.loc_);
3997 }
3998}
3999 YY_BREAK
4000case 101:
4002#line 1103 "dhcp6_lexer.ll"
4003{
4004 switch(driver.ctx_) {
4009 default:
4010 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
4011 }
4012}
4013 YY_BREAK
4014case 102:
4016#line 1114 "dhcp6_lexer.ll"
4017{
4018 switch(driver.ctx_) {
4024 default:
4025 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-conflict-resolution-mode", driver.loc_);
4026 }
4027}
4028 YY_BREAK
4029case 103:
4031#line 1126 "dhcp6_lexer.ll"
4032{
4035 }
4036 std::string tmp(yytext+1);
4037 tmp.resize(tmp.size() - 1);
4038 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4039}
4040 YY_BREAK
4041case 104:
4043#line 1135 "dhcp6_lexer.ll"
4044{
4047 }
4048 std::string tmp(yytext+1);
4049 tmp.resize(tmp.size() - 1);
4050 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4051}
4052 YY_BREAK
4053case 105:
4055#line 1144 "dhcp6_lexer.ll"
4056{
4059 }
4060 std::string tmp(yytext+1);
4061 tmp.resize(tmp.size() - 1);
4062 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4063}
4064 YY_BREAK
4065case 106:
4067#line 1153 "dhcp6_lexer.ll"
4068{
4071 }
4072 std::string tmp(yytext+1);
4073 tmp.resize(tmp.size() - 1);
4074 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4075}
4076 YY_BREAK
4077case 107:
4079#line 1162 "dhcp6_lexer.ll"
4080{
4081 switch(driver.ctx_) {
4087 default:
4088 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-percent", driver.loc_);
4089 }
4090}
4091 YY_BREAK
4092case 108:
4094#line 1174 "dhcp6_lexer.ll"
4095{
4096 switch(driver.ctx_) {
4101 return isc::dhcp::Dhcp6Parser::make_DDNS_TTL(driver.loc_);
4102 default:
4103 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl", driver.loc_);
4104 }
4105}
4106 YY_BREAK
4107case 109:
4109#line 1186 "dhcp6_lexer.ll"
4110{
4111 switch(driver.ctx_) {
4117 default:
4118 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-min", driver.loc_);
4119 }
4120}
4121 YY_BREAK
4122case 110:
4124#line 1198 "dhcp6_lexer.ll"
4125{
4126 switch(driver.ctx_) {
4132 default:
4133 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-max", driver.loc_);
4134 }
4135}
4136 YY_BREAK
4137case 111:
4139#line 1210 "dhcp6_lexer.ll"
4140{
4141 switch(driver.ctx_) {
4144 return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_);
4145 default:
4146 return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_);
4147 }
4148}
4149 YY_BREAK
4150case 112:
4152#line 1220 "dhcp6_lexer.ll"
4153{
4154 switch(driver.ctx_) {
4159 default:
4160 return isc::dhcp::Dhcp6Parser::make_STRING("store-extended-info", driver.loc_);
4161 }
4162}
4163 YY_BREAK
4164case 113:
4166#line 1231 "dhcp6_lexer.ll"
4167{
4168 switch (driver.ctx_) {
4170 return Dhcp6Parser::make_SHARED_NETWORKS(driver.loc_);
4171 default:
4172 return Dhcp6Parser::make_STRING("shared-networks", driver.loc_);
4173 }
4174}
4175 YY_BREAK
4176case 114:
4178#line 1240 "dhcp6_lexer.ll"
4179{
4180 switch(driver.ctx_) {
4182 return isc::dhcp::Dhcp6Parser::make_OPTION_DEF(driver.loc_);
4183 default:
4184 return isc::dhcp::Dhcp6Parser::make_STRING("option-def", driver.loc_);
4185 }
4186}
4187 YY_BREAK
4188case 115:
4190#line 1249 "dhcp6_lexer.ll"
4191{
4192 switch(driver.ctx_) {
4200 return isc::dhcp::Dhcp6Parser::make_OPTION_DATA(driver.loc_);
4201 default:
4202 return isc::dhcp::Dhcp6Parser::make_STRING("option-data", driver.loc_);
4203 }
4204}
4205 YY_BREAK
4206case 116:
4208#line 1264 "dhcp6_lexer.ll"
4209{
4210 switch(driver.ctx_) {
4220 return isc::dhcp::Dhcp6Parser::make_NAME(driver.loc_);
4221 default:
4222 return isc::dhcp::Dhcp6Parser::make_STRING("name", driver.loc_);
4223 }
4224}
4225 YY_BREAK
4226case 117:
4228#line 1281 "dhcp6_lexer.ll"
4229{
4230 switch(driver.ctx_) {
4232 return isc::dhcp::Dhcp6Parser::make_DATA(driver.loc_);
4233 default:
4234 return isc::dhcp::Dhcp6Parser::make_STRING("data", driver.loc_);
4235 }
4236}
4237 YY_BREAK
4238case 118:
4240#line 1290 "dhcp6_lexer.ll"
4241{
4242 switch(driver.ctx_) {
4244 return isc::dhcp::Dhcp6Parser::make_ALWAYS_SEND(driver.loc_);
4245 default:
4246 return isc::dhcp::Dhcp6Parser::make_STRING("always-send", driver.loc_);
4247 }
4248}
4249 YY_BREAK
4250case 119:
4252#line 1299 "dhcp6_lexer.ll"
4253{
4254 switch(driver.ctx_) {
4256 return isc::dhcp::Dhcp6Parser::make_NEVER_SEND(driver.loc_);
4257 default:
4258 return isc::dhcp::Dhcp6Parser::make_STRING("never-send", driver.loc_);
4259 }
4260}
4261 YY_BREAK
4262case 120:
4264#line 1308 "dhcp6_lexer.ll"
4265{
4266 switch(driver.ctx_) {
4268 return isc::dhcp::Dhcp6Parser::make_POOLS(driver.loc_);
4269 default:
4270 return isc::dhcp::Dhcp6Parser::make_STRING("pools", driver.loc_);
4271 }
4272}
4273 YY_BREAK
4274case 121:
4276#line 1317 "dhcp6_lexer.ll"
4277{
4278 switch(driver.ctx_) {
4280 return isc::dhcp::Dhcp6Parser::make_PD_POOLS(driver.loc_);
4281 default:
4282 return isc::dhcp::Dhcp6Parser::make_STRING("pd-pools", driver.loc_);
4283 }
4284}
4285 YY_BREAK
4286case 122:
4288#line 1326 "dhcp6_lexer.ll"
4289{
4290 switch(driver.ctx_) {
4292 return isc::dhcp::Dhcp6Parser::make_PREFIX(driver.loc_);
4293 default:
4294 return isc::dhcp::Dhcp6Parser::make_STRING("prefix", driver.loc_);
4295 }
4296}
4297 YY_BREAK
4298case 123:
4300#line 1335 "dhcp6_lexer.ll"
4301{
4302 switch(driver.ctx_) {
4304 return isc::dhcp::Dhcp6Parser::make_PREFIX_LEN(driver.loc_);
4305 default:
4306 return isc::dhcp::Dhcp6Parser::make_STRING("prefix-len", driver.loc_);
4307 }
4308}
4309 YY_BREAK
4310case 124:
4312#line 1344 "dhcp6_lexer.ll"
4313{
4314 switch(driver.ctx_) {
4317 default:
4318 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix", driver.loc_);
4319 }
4320}
4321 YY_BREAK
4322case 125:
4324#line 1353 "dhcp6_lexer.ll"
4325{
4326 switch(driver.ctx_) {
4329 default:
4330 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix-len", driver.loc_);
4331 }
4332}
4333 YY_BREAK
4334case 126:
4336#line 1362 "dhcp6_lexer.ll"
4337{
4338 switch(driver.ctx_) {
4341 default:
4342 return isc::dhcp::Dhcp6Parser::make_STRING("delegated-len", driver.loc_);
4343 }
4344}
4345 YY_BREAK
4346case 127:
4348#line 1371 "dhcp6_lexer.ll"
4349{
4350 switch(driver.ctx_) {
4352 return isc::dhcp::Dhcp6Parser::make_POOL(driver.loc_);
4353 default:
4354 return isc::dhcp::Dhcp6Parser::make_STRING("pool", driver.loc_);
4355 }
4356}
4357 YY_BREAK
4358case 128:
4360#line 1380 "dhcp6_lexer.ll"
4361{
4362 switch(driver.ctx_) {
4365 return isc::dhcp::Dhcp6Parser::make_POOL_ID(driver.loc_);
4366 default:
4367 return isc::dhcp::Dhcp6Parser::make_STRING("pool-id", driver.loc_);
4368 }
4369}
4370 YY_BREAK
4371case 129:
4373#line 1390 "dhcp6_lexer.ll"
4374{
4375 switch(driver.ctx_) {
4396 default:
4397 return isc::dhcp::Dhcp6Parser::make_STRING("user-context", driver.loc_);
4398 }
4399}
4400 YY_BREAK
4401case 130:
4403#line 1417 "dhcp6_lexer.ll"
4404{
4405 switch(driver.ctx_) {
4425 return isc::dhcp::Dhcp6Parser::make_COMMENT(driver.loc_);
4426 default:
4427 return isc::dhcp::Dhcp6Parser::make_STRING("comment", driver.loc_);
4428 }
4429}
4430 YY_BREAK
4431case 131:
4433#line 1444 "dhcp6_lexer.ll"
4434{
4435 switch(driver.ctx_) {
4437 return isc::dhcp::Dhcp6Parser::make_SUBNET(driver.loc_);
4438 default:
4439 return isc::dhcp::Dhcp6Parser::make_STRING("subnet", driver.loc_);
4440 }
4441}
4442 YY_BREAK
4443case 132:
4445#line 1453 "dhcp6_lexer.ll"
4446{
4447 switch(driver.ctx_) {
4450 return isc::dhcp::Dhcp6Parser::make_INTERFACE(driver.loc_);
4451 default:
4452 return isc::dhcp::Dhcp6Parser::make_STRING("interface", driver.loc_);
4453 }
4454}
4455 YY_BREAK
4456case 133:
4458#line 1463 "dhcp6_lexer.ll"
4459{
4460 switch(driver.ctx_) {
4464 default:
4465 return isc::dhcp::Dhcp6Parser::make_STRING("interface-id", driver.loc_);
4466 }
4467}
4468 YY_BREAK
4469case 134:
4471#line 1473 "dhcp6_lexer.ll"
4472{
4473 switch(driver.ctx_) {
4475 return isc::dhcp::Dhcp6Parser::make_ID(driver.loc_);
4476 default:
4477 return isc::dhcp::Dhcp6Parser::make_STRING("id", driver.loc_);
4478 }
4479}
4480 YY_BREAK
4481case 135:
4483#line 1482 "dhcp6_lexer.ll"
4484{
4485 switch(driver.ctx_) {
4489 default:
4490 return isc::dhcp::Dhcp6Parser::make_STRING("rapid-commit", driver.loc_);
4491 }
4492}
4493 YY_BREAK
4494case 136:
4496#line 1492 "dhcp6_lexer.ll"
4497{
4498 switch(driver.ctx_) {
4503 default:
4504 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-global", driver.loc_);
4505 }
4506}
4507 YY_BREAK
4508case 137:
4510#line 1503 "dhcp6_lexer.ll"
4511{
4512 switch(driver.ctx_) {
4517 default:
4518 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-in-subnet", driver.loc_);
4519 }
4520}
4521 YY_BREAK
4522case 138:
4524#line 1514 "dhcp6_lexer.ll"
4525{
4526 switch(driver.ctx_) {
4531 default:
4532 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-out-of-pool", driver.loc_);
4533 }
4534}
4535 YY_BREAK
4536case 139:
4538#line 1525 "dhcp6_lexer.ll"
4539{
4540 switch(driver.ctx_) {
4543 return isc::dhcp::Dhcp6Parser::make_CODE(driver.loc_);
4544 default:
4545 return isc::dhcp::Dhcp6Parser::make_STRING("code", driver.loc_);
4546 }
4547}
4548 YY_BREAK
4549case 140:
4551#line 1535 "dhcp6_lexer.ll"
4552{
4553 switch(driver.ctx_) {
4555 return isc::dhcp::Dhcp6Parser::make_MAC_SOURCES(driver.loc_);
4556 default:
4557 return isc::dhcp::Dhcp6Parser::make_STRING("mac-sources", driver.loc_);
4558 }
4559}
4560 YY_BREAK
4561case 141:
4563#line 1544 "dhcp6_lexer.ll"
4564{
4565 switch(driver.ctx_) {
4568 default:
4569 return isc::dhcp::Dhcp6Parser::make_STRING("relay-supplied-options", driver.loc_);
4570 }
4571}
4572 YY_BREAK
4573case 142:
4575#line 1553 "dhcp6_lexer.ll"
4576{
4577 switch(driver.ctx_) {
4580 default:
4581 return isc::dhcp::Dhcp6Parser::make_STRING("host-reservation-identifiers", driver.loc_);
4582 }
4583}
4584 YY_BREAK
4585case 143:
4587#line 1562 "dhcp6_lexer.ll"
4588{
4589 switch(driver.ctx_) {
4594 default:
4595 return isc::dhcp::Dhcp6Parser::make_STRING("calculate-tee-times", driver.loc_);
4596 }
4597}
4598 YY_BREAK
4599case 144:
4601#line 1573 "dhcp6_lexer.ll"
4602{
4603 switch(driver.ctx_) {
4607 return isc::dhcp::Dhcp6Parser::make_T1_PERCENT(driver.loc_);
4608 default:
4609 return isc::dhcp::Dhcp6Parser::make_STRING("t1-percent", driver.loc_);
4610 }
4611}
4612 YY_BREAK
4613case 145:
4615#line 1584 "dhcp6_lexer.ll"
4616{
4617 switch(driver.ctx_) {
4621 return isc::dhcp::Dhcp6Parser::make_T2_PERCENT(driver.loc_);
4622 default:
4623 return isc::dhcp::Dhcp6Parser::make_STRING("t2-percent", driver.loc_);
4624 }
4625}
4626 YY_BREAK
4627case 146:
4629#line 1595 "dhcp6_lexer.ll"
4630{
4631 switch(driver.ctx_) {
4636 default:
4637 return isc::dhcp::Dhcp6Parser::make_STRING("cache-threshold", driver.loc_);
4638 }
4639}
4640 YY_BREAK
4641case 147:
4643#line 1606 "dhcp6_lexer.ll"
4644{
4645 switch(driver.ctx_) {
4650 default:
4651 return isc::dhcp::Dhcp6Parser::make_STRING("cache-max-age", driver.loc_);
4652 }
4653}
4654 YY_BREAK
4655case 148:
4657#line 1617 "dhcp6_lexer.ll"
4658{
4659 switch(driver.ctx_) {
4664 default:
4665 return isc::dhcp::Dhcp6Parser::make_STRING("adaptive-lease-time-threshold", driver.loc_);
4666 }
4667}
4668 YY_BREAK
4669case 149:
4671#line 1628 "dhcp6_lexer.ll"
4672{
4673 switch(driver.ctx_) {
4675 return isc::dhcp::Dhcp6Parser::make_LOGGERS(driver.loc_);
4676 default:
4677 return isc::dhcp::Dhcp6Parser::make_STRING("loggers", driver.loc_);
4678 }
4679}
4680 YY_BREAK
4681case 150:
4683#line 1637 "dhcp6_lexer.ll"
4684{
4685 switch(driver.ctx_) {
4688 default:
4689 return isc::dhcp::Dhcp6Parser::make_STRING("output_options", driver.loc_);
4690 }
4691}
4692 YY_BREAK
4693case 151:
4695#line 1646 "dhcp6_lexer.ll"
4696{
4697 switch(driver.ctx_) {
4700 default:
4701 return isc::dhcp::Dhcp6Parser::make_STRING("output-options", driver.loc_);
4702 }
4703}
4704 YY_BREAK
4705case 152:
4707#line 1655 "dhcp6_lexer.ll"
4708{
4709 switch(driver.ctx_) {
4711 return isc::dhcp::Dhcp6Parser::make_OUTPUT(driver.loc_);
4712 default:
4713 return isc::dhcp::Dhcp6Parser::make_STRING("output", driver.loc_);
4714 }
4715}
4716 YY_BREAK
4717case 153:
4719#line 1664 "dhcp6_lexer.ll"
4720{
4721 switch(driver.ctx_) {
4723 return isc::dhcp::Dhcp6Parser::make_FLUSH(driver.loc_);
4724 default:
4725 return isc::dhcp::Dhcp6Parser::make_STRING("flush", driver.loc_);
4726 }
4727}
4728 YY_BREAK
4729case 154:
4731#line 1673 "dhcp6_lexer.ll"
4732{
4733 switch(driver.ctx_) {
4735 return isc::dhcp::Dhcp6Parser::make_MAXSIZE(driver.loc_);
4736 default:
4737 return isc::dhcp::Dhcp6Parser::make_STRING("maxsize", driver.loc_);
4738 }
4739}
4740 YY_BREAK
4741case 155:
4743#line 1682 "dhcp6_lexer.ll"
4744{
4745 switch(driver.ctx_) {
4747 return isc::dhcp::Dhcp6Parser::make_MAXVER(driver.loc_);
4748 default:
4749 return isc::dhcp::Dhcp6Parser::make_STRING("maxver", driver.loc_);
4750 }
4751}
4752 YY_BREAK
4753case 156:
4755#line 1691 "dhcp6_lexer.ll"
4756{
4757 switch(driver.ctx_) {
4759 return isc::dhcp::Dhcp6Parser::make_PATTERN(driver.loc_);
4760 default:
4761 return isc::dhcp::Dhcp6Parser::make_STRING("pattern", driver.loc_);
4762 }
4763}
4764 YY_BREAK
4765case 157:
4767#line 1700 "dhcp6_lexer.ll"
4768{
4769 switch(driver.ctx_) {
4771 return isc::dhcp::Dhcp6Parser::make_DEBUGLEVEL(driver.loc_);
4772 default:
4773 return isc::dhcp::Dhcp6Parser::make_STRING("debuglevel", driver.loc_);
4774 }
4775}
4776 YY_BREAK
4777case 158:
4779#line 1709 "dhcp6_lexer.ll"
4780{
4781 switch(driver.ctx_) {
4783 return isc::dhcp::Dhcp6Parser::make_SEVERITY(driver.loc_);
4784 default:
4785 return isc::dhcp::Dhcp6Parser::make_STRING("severity", driver.loc_);
4786 }
4787}
4788 YY_BREAK
4789case 159:
4791#line 1718 "dhcp6_lexer.ll"
4792{
4793 switch(driver.ctx_) {
4802 default:
4803 return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", driver.loc_);
4804 }
4805}
4806 YY_BREAK
4807case 160:
4809#line 1733 "dhcp6_lexer.ll"
4810{
4811 switch(driver.ctx_) {
4817 default:
4818 return isc::dhcp::Dhcp6Parser::make_STRING("require-client-classes", driver.loc_);
4819 }
4820}
4821 YY_BREAK
4822case 161:
4824#line 1745 "dhcp6_lexer.ll"
4825{
4826 switch(driver.ctx_) {
4832 default:
4833 return isc::dhcp::Dhcp6Parser::make_STRING("evaluate-additional-classes", driver.loc_);
4834 }
4835}
4836 YY_BREAK
4837case 162:
4839#line 1757 "dhcp6_lexer.ll"
4840{
4841 switch(driver.ctx_) {
4848 default:
4849 return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_);
4850 }
4851}
4852 YY_BREAK
4853case 163:
4855#line 1770 "dhcp6_lexer.ll"
4856{
4857 switch(driver.ctx_) {
4859 return isc::dhcp::Dhcp6Parser::make_TEST(driver.loc_);
4860 default:
4861 return isc::dhcp::Dhcp6Parser::make_STRING("test", driver.loc_);
4862 }
4863}
4864 YY_BREAK
4865case 164:
4867#line 1779 "dhcp6_lexer.ll"
4868{
4869 switch(driver.ctx_) {
4872 default:
4873 return isc::dhcp::Dhcp6Parser::make_STRING("template-test", driver.loc_);
4874 }
4875}
4876 YY_BREAK
4877case 165:
4879#line 1788 "dhcp6_lexer.ll"
4880{
4881 switch(driver.ctx_) {
4884 default:
4885 return isc::dhcp::Dhcp6Parser::make_STRING("only-if-required", driver.loc_);
4886 }
4887}
4888 YY_BREAK
4889case 166:
4891#line 1797 "dhcp6_lexer.ll"
4892{
4893 switch(driver.ctx_) {
4896 default:
4897 return isc::dhcp::Dhcp6Parser::make_STRING("only-in-additional-list", driver.loc_);
4898 }
4899}
4900 YY_BREAK
4901case 167:
4903#line 1806 "dhcp6_lexer.ll"
4904{
4905 switch(driver.ctx_) {
4909 default:
4910 return isc::dhcp::Dhcp6Parser::make_STRING("reservations", driver.loc_);
4911 }
4912}
4913 YY_BREAK
4914case 168:
4916#line 1816 "dhcp6_lexer.ll"
4917{
4918 switch(driver.ctx_) {
4922 default:
4923 return isc::dhcp::Dhcp6Parser::make_STRING("ip-addresses", driver.loc_);
4924 }
4925}
4926 YY_BREAK
4927case 169:
4929#line 1826 "dhcp6_lexer.ll"
4930{
4931 switch(driver.ctx_) {
4933 return isc::dhcp::Dhcp6Parser::make_PREFIXES(driver.loc_);
4934 default:
4935 return isc::dhcp::Dhcp6Parser::make_STRING("prefixes", driver.loc_);
4936 }
4937}
4938 YY_BREAK
4939case 170:
4941#line 1835 "dhcp6_lexer.ll"
4942{
4943 switch(driver.ctx_) {
4946 default:
4947 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefixes", driver.loc_);
4948 }
4949}
4950 YY_BREAK
4951case 171:
4953#line 1844 "dhcp6_lexer.ll"
4954{
4955 switch(driver.ctx_) {
4959 return isc::dhcp::Dhcp6Parser::make_DUID(driver.loc_);
4960 default:
4961 return isc::dhcp::Dhcp6Parser::make_STRING("duid", driver.loc_);
4962 }
4963}
4964 YY_BREAK
4965case 172:
4967#line 1855 "dhcp6_lexer.ll"
4968{
4969 switch(driver.ctx_) {
4972 return isc::dhcp::Dhcp6Parser::make_HW_ADDRESS(driver.loc_);
4973 default:
4974 return isc::dhcp::Dhcp6Parser::make_STRING("hw-address", driver.loc_);
4975 }
4976}
4977 YY_BREAK
4978case 173:
4980#line 1865 "dhcp6_lexer.ll"
4981{
4982 switch(driver.ctx_) {
4984 return isc::dhcp::Dhcp6Parser::make_HOSTNAME(driver.loc_);
4985 default:
4986 return isc::dhcp::Dhcp6Parser::make_STRING("hostname", driver.loc_);
4987 }
4988}
4989 YY_BREAK
4990case 174:
4992#line 1874 "dhcp6_lexer.ll"
4993{
4994 switch(driver.ctx_) {
4997 return isc::dhcp::Dhcp6Parser::make_FLEX_ID(driver.loc_);
4998 default:
4999 return isc::dhcp::Dhcp6Parser::make_STRING("flex-id", driver.loc_);
5000 }
5001}
5002 YY_BREAK
5003case 175:
5005#line 1884 "dhcp6_lexer.ll"
5006{
5007 switch(driver.ctx_) {
5010 return isc::dhcp::Dhcp6Parser::make_SPACE(driver.loc_);
5011 default:
5012 return isc::dhcp::Dhcp6Parser::make_STRING("space", driver.loc_);
5013 }
5014}
5015 YY_BREAK
5016case 176:
5018#line 1894 "dhcp6_lexer.ll"
5019{
5020 switch(driver.ctx_) {
5022 return isc::dhcp::Dhcp6Parser::make_CSV_FORMAT(driver.loc_);
5023 default:
5024 return isc::dhcp::Dhcp6Parser::make_STRING("csv-format", driver.loc_);
5025 }
5026}
5027 YY_BREAK
5028case 177:
5030#line 1903 "dhcp6_lexer.ll"
5031{
5032 switch(driver.ctx_) {
5035 default:
5036 return isc::dhcp::Dhcp6Parser::make_STRING("record-types", driver.loc_);
5037 }
5038}
5039 YY_BREAK
5040case 178:
5042#line 1912 "dhcp6_lexer.ll"
5043{
5044 switch(driver.ctx_) {
5046 return isc::dhcp::Dhcp6Parser::make_ENCAPSULATE(driver.loc_);
5047 default:
5048 return isc::dhcp::Dhcp6Parser::make_STRING("encapsulate", driver.loc_);
5049 }
5050}
5051 YY_BREAK
5052case 179:
5054#line 1921 "dhcp6_lexer.ll"
5055{
5056 switch(driver.ctx_) {
5058 return isc::dhcp::Dhcp6Parser::make_ARRAY(driver.loc_);
5059 default:
5060 return isc::dhcp::Dhcp6Parser::make_STRING("array", driver.loc_);
5061 }
5062}
5063 YY_BREAK
5064case 180:
5066#line 1930 "dhcp6_lexer.ll"
5067{
5068 switch(driver.ctx_) {
5071 return isc::dhcp::Dhcp6Parser::make_RELAY(driver.loc_);
5072 default:
5073 return isc::dhcp::Dhcp6Parser::make_STRING("relay", driver.loc_);
5074 }
5075}
5076 YY_BREAK
5077case 181:
5079#line 1940 "dhcp6_lexer.ll"
5080{
5081 switch(driver.ctx_) {
5084 default:
5085 return isc::dhcp::Dhcp6Parser::make_STRING("hooks-libraries", driver.loc_);
5086 }
5087}
5088 YY_BREAK
5089case 182:
5091#line 1949 "dhcp6_lexer.ll"
5092{
5093 switch(driver.ctx_) {
5095 return isc::dhcp::Dhcp6Parser::make_PARAMETERS(driver.loc_);
5096 default:
5097 return isc::dhcp::Dhcp6Parser::make_STRING("parameters", driver.loc_);
5098 }
5099}
5100 YY_BREAK
5101case 183:
5103#line 1958 "dhcp6_lexer.ll"
5104{
5105 switch(driver.ctx_) {
5107 return isc::dhcp::Dhcp6Parser::make_LIBRARY(driver.loc_);
5108 default:
5109 return isc::dhcp::Dhcp6Parser::make_STRING("library", driver.loc_);
5110 }
5111}
5112 YY_BREAK
5113case 184:
5115#line 1967 "dhcp6_lexer.ll"
5116{
5117 switch(driver.ctx_) {
5119 return isc::dhcp::Dhcp6Parser::make_SERVER_ID(driver.loc_);
5120 default:
5121 return isc::dhcp::Dhcp6Parser::make_STRING("server-id", driver.loc_);
5122 }
5123}
5124 YY_BREAK
5125case 185:
5127#line 1976 "dhcp6_lexer.ll"
5128{
5129 switch(driver.ctx_) {
5131 return isc::dhcp::Dhcp6Parser::make_LLT(driver.loc_);
5132 default:
5133 return isc::dhcp::Dhcp6Parser::make_STRING("LLT", driver.loc_);
5134 }
5135}
5136 YY_BREAK
5137case 186:
5139#line 1985 "dhcp6_lexer.ll"
5140{
5141 switch(driver.ctx_) {
5143 return isc::dhcp::Dhcp6Parser::make_EN(driver.loc_);
5144 default:
5145 return isc::dhcp::Dhcp6Parser::make_STRING("EN", driver.loc_);
5146 }
5147}
5148 YY_BREAK
5149case 187:
5151#line 1994 "dhcp6_lexer.ll"
5152{
5153 switch(driver.ctx_) {
5155 return isc::dhcp::Dhcp6Parser::make_LL(driver.loc_);
5156 default:
5157 return isc::dhcp::Dhcp6Parser::make_STRING("LL", driver.loc_);
5158 }
5159}
5160 YY_BREAK
5161case 188:
5163#line 2003 "dhcp6_lexer.ll"
5164{
5165 switch(driver.ctx_) {
5167 return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(driver.loc_);
5168 default:
5169 return isc::dhcp::Dhcp6Parser::make_STRING("identifier", driver.loc_);
5170 }
5171}
5172 YY_BREAK
5173case 189:
5175#line 2012 "dhcp6_lexer.ll"
5176{
5177 switch(driver.ctx_) {
5179 return isc::dhcp::Dhcp6Parser::make_HTYPE(driver.loc_);
5180 default:
5181 return isc::dhcp::Dhcp6Parser::make_STRING("htype", driver.loc_);
5182 }
5183}
5184 YY_BREAK
5185case 190:
5187#line 2021 "dhcp6_lexer.ll"
5188{
5189 switch(driver.ctx_) {
5191 return isc::dhcp::Dhcp6Parser::make_TIME(driver.loc_);
5192 default:
5193 return isc::dhcp::Dhcp6Parser::make_STRING("time", driver.loc_);
5194 }
5195}
5196 YY_BREAK
5197case 191:
5199#line 2030 "dhcp6_lexer.ll"
5200{
5201 switch(driver.ctx_) {
5204 default:
5205 return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", driver.loc_);
5206 }
5207}
5208 YY_BREAK
5209case 192:
5211#line 2039 "dhcp6_lexer.ll"
5212{
5213 switch(driver.ctx_) {
5216 default:
5217 return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", driver.loc_);
5218 }
5219}
5220 YY_BREAK
5221case 193:
5223#line 2048 "dhcp6_lexer.ll"
5224{
5225 switch(driver.ctx_) {
5228 default:
5229 return isc::dhcp::Dhcp6Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
5230 }
5231}
5232 YY_BREAK
5233case 194:
5235#line 2057 "dhcp6_lexer.ll"
5236{
5237 switch(driver.ctx_) {
5240 default:
5241 return isc::dhcp::Dhcp6Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
5242 }
5243}
5244 YY_BREAK
5245case 195:
5247#line 2066 "dhcp6_lexer.ll"
5248{
5249 switch(driver.ctx_) {
5252 default:
5253 return isc::dhcp::Dhcp6Parser::make_STRING("hold-reclaimed-time", driver.loc_);
5254 }
5255}
5256 YY_BREAK
5257case 196:
5259#line 2075 "dhcp6_lexer.ll"
5260{
5261 switch(driver.ctx_) {
5264 default:
5265 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-leases", driver.loc_);
5266 }
5267}
5268 YY_BREAK
5269case 197:
5271#line 2084 "dhcp6_lexer.ll"
5272{
5273 switch(driver.ctx_) {
5276 default:
5277 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-time", driver.loc_);
5278 }
5279}
5280 YY_BREAK
5281case 198:
5283#line 2093 "dhcp6_lexer.ll"
5284{
5285 switch(driver.ctx_) {
5288 default:
5289 return isc::dhcp::Dhcp6Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
5290 }
5291}
5292 YY_BREAK
5293case 199:
5295#line 2102 "dhcp6_lexer.ll"
5296{
5297 switch(driver.ctx_) {
5300 default:
5301 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp4o6-port", driver.loc_);
5302 }
5303}
5304 YY_BREAK
5305case 200:
5307#line 2111 "dhcp6_lexer.ll"
5308{
5309 switch(driver.ctx_) {
5312 default:
5313 return isc::dhcp::Dhcp6Parser::make_STRING("multi-threading", driver.loc_);
5314 }
5315}
5316 YY_BREAK
5317case 201:
5319#line 2120 "dhcp6_lexer.ll"
5320{
5321 switch(driver.ctx_) {
5324 default:
5325 return isc::dhcp::Dhcp6Parser::make_STRING("enable-multi-threading", driver.loc_);
5326 }
5327}
5328 YY_BREAK
5329case 202:
5331#line 2129 "dhcp6_lexer.ll"
5332{
5333 switch(driver.ctx_) {
5336 default:
5337 return isc::dhcp::Dhcp6Parser::make_STRING("thread-pool-size", driver.loc_);
5338 }
5339}
5340 YY_BREAK
5341case 203:
5343#line 2138 "dhcp6_lexer.ll"
5344{
5345 switch(driver.ctx_) {
5348 default:
5349 return isc::dhcp::Dhcp6Parser::make_STRING("packet-queue-size", driver.loc_);
5350 }
5351}
5352 YY_BREAK
5353case 204:
5355#line 2147 "dhcp6_lexer.ll"
5356{
5357 switch(driver.ctx_) {
5360 default:
5361 return isc::dhcp::Dhcp6Parser::make_STRING("control-socket", driver.loc_);
5362 }
5363}
5364 YY_BREAK
5365case 205:
5367#line 2156 "dhcp6_lexer.ll"
5368{
5369 switch(driver.ctx_) {
5372 default:
5373 return isc::dhcp::Dhcp6Parser::make_STRING("control-sockets", driver.loc_);
5374 }
5375}
5376 YY_BREAK
5377case 206:
5379#line 2165 "dhcp6_lexer.ll"
5380{
5381 switch(driver.ctx_) {
5383 return isc::dhcp::Dhcp6Parser::make_SOCKET_TYPE(driver.loc_);
5384 default:
5385 return isc::dhcp::Dhcp6Parser::make_STRING("socket-type", driver.loc_);
5386 }
5387}
5388 YY_BREAK
5389case 207:
5391#line 2174 "dhcp6_lexer.ll"
5392{
5393 switch(driver.ctx_) {
5395 return isc::dhcp::Dhcp6Parser::make_UNIX(driver.loc_);
5396 default:
5397 return isc::dhcp::Dhcp6Parser::make_STRING("unix", driver.loc_);
5398 }
5399}
5400 YY_BREAK
5401case 208:
5403#line 2183 "dhcp6_lexer.ll"
5404{
5405 switch(driver.ctx_) {
5407 return isc::dhcp::Dhcp6Parser::make_HTTP(driver.loc_);
5408 default:
5409 return isc::dhcp::Dhcp6Parser::make_STRING("http", driver.loc_);
5410 }
5411}
5412 YY_BREAK
5413case 209:
5415#line 2192 "dhcp6_lexer.ll"
5416{
5417 switch(driver.ctx_) {
5419 return isc::dhcp::Dhcp6Parser::make_HTTPS(driver.loc_);
5420 default:
5421 return isc::dhcp::Dhcp6Parser::make_STRING("https", driver.loc_);
5422 }
5423}
5424 YY_BREAK
5425case 210:
5427#line 2201 "dhcp6_lexer.ll"
5428{
5429 switch(driver.ctx_) {
5431 return isc::dhcp::Dhcp6Parser::make_SOCKET_NAME(driver.loc_);
5432 default:
5433 return isc::dhcp::Dhcp6Parser::make_STRING("socket-name", driver.loc_);
5434 }
5435}
5436 YY_BREAK
5437case 211:
5439#line 2210 "dhcp6_lexer.ll"
5440{
5441 switch(driver.ctx_) {
5444 default:
5445 return isc::dhcp::Dhcp6Parser::make_STRING("socket-address", driver.loc_);
5446 }
5447}
5448 YY_BREAK
5449case 212:
5451#line 2219 "dhcp6_lexer.ll"
5452{
5453 switch(driver.ctx_) {
5455 return isc::dhcp::Dhcp6Parser::make_SOCKET_PORT(driver.loc_);
5456 default:
5457 return isc::dhcp::Dhcp6Parser::make_STRING("socket-port", driver.loc_);
5458 }
5459}
5460 YY_BREAK
5461case 213:
5463#line 2228 "dhcp6_lexer.ll"
5464{
5465 switch(driver.ctx_) {
5468 default:
5469 return isc::dhcp::Dhcp6Parser::make_STRING("authentication", driver.loc_);
5470 }
5471}
5472 YY_BREAK
5473case 214:
5475#line 2237 "dhcp6_lexer.ll"
5476{
5477 switch(driver.ctx_) {
5479 return isc::dhcp::Dhcp6Parser::make_BASIC(driver.loc_);
5480 default:
5481 return isc::dhcp::Dhcp6Parser::make_STRING("basic", driver.loc_);
5482 }
5483}
5484 YY_BREAK
5485case 215:
5487#line 2246 "dhcp6_lexer.ll"
5488{
5489 switch(driver.ctx_) {
5491 return isc::dhcp::Dhcp6Parser::make_REALM(driver.loc_);
5492 default:
5493 return isc::dhcp::Dhcp6Parser::make_STRING("realm", driver.loc_);
5494 }
5495}
5496 YY_BREAK
5497case 216:
5499#line 2255 "dhcp6_lexer.ll"
5500{
5501 switch(driver.ctx_) {
5503 return isc::dhcp::Dhcp6Parser::make_DIRECTORY(driver.loc_);
5504 default:
5505 return isc::dhcp::Dhcp6Parser::make_STRING("directory", driver.loc_);
5506 }
5507}
5508 YY_BREAK
5509case 217:
5511#line 2264 "dhcp6_lexer.ll"
5512{
5513 switch(driver.ctx_) {
5515 return isc::dhcp::Dhcp6Parser::make_CLIENTS(driver.loc_);
5516 default:
5517 return isc::dhcp::Dhcp6Parser::make_STRING("clients", driver.loc_);
5518 }
5519}
5520 YY_BREAK
5521case 218:
5523#line 2273 "dhcp6_lexer.ll"
5524{
5525 switch(driver.ctx_) {
5527 return isc::dhcp::Dhcp6Parser::make_USER_FILE(driver.loc_);
5528 default:
5529 return isc::dhcp::Dhcp6Parser::make_STRING("user-file", driver.loc_);
5530 }
5531}
5532 YY_BREAK
5533case 219:
5535#line 2282 "dhcp6_lexer.ll"
5536{
5537 switch(driver.ctx_) {
5540 default:
5541 return isc::dhcp::Dhcp6Parser::make_STRING("password-file", driver.loc_);
5542 }
5543}
5544 YY_BREAK
5545case 220:
5547#line 2291 "dhcp6_lexer.ll"
5548{
5549 switch(driver.ctx_) {
5552 default:
5553 return isc::dhcp::Dhcp6Parser::make_STRING("cert-required", driver.loc_);
5554 }
5555}
5556 YY_BREAK
5557case 221:
5559#line 2300 "dhcp6_lexer.ll"
5560{
5561 switch(driver.ctx_) {
5564 default:
5565 return isc::dhcp::Dhcp6Parser::make_STRING("http-headers", driver.loc_);
5566 }
5567}
5568 YY_BREAK
5569case 222:
5571#line 2309 "dhcp6_lexer.ll"
5572{
5573 switch(driver.ctx_) {
5575 return isc::dhcp::Dhcp6Parser::make_VALUE(driver.loc_);
5576 default:
5577 return isc::dhcp::Dhcp6Parser::make_STRING("value", driver.loc_);
5578 }
5579}
5580 YY_BREAK
5581case 223:
5583#line 2318 "dhcp6_lexer.ll"
5584{
5585 switch(driver.ctx_) {
5588 default:
5589 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-queue-control", driver.loc_);
5590 }
5591}
5592 YY_BREAK
5593case 224:
5595#line 2327 "dhcp6_lexer.ll"
5596{
5597 switch(driver.ctx_) {
5600 default:
5601 return isc::dhcp::Dhcp6Parser::make_STRING("enable-queue", driver.loc_);
5602 }
5603}
5604 YY_BREAK
5605case 225:
5607#line 2336 "dhcp6_lexer.ll"
5608{
5609 switch(driver.ctx_) {
5611 return isc::dhcp::Dhcp6Parser::make_QUEUE_TYPE(driver.loc_);
5612 default:
5613 return isc::dhcp::Dhcp6Parser::make_STRING("queue-type", driver.loc_);
5614 }
5615}
5616 YY_BREAK
5617case 226:
5619#line 2345 "dhcp6_lexer.ll"
5620{
5621 switch(driver.ctx_) {
5623 return isc::dhcp::Dhcp6Parser::make_CAPACITY(driver.loc_);
5624 default:
5625 return isc::dhcp::Dhcp6Parser::make_STRING("capacity", driver.loc_);
5626 }
5627}
5628 YY_BREAK
5629case 227:
5631#line 2354 "dhcp6_lexer.ll"
5632{
5633 switch(driver.ctx_) {
5635 return isc::dhcp::Dhcp6Parser::make_DHCP_DDNS(driver.loc_);
5636 default:
5637 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-ddns", driver.loc_);
5638 }
5639}
5640 YY_BREAK
5641case 228:
5643#line 2363 "dhcp6_lexer.ll"
5644{
5645 switch(driver.ctx_) {
5648 default:
5649 return isc::dhcp::Dhcp6Parser::make_STRING("early-global-reservations-lookup", driver.loc_);
5650 }
5651}
5652 YY_BREAK
5653case 229:
5655#line 2372 "dhcp6_lexer.ll"
5656{
5657 switch(driver.ctx_) {
5660 default:
5661 return isc::dhcp::Dhcp6Parser::make_STRING("ip-reservations-unique", driver.loc_);
5662 }
5663}
5664 YY_BREAK
5665case 230:
5667#line 2381 "dhcp6_lexer.ll"
5668{
5669 switch(driver.ctx_) {
5672 default:
5673 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-lookup-first", driver.loc_);
5674 }
5675}
5676 YY_BREAK
5677case 231:
5679#line 2390 "dhcp6_lexer.ll"
5680{
5681 switch(driver.ctx_) {
5684 default:
5685 return isc::dhcp::Dhcp6Parser::make_STRING("allow-address-registration", driver.loc_);
5686 }
5687}
5688 YY_BREAK
5689case 232:
5691#line 2399 "dhcp6_lexer.ll"
5692{
5693 switch(driver.ctx_) {
5696 default:
5697 return isc::dhcp::Dhcp6Parser::make_STRING("compatibility", driver.loc_);
5698 }
5699}
5700 YY_BREAK
5701case 233:
5703#line 2408 "dhcp6_lexer.ll"
5704{
5705 switch(driver.ctx_) {
5708 default:
5709 return isc::dhcp::Dhcp6Parser::make_STRING("lenient-option-parsing", driver.loc_);
5710 }
5711}
5712 YY_BREAK
5713case 234:
5715#line 2417 "dhcp6_lexer.ll"
5716{
5717 /* A string has been matched. It contains the actual string and single quotes.
5718 We need to get those quotes out of the way and just use its content, e.g.
5719 for 'foo' we should get foo */
5720 std::string raw(yytext+1);
5721 size_t len = raw.size() - 1;
5722 raw.resize(len);
5723 std::string decoded;
5724 decoded.reserve(len);
5725 for (size_t pos = 0; pos < len; ++pos) {
5726 int b = 0;
5727 char c = raw[pos];
5728 switch (c) {
5729 case '"':
5730 /* impossible condition */
5731 driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
5732 break;
5733 case '\\':
5734 ++pos;
5735 if (pos >= len) {
5736 /* impossible condition */
5737 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
5738 }
5739 c = raw[pos];
5740 switch (c) {
5741 case '"':
5742 case '\\':
5743 case '/':
5744 decoded.push_back(c);
5745 break;
5746 case 'b':
5747 decoded.push_back('\b');
5748 break;
5749 case 'f':
5750 decoded.push_back('\f');
5751 break;
5752 case 'n':
5753 decoded.push_back('\n');
5754 break;
5755 case 'r':
5756 decoded.push_back('\r');
5757 break;
5758 case 't':
5759 decoded.push_back('\t');
5760 break;
5761 case 'u':
5762 /* support only \u0000 to \u00ff */
5763 ++pos;
5764 if (pos + 4 > len) {
5765 /* impossible condition */
5766 driver.error(driver.loc_,
5767 "Overflow unicode escape in \"" + raw + "\"");
5768 }
5769 if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
5770 driver.error(driver.loc_,
5771 "Unsupported unicode escape in \"" + raw + "\"",
5772 pos + 1);
5773 }
5774 pos += 2;
5775 c = raw[pos];
5776 if ((c >= '0') && (c <= '9')) {
5777 b = (c - '0') << 4;
5778 } else if ((c >= 'A') && (c <= 'F')) {
5779 b = (c - 'A' + 10) << 4;
5780 } else if ((c >= 'a') && (c <= 'f')) {
5781 b = (c - 'a' + 10) << 4;
5782 } else {
5783 /* impossible condition */
5784 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5785 }
5786 pos++;
5787 c = raw[pos];
5788 if ((c >= '0') && (c <= '9')) {
5789 b |= c - '0';
5790 } else if ((c >= 'A') && (c <= 'F')) {
5791 b |= c - 'A' + 10;
5792 } else if ((c >= 'a') && (c <= 'f')) {
5793 b |= c - 'a' + 10;
5794 } else {
5795 /* impossible condition */
5796 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5797 }
5798 decoded.push_back(static_cast<char>(b & 0xff));
5799 break;
5800 default:
5801 /* impossible condition */
5802 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5803 }
5804 break;
5805 default:
5806 if ((c >= 0) && (c < 0x20)) {
5807 /* impossible condition */
5808 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5809 }
5810 decoded.push_back(c);
5811 }
5812 }
5813
5814 return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
5815}
5816 YY_BREAK
5817case 235:
5818/* rule 235 can match eol */
5820#line 2518 "dhcp6_lexer.ll"
5821{
5822 /* Bad string with a forbidden control character inside */
5823 std::string raw(yytext+1);
5824 size_t len = raw.size() - 1;
5825 size_t pos = 0;
5826 for (; pos < len; ++pos) {
5827 char c = raw[pos];
5828 if ((c >= 0) && (c < 0x20)) {
5829 break;
5830 }
5831 }
5832 driver.error(driver.loc_,
5833 "Invalid control in " + std::string(yytext),
5834 pos + 1);
5835}
5836 YY_BREAK
5837case 236:
5838/* rule 236 can match eol */
5840#line 2534 "dhcp6_lexer.ll"
5841{
5842 /* Bad string with a bad escape inside */
5843 std::string raw(yytext+1);
5844 size_t len = raw.size() - 1;
5845 size_t pos = 0;
5846 bool found = false;
5847 for (; pos < len; ++pos) {
5848 if (found) {
5849 break;
5850 }
5851 char c = raw[pos];
5852 if (c == '\\') {
5853 ++pos;
5854 c = raw[pos];
5855 switch (c) {
5856 case '"':
5857 case '\\':
5858 case '/':
5859 case 'b':
5860 case 'f':
5861 case 'n':
5862 case 'r':
5863 case 't':
5864 break;
5865 case 'u':
5866 if ((pos + 4 > len) ||
5867 !std::isxdigit(raw[pos + 1]) ||
5868 !std::isxdigit(raw[pos + 2]) ||
5869 !std::isxdigit(raw[pos + 3]) ||
5870 !std::isxdigit(raw[pos + 4])) {
5871 found = true;
5872 }
5873 break;
5874 default:
5875 found = true;
5876 break;
5877 }
5878 }
5879 }
5880 /* The rule stops on the first " including on \" so add ... in this case */
5881 std::string trailer = "";
5882 if (raw[len - 1] == '\\') {
5883 trailer = "...";
5884 }
5885 driver.error(driver.loc_,
5886 "Bad escape in " + std::string(yytext) + trailer,
5887 pos);
5888}
5889 YY_BREAK
5890case 237:
5892#line 2583 "dhcp6_lexer.ll"
5893{
5894 /* Bad string with an open escape at the end */
5895 std::string raw(yytext+1);
5896 driver.error(driver.loc_,
5897 "Overflow escape in " + std::string(yytext),
5898 raw.size() + 1);
5899}
5900 YY_BREAK
5901case 238:
5903#line 2591 "dhcp6_lexer.ll"
5904{
5905 /* Bad string with an open unicode escape at the end */
5906 std::string raw(yytext+1);
5907 size_t pos = raw.size() - 1;
5908 for (; pos > 0; --pos) {
5909 char c = raw[pos];
5910 if (c == 'u') {
5911 break;
5912 }
5913 }
5914 driver.error(driver.loc_,
5915 "Overflow unicode escape in " + std::string(yytext),
5916 pos + 1);
5917}
5918 YY_BREAK
5919case 239:
5921#line 2606 "dhcp6_lexer.ll"
5922{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
5923 YY_BREAK
5924case 240:
5926#line 2607 "dhcp6_lexer.ll"
5927{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
5928 YY_BREAK
5929case 241:
5931#line 2608 "dhcp6_lexer.ll"
5932{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
5933 YY_BREAK
5934case 242:
5936#line 2609 "dhcp6_lexer.ll"
5937{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
5938 YY_BREAK
5939case 243:
5941#line 2610 "dhcp6_lexer.ll"
5942{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
5943 YY_BREAK
5944case 244:
5946#line 2611 "dhcp6_lexer.ll"
5947{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
5948 YY_BREAK
5949case 245:
5951#line 2613 "dhcp6_lexer.ll"
5952{
5953 /* An integer was found. */
5954 std::string tmp(yytext);
5955 int64_t integer = 0;
5956 try {
5957 /* In substring we want to use negative values (e.g. -1).
5958 In enterprise-id we need to use values up to 0xffffffff.
5959 To cover both of those use cases, we need at least
5960 int64_t. */
5961 integer = boost::lexical_cast<int64_t>(tmp);
5962 } catch (const boost::bad_lexical_cast &) {
5963 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5964 }
5965
5966 /* The parser needs the string form as double conversion is no lossless */
5967 return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
5968}
5969 YY_BREAK
5970case 246:
5972#line 2631 "dhcp6_lexer.ll"
5973{
5974 /* A floating point was found. */
5975 std::string tmp(yytext);
5976 double fp = 0.0;
5977 try {
5978 fp = boost::lexical_cast<double>(tmp);
5979 } catch (const boost::bad_lexical_cast &) {
5980 driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
5981 }
5982
5983 return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
5984}
5985 YY_BREAK
5986case 247:
5988#line 2644 "dhcp6_lexer.ll"
5989{
5990 string tmp(yytext);
5991 return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
5992}
5993 YY_BREAK
5994case 248:
5996#line 2649 "dhcp6_lexer.ll"
5997{
5998 return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
5999}
6000 YY_BREAK
6001case 249:
6003#line 2653 "dhcp6_lexer.ll"
6004driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
6005 YY_BREAK
6006case 250:
6008#line 2655 "dhcp6_lexer.ll"
6009driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
6010 YY_BREAK
6011case 251:
6013#line 2657 "dhcp6_lexer.ll"
6014driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
6015 YY_BREAK
6016case 252:
6018#line 2659 "dhcp6_lexer.ll"
6019driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
6020 YY_BREAK
6021case YY_STATE_EOF(INITIAL):
6022#line 2661 "dhcp6_lexer.ll"
6023{
6024 if (driver.states_.empty()) {
6025 return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
6026 }
6027 driver.loc_ = driver.locs_.back();
6028 driver.locs_.pop_back();
6029 driver.file_ = driver.files_.back();
6030 driver.files_.pop_back();
6031 if (driver.sfile_) {
6032 fclose(driver.sfile_);
6033 driver.sfile_ = 0;
6034 }
6035 if (!driver.sfiles_.empty()) {
6036 driver.sfile_ = driver.sfiles_.back();
6037 driver.sfiles_.pop_back();
6038 }
6039 parser6__delete_buffer(YY_CURRENT_BUFFER);
6040 parser6__switch_to_buffer(driver.states_.back());
6041 driver.states_.pop_back();
6042
6043 BEGIN(DIR_EXIT);
6044}
6045 YY_BREAK
6046case 253:
6048#line 2684 "dhcp6_lexer.ll"
6049ECHO;
6050 YY_BREAK
6051#line 6051 "dhcp6_lexer.cc"
6052
6053 case YY_END_OF_BUFFER:
6054 {
6055 /* Amount of text matched not including the EOB char. */
6056 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
6057
6058 /* Undo the effects of YY_DO_BEFORE_ACTION. */
6059 *yy_cp = (yy_hold_char);
6061
6062 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
6063 {
6064 /* We're scanning a new file or input source. It's
6065 * possible that this happened because the user
6066 * just pointed yyin at a new source and called
6067 * yylex(). If so, then we have to assure
6068 * consistency between YY_CURRENT_BUFFER and our
6069 * globals. Here is the right place to do so, because
6070 * this is the first action (other than possibly a
6071 * back-up) that will match for the new input source.
6072 */
6073 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6074/* %if-c-only */
6075 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
6076/* %endif */
6077/* %if-c++-only */
6078/* %endif */
6079 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
6080 }
6081
6082 /* Note that here we test for yy_c_buf_p "<=" to the position
6083 * of the first EOB in the buffer, since yy_c_buf_p will
6084 * already have been incremented past the NUL character
6085 * (since all states make transitions on EOB to the
6086 * end-of-buffer state). Contrast this with the test
6087 * in input().
6088 */
6089 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6090 { /* This was really a NUL. */
6091 yy_state_type yy_next_state;
6092
6093 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
6094
6095 yy_current_state = yy_get_previous_state( );
6096
6097 /* Okay, we're now positioned to make the NUL
6098 * transition. We couldn't have
6099 * yy_get_previous_state() go ahead and do it
6100 * for us because it doesn't know how to deal
6101 * with the possibility of jamming (and we don't
6102 * want to build jamming into it because then it
6103 * will run more slowly).
6104 */
6105
6106 yy_next_state = yy_try_NUL_trans( yy_current_state );
6107
6109
6110 if ( yy_next_state )
6111 {
6112 /* Consume the NUL. */
6113 yy_cp = ++(yy_c_buf_p);
6114 yy_current_state = yy_next_state;
6115 goto yy_match;
6116 }
6117
6118 else
6119 {
6120/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
6121 yy_cp = (yy_last_accepting_cpos);
6122 yy_current_state = (yy_last_accepting_state);
6123 goto yy_find_action;
6124 }
6125 }
6126
6127 else switch ( yy_get_next_buffer( ) )
6128 {
6130 {
6131 (yy_did_buffer_switch_on_eof) = 0;
6132
6133 if ( yywrap( ) )
6134 {
6135 /* Note: because we've taken care in
6136 * yy_get_next_buffer() to have set up
6137 * yytext, we can now set up
6138 * yy_c_buf_p so that if some total
6139 * hoser (like flex itself) wants to
6140 * call the scanner after we return the
6141 * YY_NULL, it'll still work - another
6142 * YY_NULL will get returned.
6143 */
6144 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
6145
6147 goto do_action;
6148 }
6149
6150 else
6151 {
6152 if ( ! (yy_did_buffer_switch_on_eof) )
6154 }
6155 break;
6156 }
6157
6159 (yy_c_buf_p) =
6160 (yytext_ptr) + yy_amount_of_matched_text;
6161
6162 yy_current_state = yy_get_previous_state( );
6163
6164 yy_cp = (yy_c_buf_p);
6166 goto yy_match;
6167
6168 case EOB_ACT_LAST_MATCH:
6169 (yy_c_buf_p) =
6170 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
6171
6172 yy_current_state = yy_get_previous_state( );
6173
6174 yy_cp = (yy_c_buf_p);
6176 goto yy_find_action;
6177 }
6178 break;
6179 }
6180
6181 default:
6183 "fatal flex scanner internal error--no action found" );
6184 } /* end of action switch */
6185 } /* end of scanning one token */
6186 } /* end of user's declarations */
6187} /* end of yylex */
6188/* %ok-for-header */
6189
6190/* %if-c++-only */
6191/* %not-for-header */
6192/* %ok-for-header */
6193
6194/* %endif */
6195
6196/* yy_get_next_buffer - try to read in a new buffer
6197 *
6198 * Returns a code representing an action:
6199 * EOB_ACT_LAST_MATCH -
6200 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
6201 * EOB_ACT_END_OF_FILE - end of file
6202 */
6203/* %if-c-only */
6204static int yy_get_next_buffer (void)
6205/* %endif */
6206/* %if-c++-only */
6207/* %endif */
6208{
6209 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
6210 char *source = (yytext_ptr);
6211 int number_to_move, i;
6212 int ret_val;
6213
6214 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
6216 "fatal flex scanner internal error--end of buffer missed" );
6217
6218 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
6219 { /* Don't try to fill the buffer, so this is an EOF. */
6220 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
6221 {
6222 /* We matched a single character, the EOB, so
6223 * treat this as a final EOF.
6224 */
6225 return EOB_ACT_END_OF_FILE;
6226 }
6227
6228 else
6229 {
6230 /* We matched some text prior to the EOB, first
6231 * process it.
6232 */
6233 return EOB_ACT_LAST_MATCH;
6234 }
6235 }
6236
6237 /* Try to read more data. */
6238
6239 /* First move last chars to start of buffer. */
6240 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
6241
6242 for ( i = 0; i < number_to_move; ++i )
6243 *(dest++) = *(source++);
6244
6245 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
6246 /* don't do the read, it's not guaranteed to return an EOF,
6247 * just force an EOF
6248 */
6249 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
6250
6251 else
6252 {
6253 int num_to_read =
6254 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
6255
6256 while ( num_to_read <= 0 )
6257 { /* Not enough room in the buffer - grow it. */
6258
6259 /* just a shorter name for the current buffer */
6261
6262 int yy_c_buf_p_offset =
6263 (int) ((yy_c_buf_p) - b->yy_ch_buf);
6264
6265 if ( b->yy_is_our_buffer )
6266 {
6267 int new_size = b->yy_buf_size * 2;
6268
6269 if ( new_size <= 0 )
6270 b->yy_buf_size += b->yy_buf_size / 8;
6271 else
6272 b->yy_buf_size *= 2;
6273
6274 b->yy_ch_buf = (char *)
6275 /* Include room in for 2 EOB chars. */
6276 yyrealloc( (void *) b->yy_ch_buf,
6277 (yy_size_t) (b->yy_buf_size + 2) );
6278 }
6279 else
6280 /* Can't grow it, we don't own it. */
6281 b->yy_ch_buf = NULL;
6282
6283 if ( ! b->yy_ch_buf )
6285 "fatal error - scanner input buffer overflow" );
6286
6287 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
6288
6289 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
6290 number_to_move - 1;
6291
6292 }
6293
6294 if ( num_to_read > YY_READ_BUF_SIZE )
6295 num_to_read = YY_READ_BUF_SIZE;
6296
6297 /* Read in more data. */
6298 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
6299 (yy_n_chars), num_to_read );
6300
6301 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6302 }
6303
6304 if ( (yy_n_chars) == 0 )
6305 {
6306 if ( number_to_move == YY_MORE_ADJ )
6307 {
6308 ret_val = EOB_ACT_END_OF_FILE;
6309 yyrestart( yyin );
6310 }
6311
6312 else
6313 {
6314 ret_val = EOB_ACT_LAST_MATCH;
6315 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
6317 }
6318 }
6319
6320 else
6321 ret_val = EOB_ACT_CONTINUE_SCAN;
6322
6323 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
6324 /* Extend the array by 50%, plus the number we really need. */
6325 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
6326 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
6327 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
6328 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
6329 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
6330 /* "- 2" to take care of EOB's */
6331 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
6332 }
6333
6334 (yy_n_chars) += number_to_move;
6335 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
6336 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
6337
6338 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
6339
6340 return ret_val;
6341}
6342
6343/* yy_get_previous_state - get the state just before the EOB char was reached */
6344
6345/* %if-c-only */
6346/* %not-for-header */
6347 static yy_state_type yy_get_previous_state (void)
6348/* %endif */
6349/* %if-c++-only */
6350/* %endif */
6351{
6352 yy_state_type yy_current_state;
6353 char *yy_cp;
6354
6355/* %% [15.0] code to get the start state into yy_current_state goes here */
6356 yy_current_state = (yy_start);
6357
6358 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
6359 {
6360/* %% [16.0] code to find the next state goes here */
6361 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
6362 if ( yy_accept[yy_current_state] )
6363 {
6364 (yy_last_accepting_state) = yy_current_state;
6365 (yy_last_accepting_cpos) = yy_cp;
6366 }
6367 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6368 {
6369 yy_current_state = (int) yy_def[yy_current_state];
6370 if ( yy_current_state >= 2408 )
6371 yy_c = yy_meta[yy_c];
6372 }
6373 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6374 }
6375
6376 return yy_current_state;
6377}
6378
6379/* yy_try_NUL_trans - try to make a transition on the NUL character
6380 *
6381 * synopsis
6382 * next_state = yy_try_NUL_trans( current_state );
6383 */
6384/* %if-c-only */
6385 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
6386/* %endif */
6387/* %if-c++-only */
6388/* %endif */
6389{
6390 int yy_is_jam;
6391 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
6392 char *yy_cp = (yy_c_buf_p);
6393
6394 YY_CHAR yy_c = 1;
6395 if ( yy_accept[yy_current_state] )
6396 {
6397 (yy_last_accepting_state) = yy_current_state;
6398 (yy_last_accepting_cpos) = yy_cp;
6399 }
6400 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6401 {
6402 yy_current_state = (int) yy_def[yy_current_state];
6403 if ( yy_current_state >= 2408 )
6404 yy_c = yy_meta[yy_c];
6405 }
6406 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6407 yy_is_jam = (yy_current_state == 2407);
6408
6409 return yy_is_jam ? 0 : yy_current_state;
6410}
6411
6412#ifndef YY_NO_UNPUT
6413/* %if-c-only */
6414
6415/* %endif */
6416#endif
6417
6418/* %if-c-only */
6419#ifndef YY_NO_INPUT
6420#ifdef __cplusplus
6421 static int yyinput (void)
6422#else
6423 static int input (void)
6424#endif
6425
6426/* %endif */
6427/* %if-c++-only */
6428/* %endif */
6429{
6430 int c;
6431
6432 *(yy_c_buf_p) = (yy_hold_char);
6433
6434 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
6435 {
6436 /* yy_c_buf_p now points to the character we want to return.
6437 * If this occurs *before* the EOB characters, then it's a
6438 * valid NUL; if not, then we've hit the end of the buffer.
6439 */
6440 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6441 /* This was really a NUL. */
6442 *(yy_c_buf_p) = '\0';
6443
6444 else
6445 { /* need more input */
6446 int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
6447 ++(yy_c_buf_p);
6448
6449 switch ( yy_get_next_buffer( ) )
6450 {
6451 case EOB_ACT_LAST_MATCH:
6452 /* This happens because yy_g_n_b()
6453 * sees that we've accumulated a
6454 * token and flags that we need to
6455 * try matching the token before
6456 * proceeding. But for input(),
6457 * there's no matching to consider.
6458 * So convert the EOB_ACT_LAST_MATCH
6459 * to EOB_ACT_END_OF_FILE.
6460 */
6461
6462 /* Reset buffer status. */
6463 yyrestart( yyin );
6464
6465 /*FALLTHROUGH*/
6466
6468 {
6469 if ( yywrap( ) )
6470 return 0;
6471
6472 if ( ! (yy_did_buffer_switch_on_eof) )
6474#ifdef __cplusplus
6475 return yyinput();
6476#else
6477 return input();
6478#endif
6479 }
6480
6482 (yy_c_buf_p) = (yytext_ptr) + offset;
6483 break;
6484 }
6485 }
6486 }
6487
6488 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
6489 *(yy_c_buf_p) = '\0'; /* preserve yytext */
6490 (yy_hold_char) = *++(yy_c_buf_p);
6491
6492/* %% [19.0] update BOL and yylineno */
6493
6494 return c;
6495}
6496/* %if-c-only */
6497#endif /* ifndef YY_NO_INPUT */
6498/* %endif */
6499
6505/* %if-c-only */
6506 void yyrestart (FILE * input_file )
6507/* %endif */
6508/* %if-c++-only */
6509/* %endif */
6510{
6511
6512 if ( ! YY_CURRENT_BUFFER ){
6516 }
6517
6518 yy_init_buffer( YY_CURRENT_BUFFER, input_file );
6520}
6521
6522/* %if-c++-only */
6523/* %endif */
6524
6529/* %if-c-only */
6531/* %endif */
6532/* %if-c++-only */
6533/* %endif */
6534{
6535
6536 /* TODO. We should be able to replace this entire function body
6537 * with
6538 * yypop_buffer_state();
6539 * yypush_buffer_state(new_buffer);
6540 */
6542 if ( YY_CURRENT_BUFFER == new_buffer )
6543 return;
6544
6545 if ( YY_CURRENT_BUFFER )
6546 {
6547 /* Flush out information for old buffer. */
6548 *(yy_c_buf_p) = (yy_hold_char);
6549 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6550 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6551 }
6552
6553 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6555
6556 /* We don't actually know whether we did this switch during
6557 * EOF (yywrap()) processing, but the only time this flag
6558 * is looked at is after yywrap() is called, so it's safe
6559 * to go ahead and always set it.
6560 */
6561 (yy_did_buffer_switch_on_eof) = 1;
6562}
6563
6564/* %if-c-only */
6565static void yy_load_buffer_state (void)
6566/* %endif */
6567/* %if-c++-only */
6568/* %endif */
6569{
6570 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6571 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6572/* %if-c-only */
6573 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6574/* %endif */
6575/* %if-c++-only */
6576/* %endif */
6577 (yy_hold_char) = *(yy_c_buf_p);
6578}
6579
6586/* %if-c-only */
6588/* %endif */
6589/* %if-c++-only */
6590/* %endif */
6591{
6593
6594 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6595 if ( ! b )
6596 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6597
6598 b->yy_buf_size = size;
6599
6600 /* yy_ch_buf has to be 2 characters longer than the size given because
6601 * we need to put in 2 end-of-buffer characters.
6602 */
6603 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
6604 if ( ! b->yy_ch_buf )
6605 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6606
6607 b->yy_is_our_buffer = 1;
6608
6609 yy_init_buffer( b, file );
6610
6611 return b;
6612}
6613
6614/* %if-c++-only */
6615/* %endif */
6616
6621/* %if-c-only */
6623/* %endif */
6624/* %if-c++-only */
6625/* %endif */
6626{
6627
6628 if ( ! b )
6629 return;
6630
6631 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6633
6634 if ( b->yy_is_our_buffer )
6635 yyfree( (void *) b->yy_ch_buf );
6636
6637 yyfree( (void *) b );
6638}
6639
6640/* Initializes or reinitializes a buffer.
6641 * This function is sometimes called more than once on the same buffer,
6642 * such as during a yyrestart() or at EOF.
6643 */
6644/* %if-c-only */
6645 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
6646/* %endif */
6647/* %if-c++-only */
6648/* %endif */
6649
6650{
6651 int oerrno = errno;
6652
6653 yy_flush_buffer( b );
6654
6655/* %if-c-only */
6656 b->yy_input_file = file;
6657/* %endif */
6658/* %if-c++-only */
6659/* %endif */
6660 b->yy_fill_buffer = 1;
6661
6662 /* If b is the current buffer, then yy_init_buffer was _probably_
6663 * called from yyrestart() or through yy_get_next_buffer.
6664 * In that case, we don't want to reset the lineno or column.
6665 */
6666 if (b != YY_CURRENT_BUFFER){
6667 b->yy_bs_lineno = 1;
6668 b->yy_bs_column = 0;
6669 }
6670
6671/* %if-c-only */
6672
6673 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
6674
6675/* %endif */
6676/* %if-c++-only */
6677/* %endif */
6678 errno = oerrno;
6679}
6680
6685/* %if-c-only */
6687/* %endif */
6688/* %if-c++-only */
6689/* %endif */
6690{
6691 if ( ! b )
6692 return;
6693
6694 b->yy_n_chars = 0;
6695
6696 /* We always need two end-of-buffer characters. The first causes
6697 * a transition to the end-of-buffer state. The second causes
6698 * a jam in that state.
6699 */
6702
6703 b->yy_buf_pos = &b->yy_ch_buf[0];
6704
6705 b->yy_at_bol = 1;
6707
6708 if ( b == YY_CURRENT_BUFFER )
6710}
6711
6712/* %if-c-or-c++ */
6719/* %if-c-only */
6721/* %endif */
6722/* %if-c++-only */
6723/* %endif */
6724{
6725 if (new_buffer == NULL)
6726 return;
6727
6729
6730 /* This block is copied from yy_switch_to_buffer. */
6731 if ( YY_CURRENT_BUFFER )
6732 {
6733 /* Flush out information for old buffer. */
6734 *(yy_c_buf_p) = (yy_hold_char);
6735 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6736 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6737 }
6738
6739 /* Only push if top exists. Otherwise, replace top. */
6741 (yy_buffer_stack_top)++;
6742 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6743
6744 /* copied from yy_switch_to_buffer. */
6746 (yy_did_buffer_switch_on_eof) = 1;
6747}
6748/* %endif */
6749
6750/* %if-c-or-c++ */
6755/* %if-c-only */
6757/* %endif */
6758/* %if-c++-only */
6759/* %endif */
6760{
6761 if (!YY_CURRENT_BUFFER)
6762 return;
6763
6766 if ((yy_buffer_stack_top) > 0)
6767 --(yy_buffer_stack_top);
6768
6769 if (YY_CURRENT_BUFFER) {
6771 (yy_did_buffer_switch_on_eof) = 1;
6772 }
6773}
6774/* %endif */
6775
6776/* %if-c-or-c++ */
6777/* Allocates the stack if it does not exist.
6778 * Guarantees space for at least one push.
6779 */
6780/* %if-c-only */
6781static void yyensure_buffer_stack (void)
6782/* %endif */
6783/* %if-c++-only */
6784/* %endif */
6785{
6786 yy_size_t num_to_alloc;
6787
6788 if (!(yy_buffer_stack)) {
6789
6790 /* First allocation is just for 2 elements, since we don't know if this
6791 * scanner will even need a stack. We use 2 instead of 1 to avoid an
6792 * immediate realloc on the next call.
6793 */
6794 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
6795 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
6796 (num_to_alloc * sizeof(struct yy_buffer_state*)
6797 );
6798 if ( ! (yy_buffer_stack) )
6799 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6800
6801 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6802
6803 (yy_buffer_stack_max) = num_to_alloc;
6804 (yy_buffer_stack_top) = 0;
6805 return;
6806 }
6807
6808 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6809
6810 /* Increase the buffer to prepare for a possible push. */
6811 yy_size_t grow_size = 8 /* arbitrary grow size */;
6812
6813 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6814 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
6815 ((yy_buffer_stack),
6816 num_to_alloc * sizeof(struct yy_buffer_state*)
6817 );
6818 if ( ! (yy_buffer_stack) )
6819 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6820
6821 /* zero only the new slots.*/
6822 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6823 (yy_buffer_stack_max) = num_to_alloc;
6824 }
6825}
6826/* %endif */
6827
6828/* %if-c-only */
6836{
6838
6839 if ( size < 2 ||
6840 base[size-2] != YY_END_OF_BUFFER_CHAR ||
6841 base[size-1] != YY_END_OF_BUFFER_CHAR )
6842 /* They forgot to leave room for the EOB's. */
6843 return NULL;
6844
6845 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6846 if ( ! b )
6847 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
6848
6849 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
6850 b->yy_buf_pos = b->yy_ch_buf = base;
6851 b->yy_is_our_buffer = 0;
6852 b->yy_input_file = NULL;
6853 b->yy_n_chars = b->yy_buf_size;
6854 b->yy_is_interactive = 0;
6855 b->yy_at_bol = 1;
6856 b->yy_fill_buffer = 0;
6858
6860
6861 return b;
6862}
6863/* %endif */
6864
6865/* %if-c-only */
6874YY_BUFFER_STATE yy_scan_string (const char * yystr )
6875{
6876
6877 return yy_scan_bytes( yystr, (int) strlen(yystr) );
6878}
6879/* %endif */
6880
6881/* %if-c-only */
6889YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
6890{
6892 char *buf;
6893 yy_size_t n;
6894 int i;
6895
6896 /* Get memory for full buffer, including space for trailing EOB's. */
6897 n = (yy_size_t) (_yybytes_len + 2);
6898 buf = (char *) yyalloc( n );
6899 if ( ! buf )
6900 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
6901
6902 for ( i = 0; i < _yybytes_len; ++i )
6903 buf[i] = yybytes[i];
6904
6905 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6906
6907 b = yy_scan_buffer( buf, n );
6908 if ( ! b )
6909 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
6910
6911 /* It's okay to grow etc. this buffer, and we should throw it
6912 * away when we're done.
6913 */
6914 b->yy_is_our_buffer = 1;
6915
6916 return b;
6917}
6918/* %endif */
6919
6920#ifndef YY_EXIT_FAILURE
6921#define YY_EXIT_FAILURE 2
6922#endif
6923
6924/* %if-c-only */
6925static void yynoreturn yy_fatal_error (const char* msg )
6926{
6927 fprintf( stderr, "%s\n", msg );
6928 exit( YY_EXIT_FAILURE );
6929}
6930/* %endif */
6931/* %if-c++-only */
6932/* %endif */
6933
6934/* Redefine yyless() so it works in section 3 code. */
6935
6936#undef yyless
6937#define yyless(n) \
6938 do \
6939 { \
6940 /* Undo effects of setting up yytext. */ \
6941 int yyless_macro_arg = (n); \
6942 YY_LESS_LINENO(yyless_macro_arg);\
6943 yytext[yyleng] = (yy_hold_char); \
6944 (yy_c_buf_p) = yytext + yyless_macro_arg; \
6945 (yy_hold_char) = *(yy_c_buf_p); \
6946 *(yy_c_buf_p) = '\0'; \
6947 yyleng = yyless_macro_arg; \
6948 } \
6949 while ( 0 )
6950
6951/* Accessor methods (get/set functions) to struct members. */
6952
6953/* %if-c-only */
6954/* %if-reentrant */
6955/* %endif */
6956
6961{
6962
6963 return yylineno;
6964}
6965
6969FILE *yyget_in (void)
6970{
6971 return yyin;
6972}
6973
6977FILE *yyget_out (void)
6978{
6979 return yyout;
6980}
6981
6985int yyget_leng (void)
6986{
6987 return yyleng;
6988}
6989
6993
6994char *yyget_text (void)
6995{
6996 return yytext;
6997}
6998
6999/* %if-reentrant */
7000/* %endif */
7001
7006void yyset_lineno (int _line_number )
7007{
7008
7009 yylineno = _line_number;
7010}
7011
7018void yyset_in (FILE * _in_str )
7019{
7020 yyin = _in_str ;
7021}
7022
7023void yyset_out (FILE * _out_str )
7024{
7025 yyout = _out_str ;
7026}
7027
7028int yyget_debug (void)
7029{
7030 return yy_flex_debug;
7031}
7032
7033void yyset_debug (int _bdebug )
7034{
7035 yy_flex_debug = _bdebug ;
7036}
7037
7038/* %endif */
7039
7040/* %if-reentrant */
7041/* %if-bison-bridge */
7042/* %endif */
7043/* %endif if-c-only */
7044
7045/* %if-c-only */
7046static int yy_init_globals (void)
7047{
7048 /* Initialization is the same as for the non-reentrant scanner.
7049 * This function is called from yylex_destroy(), so don't allocate here.
7050 */
7051
7052 (yy_buffer_stack) = NULL;
7053 (yy_buffer_stack_top) = 0;
7054 (yy_buffer_stack_max) = 0;
7055 (yy_c_buf_p) = NULL;
7056 (yy_init) = 0;
7057 (yy_start) = 0;
7058
7059/* Defined in main.c */
7060#ifdef YY_STDINIT
7061 yyin = stdin;
7062 yyout = stdout;
7063#else
7064 yyin = NULL;
7065 yyout = NULL;
7066#endif
7067
7068 /* For future reference: Set errno on error, since we are called by
7069 * yylex_init()
7070 */
7071 return 0;
7072}
7073/* %endif */
7074
7075/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
7076/* yylex_destroy is for both reentrant and non-reentrant scanners. */
7078{
7079
7080 /* Pop the buffer stack, destroying each element. */
7081 while(YY_CURRENT_BUFFER){
7085 }
7086
7087 /* Destroy the stack itself. */
7088 yyfree((yy_buffer_stack) );
7089 (yy_buffer_stack) = NULL;
7090
7091 /* Reset the globals. This is important in a non-reentrant scanner so the next time
7092 * yylex() is called, initialization will occur. */
7093 yy_init_globals( );
7094
7095/* %if-reentrant */
7096/* %endif */
7097 return 0;
7098}
7099/* %endif */
7100
7101/*
7102 * Internal utility routines.
7103 */
7104
7105#ifndef yytext_ptr
7106static void yy_flex_strncpy (char* s1, const char * s2, int n )
7107{
7108
7109 int i;
7110 for ( i = 0; i < n; ++i )
7111 s1[i] = s2[i];
7112}
7113#endif
7114
7115#ifdef YY_NEED_STRLEN
7116static int yy_flex_strlen (const char * s )
7117{
7118 int n;
7119 for ( n = 0; s[n]; ++n )
7120 ;
7121
7122 return n;
7123}
7124#endif
7125
7126void *yyalloc (yy_size_t size )
7127{
7128 return malloc(size);
7129}
7130
7131void *yyrealloc (void * ptr, yy_size_t size )
7132{
7133
7134 /* The cast to (char *) in the following accommodates both
7135 * implementations that use char* generic pointers, and those
7136 * that use void* generic pointers. It works with the latter
7137 * because both ANSI C and C++ allow castless assignment from
7138 * any pointer type to void*, and deal with argument conversions
7139 * as though doing an assignment.
7140 */
7141 return realloc(ptr, size);
7142}
7143
7144void yyfree (void * ptr )
7145{
7146 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
7147}
7148
7149/* %if-tables-serialization definitions */
7150/* %define-yytables The name for this specific scanner's tables. */
7151#define YYTABLES_NAME "yytables"
7152/* %endif */
7153
7154/* %ok-for-header */
7155
7156#line 2684 "dhcp6_lexer.ll"
7157
7158
7159using namespace isc::dhcp;
7160
7161void
7162Parser6Context::scanStringBegin(const std::string& str, ParserType parser_type)
7163{
7164 start_token_flag = true;
7165 start_token_value = parser_type;
7166
7167 file_ = "<string>";
7168 sfile_ = 0;
7169 loc_.initialize(&file_);
7170 yy_flex_debug = trace_scanning_;
7171 YY_BUFFER_STATE buffer;
7172 buffer = parser6__scan_bytes(str.c_str(), str.size());
7173 if (!buffer) {
7174 fatal("cannot scan string");
7175 /* fatal() throws an exception so this can't be reached */
7176 }
7177}
7178
7179void
7181 const std::string& filename,
7182 ParserType parser_type)
7183{
7184 start_token_flag = true;
7185 start_token_value = parser_type;
7186
7187 file_ = filename;
7188 sfile_ = f;
7189 loc_.initialize(&file_);
7190 yy_flex_debug = trace_scanning_;
7191 YY_BUFFER_STATE buffer;
7192
7193 /* See dhcp6_lexer.cc header for available definitions */
7194 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
7195 if (!buffer) {
7196 fatal("cannot scan file " + filename);
7197 }
7198 parser6__switch_to_buffer(buffer);
7199}
7200
7201void
7203 if (sfile_)
7204 fclose(sfile_);
7205 sfile_ = 0;
7206 static_cast<void>(parser6_lex_destroy());
7207 /* Close files */
7208 while (!sfiles_.empty()) {
7209 FILE* f = sfiles_.back();
7210 if (f) {
7211 fclose(f);
7212 }
7213 sfiles_.pop_back();
7214 }
7215 /* Delete states */
7216 while (!states_.empty()) {
7217 parser6__delete_buffer(states_.back());
7218 states_.pop_back();
7219 }
7220}
7221
7222void
7223Parser6Context::includeFile(const std::string& filename) {
7224 if (states_.size() > 10) {
7225 fatal("Too many nested include.");
7226 }
7227
7228 FILE* f = fopen(filename.c_str(), "r");
7229 if (!f) {
7230 fatal("Can't open include file " + filename);
7231 }
7232 if (sfile_) {
7233 sfiles_.push_back(sfile_);
7234 }
7235 sfile_ = f;
7236 states_.push_back(YY_CURRENT_BUFFER);
7237 YY_BUFFER_STATE buffer;
7238 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
7239 if (!buffer) {
7240 fatal( "Can't scan include file " + filename);
7241 }
7242 parser6__switch_to_buffer(buffer);
7243 files_.push_back(file_);
7244 file_ = filename;
7245 locs_.push_back(loc_);
7246 loc_.initialize(&file_);
7247
7248 BEGIN(INITIAL);
7249}
7250
7251namespace {
7253class Dummy {
7254 /* cppcheck-suppress unusedPrivateFunction */
7255 void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
7256};
7257}
7258#endif /* !__clang_analyzer__ */
7259
#define YY_DECL
#define YY_NEW_FILE
unsigned char flex_uint8_t
#define COMMENT
#define yyleng
#define YY_EXTRA_TYPE
#define DIR_INCLUDE
#define yyout
short int flex_int16_t
#define yytext
unsigned int flex_uint32_t
#define YY_BREAK
#define yynoreturn
int yy_act
struct yy_buffer_state * YY_BUFFER_STATE
#define YY_BUFFER_NEW
#define YY_RESTORE_YY_MORE_OFFSET
#define yylineno
#define YY_BUFFER_NORMAL
char * yy_cp
#define YY_MORE_ADJ
#define YY_RULE_SETUP
#define yy_flex_debug
#define DIR_EXIT
#define yytext_ptr
signed char flex_int8_t
#define EOB_ACT_END_OF_FILE
#define YY_CURRENT_BUFFER_LVALUE
int flex_int32_t
#define yyin
#define YY_START
int yy_state_type
#define YY_CURRENT_BUFFER
#define INITIAL
char * yy_bp
#define YY_READ_BUF_SIZE
#define ECHO
#define YY_END_OF_BUFFER
#define BEGIN
#define YY_END_OF_BUFFER_CHAR
unsigned short int flex_uint16_t
flex_uint8_t YY_CHAR
#define YY_DO_BEFORE_ACTION
#define EOB_ACT_LAST_MATCH
size_t yy_size_t
#define YY_BUFFER_EOF_PENDING
#define EOB_ACT_CONTINUE_SCAN
#define YY_BUF_SIZE
#define YY_EXIT_FAILURE
#define DIR_ENTER
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_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.
int yy_bs_lineno
The line count.
flex_int32_t yy_verify