Kea 2.7.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;
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
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 226
695#define YY_END_OF_BUFFER 227
696/* This struct is not used in this scanner,
697 but its presence is necessary. */
698struct yy_trans_info
699 {
702 };
703static const flex_int16_t yy_accept[2202] =
704 { 0,
705 219, 219, 0, 0, 0, 0, 0, 0, 0, 0,
706 227, 225, 10, 11, 225, 1, 219, 216, 219, 219,
707 225, 218, 217, 225, 225, 225, 225, 225, 212, 213,
708 225, 225, 225, 214, 215, 5, 5, 5, 225, 225,
709 225, 10, 11, 0, 0, 207, 0, 0, 0, 0,
710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
712 0, 0, 0, 0, 0, 0, 0, 0, 1, 219,
713 219, 0, 218, 219, 3, 2, 6, 0, 219, 0,
714 0, 0, 0, 0, 0, 4, 0, 0, 9, 0,
715
716 208, 0, 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 0, 0, 0, 0, 0, 210, 0, 0, 0,
718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
725 0, 0, 8, 0, 0, 0, 176, 0, 0, 177,
726
727 0, 0, 0, 0, 0, 0, 0, 0, 209, 211,
728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
731 0, 0, 0, 0, 0, 128, 0, 0, 0, 0,
732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
737
738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739 0, 0, 0, 224, 222, 0, 221, 220, 0, 0,
740 0, 0, 0, 0, 175, 0, 0, 23, 0, 22,
741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
743 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 223, 220, 0, 0, 0, 0, 0, 24,
754 0, 0, 26, 0, 0, 0, 0, 0, 0, 0,
755 0, 0, 0, 0, 133, 0, 0, 0, 0, 0,
756 0, 111, 0, 0, 0, 0, 0, 0, 0, 161,
757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
758 0, 56, 0, 0, 0, 0, 0, 0, 0, 0,
759
760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
761 0, 0, 0, 0, 0, 0, 0, 0, 0, 110,
762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
763 0, 0, 0, 0, 0, 121, 0, 0, 57, 0,
764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
767 0, 0, 155, 0, 180, 0, 50, 0, 54, 0,
768 0, 0, 0, 0, 0, 32, 29, 28, 0, 0,
769 0, 0, 0, 169, 0, 0, 0, 0, 0, 0,
770
771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
773 0, 0, 0, 0, 0, 0, 0, 0, 0, 146,
774 0, 0, 0, 0, 0, 0, 179, 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 52, 0, 0, 27, 0, 0, 0, 0, 0, 0,
778 0, 0, 0, 0, 0, 0, 0, 0, 114, 0,
779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
780 0, 170, 0, 0, 0, 0, 0, 0, 0, 0,
781
782 0, 0, 0, 0, 0, 165, 0, 0, 0, 0,
783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
784 7, 30, 0, 0, 0, 0, 0, 0, 0, 0,
785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
791 0, 148, 0, 0, 0, 0, 0, 0, 0, 0,
792
793 0, 0, 145, 0, 0, 0, 0, 0, 0, 0,
794 0, 0, 0, 0, 0, 0, 116, 0, 0, 0,
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
797 0, 0, 0, 0, 125, 0, 0, 0, 0, 0,
798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
800 124, 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, 0, 0, 0,
803
804 0, 0, 0, 164, 0, 0, 0, 0, 0, 0,
805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
806 173, 142, 0, 0, 0, 0, 0, 0, 0, 147,
807 51, 0, 0, 0, 0, 0, 0, 65, 0, 0,
808 0, 0, 0, 0, 0, 0, 149, 0, 0, 58,
809 122, 0, 0, 0, 0, 0, 0, 0, 0, 0,
810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
812 0, 0, 0, 0, 105, 0, 0, 0, 0, 0,
813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
814
815 0, 0, 0, 0, 0, 200, 0, 0, 0, 0,
816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
819 0, 0, 0, 0, 0, 163, 0, 0, 0, 0,
820 0, 0, 0, 74, 0, 0, 0, 0, 0, 0,
821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
822 0, 0, 0, 0, 0, 0, 0, 0, 0, 55,
823 0, 115, 0, 0, 0, 160, 0, 0, 0, 0,
824 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
825
826 0, 0, 0, 0, 0, 0, 0, 0, 0, 151,
827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
829 0, 87, 0, 0, 0, 0, 73, 0, 0, 0,
830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
831 0, 0, 0, 0, 0, 0, 0, 0, 0, 201,
832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
833 0, 0, 0, 0, 0, 0, 0, 0, 0, 126,
834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
836
837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
838 0, 0, 0, 0, 0, 36, 0, 0, 0, 0,
839 0, 0, 0, 0, 0, 0, 0, 15, 0, 0,
840 174, 13, 0, 0, 0, 0, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
843 0, 0, 0, 0, 0, 0, 0, 0, 166, 0,
844 0, 0, 0, 0, 0, 0, 0, 0, 0, 150,
845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
846 0, 0, 0, 0, 0, 0, 0, 0, 0, 162,
847
848 178, 0, 35, 0, 0, 0, 0, 0, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
850 19, 0, 113, 0, 0, 108, 0, 0, 0, 172,
851 0, 0, 53, 0, 117, 199, 0, 0, 0, 0,
852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
853 0, 85, 0, 0, 0, 0, 0, 0, 0, 138,
854 139, 0, 0, 0, 0, 0, 0, 0, 0, 0,
855 0, 0, 0, 0, 112, 0, 0, 0, 75, 0,
856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
858
859 0, 0, 0, 0, 168, 0, 0, 0, 0, 0,
860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
861 0, 0, 0, 134, 0, 0, 0, 0, 0, 0,
862 0, 0, 0, 0, 0, 109, 0, 0, 0, 0,
863 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,
864 0, 0, 0, 0, 16, 0, 14, 0, 0, 196,
865 195, 0, 0, 0, 0, 0, 0, 0, 0, 0,
866 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
867 154, 0, 0, 0, 0, 0, 0, 0, 0, 0,
868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
869
870 0, 189, 0, 0, 198, 0, 0, 0, 0, 0,
871 0, 0, 0, 0, 0, 0, 127, 0, 159, 0,
872 41, 0, 0, 59, 0, 0, 0, 0, 0, 0,
873 0, 0, 0, 0, 18, 0, 0, 0, 0, 0,
874 88, 0, 129, 61, 83, 0, 0, 167, 0, 0,
875 158, 0, 0, 0, 0, 0, 0, 0, 0, 0,
876 0, 0, 0, 0, 72, 0, 123, 0, 0, 0,
877 0, 0, 0, 0, 141, 0, 0, 0, 205, 0,
878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
879 0, 0, 0, 0, 0, 120, 0, 0, 0, 0,
880
881 181, 0, 0, 0, 0, 0, 0, 0, 0, 0,
882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
884 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,
885 0, 0, 0, 0, 0, 0, 0, 0, 156, 0,
886 0, 0, 62, 0, 0, 0, 0, 0, 0, 0,
887 152, 46, 0, 0, 0, 194, 33, 0, 0, 0,
888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
889 0, 12, 0, 0, 0, 0, 0, 0, 0, 0,
890 0, 44, 0, 0, 0, 43, 0, 0, 17, 0,
891
892 0, 0, 71, 0, 0, 0, 0, 0, 144, 143,
893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
895 0, 0, 79, 0, 0, 0, 0, 0, 140, 0,
896 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,
897 0, 0, 0, 0, 0, 0, 0, 118, 0, 0,
898 0, 0, 0, 171, 0, 0, 0, 45, 0, 0,
899 0, 0, 0, 0, 0, 0, 0, 0, 190, 0,
900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
901 0, 0, 0, 0, 0, 107, 0, 66, 0, 0,
902
903 0, 0, 0, 100, 0, 0, 31, 0, 47, 0,
904 0, 0, 0, 0, 0, 0, 0, 104, 0, 0,
905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
906 0, 0, 0, 0, 0, 0, 0, 187, 0, 0,
907 0, 0, 157, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 0, 0, 69, 0, 67, 0, 0, 0,
909 0, 63, 192, 0, 0, 0, 0, 0, 0, 0,
910 0, 0, 0, 0, 0, 91, 0, 0, 0, 0,
911 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,
912 34, 0, 0, 0, 0, 0, 0, 0, 0, 193,
913
914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
917 197, 0, 0, 0, 0, 0, 0, 0, 0, 0,
918 0, 0, 0, 186, 0, 81, 0, 80, 0, 76,
919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
920 0, 0, 0, 0, 0, 0, 101, 0, 137, 0,
921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
922 0, 119, 0, 0, 0, 185, 0, 0, 0, 0,
923 0, 70, 0, 86, 0, 64, 0, 0, 130, 0,
924
925 0, 0, 0, 0, 0, 0, 0, 106, 0, 0,
926 0, 0, 0, 0, 0, 0, 0, 0, 97, 0,
927 0, 0, 0, 0, 42, 0, 0, 0, 0, 0,
928 0, 0, 0, 0, 0, 0, 0, 0, 68, 0,
929 0, 0, 0, 0, 0, 0, 0, 0, 95, 0,
930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
932 0, 0, 0, 0, 0, 0, 0, 103, 48, 0,
933 0, 0, 96, 0, 0, 0, 0, 191, 0, 0,
934 0, 0, 203, 206, 78, 77, 0, 135, 153, 131,
935
936 0, 0, 0, 0, 0, 0, 0, 102, 0, 0,
937 92, 0, 0, 0, 0, 0, 0, 0, 0, 183,
938 0, 0, 0, 0, 0, 0, 188, 0, 0, 94,
939 0, 84, 0, 0, 0, 0, 0, 0, 132, 0,
940 0, 0, 0, 0, 0, 0, 0, 182, 0, 0,
941 21, 204, 0, 0, 0, 0, 0, 0, 0, 0,
942 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,
943 0, 0, 0, 0, 39, 37, 0, 0, 0, 0,
944 98, 0, 0, 136, 0, 90, 0, 99, 0, 0,
945 0, 0, 0, 0, 0, 89, 0, 184, 38, 202,
946
947 0
948 } ;
949
950static const YY_CHAR yy_ec[256] =
951 { 0,
952 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
953 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
954 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
955 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
956 5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
957 14, 17, 14, 18, 14, 14, 14, 19, 5, 20,
958 5, 21, 22, 5, 23, 24, 25, 26, 27, 28,
959 5, 29, 30, 31, 32, 33, 5, 34, 35, 36,
960 5, 37, 38, 39, 40, 41, 42, 43, 44, 5,
961 45, 46, 47, 5, 48, 5, 49, 50, 51, 52,
962
963 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
964 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
965 73, 74, 75, 5, 76, 5, 5, 5, 5, 5,
966 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
967 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
968 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
969 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
970 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
971 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
972 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
973
974 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
975 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
976 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
977 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
978 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
979 5, 5, 5, 5, 5
980 } ;
981
982static const YY_CHAR yy_meta[77] =
983 { 0,
984 1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
985 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
986 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
987 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
988 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
989 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
990 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
991 1, 1, 1, 1, 1, 1
992 } ;
993
994static const flex_int16_t yy_base[2210] =
995 { 0,
996 0, 75, 21, 28, 39, 47, 53, 61, 95, 103,
997 2648, 2649, 31, 2644, 151, 0, 216, 2649, 223, 230,
998 13, 237, 2649, 2624, 124, 17, 4, 34, 2649, 2649,
999 23, 43, 64, 2649, 2649, 2649, 56, 2632, 2582, 0,
1000 2622, 106, 2639, 2, 268, 2649, 85, 90, 2585, 2606,
1001 98, 77, 2606, 235, 231, 97, 207, 298, 226, 294,
1002 293, 62, 254, 203, 223, 2585, 252, 306, 338, 196,
1003 319, 2568, 21, 339, 361, 332, 2587, 324, 0, 405,
1004 421, 435, 445, 450, 2649, 0, 2649, 464, 469, 240,
1005 256, 244, 323, 336, 272, 2649, 2584, 2628, 2649, 272,
1006
1007 2649, 463, 339, 347, 2582, 2626, 337, 17, 372, 372,
1008 2620, 379, 376, 390, 377, 2624, 0, 527, 428, 2563,
1009 440, 2562, 2563, 2569, 379, 2555, 2556, 2561, 76, 2571,
1010 2564, 2554, 422, 438, 63, 434, 2546, 2607, 16, 2549,
1011 2605, 2542, 180, 2563, 2563, 2557, 424, 2550, 2548, 2549,
1012 2541, 2546, 2540, 451, 395, 2537, 2536, 444, 2592, 2536,
1013 362, 2548, 2547, 2535, 497, 2536, 452, 2548, 2545, 2546,
1014 218, 2544, 2582, 2581, 471, 459, 2525, 2529, 465, 2525,
1015 2517, 2534, 2526, 2528, 0, 489, 503, 466, 499, 507,
1016 496, 2524, 2649, 535, 535, 2519, 2649, 501, 527, 2649,
1017
1018 2576, 542, 545, 2575, 544, 2574, 538, 2573, 2649, 2649,
1019 587, 2515, 550, 2528, 2520, 2524, 2525, 2505, 2516, 2518,
1020 2517, 521, 462, 2558, 2519, 2500, 2497, 2505, 2511, 2499,
1021 2510, 2501, 2510, 2510, 2505, 2497, 2499, 2502, 2482, 2486,
1022 2500, 2492, 2482, 2485, 2499, 2649, 2485, 2493, 82, 2534,
1023 2477, 2486, 2531, 2475, 2485, 2528, 563, 2484, 2526, 2468,
1024 2470, 2481, 2522, 556, 2478, 2458, 2473, 2465, 2469, 479,
1025 2460, 2458, 360, 2458, 2464, 2455, 2454, 2467, 2451, 2462,
1026 2466, 2465, 2459, 527, 2466, 2461, 2444, 2459, 2445, 2453,
1027 2457, 2438, 2454, 2440, 2446, 2453, 2435, 527, 2440, 2437,
1028
1029 2436, 610, 2435, 2430, 2444, 2443, 565, 2442, 2445, 2427,
1030 2435, 2423, 567, 2649, 2649, 571, 2649, 2649, 2421, 544,
1031 575, 2471, 592, 2482, 2649, 569, 593, 2649, 2481, 2649,
1032 2475, 636, 2434, 582, 2411, 2430, 2413, 2430, 2469, 2426,
1033 2416, 2471, 2423, 2426, 2417, 2420, 2406, 2417, 617, 2459,
1034 2414, 2411, 2412, 614, 2460, 2392, 2404, 2399, 2396, 2392,
1035 2394, 2397, 2447, 2401, 2445, 2388, 636, 2401, 2401, 2384,
1036 2385, 2398, 2396, 2394, 2394, 2393, 2388, 2395, 2390, 2375,
1037 601, 2384, 2387, 2382, 604, 2381, 2377, 2430, 592, 592,
1038 2386, 2423, 2370, 2363, 2378, 2369, 2376, 2357, 2374, 2366,
1039
1040 2362, 2367, 637, 2417, 2367, 616, 2368, 2368, 2366, 50,
1041 2356, 2368, 610, 2343, 2344, 2357, 2347, 2339, 2343, 2357,
1042 622, 2343, 2355, 2354, 2353, 2348, 2393, 2350, 2349, 2348,
1043 2347, 2330, 2338, 2391, 2347, 2389, 2326, 2387, 2326, 671,
1044 2339, 2337, 2649, 2649, 2337, 632, 2377, 2381, 2380, 2649,
1045 2379, 630, 2649, 644, 695, 2335, 657, 2377, 2371, 2321,
1046 2323, 2325, 2312, 2309, 2649, 2314, 2307, 2319, 2322, 2309,
1047 2308, 2649, 2318, 674, 2309, 2306, 2318, 629, 2303, 2649,
1048 2354, 2311, 2296, 2298, 2309, 2307, 2307, 2301, 685, 2291,
1049 2345, 2649, 2289, 2305, 2342, 2346, 2299, 2293, 2295, 2296,
1050
1051 2280, 2289, 2334, 2282, 2281, 2276, 2275, 2277, 2273, 2269,
1052 639, 2288, 2262, 2269, 2274, 2267, 2283, 2320, 2324, 2649,
1053 2266, 2262, 694, 2270, 2269, 2263, 2256, 2255, 2269, 2269,
1054 2257, 2253, 2258, 2254, 2249, 2649, 2258, 2308, 2649, 2247,
1055 2246, 2239, 2299, 2298, 2240, 2239, 2244, 2253, 2247, 2241,
1056 2250, 720, 2290, 2234, 2229, 2287, 2224, 2230, 686, 2244,
1057 2237, 2241, 2224, 2285, 2223, 2223, 2277, 2219, 2220, 2219,
1058 2217, 2234, 2649, 2230, 2649, 2270, 2649, 2218, 2649, 2228,
1059 2267, 2266, 2223, 2269, 708, 2649, 2649, 2649, 676, 693,
1060 670, 2206, 727, 2649, 211, 2224, 2204, 2214, 2259, 2258,
1061
1062 2200, 2210, 2255, 2197, 2204, 2197, 2205, 2198, 2207, 2189,
1063 2189, 2204, 2203, 2187, 650, 2201, 2200, 2184, 2199, 2181,
1064 2231, 2193, 2236, 2177, 2179, 2191, 2191, 2189, 2189, 2649,
1065 2174, 2186, 2178, 2184, 2175, 2183, 2649, 2168, 2179, 2183,
1066 2165, 2177, 2169, 664, 2160, 2159, 2153, 2158, 2155, 2170,
1067 2169, 2170, 2149, 2159, 2165, 2211, 2163, 2162, 2154, 2145,
1068 2649, 2146, 2148, 2649, 2143, 2149, 2154, 2196, 747, 2195,
1069 2137, 2193, 2137, 2140, 2138, 2140, 2131, 2146, 2649, 2144,
1070 2130, 748, 2127, 2143, 2140, 2135, 2131, 2179, 2128, 2135,
1071 2176, 2649, 2119, 2117, 2131, 2134, 2119, 2170, 2169, 2113,
1072
1073 2167, 2124, 2108, 2164, 2163, 2649, 2105, 2119, 2118, 387,
1074 2119, 2118, 2115, 2099, 2155, 2116, 2111, 2100, 2102, 2093,
1075 2649, 2649, 691, 700, 719, 716, 733, 2097, 2092, 2109,
1076 2101, 2088, 2082, 2094, 2093, 2101, 2145, 2096, 713, 26,
1077 27, 200, 214, 278, 385, 403, 466, 511, 546, 567,
1078 592, 631, 623, 721, 709, 704, 715, 758, 710, 711,
1079 711, 716, 722, 764, 725, 775, 729, 732, 728, 720,
1080 735, 740, 737, 734, 741, 740, 728, 743, 741, 749,
1081 788, 747, 796, 797, 738, 751, 737, 747, 797, 752,
1082 805, 2649, 806, 759, 757, 759, 755, 749, 765, 813,
1083
1084 809, 769, 2649, 759, 760, 759, 772, 762, 775, 822,
1085 778, 763, 825, 826, 766, 781, 2649, 775, 769, 764,
1086 775, 788, 779, 768, 774, 832, 793, 777, 777, 790,
1087 837, 781, 788, 800, 795, 800, 797, 844, 783, 795,
1088 796, 803, 794, 791, 2649, 860, 814, 815, 803, 817,
1089 807, 810, 821, 812, 818, 819, 847, 839, 868, 869,
1090 843, 816, 830, 812, 819, 833, 881, 835, 832, 830,
1091 2649, 834, 829, 844, 841, 827, 829, 848, 845, 845,
1092 847, 835, 842, 843, 853, 895, 859, 898, 858, 848,
1093 861, 847, 846, 852, 854, 849, 850, 856, 872, 855,
1094
1095 912, 864, 914, 2649, 875, 867, 878, 876, 924, 863,
1096 865, 880, 881, 869, 867, 932, 886, 872, 878, 876,
1097 2649, 2649, 892, 891, 892, 897, 885, 895, 897, 2649,
1098 2649, 897, 899, 886, 904, 891, 893, 2649, 890, 908,
1099 894, 895, 891, 896, 914, 958, 2649, 916, 960, 2649,
1100 2649, 902, 916, 916, 964, 907, 911, 905, 921, 969,
1101 919, 909, 910, 906, 916, 920, 931, 926, 973, 929,
1102 922, 924, 920, 937, 927, 942, 925, 987, 941, 946,
1103 923, 946, 932, 931, 2649, 938, 940, 992, 993, 942,
1104 955, 996, 940, 955, 949, 973, 983, 971, 979, 991,
1105
1106 1008, 954, 1006, 966, 1009, 2649, 1015, 955, 974, 964,
1107 963, 958, 959, 971, 966, 962, 980, 972, 967, 968,
1108 978, 987, 1026, 974, 973, 994, 986, 981, 1037, 1043,
1109 997, 988, 1002, 993, 1001, 1003, 988, 1004, 994, 1006,
1110 1003, 1001, 1013, 997, 998, 2649, 1014, 1017, 1000, 1002,
1111 1063, 1003, 1022, 2649, 1021, 1024, 1011, 1006, 1024, 1012,
1112 1068, 1023, 1019, 1016, 1072, 1018, 1074, 1033, 1019, 1037,
1113 1037, 1037, 1023, 1038, 1025, 1026, 1042, 1029, 1046, 2649,
1114 1030, 2649, 1039, 1089, 1039, 2649, 1049, 1042, 1098, 1042,
1115 2649, 1045, 1050, 1097, 1045, 1046, 1058, 1052, 1050, 1047,
1116
1117 1062, 1110, 1051, 1052, 1113, 1114, 1055, 1067, 1060, 2649,
1118 1056, 1064, 1062, 1116, 1055, 1076, 1063, 1064, 1065, 1066,
1119 1072, 1080, 1071, 1085, 1086, 1087, 1102, 1131, 1114, 1106,
1120 1111, 2649, 1094, 1098, 1081, 1081, 2649, 1082, 1084, 1095,
1121 1085, 1105, 1104, 1095, 1106, 1152, 1091, 1103, 1112, 1105,
1122 1109, 1113, 1096, 1113, 1114, 1105, 1163, 1111, 1115, 2649,
1123 1165, 1111, 1129, 1111, 1111, 1132, 1129, 1172, 1118, 1136,
1124 1124, 1138, 1131, 1140, 1120, 1135, 1142, 1187, 1188, 2649,
1125 1138, 1190, 1144, 1130, 1140, 1150, 1134, 1154, 1137, 1139,
1126 1139, 1146, 1155, 1143, 1150, 1145, 1152, 1164, 1208, 1152,
1127
1128 1210, 1152, 1169, 1213, 1163, 1164, 1153, 1217, 1165, 1162,
1129 1220, 1167, 1222, 1223, 1173, 2649, 1162, 1179, 1172, 1163,
1130 1182, 1176, 1171, 1181, 1177, 1172, 1190, 2649, 1174, 1170,
1131 2649, 2649, 1176, 1239, 1195, 1176, 1195, 1196, 1198, 1240,
1132 1190, 1247, 1248, 1198, 1203, 1197, 1195, 1206, 1188, 1193,
1133 1199, 1225, 1238, 1226, 1240, 1227, 1262, 1214, 1214, 1218,
1134 1266, 1206, 1206, 1209, 1226, 1221, 1225, 1220, 2649, 1217,
1135 1230, 1214, 1231, 1211, 1232, 1222, 1221, 1277, 1227, 2649,
1136 1241, 1243, 1246, 1230, 1239, 1243, 1248, 1234, 1297, 1247,
1137 1252, 1239, 1253, 1251, 1248, 1244, 1262, 1263, 1264, 2649,
1138
1139 2649, 1262, 2649, 1264, 1249, 1260, 1251, 1270, 1263, 1261,
1140 1316, 1270, 1267, 1314, 1275, 1264, 1271, 1276, 1273, 1279,
1141 2649, 1272, 2649, 1264, 1328, 2649, 1272, 1273, 1284, 2649,
1142 1285, 1273, 2649, 1283, 2649, 2649, 1273, 1274, 1277, 1291,
1143 1296, 1279, 1290, 1342, 1296, 1283, 1302, 1293, 1347, 1343,
1144 1349, 2649, 1297, 1294, 1352, 1353, 1307, 1308, 1310, 2649,
1145 2649, 1302, 1297, 1354, 1300, 1316, 1300, 1312, 1301, 1360,
1146 1343, 1344, 1336, 1369, 2649, 1323, 1314, 1325, 2649, 1373,
1147 1307, 1318, 1333, 1372, 1321, 1332, 1320, 1319, 1335, 1336,
1148 1333, 1380, 1340, 1342, 1331, 1341, 1347, 1335, 1335, 1395,
1149
1150 1391, 1393, 1399, 1353, 2649, 1355, 1354, 1356, 1347, 1350,
1151 1359, 1356, 1346, 1349, 1349, 1411, 1355, 1413, 1357, 1415,
1152 1355, 1360, 1418, 2649, 1373, 1353, 1368, 1361, 1364, 1377,
1153 1380, 1379, 1377, 1429, 1380, 2649, 1376, 1377, 1429, 1373,
1154 1436, 1389, 1438, 1439, 1440, 1381, 1391, 1443, 1397, 2649,
1155 1389, 1446, 1387, 1387, 2649, 1405, 2649, 1402, 1393, 2649,
1156 2649, 1406, 1389, 1409, 1410, 1396, 1398, 1460, 1407, 1462,
1157 1408, 1402, 1429, 1447, 1462, 1448, 2649, 1468, 1416, 1466,
1158 2649, 1411, 1473, 1420, 1414, 1411, 1414, 1416, 1412, 1475,
1159 1435, 1477, 1427, 1439, 1442, 1439, 1431, 1434, 1427, 1490,
1160
1161 1437, 2649, 1436, 1435, 2649, 1437, 1499, 1449, 1440, 1497,
1162 1456, 1458, 1458, 1455, 1502, 1461, 2649, 1453, 2649, 1454,
1163 2649, 1464, 1456, 2649, 1508, 1467, 1468, 1465, 1512, 1457,
1164 1473, 1516, 1475, 1467, 2649, 1464, 1464, 1465, 1466, 1523,
1165 2649, 1482, 2649, 2649, 2649, 1525, 1469, 2649, 1486, 1471,
1166 2649, 1485, 1473, 1537, 1481, 1474, 1479, 1490, 1501, 1494,
1167 1500, 1490, 1548, 1498, 2649, 1507, 2649, 1504, 1552, 1529,
1168 1530, 1536, 1521, 1529, 2649, 1512, 1497, 1560, 2649, 1561,
1169 1515, 1520, 1502, 1565, 1566, 1507, 1563, 1527, 1520, 1516,
1170 1509, 1517, 1569, 1524, 1525, 2649, 1515, 1531, 1529, 1586,
1171
1172 2649, 1521, 1583, 1544, 1544, 1586, 1531, 1536, 1534, 1596,
1173 1549, 1537, 1599, 1595, 1547, 1602, 1560, 1549, 1543, 1606,
1174 1545, 1554, 1547, 1561, 1564, 1612, 1613, 1563, 1561, 1554,
1175 1552, 1613, 1614, 1615, 1567, 1566, 1566, 1561, 1562, 2649,
1176 1570, 1576, 1567, 1568, 1567, 1569, 1627, 1570, 2649, 1566,
1177 1584, 1636, 2649, 1604, 1618, 1617, 1606, 1608, 1642, 1592,
1178 2649, 2649, 1583, 1594, 1646, 2649, 2649, 1600, 1590, 1595,
1179 1593, 1646, 1601, 1606, 1592, 1595, 1611, 1601, 1599, 1599,
1180 1601, 2649, 1669, 1604, 1613, 1660, 1609, 1672, 1617, 1628,
1181 1629, 2649, 1677, 1627, 1674, 2649, 1622, 1630, 2649, 1621,
1182
1183 1636, 1624, 2649, 1634, 1635, 1636, 1688, 1643, 2649, 2649,
1184 1622, 1640, 1641, 1650, 1632, 1638, 1651, 1640, 1693, 1642,
1185 1638, 1643, 1640, 1641, 1699, 1705, 1652, 1707, 1657, 1647,
1186 1663, 1656, 2649, 1689, 1713, 1695, 1710, 1716, 2649, 1662,
1187 1718, 1657, 2649, 1659, 1661, 1671, 1718, 1663, 1678, 1665,
1188 1727, 1681, 1667, 1674, 1674, 1685, 1686, 2649, 1680, 1675,
1189 1689, 1675, 1687, 2649, 1736, 1684, 1681, 2649, 1695, 1682,
1190 1703, 1699, 1701, 1749, 1699, 1696, 1704, 1698, 2649, 1754,
1191 1708, 1701, 1702, 1707, 1708, 1702, 1707, 1718, 1702, 1711,
1192 1760, 1766, 1716, 1768, 1714, 2649, 1708, 2649, 1715, 1772,
1193
1194 1773, 1770, 1771, 2649, 1753, 1759, 2649, 1731, 2649, 1775,
1195 1724, 1735, 1736, 1721, 1722, 1730, 1787, 2649, 1732, 1784,
1196 1785, 1737, 1732, 1750, 1747, 1738, 1751, 1746, 1743, 1748,
1197 1746, 1801, 1802, 1747, 1746, 1760, 1747, 2649, 1762, 1763,
1198 1764, 1765, 2649, 1813, 1763, 1768, 1754, 1762, 1756, 1776,
1199 1777, 1758, 1759, 1766, 2649, 1768, 2649, 1782, 1779, 1822,
1200 1780, 2649, 2649, 1784, 1810, 1811, 1809, 1772, 1772, 1781,
1201 1788, 1781, 1780, 1791, 1778, 2649, 1794, 1782, 1785, 1844,
1202 1781, 1800, 1791, 1803, 1796, 1795, 1804, 1806, 1810, 2649,
1203 2649, 1803, 1794, 1796, 1860, 1800, 1862, 1801, 1864, 2649,
1204
1205 1803, 1866, 1862, 1821, 1818, 1809, 1817, 1828, 1815, 1826,
1206 1812, 1810, 1818, 1817, 1822, 1814, 1859, 1883, 1865, 1885,
1207 1835, 1824, 1837, 1827, 1844, 1843, 1887, 1828, 1847, 1848,
1208 2649, 1853, 1846, 1898, 1852, 1839, 1854, 1902, 1856, 1859,
1209 1846, 1855, 1856, 2649, 1908, 2649, 1860, 2649, 1912, 2649,
1210 1851, 1914, 1858, 1855, 1917, 1862, 1914, 1915, 1874, 1917,
1211 1860, 1864, 1882, 1926, 1882, 1909, 2649, 1905, 2649, 1875,
1212 1869, 1866, 1928, 1891, 1884, 1880, 1937, 1877, 1879, 1878,
1213 1885, 2649, 1881, 1943, 1884, 2649, 1889, 1899, 1884, 1892,
1214 1894, 2649, 1895, 2649, 1900, 2649, 1896, 1906, 2649, 1908,
1215
1216 1909, 1900, 1959, 1900, 1910, 1895, 1908, 2649, 1910, 1941,
1217 1947, 1919, 1917, 1969, 1907, 1909, 1906, 1930, 2649, 1917,
1218 1924, 1925, 1928, 1917, 2649, 1974, 1918, 1926, 1935, 1934,
1219 1937, 1938, 1931, 1926, 1927, 1927, 1939, 1934, 2649, 1947,
1220 1935, 1991, 1939, 1951, 1979, 2000, 2001, 1945, 2649, 1945,
1221 1957, 2005, 1951, 1953, 1951, 1952, 2010, 1960, 1947, 1962,
1222 1967, 2015, 2016, 2017, 2018, 1972, 2020, 2021, 2022, 1963,
1223 1967, 1964, 1980, 1963, 1975, 1969, 2031, 2649, 2649, 1976,
1224 1987, 2034, 2649, 1988, 1973, 1991, 1982, 2649, 1983, 1997,
1225 1993, 1986, 2649, 2649, 2649, 2649, 2043, 2649, 2649, 2649,
1226
1227 1983, 1991, 1986, 2042, 2005, 2002, 2050, 2649, 2046, 2009,
1228 2649, 2053, 1992, 2055, 1995, 2008, 2007, 2008, 1998, 2649,
1229 1999, 2062, 2012, 2021, 2014, 2061, 2649, 2012, 2006, 2649,
1230 2018, 2649, 2065, 2071, 2010, 2026, 2074, 2075, 2649, 2029,
1231 2023, 2016, 2036, 2023, 2035, 2026, 2030, 2649, 2080, 2026,
1232 2649, 2649, 2026, 2034, 2084, 2041, 2034, 2046, 2093, 2038,
1233 2038, 2034, 2036, 2098, 2099, 2038, 2054, 2039, 2056, 2649,
1234 2104, 2048, 2055, 2107, 2649, 2649, 2057, 2109, 2054, 2111,
1235 2649, 2059, 2058, 2649, 2059, 2649, 2053, 2649, 2053, 2070,
1236 2071, 2119, 2062, 2121, 2122, 2649, 2123, 2649, 2649, 2649,
1237
1238 2649, 2129, 2132, 2135, 2136, 2138, 2141, 2144, 2147
1239 } ;
1240
1241static const flex_int16_t yy_def[2210] =
1242 { 0,
1243 2202, 2202, 2203, 2203, 2202, 2202, 2202, 2202, 2202, 2202,
1244 2201, 2201, 2201, 2201, 2201, 2204, 2201, 2201, 2201, 2201,
1245 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
1246 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2205,
1247 2201, 2201, 2201, 2206, 15, 2201, 45, 45, 45, 45,
1248 45, 45, 45, 45, 45, 45, 45, 2207, 45, 45,
1249 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1250 45, 45, 45, 45, 45, 45, 45, 45, 2204, 2201,
1251 2201, 2201, 2201, 2201, 2201, 2208, 2201, 2201, 2201, 2201,
1252 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2205, 2201, 2206,
1253
1254 2201, 2201, 45, 45, 45, 45, 45, 45, 45, 45,
1255 45, 45, 45, 45, 45, 2209, 45, 2207, 45, 45,
1256 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1257 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1258 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1259 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1260 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1261 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1262 45, 45, 45, 45, 2208, 2201, 2201, 2201, 2201, 2201,
1263 2201, 2201, 2201, 45, 45, 45, 2201, 45, 45, 2201,
1264
1265 45, 45, 45, 45, 45, 45, 45, 2209, 2201, 2201,
1266 118, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1267 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1268 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1269 45, 45, 45, 45, 45, 2201, 45, 45, 45, 45,
1270 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1271 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1272 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1273 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1274 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1275
1276 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1277 45, 45, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 45,
1278 45, 45, 45, 45, 2201, 45, 45, 2201, 45, 2201,
1279 45, 118, 45, 45, 45, 45, 45, 45, 45, 45,
1280 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1281 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1282 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1283 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1284 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1285 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1286
1287 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1288 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1289 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1290 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1291 45, 45, 2201, 2201, 2201, 45, 45, 45, 45, 2201,
1292 45, 45, 2201, 45, 118, 45, 45, 45, 45, 45,
1293 45, 45, 45, 45, 2201, 45, 45, 45, 45, 45,
1294 45, 2201, 45, 45, 45, 45, 45, 45, 45, 2201,
1295 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1296 45, 2201, 45, 45, 45, 45, 45, 45, 45, 45,
1297
1298 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1299 45, 45, 45, 45, 45, 45, 45, 45, 45, 2201,
1300 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1301 45, 45, 45, 45, 45, 2201, 45, 45, 2201, 45,
1302 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1303 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1304 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1305 45, 45, 2201, 45, 2201, 45, 2201, 45, 2201, 45,
1306 45, 45, 2201, 45, 45, 2201, 2201, 2201, 45, 45,
1307 45, 45, 45, 2201, 45, 45, 45, 45, 45, 45,
1308
1309 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1310 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1311 45, 45, 45, 45, 45, 45, 45, 45, 45, 2201,
1312 45, 45, 45, 45, 45, 45, 2201, 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 2201, 45, 45, 2201, 45, 45, 45, 45, 45, 45,
1316 45, 45, 45, 45, 45, 45, 45, 45, 2201, 45,
1317 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1318 45, 2201, 45, 45, 45, 45, 45, 45, 45, 45,
1319
1320 45, 45, 45, 45, 45, 2201, 45, 45, 45, 45,
1321 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1322 2201, 2201, 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 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1327 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1328 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1329 45, 2201, 45, 45, 45, 45, 45, 45, 45, 45,
1330
1331 45, 45, 2201, 45, 45, 45, 45, 45, 45, 45,
1332 45, 45, 45, 45, 45, 45, 2201, 45, 45, 45,
1333 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1334 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1335 45, 45, 45, 45, 2201, 45, 45, 45, 45, 45,
1336 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1337 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1338 2201, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1339 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1340 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1341
1342 45, 45, 45, 2201, 45, 45, 45, 45, 45, 45,
1343 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1344 2201, 2201, 45, 45, 45, 45, 45, 45, 45, 2201,
1345 2201, 45, 45, 45, 45, 45, 45, 2201, 45, 45,
1346 45, 45, 45, 45, 45, 45, 2201, 45, 45, 2201,
1347 2201, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1348 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1349 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1350 45, 45, 45, 45, 2201, 45, 45, 45, 45, 45,
1351 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1352
1353 45, 45, 45, 45, 45, 2201, 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, 45,
1356 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1357 45, 45, 45, 45, 45, 2201, 45, 45, 45, 45,
1358 45, 45, 45, 2201, 45, 45, 45, 45, 45, 45,
1359 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1360 45, 45, 45, 45, 45, 45, 45, 45, 45, 2201,
1361 45, 2201, 45, 45, 45, 2201, 45, 45, 45, 45,
1362 2201, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1363
1364 45, 45, 45, 45, 45, 45, 45, 45, 45, 2201,
1365 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1366 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1367 45, 2201, 45, 45, 45, 45, 2201, 45, 45, 45,
1368 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1369 45, 45, 45, 45, 45, 45, 45, 45, 45, 2201,
1370 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1371 45, 45, 45, 45, 45, 45, 45, 45, 45, 2201,
1372 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1373 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1374
1375 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1376 45, 45, 45, 45, 45, 2201, 45, 45, 45, 45,
1377 45, 45, 45, 45, 45, 45, 45, 2201, 45, 45,
1378 2201, 2201, 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, 45, 45, 45,
1381 45, 45, 45, 45, 45, 45, 45, 45, 2201, 45,
1382 45, 45, 45, 45, 45, 45, 45, 45, 45, 2201,
1383 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1384 45, 45, 45, 45, 45, 45, 45, 45, 45, 2201,
1385
1386 2201, 45, 2201, 45, 45, 45, 45, 45, 45, 45,
1387 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1388 2201, 45, 2201, 45, 45, 2201, 45, 45, 45, 2201,
1389 45, 45, 2201, 45, 2201, 2201, 45, 45, 45, 45,
1390 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1391 45, 2201, 45, 45, 45, 45, 45, 45, 45, 2201,
1392 2201, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1393 45, 45, 45, 45, 2201, 45, 45, 45, 2201, 45,
1394 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1395 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1396
1397 45, 45, 45, 45, 2201, 45, 45, 45, 45, 45,
1398 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1399 45, 45, 45, 2201, 45, 45, 45, 45, 45, 45,
1400 45, 45, 45, 45, 45, 2201, 45, 45, 45, 45,
1401 45, 45, 45, 45, 45, 45, 45, 45, 45, 2201,
1402 45, 45, 45, 45, 2201, 45, 2201, 45, 45, 2201,
1403 2201, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1404 45, 45, 45, 45, 45, 45, 2201, 45, 45, 45,
1405 2201, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1406 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1407
1408 45, 2201, 45, 45, 2201, 45, 45, 45, 45, 45,
1409 45, 45, 45, 45, 45, 45, 2201, 45, 2201, 45,
1410 2201, 45, 45, 2201, 45, 45, 45, 45, 45, 45,
1411 45, 45, 45, 45, 2201, 45, 45, 45, 45, 45,
1412 2201, 45, 2201, 2201, 2201, 45, 45, 2201, 45, 45,
1413 2201, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1414 45, 45, 45, 45, 2201, 45, 2201, 45, 45, 45,
1415 45, 45, 45, 45, 2201, 45, 45, 45, 2201, 45,
1416 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1417 45, 45, 45, 45, 45, 2201, 45, 45, 45, 45,
1418
1419 2201, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1420 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1421 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1422 45, 45, 45, 45, 45, 45, 45, 45, 45, 2201,
1423 45, 45, 45, 45, 45, 45, 45, 45, 2201, 45,
1424 45, 45, 2201, 45, 45, 45, 45, 45, 45, 45,
1425 2201, 2201, 45, 45, 45, 2201, 2201, 45, 45, 45,
1426 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1427 45, 2201, 45, 45, 45, 45, 45, 45, 45, 45,
1428 45, 2201, 45, 45, 45, 2201, 45, 45, 2201, 45,
1429
1430 45, 45, 2201, 45, 45, 45, 45, 45, 2201, 2201,
1431 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1432 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1433 45, 45, 2201, 45, 45, 45, 45, 45, 2201, 45,
1434 45, 45, 2201, 45, 45, 45, 45, 45, 45, 45,
1435 45, 45, 45, 45, 45, 45, 45, 2201, 45, 45,
1436 45, 45, 45, 2201, 45, 45, 45, 2201, 45, 45,
1437 45, 45, 45, 45, 45, 45, 45, 45, 2201, 45,
1438 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1439 45, 45, 45, 45, 45, 2201, 45, 2201, 45, 45,
1440
1441 45, 45, 45, 2201, 45, 45, 2201, 45, 2201, 45,
1442 45, 45, 45, 45, 45, 45, 45, 2201, 45, 45,
1443 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1444 45, 45, 45, 45, 45, 45, 45, 2201, 45, 45,
1445 45, 45, 2201, 45, 45, 45, 45, 45, 45, 45,
1446 45, 45, 45, 45, 2201, 45, 2201, 45, 45, 45,
1447 45, 2201, 2201, 45, 45, 45, 45, 45, 45, 45,
1448 45, 45, 45, 45, 45, 2201, 45, 45, 45, 45,
1449 45, 45, 45, 45, 45, 45, 45, 45, 45, 2201,
1450 2201, 45, 45, 45, 45, 45, 45, 45, 45, 2201,
1451
1452 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1453 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1454 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1455 2201, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1456 45, 45, 45, 2201, 45, 2201, 45, 2201, 45, 2201,
1457 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1458 45, 45, 45, 45, 45, 45, 2201, 45, 2201, 45,
1459 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1460 45, 2201, 45, 45, 45, 2201, 45, 45, 45, 45,
1461 45, 2201, 45, 2201, 45, 2201, 45, 45, 2201, 45,
1462
1463 45, 45, 45, 45, 45, 45, 45, 2201, 45, 45,
1464 45, 45, 45, 45, 45, 45, 45, 45, 2201, 45,
1465 45, 45, 45, 45, 2201, 45, 45, 45, 45, 45,
1466 45, 45, 45, 45, 45, 45, 45, 45, 2201, 45,
1467 45, 45, 45, 45, 45, 45, 45, 45, 2201, 45,
1468 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1469 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1470 45, 45, 45, 45, 45, 45, 45, 2201, 2201, 45,
1471 45, 45, 2201, 45, 45, 45, 45, 2201, 45, 45,
1472 45, 45, 2201, 2201, 2201, 2201, 45, 2201, 2201, 2201,
1473
1474 45, 45, 45, 45, 45, 45, 45, 2201, 45, 45,
1475 2201, 45, 45, 45, 45, 45, 45, 45, 45, 2201,
1476 45, 45, 45, 45, 45, 45, 2201, 45, 45, 2201,
1477 45, 2201, 45, 45, 45, 45, 45, 45, 2201, 45,
1478 45, 45, 45, 45, 45, 45, 45, 2201, 45, 45,
1479 2201, 2201, 45, 45, 45, 45, 45, 45, 45, 45,
1480 45, 45, 45, 45, 45, 45, 45, 45, 45, 2201,
1481 45, 45, 45, 45, 2201, 2201, 45, 45, 45, 45,
1482 2201, 45, 45, 2201, 45, 2201, 45, 2201, 45, 45,
1483 45, 45, 45, 45, 45, 2201, 45, 2201, 2201, 2201,
1484
1485 0, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201
1486 } ;
1487
1488static const flex_int16_t yy_nxt[2726] =
1489 { 0,
1490 2201, 13, 14, 13, 2201, 15, 16, 101, 17, 18,
1491 19, 20, 21, 22, 22, 22, 22, 22, 23, 24,
1492 85, 246, 37, 14, 37, 86, 25, 26, 38, 37,
1493 14, 37, 42, 27, 42, 38, 876, 877, 28, 90,
1494 13, 14, 13, 91, 29, 90, 30, 102, 13, 14,
1495 13, 199, 25, 31, 13, 14, 13, 42, 40, 42,
1496 546, 32, 13, 14, 13, 90, 40, 33, 247, 164,
1497 92, 93, 91, 165, 34, 35, 13, 14, 13, 199,
1498 15, 16, 91, 17, 18, 19, 20, 21, 22, 22,
1499 22, 22, 22, 23, 24, 39, 13, 14, 13, 92,
1500
1501 92, 25, 26, 39, 13, 14, 13, 42, 27, 42,
1502 132, 94, 547, 28, 108, 239, 41, 103, 104, 29,
1503 107, 30, 114, 133, 41, 227, 228, 25, 31, 95,
1504 372, 240, 88, 134, 88, 229, 32, 89, 89, 89,
1505 89, 89, 33, 108, 103, 104, 107, 373, 114, 34,
1506 35, 44, 44, 44, 45, 45, 46, 45, 45, 45,
1507 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1508 45, 45, 45, 47, 45, 48, 49, 50, 51, 45,
1509 45, 52, 45, 53, 54, 45, 45, 45, 45, 55,
1510 56, 45, 57, 45, 45, 45, 58, 45, 45, 59,
1511
1512 45, 60, 61, 62, 63, 45, 64, 65, 52, 66,
1513 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
1514 77, 78, 45, 45, 45, 45, 45, 80, 251, 81,
1515 81, 81, 81, 81, 80, 115, 83, 83, 83, 83,
1516 83, 252, 82, 84, 84, 84, 84, 84, 80, 82,
1517 83, 83, 83, 83, 83, 112, 82, 155, 103, 156,
1518 878, 110, 115, 82, 157, 136, 297, 113, 82, 111,
1519 137, 730, 186, 138, 139, 82, 107, 101, 731, 879,
1520 298, 112, 82, 188, 140, 119, 141, 110, 187, 82,
1521 45, 120, 45, 45, 45, 45, 113, 111, 45, 186,
1522
1523 45, 45, 107, 117, 143, 144, 45, 45, 145, 45,
1524 45, 188, 188, 135, 146, 187, 45, 102, 45, 45,
1525 45, 45, 104, 45, 45, 45, 45, 45, 45, 45,
1526 45, 45, 45, 45, 45, 45, 45, 45, 45, 880,
1527 191, 127, 121, 45, 128, 129, 122, 45, 130, 104,
1528 123, 45, 115, 124, 147, 186, 125, 114, 148, 45,
1529 126, 131, 149, 45, 110, 45, 118, 158, 187, 198,
1530 159, 160, 111, 195, 150, 173, 174, 200, 151, 115,
1531 194, 161, 189, 114, 162, 112, 152, 166, 153, 184,
1532 154, 167, 845, 181, 168, 190, 198, 113, 182, 195,
1533
1534 111, 169, 170, 207, 846, 265, 171, 172, 400, 194,
1535 201, 175, 202, 176, 204, 205, 177, 178, 84, 84,
1536 84, 84, 84, 401, 275, 206, 179, 276, 277, 207,
1537 221, 82, 80, 180, 81, 81, 81, 81, 81, 222,
1538 223, 202, 204, 88, 205, 88, 881, 82, 89, 89,
1539 89, 89, 89, 206, 266, 882, 80, 82, 83, 83,
1540 83, 83, 83, 84, 84, 84, 84, 84, 100, 194,
1541 233, 82, 234, 82, 256, 100, 82, 89, 89, 89,
1542 89, 89, 89, 89, 89, 89, 89, 212, 236, 235,
1543 215, 202, 315, 241, 269, 257, 242, 82, 213, 216,
1544
1545 243, 237, 82, 217, 205, 238, 204, 281, 100, 270,
1546 271, 272, 100, 291, 883, 345, 100, 292, 315, 303,
1547 264, 293, 315, 346, 100, 304, 313, 396, 100, 347,
1548 100, 100, 210, 307, 302, 314, 313, 397, 323, 314,
1549 211, 211, 211, 211, 211, 282, 283, 284, 318, 211,
1550 211, 211, 211, 211, 211, 313, 285, 320, 286, 321,
1551 324, 287, 314, 288, 289, 316, 317, 323, 326, 327,
1552 329, 331, 320, 381, 884, 211, 211, 211, 211, 211,
1553 211, 343, 326, 320, 344, 321, 412, 446, 324, 413,
1554 427, 329, 428, 443, 326, 327, 329, 443, 334, 331,
1555
1556 332, 332, 332, 332, 332, 451, 447, 885, 390, 332,
1557 332, 332, 332, 332, 332, 328, 446, 329, 449, 443,
1558 432, 452, 472, 444, 478, 446, 886, 473, 451, 382,
1559 479, 437, 383, 447, 451, 332, 332, 332, 332, 332,
1560 332, 492, 536, 887, 449, 521, 493, 537, 452, 455,
1561 455, 455, 455, 455, 457, 522, 589, 523, 455, 455,
1562 455, 455, 455, 455, 509, 510, 511, 516, 541, 584,
1563 512, 550, 542, 517, 559, 551, 579, 590, 560, 591,
1564 619, 580, 589, 888, 455, 455, 455, 455, 455, 455,
1565 630, 652, 889, 620, 584, 631, 700, 494, 584, 664,
1566
1567 725, 653, 495, 538, 665, 590, 727, 591, 45, 45,
1568 45, 45, 45, 751, 779, 780, 752, 45, 45, 45,
1569 45, 45, 45, 593, 608, 692, 725, 726, 609, 858,
1570 693, 890, 722, 857, 723, 727, 610, 729, 611, 612,
1571 613, 614, 615, 45, 45, 45, 45, 45, 45, 724,
1572 859, 701, 803, 817, 860, 726, 858, 804, 818, 861,
1573 723, 891, 857, 873, 874, 892, 875, 893, 894, 895,
1574 899, 896, 900, 901, 902, 897, 903, 859, 724, 898,
1575 904, 905, 906, 860, 907, 861, 908, 909, 910, 911,
1576 912, 913, 914, 915, 805, 916, 917, 918, 919, 920,
1577
1578 819, 921, 922, 923, 924, 925, 926, 928, 929, 927,
1579 930, 931, 932, 933, 934, 935, 936, 937, 938, 939,
1580 940, 941, 942, 943, 944, 945, 946, 947, 948, 949,
1581 950, 951, 952, 953, 954, 955, 956, 957, 958, 959,
1582 960, 961, 962, 963, 964, 965, 966, 967, 968, 969,
1583 970, 971, 973, 974, 977, 978, 979, 980, 972, 982,
1584 975, 983, 984, 981, 976, 985, 986, 987, 988, 989,
1585 990, 991, 992, 993, 994, 995, 996, 997, 998, 999,
1586 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
1587 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019,
1588
1589 1020, 1021, 1022, 996, 1023, 1024, 997, 1025, 1026, 1000,
1590 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036,
1591 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046,
1592 1048, 1049, 1050, 1051, 1047, 1052, 1053, 1054, 1055, 1056,
1593 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066,
1594 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1075, 1076, 1077,
1595 1074, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
1596 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096,
1597 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1107,
1598 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
1599
1600 1106, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126,
1601 1127, 1128, 1129, 1132, 1130, 1133, 1134, 1131, 1135, 1136,
1602 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146,
1603 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1128, 1127,
1604 1155, 1129, 1130, 1131, 1156, 1157, 1158, 1159, 1160, 1161,
1605 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171,
1606 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1183,
1607 1184, 1185, 1186, 1181, 1187, 1188, 1189, 1190, 1191, 1192,
1608 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202,
1609 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212,
1610
1611 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222,
1612 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232,
1613 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1182,
1614 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251,
1615 1252, 1253, 1255, 1254, 1256, 1257, 1258, 1259, 1260, 1261,
1616 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271,
1617 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1252,
1618 1254, 1255, 1256, 1281, 1282, 1283, 1284, 1285, 1286, 1287,
1619 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297,
1620 1298, 1299, 1300, 1301, 1302, 1303, 1305, 1306, 1307, 1308,
1621
1622 1304, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317,
1623 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327,
1624 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337,
1625 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347,
1626 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357,
1627 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367,
1628 1368, 1369, 1370, 1371, 1372, 1374, 1373, 1375, 1376, 1377,
1629 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387,
1630 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1371,
1631 1397, 1370, 1373, 1372, 1374, 1398, 1399, 1400, 1401, 1402,
1632
1633 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412,
1634 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422,
1635 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432,
1636 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442,
1637 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452,
1638 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462,
1639 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472,
1640 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1483,
1641 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493,
1642 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1474, 1475,
1643
1644 1502, 1503, 1476, 1504, 1505, 1506, 1507, 1508, 1509, 1510,
1645 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520,
1646 1521, 1522, 1523, 1524, 1525, 1482, 1526, 1527, 1529, 1530,
1647 1531, 1532, 1533, 1534, 1535, 1528, 1536, 1537, 1538, 1539,
1648 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549,
1649 1550, 1551, 1553, 1554, 1557, 1555, 1552, 1556, 1558, 1559,
1650 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569,
1651 1570, 1571, 1572, 1575, 1574, 1576, 1577, 1578, 1579, 1580,
1652 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590,
1653 1591, 1592, 1593, 1594, 1595, 1596, 1573, 1571, 1597, 1570,
1654
1655 1574, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606,
1656 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616,
1657 1617, 1618, 1619, 1620, 1573, 1621, 1622, 1623, 1624, 1625,
1658 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635,
1659 1639, 1636, 1640, 1641, 1637, 1642, 1643, 1638, 1644, 1645,
1660 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655,
1661 1657, 1656, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665,
1662 1666, 1667, 1668, 1669, 1672, 1673, 1674, 1670, 1675, 1676,
1663 1677, 1678, 1679, 1680, 1681, 1654, 1655, 1656, 1671, 1657,
1664 1658, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690,
1665
1666 1691, 1692, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701,
1667 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711,
1668 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721,
1669 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731,
1670 1732, 1733, 1734, 1735, 1737, 1736, 1738, 1739, 1740, 1741,
1671 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751,
1672 1752, 1753, 1693, 1754, 1755, 1756, 1757, 1760, 1761, 1735,
1673 1762, 1734, 1736, 1737, 1758, 1738, 1763, 1764, 1765, 1759,
1674 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775,
1675 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785,
1676
1677 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795,
1678 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805,
1679 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815,
1680 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825,
1681 1826, 1827, 1828, 1829, 1803, 1805, 1830, 1831, 1832, 1833,
1682 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843,
1683 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853,
1684 1854, 1855, 1856, 1857, 1858, 1860, 1861, 1862, 1863, 1859,
1685 1864, 1865, 1866, 1868, 1867, 1869, 1870, 1871, 1872, 1873,
1686 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883,
1687
1688 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1866,
1689 1867, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901,
1690 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911,
1691 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921,
1692 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931,
1693 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941,
1694 1942, 1917, 1918, 1943, 1919, 1944, 1945, 1946, 1947, 1948,
1695 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958,
1696 1959, 1960, 1961, 1963, 1964, 1962, 1965, 1966, 1967, 1968,
1697 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978,
1698
1699 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988,
1700 1989, 1990, 1991, 1992, 1966, 1968, 1993, 1994, 1995, 1996,
1701 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
1702 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
1703 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026,
1704 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2010,
1705 2036, 2011, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044,
1706 2045, 2047, 2046, 2048, 2049, 2050, 2051, 2052, 2053, 2054,
1707 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064,
1708 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2045, 2046, 2072,
1709
1710 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082,
1711 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092,
1712 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102,
1713 2077, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111,
1714 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121,
1715 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131,
1716 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141,
1717 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151,
1718 2152, 2153, 2154, 2155, 2156, 2158, 2157, 2159, 2160, 2161,
1719 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171,
1720
1721 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181,
1722 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191,
1723 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 12,
1724 12, 12, 36, 36, 36, 79, 98, 79, 100, 100,
1725 100, 116, 116, 116, 185, 872, 185, 208, 208, 208,
1726 871, 870, 869, 868, 867, 866, 865, 864, 863, 862,
1727 856, 855, 854, 853, 852, 851, 850, 849, 848, 847,
1728 844, 843, 842, 841, 840, 839, 838, 837, 836, 835,
1729 834, 833, 832, 831, 830, 829, 828, 827, 826, 825,
1730 824, 823, 822, 821, 820, 816, 815, 814, 813, 812,
1731
1732 811, 810, 809, 808, 807, 806, 802, 801, 800, 799,
1733 798, 797, 796, 795, 794, 793, 792, 791, 790, 789,
1734 788, 787, 786, 785, 784, 783, 782, 781, 778, 777,
1735 776, 775, 774, 773, 772, 771, 770, 769, 768, 767,
1736 766, 765, 764, 763, 762, 761, 760, 759, 758, 757,
1737 756, 755, 754, 753, 750, 749, 748, 747, 746, 745,
1738 744, 743, 742, 741, 740, 739, 738, 737, 736, 735,
1739 734, 733, 732, 728, 722, 721, 720, 719, 718, 717,
1740 716, 715, 714, 713, 712, 711, 710, 709, 708, 707,
1741 706, 705, 704, 703, 702, 699, 698, 697, 696, 695,
1742
1743 694, 691, 690, 689, 688, 687, 686, 685, 684, 683,
1744 682, 681, 680, 679, 678, 677, 676, 675, 674, 673,
1745 672, 671, 670, 669, 668, 667, 666, 663, 662, 661,
1746 660, 659, 658, 657, 656, 655, 654, 651, 650, 649,
1747 648, 647, 646, 645, 644, 643, 642, 641, 640, 639,
1748 638, 637, 636, 635, 634, 633, 632, 629, 628, 627,
1749 626, 625, 624, 623, 622, 621, 618, 617, 616, 607,
1750 606, 605, 604, 603, 602, 601, 600, 599, 598, 597,
1751 596, 595, 594, 592, 588, 587, 586, 585, 583, 582,
1752 581, 578, 577, 576, 575, 574, 573, 572, 571, 570,
1753
1754 569, 568, 567, 566, 565, 564, 563, 562, 561, 558,
1755 557, 556, 555, 554, 553, 552, 549, 548, 545, 544,
1756 543, 540, 539, 535, 534, 533, 532, 531, 530, 529,
1757 528, 527, 526, 525, 524, 520, 519, 518, 515, 514,
1758 513, 508, 507, 506, 505, 504, 503, 502, 501, 500,
1759 499, 498, 497, 496, 491, 490, 489, 488, 487, 486,
1760 485, 484, 483, 482, 481, 480, 477, 476, 475, 474,
1761 471, 470, 469, 468, 467, 466, 465, 464, 463, 462,
1762 461, 460, 459, 458, 456, 454, 453, 450, 448, 445,
1763 442, 441, 440, 439, 438, 436, 435, 434, 433, 431,
1764
1765 430, 429, 426, 425, 424, 423, 422, 421, 420, 419,
1766 418, 417, 416, 415, 414, 411, 410, 409, 408, 407,
1767 406, 405, 404, 403, 402, 399, 398, 395, 394, 393,
1768 392, 391, 389, 388, 387, 386, 385, 384, 380, 379,
1769 378, 377, 376, 375, 374, 371, 370, 369, 368, 367,
1770 366, 365, 364, 363, 362, 361, 360, 359, 358, 357,
1771 356, 355, 354, 353, 352, 351, 350, 349, 348, 342,
1772 341, 340, 339, 338, 337, 336, 335, 333, 209, 330,
1773 328, 325, 322, 319, 312, 311, 310, 309, 308, 306,
1774 305, 301, 300, 299, 296, 295, 294, 290, 280, 279,
1775
1776 278, 274, 273, 268, 267, 263, 262, 261, 260, 259,
1777 258, 255, 254, 253, 250, 249, 248, 245, 244, 232,
1778 231, 230, 226, 225, 224, 220, 219, 218, 214, 209,
1779 203, 197, 196, 193, 192, 183, 163, 142, 109, 106,
1780 105, 43, 99, 97, 96, 87, 43, 2201, 11, 2201,
1781 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
1782 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
1783 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
1784 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
1785 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
1786
1787 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
1788 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
1789 2201, 2201, 2201, 2201, 2201
1790 } ;
1791
1792static const flex_int16_t yy_chk[2726] =
1793 { 0,
1794 0, 1, 1, 1, 0, 1, 1, 44, 1, 1,
1795 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1796 21, 139, 3, 3, 3, 21, 1, 1, 3, 4,
1797 4, 4, 13, 1, 13, 4, 740, 741, 1, 26,
1798 5, 5, 5, 27, 1, 31, 1, 44, 6, 6,
1799 6, 108, 1, 1, 7, 7, 7, 37, 7, 37,
1800 410, 1, 8, 8, 8, 26, 8, 1, 139, 73,
1801 28, 31, 27, 73, 1, 1, 2, 2, 2, 108,
1802 2, 2, 32, 2, 2, 2, 2, 2, 2, 2,
1803 2, 2, 2, 2, 2, 5, 9, 9, 9, 28,
1804
1805 33, 2, 2, 6, 10, 10, 10, 42, 2, 42,
1806 62, 32, 410, 2, 52, 135, 9, 47, 48, 2,
1807 51, 2, 56, 62, 10, 129, 129, 2, 2, 33,
1808 249, 135, 25, 62, 25, 129, 2, 25, 25, 25,
1809 25, 25, 2, 52, 47, 48, 51, 249, 56, 2,
1810 2, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1811 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1812 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1813 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1814 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1815
1816 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1817 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1818 15, 15, 15, 15, 15, 15, 15, 17, 143, 17,
1819 17, 17, 17, 17, 19, 57, 19, 19, 19, 19,
1820 19, 143, 17, 20, 20, 20, 20, 20, 22, 19,
1821 22, 22, 22, 22, 22, 55, 20, 70, 59, 70,
1822 742, 54, 57, 22, 70, 64, 171, 55, 17, 54,
1823 64, 595, 90, 64, 65, 19, 63, 100, 595, 743,
1824 171, 55, 20, 92, 65, 59, 65, 54, 91, 22,
1825 45, 59, 45, 45, 45, 45, 55, 54, 45, 90,
1826
1827 45, 45, 63, 58, 67, 67, 45, 45, 67, 45,
1828 58, 95, 92, 63, 67, 91, 45, 100, 45, 45,
1829 45, 45, 60, 45, 45, 45, 45, 45, 45, 45,
1830 45, 45, 45, 45, 45, 45, 45, 45, 45, 744,
1831 95, 61, 60, 58, 61, 61, 60, 58, 61, 60,
1832 60, 58, 78, 60, 68, 93, 60, 76, 68, 58,
1833 60, 61, 68, 58, 69, 58, 58, 71, 94, 107,
1834 71, 71, 69, 104, 68, 75, 75, 109, 68, 78,
1835 103, 71, 93, 76, 71, 75, 69, 74, 69, 78,
1836 69, 74, 710, 76, 74, 94, 107, 75, 76, 104,
1837
1838 69, 74, 74, 115, 710, 155, 74, 74, 273, 103,
1839 109, 75, 110, 75, 112, 113, 75, 75, 80, 80,
1840 80, 80, 80, 273, 161, 114, 75, 161, 161, 115,
1841 125, 80, 81, 75, 81, 81, 81, 81, 81, 125,
1842 125, 110, 112, 82, 113, 82, 745, 81, 82, 82,
1843 82, 82, 82, 114, 155, 746, 83, 80, 83, 83,
1844 83, 83, 83, 84, 84, 84, 84, 84, 102, 119,
1845 133, 83, 133, 81, 147, 102, 84, 88, 88, 88,
1846 88, 88, 89, 89, 89, 89, 89, 119, 134, 133,
1847 121, 154, 188, 136, 158, 147, 136, 83, 119, 121,
1848
1849 136, 134, 84, 121, 179, 134, 175, 165, 102, 158,
1850 158, 158, 102, 167, 747, 223, 102, 167, 188, 176,
1851 154, 167, 191, 223, 102, 176, 186, 270, 102, 223,
1852 102, 102, 118, 179, 175, 187, 189, 270, 198, 190,
1853 118, 118, 118, 118, 118, 165, 165, 165, 191, 118,
1854 118, 118, 118, 118, 118, 186, 165, 194, 165, 195,
1855 199, 165, 187, 165, 165, 189, 190, 198, 202, 203,
1856 205, 207, 213, 257, 748, 118, 118, 118, 118, 118,
1857 118, 222, 264, 194, 222, 195, 284, 320, 199, 284,
1858 298, 307, 298, 313, 202, 203, 205, 316, 213, 207,
1859
1860 211, 211, 211, 211, 211, 326, 321, 749, 264, 211,
1861 211, 211, 211, 211, 211, 302, 320, 307, 323, 313,
1862 302, 327, 349, 316, 354, 334, 750, 349, 390, 257,
1863 354, 307, 257, 321, 326, 211, 211, 211, 211, 211,
1864 211, 367, 403, 751, 323, 389, 367, 403, 327, 332,
1865 332, 332, 332, 332, 334, 389, 452, 390, 332, 332,
1866 332, 332, 332, 332, 381, 381, 381, 385, 406, 446,
1867 381, 413, 406, 385, 421, 413, 440, 454, 421, 454,
1868 478, 440, 452, 752, 332, 332, 332, 332, 332, 332,
1869 489, 511, 753, 478, 457, 489, 559, 367, 446, 523,
1870
1871 589, 511, 367, 403, 523, 454, 591, 454, 455, 455,
1872 455, 455, 455, 615, 644, 644, 615, 455, 455, 455,
1873 455, 455, 455, 457, 474, 552, 589, 590, 474, 724,
1874 552, 754, 593, 723, 585, 591, 474, 593, 474, 474,
1875 474, 474, 474, 455, 455, 455, 455, 455, 455, 585,
1876 725, 559, 669, 682, 726, 590, 724, 669, 682, 727,
1877 585, 755, 723, 739, 739, 756, 739, 757, 758, 759,
1878 761, 760, 762, 763, 764, 760, 765, 725, 585, 760,
1879 766, 767, 768, 726, 769, 727, 770, 771, 772, 773,
1880 774, 775, 776, 777, 669, 778, 779, 780, 781, 782,
1881
1882 682, 783, 784, 785, 786, 787, 788, 789, 790, 788,
1883 791, 793, 794, 795, 796, 797, 798, 799, 800, 801,
1884 802, 804, 805, 806, 807, 808, 809, 810, 811, 812,
1885 813, 814, 815, 816, 818, 819, 820, 821, 822, 823,
1886 824, 825, 826, 827, 828, 829, 830, 831, 832, 833,
1887 834, 835, 836, 837, 838, 839, 840, 841, 835, 842,
1888 837, 843, 844, 841, 837, 846, 847, 848, 849, 850,
1889 851, 852, 853, 854, 855, 856, 857, 858, 859, 860,
1890 861, 862, 863, 864, 865, 866, 867, 868, 869, 870,
1891 872, 873, 874, 875, 876, 877, 878, 879, 880, 881,
1892
1893 882, 883, 884, 857, 885, 886, 858, 887, 888, 861,
1894 889, 890, 891, 892, 893, 894, 895, 896, 897, 898,
1895 899, 900, 901, 902, 903, 905, 906, 907, 908, 909,
1896 910, 911, 912, 913, 909, 914, 915, 916, 917, 918,
1897 919, 920, 923, 924, 925, 926, 927, 928, 929, 932,
1898 933, 934, 935, 936, 937, 939, 940, 941, 942, 943,
1899 940, 944, 945, 946, 948, 949, 952, 953, 954, 955,
1900 956, 957, 958, 959, 960, 961, 962, 963, 964, 965,
1901 966, 967, 968, 969, 970, 971, 972, 973, 974, 975,
1902 976, 977, 978, 979, 980, 981, 982, 983, 984, 986,
1903
1904 974, 987, 988, 989, 990, 991, 992, 993, 994, 995,
1905 996, 997, 998, 1001, 999, 1002, 1003, 1000, 1004, 1005,
1906 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016,
1907 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 997, 996,
1908 1025, 998, 999, 1000, 1026, 1027, 1028, 1029, 1030, 1031,
1909 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
1910 1042, 1043, 1044, 1045, 1047, 1048, 1049, 1050, 1051, 1052,
1911 1053, 1055, 1056, 1051, 1057, 1058, 1059, 1060, 1061, 1062,
1912 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072,
1913 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1081, 1083, 1084,
1914
1915 1085, 1087, 1088, 1089, 1090, 1092, 1093, 1094, 1095, 1096,
1916 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106,
1917 1107, 1108, 1109, 1111, 1112, 1113, 1114, 1115, 1116, 1051,
1918 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126,
1919 1127, 1128, 1130, 1129, 1131, 1133, 1134, 1135, 1136, 1138,
1920 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148,
1921 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1127,
1922 1129, 1130, 1131, 1158, 1159, 1161, 1162, 1163, 1164, 1165,
1923 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175,
1924 1176, 1177, 1178, 1179, 1181, 1182, 1183, 1184, 1185, 1186,
1925
1926 1182, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195,
1927 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205,
1928 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
1929 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226,
1930 1227, 1229, 1230, 1233, 1234, 1235, 1236, 1237, 1238, 1239,
1931 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249,
1932 1250, 1251, 1252, 1253, 1254, 1256, 1255, 1257, 1258, 1259,
1933 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1270,
1934 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1253,
1935 1281, 1252, 1255, 1254, 1256, 1282, 1283, 1284, 1285, 1286,
1936
1937 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296,
1938 1297, 1298, 1299, 1302, 1304, 1305, 1306, 1307, 1308, 1309,
1939 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319,
1940 1320, 1322, 1324, 1325, 1327, 1328, 1329, 1331, 1332, 1334,
1941 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346,
1942 1347, 1348, 1349, 1350, 1351, 1353, 1354, 1355, 1356, 1357,
1943 1358, 1359, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369,
1944 1370, 1371, 1372, 1373, 1374, 1376, 1377, 1378, 1380, 1381,
1945 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391,
1946 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1371, 1372,
1947
1948 1400, 1401, 1373, 1402, 1403, 1404, 1406, 1407, 1408, 1409,
1949 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419,
1950 1420, 1421, 1422, 1423, 1425, 1380, 1426, 1427, 1428, 1429,
1951 1430, 1431, 1432, 1433, 1434, 1427, 1435, 1437, 1438, 1439,
1952 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449,
1953 1451, 1452, 1453, 1454, 1458, 1456, 1452, 1456, 1459, 1462,
1954 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472,
1955 1473, 1474, 1475, 1478, 1476, 1479, 1480, 1482, 1483, 1484,
1956 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494,
1957 1495, 1496, 1497, 1498, 1499, 1500, 1475, 1474, 1501, 1473,
1958
1959 1476, 1503, 1504, 1506, 1507, 1508, 1509, 1510, 1511, 1512,
1960 1513, 1514, 1515, 1516, 1518, 1520, 1522, 1523, 1525, 1526,
1961 1527, 1528, 1529, 1530, 1475, 1531, 1532, 1533, 1534, 1536,
1962 1537, 1538, 1539, 1540, 1542, 1546, 1547, 1549, 1550, 1552,
1963 1553, 1552, 1554, 1555, 1552, 1556, 1557, 1552, 1558, 1559,
1964 1560, 1561, 1562, 1563, 1564, 1566, 1568, 1569, 1570, 1571,
1965 1573, 1572, 1574, 1576, 1577, 1578, 1580, 1581, 1582, 1583,
1966 1584, 1585, 1586, 1587, 1589, 1590, 1591, 1588, 1592, 1593,
1967 1594, 1595, 1597, 1598, 1599, 1570, 1571, 1572, 1588, 1573,
1968 1574, 1600, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609,
1969
1970 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618,
1971 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628,
1972 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638,
1973 1639, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1650,
1974 1651, 1652, 1654, 1655, 1657, 1656, 1658, 1659, 1660, 1663,
1975 1664, 1665, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675,
1976 1676, 1677, 1610, 1678, 1679, 1680, 1681, 1684, 1685, 1655,
1977 1686, 1654, 1656, 1657, 1683, 1658, 1687, 1688, 1689, 1683,
1978 1690, 1691, 1693, 1694, 1695, 1697, 1698, 1700, 1701, 1702,
1979 1704, 1705, 1706, 1707, 1708, 1711, 1712, 1713, 1714, 1715,
1980
1981 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725,
1982 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1734, 1735, 1736,
1983 1737, 1738, 1740, 1741, 1742, 1744, 1745, 1746, 1747, 1748,
1984 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1759,
1985 1760, 1761, 1762, 1763, 1734, 1736, 1765, 1766, 1767, 1769,
1986 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1780,
1987 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790,
1988 1791, 1792, 1793, 1794, 1795, 1797, 1799, 1800, 1801, 1795,
1989 1802, 1803, 1805, 1808, 1806, 1810, 1811, 1812, 1813, 1814,
1990 1815, 1816, 1817, 1819, 1820, 1821, 1822, 1823, 1824, 1825,
1991
1992 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1805,
1993 1806, 1835, 1836, 1837, 1839, 1840, 1841, 1842, 1844, 1845,
1994 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1856,
1995 1858, 1859, 1860, 1861, 1864, 1865, 1866, 1867, 1868, 1869,
1996 1870, 1871, 1872, 1873, 1874, 1875, 1877, 1878, 1879, 1880,
1997 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1892,
1998 1893, 1865, 1866, 1894, 1867, 1895, 1896, 1897, 1898, 1899,
1999 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910,
2000 1911, 1912, 1913, 1914, 1915, 1913, 1916, 1917, 1918, 1919,
2001 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929,
2002
2003 1930, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940,
2004 1941, 1942, 1943, 1945, 1917, 1919, 1947, 1949, 1951, 1952,
2005 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962,
2006 1963, 1964, 1965, 1966, 1968, 1970, 1971, 1972, 1973, 1974,
2007 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1983, 1984, 1985,
2008 1987, 1988, 1989, 1990, 1991, 1993, 1995, 1997, 1998, 1966,
2009 2000, 1968, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009,
2010 2010, 2012, 2011, 2013, 2014, 2015, 2016, 2017, 2018, 2020,
2011 2021, 2022, 2023, 2024, 2026, 2027, 2028, 2029, 2030, 2031,
2012 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2010, 2011, 2040,
2013
2014 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2050, 2051,
2015 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061,
2016 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071,
2017 2045, 2072, 2073, 2074, 2075, 2076, 2077, 2080, 2081, 2082,
2018 2084, 2085, 2086, 2087, 2089, 2090, 2091, 2092, 2097, 2101,
2019 2102, 2103, 2104, 2105, 2106, 2107, 2109, 2110, 2112, 2113,
2020 2114, 2115, 2116, 2117, 2118, 2119, 2121, 2122, 2123, 2124,
2021 2125, 2126, 2128, 2129, 2131, 2133, 2134, 2135, 2136, 2137,
2022 2138, 2140, 2141, 2142, 2143, 2144, 2143, 2145, 2146, 2147,
2023 2149, 2150, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160,
2024
2025 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2171,
2026 2172, 2173, 2174, 2177, 2178, 2179, 2180, 2182, 2183, 2185,
2027 2187, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2197, 2202,
2028 2202, 2202, 2203, 2203, 2203, 2204, 2205, 2204, 2206, 2206,
2029 2206, 2207, 2207, 2207, 2208, 738, 2208, 2209, 2209, 2209,
2030 737, 736, 735, 734, 733, 732, 731, 730, 729, 728,
2031 720, 719, 718, 717, 716, 715, 714, 713, 712, 711,
2032 709, 708, 707, 705, 704, 703, 702, 701, 700, 699,
2033 698, 697, 696, 695, 694, 693, 691, 690, 689, 688,
2034 687, 686, 685, 684, 683, 681, 680, 678, 677, 676,
2035
2036 675, 674, 673, 672, 671, 670, 668, 667, 666, 665,
2037 663, 662, 660, 659, 658, 657, 656, 655, 654, 653,
2038 652, 651, 650, 649, 648, 647, 646, 645, 643, 642,
2039 641, 640, 639, 638, 636, 635, 634, 633, 632, 631,
2040 629, 628, 627, 626, 625, 624, 623, 622, 621, 620,
2041 619, 618, 617, 616, 614, 613, 612, 611, 610, 609,
2042 608, 607, 606, 605, 604, 603, 602, 601, 600, 599,
2043 598, 597, 596, 592, 584, 583, 582, 581, 580, 578,
2044 576, 574, 572, 571, 570, 569, 568, 567, 566, 565,
2045 564, 563, 562, 561, 560, 558, 557, 556, 555, 554,
2046
2047 553, 551, 550, 549, 548, 547, 546, 545, 544, 543,
2048 542, 541, 540, 538, 537, 535, 534, 533, 532, 531,
2049 530, 529, 528, 527, 526, 525, 524, 522, 521, 519,
2050 518, 517, 516, 515, 514, 513, 512, 510, 509, 508,
2051 507, 506, 505, 504, 503, 502, 501, 500, 499, 498,
2052 497, 496, 495, 494, 493, 491, 490, 488, 487, 486,
2053 485, 484, 483, 482, 481, 479, 477, 476, 475, 473,
2054 471, 470, 469, 468, 467, 466, 464, 463, 462, 461,
2055 460, 459, 458, 456, 451, 449, 448, 447, 445, 442,
2056 441, 439, 438, 437, 436, 435, 434, 433, 432, 431,
2057
2058 430, 429, 428, 427, 426, 425, 424, 423, 422, 420,
2059 419, 418, 417, 416, 415, 414, 412, 411, 409, 408,
2060 407, 405, 404, 402, 401, 400, 399, 398, 397, 396,
2061 395, 394, 393, 392, 391, 388, 387, 386, 384, 383,
2062 382, 380, 379, 378, 377, 376, 375, 374, 373, 372,
2063 371, 370, 369, 368, 366, 365, 364, 363, 362, 361,
2064 360, 359, 358, 357, 356, 355, 353, 352, 351, 350,
2065 348, 347, 346, 345, 344, 343, 342, 341, 340, 339,
2066 338, 337, 336, 335, 333, 331, 329, 324, 322, 319,
2067 312, 311, 310, 309, 308, 306, 305, 304, 303, 301,
2068
2069 300, 299, 297, 296, 295, 294, 293, 292, 291, 290,
2070 289, 288, 287, 286, 285, 283, 282, 281, 280, 279,
2071 278, 277, 276, 275, 274, 272, 271, 269, 268, 267,
2072 266, 265, 263, 262, 261, 260, 259, 258, 256, 255,
2073 254, 253, 252, 251, 250, 248, 247, 245, 244, 243,
2074 242, 241, 240, 239, 238, 237, 236, 235, 234, 233,
2075 232, 231, 230, 229, 228, 227, 226, 225, 224, 221,
2076 220, 219, 218, 217, 216, 215, 214, 212, 208, 206,
2077 204, 201, 196, 192, 184, 183, 182, 181, 180, 178,
2078 177, 174, 173, 172, 170, 169, 168, 166, 164, 163,
2079
2080 162, 160, 159, 157, 156, 153, 152, 151, 150, 149,
2081 148, 146, 145, 144, 142, 141, 140, 138, 137, 132,
2082 131, 130, 128, 127, 126, 124, 123, 122, 120, 116,
2083 111, 106, 105, 98, 97, 77, 72, 66, 53, 50,
2084 49, 43, 41, 39, 38, 24, 14, 11, 2201, 2201,
2085 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
2086 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
2087 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
2088 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
2089 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
2090
2091 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
2092 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201, 2201,
2093 2201, 2201, 2201, 2201, 2201
2094 } ;
2095
2096static yy_state_type yy_last_accepting_state;
2097static char *yy_last_accepting_cpos;
2098
2099extern int yy_flex_debug;
2101
2102static const flex_int16_t yy_rule_linenum[226] =
2103 { 0,
2104 149, 151, 153, 158, 159, 164, 165, 166, 178, 181,
2105 186, 193, 202, 211, 220, 229, 238, 247, 256, 265,
2106 276, 287, 297, 307, 317, 327, 337, 346, 356, 366,
2107 376, 386, 395, 404, 413, 422, 431, 440, 449, 458,
2108 467, 476, 485, 494, 503, 512, 521, 530, 539, 548,
2109 561, 570, 579, 588, 599, 610, 621, 632, 644, 655,
2110 666, 677, 688, 699, 710, 721, 730, 739, 748, 759,
2111 770, 779, 790, 801, 812, 823, 835, 847, 859, 871,
2112 883, 895, 906, 917, 926, 935, 944, 955, 966, 975,
2113 984, 995, 1006, 1017, 1028, 1039, 1050, 1061, 1072, 1083,
2114
2115 1092, 1101, 1110, 1122, 1133, 1143, 1154, 1163, 1172, 1187,
2116 1203, 1212, 1221, 1230, 1239, 1248, 1257, 1266, 1275, 1284,
2117 1293, 1302, 1312, 1336, 1360, 1369, 1379, 1389, 1398, 1408,
2118 1419, 1430, 1441, 1451, 1460, 1469, 1478, 1489, 1500, 1511,
2119 1522, 1533, 1542, 1551, 1560, 1569, 1578, 1587, 1596, 1605,
2120 1614, 1623, 1633, 1645, 1658, 1667, 1676, 1685, 1695, 1705,
2121 1714, 1725, 1735, 1744, 1754, 1764, 1773, 1782, 1791, 1800,
2122 1810, 1819, 1828, 1837, 1846, 1855, 1864, 1873, 1882, 1891,
2123 1900, 1909, 1918, 1927, 1936, 1945, 1954, 1963, 1972, 1981,
2124 1990, 1999, 2008, 2017, 2026, 2035, 2044, 2053, 2062, 2071,
2125
2126 2080, 2089, 2098, 2107, 2116, 2125, 2134, 2235, 2251, 2300,
2127 2308, 2323, 2324, 2325, 2326, 2327, 2328, 2330, 2348, 2361,
2128 2366, 2370, 2372, 2374, 2376
2129 } ;
2130
2131/* The intent behind this definition is that it'll catch
2132 * any uses of REJECT which flex missed.
2133 */
2134#define REJECT reject_used_but_not_detected
2135#define yymore() yymore_used_but_not_detected
2136#define YY_MORE_ADJ 0
2137#define YY_RESTORE_YY_MORE_OFFSET
2139#line 1 "dhcp6_lexer.ll"
2140/* Copyright (C) 2016-2024 Internet Systems Consortium, Inc. ("ISC")
2141
2142 This Source Code Form is subject to the terms of the Mozilla Public
2143 License, v. 2.0. If a copy of the MPL was not distributed with this
2144 file, You can obtain one at http://mozilla.org/MPL/2.0/. */
2145#line 8 "dhcp6_lexer.ll"
2146
2147/* Generated files do not make clang static analyser so happy */
2148#ifndef __clang_analyzer__
2149
2150#include <cctype>
2151#include <cerrno>
2152#include <climits>
2153#include <cstdint>
2154#include <cstdlib>
2155#include <string>
2156#include <dhcp6/parser_context.h>
2157#include <asiolink/io_address.h>
2158#include <boost/lexical_cast.hpp>
2159#include <exceptions/exceptions.h>
2160
2161/* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
2162
2163/* Work around an incompatibility in flex (at least versions
2164 2.5.31 through 2.5.33): it generates code that does
2165 not conform to C89. See Debian bug 333231
2166 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
2167# undef yywrap
2168# define yywrap() 1
2169
2170namespace {
2171
2172bool start_token_flag = false;
2173
2175unsigned int comment_start_line = 0;
2176
2177using namespace isc::dhcp;
2178
2179};
2180
2181/* To avoid the call to exit... oops! */
2182#define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
2183#line 2183 "dhcp6_lexer.cc"
2184/* noyywrap disables automatic rewinding for the next file to parse. Since we
2185 always parse only a single string, there's no need to do any wraps. And
2186 using yywrap requires linking with -lfl, which provides the default yywrap
2187 implementation that always returns 1 anyway. */
2188/* nounput simplifies the lexer, by removing support for putting a character
2189 back into the input stream. We never use such capability anyway. */
2190/* batch means that we'll never use the generated lexer interactively. */
2191/* avoid to get static global variables to remain with C++. */
2192/* in last resort %option reentrant */
2193/* Enables debug mode. To see the debug messages, one needs to also set
2194 yy_flex_debug to 1, then the debug messages will be printed on stderr. */
2195/* I have no idea what this option does, except it was specified in the bison
2196 examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
2197 be on the safe side and keep it. */
2198#define YY_NO_INPUT 1
2199
2200/* These are not token expressions yet, just convenience expressions that
2201 can be used during actual token definitions. Note some can match
2202 incorrect inputs (e.g., IP addresses) which must be checked. */
2203/* for errors */
2204#line 96 "dhcp6_lexer.ll"
2205/* This code run each time a pattern is matched. It updates the location
2206 by moving it ahead by yyleng bytes. yyleng specifies the length of the
2207 currently matched token. */
2208#define YY_USER_ACTION driver.loc_.columns(yyleng);
2209#line 2209 "dhcp6_lexer.cc"
2210#line 2210 "dhcp6_lexer.cc"
2211
2212#define INITIAL 0
2213#define COMMENT 1
2214#define DIR_ENTER 2
2215#define DIR_INCLUDE 3
2216#define DIR_EXIT 4
2217
2218#ifndef YY_NO_UNISTD_H
2219/* Special case for "unistd.h", since it is non-ANSI. We include it way
2220 * down here because we want the user's section 1 to have been scanned first.
2221 * The user has a chance to override it with an option.
2222 */
2223/* %if-c-only */
2224#include <unistd.h>
2225/* %endif */
2226/* %if-c++-only */
2227/* %endif */
2228#endif
2229
2230#ifndef YY_EXTRA_TYPE
2231#define YY_EXTRA_TYPE void *
2232#endif
2233
2234/* %if-c-only Reentrant structure and macros (non-C++). */
2235/* %if-reentrant */
2236/* %if-c-only */
2237
2238static int yy_init_globals ( void );
2239
2240/* %endif */
2241/* %if-reentrant */
2242/* %endif */
2243/* %endif End reentrant structures and macros. */
2244
2245/* Accessor methods to globals.
2246 These are made visible to non-reentrant scanners for convenience. */
2247
2248int yylex_destroy ( void );
2249
2250int yyget_debug ( void );
2251
2252void yyset_debug ( int debug_flag );
2253
2254YY_EXTRA_TYPE yyget_extra ( void );
2255
2256void yyset_extra ( YY_EXTRA_TYPE user_defined );
2257
2258FILE *yyget_in ( void );
2259
2260void yyset_in ( FILE * _in_str );
2261
2262FILE *yyget_out ( void );
2263
2264void yyset_out ( FILE * _out_str );
2265
2266 int yyget_leng ( void );
2267
2268char *yyget_text ( void );
2269
2270int yyget_lineno ( void );
2271
2272void yyset_lineno ( int _line_number );
2273
2274/* %if-bison-bridge */
2275/* %endif */
2276
2277/* Macros after this point can all be overridden by user definitions in
2278 * section 1.
2279 */
2280
2281#ifndef YY_SKIP_YYWRAP
2282#ifdef __cplusplus
2283extern "C" int yywrap ( void );
2284#else
2285extern int yywrap ( void );
2286#endif
2287#endif
2288
2289/* %not-for-header */
2290#ifndef YY_NO_UNPUT
2291
2292#endif
2293/* %ok-for-header */
2294
2295/* %endif */
2296
2297#ifndef yytext_ptr
2298static void yy_flex_strncpy ( char *, const char *, int );
2299#endif
2300
2301#ifdef YY_NEED_STRLEN
2302static int yy_flex_strlen ( const char * );
2303#endif
2304
2305#ifndef YY_NO_INPUT
2306/* %if-c-only Standard (non-C++) definition */
2307/* %not-for-header */
2308#ifdef __cplusplus
2309static int yyinput ( void );
2310#else
2311static int input ( void );
2312#endif
2313/* %ok-for-header */
2314
2315/* %endif */
2316#endif
2317
2318/* %if-c-only */
2319
2320/* %endif */
2321
2322/* Amount of stuff to slurp up with each read. */
2323#ifndef YY_READ_BUF_SIZE
2324#ifdef __ia64__
2325/* On IA-64, the buffer size is 16k, not 8k */
2326#define YY_READ_BUF_SIZE 16384
2327#else
2328#define YY_READ_BUF_SIZE 8192
2329#endif /* __ia64__ */
2330#endif
2331
2332/* Copy whatever the last rule matched to the standard output. */
2333#ifndef ECHO
2334/* %if-c-only Standard (non-C++) definition */
2335/* This used to be an fputs(), but since the string might contain NUL's,
2336 * we now use fwrite().
2337 */
2338#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2339/* %endif */
2340/* %if-c++-only C++ definition */
2341/* %endif */
2342#endif
2343
2344/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2345 * is returned in "result".
2346 */
2347#ifndef YY_INPUT
2348#define YY_INPUT(buf,result,max_size) \
2349/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2350 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2351 { \
2352 int c = '*'; \
2353 int n; \
2354 for ( n = 0; n < max_size && \
2355 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2356 buf[n] = (char) c; \
2357 if ( c == '\n' ) \
2358 buf[n++] = (char) c; \
2359 if ( c == EOF && ferror( yyin ) ) \
2360 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2361 result = n; \
2362 } \
2363 else \
2364 { \
2365 errno=0; \
2366 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2367 { \
2368 if( errno != EINTR) \
2369 { \
2370 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2371 break; \
2372 } \
2373 errno=0; \
2374 clearerr(yyin); \
2375 } \
2376 }\
2377\
2378/* %if-c++-only C++ definition \ */\
2379/* %endif */
2380
2381#endif
2382
2383/* No semi-colon after return; correct usage is to write "yyterminate();" -
2384 * we don't want an extra ';' after the "return" because that will cause
2385 * some compilers to complain about unreachable statements.
2386 */
2387#ifndef yyterminate
2388#define yyterminate() return YY_NULL
2389#endif
2390
2391/* Number of entries by which start-condition stack grows. */
2392#ifndef YY_START_STACK_INCR
2393#define YY_START_STACK_INCR 25
2394#endif
2395
2396/* Report a fatal error. */
2397#ifndef YY_FATAL_ERROR
2398/* %if-c-only */
2399#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2400/* %endif */
2401/* %if-c++-only */
2402/* %endif */
2403#endif
2404
2405/* %if-tables-serialization structures and prototypes */
2406/* %not-for-header */
2407/* %ok-for-header */
2408
2409/* %not-for-header */
2410/* %tables-yydmap generated elements */
2411/* %endif */
2412/* end tables serialization structures and prototypes */
2413
2414/* %ok-for-header */
2415
2416/* Default declaration of generated scanner - a define so the user can
2417 * easily add parameters.
2418 */
2419#ifndef YY_DECL
2420#define YY_DECL_IS_OURS 1
2421/* %if-c-only Standard (non-C++) definition */
2422
2423extern int yylex (void);
2424
2425#define YY_DECL int yylex (void)
2426/* %endif */
2427/* %if-c++-only C++ definition */
2428/* %endif */
2429#endif /* !YY_DECL */
2430
2431/* Code executed at the beginning of each rule, after yytext and yyleng
2432 * have been set up.
2433 */
2434#ifndef YY_USER_ACTION
2435#define YY_USER_ACTION
2436#endif
2437
2438/* Code executed at the end of each rule. */
2439#ifndef YY_BREAK
2440#define YY_BREAK /*LINTED*/break;
2441#endif
2442
2443/* %% [6.0] YY_RULE_SETUP definition goes here */
2444#define YY_RULE_SETUP \
2445 YY_USER_ACTION
2446
2447/* %not-for-header */
2451{
2452 yy_state_type yy_current_state;
2453 char *yy_cp, *yy_bp;
2455
2456 if ( !(yy_init) )
2457 {
2458 (yy_init) = 1;
2459
2460#ifdef YY_USER_INIT
2461 YY_USER_INIT;
2462#endif
2463
2464 if ( ! (yy_start) )
2465 (yy_start) = 1; /* first start state */
2466
2467 if ( ! yyin )
2468/* %if-c-only */
2469 yyin = stdin;
2470/* %endif */
2471/* %if-c++-only */
2472/* %endif */
2473
2474 if ( ! yyout )
2475/* %if-c-only */
2476 yyout = stdout;
2477/* %endif */
2478/* %if-c++-only */
2479/* %endif */
2480
2481 if ( ! YY_CURRENT_BUFFER ) {
2485 }
2486
2488 }
2489
2490 {
2491/* %% [7.0] user's declarations go here */
2492#line 102 "dhcp6_lexer.ll"
2493
2494
2495
2496#line 106 "dhcp6_lexer.ll"
2497 /* This part of the code is copied over to the verbatim to the top
2498 of the generated yylex function. Explanation:
2499 http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2500
2501 /* Code run each time yylex is called. */
2502 driver.loc_.step();
2503
2504 if (start_token_flag) {
2505 start_token_flag = false;
2506 switch (start_token_value) {
2508 default:
2513 return isc::dhcp::Dhcp6Parser::make_SUB_DHCP6(driver.loc_);
2517 return isc::dhcp::Dhcp6Parser::make_SUB_SUBNET6(driver.loc_);
2519 return isc::dhcp::Dhcp6Parser::make_SUB_POOL6(driver.loc_);
2521 return isc::dhcp::Dhcp6Parser::make_SUB_PD_POOL(driver.loc_);
2536 }
2537 }
2538
2539
2540#line 2540 "dhcp6_lexer.cc"
2541
2542 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2543 {
2544/* %% [8.0] yymore()-related code goes here */
2545 yy_cp = (yy_c_buf_p);
2546
2547 /* Support of yytext. */
2548 *yy_cp = (yy_hold_char);
2549
2550 /* yy_bp points to the position in yy_ch_buf of the start of
2551 * the current run.
2552 */
2553 yy_bp = yy_cp;
2554
2555/* %% [9.0] code to set up and find next match goes here */
2556 yy_current_state = (yy_start);
2557yy_match:
2558 do
2559 {
2560 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2561 if ( yy_accept[yy_current_state] )
2562 {
2563 (yy_last_accepting_state) = yy_current_state;
2564 (yy_last_accepting_cpos) = yy_cp;
2565 }
2566 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2567 {
2568 yy_current_state = (int) yy_def[yy_current_state];
2569 if ( yy_current_state >= 2202 )
2570 yy_c = yy_meta[yy_c];
2571 }
2572 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2573 ++yy_cp;
2574 }
2575 while ( yy_current_state != 2201 );
2576 yy_cp = (yy_last_accepting_cpos);
2577 yy_current_state = (yy_last_accepting_state);
2578
2579yy_find_action:
2580/* %% [10.0] code to find the action number goes here */
2581 yy_act = yy_accept[yy_current_state];
2582
2584
2585/* %% [11.0] code for yylineno update goes here */
2586
2587do_action: /* This label is used only to access EOF actions. */
2588
2589/* %% [12.0] debug code goes here */
2590 if ( yy_flex_debug )
2591 {
2592 if ( yy_act == 0 )
2593 fprintf( stderr, "--scanner backing up\n" );
2594 else if ( yy_act < 226 )
2595 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2596 (long)yy_rule_linenum[yy_act], yytext );
2597 else if ( yy_act == 226 )
2598 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2599 yytext );
2600 else if ( yy_act == 227 )
2601 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2602 else
2603 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2604 }
2605
2606 switch ( yy_act )
2607 { /* beginning of action switch */
2608/* %% [13.0] actions go here */
2609 case 0: /* must back up */
2610 /* undo the effects of YY_DO_BEFORE_ACTION */
2611 *yy_cp = (yy_hold_char);
2612 yy_cp = (yy_last_accepting_cpos);
2613 yy_current_state = (yy_last_accepting_state);
2614 goto yy_find_action;
2615
2616case 1:
2618#line 149 "dhcp6_lexer.ll"
2619;
2620 YY_BREAK
2621case 2:
2623#line 151 "dhcp6_lexer.ll"
2624;
2625 YY_BREAK
2626case 3:
2628#line 153 "dhcp6_lexer.ll"
2629{
2630 BEGIN(COMMENT);
2631 comment_start_line = driver.loc_.end.line;;
2632}
2633 YY_BREAK
2634case 4:
2636#line 158 "dhcp6_lexer.ll"
2637BEGIN(INITIAL);
2638 YY_BREAK
2639case 5:
2641#line 159 "dhcp6_lexer.ll"
2642;
2643 YY_BREAK
2644case YY_STATE_EOF(COMMENT):
2645#line 160 "dhcp6_lexer.ll"
2646{
2647 isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line);
2648}
2649 YY_BREAK
2650case 6:
2652#line 164 "dhcp6_lexer.ll"
2654 YY_BREAK
2655case 7:
2657#line 165 "dhcp6_lexer.ll"
2659 YY_BREAK
2660case 8:
2662#line 166 "dhcp6_lexer.ll"
2663{
2664 /* Include directive. */
2665
2666 /* Extract the filename. */
2667 std::string tmp(yytext+1);
2668 tmp.resize(tmp.size() - 1);
2669
2670 driver.includeFile(tmp);
2671}
2672 YY_BREAK
2676#line 175 "dhcp6_lexer.ll"
2677{
2678 isc_throw(Dhcp6ParseError, "Directive not closed.");
2679}
2680 YY_BREAK
2681case 9:
2683#line 178 "dhcp6_lexer.ll"
2684BEGIN(INITIAL);
2685 YY_BREAK
2686case 10:
2688#line 181 "dhcp6_lexer.ll"
2689{
2690 /* Ok, we found a with space. Let's ignore it and update loc variable. */
2691 driver.loc_.step();
2692}
2693 YY_BREAK
2694case 11:
2695/* rule 11 can match eol */
2697#line 186 "dhcp6_lexer.ll"
2698{
2699 /* Newline found. Let's update the location and continue. */
2700 driver.loc_.lines(yyleng);
2701 driver.loc_.step();
2702}
2703 YY_BREAK
2704case 12:
2706#line 193 "dhcp6_lexer.ll"
2707{
2708 switch(driver.ctx_) {
2711 default:
2712 return isc::dhcp::Dhcp6Parser::make_STRING("enable-updates", driver.loc_);
2713 }
2714}
2715 YY_BREAK
2716case 13:
2718#line 202 "dhcp6_lexer.ll"
2719{
2720 switch(driver.ctx_) {
2722 return isc::dhcp::Dhcp6Parser::make_SERVER_IP(driver.loc_);
2723 default:
2724 return isc::dhcp::Dhcp6Parser::make_STRING("server-ip", driver.loc_);
2725 }
2726}
2727 YY_BREAK
2728case 14:
2730#line 211 "dhcp6_lexer.ll"
2731{
2732 switch(driver.ctx_) {
2734 return isc::dhcp::Dhcp6Parser::make_SERVER_PORT(driver.loc_);
2735 default:
2736 return isc::dhcp::Dhcp6Parser::make_STRING("server-port", driver.loc_);
2737 }
2738}
2739 YY_BREAK
2740case 15:
2742#line 220 "dhcp6_lexer.ll"
2743{
2744 switch(driver.ctx_) {
2746 return isc::dhcp::Dhcp6Parser::make_SENDER_IP(driver.loc_);
2747 default:
2748 return isc::dhcp::Dhcp6Parser::make_STRING("sender-ip", driver.loc_);
2749 }
2750}
2751 YY_BREAK
2752case 16:
2754#line 229 "dhcp6_lexer.ll"
2755{
2756 switch(driver.ctx_) {
2758 return isc::dhcp::Dhcp6Parser::make_SENDER_PORT(driver.loc_);
2759 default:
2760 return isc::dhcp::Dhcp6Parser::make_STRING("sender-port", driver.loc_);
2761 }
2762}
2763 YY_BREAK
2764case 17:
2766#line 238 "dhcp6_lexer.ll"
2767{
2768 switch(driver.ctx_) {
2771 default:
2772 return isc::dhcp::Dhcp6Parser::make_STRING("max-queue-size", driver.loc_);
2773 }
2774}
2775 YY_BREAK
2776case 18:
2778#line 247 "dhcp6_lexer.ll"
2779{
2780 switch(driver.ctx_) {
2783 default:
2784 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-protocol", driver.loc_);
2785 }
2786}
2787 YY_BREAK
2788case 19:
2790#line 256 "dhcp6_lexer.ll"
2791{
2792 switch(driver.ctx_) {
2794 return isc::dhcp::Dhcp6Parser::make_NCR_FORMAT(driver.loc_);
2795 default:
2796 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-format", driver.loc_);
2797 }
2798}
2799 YY_BREAK
2800case 20:
2802#line 265 "dhcp6_lexer.ll"
2803{
2804 switch(driver.ctx_) {
2809 default:
2810 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-set", driver.loc_);
2811 }
2812}
2813 YY_BREAK
2814case 21:
2816#line 276 "dhcp6_lexer.ll"
2817{
2818 switch(driver.ctx_) {
2823 default:
2824 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-replacement", driver.loc_);
2825 }
2826}
2827 YY_BREAK
2828case 22:
2830#line 287 "dhcp6_lexer.ll"
2831{
2832 /* dhcp-ddns value keywords are case insensitive */
2833 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2834 return isc::dhcp::Dhcp6Parser::make_UDP(driver.loc_);
2835 }
2836 std::string tmp(yytext+1);
2837 tmp.resize(tmp.size() - 1);
2838 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2839}
2840 YY_BREAK
2841case 23:
2843#line 297 "dhcp6_lexer.ll"
2844{
2845 /* dhcp-ddns value keywords are case insensitive */
2846 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2847 return isc::dhcp::Dhcp6Parser::make_TCP(driver.loc_);
2848 }
2849 std::string tmp(yytext+1);
2850 tmp.resize(tmp.size() - 1);
2851 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2852}
2853 YY_BREAK
2854case 24:
2856#line 307 "dhcp6_lexer.ll"
2857{
2858 /* dhcp-ddns value keywords are case insensitive */
2859 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) {
2860 return isc::dhcp::Dhcp6Parser::make_JSON(driver.loc_);
2861 }
2862 std::string tmp(yytext+1);
2863 tmp.resize(tmp.size() - 1);
2864 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2865}
2866 YY_BREAK
2867case 25:
2869#line 317 "dhcp6_lexer.ll"
2870{
2871 /* dhcp-ddns value keywords are case insensitive */
2874 }
2875 std::string tmp(yytext+1);
2876 tmp.resize(tmp.size() - 1);
2877 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2878}
2879 YY_BREAK
2880case 26:
2882#line 327 "dhcp6_lexer.ll"
2883{
2884 /* dhcp-ddns value keywords are case insensitive */
2887 }
2888 std::string tmp(yytext+1);
2889 tmp.resize(tmp.size() - 1);
2890 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2891}
2892 YY_BREAK
2893case 27:
2895#line 337 "dhcp6_lexer.ll"
2896{
2897 switch(driver.ctx_) {
2899 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2900 default:
2901 return isc::dhcp::Dhcp6Parser::make_STRING("never", driver.loc_);
2902 }
2903}
2904 YY_BREAK
2905case 28:
2907#line 346 "dhcp6_lexer.ll"
2908{
2909 /* dhcp-ddns value keywords are case insensitive */
2911 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2912 }
2913 std::string tmp(yytext+1);
2914 tmp.resize(tmp.size() - 1);
2915 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2916}
2917 YY_BREAK
2918case 29:
2920#line 356 "dhcp6_lexer.ll"
2921{
2922 /* dhcp-ddns value keywords are case insensitive */
2924 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2925 }
2926 std::string tmp(yytext+1);
2927 tmp.resize(tmp.size() - 1);
2928 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2929}
2930 YY_BREAK
2931case 30:
2933#line 366 "dhcp6_lexer.ll"
2934{
2935 /* dhcp-ddns value keywords are case insensitive */
2937 return isc::dhcp::Dhcp6Parser::make_ALWAYS(driver.loc_);
2938 }
2939 std::string tmp(yytext+1);
2940 tmp.resize(tmp.size() - 1);
2941 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2942}
2943 YY_BREAK
2944case 31:
2946#line 376 "dhcp6_lexer.ll"
2947{
2948 /* dhcp-ddns value keywords are case insensitive */
2951 }
2952 std::string tmp(yytext+1);
2953 tmp.resize(tmp.size() - 1);
2954 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2955}
2956 YY_BREAK
2957case 32:
2959#line 386 "dhcp6_lexer.ll"
2960{
2961 switch(driver.ctx_) {
2963 return isc::dhcp::Dhcp6Parser::make_DHCP6(driver.loc_);
2964 default:
2965 return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp6", driver.loc_);
2966 }
2967}
2968 YY_BREAK
2969case 33:
2971#line 395 "dhcp6_lexer.ll"
2972{
2973 switch(driver.ctx_) {
2976 default:
2977 return isc::dhcp::Dhcp6Parser::make_STRING("data-directory", driver.loc_);
2978 }
2979}
2980 YY_BREAK
2981case 34:
2983#line 404 "dhcp6_lexer.ll"
2984{
2985 switch(driver.ctx_) {
2988 default:
2989 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", driver.loc_);
2990 }
2991}
2992 YY_BREAK
2993case 35:
2995#line 413 "dhcp6_lexer.ll"
2996{
2997 switch(driver.ctx_) {
2999 return isc::dhcp::Dhcp6Parser::make_INTERFACES(driver.loc_);
3000 default:
3001 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces", driver.loc_);
3002 }
3003}
3004 YY_BREAK
3005case 36:
3007#line 422 "dhcp6_lexer.ll"
3008{
3009 switch(driver.ctx_) {
3011 return isc::dhcp::Dhcp6Parser::make_RE_DETECT(driver.loc_);
3012 default:
3013 return isc::dhcp::Dhcp6Parser::make_STRING("re-detect", driver.loc_);
3014 }
3015}
3016 YY_BREAK
3017case 37:
3019#line 431 "dhcp6_lexer.ll"
3020{
3021 switch(driver.ctx_) {
3024 default:
3025 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-require-all", driver.loc_);
3026 }
3027}
3028 YY_BREAK
3029case 38:
3031#line 440 "dhcp6_lexer.ll"
3032{
3033 switch(driver.ctx_) {
3036 default:
3037 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-retry-wait-time", driver.loc_);
3038 }
3039}
3040 YY_BREAK
3041case 39:
3043#line 449 "dhcp6_lexer.ll"
3044{
3045 switch(driver.ctx_) {
3048 default:
3049 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-max-retries", driver.loc_);
3050 }
3051}
3052 YY_BREAK
3053case 40:
3055#line 458 "dhcp6_lexer.ll"
3056{
3057 switch(driver.ctx_) {
3060 default:
3061 return isc::dhcp::Dhcp6Parser::make_STRING("sanity-checks", driver.loc_);
3062 }
3063}
3064 YY_BREAK
3065case 41:
3067#line 467 "dhcp6_lexer.ll"
3068{
3069 switch(driver.ctx_) {
3072 default:
3073 return isc::dhcp::Dhcp6Parser::make_STRING("lease-checks", driver.loc_);
3074 }
3075}
3076 YY_BREAK
3077case 42:
3079#line 476 "dhcp6_lexer.ll"
3080{
3081 switch(driver.ctx_) {
3084 default:
3085 return isc::dhcp::Dhcp6Parser::make_STRING("extended-info-checks", driver.loc_);
3086 }
3087}
3088 YY_BREAK
3089case 43:
3091#line 485 "dhcp6_lexer.ll"
3092{
3093 switch(driver.ctx_) {
3096 default:
3097 return isc::dhcp::Dhcp6Parser::make_STRING("lease-database", driver.loc_);
3098 }
3099}
3100 YY_BREAK
3101case 44:
3103#line 494 "dhcp6_lexer.ll"
3104{
3105 switch(driver.ctx_) {
3108 default:
3109 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-database", driver.loc_);
3110 }
3111}
3112 YY_BREAK
3113case 45:
3115#line 503 "dhcp6_lexer.ll"
3116{
3117 switch(driver.ctx_) {
3120 default:
3121 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-databases", driver.loc_);
3122 }
3123}
3124 YY_BREAK
3125case 46:
3127#line 512 "dhcp6_lexer.ll"
3128{
3129 switch(driver.ctx_) {
3132 default:
3133 return isc::dhcp::Dhcp6Parser::make_STRING("config-control", driver.loc_);
3134 }
3135}
3136 YY_BREAK
3137case 47:
3139#line 521 "dhcp6_lexer.ll"
3140{
3141 switch(driver.ctx_) {
3144 default:
3145 return isc::dhcp::Dhcp6Parser::make_STRING("config-databases", driver.loc_);
3146 }
3147}
3148 YY_BREAK
3149case 48:
3151#line 530 "dhcp6_lexer.ll"
3152{
3153 switch(driver.ctx_) {
3156 default:
3157 return isc::dhcp::Dhcp6Parser::make_STRING("config-fetch-wait-time", driver.loc_);
3158 }
3159}
3160 YY_BREAK
3161case 49:
3163#line 539 "dhcp6_lexer.ll"
3164{
3165 switch(driver.ctx_) {
3167 return isc::dhcp::Dhcp6Parser::make_READONLY(driver.loc_);
3168 default:
3169 return isc::dhcp::Dhcp6Parser::make_STRING("readonly", driver.loc_);
3170 }
3171}
3172 YY_BREAK
3173case 50:
3175#line 548 "dhcp6_lexer.ll"
3176{
3177 switch(driver.ctx_) {
3183 return isc::dhcp::Dhcp6Parser::make_TYPE(driver.loc_);
3184 default:
3185 return isc::dhcp::Dhcp6Parser::make_STRING("type", driver.loc_);
3186 }
3187}
3188 YY_BREAK
3189case 51:
3191#line 561 "dhcp6_lexer.ll"
3192{
3193 switch(driver.ctx_) {
3195 return isc::dhcp::Dhcp6Parser::make_MEMFILE(driver.loc_);
3196 default:
3197 return isc::dhcp::Dhcp6Parser::make_STRING("memfile", driver.loc_);
3198 }
3199}
3200 YY_BREAK
3201case 52:
3203#line 570 "dhcp6_lexer.ll"
3204{
3205 switch(driver.ctx_) {
3207 return isc::dhcp::Dhcp6Parser::make_MYSQL(driver.loc_);
3208 default:
3209 return isc::dhcp::Dhcp6Parser::make_STRING("mysql", driver.loc_);
3210 }
3211}
3212 YY_BREAK
3213case 53:
3215#line 579 "dhcp6_lexer.ll"
3216{
3217 switch(driver.ctx_) {
3219 return isc::dhcp::Dhcp6Parser::make_POSTGRESQL(driver.loc_);
3220 default:
3221 return isc::dhcp::Dhcp6Parser::make_STRING("postgresql", driver.loc_);
3222 }
3223}
3224 YY_BREAK
3225case 54:
3227#line 588 "dhcp6_lexer.ll"
3228{
3229 switch(driver.ctx_) {
3233 return isc::dhcp::Dhcp6Parser::make_USER(driver.loc_);
3234 default:
3235 return isc::dhcp::Dhcp6Parser::make_STRING("user", driver.loc_);
3236 }
3237}
3238 YY_BREAK
3239case 55:
3241#line 599 "dhcp6_lexer.ll"
3242{
3243 switch(driver.ctx_) {
3247 return isc::dhcp::Dhcp6Parser::make_PASSWORD(driver.loc_);
3248 default:
3249 return isc::dhcp::Dhcp6Parser::make_STRING("password", driver.loc_);
3250 }
3251}
3252 YY_BREAK
3253case 56:
3255#line 610 "dhcp6_lexer.ll"
3256{
3257 switch(driver.ctx_) {
3261 return isc::dhcp::Dhcp6Parser::make_HOST(driver.loc_);
3262 default:
3263 return isc::dhcp::Dhcp6Parser::make_STRING("host", driver.loc_);
3264 }
3265}
3266 YY_BREAK
3267case 57:
3269#line 621 "dhcp6_lexer.ll"
3270{
3271 switch(driver.ctx_) {
3275 return isc::dhcp::Dhcp6Parser::make_PORT(driver.loc_);
3276 default:
3277 return isc::dhcp::Dhcp6Parser::make_STRING("port", driver.loc_);
3278 }
3279}
3280 YY_BREAK
3281case 58:
3283#line 632 "dhcp6_lexer.ll"
3284{
3285 switch(driver.ctx_) {
3290 return isc::dhcp::Dhcp6Parser::make_PERSIST(driver.loc_);
3291 default:
3292 return isc::dhcp::Dhcp6Parser::make_STRING("persist", driver.loc_);
3293 }
3294}
3295 YY_BREAK
3296case 59:
3298#line 644 "dhcp6_lexer.ll"
3299{
3300 switch(driver.ctx_) {
3305 default:
3306 return isc::dhcp::Dhcp6Parser::make_STRING("lfc-interval", driver.loc_);
3307 }
3308}
3309 YY_BREAK
3310case 60:
3312#line 655 "dhcp6_lexer.ll"
3313{
3314 switch(driver.ctx_) {
3319 default:
3320 return isc::dhcp::Dhcp6Parser::make_STRING("connect-timeout", driver.loc_);
3321 }
3322}
3323 YY_BREAK
3324case 61:
3326#line 666 "dhcp6_lexer.ll"
3327{
3328 switch(driver.ctx_) {
3333 default:
3334 return isc::dhcp::Dhcp6Parser::make_STRING("read-timeout", driver.loc_);
3335 }
3336}
3337 YY_BREAK
3338case 62:
3340#line 677 "dhcp6_lexer.ll"
3341{
3342 switch(driver.ctx_) {
3347 default:
3348 return isc::dhcp::Dhcp6Parser::make_STRING("write-timeout", driver.loc_);
3349 }
3350}
3351 YY_BREAK
3352case 63:
3354#line 688 "dhcp6_lexer.ll"
3355{
3356 switch(driver.ctx_) {
3361 default:
3362 return isc::dhcp::Dhcp6Parser::make_STRING("tcp-user-timeout", driver.loc_);
3363 }
3364}
3365 YY_BREAK
3366case 64:
3368#line 699 "dhcp6_lexer.ll"
3369{
3370 switch(driver.ctx_) {
3375 default:
3376 return isc::dhcp::Dhcp6Parser::make_STRING("reconnect-wait-time", driver.loc_);
3377 }
3378}
3379 YY_BREAK
3380case 65:
3382#line 710 "dhcp6_lexer.ll"
3383{
3384 switch(driver.ctx_) {
3388 return isc::dhcp::Dhcp6Parser::make_ON_FAIL(driver.loc_);
3389 default:
3390 return isc::dhcp::Dhcp6Parser::make_STRING("on-fail", driver.loc_);
3391 }
3392}
3393 YY_BREAK
3394case 66:
3396#line 721 "dhcp6_lexer.ll"
3397{
3398 switch(driver.ctx_) {
3401 default:
3402 return isc::dhcp::Dhcp6Parser::make_STRING("stop-retry-exit", driver.loc_);
3403 }
3404}
3405 YY_BREAK
3406case 67:
3408#line 730 "dhcp6_lexer.ll"
3409{
3410 switch(driver.ctx_) {
3413 default:
3414 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-exit", driver.loc_);
3415 }
3416}
3417 YY_BREAK
3418case 68:
3420#line 739 "dhcp6_lexer.ll"
3421{
3422 switch(driver.ctx_) {
3425 default:
3426 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-continue", driver.loc_);
3427 }
3428}
3429 YY_BREAK
3430case 69:
3432#line 748 "dhcp6_lexer.ll"
3433{
3434 switch(driver.ctx_) {
3439 default:
3440 return isc::dhcp::Dhcp6Parser::make_STRING("retry-on-startup", driver.loc_);
3441 }
3442}
3443 YY_BREAK
3444case 70:
3446#line 759 "dhcp6_lexer.ll"
3447{
3448 switch(driver.ctx_) {
3453 default:
3454 return isc::dhcp::Dhcp6Parser::make_STRING("max-reconnect-tries", driver.loc_);
3455 }
3456}
3457 YY_BREAK
3458case 71:
3460#line 770 "dhcp6_lexer.ll"
3461{
3462 switch(driver.ctx_) {
3465 default:
3466 return isc::dhcp::Dhcp6Parser::make_STRING("max-row-errors", driver.loc_);
3467 }
3468}
3469 YY_BREAK
3470case 72:
3472#line 779 "dhcp6_lexer.ll"
3473{
3474 switch(driver.ctx_) {
3479 default:
3480 return isc::dhcp::Dhcp6Parser::make_STRING("trust-anchor", driver.loc_);
3481 }
3482}
3483 YY_BREAK
3484case 73:
3486#line 790 "dhcp6_lexer.ll"
3487{
3488 switch(driver.ctx_) {
3492 return isc::dhcp::Dhcp6Parser::make_CERT_FILE(driver.loc_);
3493 default:
3494 return isc::dhcp::Dhcp6Parser::make_STRING("cert-file", driver.loc_);
3495 }
3496}
3497 YY_BREAK
3498case 74:
3500#line 801 "dhcp6_lexer.ll"
3501{
3502 switch(driver.ctx_) {
3506 return isc::dhcp::Dhcp6Parser::make_KEY_FILE(driver.loc_);
3507 default:
3508 return isc::dhcp::Dhcp6Parser::make_STRING("key-file", driver.loc_);
3509 }
3510}
3511 YY_BREAK
3512case 75:
3514#line 812 "dhcp6_lexer.ll"
3515{
3516 switch(driver.ctx_) {
3520 return isc::dhcp::Dhcp6Parser::make_CIPHER_LIST(driver.loc_);
3521 default:
3522 return isc::dhcp::Dhcp6Parser::make_STRING("cipher-list", driver.loc_);
3523 }
3524}
3525 YY_BREAK
3526case 76:
3528#line 823 "dhcp6_lexer.ll"
3529{
3530 switch(driver.ctx_) {
3536 default:
3537 return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_);
3538 }
3539}
3540 YY_BREAK
3541case 77:
3543#line 835 "dhcp6_lexer.ll"
3544{
3545 switch(driver.ctx_) {
3551 default:
3552 return isc::dhcp::Dhcp6Parser::make_STRING("min-preferred-lifetime", driver.loc_);
3553 }
3554}
3555 YY_BREAK
3556case 78:
3558#line 847 "dhcp6_lexer.ll"
3559{
3560 switch(driver.ctx_) {
3566 default:
3567 return isc::dhcp::Dhcp6Parser::make_STRING("max-preferred-lifetime", driver.loc_);
3568 }
3569}
3570 YY_BREAK
3571case 79:
3573#line 859 "dhcp6_lexer.ll"
3574{
3575 switch(driver.ctx_) {
3581 default:
3582 return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_);
3583 }
3584}
3585 YY_BREAK
3586case 80:
3588#line 871 "dhcp6_lexer.ll"
3589{
3590 switch(driver.ctx_) {
3596 default:
3597 return isc::dhcp::Dhcp6Parser::make_STRING("min-valid-lifetime", driver.loc_);
3598 }
3599}
3600 YY_BREAK
3601case 81:
3603#line 883 "dhcp6_lexer.ll"
3604{
3605 switch(driver.ctx_) {
3611 default:
3612 return isc::dhcp::Dhcp6Parser::make_STRING("max-valid-lifetime", driver.loc_);
3613 }
3614}
3615 YY_BREAK
3616case 82:
3618#line 895 "dhcp6_lexer.ll"
3619{
3620 switch(driver.ctx_) {
3624 return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_);
3625 default:
3626 return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_);
3627 }
3628}
3629 YY_BREAK
3630case 83:
3632#line 906 "dhcp6_lexer.ll"
3633{
3634 switch(driver.ctx_) {
3639 default:
3640 return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_);
3641 }
3642}
3643 YY_BREAK
3644case 84:
3646#line 917 "dhcp6_lexer.ll"
3647{
3648 switch(driver.ctx_) {
3651 default:
3652 return isc::dhcp::Dhcp6Parser::make_STRING("decline-probation-period", driver.loc_);
3653 }
3654}
3655 YY_BREAK
3656case 85:
3658#line 926 "dhcp6_lexer.ll"
3659{
3660 switch(driver.ctx_) {
3662 return isc::dhcp::Dhcp6Parser::make_SERVER_TAG(driver.loc_);
3663 default:
3664 return isc::dhcp::Dhcp6Parser::make_STRING("server-tag", driver.loc_);
3665 }
3666}
3667 YY_BREAK
3668case 86:
3670#line 935 "dhcp6_lexer.ll"
3671{
3672 switch(driver.ctx_) {
3675 default:
3676 return isc::dhcp::Dhcp6Parser::make_STRING("parked-packet-limit", driver.loc_);
3677 }
3678}
3679 YY_BREAK
3680case 87:
3682#line 944 "dhcp6_lexer.ll"
3683{
3684 switch(driver.ctx_) {
3688 return isc::dhcp::Dhcp6Parser::make_ALLOCATOR(driver.loc_);
3689 default:
3690 return isc::dhcp::Dhcp6Parser::make_STRING("allocator", driver.loc_);
3691 }
3692}
3693 YY_BREAK
3694case 88:
3696#line 955 "dhcp6_lexer.ll"
3697{
3698 switch(driver.ctx_) {
3703 default:
3704 return isc::dhcp::Dhcp6Parser::make_STRING("pd-allocator", driver.loc_);
3705 }
3706}
3707 YY_BREAK
3708case 89:
3710#line 966 "dhcp6_lexer.ll"
3711{
3712 switch(driver.ctx_) {
3715 default:
3716 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3717 }
3718}
3719 YY_BREAK
3720case 90:
3722#line 975 "dhcp6_lexer.ll"
3723{
3724 switch(driver.ctx_) {
3727 default:
3728 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3729 }
3730}
3731 YY_BREAK
3732case 91:
3734#line 984 "dhcp6_lexer.ll"
3735{
3736 switch(driver.ctx_) {
3741 default:
3742 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-send-updates", driver.loc_);
3743 }
3744}
3745 YY_BREAK
3746case 92:
3748#line 995 "dhcp6_lexer.ll"
3749{
3750 switch(driver.ctx_) {
3755 default:
3756 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-no-update", driver.loc_);
3757 }
3758}
3759 YY_BREAK
3760case 93:
3762#line 1006 "dhcp6_lexer.ll"
3763{
3764 switch(driver.ctx_) {
3769 default:
3770 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-client-update", driver.loc_);
3771 }
3772}
3773 YY_BREAK
3774case 94:
3776#line 1017 "dhcp6_lexer.ll"
3777{
3778 switch(driver.ctx_) {
3783 default:
3784 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3785 }
3786}
3787 YY_BREAK
3788case 95:
3790#line 1028 "dhcp6_lexer.ll"
3791{
3792 switch(driver.ctx_) {
3797 default:
3798 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-generated-prefix", driver.loc_);
3799 }
3800}
3801 YY_BREAK
3802case 96:
3804#line 1039 "dhcp6_lexer.ll"
3805{
3806 switch(driver.ctx_) {
3811 default:
3812 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
3813 }
3814}
3815 YY_BREAK
3816case 97:
3818#line 1050 "dhcp6_lexer.ll"
3819{
3820 switch(driver.ctx_) {
3825 default:
3826 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-update-on-renew", driver.loc_);
3827 }
3828}
3829 YY_BREAK
3830case 98:
3832#line 1061 "dhcp6_lexer.ll"
3833{
3834 switch(driver.ctx_) {
3839 default:
3840 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
3841 }
3842}
3843 YY_BREAK
3844case 99:
3846#line 1072 "dhcp6_lexer.ll"
3847{
3848 switch(driver.ctx_) {
3853 default:
3854 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-conflict-resolution-mode", driver.loc_);
3855 }
3856}
3857 YY_BREAK
3858case 100:
3860#line 1083 "dhcp6_lexer.ll"
3861{
3864 }
3865 std::string tmp(yytext+1);
3866 tmp.resize(tmp.size() - 1);
3867 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3868}
3869 YY_BREAK
3870case 101:
3872#line 1092 "dhcp6_lexer.ll"
3873{
3876 }
3877 std::string tmp(yytext+1);
3878 tmp.resize(tmp.size() - 1);
3879 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3880}
3881 YY_BREAK
3882case 102:
3884#line 1101 "dhcp6_lexer.ll"
3885{
3888 }
3889 std::string tmp(yytext+1);
3890 tmp.resize(tmp.size() - 1);
3891 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3892}
3893 YY_BREAK
3894case 103:
3896#line 1110 "dhcp6_lexer.ll"
3897{
3900 }
3901 std::string tmp(yytext+1);
3902 tmp.resize(tmp.size() - 1);
3903 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3904}
3905 YY_BREAK
3906case 104:
3908#line 1122 "dhcp6_lexer.ll"
3909{
3910 switch(driver.ctx_) {
3915 default:
3916 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-percent", driver.loc_);
3917 }
3918}
3919 YY_BREAK
3920case 105:
3922#line 1133 "dhcp6_lexer.ll"
3923{
3924 switch(driver.ctx_) {
3927 return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_);
3928 default:
3929 return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_);
3930 }
3931}
3932 YY_BREAK
3933case 106:
3935#line 1143 "dhcp6_lexer.ll"
3936{
3937 switch(driver.ctx_) {
3942 default:
3943 return isc::dhcp::Dhcp6Parser::make_STRING("store-extended-info", driver.loc_);
3944 }
3945}
3946 YY_BREAK
3947case 107:
3949#line 1154 "dhcp6_lexer.ll"
3950{
3951 switch (driver.ctx_) {
3953 return Dhcp6Parser::make_SHARED_NETWORKS(driver.loc_);
3954 default:
3955 return Dhcp6Parser::make_STRING("shared-networks", driver.loc_);
3956 }
3957}
3958 YY_BREAK
3959case 108:
3961#line 1163 "dhcp6_lexer.ll"
3962{
3963 switch(driver.ctx_) {
3965 return isc::dhcp::Dhcp6Parser::make_OPTION_DEF(driver.loc_);
3966 default:
3967 return isc::dhcp::Dhcp6Parser::make_STRING("option-def", driver.loc_);
3968 }
3969}
3970 YY_BREAK
3971case 109:
3973#line 1172 "dhcp6_lexer.ll"
3974{
3975 switch(driver.ctx_) {
3983 return isc::dhcp::Dhcp6Parser::make_OPTION_DATA(driver.loc_);
3984 default:
3985 return isc::dhcp::Dhcp6Parser::make_STRING("option-data", driver.loc_);
3986 }
3987}
3988 YY_BREAK
3989case 110:
3991#line 1187 "dhcp6_lexer.ll"
3992{
3993 switch(driver.ctx_) {
4002 return isc::dhcp::Dhcp6Parser::make_NAME(driver.loc_);
4003 default:
4004 return isc::dhcp::Dhcp6Parser::make_STRING("name", driver.loc_);
4005 }
4006}
4007 YY_BREAK
4008case 111:
4010#line 1203 "dhcp6_lexer.ll"
4011{
4012 switch(driver.ctx_) {
4014 return isc::dhcp::Dhcp6Parser::make_DATA(driver.loc_);
4015 default:
4016 return isc::dhcp::Dhcp6Parser::make_STRING("data", driver.loc_);
4017 }
4018}
4019 YY_BREAK
4020case 112:
4022#line 1212 "dhcp6_lexer.ll"
4023{
4024 switch(driver.ctx_) {
4026 return isc::dhcp::Dhcp6Parser::make_ALWAYS_SEND(driver.loc_);
4027 default:
4028 return isc::dhcp::Dhcp6Parser::make_STRING("always-send", driver.loc_);
4029 }
4030}
4031 YY_BREAK
4032case 113:
4034#line 1221 "dhcp6_lexer.ll"
4035{
4036 switch(driver.ctx_) {
4038 return isc::dhcp::Dhcp6Parser::make_NEVER_SEND(driver.loc_);
4039 default:
4040 return isc::dhcp::Dhcp6Parser::make_STRING("never-send", driver.loc_);
4041 }
4042}
4043 YY_BREAK
4044case 114:
4046#line 1230 "dhcp6_lexer.ll"
4047{
4048 switch(driver.ctx_) {
4050 return isc::dhcp::Dhcp6Parser::make_POOLS(driver.loc_);
4051 default:
4052 return isc::dhcp::Dhcp6Parser::make_STRING("pools", driver.loc_);
4053 }
4054}
4055 YY_BREAK
4056case 115:
4058#line 1239 "dhcp6_lexer.ll"
4059{
4060 switch(driver.ctx_) {
4062 return isc::dhcp::Dhcp6Parser::make_PD_POOLS(driver.loc_);
4063 default:
4064 return isc::dhcp::Dhcp6Parser::make_STRING("pd-pools", driver.loc_);
4065 }
4066}
4067 YY_BREAK
4068case 116:
4070#line 1248 "dhcp6_lexer.ll"
4071{
4072 switch(driver.ctx_) {
4074 return isc::dhcp::Dhcp6Parser::make_PREFIX(driver.loc_);
4075 default:
4076 return isc::dhcp::Dhcp6Parser::make_STRING("prefix", driver.loc_);
4077 }
4078}
4079 YY_BREAK
4080case 117:
4082#line 1257 "dhcp6_lexer.ll"
4083{
4084 switch(driver.ctx_) {
4086 return isc::dhcp::Dhcp6Parser::make_PREFIX_LEN(driver.loc_);
4087 default:
4088 return isc::dhcp::Dhcp6Parser::make_STRING("prefix-len", driver.loc_);
4089 }
4090}
4091 YY_BREAK
4092case 118:
4094#line 1266 "dhcp6_lexer.ll"
4095{
4096 switch(driver.ctx_) {
4099 default:
4100 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix", driver.loc_);
4101 }
4102}
4103 YY_BREAK
4104case 119:
4106#line 1275 "dhcp6_lexer.ll"
4107{
4108 switch(driver.ctx_) {
4111 default:
4112 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix-len", driver.loc_);
4113 }
4114}
4115 YY_BREAK
4116case 120:
4118#line 1284 "dhcp6_lexer.ll"
4119{
4120 switch(driver.ctx_) {
4123 default:
4124 return isc::dhcp::Dhcp6Parser::make_STRING("delegated-len", driver.loc_);
4125 }
4126}
4127 YY_BREAK
4128case 121:
4130#line 1293 "dhcp6_lexer.ll"
4131{
4132 switch(driver.ctx_) {
4134 return isc::dhcp::Dhcp6Parser::make_POOL(driver.loc_);
4135 default:
4136 return isc::dhcp::Dhcp6Parser::make_STRING("pool", driver.loc_);
4137 }
4138}
4139 YY_BREAK
4140case 122:
4142#line 1302 "dhcp6_lexer.ll"
4143{
4144 switch(driver.ctx_) {
4147 return isc::dhcp::Dhcp6Parser::make_POOL_ID(driver.loc_);
4148 default:
4149 return isc::dhcp::Dhcp6Parser::make_STRING("pool-id", driver.loc_);
4150 }
4151}
4152 YY_BREAK
4153case 123:
4155#line 1312 "dhcp6_lexer.ll"
4156{
4157 switch(driver.ctx_) {
4175 default:
4176 return isc::dhcp::Dhcp6Parser::make_STRING("user-context", driver.loc_);
4177 }
4178}
4179 YY_BREAK
4180case 124:
4182#line 1336 "dhcp6_lexer.ll"
4183{
4184 switch(driver.ctx_) {
4201 return isc::dhcp::Dhcp6Parser::make_COMMENT(driver.loc_);
4202 default:
4203 return isc::dhcp::Dhcp6Parser::make_STRING("comment", driver.loc_);
4204 }
4205}
4206 YY_BREAK
4207case 125:
4209#line 1360 "dhcp6_lexer.ll"
4210{
4211 switch(driver.ctx_) {
4213 return isc::dhcp::Dhcp6Parser::make_SUBNET(driver.loc_);
4214 default:
4215 return isc::dhcp::Dhcp6Parser::make_STRING("subnet", driver.loc_);
4216 }
4217}
4218 YY_BREAK
4219case 126:
4221#line 1369 "dhcp6_lexer.ll"
4222{
4223 switch(driver.ctx_) {
4226 return isc::dhcp::Dhcp6Parser::make_INTERFACE(driver.loc_);
4227 default:
4228 return isc::dhcp::Dhcp6Parser::make_STRING("interface", driver.loc_);
4229 }
4230}
4231 YY_BREAK
4232case 127:
4234#line 1379 "dhcp6_lexer.ll"
4235{
4236 switch(driver.ctx_) {
4240 default:
4241 return isc::dhcp::Dhcp6Parser::make_STRING("interface-id", driver.loc_);
4242 }
4243}
4244 YY_BREAK
4245case 128:
4247#line 1389 "dhcp6_lexer.ll"
4248{
4249 switch(driver.ctx_) {
4251 return isc::dhcp::Dhcp6Parser::make_ID(driver.loc_);
4252 default:
4253 return isc::dhcp::Dhcp6Parser::make_STRING("id", driver.loc_);
4254 }
4255}
4256 YY_BREAK
4257case 129:
4259#line 1398 "dhcp6_lexer.ll"
4260{
4261 switch(driver.ctx_) {
4265 default:
4266 return isc::dhcp::Dhcp6Parser::make_STRING("rapid-commit", driver.loc_);
4267 }
4268}
4269 YY_BREAK
4270case 130:
4272#line 1408 "dhcp6_lexer.ll"
4273{
4274 switch(driver.ctx_) {
4279 default:
4280 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-global", driver.loc_);
4281 }
4282}
4283 YY_BREAK
4284case 131:
4286#line 1419 "dhcp6_lexer.ll"
4287{
4288 switch(driver.ctx_) {
4293 default:
4294 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-in-subnet", driver.loc_);
4295 }
4296}
4297 YY_BREAK
4298case 132:
4300#line 1430 "dhcp6_lexer.ll"
4301{
4302 switch(driver.ctx_) {
4307 default:
4308 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-out-of-pool", driver.loc_);
4309 }
4310}
4311 YY_BREAK
4312case 133:
4314#line 1441 "dhcp6_lexer.ll"
4315{
4316 switch(driver.ctx_) {
4319 return isc::dhcp::Dhcp6Parser::make_CODE(driver.loc_);
4320 default:
4321 return isc::dhcp::Dhcp6Parser::make_STRING("code", driver.loc_);
4322 }
4323}
4324 YY_BREAK
4325case 134:
4327#line 1451 "dhcp6_lexer.ll"
4328{
4329 switch(driver.ctx_) {
4331 return isc::dhcp::Dhcp6Parser::make_MAC_SOURCES(driver.loc_);
4332 default:
4333 return isc::dhcp::Dhcp6Parser::make_STRING("mac-sources", driver.loc_);
4334 }
4335}
4336 YY_BREAK
4337case 135:
4339#line 1460 "dhcp6_lexer.ll"
4340{
4341 switch(driver.ctx_) {
4344 default:
4345 return isc::dhcp::Dhcp6Parser::make_STRING("relay-supplied-options", driver.loc_);
4346 }
4347}
4348 YY_BREAK
4349case 136:
4351#line 1469 "dhcp6_lexer.ll"
4352{
4353 switch(driver.ctx_) {
4356 default:
4357 return isc::dhcp::Dhcp6Parser::make_STRING("host-reservation-identifiers", driver.loc_);
4358 }
4359}
4360 YY_BREAK
4361case 137:
4363#line 1478 "dhcp6_lexer.ll"
4364{
4365 switch(driver.ctx_) {
4370 default:
4371 return isc::dhcp::Dhcp6Parser::make_STRING("calculate-tee-times", driver.loc_);
4372 }
4373}
4374 YY_BREAK
4375case 138:
4377#line 1489 "dhcp6_lexer.ll"
4378{
4379 switch(driver.ctx_) {
4383 return isc::dhcp::Dhcp6Parser::make_T1_PERCENT(driver.loc_);
4384 default:
4385 return isc::dhcp::Dhcp6Parser::make_STRING("t1-percent", driver.loc_);
4386 }
4387}
4388 YY_BREAK
4389case 139:
4391#line 1500 "dhcp6_lexer.ll"
4392{
4393 switch(driver.ctx_) {
4397 return isc::dhcp::Dhcp6Parser::make_T2_PERCENT(driver.loc_);
4398 default:
4399 return isc::dhcp::Dhcp6Parser::make_STRING("t2-percent", driver.loc_);
4400 }
4401}
4402 YY_BREAK
4403case 140:
4405#line 1511 "dhcp6_lexer.ll"
4406{
4407 switch(driver.ctx_) {
4412 default:
4413 return isc::dhcp::Dhcp6Parser::make_STRING("cache-threshold", driver.loc_);
4414 }
4415}
4416 YY_BREAK
4417case 141:
4419#line 1522 "dhcp6_lexer.ll"
4420{
4421 switch(driver.ctx_) {
4426 default:
4427 return isc::dhcp::Dhcp6Parser::make_STRING("cache-max-age", driver.loc_);
4428 }
4429}
4430 YY_BREAK
4431case 142:
4433#line 1533 "dhcp6_lexer.ll"
4434{
4435 switch(driver.ctx_) {
4437 return isc::dhcp::Dhcp6Parser::make_LOGGERS(driver.loc_);
4438 default:
4439 return isc::dhcp::Dhcp6Parser::make_STRING("loggers", driver.loc_);
4440 }
4441}
4442 YY_BREAK
4443case 143:
4445#line 1542 "dhcp6_lexer.ll"
4446{
4447 switch(driver.ctx_) {
4450 default:
4451 return isc::dhcp::Dhcp6Parser::make_STRING("output_options", driver.loc_);
4452 }
4453}
4454 YY_BREAK
4455case 144:
4457#line 1551 "dhcp6_lexer.ll"
4458{
4459 switch(driver.ctx_) {
4462 default:
4463 return isc::dhcp::Dhcp6Parser::make_STRING("output-options", driver.loc_);
4464 }
4465}
4466 YY_BREAK
4467case 145:
4469#line 1560 "dhcp6_lexer.ll"
4470{
4471 switch(driver.ctx_) {
4473 return isc::dhcp::Dhcp6Parser::make_OUTPUT(driver.loc_);
4474 default:
4475 return isc::dhcp::Dhcp6Parser::make_STRING("output", driver.loc_);
4476 }
4477}
4478 YY_BREAK
4479case 146:
4481#line 1569 "dhcp6_lexer.ll"
4482{
4483 switch(driver.ctx_) {
4485 return isc::dhcp::Dhcp6Parser::make_FLUSH(driver.loc_);
4486 default:
4487 return isc::dhcp::Dhcp6Parser::make_STRING("flush", driver.loc_);
4488 }
4489}
4490 YY_BREAK
4491case 147:
4493#line 1578 "dhcp6_lexer.ll"
4494{
4495 switch(driver.ctx_) {
4497 return isc::dhcp::Dhcp6Parser::make_MAXSIZE(driver.loc_);
4498 default:
4499 return isc::dhcp::Dhcp6Parser::make_STRING("maxsize", driver.loc_);
4500 }
4501}
4502 YY_BREAK
4503case 148:
4505#line 1587 "dhcp6_lexer.ll"
4506{
4507 switch(driver.ctx_) {
4509 return isc::dhcp::Dhcp6Parser::make_MAXVER(driver.loc_);
4510 default:
4511 return isc::dhcp::Dhcp6Parser::make_STRING("maxver", driver.loc_);
4512 }
4513}
4514 YY_BREAK
4515case 149:
4517#line 1596 "dhcp6_lexer.ll"
4518{
4519 switch(driver.ctx_) {
4521 return isc::dhcp::Dhcp6Parser::make_PATTERN(driver.loc_);
4522 default:
4523 return isc::dhcp::Dhcp6Parser::make_STRING("pattern", driver.loc_);
4524 }
4525}
4526 YY_BREAK
4527case 150:
4529#line 1605 "dhcp6_lexer.ll"
4530{
4531 switch(driver.ctx_) {
4533 return isc::dhcp::Dhcp6Parser::make_DEBUGLEVEL(driver.loc_);
4534 default:
4535 return isc::dhcp::Dhcp6Parser::make_STRING("debuglevel", driver.loc_);
4536 }
4537}
4538 YY_BREAK
4539case 151:
4541#line 1614 "dhcp6_lexer.ll"
4542{
4543 switch(driver.ctx_) {
4545 return isc::dhcp::Dhcp6Parser::make_SEVERITY(driver.loc_);
4546 default:
4547 return isc::dhcp::Dhcp6Parser::make_STRING("severity", driver.loc_);
4548 }
4549}
4550 YY_BREAK
4551case 152:
4553#line 1623 "dhcp6_lexer.ll"
4554{
4555 switch(driver.ctx_) {
4559 default:
4560 return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", driver.loc_);
4561 }
4562}
4563 YY_BREAK
4564case 153:
4566#line 1633 "dhcp6_lexer.ll"
4567{
4568 switch(driver.ctx_) {
4574 default:
4575 return isc::dhcp::Dhcp6Parser::make_STRING("require-client-classes", driver.loc_);
4576 }
4577}
4578 YY_BREAK
4579case 154:
4581#line 1645 "dhcp6_lexer.ll"
4582{
4583 switch(driver.ctx_) {
4590 default:
4591 return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_);
4592 }
4593}
4594 YY_BREAK
4595case 155:
4597#line 1658 "dhcp6_lexer.ll"
4598{
4599 switch(driver.ctx_) {
4601 return isc::dhcp::Dhcp6Parser::make_TEST(driver.loc_);
4602 default:
4603 return isc::dhcp::Dhcp6Parser::make_STRING("test", driver.loc_);
4604 }
4605}
4606 YY_BREAK
4607case 156:
4609#line 1667 "dhcp6_lexer.ll"
4610{
4611 switch(driver.ctx_) {
4614 default:
4615 return isc::dhcp::Dhcp6Parser::make_STRING("template-test", driver.loc_);
4616 }
4617}
4618 YY_BREAK
4619case 157:
4621#line 1676 "dhcp6_lexer.ll"
4622{
4623 switch(driver.ctx_) {
4626 default:
4627 return isc::dhcp::Dhcp6Parser::make_STRING("only-if-required", driver.loc_);
4628 }
4629}
4630 YY_BREAK
4631case 158:
4633#line 1685 "dhcp6_lexer.ll"
4634{
4635 switch(driver.ctx_) {
4639 default:
4640 return isc::dhcp::Dhcp6Parser::make_STRING("reservations", driver.loc_);
4641 }
4642}
4643 YY_BREAK
4644case 159:
4646#line 1695 "dhcp6_lexer.ll"
4647{
4648 switch(driver.ctx_) {
4652 default:
4653 return isc::dhcp::Dhcp6Parser::make_STRING("ip-addresses", driver.loc_);
4654 }
4655}
4656 YY_BREAK
4657case 160:
4659#line 1705 "dhcp6_lexer.ll"
4660{
4661 switch(driver.ctx_) {
4663 return isc::dhcp::Dhcp6Parser::make_PREFIXES(driver.loc_);
4664 default:
4665 return isc::dhcp::Dhcp6Parser::make_STRING("prefixes", driver.loc_);
4666 }
4667}
4668 YY_BREAK
4669case 161:
4671#line 1714 "dhcp6_lexer.ll"
4672{
4673 switch(driver.ctx_) {
4677 return isc::dhcp::Dhcp6Parser::make_DUID(driver.loc_);
4678 default:
4679 return isc::dhcp::Dhcp6Parser::make_STRING("duid", driver.loc_);
4680 }
4681}
4682 YY_BREAK
4683case 162:
4685#line 1725 "dhcp6_lexer.ll"
4686{
4687 switch(driver.ctx_) {
4690 return isc::dhcp::Dhcp6Parser::make_HW_ADDRESS(driver.loc_);
4691 default:
4692 return isc::dhcp::Dhcp6Parser::make_STRING("hw-address", driver.loc_);
4693 }
4694}
4695 YY_BREAK
4696case 163:
4698#line 1735 "dhcp6_lexer.ll"
4699{
4700 switch(driver.ctx_) {
4702 return isc::dhcp::Dhcp6Parser::make_HOSTNAME(driver.loc_);
4703 default:
4704 return isc::dhcp::Dhcp6Parser::make_STRING("hostname", driver.loc_);
4705 }
4706}
4707 YY_BREAK
4708case 164:
4710#line 1744 "dhcp6_lexer.ll"
4711{
4712 switch(driver.ctx_) {
4715 return isc::dhcp::Dhcp6Parser::make_FLEX_ID(driver.loc_);
4716 default:
4717 return isc::dhcp::Dhcp6Parser::make_STRING("flex-id", driver.loc_);
4718 }
4719}
4720 YY_BREAK
4721case 165:
4723#line 1754 "dhcp6_lexer.ll"
4724{
4725 switch(driver.ctx_) {
4728 return isc::dhcp::Dhcp6Parser::make_SPACE(driver.loc_);
4729 default:
4730 return isc::dhcp::Dhcp6Parser::make_STRING("space", driver.loc_);
4731 }
4732}
4733 YY_BREAK
4734case 166:
4736#line 1764 "dhcp6_lexer.ll"
4737{
4738 switch(driver.ctx_) {
4740 return isc::dhcp::Dhcp6Parser::make_CSV_FORMAT(driver.loc_);
4741 default:
4742 return isc::dhcp::Dhcp6Parser::make_STRING("csv-format", driver.loc_);
4743 }
4744}
4745 YY_BREAK
4746case 167:
4748#line 1773 "dhcp6_lexer.ll"
4749{
4750 switch(driver.ctx_) {
4753 default:
4754 return isc::dhcp::Dhcp6Parser::make_STRING("record-types", driver.loc_);
4755 }
4756}
4757 YY_BREAK
4758case 168:
4760#line 1782 "dhcp6_lexer.ll"
4761{
4762 switch(driver.ctx_) {
4764 return isc::dhcp::Dhcp6Parser::make_ENCAPSULATE(driver.loc_);
4765 default:
4766 return isc::dhcp::Dhcp6Parser::make_STRING("encapsulate", driver.loc_);
4767 }
4768}
4769 YY_BREAK
4770case 169:
4772#line 1791 "dhcp6_lexer.ll"
4773{
4774 switch(driver.ctx_) {
4776 return isc::dhcp::Dhcp6Parser::make_ARRAY(driver.loc_);
4777 default:
4778 return isc::dhcp::Dhcp6Parser::make_STRING("array", driver.loc_);
4779 }
4780}
4781 YY_BREAK
4782case 170:
4784#line 1800 "dhcp6_lexer.ll"
4785{
4786 switch(driver.ctx_) {
4789 return isc::dhcp::Dhcp6Parser::make_RELAY(driver.loc_);
4790 default:
4791 return isc::dhcp::Dhcp6Parser::make_STRING("relay", driver.loc_);
4792 }
4793}
4794 YY_BREAK
4795case 171:
4797#line 1810 "dhcp6_lexer.ll"
4798{
4799 switch(driver.ctx_) {
4802 default:
4803 return isc::dhcp::Dhcp6Parser::make_STRING("hooks-libraries", driver.loc_);
4804 }
4805}
4806 YY_BREAK
4807case 172:
4809#line 1819 "dhcp6_lexer.ll"
4810{
4811 switch(driver.ctx_) {
4813 return isc::dhcp::Dhcp6Parser::make_PARAMETERS(driver.loc_);
4814 default:
4815 return isc::dhcp::Dhcp6Parser::make_STRING("parameters", driver.loc_);
4816 }
4817}
4818 YY_BREAK
4819case 173:
4821#line 1828 "dhcp6_lexer.ll"
4822{
4823 switch(driver.ctx_) {
4825 return isc::dhcp::Dhcp6Parser::make_LIBRARY(driver.loc_);
4826 default:
4827 return isc::dhcp::Dhcp6Parser::make_STRING("library", driver.loc_);
4828 }
4829}
4830 YY_BREAK
4831case 174:
4833#line 1837 "dhcp6_lexer.ll"
4834{
4835 switch(driver.ctx_) {
4837 return isc::dhcp::Dhcp6Parser::make_SERVER_ID(driver.loc_);
4838 default:
4839 return isc::dhcp::Dhcp6Parser::make_STRING("server-id", driver.loc_);
4840 }
4841}
4842 YY_BREAK
4843case 175:
4845#line 1846 "dhcp6_lexer.ll"
4846{
4847 switch(driver.ctx_) {
4849 return isc::dhcp::Dhcp6Parser::make_LLT(driver.loc_);
4850 default:
4851 return isc::dhcp::Dhcp6Parser::make_STRING("LLT", driver.loc_);
4852 }
4853}
4854 YY_BREAK
4855case 176:
4857#line 1855 "dhcp6_lexer.ll"
4858{
4859 switch(driver.ctx_) {
4861 return isc::dhcp::Dhcp6Parser::make_EN(driver.loc_);
4862 default:
4863 return isc::dhcp::Dhcp6Parser::make_STRING("EN", driver.loc_);
4864 }
4865}
4866 YY_BREAK
4867case 177:
4869#line 1864 "dhcp6_lexer.ll"
4870{
4871 switch(driver.ctx_) {
4873 return isc::dhcp::Dhcp6Parser::make_LL(driver.loc_);
4874 default:
4875 return isc::dhcp::Dhcp6Parser::make_STRING("LL", driver.loc_);
4876 }
4877}
4878 YY_BREAK
4879case 178:
4881#line 1873 "dhcp6_lexer.ll"
4882{
4883 switch(driver.ctx_) {
4885 return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(driver.loc_);
4886 default:
4887 return isc::dhcp::Dhcp6Parser::make_STRING("identifier", driver.loc_);
4888 }
4889}
4890 YY_BREAK
4891case 179:
4893#line 1882 "dhcp6_lexer.ll"
4894{
4895 switch(driver.ctx_) {
4897 return isc::dhcp::Dhcp6Parser::make_HTYPE(driver.loc_);
4898 default:
4899 return isc::dhcp::Dhcp6Parser::make_STRING("htype", driver.loc_);
4900 }
4901}
4902 YY_BREAK
4903case 180:
4905#line 1891 "dhcp6_lexer.ll"
4906{
4907 switch(driver.ctx_) {
4909 return isc::dhcp::Dhcp6Parser::make_TIME(driver.loc_);
4910 default:
4911 return isc::dhcp::Dhcp6Parser::make_STRING("time", driver.loc_);
4912 }
4913}
4914 YY_BREAK
4915case 181:
4917#line 1900 "dhcp6_lexer.ll"
4918{
4919 switch(driver.ctx_) {
4922 default:
4923 return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", driver.loc_);
4924 }
4925}
4926 YY_BREAK
4927case 182:
4929#line 1909 "dhcp6_lexer.ll"
4930{
4931 switch(driver.ctx_) {
4934 default:
4935 return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", driver.loc_);
4936 }
4937}
4938 YY_BREAK
4939case 183:
4941#line 1918 "dhcp6_lexer.ll"
4942{
4943 switch(driver.ctx_) {
4946 default:
4947 return isc::dhcp::Dhcp6Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
4948 }
4949}
4950 YY_BREAK
4951case 184:
4953#line 1927 "dhcp6_lexer.ll"
4954{
4955 switch(driver.ctx_) {
4958 default:
4959 return isc::dhcp::Dhcp6Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
4960 }
4961}
4962 YY_BREAK
4963case 185:
4965#line 1936 "dhcp6_lexer.ll"
4966{
4967 switch(driver.ctx_) {
4970 default:
4971 return isc::dhcp::Dhcp6Parser::make_STRING("hold-reclaimed-time", driver.loc_);
4972 }
4973}
4974 YY_BREAK
4975case 186:
4977#line 1945 "dhcp6_lexer.ll"
4978{
4979 switch(driver.ctx_) {
4982 default:
4983 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-leases", driver.loc_);
4984 }
4985}
4986 YY_BREAK
4987case 187:
4989#line 1954 "dhcp6_lexer.ll"
4990{
4991 switch(driver.ctx_) {
4994 default:
4995 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-time", driver.loc_);
4996 }
4997}
4998 YY_BREAK
4999case 188:
5001#line 1963 "dhcp6_lexer.ll"
5002{
5003 switch(driver.ctx_) {
5006 default:
5007 return isc::dhcp::Dhcp6Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
5008 }
5009}
5010 YY_BREAK
5011case 189:
5013#line 1972 "dhcp6_lexer.ll"
5014{
5015 switch(driver.ctx_) {
5018 default:
5019 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp4o6-port", driver.loc_);
5020 }
5021}
5022 YY_BREAK
5023case 190:
5025#line 1981 "dhcp6_lexer.ll"
5026{
5027 switch(driver.ctx_) {
5030 default:
5031 return isc::dhcp::Dhcp6Parser::make_STRING("multi-threading", driver.loc_);
5032 }
5033}
5034 YY_BREAK
5035case 191:
5037#line 1990 "dhcp6_lexer.ll"
5038{
5039 switch(driver.ctx_) {
5042 default:
5043 return isc::dhcp::Dhcp6Parser::make_STRING("enable-multi-threading", driver.loc_);
5044 }
5045}
5046 YY_BREAK
5047case 192:
5049#line 1999 "dhcp6_lexer.ll"
5050{
5051 switch(driver.ctx_) {
5054 default:
5055 return isc::dhcp::Dhcp6Parser::make_STRING("thread-pool-size", driver.loc_);
5056 }
5057}
5058 YY_BREAK
5059case 193:
5061#line 2008 "dhcp6_lexer.ll"
5062{
5063 switch(driver.ctx_) {
5066 default:
5067 return isc::dhcp::Dhcp6Parser::make_STRING("packet-queue-size", driver.loc_);
5068 }
5069}
5070 YY_BREAK
5071case 194:
5073#line 2017 "dhcp6_lexer.ll"
5074{
5075 switch(driver.ctx_) {
5078 default:
5079 return isc::dhcp::Dhcp6Parser::make_STRING("control-socket", driver.loc_);
5080 }
5081}
5082 YY_BREAK
5083case 195:
5085#line 2026 "dhcp6_lexer.ll"
5086{
5087 switch(driver.ctx_) {
5089 return isc::dhcp::Dhcp6Parser::make_SOCKET_TYPE(driver.loc_);
5090 default:
5091 return isc::dhcp::Dhcp6Parser::make_STRING("socket-type", driver.loc_);
5092 }
5093}
5094 YY_BREAK
5095case 196:
5097#line 2035 "dhcp6_lexer.ll"
5098{
5099 switch(driver.ctx_) {
5101 return isc::dhcp::Dhcp6Parser::make_SOCKET_NAME(driver.loc_);
5102 default:
5103 return isc::dhcp::Dhcp6Parser::make_STRING("socket-name", driver.loc_);
5104 }
5105}
5106 YY_BREAK
5107case 197:
5109#line 2044 "dhcp6_lexer.ll"
5110{
5111 switch(driver.ctx_) {
5114 default:
5115 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-queue-control", driver.loc_);
5116 }
5117}
5118 YY_BREAK
5119case 198:
5121#line 2053 "dhcp6_lexer.ll"
5122{
5123 switch(driver.ctx_) {
5126 default:
5127 return isc::dhcp::Dhcp6Parser::make_STRING("enable-queue", driver.loc_);
5128 }
5129}
5130 YY_BREAK
5131case 199:
5133#line 2062 "dhcp6_lexer.ll"
5134{
5135 switch(driver.ctx_) {
5137 return isc::dhcp::Dhcp6Parser::make_QUEUE_TYPE(driver.loc_);
5138 default:
5139 return isc::dhcp::Dhcp6Parser::make_STRING("queue-type", driver.loc_);
5140 }
5141}
5142 YY_BREAK
5143case 200:
5145#line 2071 "dhcp6_lexer.ll"
5146{
5147 switch(driver.ctx_) {
5149 return isc::dhcp::Dhcp6Parser::make_CAPACITY(driver.loc_);
5150 default:
5151 return isc::dhcp::Dhcp6Parser::make_STRING("capacity", driver.loc_);
5152 }
5153}
5154 YY_BREAK
5155case 201:
5157#line 2080 "dhcp6_lexer.ll"
5158{
5159 switch(driver.ctx_) {
5161 return isc::dhcp::Dhcp6Parser::make_DHCP_DDNS(driver.loc_);
5162 default:
5163 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-ddns", driver.loc_);
5164 }
5165}
5166 YY_BREAK
5167case 202:
5169#line 2089 "dhcp6_lexer.ll"
5170{
5171 switch(driver.ctx_) {
5174 default:
5175 return isc::dhcp::Dhcp6Parser::make_STRING("early-global-reservations-lookup", driver.loc_);
5176 }
5177}
5178 YY_BREAK
5179case 203:
5181#line 2098 "dhcp6_lexer.ll"
5182{
5183 switch(driver.ctx_) {
5186 default:
5187 return isc::dhcp::Dhcp6Parser::make_STRING("ip-reservations-unique", driver.loc_);
5188 }
5189}
5190 YY_BREAK
5191case 204:
5193#line 2107 "dhcp6_lexer.ll"
5194{
5195 switch(driver.ctx_) {
5198 default:
5199 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-lookup-first", driver.loc_);
5200 }
5201}
5202 YY_BREAK
5203case 205:
5205#line 2116 "dhcp6_lexer.ll"
5206{
5207 switch(driver.ctx_) {
5210 default:
5211 return isc::dhcp::Dhcp6Parser::make_STRING("compatibility", driver.loc_);
5212 }
5213}
5214 YY_BREAK
5215case 206:
5217#line 2125 "dhcp6_lexer.ll"
5218{
5219 switch(driver.ctx_) {
5222 default:
5223 return isc::dhcp::Dhcp6Parser::make_STRING("lenient-option-parsing", driver.loc_);
5224 }
5225}
5226 YY_BREAK
5227case 207:
5229#line 2134 "dhcp6_lexer.ll"
5230{
5231 /* A string has been matched. It contains the actual string and single quotes.
5232 We need to get those quotes out of the way and just use its content, e.g.
5233 for 'foo' we should get foo */
5234 std::string raw(yytext+1);
5235 size_t len = raw.size() - 1;
5236 raw.resize(len);
5237 std::string decoded;
5238 decoded.reserve(len);
5239 for (size_t pos = 0; pos < len; ++pos) {
5240 int b = 0;
5241 char c = raw[pos];
5242 switch (c) {
5243 case '"':
5244 /* impossible condition */
5245 driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
5246 break;
5247 case '\\':
5248 ++pos;
5249 if (pos >= len) {
5250 /* impossible condition */
5251 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
5252 }
5253 c = raw[pos];
5254 switch (c) {
5255 case '"':
5256 case '\\':
5257 case '/':
5258 decoded.push_back(c);
5259 break;
5260 case 'b':
5261 decoded.push_back('\b');
5262 break;
5263 case 'f':
5264 decoded.push_back('\f');
5265 break;
5266 case 'n':
5267 decoded.push_back('\n');
5268 break;
5269 case 'r':
5270 decoded.push_back('\r');
5271 break;
5272 case 't':
5273 decoded.push_back('\t');
5274 break;
5275 case 'u':
5276 /* support only \u0000 to \u00ff */
5277 ++pos;
5278 if (pos + 4 > len) {
5279 /* impossible condition */
5280 driver.error(driver.loc_,
5281 "Overflow unicode escape in \"" + raw + "\"");
5282 }
5283 if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
5284 driver.error(driver.loc_,
5285 "Unsupported unicode escape in \"" + raw + "\"",
5286 pos + 1);
5287 }
5288 pos += 2;
5289 c = raw[pos];
5290 if ((c >= '0') && (c <= '9')) {
5291 b = (c - '0') << 4;
5292 } else if ((c >= 'A') && (c <= 'F')) {
5293 b = (c - 'A' + 10) << 4;
5294 } else if ((c >= 'a') && (c <= 'f')) {
5295 b = (c - 'a' + 10) << 4;
5296 } else {
5297 /* impossible condition */
5298 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5299 }
5300 pos++;
5301 c = raw[pos];
5302 if ((c >= '0') && (c <= '9')) {
5303 b |= c - '0';
5304 } else if ((c >= 'A') && (c <= 'F')) {
5305 b |= c - 'A' + 10;
5306 } else if ((c >= 'a') && (c <= 'f')) {
5307 b |= c - 'a' + 10;
5308 } else {
5309 /* impossible condition */
5310 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5311 }
5312 decoded.push_back(static_cast<char>(b & 0xff));
5313 break;
5314 default:
5315 /* impossible condition */
5316 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5317 }
5318 break;
5319 default:
5320 if ((c >= 0) && (c < 0x20)) {
5321 /* impossible condition */
5322 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5323 }
5324 decoded.push_back(c);
5325 }
5326 }
5327
5328 return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
5329}
5330 YY_BREAK
5331case 208:
5332/* rule 208 can match eol */
5334#line 2235 "dhcp6_lexer.ll"
5335{
5336 /* Bad string with a forbidden control character inside */
5337 std::string raw(yytext+1);
5338 size_t len = raw.size() - 1;
5339 size_t pos = 0;
5340 for (; pos < len; ++pos) {
5341 char c = raw[pos];
5342 if ((c >= 0) && (c < 0x20)) {
5343 break;
5344 }
5345 }
5346 driver.error(driver.loc_,
5347 "Invalid control in " + std::string(yytext),
5348 pos + 1);
5349}
5350 YY_BREAK
5351case 209:
5352/* rule 209 can match eol */
5354#line 2251 "dhcp6_lexer.ll"
5355{
5356 /* Bad string with a bad escape inside */
5357 std::string raw(yytext+1);
5358 size_t len = raw.size() - 1;
5359 size_t pos = 0;
5360 bool found = false;
5361 for (; pos < len; ++pos) {
5362 if (found) {
5363 break;
5364 }
5365 char c = raw[pos];
5366 if (c == '\\') {
5367 ++pos;
5368 c = raw[pos];
5369 switch (c) {
5370 case '"':
5371 case '\\':
5372 case '/':
5373 case 'b':
5374 case 'f':
5375 case 'n':
5376 case 'r':
5377 case 't':
5378 break;
5379 case 'u':
5380 if ((pos + 4 > len) ||
5381 !std::isxdigit(raw[pos + 1]) ||
5382 !std::isxdigit(raw[pos + 2]) ||
5383 !std::isxdigit(raw[pos + 3]) ||
5384 !std::isxdigit(raw[pos + 4])) {
5385 found = true;
5386 }
5387 break;
5388 default:
5389 found = true;
5390 break;
5391 }
5392 }
5393 }
5394 /* The rule stops on the first " including on \" so add ... in this case */
5395 std::string trailer = "";
5396 if (raw[len - 1] == '\\') {
5397 trailer = "...";
5398 }
5399 driver.error(driver.loc_,
5400 "Bad escape in " + std::string(yytext) + trailer,
5401 pos);
5402}
5403 YY_BREAK
5404case 210:
5406#line 2300 "dhcp6_lexer.ll"
5407{
5408 /* Bad string with an open escape at the end */
5409 std::string raw(yytext+1);
5410 driver.error(driver.loc_,
5411 "Overflow escape in " + std::string(yytext),
5412 raw.size() + 1);
5413}
5414 YY_BREAK
5415case 211:
5417#line 2308 "dhcp6_lexer.ll"
5418{
5419 /* Bad string with an open unicode escape at the end */
5420 std::string raw(yytext+1);
5421 size_t pos = raw.size() - 1;
5422 for (; pos > 0; --pos) {
5423 char c = raw[pos];
5424 if (c == 'u') {
5425 break;
5426 }
5427 }
5428 driver.error(driver.loc_,
5429 "Overflow unicode escape in " + std::string(yytext),
5430 pos + 1);
5431}
5432 YY_BREAK
5433case 212:
5435#line 2323 "dhcp6_lexer.ll"
5436{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
5437 YY_BREAK
5438case 213:
5440#line 2324 "dhcp6_lexer.ll"
5441{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
5442 YY_BREAK
5443case 214:
5445#line 2325 "dhcp6_lexer.ll"
5446{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
5447 YY_BREAK
5448case 215:
5450#line 2326 "dhcp6_lexer.ll"
5451{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
5452 YY_BREAK
5453case 216:
5455#line 2327 "dhcp6_lexer.ll"
5456{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
5457 YY_BREAK
5458case 217:
5460#line 2328 "dhcp6_lexer.ll"
5461{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
5462 YY_BREAK
5463case 218:
5465#line 2330 "dhcp6_lexer.ll"
5466{
5467 /* An integer was found. */
5468 std::string tmp(yytext);
5469 int64_t integer = 0;
5470 try {
5471 /* In substring we want to use negative values (e.g. -1).
5472 In enterprise-id we need to use values up to 0xffffffff.
5473 To cover both of those use cases, we need at least
5474 int64_t. */
5475 integer = boost::lexical_cast<int64_t>(tmp);
5476 } catch (const boost::bad_lexical_cast &) {
5477 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5478 }
5479
5480 /* The parser needs the string form as double conversion is no lossless */
5481 return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
5482}
5483 YY_BREAK
5484case 219:
5486#line 2348 "dhcp6_lexer.ll"
5487{
5488 /* A floating point was found. */
5489 std::string tmp(yytext);
5490 double fp = 0.0;
5491 try {
5492 fp = boost::lexical_cast<double>(tmp);
5493 } catch (const boost::bad_lexical_cast &) {
5494 driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
5495 }
5496
5497 return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
5498}
5499 YY_BREAK
5500case 220:
5502#line 2361 "dhcp6_lexer.ll"
5503{
5504 string tmp(yytext);
5505 return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
5506}
5507 YY_BREAK
5508case 221:
5510#line 2366 "dhcp6_lexer.ll"
5511{
5512 return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
5513}
5514 YY_BREAK
5515case 222:
5517#line 2370 "dhcp6_lexer.ll"
5518driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
5519 YY_BREAK
5520case 223:
5522#line 2372 "dhcp6_lexer.ll"
5523driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
5524 YY_BREAK
5525case 224:
5527#line 2374 "dhcp6_lexer.ll"
5528driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
5529 YY_BREAK
5530case 225:
5532#line 2376 "dhcp6_lexer.ll"
5533driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
5534 YY_BREAK
5535case YY_STATE_EOF(INITIAL):
5536#line 2378 "dhcp6_lexer.ll"
5537{
5538 if (driver.states_.empty()) {
5539 return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
5540 }
5541 driver.loc_ = driver.locs_.back();
5542 driver.locs_.pop_back();
5543 driver.file_ = driver.files_.back();
5544 driver.files_.pop_back();
5545 if (driver.sfile_) {
5546 fclose(driver.sfile_);
5547 driver.sfile_ = 0;
5548 }
5549 if (!driver.sfiles_.empty()) {
5550 driver.sfile_ = driver.sfiles_.back();
5551 driver.sfiles_.pop_back();
5552 }
5553 parser6__delete_buffer(YY_CURRENT_BUFFER);
5554 parser6__switch_to_buffer(driver.states_.back());
5555 driver.states_.pop_back();
5556
5557 BEGIN(DIR_EXIT);
5558}
5559 YY_BREAK
5560case 226:
5562#line 2401 "dhcp6_lexer.ll"
5563ECHO;
5564 YY_BREAK
5565#line 5565 "dhcp6_lexer.cc"
5566
5567 case YY_END_OF_BUFFER:
5568 {
5569 /* Amount of text matched not including the EOB char. */
5570 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5571
5572 /* Undo the effects of YY_DO_BEFORE_ACTION. */
5573 *yy_cp = (yy_hold_char);
5575
5576 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5577 {
5578 /* We're scanning a new file or input source. It's
5579 * possible that this happened because the user
5580 * just pointed yyin at a new source and called
5581 * yylex(). If so, then we have to assure
5582 * consistency between YY_CURRENT_BUFFER and our
5583 * globals. Here is the right place to do so, because
5584 * this is the first action (other than possibly a
5585 * back-up) that will match for the new input source.
5586 */
5587 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5588/* %if-c-only */
5589 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
5590/* %endif */
5591/* %if-c++-only */
5592/* %endif */
5593 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5594 }
5595
5596 /* Note that here we test for yy_c_buf_p "<=" to the position
5597 * of the first EOB in the buffer, since yy_c_buf_p will
5598 * already have been incremented past the NUL character
5599 * (since all states make transitions on EOB to the
5600 * end-of-buffer state). Contrast this with the test
5601 * in input().
5602 */
5603 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5604 { /* This was really a NUL. */
5605 yy_state_type yy_next_state;
5606
5607 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5608
5609 yy_current_state = yy_get_previous_state( );
5610
5611 /* Okay, we're now positioned to make the NUL
5612 * transition. We couldn't have
5613 * yy_get_previous_state() go ahead and do it
5614 * for us because it doesn't know how to deal
5615 * with the possibility of jamming (and we don't
5616 * want to build jamming into it because then it
5617 * will run more slowly).
5618 */
5619
5620 yy_next_state = yy_try_NUL_trans( yy_current_state );
5621
5623
5624 if ( yy_next_state )
5625 {
5626 /* Consume the NUL. */
5627 yy_cp = ++(yy_c_buf_p);
5628 yy_current_state = yy_next_state;
5629 goto yy_match;
5630 }
5631
5632 else
5633 {
5634/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
5635 yy_cp = (yy_last_accepting_cpos);
5636 yy_current_state = (yy_last_accepting_state);
5637 goto yy_find_action;
5638 }
5639 }
5640
5641 else switch ( yy_get_next_buffer( ) )
5642 {
5644 {
5645 (yy_did_buffer_switch_on_eof) = 0;
5646
5647 if ( yywrap( ) )
5648 {
5649 /* Note: because we've taken care in
5650 * yy_get_next_buffer() to have set up
5651 * yytext, we can now set up
5652 * yy_c_buf_p so that if some total
5653 * hoser (like flex itself) wants to
5654 * call the scanner after we return the
5655 * YY_NULL, it'll still work - another
5656 * YY_NULL will get returned.
5657 */
5658 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5659
5661 goto do_action;
5662 }
5663
5664 else
5665 {
5666 if ( ! (yy_did_buffer_switch_on_eof) )
5668 }
5669 break;
5670 }
5671
5673 (yy_c_buf_p) =
5674 (yytext_ptr) + yy_amount_of_matched_text;
5675
5676 yy_current_state = yy_get_previous_state( );
5677
5678 yy_cp = (yy_c_buf_p);
5680 goto yy_match;
5681
5682 case EOB_ACT_LAST_MATCH:
5683 (yy_c_buf_p) =
5684 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5685
5686 yy_current_state = yy_get_previous_state( );
5687
5688 yy_cp = (yy_c_buf_p);
5690 goto yy_find_action;
5691 }
5692 break;
5693 }
5694
5695 default:
5697 "fatal flex scanner internal error--no action found" );
5698 } /* end of action switch */
5699 } /* end of scanning one token */
5700 } /* end of user's declarations */
5701} /* end of yylex */
5702/* %ok-for-header */
5703
5704/* %if-c++-only */
5705/* %not-for-header */
5706/* %ok-for-header */
5707
5708/* %endif */
5709
5710/* yy_get_next_buffer - try to read in a new buffer
5711 *
5712 * Returns a code representing an action:
5713 * EOB_ACT_LAST_MATCH -
5714 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5715 * EOB_ACT_END_OF_FILE - end of file
5716 */
5717/* %if-c-only */
5718static int yy_get_next_buffer (void)
5719/* %endif */
5720/* %if-c++-only */
5721/* %endif */
5722{
5723 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5724 char *source = (yytext_ptr);
5725 int number_to_move, i;
5726 int ret_val;
5727
5728 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
5730 "fatal flex scanner internal error--end of buffer missed" );
5731
5732 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
5733 { /* Don't try to fill the buffer, so this is an EOF. */
5734 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
5735 {
5736 /* We matched a single character, the EOB, so
5737 * treat this as a final EOF.
5738 */
5739 return EOB_ACT_END_OF_FILE;
5740 }
5741
5742 else
5743 {
5744 /* We matched some text prior to the EOB, first
5745 * process it.
5746 */
5747 return EOB_ACT_LAST_MATCH;
5748 }
5749 }
5750
5751 /* Try to read more data. */
5752
5753 /* First move last chars to start of buffer. */
5754 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
5755
5756 for ( i = 0; i < number_to_move; ++i )
5757 *(dest++) = *(source++);
5758
5759 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
5760 /* don't do the read, it's not guaranteed to return an EOF,
5761 * just force an EOF
5762 */
5763 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
5764
5765 else
5766 {
5767 int num_to_read =
5768 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
5769
5770 while ( num_to_read <= 0 )
5771 { /* Not enough room in the buffer - grow it. */
5772
5773 /* just a shorter name for the current buffer */
5775
5776 int yy_c_buf_p_offset =
5777 (int) ((yy_c_buf_p) - b->yy_ch_buf);
5778
5779 if ( b->yy_is_our_buffer )
5780 {
5781 int new_size = b->yy_buf_size * 2;
5782
5783 if ( new_size <= 0 )
5784 b->yy_buf_size += b->yy_buf_size / 8;
5785 else
5786 b->yy_buf_size *= 2;
5787
5788 b->yy_ch_buf = (char *)
5789 /* Include room in for 2 EOB chars. */
5790 yyrealloc( (void *) b->yy_ch_buf,
5791 (yy_size_t) (b->yy_buf_size + 2) );
5792 }
5793 else
5794 /* Can't grow it, we don't own it. */
5795 b->yy_ch_buf = NULL;
5796
5797 if ( ! b->yy_ch_buf )
5799 "fatal error - scanner input buffer overflow" );
5800
5801 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
5802
5803 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
5804 number_to_move - 1;
5805
5806 }
5807
5808 if ( num_to_read > YY_READ_BUF_SIZE )
5809 num_to_read = YY_READ_BUF_SIZE;
5810
5811 /* Read in more data. */
5812 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
5813 (yy_n_chars), num_to_read );
5814
5815 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5816 }
5817
5818 if ( (yy_n_chars) == 0 )
5819 {
5820 if ( number_to_move == YY_MORE_ADJ )
5821 {
5822 ret_val = EOB_ACT_END_OF_FILE;
5823 yyrestart( yyin );
5824 }
5825
5826 else
5827 {
5828 ret_val = EOB_ACT_LAST_MATCH;
5829 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
5831 }
5832 }
5833
5834 else
5835 ret_val = EOB_ACT_CONTINUE_SCAN;
5836
5837 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
5838 /* Extend the array by 50%, plus the number we really need. */
5839 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
5840 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
5841 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
5842 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
5843 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
5844 /* "- 2" to take care of EOB's */
5845 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
5846 }
5847
5848 (yy_n_chars) += number_to_move;
5849 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
5850 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
5851
5852 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
5853
5854 return ret_val;
5855}
5856
5857/* yy_get_previous_state - get the state just before the EOB char was reached */
5858
5859/* %if-c-only */
5860/* %not-for-header */
5861 static yy_state_type yy_get_previous_state (void)
5862/* %endif */
5863/* %if-c++-only */
5864/* %endif */
5865{
5866 yy_state_type yy_current_state;
5867 char *yy_cp;
5868
5869/* %% [15.0] code to get the start state into yy_current_state goes here */
5870 yy_current_state = (yy_start);
5871
5872 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
5873 {
5874/* %% [16.0] code to find the next state goes here */
5875 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
5876 if ( yy_accept[yy_current_state] )
5877 {
5878 (yy_last_accepting_state) = yy_current_state;
5879 (yy_last_accepting_cpos) = yy_cp;
5880 }
5881 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5882 {
5883 yy_current_state = (int) yy_def[yy_current_state];
5884 if ( yy_current_state >= 2202 )
5885 yy_c = yy_meta[yy_c];
5886 }
5887 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5888 }
5889
5890 return yy_current_state;
5891}
5892
5893/* yy_try_NUL_trans - try to make a transition on the NUL character
5894 *
5895 * synopsis
5896 * next_state = yy_try_NUL_trans( current_state );
5897 */
5898/* %if-c-only */
5899 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
5900/* %endif */
5901/* %if-c++-only */
5902/* %endif */
5903{
5904 int yy_is_jam;
5905 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
5906 char *yy_cp = (yy_c_buf_p);
5907
5908 YY_CHAR yy_c = 1;
5909 if ( yy_accept[yy_current_state] )
5910 {
5911 (yy_last_accepting_state) = yy_current_state;
5912 (yy_last_accepting_cpos) = yy_cp;
5913 }
5914 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5915 {
5916 yy_current_state = (int) yy_def[yy_current_state];
5917 if ( yy_current_state >= 2202 )
5918 yy_c = yy_meta[yy_c];
5919 }
5920 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5921 yy_is_jam = (yy_current_state == 2201);
5922
5923 return yy_is_jam ? 0 : yy_current_state;
5924}
5925
5926#ifndef YY_NO_UNPUT
5927/* %if-c-only */
5928
5929/* %endif */
5930#endif
5931
5932/* %if-c-only */
5933#ifndef YY_NO_INPUT
5934#ifdef __cplusplus
5935 static int yyinput (void)
5936#else
5937 static int input (void)
5938#endif
5939
5940/* %endif */
5941/* %if-c++-only */
5942/* %endif */
5943{
5944 int c;
5945
5946 *(yy_c_buf_p) = (yy_hold_char);
5947
5948 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
5949 {
5950 /* yy_c_buf_p now points to the character we want to return.
5951 * If this occurs *before* the EOB characters, then it's a
5952 * valid NUL; if not, then we've hit the end of the buffer.
5953 */
5954 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5955 /* This was really a NUL. */
5956 *(yy_c_buf_p) = '\0';
5957
5958 else
5959 { /* need more input */
5960 int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
5961 ++(yy_c_buf_p);
5962
5963 switch ( yy_get_next_buffer( ) )
5964 {
5965 case EOB_ACT_LAST_MATCH:
5966 /* This happens because yy_g_n_b()
5967 * sees that we've accumulated a
5968 * token and flags that we need to
5969 * try matching the token before
5970 * proceeding. But for input(),
5971 * there's no matching to consider.
5972 * So convert the EOB_ACT_LAST_MATCH
5973 * to EOB_ACT_END_OF_FILE.
5974 */
5975
5976 /* Reset buffer status. */
5977 yyrestart( yyin );
5978
5979 /*FALLTHROUGH*/
5980
5982 {
5983 if ( yywrap( ) )
5984 return 0;
5985
5986 if ( ! (yy_did_buffer_switch_on_eof) )
5988#ifdef __cplusplus
5989 return yyinput();
5990#else
5991 return input();
5992#endif
5993 }
5994
5996 (yy_c_buf_p) = (yytext_ptr) + offset;
5997 break;
5998 }
5999 }
6000 }
6001
6002 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
6003 *(yy_c_buf_p) = '\0'; /* preserve yytext */
6004 (yy_hold_char) = *++(yy_c_buf_p);
6005
6006/* %% [19.0] update BOL and yylineno */
6007
6008 return c;
6009}
6010/* %if-c-only */
6011#endif /* ifndef YY_NO_INPUT */
6012/* %endif */
6013
6019/* %if-c-only */
6020 void yyrestart (FILE * input_file )
6021/* %endif */
6022/* %if-c++-only */
6023/* %endif */
6024{
6025
6026 if ( ! YY_CURRENT_BUFFER ){
6030 }
6031
6032 yy_init_buffer( YY_CURRENT_BUFFER, input_file );
6034}
6035
6036/* %if-c++-only */
6037/* %endif */
6038
6043/* %if-c-only */
6045/* %endif */
6046/* %if-c++-only */
6047/* %endif */
6048{
6049
6050 /* TODO. We should be able to replace this entire function body
6051 * with
6052 * yypop_buffer_state();
6053 * yypush_buffer_state(new_buffer);
6054 */
6056 if ( YY_CURRENT_BUFFER == new_buffer )
6057 return;
6058
6059 if ( YY_CURRENT_BUFFER )
6060 {
6061 /* Flush out information for old buffer. */
6062 *(yy_c_buf_p) = (yy_hold_char);
6063 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6064 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6065 }
6066
6067 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6069
6070 /* We don't actually know whether we did this switch during
6071 * EOF (yywrap()) processing, but the only time this flag
6072 * is looked at is after yywrap() is called, so it's safe
6073 * to go ahead and always set it.
6074 */
6075 (yy_did_buffer_switch_on_eof) = 1;
6076}
6077
6078/* %if-c-only */
6079static void yy_load_buffer_state (void)
6080/* %endif */
6081/* %if-c++-only */
6082/* %endif */
6083{
6084 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6085 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6086/* %if-c-only */
6087 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6088/* %endif */
6089/* %if-c++-only */
6090/* %endif */
6091 (yy_hold_char) = *(yy_c_buf_p);
6092}
6093
6100/* %if-c-only */
6101 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
6102/* %endif */
6103/* %if-c++-only */
6104/* %endif */
6105{
6107
6108 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6109 if ( ! b )
6110 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6111
6112 b->yy_buf_size = size;
6113
6114 /* yy_ch_buf has to be 2 characters longer than the size given because
6115 * we need to put in 2 end-of-buffer characters.
6116 */
6117 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
6118 if ( ! b->yy_ch_buf )
6119 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6120
6121 b->yy_is_our_buffer = 1;
6122
6123 yy_init_buffer( b, file );
6124
6125 return b;
6126}
6127
6128/* %if-c++-only */
6129/* %endif */
6130
6135/* %if-c-only */
6137/* %endif */
6138/* %if-c++-only */
6139/* %endif */
6140{
6141
6142 if ( ! b )
6143 return;
6144
6145 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6147
6148 if ( b->yy_is_our_buffer )
6149 yyfree( (void *) b->yy_ch_buf );
6150
6151 yyfree( (void *) b );
6152}
6153
6154/* Initializes or reinitializes a buffer.
6155 * This function is sometimes called more than once on the same buffer,
6156 * such as during a yyrestart() or at EOF.
6157 */
6158/* %if-c-only */
6159 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
6160/* %endif */
6161/* %if-c++-only */
6162/* %endif */
6163
6164{
6165 int oerrno = errno;
6166
6167 yy_flush_buffer( b );
6168
6169/* %if-c-only */
6170 b->yy_input_file = file;
6171/* %endif */
6172/* %if-c++-only */
6173/* %endif */
6174 b->yy_fill_buffer = 1;
6175
6176 /* If b is the current buffer, then yy_init_buffer was _probably_
6177 * called from yyrestart() or through yy_get_next_buffer.
6178 * In that case, we don't want to reset the lineno or column.
6179 */
6180 if (b != YY_CURRENT_BUFFER){
6181 b->yy_bs_lineno = 1;
6182 b->yy_bs_column = 0;
6183 }
6184
6185/* %if-c-only */
6186
6187 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
6188
6189/* %endif */
6190/* %if-c++-only */
6191/* %endif */
6192 errno = oerrno;
6193}
6194
6199/* %if-c-only */
6201/* %endif */
6202/* %if-c++-only */
6203/* %endif */
6204{
6205 if ( ! b )
6206 return;
6207
6208 b->yy_n_chars = 0;
6209
6210 /* We always need two end-of-buffer characters. The first causes
6211 * a transition to the end-of-buffer state. The second causes
6212 * a jam in that state.
6213 */
6216
6217 b->yy_buf_pos = &b->yy_ch_buf[0];
6218
6219 b->yy_at_bol = 1;
6221
6222 if ( b == YY_CURRENT_BUFFER )
6224}
6225
6226/* %if-c-or-c++ */
6233/* %if-c-only */
6235/* %endif */
6236/* %if-c++-only */
6237/* %endif */
6238{
6239 if (new_buffer == NULL)
6240 return;
6241
6243
6244 /* This block is copied from yy_switch_to_buffer. */
6245 if ( YY_CURRENT_BUFFER )
6246 {
6247 /* Flush out information for old buffer. */
6248 *(yy_c_buf_p) = (yy_hold_char);
6249 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6250 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6251 }
6252
6253 /* Only push if top exists. Otherwise, replace top. */
6255 (yy_buffer_stack_top)++;
6256 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6257
6258 /* copied from yy_switch_to_buffer. */
6260 (yy_did_buffer_switch_on_eof) = 1;
6261}
6262/* %endif */
6263
6264/* %if-c-or-c++ */
6269/* %if-c-only */
6271/* %endif */
6272/* %if-c++-only */
6273/* %endif */
6274{
6275 if (!YY_CURRENT_BUFFER)
6276 return;
6277
6280 if ((yy_buffer_stack_top) > 0)
6281 --(yy_buffer_stack_top);
6282
6283 if (YY_CURRENT_BUFFER) {
6285 (yy_did_buffer_switch_on_eof) = 1;
6286 }
6287}
6288/* %endif */
6289
6290/* %if-c-or-c++ */
6291/* Allocates the stack if it does not exist.
6292 * Guarantees space for at least one push.
6293 */
6294/* %if-c-only */
6295static void yyensure_buffer_stack (void)
6296/* %endif */
6297/* %if-c++-only */
6298/* %endif */
6299{
6300 yy_size_t num_to_alloc;
6301
6302 if (!(yy_buffer_stack)) {
6303
6304 /* First allocation is just for 2 elements, since we don't know if this
6305 * scanner will even need a stack. We use 2 instead of 1 to avoid an
6306 * immediate realloc on the next call.
6307 */
6308 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
6309 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
6310 (num_to_alloc * sizeof(struct yy_buffer_state*)
6311 );
6312 if ( ! (yy_buffer_stack) )
6313 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6314
6315 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6316
6317 (yy_buffer_stack_max) = num_to_alloc;
6318 (yy_buffer_stack_top) = 0;
6319 return;
6320 }
6321
6322 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6323
6324 /* Increase the buffer to prepare for a possible push. */
6325 yy_size_t grow_size = 8 /* arbitrary grow size */;
6326
6327 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6328 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
6329 ((yy_buffer_stack),
6330 num_to_alloc * sizeof(struct yy_buffer_state*)
6331 );
6332 if ( ! (yy_buffer_stack) )
6333 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6334
6335 /* zero only the new slots.*/
6336 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6337 (yy_buffer_stack_max) = num_to_alloc;
6338 }
6339}
6340/* %endif */
6341
6342/* %if-c-only */
6350{
6352
6353 if ( size < 2 ||
6354 base[size-2] != YY_END_OF_BUFFER_CHAR ||
6355 base[size-1] != YY_END_OF_BUFFER_CHAR )
6356 /* They forgot to leave room for the EOB's. */
6357 return NULL;
6358
6359 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6360 if ( ! b )
6361 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
6362
6363 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
6364 b->yy_buf_pos = b->yy_ch_buf = base;
6365 b->yy_is_our_buffer = 0;
6366 b->yy_input_file = NULL;
6367 b->yy_n_chars = b->yy_buf_size;
6368 b->yy_is_interactive = 0;
6369 b->yy_at_bol = 1;
6370 b->yy_fill_buffer = 0;
6372
6374
6375 return b;
6376}
6377/* %endif */
6378
6379/* %if-c-only */
6388YY_BUFFER_STATE yy_scan_string (const char * yystr )
6389{
6390
6391 return yy_scan_bytes( yystr, (int) strlen(yystr) );
6392}
6393/* %endif */
6394
6395/* %if-c-only */
6403YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
6404{
6406 char *buf;
6407 yy_size_t n;
6408 int i;
6409
6410 /* Get memory for full buffer, including space for trailing EOB's. */
6411 n = (yy_size_t) (_yybytes_len + 2);
6412 buf = (char *) yyalloc( n );
6413 if ( ! buf )
6414 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
6415
6416 for ( i = 0; i < _yybytes_len; ++i )
6417 buf[i] = yybytes[i];
6418
6419 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6420
6421 b = yy_scan_buffer( buf, n );
6422 if ( ! b )
6423 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
6424
6425 /* It's okay to grow etc. this buffer, and we should throw it
6426 * away when we're done.
6427 */
6428 b->yy_is_our_buffer = 1;
6429
6430 return b;
6431}
6432/* %endif */
6433
6434#ifndef YY_EXIT_FAILURE
6435#define YY_EXIT_FAILURE 2
6436#endif
6437
6438/* %if-c-only */
6439static void yynoreturn yy_fatal_error (const char* msg )
6440{
6441 fprintf( stderr, "%s\n", msg );
6442 exit( YY_EXIT_FAILURE );
6443}
6444/* %endif */
6445/* %if-c++-only */
6446/* %endif */
6447
6448/* Redefine yyless() so it works in section 3 code. */
6449
6450#undef yyless
6451#define yyless(n) \
6452 do \
6453 { \
6454 /* Undo effects of setting up yytext. */ \
6455 int yyless_macro_arg = (n); \
6456 YY_LESS_LINENO(yyless_macro_arg);\
6457 yytext[yyleng] = (yy_hold_char); \
6458 (yy_c_buf_p) = yytext + yyless_macro_arg; \
6459 (yy_hold_char) = *(yy_c_buf_p); \
6460 *(yy_c_buf_p) = '\0'; \
6461 yyleng = yyless_macro_arg; \
6462 } \
6463 while ( 0 )
6464
6465/* Accessor methods (get/set functions) to struct members. */
6466
6467/* %if-c-only */
6468/* %if-reentrant */
6469/* %endif */
6470
6475{
6476
6477 return yylineno;
6478}
6479
6483FILE *yyget_in (void)
6484{
6485 return yyin;
6486}
6487
6491FILE *yyget_out (void)
6492{
6493 return yyout;
6494}
6495
6499int yyget_leng (void)
6500{
6501 return yyleng;
6502}
6503
6508char *yyget_text (void)
6509{
6510 return yytext;
6511}
6512
6513/* %if-reentrant */
6514/* %endif */
6515
6520void yyset_lineno (int _line_number )
6521{
6522
6523 yylineno = _line_number;
6524}
6525
6532void yyset_in (FILE * _in_str )
6533{
6534 yyin = _in_str ;
6535}
6536
6537void yyset_out (FILE * _out_str )
6538{
6539 yyout = _out_str ;
6540}
6541
6542int yyget_debug (void)
6543{
6544 return yy_flex_debug;
6545}
6546
6547void yyset_debug (int _bdebug )
6548{
6549 yy_flex_debug = _bdebug ;
6550}
6551
6552/* %endif */
6553
6554/* %if-reentrant */
6555/* %if-bison-bridge */
6556/* %endif */
6557/* %endif if-c-only */
6558
6559/* %if-c-only */
6560static int yy_init_globals (void)
6561{
6562 /* Initialization is the same as for the non-reentrant scanner.
6563 * This function is called from yylex_destroy(), so don't allocate here.
6564 */
6565
6566 (yy_buffer_stack) = NULL;
6567 (yy_buffer_stack_top) = 0;
6568 (yy_buffer_stack_max) = 0;
6569 (yy_c_buf_p) = NULL;
6570 (yy_init) = 0;
6571 (yy_start) = 0;
6572
6573/* Defined in main.c */
6574#ifdef YY_STDINIT
6575 yyin = stdin;
6576 yyout = stdout;
6577#else
6578 yyin = NULL;
6579 yyout = NULL;
6580#endif
6581
6582 /* For future reference: Set errno on error, since we are called by
6583 * yylex_init()
6584 */
6585 return 0;
6586}
6587/* %endif */
6588
6589/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
6590/* yylex_destroy is for both reentrant and non-reentrant scanners. */
6592{
6593
6594 /* Pop the buffer stack, destroying each element. */
6595 while(YY_CURRENT_BUFFER){
6599 }
6600
6601 /* Destroy the stack itself. */
6602 yyfree((yy_buffer_stack) );
6603 (yy_buffer_stack) = NULL;
6604
6605 /* Reset the globals. This is important in a non-reentrant scanner so the next time
6606 * yylex() is called, initialization will occur. */
6607 yy_init_globals( );
6608
6609/* %if-reentrant */
6610/* %endif */
6611 return 0;
6612}
6613/* %endif */
6614
6615/*
6616 * Internal utility routines.
6617 */
6618
6619#ifndef yytext_ptr
6620static void yy_flex_strncpy (char* s1, const char * s2, int n )
6621{
6622
6623 int i;
6624 for ( i = 0; i < n; ++i )
6625 s1[i] = s2[i];
6626}
6627#endif
6628
6629#ifdef YY_NEED_STRLEN
6630static int yy_flex_strlen (const char * s )
6631{
6632 int n;
6633 for ( n = 0; s[n]; ++n )
6634 ;
6635
6636 return n;
6637}
6638#endif
6639
6640void *yyalloc (yy_size_t size )
6641{
6642 return malloc(size);
6643}
6644
6645void *yyrealloc (void * ptr, yy_size_t size )
6646{
6647
6648 /* The cast to (char *) in the following accommodates both
6649 * implementations that use char* generic pointers, and those
6650 * that use void* generic pointers. It works with the latter
6651 * because both ANSI C and C++ allow castless assignment from
6652 * any pointer type to void*, and deal with argument conversions
6653 * as though doing an assignment.
6654 */
6655 return realloc(ptr, size);
6656}
6657
6658void yyfree (void * ptr )
6659{
6660 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
6661}
6662
6663/* %if-tables-serialization definitions */
6664/* %define-yytables The name for this specific scanner's tables. */
6665#define YYTABLES_NAME "yytables"
6666/* %endif */
6667
6668/* %ok-for-header */
6669
6670#line 2401 "dhcp6_lexer.ll"
6671
6672
6673using namespace isc::dhcp;
6674
6675void
6676Parser6Context::scanStringBegin(const std::string& str, ParserType parser_type)
6677{
6678 start_token_flag = true;
6679 start_token_value = parser_type;
6680
6681 file_ = "<string>";
6682 sfile_ = 0;
6683 loc_.initialize(&file_);
6684 yy_flex_debug = trace_scanning_;
6685 YY_BUFFER_STATE buffer;
6686 buffer = parser6__scan_bytes(str.c_str(), str.size());
6687 if (!buffer) {
6688 fatal("cannot scan string");
6689 /* fatal() throws an exception so this can't be reached */
6690 }
6691}
6692
6693void
6695 const std::string& filename,
6696 ParserType parser_type)
6697{
6698 start_token_flag = true;
6699 start_token_value = parser_type;
6700
6701 file_ = filename;
6702 sfile_ = f;
6703 loc_.initialize(&file_);
6704 yy_flex_debug = trace_scanning_;
6705 YY_BUFFER_STATE buffer;
6706
6707 /* See dhcp6_lexer.cc header for available definitions */
6708 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
6709 if (!buffer) {
6710 fatal("cannot scan file " + filename);
6711 }
6712 parser6__switch_to_buffer(buffer);
6713}
6714
6715void
6717 if (sfile_)
6718 fclose(sfile_);
6719 sfile_ = 0;
6720 static_cast<void>(parser6_lex_destroy());
6721 /* Close files */
6722 while (!sfiles_.empty()) {
6723 FILE* f = sfiles_.back();
6724 if (f) {
6725 fclose(f);
6726 }
6727 sfiles_.pop_back();
6728 }
6729 /* Delete states */
6730 while (!states_.empty()) {
6731 parser6__delete_buffer(states_.back());
6732 states_.pop_back();
6733 }
6734}
6735
6736void
6737Parser6Context::includeFile(const std::string& filename) {
6738 if (states_.size() > 10) {
6739 fatal("Too many nested include.");
6740 }
6741
6742 FILE* f = fopen(filename.c_str(), "r");
6743 if (!f) {
6744 fatal("Can't open include file " + filename);
6745 }
6746 if (sfile_) {
6747 sfiles_.push_back(sfile_);
6748 }
6749 sfile_ = f;
6750 states_.push_back(YY_CURRENT_BUFFER);
6751 YY_BUFFER_STATE buffer;
6752 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
6753 if (!buffer) {
6754 fatal( "Can't scan include file " + filename);
6755 }
6756 parser6__switch_to_buffer(buffer);
6757 files_.push_back(file_);
6758 file_ = filename;
6759 locs_.push_back(loc_);
6760 loc_.initialize(&file_);
6761
6762 BEGIN(INITIAL);
6763}
6764
6765namespace {
6767class Dummy {
6768 /* cppcheck-suppress unusedPrivateFunction */
6769 void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
6770};
6771}
6772#endif /* !__clang_analyzer__ */
6773
unsigned char flex_uint8_t
short int flex_int16_t
#define yy_flex_debug
int flex_int32_t
int yy_state_type
#define YY_CURRENT_BUFFER
#define INITIAL
#define BEGIN
flex_uint8_t YY_CHAR
size_t yy_size_t
Evaluation error exception raised when trying to parse.
static symbol_type make_SUB_RESERVATION(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_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_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_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_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_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_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_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_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_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_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_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_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_MYSQL(const location_type &l)
static symbol_type make_DDNS_USE_CONFLICT_RESOLUTION(const location_type &l)
static symbol_type make_MEMFILE(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_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_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_SUB_PD_POOL(const location_type &l)
static symbol_type make_T1_PERCENT(const location_type &l)
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
static symbol_type make_UDP(const location_type &l)
static symbol_type make_POSTGRESQL(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_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_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_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_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_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_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.
@ 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.
@ DATABASE_TYPE
Used while parsing Dhcp6/*-database/type.
@ 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.
@ 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.
@ 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 YY_NEW_FILE
#define yyset_extra
#define yytext
unsigned char flex_uint8_t
#define yyset_lineno
#define COMMENT
#define yyrestart
#define yyset_debug
#define YY_EXTRA_TYPE
#define DIR_INCLUDE
short int flex_int16_t
#define yy_flex_debug
unsigned int flex_uint32_t
#define yy_scan_bytes
#define YY_BREAK
#define yynoreturn
#define yyget_debug
int yy_act
#define yypush_buffer_state
#define yyget_in
Get the input stream.
struct yy_buffer_state * YY_BUFFER_STATE
#define yyfree
#define yyout
#define YY_BUFFER_NEW
#define yylex
#define YY_RESTORE_YY_MORE_OFFSET
#define yyget_leng
Get the length of the current token.
#define yywrap
#define yyget_out
Get the output stream.
#define YY_BUFFER_NORMAL
char * yy_cp
#define yyensure_buffer_stack
#define yy_scan_buffer
#define YY_MORE_ADJ
#define YY_RULE_SETUP
#define yy_scan_string
#define DIR_EXIT
#define yytext_ptr
signed char flex_int8_t
#define EOB_ACT_END_OF_FILE
#define yyalloc
#define YY_CURRENT_BUFFER_LVALUE
int flex_int32_t
#define yylex_destroy
#define YY_START
#define yyget_text
Get the current token.
#define yy_switch_to_buffer
int yy_state_type
#define YY_CURRENT_BUFFER
#define yy_init_buffer
#define INITIAL
#define yyget_extra
char * yy_bp
#define yyin
#define YY_READ_BUF_SIZE
#define YY_INPUT(buf, result, max_size)
#define ECHO
#define yy_flush_buffer
#define yyrealloc
#define YY_END_OF_BUFFER
#define YY_STATE_EOF(state)
#define BEGIN
#define YY_END_OF_BUFFER_CHAR
#define YY_FATAL_ERROR(msg)
unsigned short int flex_uint16_t
#define yypop_buffer_state
Removes and deletes the top of the stack, if present.
#define yy_create_buffer
flex_uint8_t YY_CHAR
#define YY_DO_BEFORE_ACTION
#define yy_delete_buffer
#define EOB_ACT_LAST_MATCH
size_t yy_size_t
#define YY_BUFFER_EOF_PENDING
#define yylineno
#define yyset_out
#define EOB_ACT_CONTINUE_SCAN
#define yyget_lineno
Get the current line number.
#define YY_DECL
#define YY_BUF_SIZE
#define YY_EXIT_FAILURE
#define YY_SC_TO_UI(c)
#define DIR_ENTER
#define yyleng
#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
flex_int32_t yy_nxt