Kea 2.7.6
dhcp6_lexer.cc
Go to the documentation of this file.
1#line 2 "dhcp6_lexer.cc"
2
3#line 4 "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
656typedef flex_uint8_t YY_CHAR;
657
658FILE *yyin = NULL, *yyout = NULL;
659
660typedef int yy_state_type;
661
662extern int yylineno;
663int yylineno = 1;
664
665extern char *yytext;
666#ifdef yytext_ptr
667#undef yytext_ptr
668#endif
669#define yytext_ptr yytext
670
671/* %% [1.5] DFA */
672
673/* %if-c-only Standard (non-C++) definition */
674
675static yy_state_type yy_get_previous_state ( void );
676static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
677static int yy_get_next_buffer ( void );
678static void yynoreturn yy_fatal_error ( const char* msg );
679
680/* %endif */
681
682/* Done after the current pattern has been matched and before the
683 * corresponding action - sets up yytext.
684 */
685#define YY_DO_BEFORE_ACTION \
686 (yytext_ptr) = yy_bp; \
687/* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
688 yyleng = (int) (yy_cp - yy_bp); \
689 (yy_hold_char) = *yy_cp; \
690 *yy_cp = '\0'; \
691/* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
692 (yy_c_buf_p) = yy_cp;
693/* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
694#define YY_NUM_RULES 245
695#define YY_END_OF_BUFFER 246
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[2326] =
704 { 0,
705 238, 238, 0, 0, 0, 0, 0, 0, 0, 0,
706 246, 244, 10, 11, 244, 1, 238, 235, 238, 238,
707 244, 237, 236, 244, 244, 244, 244, 244, 231, 232,
708 244, 244, 244, 233, 234, 5, 5, 5, 244, 244,
709 244, 10, 11, 0, 0, 226, 0, 0, 0, 0,
710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
712 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
713 238, 238, 0, 237, 238, 3, 2, 6, 0, 238,
714 0, 0, 0, 0, 0, 0, 4, 0, 0, 9,
715
716 0, 227, 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 0, 0, 0, 0, 0, 0, 229, 0, 0,
718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 0, 0, 0, 0, 0, 0, 2, 0, 0,
725 0, 0, 0, 0, 0, 8, 0, 0, 0, 179,
726
727 0, 0, 180, 0, 0, 0, 0, 0, 0, 0,
728 0, 228, 230, 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, 0, 0, 0, 0, 0,
732 0, 0, 0, 128, 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, 0, 0, 0, 0, 0, 0, 243,
740 241, 0, 240, 239, 0, 0, 0, 0, 0, 0,
741 178, 0, 0, 23, 0, 22, 0, 0, 0, 0,
742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
748
749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
754 0, 0, 0, 242, 239, 0, 0, 0, 0, 0,
755 24, 0, 0, 26, 0, 0, 0, 0, 0, 0,
756 0, 0, 0, 0, 0, 0, 0, 133, 0, 0,
757 0, 0, 0, 0, 111, 0, 0, 0, 0, 0,
758 0, 0, 0, 164, 0, 0, 0, 0, 0, 0,
759
760 0, 0, 0, 0, 0, 0, 53, 0, 0, 0,
761 201, 0, 0, 0, 0, 0, 0, 0, 0, 0,
762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
763 0, 0, 0, 0, 0, 110, 0, 0, 0, 0,
764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
765 0, 121, 0, 0, 54, 0, 0, 0, 0, 0,
766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
768 0, 0, 0, 0, 0, 0, 0, 0, 156, 0,
769 183, 0, 50, 200, 0, 51, 0, 0, 0, 0,
770
771 0, 0, 0, 32, 29, 28, 0, 0, 0, 0,
772 0, 172, 0, 207, 0, 0, 0, 0, 0, 0,
773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
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, 146, 0, 0, 0, 0, 0, 0, 0,
777 202, 182, 0, 0, 0, 0, 0, 0, 0, 0,
778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
779 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,
780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
781
782 0, 114, 0, 0, 0, 0, 0, 0, 0, 208,
783 0, 0, 0, 0, 173, 0, 0, 0, 0, 0,
784 0, 0, 0, 0, 0, 0, 0, 0, 168, 0,
785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
786 0, 0, 0, 215, 0, 7, 30, 0, 0, 0,
787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
792
793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
795 0, 0, 148, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 145, 0, 0, 0, 0, 0, 0,
797 0, 0, 0, 0, 0, 0, 116, 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, 125, 0, 0, 0, 0, 0,
801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
803
804 0, 0, 0, 210, 124, 0, 0, 0, 0, 0,
805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
807 0, 0, 0, 0, 0, 0, 0, 0, 0, 167,
808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
809 0, 0, 0, 0, 0, 0, 0, 176, 142, 0,
810 0, 0, 0, 0, 0, 0, 147, 0, 0, 0,
811 0, 0, 0, 62, 0, 0, 0, 0, 0, 0,
812 0, 0, 0, 149, 0, 0, 55, 122, 0, 0,
813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
814
815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
817 0, 0, 105, 0, 0, 0, 0, 0, 0, 0,
818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
819 0, 0, 0, 0, 0, 219, 0, 0, 0, 0,
820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
821 0, 0, 0, 0, 102, 0, 0, 0, 0, 0,
822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
823 0, 0, 0, 0, 0, 0, 0, 0, 0, 166,
824 0, 0, 0, 0, 0, 0, 0, 0, 71, 0,
825
826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828 0, 0, 0, 0, 0, 52, 0, 0, 115, 0,
829 0, 162, 0, 0, 0, 0, 49, 0, 0, 0,
830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
831 0, 0, 0, 0, 0, 151, 0, 0, 0, 0,
832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
834 84, 0, 0, 0, 0, 0, 70, 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, 220, 0, 0, 209, 0, 0, 0, 0, 0,
839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
840 0, 0, 0, 0, 126, 0, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
844 0, 36, 0, 0, 0, 0, 0, 0, 0, 0,
845 0, 0, 0, 15, 0, 0, 177, 13, 0, 0,
846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
847
848 0, 0, 0, 0, 0, 0, 0, 211, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 0, 169,
851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
852 0, 0, 150, 0, 0, 0, 0, 0, 0, 0,
853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
854 0, 0, 0, 0, 165, 181, 0, 35, 0, 0,
855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
856 0, 0, 0, 0, 0, 19, 0, 113, 0, 0,
857 0, 108, 0, 0, 0, 175, 0, 0, 0, 0,
858
859 117, 218, 0, 0, 0, 0, 0, 0, 0, 0,
860 0, 0, 0, 0, 0, 0, 0, 82, 0, 0,
861 0, 0, 0, 0, 0, 0, 0, 138, 139, 0,
862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
863 0, 0, 112, 0, 0, 0, 0, 0, 72, 0,
864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
866 0, 0, 0, 0, 0, 0, 171, 0, 0, 0,
867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
868 0, 0, 0, 0, 0, 0, 0, 134, 0, 0,
869
870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
871 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,
872 0, 0, 0, 0, 0, 79, 0, 0, 0, 0,
873 16, 0, 14, 0, 0, 0, 203, 205, 199, 0,
874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
875 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,
876 155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
877 0, 0, 0, 0, 0, 104, 103, 0, 0, 0,
878 0, 0, 0, 192, 0, 0, 217, 0, 0, 0,
879 0, 0, 0, 0, 0, 0, 0, 0, 0, 214,
880
881 127, 0, 161, 0, 41, 0, 0, 56, 0, 0,
882 0, 0, 0, 0, 0, 0, 0, 0, 18, 0,
883 0, 0, 0, 0, 0, 0, 85, 0, 129, 58,
884 80, 0, 0, 170, 0, 0, 160, 0, 0, 0,
885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
886 0, 69, 0, 123, 0, 0, 0, 0, 0, 0,
887 0, 0, 141, 0, 0, 213, 0, 224, 0, 0,
888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
889 0, 0, 0, 0, 120, 0, 0, 0, 0, 184,
890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891
892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
894 212, 0, 0, 0, 0, 0, 0, 0, 0, 0,
895 0, 40, 0, 0, 0, 0, 0, 0, 0, 0,
896 0, 157, 0, 0, 0, 59, 0, 0, 0, 0,
897 0, 206, 0, 0, 152, 46, 0, 0, 0, 197,
898 0, 33, 0, 0, 0, 0, 0, 0, 0, 0,
899 0, 0, 0, 0, 0, 0, 12, 0, 0, 0,
900 0, 0, 0, 0, 0, 0, 0, 44, 0, 0,
901 0, 43, 0, 0, 17, 0, 0, 0, 68, 0,
902
903 0, 0, 0, 0, 0, 144, 143, 0, 0, 0,
904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
905 0, 0, 0, 204, 0, 0, 0, 0, 0, 0,
906 76, 0, 0, 0, 0, 0, 140, 0, 0, 0,
907 57, 198, 0, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 0, 0, 0, 0, 0, 118, 0, 0,
909 0, 0, 0, 0, 174, 0, 0, 0, 45, 0,
910 0, 0, 0, 0, 0, 0, 0, 0, 0, 193,
911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
912 0, 0, 0, 0, 0, 0, 0, 107, 0, 63,
913
914 0, 0, 0, 0, 0, 97, 0, 0, 31, 0,
915 47, 0, 0, 0, 0, 0, 0, 0, 0, 101,
916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
918 0, 190, 0, 0, 0, 0, 158, 0, 0, 0,
919 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,
920 0, 64, 0, 0, 0, 0, 60, 195, 0, 0,
921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
922 88, 0, 0, 0, 0, 0, 0, 0, 0, 163,
923 0, 0, 0, 0, 0, 0, 20, 34, 0, 0,
924
925 0, 0, 0, 0, 0, 0, 0, 196, 0, 0,
926 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
928 0, 0, 0, 0, 0, 0, 0, 0, 216, 0,
929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
930 0, 0, 189, 0, 78, 0, 77, 0, 0, 73,
931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
932 0, 0, 0, 0, 0, 0, 98, 0, 137, 0,
933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
934 0, 0, 119, 0, 0, 0, 188, 0, 0, 0,
935
936 0, 0, 67, 0, 0, 83, 0, 61, 0, 0,
937 130, 0, 0, 0, 0, 0, 0, 0, 0, 106,
938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
939 94, 0, 0, 0, 0, 0, 0, 42, 0, 0,
940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
941 0, 0, 65, 0, 0, 0, 0, 0, 0, 0,
942 0, 0, 92, 0, 0, 0, 0, 0, 0, 0,
943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
944 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
945 0, 0, 0, 100, 48, 0, 0, 0, 93, 0,
946
947 0, 0, 0, 194, 0, 0, 0, 0, 0, 222,
948 225, 75, 74, 0, 0, 135, 153, 131, 0, 0,
949 0, 0, 0, 0, 0, 99, 0, 0, 89, 0,
950 0, 0, 0, 0, 0, 0, 0, 0, 159, 186,
951 0, 0, 0, 0, 0, 0, 191, 0, 0, 91,
952 0, 81, 0, 0, 0, 0, 0, 0, 0, 132,
953 0, 0, 0, 0, 0, 0, 0, 0, 0, 185,
954 0, 0, 21, 223, 0, 0, 0, 0, 0, 0,
955 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
956 0, 0, 90, 0, 0, 154, 0, 0, 39, 37,
957
958 0, 0, 0, 0, 95, 0, 0, 136, 0, 87,
959 0, 96, 0, 0, 0, 0, 0, 0, 0, 86,
960 0, 187, 38, 221, 0
961 } ;
962
963static const YY_CHAR yy_ec[256] =
964 { 0,
965 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
966 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
967 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
968 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
969 5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
970 14, 17, 14, 18, 14, 14, 14, 19, 5, 20,
971 5, 21, 22, 5, 23, 24, 25, 26, 27, 28,
972 5, 29, 30, 31, 32, 33, 5, 34, 35, 36,
973 5, 37, 38, 39, 40, 41, 42, 43, 44, 5,
974 45, 46, 47, 5, 48, 5, 49, 50, 51, 52,
975
976 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
977 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
978 73, 74, 75, 5, 76, 5, 5, 5, 5, 5,
979 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
980 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
981 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
982 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
983 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
984 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
985 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
986
987 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
988 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
989 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
990 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
991 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
992 5, 5, 5, 5, 5
993 } ;
994
995static const YY_CHAR yy_meta[77] =
996 { 0,
997 1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
998 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
999 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1000 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1001 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1002 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1003 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1004 1, 1, 1, 1, 1, 1
1005 } ;
1006
1007static const flex_int16_t yy_base[2334] =
1008 { 0,
1009 0, 75, 21, 28, 39, 47, 53, 61, 95, 103,
1010 2775, 2776, 31, 2771, 151, 0, 216, 2776, 223, 230,
1011 13, 237, 2776, 2751, 124, 17, 4, 34, 2776, 2776,
1012 23, 43, 64, 2776, 2776, 2776, 56, 2759, 2709, 0,
1013 2749, 106, 2766, 2, 268, 2776, 85, 90, 2712, 2733,
1014 98, 77, 2733, 235, 231, 97, 207, 298, 240, 2716,
1015 294, 306, 62, 243, 204, 222, 2711, 224, 296, 341,
1016 196, 320, 2694, 21, 332, 362, 345, 2713, 350, 0,
1017 406, 422, 436, 446, 451, 2776, 0, 2776, 298, 465,
1018 349, 351, 202, 365, 369, 301, 2776, 2710, 2754, 2776,
1019
1020 334, 2776, 464, 332, 232, 2708, 2752, 372, 17, 350,
1021 373, 2746, 225, 377, 391, 252, 2750, 0, 528, 414,
1022 2689, 2686, 2686, 433, 2686, 2687, 2693, 434, 2679, 2680,
1023 2685, 76, 2695, 2679, 2687, 2677, 342, 2693, 380, 373,
1024 427, 403, 2730, 16, 2672, 2728, 2665, 439, 2686, 2686,
1025 2680, 440, 2672, 2673, 2671, 2665, 451, 397, 2662, 2661,
1026 449, 2717, 2661, 50, 2673, 2672, 2660, 498, 2661, 436,
1027 2673, 2670, 2671, 440, 2669, 2707, 2706, 471, 444, 2650,
1028 2654, 468, 2650, 456, 2660, 2652, 2654, 0, 490, 490,
1029 509, 500, 508, 532, 2650, 2776, 538, 539, 2645, 2776,
1030
1031 502, 536, 2776, 2702, 544, 548, 2701, 547, 2700, 541,
1032 2699, 2776, 2776, 590, 2641, 553, 2654, 2646, 2644, 2644,
1033 2648, 2649, 2629, 2640, 2642, 2641, 285, 557, 2682, 2643,
1034 2624, 2621, 2629, 2635, 2623, 2633, 2633, 2624, 2633, 2633,
1035 2628, 2620, 2619, 2621, 2624, 2604, 2608, 2622, 2614, 2604,
1036 2607, 2606, 2620, 2776, 2606, 2614, 82, 2655, 2598, 2607,
1037 2652, 2596, 2606, 2649, 561, 2648, 2590, 2604, 2645, 556,
1038 2601, 2581, 2596, 2588, 2592, 470, 2583, 2581, 475, 2581,
1039 2587, 2578, 2591, 2575, 2586, 2590, 532, 2584, 462, 2591,
1040 2586, 2569, 2584, 2570, 2578, 2582, 2563, 2579, 2565, 2571,
1041
1042 2578, 2560, 522, 2565, 2562, 2561, 583, 2560, 2555, 2569,
1043 2568, 568, 2567, 2547, 2569, 2551, 553, 2548, 574, 2776,
1044 2776, 585, 2776, 2776, 2546, 547, 564, 2596, 597, 2607,
1045 2776, 589, 600, 2776, 2606, 2776, 2600, 643, 2559, 589,
1046 2536, 2555, 2556, 2553, 2536, 2553, 2592, 2549, 2539, 2594,
1047 2546, 2549, 2540, 2543, 2529, 2540, 626, 2582, 2537, 2534,
1048 2535, 619, 2538, 2582, 2514, 2526, 2521, 2518, 2514, 2513,
1049 2515, 2518, 2568, 2522, 2566, 2509, 640, 641, 2522, 2522,
1050 2505, 2506, 2519, 2517, 2515, 2515, 2514, 2509, 2516, 2511,
1051 2496, 608, 2505, 2508, 584, 2503, 2553, 599, 638, 2509,
1052
1053 2546, 2493, 2486, 2501, 2492, 2499, 2480, 2497, 2489, 2485,
1054 2490, 670, 2540, 592, 2492, 2492, 2490, 623, 2481, 2479,
1055 2491, 617, 2466, 2467, 2480, 2470, 2462, 2466, 2480, 627,
1056 2466, 2478, 2477, 2476, 2471, 2516, 2473, 2472, 2471, 2470,
1057 2453, 2461, 2514, 2470, 2512, 2449, 2510, 2509, 2448, 671,
1058 2461, 2459, 2458, 2776, 2776, 2458, 647, 2498, 2502, 2501,
1059 2776, 2500, 637, 2776, 653, 724, 2456, 653, 2498, 2441,
1060 2496, 2490, 2440, 2442, 634, 2432, 2429, 2776, 2434, 2427,
1061 2439, 2442, 2429, 2428, 2776, 2438, 658, 2429, 2426, 2438,
1062 646, 2423, 2417, 2776, 2473, 2430, 2415, 2417, 2431, 2427,
1063
1064 2425, 2425, 2419, 695, 2409, 2463, 2776, 2407, 2423, 2460,
1065 2776, 2414, 2463, 2462, 2415, 2409, 2411, 2412, 2396, 2405,
1066 2450, 2398, 2397, 2392, 2391, 2393, 2389, 2385, 659, 2404,
1067 2378, 2385, 2384, 2400, 2437, 2776, 2384, 2380, 699, 2388,
1068 2387, 2381, 2374, 2373, 2387, 2387, 2375, 2371, 2376, 2372,
1069 2367, 2776, 2376, 2426, 2776, 2365, 2358, 2418, 2417, 2359,
1070 2358, 2363, 2418, 2371, 2365, 2359, 2368, 722, 2408, 2352,
1071 2347, 2405, 2342, 2348, 688, 2362, 2355, 2359, 2342, 2403,
1072 2341, 2341, 2395, 2337, 2338, 2337, 2335, 2352, 2776, 2348,
1073 2776, 2388, 2776, 2776, 2336, 2776, 665, 2386, 2390, 2384,
1074
1075 2341, 2387, 716, 2776, 2776, 2776, 678, 683, 693, 2324,
1076 725, 2776, 2323, 2776, 692, 2341, 2321, 2331, 2334, 2375,
1077 721, 2317, 2327, 2372, 2314, 2321, 2314, 2322, 2315, 2324,
1078 2306, 2306, 2321, 2320, 2304, 697, 2318, 2317, 2301, 2316,
1079 2298, 2348, 2302, 2309, 2352, 2293, 2295, 2292, 2306, 2306,
1080 2304, 2304, 2776, 2289, 2301, 2293, 2299, 2290, 2298, 2296,
1081 2776, 2776, 2282, 2293, 2297, 2279, 2291, 2283, 683, 2274,
1082 2273, 2267, 2272, 2269, 2284, 2283, 2284, 2263, 2273, 2279,
1083 2325, 2277, 2269, 2260, 2261, 2263, 2776, 2258, 2264, 701,
1084 2312, 751, 2311, 2253, 2309, 2253, 2256, 2254, 2256, 2247,
1085
1086 2262, 2776, 2247, 759, 2244, 2260, 2257, 2252, 2248, 2776,
1087 2296, 2245, 2252, 2293, 2776, 2236, 2234, 2248, 2251, 2236,
1088 2287, 2286, 2230, 2284, 2241, 2225, 2281, 2280, 2776, 2222,
1089 2236, 2235, 738, 2236, 2235, 2232, 2216, 2272, 2233, 2228,
1090 2217, 2222, 2218, 2776, 2205, 2776, 2776, 723, 715, 735,
1091 729, 752, 166, 213, 285, 381, 385, 404, 447, 471,
1092 528, 605, 720, 774, 775, 732, 732, 774, 778, 729,
1093 725, 730, 731, 743, 749, 736, 739, 742, 751, 751,
1094 736, 796, 755, 747, 757, 800, 747, 754, 754, 756,
1095 760, 765, 768, 810, 770, 818, 772, 775, 770, 761,
1096
1097 776, 781, 782, 779, 776, 783, 782, 770, 784, 782,
1098 790, 829, 788, 836, 837, 778, 791, 777, 787, 837,
1099 792, 845, 2776, 798, 796, 798, 794, 788, 804, 852,
1100 848, 849, 809, 2776, 799, 800, 799, 812, 802, 815,
1101 862, 818, 803, 865, 866, 820, 2776, 814, 808, 803,
1102 814, 827, 818, 807, 813, 871, 832, 816, 816, 829,
1103 876, 820, 827, 839, 834, 839, 836, 883, 822, 834,
1104 848, 842, 833, 830, 2776, 897, 852, 853, 841, 855,
1105 845, 849, 861, 852, 855, 860, 861, 889, 881, 910,
1106 911, 885, 858, 872, 875, 855, 862, 876, 924, 878,
1107
1108 863, 876, 874, 2776, 2776, 878, 873, 888, 885, 871,
1109 873, 892, 889, 889, 891, 879, 887, 888, 898, 945,
1110 904, 943, 902, 893, 906, 892, 891, 897, 889, 900,
1111 895, 896, 902, 918, 901, 958, 959, 911, 961, 2776,
1112 922, 914, 925, 923, 971, 910, 927, 913, 928, 930,
1113 917, 915, 980, 934, 920, 926, 924, 2776, 2776, 940,
1114 939, 940, 945, 933, 943, 945, 2776, 945, 947, 934,
1115 952, 939, 941, 2776, 938, 956, 957, 943, 944, 940,
1116 945, 963, 1007, 2776, 965, 1009, 2776, 2776, 964, 964,
1117 1013, 956, 960, 954, 970, 1018, 968, 958, 959, 955,
1118
1119 965, 969, 980, 975, 1022, 978, 971, 973, 969, 986,
1120 976, 991, 974, 1036, 990, 992, 996, 983, 974, 997,
1121 983, 983, 2776, 990, 991, 1043, 1044, 993, 1006, 1047,
1122 991, 1007, 1007, 1001, 1025, 1035, 1023, 1031, 1043, 1060,
1123 1006, 1020, 1060, 1019, 1062, 2776, 1068, 1018, 1009, 1028,
1124 1018, 1017, 1012, 1013, 1025, 1020, 1016, 1034, 1026, 1021,
1125 1022, 1032, 1041, 1082, 2776, 1036, 1030, 1048, 1041, 1036,
1126 1092, 1098, 1052, 1043, 1101, 1058, 1049, 1057, 1059, 1044,
1127 1060, 1065, 1051, 1063, 1060, 1058, 1070, 1054, 1055, 2776,
1128 1071, 1074, 1071, 1058, 1060, 1121, 1061, 1080, 2776, 1079,
1129
1130 1082, 1069, 1064, 1082, 1070, 1126, 1081, 1077, 1074, 1130,
1131 1076, 1132, 1091, 1077, 1095, 1095, 1095, 1097, 1082, 1097,
1132 1084, 1085, 1101, 1088, 1105, 2776, 1103, 1090, 2776, 1148,
1133 1098, 2776, 1108, 1101, 1157, 1101, 2776, 1104, 1109, 1156,
1134 1104, 1105, 1117, 1111, 1109, 1106, 1121, 1169, 1110, 1111,
1135 1172, 1173, 1114, 1126, 1119, 2776, 1115, 1132, 1124, 1120,
1136 1123, 1178, 1117, 1138, 1124, 1125, 1126, 1127, 1133, 1141,
1137 1132, 1146, 1194, 1148, 1149, 1164, 1193, 1176, 1168, 1173,
1138 2776, 1156, 1141, 1161, 1144, 1144, 2776, 1147, 1146, 1148,
1139 1159, 1149, 1169, 1168, 1159, 1170, 1216, 1155, 1167, 1176,
1140
1141 1169, 1173, 1177, 1160, 1181, 1178, 1183, 1174, 1233, 1177,
1142 1181, 2776, 1231, 1177, 2776, 1195, 1177, 1177, 1198, 1195,
1143 1238, 1198, 1185, 1203, 1191, 1205, 1198, 1207, 1187, 1202,
1144 1209, 1194, 1255, 1256, 2776, 1206, 1258, 1212, 1198, 1208,
1145 1218, 1202, 1222, 1205, 1207, 1207, 1214, 1223, 1211, 1218,
1146 1213, 1220, 1232, 1276, 1220, 1278, 1220, 1234, 1238, 1282,
1147 1232, 1233, 1222, 1286, 1234, 1237, 1232, 1236, 1291, 1292,
1148 1242, 2776, 1231, 1248, 1241, 1232, 1251, 1245, 1240, 1250,
1149 1246, 1241, 1259, 2776, 1243, 1239, 2776, 2776, 1245, 1308,
1150 1264, 1245, 1251, 1265, 1251, 1267, 1269, 1311, 1261, 1318,
1151
1152 1319, 1269, 1274, 1268, 1266, 1277, 1259, 2776, 1264, 1270,
1153 1296, 1309, 1297, 1311, 1298, 1333, 1283, 1286, 1286, 1290,
1154 1291, 1339, 1279, 1279, 1282, 1299, 1294, 1298, 1293, 2776,
1155 1290, 1303, 1287, 1304, 1284, 1305, 1295, 1288, 1300, 1301,
1156 1357, 1307, 2776, 1320, 1318, 1321, 1305, 1314, 1318, 1323,
1157 1309, 1372, 1322, 1328, 1328, 1315, 1329, 1327, 1324, 1320,
1158 1338, 1339, 1340, 1323, 2776, 2776, 1339, 2776, 1341, 1326,
1159 1337, 1328, 1347, 1340, 1338, 1393, 1347, 1344, 1391, 1352,
1160 1341, 1348, 1353, 1350, 1356, 2776, 1349, 2776, 1341, 1354,
1161 1406, 2776, 1350, 1351, 1362, 2776, 1363, 1357, 1352, 1362,
1162
1163 2776, 2776, 1352, 1353, 1356, 1370, 1375, 1358, 1369, 1421,
1164 1375, 1362, 1381, 1372, 1426, 1422, 1428, 2776, 1376, 1373,
1165 1384, 1432, 1433, 1434, 1388, 1389, 1391, 2776, 2776, 1383,
1166 1378, 1435, 1381, 1397, 1381, 1393, 1382, 1441, 1424, 1425,
1167 1417, 1450, 2776, 1394, 1405, 1396, 1407, 1409, 2776, 1456,
1168 1390, 1401, 1416, 1455, 1404, 1415, 1403, 1402, 1418, 1419,
1169 1416, 1463, 1423, 1470, 1471, 1427, 1416, 1428, 1434, 1423,
1170 1423, 1481, 1477, 1478, 1484, 1438, 2776, 1440, 1436, 1440,
1171 1442, 1433, 1436, 1445, 1442, 1432, 1435, 1435, 1497, 1498,
1172 1442, 1500, 1444, 1502, 1443, 1448, 1506, 2776, 1461, 1440,
1173
1174 1455, 1448, 1451, 1464, 1467, 1466, 1464, 1516, 1467, 1457,
1175 2776, 1464, 1465, 1517, 1461, 1477, 1525, 1478, 1527, 1528,
1176 1529, 1470, 1480, 1532, 1486, 2776, 1478, 1535, 1476, 1476,
1177 2776, 1494, 2776, 1491, 1482, 1482, 2776, 2776, 2776, 1496,
1178 1479, 1499, 1500, 1486, 1488, 1550, 1497, 1552, 1498, 1492,
1179 1519, 1537, 1552, 1538, 2776, 1502, 1560, 1507, 1557, 1563,
1180 2776, 1503, 1565, 1512, 1506, 1503, 1506, 1508, 1504, 1567,
1181 1527, 1569, 1519, 1531, 1534, 2776, 2776, 1531, 1523, 1526,
1182 1521, 1586, 1531, 2776, 1528, 1527, 2776, 1529, 1591, 1530,
1183 1542, 1533, 1590, 1549, 1551, 1551, 1548, 1595, 1554, 2776,
1184
1185 2776, 1546, 2776, 1547, 2776, 1557, 1549, 2776, 1601, 1560,
1186 1561, 1559, 1606, 1551, 1566, 1609, 1568, 1560, 2776, 1557,
1187 1567, 1558, 1559, 1560, 1617, 1623, 2776, 1577, 2776, 2776,
1188 2776, 1620, 1564, 2776, 1581, 1566, 2776, 1580, 1568, 1632,
1189 1576, 1569, 1574, 1585, 1578, 1597, 1590, 1596, 1586, 1644,
1190 1594, 2776, 1603, 2776, 1600, 1648, 1625, 1626, 1632, 1617,
1191 1625, 1654, 2776, 1609, 1594, 2776, 1657, 2776, 1658, 1612,
1192 1617, 1599, 1662, 1663, 1604, 1660, 1623, 1617, 1613, 1607,
1193 1614, 1666, 1621, 1622, 2776, 1612, 1628, 1632, 1683, 2776,
1194 1633, 1619, 1681, 1642, 1642, 1684, 1629, 1634, 1632, 1694,
1195
1196 1647, 1635, 1697, 1693, 1645, 1700, 1658, 1647, 1641, 1704,
1197 1643, 1652, 1645, 1659, 1662, 1653, 1711, 1712, 1662, 1660,
1198 2776, 1653, 1651, 1712, 1713, 1714, 1666, 1665, 1665, 1661,
1199 1662, 2776, 1670, 1676, 1667, 1668, 1730, 1668, 1670, 1728,
1200 1671, 2776, 1667, 1685, 1737, 2776, 1705, 1719, 1718, 1707,
1201 1709, 2776, 1743, 1693, 2776, 2776, 1684, 1695, 1747, 2776,
1202 1748, 2776, 1702, 1692, 1697, 1695, 1748, 1703, 1709, 1695,
1203 1698, 1714, 1703, 1701, 1701, 1703, 2776, 1707, 1770, 1708,
1204 1722, 1768, 1712, 1776, 1721, 1731, 1732, 2776, 1780, 1730,
1205 1777, 2776, 1725, 1733, 2776, 1724, 1739, 1727, 2776, 1737,
1206
1207 1738, 1739, 1791, 1746, 1737, 2776, 2776, 1726, 1744, 1745,
1208 1754, 1736, 1742, 1755, 1744, 1797, 1746, 1742, 1747, 1744,
1209 1745, 1803, 1809, 2776, 1756, 1811, 1761, 1751, 1767, 1760,
1210 2776, 1793, 1818, 1800, 1815, 1821, 2776, 1767, 1823, 1762,
1211 2776, 2776, 1764, 1766, 1776, 1823, 1768, 1783, 1770, 1832,
1212 1786, 1772, 1779, 1779, 1790, 1791, 1783, 2776, 1786, 1780,
1213 1782, 1797, 1784, 1796, 2776, 1843, 1791, 1788, 2776, 1802,
1214 1789, 1810, 1806, 1808, 1856, 1806, 1803, 1811, 1805, 2776,
1215 1861, 1819, 1816, 1809, 1810, 1815, 1816, 1810, 1815, 1826,
1216 1810, 1819, 1868, 1874, 1824, 1876, 1822, 2776, 1816, 2776,
1217
1218 1823, 1880, 1881, 1878, 1879, 2776, 1861, 1867, 2776, 1839,
1219 2776, 1883, 1832, 1843, 1844, 1829, 1830, 1838, 1895, 2776,
1220 1840, 1892, 1893, 1845, 1840, 1858, 1859, 1856, 1904, 1848,
1221 1861, 1856, 1853, 1858, 1856, 1911, 1914, 1859, 1856, 1870,
1222 1857, 2776, 1872, 1873, 1874, 1875, 2776, 1869, 1924, 1874,
1223 1879, 1865, 1873, 1867, 1887, 1888, 1869, 1870, 1877, 2776,
1224 1879, 2776, 1893, 1890, 1933, 1891, 2776, 2776, 1895, 1921,
1225 1922, 1920, 1883, 1883, 1892, 1899, 1892, 1891, 1902, 1889,
1226 2776, 1905, 1893, 1896, 1955, 1892, 1911, 1904, 1903, 2776,
1227 1915, 1908, 1907, 1916, 1918, 1922, 2776, 2776, 1915, 1908,
1228
1229 1909, 1972, 1912, 1974, 1913, 1976, 1972, 2776, 1916, 1979,
1230 1975, 1934, 1931, 1922, 1930, 1941, 1928, 1939, 1925, 1923,
1231 1931, 1930, 1935, 1927, 1972, 1996, 1978, 1998, 1948, 1937,
1232 1950, 1940, 1957, 1956, 2000, 1941, 1960, 1961, 2776, 1966,
1233 1959, 2006, 2012, 1966, 1953, 1968, 2016, 1970, 1973, 1960,
1234 1969, 1970, 2776, 2024, 2776, 1974, 2776, 1972, 2027, 2776,
1235 1966, 2029, 1973, 1970, 2032, 1977, 2029, 2030, 1989, 2032,
1236 1975, 1979, 1997, 2041, 1997, 2024, 2776, 2020, 2776, 1990,
1237 1984, 1981, 2043, 2006, 1999, 1995, 2052, 1992, 1994, 1993,
1238 2000, 2012, 2776, 1997, 2059, 2000, 2776, 2005, 2015, 2000,
1239
1240 2008, 2010, 2776, 2011, 2016, 2776, 2017, 2776, 2014, 2025,
1241 2776, 2026, 2026, 2017, 2076, 2017, 2027, 2012, 2025, 2776,
1242 2027, 2058, 2064, 2036, 2034, 2086, 2024, 2026, 2023, 2047,
1243 2776, 2034, 2041, 2042, 2045, 2041, 2035, 2776, 2092, 2036,
1244 2044, 2053, 2052, 2055, 2056, 2043, 2050, 2045, 2046, 2046,
1245 2060, 2055, 2776, 2066, 2054, 2110, 2058, 2070, 2098, 2119,
1246 2120, 2064, 2776, 2064, 2076, 2124, 2070, 2072, 2070, 2071,
1247 2129, 2087, 2080, 2067, 2082, 2087, 2135, 2136, 2137, 2138,
1248 2077, 2093, 2141, 2142, 2143, 2085, 2089, 2085, 2101, 2084,
1249 2096, 2090, 2152, 2776, 2776, 2097, 2108, 2155, 2776, 2109,
1250
1251 2094, 2112, 2103, 2776, 2099, 2105, 2119, 2115, 2108, 2776,
1252 2776, 2776, 2776, 2165, 2166, 2776, 2776, 2776, 2106, 2114,
1253 2109, 2165, 2128, 2125, 2173, 2776, 2169, 2132, 2776, 2176,
1254 2115, 2178, 2118, 2119, 2132, 2131, 2132, 2122, 2776, 2776,
1255 2123, 2186, 2136, 2145, 2138, 2185, 2776, 2136, 2130, 2776,
1256 2142, 2776, 2189, 2148, 2196, 2135, 2151, 2199, 2200, 2776,
1257 2154, 2148, 2141, 2161, 2148, 2160, 2151, 2155, 2149, 2776,
1258 2206, 2152, 2776, 2776, 2152, 2160, 2210, 2167, 2160, 2172,
1259 2219, 2164, 2164, 2222, 2161, 2163, 2225, 2226, 2165, 2181,
1260 2166, 2183, 2776, 2231, 2175, 2776, 2182, 2234, 2776, 2776,
1261
1262 2184, 2236, 2181, 2238, 2776, 2186, 2185, 2776, 2186, 2776,
1263 2180, 2776, 2180, 2197, 2198, 2246, 2189, 2248, 2249, 2776,
1264 2250, 2776, 2776, 2776, 2776, 2256, 2259, 2262, 2263, 2265,
1265 2268, 2271, 2274
1266 } ;
1267
1268static const flex_int16_t yy_def[2334] =
1269 { 0,
1270 2326, 2326, 2327, 2327, 2326, 2326, 2326, 2326, 2326, 2326,
1271 2325, 2325, 2325, 2325, 2325, 2328, 2325, 2325, 2325, 2325,
1272 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
1273 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2329,
1274 2325, 2325, 2325, 2330, 15, 2325, 45, 45, 45, 45,
1275 45, 45, 45, 45, 45, 45, 45, 2331, 45, 45,
1276 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1277 45, 45, 45, 45, 45, 45, 45, 45, 45, 2328,
1278 2325, 2325, 2325, 2325, 2325, 2325, 2332, 2325, 2325, 2325,
1279 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2329, 2325,
1280
1281 2330, 2325, 2325, 45, 45, 45, 45, 45, 45, 45,
1282 45, 45, 45, 45, 45, 45, 2333, 45, 2331, 45,
1283 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1284 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1285 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1286 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1287 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1288 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1289 45, 45, 45, 45, 45, 45, 45, 2332, 2325, 2325,
1290 2325, 2325, 2325, 2325, 2325, 2325, 45, 45, 45, 2325,
1291
1292 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45,
1293 2333, 2325, 2325, 119, 45, 45, 45, 45, 45, 45,
1294 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1295 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1296 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1297 45, 45, 45, 2325, 45, 45, 45, 45, 45, 45,
1298 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1299 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1300 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1301 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1302
1303 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1304 45, 45, 45, 45, 45, 45, 45, 45, 2325, 2325,
1305 2325, 2325, 2325, 2325, 2325, 45, 45, 45, 45, 45,
1306 2325, 45, 45, 2325, 45, 2325, 45, 119, 45, 45,
1307 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1308 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1309 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1310 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1311 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1312 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1313
1314 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1315 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1316 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1317 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1318 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1319 45, 45, 45, 2325, 2325, 2325, 45, 45, 45, 45,
1320 2325, 45, 45, 2325, 45, 119, 45, 45, 45, 45,
1321 45, 45, 45, 45, 45, 45, 45, 2325, 45, 45,
1322 45, 45, 45, 45, 2325, 45, 45, 45, 45, 45,
1323 45, 45, 45, 2325, 45, 45, 45, 45, 45, 45,
1324
1325 45, 45, 45, 45, 45, 45, 2325, 45, 45, 45,
1326 2325, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1327 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1328 45, 45, 45, 45, 45, 2325, 45, 45, 45, 45,
1329 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1330 45, 2325, 45, 45, 2325, 45, 45, 45, 45, 45,
1331 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1332 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1333 45, 45, 45, 45, 45, 45, 45, 45, 2325, 45,
1334 2325, 45, 2325, 2325, 45, 2325, 45, 45, 45, 45,
1335
1336 2325, 45, 45, 2325, 2325, 2325, 45, 45, 45, 45,
1337 45, 2325, 45, 2325, 45, 45, 45, 45, 45, 45,
1338 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1339 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1340 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1341 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45,
1342 2325, 2325, 45, 45, 45, 45, 45, 45, 45, 45,
1343 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1344 45, 45, 45, 45, 45, 45, 2325, 45, 45, 45,
1345 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1346
1347 45, 2325, 45, 45, 45, 45, 45, 45, 45, 2325,
1348 45, 45, 45, 45, 2325, 45, 45, 45, 45, 45,
1349 45, 45, 45, 45, 45, 45, 45, 45, 2325, 45,
1350 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1351 45, 45, 45, 2325, 45, 2325, 2325, 45, 45, 45,
1352 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1353 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1354 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1355 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1356 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1357
1358 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1359 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1360 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45,
1361 45, 45, 45, 2325, 45, 45, 45, 45, 45, 45,
1362 45, 45, 45, 45, 45, 45, 2325, 45, 45, 45,
1363 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1364 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1365 45, 45, 45, 45, 2325, 45, 45, 45, 45, 45,
1366 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1367 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1368
1369 45, 45, 45, 2325, 2325, 45, 45, 45, 45, 45,
1370 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1371 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1372 45, 45, 45, 45, 45, 45, 45, 45, 45, 2325,
1373 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1374 45, 45, 45, 45, 45, 45, 45, 2325, 2325, 45,
1375 45, 45, 45, 45, 45, 45, 2325, 45, 45, 45,
1376 45, 45, 45, 2325, 45, 45, 45, 45, 45, 45,
1377 45, 45, 45, 2325, 45, 45, 2325, 2325, 45, 45,
1378 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1379
1380 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1381 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1382 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45,
1383 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1384 45, 45, 45, 45, 45, 2325, 45, 45, 45, 45,
1385 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1386 45, 45, 45, 45, 2325, 45, 45, 45, 45, 45,
1387 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1388 45, 45, 45, 45, 45, 45, 45, 45, 45, 2325,
1389 45, 45, 45, 45, 45, 45, 45, 45, 2325, 45,
1390
1391 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1392 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1393 45, 45, 45, 45, 45, 2325, 45, 45, 2325, 45,
1394 45, 2325, 45, 45, 45, 45, 2325, 45, 45, 45,
1395 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1396 45, 45, 45, 45, 45, 2325, 45, 45, 45, 45,
1397 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1398 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1399 2325, 45, 45, 45, 45, 45, 2325, 45, 45, 45,
1400 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1401
1402 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1403 45, 2325, 45, 45, 2325, 45, 45, 45, 45, 45,
1404 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1405 45, 45, 45, 45, 2325, 45, 45, 45, 45, 45,
1406 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1407 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1408 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1409 45, 2325, 45, 45, 45, 45, 45, 45, 45, 45,
1410 45, 45, 45, 2325, 45, 45, 2325, 2325, 45, 45,
1411 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1412
1413 45, 45, 45, 45, 45, 45, 45, 2325, 45, 45,
1414 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1415 45, 45, 45, 45, 45, 45, 45, 45, 45, 2325,
1416 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1417 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45,
1418 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1419 45, 45, 45, 45, 2325, 2325, 45, 2325, 45, 45,
1420 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1421 45, 45, 45, 45, 45, 2325, 45, 2325, 45, 45,
1422 45, 2325, 45, 45, 45, 2325, 45, 45, 45, 45,
1423
1424 2325, 2325, 45, 45, 45, 45, 45, 45, 45, 45,
1425 45, 45, 45, 45, 45, 45, 45, 2325, 45, 45,
1426 45, 45, 45, 45, 45, 45, 45, 2325, 2325, 45,
1427 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1428 45, 45, 2325, 45, 45, 45, 45, 45, 2325, 45,
1429 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1430 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1431 45, 45, 45, 45, 45, 45, 2325, 45, 45, 45,
1432 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1433 45, 45, 45, 45, 45, 45, 45, 2325, 45, 45,
1434
1435 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1436 2325, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1437 45, 45, 45, 45, 45, 2325, 45, 45, 45, 45,
1438 2325, 45, 2325, 45, 45, 45, 2325, 2325, 2325, 45,
1439 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1440 45, 45, 45, 45, 2325, 45, 45, 45, 45, 45,
1441 2325, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1442 45, 45, 45, 45, 45, 2325, 2325, 45, 45, 45,
1443 45, 45, 45, 2325, 45, 45, 2325, 45, 45, 45,
1444 45, 45, 45, 45, 45, 45, 45, 45, 45, 2325,
1445
1446 2325, 45, 2325, 45, 2325, 45, 45, 2325, 45, 45,
1447 45, 45, 45, 45, 45, 45, 45, 45, 2325, 45,
1448 45, 45, 45, 45, 45, 45, 2325, 45, 2325, 2325,
1449 2325, 45, 45, 2325, 45, 45, 2325, 45, 45, 45,
1450 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1451 45, 2325, 45, 2325, 45, 45, 45, 45, 45, 45,
1452 45, 45, 2325, 45, 45, 2325, 45, 2325, 45, 45,
1453 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1454 45, 45, 45, 45, 2325, 45, 45, 45, 45, 2325,
1455 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1456
1457 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1458 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1459 2325, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1460 45, 2325, 45, 45, 45, 45, 45, 45, 45, 45,
1461 45, 2325, 45, 45, 45, 2325, 45, 45, 45, 45,
1462 45, 2325, 45, 45, 2325, 2325, 45, 45, 45, 2325,
1463 45, 2325, 45, 45, 45, 45, 45, 45, 45, 45,
1464 45, 45, 45, 45, 45, 45, 2325, 45, 45, 45,
1465 45, 45, 45, 45, 45, 45, 45, 2325, 45, 45,
1466 45, 2325, 45, 45, 2325, 45, 45, 45, 2325, 45,
1467
1468 45, 45, 45, 45, 45, 2325, 2325, 45, 45, 45,
1469 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1470 45, 45, 45, 2325, 45, 45, 45, 45, 45, 45,
1471 2325, 45, 45, 45, 45, 45, 2325, 45, 45, 45,
1472 2325, 2325, 45, 45, 45, 45, 45, 45, 45, 45,
1473 45, 45, 45, 45, 45, 45, 45, 2325, 45, 45,
1474 45, 45, 45, 45, 2325, 45, 45, 45, 2325, 45,
1475 45, 45, 45, 45, 45, 45, 45, 45, 45, 2325,
1476 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1477 45, 45, 45, 45, 45, 45, 45, 2325, 45, 2325,
1478
1479 45, 45, 45, 45, 45, 2325, 45, 45, 2325, 45,
1480 2325, 45, 45, 45, 45, 45, 45, 45, 45, 2325,
1481 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1482 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1483 45, 2325, 45, 45, 45, 45, 2325, 45, 45, 45,
1484 45, 45, 45, 45, 45, 45, 45, 45, 45, 2325,
1485 45, 2325, 45, 45, 45, 45, 2325, 2325, 45, 45,
1486 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1487 2325, 45, 45, 45, 45, 45, 45, 45, 45, 2325,
1488 45, 45, 45, 45, 45, 45, 2325, 2325, 45, 45,
1489
1490 45, 45, 45, 45, 45, 45, 45, 2325, 45, 45,
1491 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1492 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1493 45, 45, 45, 45, 45, 45, 45, 45, 2325, 45,
1494 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1495 45, 45, 2325, 45, 2325, 45, 2325, 45, 45, 2325,
1496 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1497 45, 45, 45, 45, 45, 45, 2325, 45, 2325, 45,
1498 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1499 45, 45, 2325, 45, 45, 45, 2325, 45, 45, 45,
1500
1501 45, 45, 2325, 45, 45, 2325, 45, 2325, 45, 45,
1502 2325, 45, 45, 45, 45, 45, 45, 45, 45, 2325,
1503 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1504 2325, 45, 45, 45, 45, 45, 45, 2325, 45, 45,
1505 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1506 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45,
1507 45, 45, 2325, 45, 45, 45, 45, 45, 45, 45,
1508 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1509 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1510 45, 45, 45, 2325, 2325, 45, 45, 45, 2325, 45,
1511
1512 45, 45, 45, 2325, 45, 45, 45, 45, 45, 2325,
1513 2325, 2325, 2325, 45, 45, 2325, 2325, 2325, 45, 45,
1514 45, 45, 45, 45, 45, 2325, 45, 45, 2325, 45,
1515 45, 45, 45, 45, 45, 45, 45, 45, 2325, 2325,
1516 45, 45, 45, 45, 45, 45, 2325, 45, 45, 2325,
1517 45, 2325, 45, 45, 45, 45, 45, 45, 45, 2325,
1518 45, 45, 45, 45, 45, 45, 45, 45, 45, 2325,
1519 45, 45, 2325, 2325, 45, 45, 45, 45, 45, 45,
1520 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1521 45, 45, 2325, 45, 45, 2325, 45, 45, 2325, 2325,
1522
1523 45, 45, 45, 45, 2325, 45, 45, 2325, 45, 2325,
1524 45, 2325, 45, 45, 45, 45, 45, 45, 45, 2325,
1525 45, 2325, 2325, 2325, 0, 2325, 2325, 2325, 2325, 2325,
1526 2325, 2325, 2325
1527 } ;
1528
1529static const flex_int16_t yy_nxt[2853] =
1530 { 0,
1531 2325, 13, 14, 13, 2325, 15, 16, 102, 17, 18,
1532 19, 20, 21, 22, 22, 22, 22, 22, 23, 24,
1533 86, 254, 37, 14, 37, 87, 25, 26, 38, 37,
1534 14, 37, 42, 27, 42, 38, 2325, 2325, 28, 91,
1535 13, 14, 13, 92, 29, 91, 30, 103, 13, 14,
1536 13, 202, 25, 31, 13, 14, 13, 42, 40, 42,
1537 2325, 32, 13, 14, 13, 91, 40, 33, 255, 167,
1538 93, 94, 92, 168, 34, 35, 13, 14, 13, 202,
1539 15, 16, 92, 17, 18, 19, 20, 21, 22, 22,
1540 22, 22, 22, 23, 24, 39, 13, 14, 13, 93,
1541
1542 93, 25, 26, 39, 13, 14, 13, 42, 27, 42,
1543 136, 95, 281, 28, 109, 282, 41, 104, 105, 29,
1544 108, 30, 115, 137, 41, 232, 233, 25, 31, 96,
1545 383, 138, 89, 139, 89, 234, 32, 90, 90, 90,
1546 90, 90, 33, 109, 104, 105, 108, 384, 115, 34,
1547 35, 44, 44, 44, 45, 45, 46, 45, 45, 45,
1548 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1549 45, 45, 45, 47, 45, 48, 49, 50, 51, 45,
1550 45, 52, 45, 53, 54, 45, 45, 45, 45, 55,
1551 56, 45, 57, 45, 45, 45, 58, 45, 45, 59,
1552
1553 60, 61, 62, 63, 64, 45, 65, 66, 52, 67,
1554 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1555 78, 79, 45, 45, 45, 45, 45, 81, 893, 82,
1556 82, 82, 82, 82, 81, 116, 84, 84, 84, 84,
1557 84, 191, 83, 85, 85, 85, 85, 85, 81, 83,
1558 84, 84, 84, 84, 84, 113, 83, 158, 198, 159,
1559 207, 111, 116, 83, 160, 108, 141, 114, 83, 112,
1560 191, 142, 104, 144, 143, 83, 148, 149, 210, 894,
1561 150, 113, 83, 145, 198, 146, 151, 111, 207, 83,
1562 45, 108, 45, 45, 45, 45, 114, 112, 45, 120,
1563
1564 45, 45, 140, 118, 210, 121, 45, 45, 122, 45,
1565 45, 90, 90, 90, 90, 90, 45, 45, 45, 45,
1566 45, 45, 105, 45, 45, 45, 45, 45, 45, 45,
1567 45, 45, 45, 45, 45, 45, 45, 45, 45, 102,
1568 191, 895, 124, 45, 152, 351, 125, 45, 352, 105,
1569 126, 45, 153, 127, 130, 203, 128, 131, 132, 45,
1570 129, 133, 134, 45, 154, 45, 119, 111, 161, 194,
1571 115, 162, 163, 197, 135, 112, 176, 177, 116, 103,
1572 169, 189, 164, 190, 170, 165, 113, 171, 204, 155,
1573 239, 156, 240, 157, 172, 173, 115, 189, 114, 174,
1574
1575 175, 190, 197, 112, 201, 116, 184, 271, 189, 241,
1576 190, 185, 178, 205, 179, 187, 208, 180, 181, 85,
1577 85, 85, 85, 85, 192, 246, 209, 182, 193, 896,
1578 243, 201, 83, 81, 183, 82, 82, 82, 82, 82,
1579 897, 247, 205, 244, 89, 208, 89, 245, 83, 90,
1580 90, 90, 90, 90, 209, 197, 272, 81, 83, 84,
1581 84, 84, 84, 84, 85, 85, 85, 85, 85, 101,
1582 251, 898, 83, 215, 83, 252, 101, 83, 90, 90,
1583 90, 90, 90, 220, 216, 226, 248, 259, 302, 249,
1584 264, 205, 221, 250, 227, 228, 222, 296, 83, 275,
1585
1586 260, 297, 303, 83, 308, 298, 207, 208, 286, 101,
1587 309, 265, 314, 101, 276, 277, 278, 101, 405, 899,
1588 270, 421, 320, 409, 422, 101, 315, 319, 406, 101,
1589 900, 101, 101, 213, 307, 321, 312, 319, 410, 329,
1590 320, 214, 214, 214, 214, 214, 287, 288, 289, 320,
1591 214, 214, 214, 214, 214, 214, 319, 290, 321, 291,
1592 326, 321, 292, 327, 293, 294, 322, 323, 329, 330,
1593 332, 392, 333, 335, 337, 326, 214, 214, 214, 214,
1594 214, 214, 332, 418, 324, 436, 326, 437, 334, 327,
1595 457, 419, 901, 441, 335, 458, 332, 330, 333, 335,
1596
1597 454, 340, 337, 338, 338, 338, 338, 338, 399, 451,
1598 353, 454, 338, 338, 338, 338, 338, 338, 354, 457,
1599 335, 452, 458, 460, 355, 462, 454, 393, 463, 491,
1600 394, 485, 457, 561, 446, 492, 486, 455, 338, 338,
1601 338, 338, 338, 338, 556, 507, 511, 533, 557, 460,
1602 508, 512, 537, 534, 462, 463, 466, 466, 466, 466,
1603 466, 468, 538, 607, 902, 466, 466, 466, 466, 466,
1604 466, 527, 528, 529, 462, 552, 596, 530, 566, 575,
1605 553, 597, 567, 576, 602, 562, 608, 618, 609, 607,
1606 602, 466, 466, 466, 466, 466, 466, 640, 723, 619,
1607
1608 653, 509, 750, 539, 687, 654, 510, 513, 629, 688,
1609 641, 677, 630, 602, 608, 741, 609, 751, 742, 611,
1610 631, 678, 632, 633, 634, 635, 636, 715, 750, 752,
1611 747, 763, 716, 810, 811, 754, 554, 45, 45, 45,
1612 45, 45, 748, 875, 889, 751, 45, 45, 45, 45,
1613 45, 45, 756, 724, 831, 876, 834, 749, 752, 757,
1614 779, 835, 832, 780, 847, 888, 890, 891, 748, 848,
1615 903, 889, 45, 45, 45, 45, 45, 45, 892, 904,
1616 905, 906, 907, 908, 910, 909, 749, 764, 911, 912,
1617 913, 914, 915, 890, 888, 916, 891, 917, 836, 918,
1618
1619 919, 920, 921, 922, 892, 923, 924, 925, 926, 927,
1620 928, 849, 929, 930, 931, 934, 935, 936, 932, 937,
1621 938, 939, 933, 940, 941, 942, 943, 944, 945, 946,
1622 947, 948, 949, 950, 951, 952, 953, 954, 955, 956,
1623 957, 958, 959, 960, 961, 962, 963, 965, 966, 964,
1624 967, 968, 969, 970, 971, 972, 973, 974, 975, 976,
1625 977, 978, 979, 980, 981, 982, 983, 984, 985, 986,
1626 987, 988, 989, 990, 991, 992, 993, 994, 995, 996,
1627 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006,
1628 1007, 1009, 1010, 1013, 1014, 1015, 1016, 1008, 1020, 1011,
1629
1630 1021, 1022, 1023, 1012, 1024, 1025, 1026, 1027, 1028, 1017,
1631 1029, 1018, 1030, 1031, 1032, 1019, 1033, 1034, 1035, 1036,
1632 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046,
1633 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,
1634 1057, 1058, 1059, 1060, 1061, 1035, 1062, 1063, 1036, 1064,
1635 1065, 1039, 1067, 1068, 1069, 1066, 1070, 1071, 1072, 1073,
1636 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083,
1637 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1092, 1093, 1094,
1638 1095, 1091, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103,
1639 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113,
1640
1641 1114, 1115, 1116, 1117, 1118, 1119, 1121, 1122, 1123, 1120,
1642 1124, 1125, 1126, 1128, 1129, 1130, 1131, 1127, 1132, 1133,
1643 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143,
1644 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1153, 1154,
1645 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1152,
1646 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173,
1647 1174, 1175, 1176, 1177, 1178, 1181, 1179, 1182, 1183, 1180,
1648 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193,
1649 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203,
1650 1177, 1176, 1204, 1178, 1179, 1180, 1205, 1207, 1208, 1206,
1651
1652 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218,
1653 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228,
1654 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1238, 1239, 1240,
1655 1241, 1236, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249,
1656 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259,
1657 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269,
1658 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279,
1659 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289,
1660 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1237, 1297, 1298,
1661 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308,
1662
1663 1309, 1310, 1311, 1312, 1314, 1313, 1315, 1316, 1317, 1318,
1664 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328,
1665 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338,
1666 1340, 1311, 1313, 1314, 1315, 1341, 1342, 1339, 1343, 1344,
1667 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354,
1668 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364,
1669 1365, 1366, 1367, 1368, 1370, 1371, 1372, 1373, 1369, 1374,
1670 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384,
1671 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394,
1672 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404,
1673
1674 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414,
1675 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424,
1676 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434,
1677 1435, 1436, 1437, 1438, 1439, 1440, 1442, 1441, 1443, 1444,
1678 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454,
1679 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464,
1680 1439, 1465, 1438, 1441, 1440, 1442, 1466, 1467, 1468, 1469,
1681 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479,
1682 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489,
1683 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499,
1684
1685 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509,
1686 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519,
1687 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529,
1688 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539,
1689 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549,
1690 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559,
1691 1560, 1561, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570,
1692 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1552,
1693 1553, 1580, 1581, 1554, 1582, 1583, 1584, 1585, 1586, 1587,
1694 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597,
1695
1696 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1562, 1606,
1697 1607, 1608, 1609, 1610, 1611, 1613, 1614, 1615, 1616, 1617,
1698 1618, 1619, 1612, 1620, 1621, 1622, 1623, 1624, 1625, 1626,
1699 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636,
1700 1637, 1639, 1640, 1643, 1641, 1638, 1642, 1644, 1645, 1646,
1701 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656,
1702 1657, 1658, 1659, 1662, 1661, 1663, 1664, 1665, 1666, 1667,
1703 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677,
1704 1678, 1679, 1680, 1681, 1682, 1683, 1660, 1658, 1684, 1657,
1705 1661, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693,
1706
1707 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703,
1708 1704, 1705, 1706, 1707, 1660, 1708, 1709, 1710, 1711, 1712,
1709 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722,
1710 1723, 1724, 1725, 1726, 1727, 1731, 1728, 1732, 1733, 1729,
1711 1734, 1735, 1730, 1736, 1737, 1738, 1739, 1740, 1741, 1742,
1712 1743, 1744, 1745, 1746, 1747, 1748, 1750, 1749, 1751, 1752,
1713 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1762, 1763,
1714 1764, 1767, 1768, 1765, 1769, 1770, 1771, 1772, 1773, 1774,
1715 1775, 1747, 1748, 1749, 1766, 1750, 1751, 1776, 1777, 1778,
1716 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788,
1717
1718 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799,
1719 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809,
1720 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1761, 1818,
1721 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828,
1722 1829, 1830, 1831, 1832, 1833, 1835, 1834, 1836, 1837, 1838,
1723 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848,
1724 1789, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857,
1725 1833, 1861, 1832, 1834, 1835, 1858, 1836, 1862, 1863, 1864,
1726 1859, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873,
1727 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883,
1728
1729 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893,
1730 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903,
1731 1904, 1905, 1860, 1906, 1907, 1908, 1909, 1910, 1911, 1912,
1732 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922,
1733 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1905, 1931,
1734 1907, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940,
1735 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950,
1736 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960,
1737 1961, 1962, 1963, 1965, 1966, 1967, 1968, 1964, 1969, 1970,
1738 1971, 1973, 1972, 1974, 1975, 1976, 1977, 1978, 1979, 1980,
1739
1740 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990,
1741 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1971, 1972, 1998,
1742 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
1743 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018,
1744 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028,
1745 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038,
1746 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048,
1747 2049, 2050, 2025, 2026, 2051, 2027, 2052, 2053, 2054, 2055,
1748 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065,
1749 2066, 2067, 2068, 2069, 2070, 2071, 2073, 2074, 2072, 2075,
1750
1751 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085,
1752 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095,
1753 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2076, 2078, 2103,
1754 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113,
1755 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123,
1756 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133,
1757 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143,
1758 2144, 2145, 2146, 2147, 2122, 2148, 2123, 2149, 2150, 2151,
1759 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2161, 2160,
1760 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171,
1761
1762 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181,
1763 2182, 2183, 2184, 2185, 2159, 2160, 2186, 2187, 2188, 2189,
1764 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199,
1765 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209,
1766 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2193,
1767 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228,
1768 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238,
1769 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248,
1770 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258,
1771 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268,
1772
1773 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278,
1774 2280, 2279, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288,
1775 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298,
1776 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308,
1777 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318,
1778 2319, 2320, 2321, 2322, 2323, 2324, 12, 12, 12, 36,
1779 36, 36, 80, 99, 80, 101, 101, 101, 117, 117,
1780 117, 188, 887, 188, 211, 211, 211, 886, 885, 884,
1781 883, 882, 881, 880, 879, 878, 877, 874, 873, 872,
1782 871, 870, 869, 868, 867, 866, 865, 864, 863, 862,
1783
1784 861, 860, 859, 858, 857, 856, 855, 854, 853, 852,
1785 851, 850, 846, 845, 844, 843, 842, 841, 840, 839,
1786 838, 837, 833, 830, 829, 828, 827, 826, 825, 824,
1787 823, 822, 821, 820, 819, 818, 817, 816, 815, 814,
1788 813, 812, 809, 808, 807, 806, 805, 804, 803, 802,
1789 801, 800, 799, 798, 797, 796, 795, 794, 793, 792,
1790 791, 790, 789, 788, 787, 786, 785, 784, 783, 782,
1791 781, 778, 777, 776, 775, 774, 773, 772, 771, 770,
1792 769, 768, 767, 766, 765, 762, 761, 760, 759, 758,
1793 755, 753, 747, 746, 745, 744, 743, 740, 739, 738,
1794
1795 737, 736, 735, 734, 733, 732, 731, 730, 729, 728,
1796 727, 726, 725, 722, 721, 720, 719, 718, 717, 714,
1797 713, 712, 711, 710, 709, 708, 707, 706, 705, 704,
1798 703, 702, 701, 700, 699, 698, 697, 696, 695, 694,
1799 693, 692, 691, 690, 689, 686, 685, 684, 683, 682,
1800 681, 680, 679, 676, 675, 674, 673, 672, 671, 670,
1801 669, 668, 667, 666, 665, 664, 663, 662, 661, 660,
1802 659, 658, 657, 656, 655, 652, 651, 650, 649, 648,
1803 647, 646, 645, 644, 643, 642, 639, 638, 637, 628,
1804 627, 626, 625, 624, 623, 622, 621, 620, 617, 616,
1805
1806 615, 614, 613, 612, 610, 606, 605, 604, 603, 601,
1807 600, 599, 598, 595, 594, 593, 592, 591, 590, 589,
1808 588, 587, 586, 585, 584, 583, 582, 581, 580, 579,
1809 578, 577, 574, 573, 572, 571, 570, 569, 568, 565,
1810 564, 563, 560, 559, 558, 555, 551, 550, 549, 548,
1811 547, 546, 545, 544, 543, 542, 541, 540, 536, 535,
1812 532, 531, 526, 525, 524, 523, 522, 521, 520, 519,
1813 518, 517, 516, 515, 514, 506, 505, 504, 503, 502,
1814 501, 500, 499, 498, 497, 496, 495, 494, 493, 490,
1815 489, 488, 487, 484, 483, 482, 481, 480, 479, 478,
1816
1817 477, 476, 475, 474, 473, 472, 471, 470, 469, 467,
1818 465, 464, 461, 459, 456, 453, 450, 449, 448, 447,
1819 445, 444, 443, 442, 440, 439, 438, 435, 434, 433,
1820 432, 431, 430, 429, 428, 427, 426, 425, 424, 423,
1821 420, 417, 416, 415, 414, 413, 412, 411, 408, 407,
1822 404, 403, 402, 401, 400, 398, 397, 396, 395, 391,
1823 390, 389, 388, 387, 386, 385, 382, 381, 380, 379,
1824 378, 377, 376, 375, 374, 373, 372, 371, 370, 369,
1825 368, 367, 366, 365, 364, 363, 362, 361, 360, 359,
1826 358, 357, 356, 350, 349, 348, 347, 346, 345, 344,
1827
1828 343, 342, 341, 339, 212, 336, 334, 331, 328, 325,
1829 318, 317, 316, 313, 311, 310, 306, 305, 304, 301,
1830 300, 299, 295, 285, 284, 283, 280, 279, 274, 273,
1831 269, 268, 267, 266, 263, 262, 261, 258, 257, 256,
1832 253, 242, 238, 237, 236, 235, 231, 230, 229, 225,
1833 224, 223, 219, 218, 217, 212, 206, 200, 199, 196,
1834 195, 186, 166, 147, 123, 110, 107, 106, 43, 100,
1835 98, 97, 88, 43, 2325, 11, 2325, 2325, 2325, 2325,
1836 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
1837 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
1838
1839 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
1840 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
1841 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
1842 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
1843 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
1844 2325, 2325
1845 } ;
1846
1847static const flex_int16_t yy_chk[2853] =
1848 { 0,
1849 0, 1, 1, 1, 0, 1, 1, 44, 1, 1,
1850 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1851 21, 144, 3, 3, 3, 21, 1, 1, 3, 4,
1852 4, 4, 13, 1, 13, 4, 0, 0, 1, 26,
1853 5, 5, 5, 27, 1, 31, 1, 44, 6, 6,
1854 6, 109, 1, 1, 7, 7, 7, 37, 7, 37,
1855 0, 1, 8, 8, 8, 26, 8, 1, 144, 74,
1856 28, 31, 27, 74, 1, 1, 2, 2, 2, 109,
1857 2, 2, 32, 2, 2, 2, 2, 2, 2, 2,
1858 2, 2, 2, 2, 2, 5, 9, 9, 9, 28,
1859
1860 33, 2, 2, 6, 10, 10, 10, 42, 2, 42,
1861 63, 32, 164, 2, 52, 164, 9, 47, 48, 2,
1862 51, 2, 56, 63, 10, 132, 132, 2, 2, 33,
1863 257, 63, 25, 63, 25, 132, 2, 25, 25, 25,
1864 25, 25, 2, 52, 47, 48, 51, 257, 56, 2,
1865 2, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1866 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1867 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1868 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1869 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1870
1871 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1872 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1873 15, 15, 15, 15, 15, 15, 15, 17, 753, 17,
1874 17, 17, 17, 17, 19, 57, 19, 19, 19, 19,
1875 19, 93, 17, 20, 20, 20, 20, 20, 22, 19,
1876 22, 22, 22, 22, 22, 55, 20, 71, 105, 71,
1877 113, 54, 57, 22, 71, 64, 65, 55, 17, 54,
1878 93, 65, 59, 66, 65, 19, 68, 68, 116, 754,
1879 68, 55, 20, 66, 105, 66, 68, 54, 113, 22,
1880 45, 64, 45, 45, 45, 45, 55, 54, 45, 59,
1881
1882 45, 45, 64, 58, 116, 59, 45, 45, 59, 45,
1883 58, 89, 89, 89, 89, 89, 45, 45, 45, 45,
1884 45, 45, 61, 45, 45, 45, 45, 45, 45, 45,
1885 45, 45, 45, 45, 45, 45, 45, 45, 45, 101,
1886 96, 755, 61, 58, 69, 227, 61, 58, 227, 61,
1887 61, 58, 69, 61, 62, 110, 61, 62, 62, 58,
1888 61, 62, 62, 58, 69, 58, 58, 70, 72, 96,
1889 77, 72, 72, 104, 62, 70, 76, 76, 79, 101,
1890 75, 91, 72, 92, 75, 72, 76, 75, 110, 70,
1891 137, 70, 137, 70, 75, 75, 77, 94, 76, 75,
1892
1893 75, 95, 104, 70, 108, 79, 77, 158, 91, 137,
1894 92, 77, 76, 111, 76, 79, 114, 76, 76, 81,
1895 81, 81, 81, 81, 94, 140, 115, 76, 95, 756,
1896 139, 108, 81, 82, 76, 82, 82, 82, 82, 82,
1897 757, 140, 111, 139, 83, 114, 83, 139, 82, 83,
1898 83, 83, 83, 83, 115, 120, 158, 84, 81, 84,
1899 84, 84, 84, 84, 85, 85, 85, 85, 85, 103,
1900 142, 758, 84, 120, 82, 142, 103, 85, 90, 90,
1901 90, 90, 90, 124, 120, 128, 141, 148, 174, 141,
1902 152, 157, 124, 141, 128, 128, 124, 170, 84, 161,
1903
1904 148, 170, 174, 85, 179, 170, 178, 182, 168, 103,
1905 179, 152, 184, 103, 161, 161, 161, 103, 276, 759,
1906 157, 289, 190, 279, 289, 103, 184, 189, 276, 103,
1907 760, 103, 103, 119, 178, 191, 182, 192, 279, 201,
1908 193, 119, 119, 119, 119, 119, 168, 168, 168, 190,
1909 119, 119, 119, 119, 119, 119, 189, 168, 194, 168,
1910 197, 191, 168, 198, 168, 168, 192, 193, 201, 202,
1911 205, 265, 206, 208, 210, 216, 119, 119, 119, 119,
1912 119, 119, 270, 287, 194, 303, 197, 303, 307, 198,
1913 326, 287, 761, 307, 312, 327, 205, 202, 206, 208,
1914
1915 319, 216, 210, 214, 214, 214, 214, 214, 270, 317,
1916 228, 322, 214, 214, 214, 214, 214, 214, 228, 326,
1917 312, 317, 327, 329, 228, 332, 319, 265, 333, 362,
1918 265, 357, 340, 418, 312, 362, 357, 322, 214, 214,
1919 214, 214, 214, 214, 414, 377, 378, 395, 414, 329,
1920 377, 378, 398, 395, 332, 333, 338, 338, 338, 338,
1921 338, 340, 398, 463, 762, 338, 338, 338, 338, 338,
1922 338, 392, 392, 392, 399, 412, 450, 392, 422, 430,
1923 412, 450, 422, 430, 457, 418, 465, 475, 465, 463,
1924 468, 338, 338, 338, 338, 338, 338, 491, 575, 475,
1925
1926 504, 377, 607, 399, 539, 504, 377, 378, 487, 539,
1927 491, 529, 487, 457, 465, 597, 465, 608, 597, 468,
1928 487, 529, 487, 487, 487, 487, 487, 568, 607, 609,
1929 611, 621, 568, 669, 669, 611, 412, 466, 466, 466,
1930 466, 466, 603, 733, 749, 608, 466, 466, 466, 466,
1931 466, 466, 615, 575, 690, 733, 692, 603, 609, 615,
1932 636, 692, 690, 636, 704, 748, 750, 751, 603, 704,
1933 763, 749, 466, 466, 466, 466, 466, 466, 752, 764,
1934 765, 766, 767, 767, 768, 767, 603, 621, 769, 770,
1935 771, 772, 773, 750, 748, 774, 751, 775, 692, 776,
1936
1937 777, 778, 779, 780, 752, 781, 782, 783, 784, 785,
1938 786, 704, 787, 788, 789, 790, 791, 792, 789, 793,
1939 794, 795, 789, 796, 797, 798, 799, 800, 801, 802,
1940 803, 804, 805, 806, 807, 808, 809, 810, 811, 812,
1941 813, 814, 815, 816, 817, 818, 819, 820, 821, 819,
1942 822, 824, 825, 826, 827, 828, 829, 830, 831, 832,
1943 833, 835, 836, 837, 838, 839, 840, 841, 842, 843,
1944 844, 845, 846, 848, 849, 850, 851, 852, 853, 854,
1945 855, 856, 857, 858, 859, 860, 861, 862, 863, 864,
1946 865, 866, 867, 868, 869, 870, 871, 865, 872, 867,
1947
1948 873, 874, 876, 867, 877, 878, 879, 880, 881, 871,
1949 882, 871, 883, 884, 885, 871, 886, 887, 888, 889,
1950 890, 891, 892, 893, 894, 895, 896, 897, 898, 899,
1951 900, 901, 902, 903, 906, 907, 908, 909, 910, 911,
1952 912, 913, 914, 915, 916, 888, 917, 918, 889, 919,
1953 920, 892, 921, 922, 923, 920, 924, 925, 926, 927,
1954 928, 929, 930, 931, 932, 933, 934, 935, 936, 937,
1955 938, 939, 941, 942, 943, 944, 945, 946, 947, 948,
1956 949, 945, 950, 951, 952, 953, 954, 955, 956, 957,
1957 960, 961, 962, 963, 964, 965, 966, 968, 969, 970,
1958
1959 971, 972, 973, 975, 976, 977, 978, 979, 980, 977,
1960 981, 982, 983, 985, 986, 989, 990, 983, 991, 992,
1961 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002,
1962 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012,
1963 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1010,
1964 1022, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032,
1965 1033, 1034, 1035, 1036, 1037, 1040, 1038, 1041, 1042, 1039,
1966 1043, 1044, 1045, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
1967 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,
1968 1036, 1035, 1064, 1037, 1038, 1039, 1066, 1067, 1068, 1066,
1969
1970 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078,
1971 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088,
1972 1089, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1100,
1973 1101, 1096, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109,
1974 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119,
1975 1120, 1121, 1122, 1123, 1124, 1125, 1127, 1128, 1130, 1131,
1976 1133, 1134, 1135, 1136, 1138, 1139, 1140, 1141, 1142, 1143,
1977 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153,
1978 1154, 1155, 1157, 1158, 1159, 1160, 1161, 1096, 1162, 1163,
1979 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173,
1980
1981 1174, 1175, 1176, 1177, 1179, 1178, 1180, 1182, 1183, 1184,
1982 1185, 1186, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195,
1983 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205,
1984 1206, 1176, 1178, 1179, 1180, 1207, 1208, 1205, 1209, 1210,
1985 1211, 1213, 1214, 1216, 1217, 1218, 1219, 1220, 1221, 1222,
1986 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232,
1987 1233, 1234, 1236, 1237, 1238, 1239, 1240, 1241, 1237, 1242,
1988 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252,
1989 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262,
1990 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1273,
1991
1992 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283,
1993 1285, 1286, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296,
1994 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306,
1995 1307, 1309, 1310, 1311, 1312, 1313, 1315, 1314, 1316, 1317,
1996 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327,
1997 1328, 1329, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338,
1998 1312, 1339, 1311, 1314, 1313, 1315, 1340, 1341, 1342, 1344,
1999 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354,
2000 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364,
2001 1367, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377,
2002
2003 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1387, 1389,
2004 1390, 1391, 1393, 1394, 1395, 1397, 1398, 1399, 1400, 1403,
2005 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413,
2006 1414, 1415, 1416, 1417, 1419, 1420, 1421, 1422, 1423, 1424,
2007 1425, 1426, 1427, 1430, 1431, 1432, 1433, 1434, 1435, 1436,
2008 1437, 1438, 1439, 1440, 1441, 1442, 1444, 1445, 1446, 1447,
2009 1448, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458,
2010 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1439,
2011 1440, 1468, 1469, 1441, 1470, 1471, 1472, 1473, 1474, 1475,
2012 1476, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486,
2013
2014 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1450, 1495,
2015 1496, 1497, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506,
2016 1507, 1508, 1501, 1509, 1510, 1512, 1513, 1514, 1515, 1516,
2017 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1527,
2018 1528, 1529, 1530, 1534, 1532, 1528, 1532, 1535, 1536, 1540,
2019 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550,
2020 1551, 1552, 1553, 1556, 1554, 1557, 1558, 1559, 1560, 1562,
2021 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572,
2022 1573, 1574, 1575, 1578, 1579, 1580, 1553, 1552, 1581, 1551,
2023 1554, 1582, 1583, 1585, 1586, 1588, 1589, 1590, 1591, 1592,
2024
2025 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1602, 1604, 1606,
2026 1607, 1609, 1610, 1611, 1553, 1612, 1613, 1614, 1615, 1616,
2027 1617, 1618, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1628,
2028 1632, 1633, 1635, 1636, 1638, 1639, 1638, 1640, 1641, 1638,
2029 1642, 1643, 1638, 1644, 1645, 1646, 1647, 1648, 1649, 1650,
2030 1651, 1653, 1655, 1656, 1657, 1658, 1660, 1659, 1661, 1662,
2031 1664, 1665, 1667, 1669, 1670, 1671, 1672, 1673, 1674, 1675,
2032 1676, 1678, 1679, 1677, 1680, 1681, 1682, 1683, 1684, 1686,
2033 1687, 1657, 1658, 1659, 1677, 1660, 1661, 1688, 1689, 1691,
2034 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1699, 1700,
2035
2036 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710,
2037 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720,
2038 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1673, 1730,
2039 1731, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741,
2040 1743, 1744, 1745, 1747, 1748, 1750, 1749, 1751, 1753, 1754,
2041 1757, 1758, 1759, 1761, 1763, 1764, 1765, 1766, 1767, 1768,
2042 1700, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1778,
2043 1748, 1780, 1747, 1749, 1750, 1779, 1751, 1781, 1782, 1783,
2044 1779, 1784, 1785, 1786, 1787, 1789, 1790, 1791, 1793, 1794,
2045 1796, 1797, 1798, 1800, 1801, 1802, 1803, 1804, 1805, 1808,
2046
2047 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818,
2048 1819, 1820, 1821, 1822, 1823, 1825, 1826, 1827, 1828, 1829,
2049 1830, 1832, 1779, 1833, 1834, 1835, 1836, 1838, 1839, 1840,
2050 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852,
2051 1853, 1854, 1855, 1856, 1857, 1859, 1860, 1861, 1832, 1862,
2052 1834, 1863, 1864, 1866, 1867, 1868, 1870, 1871, 1872, 1873,
2053 1874, 1875, 1876, 1877, 1878, 1879, 1881, 1882, 1883, 1884,
2054 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894,
2055 1895, 1896, 1897, 1899, 1901, 1902, 1903, 1897, 1904, 1905,
2056 1907, 1910, 1908, 1912, 1913, 1914, 1915, 1916, 1917, 1918,
2057
2058 1919, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929,
2059 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1907, 1908, 1937,
2060 1938, 1939, 1940, 1941, 1943, 1944, 1945, 1946, 1948, 1949,
2061 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959,
2062 1961, 1963, 1964, 1965, 1966, 1969, 1970, 1971, 1972, 1973,
2063 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1982, 1983, 1984,
2064 1985, 1986, 1987, 1988, 1989, 1991, 1992, 1993, 1994, 1995,
2065 1996, 1999, 1970, 1971, 2000, 1972, 2001, 2002, 2003, 2004,
2066 2005, 2006, 2007, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
2067 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2021, 2024,
2068
2069 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034,
2070 2035, 2036, 2037, 2038, 2040, 2041, 2042, 2043, 2044, 2045,
2071 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2025, 2027, 2054,
2072 2056, 2058, 2059, 2061, 2062, 2063, 2064, 2065, 2066, 2067,
2073 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2078,
2074 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089,
2075 2090, 2091, 2092, 2094, 2095, 2096, 2098, 2099, 2100, 2101,
2076 2102, 2104, 2105, 2107, 2076, 2109, 2078, 2110, 2112, 2113,
2077 2114, 2115, 2116, 2117, 2118, 2119, 2121, 2122, 2124, 2123,
2078 2125, 2126, 2127, 2128, 2129, 2130, 2132, 2133, 2134, 2135,
2079
2080 2136, 2137, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146,
2081 2147, 2148, 2149, 2150, 2122, 2123, 2151, 2152, 2154, 2155,
2082 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2164, 2165, 2166,
2083 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176,
2084 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2159,
2085 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2196, 2197,
2086 2198, 2200, 2201, 2202, 2203, 2205, 2206, 2207, 2208, 2209,
2087 2214, 2215, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2227,
2088 2228, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238,
2089 2241, 2242, 2243, 2244, 2245, 2246, 2248, 2249, 2251, 2253,
2090
2091 2254, 2255, 2256, 2257, 2258, 2259, 2261, 2262, 2263, 2264,
2092 2265, 2264, 2266, 2267, 2268, 2269, 2271, 2272, 2275, 2276,
2093 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286,
2094 2287, 2288, 2289, 2290, 2291, 2292, 2294, 2295, 2297, 2298,
2095 2301, 2302, 2303, 2304, 2306, 2307, 2309, 2311, 2313, 2314,
2096 2315, 2316, 2317, 2318, 2319, 2321, 2326, 2326, 2326, 2327,
2097 2327, 2327, 2328, 2329, 2328, 2330, 2330, 2330, 2331, 2331,
2098 2331, 2332, 745, 2332, 2333, 2333, 2333, 743, 742, 741,
2099 740, 739, 738, 737, 736, 735, 734, 732, 731, 730,
2100 728, 727, 726, 725, 724, 723, 722, 721, 720, 719,
2101
2102 718, 717, 716, 714, 713, 712, 711, 709, 708, 707,
2103 706, 705, 703, 701, 700, 699, 698, 697, 696, 695,
2104 694, 693, 691, 689, 688, 686, 685, 684, 683, 682,
2105 681, 680, 679, 678, 677, 676, 675, 674, 673, 672,
2106 671, 670, 668, 667, 666, 665, 664, 663, 660, 659,
2107 658, 657, 656, 655, 654, 652, 651, 650, 649, 648,
2108 647, 646, 645, 644, 643, 642, 641, 640, 639, 638,
2109 637, 635, 634, 633, 632, 631, 630, 629, 628, 627,
2110 626, 625, 624, 623, 622, 620, 619, 618, 617, 616,
2111 613, 610, 602, 601, 600, 599, 598, 595, 592, 590,
2112
2113 588, 587, 586, 585, 584, 583, 582, 581, 580, 579,
2114 578, 577, 576, 574, 573, 572, 571, 570, 569, 567,
2115 566, 565, 564, 563, 562, 561, 560, 559, 558, 557,
2116 556, 554, 553, 551, 550, 549, 548, 547, 546, 545,
2117 544, 543, 542, 541, 540, 538, 537, 535, 534, 533,
2118 532, 531, 530, 528, 527, 526, 525, 524, 523, 522,
2119 521, 520, 519, 518, 517, 516, 515, 514, 513, 512,
2120 510, 509, 508, 506, 505, 503, 502, 501, 500, 499,
2121 498, 497, 496, 495, 493, 492, 490, 489, 488, 486,
2122 484, 483, 482, 481, 480, 479, 477, 476, 474, 473,
2123
2124 472, 471, 470, 469, 467, 462, 460, 459, 458, 456,
2125 453, 452, 451, 449, 448, 447, 446, 445, 444, 443,
2126 442, 441, 440, 439, 438, 437, 436, 435, 434, 433,
2127 432, 431, 429, 428, 427, 426, 425, 424, 423, 421,
2128 420, 419, 417, 416, 415, 413, 411, 410, 409, 408,
2129 407, 406, 405, 404, 403, 402, 401, 400, 397, 396,
2130 394, 393, 391, 390, 389, 388, 387, 386, 385, 384,
2131 383, 382, 381, 380, 379, 376, 375, 374, 373, 372,
2132 371, 370, 369, 368, 367, 366, 365, 364, 363, 361,
2133 360, 359, 358, 356, 355, 354, 353, 352, 351, 350,
2134
2135 349, 348, 347, 346, 345, 344, 343, 342, 341, 339,
2136 337, 335, 330, 328, 325, 318, 316, 315, 314, 313,
2137 311, 310, 309, 308, 306, 305, 304, 302, 301, 300,
2138 299, 298, 297, 296, 295, 294, 293, 292, 291, 290,
2139 288, 286, 285, 284, 283, 282, 281, 280, 278, 277,
2140 275, 274, 273, 272, 271, 269, 268, 267, 266, 264,
2141 263, 262, 261, 260, 259, 258, 256, 255, 253, 252,
2142 251, 250, 249, 248, 247, 246, 245, 244, 243, 242,
2143 241, 240, 239, 238, 237, 236, 235, 234, 233, 232,
2144 231, 230, 229, 226, 225, 224, 223, 222, 221, 220,
2145
2146 219, 218, 217, 215, 211, 209, 207, 204, 199, 195,
2147 187, 186, 185, 183, 181, 180, 177, 176, 175, 173,
2148 172, 171, 169, 167, 166, 165, 163, 162, 160, 159,
2149 156, 155, 154, 153, 151, 150, 149, 147, 146, 145,
2150 143, 138, 136, 135, 134, 133, 131, 130, 129, 127,
2151 126, 125, 123, 122, 121, 117, 112, 107, 106, 99,
2152 98, 78, 73, 67, 60, 53, 50, 49, 43, 41,
2153 39, 38, 24, 14, 11, 2325, 2325, 2325, 2325, 2325,
2154 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
2155 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
2156
2157 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
2158 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
2159 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
2160 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
2161 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325, 2325,
2162 2325, 2325
2163 } ;
2164
2165static yy_state_type yy_last_accepting_state;
2166static char *yy_last_accepting_cpos;
2167
2168extern int yy_flex_debug;
2170
2171static const flex_int16_t yy_rule_linenum[245] =
2172 { 0,
2173 149, 151, 153, 158, 159, 164, 165, 166, 178, 180,
2174 185, 191, 200, 209, 218, 227, 236, 245, 254, 263,
2175 274, 285, 295, 305, 315, 325, 335, 344, 354, 364,
2176 374, 384, 393, 402, 411, 420, 429, 438, 447, 456,
2177 465, 474, 483, 492, 501, 510, 519, 528, 537, 546,
2178 560, 572, 584, 595, 606, 618, 629, 640, 651, 662,
2179 673, 684, 695, 704, 713, 722, 733, 744, 753, 765,
2180 777, 789, 800, 812, 824, 836, 848, 860, 872, 883,
2181 894, 903, 912, 921, 932, 943, 952, 961, 972, 983,
2182 994, 1005, 1016, 1027, 1038, 1049, 1060, 1069, 1078, 1087,
2183
2184 1096, 1107, 1118, 1129, 1140, 1150, 1161, 1170, 1179, 1194,
2185 1211, 1220, 1229, 1238, 1247, 1256, 1265, 1274, 1283, 1292,
2186 1301, 1310, 1320, 1347, 1374, 1383, 1393, 1403, 1412, 1422,
2187 1433, 1444, 1455, 1465, 1474, 1483, 1492, 1503, 1514, 1525,
2188 1536, 1547, 1556, 1565, 1574, 1583, 1592, 1601, 1610, 1619,
2189 1628, 1637, 1652, 1664, 1676, 1689, 1698, 1707, 1716, 1725,
2190 1735, 1745, 1754, 1763, 1774, 1784, 1793, 1803, 1813, 1822,
2191 1831, 1840, 1849, 1859, 1868, 1877, 1886, 1895, 1904, 1913,
2192 1922, 1931, 1940, 1949, 1958, 1967, 1976, 1985, 1994, 2003,
2193 2012, 2021, 2030, 2039, 2048, 2057, 2066, 2075, 2084, 2093,
2194
2195 2102, 2111, 2120, 2129, 2138, 2147, 2156, 2165, 2174, 2183,
2196 2192, 2201, 2210, 2219, 2228, 2237, 2246, 2255, 2264, 2273,
2197 2282, 2291, 2300, 2309, 2318, 2327, 2428, 2444, 2493, 2501,
2198 2516, 2517, 2518, 2519, 2520, 2521, 2523, 2541, 2554, 2559,
2199 2563, 2565, 2567, 2569
2200 } ;
2201
2202/* The intent behind this definition is that it'll catch
2203 * any uses of REJECT which flex missed.
2204 */
2205#define REJECT reject_used_but_not_detected
2206#define yymore() yymore_used_but_not_detected
2207#define YY_MORE_ADJ 0
2208#define YY_RESTORE_YY_MORE_OFFSET
2210#line 1 "dhcp6_lexer.ll"
2211/* Copyright (C) 2016-2024 Internet Systems Consortium, Inc. ("ISC")
2212
2213 This Source Code Form is subject to the terms of the Mozilla Public
2214 License, v. 2.0. If a copy of the MPL was not distributed with this
2215 file, You can obtain one at http://mozilla.org/MPL/2.0/. */
2216#line 8 "dhcp6_lexer.ll"
2217
2218/* Generated files do not make clang static analyser so happy */
2219#ifndef __clang_analyzer__
2220
2221#include <cctype>
2222#include <cerrno>
2223#include <climits>
2224#include <cstdint>
2225#include <cstdlib>
2226#include <string>
2227#include <dhcp6/parser_context.h>
2228#include <asiolink/io_address.h>
2229#include <boost/lexical_cast.hpp>
2230#include <exceptions/exceptions.h>
2231
2232/* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
2233
2234/* Work around an incompatibility in flex (at least versions
2235 2.5.31 through 2.5.33): it generates code that does
2236 not conform to C89. See Debian bug 333231
2237 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
2238# undef yywrap
2239# define yywrap() 1
2240
2241namespace {
2242
2243bool start_token_flag = false;
2244
2246unsigned int comment_start_line = 0;
2247
2248using namespace isc::dhcp;
2249
2250};
2251
2252/* To avoid the call to exit... oops! */
2253#define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
2254#line 2255 "dhcp6_lexer.cc"
2255/* noyywrap disables automatic rewinding for the next file to parse. Since we
2256 always parse only a single string, there's no need to do any wraps. And
2257 using yywrap requires linking with -lfl, which provides the default yywrap
2258 implementation that always returns 1 anyway. */
2259/* nounput simplifies the lexer, by removing support for putting a character
2260 back into the input stream. We never use such capability anyway. */
2261/* batch means that we'll never use the generated lexer interactively. */
2262/* avoid to get static global variables to remain with C++. */
2263/* in last resort %option reentrant */
2264/* Enables debug mode. To see the debug messages, one needs to also set
2265 yy_flex_debug to 1, then the debug messages will be printed on stderr. */
2266/* I have no idea what this option does, except it was specified in the bison
2267 examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
2268 be on the safe side and keep it. */
2269#define YY_NO_INPUT 1
2270
2271/* These are not token expressions yet, just convenience expressions that
2272 can be used during actual token definitions. Note some can match
2273 incorrect inputs (e.g., IP addresses) which must be checked. */
2274/* for errors */
2275#line 96 "dhcp6_lexer.ll"
2276/* This code run each time a pattern is matched. It updates the location
2277 by moving it ahead by yyleng bytes. yyleng specifies the length of the
2278 currently matched token. */
2279#define YY_USER_ACTION driver.loc_.columns(yyleng);
2280#line 2281 "dhcp6_lexer.cc"
2281#line 2282 "dhcp6_lexer.cc"
2282
2283#define INITIAL 0
2284#define COMMENT 1
2285#define DIR_ENTER 2
2286#define DIR_INCLUDE 3
2287#define DIR_EXIT 4
2288
2289#ifndef YY_NO_UNISTD_H
2290/* Special case for "unistd.h", since it is non-ANSI. We include it way
2291 * down here because we want the user's section 1 to have been scanned first.
2292 * The user has a chance to override it with an option.
2293 */
2294/* %if-c-only */
2295#include <unistd.h>
2296/* %endif */
2297/* %if-c++-only */
2298/* %endif */
2299#endif
2300
2301#ifndef YY_EXTRA_TYPE
2302#define YY_EXTRA_TYPE void *
2303#endif
2304
2305/* %if-c-only Reentrant structure and macros (non-C++). */
2306/* %if-reentrant */
2307/* %if-c-only */
2308
2309static int yy_init_globals ( void );
2310
2311/* %endif */
2312/* %if-reentrant */
2313/* %endif */
2314/* %endif End reentrant structures and macros. */
2315
2316/* Accessor methods to globals.
2317 These are made visible to non-reentrant scanners for convenience. */
2318
2319int yylex_destroy ( void );
2320
2321int yyget_debug ( void );
2322
2323void yyset_debug ( int debug_flag );
2324
2325YY_EXTRA_TYPE yyget_extra ( void );
2326
2327void yyset_extra ( YY_EXTRA_TYPE user_defined );
2328
2329FILE *yyget_in ( void );
2330
2331void yyset_in ( FILE * _in_str );
2332
2333FILE *yyget_out ( void );
2334
2335void yyset_out ( FILE * _out_str );
2336
2337 int yyget_leng ( void );
2338
2339char *yyget_text ( void );
2340
2341int yyget_lineno ( void );
2342
2343void yyset_lineno ( int _line_number );
2344
2345/* %if-bison-bridge */
2346/* %endif */
2347
2348/* Macros after this point can all be overridden by user definitions in
2349 * section 1.
2350 */
2351
2352#ifndef YY_SKIP_YYWRAP
2353#ifdef __cplusplus
2354extern "C" int yywrap ( void );
2355#else
2356extern int yywrap ( void );
2357#endif
2358#endif
2359
2360/* %not-for-header */
2361#ifndef YY_NO_UNPUT
2362
2363#endif
2364/* %ok-for-header */
2365
2366/* %endif */
2367
2368#ifndef yytext_ptr
2369static void yy_flex_strncpy ( char *, const char *, int );
2370#endif
2371
2372#ifdef YY_NEED_STRLEN
2373static int yy_flex_strlen ( const char * );
2374#endif
2375
2376#ifndef YY_NO_INPUT
2377/* %if-c-only Standard (non-C++) definition */
2378/* %not-for-header */
2379#ifdef __cplusplus
2380static int yyinput ( void );
2381#else
2382static int input ( void );
2383#endif
2384/* %ok-for-header */
2385
2386/* %endif */
2387#endif
2388
2389/* %if-c-only */
2390
2391/* %endif */
2392
2393/* Amount of stuff to slurp up with each read. */
2394#ifndef YY_READ_BUF_SIZE
2395#ifdef __ia64__
2396/* On IA-64, the buffer size is 16k, not 8k */
2397#define YY_READ_BUF_SIZE 16384
2398#else
2399#define YY_READ_BUF_SIZE 8192
2400#endif /* __ia64__ */
2401#endif
2402
2403/* Copy whatever the last rule matched to the standard output. */
2404#ifndef ECHO
2405/* %if-c-only Standard (non-C++) definition */
2406/* This used to be an fputs(), but since the string might contain NUL's,
2407 * we now use fwrite().
2408 */
2409#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2410/* %endif */
2411/* %if-c++-only C++ definition */
2412/* %endif */
2413#endif
2414
2415/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2416 * is returned in "result".
2417 */
2418#ifndef YY_INPUT
2419#define YY_INPUT(buf,result,max_size) \
2420/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2421 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2422 { \
2423 int c = '*'; \
2424 int n; \
2425 for ( n = 0; n < max_size && \
2426 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2427 buf[n] = (char) c; \
2428 if ( c == '\n' ) \
2429 buf[n++] = (char) c; \
2430 if ( c == EOF && ferror( yyin ) ) \
2431 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2432 result = n; \
2433 } \
2434 else \
2435 { \
2436 errno=0; \
2437 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2438 { \
2439 if( errno != EINTR) \
2440 { \
2441 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2442 break; \
2443 } \
2444 errno=0; \
2445 clearerr(yyin); \
2446 } \
2447 }\
2448\
2449/* %if-c++-only C++ definition \ */\
2450/* %endif */
2451
2452#endif
2453
2454/* No semi-colon after return; correct usage is to write "yyterminate();" -
2455 * we don't want an extra ';' after the "return" because that will cause
2456 * some compilers to complain about unreachable statements.
2457 */
2458#ifndef yyterminate
2459#define yyterminate() return YY_NULL
2460#endif
2461
2462/* Number of entries by which start-condition stack grows. */
2463#ifndef YY_START_STACK_INCR
2464#define YY_START_STACK_INCR 25
2465#endif
2466
2467/* Report a fatal error. */
2468#ifndef YY_FATAL_ERROR
2469/* %if-c-only */
2470#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2471/* %endif */
2472/* %if-c++-only */
2473/* %endif */
2474#endif
2475
2476/* %if-tables-serialization structures and prototypes */
2477/* %not-for-header */
2478/* %ok-for-header */
2479
2480/* %not-for-header */
2481/* %tables-yydmap generated elements */
2482/* %endif */
2483/* end tables serialization structures and prototypes */
2484
2485/* %ok-for-header */
2486
2487/* Default declaration of generated scanner - a define so the user can
2488 * easily add parameters.
2489 */
2490#ifndef YY_DECL
2491#define YY_DECL_IS_OURS 1
2492/* %if-c-only Standard (non-C++) definition */
2493
2494extern int yylex (void);
2495
2496#define YY_DECL int yylex (void)
2497/* %endif */
2498/* %if-c++-only C++ definition */
2499/* %endif */
2500#endif /* !YY_DECL */
2501
2502/* Code executed at the beginning of each rule, after yytext and yyleng
2503 * have been set up.
2504 */
2505#ifndef YY_USER_ACTION
2506#define YY_USER_ACTION
2507#endif
2508
2509/* Code executed at the end of each rule. */
2510#ifndef YY_BREAK
2511#define YY_BREAK /*LINTED*/break;
2512#endif
2513
2514/* %% [6.0] YY_RULE_SETUP definition goes here */
2515#define YY_RULE_SETUP \
2516 YY_USER_ACTION
2517
2518/* %not-for-header */
2522{
2523 yy_state_type yy_current_state;
2524 char *yy_cp, *yy_bp;
2526
2527 if ( !(yy_init) )
2528 {
2529 (yy_init) = 1;
2530
2531#ifdef YY_USER_INIT
2532 YY_USER_INIT;
2533#endif
2534
2535 if ( ! (yy_start) )
2536 (yy_start) = 1; /* first start state */
2537
2538 if ( ! yyin )
2539/* %if-c-only */
2540 yyin = stdin;
2541/* %endif */
2542/* %if-c++-only */
2543/* %endif */
2544
2545 if ( ! yyout )
2546/* %if-c-only */
2547 yyout = stdout;
2548/* %endif */
2549/* %if-c++-only */
2550/* %endif */
2551
2552 if ( ! YY_CURRENT_BUFFER ) {
2556 }
2557
2559 }
2560
2561 {
2562/* %% [7.0] user's declarations go here */
2563#line 102 "dhcp6_lexer.ll"
2564
2565
2566
2567#line 106 "dhcp6_lexer.ll"
2568 /* This part of the code is copied over to the verbatim to the top
2569 of the generated yylex function. Explanation:
2570 http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2571
2572 /* Code run each time yylex is called. */
2573 driver.loc_.step();
2574
2575 if (start_token_flag) {
2576 start_token_flag = false;
2577 switch (start_token_value) {
2579 default:
2584 return isc::dhcp::Dhcp6Parser::make_SUB_DHCP6(driver.loc_);
2588 return isc::dhcp::Dhcp6Parser::make_SUB_SUBNET6(driver.loc_);
2590 return isc::dhcp::Dhcp6Parser::make_SUB_POOL6(driver.loc_);
2592 return isc::dhcp::Dhcp6Parser::make_SUB_PD_POOL(driver.loc_);
2607 }
2608 }
2609
2610
2611#line 2612 "dhcp6_lexer.cc"
2612
2613 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2614 {
2615/* %% [8.0] yymore()-related code goes here */
2616 yy_cp = (yy_c_buf_p);
2617
2618 /* Support of yytext. */
2619 *yy_cp = (yy_hold_char);
2620
2621 /* yy_bp points to the position in yy_ch_buf of the start of
2622 * the current run.
2623 */
2624 yy_bp = yy_cp;
2625
2626/* %% [9.0] code to set up and find next match goes here */
2627 yy_current_state = (yy_start);
2628yy_match:
2629 do
2630 {
2631 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2632 if ( yy_accept[yy_current_state] )
2633 {
2634 (yy_last_accepting_state) = yy_current_state;
2635 (yy_last_accepting_cpos) = yy_cp;
2636 }
2637 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2638 {
2639 yy_current_state = (int) yy_def[yy_current_state];
2640 if ( yy_current_state >= 2326 )
2641 yy_c = yy_meta[yy_c];
2642 }
2643 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2644 ++yy_cp;
2645 }
2646 while ( yy_current_state != 2325 );
2647 yy_cp = (yy_last_accepting_cpos);
2648 yy_current_state = (yy_last_accepting_state);
2649
2650yy_find_action:
2651/* %% [10.0] code to find the action number goes here */
2652 yy_act = yy_accept[yy_current_state];
2653
2655
2656/* %% [11.0] code for yylineno update goes here */
2657
2658do_action: /* This label is used only to access EOF actions. */
2659
2660/* %% [12.0] debug code goes here */
2661 if ( yy_flex_debug )
2662 {
2663 if ( yy_act == 0 )
2664 fprintf( stderr, "--scanner backing up\n" );
2665 else if ( yy_act < 245 )
2666 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2667 (long)yy_rule_linenum[yy_act], yytext );
2668 else if ( yy_act == 245 )
2669 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2670 yytext );
2671 else if ( yy_act == 246 )
2672 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2673 else
2674 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2675 }
2676
2677 switch ( yy_act )
2678 { /* beginning of action switch */
2679/* %% [13.0] actions go here */
2680 case 0: /* must back up */
2681 /* undo the effects of YY_DO_BEFORE_ACTION */
2682 *yy_cp = (yy_hold_char);
2683 yy_cp = (yy_last_accepting_cpos);
2684 yy_current_state = (yy_last_accepting_state);
2685 goto yy_find_action;
2686
2687case 1:
2689#line 149 "dhcp6_lexer.ll"
2690;
2691 YY_BREAK
2692case 2:
2694#line 151 "dhcp6_lexer.ll"
2695;
2696 YY_BREAK
2697case 3:
2699#line 153 "dhcp6_lexer.ll"
2700{
2701 BEGIN(COMMENT);
2702 comment_start_line = driver.loc_.end.line;;
2703}
2704 YY_BREAK
2705case 4:
2707#line 158 "dhcp6_lexer.ll"
2708BEGIN(INITIAL);
2709 YY_BREAK
2710case 5:
2712#line 159 "dhcp6_lexer.ll"
2713;
2714 YY_BREAK
2715case YY_STATE_EOF(COMMENT):
2716#line 160 "dhcp6_lexer.ll"
2717{
2718 isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line);
2719}
2720 YY_BREAK
2721case 6:
2723#line 164 "dhcp6_lexer.ll"
2725 YY_BREAK
2726case 7:
2728#line 165 "dhcp6_lexer.ll"
2730 YY_BREAK
2731case 8:
2733#line 166 "dhcp6_lexer.ll"
2734{
2735 /* Include directive. */
2736
2737 /* Extract the filename. */
2738 std::string tmp(yytext+1);
2739 tmp.resize(tmp.size() - 1);
2740
2741 driver.includeFile(tmp);
2742}
2743 YY_BREAK
2747#line 175 "dhcp6_lexer.ll"
2748{
2749 isc_throw(Dhcp6ParseError, "Directive not closed.");
2750}
2751 YY_BREAK
2752case 9:
2754#line 178 "dhcp6_lexer.ll"
2755BEGIN(INITIAL);
2756 YY_BREAK
2757case 10:
2759#line 180 "dhcp6_lexer.ll"
2760{
2761 /* Ok, we found a with space. Let's ignore it and update loc variable. */
2762 driver.loc_.step();
2763}
2764 YY_BREAK
2765case 11:
2766/* rule 11 can match eol */
2768#line 185 "dhcp6_lexer.ll"
2769{
2770 /* Newline found. Let's update the location and continue. */
2771 driver.loc_.lines(yyleng);
2772 driver.loc_.step();
2773}
2774 YY_BREAK
2775case 12:
2777#line 191 "dhcp6_lexer.ll"
2778{
2779 switch(driver.ctx_) {
2782 default:
2783 return isc::dhcp::Dhcp6Parser::make_STRING("enable-updates", driver.loc_);
2784 }
2785}
2786 YY_BREAK
2787case 13:
2789#line 200 "dhcp6_lexer.ll"
2790{
2791 switch(driver.ctx_) {
2793 return isc::dhcp::Dhcp6Parser::make_SERVER_IP(driver.loc_);
2794 default:
2795 return isc::dhcp::Dhcp6Parser::make_STRING("server-ip", driver.loc_);
2796 }
2797}
2798 YY_BREAK
2799case 14:
2801#line 209 "dhcp6_lexer.ll"
2802{
2803 switch(driver.ctx_) {
2805 return isc::dhcp::Dhcp6Parser::make_SERVER_PORT(driver.loc_);
2806 default:
2807 return isc::dhcp::Dhcp6Parser::make_STRING("server-port", driver.loc_);
2808 }
2809}
2810 YY_BREAK
2811case 15:
2813#line 218 "dhcp6_lexer.ll"
2814{
2815 switch(driver.ctx_) {
2817 return isc::dhcp::Dhcp6Parser::make_SENDER_IP(driver.loc_);
2818 default:
2819 return isc::dhcp::Dhcp6Parser::make_STRING("sender-ip", driver.loc_);
2820 }
2821}
2822 YY_BREAK
2823case 16:
2825#line 227 "dhcp6_lexer.ll"
2826{
2827 switch(driver.ctx_) {
2829 return isc::dhcp::Dhcp6Parser::make_SENDER_PORT(driver.loc_);
2830 default:
2831 return isc::dhcp::Dhcp6Parser::make_STRING("sender-port", driver.loc_);
2832 }
2833}
2834 YY_BREAK
2835case 17:
2837#line 236 "dhcp6_lexer.ll"
2838{
2839 switch(driver.ctx_) {
2842 default:
2843 return isc::dhcp::Dhcp6Parser::make_STRING("max-queue-size", driver.loc_);
2844 }
2845}
2846 YY_BREAK
2847case 18:
2849#line 245 "dhcp6_lexer.ll"
2850{
2851 switch(driver.ctx_) {
2854 default:
2855 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-protocol", driver.loc_);
2856 }
2857}
2858 YY_BREAK
2859case 19:
2861#line 254 "dhcp6_lexer.ll"
2862{
2863 switch(driver.ctx_) {
2865 return isc::dhcp::Dhcp6Parser::make_NCR_FORMAT(driver.loc_);
2866 default:
2867 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-format", driver.loc_);
2868 }
2869}
2870 YY_BREAK
2871case 20:
2873#line 263 "dhcp6_lexer.ll"
2874{
2875 switch(driver.ctx_) {
2880 default:
2881 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-set", driver.loc_);
2882 }
2883}
2884 YY_BREAK
2885case 21:
2887#line 274 "dhcp6_lexer.ll"
2888{
2889 switch(driver.ctx_) {
2894 default:
2895 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-replacement", driver.loc_);
2896 }
2897}
2898 YY_BREAK
2899case 22:
2901#line 285 "dhcp6_lexer.ll"
2902{
2903 /* dhcp-ddns value keywords are case insensitive */
2904 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2905 return isc::dhcp::Dhcp6Parser::make_UDP(driver.loc_);
2906 }
2907 std::string tmp(yytext+1);
2908 tmp.resize(tmp.size() - 1);
2909 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2910}
2911 YY_BREAK
2912case 23:
2914#line 295 "dhcp6_lexer.ll"
2915{
2916 /* dhcp-ddns value keywords are case insensitive */
2917 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2918 return isc::dhcp::Dhcp6Parser::make_TCP(driver.loc_);
2919 }
2920 std::string tmp(yytext+1);
2921 tmp.resize(tmp.size() - 1);
2922 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2923}
2924 YY_BREAK
2925case 24:
2927#line 305 "dhcp6_lexer.ll"
2928{
2929 /* dhcp-ddns value keywords are case insensitive */
2930 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) {
2931 return isc::dhcp::Dhcp6Parser::make_JSON(driver.loc_);
2932 }
2933 std::string tmp(yytext+1);
2934 tmp.resize(tmp.size() - 1);
2935 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2936}
2937 YY_BREAK
2938case 25:
2940#line 315 "dhcp6_lexer.ll"
2941{
2942 /* dhcp-ddns value keywords are case insensitive */
2945 }
2946 std::string tmp(yytext+1);
2947 tmp.resize(tmp.size() - 1);
2948 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2949}
2950 YY_BREAK
2951case 26:
2953#line 325 "dhcp6_lexer.ll"
2954{
2955 /* dhcp-ddns value keywords are case insensitive */
2958 }
2959 std::string tmp(yytext+1);
2960 tmp.resize(tmp.size() - 1);
2961 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2962}
2963 YY_BREAK
2964case 27:
2966#line 335 "dhcp6_lexer.ll"
2967{
2968 switch(driver.ctx_) {
2970 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2971 default:
2972 return isc::dhcp::Dhcp6Parser::make_STRING("never", driver.loc_);
2973 }
2974}
2975 YY_BREAK
2976case 28:
2978#line 344 "dhcp6_lexer.ll"
2979{
2980 /* dhcp-ddns value keywords are case insensitive */
2982 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2983 }
2984 std::string tmp(yytext+1);
2985 tmp.resize(tmp.size() - 1);
2986 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2987}
2988 YY_BREAK
2989case 29:
2991#line 354 "dhcp6_lexer.ll"
2992{
2993 /* dhcp-ddns value keywords are case insensitive */
2995 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2996 }
2997 std::string tmp(yytext+1);
2998 tmp.resize(tmp.size() - 1);
2999 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3000}
3001 YY_BREAK
3002case 30:
3004#line 364 "dhcp6_lexer.ll"
3005{
3006 /* dhcp-ddns value keywords are case insensitive */
3008 return isc::dhcp::Dhcp6Parser::make_ALWAYS(driver.loc_);
3009 }
3010 std::string tmp(yytext+1);
3011 tmp.resize(tmp.size() - 1);
3012 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3013}
3014 YY_BREAK
3015case 31:
3017#line 374 "dhcp6_lexer.ll"
3018{
3019 /* dhcp-ddns value keywords are case insensitive */
3022 }
3023 std::string tmp(yytext+1);
3024 tmp.resize(tmp.size() - 1);
3025 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3026}
3027 YY_BREAK
3028case 32:
3030#line 384 "dhcp6_lexer.ll"
3031{
3032 switch(driver.ctx_) {
3034 return isc::dhcp::Dhcp6Parser::make_DHCP6(driver.loc_);
3035 default:
3036 return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp6", driver.loc_);
3037 }
3038}
3039 YY_BREAK
3040case 33:
3042#line 393 "dhcp6_lexer.ll"
3043{
3044 switch(driver.ctx_) {
3047 default:
3048 return isc::dhcp::Dhcp6Parser::make_STRING("data-directory", driver.loc_);
3049 }
3050}
3051 YY_BREAK
3052case 34:
3054#line 402 "dhcp6_lexer.ll"
3055{
3056 switch(driver.ctx_) {
3059 default:
3060 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", driver.loc_);
3061 }
3062}
3063 YY_BREAK
3064case 35:
3066#line 411 "dhcp6_lexer.ll"
3067{
3068 switch(driver.ctx_) {
3070 return isc::dhcp::Dhcp6Parser::make_INTERFACES(driver.loc_);
3071 default:
3072 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces", driver.loc_);
3073 }
3074}
3075 YY_BREAK
3076case 36:
3078#line 420 "dhcp6_lexer.ll"
3079{
3080 switch(driver.ctx_) {
3082 return isc::dhcp::Dhcp6Parser::make_RE_DETECT(driver.loc_);
3083 default:
3084 return isc::dhcp::Dhcp6Parser::make_STRING("re-detect", driver.loc_);
3085 }
3086}
3087 YY_BREAK
3088case 37:
3090#line 429 "dhcp6_lexer.ll"
3091{
3092 switch(driver.ctx_) {
3095 default:
3096 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-require-all", driver.loc_);
3097 }
3098}
3099 YY_BREAK
3100case 38:
3102#line 438 "dhcp6_lexer.ll"
3103{
3104 switch(driver.ctx_) {
3107 default:
3108 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-retry-wait-time", driver.loc_);
3109 }
3110}
3111 YY_BREAK
3112case 39:
3114#line 447 "dhcp6_lexer.ll"
3115{
3116 switch(driver.ctx_) {
3119 default:
3120 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-max-retries", driver.loc_);
3121 }
3122}
3123 YY_BREAK
3124case 40:
3126#line 456 "dhcp6_lexer.ll"
3127{
3128 switch(driver.ctx_) {
3131 default:
3132 return isc::dhcp::Dhcp6Parser::make_STRING("sanity-checks", driver.loc_);
3133 }
3134}
3135 YY_BREAK
3136case 41:
3138#line 465 "dhcp6_lexer.ll"
3139{
3140 switch(driver.ctx_) {
3143 default:
3144 return isc::dhcp::Dhcp6Parser::make_STRING("lease-checks", driver.loc_);
3145 }
3146}
3147 YY_BREAK
3148case 42:
3150#line 474 "dhcp6_lexer.ll"
3151{
3152 switch(driver.ctx_) {
3155 default:
3156 return isc::dhcp::Dhcp6Parser::make_STRING("extended-info-checks", driver.loc_);
3157 }
3158}
3159 YY_BREAK
3160case 43:
3162#line 483 "dhcp6_lexer.ll"
3163{
3164 switch(driver.ctx_) {
3167 default:
3168 return isc::dhcp::Dhcp6Parser::make_STRING("lease-database", driver.loc_);
3169 }
3170}
3171 YY_BREAK
3172case 44:
3174#line 492 "dhcp6_lexer.ll"
3175{
3176 switch(driver.ctx_) {
3179 default:
3180 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-database", driver.loc_);
3181 }
3182}
3183 YY_BREAK
3184case 45:
3186#line 501 "dhcp6_lexer.ll"
3187{
3188 switch(driver.ctx_) {
3191 default:
3192 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-databases", driver.loc_);
3193 }
3194}
3195 YY_BREAK
3196case 46:
3198#line 510 "dhcp6_lexer.ll"
3199{
3200 switch(driver.ctx_) {
3203 default:
3204 return isc::dhcp::Dhcp6Parser::make_STRING("config-control", driver.loc_);
3205 }
3206}
3207 YY_BREAK
3208case 47:
3210#line 519 "dhcp6_lexer.ll"
3211{
3212 switch(driver.ctx_) {
3215 default:
3216 return isc::dhcp::Dhcp6Parser::make_STRING("config-databases", driver.loc_);
3217 }
3218}
3219 YY_BREAK
3220case 48:
3222#line 528 "dhcp6_lexer.ll"
3223{
3224 switch(driver.ctx_) {
3227 default:
3228 return isc::dhcp::Dhcp6Parser::make_STRING("config-fetch-wait-time", driver.loc_);
3229 }
3230}
3231 YY_BREAK
3232case 49:
3234#line 537 "dhcp6_lexer.ll"
3235{
3236 switch(driver.ctx_) {
3238 return isc::dhcp::Dhcp6Parser::make_READONLY(driver.loc_);
3239 default:
3240 return isc::dhcp::Dhcp6Parser::make_STRING("readonly", driver.loc_);
3241 }
3242}
3243 YY_BREAK
3244case 50:
3246#line 546 "dhcp6_lexer.ll"
3247{
3248 switch(driver.ctx_) {
3255 return isc::dhcp::Dhcp6Parser::make_TYPE(driver.loc_);
3256 default:
3257 return isc::dhcp::Dhcp6Parser::make_STRING("type", driver.loc_);
3258 }
3259}
3260 YY_BREAK
3261case 51:
3263#line 560 "dhcp6_lexer.ll"
3264{
3265 switch(driver.ctx_) {
3270 return isc::dhcp::Dhcp6Parser::make_USER(driver.loc_);
3271 default:
3272 return isc::dhcp::Dhcp6Parser::make_STRING("user", driver.loc_);
3273 }
3274}
3275 YY_BREAK
3276case 52:
3278#line 572 "dhcp6_lexer.ll"
3279{
3280 switch(driver.ctx_) {
3285 return isc::dhcp::Dhcp6Parser::make_PASSWORD(driver.loc_);
3286 default:
3287 return isc::dhcp::Dhcp6Parser::make_STRING("password", driver.loc_);
3288 }
3289}
3290 YY_BREAK
3291case 53:
3293#line 584 "dhcp6_lexer.ll"
3294{
3295 switch(driver.ctx_) {
3299 return isc::dhcp::Dhcp6Parser::make_HOST(driver.loc_);
3300 default:
3301 return isc::dhcp::Dhcp6Parser::make_STRING("host", driver.loc_);
3302 }
3303}
3304 YY_BREAK
3305case 54:
3307#line 595 "dhcp6_lexer.ll"
3308{
3309 switch(driver.ctx_) {
3313 return isc::dhcp::Dhcp6Parser::make_PORT(driver.loc_);
3314 default:
3315 return isc::dhcp::Dhcp6Parser::make_STRING("port", driver.loc_);
3316 }
3317}
3318 YY_BREAK
3319case 55:
3321#line 606 "dhcp6_lexer.ll"
3322{
3323 switch(driver.ctx_) {
3328 return isc::dhcp::Dhcp6Parser::make_PERSIST(driver.loc_);
3329 default:
3330 return isc::dhcp::Dhcp6Parser::make_STRING("persist", driver.loc_);
3331 }
3332}
3333 YY_BREAK
3334case 56:
3336#line 618 "dhcp6_lexer.ll"
3337{
3338 switch(driver.ctx_) {
3343 default:
3344 return isc::dhcp::Dhcp6Parser::make_STRING("lfc-interval", driver.loc_);
3345 }
3346}
3347 YY_BREAK
3348case 57:
3350#line 629 "dhcp6_lexer.ll"
3351{
3352 switch(driver.ctx_) {
3357 default:
3358 return isc::dhcp::Dhcp6Parser::make_STRING("connect-timeout", driver.loc_);
3359 }
3360}
3361 YY_BREAK
3362case 58:
3364#line 640 "dhcp6_lexer.ll"
3365{
3366 switch(driver.ctx_) {
3371 default:
3372 return isc::dhcp::Dhcp6Parser::make_STRING("read-timeout", driver.loc_);
3373 }
3374}
3375 YY_BREAK
3376case 59:
3378#line 651 "dhcp6_lexer.ll"
3379{
3380 switch(driver.ctx_) {
3385 default:
3386 return isc::dhcp::Dhcp6Parser::make_STRING("write-timeout", driver.loc_);
3387 }
3388}
3389 YY_BREAK
3390case 60:
3392#line 662 "dhcp6_lexer.ll"
3393{
3394 switch(driver.ctx_) {
3399 default:
3400 return isc::dhcp::Dhcp6Parser::make_STRING("tcp-user-timeout", driver.loc_);
3401 }
3402}
3403 YY_BREAK
3404case 61:
3406#line 673 "dhcp6_lexer.ll"
3407{
3408 switch(driver.ctx_) {
3413 default:
3414 return isc::dhcp::Dhcp6Parser::make_STRING("reconnect-wait-time", driver.loc_);
3415 }
3416}
3417 YY_BREAK
3418case 62:
3420#line 684 "dhcp6_lexer.ll"
3421{
3422 switch(driver.ctx_) {
3426 return isc::dhcp::Dhcp6Parser::make_ON_FAIL(driver.loc_);
3427 default:
3428 return isc::dhcp::Dhcp6Parser::make_STRING("on-fail", driver.loc_);
3429 }
3430}
3431 YY_BREAK
3432case 63:
3434#line 695 "dhcp6_lexer.ll"
3435{
3436 switch(driver.ctx_) {
3439 default:
3440 return isc::dhcp::Dhcp6Parser::make_STRING("stop-retry-exit", driver.loc_);
3441 }
3442}
3443 YY_BREAK
3444case 64:
3446#line 704 "dhcp6_lexer.ll"
3447{
3448 switch(driver.ctx_) {
3451 default:
3452 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-exit", driver.loc_);
3453 }
3454}
3455 YY_BREAK
3456case 65:
3458#line 713 "dhcp6_lexer.ll"
3459{
3460 switch(driver.ctx_) {
3463 default:
3464 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-continue", driver.loc_);
3465 }
3466}
3467 YY_BREAK
3468case 66:
3470#line 722 "dhcp6_lexer.ll"
3471{
3472 switch(driver.ctx_) {
3477 default:
3478 return isc::dhcp::Dhcp6Parser::make_STRING("retry-on-startup", driver.loc_);
3479 }
3480}
3481 YY_BREAK
3482case 67:
3484#line 733 "dhcp6_lexer.ll"
3485{
3486 switch(driver.ctx_) {
3491 default:
3492 return isc::dhcp::Dhcp6Parser::make_STRING("max-reconnect-tries", driver.loc_);
3493 }
3494}
3495 YY_BREAK
3496case 68:
3498#line 744 "dhcp6_lexer.ll"
3499{
3500 switch(driver.ctx_) {
3503 default:
3504 return isc::dhcp::Dhcp6Parser::make_STRING("max-row-errors", driver.loc_);
3505 }
3506}
3507 YY_BREAK
3508case 69:
3510#line 753 "dhcp6_lexer.ll"
3511{
3512 switch(driver.ctx_) {
3518 default:
3519 return isc::dhcp::Dhcp6Parser::make_STRING("trust-anchor", driver.loc_);
3520 }
3521}
3522 YY_BREAK
3523case 70:
3525#line 765 "dhcp6_lexer.ll"
3526{
3527 switch(driver.ctx_) {
3532 return isc::dhcp::Dhcp6Parser::make_CERT_FILE(driver.loc_);
3533 default:
3534 return isc::dhcp::Dhcp6Parser::make_STRING("cert-file", driver.loc_);
3535 }
3536}
3537 YY_BREAK
3538case 71:
3540#line 777 "dhcp6_lexer.ll"
3541{
3542 switch(driver.ctx_) {
3547 return isc::dhcp::Dhcp6Parser::make_KEY_FILE(driver.loc_);
3548 default:
3549 return isc::dhcp::Dhcp6Parser::make_STRING("key-file", driver.loc_);
3550 }
3551}
3552 YY_BREAK
3553case 72:
3555#line 789 "dhcp6_lexer.ll"
3556{
3557 switch(driver.ctx_) {
3561 return isc::dhcp::Dhcp6Parser::make_CIPHER_LIST(driver.loc_);
3562 default:
3563 return isc::dhcp::Dhcp6Parser::make_STRING("cipher-list", driver.loc_);
3564 }
3565}
3566 YY_BREAK
3567case 73:
3569#line 800 "dhcp6_lexer.ll"
3570{
3571 switch(driver.ctx_) {
3577 default:
3578 return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_);
3579 }
3580}
3581 YY_BREAK
3582case 74:
3584#line 812 "dhcp6_lexer.ll"
3585{
3586 switch(driver.ctx_) {
3592 default:
3593 return isc::dhcp::Dhcp6Parser::make_STRING("min-preferred-lifetime", driver.loc_);
3594 }
3595}
3596 YY_BREAK
3597case 75:
3599#line 824 "dhcp6_lexer.ll"
3600{
3601 switch(driver.ctx_) {
3607 default:
3608 return isc::dhcp::Dhcp6Parser::make_STRING("max-preferred-lifetime", driver.loc_);
3609 }
3610}
3611 YY_BREAK
3612case 76:
3614#line 836 "dhcp6_lexer.ll"
3615{
3616 switch(driver.ctx_) {
3622 default:
3623 return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_);
3624 }
3625}
3626 YY_BREAK
3627case 77:
3629#line 848 "dhcp6_lexer.ll"
3630{
3631 switch(driver.ctx_) {
3637 default:
3638 return isc::dhcp::Dhcp6Parser::make_STRING("min-valid-lifetime", driver.loc_);
3639 }
3640}
3641 YY_BREAK
3642case 78:
3644#line 860 "dhcp6_lexer.ll"
3645{
3646 switch(driver.ctx_) {
3652 default:
3653 return isc::dhcp::Dhcp6Parser::make_STRING("max-valid-lifetime", driver.loc_);
3654 }
3655}
3656 YY_BREAK
3657case 79:
3659#line 872 "dhcp6_lexer.ll"
3660{
3661 switch(driver.ctx_) {
3665 return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_);
3666 default:
3667 return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_);
3668 }
3669}
3670 YY_BREAK
3671case 80:
3673#line 883 "dhcp6_lexer.ll"
3674{
3675 switch(driver.ctx_) {
3680 default:
3681 return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_);
3682 }
3683}
3684 YY_BREAK
3685case 81:
3687#line 894 "dhcp6_lexer.ll"
3688{
3689 switch(driver.ctx_) {
3692 default:
3693 return isc::dhcp::Dhcp6Parser::make_STRING("decline-probation-period", driver.loc_);
3694 }
3695}
3696 YY_BREAK
3697case 82:
3699#line 903 "dhcp6_lexer.ll"
3700{
3701 switch(driver.ctx_) {
3703 return isc::dhcp::Dhcp6Parser::make_SERVER_TAG(driver.loc_);
3704 default:
3705 return isc::dhcp::Dhcp6Parser::make_STRING("server-tag", driver.loc_);
3706 }
3707}
3708 YY_BREAK
3709case 83:
3711#line 912 "dhcp6_lexer.ll"
3712{
3713 switch(driver.ctx_) {
3716 default:
3717 return isc::dhcp::Dhcp6Parser::make_STRING("parked-packet-limit", driver.loc_);
3718 }
3719}
3720 YY_BREAK
3721case 84:
3723#line 921 "dhcp6_lexer.ll"
3724{
3725 switch(driver.ctx_) {
3729 return isc::dhcp::Dhcp6Parser::make_ALLOCATOR(driver.loc_);
3730 default:
3731 return isc::dhcp::Dhcp6Parser::make_STRING("allocator", driver.loc_);
3732 }
3733}
3734 YY_BREAK
3735case 85:
3737#line 932 "dhcp6_lexer.ll"
3738{
3739 switch(driver.ctx_) {
3744 default:
3745 return isc::dhcp::Dhcp6Parser::make_STRING("pd-allocator", driver.loc_);
3746 }
3747}
3748 YY_BREAK
3749case 86:
3751#line 943 "dhcp6_lexer.ll"
3752{
3753 switch(driver.ctx_) {
3756 default:
3757 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3758 }
3759}
3760 YY_BREAK
3761case 87:
3763#line 952 "dhcp6_lexer.ll"
3764{
3765 switch(driver.ctx_) {
3768 default:
3769 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3770 }
3771}
3772 YY_BREAK
3773case 88:
3775#line 961 "dhcp6_lexer.ll"
3776{
3777 switch(driver.ctx_) {
3782 default:
3783 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-send-updates", driver.loc_);
3784 }
3785}
3786 YY_BREAK
3787case 89:
3789#line 972 "dhcp6_lexer.ll"
3790{
3791 switch(driver.ctx_) {
3796 default:
3797 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-no-update", driver.loc_);
3798 }
3799}
3800 YY_BREAK
3801case 90:
3803#line 983 "dhcp6_lexer.ll"
3804{
3805 switch(driver.ctx_) {
3810 default:
3811 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-client-update", driver.loc_);
3812 }
3813}
3814 YY_BREAK
3815case 91:
3817#line 994 "dhcp6_lexer.ll"
3818{
3819 switch(driver.ctx_) {
3824 default:
3825 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3826 }
3827}
3828 YY_BREAK
3829case 92:
3831#line 1005 "dhcp6_lexer.ll"
3832{
3833 switch(driver.ctx_) {
3838 default:
3839 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-generated-prefix", driver.loc_);
3840 }
3841}
3842 YY_BREAK
3843case 93:
3845#line 1016 "dhcp6_lexer.ll"
3846{
3847 switch(driver.ctx_) {
3852 default:
3853 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
3854 }
3855}
3856 YY_BREAK
3857case 94:
3859#line 1027 "dhcp6_lexer.ll"
3860{
3861 switch(driver.ctx_) {
3866 default:
3867 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-update-on-renew", driver.loc_);
3868 }
3869}
3870 YY_BREAK
3871case 95:
3873#line 1038 "dhcp6_lexer.ll"
3874{
3875 switch(driver.ctx_) {
3880 default:
3881 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
3882 }
3883}
3884 YY_BREAK
3885case 96:
3887#line 1049 "dhcp6_lexer.ll"
3888{
3889 switch(driver.ctx_) {
3894 default:
3895 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-conflict-resolution-mode", driver.loc_);
3896 }
3897}
3898 YY_BREAK
3899case 97:
3901#line 1060 "dhcp6_lexer.ll"
3902{
3905 }
3906 std::string tmp(yytext+1);
3907 tmp.resize(tmp.size() - 1);
3908 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3909}
3910 YY_BREAK
3911case 98:
3913#line 1069 "dhcp6_lexer.ll"
3914{
3917 }
3918 std::string tmp(yytext+1);
3919 tmp.resize(tmp.size() - 1);
3920 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3921}
3922 YY_BREAK
3923case 99:
3925#line 1078 "dhcp6_lexer.ll"
3926{
3929 }
3930 std::string tmp(yytext+1);
3931 tmp.resize(tmp.size() - 1);
3932 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3933}
3934 YY_BREAK
3935case 100:
3937#line 1087 "dhcp6_lexer.ll"
3938{
3941 }
3942 std::string tmp(yytext+1);
3943 tmp.resize(tmp.size() - 1);
3944 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3945}
3946 YY_BREAK
3947case 101:
3949#line 1096 "dhcp6_lexer.ll"
3950{
3951 switch(driver.ctx_) {
3956 default:
3957 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-percent", driver.loc_);
3958 }
3959}
3960 YY_BREAK
3961case 102:
3963#line 1107 "dhcp6_lexer.ll"
3964{
3965 switch(driver.ctx_) {
3969 return isc::dhcp::Dhcp6Parser::make_DDNS_TTL(driver.loc_);
3970 default:
3971 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl", driver.loc_);
3972 }
3973}
3974 YY_BREAK
3975case 103:
3977#line 1118 "dhcp6_lexer.ll"
3978{
3979 switch(driver.ctx_) {
3984 default:
3985 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-min", driver.loc_);
3986 }
3987}
3988 YY_BREAK
3989case 104:
3991#line 1129 "dhcp6_lexer.ll"
3992{
3993 switch(driver.ctx_) {
3998 default:
3999 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-max", driver.loc_);
4000 }
4001}
4002 YY_BREAK
4003case 105:
4005#line 1140 "dhcp6_lexer.ll"
4006{
4007 switch(driver.ctx_) {
4010 return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_);
4011 default:
4012 return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_);
4013 }
4014}
4015 YY_BREAK
4016case 106:
4018#line 1150 "dhcp6_lexer.ll"
4019{
4020 switch(driver.ctx_) {
4025 default:
4026 return isc::dhcp::Dhcp6Parser::make_STRING("store-extended-info", driver.loc_);
4027 }
4028}
4029 YY_BREAK
4030case 107:
4032#line 1161 "dhcp6_lexer.ll"
4033{
4034 switch (driver.ctx_) {
4036 return Dhcp6Parser::make_SHARED_NETWORKS(driver.loc_);
4037 default:
4038 return Dhcp6Parser::make_STRING("shared-networks", driver.loc_);
4039 }
4040}
4041 YY_BREAK
4042case 108:
4044#line 1170 "dhcp6_lexer.ll"
4045{
4046 switch(driver.ctx_) {
4048 return isc::dhcp::Dhcp6Parser::make_OPTION_DEF(driver.loc_);
4049 default:
4050 return isc::dhcp::Dhcp6Parser::make_STRING("option-def", driver.loc_);
4051 }
4052}
4053 YY_BREAK
4054case 109:
4056#line 1179 "dhcp6_lexer.ll"
4057{
4058 switch(driver.ctx_) {
4066 return isc::dhcp::Dhcp6Parser::make_OPTION_DATA(driver.loc_);
4067 default:
4068 return isc::dhcp::Dhcp6Parser::make_STRING("option-data", driver.loc_);
4069 }
4070}
4071 YY_BREAK
4072case 110:
4074#line 1194 "dhcp6_lexer.ll"
4075{
4076 switch(driver.ctx_) {
4086 return isc::dhcp::Dhcp6Parser::make_NAME(driver.loc_);
4087 default:
4088 return isc::dhcp::Dhcp6Parser::make_STRING("name", driver.loc_);
4089 }
4090}
4091 YY_BREAK
4092case 111:
4094#line 1211 "dhcp6_lexer.ll"
4095{
4096 switch(driver.ctx_) {
4098 return isc::dhcp::Dhcp6Parser::make_DATA(driver.loc_);
4099 default:
4100 return isc::dhcp::Dhcp6Parser::make_STRING("data", driver.loc_);
4101 }
4102}
4103 YY_BREAK
4104case 112:
4106#line 1220 "dhcp6_lexer.ll"
4107{
4108 switch(driver.ctx_) {
4110 return isc::dhcp::Dhcp6Parser::make_ALWAYS_SEND(driver.loc_);
4111 default:
4112 return isc::dhcp::Dhcp6Parser::make_STRING("always-send", driver.loc_);
4113 }
4114}
4115 YY_BREAK
4116case 113:
4118#line 1229 "dhcp6_lexer.ll"
4119{
4120 switch(driver.ctx_) {
4122 return isc::dhcp::Dhcp6Parser::make_NEVER_SEND(driver.loc_);
4123 default:
4124 return isc::dhcp::Dhcp6Parser::make_STRING("never-send", driver.loc_);
4125 }
4126}
4127 YY_BREAK
4128case 114:
4130#line 1238 "dhcp6_lexer.ll"
4131{
4132 switch(driver.ctx_) {
4134 return isc::dhcp::Dhcp6Parser::make_POOLS(driver.loc_);
4135 default:
4136 return isc::dhcp::Dhcp6Parser::make_STRING("pools", driver.loc_);
4137 }
4138}
4139 YY_BREAK
4140case 115:
4142#line 1247 "dhcp6_lexer.ll"
4143{
4144 switch(driver.ctx_) {
4146 return isc::dhcp::Dhcp6Parser::make_PD_POOLS(driver.loc_);
4147 default:
4148 return isc::dhcp::Dhcp6Parser::make_STRING("pd-pools", driver.loc_);
4149 }
4150}
4151 YY_BREAK
4152case 116:
4154#line 1256 "dhcp6_lexer.ll"
4155{
4156 switch(driver.ctx_) {
4158 return isc::dhcp::Dhcp6Parser::make_PREFIX(driver.loc_);
4159 default:
4160 return isc::dhcp::Dhcp6Parser::make_STRING("prefix", driver.loc_);
4161 }
4162}
4163 YY_BREAK
4164case 117:
4166#line 1265 "dhcp6_lexer.ll"
4167{
4168 switch(driver.ctx_) {
4170 return isc::dhcp::Dhcp6Parser::make_PREFIX_LEN(driver.loc_);
4171 default:
4172 return isc::dhcp::Dhcp6Parser::make_STRING("prefix-len", driver.loc_);
4173 }
4174}
4175 YY_BREAK
4176case 118:
4178#line 1274 "dhcp6_lexer.ll"
4179{
4180 switch(driver.ctx_) {
4183 default:
4184 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix", driver.loc_);
4185 }
4186}
4187 YY_BREAK
4188case 119:
4190#line 1283 "dhcp6_lexer.ll"
4191{
4192 switch(driver.ctx_) {
4195 default:
4196 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix-len", driver.loc_);
4197 }
4198}
4199 YY_BREAK
4200case 120:
4202#line 1292 "dhcp6_lexer.ll"
4203{
4204 switch(driver.ctx_) {
4207 default:
4208 return isc::dhcp::Dhcp6Parser::make_STRING("delegated-len", driver.loc_);
4209 }
4210}
4211 YY_BREAK
4212case 121:
4214#line 1301 "dhcp6_lexer.ll"
4215{
4216 switch(driver.ctx_) {
4218 return isc::dhcp::Dhcp6Parser::make_POOL(driver.loc_);
4219 default:
4220 return isc::dhcp::Dhcp6Parser::make_STRING("pool", driver.loc_);
4221 }
4222}
4223 YY_BREAK
4224case 122:
4226#line 1310 "dhcp6_lexer.ll"
4227{
4228 switch(driver.ctx_) {
4231 return isc::dhcp::Dhcp6Parser::make_POOL_ID(driver.loc_);
4232 default:
4233 return isc::dhcp::Dhcp6Parser::make_STRING("pool-id", driver.loc_);
4234 }
4235}
4236 YY_BREAK
4237case 123:
4239#line 1320 "dhcp6_lexer.ll"
4240{
4241 switch(driver.ctx_) {
4262 default:
4263 return isc::dhcp::Dhcp6Parser::make_STRING("user-context", driver.loc_);
4264 }
4265}
4266 YY_BREAK
4267case 124:
4269#line 1347 "dhcp6_lexer.ll"
4270{
4271 switch(driver.ctx_) {
4291 return isc::dhcp::Dhcp6Parser::make_COMMENT(driver.loc_);
4292 default:
4293 return isc::dhcp::Dhcp6Parser::make_STRING("comment", driver.loc_);
4294 }
4295}
4296 YY_BREAK
4297case 125:
4299#line 1374 "dhcp6_lexer.ll"
4300{
4301 switch(driver.ctx_) {
4303 return isc::dhcp::Dhcp6Parser::make_SUBNET(driver.loc_);
4304 default:
4305 return isc::dhcp::Dhcp6Parser::make_STRING("subnet", driver.loc_);
4306 }
4307}
4308 YY_BREAK
4309case 126:
4311#line 1383 "dhcp6_lexer.ll"
4312{
4313 switch(driver.ctx_) {
4316 return isc::dhcp::Dhcp6Parser::make_INTERFACE(driver.loc_);
4317 default:
4318 return isc::dhcp::Dhcp6Parser::make_STRING("interface", driver.loc_);
4319 }
4320}
4321 YY_BREAK
4322case 127:
4324#line 1393 "dhcp6_lexer.ll"
4325{
4326 switch(driver.ctx_) {
4330 default:
4331 return isc::dhcp::Dhcp6Parser::make_STRING("interface-id", driver.loc_);
4332 }
4333}
4334 YY_BREAK
4335case 128:
4337#line 1403 "dhcp6_lexer.ll"
4338{
4339 switch(driver.ctx_) {
4341 return isc::dhcp::Dhcp6Parser::make_ID(driver.loc_);
4342 default:
4343 return isc::dhcp::Dhcp6Parser::make_STRING("id", driver.loc_);
4344 }
4345}
4346 YY_BREAK
4347case 129:
4349#line 1412 "dhcp6_lexer.ll"
4350{
4351 switch(driver.ctx_) {
4355 default:
4356 return isc::dhcp::Dhcp6Parser::make_STRING("rapid-commit", driver.loc_);
4357 }
4358}
4359 YY_BREAK
4360case 130:
4362#line 1422 "dhcp6_lexer.ll"
4363{
4364 switch(driver.ctx_) {
4369 default:
4370 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-global", driver.loc_);
4371 }
4372}
4373 YY_BREAK
4374case 131:
4376#line 1433 "dhcp6_lexer.ll"
4377{
4378 switch(driver.ctx_) {
4383 default:
4384 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-in-subnet", driver.loc_);
4385 }
4386}
4387 YY_BREAK
4388case 132:
4390#line 1444 "dhcp6_lexer.ll"
4391{
4392 switch(driver.ctx_) {
4397 default:
4398 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-out-of-pool", driver.loc_);
4399 }
4400}
4401 YY_BREAK
4402case 133:
4404#line 1455 "dhcp6_lexer.ll"
4405{
4406 switch(driver.ctx_) {
4409 return isc::dhcp::Dhcp6Parser::make_CODE(driver.loc_);
4410 default:
4411 return isc::dhcp::Dhcp6Parser::make_STRING("code", driver.loc_);
4412 }
4413}
4414 YY_BREAK
4415case 134:
4417#line 1465 "dhcp6_lexer.ll"
4418{
4419 switch(driver.ctx_) {
4421 return isc::dhcp::Dhcp6Parser::make_MAC_SOURCES(driver.loc_);
4422 default:
4423 return isc::dhcp::Dhcp6Parser::make_STRING("mac-sources", driver.loc_);
4424 }
4425}
4426 YY_BREAK
4427case 135:
4429#line 1474 "dhcp6_lexer.ll"
4430{
4431 switch(driver.ctx_) {
4434 default:
4435 return isc::dhcp::Dhcp6Parser::make_STRING("relay-supplied-options", driver.loc_);
4436 }
4437}
4438 YY_BREAK
4439case 136:
4441#line 1483 "dhcp6_lexer.ll"
4442{
4443 switch(driver.ctx_) {
4446 default:
4447 return isc::dhcp::Dhcp6Parser::make_STRING("host-reservation-identifiers", driver.loc_);
4448 }
4449}
4450 YY_BREAK
4451case 137:
4453#line 1492 "dhcp6_lexer.ll"
4454{
4455 switch(driver.ctx_) {
4460 default:
4461 return isc::dhcp::Dhcp6Parser::make_STRING("calculate-tee-times", driver.loc_);
4462 }
4463}
4464 YY_BREAK
4465case 138:
4467#line 1503 "dhcp6_lexer.ll"
4468{
4469 switch(driver.ctx_) {
4473 return isc::dhcp::Dhcp6Parser::make_T1_PERCENT(driver.loc_);
4474 default:
4475 return isc::dhcp::Dhcp6Parser::make_STRING("t1-percent", driver.loc_);
4476 }
4477}
4478 YY_BREAK
4479case 139:
4481#line 1514 "dhcp6_lexer.ll"
4482{
4483 switch(driver.ctx_) {
4487 return isc::dhcp::Dhcp6Parser::make_T2_PERCENT(driver.loc_);
4488 default:
4489 return isc::dhcp::Dhcp6Parser::make_STRING("t2-percent", driver.loc_);
4490 }
4491}
4492 YY_BREAK
4493case 140:
4495#line 1525 "dhcp6_lexer.ll"
4496{
4497 switch(driver.ctx_) {
4502 default:
4503 return isc::dhcp::Dhcp6Parser::make_STRING("cache-threshold", driver.loc_);
4504 }
4505}
4506 YY_BREAK
4507case 141:
4509#line 1536 "dhcp6_lexer.ll"
4510{
4511 switch(driver.ctx_) {
4516 default:
4517 return isc::dhcp::Dhcp6Parser::make_STRING("cache-max-age", driver.loc_);
4518 }
4519}
4520 YY_BREAK
4521case 142:
4523#line 1547 "dhcp6_lexer.ll"
4524{
4525 switch(driver.ctx_) {
4527 return isc::dhcp::Dhcp6Parser::make_LOGGERS(driver.loc_);
4528 default:
4529 return isc::dhcp::Dhcp6Parser::make_STRING("loggers", driver.loc_);
4530 }
4531}
4532 YY_BREAK
4533case 143:
4535#line 1556 "dhcp6_lexer.ll"
4536{
4537 switch(driver.ctx_) {
4540 default:
4541 return isc::dhcp::Dhcp6Parser::make_STRING("output_options", driver.loc_);
4542 }
4543}
4544 YY_BREAK
4545case 144:
4547#line 1565 "dhcp6_lexer.ll"
4548{
4549 switch(driver.ctx_) {
4552 default:
4553 return isc::dhcp::Dhcp6Parser::make_STRING("output-options", driver.loc_);
4554 }
4555}
4556 YY_BREAK
4557case 145:
4559#line 1574 "dhcp6_lexer.ll"
4560{
4561 switch(driver.ctx_) {
4563 return isc::dhcp::Dhcp6Parser::make_OUTPUT(driver.loc_);
4564 default:
4565 return isc::dhcp::Dhcp6Parser::make_STRING("output", driver.loc_);
4566 }
4567}
4568 YY_BREAK
4569case 146:
4571#line 1583 "dhcp6_lexer.ll"
4572{
4573 switch(driver.ctx_) {
4575 return isc::dhcp::Dhcp6Parser::make_FLUSH(driver.loc_);
4576 default:
4577 return isc::dhcp::Dhcp6Parser::make_STRING("flush", driver.loc_);
4578 }
4579}
4580 YY_BREAK
4581case 147:
4583#line 1592 "dhcp6_lexer.ll"
4584{
4585 switch(driver.ctx_) {
4587 return isc::dhcp::Dhcp6Parser::make_MAXSIZE(driver.loc_);
4588 default:
4589 return isc::dhcp::Dhcp6Parser::make_STRING("maxsize", driver.loc_);
4590 }
4591}
4592 YY_BREAK
4593case 148:
4595#line 1601 "dhcp6_lexer.ll"
4596{
4597 switch(driver.ctx_) {
4599 return isc::dhcp::Dhcp6Parser::make_MAXVER(driver.loc_);
4600 default:
4601 return isc::dhcp::Dhcp6Parser::make_STRING("maxver", driver.loc_);
4602 }
4603}
4604 YY_BREAK
4605case 149:
4607#line 1610 "dhcp6_lexer.ll"
4608{
4609 switch(driver.ctx_) {
4611 return isc::dhcp::Dhcp6Parser::make_PATTERN(driver.loc_);
4612 default:
4613 return isc::dhcp::Dhcp6Parser::make_STRING("pattern", driver.loc_);
4614 }
4615}
4616 YY_BREAK
4617case 150:
4619#line 1619 "dhcp6_lexer.ll"
4620{
4621 switch(driver.ctx_) {
4623 return isc::dhcp::Dhcp6Parser::make_DEBUGLEVEL(driver.loc_);
4624 default:
4625 return isc::dhcp::Dhcp6Parser::make_STRING("debuglevel", driver.loc_);
4626 }
4627}
4628 YY_BREAK
4629case 151:
4631#line 1628 "dhcp6_lexer.ll"
4632{
4633 switch(driver.ctx_) {
4635 return isc::dhcp::Dhcp6Parser::make_SEVERITY(driver.loc_);
4636 default:
4637 return isc::dhcp::Dhcp6Parser::make_STRING("severity", driver.loc_);
4638 }
4639}
4640 YY_BREAK
4641case 152:
4643#line 1637 "dhcp6_lexer.ll"
4644{
4645 switch(driver.ctx_) {
4654 default:
4655 return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", driver.loc_);
4656 }
4657}
4658 YY_BREAK
4659case 153:
4661#line 1652 "dhcp6_lexer.ll"
4662{
4663 switch(driver.ctx_) {
4669 default:
4670 return isc::dhcp::Dhcp6Parser::make_STRING("require-client-classes", driver.loc_);
4671 }
4672}
4673 YY_BREAK
4674case 154:
4676#line 1664 "dhcp6_lexer.ll"
4677{
4678 switch(driver.ctx_) {
4684 default:
4685 return isc::dhcp::Dhcp6Parser::make_STRING("evaluate-additional-classes", driver.loc_);
4686 }
4687}
4688 YY_BREAK
4689case 155:
4691#line 1676 "dhcp6_lexer.ll"
4692{
4693 switch(driver.ctx_) {
4700 default:
4701 return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_);
4702 }
4703}
4704 YY_BREAK
4705case 156:
4707#line 1689 "dhcp6_lexer.ll"
4708{
4709 switch(driver.ctx_) {
4711 return isc::dhcp::Dhcp6Parser::make_TEST(driver.loc_);
4712 default:
4713 return isc::dhcp::Dhcp6Parser::make_STRING("test", driver.loc_);
4714 }
4715}
4716 YY_BREAK
4717case 157:
4719#line 1698 "dhcp6_lexer.ll"
4720{
4721 switch(driver.ctx_) {
4724 default:
4725 return isc::dhcp::Dhcp6Parser::make_STRING("template-test", driver.loc_);
4726 }
4727}
4728 YY_BREAK
4729case 158:
4731#line 1707 "dhcp6_lexer.ll"
4732{
4733 switch(driver.ctx_) {
4736 default:
4737 return isc::dhcp::Dhcp6Parser::make_STRING("only-if-required", driver.loc_);
4738 }
4739}
4740 YY_BREAK
4741case 159:
4743#line 1716 "dhcp6_lexer.ll"
4744{
4745 switch(driver.ctx_) {
4748 default:
4749 return isc::dhcp::Dhcp6Parser::make_STRING("only-in-additional-list", driver.loc_);
4750 }
4751}
4752 YY_BREAK
4753case 160:
4755#line 1725 "dhcp6_lexer.ll"
4756{
4757 switch(driver.ctx_) {
4761 default:
4762 return isc::dhcp::Dhcp6Parser::make_STRING("reservations", driver.loc_);
4763 }
4764}
4765 YY_BREAK
4766case 161:
4768#line 1735 "dhcp6_lexer.ll"
4769{
4770 switch(driver.ctx_) {
4774 default:
4775 return isc::dhcp::Dhcp6Parser::make_STRING("ip-addresses", driver.loc_);
4776 }
4777}
4778 YY_BREAK
4779case 162:
4781#line 1745 "dhcp6_lexer.ll"
4782{
4783 switch(driver.ctx_) {
4785 return isc::dhcp::Dhcp6Parser::make_PREFIXES(driver.loc_);
4786 default:
4787 return isc::dhcp::Dhcp6Parser::make_STRING("prefixes", driver.loc_);
4788 }
4789}
4790 YY_BREAK
4791case 163:
4793#line 1754 "dhcp6_lexer.ll"
4794{
4795 switch(driver.ctx_) {
4798 default:
4799 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefixes", driver.loc_);
4800 }
4801}
4802 YY_BREAK
4803case 164:
4805#line 1763 "dhcp6_lexer.ll"
4806{
4807 switch(driver.ctx_) {
4811 return isc::dhcp::Dhcp6Parser::make_DUID(driver.loc_);
4812 default:
4813 return isc::dhcp::Dhcp6Parser::make_STRING("duid", driver.loc_);
4814 }
4815}
4816 YY_BREAK
4817case 165:
4819#line 1774 "dhcp6_lexer.ll"
4820{
4821 switch(driver.ctx_) {
4824 return isc::dhcp::Dhcp6Parser::make_HW_ADDRESS(driver.loc_);
4825 default:
4826 return isc::dhcp::Dhcp6Parser::make_STRING("hw-address", driver.loc_);
4827 }
4828}
4829 YY_BREAK
4830case 166:
4832#line 1784 "dhcp6_lexer.ll"
4833{
4834 switch(driver.ctx_) {
4836 return isc::dhcp::Dhcp6Parser::make_HOSTNAME(driver.loc_);
4837 default:
4838 return isc::dhcp::Dhcp6Parser::make_STRING("hostname", driver.loc_);
4839 }
4840}
4841 YY_BREAK
4842case 167:
4844#line 1793 "dhcp6_lexer.ll"
4845{
4846 switch(driver.ctx_) {
4849 return isc::dhcp::Dhcp6Parser::make_FLEX_ID(driver.loc_);
4850 default:
4851 return isc::dhcp::Dhcp6Parser::make_STRING("flex-id", driver.loc_);
4852 }
4853}
4854 YY_BREAK
4855case 168:
4857#line 1803 "dhcp6_lexer.ll"
4858{
4859 switch(driver.ctx_) {
4862 return isc::dhcp::Dhcp6Parser::make_SPACE(driver.loc_);
4863 default:
4864 return isc::dhcp::Dhcp6Parser::make_STRING("space", driver.loc_);
4865 }
4866}
4867 YY_BREAK
4868case 169:
4870#line 1813 "dhcp6_lexer.ll"
4871{
4872 switch(driver.ctx_) {
4874 return isc::dhcp::Dhcp6Parser::make_CSV_FORMAT(driver.loc_);
4875 default:
4876 return isc::dhcp::Dhcp6Parser::make_STRING("csv-format", driver.loc_);
4877 }
4878}
4879 YY_BREAK
4880case 170:
4882#line 1822 "dhcp6_lexer.ll"
4883{
4884 switch(driver.ctx_) {
4887 default:
4888 return isc::dhcp::Dhcp6Parser::make_STRING("record-types", driver.loc_);
4889 }
4890}
4891 YY_BREAK
4892case 171:
4894#line 1831 "dhcp6_lexer.ll"
4895{
4896 switch(driver.ctx_) {
4898 return isc::dhcp::Dhcp6Parser::make_ENCAPSULATE(driver.loc_);
4899 default:
4900 return isc::dhcp::Dhcp6Parser::make_STRING("encapsulate", driver.loc_);
4901 }
4902}
4903 YY_BREAK
4904case 172:
4906#line 1840 "dhcp6_lexer.ll"
4907{
4908 switch(driver.ctx_) {
4910 return isc::dhcp::Dhcp6Parser::make_ARRAY(driver.loc_);
4911 default:
4912 return isc::dhcp::Dhcp6Parser::make_STRING("array", driver.loc_);
4913 }
4914}
4915 YY_BREAK
4916case 173:
4918#line 1849 "dhcp6_lexer.ll"
4919{
4920 switch(driver.ctx_) {
4923 return isc::dhcp::Dhcp6Parser::make_RELAY(driver.loc_);
4924 default:
4925 return isc::dhcp::Dhcp6Parser::make_STRING("relay", driver.loc_);
4926 }
4927}
4928 YY_BREAK
4929case 174:
4931#line 1859 "dhcp6_lexer.ll"
4932{
4933 switch(driver.ctx_) {
4936 default:
4937 return isc::dhcp::Dhcp6Parser::make_STRING("hooks-libraries", driver.loc_);
4938 }
4939}
4940 YY_BREAK
4941case 175:
4943#line 1868 "dhcp6_lexer.ll"
4944{
4945 switch(driver.ctx_) {
4947 return isc::dhcp::Dhcp6Parser::make_PARAMETERS(driver.loc_);
4948 default:
4949 return isc::dhcp::Dhcp6Parser::make_STRING("parameters", driver.loc_);
4950 }
4951}
4952 YY_BREAK
4953case 176:
4955#line 1877 "dhcp6_lexer.ll"
4956{
4957 switch(driver.ctx_) {
4959 return isc::dhcp::Dhcp6Parser::make_LIBRARY(driver.loc_);
4960 default:
4961 return isc::dhcp::Dhcp6Parser::make_STRING("library", driver.loc_);
4962 }
4963}
4964 YY_BREAK
4965case 177:
4967#line 1886 "dhcp6_lexer.ll"
4968{
4969 switch(driver.ctx_) {
4971 return isc::dhcp::Dhcp6Parser::make_SERVER_ID(driver.loc_);
4972 default:
4973 return isc::dhcp::Dhcp6Parser::make_STRING("server-id", driver.loc_);
4974 }
4975}
4976 YY_BREAK
4977case 178:
4979#line 1895 "dhcp6_lexer.ll"
4980{
4981 switch(driver.ctx_) {
4983 return isc::dhcp::Dhcp6Parser::make_LLT(driver.loc_);
4984 default:
4985 return isc::dhcp::Dhcp6Parser::make_STRING("LLT", driver.loc_);
4986 }
4987}
4988 YY_BREAK
4989case 179:
4991#line 1904 "dhcp6_lexer.ll"
4992{
4993 switch(driver.ctx_) {
4995 return isc::dhcp::Dhcp6Parser::make_EN(driver.loc_);
4996 default:
4997 return isc::dhcp::Dhcp6Parser::make_STRING("EN", driver.loc_);
4998 }
4999}
5000 YY_BREAK
5001case 180:
5003#line 1913 "dhcp6_lexer.ll"
5004{
5005 switch(driver.ctx_) {
5007 return isc::dhcp::Dhcp6Parser::make_LL(driver.loc_);
5008 default:
5009 return isc::dhcp::Dhcp6Parser::make_STRING("LL", driver.loc_);
5010 }
5011}
5012 YY_BREAK
5013case 181:
5015#line 1922 "dhcp6_lexer.ll"
5016{
5017 switch(driver.ctx_) {
5019 return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(driver.loc_);
5020 default:
5021 return isc::dhcp::Dhcp6Parser::make_STRING("identifier", driver.loc_);
5022 }
5023}
5024 YY_BREAK
5025case 182:
5027#line 1931 "dhcp6_lexer.ll"
5028{
5029 switch(driver.ctx_) {
5031 return isc::dhcp::Dhcp6Parser::make_HTYPE(driver.loc_);
5032 default:
5033 return isc::dhcp::Dhcp6Parser::make_STRING("htype", driver.loc_);
5034 }
5035}
5036 YY_BREAK
5037case 183:
5039#line 1940 "dhcp6_lexer.ll"
5040{
5041 switch(driver.ctx_) {
5043 return isc::dhcp::Dhcp6Parser::make_TIME(driver.loc_);
5044 default:
5045 return isc::dhcp::Dhcp6Parser::make_STRING("time", driver.loc_);
5046 }
5047}
5048 YY_BREAK
5049case 184:
5051#line 1949 "dhcp6_lexer.ll"
5052{
5053 switch(driver.ctx_) {
5056 default:
5057 return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", driver.loc_);
5058 }
5059}
5060 YY_BREAK
5061case 185:
5063#line 1958 "dhcp6_lexer.ll"
5064{
5065 switch(driver.ctx_) {
5068 default:
5069 return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", driver.loc_);
5070 }
5071}
5072 YY_BREAK
5073case 186:
5075#line 1967 "dhcp6_lexer.ll"
5076{
5077 switch(driver.ctx_) {
5080 default:
5081 return isc::dhcp::Dhcp6Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
5082 }
5083}
5084 YY_BREAK
5085case 187:
5087#line 1976 "dhcp6_lexer.ll"
5088{
5089 switch(driver.ctx_) {
5092 default:
5093 return isc::dhcp::Dhcp6Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
5094 }
5095}
5096 YY_BREAK
5097case 188:
5099#line 1985 "dhcp6_lexer.ll"
5100{
5101 switch(driver.ctx_) {
5104 default:
5105 return isc::dhcp::Dhcp6Parser::make_STRING("hold-reclaimed-time", driver.loc_);
5106 }
5107}
5108 YY_BREAK
5109case 189:
5111#line 1994 "dhcp6_lexer.ll"
5112{
5113 switch(driver.ctx_) {
5116 default:
5117 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-leases", driver.loc_);
5118 }
5119}
5120 YY_BREAK
5121case 190:
5123#line 2003 "dhcp6_lexer.ll"
5124{
5125 switch(driver.ctx_) {
5128 default:
5129 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-time", driver.loc_);
5130 }
5131}
5132 YY_BREAK
5133case 191:
5135#line 2012 "dhcp6_lexer.ll"
5136{
5137 switch(driver.ctx_) {
5140 default:
5141 return isc::dhcp::Dhcp6Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
5142 }
5143}
5144 YY_BREAK
5145case 192:
5147#line 2021 "dhcp6_lexer.ll"
5148{
5149 switch(driver.ctx_) {
5152 default:
5153 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp4o6-port", driver.loc_);
5154 }
5155}
5156 YY_BREAK
5157case 193:
5159#line 2030 "dhcp6_lexer.ll"
5160{
5161 switch(driver.ctx_) {
5164 default:
5165 return isc::dhcp::Dhcp6Parser::make_STRING("multi-threading", driver.loc_);
5166 }
5167}
5168 YY_BREAK
5169case 194:
5171#line 2039 "dhcp6_lexer.ll"
5172{
5173 switch(driver.ctx_) {
5176 default:
5177 return isc::dhcp::Dhcp6Parser::make_STRING("enable-multi-threading", driver.loc_);
5178 }
5179}
5180 YY_BREAK
5181case 195:
5183#line 2048 "dhcp6_lexer.ll"
5184{
5185 switch(driver.ctx_) {
5188 default:
5189 return isc::dhcp::Dhcp6Parser::make_STRING("thread-pool-size", driver.loc_);
5190 }
5191}
5192 YY_BREAK
5193case 196:
5195#line 2057 "dhcp6_lexer.ll"
5196{
5197 switch(driver.ctx_) {
5200 default:
5201 return isc::dhcp::Dhcp6Parser::make_STRING("packet-queue-size", driver.loc_);
5202 }
5203}
5204 YY_BREAK
5205case 197:
5207#line 2066 "dhcp6_lexer.ll"
5208{
5209 switch(driver.ctx_) {
5212 default:
5213 return isc::dhcp::Dhcp6Parser::make_STRING("control-socket", driver.loc_);
5214 }
5215}
5216 YY_BREAK
5217case 198:
5219#line 2075 "dhcp6_lexer.ll"
5220{
5221 switch(driver.ctx_) {
5224 default:
5225 return isc::dhcp::Dhcp6Parser::make_STRING("control-sockets", driver.loc_);
5226 }
5227}
5228 YY_BREAK
5229case 199:
5231#line 2084 "dhcp6_lexer.ll"
5232{
5233 switch(driver.ctx_) {
5235 return isc::dhcp::Dhcp6Parser::make_SOCKET_TYPE(driver.loc_);
5236 default:
5237 return isc::dhcp::Dhcp6Parser::make_STRING("socket-type", driver.loc_);
5238 }
5239}
5240 YY_BREAK
5241case 200:
5243#line 2093 "dhcp6_lexer.ll"
5244{
5245 switch(driver.ctx_) {
5247 return isc::dhcp::Dhcp6Parser::make_UNIX(driver.loc_);
5248 default:
5249 return isc::dhcp::Dhcp6Parser::make_STRING("unix", driver.loc_);
5250 }
5251}
5252 YY_BREAK
5253case 201:
5255#line 2102 "dhcp6_lexer.ll"
5256{
5257 switch(driver.ctx_) {
5259 return isc::dhcp::Dhcp6Parser::make_HTTP(driver.loc_);
5260 default:
5261 return isc::dhcp::Dhcp6Parser::make_STRING("http", driver.loc_);
5262 }
5263}
5264 YY_BREAK
5265case 202:
5267#line 2111 "dhcp6_lexer.ll"
5268{
5269 switch(driver.ctx_) {
5271 return isc::dhcp::Dhcp6Parser::make_HTTPS(driver.loc_);
5272 default:
5273 return isc::dhcp::Dhcp6Parser::make_STRING("https", driver.loc_);
5274 }
5275}
5276 YY_BREAK
5277case 203:
5279#line 2120 "dhcp6_lexer.ll"
5280{
5281 switch(driver.ctx_) {
5283 return isc::dhcp::Dhcp6Parser::make_SOCKET_NAME(driver.loc_);
5284 default:
5285 return isc::dhcp::Dhcp6Parser::make_STRING("socket-name", driver.loc_);
5286 }
5287}
5288 YY_BREAK
5289case 204:
5291#line 2129 "dhcp6_lexer.ll"
5292{
5293 switch(driver.ctx_) {
5296 default:
5297 return isc::dhcp::Dhcp6Parser::make_STRING("socket-address", driver.loc_);
5298 }
5299}
5300 YY_BREAK
5301case 205:
5303#line 2138 "dhcp6_lexer.ll"
5304{
5305 switch(driver.ctx_) {
5307 return isc::dhcp::Dhcp6Parser::make_SOCKET_PORT(driver.loc_);
5308 default:
5309 return isc::dhcp::Dhcp6Parser::make_STRING("socket-port", driver.loc_);
5310 }
5311}
5312 YY_BREAK
5313case 206:
5315#line 2147 "dhcp6_lexer.ll"
5316{
5317 switch(driver.ctx_) {
5320 default:
5321 return isc::dhcp::Dhcp6Parser::make_STRING("authentication", driver.loc_);
5322 }
5323}
5324 YY_BREAK
5325case 207:
5327#line 2156 "dhcp6_lexer.ll"
5328{
5329 switch(driver.ctx_) {
5331 return isc::dhcp::Dhcp6Parser::make_BASIC(driver.loc_);
5332 default:
5333 return isc::dhcp::Dhcp6Parser::make_STRING("basic", driver.loc_);
5334 }
5335}
5336 YY_BREAK
5337case 208:
5339#line 2165 "dhcp6_lexer.ll"
5340{
5341 switch(driver.ctx_) {
5343 return isc::dhcp::Dhcp6Parser::make_REALM(driver.loc_);
5344 default:
5345 return isc::dhcp::Dhcp6Parser::make_STRING("realm", driver.loc_);
5346 }
5347}
5348 YY_BREAK
5349case 209:
5351#line 2174 "dhcp6_lexer.ll"
5352{
5353 switch(driver.ctx_) {
5355 return isc::dhcp::Dhcp6Parser::make_DIRECTORY(driver.loc_);
5356 default:
5357 return isc::dhcp::Dhcp6Parser::make_STRING("directory", driver.loc_);
5358 }
5359}
5360 YY_BREAK
5361case 210:
5363#line 2183 "dhcp6_lexer.ll"
5364{
5365 switch(driver.ctx_) {
5367 return isc::dhcp::Dhcp6Parser::make_CLIENTS(driver.loc_);
5368 default:
5369 return isc::dhcp::Dhcp6Parser::make_STRING("clients", driver.loc_);
5370 }
5371}
5372 YY_BREAK
5373case 211:
5375#line 2192 "dhcp6_lexer.ll"
5376{
5377 switch(driver.ctx_) {
5379 return isc::dhcp::Dhcp6Parser::make_USER_FILE(driver.loc_);
5380 default:
5381 return isc::dhcp::Dhcp6Parser::make_STRING("user-file", driver.loc_);
5382 }
5383}
5384 YY_BREAK
5385case 212:
5387#line 2201 "dhcp6_lexer.ll"
5388{
5389 switch(driver.ctx_) {
5392 default:
5393 return isc::dhcp::Dhcp6Parser::make_STRING("password-file", driver.loc_);
5394 }
5395}
5396 YY_BREAK
5397case 213:
5399#line 2210 "dhcp6_lexer.ll"
5400{
5401 switch(driver.ctx_) {
5404 default:
5405 return isc::dhcp::Dhcp6Parser::make_STRING("cert-required", driver.loc_);
5406 }
5407}
5408 YY_BREAK
5409case 214:
5411#line 2219 "dhcp6_lexer.ll"
5412{
5413 switch(driver.ctx_) {
5416 default:
5417 return isc::dhcp::Dhcp6Parser::make_STRING("http-headers", driver.loc_);
5418 }
5419}
5420 YY_BREAK
5421case 215:
5423#line 2228 "dhcp6_lexer.ll"
5424{
5425 switch(driver.ctx_) {
5427 return isc::dhcp::Dhcp6Parser::make_VALUE(driver.loc_);
5428 default:
5429 return isc::dhcp::Dhcp6Parser::make_STRING("value", driver.loc_);
5430 }
5431}
5432 YY_BREAK
5433case 216:
5435#line 2237 "dhcp6_lexer.ll"
5436{
5437 switch(driver.ctx_) {
5440 default:
5441 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-queue-control", driver.loc_);
5442 }
5443}
5444 YY_BREAK
5445case 217:
5447#line 2246 "dhcp6_lexer.ll"
5448{
5449 switch(driver.ctx_) {
5452 default:
5453 return isc::dhcp::Dhcp6Parser::make_STRING("enable-queue", driver.loc_);
5454 }
5455}
5456 YY_BREAK
5457case 218:
5459#line 2255 "dhcp6_lexer.ll"
5460{
5461 switch(driver.ctx_) {
5463 return isc::dhcp::Dhcp6Parser::make_QUEUE_TYPE(driver.loc_);
5464 default:
5465 return isc::dhcp::Dhcp6Parser::make_STRING("queue-type", driver.loc_);
5466 }
5467}
5468 YY_BREAK
5469case 219:
5471#line 2264 "dhcp6_lexer.ll"
5472{
5473 switch(driver.ctx_) {
5475 return isc::dhcp::Dhcp6Parser::make_CAPACITY(driver.loc_);
5476 default:
5477 return isc::dhcp::Dhcp6Parser::make_STRING("capacity", driver.loc_);
5478 }
5479}
5480 YY_BREAK
5481case 220:
5483#line 2273 "dhcp6_lexer.ll"
5484{
5485 switch(driver.ctx_) {
5487 return isc::dhcp::Dhcp6Parser::make_DHCP_DDNS(driver.loc_);
5488 default:
5489 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-ddns", driver.loc_);
5490 }
5491}
5492 YY_BREAK
5493case 221:
5495#line 2282 "dhcp6_lexer.ll"
5496{
5497 switch(driver.ctx_) {
5500 default:
5501 return isc::dhcp::Dhcp6Parser::make_STRING("early-global-reservations-lookup", driver.loc_);
5502 }
5503}
5504 YY_BREAK
5505case 222:
5507#line 2291 "dhcp6_lexer.ll"
5508{
5509 switch(driver.ctx_) {
5512 default:
5513 return isc::dhcp::Dhcp6Parser::make_STRING("ip-reservations-unique", driver.loc_);
5514 }
5515}
5516 YY_BREAK
5517case 223:
5519#line 2300 "dhcp6_lexer.ll"
5520{
5521 switch(driver.ctx_) {
5524 default:
5525 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-lookup-first", driver.loc_);
5526 }
5527}
5528 YY_BREAK
5529case 224:
5531#line 2309 "dhcp6_lexer.ll"
5532{
5533 switch(driver.ctx_) {
5536 default:
5537 return isc::dhcp::Dhcp6Parser::make_STRING("compatibility", driver.loc_);
5538 }
5539}
5540 YY_BREAK
5541case 225:
5543#line 2318 "dhcp6_lexer.ll"
5544{
5545 switch(driver.ctx_) {
5548 default:
5549 return isc::dhcp::Dhcp6Parser::make_STRING("lenient-option-parsing", driver.loc_);
5550 }
5551}
5552 YY_BREAK
5553case 226:
5555#line 2327 "dhcp6_lexer.ll"
5556{
5557 /* A string has been matched. It contains the actual string and single quotes.
5558 We need to get those quotes out of the way and just use its content, e.g.
5559 for 'foo' we should get foo */
5560 std::string raw(yytext+1);
5561 size_t len = raw.size() - 1;
5562 raw.resize(len);
5563 std::string decoded;
5564 decoded.reserve(len);
5565 for (size_t pos = 0; pos < len; ++pos) {
5566 int b = 0;
5567 char c = raw[pos];
5568 switch (c) {
5569 case '"':
5570 /* impossible condition */
5571 driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
5572 break;
5573 case '\\':
5574 ++pos;
5575 if (pos >= len) {
5576 /* impossible condition */
5577 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
5578 }
5579 c = raw[pos];
5580 switch (c) {
5581 case '"':
5582 case '\\':
5583 case '/':
5584 decoded.push_back(c);
5585 break;
5586 case 'b':
5587 decoded.push_back('\b');
5588 break;
5589 case 'f':
5590 decoded.push_back('\f');
5591 break;
5592 case 'n':
5593 decoded.push_back('\n');
5594 break;
5595 case 'r':
5596 decoded.push_back('\r');
5597 break;
5598 case 't':
5599 decoded.push_back('\t');
5600 break;
5601 case 'u':
5602 /* support only \u0000 to \u00ff */
5603 ++pos;
5604 if (pos + 4 > len) {
5605 /* impossible condition */
5606 driver.error(driver.loc_,
5607 "Overflow unicode escape in \"" + raw + "\"");
5608 }
5609 if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
5610 driver.error(driver.loc_,
5611 "Unsupported unicode escape in \"" + raw + "\"",
5612 pos + 1);
5613 }
5614 pos += 2;
5615 c = raw[pos];
5616 if ((c >= '0') && (c <= '9')) {
5617 b = (c - '0') << 4;
5618 } else if ((c >= 'A') && (c <= 'F')) {
5619 b = (c - 'A' + 10) << 4;
5620 } else if ((c >= 'a') && (c <= 'f')) {
5621 b = (c - 'a' + 10) << 4;
5622 } else {
5623 /* impossible condition */
5624 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5625 }
5626 pos++;
5627 c = raw[pos];
5628 if ((c >= '0') && (c <= '9')) {
5629 b |= c - '0';
5630 } else if ((c >= 'A') && (c <= 'F')) {
5631 b |= c - 'A' + 10;
5632 } else if ((c >= 'a') && (c <= 'f')) {
5633 b |= c - 'a' + 10;
5634 } else {
5635 /* impossible condition */
5636 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5637 }
5638 decoded.push_back(static_cast<char>(b & 0xff));
5639 break;
5640 default:
5641 /* impossible condition */
5642 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5643 }
5644 break;
5645 default:
5646 if ((c >= 0) && (c < 0x20)) {
5647 /* impossible condition */
5648 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5649 }
5650 decoded.push_back(c);
5651 }
5652 }
5653
5654 return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
5655}
5656 YY_BREAK
5657case 227:
5658/* rule 227 can match eol */
5660#line 2428 "dhcp6_lexer.ll"
5661{
5662 /* Bad string with a forbidden control character inside */
5663 std::string raw(yytext+1);
5664 size_t len = raw.size() - 1;
5665 size_t pos = 0;
5666 for (; pos < len; ++pos) {
5667 char c = raw[pos];
5668 if ((c >= 0) && (c < 0x20)) {
5669 break;
5670 }
5671 }
5672 driver.error(driver.loc_,
5673 "Invalid control in " + std::string(yytext),
5674 pos + 1);
5675}
5676 YY_BREAK
5677case 228:
5678/* rule 228 can match eol */
5680#line 2444 "dhcp6_lexer.ll"
5681{
5682 /* Bad string with a bad escape inside */
5683 std::string raw(yytext+1);
5684 size_t len = raw.size() - 1;
5685 size_t pos = 0;
5686 bool found = false;
5687 for (; pos < len; ++pos) {
5688 if (found) {
5689 break;
5690 }
5691 char c = raw[pos];
5692 if (c == '\\') {
5693 ++pos;
5694 c = raw[pos];
5695 switch (c) {
5696 case '"':
5697 case '\\':
5698 case '/':
5699 case 'b':
5700 case 'f':
5701 case 'n':
5702 case 'r':
5703 case 't':
5704 break;
5705 case 'u':
5706 if ((pos + 4 > len) ||
5707 !std::isxdigit(raw[pos + 1]) ||
5708 !std::isxdigit(raw[pos + 2]) ||
5709 !std::isxdigit(raw[pos + 3]) ||
5710 !std::isxdigit(raw[pos + 4])) {
5711 found = true;
5712 }
5713 break;
5714 default:
5715 found = true;
5716 break;
5717 }
5718 }
5719 }
5720 /* The rule stops on the first " including on \" so add ... in this case */
5721 std::string trailer = "";
5722 if (raw[len - 1] == '\\') {
5723 trailer = "...";
5724 }
5725 driver.error(driver.loc_,
5726 "Bad escape in " + std::string(yytext) + trailer,
5727 pos);
5728}
5729 YY_BREAK
5730case 229:
5732#line 2493 "dhcp6_lexer.ll"
5733{
5734 /* Bad string with an open escape at the end */
5735 std::string raw(yytext+1);
5736 driver.error(driver.loc_,
5737 "Overflow escape in " + std::string(yytext),
5738 raw.size() + 1);
5739}
5740 YY_BREAK
5741case 230:
5743#line 2501 "dhcp6_lexer.ll"
5744{
5745 /* Bad string with an open unicode escape at the end */
5746 std::string raw(yytext+1);
5747 size_t pos = raw.size() - 1;
5748 for (; pos > 0; --pos) {
5749 char c = raw[pos];
5750 if (c == 'u') {
5751 break;
5752 }
5753 }
5754 driver.error(driver.loc_,
5755 "Overflow unicode escape in " + std::string(yytext),
5756 pos + 1);
5757}
5758 YY_BREAK
5759case 231:
5761#line 2516 "dhcp6_lexer.ll"
5762{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
5763 YY_BREAK
5764case 232:
5766#line 2517 "dhcp6_lexer.ll"
5767{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
5768 YY_BREAK
5769case 233:
5771#line 2518 "dhcp6_lexer.ll"
5772{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
5773 YY_BREAK
5774case 234:
5776#line 2519 "dhcp6_lexer.ll"
5777{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
5778 YY_BREAK
5779case 235:
5781#line 2520 "dhcp6_lexer.ll"
5782{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
5783 YY_BREAK
5784case 236:
5786#line 2521 "dhcp6_lexer.ll"
5787{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
5788 YY_BREAK
5789case 237:
5791#line 2523 "dhcp6_lexer.ll"
5792{
5793 /* An integer was found. */
5794 std::string tmp(yytext);
5795 int64_t integer = 0;
5796 try {
5797 /* In substring we want to use negative values (e.g. -1).
5798 In enterprise-id we need to use values up to 0xffffffff.
5799 To cover both of those use cases, we need at least
5800 int64_t. */
5801 integer = boost::lexical_cast<int64_t>(tmp);
5802 } catch (const boost::bad_lexical_cast &) {
5803 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5804 }
5805
5806 /* The parser needs the string form as double conversion is no lossless */
5807 return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
5808}
5809 YY_BREAK
5810case 238:
5812#line 2541 "dhcp6_lexer.ll"
5813{
5814 /* A floating point was found. */
5815 std::string tmp(yytext);
5816 double fp = 0.0;
5817 try {
5818 fp = boost::lexical_cast<double>(tmp);
5819 } catch (const boost::bad_lexical_cast &) {
5820 driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
5821 }
5822
5823 return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
5824}
5825 YY_BREAK
5826case 239:
5828#line 2554 "dhcp6_lexer.ll"
5829{
5830 string tmp(yytext);
5831 return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
5832}
5833 YY_BREAK
5834case 240:
5836#line 2559 "dhcp6_lexer.ll"
5837{
5838 return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
5839}
5840 YY_BREAK
5841case 241:
5843#line 2563 "dhcp6_lexer.ll"
5844driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
5845 YY_BREAK
5846case 242:
5848#line 2565 "dhcp6_lexer.ll"
5849driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
5850 YY_BREAK
5851case 243:
5853#line 2567 "dhcp6_lexer.ll"
5854driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
5855 YY_BREAK
5856case 244:
5858#line 2569 "dhcp6_lexer.ll"
5859driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
5860 YY_BREAK
5861case YY_STATE_EOF(INITIAL):
5862#line 2571 "dhcp6_lexer.ll"
5863{
5864 if (driver.states_.empty()) {
5865 return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
5866 }
5867 driver.loc_ = driver.locs_.back();
5868 driver.locs_.pop_back();
5869 driver.file_ = driver.files_.back();
5870 driver.files_.pop_back();
5871 if (driver.sfile_) {
5872 fclose(driver.sfile_);
5873 driver.sfile_ = 0;
5874 }
5875 if (!driver.sfiles_.empty()) {
5876 driver.sfile_ = driver.sfiles_.back();
5877 driver.sfiles_.pop_back();
5878 }
5879 parser6__delete_buffer(YY_CURRENT_BUFFER);
5880 parser6__switch_to_buffer(driver.states_.back());
5881 driver.states_.pop_back();
5882
5883 BEGIN(DIR_EXIT);
5884}
5885 YY_BREAK
5886case 245:
5888#line 2594 "dhcp6_lexer.ll"
5889ECHO;
5890 YY_BREAK
5891#line 5892 "dhcp6_lexer.cc"
5892
5893 case YY_END_OF_BUFFER:
5894 {
5895 /* Amount of text matched not including the EOB char. */
5896 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5897
5898 /* Undo the effects of YY_DO_BEFORE_ACTION. */
5899 *yy_cp = (yy_hold_char);
5901
5902 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5903 {
5904 /* We're scanning a new file or input source. It's
5905 * possible that this happened because the user
5906 * just pointed yyin at a new source and called
5907 * yylex(). If so, then we have to assure
5908 * consistency between YY_CURRENT_BUFFER and our
5909 * globals. Here is the right place to do so, because
5910 * this is the first action (other than possibly a
5911 * back-up) that will match for the new input source.
5912 */
5913 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5914/* %if-c-only */
5915 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
5916/* %endif */
5917/* %if-c++-only */
5918/* %endif */
5919 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5920 }
5921
5922 /* Note that here we test for yy_c_buf_p "<=" to the position
5923 * of the first EOB in the buffer, since yy_c_buf_p will
5924 * already have been incremented past the NUL character
5925 * (since all states make transitions on EOB to the
5926 * end-of-buffer state). Contrast this with the test
5927 * in input().
5928 */
5929 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5930 { /* This was really a NUL. */
5931 yy_state_type yy_next_state;
5932
5933 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5934
5935 yy_current_state = yy_get_previous_state( );
5936
5937 /* Okay, we're now positioned to make the NUL
5938 * transition. We couldn't have
5939 * yy_get_previous_state() go ahead and do it
5940 * for us because it doesn't know how to deal
5941 * with the possibility of jamming (and we don't
5942 * want to build jamming into it because then it
5943 * will run more slowly).
5944 */
5945
5946 yy_next_state = yy_try_NUL_trans( yy_current_state );
5947
5949
5950 if ( yy_next_state )
5951 {
5952 /* Consume the NUL. */
5953 yy_cp = ++(yy_c_buf_p);
5954 yy_current_state = yy_next_state;
5955 goto yy_match;
5956 }
5957
5958 else
5959 {
5960/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
5961 yy_cp = (yy_last_accepting_cpos);
5962 yy_current_state = (yy_last_accepting_state);
5963 goto yy_find_action;
5964 }
5965 }
5966
5967 else switch ( yy_get_next_buffer( ) )
5968 {
5970 {
5971 (yy_did_buffer_switch_on_eof) = 0;
5972
5973 if ( yywrap( ) )
5974 {
5975 /* Note: because we've taken care in
5976 * yy_get_next_buffer() to have set up
5977 * yytext, we can now set up
5978 * yy_c_buf_p so that if some total
5979 * hoser (like flex itself) wants to
5980 * call the scanner after we return the
5981 * YY_NULL, it'll still work - another
5982 * YY_NULL will get returned.
5983 */
5984 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5985
5987 goto do_action;
5988 }
5989
5990 else
5991 {
5992 if ( ! (yy_did_buffer_switch_on_eof) )
5994 }
5995 break;
5996 }
5997
5999 (yy_c_buf_p) =
6000 (yytext_ptr) + yy_amount_of_matched_text;
6001
6002 yy_current_state = yy_get_previous_state( );
6003
6004 yy_cp = (yy_c_buf_p);
6006 goto yy_match;
6007
6008 case EOB_ACT_LAST_MATCH:
6009 (yy_c_buf_p) =
6010 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
6011
6012 yy_current_state = yy_get_previous_state( );
6013
6014 yy_cp = (yy_c_buf_p);
6016 goto yy_find_action;
6017 }
6018 break;
6019 }
6020
6021 default:
6023 "fatal flex scanner internal error--no action found" );
6024 } /* end of action switch */
6025 } /* end of scanning one token */
6026 } /* end of user's declarations */
6027} /* end of yylex */
6028/* %ok-for-header */
6029
6030/* %if-c++-only */
6031/* %not-for-header */
6032/* %ok-for-header */
6033
6034/* %endif */
6035
6036/* yy_get_next_buffer - try to read in a new buffer
6037 *
6038 * Returns a code representing an action:
6039 * EOB_ACT_LAST_MATCH -
6040 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
6041 * EOB_ACT_END_OF_FILE - end of file
6042 */
6043/* %if-c-only */
6044static int yy_get_next_buffer (void)
6045/* %endif */
6046/* %if-c++-only */
6047/* %endif */
6048{
6049 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
6050 char *source = (yytext_ptr);
6051 int number_to_move, i;
6052 int ret_val;
6053
6054 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
6056 "fatal flex scanner internal error--end of buffer missed" );
6057
6058 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
6059 { /* Don't try to fill the buffer, so this is an EOF. */
6060 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
6061 {
6062 /* We matched a single character, the EOB, so
6063 * treat this as a final EOF.
6064 */
6065 return EOB_ACT_END_OF_FILE;
6066 }
6067
6068 else
6069 {
6070 /* We matched some text prior to the EOB, first
6071 * process it.
6072 */
6073 return EOB_ACT_LAST_MATCH;
6074 }
6075 }
6076
6077 /* Try to read more data. */
6078
6079 /* First move last chars to start of buffer. */
6080 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
6081
6082 for ( i = 0; i < number_to_move; ++i )
6083 *(dest++) = *(source++);
6084
6085 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
6086 /* don't do the read, it's not guaranteed to return an EOF,
6087 * just force an EOF
6088 */
6089 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
6090
6091 else
6092 {
6093 int num_to_read =
6094 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
6095
6096 while ( num_to_read <= 0 )
6097 { /* Not enough room in the buffer - grow it. */
6098
6099 /* just a shorter name for the current buffer */
6101
6102 int yy_c_buf_p_offset =
6103 (int) ((yy_c_buf_p) - b->yy_ch_buf);
6104
6105 if ( b->yy_is_our_buffer )
6106 {
6107 int new_size = b->yy_buf_size * 2;
6108
6109 if ( new_size <= 0 )
6110 b->yy_buf_size += b->yy_buf_size / 8;
6111 else
6112 b->yy_buf_size *= 2;
6113
6114 b->yy_ch_buf = (char *)
6115 /* Include room in for 2 EOB chars. */
6116 yyrealloc( (void *) b->yy_ch_buf,
6117 (yy_size_t) (b->yy_buf_size + 2) );
6118 }
6119 else
6120 /* Can't grow it, we don't own it. */
6121 b->yy_ch_buf = NULL;
6122
6123 if ( ! b->yy_ch_buf )
6125 "fatal error - scanner input buffer overflow" );
6126
6127 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
6128
6129 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
6130 number_to_move - 1;
6131
6132 }
6133
6134 if ( num_to_read > YY_READ_BUF_SIZE )
6135 num_to_read = YY_READ_BUF_SIZE;
6136
6137 /* Read in more data. */
6138 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
6139 (yy_n_chars), num_to_read );
6140
6141 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6142 }
6143
6144 if ( (yy_n_chars) == 0 )
6145 {
6146 if ( number_to_move == YY_MORE_ADJ )
6147 {
6148 ret_val = EOB_ACT_END_OF_FILE;
6149 yyrestart( yyin );
6150 }
6151
6152 else
6153 {
6154 ret_val = EOB_ACT_LAST_MATCH;
6155 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
6157 }
6158 }
6159
6160 else
6161 ret_val = EOB_ACT_CONTINUE_SCAN;
6162
6163 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
6164 /* Extend the array by 50%, plus the number we really need. */
6165 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
6166 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
6167 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
6168 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
6169 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
6170 /* "- 2" to take care of EOB's */
6171 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
6172 }
6173
6174 (yy_n_chars) += number_to_move;
6175 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
6176 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
6177
6178 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
6179
6180 return ret_val;
6181}
6182
6183/* yy_get_previous_state - get the state just before the EOB char was reached */
6184
6185/* %if-c-only */
6186/* %not-for-header */
6187 static yy_state_type yy_get_previous_state (void)
6188/* %endif */
6189/* %if-c++-only */
6190/* %endif */
6191{
6192 yy_state_type yy_current_state;
6193 char *yy_cp;
6194
6195/* %% [15.0] code to get the start state into yy_current_state goes here */
6196 yy_current_state = (yy_start);
6197
6198 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
6199 {
6200/* %% [16.0] code to find the next state goes here */
6201 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
6202 if ( yy_accept[yy_current_state] )
6203 {
6204 (yy_last_accepting_state) = yy_current_state;
6205 (yy_last_accepting_cpos) = yy_cp;
6206 }
6207 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6208 {
6209 yy_current_state = (int) yy_def[yy_current_state];
6210 if ( yy_current_state >= 2326 )
6211 yy_c = yy_meta[yy_c];
6212 }
6213 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6214 }
6215
6216 return yy_current_state;
6217}
6218
6219/* yy_try_NUL_trans - try to make a transition on the NUL character
6220 *
6221 * synopsis
6222 * next_state = yy_try_NUL_trans( current_state );
6223 */
6224/* %if-c-only */
6225 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
6226/* %endif */
6227/* %if-c++-only */
6228/* %endif */
6229{
6230 int yy_is_jam;
6231 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
6232 char *yy_cp = (yy_c_buf_p);
6233
6234 YY_CHAR yy_c = 1;
6235 if ( yy_accept[yy_current_state] )
6236 {
6237 (yy_last_accepting_state) = yy_current_state;
6238 (yy_last_accepting_cpos) = yy_cp;
6239 }
6240 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6241 {
6242 yy_current_state = (int) yy_def[yy_current_state];
6243 if ( yy_current_state >= 2326 )
6244 yy_c = yy_meta[yy_c];
6245 }
6246 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6247 yy_is_jam = (yy_current_state == 2325);
6248
6249 return yy_is_jam ? 0 : yy_current_state;
6250}
6251
6252#ifndef YY_NO_UNPUT
6253/* %if-c-only */
6254
6255/* %endif */
6256#endif
6257
6258/* %if-c-only */
6259#ifndef YY_NO_INPUT
6260#ifdef __cplusplus
6261 static int yyinput (void)
6262#else
6263 static int input (void)
6264#endif
6265
6266/* %endif */
6267/* %if-c++-only */
6268/* %endif */
6269{
6270 int c;
6271
6272 *(yy_c_buf_p) = (yy_hold_char);
6273
6274 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
6275 {
6276 /* yy_c_buf_p now points to the character we want to return.
6277 * If this occurs *before* the EOB characters, then it's a
6278 * valid NUL; if not, then we've hit the end of the buffer.
6279 */
6280 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6281 /* This was really a NUL. */
6282 *(yy_c_buf_p) = '\0';
6283
6284 else
6285 { /* need more input */
6286 int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
6287 ++(yy_c_buf_p);
6288
6289 switch ( yy_get_next_buffer( ) )
6290 {
6291 case EOB_ACT_LAST_MATCH:
6292 /* This happens because yy_g_n_b()
6293 * sees that we've accumulated a
6294 * token and flags that we need to
6295 * try matching the token before
6296 * proceeding. But for input(),
6297 * there's no matching to consider.
6298 * So convert the EOB_ACT_LAST_MATCH
6299 * to EOB_ACT_END_OF_FILE.
6300 */
6301
6302 /* Reset buffer status. */
6303 yyrestart( yyin );
6304
6305 /*FALLTHROUGH*/
6306
6308 {
6309 if ( yywrap( ) )
6310 return 0;
6311
6312 if ( ! (yy_did_buffer_switch_on_eof) )
6314#ifdef __cplusplus
6315 return yyinput();
6316#else
6317 return input();
6318#endif
6319 }
6320
6322 (yy_c_buf_p) = (yytext_ptr) + offset;
6323 break;
6324 }
6325 }
6326 }
6327
6328 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
6329 *(yy_c_buf_p) = '\0'; /* preserve yytext */
6330 (yy_hold_char) = *++(yy_c_buf_p);
6331
6332/* %% [19.0] update BOL and yylineno */
6333
6334 return c;
6335}
6336/* %if-c-only */
6337#endif /* ifndef YY_NO_INPUT */
6338/* %endif */
6339
6345/* %if-c-only */
6346 void yyrestart (FILE * input_file )
6347/* %endif */
6348/* %if-c++-only */
6349/* %endif */
6350{
6351
6352 if ( ! YY_CURRENT_BUFFER ){
6356 }
6357
6358 yy_init_buffer( YY_CURRENT_BUFFER, input_file );
6360}
6361
6362/* %if-c++-only */
6363/* %endif */
6364
6369/* %if-c-only */
6371/* %endif */
6372/* %if-c++-only */
6373/* %endif */
6374{
6375
6376 /* TODO. We should be able to replace this entire function body
6377 * with
6378 * yypop_buffer_state();
6379 * yypush_buffer_state(new_buffer);
6380 */
6382 if ( YY_CURRENT_BUFFER == new_buffer )
6383 return;
6384
6385 if ( YY_CURRENT_BUFFER )
6386 {
6387 /* Flush out information for old buffer. */
6388 *(yy_c_buf_p) = (yy_hold_char);
6389 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6390 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6391 }
6392
6393 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6395
6396 /* We don't actually know whether we did this switch during
6397 * EOF (yywrap()) processing, but the only time this flag
6398 * is looked at is after yywrap() is called, so it's safe
6399 * to go ahead and always set it.
6400 */
6401 (yy_did_buffer_switch_on_eof) = 1;
6402}
6403
6404/* %if-c-only */
6405static void yy_load_buffer_state (void)
6406/* %endif */
6407/* %if-c++-only */
6408/* %endif */
6409{
6410 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6411 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6412/* %if-c-only */
6413 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6414/* %endif */
6415/* %if-c++-only */
6416/* %endif */
6417 (yy_hold_char) = *(yy_c_buf_p);
6418}
6419
6426/* %if-c-only */
6427 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
6428/* %endif */
6429/* %if-c++-only */
6430/* %endif */
6431{
6433
6434 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6435 if ( ! b )
6436 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6437
6438 b->yy_buf_size = size;
6439
6440 /* yy_ch_buf has to be 2 characters longer than the size given because
6441 * we need to put in 2 end-of-buffer characters.
6442 */
6443 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
6444 if ( ! b->yy_ch_buf )
6445 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6446
6447 b->yy_is_our_buffer = 1;
6448
6449 yy_init_buffer( b, file );
6450
6451 return b;
6452}
6453
6454/* %if-c++-only */
6455/* %endif */
6456
6461/* %if-c-only */
6463/* %endif */
6464/* %if-c++-only */
6465/* %endif */
6466{
6467
6468 if ( ! b )
6469 return;
6470
6471 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6473
6474 if ( b->yy_is_our_buffer )
6475 yyfree( (void *) b->yy_ch_buf );
6476
6477 yyfree( (void *) b );
6478}
6479
6480/* Initializes or reinitializes a buffer.
6481 * This function is sometimes called more than once on the same buffer,
6482 * such as during a yyrestart() or at EOF.
6483 */
6484/* %if-c-only */
6485 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
6486/* %endif */
6487/* %if-c++-only */
6488/* %endif */
6489
6490{
6491 int oerrno = errno;
6492
6493 yy_flush_buffer( b );
6494
6495/* %if-c-only */
6496 b->yy_input_file = file;
6497/* %endif */
6498/* %if-c++-only */
6499/* %endif */
6500 b->yy_fill_buffer = 1;
6501
6502 /* If b is the current buffer, then yy_init_buffer was _probably_
6503 * called from yyrestart() or through yy_get_next_buffer.
6504 * In that case, we don't want to reset the lineno or column.
6505 */
6506 if (b != YY_CURRENT_BUFFER){
6507 b->yy_bs_lineno = 1;
6508 b->yy_bs_column = 0;
6509 }
6510
6511/* %if-c-only */
6512
6513 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
6514
6515/* %endif */
6516/* %if-c++-only */
6517/* %endif */
6518 errno = oerrno;
6519}
6520
6525/* %if-c-only */
6527/* %endif */
6528/* %if-c++-only */
6529/* %endif */
6530{
6531 if ( ! b )
6532 return;
6533
6534 b->yy_n_chars = 0;
6535
6536 /* We always need two end-of-buffer characters. The first causes
6537 * a transition to the end-of-buffer state. The second causes
6538 * a jam in that state.
6539 */
6542
6543 b->yy_buf_pos = &b->yy_ch_buf[0];
6544
6545 b->yy_at_bol = 1;
6547
6548 if ( b == YY_CURRENT_BUFFER )
6550}
6551
6552/* %if-c-or-c++ */
6559/* %if-c-only */
6561/* %endif */
6562/* %if-c++-only */
6563/* %endif */
6564{
6565 if (new_buffer == NULL)
6566 return;
6567
6569
6570 /* This block is copied from yy_switch_to_buffer. */
6571 if ( YY_CURRENT_BUFFER )
6572 {
6573 /* Flush out information for old buffer. */
6574 *(yy_c_buf_p) = (yy_hold_char);
6575 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6576 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6577 }
6578
6579 /* Only push if top exists. Otherwise, replace top. */
6581 (yy_buffer_stack_top)++;
6582 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6583
6584 /* copied from yy_switch_to_buffer. */
6586 (yy_did_buffer_switch_on_eof) = 1;
6587}
6588/* %endif */
6589
6590/* %if-c-or-c++ */
6595/* %if-c-only */
6597/* %endif */
6598/* %if-c++-only */
6599/* %endif */
6600{
6601 if (!YY_CURRENT_BUFFER)
6602 return;
6603
6606 if ((yy_buffer_stack_top) > 0)
6607 --(yy_buffer_stack_top);
6608
6609 if (YY_CURRENT_BUFFER) {
6611 (yy_did_buffer_switch_on_eof) = 1;
6612 }
6613}
6614/* %endif */
6615
6616/* %if-c-or-c++ */
6617/* Allocates the stack if it does not exist.
6618 * Guarantees space for at least one push.
6619 */
6620/* %if-c-only */
6621static void yyensure_buffer_stack (void)
6622/* %endif */
6623/* %if-c++-only */
6624/* %endif */
6625{
6626 yy_size_t num_to_alloc;
6627
6628 if (!(yy_buffer_stack)) {
6629
6630 /* First allocation is just for 2 elements, since we don't know if this
6631 * scanner will even need a stack. We use 2 instead of 1 to avoid an
6632 * immediate realloc on the next call.
6633 */
6634 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
6635 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
6636 (num_to_alloc * sizeof(struct yy_buffer_state*)
6637 );
6638 if ( ! (yy_buffer_stack) )
6639 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6640
6641 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6642
6643 (yy_buffer_stack_max) = num_to_alloc;
6644 (yy_buffer_stack_top) = 0;
6645 return;
6646 }
6647
6648 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6649
6650 /* Increase the buffer to prepare for a possible push. */
6651 yy_size_t grow_size = 8 /* arbitrary grow size */;
6652
6653 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6654 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
6655 ((yy_buffer_stack),
6656 num_to_alloc * sizeof(struct yy_buffer_state*)
6657 );
6658 if ( ! (yy_buffer_stack) )
6659 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6660
6661 /* zero only the new slots.*/
6662 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6663 (yy_buffer_stack_max) = num_to_alloc;
6664 }
6665}
6666/* %endif */
6667
6668/* %if-c-only */
6676{
6678
6679 if ( size < 2 ||
6680 base[size-2] != YY_END_OF_BUFFER_CHAR ||
6681 base[size-1] != YY_END_OF_BUFFER_CHAR )
6682 /* They forgot to leave room for the EOB's. */
6683 return NULL;
6684
6685 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6686 if ( ! b )
6687 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
6688
6689 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
6690 b->yy_buf_pos = b->yy_ch_buf = base;
6691 b->yy_is_our_buffer = 0;
6692 b->yy_input_file = NULL;
6693 b->yy_n_chars = b->yy_buf_size;
6694 b->yy_is_interactive = 0;
6695 b->yy_at_bol = 1;
6696 b->yy_fill_buffer = 0;
6698
6700
6701 return b;
6702}
6703/* %endif */
6704
6705/* %if-c-only */
6714YY_BUFFER_STATE yy_scan_string (const char * yystr )
6715{
6716
6717 return yy_scan_bytes( yystr, (int) strlen(yystr) );
6718}
6719/* %endif */
6720
6721/* %if-c-only */
6729YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
6730{
6732 char *buf;
6733 yy_size_t n;
6734 int i;
6735
6736 /* Get memory for full buffer, including space for trailing EOB's. */
6737 n = (yy_size_t) (_yybytes_len + 2);
6738 buf = (char *) yyalloc( n );
6739 if ( ! buf )
6740 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
6741
6742 for ( i = 0; i < _yybytes_len; ++i )
6743 buf[i] = yybytes[i];
6744
6745 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6746
6747 b = yy_scan_buffer( buf, n );
6748 if ( ! b )
6749 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
6750
6751 /* It's okay to grow etc. this buffer, and we should throw it
6752 * away when we're done.
6753 */
6754 b->yy_is_our_buffer = 1;
6755
6756 return b;
6757}
6758/* %endif */
6759
6760#ifndef YY_EXIT_FAILURE
6761#define YY_EXIT_FAILURE 2
6762#endif
6763
6764/* %if-c-only */
6765static void yynoreturn yy_fatal_error (const char* msg )
6766{
6767 fprintf( stderr, "%s\n", msg );
6768 exit( YY_EXIT_FAILURE );
6769}
6770/* %endif */
6771/* %if-c++-only */
6772/* %endif */
6773
6774/* Redefine yyless() so it works in section 3 code. */
6775
6776#undef yyless
6777#define yyless(n) \
6778 do \
6779 { \
6780 /* Undo effects of setting up yytext. */ \
6781 int yyless_macro_arg = (n); \
6782 YY_LESS_LINENO(yyless_macro_arg);\
6783 yytext[yyleng] = (yy_hold_char); \
6784 (yy_c_buf_p) = yytext + yyless_macro_arg; \
6785 (yy_hold_char) = *(yy_c_buf_p); \
6786 *(yy_c_buf_p) = '\0'; \
6787 yyleng = yyless_macro_arg; \
6788 } \
6789 while ( 0 )
6790
6791/* Accessor methods (get/set functions) to struct members. */
6792
6793/* %if-c-only */
6794/* %if-reentrant */
6795/* %endif */
6796
6801{
6802
6803 return yylineno;
6804}
6805
6809FILE *yyget_in (void)
6810{
6811 return yyin;
6812}
6813
6817FILE *yyget_out (void)
6818{
6819 return yyout;
6820}
6821
6825int yyget_leng (void)
6826{
6827 return yyleng;
6828}
6829
6834char *yyget_text (void)
6835{
6836 return yytext;
6837}
6838
6839/* %if-reentrant */
6840/* %endif */
6841
6846void yyset_lineno (int _line_number )
6847{
6848
6849 yylineno = _line_number;
6850}
6851
6858void yyset_in (FILE * _in_str )
6859{
6860 yyin = _in_str ;
6861}
6862
6863void yyset_out (FILE * _out_str )
6864{
6865 yyout = _out_str ;
6866}
6867
6868int yyget_debug (void)
6869{
6870 return yy_flex_debug;
6871}
6872
6873void yyset_debug (int _bdebug )
6874{
6875 yy_flex_debug = _bdebug ;
6876}
6877
6878/* %endif */
6879
6880/* %if-reentrant */
6881/* %if-bison-bridge */
6882/* %endif */
6883/* %endif if-c-only */
6884
6885/* %if-c-only */
6886static int yy_init_globals (void)
6887{
6888 /* Initialization is the same as for the non-reentrant scanner.
6889 * This function is called from yylex_destroy(), so don't allocate here.
6890 */
6891
6892 (yy_buffer_stack) = NULL;
6893 (yy_buffer_stack_top) = 0;
6894 (yy_buffer_stack_max) = 0;
6895 (yy_c_buf_p) = NULL;
6896 (yy_init) = 0;
6897 (yy_start) = 0;
6898
6899/* Defined in main.c */
6900#ifdef YY_STDINIT
6901 yyin = stdin;
6902 yyout = stdout;
6903#else
6904 yyin = NULL;
6905 yyout = NULL;
6906#endif
6907
6908 /* For future reference: Set errno on error, since we are called by
6909 * yylex_init()
6910 */
6911 return 0;
6912}
6913/* %endif */
6914
6915/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
6916/* yylex_destroy is for both reentrant and non-reentrant scanners. */
6918{
6919
6920 /* Pop the buffer stack, destroying each element. */
6921 while(YY_CURRENT_BUFFER){
6925 }
6926
6927 /* Destroy the stack itself. */
6928 yyfree((yy_buffer_stack) );
6929 (yy_buffer_stack) = NULL;
6930
6931 /* Reset the globals. This is important in a non-reentrant scanner so the next time
6932 * yylex() is called, initialization will occur. */
6933 yy_init_globals( );
6934
6935/* %if-reentrant */
6936/* %endif */
6937 return 0;
6938}
6939/* %endif */
6940
6941/*
6942 * Internal utility routines.
6943 */
6944
6945#ifndef yytext_ptr
6946static void yy_flex_strncpy (char* s1, const char * s2, int n )
6947{
6948
6949 int i;
6950 for ( i = 0; i < n; ++i )
6951 s1[i] = s2[i];
6952}
6953#endif
6954
6955#ifdef YY_NEED_STRLEN
6956static int yy_flex_strlen (const char * s )
6957{
6958 int n;
6959 for ( n = 0; s[n]; ++n )
6960 ;
6961
6962 return n;
6963}
6964#endif
6965
6966void *yyalloc (yy_size_t size )
6967{
6968 return malloc(size);
6969}
6970
6971void *yyrealloc (void * ptr, yy_size_t size )
6972{
6973
6974 /* The cast to (char *) in the following accommodates both
6975 * implementations that use char* generic pointers, and those
6976 * that use void* generic pointers. It works with the latter
6977 * because both ANSI C and C++ allow castless assignment from
6978 * any pointer type to void*, and deal with argument conversions
6979 * as though doing an assignment.
6980 */
6981 return realloc(ptr, size);
6982}
6983
6984void yyfree (void * ptr )
6985{
6986 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
6987}
6988
6989/* %if-tables-serialization definitions */
6990/* %define-yytables The name for this specific scanner's tables. */
6991#define YYTABLES_NAME "yytables"
6992/* %endif */
6993
6994/* %ok-for-header */
6995
6996#line 2594 "dhcp6_lexer.ll"
6997
6998
6999using namespace isc::dhcp;
7000
7001void
7002Parser6Context::scanStringBegin(const std::string& str, ParserType parser_type)
7003{
7004 start_token_flag = true;
7005 start_token_value = parser_type;
7006
7007 file_ = "<string>";
7008 sfile_ = 0;
7009 loc_.initialize(&file_);
7010 yy_flex_debug = trace_scanning_;
7011 YY_BUFFER_STATE buffer;
7012 buffer = parser6__scan_bytes(str.c_str(), str.size());
7013 if (!buffer) {
7014 fatal("cannot scan string");
7015 /* fatal() throws an exception so this can't be reached */
7016 }
7017}
7018
7019void
7021 const std::string& filename,
7022 ParserType parser_type)
7023{
7024 start_token_flag = true;
7025 start_token_value = parser_type;
7026
7027 file_ = filename;
7028 sfile_ = f;
7029 loc_.initialize(&file_);
7030 yy_flex_debug = trace_scanning_;
7031 YY_BUFFER_STATE buffer;
7032
7033 /* See dhcp6_lexer.cc header for available definitions */
7034 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
7035 if (!buffer) {
7036 fatal("cannot scan file " + filename);
7037 }
7038 parser6__switch_to_buffer(buffer);
7039}
7040
7041void
7043 if (sfile_)
7044 fclose(sfile_);
7045 sfile_ = 0;
7046 static_cast<void>(parser6_lex_destroy());
7047 /* Close files */
7048 while (!sfiles_.empty()) {
7049 FILE* f = sfiles_.back();
7050 if (f) {
7051 fclose(f);
7052 }
7053 sfiles_.pop_back();
7054 }
7055 /* Delete states */
7056 while (!states_.empty()) {
7057 parser6__delete_buffer(states_.back());
7058 states_.pop_back();
7059 }
7060}
7061
7062void
7063Parser6Context::includeFile(const std::string& filename) {
7064 if (states_.size() > 10) {
7065 fatal("Too many nested include.");
7066 }
7067
7068 FILE* f = fopen(filename.c_str(), "r");
7069 if (!f) {
7070 fatal("Can't open include file " + filename);
7071 }
7072 if (sfile_) {
7073 sfiles_.push_back(sfile_);
7074 }
7075 sfile_ = f;
7076 states_.push_back(YY_CURRENT_BUFFER);
7077 YY_BUFFER_STATE buffer;
7078 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
7079 if (!buffer) {
7080 fatal( "Can't scan include file " + filename);
7081 }
7082 parser6__switch_to_buffer(buffer);
7083 files_.push_back(file_);
7084 file_ = filename;
7085 locs_.push_back(loc_);
7086 loc_.initialize(&file_);
7087
7088 BEGIN(INITIAL);
7089}
7090
7091namespace {
7093class Dummy {
7094 /* cppcheck-suppress unusedPrivateFunction */
7095 void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
7096};
7097}
7098#endif /* !__clang_analyzer__ */
7099
unsigned char flex_uint8_t
short int flex_int16_t
unsigned int flex_uint32_t
#define yy_flex_debug
signed char flex_int8_t
int flex_int32_t
int yy_state_type
#define YY_CURRENT_BUFFER
#define INITIAL
#define BEGIN
unsigned short int flex_uint16_t
flex_uint8_t YY_CHAR
size_t yy_size_t
Evaluation error exception raised when trying to parse.
static symbol_type make_SUB_RESERVATION(const location_type &l)
static symbol_type make_EXCLUDED_PREFIXES(const location_type &l)
static symbol_type make_NAME(const location_type &l)
static symbol_type make_CIPHER_LIST(const location_type &l)
static symbol_type make_SUB_HOOKS_LIBRARY(const location_type &l)
static symbol_type make_WHEN_PRESENT(const location_type &l)
static symbol_type make_COMMENT(const location_type &l)
static symbol_type make_LENIENT_OPTION_PARSING(const location_type &l)
static symbol_type make_VALUE(const location_type &l)
static symbol_type make_SENDER_PORT(const location_type &l)
static symbol_type make_CODE(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_AGE(const location_type &l)
static symbol_type make_CACHE_THRESHOLD(const location_type &l)
static symbol_type make_ALLOCATOR(const location_type &l)
static symbol_type make_DHCP6(const location_type &l)
static symbol_type make_PASSWORD_FILE(const location_type &l)
static symbol_type make_DIRECTORY(const location_type &l)
static symbol_type make_HOSTS_DATABASE(const location_type &l)
static symbol_type make_DDNS_CONFLICT_RESOLUTION_MODE(const location_type &l)
static symbol_type make_SERVICE_SOCKETS_REQUIRE_ALL(const location_type &l)
static symbol_type make_USER_CONTEXT(const location_type &l)
static symbol_type make_ENTERPRISE_ID(const location_type &l)
static symbol_type make_COMMA(const location_type &l)
static symbol_type make_DHCP_DDNS(const location_type &l)
static symbol_type make_MAX_RECLAIM_TIME(const location_type &l)
static symbol_type make_SOCKET_NAME(const location_type &l)
static symbol_type make_NCR_FORMAT(const location_type &l)
static symbol_type make_RESERVATIONS_OUT_OF_POOL(const location_type &l)
static symbol_type make_NCR_PROTOCOL(const location_type &l)
static symbol_type make_HTTPS(const location_type &l)
static symbol_type make_FLOAT(const double &v, const location_type &l)
static symbol_type make_EN(const location_type &l)
static symbol_type make_ARRAY(const location_type &l)
static symbol_type make_DDNS_QUALIFYING_SUFFIX(const location_type &l)
static symbol_type make_COLON(const location_type &l)
static symbol_type make_RETRY_ON_STARTUP(const location_type &l)
static symbol_type make_SUB_DHCP6(const location_type &l)
static symbol_type make_ONLY_IN_ADDITIONAL_LIST(const location_type &l)
static symbol_type make_RE_DETECT(const location_type &l)
static symbol_type make_DELEGATED_LEN(const location_type &l)
static symbol_type make_THREAD_POOL_SIZE(const location_type &l)
static symbol_type make_INTERFACE_ID(const location_type &l)
static symbol_type make_RESERVATIONS_LOOKUP_FIRST(const location_type &l)
static symbol_type make_HOSTNAME(const location_type &l)
static symbol_type make_DATA_DIRECTORY(const location_type &l)
static symbol_type make_MAX_QUEUE_SIZE(const location_type &l)
static symbol_type make_SUB_POOL6(const location_type &l)
static symbol_type make_SUB_DHCP_DDNS(const location_type &l)
static symbol_type make_SUB_CONFIG_CONTROL(const location_type &l)
static symbol_type make_DDNS_SEND_UPDATES(const location_type &l)
static symbol_type make_IP_ADDRESSES(const location_type &l)
static symbol_type make_EVALUATE_ADDITIONAL_CLASSES(const location_type &l)
static symbol_type make_POOLS(const location_type &l)
static symbol_type make_PREFIX(const location_type &l)
static symbol_type make_ID(const location_type &l)
static symbol_type make_MAXVER(const location_type &l)
static symbol_type make_RESERVATIONS(const location_type &l)
static symbol_type make_DATA(const location_type &l)
static symbol_type make_INTERFACES(const location_type &l)
static symbol_type make_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_SERVER_IP(const location_type &l)
static symbol_type make_PATTERN(const location_type &l)
static symbol_type make_MAXSIZE(const location_type &l)
static symbol_type make_POOL_ID(const location_type &l)
static symbol_type make_HOST_RESERVATION_IDENTIFIERS(const location_type &l)
static symbol_type make_OPTION_DATA(const location_type &l)
static symbol_type make_SUBNET6(const location_type &l)
static symbol_type make_PD_POOLS(const location_type &l)
static symbol_type make_RCURLY_BRACKET(const location_type &l)
static symbol_type make_TEMPLATE_TEST(const location_type &l)
static symbol_type make_MAX_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_TRUST_ANCHOR(const location_type &l)
static symbol_type make_PORT(const location_type &l)
static symbol_type make_AUTHENTICATION(const location_type &l)
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_ENABLE_UPDATES(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_REPLACEMENT(const location_type &l)
static symbol_type make_NULL_TYPE(const location_type &l)
static symbol_type make_MAX_RECONNECT_TRIES(const location_type &l)
static symbol_type make_MAX_VALID_LIFETIME(const location_type &l)
static symbol_type make_TIME(const location_type &l)
static symbol_type make_SOCKET_TYPE(const location_type &l)
static symbol_type make_CHECK_WITH_DHCID(const location_type &l)
static symbol_type make_SUB_INTERFACES6(const location_type &l)
static symbol_type make_JSON(const location_type &l)
static symbol_type make_MIN_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_LLT(const location_type &l)
static symbol_type make_READ_TIMEOUT(const location_type &l)
static symbol_type make_CERT_FILE(const location_type &l)
static symbol_type make_HTTP(const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
static symbol_type make_FLEX_ID(const location_type &l)
static symbol_type make_REQUIRE_CLIENT_CLASSES(const location_type &l)
static symbol_type make_DDNS_TTL(const location_type &l)
static symbol_type make_SERVER_PORT(const location_type &l)
static symbol_type make_ONLY_IF_REQUIRED(const location_type &l)
static symbol_type make_SHARED_NETWORKS(const location_type &l)
static symbol_type make_DDNS_REPLACE_CLIENT_NAME(const location_type &l)
static symbol_type make_HTTP_HEADERS(const location_type &l)
static symbol_type make_USER_FILE(const location_type &l)
static symbol_type make_SUB_OPTION_DATA(const location_type &l)
static symbol_type make_OPTION_DEF(const location_type &l)
static symbol_type make_TCP_USER_TIMEOUT(const location_type &l)
static symbol_type make_UNIX(const location_type &l)
static symbol_type make_DDNS_GENERATED_PREFIX(const location_type &l)
static symbol_type make_ALWAYS_SEND(const location_type &l)
static symbol_type make_CLIENT_CLASS(const location_type &l)
static symbol_type make_NEVER_SEND(const location_type &l)
static symbol_type make_IP_RESERVATIONS_UNIQUE(const location_type &l)
static symbol_type make_PARKED_PACKET_LIMIT(const location_type &l)
static symbol_type make_LFC_INTERVAL(const location_type &l)
static symbol_type make_USER(const location_type &l)
static symbol_type make_SUBNET(const location_type &l)
static symbol_type make_RECORD_TYPES(const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
static symbol_type make_RECONNECT_WAIT_TIME(const location_type &l)
static symbol_type make_SUB_SUBNET6(const location_type &l)
static symbol_type make_EXPIRED_LEASES_PROCESSING(const location_type &l)
static symbol_type make_EXCLUDED_PREFIX(const location_type &l)
static symbol_type make_ALWAYS(const location_type &l)
static symbol_type make_HOSTS_DATABASES(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
static symbol_type make_DDNS_USE_CONFLICT_RESOLUTION(const location_type &l)
static symbol_type make_DDNS_UPDATE_ON_RENEW(const location_type &l)
static symbol_type make_SANITY_CHECKS(const location_type &l)
static symbol_type make_SOCKET_PORT(const location_type &l)
static symbol_type make_REALM(const location_type &l)
static symbol_type make_ENABLE_MULTI_THREADING(const location_type &l)
static symbol_type make_PERSIST(const location_type &l)
static symbol_type make_LEASE_DATABASE(const location_type &l)
static symbol_type make_INTERFACES_CONFIG(const location_type &l)
static symbol_type make_HTYPE(const location_type &l)
static symbol_type make_FLUSH_RECLAIMED_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_CONFIG_FETCH_WAIT_TIME(const location_type &l)
static symbol_type make_OUTPUT_OPTIONS(const location_type &l)
static symbol_type make_STORE_EXTENDED_INFO(const location_type &l)
static symbol_type make_CLIENT_CLASSES(const location_type &l)
static symbol_type make_PREFIX_LEN(const location_type &l)
static symbol_type make_RSQUARE_BRACKET(const location_type &l)
static symbol_type make_END(const location_type &l)
static symbol_type make_IDENTIFIER(const location_type &l)
static symbol_type make_CACHE_MAX_AGE(const location_type &l)
static symbol_type make_READONLY(const location_type &l)
static symbol_type make_PASSWORD(const location_type &l)
static symbol_type make_LEASE_CHECKS(const location_type &l)
static symbol_type make_FLUSH(const location_type &l)
static symbol_type make_MIN_VALID_LIFETIME(const location_type &l)
static symbol_type make_T2_PERCENT(const location_type &l)
static symbol_type make_UNWARNED_RECLAIM_CYCLES(const location_type &l)
static symbol_type make_DEBUGLEVEL(const location_type &l)
static symbol_type make_BASIC(const location_type &l)
static symbol_type make_HOOKS_LIBRARIES(const location_type &l)
static symbol_type make_TCP(const location_type &l)
static symbol_type make_POOL(const location_type &l)
static symbol_type make_SERVICE_SOCKETS_RETRY_WAIT_TIME(const location_type &l)
static symbol_type make_LL(const location_type &l)
static symbol_type make_WHEN_NOT_PRESENT(const location_type &l)
static symbol_type make_SERVE_RETRY_EXIT(const location_type &l)
static symbol_type make_INTERFACE(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_CLIENT_UPDATE(const location_type &l)
static symbol_type make_SERVE_RETRY_CONTINUE(const location_type &l)
static symbol_type make_ENABLE_QUEUE(const location_type &l)
static symbol_type make_STOP_RETRY_EXIT(const location_type &l)
static symbol_type make_CONFIG_DATABASES(const location_type &l)
static symbol_type make_DHCP_QUEUE_CONTROL(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_COUNT(const location_type &l)
static symbol_type make_CALCULATE_TEE_TIMES(const location_type &l)
static symbol_type make_CAPACITY(const location_type &l)
static symbol_type make_RECLAIM_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_SUB_OPTION_DEF(const location_type &l)
static symbol_type make_DHCP_MULTI_THREADING(const location_type &l)
static symbol_type make_EARLY_GLOBAL_RESERVATIONS_LOOKUP(const location_type &l)
static symbol_type make_CLIENTS(const location_type &l)
static symbol_type make_SUB_PD_POOL(const location_type &l)
static symbol_type make_T1_PERCENT(const location_type &l)
static symbol_type make_DDNS_TTL_MIN(const location_type &l)
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
static symbol_type make_DDNS_TTL_MAX(const location_type &l)
static symbol_type make_UDP(const location_type &l)
static symbol_type make_CHECK_EXISTS_WITH_DHCID(const location_type &l)
static symbol_type make_KEY_FILE(const location_type &l)
static symbol_type make_QUEUE_TYPE(const location_type &l)
static symbol_type make_CERT_REQUIRED(const location_type &l)
static symbol_type make_TOPLEVEL_DHCP6(const location_type &l)
static symbol_type make_SERVER_ID(const location_type &l)
static symbol_type make_RELAY(const location_type &l)
static symbol_type make_HOLD_RECLAIMED_TIME(const location_type &l)
static symbol_type make_RELAY_SUPPLIED_OPTIONS(const location_type &l)
static symbol_type make_COMPATIBILITY(const location_type &l)
static symbol_type make_SUB_OPTION_DEFS(const location_type &l)
static symbol_type make_PD_ALLOCATOR(const location_type &l)
static symbol_type make_CONTROL_SOCKET(const location_type &l)
static symbol_type make_NO_CHECK_WITH_DHCID(const location_type &l)
static symbol_type make_SOCKET_ADDRESS(const location_type &l)
static symbol_type make_WRITE_TIMEOUT(const location_type &l)
static symbol_type make_TYPE(const location_type &l)
static symbol_type make_DDNS_TTL_PERCENT(const location_type &l)
static symbol_type make_EXTENDED_INFO_CHECKS(const location_type &l)
static symbol_type make_CONNECT_TIMEOUT(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_LOGGERS(const location_type &l)
static symbol_type make_PACKET_QUEUE_SIZE(const location_type &l)
static symbol_type make_RESERVATIONS_IN_SUBNET(const location_type &l)
static symbol_type make_REBIND_TIMER(const location_type &l)
static symbol_type make_NO_CHECK_WITHOUT_DHCID(const location_type &l)
static symbol_type make_CONFIG_CONTROL(const location_type &l)
static symbol_type make_PREFIXES(const location_type &l)
static symbol_type make_CSV_FORMAT(const location_type &l)
static symbol_type make_MAC_SOURCES(const location_type &l)
static symbol_type make_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_CONTROL_SOCKETS(const location_type &l)
static symbol_type make_SPACE(const location_type &l)
static symbol_type make_TOPLEVEL_JSON(const location_type &l)
static symbol_type make_EXCLUDED_PREFIX_LEN(const location_type &l)
static symbol_type make_HW_ADDRESS(const location_type &l)
static symbol_type make_RENEW_TIMER(const location_type &l)
static symbol_type make_MAX_ROW_ERRORS(const location_type &l)
static symbol_type make_NEVER(const location_type &l)
static symbol_type make_BOOLEAN(const bool &v, const location_type &l)
static symbol_type make_ENCAPSULATE(const location_type &l)
static symbol_type make_RESERVATIONS_GLOBAL(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_SET(const location_type &l)
static symbol_type make_SERVER_TAG(const location_type &l)
static symbol_type make_OUTPUT(const location_type &l)
static symbol_type make_SEVERITY(const location_type &l)
std::vector< isc::dhcp::location > locs_
Location stack.
isc::dhcp::location loc_
Location of the current token.
void includeFile(const std::string &filename)
Divert input to an include file.
FILE * sfile_
sFile (aka FILE)
void scanStringBegin(const std::string &str, ParserType type)
Method called before scanning starts on a string.
std::vector< std::string > files_
File name stack.
@ LOGGERS
Used while parsing Dhcp6/loggers structures.
@ CLIENT_CLASSES
Used while parsing Dhcp6/client-classes structures.
@ DATABASE_ON_FAIL
Used while parsing Dhcp6/*-database/on-fail.
@ OPTION_DEF
Used while parsing Dhcp6/option-def structures.
@ POOLS
Used while parsing Dhcp6/subnet6/pools structures.
@ AUTHENTICATION
Used while parsing Dhcp6/control-socket/authentication structures.
@ EXPIRED_LEASES_PROCESSING
Used while parsing Dhcp6/expired-leases-processing.
@ OPTION_DATA
Used while parsing Dhcp6/option-data, Dhcp6/subnet6/option-data or anywhere option-data is present (c...
@ CONTROL_SOCKET
Used while parsing Dhcp6/control-socket structures.
@ DHCP_QUEUE_CONTROL
Used while parsing Dhcp6/dhcp-queue-control structures.
@ SERVER_ID
Used while parsing Dhcp6/server-id structures.
@ HOSTS_DATABASE
Used while parsing Dhcp6/hosts-database[s] structures.
@ SUBNET6
Used while parsing Dhcp6/Subnet6 structures.
@ RESERVATIONS
Used while parsing Dhcp6/reservations structures.
@ CONFIG_DATABASE
Used while parsing config-control/config-databases.
@ AUTH_TYPE
Used while parsing Dhcp6/control-socket/authentication/type structures.
@ DHCP_DDNS
Used while parsing Dhcp6/dhcp-ddns.
@ COMPATIBILITY
Used while parsing compatibility parameters.
@ INTERFACES_CONFIG
Used while parsing Dhcp6/interfaces structures.
@ DUID_TYPE
Used while parsing Dhcp6/server-id/type structures.
@ HOOKS_LIBRARIES
Used while parsing Dhcp6/hooks-libraries.
@ CONFIG
Used while parsing content of Dhcp6.
@ DDNS_CONFLICT_RESOLUTION_MODE
Used while parsing Dhcp6/ddns-conflict-resolution-mode.
@ LEASE_DATABASE
Used while parsing Dhcp6/lease-database structures.
@ CLIENTS
Used while parsing Dhcp6/control-socket/authentication/clients structures.
@ NCR_PROTOCOL
Used while parsing Dhcp6/dhcp-ddns/ncr-protocol.
@ RELAY
Used while parsing Dhcp6/subnet6/relay structures.
@ OUTPUT_OPTIONS
Used while parsing Dhcp6/loggers/output-options structures.
@ HOST_RESERVATION_IDENTIFIERS
Used while parsing Dhcp6/host-reservation-identifiers.
@ NCR_FORMAT
Used while parsing Dhcp6/dhcp-ddns/ncr-format.
@ REPLACE_CLIENT_NAME
Used while parsing Dhcp6/dhcp-ddns/replace-client-name.
@ DHCP_MULTI_THREADING
Used while parsing Dhcp6/multi-threading structures.
@ SHARED_NETWORK
Used while parsing shared-networks structures.
@ CONTROL_SOCKET_TYPE
Used while parsing Dhcp6/control-socket/socket-type structures.
@ PD_POOLS
Used while parsing Dhcp6/subnet6/pd-pools structures.
@ MAC_SOURCES
Used while parsing Dhcp6/mac-sources structures.
@ CONFIG_CONTROL
Used while parsing Dhcp6/config-control.
void scanEnd()
Method called after the last tokens are scanned.
void scanFileBegin(FILE *f, const std::string &filename, ParserType type)
Method called before scanning starts on a file.
ParserType
Defines currently supported scopes.
@ PARSER_PD_POOL
This will parse the input as pd-pool content.
@ PARSER_DHCP6
This parser will parse the content as Dhcp6 config wrapped in a map (that's the regular config file)
@ PARSER_OPTION_DATA
This will parse the input as option data.
@ PARSER_HOOKS_LIBRARY
This will parse the input as hooks-library.
@ PARSER_POOL6
This will parse the input as pool6 content.
@ PARSER_JSON
This parser will parse the content as generic JSON.
@ PARSER_OPTION_DEF
This will parse the input as option definition.
@ PARSER_INTERFACES
This will parse the input as interfaces content.
@ PARSER_DHCP_DDNS
This will parse the input as dhcp-ddns. (D2 client config)
@ PARSER_CONFIG_CONTROL
This will parse the input as config-control.
@ PARSER_HOST_RESERVATION
This will parse the input as host-reservation.
@ PARSER_OPTION_DEFS
This will parse the input option definitions (for tests).
@ PARSER_SUBNET6
This will parse the input as Subnet6 content.
@ SUBPARSER_DHCP6
This parser will parse the content of Dhcp6 (without outer { } and without "Dhcp6").
std::vector< FILE * > sfiles_
sFile (aka FILE) stack
std::vector< struct yy_buffer_state * > states_
Lexer state stack.
#define yy_load_buffer_state
#define YY_NEW_FILE
#define yyset_extra
#define yytext
#define yyset_lineno
#define COMMENT
#define yyrestart
#define yyset_debug
#define YY_EXTRA_TYPE
#define DIR_INCLUDE
#define yy_flex_debug
#define yy_scan_bytes
#define YY_BREAK
#define yynoreturn
#define yyget_debug
int yy_act
#define yypush_buffer_state
#define yyget_in
Get the input stream.
struct yy_buffer_state * YY_BUFFER_STATE
#define yyfree
#define yyout
#define YY_BUFFER_NEW
#define yylex
#define YY_RESTORE_YY_MORE_OFFSET
#define yyget_leng
Get the length of the current token.
#define yywrap
#define yyget_out
Get the output stream.
#define YY_BUFFER_NORMAL
char * yy_cp
#define yyensure_buffer_stack
#define yy_scan_buffer
#define YY_MORE_ADJ
#define YY_RULE_SETUP
#define yy_scan_string
#define DIR_EXIT
#define yytext_ptr
#define EOB_ACT_END_OF_FILE
#define yyalloc
#define YY_CURRENT_BUFFER_LVALUE
#define yylex_destroy
#define YY_START
#define yyget_text
Get the current token.
#define yy_switch_to_buffer
#define YY_CURRENT_BUFFER
#define yy_init_buffer
#define INITIAL
#define yyget_extra
char * yy_bp
#define yyin
#define YY_READ_BUF_SIZE
#define YY_INPUT(buf, result, max_size)
#define ECHO
#define yy_flush_buffer
#define yyrealloc
#define YY_END_OF_BUFFER
#define YY_STATE_EOF(state)
#define BEGIN
#define YY_END_OF_BUFFER_CHAR
#define YY_FATAL_ERROR(msg)
#define yypop_buffer_state
Removes and deletes the top of the stack, if present.
#define yy_create_buffer
#define YY_DO_BEFORE_ACTION
#define yy_delete_buffer
#define EOB_ACT_LAST_MATCH
#define YY_BUFFER_EOF_PENDING
#define yylineno
#define yyset_out
#define EOB_ACT_CONTINUE_SCAN
#define yyget_lineno
Get the current line number.
#define YY_DECL
#define YY_BUF_SIZE
#define YY_EXIT_FAILURE
#define YY_SC_TO_UI(c)
#define DIR_ENTER
#define yyleng
#define yyset_in
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
@ fatal
Definition db_log.h:117
int yy_bs_column
The column count.
int yy_bs_lineno
The line count.
flex_int32_t yy_verify
flex_int32_t yy_nxt