Kea 3.1.0
dhcp6_lexer.cc
Go to the documentation of this file.
1#line 1 "dhcp6_lexer.cc"
2
3#line 3 "dhcp6_lexer.cc"
4
5#define YY_INT_ALIGNED short int
6
7/* A lexical scanner generated by flex */
8
9/* %not-for-header */
10/* %if-c-only */
11/* %if-not-reentrant */
12#define yy_create_buffer parser6__create_buffer
13#define yy_delete_buffer parser6__delete_buffer
14#define yy_scan_buffer parser6__scan_buffer
15#define yy_scan_string parser6__scan_string
16#define yy_scan_bytes parser6__scan_bytes
17#define yy_init_buffer parser6__init_buffer
18#define yy_flush_buffer parser6__flush_buffer
19#define yy_load_buffer_state parser6__load_buffer_state
20#define yy_switch_to_buffer parser6__switch_to_buffer
21#define yypush_buffer_state parser6_push_buffer_state
22#define yypop_buffer_state parser6_pop_buffer_state
23#define yyensure_buffer_stack parser6_ensure_buffer_stack
24#define yy_flex_debug parser6__flex_debug
25#define yyin parser6_in
26#define yyleng parser6_leng
27#define yylex parser6_lex
28#define yylineno parser6_lineno
29#define yyout parser6_out
30#define yyrestart parser6_restart
31#define yytext parser6_text
32#define yywrap parser6_wrap
33#define yyalloc parser6_alloc
34#define yyrealloc parser6_realloc
35#define yyfree parser6_free
36
37/* %endif */
38/* %endif */
39/* %ok-for-header */
40
41#define FLEX_SCANNER
42#define YY_FLEX_MAJOR_VERSION 2
43#define YY_FLEX_MINOR_VERSION 6
44#define YY_FLEX_SUBMINOR_VERSION 4
45#if YY_FLEX_SUBMINOR_VERSION > 0
46#define FLEX_BETA
47#endif
48
49/* %if-c++-only */
50/* %endif */
51
52/* %if-c-only */
53#ifdef yy_create_buffer
54#define parser6__create_buffer_ALREADY_DEFINED
55#else
56#define yy_create_buffer parser6__create_buffer
57#endif
58
59#ifdef yy_delete_buffer
60#define parser6__delete_buffer_ALREADY_DEFINED
61#else
62#define yy_delete_buffer parser6__delete_buffer
63#endif
64
65#ifdef yy_scan_buffer
66#define parser6__scan_buffer_ALREADY_DEFINED
67#else
68#define yy_scan_buffer parser6__scan_buffer
69#endif
70
71#ifdef yy_scan_string
72#define parser6__scan_string_ALREADY_DEFINED
73#else
74#define yy_scan_string parser6__scan_string
75#endif
76
77#ifdef yy_scan_bytes
78#define parser6__scan_bytes_ALREADY_DEFINED
79#else
80#define yy_scan_bytes parser6__scan_bytes
81#endif
82
83#ifdef yy_init_buffer
84#define parser6__init_buffer_ALREADY_DEFINED
85#else
86#define yy_init_buffer parser6__init_buffer
87#endif
88
89#ifdef yy_flush_buffer
90#define parser6__flush_buffer_ALREADY_DEFINED
91#else
92#define yy_flush_buffer parser6__flush_buffer
93#endif
94
95#ifdef yy_load_buffer_state
96#define parser6__load_buffer_state_ALREADY_DEFINED
97#else
98#define yy_load_buffer_state parser6__load_buffer_state
99#endif
100
101#ifdef yy_switch_to_buffer
102#define parser6__switch_to_buffer_ALREADY_DEFINED
103#else
104#define yy_switch_to_buffer parser6__switch_to_buffer
105#endif
106
107#ifdef yypush_buffer_state
108#define parser6_push_buffer_state_ALREADY_DEFINED
109#else
110#define yypush_buffer_state parser6_push_buffer_state
111#endif
112
113#ifdef yypop_buffer_state
114#define parser6_pop_buffer_state_ALREADY_DEFINED
115#else
116#define yypop_buffer_state parser6_pop_buffer_state
117#endif
118
119#ifdef yyensure_buffer_stack
120#define parser6_ensure_buffer_stack_ALREADY_DEFINED
121#else
122#define yyensure_buffer_stack parser6_ensure_buffer_stack
123#endif
124
125#ifdef yylex
126#define parser6_lex_ALREADY_DEFINED
127#else
128#define yylex parser6_lex
129#endif
130
131#ifdef yyrestart
132#define parser6_restart_ALREADY_DEFINED
133#else
134#define yyrestart parser6_restart
135#endif
136
137#ifdef yylex_init
138#define parser6_lex_init_ALREADY_DEFINED
139#else
140#define yylex_init parser6_lex_init
141#endif
142
143#ifdef yylex_init_extra
144#define parser6_lex_init_extra_ALREADY_DEFINED
145#else
146#define yylex_init_extra parser6_lex_init_extra
147#endif
148
149#ifdef yylex_destroy
150#define parser6_lex_destroy_ALREADY_DEFINED
151#else
152#define yylex_destroy parser6_lex_destroy
153#endif
154
155#ifdef yyget_debug
156#define parser6_get_debug_ALREADY_DEFINED
157#else
158#define yyget_debug parser6_get_debug
159#endif
160
161#ifdef yyset_debug
162#define parser6_set_debug_ALREADY_DEFINED
163#else
164#define yyset_debug parser6_set_debug
165#endif
166
167#ifdef yyget_extra
168#define parser6_get_extra_ALREADY_DEFINED
169#else
170#define yyget_extra parser6_get_extra
171#endif
172
173#ifdef yyset_extra
174#define parser6_set_extra_ALREADY_DEFINED
175#else
176#define yyset_extra parser6_set_extra
177#endif
178
179#ifdef yyget_in
180#define parser6_get_in_ALREADY_DEFINED
181#else
182#define yyget_in parser6_get_in
183#endif
184
185#ifdef yyset_in
186#define parser6_set_in_ALREADY_DEFINED
187#else
188#define yyset_in parser6_set_in
189#endif
190
191#ifdef yyget_out
192#define parser6_get_out_ALREADY_DEFINED
193#else
194#define yyget_out parser6_get_out
195#endif
196
197#ifdef yyset_out
198#define parser6_set_out_ALREADY_DEFINED
199#else
200#define yyset_out parser6_set_out
201#endif
202
203#ifdef yyget_leng
204#define parser6_get_leng_ALREADY_DEFINED
205#else
206#define yyget_leng parser6_get_leng
207#endif
208
209#ifdef yyget_text
210#define parser6_get_text_ALREADY_DEFINED
211#else
212#define yyget_text parser6_get_text
213#endif
214
215#ifdef yyget_lineno
216#define parser6_get_lineno_ALREADY_DEFINED
217#else
218#define yyget_lineno parser6_get_lineno
219#endif
220
221#ifdef yyset_lineno
222#define parser6_set_lineno_ALREADY_DEFINED
223#else
224#define yyset_lineno parser6_set_lineno
225#endif
226
227#ifdef yywrap
228#define parser6_wrap_ALREADY_DEFINED
229#else
230#define yywrap parser6_wrap
231#endif
232
233/* %endif */
234
235#ifdef yyalloc
236#define parser6_alloc_ALREADY_DEFINED
237#else
238#define yyalloc parser6_alloc
239#endif
240
241#ifdef yyrealloc
242#define parser6_realloc_ALREADY_DEFINED
243#else
244#define yyrealloc parser6_realloc
245#endif
246
247#ifdef yyfree
248#define parser6_free_ALREADY_DEFINED
249#else
250#define yyfree parser6_free
251#endif
252
253/* %if-c-only */
254
255#ifdef yytext
256#define parser6_text_ALREADY_DEFINED
257#else
258#define yytext parser6_text
259#endif
260
261#ifdef yyleng
262#define parser6_leng_ALREADY_DEFINED
263#else
264#define yyleng parser6_leng
265#endif
266
267#ifdef yyin
268#define parser6_in_ALREADY_DEFINED
269#else
270#define yyin parser6_in
271#endif
272
273#ifdef yyout
274#define parser6_out_ALREADY_DEFINED
275#else
276#define yyout parser6_out
277#endif
278
279#ifdef yy_flex_debug
280#define parser6__flex_debug_ALREADY_DEFINED
281#else
282#define yy_flex_debug parser6__flex_debug
283#endif
284
285#ifdef yylineno
286#define parser6_lineno_ALREADY_DEFINED
287#else
288#define yylineno parser6_lineno
289#endif
290
291/* %endif */
292
293/* First, we deal with platform-specific or compiler-specific issues. */
294
295/* begin standard C headers. */
296/* %if-c-only */
297#include <stdio.h>
298#include <string.h>
299#include <errno.h>
300#include <stdlib.h>
301/* %endif */
302
303/* %if-tables-serialization */
304/* %endif */
305/* end standard C headers. */
306
307/* %if-c-or-c++ */
308/* flex integer type definitions */
309
310#ifndef FLEXINT_H
311#define FLEXINT_H
312
313/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
314
315#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
316
317/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
318 * if you want the limit (max/min) macros for int types.
319 */
320#ifndef __STDC_LIMIT_MACROS
321#define __STDC_LIMIT_MACROS 1
322#endif
323
324#include <inttypes.h>
325typedef int8_t flex_int8_t;
326typedef uint8_t flex_uint8_t;
327typedef int16_t flex_int16_t;
328typedef uint16_t flex_uint16_t;
329typedef int32_t flex_int32_t;
330typedef uint32_t flex_uint32_t;
331#else
332typedef signed char flex_int8_t;
333typedef short int flex_int16_t;
334typedef int flex_int32_t;
335typedef unsigned char flex_uint8_t;
336typedef unsigned short int flex_uint16_t;
337typedef unsigned int flex_uint32_t;
338
339/* Limits of integral types. */
340#ifndef INT8_MIN
341#define INT8_MIN (-128)
342#endif
343#ifndef INT16_MIN
344#define INT16_MIN (-32767-1)
345#endif
346#ifndef INT32_MIN
347#define INT32_MIN (-2147483647-1)
348#endif
349#ifndef INT8_MAX
350#define INT8_MAX (127)
351#endif
352#ifndef INT16_MAX
353#define INT16_MAX (32767)
354#endif
355#ifndef INT32_MAX
356#define INT32_MAX (2147483647)
357#endif
358#ifndef UINT8_MAX
359#define UINT8_MAX (255U)
360#endif
361#ifndef UINT16_MAX
362#define UINT16_MAX (65535U)
363#endif
364#ifndef UINT32_MAX
365#define UINT32_MAX (4294967295U)
366#endif
367
368#ifndef SIZE_MAX
369#define SIZE_MAX (~(size_t)0)
370#endif
371
372#endif /* ! C99 */
373
374#endif /* ! FLEXINT_H */
375
376/* %endif */
377
378/* begin standard C++ headers. */
379/* %if-c++-only */
380/* %endif */
381
382/* TODO: this is always defined, so inline it */
383#define yyconst const
384
385#if defined(__GNUC__) && __GNUC__ >= 3
386#define yynoreturn __attribute__((__noreturn__))
387#else
388#define yynoreturn
389#endif
390
391/* %not-for-header */
392/* Returned upon end-of-file. */
393#define YY_NULL 0
394/* %ok-for-header */
395
396/* %not-for-header */
397/* Promotes a possibly negative, possibly signed char to an
398 * integer in range [0..255] for use as an array index.
399 */
400#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
401/* %ok-for-header */
402
403/* %if-reentrant */
404/* %endif */
405
406/* %if-not-reentrant */
407
408/* %endif */
409
410/* Enter a start condition. This macro really ought to take a parameter,
411 * but we do it the disgusting crufty way forced on us by the ()-less
412 * definition of BEGIN.
413 */
414#define BEGIN (yy_start) = 1 + 2 *
415/* Translate the current start state into a value that can be later handed
416 * to BEGIN to return to the state. The YYSTATE alias is for lex
417 * compatibility.
418 */
419#define YY_START (((yy_start) - 1) / 2)
420#define YYSTATE YY_START
421/* Action number for EOF rule of a given start state. */
422#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
423/* Special action meaning "start processing a new file". */
424#define YY_NEW_FILE yyrestart( yyin )
425#define YY_END_OF_BUFFER_CHAR 0
426
427/* Size of default input buffer. */
428#ifndef YY_BUF_SIZE
429#ifdef __ia64__
430/* On IA-64, the buffer size is 16k, not 8k.
431 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
432 * Ditto for the __ia64__ case accordingly.
433 */
434#define YY_BUF_SIZE 32768
435#else
436#define YY_BUF_SIZE 16384
437#endif /* __ia64__ */
438#endif
439
440/* The state buf must be large enough to hold one state per character in the main buffer.
441 */
442#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
443
444#ifndef YY_TYPEDEF_YY_BUFFER_STATE
445#define YY_TYPEDEF_YY_BUFFER_STATE
447#endif
448
449#ifndef YY_TYPEDEF_YY_SIZE_T
450#define YY_TYPEDEF_YY_SIZE_T
451typedef size_t yy_size_t;
452#endif
453
454/* %if-not-reentrant */
455extern int yyleng;
456/* %endif */
457
458/* %if-c-only */
459/* %if-not-reentrant */
460extern FILE *yyin, *yyout;
461/* %endif */
462/* %endif */
463
464#define EOB_ACT_CONTINUE_SCAN 0
465#define EOB_ACT_END_OF_FILE 1
466#define EOB_ACT_LAST_MATCH 2
467
468 #define YY_LESS_LINENO(n)
469 #define YY_LINENO_REWIND_TO(ptr)
470
471/* Return all but the first "n" matched characters back to the input stream. */
472#define yyless(n) \
473 do \
474 { \
475 /* Undo effects of setting up yytext. */ \
476 int yyless_macro_arg = (n); \
477 YY_LESS_LINENO(yyless_macro_arg);\
478 *yy_cp = (yy_hold_char); \
479 YY_RESTORE_YY_MORE_OFFSET \
480 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
481 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
482 } \
483 while ( 0 )
484#define unput(c) yyunput( c, (yytext_ptr) )
485
486#ifndef YY_STRUCT_YY_BUFFER_STATE
487#define YY_STRUCT_YY_BUFFER_STATE
488struct yy_buffer_state
489 {
490/* %if-c-only */
491 FILE *yy_input_file;
492/* %endif */
493
494/* %if-c++-only */
495/* %endif */
496
497 char *yy_ch_buf; /* input buffer */
498 char *yy_buf_pos; /* current position in input buffer */
499
500 /* Size of input buffer in bytes, not including room for EOB
501 * characters.
502 */
503 int yy_buf_size;
504
505 /* Number of characters read into yy_ch_buf, not including EOB
506 * characters.
507 */
508 int yy_n_chars;
509
510 /* Whether we "own" the buffer - i.e., we know we created it,
511 * and can realloc() it to grow it, and should free() it to
512 * delete it.
513 */
515
516 /* Whether this is an "interactive" input source; if so, and
517 * if we're using stdio for input, then we want to use getc()
518 * instead of fread(), to make sure we stop fetching input after
519 * each newline.
520 */
522
523 /* Whether we're considered to be at the beginning of a line.
524 * If so, '^' rules will be active on the next match, otherwise
525 * not.
526 */
527 int yy_at_bol;
528
529 int yy_bs_lineno;
530 int yy_bs_column;
531
532 /* Whether to try to fill the input buffer when we reach the
533 * end of it.
534 */
535 int yy_fill_buffer;
536
538
539#define YY_BUFFER_NEW 0
540#define YY_BUFFER_NORMAL 1
541 /* When an EOF's been seen but there's still some text to process
542 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
543 * shouldn't try reading from the input source any more. We might
544 * still have a bunch of tokens to match, though, because of
545 * possible backing-up.
546 *
547 * When we actually see the EOF, we change the status to "new"
548 * (via yyrestart()), so that the user can continue scanning by
549 * just pointing yyin at a new input file.
550 */
551#define YY_BUFFER_EOF_PENDING 2
552
553 };
554#endif /* !YY_STRUCT_YY_BUFFER_STATE */
555
556/* %if-c-only Standard (non-C++) definition */
557/* %not-for-header */
558/* %if-not-reentrant */
559
560/* Stack of input buffers. */
561static size_t yy_buffer_stack_top = 0;
562static size_t yy_buffer_stack_max = 0;
563static YY_BUFFER_STATE * yy_buffer_stack = NULL;
564/* %endif */
565/* %ok-for-header */
566
567/* %endif */
568
569/* We provide macros for accessing buffer states in case in the
570 * future we want to put the buffer states in a more general
571 * "scanner state".
572 *
573 * Returns the top of the stack, or NULL.
574 */
575#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
576 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
577 : NULL)
578/* Same as previous macro, but useful when we know that the buffer stack is not
579 * NULL or when we need an lvalue. For internal use only.
580 */
581#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
582
583/* %if-c-only Standard (non-C++) definition */
584
585/* %if-not-reentrant */
586/* %not-for-header */
587/* yy_hold_char holds the character lost when yytext is formed. */
588static char yy_hold_char;
589static int yy_n_chars; /* number of characters read into yy_ch_buf */
591
592/* Points to current character in buffer. */
593static char *yy_c_buf_p = NULL;
594static int yy_init = 0; /* whether we need to initialize */
595static int yy_start = 0; /* start state number */
596
597/* Flag which is used to allow yywrap()'s to do buffer switches
598 * instead of setting up a fresh yyin. A bit of a hack ...
599 */
600static int yy_did_buffer_switch_on_eof;
601/* %ok-for-header */
602
603/* %endif */
604
605void yyrestart ( FILE *input_file );
606void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
607YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
610void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
611void yypop_buffer_state ( void );
612
613static void yyensure_buffer_stack ( void );
614static void yy_load_buffer_state ( void );
615static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
616#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
617
618YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
619YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
620YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
621
622/* %endif */
623
624void *yyalloc ( yy_size_t );
625void *yyrealloc ( void *, yy_size_t );
626void yyfree ( void * );
627
628#define yy_new_buffer yy_create_buffer
629#define yy_set_interactive(is_interactive) \
630 { \
631 if ( ! YY_CURRENT_BUFFER ){ \
632 yyensure_buffer_stack (); \
633 YY_CURRENT_BUFFER_LVALUE = \
634 yy_create_buffer( yyin, YY_BUF_SIZE ); \
635 } \
636 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
637 }
638#define yy_set_bol(at_bol) \
639 { \
640 if ( ! YY_CURRENT_BUFFER ){\
641 yyensure_buffer_stack (); \
642 YY_CURRENT_BUFFER_LVALUE = \
643 yy_create_buffer( yyin, YY_BUF_SIZE ); \
644 } \
645 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
646 }
647#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
648
649/* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
650/* Begin user sect3 */
651
652#define parser6_wrap() (/*CONSTCOND*/1)
653#define YY_SKIP_YYWRAP
654
655#define FLEX_DEBUG
656typedef flex_uint8_t YY_CHAR;
657
658FILE *yyin = NULL, *yyout = NULL;
659
660typedef int yy_state_type;
661
662extern int yylineno;
663int yylineno = 1;
664
665extern char *yytext;
666#ifdef yytext_ptr
667#undef yytext_ptr
668#endif
669#define yytext_ptr yytext
670
671/* %% [1.5] DFA */
672
673/* %if-c-only Standard (non-C++) definition */
674
675static yy_state_type yy_get_previous_state ( void );
676static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
677static int yy_get_next_buffer ( void );
678static void yynoreturn yy_fatal_error ( const char* msg );
679
680/* %endif */
681
682/* Done after the current pattern has been matched and before the
683 * corresponding action - sets up yytext.
684 */
685#define YY_DO_BEFORE_ACTION \
686 (yytext_ptr) = yy_bp; \
687/* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
688 yyleng = (int) (yy_cp - yy_bp); \
689 (yy_hold_char) = *yy_cp; \
690 *yy_cp = '\0'; \
691/* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
692 (yy_c_buf_p) = yy_cp;
693/* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
694#define YY_NUM_RULES 251
695#define YY_END_OF_BUFFER 252
696/* This struct is not used in this scanner,
697 but its presence is necessary. */
698struct yy_trans_info
699 {
701 flex_int32_t yy_nxt;
702 };
703static const flex_int16_t yy_accept[2356] =
704 { 0,
705 244, 244, 0, 0, 0, 0, 0, 0, 0, 0,
706 252, 250, 10, 11, 250, 1, 244, 241, 244, 244,
707 250, 243, 242, 250, 250, 250, 250, 250, 237, 238,
708 250, 250, 250, 239, 240, 5, 5, 5, 250, 250,
709 250, 10, 11, 0, 0, 232, 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 244, 244, 0, 243, 244, 3, 2, 6, 0, 244,
714 0, 0, 0, 0, 0, 0, 4, 0, 0, 9,
715
716 0, 233, 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 0, 0, 0, 0, 0, 0, 235, 0, 0,
718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
725 0, 0, 0, 0, 0, 0, 0, 8, 0, 0,
726
727 0, 185, 0, 0, 186, 0, 0, 0, 0, 0,
728 0, 0, 0, 234, 236, 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, 0, 0, 0, 134, 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, 0,
740 0, 0, 0, 0, 249, 247, 0, 246, 245, 0,
741 0, 0, 0, 0, 0, 184, 0, 0, 23, 0,
742 22, 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, 0, 0, 0, 0, 0, 0, 0,
755 0, 248, 245, 0, 0, 0, 0, 0, 24, 0,
756 0, 26, 0, 0, 0, 0, 0, 0, 0, 0,
757 0, 0, 0, 0, 0, 139, 0, 0, 0, 0,
758 0, 0, 117, 0, 0, 0, 0, 0, 0, 0,
759
760 0, 0, 170, 0, 0, 0, 0, 0, 0, 0,
761 0, 0, 0, 0, 0, 53, 0, 0, 0, 207,
762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
764 0, 0, 0, 0, 116, 0, 0, 0, 0, 0,
765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
766 127, 0, 0, 54, 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, 0, 0,
769 0, 0, 0, 0, 0, 0, 0, 0, 162, 0,
770
771 189, 0, 50, 206, 0, 51, 0, 0, 0, 0,
772 0, 0, 0, 0, 32, 29, 28, 0, 0, 0,
773 0, 0, 178, 0, 213, 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, 0, 0, 0, 0, 0, 0, 0, 0,
777 0, 0, 0, 0, 152, 0, 0, 0, 0, 0,
778 0, 0, 208, 188, 0, 0, 0, 0, 0, 0,
779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
780 0, 0, 0, 0, 0, 0, 0, 0, 27, 0,
781
782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
783 0, 0, 0, 120, 0, 0, 0, 0, 0, 0,
784 0, 214, 0, 0, 0, 0, 179, 0, 0, 0,
785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
786 174, 0, 0, 0, 0, 0, 0, 0, 0, 0,
787 0, 0, 0, 0, 0, 0, 221, 0, 0, 7,
788 30, 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, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 0, 0, 154, 0, 0,
797 0, 0, 0, 0, 0, 0, 0, 0, 151, 0,
798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799 74, 0, 122, 0, 0, 0, 0, 0, 0, 0,
800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
802 0, 131, 0, 0, 0, 0, 0, 0, 0, 0,
803
804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
806 0, 216, 130, 0, 0, 0, 0, 0, 0, 0,
807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
808 0, 0, 0, 0, 0, 0, 0, 73, 0, 0,
809 0, 0, 0, 0, 0, 0, 0, 0, 173, 0,
810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
811 0, 0, 0, 0, 0, 0, 182, 148, 0, 0,
812 0, 0, 0, 0, 0, 153, 0, 0, 0, 0,
813 0, 0, 62, 0, 0, 0, 0, 0, 0, 0,
814
815 0, 0, 155, 0, 0, 55, 128, 0, 0, 0,
816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
817 0, 75, 0, 0, 0, 0, 0, 0, 0, 0,
818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
819 0, 0, 0, 111, 0, 0, 0, 0, 0, 0,
820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
821 0, 0, 0, 0, 0, 0, 0, 0, 225, 0,
822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
823 0, 0, 0, 0, 0, 0, 0, 108, 0, 0,
824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
825
826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
827 0, 0, 172, 0, 0, 0, 0, 0, 0, 0,
828 0, 71, 0, 0, 0, 0, 0, 0, 0, 0,
829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
830 0, 0, 0, 0, 0, 0, 0, 0, 52, 0,
831 0, 121, 0, 0, 168, 0, 0, 0, 0, 49,
832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
833 0, 0, 0, 0, 0, 0, 0, 0, 157, 0,
834 0, 0, 0, 0, 72, 0, 0, 0, 0, 0,
835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
836
837 0, 0, 0, 0, 0, 0, 90, 0, 0, 0,
838 0, 0, 70, 0, 0, 0, 0, 0, 0, 0,
839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
840 0, 0, 0, 0, 0, 0, 0, 226, 0, 0,
841 215, 0, 0, 0, 0, 0, 0, 0, 0, 0,
842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
843 132, 0, 0, 0, 0, 0, 0, 0, 0, 0,
844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
846 0, 0, 0, 0, 0, 0, 0, 36, 0, 0,
847
848 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
849 0, 0, 183, 13, 0, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
851 0, 0, 0, 217, 0, 76, 0, 0, 0, 0,
852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
853 0, 0, 0, 0, 0, 0, 0, 175, 0, 0,
854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
855 156, 0, 0, 0, 0, 0, 0, 0, 0, 0,
856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
857 0, 0, 171, 187, 0, 35, 0, 0, 0, 0,
858
859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
860 0, 0, 0, 19, 0, 119, 0, 0, 0, 114,
861 0, 0, 0, 181, 0, 0, 0, 0, 123, 224,
862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
863 0, 0, 0, 0, 0, 88, 0, 0, 0, 0,
864 0, 0, 0, 0, 0, 144, 145, 0, 0, 0,
865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
866 0, 118, 0, 0, 0, 0, 0, 78, 0, 0,
867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
869
870 0, 0, 0, 0, 0, 177, 0, 0, 0, 0,
871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
872 0, 0, 0, 0, 0, 0, 140, 0, 0, 0,
873 0, 0, 0, 0, 0, 0, 0, 0, 0, 115,
874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
875 0, 0, 0, 0, 85, 0, 0, 0, 0, 16,
876 0, 14, 0, 0, 0, 209, 211, 205, 0, 0,
877 0, 0, 0, 0, 0, 0, 0, 0, 77, 0,
878 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,
879 161, 0, 0, 0, 0, 0, 0, 0, 0, 0,
880
881 0, 0, 0, 0, 0, 110, 109, 0, 0, 0,
882 0, 0, 0, 198, 0, 0, 223, 0, 0, 0,
883 0, 0, 0, 0, 0, 0, 0, 0, 0, 220,
884 133, 0, 167, 0, 41, 0, 0, 56, 0, 0,
885 0, 0, 0, 0, 0, 0, 0, 0, 18, 0,
886 0, 0, 0, 0, 0, 0, 91, 0, 135, 58,
887 86, 0, 0, 176, 0, 0, 166, 0, 0, 0,
888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
889 0, 69, 0, 129, 0, 0, 0, 0, 0, 0,
890 0, 0, 147, 0, 0, 219, 0, 230, 0, 0,
891
892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
893 0, 0, 0, 0, 126, 0, 0, 0, 0, 190,
894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
897 218, 0, 0, 0, 0, 0, 0, 0, 0, 0,
898 0, 40, 0, 0, 0, 0, 0, 0, 0, 0,
899 0, 163, 0, 0, 0, 59, 0, 0, 0, 0,
900 0, 212, 0, 0, 158, 46, 0, 0, 0, 203,
901 0, 33, 0, 0, 0, 0, 0, 0, 0, 0,
902
903 0, 0, 0, 0, 0, 0, 12, 0, 0, 0,
904 0, 0, 0, 0, 0, 0, 0, 44, 0, 0,
905 0, 43, 0, 0, 17, 0, 0, 0, 68, 0,
906 0, 0, 0, 0, 0, 150, 149, 0, 0, 0,
907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 0, 210, 0, 0, 0, 0, 0, 0,
909 82, 0, 0, 0, 0, 0, 146, 0, 0, 0,
910 57, 204, 0, 0, 0, 0, 0, 0, 0, 0,
911 0, 0, 0, 0, 0, 0, 0, 124, 0, 0,
912 0, 0, 0, 0, 180, 0, 0, 0, 45, 0,
913
914 0, 0, 0, 0, 0, 0, 0, 0, 0, 199,
915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
916 0, 0, 0, 0, 0, 0, 0, 113, 0, 63,
917 0, 0, 0, 0, 0, 103, 0, 0, 31, 0,
918 47, 0, 0, 0, 0, 0, 0, 0, 0, 107,
919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
921 0, 196, 0, 0, 0, 0, 164, 0, 0, 0,
922 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,
923 0, 64, 0, 0, 0, 0, 60, 201, 0, 0,
924
925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
926 94, 0, 0, 0, 0, 0, 0, 0, 0, 169,
927 0, 0, 0, 0, 0, 0, 20, 34, 0, 0,
928 0, 0, 0, 0, 0, 0, 0, 202, 0, 0,
929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
931 0, 0, 0, 0, 0, 0, 0, 0, 222, 0,
932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
933 0, 0, 195, 0, 84, 0, 83, 0, 0, 79,
934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
935
936 0, 0, 0, 0, 0, 0, 104, 0, 143, 0,
937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
938 0, 0, 125, 0, 0, 0, 194, 0, 0, 0,
939 0, 0, 67, 0, 0, 89, 0, 61, 0, 0,
940 136, 0, 0, 0, 0, 0, 0, 0, 0, 112,
941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
942 100, 0, 0, 0, 0, 0, 0, 42, 0, 0,
943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
944 0, 0, 65, 0, 0, 0, 0, 0, 0, 0,
945 0, 0, 98, 0, 0, 0, 0, 0, 0, 0,
946
947 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
949 0, 0, 0, 106, 48, 0, 0, 0, 99, 0,
950 0, 0, 0, 200, 0, 0, 0, 0, 0, 228,
951 231, 81, 80, 0, 0, 141, 159, 137, 0, 0,
952 0, 0, 0, 0, 0, 105, 0, 0, 95, 0,
953 0, 0, 0, 0, 0, 0, 0, 0, 165, 192,
954 0, 0, 0, 0, 0, 0, 197, 0, 0, 97,
955 0, 87, 0, 0, 0, 0, 0, 0, 0, 138,
956 0, 0, 0, 0, 0, 0, 0, 0, 0, 191,
957
958 0, 0, 21, 229, 0, 0, 0, 0, 0, 0,
959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
960 0, 0, 96, 0, 0, 160, 0, 0, 39, 37,
961 0, 0, 0, 0, 101, 0, 0, 142, 0, 93,
962 0, 102, 0, 0, 0, 0, 0, 0, 0, 92,
963 0, 193, 38, 227, 0
964 } ;
965
966static const YY_CHAR yy_ec[256] =
967 { 0,
968 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
969 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
970 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
971 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
972 5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
973 14, 17, 14, 18, 14, 14, 14, 19, 5, 20,
974 5, 21, 22, 5, 23, 24, 25, 26, 27, 28,
975 5, 29, 30, 31, 32, 33, 5, 34, 35, 36,
976 5, 37, 38, 39, 40, 41, 42, 43, 44, 5,
977 45, 46, 47, 5, 48, 5, 49, 50, 51, 52,
978
979 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
980 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
981 73, 74, 75, 5, 76, 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 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
987 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
988 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
989
990 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
991 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
992 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
993 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
994 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
995 5, 5, 5, 5, 5
996 } ;
997
998static const YY_CHAR yy_meta[77] =
999 { 0,
1000 1, 1, 2, 1, 1, 3, 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, 1, 1, 1, 1,
1005 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1006 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1007 1, 1, 1, 1, 1, 1
1008 } ;
1009
1010static const flex_int16_t yy_base[2364] =
1011 { 0,
1012 0, 75, 21, 28, 39, 47, 53, 61, 95, 103,
1013 2804, 2805, 31, 2800, 151, 0, 216, 2805, 223, 230,
1014 13, 237, 2805, 2780, 124, 17, 4, 34, 2805, 2805,
1015 23, 43, 64, 2805, 2805, 2805, 56, 2788, 2738, 0,
1016 2778, 106, 2795, 2, 268, 2805, 85, 90, 2741, 2762,
1017 98, 77, 2762, 235, 231, 97, 207, 298, 240, 2745,
1018 294, 306, 62, 243, 204, 222, 2740, 224, 296, 341,
1019 196, 320, 2723, 21, 332, 382, 351, 78, 349, 0,
1020 394, 410, 435, 442, 450, 2805, 0, 2805, 298, 456,
1021 346, 354, 202, 356, 360, 301, 2805, 2740, 2784, 2805,
1022
1023 334, 2805, 430, 300, 232, 2738, 2782, 369, 17, 343,
1024 391, 2776, 225, 422, 310, 252, 2780, 0, 498, 437,
1025 2719, 2716, 2716, 430, 2716, 2717, 2723, 379, 2709, 2710,
1026 2715, 450, 2725, 416, 2718, 2708, 437, 2724, 366, 440,
1027 467, 434, 2761, 16, 2703, 2759, 2696, 64, 2717, 2717,
1028 2711, 434, 2703, 2704, 2702, 2696, 448, 476, 2693, 2692,
1029 477, 2748, 2692, 379, 2704, 2703, 2691, 506, 2692, 467,
1030 2704, 2701, 2702, 2690, 483, 2699, 2737, 2736, 320, 474,
1031 2680, 2684, 471, 2680, 482, 2690, 2682, 2675, 2683, 0,
1032 493, 505, 527, 520, 509, 532, 2679, 2805, 539, 538,
1033
1034 2674, 2805, 523, 530, 2805, 2731, 540, 545, 2730, 545,
1035 2729, 541, 2728, 2805, 2805, 590, 2670, 553, 2683, 2675,
1036 2673, 2673, 2677, 2678, 2658, 2669, 2671, 2670, 414, 529,
1037 2711, 2672, 2653, 2650, 2658, 2664, 2652, 2662, 2665, 2661,
1038 2652, 2661, 2661, 2656, 2648, 2647, 2649, 2652, 2632, 2636,
1039 2650, 2642, 2632, 2635, 2634, 2648, 2805, 2634, 2642, 528,
1040 2683, 2626, 2635, 2680, 2624, 2634, 2677, 567, 2676, 2618,
1041 2632, 2673, 557, 2629, 2609, 2624, 2616, 2620, 550, 2611,
1042 2609, 537, 2609, 2615, 2606, 2619, 2603, 2614, 2618, 559,
1043 2612, 519, 2619, 2614, 2597, 2612, 2598, 2606, 2610, 2591,
1044
1045 2607, 2593, 2599, 2606, 2645, 2587, 556, 2592, 2589, 2588,
1046 589, 2587, 2582, 2596, 2595, 585, 2594, 2574, 2596, 2578,
1047 79, 2586, 2574, 594, 2805, 2805, 596, 2805, 2805, 2572,
1048 580, 595, 2622, 598, 2633, 2805, 589, 600, 2805, 2632,
1049 2805, 2626, 643, 2585, 589, 2562, 2581, 2582, 2579, 2562,
1050 2579, 2618, 2575, 2565, 2620, 2572, 2575, 2566, 2569, 2555,
1051 2566, 624, 2608, 2563, 2560, 2561, 661, 2564, 2564, 2607,
1052 2539, 2551, 2546, 2543, 2539, 2538, 2540, 2543, 2593, 2547,
1053 2591, 2534, 639, 668, 2547, 2547, 2530, 2531, 2544, 2542,
1054 2540, 2540, 2539, 2534, 2541, 2536, 2521, 611, 2530, 2533,
1055
1056 616, 2528, 2578, 582, 636, 2534, 2571, 2518, 2511, 2526,
1057 2517, 2524, 2505, 2522, 2514, 2510, 2515, 676, 2565, 575,
1058 2517, 2517, 2515, 620, 2506, 2504, 2516, 622, 2491, 2492,
1059 2505, 2495, 2487, 2491, 2505, 632, 2491, 2503, 2502, 2501,
1060 2492, 2495, 2540, 2497, 2496, 2495, 2494, 2477, 2485, 2538,
1061 2494, 2536, 2473, 2534, 2533, 2472, 692, 2485, 2483, 2481,
1062 2481, 2805, 2805, 2481, 652, 2521, 2525, 2524, 2805, 2523,
1063 638, 2805, 674, 730, 2479, 661, 2521, 2464, 2519, 2513,
1064 2463, 2465, 646, 2455, 2452, 2805, 2457, 2450, 2462, 2465,
1065 2452, 2451, 2805, 2461, 658, 2452, 2449, 2461, 652, 2446,
1066
1067 2440, 2447, 2805, 2495, 2452, 2437, 2439, 2453, 2449, 2447,
1068 2447, 2441, 705, 2431, 2485, 2805, 2429, 2445, 2482, 2805,
1069 2436, 2485, 2484, 2437, 2431, 2433, 2434, 2418, 2427, 2472,
1070 2420, 2419, 2414, 2413, 2415, 2411, 2407, 652, 2426, 2400,
1071 2407, 2406, 2422, 2459, 2805, 2406, 2402, 723, 2410, 2409,
1072 2403, 2396, 2395, 2409, 2409, 2397, 2393, 2398, 2394, 2389,
1073 2805, 2398, 2448, 2805, 2387, 2380, 2440, 2439, 2381, 2380,
1074 2385, 2440, 2393, 2387, 2381, 2390, 726, 2430, 2374, 2369,
1075 2427, 2364, 2370, 50, 2384, 2377, 2381, 2364, 2425, 2367,
1076 2362, 2362, 2416, 2358, 2359, 2358, 2356, 2373, 2805, 2369,
1077
1078 2805, 2409, 2805, 2805, 2357, 2805, 679, 2407, 2411, 2343,
1079 2404, 2361, 2407, 722, 2805, 2805, 2805, 689, 687, 694,
1080 2344, 755, 2805, 2343, 2805, 691, 2361, 2341, 2351, 2354,
1081 2395, 653, 2337, 2347, 2392, 2334, 2341, 2334, 2342, 2335,
1082 2344, 2326, 2326, 2341, 2340, 2324, 675, 2338, 2337, 2321,
1083 2336, 2318, 2368, 2322, 2331, 2328, 2371, 2312, 2314, 2311,
1084 2325, 2325, 2323, 2323, 2805, 2308, 2320, 2312, 2318, 2309,
1085 2317, 2315, 2805, 2805, 2301, 2312, 2316, 2298, 2310, 2302,
1086 468, 2293, 2292, 2286, 2291, 2288, 2303, 2302, 2303, 2282,
1087 2292, 2298, 2344, 2296, 2288, 2279, 2280, 2282, 2805, 2277,
1088
1089 2283, 708, 2331, 757, 2330, 2272, 2328, 2272, 2275, 2273,
1090 2275, 2266, 2281, 2805, 701, 763, 2264, 2280, 2277, 2272,
1091 2268, 2805, 2316, 2265, 2272, 2313, 2805, 2256, 2254, 2268,
1092 2271, 2256, 2307, 2306, 2250, 2304, 2261, 2245, 2301, 2300,
1093 2805, 2258, 2241, 2255, 2254, 759, 2251, 178, 227, 323,
1094 412, 532, 595, 600, 661, 681, 2805, 740, 703, 2805,
1095 2805, 729, 743, 744, 739, 758, 723, 720, 731, 740,
1096 734, 723, 719, 734, 730, 736, 746, 792, 793, 752,
1097 758, 793, 795, 747, 747, 752, 753, 764, 769, 755,
1098 758, 761, 770, 770, 754, 814, 773, 765, 775, 818,
1099
1100 764, 825, 772, 772, 774, 778, 783, 786, 828, 788,
1101 836, 790, 793, 788, 779, 794, 799, 800, 797, 794,
1102 801, 800, 788, 802, 800, 808, 847, 806, 854, 855,
1103 796, 809, 795, 805, 855, 810, 863, 2805, 816, 814,
1104 816, 812, 806, 822, 870, 866, 867, 827, 2805, 817,
1105 818, 817, 830, 820, 833, 880, 836, 821, 883, 884,
1106 2805, 838, 2805, 832, 826, 821, 832, 845, 836, 825,
1107 831, 889, 850, 834, 834, 847, 899, 838, 845, 857,
1108 852, 858, 855, 902, 841, 853, 868, 865, 863, 853,
1109 850, 2805, 918, 872, 873, 861, 875, 865, 869, 881,
1110
1111 872, 875, 880, 887, 882, 910, 903, 932, 933, 907,
1112 880, 894, 897, 877, 884, 898, 946, 900, 885, 898,
1113 896, 2805, 2805, 900, 895, 910, 907, 893, 895, 914,
1114 911, 911, 913, 902, 909, 910, 920, 967, 926, 965,
1115 924, 915, 928, 914, 913, 919, 911, 2805, 922, 917,
1116 918, 924, 940, 923, 980, 981, 933, 983, 2805, 944,
1117 936, 947, 945, 993, 932, 949, 935, 950, 952, 939,
1118 937, 1002, 956, 942, 948, 946, 2805, 2805, 962, 961,
1119 962, 967, 955, 965, 967, 2805, 967, 969, 956, 974,
1120 961, 963, 2805, 960, 978, 979, 965, 966, 962, 967,
1121
1122 985, 1029, 2805, 987, 1031, 2805, 2805, 986, 986, 1035,
1123 978, 982, 976, 992, 1040, 990, 980, 981, 977, 987,
1124 991, 2805, 1002, 997, 1044, 1000, 993, 995, 991, 1008,
1125 998, 1013, 996, 1058, 1012, 1014, 1018, 1005, 996, 1064,
1126 1020, 1007, 1006, 2805, 1013, 1014, 1066, 1067, 1016, 1029,
1127 1070, 1014, 1030, 1030, 1036, 1017, 1026, 1050, 1060, 1048,
1128 1056, 1068, 1085, 1031, 1045, 1085, 1044, 1087, 2805, 1093,
1129 1043, 1034, 1053, 1043, 1042, 1037, 1038, 1050, 1045, 1041,
1130 1059, 1051, 1046, 1047, 1057, 1066, 1107, 2805, 1061, 1055,
1131 1073, 1066, 1061, 1117, 1123, 1077, 1068, 1126, 1083, 1074,
1132
1133 1082, 1084, 1069, 1085, 1090, 1076, 1088, 1085, 1083, 1095,
1134 1079, 1080, 2805, 1096, 1099, 1096, 1083, 1085, 1146, 1086,
1135 1105, 2805, 1104, 1107, 1094, 1089, 1107, 1095, 1151, 1106,
1136 1102, 1099, 1155, 1101, 1157, 1116, 1102, 1120, 1120, 1120,
1137 1122, 1107, 1122, 1109, 1110, 1126, 1113, 1130, 2805, 1128,
1138 1115, 2805, 1173, 1123, 2805, 1133, 1126, 1182, 1126, 2805,
1139 1129, 1134, 1181, 1129, 1130, 1142, 1136, 1134, 1131, 1146,
1140 1194, 1135, 1136, 1197, 1198, 1139, 1151, 1144, 2805, 1140,
1141 1157, 1149, 1145, 1148, 2805, 1203, 1142, 1163, 1149, 1150,
1142 1151, 1152, 1158, 1166, 1157, 1171, 1219, 1173, 1221, 1168,
1143
1144 1176, 1191, 1220, 1203, 1195, 1200, 2805, 1183, 1168, 1188,
1145 1171, 1171, 2805, 1174, 1173, 1175, 1186, 1176, 1196, 1195,
1146 1186, 1197, 1243, 1182, 1194, 1203, 1196, 1200, 1204, 1187,
1147 1208, 1205, 1210, 1201, 1260, 1204, 1208, 2805, 1258, 1204,
1148 2805, 1222, 1204, 1204, 1225, 1222, 1265, 1225, 1212, 1230,
1149 1218, 1232, 1225, 1234, 1214, 1229, 1236, 1221, 1282, 1283,
1150 2805, 1233, 1285, 1239, 1225, 1235, 1245, 1229, 1249, 1232,
1151 1234, 1234, 1241, 1250, 1238, 1245, 1240, 1247, 1259, 1303,
1152 1247, 1305, 1247, 1261, 1265, 1309, 1259, 1260, 1249, 1313,
1153 1261, 1264, 1259, 1263, 1318, 1319, 1269, 2805, 1258, 1275,
1154
1155 1268, 1259, 1278, 1272, 1267, 1277, 1273, 1268, 1286, 2805,
1156 1270, 1266, 2805, 2805, 1272, 1335, 1291, 1272, 1278, 1292,
1157 1278, 1294, 1296, 1338, 1288, 1345, 1346, 1296, 1301, 1295,
1158 1293, 1304, 1286, 2805, 1291, 2805, 1300, 1298, 1324, 1337,
1159 1325, 1339, 1326, 1361, 1311, 1314, 1314, 1318, 1319, 1367,
1160 1307, 1307, 1310, 1327, 1322, 1326, 1321, 2805, 1318, 1331,
1161 1315, 1332, 1312, 1333, 1323, 1316, 1328, 1329, 1385, 1335,
1162 2805, 1348, 1346, 1349, 1333, 1342, 1346, 1351, 1337, 1400,
1163 1350, 1356, 1356, 1343, 1357, 1355, 1352, 1348, 1366, 1367,
1164 1368, 1351, 2805, 2805, 1367, 2805, 1369, 1354, 1365, 1356,
1165
1166 1375, 1368, 1366, 1421, 1375, 1372, 1419, 1380, 1369, 1376,
1167 1381, 1378, 1384, 2805, 1377, 2805, 1369, 1382, 1434, 2805,
1168 1378, 1379, 1390, 2805, 1391, 1385, 1380, 1390, 2805, 2805,
1169 1380, 1381, 1384, 1398, 1403, 1386, 1397, 1449, 1403, 1390,
1170 1409, 1400, 1454, 1450, 1456, 2805, 1404, 1401, 1412, 1460,
1171 1461, 1462, 1416, 1417, 1419, 2805, 2805, 1411, 1406, 1463,
1172 1409, 1425, 1409, 1421, 1473, 1411, 1470, 1453, 1454, 1446,
1173 1479, 2805, 1423, 1434, 1425, 1436, 1438, 2805, 1485, 1419,
1174 1430, 1445, 1484, 1433, 1444, 1432, 1431, 1447, 1448, 1445,
1175 1492, 1452, 1499, 1500, 1456, 1445, 1457, 1463, 1452, 1452,
1176
1177 1510, 1506, 1507, 1513, 1467, 2805, 1469, 1465, 1469, 1471,
1178 1462, 1465, 1474, 1471, 1461, 1464, 1464, 1526, 1527, 1471,
1179 1529, 1473, 1531, 1472, 1477, 1535, 2805, 1490, 1469, 1484,
1180 1477, 1480, 1493, 1496, 1495, 1493, 1545, 1496, 1486, 2805,
1181 1493, 1494, 1546, 1490, 1506, 1554, 1507, 1556, 1557, 1558,
1182 1499, 1509, 1561, 1515, 2805, 1507, 1564, 1505, 1505, 2805,
1183 1523, 2805, 1520, 1511, 1511, 2805, 2805, 2805, 1525, 1508,
1184 1528, 1529, 1515, 1517, 1579, 1526, 1581, 1527, 2805, 1521,
1185 1548, 1566, 1581, 1567, 2805, 1531, 1589, 1536, 1586, 1592,
1186 2805, 1532, 1594, 1541, 1535, 1532, 1535, 1537, 1533, 1596,
1187
1188 1556, 1598, 1548, 1560, 1563, 2805, 2805, 1560, 1552, 1555,
1189 1550, 1615, 1560, 2805, 1557, 1556, 2805, 1558, 1620, 1559,
1190 1571, 1562, 1619, 1578, 1580, 1580, 1577, 1624, 1583, 2805,
1191 2805, 1575, 2805, 1576, 2805, 1586, 1578, 2805, 1630, 1589,
1192 1590, 1588, 1635, 1580, 1595, 1638, 1597, 1589, 2805, 1586,
1193 1596, 1587, 1588, 1589, 1646, 1652, 2805, 1606, 2805, 2805,
1194 2805, 1649, 1593, 2805, 1610, 1595, 2805, 1609, 1597, 1661,
1195 1605, 1598, 1603, 1614, 1607, 1626, 1619, 1625, 1615, 1673,
1196 1623, 2805, 1632, 2805, 1629, 1677, 1654, 1655, 1661, 1646,
1197 1654, 1683, 2805, 1638, 1623, 2805, 1686, 2805, 1687, 1641,
1198
1199 1646, 1628, 1691, 1692, 1633, 1689, 1652, 1646, 1642, 1636,
1200 1643, 1695, 1650, 1651, 2805, 1641, 1657, 1661, 1712, 2805,
1201 1662, 1648, 1710, 1671, 1671, 1713, 1658, 1663, 1661, 1723,
1202 1676, 1664, 1726, 1722, 1674, 1729, 1687, 1676, 1670, 1733,
1203 1672, 1681, 1674, 1688, 1691, 1682, 1740, 1741, 1691, 1689,
1204 2805, 1682, 1680, 1741, 1742, 1743, 1695, 1694, 1694, 1690,
1205 1691, 2805, 1699, 1705, 1696, 1697, 1759, 1697, 1699, 1757,
1206 1700, 2805, 1696, 1714, 1766, 2805, 1734, 1748, 1747, 1736,
1207 1738, 2805, 1772, 1722, 2805, 2805, 1713, 1724, 1776, 2805,
1208 1777, 2805, 1731, 1721, 1726, 1724, 1777, 1732, 1738, 1724,
1209
1210 1727, 1743, 1732, 1730, 1730, 1732, 2805, 1736, 1799, 1737,
1211 1751, 1797, 1741, 1805, 1750, 1760, 1761, 2805, 1809, 1759,
1212 1806, 2805, 1754, 1762, 2805, 1753, 1768, 1756, 2805, 1766,
1213 1767, 1768, 1820, 1775, 1766, 2805, 2805, 1755, 1773, 1774,
1214 1783, 1765, 1771, 1784, 1773, 1826, 1775, 1771, 1776, 1773,
1215 1774, 1832, 1838, 2805, 1785, 1840, 1790, 1780, 1796, 1789,
1216 2805, 1822, 1847, 1829, 1844, 1850, 2805, 1796, 1852, 1791,
1217 2805, 2805, 1793, 1795, 1805, 1852, 1797, 1812, 1799, 1861,
1218 1815, 1801, 1808, 1808, 1819, 1820, 1812, 2805, 1815, 1809,
1219 1811, 1826, 1813, 1825, 2805, 1872, 1820, 1817, 2805, 1831,
1220
1221 1818, 1839, 1835, 1837, 1885, 1835, 1832, 1840, 1834, 2805,
1222 1890, 1848, 1845, 1838, 1839, 1844, 1845, 1839, 1844, 1855,
1223 1839, 1848, 1897, 1903, 1853, 1905, 1851, 2805, 1845, 2805,
1224 1852, 1909, 1910, 1907, 1908, 2805, 1890, 1896, 2805, 1868,
1225 2805, 1912, 1861, 1872, 1873, 1858, 1859, 1867, 1924, 2805,
1226 1869, 1921, 1922, 1874, 1869, 1887, 1888, 1885, 1933, 1877,
1227 1890, 1885, 1882, 1887, 1885, 1940, 1943, 1888, 1885, 1899,
1228 1886, 2805, 1901, 1902, 1903, 1904, 2805, 1898, 1953, 1903,
1229 1908, 1894, 1902, 1896, 1916, 1917, 1898, 1899, 1906, 2805,
1230 1908, 2805, 1922, 1919, 1962, 1920, 2805, 2805, 1924, 1950,
1231
1232 1951, 1949, 1912, 1912, 1921, 1928, 1921, 1920, 1931, 1918,
1233 2805, 1934, 1922, 1925, 1984, 1921, 1940, 1933, 1932, 2805,
1234 1944, 1937, 1936, 1945, 1947, 1951, 2805, 2805, 1944, 1937,
1235 1938, 2001, 1941, 2003, 1942, 2005, 2001, 2805, 1945, 2008,
1236 2004, 1963, 1960, 1951, 1959, 1970, 1957, 1968, 1954, 1952,
1237 1960, 1959, 1964, 1956, 2001, 2025, 2007, 2027, 1977, 1966,
1238 1979, 1969, 1986, 1985, 2029, 1970, 1989, 1990, 2805, 1995,
1239 1988, 2035, 2041, 1995, 1982, 1997, 2045, 1999, 2002, 1989,
1240 1998, 1999, 2805, 2053, 2805, 2003, 2805, 2001, 2056, 2805,
1241 1995, 2058, 2002, 1999, 2061, 2006, 2058, 2059, 2018, 2061,
1242
1243 2004, 2008, 2026, 2070, 2026, 2053, 2805, 2049, 2805, 2019,
1244 2013, 2010, 2072, 2035, 2028, 2024, 2081, 2021, 2023, 2022,
1245 2029, 2041, 2805, 2026, 2088, 2029, 2805, 2034, 2044, 2029,
1246 2037, 2039, 2805, 2040, 2045, 2805, 2046, 2805, 2043, 2054,
1247 2805, 2055, 2055, 2046, 2105, 2046, 2056, 2041, 2054, 2805,
1248 2056, 2087, 2093, 2065, 2063, 2115, 2053, 2055, 2052, 2076,
1249 2805, 2063, 2070, 2071, 2074, 2070, 2064, 2805, 2121, 2065,
1250 2073, 2082, 2081, 2084, 2085, 2072, 2079, 2074, 2075, 2075,
1251 2089, 2084, 2805, 2095, 2083, 2139, 2087, 2099, 2127, 2148,
1252 2149, 2093, 2805, 2093, 2105, 2153, 2099, 2101, 2099, 2100,
1253
1254 2158, 2116, 2109, 2096, 2111, 2116, 2164, 2165, 2166, 2167,
1255 2106, 2122, 2170, 2171, 2172, 2114, 2118, 2114, 2130, 2113,
1256 2125, 2119, 2181, 2805, 2805, 2126, 2137, 2184, 2805, 2138,
1257 2123, 2141, 2132, 2805, 2128, 2134, 2148, 2144, 2137, 2805,
1258 2805, 2805, 2805, 2194, 2195, 2805, 2805, 2805, 2135, 2143,
1259 2138, 2194, 2157, 2154, 2202, 2805, 2198, 2161, 2805, 2205,
1260 2144, 2207, 2147, 2148, 2161, 2160, 2161, 2151, 2805, 2805,
1261 2152, 2215, 2165, 2174, 2167, 2214, 2805, 2165, 2159, 2805,
1262 2171, 2805, 2218, 2177, 2225, 2164, 2180, 2228, 2229, 2805,
1263 2183, 2177, 2170, 2190, 2177, 2189, 2180, 2184, 2178, 2805,
1264
1265 2235, 2181, 2805, 2805, 2181, 2189, 2239, 2196, 2189, 2201,
1266 2248, 2193, 2193, 2251, 2190, 2192, 2254, 2255, 2194, 2210,
1267 2195, 2212, 2805, 2260, 2204, 2805, 2211, 2263, 2805, 2805,
1268 2213, 2265, 2210, 2267, 2805, 2215, 2214, 2805, 2215, 2805,
1269 2209, 2805, 2209, 2226, 2227, 2275, 2218, 2277, 2278, 2805,
1270 2279, 2805, 2805, 2805, 2805, 2285, 2288, 2291, 2292, 2294,
1271 2297, 2300, 2303
1272 } ;
1273
1274static const flex_int16_t yy_def[2364] =
1275 { 0,
1276 2356, 2356, 2357, 2357, 2356, 2356, 2356, 2356, 2356, 2356,
1277 2355, 2355, 2355, 2355, 2355, 2358, 2355, 2355, 2355, 2355,
1278 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1279 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2359,
1280 2355, 2355, 2355, 2360, 15, 2355, 45, 45, 45, 45,
1281 45, 45, 45, 45, 45, 45, 45, 2361, 45, 45,
1282 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1283 45, 45, 45, 45, 45, 45, 45, 45, 45, 2358,
1284 2355, 2355, 2355, 2355, 2355, 2355, 2362, 2355, 2355, 2355,
1285 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2359, 2355,
1286
1287 2360, 2355, 2355, 45, 45, 45, 45, 45, 45, 45,
1288 45, 45, 45, 45, 45, 45, 2363, 45, 2361, 45,
1289 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1290 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1291 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1292 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1293 45, 45, 45, 45, 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, 2362,
1296 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 45, 45,
1297
1298 45, 2355, 45, 45, 2355, 45, 45, 45, 45, 45,
1299 45, 45, 2363, 2355, 2355, 119, 45, 45, 45, 45,
1300 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1301 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1302 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1303 45, 45, 45, 45, 45, 45, 2355, 45, 45, 45,
1304 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1305 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1306 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1307 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1308
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, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1312 45, 45, 45, 45, 45, 2355, 45, 45, 2355, 45,
1313 2355, 45, 119, 45, 45, 45, 45, 45, 45, 45,
1314 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1315 45, 45, 45, 45, 45, 45, 45, 45, 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
1320 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1321 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1322 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1323 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1324 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1325 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1326 45, 2355, 2355, 2355, 45, 45, 45, 45, 2355, 45,
1327 45, 2355, 45, 119, 45, 45, 45, 45, 45, 45,
1328 45, 45, 45, 45, 45, 2355, 45, 45, 45, 45,
1329 45, 45, 2355, 45, 45, 45, 45, 45, 45, 45,
1330
1331 45, 45, 2355, 45, 45, 45, 45, 45, 45, 45,
1332 45, 45, 45, 45, 45, 2355, 45, 45, 45, 2355,
1333 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1334 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1335 45, 45, 45, 45, 2355, 45, 45, 45, 45, 45,
1336 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1337 2355, 45, 45, 2355, 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, 2355, 45,
1341
1342 2355, 45, 2355, 2355, 45, 2355, 45, 45, 45, 45,
1343 45, 2355, 45, 45, 2355, 2355, 2355, 45, 45, 45,
1344 45, 45, 2355, 45, 2355, 45, 45, 45, 45, 45,
1345 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1346 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1347 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1348 45, 45, 45, 45, 2355, 45, 45, 45, 45, 45,
1349 45, 45, 2355, 2355, 45, 45, 45, 45, 45, 45,
1350 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1351 45, 45, 45, 45, 45, 45, 45, 45, 2355, 45,
1352
1353 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1354 45, 45, 45, 2355, 45, 45, 45, 45, 45, 45,
1355 45, 2355, 45, 45, 45, 45, 2355, 45, 45, 45,
1356 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1357 2355, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1358 45, 45, 45, 45, 45, 45, 2355, 45, 45, 2355,
1359 2355, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1360 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1361 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1362 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1363
1364 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1365 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1366 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1367 45, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1368 45, 45, 45, 45, 45, 45, 45, 45, 2355, 45,
1369 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1370 2355, 45, 2355, 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, 45,
1373 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1374
1375 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1376 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1377 45, 2355, 2355, 45, 45, 45, 45, 45, 45, 45,
1378 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1379 45, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1380 45, 45, 45, 45, 45, 45, 45, 45, 2355, 45,
1381 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1382 45, 45, 45, 45, 45, 45, 2355, 2355, 45, 45,
1383 45, 45, 45, 45, 45, 2355, 45, 45, 45, 45,
1384 45, 45, 2355, 45, 45, 45, 45, 45, 45, 45,
1385
1386 45, 45, 2355, 45, 45, 2355, 2355, 45, 45, 45,
1387 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1388 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1389 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1390 45, 45, 45, 2355, 45, 45, 45, 45, 45, 45,
1391 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1392 45, 45, 45, 45, 45, 45, 45, 45, 2355, 45,
1393 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1394 45, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1395 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1396
1397 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1398 45, 45, 2355, 45, 45, 45, 45, 45, 45, 45,
1399 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1400 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1401 45, 45, 45, 45, 45, 45, 45, 45, 2355, 45,
1402 45, 2355, 45, 45, 2355, 45, 45, 45, 45, 2355,
1403 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1404 45, 45, 45, 45, 45, 45, 45, 45, 2355, 45,
1405 45, 45, 45, 45, 2355, 45, 45, 45, 45, 45,
1406 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1407
1408 45, 45, 45, 45, 45, 45, 2355, 45, 45, 45,
1409 45, 45, 2355, 45, 45, 45, 45, 45, 45, 45,
1410 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1411 45, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1412 2355, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1413 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1414 2355, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1415 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1416 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1417 45, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1418
1419 45, 45, 45, 45, 45, 45, 45, 45, 45, 2355,
1420 45, 45, 2355, 2355, 45, 45, 45, 45, 45, 45,
1421 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1422 45, 45, 45, 2355, 45, 2355, 45, 45, 45, 45,
1423 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1424 45, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1425 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1426 2355, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1427 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1428 45, 45, 2355, 2355, 45, 2355, 45, 45, 45, 45,
1429
1430 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1431 45, 45, 45, 2355, 45, 2355, 45, 45, 45, 2355,
1432 45, 45, 45, 2355, 45, 45, 45, 45, 2355, 2355,
1433 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1434 45, 45, 45, 45, 45, 2355, 45, 45, 45, 45,
1435 45, 45, 45, 45, 45, 2355, 2355, 45, 45, 45,
1436 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1437 45, 2355, 45, 45, 45, 45, 45, 2355, 45, 45,
1438 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1439 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1440
1441 45, 45, 45, 45, 45, 2355, 45, 45, 45, 45,
1442 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1443 45, 45, 45, 45, 45, 45, 2355, 45, 45, 45,
1444 45, 45, 45, 45, 45, 45, 45, 45, 45, 2355,
1445 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1446 45, 45, 45, 45, 2355, 45, 45, 45, 45, 2355,
1447 45, 2355, 45, 45, 45, 2355, 2355, 2355, 45, 45,
1448 45, 45, 45, 45, 45, 45, 45, 45, 2355, 45,
1449 45, 45, 45, 45, 2355, 45, 45, 45, 45, 45,
1450 2355, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1451
1452 45, 45, 45, 45, 45, 2355, 2355, 45, 45, 45,
1453 45, 45, 45, 2355, 45, 45, 2355, 45, 45, 45,
1454 45, 45, 45, 45, 45, 45, 45, 45, 45, 2355,
1455 2355, 45, 2355, 45, 2355, 45, 45, 2355, 45, 45,
1456 45, 45, 45, 45, 45, 45, 45, 45, 2355, 45,
1457 45, 45, 45, 45, 45, 45, 2355, 45, 2355, 2355,
1458 2355, 45, 45, 2355, 45, 45, 2355, 45, 45, 45,
1459 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1460 45, 2355, 45, 2355, 45, 45, 45, 45, 45, 45,
1461 45, 45, 2355, 45, 45, 2355, 45, 2355, 45, 45,
1462
1463 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1464 45, 45, 45, 45, 2355, 45, 45, 45, 45, 2355,
1465 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1466 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1467 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1468 2355, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1469 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1470 45, 2355, 45, 45, 45, 2355, 45, 45, 45, 45,
1471 45, 2355, 45, 45, 2355, 2355, 45, 45, 45, 2355,
1472 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1473
1474 45, 45, 45, 45, 45, 45, 2355, 45, 45, 45,
1475 45, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1476 45, 2355, 45, 45, 2355, 45, 45, 45, 2355, 45,
1477 45, 45, 45, 45, 45, 2355, 2355, 45, 45, 45,
1478 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1479 45, 45, 45, 2355, 45, 45, 45, 45, 45, 45,
1480 2355, 45, 45, 45, 45, 45, 2355, 45, 45, 45,
1481 2355, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1482 45, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1483 45, 45, 45, 45, 2355, 45, 45, 45, 2355, 45,
1484
1485 45, 45, 45, 45, 45, 45, 45, 45, 45, 2355,
1486 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1487 45, 45, 45, 45, 45, 45, 45, 2355, 45, 2355,
1488 45, 45, 45, 45, 45, 2355, 45, 45, 2355, 45,
1489 2355, 45, 45, 45, 45, 45, 45, 45, 45, 2355,
1490 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1491 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1492 45, 2355, 45, 45, 45, 45, 2355, 45, 45, 45,
1493 45, 45, 45, 45, 45, 45, 45, 45, 45, 2355,
1494 45, 2355, 45, 45, 45, 45, 2355, 2355, 45, 45,
1495
1496 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1497 2355, 45, 45, 45, 45, 45, 45, 45, 45, 2355,
1498 45, 45, 45, 45, 45, 45, 2355, 2355, 45, 45,
1499 45, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1500 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1501 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1502 45, 45, 45, 45, 45, 45, 45, 45, 2355, 45,
1503 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1504 45, 45, 2355, 45, 2355, 45, 2355, 45, 45, 2355,
1505 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1506
1507 45, 45, 45, 45, 45, 45, 2355, 45, 2355, 45,
1508 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1509 45, 45, 2355, 45, 45, 45, 2355, 45, 45, 45,
1510 45, 45, 2355, 45, 45, 2355, 45, 2355, 45, 45,
1511 2355, 45, 45, 45, 45, 45, 45, 45, 45, 2355,
1512 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1513 2355, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1514 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1515 45, 45, 2355, 45, 45, 45, 45, 45, 45, 45,
1516 45, 45, 2355, 45, 45, 45, 45, 45, 45, 45,
1517
1518 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1519 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1520 45, 45, 45, 2355, 2355, 45, 45, 45, 2355, 45,
1521 45, 45, 45, 2355, 45, 45, 45, 45, 45, 2355,
1522 2355, 2355, 2355, 45, 45, 2355, 2355, 2355, 45, 45,
1523 45, 45, 45, 45, 45, 2355, 45, 45, 2355, 45,
1524 45, 45, 45, 45, 45, 45, 45, 45, 2355, 2355,
1525 45, 45, 45, 45, 45, 45, 2355, 45, 45, 2355,
1526 45, 2355, 45, 45, 45, 45, 45, 45, 45, 2355,
1527 45, 45, 45, 45, 45, 45, 45, 45, 45, 2355,
1528
1529 45, 45, 2355, 2355, 45, 45, 45, 45, 45, 45,
1530 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1531 45, 45, 2355, 45, 45, 2355, 45, 45, 2355, 2355,
1532 45, 45, 45, 45, 2355, 45, 45, 2355, 45, 2355,
1533 45, 2355, 45, 45, 45, 45, 45, 45, 45, 2355,
1534 45, 2355, 2355, 2355, 0, 2355, 2355, 2355, 2355, 2355,
1535 2355, 2355, 2355
1536 } ;
1537
1538static const flex_int16_t yy_nxt[2882] =
1539 { 0,
1540 2355, 13, 14, 13, 2355, 15, 16, 102, 17, 18,
1541 19, 20, 21, 22, 22, 22, 22, 22, 23, 24,
1542 86, 257, 37, 14, 37, 87, 25, 26, 38, 37,
1543 14, 37, 42, 27, 42, 38, 2355, 2355, 28, 91,
1544 13, 14, 13, 92, 29, 91, 30, 103, 13, 14,
1545 13, 204, 25, 31, 13, 14, 13, 42, 40, 42,
1546 735, 32, 13, 14, 13, 91, 40, 33, 258, 167,
1547 93, 94, 92, 168, 34, 35, 13, 14, 13, 204,
1548 15, 16, 92, 17, 18, 19, 20, 21, 22, 22,
1549 22, 22, 22, 23, 24, 39, 13, 14, 13, 93,
1550
1551 93, 25, 26, 39, 13, 14, 13, 42, 27, 42,
1552 136, 95, 262, 28, 109, 736, 41, 104, 105, 29,
1553 108, 30, 115, 137, 41, 263, 187, 25, 31, 96,
1554 188, 138, 89, 139, 89, 458, 32, 90, 90, 90,
1555 90, 90, 33, 109, 104, 105, 108, 459, 115, 34,
1556 35, 44, 44, 44, 45, 45, 46, 45, 45, 45,
1557 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1558 45, 45, 45, 47, 45, 48, 49, 50, 51, 45,
1559 45, 52, 45, 53, 54, 45, 45, 45, 45, 55,
1560 56, 45, 57, 45, 45, 45, 58, 45, 45, 59,
1561
1562 60, 61, 62, 63, 64, 45, 65, 66, 52, 67,
1563 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1564 78, 79, 45, 45, 45, 45, 45, 81, 895, 82,
1565 82, 82, 82, 82, 81, 116, 84, 84, 84, 84,
1566 84, 193, 83, 85, 85, 85, 85, 85, 81, 83,
1567 84, 84, 84, 84, 84, 113, 83, 158, 200, 159,
1568 209, 111, 116, 83, 160, 108, 141, 114, 83, 112,
1569 193, 142, 104, 144, 143, 83, 148, 149, 212, 896,
1570 150, 113, 83, 145, 200, 146, 151, 111, 209, 83,
1571 45, 108, 45, 45, 45, 45, 114, 112, 45, 120,
1572
1573 45, 45, 140, 118, 212, 121, 45, 45, 122, 45,
1574 45, 90, 90, 90, 90, 90, 45, 45, 45, 45,
1575 45, 45, 105, 45, 45, 45, 45, 45, 45, 45,
1576 45, 45, 45, 45, 45, 45, 45, 45, 45, 102,
1577 193, 199, 124, 45, 152, 211, 125, 45, 205, 105,
1578 126, 45, 153, 127, 130, 209, 128, 131, 132, 45,
1579 129, 133, 134, 45, 154, 45, 119, 111, 161, 196,
1580 199, 162, 163, 211, 135, 112, 115, 116, 191, 103,
1581 169, 206, 164, 311, 170, 165, 192, 171, 191, 155,
1582 897, 156, 192, 157, 172, 173, 177, 178, 174, 175,
1583
1584 176, 203, 115, 112, 116, 191, 113, 85, 85, 85,
1585 85, 85, 185, 192, 189, 194, 246, 186, 114, 195,
1586 83, 81, 898, 82, 82, 82, 82, 82, 203, 247,
1587 228, 207, 179, 248, 180, 101, 83, 181, 182, 229,
1588 230, 284, 101, 89, 285, 89, 83, 183, 90, 90,
1589 90, 90, 90, 81, 184, 84, 84, 84, 84, 84,
1590 207, 210, 83, 85, 85, 85, 85, 85, 83, 90,
1591 90, 90, 90, 90, 356, 101, 83, 357, 199, 101,
1592 222, 238, 239, 101, 267, 242, 274, 243, 207, 223,
1593 210, 101, 249, 224, 83, 101, 217, 101, 101, 234,
1594
1595 235, 254, 83, 215, 244, 268, 255, 218, 250, 236,
1596 210, 216, 216, 216, 216, 216, 289, 273, 825, 826,
1597 216, 216, 216, 216, 216, 216, 251, 278, 299, 252,
1598 324, 306, 300, 253, 312, 275, 301, 325, 318, 316,
1599 313, 325, 279, 280, 281, 307, 216, 216, 216, 216,
1600 216, 216, 319, 326, 290, 291, 292, 324, 326, 324,
1601 334, 331, 332, 335, 325, 293, 337, 294, 328, 338,
1602 295, 340, 296, 297, 342, 331, 389, 398, 427, 326,
1603 899, 428, 358, 337, 329, 415, 327, 331, 332, 334,
1604 359, 335, 337, 390, 339, 338, 360, 340, 411, 448,
1605
1606 416, 345, 342, 343, 343, 343, 343, 343, 412, 405,
1607 424, 340, 343, 343, 343, 343, 343, 343, 425, 443,
1608 462, 444, 462, 465, 468, 470, 466, 565, 471, 493,
1609 570, 566, 465, 399, 494, 546, 400, 340, 343, 343,
1610 343, 343, 343, 343, 516, 547, 462, 900, 463, 517,
1611 468, 453, 465, 466, 470, 471, 474, 474, 474, 474,
1612 474, 476, 901, 777, 618, 474, 474, 474, 474, 474,
1613 474, 499, 470, 520, 536, 537, 538, 500, 521, 542,
1614 539, 561, 571, 575, 584, 543, 562, 576, 585, 613,
1615 618, 474, 474, 474, 474, 474, 474, 606, 613, 629,
1616
1617 518, 548, 607, 651, 689, 519, 861, 619, 640, 620,
1618 665, 630, 641, 764, 690, 666, 652, 902, 613, 778,
1619 642, 765, 643, 644, 645, 646, 647, 622, 699, 754,
1620 766, 727, 755, 700, 522, 619, 728, 620, 793, 764,
1621 903, 794, 563, 45, 45, 45, 45, 45, 762, 765,
1622 904, 770, 45, 45, 45, 45, 45, 45, 771, 766,
1623 761, 846, 849, 763, 892, 768, 862, 850, 863, 847,
1624 905, 906, 907, 864, 762, 908, 893, 909, 45, 45,
1625 45, 45, 45, 45, 910, 911, 912, 913, 914, 915,
1626 916, 917, 763, 918, 919, 920, 921, 922, 923, 907,
1627
1628 906, 924, 908, 928, 851, 929, 909, 930, 925, 926,
1629 910, 927, 931, 932, 933, 865, 934, 935, 936, 937,
1630 938, 939, 940, 941, 942, 943, 944, 945, 946, 947,
1631 948, 949, 950, 953, 954, 955, 951, 956, 957, 958,
1632 952, 959, 960, 961, 962, 963, 964, 965, 966, 967,
1633 968, 969, 970, 971, 972, 973, 974, 975, 976, 977,
1634 978, 979, 980, 981, 982, 984, 985, 983, 986, 987,
1635 988, 989, 990, 991, 992, 993, 994, 995, 996, 997,
1636 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007,
1637 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017,
1638
1639 1018, 1019, 1020, 1021, 1022, 1024, 1025, 1026, 1027, 1023,
1640 1029, 1030, 1033, 1034, 1035, 1028, 1036, 1040, 1031, 1041,
1641 1042, 1043, 1032, 1044, 1045, 1046, 1047, 1048, 1049, 1037,
1642 1050, 1038, 1051, 1052, 1053, 1039, 1054, 1055, 1057, 1058,
1643 1056, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067,
1644 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077,
1645 1078, 1079, 1080, 1081, 1082, 1083, 1058, 1084, 1085, 1086,
1646 1059, 1087, 1088, 1062, 1090, 1091, 1092, 1089, 1093, 1094,
1647 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104,
1648 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1115,
1649
1650 1116, 1117, 1118, 1114, 1119, 1120, 1121, 1122, 1123, 1124,
1651 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
1652 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1144, 1145,
1653 1146, 1143, 1147, 1148, 1149, 1151, 1152, 1153, 1154, 1150,
1654 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164,
1655 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174,
1656 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185,
1657 1186, 1175, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194,
1658 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204,
1659 1207, 1205, 1208, 1209, 1206, 1210, 1211, 1212, 1213, 1214,
1660
1661 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224,
1662 1225, 1226, 1227, 1228, 1229, 1203, 1202, 1230, 1204, 1205,
1663 1206, 1231, 1233, 1234, 1232, 1235, 1236, 1237, 1238, 1239,
1664 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249,
1665 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259,
1666 1260, 1261, 1264, 1265, 1266, 1267, 1262, 1268, 1269, 1270,
1667 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280,
1668 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290,
1669 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300,
1670 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310,
1671
1672 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320,
1673 1321, 1322, 1263, 1323, 1324, 1325, 1326, 1327, 1328, 1329,
1674 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339,
1675 1340, 1342, 1341, 1343, 1344, 1345, 1346, 1347, 1348, 1349,
1676 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359,
1677 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1368, 1339, 1341,
1678 1342, 1343, 1369, 1370, 1367, 1371, 1372, 1373, 1374, 1375,
1679 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385,
1680 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395,
1681 1396, 1398, 1399, 1400, 1401, 1397, 1402, 1403, 1404, 1405,
1682
1683 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415,
1684 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425,
1685 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435,
1686 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445,
1687 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455,
1688 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465,
1689 1466, 1467, 1468, 1469, 1471, 1470, 1472, 1473, 1474, 1475,
1690 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485,
1691 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1468, 1494,
1692 1467, 1470, 1469, 1471, 1495, 1496, 1497, 1498, 1499, 1500,
1693
1694 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510,
1695 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520,
1696 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530,
1697 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540,
1698 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550,
1699 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560,
1700 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570,
1701 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580,
1702 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590,
1703 1591, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601,
1704
1705 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1582, 1583,
1706 1610, 1611, 1584, 1612, 1613, 1614, 1615, 1616, 1617, 1618,
1707 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628,
1708 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1592, 1636, 1637,
1709 1638, 1639, 1640, 1641, 1643, 1644, 1645, 1646, 1647, 1648,
1710 1649, 1642, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657,
1711 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667,
1712 1669, 1670, 1673, 1671, 1668, 1672, 1674, 1675, 1676, 1677,
1713 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687,
1714 1688, 1689, 1692, 1691, 1693, 1694, 1695, 1696, 1697, 1698,
1715
1716 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708,
1717 1709, 1710, 1711, 1712, 1713, 1690, 1688, 1714, 1687, 1691,
1718 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724,
1719 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734,
1720 1735, 1736, 1737, 1690, 1738, 1739, 1740, 1741, 1742, 1743,
1721 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753,
1722 1754, 1755, 1756, 1757, 1761, 1758, 1762, 1763, 1759, 1764,
1723 1765, 1760, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773,
1724 1774, 1775, 1776, 1777, 1778, 1780, 1779, 1781, 1782, 1783,
1725 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1792, 1793, 1794,
1726
1727 1797, 1798, 1795, 1799, 1800, 1801, 1802, 1803, 1804, 1805,
1728 1777, 1778, 1779, 1796, 1780, 1781, 1806, 1807, 1808, 1809,
1729 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1820,
1730 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830,
1731 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840,
1732 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1791, 1848, 1849,
1733 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859,
1734 1860, 1861, 1862, 1863, 1865, 1864, 1866, 1867, 1868, 1869,
1735 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1819,
1736 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1863,
1737
1738 1891, 1862, 1864, 1865, 1888, 1866, 1892, 1893, 1894, 1889,
1739 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904,
1740 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914,
1741 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924,
1742 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934,
1743 1935, 1890, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943,
1744 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953,
1745 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1935, 1961, 1937,
1746 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971,
1747 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981,
1748
1749 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991,
1750 1992, 1993, 1995, 1996, 1997, 1998, 1994, 1999, 2000, 2001,
1751 2003, 2002, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
1752 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
1753 2022, 2023, 2024, 2025, 2026, 2027, 2001, 2002, 2028, 2029,
1754 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039,
1755 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049,
1756 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059,
1757 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069,
1758 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079,
1759
1760 2080, 2055, 2056, 2081, 2057, 2082, 2083, 2084, 2085, 2086,
1761 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096,
1762 2097, 2098, 2099, 2100, 2101, 2103, 2104, 2102, 2105, 2106,
1763 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116,
1764 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126,
1765 2127, 2128, 2129, 2130, 2131, 2132, 2106, 2108, 2133, 2134,
1766 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144,
1767 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154,
1768 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164,
1769 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174,
1770
1771 2175, 2176, 2177, 2152, 2178, 2153, 2179, 2180, 2181, 2182,
1772 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2191, 2190, 2192,
1773 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202,
1774 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212,
1775 2213, 2214, 2215, 2189, 2190, 2216, 2217, 2218, 2219, 2220,
1776 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230,
1777 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240,
1778 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2223, 2249,
1779 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259,
1780 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269,
1781
1782 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279,
1783 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289,
1784 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299,
1785 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2310,
1786 2309, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319,
1787 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329,
1788 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339,
1789 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349,
1790 2350, 2351, 2352, 2353, 2354, 12, 12, 12, 36, 36,
1791 36, 80, 99, 80, 101, 101, 101, 117, 117, 117,
1792
1793 190, 894, 190, 213, 213, 213, 891, 890, 889, 888,
1794 887, 886, 885, 884, 883, 882, 881, 880, 879, 878,
1795 877, 876, 875, 874, 873, 872, 871, 870, 869, 868,
1796 867, 866, 860, 859, 858, 857, 856, 855, 854, 853,
1797 852, 848, 845, 844, 843, 842, 841, 840, 839, 838,
1798 837, 836, 835, 834, 833, 832, 831, 830, 829, 828,
1799 827, 824, 823, 822, 821, 820, 819, 818, 817, 816,
1800 815, 814, 813, 812, 811, 810, 809, 808, 807, 806,
1801 805, 804, 803, 802, 801, 800, 799, 798, 797, 796,
1802 795, 792, 791, 790, 789, 788, 787, 786, 785, 784,
1803
1804 783, 782, 781, 780, 779, 776, 775, 774, 773, 772,
1805 769, 767, 761, 760, 759, 758, 757, 756, 753, 752,
1806 751, 750, 749, 748, 747, 746, 745, 744, 743, 742,
1807 741, 740, 739, 738, 737, 734, 733, 732, 731, 730,
1808 729, 726, 725, 724, 723, 722, 721, 720, 719, 718,
1809 717, 716, 715, 714, 713, 712, 711, 710, 709, 708,
1810 707, 706, 705, 704, 703, 702, 701, 698, 697, 696,
1811 695, 694, 693, 692, 691, 688, 687, 686, 685, 684,
1812 683, 682, 681, 680, 679, 678, 677, 676, 675, 674,
1813 673, 672, 671, 670, 669, 668, 667, 664, 663, 662,
1814
1815 661, 660, 659, 658, 657, 656, 655, 654, 653, 650,
1816 649, 648, 639, 638, 637, 636, 635, 634, 633, 632,
1817 631, 628, 627, 626, 625, 624, 623, 621, 617, 616,
1818 615, 614, 612, 611, 610, 609, 608, 605, 604, 603,
1819 602, 601, 600, 599, 598, 597, 596, 595, 594, 593,
1820 592, 591, 590, 589, 588, 587, 586, 583, 582, 581,
1821 580, 579, 578, 577, 574, 573, 572, 569, 568, 567,
1822 564, 560, 559, 558, 557, 556, 555, 554, 553, 552,
1823 551, 550, 549, 545, 544, 541, 540, 535, 534, 533,
1824 532, 531, 530, 529, 528, 527, 526, 525, 524, 523,
1825
1826 515, 514, 513, 512, 511, 510, 509, 508, 507, 506,
1827 505, 504, 503, 502, 501, 498, 497, 496, 495, 492,
1828 491, 490, 489, 488, 487, 486, 485, 484, 483, 482,
1829 481, 480, 479, 478, 477, 475, 473, 472, 469, 467,
1830 464, 461, 460, 457, 456, 455, 454, 452, 451, 450,
1831 449, 447, 446, 445, 442, 441, 440, 439, 438, 437,
1832 436, 435, 434, 433, 432, 431, 430, 429, 426, 423,
1833 422, 421, 420, 419, 418, 417, 414, 413, 410, 409,
1834 408, 407, 406, 404, 403, 402, 401, 397, 396, 395,
1835 394, 393, 392, 391, 388, 387, 386, 385, 384, 383,
1836
1837 382, 381, 380, 379, 378, 377, 376, 375, 374, 373,
1838 372, 371, 370, 369, 368, 367, 366, 365, 364, 363,
1839 362, 361, 355, 354, 353, 352, 351, 350, 349, 348,
1840 347, 346, 344, 214, 341, 339, 336, 333, 330, 323,
1841 322, 321, 320, 317, 315, 314, 310, 309, 308, 305,
1842 304, 303, 302, 298, 288, 287, 286, 283, 282, 277,
1843 276, 272, 271, 270, 269, 266, 265, 264, 261, 260,
1844 259, 256, 245, 241, 240, 237, 233, 232, 231, 227,
1845 226, 225, 221, 220, 219, 214, 208, 202, 201, 198,
1846 197, 166, 147, 123, 110, 107, 106, 43, 100, 98,
1847
1848 97, 88, 43, 2355, 11, 2355, 2355, 2355, 2355, 2355,
1849 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1850 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1851 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1852 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1853 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1854 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1855 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1856 2355
1857 } ;
1858
1859static const flex_int16_t yy_chk[2882] =
1860 { 0,
1861 0, 1, 1, 1, 0, 1, 1, 44, 1, 1,
1862 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1863 21, 144, 3, 3, 3, 21, 1, 1, 3, 4,
1864 4, 4, 13, 1, 13, 4, 0, 0, 1, 26,
1865 5, 5, 5, 27, 1, 31, 1, 44, 6, 6,
1866 6, 109, 1, 1, 7, 7, 7, 37, 7, 37,
1867 584, 1, 8, 8, 8, 26, 8, 1, 144, 74,
1868 28, 31, 27, 74, 1, 1, 2, 2, 2, 109,
1869 2, 2, 32, 2, 2, 2, 2, 2, 2, 2,
1870 2, 2, 2, 2, 2, 5, 9, 9, 9, 28,
1871
1872 33, 2, 2, 6, 10, 10, 10, 42, 2, 42,
1873 63, 32, 148, 2, 52, 584, 9, 47, 48, 2,
1874 51, 2, 56, 63, 10, 148, 78, 2, 2, 33,
1875 78, 63, 25, 63, 25, 321, 2, 25, 25, 25,
1876 25, 25, 2, 52, 47, 48, 51, 321, 56, 2,
1877 2, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1878 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1879 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1880 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1881 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1882
1883 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1884 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1885 15, 15, 15, 15, 15, 15, 15, 17, 748, 17,
1886 17, 17, 17, 17, 19, 57, 19, 19, 19, 19,
1887 19, 93, 17, 20, 20, 20, 20, 20, 22, 19,
1888 22, 22, 22, 22, 22, 55, 20, 71, 105, 71,
1889 113, 54, 57, 22, 71, 64, 65, 55, 17, 54,
1890 93, 65, 59, 66, 65, 19, 68, 68, 116, 749,
1891 68, 55, 20, 66, 105, 66, 68, 54, 113, 22,
1892 45, 64, 45, 45, 45, 45, 55, 54, 45, 59,
1893
1894 45, 45, 64, 58, 116, 59, 45, 45, 59, 45,
1895 58, 89, 89, 89, 89, 89, 45, 45, 45, 45,
1896 45, 45, 61, 45, 45, 45, 45, 45, 45, 45,
1897 45, 45, 45, 45, 45, 45, 45, 45, 45, 101,
1898 96, 104, 61, 58, 69, 115, 61, 58, 110, 61,
1899 61, 58, 69, 61, 62, 179, 61, 62, 62, 58,
1900 61, 62, 62, 58, 69, 58, 58, 70, 72, 96,
1901 104, 72, 72, 115, 62, 70, 77, 79, 91, 101,
1902 75, 110, 72, 179, 75, 72, 92, 75, 94, 70,
1903 750, 70, 95, 70, 75, 75, 76, 76, 75, 75,
1904
1905 75, 108, 77, 70, 79, 91, 76, 81, 81, 81,
1906 81, 81, 77, 92, 79, 94, 139, 77, 76, 95,
1907 81, 82, 751, 82, 82, 82, 82, 82, 108, 139,
1908 128, 111, 76, 139, 76, 103, 82, 76, 76, 128,
1909 128, 164, 103, 83, 164, 83, 81, 76, 83, 83,
1910 83, 83, 83, 84, 76, 84, 84, 84, 84, 84,
1911 111, 114, 82, 85, 85, 85, 85, 85, 84, 90,
1912 90, 90, 90, 90, 229, 103, 85, 229, 120, 103,
1913 124, 134, 134, 103, 152, 137, 158, 137, 157, 124,
1914 114, 103, 140, 124, 84, 103, 120, 103, 103, 132,
1915
1916 132, 142, 85, 119, 137, 152, 142, 120, 140, 132,
1917 183, 119, 119, 119, 119, 119, 168, 157, 681, 681,
1918 119, 119, 119, 119, 119, 119, 141, 161, 170, 141,
1919 191, 175, 170, 141, 180, 158, 170, 192, 185, 183,
1920 180, 195, 161, 161, 161, 175, 119, 119, 119, 119,
1921 119, 119, 185, 193, 168, 168, 168, 194, 196, 191,
1922 203, 199, 200, 204, 192, 168, 207, 168, 195, 208,
1923 168, 210, 168, 168, 212, 218, 260, 268, 292, 193,
1924 752, 292, 230, 273, 196, 282, 194, 199, 200, 203,
1925 230, 204, 207, 260, 311, 208, 230, 210, 279, 311,
1926
1927 282, 218, 212, 216, 216, 216, 216, 216, 279, 273,
1928 290, 316, 216, 216, 216, 216, 216, 216, 290, 307,
1929 324, 307, 327, 331, 334, 337, 332, 420, 338, 362,
1930 424, 420, 345, 268, 362, 404, 268, 316, 216, 216,
1931 216, 216, 216, 216, 383, 404, 324, 753, 327, 383,
1932 334, 316, 331, 332, 337, 338, 343, 343, 343, 343,
1933 343, 345, 754, 632, 471, 343, 343, 343, 343, 343,
1934 343, 367, 405, 384, 398, 398, 398, 367, 384, 401,
1935 398, 418, 424, 428, 436, 401, 418, 428, 436, 465,
1936 471, 343, 343, 343, 343, 343, 343, 457, 476, 483,
1937
1938 383, 405, 457, 499, 538, 383, 715, 473, 495, 473,
1939 513, 483, 495, 618, 538, 513, 499, 755, 465, 632,
1940 495, 619, 495, 495, 495, 495, 495, 476, 548, 607,
1941 620, 577, 607, 548, 384, 473, 577, 473, 647, 618,
1942 756, 647, 418, 474, 474, 474, 474, 474, 614, 619,
1943 758, 626, 474, 474, 474, 474, 474, 474, 626, 620,
1944 622, 702, 704, 614, 746, 622, 715, 704, 716, 702,
1945 759, 762, 763, 716, 614, 764, 746, 765, 474, 474,
1946 474, 474, 474, 474, 766, 767, 768, 769, 770, 771,
1947 772, 773, 614, 774, 775, 776, 777, 778, 779, 763,
1948
1949 762, 780, 764, 782, 704, 783, 765, 784, 781, 781,
1950 766, 781, 785, 786, 787, 716, 788, 789, 790, 791,
1951 792, 793, 794, 795, 796, 797, 798, 799, 800, 801,
1952 802, 803, 804, 805, 806, 807, 804, 808, 809, 810,
1953 804, 811, 812, 813, 814, 815, 816, 817, 818, 819,
1954 820, 821, 822, 823, 824, 825, 826, 827, 828, 829,
1955 830, 831, 832, 833, 834, 835, 836, 834, 837, 839,
1956 840, 841, 842, 843, 844, 845, 846, 847, 848, 850,
1957 851, 852, 853, 854, 855, 856, 857, 858, 859, 860,
1958 862, 864, 865, 866, 867, 868, 869, 870, 871, 872,
1959
1960 873, 874, 875, 876, 877, 878, 879, 880, 881, 877,
1961 882, 883, 884, 885, 886, 881, 887, 888, 883, 889,
1962 890, 891, 883, 893, 894, 895, 896, 897, 898, 887,
1963 899, 887, 900, 901, 902, 887, 903, 904, 905, 906,
1964 904, 907, 908, 909, 910, 911, 912, 913, 914, 915,
1965 916, 917, 918, 919, 920, 921, 924, 925, 926, 927,
1966 928, 929, 930, 931, 932, 933, 906, 934, 935, 936,
1967 907, 937, 938, 910, 939, 940, 941, 938, 942, 943,
1968 944, 945, 946, 947, 949, 950, 951, 952, 953, 954,
1969 955, 956, 957, 958, 960, 961, 962, 963, 964, 965,
1970
1971 966, 967, 968, 964, 969, 970, 971, 972, 973, 974,
1972 975, 976, 979, 980, 981, 982, 983, 984, 985, 987,
1973 988, 989, 990, 991, 992, 994, 995, 996, 997, 998,
1974 999, 996, 1000, 1001, 1002, 1004, 1005, 1008, 1009, 1002,
1975 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019,
1976 1020, 1021, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030,
1977 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040,
1978 1041, 1030, 1042, 1043, 1045, 1046, 1047, 1048, 1049, 1050,
1979 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060,
1980 1063, 1061, 1064, 1065, 1062, 1066, 1067, 1068, 1070, 1071,
1981
1982 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081,
1983 1082, 1083, 1084, 1085, 1086, 1059, 1058, 1087, 1060, 1061,
1984 1062, 1089, 1090, 1091, 1089, 1092, 1093, 1094, 1095, 1096,
1985 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106,
1986 1107, 1108, 1109, 1110, 1111, 1112, 1114, 1115, 1116, 1117,
1987 1118, 1119, 1120, 1121, 1123, 1124, 1119, 1125, 1126, 1127,
1988 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137,
1989 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147,
1990 1148, 1150, 1151, 1153, 1154, 1156, 1157, 1158, 1159, 1161,
1991 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171,
1992
1993 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1180, 1181, 1182,
1994 1183, 1184, 1119, 1186, 1187, 1188, 1189, 1190, 1191, 1192,
1995 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202,
1996 1203, 1205, 1204, 1206, 1208, 1209, 1210, 1211, 1212, 1214,
1997 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224,
1998 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1202, 1204,
1999 1205, 1206, 1233, 1234, 1231, 1235, 1236, 1237, 1239, 1240,
2000 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251,
2001 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1262,
2002 1263, 1264, 1265, 1266, 1267, 1263, 1268, 1269, 1270, 1271,
2003
2004 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281,
2005 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291,
2006 1292, 1293, 1294, 1295, 1296, 1297, 1299, 1300, 1301, 1302,
2007 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1311, 1312, 1315,
2008 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325,
2009 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1335, 1337,
2010 1338, 1339, 1340, 1341, 1343, 1342, 1344, 1345, 1346, 1347,
2011 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357,
2012 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1340, 1367,
2013 1339, 1342, 1341, 1343, 1368, 1369, 1370, 1372, 1373, 1374,
2014
2015 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384,
2016 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1395, 1397,
2017 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407,
2018 1408, 1409, 1410, 1411, 1412, 1413, 1415, 1417, 1418, 1419,
2019 1421, 1422, 1423, 1425, 1426, 1427, 1428, 1431, 1432, 1433,
2020 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443,
2021 1444, 1445, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454,
2022 1455, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466,
2023 1467, 1468, 1469, 1470, 1471, 1473, 1474, 1475, 1476, 1477,
2024 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488,
2025
2026 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1468, 1469,
2027 1497, 1498, 1470, 1499, 1500, 1501, 1502, 1503, 1504, 1505,
2028 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516,
2029 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1479, 1524, 1525,
2030 1526, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536,
2031 1537, 1530, 1538, 1539, 1541, 1542, 1543, 1544, 1545, 1546,
2032 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1556, 1557,
2033 1558, 1559, 1563, 1561, 1557, 1561, 1564, 1565, 1569, 1570,
2034 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1580, 1581,
2035 1582, 1583, 1586, 1584, 1587, 1588, 1589, 1590, 1592, 1593,
2036
2037 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603,
2038 1604, 1605, 1608, 1609, 1610, 1583, 1582, 1611, 1581, 1584,
2039 1612, 1613, 1615, 1616, 1618, 1619, 1620, 1621, 1622, 1623,
2040 1624, 1625, 1626, 1627, 1628, 1629, 1632, 1634, 1636, 1637,
2041 1639, 1640, 1641, 1583, 1642, 1643, 1644, 1645, 1646, 1647,
2042 1648, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1658, 1662,
2043 1663, 1665, 1666, 1668, 1669, 1668, 1670, 1671, 1668, 1672,
2044 1673, 1668, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681,
2045 1683, 1685, 1686, 1687, 1688, 1690, 1689, 1691, 1692, 1694,
2046 1695, 1697, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706,
2047
2048 1708, 1709, 1707, 1710, 1711, 1712, 1713, 1714, 1716, 1717,
2049 1687, 1688, 1689, 1707, 1690, 1691, 1718, 1719, 1721, 1722,
2050 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1729, 1730, 1731,
2051 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741,
2052 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1752,
2053 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1703, 1760, 1761,
2054 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1773,
2055 1774, 1775, 1777, 1778, 1780, 1779, 1781, 1783, 1784, 1787,
2056 1788, 1789, 1791, 1793, 1794, 1795, 1796, 1797, 1798, 1730,
2057 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1808, 1778,
2058
2059 1810, 1777, 1779, 1780, 1809, 1781, 1811, 1812, 1813, 1809,
2060 1814, 1815, 1816, 1817, 1819, 1820, 1821, 1823, 1824, 1826,
2061 1827, 1828, 1830, 1831, 1832, 1833, 1834, 1835, 1838, 1839,
2062 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849,
2063 1850, 1851, 1852, 1853, 1855, 1856, 1857, 1858, 1859, 1860,
2064 1862, 1809, 1863, 1864, 1865, 1866, 1868, 1869, 1870, 1873,
2065 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883,
2066 1884, 1885, 1886, 1887, 1889, 1890, 1891, 1862, 1892, 1864,
2067 1893, 1894, 1896, 1897, 1898, 1900, 1901, 1902, 1903, 1904,
2068 1905, 1906, 1907, 1908, 1909, 1911, 1912, 1913, 1914, 1915,
2069
2070 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925,
2071 1926, 1927, 1929, 1931, 1932, 1933, 1927, 1934, 1935, 1937,
2072 1940, 1938, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949,
2073 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960,
2074 1961, 1962, 1963, 1964, 1965, 1966, 1937, 1938, 1967, 1968,
2075 1969, 1970, 1971, 1973, 1974, 1975, 1976, 1978, 1979, 1980,
2076 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1991,
2077 1993, 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003, 2004,
2078 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013, 2014, 2015,
2079 2016, 2017, 2018, 2019, 2021, 2022, 2023, 2024, 2025, 2026,
2080
2081 2029, 2000, 2001, 2030, 2002, 2031, 2032, 2033, 2034, 2035,
2082 2036, 2037, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046,
2083 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2051, 2054, 2055,
2084 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065,
2085 2066, 2067, 2068, 2070, 2071, 2072, 2073, 2074, 2075, 2076,
2086 2077, 2078, 2079, 2080, 2081, 2082, 2055, 2057, 2084, 2086,
2087 2088, 2089, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098,
2088 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2108, 2110,
2089 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120,
2090 2121, 2122, 2124, 2125, 2126, 2128, 2129, 2130, 2131, 2132,
2091
2092 2134, 2135, 2137, 2106, 2139, 2108, 2140, 2142, 2143, 2144,
2093 2145, 2146, 2147, 2148, 2149, 2151, 2152, 2154, 2153, 2155,
2094 2156, 2157, 2158, 2159, 2160, 2162, 2163, 2164, 2165, 2166,
2095 2167, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177,
2096 2178, 2179, 2180, 2152, 2153, 2181, 2182, 2184, 2185, 2186,
2097 2187, 2188, 2189, 2190, 2191, 2192, 2194, 2195, 2196, 2197,
2098 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207,
2099 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2189, 2216,
2100 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2226, 2227, 2228,
2101 2230, 2231, 2232, 2233, 2235, 2236, 2237, 2238, 2239, 2244,
2102
2103 2245, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2257, 2258,
2104 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2271,
2105 2272, 2273, 2274, 2275, 2276, 2278, 2279, 2281, 2283, 2284,
2106 2285, 2286, 2287, 2288, 2289, 2291, 2292, 2293, 2294, 2295,
2107 2294, 2296, 2297, 2298, 2299, 2301, 2302, 2305, 2306, 2307,
2108 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317,
2109 2318, 2319, 2320, 2321, 2322, 2324, 2325, 2327, 2328, 2331,
2110 2332, 2333, 2334, 2336, 2337, 2339, 2341, 2343, 2344, 2345,
2111 2346, 2347, 2348, 2349, 2351, 2356, 2356, 2356, 2357, 2357,
2112 2357, 2358, 2359, 2358, 2360, 2360, 2360, 2361, 2361, 2361,
2113
2114 2362, 747, 2362, 2363, 2363, 2363, 745, 744, 743, 742,
2115 740, 739, 738, 737, 736, 735, 734, 733, 732, 731,
2116 730, 729, 728, 726, 725, 724, 723, 721, 720, 719,
2117 718, 717, 713, 712, 711, 710, 709, 708, 707, 706,
2118 705, 703, 701, 700, 698, 697, 696, 695, 694, 693,
2119 692, 691, 690, 689, 688, 687, 686, 685, 684, 683,
2120 682, 680, 679, 678, 677, 676, 675, 672, 671, 670,
2121 669, 668, 667, 666, 664, 663, 662, 661, 660, 659,
2122 658, 657, 656, 655, 654, 653, 652, 651, 650, 649,
2123 648, 646, 645, 644, 643, 642, 641, 640, 639, 638,
2124
2125 637, 636, 635, 634, 633, 631, 630, 629, 628, 627,
2126 624, 621, 613, 612, 611, 610, 609, 608, 605, 602,
2127 600, 598, 597, 596, 595, 594, 593, 592, 591, 590,
2128 589, 588, 587, 586, 585, 583, 582, 581, 580, 579,
2129 578, 576, 575, 574, 573, 572, 571, 570, 569, 568,
2130 567, 566, 565, 563, 562, 560, 559, 558, 557, 556,
2131 555, 554, 553, 552, 551, 550, 549, 547, 546, 544,
2132 543, 542, 541, 540, 539, 537, 536, 535, 534, 533,
2133 532, 531, 530, 529, 528, 527, 526, 525, 524, 523,
2134 522, 521, 519, 518, 517, 515, 514, 512, 511, 510,
2135
2136 509, 508, 507, 506, 505, 504, 502, 501, 500, 498,
2137 497, 496, 494, 492, 491, 490, 489, 488, 487, 485,
2138 484, 482, 481, 480, 479, 478, 477, 475, 470, 468,
2139 467, 466, 464, 461, 460, 459, 458, 456, 455, 454,
2140 453, 452, 451, 450, 449, 448, 447, 446, 445, 444,
2141 443, 442, 441, 440, 439, 438, 437, 435, 434, 433,
2142 432, 431, 430, 429, 427, 426, 425, 423, 422, 421,
2143 419, 417, 416, 415, 414, 413, 412, 411, 410, 409,
2144 408, 407, 406, 403, 402, 400, 399, 397, 396, 395,
2145 394, 393, 392, 391, 390, 389, 388, 387, 386, 385,
2146
2147 382, 381, 380, 379, 378, 377, 376, 375, 374, 373,
2148 372, 371, 370, 369, 368, 366, 365, 364, 363, 361,
2149 360, 359, 358, 357, 356, 355, 354, 353, 352, 351,
2150 350, 349, 348, 347, 346, 344, 342, 340, 335, 333,
2151 330, 323, 322, 320, 319, 318, 317, 315, 314, 313,
2152 312, 310, 309, 308, 306, 305, 304, 303, 302, 301,
2153 300, 299, 298, 297, 296, 295, 294, 293, 291, 289,
2154 288, 287, 286, 285, 284, 283, 281, 280, 278, 277,
2155 276, 275, 274, 272, 271, 270, 269, 267, 266, 265,
2156 264, 263, 262, 261, 259, 258, 256, 255, 254, 253,
2157
2158 252, 251, 250, 249, 248, 247, 246, 245, 244, 243,
2159 242, 241, 240, 239, 238, 237, 236, 235, 234, 233,
2160 232, 231, 228, 227, 226, 225, 224, 223, 222, 221,
2161 220, 219, 217, 213, 211, 209, 206, 201, 197, 189,
2162 188, 187, 186, 184, 182, 181, 178, 177, 176, 174,
2163 173, 172, 171, 169, 167, 166, 165, 163, 162, 160,
2164 159, 156, 155, 154, 153, 151, 150, 149, 147, 146,
2165 145, 143, 138, 136, 135, 133, 131, 130, 129, 127,
2166 126, 125, 123, 122, 121, 117, 112, 107, 106, 99,
2167 98, 73, 67, 60, 53, 50, 49, 43, 41, 39,
2168
2169 38, 24, 14, 11, 2355, 2355, 2355, 2355, 2355, 2355,
2170 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
2171 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
2172 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
2173 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
2174 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
2175 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
2176 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
2177 2355
2178 } ;
2179
2180static yy_state_type yy_last_accepting_state;
2181static char *yy_last_accepting_cpos;
2182
2183extern int yy_flex_debug;
2185
2186static const flex_int16_t yy_rule_linenum[251] =
2187 { 0,
2188 149, 151, 153, 158, 159, 164, 165, 166, 178, 180,
2189 185, 191, 200, 209, 218, 227, 236, 245, 254, 263,
2190 275, 287, 297, 307, 317, 327, 337, 346, 356, 366,
2191 376, 386, 395, 404, 413, 422, 431, 440, 449, 458,
2192 467, 476, 485, 494, 503, 512, 521, 530, 539, 548,
2193 562, 574, 586, 597, 608, 620, 631, 642, 653, 664,
2194 675, 686, 697, 706, 715, 724, 735, 746, 755, 767,
2195 779, 791, 802, 811, 820, 829, 838, 847, 858, 870,
2196 882, 894, 906, 918, 930, 941, 952, 961, 970, 979,
2197 990, 1001, 1010, 1019, 1031, 1043, 1055, 1067, 1079, 1091,
2198
2199 1103, 1114, 1126, 1135, 1144, 1153, 1162, 1174, 1186, 1198,
2200 1210, 1220, 1231, 1240, 1249, 1264, 1281, 1290, 1299, 1308,
2201 1317, 1326, 1335, 1344, 1353, 1362, 1371, 1380, 1390, 1417,
2202 1444, 1453, 1463, 1473, 1482, 1492, 1503, 1514, 1525, 1535,
2203 1544, 1553, 1562, 1573, 1584, 1595, 1606, 1617, 1626, 1635,
2204 1644, 1653, 1662, 1671, 1680, 1689, 1698, 1707, 1722, 1734,
2205 1746, 1759, 1768, 1777, 1786, 1795, 1805, 1815, 1824, 1833,
2206 1844, 1854, 1863, 1873, 1883, 1892, 1901, 1910, 1919, 1929,
2207 1938, 1947, 1956, 1965, 1974, 1983, 1992, 2001, 2010, 2019,
2208 2028, 2037, 2046, 2055, 2064, 2073, 2082, 2091, 2100, 2109,
2209
2210 2118, 2127, 2136, 2145, 2154, 2163, 2172, 2181, 2190, 2199,
2211 2208, 2217, 2226, 2235, 2244, 2253, 2262, 2271, 2280, 2289,
2212 2298, 2307, 2316, 2325, 2334, 2343, 2352, 2361, 2370, 2379,
2213 2388, 2397, 2498, 2514, 2563, 2571, 2586, 2587, 2588, 2589,
2214 2590, 2591, 2593, 2611, 2624, 2629, 2633, 2635, 2637, 2639
2215 } ;
2216
2217/* The intent behind this definition is that it'll catch
2218 * any uses of REJECT which flex missed.
2219 */
2220#define REJECT reject_used_but_not_detected
2221#define yymore() yymore_used_but_not_detected
2222#define YY_MORE_ADJ 0
2223#define YY_RESTORE_YY_MORE_OFFSET
2225#line 1 "dhcp6_lexer.ll"
2226/* Copyright (C) 2016-2025 Internet Systems Consortium, Inc. ("ISC")
2227
2228 This Source Code Form is subject to the terms of the Mozilla Public
2229 License, v. 2.0. If a copy of the MPL was not distributed with this
2230 file, You can obtain one at http://mozilla.org/MPL/2.0/. */
2231#line 8 "dhcp6_lexer.ll"
2232
2233/* Generated files do not make clang static analyser so happy */
2234#ifndef __clang_analyzer__
2235
2236#include <cctype>
2237#include <cerrno>
2238#include <climits>
2239#include <cstdint>
2240#include <cstdlib>
2241#include <string>
2242#include <dhcp6/parser_context.h>
2243#include <asiolink/io_address.h>
2244#include <boost/lexical_cast.hpp>
2245#include <exceptions/exceptions.h>
2246
2247/* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
2248
2249/* Work around an incompatibility in flex (at least versions
2250 2.5.31 through 2.5.33): it generates code that does
2251 not conform to C89. See Debian bug 333231
2252 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
2253# undef yywrap
2254# define yywrap() 1
2255
2256namespace {
2257
2258bool start_token_flag = false;
2259
2261unsigned int comment_start_line = 0;
2262
2263using namespace isc::dhcp;
2264
2265};
2266
2267/* To avoid the call to exit... oops! */
2268#define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
2269#line 2269 "dhcp6_lexer.cc"
2270/* noyywrap disables automatic rewinding for the next file to parse. Since we
2271 always parse only a single string, there's no need to do any wraps. And
2272 using yywrap requires linking with -lfl, which provides the default yywrap
2273 implementation that always returns 1 anyway. */
2274/* nounput simplifies the lexer, by removing support for putting a character
2275 back into the input stream. We never use such capability anyway. */
2276/* batch means that we'll never use the generated lexer interactively. */
2277/* avoid to get static global variables to remain with C++. */
2278/* in last resort %option reentrant */
2279/* Enables debug mode. To see the debug messages, one needs to also set
2280 yy_flex_debug to 1, then the debug messages will be printed on stderr. */
2281/* I have no idea what this option does, except it was specified in the bison
2282 examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
2283 be on the safe side and keep it. */
2284#define YY_NO_INPUT 1
2285
2286/* These are not token expressions yet, just convenience expressions that
2287 can be used during actual token definitions. Note some can match
2288 incorrect inputs (e.g., IP addresses) which must be checked. */
2289/* for errors */
2290#line 96 "dhcp6_lexer.ll"
2291/* This code run each time a pattern is matched. It updates the location
2292 by moving it ahead by yyleng bytes. yyleng specifies the length of the
2293 currently matched token. */
2294#define YY_USER_ACTION driver.loc_.columns(yyleng);
2295#line 2295 "dhcp6_lexer.cc"
2296#line 2296 "dhcp6_lexer.cc"
2297
2298#define INITIAL 0
2299#define COMMENT 1
2300#define DIR_ENTER 2
2301#define DIR_INCLUDE 3
2302#define DIR_EXIT 4
2303
2304#ifndef YY_NO_UNISTD_H
2305/* Special case for "unistd.h", since it is non-ANSI. We include it way
2306 * down here because we want the user's section 1 to have been scanned first.
2307 * The user has a chance to override it with an option.
2308 */
2309/* %if-c-only */
2310#include <unistd.h>
2311/* %endif */
2312/* %if-c++-only */
2313/* %endif */
2314#endif
2315
2316#ifndef YY_EXTRA_TYPE
2317#define YY_EXTRA_TYPE void *
2318#endif
2319
2320/* %if-c-only Reentrant structure and macros (non-C++). */
2321/* %if-reentrant */
2322/* %if-c-only */
2323
2324static int yy_init_globals ( void );
2325
2326/* %endif */
2327/* %if-reentrant */
2328/* %endif */
2329/* %endif End reentrant structures and macros. */
2330
2331/* Accessor methods to globals.
2332 These are made visible to non-reentrant scanners for convenience. */
2333
2334int yylex_destroy ( void );
2335
2336int yyget_debug ( void );
2337
2338void yyset_debug ( int debug_flag );
2339
2340YY_EXTRA_TYPE yyget_extra ( void );
2341
2342void yyset_extra ( YY_EXTRA_TYPE user_defined );
2343
2344FILE *yyget_in ( void );
2345
2346void yyset_in ( FILE * _in_str );
2347
2348FILE *yyget_out ( void );
2349
2350void yyset_out ( FILE * _out_str );
2351
2352 int yyget_leng ( void );
2353
2354char *yyget_text ( void );
2355
2356int yyget_lineno ( void );
2357
2358void yyset_lineno ( int _line_number );
2359
2360/* %if-bison-bridge */
2361/* %endif */
2362
2363/* Macros after this point can all be overridden by user definitions in
2364 * section 1.
2365 */
2366
2367#ifndef YY_SKIP_YYWRAP
2368#ifdef __cplusplus
2369extern "C" int yywrap ( void );
2370#else
2371extern int yywrap ( void );
2372#endif
2373#endif
2374
2375/* %not-for-header */
2376#ifndef YY_NO_UNPUT
2377
2378#endif
2379/* %ok-for-header */
2380
2381/* %endif */
2382
2383#ifndef yytext_ptr
2384static void yy_flex_strncpy ( char *, const char *, int );
2385#endif
2386
2387#ifdef YY_NEED_STRLEN
2388static int yy_flex_strlen ( const char * );
2389#endif
2390
2391#ifndef YY_NO_INPUT
2392/* %if-c-only Standard (non-C++) definition */
2393/* %not-for-header */
2394#ifdef __cplusplus
2395static int yyinput ( void );
2396#else
2397static int input ( void );
2398#endif
2399/* %ok-for-header */
2400
2401/* %endif */
2402#endif
2403
2404/* %if-c-only */
2405
2406/* %endif */
2407
2408/* Amount of stuff to slurp up with each read. */
2409#ifndef YY_READ_BUF_SIZE
2410#ifdef __ia64__
2411/* On IA-64, the buffer size is 16k, not 8k */
2412#define YY_READ_BUF_SIZE 16384
2413#else
2414#define YY_READ_BUF_SIZE 8192
2415#endif /* __ia64__ */
2416#endif
2417
2418/* Copy whatever the last rule matched to the standard output. */
2419#ifndef ECHO
2420/* %if-c-only Standard (non-C++) definition */
2421/* This used to be an fputs(), but since the string might contain NUL's,
2422 * we now use fwrite().
2423 */
2424#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2425/* %endif */
2426/* %if-c++-only C++ definition */
2427/* %endif */
2428#endif
2429
2430/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2431 * is returned in "result".
2432 */
2433#ifndef YY_INPUT
2434#define YY_INPUT(buf,result,max_size) \
2435/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2436 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2437 { \
2438 int c = '*'; \
2439 int n; \
2440 for ( n = 0; n < max_size && \
2441 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2442 buf[n] = (char) c; \
2443 if ( c == '\n' ) \
2444 buf[n++] = (char) c; \
2445 if ( c == EOF && ferror( yyin ) ) \
2446 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2447 result = n; \
2448 } \
2449 else \
2450 { \
2451 errno=0; \
2452 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2453 { \
2454 if( errno != EINTR) \
2455 { \
2456 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2457 break; \
2458 } \
2459 errno=0; \
2460 clearerr(yyin); \
2461 } \
2462 }\
2463\
2464/* %if-c++-only C++ definition \ */\
2465/* %endif */
2466
2467#endif
2468
2469/* No semi-colon after return; correct usage is to write "yyterminate();" -
2470 * we don't want an extra ';' after the "return" because that will cause
2471 * some compilers to complain about unreachable statements.
2472 */
2473#ifndef yyterminate
2474#define yyterminate() return YY_NULL
2475#endif
2476
2477/* Number of entries by which start-condition stack grows. */
2478#ifndef YY_START_STACK_INCR
2479#define YY_START_STACK_INCR 25
2480#endif
2481
2482/* Report a fatal error. */
2483#ifndef YY_FATAL_ERROR
2484/* %if-c-only */
2485#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2486/* %endif */
2487/* %if-c++-only */
2488/* %endif */
2489#endif
2490
2491/* %if-tables-serialization structures and prototypes */
2492/* %not-for-header */
2493/* %ok-for-header */
2494
2495/* %not-for-header */
2496/* %tables-yydmap generated elements */
2497/* %endif */
2498/* end tables serialization structures and prototypes */
2499
2500/* %ok-for-header */
2501
2502/* Default declaration of generated scanner - a define so the user can
2503 * easily add parameters.
2504 */
2505#ifndef YY_DECL
2506#define YY_DECL_IS_OURS 1
2507/* %if-c-only Standard (non-C++) definition */
2508
2509extern int yylex (void);
2510
2511#define YY_DECL int yylex (void)
2512/* %endif */
2513/* %if-c++-only C++ definition */
2514/* %endif */
2515#endif /* !YY_DECL */
2516
2517/* Code executed at the beginning of each rule, after yytext and yyleng
2518 * have been set up.
2519 */
2520#ifndef YY_USER_ACTION
2521#define YY_USER_ACTION
2522#endif
2523
2524/* Code executed at the end of each rule. */
2525#ifndef YY_BREAK
2526#define YY_BREAK /*LINTED*/break;
2527#endif
2528
2529/* %% [6.0] YY_RULE_SETUP definition goes here */
2530#define YY_RULE_SETUP \
2531 YY_USER_ACTION
2532
2533/* %not-for-header */
2537{
2538 yy_state_type yy_current_state;
2539 char *yy_cp, *yy_bp;
2541
2542 if ( !(yy_init) )
2543 {
2544 (yy_init) = 1;
2545
2546#ifdef YY_USER_INIT
2547 YY_USER_INIT;
2548#endif
2549
2550 if ( ! (yy_start) )
2551 (yy_start) = 1; /* first start state */
2552
2553 if ( ! yyin )
2554/* %if-c-only */
2555 yyin = stdin;
2556/* %endif */
2557/* %if-c++-only */
2558/* %endif */
2559
2560 if ( ! yyout )
2561/* %if-c-only */
2562 yyout = stdout;
2563/* %endif */
2564/* %if-c++-only */
2565/* %endif */
2566
2567 if ( ! YY_CURRENT_BUFFER ) {
2571 }
2572
2574 }
2575
2576 {
2577/* %% [7.0] user's declarations go here */
2578#line 102 "dhcp6_lexer.ll"
2579
2580
2581
2582#line 106 "dhcp6_lexer.ll"
2583 /* This part of the code is copied over to the verbatim to the top
2584 of the generated yylex function. Explanation:
2585 http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2586
2587 /* Code run each time yylex is called. */
2588 driver.loc_.step();
2589
2590 if (start_token_flag) {
2591 start_token_flag = false;
2592 switch (start_token_value) {
2594 default:
2599 return isc::dhcp::Dhcp6Parser::make_SUB_DHCP6(driver.loc_);
2603 return isc::dhcp::Dhcp6Parser::make_SUB_SUBNET6(driver.loc_);
2605 return isc::dhcp::Dhcp6Parser::make_SUB_POOL6(driver.loc_);
2607 return isc::dhcp::Dhcp6Parser::make_SUB_PD_POOL(driver.loc_);
2622 }
2623 }
2624
2625
2626#line 2626 "dhcp6_lexer.cc"
2627
2628 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2629 {
2630/* %% [8.0] yymore()-related code goes here */
2631 yy_cp = (yy_c_buf_p);
2632
2633 /* Support of yytext. */
2634 *yy_cp = (yy_hold_char);
2635
2636 /* yy_bp points to the position in yy_ch_buf of the start of
2637 * the current run.
2638 */
2639 yy_bp = yy_cp;
2640
2641/* %% [9.0] code to set up and find next match goes here */
2642 yy_current_state = (yy_start);
2643yy_match:
2644 do
2645 {
2646 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2647 if ( yy_accept[yy_current_state] )
2648 {
2649 (yy_last_accepting_state) = yy_current_state;
2650 (yy_last_accepting_cpos) = yy_cp;
2651 }
2652 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2653 {
2654 yy_current_state = (int) yy_def[yy_current_state];
2655 if ( yy_current_state >= 2356 )
2656 yy_c = yy_meta[yy_c];
2657 }
2658 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2659 ++yy_cp;
2660 }
2661 while ( yy_current_state != 2355 );
2662 yy_cp = (yy_last_accepting_cpos);
2663 yy_current_state = (yy_last_accepting_state);
2664
2665yy_find_action:
2666/* %% [10.0] code to find the action number goes here */
2667 yy_act = yy_accept[yy_current_state];
2668
2670
2671/* %% [11.0] code for yylineno update goes here */
2672
2673do_action: /* This label is used only to access EOF actions. */
2674
2675/* %% [12.0] debug code goes here */
2676 if ( yy_flex_debug )
2677 {
2678 if ( yy_act == 0 )
2679 fprintf( stderr, "--scanner backing up\n" );
2680 else if ( yy_act < 251 )
2681 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2682 (long)yy_rule_linenum[yy_act], yytext );
2683 else if ( yy_act == 251 )
2684 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2685 yytext );
2686 else if ( yy_act == 252 )
2687 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2688 else
2689 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2690 }
2691
2692 switch ( yy_act )
2693 { /* beginning of action switch */
2694/* %% [13.0] actions go here */
2695 case 0: /* must back up */
2696 /* undo the effects of YY_DO_BEFORE_ACTION */
2697 *yy_cp = (yy_hold_char);
2698 yy_cp = (yy_last_accepting_cpos);
2699 yy_current_state = (yy_last_accepting_state);
2700 goto yy_find_action;
2701
2702case 1:
2704#line 149 "dhcp6_lexer.ll"
2705;
2706 YY_BREAK
2707case 2:
2709#line 151 "dhcp6_lexer.ll"
2710;
2711 YY_BREAK
2712case 3:
2714#line 153 "dhcp6_lexer.ll"
2715{
2716 BEGIN(COMMENT);
2717 comment_start_line = driver.loc_.end.line;;
2718}
2719 YY_BREAK
2720case 4:
2722#line 158 "dhcp6_lexer.ll"
2723BEGIN(INITIAL);
2724 YY_BREAK
2725case 5:
2727#line 159 "dhcp6_lexer.ll"
2728;
2729 YY_BREAK
2730case YY_STATE_EOF(COMMENT):
2731#line 160 "dhcp6_lexer.ll"
2732{
2733 isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line);
2734}
2735 YY_BREAK
2736case 6:
2738#line 164 "dhcp6_lexer.ll"
2740 YY_BREAK
2741case 7:
2743#line 165 "dhcp6_lexer.ll"
2745 YY_BREAK
2746case 8:
2748#line 166 "dhcp6_lexer.ll"
2749{
2750 /* Include directive. */
2751
2752 /* Extract the filename. */
2753 std::string tmp(yytext+1);
2754 tmp.resize(tmp.size() - 1);
2755
2756 driver.includeFile(tmp);
2757}
2758 YY_BREAK
2762#line 175 "dhcp6_lexer.ll"
2763{
2764 isc_throw(Dhcp6ParseError, "Directive not closed.");
2765}
2766 YY_BREAK
2767case 9:
2769#line 178 "dhcp6_lexer.ll"
2770BEGIN(INITIAL);
2771 YY_BREAK
2772case 10:
2774#line 180 "dhcp6_lexer.ll"
2775{
2776 /* Ok, we found a with space. Let's ignore it and update loc variable. */
2777 driver.loc_.step();
2778}
2779 YY_BREAK
2780case 11:
2781/* rule 11 can match eol */
2783#line 185 "dhcp6_lexer.ll"
2784{
2785 /* Newline found. Let's update the location and continue. */
2786 driver.loc_.lines(yyleng);
2787 driver.loc_.step();
2788}
2789 YY_BREAK
2790case 12:
2792#line 191 "dhcp6_lexer.ll"
2793{
2794 switch(driver.ctx_) {
2797 default:
2798 return isc::dhcp::Dhcp6Parser::make_STRING("enable-updates", driver.loc_);
2799 }
2800}
2801 YY_BREAK
2802case 13:
2804#line 200 "dhcp6_lexer.ll"
2805{
2806 switch(driver.ctx_) {
2808 return isc::dhcp::Dhcp6Parser::make_SERVER_IP(driver.loc_);
2809 default:
2810 return isc::dhcp::Dhcp6Parser::make_STRING("server-ip", driver.loc_);
2811 }
2812}
2813 YY_BREAK
2814case 14:
2816#line 209 "dhcp6_lexer.ll"
2817{
2818 switch(driver.ctx_) {
2820 return isc::dhcp::Dhcp6Parser::make_SERVER_PORT(driver.loc_);
2821 default:
2822 return isc::dhcp::Dhcp6Parser::make_STRING("server-port", driver.loc_);
2823 }
2824}
2825 YY_BREAK
2826case 15:
2828#line 218 "dhcp6_lexer.ll"
2829{
2830 switch(driver.ctx_) {
2832 return isc::dhcp::Dhcp6Parser::make_SENDER_IP(driver.loc_);
2833 default:
2834 return isc::dhcp::Dhcp6Parser::make_STRING("sender-ip", driver.loc_);
2835 }
2836}
2837 YY_BREAK
2838case 16:
2840#line 227 "dhcp6_lexer.ll"
2841{
2842 switch(driver.ctx_) {
2844 return isc::dhcp::Dhcp6Parser::make_SENDER_PORT(driver.loc_);
2845 default:
2846 return isc::dhcp::Dhcp6Parser::make_STRING("sender-port", driver.loc_);
2847 }
2848}
2849 YY_BREAK
2850case 17:
2852#line 236 "dhcp6_lexer.ll"
2853{
2854 switch(driver.ctx_) {
2857 default:
2858 return isc::dhcp::Dhcp6Parser::make_STRING("max-queue-size", driver.loc_);
2859 }
2860}
2861 YY_BREAK
2862case 18:
2864#line 245 "dhcp6_lexer.ll"
2865{
2866 switch(driver.ctx_) {
2869 default:
2870 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-protocol", driver.loc_);
2871 }
2872}
2873 YY_BREAK
2874case 19:
2876#line 254 "dhcp6_lexer.ll"
2877{
2878 switch(driver.ctx_) {
2880 return isc::dhcp::Dhcp6Parser::make_NCR_FORMAT(driver.loc_);
2881 default:
2882 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-format", driver.loc_);
2883 }
2884}
2885 YY_BREAK
2886case 20:
2888#line 263 "dhcp6_lexer.ll"
2889{
2890 switch(driver.ctx_) {
2896 default:
2897 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-set", driver.loc_);
2898 }
2899}
2900 YY_BREAK
2901case 21:
2903#line 275 "dhcp6_lexer.ll"
2904{
2905 switch(driver.ctx_) {
2911 default:
2912 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-replacement", driver.loc_);
2913 }
2914}
2915 YY_BREAK
2916case 22:
2918#line 287 "dhcp6_lexer.ll"
2919{
2920 /* dhcp-ddns value keywords are case insensitive */
2921 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2922 return isc::dhcp::Dhcp6Parser::make_UDP(driver.loc_);
2923 }
2924 std::string tmp(yytext+1);
2925 tmp.resize(tmp.size() - 1);
2926 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2927}
2928 YY_BREAK
2929case 23:
2931#line 297 "dhcp6_lexer.ll"
2932{
2933 /* dhcp-ddns value keywords are case insensitive */
2934 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2935 return isc::dhcp::Dhcp6Parser::make_TCP(driver.loc_);
2936 }
2937 std::string tmp(yytext+1);
2938 tmp.resize(tmp.size() - 1);
2939 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2940}
2941 YY_BREAK
2942case 24:
2944#line 307 "dhcp6_lexer.ll"
2945{
2946 /* dhcp-ddns value keywords are case insensitive */
2947 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) {
2948 return isc::dhcp::Dhcp6Parser::make_JSON(driver.loc_);
2949 }
2950 std::string tmp(yytext+1);
2951 tmp.resize(tmp.size() - 1);
2952 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2953}
2954 YY_BREAK
2955case 25:
2957#line 317 "dhcp6_lexer.ll"
2958{
2959 /* dhcp-ddns value keywords are case insensitive */
2962 }
2963 std::string tmp(yytext+1);
2964 tmp.resize(tmp.size() - 1);
2965 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2966}
2967 YY_BREAK
2968case 26:
2970#line 327 "dhcp6_lexer.ll"
2971{
2972 /* dhcp-ddns value keywords are case insensitive */
2975 }
2976 std::string tmp(yytext+1);
2977 tmp.resize(tmp.size() - 1);
2978 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2979}
2980 YY_BREAK
2981case 27:
2983#line 337 "dhcp6_lexer.ll"
2984{
2985 switch(driver.ctx_) {
2987 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2988 default:
2989 return isc::dhcp::Dhcp6Parser::make_STRING("never", driver.loc_);
2990 }
2991}
2992 YY_BREAK
2993case 28:
2995#line 346 "dhcp6_lexer.ll"
2996{
2997 /* dhcp-ddns value keywords are case insensitive */
2999 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
3000 }
3001 std::string tmp(yytext+1);
3002 tmp.resize(tmp.size() - 1);
3003 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3004}
3005 YY_BREAK
3006case 29:
3008#line 356 "dhcp6_lexer.ll"
3009{
3010 /* dhcp-ddns value keywords are case insensitive */
3012 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
3013 }
3014 std::string tmp(yytext+1);
3015 tmp.resize(tmp.size() - 1);
3016 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3017}
3018 YY_BREAK
3019case 30:
3021#line 366 "dhcp6_lexer.ll"
3022{
3023 /* dhcp-ddns value keywords are case insensitive */
3025 return isc::dhcp::Dhcp6Parser::make_ALWAYS(driver.loc_);
3026 }
3027 std::string tmp(yytext+1);
3028 tmp.resize(tmp.size() - 1);
3029 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3030}
3031 YY_BREAK
3032case 31:
3034#line 376 "dhcp6_lexer.ll"
3035{
3036 /* dhcp-ddns value keywords are case insensitive */
3039 }
3040 std::string tmp(yytext+1);
3041 tmp.resize(tmp.size() - 1);
3042 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3043}
3044 YY_BREAK
3045case 32:
3047#line 386 "dhcp6_lexer.ll"
3048{
3049 switch(driver.ctx_) {
3051 return isc::dhcp::Dhcp6Parser::make_DHCP6(driver.loc_);
3052 default:
3053 return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp6", driver.loc_);
3054 }
3055}
3056 YY_BREAK
3057case 33:
3059#line 395 "dhcp6_lexer.ll"
3060{
3061 switch(driver.ctx_) {
3064 default:
3065 return isc::dhcp::Dhcp6Parser::make_STRING("data-directory", driver.loc_);
3066 }
3067}
3068 YY_BREAK
3069case 34:
3071#line 404 "dhcp6_lexer.ll"
3072{
3073 switch(driver.ctx_) {
3076 default:
3077 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", driver.loc_);
3078 }
3079}
3080 YY_BREAK
3081case 35:
3083#line 413 "dhcp6_lexer.ll"
3084{
3085 switch(driver.ctx_) {
3087 return isc::dhcp::Dhcp6Parser::make_INTERFACES(driver.loc_);
3088 default:
3089 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces", driver.loc_);
3090 }
3091}
3092 YY_BREAK
3093case 36:
3095#line 422 "dhcp6_lexer.ll"
3096{
3097 switch(driver.ctx_) {
3099 return isc::dhcp::Dhcp6Parser::make_RE_DETECT(driver.loc_);
3100 default:
3101 return isc::dhcp::Dhcp6Parser::make_STRING("re-detect", driver.loc_);
3102 }
3103}
3104 YY_BREAK
3105case 37:
3107#line 431 "dhcp6_lexer.ll"
3108{
3109 switch(driver.ctx_) {
3112 default:
3113 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-require-all", driver.loc_);
3114 }
3115}
3116 YY_BREAK
3117case 38:
3119#line 440 "dhcp6_lexer.ll"
3120{
3121 switch(driver.ctx_) {
3124 default:
3125 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-retry-wait-time", driver.loc_);
3126 }
3127}
3128 YY_BREAK
3129case 39:
3131#line 449 "dhcp6_lexer.ll"
3132{
3133 switch(driver.ctx_) {
3136 default:
3137 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-max-retries", driver.loc_);
3138 }
3139}
3140 YY_BREAK
3141case 40:
3143#line 458 "dhcp6_lexer.ll"
3144{
3145 switch(driver.ctx_) {
3148 default:
3149 return isc::dhcp::Dhcp6Parser::make_STRING("sanity-checks", driver.loc_);
3150 }
3151}
3152 YY_BREAK
3153case 41:
3155#line 467 "dhcp6_lexer.ll"
3156{
3157 switch(driver.ctx_) {
3160 default:
3161 return isc::dhcp::Dhcp6Parser::make_STRING("lease-checks", driver.loc_);
3162 }
3163}
3164 YY_BREAK
3165case 42:
3167#line 476 "dhcp6_lexer.ll"
3168{
3169 switch(driver.ctx_) {
3172 default:
3173 return isc::dhcp::Dhcp6Parser::make_STRING("extended-info-checks", driver.loc_);
3174 }
3175}
3176 YY_BREAK
3177case 43:
3179#line 485 "dhcp6_lexer.ll"
3180{
3181 switch(driver.ctx_) {
3184 default:
3185 return isc::dhcp::Dhcp6Parser::make_STRING("lease-database", driver.loc_);
3186 }
3187}
3188 YY_BREAK
3189case 44:
3191#line 494 "dhcp6_lexer.ll"
3192{
3193 switch(driver.ctx_) {
3196 default:
3197 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-database", driver.loc_);
3198 }
3199}
3200 YY_BREAK
3201case 45:
3203#line 503 "dhcp6_lexer.ll"
3204{
3205 switch(driver.ctx_) {
3208 default:
3209 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-databases", driver.loc_);
3210 }
3211}
3212 YY_BREAK
3213case 46:
3215#line 512 "dhcp6_lexer.ll"
3216{
3217 switch(driver.ctx_) {
3220 default:
3221 return isc::dhcp::Dhcp6Parser::make_STRING("config-control", driver.loc_);
3222 }
3223}
3224 YY_BREAK
3225case 47:
3227#line 521 "dhcp6_lexer.ll"
3228{
3229 switch(driver.ctx_) {
3232 default:
3233 return isc::dhcp::Dhcp6Parser::make_STRING("config-databases", driver.loc_);
3234 }
3235}
3236 YY_BREAK
3237case 48:
3239#line 530 "dhcp6_lexer.ll"
3240{
3241 switch(driver.ctx_) {
3244 default:
3245 return isc::dhcp::Dhcp6Parser::make_STRING("config-fetch-wait-time", driver.loc_);
3246 }
3247}
3248 YY_BREAK
3249case 49:
3251#line 539 "dhcp6_lexer.ll"
3252{
3253 switch(driver.ctx_) {
3255 return isc::dhcp::Dhcp6Parser::make_READONLY(driver.loc_);
3256 default:
3257 return isc::dhcp::Dhcp6Parser::make_STRING("readonly", driver.loc_);
3258 }
3259}
3260 YY_BREAK
3261case 50:
3263#line 548 "dhcp6_lexer.ll"
3264{
3265 switch(driver.ctx_) {
3272 return isc::dhcp::Dhcp6Parser::make_TYPE(driver.loc_);
3273 default:
3274 return isc::dhcp::Dhcp6Parser::make_STRING("type", driver.loc_);
3275 }
3276}
3277 YY_BREAK
3278case 51:
3280#line 562 "dhcp6_lexer.ll"
3281{
3282 switch(driver.ctx_) {
3287 return isc::dhcp::Dhcp6Parser::make_USER(driver.loc_);
3288 default:
3289 return isc::dhcp::Dhcp6Parser::make_STRING("user", driver.loc_);
3290 }
3291}
3292 YY_BREAK
3293case 52:
3295#line 574 "dhcp6_lexer.ll"
3296{
3297 switch(driver.ctx_) {
3302 return isc::dhcp::Dhcp6Parser::make_PASSWORD(driver.loc_);
3303 default:
3304 return isc::dhcp::Dhcp6Parser::make_STRING("password", driver.loc_);
3305 }
3306}
3307 YY_BREAK
3308case 53:
3310#line 586 "dhcp6_lexer.ll"
3311{
3312 switch(driver.ctx_) {
3316 return isc::dhcp::Dhcp6Parser::make_HOST(driver.loc_);
3317 default:
3318 return isc::dhcp::Dhcp6Parser::make_STRING("host", driver.loc_);
3319 }
3320}
3321 YY_BREAK
3322case 54:
3324#line 597 "dhcp6_lexer.ll"
3325{
3326 switch(driver.ctx_) {
3330 return isc::dhcp::Dhcp6Parser::make_PORT(driver.loc_);
3331 default:
3332 return isc::dhcp::Dhcp6Parser::make_STRING("port", driver.loc_);
3333 }
3334}
3335 YY_BREAK
3336case 55:
3338#line 608 "dhcp6_lexer.ll"
3339{
3340 switch(driver.ctx_) {
3345 return isc::dhcp::Dhcp6Parser::make_PERSIST(driver.loc_);
3346 default:
3347 return isc::dhcp::Dhcp6Parser::make_STRING("persist", driver.loc_);
3348 }
3349}
3350 YY_BREAK
3351case 56:
3353#line 620 "dhcp6_lexer.ll"
3354{
3355 switch(driver.ctx_) {
3360 default:
3361 return isc::dhcp::Dhcp6Parser::make_STRING("lfc-interval", driver.loc_);
3362 }
3363}
3364 YY_BREAK
3365case 57:
3367#line 631 "dhcp6_lexer.ll"
3368{
3369 switch(driver.ctx_) {
3374 default:
3375 return isc::dhcp::Dhcp6Parser::make_STRING("connect-timeout", driver.loc_);
3376 }
3377}
3378 YY_BREAK
3379case 58:
3381#line 642 "dhcp6_lexer.ll"
3382{
3383 switch(driver.ctx_) {
3388 default:
3389 return isc::dhcp::Dhcp6Parser::make_STRING("read-timeout", driver.loc_);
3390 }
3391}
3392 YY_BREAK
3393case 59:
3395#line 653 "dhcp6_lexer.ll"
3396{
3397 switch(driver.ctx_) {
3402 default:
3403 return isc::dhcp::Dhcp6Parser::make_STRING("write-timeout", driver.loc_);
3404 }
3405}
3406 YY_BREAK
3407case 60:
3409#line 664 "dhcp6_lexer.ll"
3410{
3411 switch(driver.ctx_) {
3416 default:
3417 return isc::dhcp::Dhcp6Parser::make_STRING("tcp-user-timeout", driver.loc_);
3418 }
3419}
3420 YY_BREAK
3421case 61:
3423#line 675 "dhcp6_lexer.ll"
3424{
3425 switch(driver.ctx_) {
3430 default:
3431 return isc::dhcp::Dhcp6Parser::make_STRING("reconnect-wait-time", driver.loc_);
3432 }
3433}
3434 YY_BREAK
3435case 62:
3437#line 686 "dhcp6_lexer.ll"
3438{
3439 switch(driver.ctx_) {
3443 return isc::dhcp::Dhcp6Parser::make_ON_FAIL(driver.loc_);
3444 default:
3445 return isc::dhcp::Dhcp6Parser::make_STRING("on-fail", driver.loc_);
3446 }
3447}
3448 YY_BREAK
3449case 63:
3451#line 697 "dhcp6_lexer.ll"
3452{
3453 switch(driver.ctx_) {
3456 default:
3457 return isc::dhcp::Dhcp6Parser::make_STRING("stop-retry-exit", driver.loc_);
3458 }
3459}
3460 YY_BREAK
3461case 64:
3463#line 706 "dhcp6_lexer.ll"
3464{
3465 switch(driver.ctx_) {
3468 default:
3469 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-exit", driver.loc_);
3470 }
3471}
3472 YY_BREAK
3473case 65:
3475#line 715 "dhcp6_lexer.ll"
3476{
3477 switch(driver.ctx_) {
3480 default:
3481 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-continue", driver.loc_);
3482 }
3483}
3484 YY_BREAK
3485case 66:
3487#line 724 "dhcp6_lexer.ll"
3488{
3489 switch(driver.ctx_) {
3494 default:
3495 return isc::dhcp::Dhcp6Parser::make_STRING("retry-on-startup", driver.loc_);
3496 }
3497}
3498 YY_BREAK
3499case 67:
3501#line 735 "dhcp6_lexer.ll"
3502{
3503 switch(driver.ctx_) {
3508 default:
3509 return isc::dhcp::Dhcp6Parser::make_STRING("max-reconnect-tries", driver.loc_);
3510 }
3511}
3512 YY_BREAK
3513case 68:
3515#line 746 "dhcp6_lexer.ll"
3516{
3517 switch(driver.ctx_) {
3520 default:
3521 return isc::dhcp::Dhcp6Parser::make_STRING("max-row-errors", driver.loc_);
3522 }
3523}
3524 YY_BREAK
3525case 69:
3527#line 755 "dhcp6_lexer.ll"
3528{
3529 switch(driver.ctx_) {
3535 default:
3536 return isc::dhcp::Dhcp6Parser::make_STRING("trust-anchor", driver.loc_);
3537 }
3538}
3539 YY_BREAK
3540case 70:
3542#line 767 "dhcp6_lexer.ll"
3543{
3544 switch(driver.ctx_) {
3549 return isc::dhcp::Dhcp6Parser::make_CERT_FILE(driver.loc_);
3550 default:
3551 return isc::dhcp::Dhcp6Parser::make_STRING("cert-file", driver.loc_);
3552 }
3553}
3554 YY_BREAK
3555case 71:
3557#line 779 "dhcp6_lexer.ll"
3558{
3559 switch(driver.ctx_) {
3564 return isc::dhcp::Dhcp6Parser::make_KEY_FILE(driver.loc_);
3565 default:
3566 return isc::dhcp::Dhcp6Parser::make_STRING("key-file", driver.loc_);
3567 }
3568}
3569 YY_BREAK
3570case 72:
3572#line 791 "dhcp6_lexer.ll"
3573{
3574 switch(driver.ctx_) {
3578 return isc::dhcp::Dhcp6Parser::make_SSL_MODE(driver.loc_);
3579 default:
3580 return isc::dhcp::Dhcp6Parser::make_STRING("ssl-mode", driver.loc_);
3581 }
3582}
3583 YY_BREAK
3584case 73:
3586#line 802 "dhcp6_lexer.ll"
3587{
3588 switch(driver.ctx_) {
3590 return isc::dhcp::Dhcp6Parser::make_DISABLE(driver.loc_);
3591 default:
3592 return isc::dhcp::Dhcp6Parser::make_STRING("disable", driver.loc_);
3593 }
3594}
3595 YY_BREAK
3596case 74:
3598#line 811 "dhcp6_lexer.ll"
3599{
3600 switch(driver.ctx_) {
3602 return isc::dhcp::Dhcp6Parser::make_PREFER(driver.loc_);
3603 default:
3604 return isc::dhcp::Dhcp6Parser::make_STRING("prefer", driver.loc_);
3605 }
3606}
3607 YY_BREAK
3608case 75:
3610#line 820 "dhcp6_lexer.ll"
3611{
3612 switch(driver.ctx_) {
3614 return isc::dhcp::Dhcp6Parser::make_REQUIRE(driver.loc_);
3615 default:
3616 return isc::dhcp::Dhcp6Parser::make_STRING("require", driver.loc_);
3617 }
3618}
3619 YY_BREAK
3620case 76:
3622#line 829 "dhcp6_lexer.ll"
3623{
3624 switch(driver.ctx_) {
3626 return isc::dhcp::Dhcp6Parser::make_VERIFY_CA(driver.loc_);
3627 default:
3628 return isc::dhcp::Dhcp6Parser::make_STRING("verify-ca", driver.loc_);
3629 }
3630}
3631 YY_BREAK
3632case 77:
3634#line 838 "dhcp6_lexer.ll"
3635{
3636 switch(driver.ctx_) {
3638 return isc::dhcp::Dhcp6Parser::make_VERIFY_FULL(driver.loc_);
3639 default:
3640 return isc::dhcp::Dhcp6Parser::make_STRING("verify-full", driver.loc_);
3641 }
3642}
3643 YY_BREAK
3644case 78:
3646#line 847 "dhcp6_lexer.ll"
3647{
3648 switch(driver.ctx_) {
3652 return isc::dhcp::Dhcp6Parser::make_CIPHER_LIST(driver.loc_);
3653 default:
3654 return isc::dhcp::Dhcp6Parser::make_STRING("cipher-list", driver.loc_);
3655 }
3656}
3657 YY_BREAK
3658case 79:
3660#line 858 "dhcp6_lexer.ll"
3661{
3662 switch(driver.ctx_) {
3668 default:
3669 return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_);
3670 }
3671}
3672 YY_BREAK
3673case 80:
3675#line 870 "dhcp6_lexer.ll"
3676{
3677 switch(driver.ctx_) {
3683 default:
3684 return isc::dhcp::Dhcp6Parser::make_STRING("min-preferred-lifetime", driver.loc_);
3685 }
3686}
3687 YY_BREAK
3688case 81:
3690#line 882 "dhcp6_lexer.ll"
3691{
3692 switch(driver.ctx_) {
3698 default:
3699 return isc::dhcp::Dhcp6Parser::make_STRING("max-preferred-lifetime", driver.loc_);
3700 }
3701}
3702 YY_BREAK
3703case 82:
3705#line 894 "dhcp6_lexer.ll"
3706{
3707 switch(driver.ctx_) {
3713 default:
3714 return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_);
3715 }
3716}
3717 YY_BREAK
3718case 83:
3720#line 906 "dhcp6_lexer.ll"
3721{
3722 switch(driver.ctx_) {
3728 default:
3729 return isc::dhcp::Dhcp6Parser::make_STRING("min-valid-lifetime", driver.loc_);
3730 }
3731}
3732 YY_BREAK
3733case 84:
3735#line 918 "dhcp6_lexer.ll"
3736{
3737 switch(driver.ctx_) {
3743 default:
3744 return isc::dhcp::Dhcp6Parser::make_STRING("max-valid-lifetime", driver.loc_);
3745 }
3746}
3747 YY_BREAK
3748case 85:
3750#line 930 "dhcp6_lexer.ll"
3751{
3752 switch(driver.ctx_) {
3756 return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_);
3757 default:
3758 return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_);
3759 }
3760}
3761 YY_BREAK
3762case 86:
3764#line 941 "dhcp6_lexer.ll"
3765{
3766 switch(driver.ctx_) {
3771 default:
3772 return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_);
3773 }
3774}
3775 YY_BREAK
3776case 87:
3778#line 952 "dhcp6_lexer.ll"
3779{
3780 switch(driver.ctx_) {
3783 default:
3784 return isc::dhcp::Dhcp6Parser::make_STRING("decline-probation-period", driver.loc_);
3785 }
3786}
3787 YY_BREAK
3788case 88:
3790#line 961 "dhcp6_lexer.ll"
3791{
3792 switch(driver.ctx_) {
3794 return isc::dhcp::Dhcp6Parser::make_SERVER_TAG(driver.loc_);
3795 default:
3796 return isc::dhcp::Dhcp6Parser::make_STRING("server-tag", driver.loc_);
3797 }
3798}
3799 YY_BREAK
3800case 89:
3802#line 970 "dhcp6_lexer.ll"
3803{
3804 switch(driver.ctx_) {
3807 default:
3808 return isc::dhcp::Dhcp6Parser::make_STRING("parked-packet-limit", driver.loc_);
3809 }
3810}
3811 YY_BREAK
3812case 90:
3814#line 979 "dhcp6_lexer.ll"
3815{
3816 switch(driver.ctx_) {
3820 return isc::dhcp::Dhcp6Parser::make_ALLOCATOR(driver.loc_);
3821 default:
3822 return isc::dhcp::Dhcp6Parser::make_STRING("allocator", driver.loc_);
3823 }
3824}
3825 YY_BREAK
3826case 91:
3828#line 990 "dhcp6_lexer.ll"
3829{
3830 switch(driver.ctx_) {
3835 default:
3836 return isc::dhcp::Dhcp6Parser::make_STRING("pd-allocator", driver.loc_);
3837 }
3838}
3839 YY_BREAK
3840case 92:
3842#line 1001 "dhcp6_lexer.ll"
3843{
3844 switch(driver.ctx_) {
3847 default:
3848 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3849 }
3850}
3851 YY_BREAK
3852case 93:
3854#line 1010 "dhcp6_lexer.ll"
3855{
3856 switch(driver.ctx_) {
3859 default:
3860 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3861 }
3862}
3863 YY_BREAK
3864case 94:
3866#line 1019 "dhcp6_lexer.ll"
3867{
3868 switch(driver.ctx_) {
3874 default:
3875 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-send-updates", driver.loc_);
3876 }
3877}
3878 YY_BREAK
3879case 95:
3881#line 1031 "dhcp6_lexer.ll"
3882{
3883 switch(driver.ctx_) {
3889 default:
3890 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-no-update", driver.loc_);
3891 }
3892}
3893 YY_BREAK
3894case 96:
3896#line 1043 "dhcp6_lexer.ll"
3897{
3898 switch(driver.ctx_) {
3904 default:
3905 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-client-update", driver.loc_);
3906 }
3907}
3908 YY_BREAK
3909case 97:
3911#line 1055 "dhcp6_lexer.ll"
3912{
3913 switch(driver.ctx_) {
3919 default:
3920 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3921 }
3922}
3923 YY_BREAK
3924case 98:
3926#line 1067 "dhcp6_lexer.ll"
3927{
3928 switch(driver.ctx_) {
3934 default:
3935 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-generated-prefix", driver.loc_);
3936 }
3937}
3938 YY_BREAK
3939case 99:
3941#line 1079 "dhcp6_lexer.ll"
3942{
3943 switch(driver.ctx_) {
3949 default:
3950 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
3951 }
3952}
3953 YY_BREAK
3954case 100:
3956#line 1091 "dhcp6_lexer.ll"
3957{
3958 switch(driver.ctx_) {
3964 default:
3965 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-update-on-renew", driver.loc_);
3966 }
3967}
3968 YY_BREAK
3969case 101:
3971#line 1103 "dhcp6_lexer.ll"
3972{
3973 switch(driver.ctx_) {
3978 default:
3979 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
3980 }
3981}
3982 YY_BREAK
3983case 102:
3985#line 1114 "dhcp6_lexer.ll"
3986{
3987 switch(driver.ctx_) {
3993 default:
3994 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-conflict-resolution-mode", driver.loc_);
3995 }
3996}
3997 YY_BREAK
3998case 103:
4000#line 1126 "dhcp6_lexer.ll"
4001{
4004 }
4005 std::string tmp(yytext+1);
4006 tmp.resize(tmp.size() - 1);
4007 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4008}
4009 YY_BREAK
4010case 104:
4012#line 1135 "dhcp6_lexer.ll"
4013{
4016 }
4017 std::string tmp(yytext+1);
4018 tmp.resize(tmp.size() - 1);
4019 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4020}
4021 YY_BREAK
4022case 105:
4024#line 1144 "dhcp6_lexer.ll"
4025{
4028 }
4029 std::string tmp(yytext+1);
4030 tmp.resize(tmp.size() - 1);
4031 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4032}
4033 YY_BREAK
4034case 106:
4036#line 1153 "dhcp6_lexer.ll"
4037{
4040 }
4041 std::string tmp(yytext+1);
4042 tmp.resize(tmp.size() - 1);
4043 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4044}
4045 YY_BREAK
4046case 107:
4048#line 1162 "dhcp6_lexer.ll"
4049{
4050 switch(driver.ctx_) {
4056 default:
4057 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-percent", driver.loc_);
4058 }
4059}
4060 YY_BREAK
4061case 108:
4063#line 1174 "dhcp6_lexer.ll"
4064{
4065 switch(driver.ctx_) {
4070 return isc::dhcp::Dhcp6Parser::make_DDNS_TTL(driver.loc_);
4071 default:
4072 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl", driver.loc_);
4073 }
4074}
4075 YY_BREAK
4076case 109:
4078#line 1186 "dhcp6_lexer.ll"
4079{
4080 switch(driver.ctx_) {
4086 default:
4087 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-min", driver.loc_);
4088 }
4089}
4090 YY_BREAK
4091case 110:
4093#line 1198 "dhcp6_lexer.ll"
4094{
4095 switch(driver.ctx_) {
4101 default:
4102 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-max", driver.loc_);
4103 }
4104}
4105 YY_BREAK
4106case 111:
4108#line 1210 "dhcp6_lexer.ll"
4109{
4110 switch(driver.ctx_) {
4113 return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_);
4114 default:
4115 return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_);
4116 }
4117}
4118 YY_BREAK
4119case 112:
4121#line 1220 "dhcp6_lexer.ll"
4122{
4123 switch(driver.ctx_) {
4128 default:
4129 return isc::dhcp::Dhcp6Parser::make_STRING("store-extended-info", driver.loc_);
4130 }
4131}
4132 YY_BREAK
4133case 113:
4135#line 1231 "dhcp6_lexer.ll"
4136{
4137 switch (driver.ctx_) {
4139 return Dhcp6Parser::make_SHARED_NETWORKS(driver.loc_);
4140 default:
4141 return Dhcp6Parser::make_STRING("shared-networks", driver.loc_);
4142 }
4143}
4144 YY_BREAK
4145case 114:
4147#line 1240 "dhcp6_lexer.ll"
4148{
4149 switch(driver.ctx_) {
4151 return isc::dhcp::Dhcp6Parser::make_OPTION_DEF(driver.loc_);
4152 default:
4153 return isc::dhcp::Dhcp6Parser::make_STRING("option-def", driver.loc_);
4154 }
4155}
4156 YY_BREAK
4157case 115:
4159#line 1249 "dhcp6_lexer.ll"
4160{
4161 switch(driver.ctx_) {
4169 return isc::dhcp::Dhcp6Parser::make_OPTION_DATA(driver.loc_);
4170 default:
4171 return isc::dhcp::Dhcp6Parser::make_STRING("option-data", driver.loc_);
4172 }
4173}
4174 YY_BREAK
4175case 116:
4177#line 1264 "dhcp6_lexer.ll"
4178{
4179 switch(driver.ctx_) {
4189 return isc::dhcp::Dhcp6Parser::make_NAME(driver.loc_);
4190 default:
4191 return isc::dhcp::Dhcp6Parser::make_STRING("name", driver.loc_);
4192 }
4193}
4194 YY_BREAK
4195case 117:
4197#line 1281 "dhcp6_lexer.ll"
4198{
4199 switch(driver.ctx_) {
4201 return isc::dhcp::Dhcp6Parser::make_DATA(driver.loc_);
4202 default:
4203 return isc::dhcp::Dhcp6Parser::make_STRING("data", driver.loc_);
4204 }
4205}
4206 YY_BREAK
4207case 118:
4209#line 1290 "dhcp6_lexer.ll"
4210{
4211 switch(driver.ctx_) {
4213 return isc::dhcp::Dhcp6Parser::make_ALWAYS_SEND(driver.loc_);
4214 default:
4215 return isc::dhcp::Dhcp6Parser::make_STRING("always-send", driver.loc_);
4216 }
4217}
4218 YY_BREAK
4219case 119:
4221#line 1299 "dhcp6_lexer.ll"
4222{
4223 switch(driver.ctx_) {
4225 return isc::dhcp::Dhcp6Parser::make_NEVER_SEND(driver.loc_);
4226 default:
4227 return isc::dhcp::Dhcp6Parser::make_STRING("never-send", driver.loc_);
4228 }
4229}
4230 YY_BREAK
4231case 120:
4233#line 1308 "dhcp6_lexer.ll"
4234{
4235 switch(driver.ctx_) {
4237 return isc::dhcp::Dhcp6Parser::make_POOLS(driver.loc_);
4238 default:
4239 return isc::dhcp::Dhcp6Parser::make_STRING("pools", driver.loc_);
4240 }
4241}
4242 YY_BREAK
4243case 121:
4245#line 1317 "dhcp6_lexer.ll"
4246{
4247 switch(driver.ctx_) {
4249 return isc::dhcp::Dhcp6Parser::make_PD_POOLS(driver.loc_);
4250 default:
4251 return isc::dhcp::Dhcp6Parser::make_STRING("pd-pools", driver.loc_);
4252 }
4253}
4254 YY_BREAK
4255case 122:
4257#line 1326 "dhcp6_lexer.ll"
4258{
4259 switch(driver.ctx_) {
4261 return isc::dhcp::Dhcp6Parser::make_PREFIX(driver.loc_);
4262 default:
4263 return isc::dhcp::Dhcp6Parser::make_STRING("prefix", driver.loc_);
4264 }
4265}
4266 YY_BREAK
4267case 123:
4269#line 1335 "dhcp6_lexer.ll"
4270{
4271 switch(driver.ctx_) {
4273 return isc::dhcp::Dhcp6Parser::make_PREFIX_LEN(driver.loc_);
4274 default:
4275 return isc::dhcp::Dhcp6Parser::make_STRING("prefix-len", driver.loc_);
4276 }
4277}
4278 YY_BREAK
4279case 124:
4281#line 1344 "dhcp6_lexer.ll"
4282{
4283 switch(driver.ctx_) {
4286 default:
4287 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix", driver.loc_);
4288 }
4289}
4290 YY_BREAK
4291case 125:
4293#line 1353 "dhcp6_lexer.ll"
4294{
4295 switch(driver.ctx_) {
4298 default:
4299 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix-len", driver.loc_);
4300 }
4301}
4302 YY_BREAK
4303case 126:
4305#line 1362 "dhcp6_lexer.ll"
4306{
4307 switch(driver.ctx_) {
4310 default:
4311 return isc::dhcp::Dhcp6Parser::make_STRING("delegated-len", driver.loc_);
4312 }
4313}
4314 YY_BREAK
4315case 127:
4317#line 1371 "dhcp6_lexer.ll"
4318{
4319 switch(driver.ctx_) {
4321 return isc::dhcp::Dhcp6Parser::make_POOL(driver.loc_);
4322 default:
4323 return isc::dhcp::Dhcp6Parser::make_STRING("pool", driver.loc_);
4324 }
4325}
4326 YY_BREAK
4327case 128:
4329#line 1380 "dhcp6_lexer.ll"
4330{
4331 switch(driver.ctx_) {
4334 return isc::dhcp::Dhcp6Parser::make_POOL_ID(driver.loc_);
4335 default:
4336 return isc::dhcp::Dhcp6Parser::make_STRING("pool-id", driver.loc_);
4337 }
4338}
4339 YY_BREAK
4340case 129:
4342#line 1390 "dhcp6_lexer.ll"
4343{
4344 switch(driver.ctx_) {
4365 default:
4366 return isc::dhcp::Dhcp6Parser::make_STRING("user-context", driver.loc_);
4367 }
4368}
4369 YY_BREAK
4370case 130:
4372#line 1417 "dhcp6_lexer.ll"
4373{
4374 switch(driver.ctx_) {
4394 return isc::dhcp::Dhcp6Parser::make_COMMENT(driver.loc_);
4395 default:
4396 return isc::dhcp::Dhcp6Parser::make_STRING("comment", driver.loc_);
4397 }
4398}
4399 YY_BREAK
4400case 131:
4402#line 1444 "dhcp6_lexer.ll"
4403{
4404 switch(driver.ctx_) {
4406 return isc::dhcp::Dhcp6Parser::make_SUBNET(driver.loc_);
4407 default:
4408 return isc::dhcp::Dhcp6Parser::make_STRING("subnet", driver.loc_);
4409 }
4410}
4411 YY_BREAK
4412case 132:
4414#line 1453 "dhcp6_lexer.ll"
4415{
4416 switch(driver.ctx_) {
4419 return isc::dhcp::Dhcp6Parser::make_INTERFACE(driver.loc_);
4420 default:
4421 return isc::dhcp::Dhcp6Parser::make_STRING("interface", driver.loc_);
4422 }
4423}
4424 YY_BREAK
4425case 133:
4427#line 1463 "dhcp6_lexer.ll"
4428{
4429 switch(driver.ctx_) {
4433 default:
4434 return isc::dhcp::Dhcp6Parser::make_STRING("interface-id", driver.loc_);
4435 }
4436}
4437 YY_BREAK
4438case 134:
4440#line 1473 "dhcp6_lexer.ll"
4441{
4442 switch(driver.ctx_) {
4444 return isc::dhcp::Dhcp6Parser::make_ID(driver.loc_);
4445 default:
4446 return isc::dhcp::Dhcp6Parser::make_STRING("id", driver.loc_);
4447 }
4448}
4449 YY_BREAK
4450case 135:
4452#line 1482 "dhcp6_lexer.ll"
4453{
4454 switch(driver.ctx_) {
4458 default:
4459 return isc::dhcp::Dhcp6Parser::make_STRING("rapid-commit", driver.loc_);
4460 }
4461}
4462 YY_BREAK
4463case 136:
4465#line 1492 "dhcp6_lexer.ll"
4466{
4467 switch(driver.ctx_) {
4472 default:
4473 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-global", driver.loc_);
4474 }
4475}
4476 YY_BREAK
4477case 137:
4479#line 1503 "dhcp6_lexer.ll"
4480{
4481 switch(driver.ctx_) {
4486 default:
4487 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-in-subnet", driver.loc_);
4488 }
4489}
4490 YY_BREAK
4491case 138:
4493#line 1514 "dhcp6_lexer.ll"
4494{
4495 switch(driver.ctx_) {
4500 default:
4501 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-out-of-pool", driver.loc_);
4502 }
4503}
4504 YY_BREAK
4505case 139:
4507#line 1525 "dhcp6_lexer.ll"
4508{
4509 switch(driver.ctx_) {
4512 return isc::dhcp::Dhcp6Parser::make_CODE(driver.loc_);
4513 default:
4514 return isc::dhcp::Dhcp6Parser::make_STRING("code", driver.loc_);
4515 }
4516}
4517 YY_BREAK
4518case 140:
4520#line 1535 "dhcp6_lexer.ll"
4521{
4522 switch(driver.ctx_) {
4524 return isc::dhcp::Dhcp6Parser::make_MAC_SOURCES(driver.loc_);
4525 default:
4526 return isc::dhcp::Dhcp6Parser::make_STRING("mac-sources", driver.loc_);
4527 }
4528}
4529 YY_BREAK
4530case 141:
4532#line 1544 "dhcp6_lexer.ll"
4533{
4534 switch(driver.ctx_) {
4537 default:
4538 return isc::dhcp::Dhcp6Parser::make_STRING("relay-supplied-options", driver.loc_);
4539 }
4540}
4541 YY_BREAK
4542case 142:
4544#line 1553 "dhcp6_lexer.ll"
4545{
4546 switch(driver.ctx_) {
4549 default:
4550 return isc::dhcp::Dhcp6Parser::make_STRING("host-reservation-identifiers", driver.loc_);
4551 }
4552}
4553 YY_BREAK
4554case 143:
4556#line 1562 "dhcp6_lexer.ll"
4557{
4558 switch(driver.ctx_) {
4563 default:
4564 return isc::dhcp::Dhcp6Parser::make_STRING("calculate-tee-times", driver.loc_);
4565 }
4566}
4567 YY_BREAK
4568case 144:
4570#line 1573 "dhcp6_lexer.ll"
4571{
4572 switch(driver.ctx_) {
4576 return isc::dhcp::Dhcp6Parser::make_T1_PERCENT(driver.loc_);
4577 default:
4578 return isc::dhcp::Dhcp6Parser::make_STRING("t1-percent", driver.loc_);
4579 }
4580}
4581 YY_BREAK
4582case 145:
4584#line 1584 "dhcp6_lexer.ll"
4585{
4586 switch(driver.ctx_) {
4590 return isc::dhcp::Dhcp6Parser::make_T2_PERCENT(driver.loc_);
4591 default:
4592 return isc::dhcp::Dhcp6Parser::make_STRING("t2-percent", driver.loc_);
4593 }
4594}
4595 YY_BREAK
4596case 146:
4598#line 1595 "dhcp6_lexer.ll"
4599{
4600 switch(driver.ctx_) {
4605 default:
4606 return isc::dhcp::Dhcp6Parser::make_STRING("cache-threshold", driver.loc_);
4607 }
4608}
4609 YY_BREAK
4610case 147:
4612#line 1606 "dhcp6_lexer.ll"
4613{
4614 switch(driver.ctx_) {
4619 default:
4620 return isc::dhcp::Dhcp6Parser::make_STRING("cache-max-age", driver.loc_);
4621 }
4622}
4623 YY_BREAK
4624case 148:
4626#line 1617 "dhcp6_lexer.ll"
4627{
4628 switch(driver.ctx_) {
4630 return isc::dhcp::Dhcp6Parser::make_LOGGERS(driver.loc_);
4631 default:
4632 return isc::dhcp::Dhcp6Parser::make_STRING("loggers", driver.loc_);
4633 }
4634}
4635 YY_BREAK
4636case 149:
4638#line 1626 "dhcp6_lexer.ll"
4639{
4640 switch(driver.ctx_) {
4643 default:
4644 return isc::dhcp::Dhcp6Parser::make_STRING("output_options", driver.loc_);
4645 }
4646}
4647 YY_BREAK
4648case 150:
4650#line 1635 "dhcp6_lexer.ll"
4651{
4652 switch(driver.ctx_) {
4655 default:
4656 return isc::dhcp::Dhcp6Parser::make_STRING("output-options", driver.loc_);
4657 }
4658}
4659 YY_BREAK
4660case 151:
4662#line 1644 "dhcp6_lexer.ll"
4663{
4664 switch(driver.ctx_) {
4666 return isc::dhcp::Dhcp6Parser::make_OUTPUT(driver.loc_);
4667 default:
4668 return isc::dhcp::Dhcp6Parser::make_STRING("output", driver.loc_);
4669 }
4670}
4671 YY_BREAK
4672case 152:
4674#line 1653 "dhcp6_lexer.ll"
4675{
4676 switch(driver.ctx_) {
4678 return isc::dhcp::Dhcp6Parser::make_FLUSH(driver.loc_);
4679 default:
4680 return isc::dhcp::Dhcp6Parser::make_STRING("flush", driver.loc_);
4681 }
4682}
4683 YY_BREAK
4684case 153:
4686#line 1662 "dhcp6_lexer.ll"
4687{
4688 switch(driver.ctx_) {
4690 return isc::dhcp::Dhcp6Parser::make_MAXSIZE(driver.loc_);
4691 default:
4692 return isc::dhcp::Dhcp6Parser::make_STRING("maxsize", driver.loc_);
4693 }
4694}
4695 YY_BREAK
4696case 154:
4698#line 1671 "dhcp6_lexer.ll"
4699{
4700 switch(driver.ctx_) {
4702 return isc::dhcp::Dhcp6Parser::make_MAXVER(driver.loc_);
4703 default:
4704 return isc::dhcp::Dhcp6Parser::make_STRING("maxver", driver.loc_);
4705 }
4706}
4707 YY_BREAK
4708case 155:
4710#line 1680 "dhcp6_lexer.ll"
4711{
4712 switch(driver.ctx_) {
4714 return isc::dhcp::Dhcp6Parser::make_PATTERN(driver.loc_);
4715 default:
4716 return isc::dhcp::Dhcp6Parser::make_STRING("pattern", driver.loc_);
4717 }
4718}
4719 YY_BREAK
4720case 156:
4722#line 1689 "dhcp6_lexer.ll"
4723{
4724 switch(driver.ctx_) {
4726 return isc::dhcp::Dhcp6Parser::make_DEBUGLEVEL(driver.loc_);
4727 default:
4728 return isc::dhcp::Dhcp6Parser::make_STRING("debuglevel", driver.loc_);
4729 }
4730}
4731 YY_BREAK
4732case 157:
4734#line 1698 "dhcp6_lexer.ll"
4735{
4736 switch(driver.ctx_) {
4738 return isc::dhcp::Dhcp6Parser::make_SEVERITY(driver.loc_);
4739 default:
4740 return isc::dhcp::Dhcp6Parser::make_STRING("severity", driver.loc_);
4741 }
4742}
4743 YY_BREAK
4744case 158:
4746#line 1707 "dhcp6_lexer.ll"
4747{
4748 switch(driver.ctx_) {
4757 default:
4758 return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", driver.loc_);
4759 }
4760}
4761 YY_BREAK
4762case 159:
4764#line 1722 "dhcp6_lexer.ll"
4765{
4766 switch(driver.ctx_) {
4772 default:
4773 return isc::dhcp::Dhcp6Parser::make_STRING("require-client-classes", driver.loc_);
4774 }
4775}
4776 YY_BREAK
4777case 160:
4779#line 1734 "dhcp6_lexer.ll"
4780{
4781 switch(driver.ctx_) {
4787 default:
4788 return isc::dhcp::Dhcp6Parser::make_STRING("evaluate-additional-classes", driver.loc_);
4789 }
4790}
4791 YY_BREAK
4792case 161:
4794#line 1746 "dhcp6_lexer.ll"
4795{
4796 switch(driver.ctx_) {
4803 default:
4804 return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_);
4805 }
4806}
4807 YY_BREAK
4808case 162:
4810#line 1759 "dhcp6_lexer.ll"
4811{
4812 switch(driver.ctx_) {
4814 return isc::dhcp::Dhcp6Parser::make_TEST(driver.loc_);
4815 default:
4816 return isc::dhcp::Dhcp6Parser::make_STRING("test", driver.loc_);
4817 }
4818}
4819 YY_BREAK
4820case 163:
4822#line 1768 "dhcp6_lexer.ll"
4823{
4824 switch(driver.ctx_) {
4827 default:
4828 return isc::dhcp::Dhcp6Parser::make_STRING("template-test", driver.loc_);
4829 }
4830}
4831 YY_BREAK
4832case 164:
4834#line 1777 "dhcp6_lexer.ll"
4835{
4836 switch(driver.ctx_) {
4839 default:
4840 return isc::dhcp::Dhcp6Parser::make_STRING("only-if-required", driver.loc_);
4841 }
4842}
4843 YY_BREAK
4844case 165:
4846#line 1786 "dhcp6_lexer.ll"
4847{
4848 switch(driver.ctx_) {
4851 default:
4852 return isc::dhcp::Dhcp6Parser::make_STRING("only-in-additional-list", driver.loc_);
4853 }
4854}
4855 YY_BREAK
4856case 166:
4858#line 1795 "dhcp6_lexer.ll"
4859{
4860 switch(driver.ctx_) {
4864 default:
4865 return isc::dhcp::Dhcp6Parser::make_STRING("reservations", driver.loc_);
4866 }
4867}
4868 YY_BREAK
4869case 167:
4871#line 1805 "dhcp6_lexer.ll"
4872{
4873 switch(driver.ctx_) {
4877 default:
4878 return isc::dhcp::Dhcp6Parser::make_STRING("ip-addresses", driver.loc_);
4879 }
4880}
4881 YY_BREAK
4882case 168:
4884#line 1815 "dhcp6_lexer.ll"
4885{
4886 switch(driver.ctx_) {
4888 return isc::dhcp::Dhcp6Parser::make_PREFIXES(driver.loc_);
4889 default:
4890 return isc::dhcp::Dhcp6Parser::make_STRING("prefixes", driver.loc_);
4891 }
4892}
4893 YY_BREAK
4894case 169:
4896#line 1824 "dhcp6_lexer.ll"
4897{
4898 switch(driver.ctx_) {
4901 default:
4902 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefixes", driver.loc_);
4903 }
4904}
4905 YY_BREAK
4906case 170:
4908#line 1833 "dhcp6_lexer.ll"
4909{
4910 switch(driver.ctx_) {
4914 return isc::dhcp::Dhcp6Parser::make_DUID(driver.loc_);
4915 default:
4916 return isc::dhcp::Dhcp6Parser::make_STRING("duid", driver.loc_);
4917 }
4918}
4919 YY_BREAK
4920case 171:
4922#line 1844 "dhcp6_lexer.ll"
4923{
4924 switch(driver.ctx_) {
4927 return isc::dhcp::Dhcp6Parser::make_HW_ADDRESS(driver.loc_);
4928 default:
4929 return isc::dhcp::Dhcp6Parser::make_STRING("hw-address", driver.loc_);
4930 }
4931}
4932 YY_BREAK
4933case 172:
4935#line 1854 "dhcp6_lexer.ll"
4936{
4937 switch(driver.ctx_) {
4939 return isc::dhcp::Dhcp6Parser::make_HOSTNAME(driver.loc_);
4940 default:
4941 return isc::dhcp::Dhcp6Parser::make_STRING("hostname", driver.loc_);
4942 }
4943}
4944 YY_BREAK
4945case 173:
4947#line 1863 "dhcp6_lexer.ll"
4948{
4949 switch(driver.ctx_) {
4952 return isc::dhcp::Dhcp6Parser::make_FLEX_ID(driver.loc_);
4953 default:
4954 return isc::dhcp::Dhcp6Parser::make_STRING("flex-id", driver.loc_);
4955 }
4956}
4957 YY_BREAK
4958case 174:
4960#line 1873 "dhcp6_lexer.ll"
4961{
4962 switch(driver.ctx_) {
4965 return isc::dhcp::Dhcp6Parser::make_SPACE(driver.loc_);
4966 default:
4967 return isc::dhcp::Dhcp6Parser::make_STRING("space", driver.loc_);
4968 }
4969}
4970 YY_BREAK
4971case 175:
4973#line 1883 "dhcp6_lexer.ll"
4974{
4975 switch(driver.ctx_) {
4977 return isc::dhcp::Dhcp6Parser::make_CSV_FORMAT(driver.loc_);
4978 default:
4979 return isc::dhcp::Dhcp6Parser::make_STRING("csv-format", driver.loc_);
4980 }
4981}
4982 YY_BREAK
4983case 176:
4985#line 1892 "dhcp6_lexer.ll"
4986{
4987 switch(driver.ctx_) {
4990 default:
4991 return isc::dhcp::Dhcp6Parser::make_STRING("record-types", driver.loc_);
4992 }
4993}
4994 YY_BREAK
4995case 177:
4997#line 1901 "dhcp6_lexer.ll"
4998{
4999 switch(driver.ctx_) {
5001 return isc::dhcp::Dhcp6Parser::make_ENCAPSULATE(driver.loc_);
5002 default:
5003 return isc::dhcp::Dhcp6Parser::make_STRING("encapsulate", driver.loc_);
5004 }
5005}
5006 YY_BREAK
5007case 178:
5009#line 1910 "dhcp6_lexer.ll"
5010{
5011 switch(driver.ctx_) {
5013 return isc::dhcp::Dhcp6Parser::make_ARRAY(driver.loc_);
5014 default:
5015 return isc::dhcp::Dhcp6Parser::make_STRING("array", driver.loc_);
5016 }
5017}
5018 YY_BREAK
5019case 179:
5021#line 1919 "dhcp6_lexer.ll"
5022{
5023 switch(driver.ctx_) {
5026 return isc::dhcp::Dhcp6Parser::make_RELAY(driver.loc_);
5027 default:
5028 return isc::dhcp::Dhcp6Parser::make_STRING("relay", driver.loc_);
5029 }
5030}
5031 YY_BREAK
5032case 180:
5034#line 1929 "dhcp6_lexer.ll"
5035{
5036 switch(driver.ctx_) {
5039 default:
5040 return isc::dhcp::Dhcp6Parser::make_STRING("hooks-libraries", driver.loc_);
5041 }
5042}
5043 YY_BREAK
5044case 181:
5046#line 1938 "dhcp6_lexer.ll"
5047{
5048 switch(driver.ctx_) {
5050 return isc::dhcp::Dhcp6Parser::make_PARAMETERS(driver.loc_);
5051 default:
5052 return isc::dhcp::Dhcp6Parser::make_STRING("parameters", driver.loc_);
5053 }
5054}
5055 YY_BREAK
5056case 182:
5058#line 1947 "dhcp6_lexer.ll"
5059{
5060 switch(driver.ctx_) {
5062 return isc::dhcp::Dhcp6Parser::make_LIBRARY(driver.loc_);
5063 default:
5064 return isc::dhcp::Dhcp6Parser::make_STRING("library", driver.loc_);
5065 }
5066}
5067 YY_BREAK
5068case 183:
5070#line 1956 "dhcp6_lexer.ll"
5071{
5072 switch(driver.ctx_) {
5074 return isc::dhcp::Dhcp6Parser::make_SERVER_ID(driver.loc_);
5075 default:
5076 return isc::dhcp::Dhcp6Parser::make_STRING("server-id", driver.loc_);
5077 }
5078}
5079 YY_BREAK
5080case 184:
5082#line 1965 "dhcp6_lexer.ll"
5083{
5084 switch(driver.ctx_) {
5086 return isc::dhcp::Dhcp6Parser::make_LLT(driver.loc_);
5087 default:
5088 return isc::dhcp::Dhcp6Parser::make_STRING("LLT", driver.loc_);
5089 }
5090}
5091 YY_BREAK
5092case 185:
5094#line 1974 "dhcp6_lexer.ll"
5095{
5096 switch(driver.ctx_) {
5098 return isc::dhcp::Dhcp6Parser::make_EN(driver.loc_);
5099 default:
5100 return isc::dhcp::Dhcp6Parser::make_STRING("EN", driver.loc_);
5101 }
5102}
5103 YY_BREAK
5104case 186:
5106#line 1983 "dhcp6_lexer.ll"
5107{
5108 switch(driver.ctx_) {
5110 return isc::dhcp::Dhcp6Parser::make_LL(driver.loc_);
5111 default:
5112 return isc::dhcp::Dhcp6Parser::make_STRING("LL", driver.loc_);
5113 }
5114}
5115 YY_BREAK
5116case 187:
5118#line 1992 "dhcp6_lexer.ll"
5119{
5120 switch(driver.ctx_) {
5122 return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(driver.loc_);
5123 default:
5124 return isc::dhcp::Dhcp6Parser::make_STRING("identifier", driver.loc_);
5125 }
5126}
5127 YY_BREAK
5128case 188:
5130#line 2001 "dhcp6_lexer.ll"
5131{
5132 switch(driver.ctx_) {
5134 return isc::dhcp::Dhcp6Parser::make_HTYPE(driver.loc_);
5135 default:
5136 return isc::dhcp::Dhcp6Parser::make_STRING("htype", driver.loc_);
5137 }
5138}
5139 YY_BREAK
5140case 189:
5142#line 2010 "dhcp6_lexer.ll"
5143{
5144 switch(driver.ctx_) {
5146 return isc::dhcp::Dhcp6Parser::make_TIME(driver.loc_);
5147 default:
5148 return isc::dhcp::Dhcp6Parser::make_STRING("time", driver.loc_);
5149 }
5150}
5151 YY_BREAK
5152case 190:
5154#line 2019 "dhcp6_lexer.ll"
5155{
5156 switch(driver.ctx_) {
5159 default:
5160 return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", driver.loc_);
5161 }
5162}
5163 YY_BREAK
5164case 191:
5166#line 2028 "dhcp6_lexer.ll"
5167{
5168 switch(driver.ctx_) {
5171 default:
5172 return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", driver.loc_);
5173 }
5174}
5175 YY_BREAK
5176case 192:
5178#line 2037 "dhcp6_lexer.ll"
5179{
5180 switch(driver.ctx_) {
5183 default:
5184 return isc::dhcp::Dhcp6Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
5185 }
5186}
5187 YY_BREAK
5188case 193:
5190#line 2046 "dhcp6_lexer.ll"
5191{
5192 switch(driver.ctx_) {
5195 default:
5196 return isc::dhcp::Dhcp6Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
5197 }
5198}
5199 YY_BREAK
5200case 194:
5202#line 2055 "dhcp6_lexer.ll"
5203{
5204 switch(driver.ctx_) {
5207 default:
5208 return isc::dhcp::Dhcp6Parser::make_STRING("hold-reclaimed-time", driver.loc_);
5209 }
5210}
5211 YY_BREAK
5212case 195:
5214#line 2064 "dhcp6_lexer.ll"
5215{
5216 switch(driver.ctx_) {
5219 default:
5220 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-leases", driver.loc_);
5221 }
5222}
5223 YY_BREAK
5224case 196:
5226#line 2073 "dhcp6_lexer.ll"
5227{
5228 switch(driver.ctx_) {
5231 default:
5232 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-time", driver.loc_);
5233 }
5234}
5235 YY_BREAK
5236case 197:
5238#line 2082 "dhcp6_lexer.ll"
5239{
5240 switch(driver.ctx_) {
5243 default:
5244 return isc::dhcp::Dhcp6Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
5245 }
5246}
5247 YY_BREAK
5248case 198:
5250#line 2091 "dhcp6_lexer.ll"
5251{
5252 switch(driver.ctx_) {
5255 default:
5256 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp4o6-port", driver.loc_);
5257 }
5258}
5259 YY_BREAK
5260case 199:
5262#line 2100 "dhcp6_lexer.ll"
5263{
5264 switch(driver.ctx_) {
5267 default:
5268 return isc::dhcp::Dhcp6Parser::make_STRING("multi-threading", driver.loc_);
5269 }
5270}
5271 YY_BREAK
5272case 200:
5274#line 2109 "dhcp6_lexer.ll"
5275{
5276 switch(driver.ctx_) {
5279 default:
5280 return isc::dhcp::Dhcp6Parser::make_STRING("enable-multi-threading", driver.loc_);
5281 }
5282}
5283 YY_BREAK
5284case 201:
5286#line 2118 "dhcp6_lexer.ll"
5287{
5288 switch(driver.ctx_) {
5291 default:
5292 return isc::dhcp::Dhcp6Parser::make_STRING("thread-pool-size", driver.loc_);
5293 }
5294}
5295 YY_BREAK
5296case 202:
5298#line 2127 "dhcp6_lexer.ll"
5299{
5300 switch(driver.ctx_) {
5303 default:
5304 return isc::dhcp::Dhcp6Parser::make_STRING("packet-queue-size", driver.loc_);
5305 }
5306}
5307 YY_BREAK
5308case 203:
5310#line 2136 "dhcp6_lexer.ll"
5311{
5312 switch(driver.ctx_) {
5315 default:
5316 return isc::dhcp::Dhcp6Parser::make_STRING("control-socket", driver.loc_);
5317 }
5318}
5319 YY_BREAK
5320case 204:
5322#line 2145 "dhcp6_lexer.ll"
5323{
5324 switch(driver.ctx_) {
5327 default:
5328 return isc::dhcp::Dhcp6Parser::make_STRING("control-sockets", driver.loc_);
5329 }
5330}
5331 YY_BREAK
5332case 205:
5334#line 2154 "dhcp6_lexer.ll"
5335{
5336 switch(driver.ctx_) {
5338 return isc::dhcp::Dhcp6Parser::make_SOCKET_TYPE(driver.loc_);
5339 default:
5340 return isc::dhcp::Dhcp6Parser::make_STRING("socket-type", driver.loc_);
5341 }
5342}
5343 YY_BREAK
5344case 206:
5346#line 2163 "dhcp6_lexer.ll"
5347{
5348 switch(driver.ctx_) {
5350 return isc::dhcp::Dhcp6Parser::make_UNIX(driver.loc_);
5351 default:
5352 return isc::dhcp::Dhcp6Parser::make_STRING("unix", driver.loc_);
5353 }
5354}
5355 YY_BREAK
5356case 207:
5358#line 2172 "dhcp6_lexer.ll"
5359{
5360 switch(driver.ctx_) {
5362 return isc::dhcp::Dhcp6Parser::make_HTTP(driver.loc_);
5363 default:
5364 return isc::dhcp::Dhcp6Parser::make_STRING("http", driver.loc_);
5365 }
5366}
5367 YY_BREAK
5368case 208:
5370#line 2181 "dhcp6_lexer.ll"
5371{
5372 switch(driver.ctx_) {
5374 return isc::dhcp::Dhcp6Parser::make_HTTPS(driver.loc_);
5375 default:
5376 return isc::dhcp::Dhcp6Parser::make_STRING("https", driver.loc_);
5377 }
5378}
5379 YY_BREAK
5380case 209:
5382#line 2190 "dhcp6_lexer.ll"
5383{
5384 switch(driver.ctx_) {
5386 return isc::dhcp::Dhcp6Parser::make_SOCKET_NAME(driver.loc_);
5387 default:
5388 return isc::dhcp::Dhcp6Parser::make_STRING("socket-name", driver.loc_);
5389 }
5390}
5391 YY_BREAK
5392case 210:
5394#line 2199 "dhcp6_lexer.ll"
5395{
5396 switch(driver.ctx_) {
5399 default:
5400 return isc::dhcp::Dhcp6Parser::make_STRING("socket-address", driver.loc_);
5401 }
5402}
5403 YY_BREAK
5404case 211:
5406#line 2208 "dhcp6_lexer.ll"
5407{
5408 switch(driver.ctx_) {
5410 return isc::dhcp::Dhcp6Parser::make_SOCKET_PORT(driver.loc_);
5411 default:
5412 return isc::dhcp::Dhcp6Parser::make_STRING("socket-port", driver.loc_);
5413 }
5414}
5415 YY_BREAK
5416case 212:
5418#line 2217 "dhcp6_lexer.ll"
5419{
5420 switch(driver.ctx_) {
5423 default:
5424 return isc::dhcp::Dhcp6Parser::make_STRING("authentication", driver.loc_);
5425 }
5426}
5427 YY_BREAK
5428case 213:
5430#line 2226 "dhcp6_lexer.ll"
5431{
5432 switch(driver.ctx_) {
5434 return isc::dhcp::Dhcp6Parser::make_BASIC(driver.loc_);
5435 default:
5436 return isc::dhcp::Dhcp6Parser::make_STRING("basic", driver.loc_);
5437 }
5438}
5439 YY_BREAK
5440case 214:
5442#line 2235 "dhcp6_lexer.ll"
5443{
5444 switch(driver.ctx_) {
5446 return isc::dhcp::Dhcp6Parser::make_REALM(driver.loc_);
5447 default:
5448 return isc::dhcp::Dhcp6Parser::make_STRING("realm", driver.loc_);
5449 }
5450}
5451 YY_BREAK
5452case 215:
5454#line 2244 "dhcp6_lexer.ll"
5455{
5456 switch(driver.ctx_) {
5458 return isc::dhcp::Dhcp6Parser::make_DIRECTORY(driver.loc_);
5459 default:
5460 return isc::dhcp::Dhcp6Parser::make_STRING("directory", driver.loc_);
5461 }
5462}
5463 YY_BREAK
5464case 216:
5466#line 2253 "dhcp6_lexer.ll"
5467{
5468 switch(driver.ctx_) {
5470 return isc::dhcp::Dhcp6Parser::make_CLIENTS(driver.loc_);
5471 default:
5472 return isc::dhcp::Dhcp6Parser::make_STRING("clients", driver.loc_);
5473 }
5474}
5475 YY_BREAK
5476case 217:
5478#line 2262 "dhcp6_lexer.ll"
5479{
5480 switch(driver.ctx_) {
5482 return isc::dhcp::Dhcp6Parser::make_USER_FILE(driver.loc_);
5483 default:
5484 return isc::dhcp::Dhcp6Parser::make_STRING("user-file", driver.loc_);
5485 }
5486}
5487 YY_BREAK
5488case 218:
5490#line 2271 "dhcp6_lexer.ll"
5491{
5492 switch(driver.ctx_) {
5495 default:
5496 return isc::dhcp::Dhcp6Parser::make_STRING("password-file", driver.loc_);
5497 }
5498}
5499 YY_BREAK
5500case 219:
5502#line 2280 "dhcp6_lexer.ll"
5503{
5504 switch(driver.ctx_) {
5507 default:
5508 return isc::dhcp::Dhcp6Parser::make_STRING("cert-required", driver.loc_);
5509 }
5510}
5511 YY_BREAK
5512case 220:
5514#line 2289 "dhcp6_lexer.ll"
5515{
5516 switch(driver.ctx_) {
5519 default:
5520 return isc::dhcp::Dhcp6Parser::make_STRING("http-headers", driver.loc_);
5521 }
5522}
5523 YY_BREAK
5524case 221:
5526#line 2298 "dhcp6_lexer.ll"
5527{
5528 switch(driver.ctx_) {
5530 return isc::dhcp::Dhcp6Parser::make_VALUE(driver.loc_);
5531 default:
5532 return isc::dhcp::Dhcp6Parser::make_STRING("value", driver.loc_);
5533 }
5534}
5535 YY_BREAK
5536case 222:
5538#line 2307 "dhcp6_lexer.ll"
5539{
5540 switch(driver.ctx_) {
5543 default:
5544 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-queue-control", driver.loc_);
5545 }
5546}
5547 YY_BREAK
5548case 223:
5550#line 2316 "dhcp6_lexer.ll"
5551{
5552 switch(driver.ctx_) {
5555 default:
5556 return isc::dhcp::Dhcp6Parser::make_STRING("enable-queue", driver.loc_);
5557 }
5558}
5559 YY_BREAK
5560case 224:
5562#line 2325 "dhcp6_lexer.ll"
5563{
5564 switch(driver.ctx_) {
5566 return isc::dhcp::Dhcp6Parser::make_QUEUE_TYPE(driver.loc_);
5567 default:
5568 return isc::dhcp::Dhcp6Parser::make_STRING("queue-type", driver.loc_);
5569 }
5570}
5571 YY_BREAK
5572case 225:
5574#line 2334 "dhcp6_lexer.ll"
5575{
5576 switch(driver.ctx_) {
5578 return isc::dhcp::Dhcp6Parser::make_CAPACITY(driver.loc_);
5579 default:
5580 return isc::dhcp::Dhcp6Parser::make_STRING("capacity", driver.loc_);
5581 }
5582}
5583 YY_BREAK
5584case 226:
5586#line 2343 "dhcp6_lexer.ll"
5587{
5588 switch(driver.ctx_) {
5590 return isc::dhcp::Dhcp6Parser::make_DHCP_DDNS(driver.loc_);
5591 default:
5592 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-ddns", driver.loc_);
5593 }
5594}
5595 YY_BREAK
5596case 227:
5598#line 2352 "dhcp6_lexer.ll"
5599{
5600 switch(driver.ctx_) {
5603 default:
5604 return isc::dhcp::Dhcp6Parser::make_STRING("early-global-reservations-lookup", driver.loc_);
5605 }
5606}
5607 YY_BREAK
5608case 228:
5610#line 2361 "dhcp6_lexer.ll"
5611{
5612 switch(driver.ctx_) {
5615 default:
5616 return isc::dhcp::Dhcp6Parser::make_STRING("ip-reservations-unique", driver.loc_);
5617 }
5618}
5619 YY_BREAK
5620case 229:
5622#line 2370 "dhcp6_lexer.ll"
5623{
5624 switch(driver.ctx_) {
5627 default:
5628 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-lookup-first", driver.loc_);
5629 }
5630}
5631 YY_BREAK
5632case 230:
5634#line 2379 "dhcp6_lexer.ll"
5635{
5636 switch(driver.ctx_) {
5639 default:
5640 return isc::dhcp::Dhcp6Parser::make_STRING("compatibility", driver.loc_);
5641 }
5642}
5643 YY_BREAK
5644case 231:
5646#line 2388 "dhcp6_lexer.ll"
5647{
5648 switch(driver.ctx_) {
5651 default:
5652 return isc::dhcp::Dhcp6Parser::make_STRING("lenient-option-parsing", driver.loc_);
5653 }
5654}
5655 YY_BREAK
5656case 232:
5658#line 2397 "dhcp6_lexer.ll"
5659{
5660 /* A string has been matched. It contains the actual string and single quotes.
5661 We need to get those quotes out of the way and just use its content, e.g.
5662 for 'foo' we should get foo */
5663 std::string raw(yytext+1);
5664 size_t len = raw.size() - 1;
5665 raw.resize(len);
5666 std::string decoded;
5667 decoded.reserve(len);
5668 for (size_t pos = 0; pos < len; ++pos) {
5669 int b = 0;
5670 char c = raw[pos];
5671 switch (c) {
5672 case '"':
5673 /* impossible condition */
5674 driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
5675 break;
5676 case '\\':
5677 ++pos;
5678 if (pos >= len) {
5679 /* impossible condition */
5680 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
5681 }
5682 c = raw[pos];
5683 switch (c) {
5684 case '"':
5685 case '\\':
5686 case '/':
5687 decoded.push_back(c);
5688 break;
5689 case 'b':
5690 decoded.push_back('\b');
5691 break;
5692 case 'f':
5693 decoded.push_back('\f');
5694 break;
5695 case 'n':
5696 decoded.push_back('\n');
5697 break;
5698 case 'r':
5699 decoded.push_back('\r');
5700 break;
5701 case 't':
5702 decoded.push_back('\t');
5703 break;
5704 case 'u':
5705 /* support only \u0000 to \u00ff */
5706 ++pos;
5707 if (pos + 4 > len) {
5708 /* impossible condition */
5709 driver.error(driver.loc_,
5710 "Overflow unicode escape in \"" + raw + "\"");
5711 }
5712 if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
5713 driver.error(driver.loc_,
5714 "Unsupported unicode escape in \"" + raw + "\"",
5715 pos + 1);
5716 }
5717 pos += 2;
5718 c = raw[pos];
5719 if ((c >= '0') && (c <= '9')) {
5720 b = (c - '0') << 4;
5721 } else if ((c >= 'A') && (c <= 'F')) {
5722 b = (c - 'A' + 10) << 4;
5723 } else if ((c >= 'a') && (c <= 'f')) {
5724 b = (c - 'a' + 10) << 4;
5725 } else {
5726 /* impossible condition */
5727 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5728 }
5729 pos++;
5730 c = raw[pos];
5731 if ((c >= '0') && (c <= '9')) {
5732 b |= c - '0';
5733 } else if ((c >= 'A') && (c <= 'F')) {
5734 b |= c - 'A' + 10;
5735 } else if ((c >= 'a') && (c <= 'f')) {
5736 b |= c - 'a' + 10;
5737 } else {
5738 /* impossible condition */
5739 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5740 }
5741 decoded.push_back(static_cast<char>(b & 0xff));
5742 break;
5743 default:
5744 /* impossible condition */
5745 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5746 }
5747 break;
5748 default:
5749 if ((c >= 0) && (c < 0x20)) {
5750 /* impossible condition */
5751 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5752 }
5753 decoded.push_back(c);
5754 }
5755 }
5756
5757 return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
5758}
5759 YY_BREAK
5760case 233:
5761/* rule 233 can match eol */
5763#line 2498 "dhcp6_lexer.ll"
5764{
5765 /* Bad string with a forbidden control character inside */
5766 std::string raw(yytext+1);
5767 size_t len = raw.size() - 1;
5768 size_t pos = 0;
5769 for (; pos < len; ++pos) {
5770 char c = raw[pos];
5771 if ((c >= 0) && (c < 0x20)) {
5772 break;
5773 }
5774 }
5775 driver.error(driver.loc_,
5776 "Invalid control in " + std::string(yytext),
5777 pos + 1);
5778}
5779 YY_BREAK
5780case 234:
5781/* rule 234 can match eol */
5783#line 2514 "dhcp6_lexer.ll"
5784{
5785 /* Bad string with a bad escape inside */
5786 std::string raw(yytext+1);
5787 size_t len = raw.size() - 1;
5788 size_t pos = 0;
5789 bool found = false;
5790 for (; pos < len; ++pos) {
5791 if (found) {
5792 break;
5793 }
5794 char c = raw[pos];
5795 if (c == '\\') {
5796 ++pos;
5797 c = raw[pos];
5798 switch (c) {
5799 case '"':
5800 case '\\':
5801 case '/':
5802 case 'b':
5803 case 'f':
5804 case 'n':
5805 case 'r':
5806 case 't':
5807 break;
5808 case 'u':
5809 if ((pos + 4 > len) ||
5810 !std::isxdigit(raw[pos + 1]) ||
5811 !std::isxdigit(raw[pos + 2]) ||
5812 !std::isxdigit(raw[pos + 3]) ||
5813 !std::isxdigit(raw[pos + 4])) {
5814 found = true;
5815 }
5816 break;
5817 default:
5818 found = true;
5819 break;
5820 }
5821 }
5822 }
5823 /* The rule stops on the first " including on \" so add ... in this case */
5824 std::string trailer = "";
5825 if (raw[len - 1] == '\\') {
5826 trailer = "...";
5827 }
5828 driver.error(driver.loc_,
5829 "Bad escape in " + std::string(yytext) + trailer,
5830 pos);
5831}
5832 YY_BREAK
5833case 235:
5835#line 2563 "dhcp6_lexer.ll"
5836{
5837 /* Bad string with an open escape at the end */
5838 std::string raw(yytext+1);
5839 driver.error(driver.loc_,
5840 "Overflow escape in " + std::string(yytext),
5841 raw.size() + 1);
5842}
5843 YY_BREAK
5844case 236:
5846#line 2571 "dhcp6_lexer.ll"
5847{
5848 /* Bad string with an open unicode escape at the end */
5849 std::string raw(yytext+1);
5850 size_t pos = raw.size() - 1;
5851 for (; pos > 0; --pos) {
5852 char c = raw[pos];
5853 if (c == 'u') {
5854 break;
5855 }
5856 }
5857 driver.error(driver.loc_,
5858 "Overflow unicode escape in " + std::string(yytext),
5859 pos + 1);
5860}
5861 YY_BREAK
5862case 237:
5864#line 2586 "dhcp6_lexer.ll"
5865{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
5866 YY_BREAK
5867case 238:
5869#line 2587 "dhcp6_lexer.ll"
5870{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
5871 YY_BREAK
5872case 239:
5874#line 2588 "dhcp6_lexer.ll"
5875{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
5876 YY_BREAK
5877case 240:
5879#line 2589 "dhcp6_lexer.ll"
5880{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
5881 YY_BREAK
5882case 241:
5884#line 2590 "dhcp6_lexer.ll"
5885{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
5886 YY_BREAK
5887case 242:
5889#line 2591 "dhcp6_lexer.ll"
5890{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
5891 YY_BREAK
5892case 243:
5894#line 2593 "dhcp6_lexer.ll"
5895{
5896 /* An integer was found. */
5897 std::string tmp(yytext);
5898 int64_t integer = 0;
5899 try {
5900 /* In substring we want to use negative values (e.g. -1).
5901 In enterprise-id we need to use values up to 0xffffffff.
5902 To cover both of those use cases, we need at least
5903 int64_t. */
5904 integer = boost::lexical_cast<int64_t>(tmp);
5905 } catch (const boost::bad_lexical_cast &) {
5906 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5907 }
5908
5909 /* The parser needs the string form as double conversion is no lossless */
5910 return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
5911}
5912 YY_BREAK
5913case 244:
5915#line 2611 "dhcp6_lexer.ll"
5916{
5917 /* A floating point was found. */
5918 std::string tmp(yytext);
5919 double fp = 0.0;
5920 try {
5921 fp = boost::lexical_cast<double>(tmp);
5922 } catch (const boost::bad_lexical_cast &) {
5923 driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
5924 }
5925
5926 return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
5927}
5928 YY_BREAK
5929case 245:
5931#line 2624 "dhcp6_lexer.ll"
5932{
5933 string tmp(yytext);
5934 return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
5935}
5936 YY_BREAK
5937case 246:
5939#line 2629 "dhcp6_lexer.ll"
5940{
5941 return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
5942}
5943 YY_BREAK
5944case 247:
5946#line 2633 "dhcp6_lexer.ll"
5947driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
5948 YY_BREAK
5949case 248:
5951#line 2635 "dhcp6_lexer.ll"
5952driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
5953 YY_BREAK
5954case 249:
5956#line 2637 "dhcp6_lexer.ll"
5957driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
5958 YY_BREAK
5959case 250:
5961#line 2639 "dhcp6_lexer.ll"
5962driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
5963 YY_BREAK
5964case YY_STATE_EOF(INITIAL):
5965#line 2641 "dhcp6_lexer.ll"
5966{
5967 if (driver.states_.empty()) {
5968 return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
5969 }
5970 driver.loc_ = driver.locs_.back();
5971 driver.locs_.pop_back();
5972 driver.file_ = driver.files_.back();
5973 driver.files_.pop_back();
5974 if (driver.sfile_) {
5975 fclose(driver.sfile_);
5976 driver.sfile_ = 0;
5977 }
5978 if (!driver.sfiles_.empty()) {
5979 driver.sfile_ = driver.sfiles_.back();
5980 driver.sfiles_.pop_back();
5981 }
5982 parser6__delete_buffer(YY_CURRENT_BUFFER);
5983 parser6__switch_to_buffer(driver.states_.back());
5984 driver.states_.pop_back();
5985
5986 BEGIN(DIR_EXIT);
5987}
5988 YY_BREAK
5989case 251:
5991#line 2664 "dhcp6_lexer.ll"
5992ECHO;
5993 YY_BREAK
5994#line 5994 "dhcp6_lexer.cc"
5995
5996 case YY_END_OF_BUFFER:
5997 {
5998 /* Amount of text matched not including the EOB char. */
5999 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
6000
6001 /* Undo the effects of YY_DO_BEFORE_ACTION. */
6002 *yy_cp = (yy_hold_char);
6004
6005 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
6006 {
6007 /* We're scanning a new file or input source. It's
6008 * possible that this happened because the user
6009 * just pointed yyin at a new source and called
6010 * yylex(). If so, then we have to assure
6011 * consistency between YY_CURRENT_BUFFER and our
6012 * globals. Here is the right place to do so, because
6013 * this is the first action (other than possibly a
6014 * back-up) that will match for the new input source.
6015 */
6016 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6017/* %if-c-only */
6018 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
6019/* %endif */
6020/* %if-c++-only */
6021/* %endif */
6022 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
6023 }
6024
6025 /* Note that here we test for yy_c_buf_p "<=" to the position
6026 * of the first EOB in the buffer, since yy_c_buf_p will
6027 * already have been incremented past the NUL character
6028 * (since all states make transitions on EOB to the
6029 * end-of-buffer state). Contrast this with the test
6030 * in input().
6031 */
6032 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6033 { /* This was really a NUL. */
6034 yy_state_type yy_next_state;
6035
6036 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
6037
6038 yy_current_state = yy_get_previous_state( );
6039
6040 /* Okay, we're now positioned to make the NUL
6041 * transition. We couldn't have
6042 * yy_get_previous_state() go ahead and do it
6043 * for us because it doesn't know how to deal
6044 * with the possibility of jamming (and we don't
6045 * want to build jamming into it because then it
6046 * will run more slowly).
6047 */
6048
6049 yy_next_state = yy_try_NUL_trans( yy_current_state );
6050
6052
6053 if ( yy_next_state )
6054 {
6055 /* Consume the NUL. */
6056 yy_cp = ++(yy_c_buf_p);
6057 yy_current_state = yy_next_state;
6058 goto yy_match;
6059 }
6060
6061 else
6062 {
6063/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
6064 yy_cp = (yy_last_accepting_cpos);
6065 yy_current_state = (yy_last_accepting_state);
6066 goto yy_find_action;
6067 }
6068 }
6069
6070 else switch ( yy_get_next_buffer( ) )
6071 {
6073 {
6074 (yy_did_buffer_switch_on_eof) = 0;
6075
6076 if ( yywrap( ) )
6077 {
6078 /* Note: because we've taken care in
6079 * yy_get_next_buffer() to have set up
6080 * yytext, we can now set up
6081 * yy_c_buf_p so that if some total
6082 * hoser (like flex itself) wants to
6083 * call the scanner after we return the
6084 * YY_NULL, it'll still work - another
6085 * YY_NULL will get returned.
6086 */
6087 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
6088
6090 goto do_action;
6091 }
6092
6093 else
6094 {
6095 if ( ! (yy_did_buffer_switch_on_eof) )
6097 }
6098 break;
6099 }
6100
6102 (yy_c_buf_p) =
6103 (yytext_ptr) + yy_amount_of_matched_text;
6104
6105 yy_current_state = yy_get_previous_state( );
6106
6107 yy_cp = (yy_c_buf_p);
6109 goto yy_match;
6110
6111 case EOB_ACT_LAST_MATCH:
6112 (yy_c_buf_p) =
6113 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
6114
6115 yy_current_state = yy_get_previous_state( );
6116
6117 yy_cp = (yy_c_buf_p);
6119 goto yy_find_action;
6120 }
6121 break;
6122 }
6123
6124 default:
6126 "fatal flex scanner internal error--no action found" );
6127 } /* end of action switch */
6128 } /* end of scanning one token */
6129 } /* end of user's declarations */
6130} /* end of yylex */
6131/* %ok-for-header */
6132
6133/* %if-c++-only */
6134/* %not-for-header */
6135/* %ok-for-header */
6136
6137/* %endif */
6138
6139/* yy_get_next_buffer - try to read in a new buffer
6140 *
6141 * Returns a code representing an action:
6142 * EOB_ACT_LAST_MATCH -
6143 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
6144 * EOB_ACT_END_OF_FILE - end of file
6145 */
6146/* %if-c-only */
6147static int yy_get_next_buffer (void)
6148/* %endif */
6149/* %if-c++-only */
6150/* %endif */
6151{
6152 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
6153 char *source = (yytext_ptr);
6154 int number_to_move, i;
6155 int ret_val;
6156
6157 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
6159 "fatal flex scanner internal error--end of buffer missed" );
6160
6161 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
6162 { /* Don't try to fill the buffer, so this is an EOF. */
6163 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
6164 {
6165 /* We matched a single character, the EOB, so
6166 * treat this as a final EOF.
6167 */
6168 return EOB_ACT_END_OF_FILE;
6169 }
6170
6171 else
6172 {
6173 /* We matched some text prior to the EOB, first
6174 * process it.
6175 */
6176 return EOB_ACT_LAST_MATCH;
6177 }
6178 }
6179
6180 /* Try to read more data. */
6181
6182 /* First move last chars to start of buffer. */
6183 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
6184
6185 for ( i = 0; i < number_to_move; ++i )
6186 *(dest++) = *(source++);
6187
6188 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
6189 /* don't do the read, it's not guaranteed to return an EOF,
6190 * just force an EOF
6191 */
6192 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
6193
6194 else
6195 {
6196 int num_to_read =
6197 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
6198
6199 while ( num_to_read <= 0 )
6200 { /* Not enough room in the buffer - grow it. */
6201
6202 /* just a shorter name for the current buffer */
6204
6205 int yy_c_buf_p_offset =
6206 (int) ((yy_c_buf_p) - b->yy_ch_buf);
6207
6208 if ( b->yy_is_our_buffer )
6209 {
6210 int new_size = b->yy_buf_size * 2;
6211
6212 if ( new_size <= 0 )
6213 b->yy_buf_size += b->yy_buf_size / 8;
6214 else
6215 b->yy_buf_size *= 2;
6216
6217 b->yy_ch_buf = (char *)
6218 /* Include room in for 2 EOB chars. */
6219 yyrealloc( (void *) b->yy_ch_buf,
6220 (yy_size_t) (b->yy_buf_size + 2) );
6221 }
6222 else
6223 /* Can't grow it, we don't own it. */
6224 b->yy_ch_buf = NULL;
6225
6226 if ( ! b->yy_ch_buf )
6228 "fatal error - scanner input buffer overflow" );
6229
6230 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
6231
6232 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
6233 number_to_move - 1;
6234
6235 }
6236
6237 if ( num_to_read > YY_READ_BUF_SIZE )
6238 num_to_read = YY_READ_BUF_SIZE;
6239
6240 /* Read in more data. */
6241 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
6242 (yy_n_chars), num_to_read );
6243
6244 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6245 }
6246
6247 if ( (yy_n_chars) == 0 )
6248 {
6249 if ( number_to_move == YY_MORE_ADJ )
6250 {
6251 ret_val = EOB_ACT_END_OF_FILE;
6252 yyrestart( yyin );
6253 }
6254
6255 else
6256 {
6257 ret_val = EOB_ACT_LAST_MATCH;
6258 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
6260 }
6261 }
6262
6263 else
6264 ret_val = EOB_ACT_CONTINUE_SCAN;
6265
6266 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
6267 /* Extend the array by 50%, plus the number we really need. */
6268 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
6269 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
6270 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
6271 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
6272 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
6273 /* "- 2" to take care of EOB's */
6274 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
6275 }
6276
6277 (yy_n_chars) += number_to_move;
6278 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
6279 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
6280
6281 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
6282
6283 return ret_val;
6284}
6285
6286/* yy_get_previous_state - get the state just before the EOB char was reached */
6287
6288/* %if-c-only */
6289/* %not-for-header */
6290 static yy_state_type yy_get_previous_state (void)
6291/* %endif */
6292/* %if-c++-only */
6293/* %endif */
6294{
6295 yy_state_type yy_current_state;
6296 char *yy_cp;
6297
6298/* %% [15.0] code to get the start state into yy_current_state goes here */
6299 yy_current_state = (yy_start);
6300
6301 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
6302 {
6303/* %% [16.0] code to find the next state goes here */
6304 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
6305 if ( yy_accept[yy_current_state] )
6306 {
6307 (yy_last_accepting_state) = yy_current_state;
6308 (yy_last_accepting_cpos) = yy_cp;
6309 }
6310 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6311 {
6312 yy_current_state = (int) yy_def[yy_current_state];
6313 if ( yy_current_state >= 2356 )
6314 yy_c = yy_meta[yy_c];
6315 }
6316 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6317 }
6318
6319 return yy_current_state;
6320}
6321
6322/* yy_try_NUL_trans - try to make a transition on the NUL character
6323 *
6324 * synopsis
6325 * next_state = yy_try_NUL_trans( current_state );
6326 */
6327/* %if-c-only */
6328 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
6329/* %endif */
6330/* %if-c++-only */
6331/* %endif */
6332{
6333 int yy_is_jam;
6334 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
6335 char *yy_cp = (yy_c_buf_p);
6336
6337 YY_CHAR yy_c = 1;
6338 if ( yy_accept[yy_current_state] )
6339 {
6340 (yy_last_accepting_state) = yy_current_state;
6341 (yy_last_accepting_cpos) = yy_cp;
6342 }
6343 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6344 {
6345 yy_current_state = (int) yy_def[yy_current_state];
6346 if ( yy_current_state >= 2356 )
6347 yy_c = yy_meta[yy_c];
6348 }
6349 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6350 yy_is_jam = (yy_current_state == 2355);
6351
6352 return yy_is_jam ? 0 : yy_current_state;
6353}
6354
6355#ifndef YY_NO_UNPUT
6356/* %if-c-only */
6357
6358/* %endif */
6359#endif
6360
6361/* %if-c-only */
6362#ifndef YY_NO_INPUT
6363#ifdef __cplusplus
6364 static int yyinput (void)
6365#else
6366 static int input (void)
6367#endif
6368
6369/* %endif */
6370/* %if-c++-only */
6371/* %endif */
6372{
6373 int c;
6374
6375 *(yy_c_buf_p) = (yy_hold_char);
6376
6377 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
6378 {
6379 /* yy_c_buf_p now points to the character we want to return.
6380 * If this occurs *before* the EOB characters, then it's a
6381 * valid NUL; if not, then we've hit the end of the buffer.
6382 */
6383 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6384 /* This was really a NUL. */
6385 *(yy_c_buf_p) = '\0';
6386
6387 else
6388 { /* need more input */
6389 int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
6390 ++(yy_c_buf_p);
6391
6392 switch ( yy_get_next_buffer( ) )
6393 {
6394 case EOB_ACT_LAST_MATCH:
6395 /* This happens because yy_g_n_b()
6396 * sees that we've accumulated a
6397 * token and flags that we need to
6398 * try matching the token before
6399 * proceeding. But for input(),
6400 * there's no matching to consider.
6401 * So convert the EOB_ACT_LAST_MATCH
6402 * to EOB_ACT_END_OF_FILE.
6403 */
6404
6405 /* Reset buffer status. */
6406 yyrestart( yyin );
6407
6408 /*FALLTHROUGH*/
6409
6411 {
6412 if ( yywrap( ) )
6413 return 0;
6414
6415 if ( ! (yy_did_buffer_switch_on_eof) )
6417#ifdef __cplusplus
6418 return yyinput();
6419#else
6420 return input();
6421#endif
6422 }
6423
6425 (yy_c_buf_p) = (yytext_ptr) + offset;
6426 break;
6427 }
6428 }
6429 }
6430
6431 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
6432 *(yy_c_buf_p) = '\0'; /* preserve yytext */
6433 (yy_hold_char) = *++(yy_c_buf_p);
6434
6435/* %% [19.0] update BOL and yylineno */
6436
6437 return c;
6438}
6439/* %if-c-only */
6440#endif /* ifndef YY_NO_INPUT */
6441/* %endif */
6442
6448/* %if-c-only */
6449 void yyrestart (FILE * input_file )
6450/* %endif */
6451/* %if-c++-only */
6452/* %endif */
6453{
6454
6455 if ( ! YY_CURRENT_BUFFER ){
6459 }
6460
6461 yy_init_buffer( YY_CURRENT_BUFFER, input_file );
6463}
6464
6465/* %if-c++-only */
6466/* %endif */
6467
6472/* %if-c-only */
6474/* %endif */
6475/* %if-c++-only */
6476/* %endif */
6477{
6478
6479 /* TODO. We should be able to replace this entire function body
6480 * with
6481 * yypop_buffer_state();
6482 * yypush_buffer_state(new_buffer);
6483 */
6485 if ( YY_CURRENT_BUFFER == new_buffer )
6486 return;
6487
6488 if ( YY_CURRENT_BUFFER )
6489 {
6490 /* Flush out information for old buffer. */
6491 *(yy_c_buf_p) = (yy_hold_char);
6492 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6493 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6494 }
6495
6496 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6498
6499 /* We don't actually know whether we did this switch during
6500 * EOF (yywrap()) processing, but the only time this flag
6501 * is looked at is after yywrap() is called, so it's safe
6502 * to go ahead and always set it.
6503 */
6504 (yy_did_buffer_switch_on_eof) = 1;
6505}
6506
6507/* %if-c-only */
6508static void yy_load_buffer_state (void)
6509/* %endif */
6510/* %if-c++-only */
6511/* %endif */
6512{
6513 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6514 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6515/* %if-c-only */
6516 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6517/* %endif */
6518/* %if-c++-only */
6519/* %endif */
6520 (yy_hold_char) = *(yy_c_buf_p);
6521}
6522
6529/* %if-c-only */
6531/* %endif */
6532/* %if-c++-only */
6533/* %endif */
6534{
6536
6537 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6538 if ( ! b )
6539 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6540
6541 b->yy_buf_size = size;
6542
6543 /* yy_ch_buf has to be 2 characters longer than the size given because
6544 * we need to put in 2 end-of-buffer characters.
6545 */
6546 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
6547 if ( ! b->yy_ch_buf )
6548 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6549
6550 b->yy_is_our_buffer = 1;
6551
6552 yy_init_buffer( b, file );
6553
6554 return b;
6555}
6556
6557/* %if-c++-only */
6558/* %endif */
6559
6564/* %if-c-only */
6566/* %endif */
6567/* %if-c++-only */
6568/* %endif */
6569{
6570
6571 if ( ! b )
6572 return;
6573
6574 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6576
6577 if ( b->yy_is_our_buffer )
6578 yyfree( (void *) b->yy_ch_buf );
6579
6580 yyfree( (void *) b );
6581}
6582
6583/* Initializes or reinitializes a buffer.
6584 * This function is sometimes called more than once on the same buffer,
6585 * such as during a yyrestart() or at EOF.
6586 */
6587/* %if-c-only */
6588 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
6589/* %endif */
6590/* %if-c++-only */
6591/* %endif */
6592
6593{
6594 int oerrno = errno;
6595
6596 yy_flush_buffer( b );
6597
6598/* %if-c-only */
6599 b->yy_input_file = file;
6600/* %endif */
6601/* %if-c++-only */
6602/* %endif */
6603 b->yy_fill_buffer = 1;
6604
6605 /* If b is the current buffer, then yy_init_buffer was _probably_
6606 * called from yyrestart() or through yy_get_next_buffer.
6607 * In that case, we don't want to reset the lineno or column.
6608 */
6609 if (b != YY_CURRENT_BUFFER){
6610 b->yy_bs_lineno = 1;
6611 b->yy_bs_column = 0;
6612 }
6613
6614/* %if-c-only */
6615
6616 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
6617
6618/* %endif */
6619/* %if-c++-only */
6620/* %endif */
6621 errno = oerrno;
6622}
6623
6628/* %if-c-only */
6630/* %endif */
6631/* %if-c++-only */
6632/* %endif */
6633{
6634 if ( ! b )
6635 return;
6636
6637 b->yy_n_chars = 0;
6638
6639 /* We always need two end-of-buffer characters. The first causes
6640 * a transition to the end-of-buffer state. The second causes
6641 * a jam in that state.
6642 */
6645
6646 b->yy_buf_pos = &b->yy_ch_buf[0];
6647
6648 b->yy_at_bol = 1;
6650
6651 if ( b == YY_CURRENT_BUFFER )
6653}
6654
6655/* %if-c-or-c++ */
6662/* %if-c-only */
6664/* %endif */
6665/* %if-c++-only */
6666/* %endif */
6667{
6668 if (new_buffer == NULL)
6669 return;
6670
6672
6673 /* This block is copied from yy_switch_to_buffer. */
6674 if ( YY_CURRENT_BUFFER )
6675 {
6676 /* Flush out information for old buffer. */
6677 *(yy_c_buf_p) = (yy_hold_char);
6678 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6679 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6680 }
6681
6682 /* Only push if top exists. Otherwise, replace top. */
6684 (yy_buffer_stack_top)++;
6685 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6686
6687 /* copied from yy_switch_to_buffer. */
6689 (yy_did_buffer_switch_on_eof) = 1;
6690}
6691/* %endif */
6692
6693/* %if-c-or-c++ */
6698/* %if-c-only */
6700/* %endif */
6701/* %if-c++-only */
6702/* %endif */
6703{
6704 if (!YY_CURRENT_BUFFER)
6705 return;
6706
6709 if ((yy_buffer_stack_top) > 0)
6710 --(yy_buffer_stack_top);
6711
6712 if (YY_CURRENT_BUFFER) {
6714 (yy_did_buffer_switch_on_eof) = 1;
6715 }
6716}
6717/* %endif */
6718
6719/* %if-c-or-c++ */
6720/* Allocates the stack if it does not exist.
6721 * Guarantees space for at least one push.
6722 */
6723/* %if-c-only */
6724static void yyensure_buffer_stack (void)
6725/* %endif */
6726/* %if-c++-only */
6727/* %endif */
6728{
6729 yy_size_t num_to_alloc;
6730
6731 if (!(yy_buffer_stack)) {
6732
6733 /* First allocation is just for 2 elements, since we don't know if this
6734 * scanner will even need a stack. We use 2 instead of 1 to avoid an
6735 * immediate realloc on the next call.
6736 */
6737 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
6738 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
6739 (num_to_alloc * sizeof(struct yy_buffer_state*)
6740 );
6741 if ( ! (yy_buffer_stack) )
6742 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6743
6744 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6745
6746 (yy_buffer_stack_max) = num_to_alloc;
6747 (yy_buffer_stack_top) = 0;
6748 return;
6749 }
6750
6751 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6752
6753 /* Increase the buffer to prepare for a possible push. */
6754 yy_size_t grow_size = 8 /* arbitrary grow size */;
6755
6756 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6757 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
6758 ((yy_buffer_stack),
6759 num_to_alloc * sizeof(struct yy_buffer_state*)
6760 );
6761 if ( ! (yy_buffer_stack) )
6762 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6763
6764 /* zero only the new slots.*/
6765 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6766 (yy_buffer_stack_max) = num_to_alloc;
6767 }
6768}
6769/* %endif */
6770
6771/* %if-c-only */
6779{
6781
6782 if ( size < 2 ||
6783 base[size-2] != YY_END_OF_BUFFER_CHAR ||
6784 base[size-1] != YY_END_OF_BUFFER_CHAR )
6785 /* They forgot to leave room for the EOB's. */
6786 return NULL;
6787
6788 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6789 if ( ! b )
6790 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
6791
6792 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
6793 b->yy_buf_pos = b->yy_ch_buf = base;
6794 b->yy_is_our_buffer = 0;
6795 b->yy_input_file = NULL;
6796 b->yy_n_chars = b->yy_buf_size;
6797 b->yy_is_interactive = 0;
6798 b->yy_at_bol = 1;
6799 b->yy_fill_buffer = 0;
6801
6803
6804 return b;
6805}
6806/* %endif */
6807
6808/* %if-c-only */
6817YY_BUFFER_STATE yy_scan_string (const char * yystr )
6818{
6819
6820 return yy_scan_bytes( yystr, (int) strlen(yystr) );
6821}
6822/* %endif */
6823
6824/* %if-c-only */
6832YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
6833{
6835 char *buf;
6836 yy_size_t n;
6837 int i;
6838
6839 /* Get memory for full buffer, including space for trailing EOB's. */
6840 n = (yy_size_t) (_yybytes_len + 2);
6841 buf = (char *) yyalloc( n );
6842 if ( ! buf )
6843 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
6844
6845 for ( i = 0; i < _yybytes_len; ++i )
6846 buf[i] = yybytes[i];
6847
6848 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6849
6850 b = yy_scan_buffer( buf, n );
6851 if ( ! b )
6852 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
6853
6854 /* It's okay to grow etc. this buffer, and we should throw it
6855 * away when we're done.
6856 */
6857 b->yy_is_our_buffer = 1;
6858
6859 return b;
6860}
6861/* %endif */
6862
6863#ifndef YY_EXIT_FAILURE
6864#define YY_EXIT_FAILURE 2
6865#endif
6866
6867/* %if-c-only */
6868static void yynoreturn yy_fatal_error (const char* msg )
6869{
6870 fprintf( stderr, "%s\n", msg );
6871 exit( YY_EXIT_FAILURE );
6872}
6873/* %endif */
6874/* %if-c++-only */
6875/* %endif */
6876
6877/* Redefine yyless() so it works in section 3 code. */
6878
6879#undef yyless
6880#define yyless(n) \
6881 do \
6882 { \
6883 /* Undo effects of setting up yytext. */ \
6884 int yyless_macro_arg = (n); \
6885 YY_LESS_LINENO(yyless_macro_arg);\
6886 yytext[yyleng] = (yy_hold_char); \
6887 (yy_c_buf_p) = yytext + yyless_macro_arg; \
6888 (yy_hold_char) = *(yy_c_buf_p); \
6889 *(yy_c_buf_p) = '\0'; \
6890 yyleng = yyless_macro_arg; \
6891 } \
6892 while ( 0 )
6893
6894/* Accessor methods (get/set functions) to struct members. */
6895
6896/* %if-c-only */
6897/* %if-reentrant */
6898/* %endif */
6899
6904{
6905
6906 return yylineno;
6907}
6908
6912FILE *yyget_in (void)
6913{
6914 return yyin;
6915}
6916
6920FILE *yyget_out (void)
6921{
6922 return yyout;
6923}
6924
6928int yyget_leng (void)
6929{
6930 return yyleng;
6931}
6932
6936
6937char *yyget_text (void)
6938{
6939 return yytext;
6940}
6941
6942/* %if-reentrant */
6943/* %endif */
6944
6949void yyset_lineno (int _line_number )
6950{
6951
6952 yylineno = _line_number;
6953}
6954
6961void yyset_in (FILE * _in_str )
6962{
6963 yyin = _in_str ;
6964}
6965
6966void yyset_out (FILE * _out_str )
6967{
6968 yyout = _out_str ;
6969}
6970
6971int yyget_debug (void)
6972{
6973 return yy_flex_debug;
6974}
6975
6976void yyset_debug (int _bdebug )
6977{
6978 yy_flex_debug = _bdebug ;
6979}
6980
6981/* %endif */
6982
6983/* %if-reentrant */
6984/* %if-bison-bridge */
6985/* %endif */
6986/* %endif if-c-only */
6987
6988/* %if-c-only */
6989static int yy_init_globals (void)
6990{
6991 /* Initialization is the same as for the non-reentrant scanner.
6992 * This function is called from yylex_destroy(), so don't allocate here.
6993 */
6994
6995 (yy_buffer_stack) = NULL;
6996 (yy_buffer_stack_top) = 0;
6997 (yy_buffer_stack_max) = 0;
6998 (yy_c_buf_p) = NULL;
6999 (yy_init) = 0;
7000 (yy_start) = 0;
7001
7002/* Defined in main.c */
7003#ifdef YY_STDINIT
7004 yyin = stdin;
7005 yyout = stdout;
7006#else
7007 yyin = NULL;
7008 yyout = NULL;
7009#endif
7010
7011 /* For future reference: Set errno on error, since we are called by
7012 * yylex_init()
7013 */
7014 return 0;
7015}
7016/* %endif */
7017
7018/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
7019/* yylex_destroy is for both reentrant and non-reentrant scanners. */
7021{
7022
7023 /* Pop the buffer stack, destroying each element. */
7024 while(YY_CURRENT_BUFFER){
7028 }
7029
7030 /* Destroy the stack itself. */
7031 yyfree((yy_buffer_stack) );
7032 (yy_buffer_stack) = NULL;
7033
7034 /* Reset the globals. This is important in a non-reentrant scanner so the next time
7035 * yylex() is called, initialization will occur. */
7036 yy_init_globals( );
7037
7038/* %if-reentrant */
7039/* %endif */
7040 return 0;
7041}
7042/* %endif */
7043
7044/*
7045 * Internal utility routines.
7046 */
7047
7048#ifndef yytext_ptr
7049static void yy_flex_strncpy (char* s1, const char * s2, int n )
7050{
7051
7052 int i;
7053 for ( i = 0; i < n; ++i )
7054 s1[i] = s2[i];
7055}
7056#endif
7057
7058#ifdef YY_NEED_STRLEN
7059static int yy_flex_strlen (const char * s )
7060{
7061 int n;
7062 for ( n = 0; s[n]; ++n )
7063 ;
7064
7065 return n;
7066}
7067#endif
7068
7069void *yyalloc (yy_size_t size )
7070{
7071 return malloc(size);
7072}
7073
7074void *yyrealloc (void * ptr, yy_size_t size )
7075{
7076
7077 /* The cast to (char *) in the following accommodates both
7078 * implementations that use char* generic pointers, and those
7079 * that use void* generic pointers. It works with the latter
7080 * because both ANSI C and C++ allow castless assignment from
7081 * any pointer type to void*, and deal with argument conversions
7082 * as though doing an assignment.
7083 */
7084 return realloc(ptr, size);
7085}
7086
7087void yyfree (void * ptr )
7088{
7089 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
7090}
7091
7092/* %if-tables-serialization definitions */
7093/* %define-yytables The name for this specific scanner's tables. */
7094#define YYTABLES_NAME "yytables"
7095/* %endif */
7096
7097/* %ok-for-header */
7098
7099#line 2664 "dhcp6_lexer.ll"
7100
7101
7102using namespace isc::dhcp;
7103
7104void
7105Parser6Context::scanStringBegin(const std::string& str, ParserType parser_type)
7106{
7107 start_token_flag = true;
7108 start_token_value = parser_type;
7109
7110 file_ = "<string>";
7111 sfile_ = 0;
7112 loc_.initialize(&file_);
7113 yy_flex_debug = trace_scanning_;
7114 YY_BUFFER_STATE buffer;
7115 buffer = parser6__scan_bytes(str.c_str(), str.size());
7116 if (!buffer) {
7117 fatal("cannot scan string");
7118 /* fatal() throws an exception so this can't be reached */
7119 }
7120}
7121
7122void
7124 const std::string& filename,
7125 ParserType parser_type)
7126{
7127 start_token_flag = true;
7128 start_token_value = parser_type;
7129
7130 file_ = filename;
7131 sfile_ = f;
7132 loc_.initialize(&file_);
7133 yy_flex_debug = trace_scanning_;
7134 YY_BUFFER_STATE buffer;
7135
7136 /* See dhcp6_lexer.cc header for available definitions */
7137 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
7138 if (!buffer) {
7139 fatal("cannot scan file " + filename);
7140 }
7141 parser6__switch_to_buffer(buffer);
7142}
7143
7144void
7146 if (sfile_)
7147 fclose(sfile_);
7148 sfile_ = 0;
7149 static_cast<void>(parser6_lex_destroy());
7150 /* Close files */
7151 while (!sfiles_.empty()) {
7152 FILE* f = sfiles_.back();
7153 if (f) {
7154 fclose(f);
7155 }
7156 sfiles_.pop_back();
7157 }
7158 /* Delete states */
7159 while (!states_.empty()) {
7160 parser6__delete_buffer(states_.back());
7161 states_.pop_back();
7162 }
7163}
7164
7165void
7166Parser6Context::includeFile(const std::string& filename) {
7167 if (states_.size() > 10) {
7168 fatal("Too many nested include.");
7169 }
7170
7171 FILE* f = fopen(filename.c_str(), "r");
7172 if (!f) {
7173 fatal("Can't open include file " + filename);
7174 }
7175 if (sfile_) {
7176 sfiles_.push_back(sfile_);
7177 }
7178 sfile_ = f;
7179 states_.push_back(YY_CURRENT_BUFFER);
7180 YY_BUFFER_STATE buffer;
7181 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
7182 if (!buffer) {
7183 fatal( "Can't scan include file " + filename);
7184 }
7185 parser6__switch_to_buffer(buffer);
7186 files_.push_back(file_);
7187 file_ = filename;
7188 locs_.push_back(loc_);
7189 loc_.initialize(&file_);
7190
7191 BEGIN(INITIAL);
7192}
7193
7194namespace {
7196class Dummy {
7197 /* cppcheck-suppress unusedPrivateFunction */
7198 void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
7199};
7200}
7201#endif /* !__clang_analyzer__ */
7202
#define YY_DECL
#define YY_NEW_FILE
unsigned char flex_uint8_t
#define COMMENT
#define yyleng
#define YY_EXTRA_TYPE
#define DIR_INCLUDE
#define yyout
short int flex_int16_t
#define yytext
unsigned int flex_uint32_t
#define YY_BREAK
#define yynoreturn
int yy_act
struct yy_buffer_state * YY_BUFFER_STATE
#define YY_BUFFER_NEW
#define YY_RESTORE_YY_MORE_OFFSET
#define yylineno
#define YY_BUFFER_NORMAL
char * yy_cp
#define YY_MORE_ADJ
#define YY_RULE_SETUP
#define yy_flex_debug
#define DIR_EXIT
#define yytext_ptr
signed char flex_int8_t
#define EOB_ACT_END_OF_FILE
#define YY_CURRENT_BUFFER_LVALUE
int flex_int32_t
#define yyin
#define YY_START
int yy_state_type
#define YY_CURRENT_BUFFER
#define INITIAL
char * yy_bp
#define YY_READ_BUF_SIZE
#define ECHO
#define YY_END_OF_BUFFER
#define BEGIN
#define YY_END_OF_BUFFER_CHAR
unsigned short int flex_uint16_t
flex_uint8_t YY_CHAR
#define YY_DO_BEFORE_ACTION
#define EOB_ACT_LAST_MATCH
size_t yy_size_t
#define YY_BUFFER_EOF_PENDING
#define EOB_ACT_CONTINUE_SCAN
#define YY_BUF_SIZE
#define YY_EXIT_FAILURE
#define DIR_ENTER
Evaluation error exception raised when trying to parse.
static symbol_type make_SUB_RESERVATION(const location_type &l)
static symbol_type make_EXCLUDED_PREFIXES(const location_type &l)
static symbol_type make_NAME(const location_type &l)
static symbol_type make_CIPHER_LIST(const location_type &l)
static symbol_type make_SUB_HOOKS_LIBRARY(const location_type &l)
static symbol_type make_WHEN_PRESENT(const location_type &l)
static symbol_type make_COMMENT(const location_type &l)
static symbol_type make_LENIENT_OPTION_PARSING(const location_type &l)
static symbol_type make_VALUE(const location_type &l)
static symbol_type make_SENDER_PORT(const location_type &l)
static symbol_type make_CODE(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_AGE(const location_type &l)
static symbol_type make_CACHE_THRESHOLD(const location_type &l)
static symbol_type make_ALLOCATOR(const location_type &l)
static symbol_type make_DHCP6(const location_type &l)
static symbol_type make_PASSWORD_FILE(const location_type &l)
static symbol_type make_DIRECTORY(const location_type &l)
static symbol_type make_VERIFY_CA(const location_type &l)
static symbol_type make_HOSTS_DATABASE(const location_type &l)
static symbol_type make_DDNS_CONFLICT_RESOLUTION_MODE(const location_type &l)
static symbol_type make_SERVICE_SOCKETS_REQUIRE_ALL(const location_type &l)
static symbol_type make_USER_CONTEXT(const location_type &l)
static symbol_type make_ENTERPRISE_ID(const location_type &l)
static symbol_type make_COMMA(const location_type &l)
static symbol_type make_DHCP_DDNS(const location_type &l)
static symbol_type make_MAX_RECLAIM_TIME(const location_type &l)
static symbol_type make_SOCKET_NAME(const location_type &l)
static symbol_type make_NCR_FORMAT(const location_type &l)
static symbol_type make_RESERVATIONS_OUT_OF_POOL(const location_type &l)
static symbol_type make_NCR_PROTOCOL(const location_type &l)
static symbol_type make_HTTPS(const location_type &l)
static symbol_type make_FLOAT(const double &v, const location_type &l)
static symbol_type make_EN(const location_type &l)
static symbol_type make_ARRAY(const location_type &l)
static symbol_type make_DDNS_QUALIFYING_SUFFIX(const location_type &l)
static symbol_type make_COLON(const location_type &l)
static symbol_type make_RETRY_ON_STARTUP(const location_type &l)
static symbol_type make_SUB_DHCP6(const location_type &l)
static symbol_type make_ONLY_IN_ADDITIONAL_LIST(const location_type &l)
static symbol_type make_RE_DETECT(const location_type &l)
static symbol_type make_DELEGATED_LEN(const location_type &l)
static symbol_type make_THREAD_POOL_SIZE(const location_type &l)
static symbol_type make_INTERFACE_ID(const location_type &l)
static symbol_type make_RESERVATIONS_LOOKUP_FIRST(const location_type &l)
static symbol_type make_HOSTNAME(const location_type &l)
static symbol_type make_DATA_DIRECTORY(const location_type &l)
static symbol_type make_MAX_QUEUE_SIZE(const location_type &l)
static symbol_type make_SUB_POOL6(const location_type &l)
static symbol_type make_SUB_DHCP_DDNS(const location_type &l)
static symbol_type make_SUB_CONFIG_CONTROL(const location_type &l)
static symbol_type make_DDNS_SEND_UPDATES(const location_type &l)
static symbol_type make_IP_ADDRESSES(const location_type &l)
static symbol_type make_EVALUATE_ADDITIONAL_CLASSES(const location_type &l)
static symbol_type make_POOLS(const location_type &l)
static symbol_type make_PREFIX(const location_type &l)
static symbol_type make_ID(const location_type &l)
static symbol_type make_MAXVER(const location_type &l)
static symbol_type make_RESERVATIONS(const location_type &l)
static symbol_type make_REQUIRE(const location_type &l)
static symbol_type make_DATA(const location_type &l)
static symbol_type make_INTERFACES(const location_type &l)
static symbol_type make_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_SERVER_IP(const location_type &l)
static symbol_type make_PATTERN(const location_type &l)
static symbol_type make_MAXSIZE(const location_type &l)
static symbol_type make_VERIFY_FULL(const location_type &l)
static symbol_type make_POOL_ID(const location_type &l)
static symbol_type make_HOST_RESERVATION_IDENTIFIERS(const location_type &l)
static symbol_type make_OPTION_DATA(const location_type &l)
static symbol_type make_SUBNET6(const location_type &l)
static symbol_type make_PD_POOLS(const location_type &l)
static symbol_type make_RCURLY_BRACKET(const location_type &l)
static symbol_type make_TEMPLATE_TEST(const location_type &l)
static symbol_type make_MAX_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_TRUST_ANCHOR(const location_type &l)
static symbol_type make_PORT(const location_type &l)
static symbol_type make_AUTHENTICATION(const location_type &l)
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_ENABLE_UPDATES(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_REPLACEMENT(const location_type &l)
static symbol_type make_NULL_TYPE(const location_type &l)
static symbol_type make_MAX_RECONNECT_TRIES(const location_type &l)
static symbol_type make_MAX_VALID_LIFETIME(const location_type &l)
static symbol_type make_TIME(const location_type &l)
static symbol_type make_SOCKET_TYPE(const location_type &l)
static symbol_type make_CHECK_WITH_DHCID(const location_type &l)
static symbol_type make_SUB_INTERFACES6(const location_type &l)
static symbol_type make_JSON(const location_type &l)
static symbol_type make_MIN_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_LLT(const location_type &l)
static symbol_type make_READ_TIMEOUT(const location_type &l)
static symbol_type make_CERT_FILE(const location_type &l)
static symbol_type make_HTTP(const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
static symbol_type make_FLEX_ID(const location_type &l)
static symbol_type make_REQUIRE_CLIENT_CLASSES(const location_type &l)
static symbol_type make_DDNS_TTL(const location_type &l)
static symbol_type make_SERVER_PORT(const location_type &l)
static symbol_type make_ONLY_IF_REQUIRED(const location_type &l)
static symbol_type make_SHARED_NETWORKS(const location_type &l)
static symbol_type make_DDNS_REPLACE_CLIENT_NAME(const location_type &l)
static symbol_type make_HTTP_HEADERS(const location_type &l)
static symbol_type make_USER_FILE(const location_type &l)
static symbol_type make_SUB_OPTION_DATA(const location_type &l)
static symbol_type make_OPTION_DEF(const location_type &l)
static symbol_type make_TCP_USER_TIMEOUT(const location_type &l)
static symbol_type make_UNIX(const location_type &l)
static symbol_type make_DDNS_GENERATED_PREFIX(const location_type &l)
static symbol_type make_ALWAYS_SEND(const location_type &l)
static symbol_type make_CLIENT_CLASS(const location_type &l)
static symbol_type make_NEVER_SEND(const location_type &l)
static symbol_type make_IP_RESERVATIONS_UNIQUE(const location_type &l)
static symbol_type make_PARKED_PACKET_LIMIT(const location_type &l)
static symbol_type make_LFC_INTERVAL(const location_type &l)
static symbol_type make_USER(const location_type &l)
static symbol_type make_SUBNET(const location_type &l)
static symbol_type make_RECORD_TYPES(const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
static symbol_type make_RECONNECT_WAIT_TIME(const location_type &l)
static symbol_type make_SUB_SUBNET6(const location_type &l)
static symbol_type make_EXPIRED_LEASES_PROCESSING(const location_type &l)
static symbol_type make_EXCLUDED_PREFIX(const location_type &l)
static symbol_type make_ALWAYS(const location_type &l)
static symbol_type make_HOSTS_DATABASES(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
static symbol_type make_DDNS_USE_CONFLICT_RESOLUTION(const location_type &l)
static symbol_type make_DDNS_UPDATE_ON_RENEW(const location_type &l)
static symbol_type make_SANITY_CHECKS(const location_type &l)
static symbol_type make_SOCKET_PORT(const location_type &l)
static symbol_type make_REALM(const location_type &l)
static symbol_type make_ENABLE_MULTI_THREADING(const location_type &l)
static symbol_type make_PERSIST(const location_type &l)
static symbol_type make_LEASE_DATABASE(const location_type &l)
static symbol_type make_INTERFACES_CONFIG(const location_type &l)
static symbol_type make_HTYPE(const location_type &l)
static symbol_type make_FLUSH_RECLAIMED_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_CONFIG_FETCH_WAIT_TIME(const location_type &l)
static symbol_type make_OUTPUT_OPTIONS(const location_type &l)
static symbol_type make_STORE_EXTENDED_INFO(const location_type &l)
static symbol_type make_CLIENT_CLASSES(const location_type &l)
static symbol_type make_PREFIX_LEN(const location_type &l)
static symbol_type make_RSQUARE_BRACKET(const location_type &l)
static symbol_type make_END(const location_type &l)
static symbol_type make_IDENTIFIER(const location_type &l)
static symbol_type make_CACHE_MAX_AGE(const location_type &l)
static symbol_type make_READONLY(const location_type &l)
static symbol_type make_PASSWORD(const location_type &l)
static symbol_type make_LEASE_CHECKS(const location_type &l)
static symbol_type make_FLUSH(const location_type &l)
static symbol_type make_MIN_VALID_LIFETIME(const location_type &l)
static symbol_type make_T2_PERCENT(const location_type &l)
static symbol_type make_UNWARNED_RECLAIM_CYCLES(const location_type &l)
static symbol_type make_DEBUGLEVEL(const location_type &l)
static symbol_type make_BASIC(const location_type &l)
static symbol_type make_HOOKS_LIBRARIES(const location_type &l)
static symbol_type make_TCP(const location_type &l)
static symbol_type make_POOL(const location_type &l)
static symbol_type make_SERVICE_SOCKETS_RETRY_WAIT_TIME(const location_type &l)
static symbol_type make_LL(const location_type &l)
static symbol_type make_WHEN_NOT_PRESENT(const location_type &l)
static symbol_type make_SERVE_RETRY_EXIT(const location_type &l)
static symbol_type make_INTERFACE(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_CLIENT_UPDATE(const location_type &l)
static symbol_type make_SERVE_RETRY_CONTINUE(const location_type &l)
static symbol_type make_ENABLE_QUEUE(const location_type &l)
static symbol_type make_STOP_RETRY_EXIT(const location_type &l)
static symbol_type make_CONFIG_DATABASES(const location_type &l)
static symbol_type make_DHCP_QUEUE_CONTROL(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_COUNT(const location_type &l)
static symbol_type make_CALCULATE_TEE_TIMES(const location_type &l)
static symbol_type make_CAPACITY(const location_type &l)
static symbol_type make_RECLAIM_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_SUB_OPTION_DEF(const location_type &l)
static symbol_type make_DHCP_MULTI_THREADING(const location_type &l)
static symbol_type make_EARLY_GLOBAL_RESERVATIONS_LOOKUP(const location_type &l)
static symbol_type make_CLIENTS(const location_type &l)
static symbol_type make_SUB_PD_POOL(const location_type &l)
static symbol_type make_T1_PERCENT(const location_type &l)
static symbol_type make_DDNS_TTL_MIN(const location_type &l)
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
static symbol_type make_DDNS_TTL_MAX(const location_type &l)
static symbol_type make_UDP(const location_type &l)
static symbol_type make_CHECK_EXISTS_WITH_DHCID(const location_type &l)
static symbol_type make_KEY_FILE(const location_type &l)
static symbol_type make_QUEUE_TYPE(const location_type &l)
static symbol_type make_CERT_REQUIRED(const location_type &l)
static symbol_type make_TOPLEVEL_DHCP6(const location_type &l)
static symbol_type make_SERVER_ID(const location_type &l)
static symbol_type make_RELAY(const location_type &l)
static symbol_type make_HOLD_RECLAIMED_TIME(const location_type &l)
static symbol_type make_RELAY_SUPPLIED_OPTIONS(const location_type &l)
static symbol_type make_COMPATIBILITY(const location_type &l)
static symbol_type make_SUB_OPTION_DEFS(const location_type &l)
static symbol_type make_PD_ALLOCATOR(const location_type &l)
static symbol_type make_CONTROL_SOCKET(const location_type &l)
static symbol_type make_NO_CHECK_WITH_DHCID(const location_type &l)
static symbol_type make_SOCKET_ADDRESS(const location_type &l)
static symbol_type make_WRITE_TIMEOUT(const location_type &l)
static symbol_type make_TYPE(const location_type &l)
static symbol_type make_DDNS_TTL_PERCENT(const location_type &l)
static symbol_type make_EXTENDED_INFO_CHECKS(const location_type &l)
static symbol_type make_CONNECT_TIMEOUT(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_LOGGERS(const location_type &l)
static symbol_type make_PACKET_QUEUE_SIZE(const location_type &l)
static symbol_type make_RESERVATIONS_IN_SUBNET(const location_type &l)
static symbol_type make_REBIND_TIMER(const location_type &l)
static symbol_type make_NO_CHECK_WITHOUT_DHCID(const location_type &l)
static symbol_type make_CONFIG_CONTROL(const location_type &l)
static symbol_type make_PREFIXES(const location_type &l)
static symbol_type make_CSV_FORMAT(const location_type &l)
static symbol_type make_MAC_SOURCES(const location_type &l)
static symbol_type make_SSL_MODE(const location_type &l)
static symbol_type make_DECLINE_PROBATION_PERIOD(const location_type &l)
static symbol_type make_TEST(const location_type &l)
static symbol_type make_SERVICE_SOCKETS_MAX_RETRIES(const location_type &l)
static symbol_type make_RAPID_COMMIT(const location_type &l)
static symbol_type make_DUID(const location_type &l)
static symbol_type make_PREFER(const location_type &l)
static symbol_type make_DHCP4O6_PORT(const location_type &l)
static symbol_type make_VALID_LIFETIME(const location_type &l)
static symbol_type make_ON_FAIL(const location_type &l)
static symbol_type make_SENDER_IP(const location_type &l)
static symbol_type make_HOST(const location_type &l)
static symbol_type make_MAX_RECLAIM_LEASES(const location_type &l)
static symbol_type make_CONTROL_SOCKETS(const location_type &l)
static symbol_type make_SPACE(const location_type &l)
static symbol_type make_TOPLEVEL_JSON(const location_type &l)
static symbol_type make_EXCLUDED_PREFIX_LEN(const location_type &l)
static symbol_type make_HW_ADDRESS(const location_type &l)
static symbol_type make_RENEW_TIMER(const location_type &l)
static symbol_type make_DISABLE(const location_type &l)
static symbol_type make_MAX_ROW_ERRORS(const location_type &l)
static symbol_type make_NEVER(const location_type &l)
static symbol_type make_BOOLEAN(const bool &v, const location_type &l)
static symbol_type make_ENCAPSULATE(const location_type &l)
static symbol_type make_RESERVATIONS_GLOBAL(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_SET(const location_type &l)
static symbol_type make_SERVER_TAG(const location_type &l)
static symbol_type make_OUTPUT(const location_type &l)
static symbol_type make_SEVERITY(const location_type &l)
std::vector< isc::dhcp::location > locs_
Location stack.
isc::dhcp::location loc_
Location of the current token.
void includeFile(const std::string &filename)
Divert input to an include file.
FILE * sfile_
sFile (aka FILE)
void scanStringBegin(const std::string &str, ParserType type)
Method called before scanning starts on a string.
std::vector< std::string > files_
File name stack.
@ LOGGERS
Used while parsing Dhcp6/loggers structures.
@ CLIENT_CLASSES
Used while parsing Dhcp6/client-classes structures.
@ DATABASE_ON_FAIL
Used while parsing Dhcp6/*-database/on-fail.
@ OPTION_DEF
Used while parsing Dhcp6/option-def structures.
@ POOLS
Used while parsing Dhcp6/subnet6/pools structures.
@ AUTHENTICATION
Used while parsing Dhcp6/control-socket/authentication structures.
@ EXPIRED_LEASES_PROCESSING
Used while parsing Dhcp6/expired-leases-processing.
@ OPTION_DATA
Used while parsing Dhcp6/option-data, Dhcp6/subnet6/option-data or anywhere option-data is present (c...
@ CONTROL_SOCKET
Used while parsing Dhcp6/control-socket structures.
@ DHCP_QUEUE_CONTROL
Used while parsing Dhcp6/dhcp-queue-control structures.
@ SERVER_ID
Used while parsing Dhcp6/server-id structures.
@ HOSTS_DATABASE
Used while parsing Dhcp6/hosts-database[s] structures.
@ SUBNET6
Used while parsing Dhcp6/Subnet6 structures.
@ RESERVATIONS
Used while parsing Dhcp6/reservations structures.
@ CONFIG_DATABASE
Used while parsing config-control/config-databases.
@ AUTH_TYPE
Used while parsing Dhcp6/control-socket/authentication/type structures.
@ SSL_MODE
Used while parsing Dhcp6/*-database/ssl-mode.
@ DHCP_DDNS
Used while parsing Dhcp6/dhcp-ddns.
@ COMPATIBILITY
Used while parsing compatibility parameters.
@ INTERFACES_CONFIG
Used while parsing Dhcp6/interfaces structures.
@ DUID_TYPE
Used while parsing Dhcp6/server-id/type structures.
@ HOOKS_LIBRARIES
Used while parsing Dhcp6/hooks-libraries.
@ CONFIG
Used while parsing content of Dhcp6.
@ DDNS_CONFLICT_RESOLUTION_MODE
Used while parsing Dhcp6/ddns-conflict-resolution-mode.
@ LEASE_DATABASE
Used while parsing Dhcp6/lease-database structures.
@ CLIENTS
Used while parsing Dhcp6/control-socket/authentication/clients structures.
@ NCR_PROTOCOL
Used while parsing Dhcp6/dhcp-ddns/ncr-protocol.
@ RELAY
Used while parsing Dhcp6/subnet6/relay structures.
@ OUTPUT_OPTIONS
Used while parsing Dhcp6/loggers/output-options structures.
@ HOST_RESERVATION_IDENTIFIERS
Used while parsing Dhcp6/host-reservation-identifiers.
@ NCR_FORMAT
Used while parsing Dhcp6/dhcp-ddns/ncr-format.
@ REPLACE_CLIENT_NAME
Used while parsing Dhcp6/dhcp-ddns/replace-client-name.
@ DHCP_MULTI_THREADING
Used while parsing Dhcp6/multi-threading structures.
@ SHARED_NETWORK
Used while parsing shared-networks structures.
@ CONTROL_SOCKET_TYPE
Used while parsing Dhcp6/control-socket/socket-type structures.
@ PD_POOLS
Used while parsing Dhcp6/subnet6/pd-pools structures.
@ MAC_SOURCES
Used while parsing Dhcp6/mac-sources structures.
@ CONFIG_CONTROL
Used while parsing Dhcp6/config-control.
void scanEnd()
Method called after the last tokens are scanned.
void scanFileBegin(FILE *f, const std::string &filename, ParserType type)
Method called before scanning starts on a file.
ParserType
Defines currently supported scopes.
@ PARSER_PD_POOL
This will parse the input as pd-pool content.
@ PARSER_DHCP6
This parser will parse the content as Dhcp6 config wrapped in a map (that's the regular config file)
@ PARSER_OPTION_DATA
This will parse the input as option data.
@ PARSER_HOOKS_LIBRARY
This will parse the input as hooks-library.
@ PARSER_POOL6
This will parse the input as pool6 content.
@ PARSER_JSON
This parser will parse the content as generic JSON.
@ PARSER_OPTION_DEF
This will parse the input as option definition.
@ PARSER_INTERFACES
This will parse the input as interfaces content.
@ PARSER_DHCP_DDNS
This will parse the input as dhcp-ddns. (D2 client config)
@ PARSER_CONFIG_CONTROL
This will parse the input as config-control.
@ PARSER_HOST_RESERVATION
This will parse the input as host-reservation.
@ PARSER_OPTION_DEFS
This will parse the input option definitions (for tests).
@ PARSER_SUBNET6
This will parse the input as Subnet6 content.
@ SUBPARSER_DHCP6
This parser will parse the content of Dhcp6 (without outer { } and without "Dhcp6").
std::vector< FILE * > sfiles_
sFile (aka FILE) stack
std::vector< struct yy_buffer_state * > states_
Lexer state stack.
#define yy_load_buffer_state
#define yyset_extra
#define yyset_lineno
#define yyrestart
#define yyset_debug
#define yy_scan_bytes
#define yyget_debug
#define yypush_buffer_state
#define yyget_in
Get the input stream.
#define yyfree
#define yylex
#define yyget_leng
Get the length of the current token.
#define yywrap
#define yyget_out
Get the output stream.
#define yyensure_buffer_stack
#define yy_scan_buffer
#define yy_scan_string
#define yyalloc
#define yylex_destroy
#define yyget_text
Get the current token.
#define yy_switch_to_buffer
#define yy_init_buffer
#define yyget_extra
#define YY_INPUT(buf, result, max_size)
#define yy_flush_buffer
#define yyrealloc
#define YY_STATE_EOF(state)
#define BEGIN
#define YY_FATAL_ERROR(msg)
#define yypop_buffer_state
Removes and deletes the top of the stack, if present.
#define yy_create_buffer
#define yy_delete_buffer
#define yyset_out
#define yyget_lineno
Get the current line number.
#define YY_SC_TO_UI(c)
#define yyset_in
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
@ fatal
Definition db_log.h:117
int yy_bs_column
The column count.
int yy_bs_lineno
The line count.
flex_int32_t yy_verify