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