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