Kea 3.2.0-git
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 256
695#define YY_END_OF_BUFFER 257
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[2426] =
704 { 0,
705 249, 249, 0, 0, 0, 0, 0, 0, 0, 0,
706 257, 255, 10, 11, 255, 1, 247, 243, 249, 249,
707 255, 246, 246, 244, 255, 255, 255, 255, 255, 239,
708 240, 255, 255, 255, 241, 242, 5, 5, 5, 255,
709 255, 255, 10, 11, 0, 0, 234, 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, 0,
713 1, 247, 247, 0, 249, 246, 246, 0, 249, 3,
714 2, 245, 246, 6, 0, 249, 0, 0, 0, 0,
715
716 0, 0, 4, 0, 0, 9, 0, 235, 0, 0,
717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
718 0, 0, 0, 237, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
725 0, 0, 0, 0, 0, 0, 247, 0, 247, 2,
726
727 248, 245, 0, 0, 0, 0, 0, 0, 0, 0,
728 8, 0, 0, 0, 186, 0, 0, 187, 0, 0,
729 0, 0, 0, 0, 0, 0, 236, 238, 0, 0,
730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
734 134, 0, 0, 0, 0, 0, 0, 0, 0, 0,
735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
737
738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
741 0, 0, 0, 0, 0, 0, 0, 248, 0, 0,
742 248, 0, 254, 252, 0, 251, 250, 0, 0, 0,
743 0, 0, 0, 185, 0, 0, 23, 0, 22, 0,
744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
748
749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
757 0, 248, 253, 250, 0, 0, 0, 0, 0, 24,
758 0, 0, 26, 0, 0, 0, 0, 0, 0, 0,
759
760 0, 0, 0, 0, 0, 0, 0, 0, 139, 0,
761 0, 0, 0, 0, 0, 117, 0, 0, 0, 0,
762 0, 0, 0, 0, 0, 171, 0, 0, 0, 0,
763 0, 0, 0, 0, 0, 0, 0, 0, 53, 0,
764 0, 0, 208, 0, 0, 0, 0, 0, 0, 0,
765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
766 0, 0, 0, 0, 0, 0, 0, 116, 0, 0,
767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
768 0, 0, 0, 127, 0, 0, 54, 0, 0, 0,
769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
770
771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
773 0, 163, 0, 190, 0, 50, 207, 0, 51, 0,
774 0, 0, 0, 0, 0, 0, 0, 32, 29, 28,
775 0, 0, 0, 0, 0, 0, 0, 179, 0, 214,
776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
779 0, 0, 0, 0, 0, 0, 0, 0, 0, 153,
780 0, 0, 0, 0, 0, 0, 0, 209, 189, 0,
781
782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
784 0, 0, 0, 27, 0, 0, 0, 0, 0, 0,
785 0, 0, 0, 0, 0, 0, 0, 0, 120, 0,
786 0, 0, 0, 0, 0, 0, 215, 0, 0, 0,
787 0, 180, 0, 0, 0, 0, 0, 0, 0, 0,
788 0, 0, 0, 0, 0, 175, 0, 0, 0, 0,
789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
790 0, 222, 0, 0, 7, 30, 0, 0, 0, 0,
791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
792
793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799 0, 0, 0, 0, 155, 0, 0, 0, 0, 0,
800 0, 0, 0, 0, 0, 152, 0, 0, 0, 0,
801 0, 0, 0, 0, 0, 0, 0, 74, 0, 122,
802 0, 0, 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, 131, 0,
806 0, 0, 0, 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, 0, 0, 0,
809 217, 130, 0, 0, 0, 0, 0, 0, 0, 0,
810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
811 0, 0, 0, 0, 0, 0, 73, 0, 0, 0,
812 0, 0, 0, 0, 0, 0, 0, 174, 0, 0,
813 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
814
815 0, 0, 0, 0, 0, 183, 149, 0, 0, 0,
816 0, 0, 0, 0, 154, 0, 0, 0, 0, 0,
817 0, 62, 0, 0, 0, 0, 0, 0, 0, 0,
818 0, 156, 0, 0, 55, 128, 0, 0, 0, 0,
819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
820 75, 0, 0, 0, 0, 0, 0, 0, 0, 0,
821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
822 0, 0, 111, 0, 0, 0, 0, 0, 0, 0,
823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
824 0, 0, 0, 0, 0, 0, 0, 0, 0, 226,
825
826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
827 0, 0, 0, 0, 0, 0, 0, 0, 108, 0,
828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
830 0, 0, 0, 173, 0, 0, 0, 0, 0, 0,
831 0, 0, 71, 0, 0, 0, 0, 0, 0, 0,
832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
833 0, 0, 0, 0, 0, 0, 0, 0, 0, 52,
834 0, 0, 121, 0, 0, 169, 0, 0, 0, 0,
835 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
836
837 0, 0, 0, 0, 0, 0, 0, 0, 0, 158,
838 0, 0, 0, 0, 0, 72, 0, 0, 0, 0,
839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
840 0, 0, 0, 0, 0, 0, 0, 0, 90, 0,
841 0, 0, 0, 0, 0, 70, 0, 0, 0, 0,
842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
844 227, 0, 0, 216, 0, 0, 0, 0, 0, 0,
845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
846 0, 0, 0, 132, 0, 0, 0, 0, 0, 0,
847
848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
851 36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
852 0, 0, 15, 0, 0, 184, 13, 0, 0, 0,
853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
854 0, 0, 0, 0, 0, 0, 218, 0, 76, 0,
855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
857 0, 0, 176, 0, 0, 0, 0, 0, 0, 0,
858
859 0, 0, 0, 0, 0, 157, 0, 0, 0, 0,
860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
861 0, 0, 0, 0, 0, 0, 0, 172, 188, 0,
862 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
863 0, 0, 0, 0, 0, 0, 0, 0, 19, 0,
864 119, 0, 0, 0, 114, 0, 0, 0, 182, 0,
865 0, 0, 0, 123, 225, 0, 0, 0, 0, 0,
866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
867 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
868 144, 145, 0, 0, 0, 0, 0, 0, 0, 0,
869
870 0, 0, 0, 0, 0, 0, 0, 0, 118, 0,
871 0, 0, 0, 0, 78, 0, 0, 0, 0, 0,
872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
874 0, 0, 178, 0, 0, 0, 0, 0, 0, 0,
875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
876 0, 0, 0, 140, 0, 0, 0, 0, 0, 0,
877 0, 0, 0, 0, 0, 0, 115, 0, 0, 0,
878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
879 0, 85, 0, 0, 0, 0, 16, 0, 14, 0,
880
881 0, 0, 210, 212, 206, 0, 0, 0, 0, 0,
882 0, 0, 0, 0, 0, 77, 0, 0, 0, 0,
883 0, 25, 0, 0, 0, 0, 0, 0, 0, 162,
884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
885 0, 0, 0, 0, 110, 109, 0, 0, 0, 0,
886 0, 0, 199, 0, 0, 224, 0, 0, 0, 0,
887 0, 0, 0, 0, 0, 0, 0, 0, 221, 133,
888 0, 168, 0, 41, 0, 0, 56, 0, 0, 0,
889 0, 0, 0, 0, 0, 0, 0, 18, 0, 0,
890 0, 0, 0, 0, 0, 91, 0, 135, 58, 86,
891
892 0, 0, 177, 0, 0, 167, 0, 0, 0, 0,
893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
894 69, 0, 129, 0, 0, 0, 0, 0, 0, 0,
895 0, 0, 0, 147, 0, 0, 220, 0, 232, 0,
896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
897 0, 0, 0, 0, 0, 126, 0, 0, 0, 0,
898 191, 0, 0, 0, 0, 0, 0, 0, 0, 0,
899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
901 0, 219, 0, 0, 0, 0, 0, 0, 0, 0,
902
903 0, 0, 40, 0, 0, 0, 0, 0, 0, 0,
904 0, 0, 164, 0, 0, 0, 59, 0, 0, 0,
905 0, 0, 0, 0, 213, 0, 0, 159, 46, 0,
906 0, 0, 204, 0, 33, 0, 0, 0, 0, 0,
907 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
908 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
909 44, 0, 0, 0, 43, 0, 0, 17, 0, 0,
910 0, 68, 0, 0, 0, 0, 0, 0, 151, 150,
911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
912 0, 0, 0, 0, 0, 0, 211, 0, 0, 0,
913
914 0, 0, 0, 82, 0, 0, 0, 0, 0, 0,
915 0, 146, 0, 0, 0, 57, 205, 0, 0, 0,
916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
917 0, 0, 124, 0, 0, 0, 0, 0, 0, 181,
918 0, 0, 0, 45, 0, 0, 0, 0, 0, 0,
919 0, 0, 0, 0, 200, 0, 0, 0, 0, 0,
920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
921 0, 0, 113, 0, 63, 0, 0, 0, 0, 0,
922 103, 0, 0, 31, 0, 0, 0, 47, 0, 0,
923 0, 0, 0, 0, 0, 0, 107, 0, 0, 0,
924
925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
926 0, 0, 0, 0, 0, 0, 0, 0, 197, 0,
927 0, 0, 0, 165, 0, 0, 0, 0, 0, 0,
928 0, 0, 0, 0, 0, 0, 66, 0, 64, 0,
929 0, 0, 0, 60, 202, 0, 0, 0, 0, 0,
930 0, 0, 0, 0, 0, 0, 0, 0, 0, 94,
931 0, 0, 0, 0, 0, 0, 0, 0, 170, 0,
932 0, 0, 0, 0, 0, 20, 34, 0, 0, 0,
933 0, 0, 0, 0, 0, 0, 203, 0, 0, 0,
934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
935
936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
937 0, 0, 0, 0, 0, 0, 0, 0, 0, 223,
938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
939 0, 0, 0, 196, 0, 84, 0, 83, 0, 0,
940 79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
941 0, 0, 0, 0, 0, 0, 0, 104, 0, 0,
942 0, 143, 0, 0, 0, 0, 0, 0, 0, 0,
943 0, 0, 0, 0, 0, 125, 0, 0, 0, 195,
944 0, 0, 0, 0, 0, 67, 0, 0, 89, 0,
945 61, 0, 0, 136, 0, 0, 0, 0, 0, 0,
946
947 0, 0, 112, 0, 0, 0, 0, 0, 0, 0,
948 0, 0, 0, 0, 0, 100, 0, 0, 0, 0,
949 0, 0, 42, 0, 0, 0, 0, 0, 0, 0,
950 0, 0, 0, 0, 0, 0, 0, 65, 0, 0,
951 0, 0, 0, 0, 0, 0, 0, 0, 0, 98,
952 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
953 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
955 106, 0, 0, 48, 0, 0, 0, 99, 0, 0,
956 0, 0, 201, 0, 0, 0, 0, 0, 229, 233,
957
958 81, 80, 0, 0, 141, 160, 137, 0, 0, 0,
959 0, 0, 0, 0, 105, 0, 0, 0, 0, 95,
960 0, 0, 0, 0, 0, 0, 0, 0, 0, 166,
961 193, 0, 0, 0, 0, 0, 0, 198, 0, 0,
962 0, 0, 97, 0, 87, 0, 0, 0, 0, 0,
963 0, 0, 138, 0, 0, 0, 0, 0, 0, 0,
964 0, 0, 0, 0, 192, 0, 0, 21, 230, 0,
965 0, 0, 0, 0, 0, 231, 0, 0, 0, 0,
966 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
967 96, 0, 0, 161, 0, 0, 39, 37, 0, 0,
968
969 0, 0, 0, 101, 0, 0, 142, 0, 93, 0,
970 148, 102, 0, 0, 0, 0, 0, 0, 0, 92,
971 0, 194, 38, 228, 0
972 } ;
973
974static const YY_CHAR yy_ec[256] =
975 { 0,
976 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
977 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
978 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
979 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
980 5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
981 17, 18, 17, 19, 17, 17, 17, 20, 5, 21,
982 5, 22, 23, 5, 24, 25, 26, 27, 28, 29,
983 5, 30, 31, 32, 33, 34, 5, 35, 36, 37,
984 5, 38, 39, 40, 41, 42, 43, 44, 45, 5,
985 46, 47, 48, 5, 49, 5, 50, 51, 52, 53,
986
987 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
988 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
989 74, 75, 76, 5, 77, 5, 5, 5, 5, 5,
990 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
991 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
992 5, 5, 5, 5, 5, 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, 5, 5, 5, 5, 5,
996 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
997
998 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
999 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1000 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1001 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1002 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1003 5, 5, 5, 5, 5
1004 } ;
1005
1006static const YY_CHAR yy_meta[78] =
1007 { 0,
1008 1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
1009 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1010 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1011 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1012 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1013 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1014 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1015 1, 1, 1, 1, 1, 1, 1
1016 } ;
1017
1018static const flex_int16_t yy_base[2434] =
1019 { 0,
1020 0, 76, 22, 29, 40, 48, 54, 62, 97, 105,
1021 3012, 3013, 32, 3008, 153, 0, 219, 3013, 227, 56,
1022 14, 242, 250, 3013, 2987, 118, 17, 71, 75, 3013,
1023 3013, 90, 74, 79, 3013, 3013, 3013, 43, 2996, 2945,
1024 0, 2985, 57, 3003, 2, 281, 3013, 87, 93, 2948,
1025 2969, 101, 79, 2969, 235, 250, 221, 220, 312, 253,
1026 2952, 326, 304, 222, 225, 228, 238, 2947, 314, 182,
1027 349, 301, 338, 2930, 229, 350, 395, 302, 230, 359,
1028 0, 413, 442, 457, 463, 471, 486, 504, 513, 3013,
1029 0, 530, 538, 3013, 420, 492, 361, 362, 212, 363,
1030
1031 364, 249, 3013, 2947, 2992, 3013, 56, 3013, 530, 255,
1032 283, 2945, 2990, 383, 17, 288, 413, 2984, 375, 422,
1033 428, 332, 2988, 0, 595, 2943, 490, 2925, 2922, 2922,
1034 474, 2922, 2923, 2929, 506, 2915, 2916, 2921, 509, 2931,
1035 341, 2924, 2914, 513, 2930, 521, 394, 382, 69, 2968,
1036 510, 2909, 2966, 2902, 343, 2923, 2923, 2917, 522, 2909,
1037 2910, 2908, 2902, 453, 526, 2899, 2898, 536, 2955, 2898,
1038 378, 2910, 2909, 2897, 565, 2898, 508, 2910, 2907, 2908,
1039 2896, 262, 2905, 2944, 2943, 541, 521, 2886, 2890, 555,
1040 2886, 522, 2896, 2888, 2881, 2889, 623, 638, 644, 0,
1041
1042 650, 667, 682, 559, 557, 484, 568, 568, 616, 2885,
1043 3013, 652, 654, 2880, 3013, 604, 640, 3013, 2938, 659,
1044 662, 2937, 661, 2936, 655, 2935, 3013, 3013, 708, 2875,
1045 2875, 670, 2888, 2880, 2878, 2878, 2882, 2883, 2863, 2874,
1046 2876, 2875, 432, 675, 2917, 2877, 2858, 2855, 2863, 2869,
1047 2857, 2867, 2870, 2866, 2857, 2866, 2866, 2861, 2853, 2852,
1048 2854, 2857, 2837, 2841, 2855, 2847, 2837, 2840, 2839, 2853,
1049 3013, 2839, 2847, 52, 2889, 2831, 2840, 2886, 2829, 2839,
1050 2883, 660, 2882, 2823, 2837, 2879, 688, 2834, 2814, 2829,
1051 2821, 2825, 657, 2816, 2814, 689, 2814, 2820, 2811, 2824,
1052
1053 2808, 2819, 2823, 658, 2817, 571, 2824, 2819, 2802, 2817,
1054 2803, 2811, 2815, 2796, 2812, 2798, 2804, 2811, 2851, 2792,
1055 643, 2797, 2794, 2793, 734, 2792, 2787, 2801, 2800, 701,
1056 2799, 2779, 2801, 2783, 683, 2791, 2779, 756, 771, 732,
1057 777, 724, 3013, 3013, 729, 3013, 3013, 2777, 723, 743,
1058 2827, 751, 2839, 3013, 739, 751, 3013, 2838, 3013, 2832,
1059 797, 2773, 640, 753, 2767, 2786, 2787, 2784, 2767, 2784,
1060 2824, 2780, 2770, 2826, 2777, 2780, 2771, 2774, 2760, 2771,
1061 793, 2814, 2768, 2765, 2766, 789, 2769, 2769, 2813, 2744,
1062 2756, 2751, 2748, 2744, 2743, 2745, 2748, 2799, 2752, 2797,
1063
1064 2739, 822, 823, 2752, 2752, 2735, 2736, 2749, 2747, 2745,
1065 2745, 2744, 2739, 2746, 2741, 2726, 765, 2735, 2738, 770,
1066 2733, 2784, 701, 771, 2739, 2777, 2723, 2716, 2731, 2722,
1067 2729, 2710, 2727, 2719, 2715, 2720, 831, 2771, 651, 2722,
1068 2722, 2720, 753, 2711, 2709, 2721, 776, 2696, 2697, 2710,
1069 2700, 2692, 2696, 2710, 786, 2696, 2708, 2707, 2706, 2697,
1070 2700, 2746, 2702, 2701, 2700, 2699, 2682, 2690, 2744, 2699,
1071 2742, 2678, 2740, 2739, 2677, 847, 2690, 2688, 2686, 2686,
1072 845, 851, 3013, 3013, 2686, 806, 2727, 2731, 2730, 3013,
1073 2729, 792, 3013, 819, 886, 2676, 2683, 2721, 818, 2725,
1074
1075 2667, 2723, 2717, 2666, 2668, 816, 2658, 2655, 3013, 2660,
1076 2653, 2665, 2668, 2655, 2654, 3013, 2664, 864, 2655, 2652,
1077 2664, 822, 2649, 2643, 2650, 3013, 2699, 2655, 2640, 2642,
1078 2656, 2652, 2650, 2650, 2644, 866, 2634, 2689, 3013, 2632,
1079 2648, 2686, 3013, 2639, 2689, 2688, 2640, 2634, 2636, 2637,
1080 2621, 2630, 2676, 2623, 2622, 2617, 2616, 2618, 2614, 2610,
1081 825, 2629, 2603, 2610, 2609, 2625, 2663, 3013, 2609, 2605,
1082 867, 2613, 2612, 2606, 2599, 2598, 2612, 2612, 2600, 2596,
1083 2601, 2597, 2592, 3013, 2601, 2652, 3013, 2590, 2583, 2644,
1084 2643, 2584, 2583, 2588, 2644, 2596, 2590, 2584, 2593, 870,
1085
1086 2634, 2577, 2572, 2631, 2567, 2573, 876, 2587, 2580, 2584,
1087 2567, 2629, 2570, 2565, 2565, 2620, 2561, 2562, 2561, 2559,
1088 2576, 3013, 2572, 3013, 2613, 3013, 3013, 2560, 3013, 840,
1089 2611, 2615, 2546, 2608, 2564, 2611, 881, 3013, 3013, 3013,
1090 854, 857, 856, 2545, 2546, 2564, 911, 3013, 2544, 3013,
1091 856, 2562, 2542, 2552, 2555, 2597, 886, 2538, 2548, 2594,
1092 2535, 2542, 2535, 2543, 2536, 2545, 2527, 2527, 2542, 2541,
1093 2525, 861, 2539, 2538, 2522, 2537, 2519, 2569, 2523, 2532,
1094 2529, 2573, 2513, 2515, 2512, 2526, 2526, 2524, 2524, 3013,
1095 2509, 2521, 2513, 2519, 2510, 2518, 2516, 3013, 3013, 2502,
1096
1097 2513, 2517, 2499, 2511, 2503, 621, 2494, 2493, 2487, 2492,
1098 2489, 2504, 2503, 2504, 2483, 2493, 2499, 2546, 2497, 2489,
1099 2480, 2481, 2483, 3013, 2478, 2484, 864, 2533, 936, 2532,
1100 2473, 2530, 2473, 2476, 2474, 2476, 2467, 2482, 3013, 890,
1101 938, 2465, 2481, 2478, 2473, 2469, 3013, 2518, 2466, 2473,
1102 2515, 3013, 2457, 2455, 2469, 2472, 2457, 2509, 2508, 2451,
1103 2506, 2462, 2446, 2499, 12, 3013, 73, 80, 197, 276,
1104 939, 321, 399, 480, 503, 597, 580, 689, 701, 709,
1105 740, 3013, 791, 749, 3013, 3013, 902, 919, 918, 912,
1106 920, 765, 791, 845, 839, 850, 905, 899, 890, 886,
1107
1108 900, 896, 902, 912, 959, 960, 916, 916, 959, 961,
1109 911, 909, 916, 917, 928, 933, 919, 923, 926, 935,
1110 935, 919, 980, 939, 931, 941, 985, 930, 992, 938,
1111 938, 940, 944, 949, 952, 995, 954, 1003, 956, 959,
1112 954, 945, 960, 965, 966, 963, 960, 967, 966, 954,
1113 968, 966, 974, 1014, 972, 1021, 1022, 962, 975, 961,
1114 971, 1022, 976, 1030, 3013, 982, 980, 982, 978, 972,
1115 988, 1037, 1033, 1034, 993, 3013, 983, 984, 983, 996,
1116 986, 999, 1047, 1002, 987, 1050, 1051, 3013, 1004, 3013,
1117 998, 992, 987, 998, 1011, 1002, 991, 997, 1056, 1016,
1118
1119 1000, 1000, 1013, 1066, 1004, 1011, 1023, 1018, 1024, 1021,
1120 1069, 1007, 1019, 1034, 1031, 1029, 1019, 1016, 3013, 1085,
1121 1038, 1039, 1027, 1041, 1031, 1035, 1047, 1038, 1041, 1046,
1122 1053, 1048, 1076, 1069, 1099, 1100, 1073, 1102, 1047, 1062,
1123 1062, 1065, 1045, 1052, 1066, 1115, 1068, 1053, 1066, 1064,
1124 3013, 3013, 1068, 1063, 1078, 1075, 1061, 1063, 1082, 1079,
1125 1080, 1082, 1070, 1078, 1079, 1089, 1137, 1094, 1134, 1092,
1126 1082, 1096, 1082, 1081, 1087, 1079, 3013, 1090, 1085, 1086,
1127 1092, 1108, 1091, 1149, 1150, 1101, 1152, 3013, 1112, 1104,
1128 1115, 1113, 1162, 1100, 1117, 1103, 1118, 1120, 1107, 1105,
1129
1130 1171, 1124, 1110, 1116, 1114, 3013, 3013, 1130, 1129, 1130,
1131 1135, 1123, 1133, 1135, 3013, 1135, 1137, 1124, 1142, 1129,
1132 1131, 3013, 1128, 1146, 1147, 1133, 1134, 1130, 1135, 1153,
1133 1198, 3013, 1155, 1200, 3013, 3013, 1154, 1154, 1204, 1146,
1134 1150, 1144, 1160, 1209, 1158, 1148, 1149, 1145, 1155, 1159,
1135 3013, 1170, 1165, 1213, 1168, 1161, 1163, 1159, 1176, 1166,
1136 1181, 1164, 1227, 1180, 1182, 1186, 1173, 1164, 1233, 1188,
1137 1175, 1174, 3013, 1181, 1182, 1235, 1236, 1184, 1197, 1239,
1138 1182, 1198, 1198, 1204, 1185, 1194, 1218, 1228, 1216, 1224,
1139 1236, 1199, 1256, 1196, 1202, 1216, 1256, 1214, 1258, 3013,
1140
1141 1264, 1213, 1204, 1223, 1213, 1212, 1207, 1208, 1220, 1215,
1142 1211, 1229, 1221, 1216, 1217, 1229, 1241, 1281, 3013, 1231,
1143 1225, 1243, 1236, 1231, 1288, 1294, 1247, 1238, 1297, 1253,
1144 1244, 1252, 1254, 1239, 1255, 1260, 1246, 1258, 1255, 1253,
1145 1265, 1249, 1250, 3013, 1266, 1269, 1266, 1253, 1255, 1317,
1146 1256, 1275, 3013, 1274, 1277, 1264, 1259, 1277, 1265, 1322,
1147 1276, 1272, 1269, 1326, 1271, 1328, 1286, 1272, 1290, 1290,
1148 1290, 1292, 1277, 1292, 1279, 1280, 1296, 1283, 1300, 3013,
1149 1298, 1285, 3013, 1344, 1293, 3013, 1303, 1296, 1353, 1296,
1150 3013, 1299, 1304, 1352, 1299, 1300, 1312, 1306, 1304, 1301,
1151
1152 1316, 1365, 1305, 1306, 1368, 1369, 1309, 1321, 1314, 3013,
1153 1310, 1327, 1319, 1315, 1318, 3013, 1373, 1312, 1333, 1319,
1154 1320, 1321, 1322, 1328, 1336, 1327, 1341, 1390, 1343, 1392,
1155 1338, 1346, 1361, 1391, 1373, 1365, 1370, 1352, 3013, 1353,
1156 1355, 1340, 1360, 1343, 1343, 3013, 1346, 1345, 1347, 1358,
1157 1348, 1368, 1367, 1358, 1369, 1416, 1354, 1366, 1375, 1368,
1158 1372, 1376, 1359, 1384, 1381, 1382, 1373, 1432, 1375, 1379,
1159 3013, 1430, 1376, 3013, 1394, 1376, 1376, 1397, 1394, 1438,
1160 1397, 1384, 1402, 1390, 1404, 1397, 1406, 1386, 1401, 1408,
1161 1393, 1455, 1456, 3013, 1405, 1458, 1411, 1397, 1407, 1417,
1162
1163 1401, 1421, 1404, 1406, 1406, 1413, 1422, 1410, 1417, 1412,
1164 1419, 1431, 1476, 1419, 1478, 1419, 1433, 1437, 1482, 1431,
1165 1432, 1421, 1486, 1433, 1436, 1431, 1435, 1491, 1492, 1441,
1166 3013, 1430, 1447, 1440, 1431, 1450, 1444, 1439, 1449, 1445,
1167 1440, 1458, 3013, 1442, 1438, 3013, 3013, 1444, 1508, 1463,
1168 1444, 1450, 1464, 1450, 1466, 1468, 1511, 1460, 1518, 1519,
1169 1468, 1473, 1467, 1465, 1476, 1458, 3013, 1463, 3013, 1472,
1170 1470, 1496, 1509, 1497, 1511, 1498, 1490, 1473, 1536, 1485,
1171 1488, 1488, 1492, 1493, 1542, 1481, 1481, 1484, 1501, 1496,
1172 1500, 1495, 3013, 1492, 1505, 1489, 1506, 1486, 1507, 1498,
1173
1174 1495, 1506, 1503, 1560, 1509, 3013, 1522, 1520, 1523, 1507,
1175 1516, 1520, 1525, 1511, 1575, 1524, 1530, 1530, 1517, 1531,
1176 1529, 1526, 1522, 1540, 1541, 1542, 1525, 3013, 3013, 1541,
1177 3013, 1543, 1528, 1539, 1530, 1549, 1542, 1540, 1596, 1549,
1178 1546, 1594, 1554, 1543, 1550, 1555, 1552, 1558, 3013, 1551,
1179 3013, 1543, 1556, 1609, 3013, 1552, 1553, 1564, 3013, 1565,
1180 1559, 1554, 1564, 3013, 3013, 1554, 1555, 1558, 1572, 1577,
1181 1560, 1571, 1624, 1577, 1564, 1583, 1574, 1629, 1625, 1631,
1182 3013, 1578, 1575, 1586, 1635, 1636, 1637, 1590, 1591, 1593,
1183 3013, 3013, 1585, 1580, 1638, 1583, 1599, 1583, 1595, 1648,
1184
1185 1585, 1645, 1627, 1628, 1620, 1654, 1593, 1594, 3013, 1599,
1186 1610, 1601, 1612, 1614, 3013, 1662, 1595, 1606, 1621, 1661,
1187 1609, 1620, 1608, 1607, 1623, 1624, 1621, 1669, 1628, 1676,
1188 1677, 1634, 1623, 1634, 1640, 1628, 1628, 1687, 1683, 1684,
1189 1690, 1643, 3013, 1645, 1641, 1645, 1647, 1638, 1641, 1650,
1190 1647, 1637, 1640, 1640, 1703, 1704, 1647, 1706, 1649, 1708,
1191 1647, 1653, 1712, 3013, 1666, 1645, 1660, 1653, 1656, 1669,
1192 1672, 1671, 1669, 1722, 1672, 1662, 3013, 1669, 1670, 1723,
1193 1666, 1682, 1731, 1683, 1733, 1734, 1735, 1675, 1685, 1738,
1194 1691, 3013, 1683, 1741, 1681, 1681, 3013, 1699, 3013, 1696,
1195
1196 1687, 1687, 3013, 3013, 3013, 1701, 1684, 1704, 1705, 1691,
1197 1693, 1756, 1702, 1758, 1703, 3013, 1697, 1724, 1742, 1759,
1198 1743, 3013, 1715, 1761, 1710, 1768, 1714, 1765, 1771, 3013,
1199 1710, 1773, 1719, 1713, 1710, 1713, 1715, 1711, 1775, 1734,
1200 1777, 1726, 1738, 1741, 3013, 3013, 1738, 1730, 1737, 1730,
1201 1794, 1738, 3013, 1735, 1734, 3013, 1736, 1799, 1737, 1749,
1202 1740, 1798, 1756, 1758, 1758, 1755, 1803, 1761, 3013, 3013,
1203 1753, 3013, 1754, 3013, 1764, 1756, 3013, 1809, 1767, 1768,
1204 1766, 1814, 1758, 1773, 1817, 1775, 1767, 3013, 1764, 1774,
1205 1765, 1766, 1767, 1825, 1831, 3013, 1784, 3013, 3013, 3013,
1206
1207 1828, 1771, 3013, 1788, 1773, 3013, 1787, 1775, 1840, 1783,
1208 1776, 1781, 1792, 1785, 1804, 1797, 1803, 1793, 1852, 1801,
1209 3013, 1810, 3013, 1807, 1856, 1832, 1833, 1839, 1824, 1832,
1210 1857, 1802, 1864, 3013, 1818, 1803, 3013, 1867, 3013, 1868,
1211 1821, 1826, 1808, 1872, 1873, 1813, 1870, 1830, 1827, 1823,
1212 1816, 1823, 1876, 1830, 1831, 3013, 1827, 1843, 1841, 1893,
1213 3013, 1842, 1828, 1891, 1851, 1851, 1894, 1838, 1843, 1841,
1214 1904, 1856, 1844, 1907, 1903, 1854, 1910, 1867, 1856, 1850,
1215 1914, 1852, 1861, 1854, 1868, 1871, 1862, 1921, 1922, 1871,
1216 1869, 3013, 1862, 1860, 1922, 1923, 1924, 1875, 1874, 1874,
1217
1218 1869, 1871, 3013, 1879, 1885, 1876, 1877, 1940, 1877, 1879,
1219 1938, 1880, 3013, 1876, 1894, 1947, 3013, 1914, 1928, 1927,
1220 1916, 1918, 1890, 1906, 3013, 1955, 1904, 3013, 3013, 1895,
1221 1906, 1959, 3013, 1960, 3013, 1913, 1903, 1908, 1906, 1960,
1222 1915, 1920, 1906, 1909, 1925, 1914, 1912, 1912, 1915, 3013,
1223 1922, 1982, 1924, 1933, 1980, 1923, 1988, 1932, 1942, 1943,
1224 3013, 1992, 1941, 1989, 3013, 1936, 1944, 3013, 1935, 1950,
1225 1938, 3013, 1948, 1949, 1950, 2003, 1957, 1948, 3013, 3013,
1226 1937, 1955, 1956, 1965, 1947, 1953, 1966, 1955, 2009, 1957,
1227 1953, 1958, 1955, 1956, 2015, 2021, 3013, 1967, 2023, 1972,
1228
1229 1962, 1978, 1971, 3013, 2004, 2029, 2011, 2027, 2033, 1982,
1230 1985, 3013, 1980, 2037, 1975, 3013, 3013, 1977, 1979, 1989,
1231 2037, 1981, 1996, 1983, 2046, 1999, 1985, 1992, 1992, 2003,
1232 2004, 1996, 3013, 1999, 1994, 1997, 2011, 1997, 2009, 3013,
1233 2057, 2004, 2001, 3013, 2015, 2002, 2023, 2019, 2021, 2070,
1234 2019, 2016, 2024, 2018, 3013, 2075, 2032, 2029, 2022, 2023,
1235 2028, 2029, 2023, 2028, 2039, 2023, 2032, 2082, 2088, 2037,
1236 2090, 2035, 3013, 2029, 3013, 2036, 2094, 2095, 2092, 2093,
1237 3013, 2074, 2080, 3013, 2044, 2050, 2055, 3013, 2099, 2047,
1238 2058, 2059, 2044, 2045, 2053, 2111, 3013, 2055, 2108, 2109,
1239
1240 2060, 2055, 2073, 2074, 2071, 2120, 2063, 2076, 2071, 2068,
1241 2073, 2073, 2129, 2130, 2074, 2071, 2085, 2072, 3013, 2087,
1242 2088, 2089, 2090, 3013, 2084, 2140, 2089, 2094, 2080, 2088,
1243 2082, 2102, 2103, 2084, 2085, 2092, 3013, 2094, 3013, 2108,
1244 2105, 2149, 2106, 3013, 3013, 2110, 2136, 2137, 2135, 2112,
1245 2099, 2100, 2100, 2109, 2116, 2109, 2108, 2119, 2106, 3013,
1246 2122, 2110, 2113, 2173, 2109, 2128, 2121, 2120, 3013, 2132,
1247 2125, 2124, 2133, 2135, 2141, 3013, 3013, 2135, 2126, 2126,
1248 2190, 2129, 2192, 2130, 2194, 2190, 3013, 2133, 2197, 2193,
1249 2151, 2148, 2139, 2147, 2158, 2145, 2156, 2142, 2140, 2148,
1250
1251 2147, 2152, 2144, 2189, 2214, 2195, 2211, 2154, 2218, 2167,
1252 2156, 2169, 2159, 2176, 2175, 2220, 2160, 2179, 2180, 3013,
1253 2185, 2178, 2226, 2232, 2185, 2172, 2187, 2236, 2189, 2192,
1254 2179, 2190, 2191, 3013, 2244, 3013, 2193, 3013, 2191, 2247,
1255 3013, 2185, 2249, 2192, 2189, 2252, 2196, 2249, 2250, 2208,
1256 2252, 2194, 2198, 2216, 2261, 2216, 2243, 3013, 2239, 2202,
1257 2205, 3013, 2211, 2205, 2202, 2265, 2227, 2220, 2216, 2274,
1258 2213, 2215, 2214, 2221, 2233, 3013, 2218, 2281, 2221, 3013,
1259 2226, 2236, 2221, 2229, 2231, 3013, 2232, 2238, 3013, 2240,
1260 3013, 2236, 2246, 3013, 2247, 2247, 2238, 2298, 2238, 2248,
1261
1262 2233, 2246, 3013, 2248, 2279, 2285, 2254, 2263, 2260, 2257,
1263 2310, 2247, 2249, 2246, 2270, 3013, 2257, 2264, 2265, 2268,
1264 2264, 2258, 3013, 2316, 2259, 2267, 2276, 2275, 2278, 2279,
1265 2266, 2273, 2268, 2271, 2271, 2283, 2278, 3013, 2289, 2277,
1266 2334, 2281, 2293, 2321, 2343, 2283, 2282, 2346, 2289, 3013,
1267 2289, 2301, 2350, 2295, 2297, 2295, 2296, 2355, 2312, 2305,
1268 2292, 2307, 2312, 2361, 2362, 2363, 2364, 2302, 2318, 2367,
1269 2369, 2370, 2310, 2314, 2310, 2326, 2309, 2321, 2315, 2378,
1270 3013, 2331, 2328, 3013, 2324, 2335, 2383, 3013, 2336, 2321,
1271 2339, 2330, 3013, 2326, 2332, 2346, 2342, 2335, 3013, 3013,
1272
1273 3013, 3013, 2393, 2394, 3013, 3013, 3013, 2333, 2341, 2336,
1274 2393, 2355, 2352, 2401, 3013, 2340, 2345, 2399, 2361, 3013,
1275 2406, 2344, 2408, 2347, 2348, 2361, 2360, 2361, 2351, 3013,
1276 3013, 2352, 2416, 2365, 2374, 2367, 2415, 3013, 2370, 2365,
1277 2367, 2361, 3013, 2373, 3013, 2421, 2379, 2428, 2366, 2382,
1278 2431, 2432, 3013, 2385, 2379, 2372, 2392, 2379, 2439, 2382,
1279 2393, 2384, 2388, 2382, 3013, 2440, 2385, 3013, 3013, 2385,
1280 2393, 2444, 2400, 2393, 2397, 3013, 2406, 2454, 2398, 2398,
1281 2457, 2395, 2397, 2460, 2461, 2399, 2415, 2400, 2418, 2418,
1282 3013, 2467, 2410, 3013, 2417, 2470, 3013, 3013, 2419, 2472,
1283
1284 2416, 2474, 2475, 3013, 2422, 2421, 3013, 2422, 3013, 2416,
1285 3013, 3013, 2416, 2433, 2434, 2483, 2425, 2485, 2486, 3013,
1286 2487, 3013, 3013, 3013, 3013, 2493, 2496, 2499, 2500, 2502,
1287 2505, 2508, 2511
1288 } ;
1289
1290static const flex_int16_t yy_def[2434] =
1291 { 0,
1292 2426, 2426, 2427, 2427, 2426, 2426, 2426, 2426, 2426, 2426,
1293 2425, 2425, 2425, 2425, 2425, 2428, 2425, 2425, 2425, 2425,
1294 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
1295 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
1296 2429, 2425, 2425, 2425, 2430, 15, 2425, 46, 46, 46,
1297 46, 46, 46, 46, 46, 46, 46, 46, 2431, 46,
1298 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1299 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1300 2428, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
1301 2432, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
1302
1303 2425, 2425, 2425, 2425, 2429, 2425, 2430, 2425, 2425, 46,
1304 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1305 46, 46, 2433, 46, 2431, 46, 46, 46, 46, 46,
1306 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1307 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1308 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1309 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1310 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1311 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1312 46, 46, 46, 46, 46, 46, 2425, 2425, 2425, 2432,
1313
1314 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
1315 2425, 46, 46, 46, 2425, 46, 46, 2425, 46, 46,
1316 46, 46, 46, 46, 46, 2433, 2425, 2425, 125, 46,
1317 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1318 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1319 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1320 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1321 2425, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1322 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1323 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1324
1325 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1326 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1327 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1328 46, 46, 46, 46, 46, 46, 46, 2425, 2425, 2425,
1329 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 46, 46,
1330 46, 46, 46, 2425, 46, 46, 2425, 46, 2425, 46,
1331 125, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1332 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1333 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1334 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1335
1336 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1337 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1338 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1339 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1340 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1341 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1342 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1343 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1344 2425, 2425, 2425, 2425, 2425, 46, 46, 46, 46, 2425,
1345 46, 46, 2425, 46, 125, 46, 46, 46, 46, 46,
1346
1347 46, 46, 46, 46, 46, 46, 46, 46, 2425, 46,
1348 46, 46, 46, 46, 46, 2425, 46, 46, 46, 46,
1349 46, 46, 46, 46, 46, 2425, 46, 46, 46, 46,
1350 46, 46, 46, 46, 46, 46, 46, 46, 2425, 46,
1351 46, 46, 2425, 46, 46, 46, 46, 46, 46, 46,
1352 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1353 46, 46, 46, 46, 46, 46, 46, 2425, 46, 46,
1354 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1355 46, 46, 46, 2425, 46, 46, 2425, 46, 46, 46,
1356 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1357
1358 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1359 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1360 46, 2425, 46, 2425, 46, 2425, 2425, 46, 2425, 46,
1361 46, 46, 46, 46, 2425, 46, 46, 2425, 2425, 2425,
1362 46, 46, 46, 46, 46, 46, 46, 2425, 46, 2425,
1363 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1364 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1365 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1366 46, 46, 46, 46, 46, 46, 46, 46, 46, 2425,
1367 46, 46, 46, 46, 46, 46, 46, 2425, 2425, 46,
1368
1369 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1370 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1371 46, 46, 46, 2425, 46, 46, 46, 46, 46, 46,
1372 46, 46, 46, 46, 46, 46, 46, 46, 2425, 46,
1373 46, 46, 46, 46, 46, 46, 2425, 46, 46, 46,
1374 46, 2425, 46, 46, 46, 46, 46, 46, 46, 46,
1375 46, 46, 46, 46, 46, 2425, 46, 46, 46, 46,
1376 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1377 46, 2425, 46, 46, 2425, 2425, 46, 46, 46, 46,
1378 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1379
1380 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1381 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1382 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1383 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1384 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1385 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1386 46, 46, 46, 46, 2425, 46, 46, 46, 46, 46,
1387 46, 46, 46, 46, 46, 2425, 46, 46, 46, 46,
1388 46, 46, 46, 46, 46, 46, 46, 2425, 46, 2425,
1389 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1390
1391 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1392 46, 46, 46, 46, 46, 46, 46, 46, 2425, 46,
1393 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1394 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1395 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1396 2425, 2425, 46, 46, 46, 46, 46, 46, 46, 46,
1397 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1398 46, 46, 46, 46, 46, 46, 2425, 46, 46, 46,
1399 46, 46, 46, 46, 46, 46, 46, 2425, 46, 46,
1400 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1401
1402 46, 46, 46, 46, 46, 2425, 2425, 46, 46, 46,
1403 46, 46, 46, 46, 2425, 46, 46, 46, 46, 46,
1404 46, 2425, 46, 46, 46, 46, 46, 46, 46, 46,
1405 46, 2425, 46, 46, 2425, 2425, 46, 46, 46, 46,
1406 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1407 2425, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1408 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1409 46, 46, 2425, 46, 46, 46, 46, 46, 46, 46,
1410 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1411 46, 46, 46, 46, 46, 46, 46, 46, 46, 2425,
1412
1413 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1414 46, 46, 46, 46, 46, 46, 46, 46, 2425, 46,
1415 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1416 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1417 46, 46, 46, 2425, 46, 46, 46, 46, 46, 46,
1418 46, 46, 2425, 46, 46, 46, 46, 46, 46, 46,
1419 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1420 46, 46, 46, 46, 46, 46, 46, 46, 46, 2425,
1421 46, 46, 2425, 46, 46, 2425, 46, 46, 46, 46,
1422 2425, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1423
1424 46, 46, 46, 46, 46, 46, 46, 46, 46, 2425,
1425 46, 46, 46, 46, 46, 2425, 46, 46, 46, 46,
1426 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1427 46, 46, 46, 46, 46, 46, 46, 46, 2425, 46,
1428 46, 46, 46, 46, 46, 2425, 46, 46, 46, 46,
1429 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1430 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1431 2425, 46, 46, 2425, 46, 46, 46, 46, 46, 46,
1432 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1433 46, 46, 46, 2425, 46, 46, 46, 46, 46, 46,
1434
1435 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1436 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1437 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1438 2425, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1439 46, 46, 2425, 46, 46, 2425, 2425, 46, 46, 46,
1440 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1441 46, 46, 46, 46, 46, 46, 2425, 46, 2425, 46,
1442 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1443 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1444 46, 46, 2425, 46, 46, 46, 46, 46, 46, 46,
1445
1446 46, 46, 46, 46, 46, 2425, 46, 46, 46, 46,
1447 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1448 46, 46, 46, 46, 46, 46, 46, 2425, 2425, 46,
1449 2425, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1450 46, 46, 46, 46, 46, 46, 46, 46, 2425, 46,
1451 2425, 46, 46, 46, 2425, 46, 46, 46, 2425, 46,
1452 46, 46, 46, 2425, 2425, 46, 46, 46, 46, 46,
1453 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1454 2425, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1455 2425, 2425, 46, 46, 46, 46, 46, 46, 46, 46,
1456
1457 46, 46, 46, 46, 46, 46, 46, 46, 2425, 46,
1458 46, 46, 46, 46, 2425, 46, 46, 46, 46, 46,
1459 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1460 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1461 46, 46, 2425, 46, 46, 46, 46, 46, 46, 46,
1462 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1463 46, 46, 46, 2425, 46, 46, 46, 46, 46, 46,
1464 46, 46, 46, 46, 46, 46, 2425, 46, 46, 46,
1465 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1466 46, 2425, 46, 46, 46, 46, 2425, 46, 2425, 46,
1467
1468 46, 46, 2425, 2425, 2425, 46, 46, 46, 46, 46,
1469 46, 46, 46, 46, 46, 2425, 46, 46, 46, 46,
1470 46, 2425, 46, 46, 46, 46, 46, 46, 46, 2425,
1471 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1472 46, 46, 46, 46, 2425, 2425, 46, 46, 46, 46,
1473 46, 46, 2425, 46, 46, 2425, 46, 46, 46, 46,
1474 46, 46, 46, 46, 46, 46, 46, 46, 2425, 2425,
1475 46, 2425, 46, 2425, 46, 46, 2425, 46, 46, 46,
1476 46, 46, 46, 46, 46, 46, 46, 2425, 46, 46,
1477 46, 46, 46, 46, 46, 2425, 46, 2425, 2425, 2425,
1478
1479 46, 46, 2425, 46, 46, 2425, 46, 46, 46, 46,
1480 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1481 2425, 46, 2425, 46, 46, 46, 46, 46, 46, 46,
1482 46, 46, 46, 2425, 46, 46, 2425, 46, 2425, 46,
1483 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1484 46, 46, 46, 46, 46, 2425, 46, 46, 46, 46,
1485 2425, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1486 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1487 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1488 46, 2425, 46, 46, 46, 46, 46, 46, 46, 46,
1489
1490 46, 46, 2425, 46, 46, 46, 46, 46, 46, 46,
1491 46, 46, 2425, 46, 46, 46, 2425, 46, 46, 46,
1492 46, 46, 46, 46, 2425, 46, 46, 2425, 2425, 46,
1493 46, 46, 2425, 46, 2425, 46, 46, 46, 46, 46,
1494 46, 46, 46, 46, 46, 46, 46, 46, 46, 2425,
1495 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1496 2425, 46, 46, 46, 2425, 46, 46, 2425, 46, 46,
1497 46, 2425, 46, 46, 46, 46, 46, 46, 2425, 2425,
1498 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1499 46, 46, 46, 46, 46, 46, 2425, 46, 46, 46,
1500
1501 46, 46, 46, 2425, 46, 46, 46, 46, 46, 46,
1502 46, 2425, 46, 46, 46, 2425, 2425, 46, 46, 46,
1503 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1504 46, 46, 2425, 46, 46, 46, 46, 46, 46, 2425,
1505 46, 46, 46, 2425, 46, 46, 46, 46, 46, 46,
1506 46, 46, 46, 46, 2425, 46, 46, 46, 46, 46,
1507 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1508 46, 46, 2425, 46, 2425, 46, 46, 46, 46, 46,
1509 2425, 46, 46, 2425, 46, 46, 46, 2425, 46, 46,
1510 46, 46, 46, 46, 46, 46, 2425, 46, 46, 46,
1511
1512 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1513 46, 46, 46, 46, 46, 46, 46, 46, 2425, 46,
1514 46, 46, 46, 2425, 46, 46, 46, 46, 46, 46,
1515 46, 46, 46, 46, 46, 46, 2425, 46, 2425, 46,
1516 46, 46, 46, 2425, 2425, 46, 46, 46, 46, 46,
1517 46, 46, 46, 46, 46, 46, 46, 46, 46, 2425,
1518 46, 46, 46, 46, 46, 46, 46, 46, 2425, 46,
1519 46, 46, 46, 46, 46, 2425, 2425, 46, 46, 46,
1520 46, 46, 46, 46, 46, 46, 2425, 46, 46, 46,
1521 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1522
1523 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1524 46, 46, 46, 46, 46, 46, 46, 46, 46, 2425,
1525 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1526 46, 46, 46, 2425, 46, 2425, 46, 2425, 46, 46,
1527 2425, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1528 46, 46, 46, 46, 46, 46, 46, 2425, 46, 46,
1529 46, 2425, 46, 46, 46, 46, 46, 46, 46, 46,
1530 46, 46, 46, 46, 46, 2425, 46, 46, 46, 2425,
1531 46, 46, 46, 46, 46, 2425, 46, 46, 2425, 46,
1532 2425, 46, 46, 2425, 46, 46, 46, 46, 46, 46,
1533
1534 46, 46, 2425, 46, 46, 46, 46, 46, 46, 46,
1535 46, 46, 46, 46, 46, 2425, 46, 46, 46, 46,
1536 46, 46, 2425, 46, 46, 46, 46, 46, 46, 46,
1537 46, 46, 46, 46, 46, 46, 46, 2425, 46, 46,
1538 46, 46, 46, 46, 46, 46, 46, 46, 46, 2425,
1539 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1540 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1541 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1542 2425, 46, 46, 2425, 46, 46, 46, 2425, 46, 46,
1543 46, 46, 2425, 46, 46, 46, 46, 46, 2425, 2425,
1544
1545 2425, 2425, 46, 46, 2425, 2425, 2425, 46, 46, 46,
1546 46, 46, 46, 46, 2425, 46, 46, 46, 46, 2425,
1547 46, 46, 46, 46, 46, 46, 46, 46, 46, 2425,
1548 2425, 46, 46, 46, 46, 46, 46, 2425, 46, 46,
1549 46, 46, 2425, 46, 2425, 46, 46, 46, 46, 46,
1550 46, 46, 2425, 46, 46, 46, 46, 46, 46, 46,
1551 46, 46, 46, 46, 2425, 46, 46, 2425, 2425, 46,
1552 46, 46, 46, 46, 46, 2425, 46, 46, 46, 46,
1553 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1554 2425, 46, 46, 2425, 46, 46, 2425, 2425, 46, 46,
1555
1556 46, 46, 46, 2425, 46, 46, 2425, 46, 2425, 46,
1557 2425, 2425, 46, 46, 46, 46, 46, 46, 46, 2425,
1558 46, 2425, 2425, 2425, 0, 2425, 2425, 2425, 2425, 2425,
1559 2425, 2425, 2425
1560 } ;
1561
1562static const flex_int16_t yy_nxt[3091] =
1563 { 0,
1564 2425, 13, 14, 13, 2425, 15, 16, 108, 17, 18,
1565 19, 20, 21, 22, 23, 23, 23, 23, 23, 24,
1566 25, 90, 914, 38, 14, 38, 91, 26, 27, 39,
1567 38, 14, 38, 43, 28, 43, 39, 2425, 2425, 29,
1568 97, 13, 14, 13, 43, 30, 43, 31, 109, 13,
1569 14, 13, 217, 26, 32, 13, 14, 13, 43, 41,
1570 43, 108, 33, 13, 14, 13, 97, 41, 34, 89,
1571 89, 89, 89, 89, 89, 35, 36, 13, 14, 13,
1572 217, 15, 16, 88, 17, 18, 19, 20, 21, 22,
1573 23, 23, 23, 23, 23, 24, 25, 40, 13, 14,
1574
1575 13, 408, 109, 26, 27, 40, 13, 14, 13, 88,
1576 28, 98, 99, 97, 98, 29, 99, 115, 409, 42,
1577 110, 30, 111, 31, 114, 915, 95, 42, 95, 26,
1578 32, 96, 96, 96, 96, 96, 96, 268, 33, 100,
1579 98, 99, 269, 101, 34, 102, 115, 110, 916, 111,
1580 114, 35, 36, 45, 45, 45, 46, 46, 47, 46,
1581 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1582 46, 46, 46, 46, 46, 46, 48, 46, 49, 50,
1583 51, 52, 46, 46, 53, 46, 54, 55, 46, 46,
1584 46, 46, 56, 57, 46, 58, 46, 46, 46, 59,
1585
1586 46, 46, 60, 61, 62, 63, 64, 65, 46, 66,
1587 67, 53, 68, 69, 70, 71, 72, 73, 74, 75,
1588 76, 77, 78, 79, 80, 46, 46, 46, 46, 46,
1589 82, 159, 83, 83, 83, 83, 83, 83, 85, 160,
1590 86, 87, 87, 87, 87, 87, 84, 121, 114, 122,
1591 917, 161, 206, 85, 88, 92, 92, 92, 92, 92,
1592 92, 85, 117, 93, 93, 93, 93, 93, 93, 88,
1593 118, 143, 84, 121, 114, 119, 122, 88, 174, 194,
1594 88, 206, 175, 195, 144, 147, 110, 120, 117, 206,
1595 151, 148, 145, 218, 146, 88, 149, 212, 118, 150,
1596
1597 152, 119, 153, 88, 46, 126, 46, 46, 46, 46,
1598 213, 320, 46, 127, 46, 46, 120, 124, 209, 128,
1599 46, 46, 129, 46, 46, 321, 212, 219, 121, 918,
1600 46, 46, 46, 46, 46, 46, 213, 46, 46, 46,
1601 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1602 46, 46, 46, 137, 121, 111, 138, 139, 46, 225,
1603 140, 141, 46, 165, 192, 166, 46, 155, 156, 193,
1604 167, 157, 921, 142, 46, 131, 117, 158, 46, 132,
1605 46, 125, 111, 133, 118, 225, 134, 168, 122, 135,
1606 169, 170, 276, 136, 204, 205, 204, 205, 162, 176,
1607
1608 163, 171, 164, 177, 172, 277, 178, 252, 253, 184,
1609 185, 222, 118, 179, 180, 122, 216, 181, 182, 183,
1610 119, 204, 205, 207, 208, 196, 197, 197, 197, 197,
1611 197, 197, 120, 96, 96, 96, 96, 96, 96, 222,
1612 84, 298, 265, 216, 299, 266, 186, 263, 187, 267,
1613 922, 188, 189, 82, 220, 83, 83, 83, 83, 83,
1614 83, 190, 223, 264, 224, 198, 84, 198, 191, 84,
1615 199, 199, 199, 199, 199, 199, 89, 89, 89, 89,
1616 89, 89, 85, 220, 92, 92, 92, 92, 92, 92,
1617 88, 223, 224, 375, 220, 84, 376, 85, 88, 93,
1618
1619 93, 93, 93, 93, 93, 96, 96, 96, 96, 96,
1620 96, 344, 95, 88, 95, 271, 88, 96, 96, 96,
1621 96, 96, 96, 287, 88, 236, 89, 89, 89, 89,
1622 89, 89, 212, 923, 237, 107, 288, 344, 238, 88,
1623 88, 201, 107, 202, 202, 202, 202, 202, 202, 85,
1624 231, 93, 93, 93, 93, 93, 93, 203, 242, 248,
1625 249, 232, 256, 272, 257, 88, 88, 243, 244, 250,
1626 313, 924, 260, 281, 314, 303, 107, 222, 315, 332,
1627 107, 258, 326, 203, 107, 261, 289, 292, 327, 262,
1628 343, 88, 107, 333, 282, 223, 107, 342, 107, 107,
1629
1630 228, 343, 293, 294, 295, 325, 342, 925, 229, 229,
1631 229, 229, 229, 229, 304, 305, 306, 343, 229, 229,
1632 229, 229, 229, 229, 330, 307, 342, 308, 346, 926,
1633 309, 446, 310, 311, 447, 345, 197, 197, 197, 197,
1634 197, 197, 352, 344, 229, 229, 229, 229, 229, 229,
1635 84, 199, 199, 199, 199, 199, 199, 199, 199, 199,
1636 199, 199, 199, 338, 338, 338, 338, 338, 338, 347,
1637 417, 352, 852, 853, 353, 349, 84, 339, 201, 350,
1638 202, 202, 202, 202, 202, 202, 355, 356, 358, 360,
1639 340, 497, 340, 349, 203, 341, 341, 341, 341, 341,
1640
1641 341, 349, 353, 339, 588, 350, 430, 462, 589, 463,
1642 443, 498, 355, 356, 358, 355, 431, 360, 444, 364,
1643 203, 361, 361, 361, 361, 361, 361, 418, 358, 377,
1644 419, 361, 361, 361, 361, 361, 361, 378, 434, 357,
1645 477, 424, 927, 379, 467, 341, 341, 341, 341, 341,
1646 341, 483, 478, 435, 358, 569, 483, 361, 361, 361,
1647 361, 361, 361, 593, 928, 570, 929, 486, 472, 338,
1648 338, 338, 338, 338, 338, 487, 491, 483, 489, 481,
1649 492, 481, 484, 339, 482, 482, 482, 482, 482, 482,
1650 341, 341, 341, 341, 341, 341, 486, 486, 516, 522,
1651
1652 930, 931, 487, 517, 489, 491, 523, 492, 491, 339,
1653 495, 495, 495, 495, 495, 495, 594, 932, 938, 641,
1654 495, 495, 495, 495, 495, 495, 499, 539, 543, 559,
1655 560, 561, 540, 544, 565, 562, 584, 571, 598, 607,
1656 566, 585, 599, 608, 636, 641, 495, 495, 495, 495,
1657 495, 495, 629, 642, 939, 643, 636, 630, 482, 482,
1658 482, 482, 482, 482, 482, 482, 482, 482, 482, 482,
1659 654, 690, 724, 636, 676, 752, 691, 725, 714, 789,
1660 753, 642, 655, 643, 541, 647, 760, 677, 715, 542,
1661 545, 779, 790, 791, 780, 888, 804, 940, 586, 46,
1662
1663 46, 46, 46, 46, 46, 789, 941, 942, 787, 46,
1664 46, 46, 46, 46, 46, 665, 786, 797, 873, 666,
1665 790, 795, 791, 788, 798, 820, 874, 667, 821, 668,
1666 669, 670, 671, 672, 787, 46, 46, 46, 46, 46,
1667 46, 876, 761, 890, 919, 933, 877, 937, 891, 934,
1668 935, 936, 788, 805, 943, 944, 889, 920, 945, 946,
1669 947, 948, 949, 950, 951, 952, 953, 954, 955, 957,
1670 956, 958, 959, 937, 933, 960, 934, 935, 961, 962,
1671 936, 963, 964, 965, 878, 966, 967, 968, 969, 970,
1672 971, 892, 972, 973, 974, 975, 976, 977, 978, 979,
1673
1674 982, 983, 984, 980, 985, 986, 987, 981, 988, 989,
1675 990, 991, 992, 993, 994, 995, 996, 997, 998, 999,
1676 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009,
1677 1010, 1011, 1013, 1014, 1012, 1015, 1016, 1017, 1018, 1019,
1678 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029,
1679 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039,
1680 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049,
1681 1050, 1051, 1053, 1054, 1055, 1056, 1052, 1058, 1059, 1062,
1682 1063, 1064, 1057, 1065, 1069, 1060, 1070, 1071, 1072, 1061,
1683 1073, 1074, 1075, 1076, 1077, 1078, 1066, 1079, 1067, 1080,
1684
1685 1081, 1082, 1068, 1083, 1084, 1086, 1087, 1085, 1088, 1089,
1686 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099,
1687 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109,
1688 1110, 1111, 1112, 1087, 1113, 1114, 1115, 1088, 1116, 1117,
1689 1091, 1118, 1119, 1121, 1122, 1123, 1124, 1120, 1125, 1126,
1690 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136,
1691 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1146, 1147,
1692 1148, 1149, 1145, 1150, 1151, 1152, 1153, 1154, 1155, 1156,
1693 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166,
1694 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1175, 1176, 1177,
1695
1696 1174, 1178, 1179, 1180, 1182, 1183, 1184, 1185, 1181, 1186,
1697 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196,
1698 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1207,
1699 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217,
1700 1206, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226,
1701 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1238,
1702 1236, 1239, 1240, 1237, 1241, 1242, 1243, 1244, 1245, 1246,
1703 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256,
1704 1257, 1258, 1259, 1260, 1234, 1233, 1261, 1235, 1236, 1237,
1705 1262, 1263, 1264, 1266, 1267, 1265, 1268, 1269, 1270, 1271,
1706
1707 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281,
1708 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291,
1709 1292, 1293, 1294, 1297, 1298, 1299, 1300, 1295, 1301, 1302,
1710 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312,
1711 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322,
1712 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332,
1713 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342,
1714 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352,
1715 1353, 1354, 1355, 1356, 1296, 1357, 1358, 1359, 1360, 1361,
1716 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371,
1717
1718 1372, 1373, 1375, 1374, 1376, 1377, 1378, 1379, 1380, 1381,
1719 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391,
1720 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1372,
1721 1374, 1375, 1376, 1401, 1403, 1404, 1405, 1406, 1407, 1408,
1722 1409, 1402, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417,
1723 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427,
1724 1428, 1429, 1430, 1431, 1433, 1434, 1435, 1436, 1432, 1437,
1725 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447,
1726 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457,
1727 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467,
1728
1729 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477,
1730 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487,
1731 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497,
1732 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1506, 1505, 1507,
1733 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517,
1734 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527,
1735 1528, 1503, 1529, 1502, 1505, 1504, 1506, 1530, 1531, 1532,
1736 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542,
1737 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552,
1738 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562,
1739
1740 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572,
1741 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582,
1742 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592,
1743 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602,
1744 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612,
1745 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622,
1746 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1632, 1633,
1747 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643,
1748 1644, 1645, 1646, 1619, 1620, 1647, 1648, 1621, 1649, 1650,
1749 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660,
1750
1751 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670,
1752 1671, 1672, 1673, 1674, 1675, 1631, 1676, 1677, 1678, 1679,
1753 1680, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1681, 1689,
1754 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699,
1755 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1708, 1709, 1712,
1756 1710, 1707, 1711, 1713, 1714, 1715, 1716, 1717, 1718, 1719,
1757 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1731, 1728,
1758 1730, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740,
1759 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750,
1760 1751, 1752, 1753, 1727, 1729, 1726, 1730, 1754, 1755, 1756,
1761
1762 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766,
1763 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776,
1764 1777, 1778, 1729, 1779, 1780, 1781, 1782, 1783, 1784, 1785,
1765 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795,
1766 1796, 1797, 1798, 1802, 1799, 1803, 1804, 1800, 1805, 1806,
1767 1801, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815,
1768 1816, 1817, 1818, 1819, 1821, 1820, 1822, 1823, 1824, 1825,
1769 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1835, 1836,
1770 1837, 1838, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1818,
1771 1819, 1820, 1839, 1821, 1822, 1847, 1848, 1849, 1850, 1851,
1772
1773 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861,
1774 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872,
1775 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882,
1776 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1834,
1777 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901,
1778 1902, 1903, 1904, 1905, 1906, 1908, 1907, 1909, 1910, 1911,
1779 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921,
1780 1922, 1862, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930,
1781 1906, 1931, 1905, 1907, 1908, 1932, 1909, 1933, 1936, 1937,
1782 1938, 1939, 1934, 1940, 1941, 1942, 1943, 1944, 1945, 1946,
1783
1784 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956,
1785 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966,
1786 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976,
1787 1977, 1978, 1979, 1980, 1981, 1935, 1982, 1983, 1984, 1985,
1788 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
1789 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
1790 1980, 2006, 1982, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
1791 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
1792 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033,
1793 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2042, 2043, 2044,
1794
1795 2045, 2041, 2046, 2047, 2048, 2050, 2049, 2051, 2052, 2053,
1796 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063,
1797 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073,
1798 2074, 2048, 2049, 2075, 2076, 2077, 2078, 2079, 2080, 2081,
1799 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091,
1800 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101,
1801 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111,
1802 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121,
1803 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2104, 2105,
1804 2130, 2106, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138,
1805
1806 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148,
1807 2149, 2150, 2151, 2152, 2154, 2155, 2153, 2156, 2157, 2158,
1808 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168,
1809 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178,
1810 2179, 2180, 2181, 2182, 2183, 2157, 2159, 2184, 2185, 2186,
1811 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196,
1812 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206,
1813 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216,
1814 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226,
1815 2227, 2228, 2229, 2230, 2205, 2231, 2206, 2232, 2233, 2234,
1816
1817 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244,
1818 2246, 2245, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254,
1819 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264,
1820 2265, 2266, 2267, 2268, 2269, 2270, 2244, 2245, 2271, 2272,
1821 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282,
1822 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292,
1823 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302,
1824 2303, 2304, 2305, 2280, 2306, 2307, 2308, 2309, 2310, 2311,
1825 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321,
1826 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331,
1827
1828 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341,
1829 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351,
1830 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361,
1831 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371,
1832 2372, 2373, 2375, 2374, 2376, 2377, 2378, 2379, 2380, 2381,
1833 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391,
1834 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401,
1835 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411,
1836 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421,
1837 2422, 2423, 2424, 12, 12, 12, 37, 37, 37, 81,
1838
1839 105, 81, 107, 107, 107, 123, 123, 123, 200, 913,
1840 200, 226, 226, 226, 912, 911, 910, 909, 908, 907,
1841 906, 905, 904, 903, 902, 901, 900, 899, 898, 897,
1842 896, 895, 894, 893, 887, 886, 885, 884, 883, 882,
1843 881, 880, 879, 875, 872, 871, 870, 869, 868, 867,
1844 866, 865, 864, 863, 862, 861, 860, 859, 858, 857,
1845 856, 855, 854, 851, 850, 849, 848, 847, 846, 845,
1846 844, 843, 842, 841, 840, 839, 838, 837, 836, 835,
1847 834, 833, 832, 831, 830, 829, 828, 827, 826, 825,
1848 824, 823, 822, 819, 818, 817, 816, 815, 814, 813,
1849
1850 812, 811, 810, 809, 808, 807, 806, 803, 802, 801,
1851 800, 799, 796, 794, 793, 792, 786, 785, 784, 783,
1852 782, 781, 778, 777, 776, 775, 774, 773, 772, 771,
1853 770, 769, 768, 767, 766, 765, 764, 763, 762, 759,
1854 758, 757, 756, 755, 754, 751, 750, 749, 748, 747,
1855 746, 745, 744, 743, 742, 741, 740, 739, 738, 737,
1856 736, 735, 734, 733, 732, 731, 730, 729, 728, 727,
1857 726, 723, 722, 721, 720, 719, 718, 717, 716, 713,
1858 712, 711, 710, 709, 708, 707, 706, 705, 704, 703,
1859 702, 701, 700, 699, 698, 697, 696, 695, 694, 693,
1860
1861 692, 689, 688, 687, 686, 685, 684, 683, 682, 681,
1862 680, 679, 678, 675, 674, 673, 664, 663, 662, 661,
1863 660, 659, 658, 657, 656, 653, 652, 651, 650, 649,
1864 648, 646, 645, 644, 640, 639, 638, 637, 635, 634,
1865 633, 632, 631, 628, 627, 626, 625, 624, 623, 622,
1866 621, 620, 619, 618, 617, 616, 615, 614, 613, 612,
1867 611, 610, 609, 606, 605, 604, 603, 602, 601, 600,
1868 597, 596, 595, 592, 591, 590, 587, 583, 582, 581,
1869 580, 579, 578, 577, 576, 575, 574, 573, 572, 568,
1870 567, 564, 563, 558, 557, 556, 555, 554, 553, 552,
1871
1872 551, 550, 549, 548, 547, 546, 538, 537, 536, 535,
1873 534, 533, 532, 531, 530, 529, 528, 527, 526, 525,
1874 524, 521, 520, 519, 518, 515, 514, 513, 512, 511,
1875 510, 509, 508, 507, 506, 505, 504, 503, 502, 501,
1876 500, 496, 494, 493, 490, 488, 485, 480, 479, 476,
1877 475, 474, 473, 471, 470, 469, 468, 466, 465, 464,
1878 461, 460, 459, 458, 457, 456, 455, 454, 453, 452,
1879 451, 450, 449, 448, 445, 442, 441, 440, 439, 438,
1880 437, 436, 433, 432, 429, 428, 427, 426, 425, 423,
1881 422, 421, 420, 416, 415, 414, 413, 412, 411, 410,
1882
1883 407, 406, 405, 404, 403, 402, 401, 400, 399, 398,
1884 397, 396, 395, 394, 393, 392, 391, 390, 389, 388,
1885 387, 386, 385, 384, 383, 382, 381, 380, 374, 373,
1886 372, 371, 370, 369, 368, 367, 366, 365, 363, 362,
1887 227, 359, 357, 354, 351, 348, 337, 336, 335, 334,
1888 331, 329, 328, 324, 323, 322, 319, 318, 317, 316,
1889 312, 302, 301, 300, 297, 296, 291, 290, 286, 285,
1890 284, 283, 280, 279, 278, 275, 274, 273, 270, 259,
1891 255, 254, 251, 247, 246, 245, 241, 240, 239, 235,
1892 234, 233, 230, 227, 221, 215, 214, 211, 210, 173,
1893
1894 154, 130, 116, 113, 112, 44, 106, 104, 103, 94,
1895 44, 2425, 11, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
1896 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
1897 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
1898 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
1899 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
1900 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
1901 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
1902 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425
1903 } ;
1904
1905static const flex_int16_t yy_chk[3091] =
1906 { 0,
1907 0, 1, 1, 1, 0, 1, 1, 45, 1, 1,
1908 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1909 1, 21, 765, 3, 3, 3, 21, 1, 1, 3,
1910 4, 4, 4, 13, 1, 13, 4, 0, 0, 1,
1911 27, 5, 5, 5, 38, 1, 38, 1, 45, 6,
1912 6, 6, 115, 1, 1, 7, 7, 7, 43, 7,
1913 43, 107, 1, 8, 8, 8, 27, 8, 1, 20,
1914 20, 20, 20, 20, 20, 1, 1, 2, 2, 2,
1915 115, 2, 2, 20, 2, 2, 2, 2, 2, 2,
1916 2, 2, 2, 2, 2, 2, 2, 5, 9, 9,
1917
1918 9, 274, 107, 2, 2, 6, 10, 10, 10, 20,
1919 2, 28, 29, 32, 33, 2, 34, 53, 274, 9,
1920 48, 2, 49, 2, 52, 767, 26, 10, 26, 2,
1921 2, 26, 26, 26, 26, 26, 26, 149, 2, 32,
1922 28, 29, 149, 33, 2, 34, 53, 48, 768, 49,
1923 52, 2, 2, 15, 15, 15, 15, 15, 15, 15,
1924 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1925 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1926 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1927 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1928
1929 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1930 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1931 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1932 17, 70, 17, 17, 17, 17, 17, 17, 19, 70,
1933 19, 19, 19, 19, 19, 19, 17, 57, 65, 58,
1934 769, 70, 99, 22, 19, 22, 22, 22, 22, 22,
1935 22, 23, 55, 23, 23, 23, 23, 23, 23, 22,
1936 55, 64, 17, 57, 65, 56, 58, 23, 75, 79,
1937 19, 99, 75, 79, 64, 65, 60, 56, 55, 102,
1938 67, 66, 64, 116, 64, 22, 66, 110, 55, 66,
1939
1940 67, 56, 67, 23, 46, 60, 46, 46, 46, 46,
1941 111, 182, 46, 60, 46, 46, 56, 59, 102, 60,
1942 46, 46, 60, 46, 59, 182, 110, 116, 78, 770,
1943 46, 46, 46, 46, 46, 46, 111, 46, 46, 46,
1944 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1945 46, 46, 46, 63, 78, 62, 63, 63, 59, 122,
1946 63, 63, 59, 72, 78, 72, 59, 69, 69, 78,
1947 72, 69, 772, 63, 59, 62, 71, 69, 59, 62,
1948 59, 59, 62, 62, 71, 122, 62, 73, 80, 62,
1949 73, 73, 155, 62, 97, 98, 100, 101, 71, 76,
1950
1951 71, 73, 71, 76, 73, 155, 76, 141, 141, 77,
1952 77, 119, 71, 76, 76, 80, 114, 76, 76, 76,
1953 77, 97, 98, 100, 101, 80, 82, 82, 82, 82,
1954 82, 82, 77, 95, 95, 95, 95, 95, 95, 119,
1955 82, 171, 148, 114, 171, 148, 77, 147, 77, 148,
1956 773, 77, 77, 83, 117, 83, 83, 83, 83, 83,
1957 83, 77, 120, 147, 121, 84, 82, 84, 77, 83,
1958 84, 84, 84, 84, 84, 84, 85, 85, 85, 85,
1959 85, 85, 86, 117, 86, 86, 86, 86, 86, 86,
1960 85, 120, 121, 243, 164, 83, 243, 87, 86, 87,
1961
1962 87, 87, 87, 87, 87, 96, 96, 96, 96, 96,
1963 96, 206, 88, 87, 88, 151, 85, 88, 88, 88,
1964 88, 88, 88, 164, 86, 131, 89, 89, 89, 89,
1965 89, 89, 127, 774, 131, 109, 165, 206, 131, 87,
1966 89, 92, 109, 92, 92, 92, 92, 92, 92, 93,
1967 127, 93, 93, 93, 93, 93, 93, 92, 135, 139,
1968 139, 127, 144, 151, 144, 93, 89, 135, 135, 139,
1969 177, 775, 146, 159, 177, 175, 109, 186, 177, 192,
1970 109, 144, 187, 92, 109, 146, 165, 168, 187, 146,
1971 205, 93, 109, 192, 159, 190, 109, 204, 109, 109,
1972
1973 125, 208, 168, 168, 168, 186, 207, 776, 125, 125,
1974 125, 125, 125, 125, 175, 175, 175, 205, 125, 125,
1975 125, 125, 125, 125, 190, 175, 204, 175, 208, 777,
1976 175, 306, 175, 175, 306, 207, 197, 197, 197, 197,
1977 197, 197, 216, 209, 125, 125, 125, 125, 125, 125,
1978 197, 198, 198, 198, 198, 198, 198, 199, 199, 199,
1979 199, 199, 199, 201, 201, 201, 201, 201, 201, 209,
1980 282, 216, 706, 706, 217, 212, 197, 201, 202, 213,
1981 202, 202, 202, 202, 202, 202, 220, 221, 223, 225,
1982 203, 363, 203, 232, 202, 203, 203, 203, 203, 203,
1983
1984 203, 212, 217, 201, 439, 213, 293, 321, 439, 321,
1985 304, 363, 220, 221, 223, 287, 293, 225, 304, 232,
1986 202, 229, 229, 229, 229, 229, 229, 282, 330, 244,
1987 282, 229, 229, 229, 229, 229, 229, 244, 296, 325,
1988 335, 287, 778, 244, 325, 340, 340, 340, 340, 340,
1989 340, 342, 335, 296, 330, 423, 345, 229, 229, 229,
1990 229, 229, 229, 443, 779, 423, 780, 349, 330, 338,
1991 338, 338, 338, 338, 338, 350, 355, 342, 352, 339,
1992 356, 339, 345, 338, 339, 339, 339, 339, 339, 339,
1993 341, 341, 341, 341, 341, 341, 349, 364, 381, 386,
1994
1995 781, 783, 350, 381, 352, 355, 386, 356, 424, 338,
1996 361, 361, 361, 361, 361, 361, 443, 784, 792, 492,
1997 361, 361, 361, 361, 361, 361, 364, 402, 403, 417,
1998 417, 417, 402, 403, 420, 417, 437, 424, 447, 455,
1999 420, 437, 447, 455, 486, 492, 361, 361, 361, 361,
2000 361, 361, 476, 494, 793, 494, 499, 476, 481, 481,
2001 481, 481, 481, 481, 482, 482, 482, 482, 482, 482,
2002 506, 536, 571, 486, 522, 600, 536, 571, 561, 641,
2003 600, 494, 506, 494, 402, 499, 607, 522, 561, 402,
2004 403, 630, 642, 643, 630, 740, 657, 794, 437, 495,
2005
2006 495, 495, 495, 495, 495, 641, 795, 796, 637, 495,
2007 495, 495, 495, 495, 495, 518, 647, 651, 727, 518,
2008 642, 647, 643, 637, 651, 672, 727, 518, 672, 518,
2009 518, 518, 518, 518, 637, 495, 495, 495, 495, 495,
2010 495, 729, 607, 741, 771, 787, 729, 791, 741, 788,
2011 789, 790, 637, 657, 797, 798, 740, 771, 799, 800,
2012 801, 802, 803, 804, 805, 806, 807, 808, 808, 809,
2013 808, 810, 811, 791, 787, 812, 788, 789, 813, 814,
2014 790, 815, 816, 817, 729, 818, 819, 820, 821, 822,
2015 823, 741, 824, 825, 826, 827, 828, 829, 830, 831,
2016
2017 832, 833, 834, 831, 835, 836, 837, 831, 838, 839,
2018 840, 841, 842, 843, 844, 845, 846, 847, 848, 849,
2019 850, 851, 852, 853, 854, 855, 856, 857, 858, 859,
2020 860, 861, 862, 863, 861, 864, 866, 867, 868, 869,
2021 870, 871, 872, 873, 874, 875, 877, 878, 879, 880,
2022 881, 882, 883, 884, 885, 886, 887, 889, 891, 892,
2023 893, 894, 895, 896, 897, 898, 899, 900, 901, 902,
2024 903, 904, 905, 906, 907, 908, 904, 909, 910, 911,
2025 912, 913, 908, 914, 915, 910, 916, 917, 918, 910,
2026 920, 921, 922, 923, 924, 925, 914, 926, 914, 927,
2027
2028 928, 929, 914, 930, 931, 932, 933, 931, 934, 935,
2029 936, 937, 938, 939, 940, 941, 942, 943, 944, 945,
2030 946, 947, 948, 949, 950, 953, 954, 955, 956, 957,
2031 958, 959, 960, 933, 961, 962, 963, 934, 964, 965,
2032 937, 966, 967, 968, 969, 970, 971, 967, 972, 973,
2033 974, 975, 976, 978, 979, 980, 981, 982, 983, 984,
2034 985, 986, 987, 989, 990, 991, 992, 993, 994, 995,
2035 996, 997, 993, 998, 999, 1000, 1001, 1002, 1003, 1004,
2036 1005, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1016, 1017,
2037 1018, 1019, 1020, 1021, 1023, 1024, 1025, 1026, 1027, 1028,
2038
2039 1025, 1029, 1030, 1031, 1033, 1034, 1037, 1038, 1031, 1039,
2040 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049,
2041 1050, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060,
2042 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070,
2043 1059, 1071, 1072, 1074, 1075, 1076, 1077, 1078, 1079, 1080,
2044 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1092,
2045 1090, 1093, 1094, 1091, 1095, 1096, 1097, 1098, 1099, 1101,
2046 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111,
2047 1112, 1113, 1114, 1115, 1088, 1087, 1116, 1089, 1090, 1091,
2048 1117, 1118, 1120, 1121, 1122, 1120, 1123, 1124, 1125, 1126,
2049
2050 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136,
2051 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1145, 1146, 1147,
2052 1148, 1149, 1150, 1151, 1152, 1154, 1155, 1150, 1156, 1157,
2053 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167,
2054 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177,
2055 1178, 1179, 1181, 1182, 1184, 1185, 1187, 1188, 1189, 1190,
2056 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201,
2057 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1211, 1212,
2058 1213, 1214, 1215, 1217, 1150, 1218, 1219, 1220, 1221, 1222,
2059 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232,
2060
2061 1233, 1234, 1236, 1235, 1237, 1238, 1240, 1241, 1242, 1243,
2062 1244, 1245, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254,
2063 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1233,
2064 1235, 1236, 1237, 1264, 1265, 1266, 1267, 1268, 1269, 1270,
2065 1272, 1264, 1273, 1275, 1276, 1277, 1278, 1279, 1280, 1281,
2066 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291,
2067 1292, 1293, 1295, 1296, 1297, 1298, 1299, 1300, 1296, 1301,
2068 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
2069 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321,
2070 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1332,
2071
2072 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342,
2073 1344, 1345, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355,
2074 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365,
2075 1366, 1368, 1370, 1371, 1372, 1373, 1374, 1376, 1375, 1377,
2076 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387,
2077 1388, 1389, 1390, 1391, 1392, 1394, 1395, 1396, 1397, 1398,
2078 1399, 1373, 1400, 1372, 1375, 1374, 1376, 1401, 1402, 1403,
2079 1404, 1405, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414,
2080 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424,
2081 1425, 1426, 1427, 1430, 1432, 1433, 1434, 1435, 1436, 1437,
2082
2083 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447,
2084 1448, 1450, 1452, 1453, 1454, 1456, 1457, 1458, 1460, 1461,
2085 1462, 1463, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473,
2086 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1482, 1483, 1484,
2087 1485, 1486, 1487, 1488, 1489, 1490, 1493, 1494, 1495, 1496,
2088 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506,
2089 1507, 1508, 1510, 1511, 1512, 1513, 1514, 1516, 1517, 1518,
2090 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528,
2091 1529, 1530, 1531, 1503, 1504, 1532, 1533, 1505, 1534, 1535,
2092 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1544, 1545, 1546,
2093
2094 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556,
2095 1557, 1558, 1559, 1560, 1561, 1516, 1562, 1563, 1565, 1566,
2096 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1567, 1575,
2097 1576, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586,
2098 1587, 1588, 1589, 1590, 1591, 1593, 1594, 1595, 1596, 1600,
2099 1598, 1594, 1598, 1601, 1602, 1606, 1607, 1608, 1609, 1610,
2100 1611, 1612, 1613, 1614, 1615, 1617, 1618, 1619, 1623, 1620,
2101 1621, 1624, 1625, 1626, 1627, 1628, 1629, 1631, 1632, 1633,
2102 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643,
2103 1644, 1647, 1648, 1619, 1620, 1618, 1621, 1649, 1650, 1651,
2104
2105 1652, 1654, 1655, 1657, 1658, 1659, 1660, 1661, 1662, 1663,
2106 1664, 1665, 1666, 1667, 1668, 1671, 1673, 1675, 1676, 1678,
2107 1679, 1680, 1620, 1681, 1682, 1683, 1684, 1685, 1686, 1687,
2108 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1697, 1701, 1702,
2109 1704, 1705, 1707, 1708, 1707, 1709, 1710, 1707, 1711, 1712,
2110 1707, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1722,
2111 1724, 1725, 1726, 1727, 1729, 1728, 1730, 1731, 1732, 1733,
2112 1735, 1736, 1738, 1740, 1741, 1742, 1743, 1744, 1745, 1746,
2113 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1726,
2114 1727, 1728, 1748, 1729, 1730, 1757, 1758, 1759, 1760, 1762,
2115
2116 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1770, 1771,
2117 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781,
2118 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791,
2119 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1744,
2120 1802, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812,
2121 1814, 1815, 1816, 1818, 1819, 1821, 1820, 1822, 1823, 1824,
2122 1826, 1827, 1830, 1831, 1832, 1834, 1836, 1837, 1838, 1839,
2123 1840, 1771, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848,
2124 1819, 1849, 1818, 1820, 1821, 1851, 1822, 1852, 1853, 1854,
2125 1855, 1856, 1852, 1857, 1858, 1859, 1860, 1862, 1863, 1864,
2126
2127 1866, 1867, 1869, 1870, 1871, 1873, 1874, 1875, 1876, 1877,
2128 1878, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889,
2129 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1898, 1899, 1900,
2130 1901, 1902, 1903, 1905, 1906, 1852, 1907, 1908, 1909, 1910,
2131 1911, 1913, 1914, 1915, 1918, 1919, 1920, 1921, 1922, 1923,
2132 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1934,
2133 1905, 1935, 1907, 1936, 1937, 1938, 1939, 1941, 1942, 1943,
2134 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954,
2135 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965,
2136 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1974, 1976, 1977,
2137
2138 1978, 1972, 1979, 1980, 1982, 1985, 1983, 1986, 1987, 1989,
2139 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000,
2140 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2141 2011, 1982, 1983, 2012, 2013, 2014, 2015, 2016, 2017, 2018,
2142 2020, 2021, 2022, 2023, 2025, 2026, 2027, 2028, 2029, 2030,
2143 2031, 2032, 2033, 2034, 2035, 2036, 2038, 2040, 2041, 2042,
2144 2043, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054,
2145 2055, 2056, 2057, 2058, 2059, 2061, 2062, 2063, 2064, 2065,
2146 2066, 2067, 2068, 2070, 2071, 2072, 2073, 2074, 2047, 2048,
2147 2075, 2049, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085,
2148
2149 2086, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096,
2150 2097, 2098, 2099, 2100, 2101, 2102, 2100, 2103, 2104, 2105,
2151 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115,
2152 2116, 2117, 2118, 2119, 2121, 2122, 2123, 2124, 2125, 2126,
2153 2127, 2128, 2129, 2130, 2131, 2104, 2106, 2132, 2133, 2135,
2154 2137, 2139, 2140, 2142, 2143, 2144, 2145, 2146, 2147, 2148,
2155 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2159,
2156 2160, 2161, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170,
2157 2171, 2172, 2173, 2174, 2175, 2177, 2178, 2179, 2181, 2182,
2158 2183, 2184, 2185, 2187, 2157, 2188, 2159, 2190, 2192, 2193,
2159
2160 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2204, 2205,
2161 2207, 2206, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215,
2162 2217, 2218, 2219, 2220, 2221, 2222, 2224, 2225, 2226, 2227,
2163 2228, 2229, 2230, 2231, 2232, 2233, 2205, 2206, 2234, 2235,
2164 2236, 2237, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246,
2165 2247, 2248, 2249, 2251, 2252, 2253, 2254, 2255, 2256, 2257,
2166 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267,
2167 2268, 2269, 2270, 2244, 2271, 2272, 2273, 2274, 2275, 2276,
2168 2277, 2278, 2279, 2280, 2282, 2283, 2285, 2286, 2287, 2289,
2169 2290, 2291, 2292, 2294, 2295, 2296, 2297, 2298, 2303, 2304,
2170
2171 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2316, 2317, 2318,
2172 2319, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329,
2173 2332, 2333, 2334, 2335, 2336, 2337, 2339, 2340, 2341, 2342,
2174 2344, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2354, 2355,
2175 2356, 2357, 2358, 2357, 2359, 2360, 2361, 2362, 2363, 2364,
2176 2366, 2367, 2370, 2371, 2372, 2373, 2374, 2375, 2377, 2378,
2177 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388,
2178 2389, 2390, 2392, 2393, 2395, 2396, 2399, 2400, 2401, 2402,
2179 2403, 2405, 2406, 2408, 2410, 2413, 2414, 2415, 2416, 2417,
2180 2418, 2419, 2421, 2426, 2426, 2426, 2427, 2427, 2427, 2428,
2181
2182 2429, 2428, 2430, 2430, 2430, 2431, 2431, 2431, 2432, 764,
2183 2432, 2433, 2433, 2433, 763, 762, 761, 760, 759, 758,
2184 757, 756, 755, 754, 753, 751, 750, 749, 748, 746,
2185 745, 744, 743, 742, 738, 737, 736, 735, 734, 733,
2186 732, 731, 730, 728, 726, 725, 723, 722, 721, 720,
2187 719, 718, 717, 716, 715, 714, 713, 712, 711, 710,
2188 709, 708, 707, 705, 704, 703, 702, 701, 700, 697,
2189 696, 695, 694, 693, 692, 691, 689, 688, 687, 686,
2190 685, 684, 683, 682, 681, 680, 679, 678, 677, 676,
2191 675, 674, 673, 671, 670, 669, 668, 667, 666, 665,
2192
2193 664, 663, 662, 661, 660, 659, 658, 656, 655, 654,
2194 653, 652, 649, 646, 645, 644, 636, 635, 634, 633,
2195 632, 631, 628, 625, 623, 621, 620, 619, 618, 617,
2196 616, 615, 614, 613, 612, 611, 610, 609, 608, 606,
2197 605, 604, 603, 602, 601, 599, 598, 597, 596, 595,
2198 594, 593, 592, 591, 590, 589, 588, 586, 585, 583,
2199 582, 581, 580, 579, 578, 577, 576, 575, 574, 573,
2200 572, 570, 569, 567, 566, 565, 564, 563, 562, 560,
2201 559, 558, 557, 556, 555, 554, 553, 552, 551, 550,
2202 549, 548, 547, 546, 545, 544, 542, 541, 540, 538,
2203
2204 537, 535, 534, 533, 532, 531, 530, 529, 528, 527,
2205 525, 524, 523, 521, 520, 519, 517, 515, 514, 513,
2206 512, 511, 510, 508, 507, 505, 504, 503, 502, 501,
2207 500, 498, 497, 496, 491, 489, 488, 487, 485, 480,
2208 479, 478, 477, 475, 474, 473, 472, 471, 470, 469,
2209 468, 467, 466, 465, 464, 463, 462, 461, 460, 459,
2210 458, 457, 456, 454, 453, 452, 451, 450, 449, 448,
2211 446, 445, 444, 442, 441, 440, 438, 436, 435, 434,
2212 433, 432, 431, 430, 429, 428, 427, 426, 425, 422,
2213 421, 419, 418, 416, 415, 414, 413, 412, 411, 410,
2214
2215 409, 408, 407, 406, 405, 404, 401, 400, 399, 398,
2216 397, 396, 395, 394, 393, 392, 391, 390, 389, 388,
2217 387, 385, 384, 383, 382, 380, 379, 378, 377, 376,
2218 375, 374, 373, 372, 371, 370, 369, 368, 367, 366,
2219 365, 362, 360, 358, 353, 351, 348, 337, 336, 334,
2220 333, 332, 331, 329, 328, 327, 326, 324, 323, 322,
2221 320, 319, 318, 317, 316, 315, 314, 313, 312, 311,
2222 310, 309, 308, 307, 305, 303, 302, 301, 300, 299,
2223 298, 297, 295, 294, 292, 291, 290, 289, 288, 286,
2224 285, 284, 283, 281, 280, 279, 278, 277, 276, 275,
2225
2226 273, 272, 270, 269, 268, 267, 266, 265, 264, 263,
2227 262, 261, 260, 259, 258, 257, 256, 255, 254, 253,
2228 252, 251, 250, 249, 248, 247, 246, 245, 242, 241,
2229 240, 239, 238, 237, 236, 235, 234, 233, 231, 230,
2230 226, 224, 222, 219, 214, 210, 196, 195, 194, 193,
2231 191, 189, 188, 185, 184, 183, 181, 180, 179, 178,
2232 176, 174, 173, 172, 170, 169, 167, 166, 163, 162,
2233 161, 160, 158, 157, 156, 154, 153, 152, 150, 145,
2234 143, 142, 140, 138, 137, 136, 134, 133, 132, 130,
2235 129, 128, 126, 123, 118, 113, 112, 105, 104, 74,
2236
2237 68, 61, 54, 51, 50, 44, 42, 40, 39, 25,
2238 14, 11, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
2239 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
2240 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
2241 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
2242 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
2243 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
2244 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425,
2245 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425, 2425
2246 } ;
2247
2248static yy_state_type yy_last_accepting_state;
2249static char *yy_last_accepting_cpos;
2250
2251extern int yy_flex_debug;
2253
2254static const flex_int16_t yy_rule_linenum[256] =
2255 { 0,
2256 149, 151, 153, 158, 159, 164, 165, 166, 178, 180,
2257 185, 191, 200, 209, 218, 227, 236, 245, 254, 263,
2258 275, 287, 297, 307, 317, 327, 337, 346, 356, 366,
2259 376, 386, 395, 404, 413, 422, 431, 440, 449, 458,
2260 467, 476, 485, 494, 503, 512, 521, 530, 539, 548,
2261 562, 574, 586, 597, 608, 620, 631, 642, 653, 664,
2262 675, 686, 697, 706, 715, 724, 735, 746, 755, 767,
2263 779, 791, 802, 811, 820, 829, 838, 847, 858, 870,
2264 882, 894, 906, 918, 930, 941, 952, 961, 970, 979,
2265 990, 1001, 1010, 1019, 1031, 1043, 1055, 1067, 1079, 1091,
2266
2267 1103, 1114, 1126, 1135, 1144, 1153, 1162, 1174, 1186, 1198,
2268 1210, 1220, 1231, 1240, 1249, 1264, 1281, 1290, 1299, 1308,
2269 1317, 1326, 1335, 1344, 1353, 1362, 1371, 1380, 1390, 1417,
2270 1444, 1453, 1463, 1473, 1482, 1492, 1503, 1514, 1525, 1535,
2271 1544, 1553, 1562, 1573, 1584, 1595, 1606, 1617, 1628, 1637,
2272 1646, 1655, 1664, 1673, 1682, 1691, 1700, 1709, 1718, 1733,
2273 1745, 1757, 1770, 1779, 1788, 1797, 1806, 1816, 1826, 1835,
2274 1844, 1855, 1865, 1874, 1884, 1894, 1903, 1912, 1921, 1930,
2275 1940, 1949, 1958, 1967, 1976, 1985, 1994, 2003, 2012, 2021,
2276 2030, 2039, 2048, 2057, 2066, 2075, 2084, 2093, 2102, 2111,
2277
2278 2120, 2129, 2138, 2147, 2156, 2165, 2174, 2183, 2192, 2201,
2279 2210, 2219, 2228, 2237, 2246, 2255, 2264, 2273, 2282, 2291,
2280 2300, 2309, 2318, 2327, 2336, 2345, 2354, 2363, 2372, 2381,
2281 2390, 2399, 2408, 2417, 2518, 2534, 2583, 2591, 2606, 2607,
2282 2608, 2609, 2610, 2611, 2613, 2632, 2649, 2655, 2670, 2683,
2283 2688, 2692, 2694, 2696, 2698
2284 } ;
2285
2286/* The intent behind this definition is that it'll catch
2287 * any uses of REJECT which flex missed.
2288 */
2289#define REJECT reject_used_but_not_detected
2290#define yymore() yymore_used_but_not_detected
2291#define YY_MORE_ADJ 0
2292#define YY_RESTORE_YY_MORE_OFFSET
2294#line 1 "dhcp6_lexer.ll"
2295/* Copyright (C) 2016-2026 Internet Systems Consortium, Inc. ("ISC")
2296
2297 This Source Code Form is subject to the terms of the Mozilla Public
2298 License, v. 2.0. If a copy of the MPL was not distributed with this
2299 file, You can obtain one at http://mozilla.org/MPL/2.0/. */
2300#line 8 "dhcp6_lexer.ll"
2301
2302/* Generated files do not make clang static analyser so happy */
2303#ifndef __clang_analyzer__
2304
2305#include <cctype>
2306#include <cerrno>
2307#include <climits>
2308#include <cstdint>
2309#include <cstdlib>
2310#include <string>
2311#include <dhcp6/parser_context.h>
2312#include <asiolink/io_address.h>
2313#include <boost/lexical_cast.hpp>
2314#include <exceptions/exceptions.h>
2315
2316/* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
2317
2318/* Work around an incompatibility in flex (at least versions
2319 2.5.31 through 2.5.33): it generates code that does
2320 not conform to C89. See Debian bug 333231
2321 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
2322# undef yywrap
2323# define yywrap() 1
2324
2325namespace {
2326
2327bool start_token_flag = false;
2328
2330unsigned int comment_start_line = 0;
2331
2332using namespace isc::dhcp;
2333
2334};
2335
2336/* To avoid the call to exit... oops! */
2337#define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
2338#line 2338 "dhcp6_lexer.cc"
2339/* noyywrap disables automatic rewinding for the next file to parse. Since we
2340 always parse only a single string, there's no need to do any wraps. And
2341 using yywrap requires linking with -lfl, which provides the default yywrap
2342 implementation that always returns 1 anyway. */
2343/* nounput simplifies the lexer, by removing support for putting a character
2344 back into the input stream. We never use such capability anyway. */
2345/* batch means that we'll never use the generated lexer interactively. */
2346/* avoid to get static global variables to remain with C++. */
2347/* in last resort %option reentrant */
2348/* Enables debug mode. To see the debug messages, one needs to also set
2349 yy_flex_debug to 1, then the debug messages will be printed on stderr. */
2350/* I have no idea what this option does, except it was specified in the bison
2351 examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
2352 be on the safe side and keep it. */
2353#define YY_NO_INPUT 1
2354
2355/* These are not token expressions yet, just convenience expressions that
2356 can be used during actual token definitions. Note some can match
2357 incorrect inputs (e.g., IP addresses) which must be checked. */
2358/* for errors */
2359#line 96 "dhcp6_lexer.ll"
2360/* This code run each time a pattern is matched. It updates the location
2361 by moving it ahead by yyleng bytes. yyleng specifies the length of the
2362 currently matched token. */
2363#define YY_USER_ACTION driver.loc_.columns(yyleng);
2364#line 2364 "dhcp6_lexer.cc"
2365#line 2365 "dhcp6_lexer.cc"
2366
2367#define INITIAL 0
2368#define COMMENT 1
2369#define DIR_ENTER 2
2370#define DIR_INCLUDE 3
2371#define DIR_EXIT 4
2372
2373#ifndef YY_NO_UNISTD_H
2374/* Special case for "unistd.h", since it is non-ANSI. We include it way
2375 * down here because we want the user's section 1 to have been scanned first.
2376 * The user has a chance to override it with an option.
2377 */
2378/* %if-c-only */
2379#include <unistd.h>
2380/* %endif */
2381/* %if-c++-only */
2382/* %endif */
2383#endif
2384
2385#ifndef YY_EXTRA_TYPE
2386#define YY_EXTRA_TYPE void *
2387#endif
2388
2389/* %if-c-only Reentrant structure and macros (non-C++). */
2390/* %if-reentrant */
2391/* %if-c-only */
2392
2393static int yy_init_globals ( void );
2394
2395/* %endif */
2396/* %if-reentrant */
2397/* %endif */
2398/* %endif End reentrant structures and macros. */
2399
2400/* Accessor methods to globals.
2401 These are made visible to non-reentrant scanners for convenience. */
2402
2403int yylex_destroy ( void );
2404
2405int yyget_debug ( void );
2406
2407void yyset_debug ( int debug_flag );
2408
2409YY_EXTRA_TYPE yyget_extra ( void );
2410
2411void yyset_extra ( YY_EXTRA_TYPE user_defined );
2412
2413FILE *yyget_in ( void );
2414
2415void yyset_in ( FILE * _in_str );
2416
2417FILE *yyget_out ( void );
2418
2419void yyset_out ( FILE * _out_str );
2420
2421 int yyget_leng ( void );
2422
2423char *yyget_text ( void );
2424
2425int yyget_lineno ( void );
2426
2427void yyset_lineno ( int _line_number );
2428
2429/* %if-bison-bridge */
2430/* %endif */
2431
2432/* Macros after this point can all be overridden by user definitions in
2433 * section 1.
2434 */
2435
2436#ifndef YY_SKIP_YYWRAP
2437#ifdef __cplusplus
2438extern "C" int yywrap ( void );
2439#else
2440extern int yywrap ( void );
2441#endif
2442#endif
2443
2444/* %not-for-header */
2445#ifndef YY_NO_UNPUT
2446
2447#endif
2448/* %ok-for-header */
2449
2450/* %endif */
2451
2452#ifndef yytext_ptr
2453static void yy_flex_strncpy ( char *, const char *, int );
2454#endif
2455
2456#ifdef YY_NEED_STRLEN
2457static int yy_flex_strlen ( const char * );
2458#endif
2459
2460#ifndef YY_NO_INPUT
2461/* %if-c-only Standard (non-C++) definition */
2462/* %not-for-header */
2463#ifdef __cplusplus
2464static int yyinput ( void );
2465#else
2466static int input ( void );
2467#endif
2468/* %ok-for-header */
2469
2470/* %endif */
2471#endif
2472
2473/* %if-c-only */
2474
2475/* %endif */
2476
2477/* Amount of stuff to slurp up with each read. */
2478#ifndef YY_READ_BUF_SIZE
2479#ifdef __ia64__
2480/* On IA-64, the buffer size is 16k, not 8k */
2481#define YY_READ_BUF_SIZE 16384
2482#else
2483#define YY_READ_BUF_SIZE 8192
2484#endif /* __ia64__ */
2485#endif
2486
2487/* Copy whatever the last rule matched to the standard output. */
2488#ifndef ECHO
2489/* %if-c-only Standard (non-C++) definition */
2490/* This used to be an fputs(), but since the string might contain NUL's,
2491 * we now use fwrite().
2492 */
2493#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2494/* %endif */
2495/* %if-c++-only C++ definition */
2496/* %endif */
2497#endif
2498
2499/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2500 * is returned in "result".
2501 */
2502#ifndef YY_INPUT
2503#define YY_INPUT(buf,result,max_size) \
2504/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2505 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2506 { \
2507 int c = '*'; \
2508 int n; \
2509 for ( n = 0; n < max_size && \
2510 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2511 buf[n] = (char) c; \
2512 if ( c == '\n' ) \
2513 buf[n++] = (char) c; \
2514 if ( c == EOF && ferror( yyin ) ) \
2515 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2516 result = n; \
2517 } \
2518 else \
2519 { \
2520 errno=0; \
2521 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2522 { \
2523 if( errno != EINTR) \
2524 { \
2525 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2526 break; \
2527 } \
2528 errno=0; \
2529 clearerr(yyin); \
2530 } \
2531 }\
2532\
2533/* %if-c++-only C++ definition \ */\
2534/* %endif */
2535
2536#endif
2537
2538/* No semi-colon after return; correct usage is to write "yyterminate();" -
2539 * we don't want an extra ';' after the "return" because that will cause
2540 * some compilers to complain about unreachable statements.
2541 */
2542#ifndef yyterminate
2543#define yyterminate() return YY_NULL
2544#endif
2545
2546/* Number of entries by which start-condition stack grows. */
2547#ifndef YY_START_STACK_INCR
2548#define YY_START_STACK_INCR 25
2549#endif
2550
2551/* Report a fatal error. */
2552#ifndef YY_FATAL_ERROR
2553/* %if-c-only */
2554#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2555/* %endif */
2556/* %if-c++-only */
2557/* %endif */
2558#endif
2559
2560/* %if-tables-serialization structures and prototypes */
2561/* %not-for-header */
2562/* %ok-for-header */
2563
2564/* %not-for-header */
2565/* %tables-yydmap generated elements */
2566/* %endif */
2567/* end tables serialization structures and prototypes */
2568
2569/* %ok-for-header */
2570
2571/* Default declaration of generated scanner - a define so the user can
2572 * easily add parameters.
2573 */
2574#ifndef YY_DECL
2575#define YY_DECL_IS_OURS 1
2576/* %if-c-only Standard (non-C++) definition */
2577
2578extern int yylex (void);
2579
2580#define YY_DECL int yylex (void)
2581/* %endif */
2582/* %if-c++-only C++ definition */
2583/* %endif */
2584#endif /* !YY_DECL */
2585
2586/* Code executed at the beginning of each rule, after yytext and yyleng
2587 * have been set up.
2588 */
2589#ifndef YY_USER_ACTION
2590#define YY_USER_ACTION
2591#endif
2592
2593/* Code executed at the end of each rule. */
2594#ifndef YY_BREAK
2595#define YY_BREAK /*LINTED*/break;
2596#endif
2597
2598/* %% [6.0] YY_RULE_SETUP definition goes here */
2599#define YY_RULE_SETUP \
2600 YY_USER_ACTION
2601
2602/* %not-for-header */
2606{
2607 yy_state_type yy_current_state;
2608 char *yy_cp, *yy_bp;
2610
2611 if ( !(yy_init) )
2612 {
2613 (yy_init) = 1;
2614
2615#ifdef YY_USER_INIT
2616 YY_USER_INIT;
2617#endif
2618
2619 if ( ! (yy_start) )
2620 (yy_start) = 1; /* first start state */
2621
2622 if ( ! yyin )
2623/* %if-c-only */
2624 yyin = stdin;
2625/* %endif */
2626/* %if-c++-only */
2627/* %endif */
2628
2629 if ( ! yyout )
2630/* %if-c-only */
2631 yyout = stdout;
2632/* %endif */
2633/* %if-c++-only */
2634/* %endif */
2635
2636 if ( ! YY_CURRENT_BUFFER ) {
2640 }
2641
2643 }
2644
2645 {
2646/* %% [7.0] user's declarations go here */
2647#line 102 "dhcp6_lexer.ll"
2648
2649
2650
2651#line 106 "dhcp6_lexer.ll"
2652 /* This part of the code is copied over to the verbatim to the top
2653 of the generated yylex function. Explanation:
2654 http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2655
2656 /* Code run each time yylex is called. */
2657 driver.loc_.step();
2658
2659 if (start_token_flag) {
2660 start_token_flag = false;
2661 switch (start_token_value) {
2663 default:
2668 return isc::dhcp::Dhcp6Parser::make_SUB_DHCP6(driver.loc_);
2672 return isc::dhcp::Dhcp6Parser::make_SUB_SUBNET6(driver.loc_);
2674 return isc::dhcp::Dhcp6Parser::make_SUB_POOL6(driver.loc_);
2676 return isc::dhcp::Dhcp6Parser::make_SUB_PD_POOL(driver.loc_);
2691 }
2692 }
2693
2694
2695#line 2695 "dhcp6_lexer.cc"
2696
2697 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2698 {
2699/* %% [8.0] yymore()-related code goes here */
2700 yy_cp = (yy_c_buf_p);
2701
2702 /* Support of yytext. */
2703 *yy_cp = (yy_hold_char);
2704
2705 /* yy_bp points to the position in yy_ch_buf of the start of
2706 * the current run.
2707 */
2708 yy_bp = yy_cp;
2709
2710/* %% [9.0] code to set up and find next match goes here */
2711 yy_current_state = (yy_start);
2712yy_match:
2713 do
2714 {
2715 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2716 if ( yy_accept[yy_current_state] )
2717 {
2718 (yy_last_accepting_state) = yy_current_state;
2719 (yy_last_accepting_cpos) = yy_cp;
2720 }
2721 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2722 {
2723 yy_current_state = (int) yy_def[yy_current_state];
2724 if ( yy_current_state >= 2426 )
2725 yy_c = yy_meta[yy_c];
2726 }
2727 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2728 ++yy_cp;
2729 }
2730 while ( yy_current_state != 2425 );
2731 yy_cp = (yy_last_accepting_cpos);
2732 yy_current_state = (yy_last_accepting_state);
2733
2734yy_find_action:
2735/* %% [10.0] code to find the action number goes here */
2736 yy_act = yy_accept[yy_current_state];
2737
2739
2740/* %% [11.0] code for yylineno update goes here */
2741
2742do_action: /* This label is used only to access EOF actions. */
2743
2744/* %% [12.0] debug code goes here */
2745 if ( yy_flex_debug )
2746 {
2747 if ( yy_act == 0 )
2748 fprintf( stderr, "--scanner backing up\n" );
2749 else if ( yy_act < 256 )
2750 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2751 (long)yy_rule_linenum[yy_act], yytext );
2752 else if ( yy_act == 256 )
2753 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2754 yytext );
2755 else if ( yy_act == 257 )
2756 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2757 else
2758 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2759 }
2760
2761 switch ( yy_act )
2762 { /* beginning of action switch */
2763/* %% [13.0] actions go here */
2764 case 0: /* must back up */
2765 /* undo the effects of YY_DO_BEFORE_ACTION */
2766 *yy_cp = (yy_hold_char);
2767 yy_cp = (yy_last_accepting_cpos);
2768 yy_current_state = (yy_last_accepting_state);
2769 goto yy_find_action;
2770
2771case 1:
2773#line 149 "dhcp6_lexer.ll"
2774;
2775 YY_BREAK
2776case 2:
2778#line 151 "dhcp6_lexer.ll"
2779;
2780 YY_BREAK
2781case 3:
2783#line 153 "dhcp6_lexer.ll"
2784{
2785 BEGIN(COMMENT);
2786 comment_start_line = driver.loc_.end.line;;
2787}
2788 YY_BREAK
2789case 4:
2791#line 158 "dhcp6_lexer.ll"
2792BEGIN(INITIAL);
2793 YY_BREAK
2794case 5:
2796#line 159 "dhcp6_lexer.ll"
2797;
2798 YY_BREAK
2799case YY_STATE_EOF(COMMENT):
2800#line 160 "dhcp6_lexer.ll"
2801{
2802 isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line);
2803}
2804 YY_BREAK
2805case 6:
2807#line 164 "dhcp6_lexer.ll"
2809 YY_BREAK
2810case 7:
2812#line 165 "dhcp6_lexer.ll"
2814 YY_BREAK
2815case 8:
2817#line 166 "dhcp6_lexer.ll"
2818{
2819 /* Include directive. */
2820
2821 /* Extract the filename. */
2822 std::string tmp(yytext+1);
2823 tmp.resize(tmp.size() - 1);
2824
2825 driver.includeFile(tmp);
2826}
2827 YY_BREAK
2831#line 175 "dhcp6_lexer.ll"
2832{
2833 isc_throw(Dhcp6ParseError, "Directive not closed.");
2834}
2835 YY_BREAK
2836case 9:
2838#line 178 "dhcp6_lexer.ll"
2839BEGIN(INITIAL);
2840 YY_BREAK
2841case 10:
2843#line 180 "dhcp6_lexer.ll"
2844{
2845 /* Ok, we found a with space. Let's ignore it and update loc variable. */
2846 driver.loc_.step();
2847}
2848 YY_BREAK
2849case 11:
2850/* rule 11 can match eol */
2852#line 185 "dhcp6_lexer.ll"
2853{
2854 /* Newline found. Let's update the location and continue. */
2855 driver.loc_.lines(yyleng);
2856 driver.loc_.step();
2857}
2858 YY_BREAK
2859case 12:
2861#line 191 "dhcp6_lexer.ll"
2862{
2863 switch(driver.ctx_) {
2866 default:
2867 return isc::dhcp::Dhcp6Parser::make_STRING("enable-updates", driver.loc_);
2868 }
2869}
2870 YY_BREAK
2871case 13:
2873#line 200 "dhcp6_lexer.ll"
2874{
2875 switch(driver.ctx_) {
2877 return isc::dhcp::Dhcp6Parser::make_SERVER_IP(driver.loc_);
2878 default:
2879 return isc::dhcp::Dhcp6Parser::make_STRING("server-ip", driver.loc_);
2880 }
2881}
2882 YY_BREAK
2883case 14:
2885#line 209 "dhcp6_lexer.ll"
2886{
2887 switch(driver.ctx_) {
2889 return isc::dhcp::Dhcp6Parser::make_SERVER_PORT(driver.loc_);
2890 default:
2891 return isc::dhcp::Dhcp6Parser::make_STRING("server-port", driver.loc_);
2892 }
2893}
2894 YY_BREAK
2895case 15:
2897#line 218 "dhcp6_lexer.ll"
2898{
2899 switch(driver.ctx_) {
2901 return isc::dhcp::Dhcp6Parser::make_SENDER_IP(driver.loc_);
2902 default:
2903 return isc::dhcp::Dhcp6Parser::make_STRING("sender-ip", driver.loc_);
2904 }
2905}
2906 YY_BREAK
2907case 16:
2909#line 227 "dhcp6_lexer.ll"
2910{
2911 switch(driver.ctx_) {
2913 return isc::dhcp::Dhcp6Parser::make_SENDER_PORT(driver.loc_);
2914 default:
2915 return isc::dhcp::Dhcp6Parser::make_STRING("sender-port", driver.loc_);
2916 }
2917}
2918 YY_BREAK
2919case 17:
2921#line 236 "dhcp6_lexer.ll"
2922{
2923 switch(driver.ctx_) {
2926 default:
2927 return isc::dhcp::Dhcp6Parser::make_STRING("max-queue-size", driver.loc_);
2928 }
2929}
2930 YY_BREAK
2931case 18:
2933#line 245 "dhcp6_lexer.ll"
2934{
2935 switch(driver.ctx_) {
2938 default:
2939 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-protocol", driver.loc_);
2940 }
2941}
2942 YY_BREAK
2943case 19:
2945#line 254 "dhcp6_lexer.ll"
2946{
2947 switch(driver.ctx_) {
2949 return isc::dhcp::Dhcp6Parser::make_NCR_FORMAT(driver.loc_);
2950 default:
2951 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-format", driver.loc_);
2952 }
2953}
2954 YY_BREAK
2955case 20:
2957#line 263 "dhcp6_lexer.ll"
2958{
2959 switch(driver.ctx_) {
2965 default:
2966 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-set", driver.loc_);
2967 }
2968}
2969 YY_BREAK
2970case 21:
2972#line 275 "dhcp6_lexer.ll"
2973{
2974 switch(driver.ctx_) {
2980 default:
2981 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-replacement", driver.loc_);
2982 }
2983}
2984 YY_BREAK
2985case 22:
2987#line 287 "dhcp6_lexer.ll"
2988{
2989 /* dhcp-ddns value keywords are case insensitive */
2990 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2991 return isc::dhcp::Dhcp6Parser::make_UDP(driver.loc_);
2992 }
2993 std::string tmp(yytext+1);
2994 tmp.resize(tmp.size() - 1);
2995 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2996}
2997 YY_BREAK
2998case 23:
3000#line 297 "dhcp6_lexer.ll"
3001{
3002 /* dhcp-ddns value keywords are case insensitive */
3003 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
3004 return isc::dhcp::Dhcp6Parser::make_TCP(driver.loc_);
3005 }
3006 std::string tmp(yytext+1);
3007 tmp.resize(tmp.size() - 1);
3008 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3009}
3010 YY_BREAK
3011case 24:
3013#line 307 "dhcp6_lexer.ll"
3014{
3015 /* dhcp-ddns value keywords are case insensitive */
3016 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) {
3017 return isc::dhcp::Dhcp6Parser::make_JSON(driver.loc_);
3018 }
3019 std::string tmp(yytext+1);
3020 tmp.resize(tmp.size() - 1);
3021 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3022}
3023 YY_BREAK
3024case 25:
3026#line 317 "dhcp6_lexer.ll"
3027{
3028 /* dhcp-ddns value keywords are case insensitive */
3031 }
3032 std::string tmp(yytext+1);
3033 tmp.resize(tmp.size() - 1);
3034 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3035}
3036 YY_BREAK
3037case 26:
3039#line 327 "dhcp6_lexer.ll"
3040{
3041 /* dhcp-ddns value keywords are case insensitive */
3044 }
3045 std::string tmp(yytext+1);
3046 tmp.resize(tmp.size() - 1);
3047 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3048}
3049 YY_BREAK
3050case 27:
3052#line 337 "dhcp6_lexer.ll"
3053{
3054 switch(driver.ctx_) {
3056 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
3057 default:
3058 return isc::dhcp::Dhcp6Parser::make_STRING("never", driver.loc_);
3059 }
3060}
3061 YY_BREAK
3062case 28:
3064#line 346 "dhcp6_lexer.ll"
3065{
3066 /* dhcp-ddns value keywords are case insensitive */
3068 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
3069 }
3070 std::string tmp(yytext+1);
3071 tmp.resize(tmp.size() - 1);
3072 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3073}
3074 YY_BREAK
3075case 29:
3077#line 356 "dhcp6_lexer.ll"
3078{
3079 /* dhcp-ddns value keywords are case insensitive */
3081 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
3082 }
3083 std::string tmp(yytext+1);
3084 tmp.resize(tmp.size() - 1);
3085 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3086}
3087 YY_BREAK
3088case 30:
3090#line 366 "dhcp6_lexer.ll"
3091{
3092 /* dhcp-ddns value keywords are case insensitive */
3094 return isc::dhcp::Dhcp6Parser::make_ALWAYS(driver.loc_);
3095 }
3096 std::string tmp(yytext+1);
3097 tmp.resize(tmp.size() - 1);
3098 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3099}
3100 YY_BREAK
3101case 31:
3103#line 376 "dhcp6_lexer.ll"
3104{
3105 /* dhcp-ddns value keywords are case insensitive */
3108 }
3109 std::string tmp(yytext+1);
3110 tmp.resize(tmp.size() - 1);
3111 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
3112}
3113 YY_BREAK
3114case 32:
3116#line 386 "dhcp6_lexer.ll"
3117{
3118 switch(driver.ctx_) {
3120 return isc::dhcp::Dhcp6Parser::make_DHCP6(driver.loc_);
3121 default:
3122 return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp6", driver.loc_);
3123 }
3124}
3125 YY_BREAK
3126case 33:
3128#line 395 "dhcp6_lexer.ll"
3129{
3130 switch(driver.ctx_) {
3133 default:
3134 return isc::dhcp::Dhcp6Parser::make_STRING("data-directory", driver.loc_);
3135 }
3136}
3137 YY_BREAK
3138case 34:
3140#line 404 "dhcp6_lexer.ll"
3141{
3142 switch(driver.ctx_) {
3145 default:
3146 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", driver.loc_);
3147 }
3148}
3149 YY_BREAK
3150case 35:
3152#line 413 "dhcp6_lexer.ll"
3153{
3154 switch(driver.ctx_) {
3156 return isc::dhcp::Dhcp6Parser::make_INTERFACES(driver.loc_);
3157 default:
3158 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces", driver.loc_);
3159 }
3160}
3161 YY_BREAK
3162case 36:
3164#line 422 "dhcp6_lexer.ll"
3165{
3166 switch(driver.ctx_) {
3168 return isc::dhcp::Dhcp6Parser::make_RE_DETECT(driver.loc_);
3169 default:
3170 return isc::dhcp::Dhcp6Parser::make_STRING("re-detect", driver.loc_);
3171 }
3172}
3173 YY_BREAK
3174case 37:
3176#line 431 "dhcp6_lexer.ll"
3177{
3178 switch(driver.ctx_) {
3181 default:
3182 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-require-all", driver.loc_);
3183 }
3184}
3185 YY_BREAK
3186case 38:
3188#line 440 "dhcp6_lexer.ll"
3189{
3190 switch(driver.ctx_) {
3193 default:
3194 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-retry-wait-time", driver.loc_);
3195 }
3196}
3197 YY_BREAK
3198case 39:
3200#line 449 "dhcp6_lexer.ll"
3201{
3202 switch(driver.ctx_) {
3205 default:
3206 return isc::dhcp::Dhcp6Parser::make_STRING("service-sockets-max-retries", driver.loc_);
3207 }
3208}
3209 YY_BREAK
3210case 40:
3212#line 458 "dhcp6_lexer.ll"
3213{
3214 switch(driver.ctx_) {
3217 default:
3218 return isc::dhcp::Dhcp6Parser::make_STRING("sanity-checks", driver.loc_);
3219 }
3220}
3221 YY_BREAK
3222case 41:
3224#line 467 "dhcp6_lexer.ll"
3225{
3226 switch(driver.ctx_) {
3229 default:
3230 return isc::dhcp::Dhcp6Parser::make_STRING("lease-checks", driver.loc_);
3231 }
3232}
3233 YY_BREAK
3234case 42:
3236#line 476 "dhcp6_lexer.ll"
3237{
3238 switch(driver.ctx_) {
3241 default:
3242 return isc::dhcp::Dhcp6Parser::make_STRING("extended-info-checks", driver.loc_);
3243 }
3244}
3245 YY_BREAK
3246case 43:
3248#line 485 "dhcp6_lexer.ll"
3249{
3250 switch(driver.ctx_) {
3253 default:
3254 return isc::dhcp::Dhcp6Parser::make_STRING("lease-database", driver.loc_);
3255 }
3256}
3257 YY_BREAK
3258case 44:
3260#line 494 "dhcp6_lexer.ll"
3261{
3262 switch(driver.ctx_) {
3265 default:
3266 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-database", driver.loc_);
3267 }
3268}
3269 YY_BREAK
3270case 45:
3272#line 503 "dhcp6_lexer.ll"
3273{
3274 switch(driver.ctx_) {
3277 default:
3278 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-databases", driver.loc_);
3279 }
3280}
3281 YY_BREAK
3282case 46:
3284#line 512 "dhcp6_lexer.ll"
3285{
3286 switch(driver.ctx_) {
3289 default:
3290 return isc::dhcp::Dhcp6Parser::make_STRING("config-control", driver.loc_);
3291 }
3292}
3293 YY_BREAK
3294case 47:
3296#line 521 "dhcp6_lexer.ll"
3297{
3298 switch(driver.ctx_) {
3301 default:
3302 return isc::dhcp::Dhcp6Parser::make_STRING("config-databases", driver.loc_);
3303 }
3304}
3305 YY_BREAK
3306case 48:
3308#line 530 "dhcp6_lexer.ll"
3309{
3310 switch(driver.ctx_) {
3313 default:
3314 return isc::dhcp::Dhcp6Parser::make_STRING("config-fetch-wait-time", driver.loc_);
3315 }
3316}
3317 YY_BREAK
3318case 49:
3320#line 539 "dhcp6_lexer.ll"
3321{
3322 switch(driver.ctx_) {
3324 return isc::dhcp::Dhcp6Parser::make_READONLY(driver.loc_);
3325 default:
3326 return isc::dhcp::Dhcp6Parser::make_STRING("readonly", driver.loc_);
3327 }
3328}
3329 YY_BREAK
3330case 50:
3332#line 548 "dhcp6_lexer.ll"
3333{
3334 switch(driver.ctx_) {
3341 return isc::dhcp::Dhcp6Parser::make_TYPE(driver.loc_);
3342 default:
3343 return isc::dhcp::Dhcp6Parser::make_STRING("type", driver.loc_);
3344 }
3345}
3346 YY_BREAK
3347case 51:
3349#line 562 "dhcp6_lexer.ll"
3350{
3351 switch(driver.ctx_) {
3356 return isc::dhcp::Dhcp6Parser::make_USER(driver.loc_);
3357 default:
3358 return isc::dhcp::Dhcp6Parser::make_STRING("user", driver.loc_);
3359 }
3360}
3361 YY_BREAK
3362case 52:
3364#line 574 "dhcp6_lexer.ll"
3365{
3366 switch(driver.ctx_) {
3371 return isc::dhcp::Dhcp6Parser::make_PASSWORD(driver.loc_);
3372 default:
3373 return isc::dhcp::Dhcp6Parser::make_STRING("password", driver.loc_);
3374 }
3375}
3376 YY_BREAK
3377case 53:
3379#line 586 "dhcp6_lexer.ll"
3380{
3381 switch(driver.ctx_) {
3385 return isc::dhcp::Dhcp6Parser::make_HOST(driver.loc_);
3386 default:
3387 return isc::dhcp::Dhcp6Parser::make_STRING("host", driver.loc_);
3388 }
3389}
3390 YY_BREAK
3391case 54:
3393#line 597 "dhcp6_lexer.ll"
3394{
3395 switch(driver.ctx_) {
3399 return isc::dhcp::Dhcp6Parser::make_PORT(driver.loc_);
3400 default:
3401 return isc::dhcp::Dhcp6Parser::make_STRING("port", driver.loc_);
3402 }
3403}
3404 YY_BREAK
3405case 55:
3407#line 608 "dhcp6_lexer.ll"
3408{
3409 switch(driver.ctx_) {
3414 return isc::dhcp::Dhcp6Parser::make_PERSIST(driver.loc_);
3415 default:
3416 return isc::dhcp::Dhcp6Parser::make_STRING("persist", driver.loc_);
3417 }
3418}
3419 YY_BREAK
3420case 56:
3422#line 620 "dhcp6_lexer.ll"
3423{
3424 switch(driver.ctx_) {
3429 default:
3430 return isc::dhcp::Dhcp6Parser::make_STRING("lfc-interval", driver.loc_);
3431 }
3432}
3433 YY_BREAK
3434case 57:
3436#line 631 "dhcp6_lexer.ll"
3437{
3438 switch(driver.ctx_) {
3443 default:
3444 return isc::dhcp::Dhcp6Parser::make_STRING("connect-timeout", driver.loc_);
3445 }
3446}
3447 YY_BREAK
3448case 58:
3450#line 642 "dhcp6_lexer.ll"
3451{
3452 switch(driver.ctx_) {
3457 default:
3458 return isc::dhcp::Dhcp6Parser::make_STRING("read-timeout", driver.loc_);
3459 }
3460}
3461 YY_BREAK
3462case 59:
3464#line 653 "dhcp6_lexer.ll"
3465{
3466 switch(driver.ctx_) {
3471 default:
3472 return isc::dhcp::Dhcp6Parser::make_STRING("write-timeout", driver.loc_);
3473 }
3474}
3475 YY_BREAK
3476case 60:
3478#line 664 "dhcp6_lexer.ll"
3479{
3480 switch(driver.ctx_) {
3485 default:
3486 return isc::dhcp::Dhcp6Parser::make_STRING("tcp-user-timeout", driver.loc_);
3487 }
3488}
3489 YY_BREAK
3490case 61:
3492#line 675 "dhcp6_lexer.ll"
3493{
3494 switch(driver.ctx_) {
3499 default:
3500 return isc::dhcp::Dhcp6Parser::make_STRING("reconnect-wait-time", driver.loc_);
3501 }
3502}
3503 YY_BREAK
3504case 62:
3506#line 686 "dhcp6_lexer.ll"
3507{
3508 switch(driver.ctx_) {
3512 return isc::dhcp::Dhcp6Parser::make_ON_FAIL(driver.loc_);
3513 default:
3514 return isc::dhcp::Dhcp6Parser::make_STRING("on-fail", driver.loc_);
3515 }
3516}
3517 YY_BREAK
3518case 63:
3520#line 697 "dhcp6_lexer.ll"
3521{
3522 switch(driver.ctx_) {
3525 default:
3526 return isc::dhcp::Dhcp6Parser::make_STRING("stop-retry-exit", driver.loc_);
3527 }
3528}
3529 YY_BREAK
3530case 64:
3532#line 706 "dhcp6_lexer.ll"
3533{
3534 switch(driver.ctx_) {
3537 default:
3538 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-exit", driver.loc_);
3539 }
3540}
3541 YY_BREAK
3542case 65:
3544#line 715 "dhcp6_lexer.ll"
3545{
3546 switch(driver.ctx_) {
3549 default:
3550 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-continue", driver.loc_);
3551 }
3552}
3553 YY_BREAK
3554case 66:
3556#line 724 "dhcp6_lexer.ll"
3557{
3558 switch(driver.ctx_) {
3563 default:
3564 return isc::dhcp::Dhcp6Parser::make_STRING("retry-on-startup", driver.loc_);
3565 }
3566}
3567 YY_BREAK
3568case 67:
3570#line 735 "dhcp6_lexer.ll"
3571{
3572 switch(driver.ctx_) {
3577 default:
3578 return isc::dhcp::Dhcp6Parser::make_STRING("max-reconnect-tries", driver.loc_);
3579 }
3580}
3581 YY_BREAK
3582case 68:
3584#line 746 "dhcp6_lexer.ll"
3585{
3586 switch(driver.ctx_) {
3589 default:
3590 return isc::dhcp::Dhcp6Parser::make_STRING("max-row-errors", driver.loc_);
3591 }
3592}
3593 YY_BREAK
3594case 69:
3596#line 755 "dhcp6_lexer.ll"
3597{
3598 switch(driver.ctx_) {
3604 default:
3605 return isc::dhcp::Dhcp6Parser::make_STRING("trust-anchor", driver.loc_);
3606 }
3607}
3608 YY_BREAK
3609case 70:
3611#line 767 "dhcp6_lexer.ll"
3612{
3613 switch(driver.ctx_) {
3618 return isc::dhcp::Dhcp6Parser::make_CERT_FILE(driver.loc_);
3619 default:
3620 return isc::dhcp::Dhcp6Parser::make_STRING("cert-file", driver.loc_);
3621 }
3622}
3623 YY_BREAK
3624case 71:
3626#line 779 "dhcp6_lexer.ll"
3627{
3628 switch(driver.ctx_) {
3633 return isc::dhcp::Dhcp6Parser::make_KEY_FILE(driver.loc_);
3634 default:
3635 return isc::dhcp::Dhcp6Parser::make_STRING("key-file", driver.loc_);
3636 }
3637}
3638 YY_BREAK
3639case 72:
3641#line 791 "dhcp6_lexer.ll"
3642{
3643 switch(driver.ctx_) {
3647 return isc::dhcp::Dhcp6Parser::make_SSL_MODE(driver.loc_);
3648 default:
3649 return isc::dhcp::Dhcp6Parser::make_STRING("ssl-mode", driver.loc_);
3650 }
3651}
3652 YY_BREAK
3653case 73:
3655#line 802 "dhcp6_lexer.ll"
3656{
3657 switch(driver.ctx_) {
3659 return isc::dhcp::Dhcp6Parser::make_DISABLE(driver.loc_);
3660 default:
3661 return isc::dhcp::Dhcp6Parser::make_STRING("disable", driver.loc_);
3662 }
3663}
3664 YY_BREAK
3665case 74:
3667#line 811 "dhcp6_lexer.ll"
3668{
3669 switch(driver.ctx_) {
3671 return isc::dhcp::Dhcp6Parser::make_PREFER(driver.loc_);
3672 default:
3673 return isc::dhcp::Dhcp6Parser::make_STRING("prefer", driver.loc_);
3674 }
3675}
3676 YY_BREAK
3677case 75:
3679#line 820 "dhcp6_lexer.ll"
3680{
3681 switch(driver.ctx_) {
3683 return isc::dhcp::Dhcp6Parser::make_REQUIRE(driver.loc_);
3684 default:
3685 return isc::dhcp::Dhcp6Parser::make_STRING("require", driver.loc_);
3686 }
3687}
3688 YY_BREAK
3689case 76:
3691#line 829 "dhcp6_lexer.ll"
3692{
3693 switch(driver.ctx_) {
3695 return isc::dhcp::Dhcp6Parser::make_VERIFY_CA(driver.loc_);
3696 default:
3697 return isc::dhcp::Dhcp6Parser::make_STRING("verify-ca", driver.loc_);
3698 }
3699}
3700 YY_BREAK
3701case 77:
3703#line 838 "dhcp6_lexer.ll"
3704{
3705 switch(driver.ctx_) {
3707 return isc::dhcp::Dhcp6Parser::make_VERIFY_FULL(driver.loc_);
3708 default:
3709 return isc::dhcp::Dhcp6Parser::make_STRING("verify-full", driver.loc_);
3710 }
3711}
3712 YY_BREAK
3713case 78:
3715#line 847 "dhcp6_lexer.ll"
3716{
3717 switch(driver.ctx_) {
3721 return isc::dhcp::Dhcp6Parser::make_CIPHER_LIST(driver.loc_);
3722 default:
3723 return isc::dhcp::Dhcp6Parser::make_STRING("cipher-list", driver.loc_);
3724 }
3725}
3726 YY_BREAK
3727case 79:
3729#line 858 "dhcp6_lexer.ll"
3730{
3731 switch(driver.ctx_) {
3737 default:
3738 return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_);
3739 }
3740}
3741 YY_BREAK
3742case 80:
3744#line 870 "dhcp6_lexer.ll"
3745{
3746 switch(driver.ctx_) {
3752 default:
3753 return isc::dhcp::Dhcp6Parser::make_STRING("min-preferred-lifetime", driver.loc_);
3754 }
3755}
3756 YY_BREAK
3757case 81:
3759#line 882 "dhcp6_lexer.ll"
3760{
3761 switch(driver.ctx_) {
3767 default:
3768 return isc::dhcp::Dhcp6Parser::make_STRING("max-preferred-lifetime", driver.loc_);
3769 }
3770}
3771 YY_BREAK
3772case 82:
3774#line 894 "dhcp6_lexer.ll"
3775{
3776 switch(driver.ctx_) {
3782 default:
3783 return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_);
3784 }
3785}
3786 YY_BREAK
3787case 83:
3789#line 906 "dhcp6_lexer.ll"
3790{
3791 switch(driver.ctx_) {
3797 default:
3798 return isc::dhcp::Dhcp6Parser::make_STRING("min-valid-lifetime", driver.loc_);
3799 }
3800}
3801 YY_BREAK
3802case 84:
3804#line 918 "dhcp6_lexer.ll"
3805{
3806 switch(driver.ctx_) {
3812 default:
3813 return isc::dhcp::Dhcp6Parser::make_STRING("max-valid-lifetime", driver.loc_);
3814 }
3815}
3816 YY_BREAK
3817case 85:
3819#line 930 "dhcp6_lexer.ll"
3820{
3821 switch(driver.ctx_) {
3825 return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_);
3826 default:
3827 return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_);
3828 }
3829}
3830 YY_BREAK
3831case 86:
3833#line 941 "dhcp6_lexer.ll"
3834{
3835 switch(driver.ctx_) {
3840 default:
3841 return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_);
3842 }
3843}
3844 YY_BREAK
3845case 87:
3847#line 952 "dhcp6_lexer.ll"
3848{
3849 switch(driver.ctx_) {
3852 default:
3853 return isc::dhcp::Dhcp6Parser::make_STRING("decline-probation-period", driver.loc_);
3854 }
3855}
3856 YY_BREAK
3857case 88:
3859#line 961 "dhcp6_lexer.ll"
3860{
3861 switch(driver.ctx_) {
3863 return isc::dhcp::Dhcp6Parser::make_SERVER_TAG(driver.loc_);
3864 default:
3865 return isc::dhcp::Dhcp6Parser::make_STRING("server-tag", driver.loc_);
3866 }
3867}
3868 YY_BREAK
3869case 89:
3871#line 970 "dhcp6_lexer.ll"
3872{
3873 switch(driver.ctx_) {
3876 default:
3877 return isc::dhcp::Dhcp6Parser::make_STRING("parked-packet-limit", driver.loc_);
3878 }
3879}
3880 YY_BREAK
3881case 90:
3883#line 979 "dhcp6_lexer.ll"
3884{
3885 switch(driver.ctx_) {
3889 return isc::dhcp::Dhcp6Parser::make_ALLOCATOR(driver.loc_);
3890 default:
3891 return isc::dhcp::Dhcp6Parser::make_STRING("allocator", driver.loc_);
3892 }
3893}
3894 YY_BREAK
3895case 91:
3897#line 990 "dhcp6_lexer.ll"
3898{
3899 switch(driver.ctx_) {
3904 default:
3905 return isc::dhcp::Dhcp6Parser::make_STRING("pd-allocator", driver.loc_);
3906 }
3907}
3908 YY_BREAK
3909case 92:
3911#line 1001 "dhcp6_lexer.ll"
3912{
3913 switch(driver.ctx_) {
3916 default:
3917 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3918 }
3919}
3920 YY_BREAK
3921case 93:
3923#line 1010 "dhcp6_lexer.ll"
3924{
3925 switch(driver.ctx_) {
3928 default:
3929 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3930 }
3931}
3932 YY_BREAK
3933case 94:
3935#line 1019 "dhcp6_lexer.ll"
3936{
3937 switch(driver.ctx_) {
3943 default:
3944 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-send-updates", driver.loc_);
3945 }
3946}
3947 YY_BREAK
3948case 95:
3950#line 1031 "dhcp6_lexer.ll"
3951{
3952 switch(driver.ctx_) {
3958 default:
3959 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-no-update", driver.loc_);
3960 }
3961}
3962 YY_BREAK
3963case 96:
3965#line 1043 "dhcp6_lexer.ll"
3966{
3967 switch(driver.ctx_) {
3973 default:
3974 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-client-update", driver.loc_);
3975 }
3976}
3977 YY_BREAK
3978case 97:
3980#line 1055 "dhcp6_lexer.ll"
3981{
3982 switch(driver.ctx_) {
3988 default:
3989 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3990 }
3991}
3992 YY_BREAK
3993case 98:
3995#line 1067 "dhcp6_lexer.ll"
3996{
3997 switch(driver.ctx_) {
4003 default:
4004 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-generated-prefix", driver.loc_);
4005 }
4006}
4007 YY_BREAK
4008case 99:
4010#line 1079 "dhcp6_lexer.ll"
4011{
4012 switch(driver.ctx_) {
4018 default:
4019 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
4020 }
4021}
4022 YY_BREAK
4023case 100:
4025#line 1091 "dhcp6_lexer.ll"
4026{
4027 switch(driver.ctx_) {
4033 default:
4034 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-update-on-renew", driver.loc_);
4035 }
4036}
4037 YY_BREAK
4038case 101:
4040#line 1103 "dhcp6_lexer.ll"
4041{
4042 switch(driver.ctx_) {
4047 default:
4048 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
4049 }
4050}
4051 YY_BREAK
4052case 102:
4054#line 1114 "dhcp6_lexer.ll"
4055{
4056 switch(driver.ctx_) {
4062 default:
4063 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-conflict-resolution-mode", driver.loc_);
4064 }
4065}
4066 YY_BREAK
4067case 103:
4069#line 1126 "dhcp6_lexer.ll"
4070{
4073 }
4074 std::string tmp(yytext+1);
4075 tmp.resize(tmp.size() - 1);
4076 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4077}
4078 YY_BREAK
4079case 104:
4081#line 1135 "dhcp6_lexer.ll"
4082{
4085 }
4086 std::string tmp(yytext+1);
4087 tmp.resize(tmp.size() - 1);
4088 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4089}
4090 YY_BREAK
4091case 105:
4093#line 1144 "dhcp6_lexer.ll"
4094{
4097 }
4098 std::string tmp(yytext+1);
4099 tmp.resize(tmp.size() - 1);
4100 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4101}
4102 YY_BREAK
4103case 106:
4105#line 1153 "dhcp6_lexer.ll"
4106{
4109 }
4110 std::string tmp(yytext+1);
4111 tmp.resize(tmp.size() - 1);
4112 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
4113}
4114 YY_BREAK
4115case 107:
4117#line 1162 "dhcp6_lexer.ll"
4118{
4119 switch(driver.ctx_) {
4125 default:
4126 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-percent", driver.loc_);
4127 }
4128}
4129 YY_BREAK
4130case 108:
4132#line 1174 "dhcp6_lexer.ll"
4133{
4134 switch(driver.ctx_) {
4139 return isc::dhcp::Dhcp6Parser::make_DDNS_TTL(driver.loc_);
4140 default:
4141 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl", driver.loc_);
4142 }
4143}
4144 YY_BREAK
4145case 109:
4147#line 1186 "dhcp6_lexer.ll"
4148{
4149 switch(driver.ctx_) {
4155 default:
4156 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-min", driver.loc_);
4157 }
4158}
4159 YY_BREAK
4160case 110:
4162#line 1198 "dhcp6_lexer.ll"
4163{
4164 switch(driver.ctx_) {
4170 default:
4171 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-ttl-max", driver.loc_);
4172 }
4173}
4174 YY_BREAK
4175case 111:
4177#line 1210 "dhcp6_lexer.ll"
4178{
4179 switch(driver.ctx_) {
4182 return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_);
4183 default:
4184 return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_);
4185 }
4186}
4187 YY_BREAK
4188case 112:
4190#line 1220 "dhcp6_lexer.ll"
4191{
4192 switch(driver.ctx_) {
4197 default:
4198 return isc::dhcp::Dhcp6Parser::make_STRING("store-extended-info", driver.loc_);
4199 }
4200}
4201 YY_BREAK
4202case 113:
4204#line 1231 "dhcp6_lexer.ll"
4205{
4206 switch (driver.ctx_) {
4208 return Dhcp6Parser::make_SHARED_NETWORKS(driver.loc_);
4209 default:
4210 return Dhcp6Parser::make_STRING("shared-networks", driver.loc_);
4211 }
4212}
4213 YY_BREAK
4214case 114:
4216#line 1240 "dhcp6_lexer.ll"
4217{
4218 switch(driver.ctx_) {
4220 return isc::dhcp::Dhcp6Parser::make_OPTION_DEF(driver.loc_);
4221 default:
4222 return isc::dhcp::Dhcp6Parser::make_STRING("option-def", driver.loc_);
4223 }
4224}
4225 YY_BREAK
4226case 115:
4228#line 1249 "dhcp6_lexer.ll"
4229{
4230 switch(driver.ctx_) {
4238 return isc::dhcp::Dhcp6Parser::make_OPTION_DATA(driver.loc_);
4239 default:
4240 return isc::dhcp::Dhcp6Parser::make_STRING("option-data", driver.loc_);
4241 }
4242}
4243 YY_BREAK
4244case 116:
4246#line 1264 "dhcp6_lexer.ll"
4247{
4248 switch(driver.ctx_) {
4258 return isc::dhcp::Dhcp6Parser::make_NAME(driver.loc_);
4259 default:
4260 return isc::dhcp::Dhcp6Parser::make_STRING("name", driver.loc_);
4261 }
4262}
4263 YY_BREAK
4264case 117:
4266#line 1281 "dhcp6_lexer.ll"
4267{
4268 switch(driver.ctx_) {
4270 return isc::dhcp::Dhcp6Parser::make_DATA(driver.loc_);
4271 default:
4272 return isc::dhcp::Dhcp6Parser::make_STRING("data", driver.loc_);
4273 }
4274}
4275 YY_BREAK
4276case 118:
4278#line 1290 "dhcp6_lexer.ll"
4279{
4280 switch(driver.ctx_) {
4282 return isc::dhcp::Dhcp6Parser::make_ALWAYS_SEND(driver.loc_);
4283 default:
4284 return isc::dhcp::Dhcp6Parser::make_STRING("always-send", driver.loc_);
4285 }
4286}
4287 YY_BREAK
4288case 119:
4290#line 1299 "dhcp6_lexer.ll"
4291{
4292 switch(driver.ctx_) {
4294 return isc::dhcp::Dhcp6Parser::make_NEVER_SEND(driver.loc_);
4295 default:
4296 return isc::dhcp::Dhcp6Parser::make_STRING("never-send", driver.loc_);
4297 }
4298}
4299 YY_BREAK
4300case 120:
4302#line 1308 "dhcp6_lexer.ll"
4303{
4304 switch(driver.ctx_) {
4306 return isc::dhcp::Dhcp6Parser::make_POOLS(driver.loc_);
4307 default:
4308 return isc::dhcp::Dhcp6Parser::make_STRING("pools", driver.loc_);
4309 }
4310}
4311 YY_BREAK
4312case 121:
4314#line 1317 "dhcp6_lexer.ll"
4315{
4316 switch(driver.ctx_) {
4318 return isc::dhcp::Dhcp6Parser::make_PD_POOLS(driver.loc_);
4319 default:
4320 return isc::dhcp::Dhcp6Parser::make_STRING("pd-pools", driver.loc_);
4321 }
4322}
4323 YY_BREAK
4324case 122:
4326#line 1326 "dhcp6_lexer.ll"
4327{
4328 switch(driver.ctx_) {
4330 return isc::dhcp::Dhcp6Parser::make_PREFIX(driver.loc_);
4331 default:
4332 return isc::dhcp::Dhcp6Parser::make_STRING("prefix", driver.loc_);
4333 }
4334}
4335 YY_BREAK
4336case 123:
4338#line 1335 "dhcp6_lexer.ll"
4339{
4340 switch(driver.ctx_) {
4342 return isc::dhcp::Dhcp6Parser::make_PREFIX_LEN(driver.loc_);
4343 default:
4344 return isc::dhcp::Dhcp6Parser::make_STRING("prefix-len", driver.loc_);
4345 }
4346}
4347 YY_BREAK
4348case 124:
4350#line 1344 "dhcp6_lexer.ll"
4351{
4352 switch(driver.ctx_) {
4355 default:
4356 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix", driver.loc_);
4357 }
4358}
4359 YY_BREAK
4360case 125:
4362#line 1353 "dhcp6_lexer.ll"
4363{
4364 switch(driver.ctx_) {
4367 default:
4368 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix-len", driver.loc_);
4369 }
4370}
4371 YY_BREAK
4372case 126:
4374#line 1362 "dhcp6_lexer.ll"
4375{
4376 switch(driver.ctx_) {
4379 default:
4380 return isc::dhcp::Dhcp6Parser::make_STRING("delegated-len", driver.loc_);
4381 }
4382}
4383 YY_BREAK
4384case 127:
4386#line 1371 "dhcp6_lexer.ll"
4387{
4388 switch(driver.ctx_) {
4390 return isc::dhcp::Dhcp6Parser::make_POOL(driver.loc_);
4391 default:
4392 return isc::dhcp::Dhcp6Parser::make_STRING("pool", driver.loc_);
4393 }
4394}
4395 YY_BREAK
4396case 128:
4398#line 1380 "dhcp6_lexer.ll"
4399{
4400 switch(driver.ctx_) {
4403 return isc::dhcp::Dhcp6Parser::make_POOL_ID(driver.loc_);
4404 default:
4405 return isc::dhcp::Dhcp6Parser::make_STRING("pool-id", driver.loc_);
4406 }
4407}
4408 YY_BREAK
4409case 129:
4411#line 1390 "dhcp6_lexer.ll"
4412{
4413 switch(driver.ctx_) {
4434 default:
4435 return isc::dhcp::Dhcp6Parser::make_STRING("user-context", driver.loc_);
4436 }
4437}
4438 YY_BREAK
4439case 130:
4441#line 1417 "dhcp6_lexer.ll"
4442{
4443 switch(driver.ctx_) {
4463 return isc::dhcp::Dhcp6Parser::make_COMMENT(driver.loc_);
4464 default:
4465 return isc::dhcp::Dhcp6Parser::make_STRING("comment", driver.loc_);
4466 }
4467}
4468 YY_BREAK
4469case 131:
4471#line 1444 "dhcp6_lexer.ll"
4472{
4473 switch(driver.ctx_) {
4475 return isc::dhcp::Dhcp6Parser::make_SUBNET(driver.loc_);
4476 default:
4477 return isc::dhcp::Dhcp6Parser::make_STRING("subnet", driver.loc_);
4478 }
4479}
4480 YY_BREAK
4481case 132:
4483#line 1453 "dhcp6_lexer.ll"
4484{
4485 switch(driver.ctx_) {
4488 return isc::dhcp::Dhcp6Parser::make_INTERFACE(driver.loc_);
4489 default:
4490 return isc::dhcp::Dhcp6Parser::make_STRING("interface", driver.loc_);
4491 }
4492}
4493 YY_BREAK
4494case 133:
4496#line 1463 "dhcp6_lexer.ll"
4497{
4498 switch(driver.ctx_) {
4502 default:
4503 return isc::dhcp::Dhcp6Parser::make_STRING("interface-id", driver.loc_);
4504 }
4505}
4506 YY_BREAK
4507case 134:
4509#line 1473 "dhcp6_lexer.ll"
4510{
4511 switch(driver.ctx_) {
4513 return isc::dhcp::Dhcp6Parser::make_ID(driver.loc_);
4514 default:
4515 return isc::dhcp::Dhcp6Parser::make_STRING("id", driver.loc_);
4516 }
4517}
4518 YY_BREAK
4519case 135:
4521#line 1482 "dhcp6_lexer.ll"
4522{
4523 switch(driver.ctx_) {
4527 default:
4528 return isc::dhcp::Dhcp6Parser::make_STRING("rapid-commit", driver.loc_);
4529 }
4530}
4531 YY_BREAK
4532case 136:
4534#line 1492 "dhcp6_lexer.ll"
4535{
4536 switch(driver.ctx_) {
4541 default:
4542 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-global", driver.loc_);
4543 }
4544}
4545 YY_BREAK
4546case 137:
4548#line 1503 "dhcp6_lexer.ll"
4549{
4550 switch(driver.ctx_) {
4555 default:
4556 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-in-subnet", driver.loc_);
4557 }
4558}
4559 YY_BREAK
4560case 138:
4562#line 1514 "dhcp6_lexer.ll"
4563{
4564 switch(driver.ctx_) {
4569 default:
4570 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-out-of-pool", driver.loc_);
4571 }
4572}
4573 YY_BREAK
4574case 139:
4576#line 1525 "dhcp6_lexer.ll"
4577{
4578 switch(driver.ctx_) {
4581 return isc::dhcp::Dhcp6Parser::make_CODE(driver.loc_);
4582 default:
4583 return isc::dhcp::Dhcp6Parser::make_STRING("code", driver.loc_);
4584 }
4585}
4586 YY_BREAK
4587case 140:
4589#line 1535 "dhcp6_lexer.ll"
4590{
4591 switch(driver.ctx_) {
4593 return isc::dhcp::Dhcp6Parser::make_MAC_SOURCES(driver.loc_);
4594 default:
4595 return isc::dhcp::Dhcp6Parser::make_STRING("mac-sources", driver.loc_);
4596 }
4597}
4598 YY_BREAK
4599case 141:
4601#line 1544 "dhcp6_lexer.ll"
4602{
4603 switch(driver.ctx_) {
4606 default:
4607 return isc::dhcp::Dhcp6Parser::make_STRING("relay-supplied-options", driver.loc_);
4608 }
4609}
4610 YY_BREAK
4611case 142:
4613#line 1553 "dhcp6_lexer.ll"
4614{
4615 switch(driver.ctx_) {
4618 default:
4619 return isc::dhcp::Dhcp6Parser::make_STRING("host-reservation-identifiers", driver.loc_);
4620 }
4621}
4622 YY_BREAK
4623case 143:
4625#line 1562 "dhcp6_lexer.ll"
4626{
4627 switch(driver.ctx_) {
4632 default:
4633 return isc::dhcp::Dhcp6Parser::make_STRING("calculate-tee-times", driver.loc_);
4634 }
4635}
4636 YY_BREAK
4637case 144:
4639#line 1573 "dhcp6_lexer.ll"
4640{
4641 switch(driver.ctx_) {
4645 return isc::dhcp::Dhcp6Parser::make_T1_PERCENT(driver.loc_);
4646 default:
4647 return isc::dhcp::Dhcp6Parser::make_STRING("t1-percent", driver.loc_);
4648 }
4649}
4650 YY_BREAK
4651case 145:
4653#line 1584 "dhcp6_lexer.ll"
4654{
4655 switch(driver.ctx_) {
4659 return isc::dhcp::Dhcp6Parser::make_T2_PERCENT(driver.loc_);
4660 default:
4661 return isc::dhcp::Dhcp6Parser::make_STRING("t2-percent", driver.loc_);
4662 }
4663}
4664 YY_BREAK
4665case 146:
4667#line 1595 "dhcp6_lexer.ll"
4668{
4669 switch(driver.ctx_) {
4674 default:
4675 return isc::dhcp::Dhcp6Parser::make_STRING("cache-threshold", driver.loc_);
4676 }
4677}
4678 YY_BREAK
4679case 147:
4681#line 1606 "dhcp6_lexer.ll"
4682{
4683 switch(driver.ctx_) {
4688 default:
4689 return isc::dhcp::Dhcp6Parser::make_STRING("cache-max-age", driver.loc_);
4690 }
4691}
4692 YY_BREAK
4693case 148:
4695#line 1617 "dhcp6_lexer.ll"
4696{
4697 switch(driver.ctx_) {
4702 default:
4703 return isc::dhcp::Dhcp6Parser::make_STRING("adaptive-lease-time-threshold", driver.loc_);
4704 }
4705}
4706 YY_BREAK
4707case 149:
4709#line 1628 "dhcp6_lexer.ll"
4710{
4711 switch(driver.ctx_) {
4713 return isc::dhcp::Dhcp6Parser::make_LOGGERS(driver.loc_);
4714 default:
4715 return isc::dhcp::Dhcp6Parser::make_STRING("loggers", driver.loc_);
4716 }
4717}
4718 YY_BREAK
4719case 150:
4721#line 1637 "dhcp6_lexer.ll"
4722{
4723 switch(driver.ctx_) {
4726 default:
4727 return isc::dhcp::Dhcp6Parser::make_STRING("output_options", driver.loc_);
4728 }
4729}
4730 YY_BREAK
4731case 151:
4733#line 1646 "dhcp6_lexer.ll"
4734{
4735 switch(driver.ctx_) {
4738 default:
4739 return isc::dhcp::Dhcp6Parser::make_STRING("output-options", driver.loc_);
4740 }
4741}
4742 YY_BREAK
4743case 152:
4745#line 1655 "dhcp6_lexer.ll"
4746{
4747 switch(driver.ctx_) {
4749 return isc::dhcp::Dhcp6Parser::make_OUTPUT(driver.loc_);
4750 default:
4751 return isc::dhcp::Dhcp6Parser::make_STRING("output", driver.loc_);
4752 }
4753}
4754 YY_BREAK
4755case 153:
4757#line 1664 "dhcp6_lexer.ll"
4758{
4759 switch(driver.ctx_) {
4761 return isc::dhcp::Dhcp6Parser::make_FLUSH(driver.loc_);
4762 default:
4763 return isc::dhcp::Dhcp6Parser::make_STRING("flush", driver.loc_);
4764 }
4765}
4766 YY_BREAK
4767case 154:
4769#line 1673 "dhcp6_lexer.ll"
4770{
4771 switch(driver.ctx_) {
4773 return isc::dhcp::Dhcp6Parser::make_MAXSIZE(driver.loc_);
4774 default:
4775 return isc::dhcp::Dhcp6Parser::make_STRING("maxsize", driver.loc_);
4776 }
4777}
4778 YY_BREAK
4779case 155:
4781#line 1682 "dhcp6_lexer.ll"
4782{
4783 switch(driver.ctx_) {
4785 return isc::dhcp::Dhcp6Parser::make_MAXVER(driver.loc_);
4786 default:
4787 return isc::dhcp::Dhcp6Parser::make_STRING("maxver", driver.loc_);
4788 }
4789}
4790 YY_BREAK
4791case 156:
4793#line 1691 "dhcp6_lexer.ll"
4794{
4795 switch(driver.ctx_) {
4797 return isc::dhcp::Dhcp6Parser::make_PATTERN(driver.loc_);
4798 default:
4799 return isc::dhcp::Dhcp6Parser::make_STRING("pattern", driver.loc_);
4800 }
4801}
4802 YY_BREAK
4803case 157:
4805#line 1700 "dhcp6_lexer.ll"
4806{
4807 switch(driver.ctx_) {
4809 return isc::dhcp::Dhcp6Parser::make_DEBUGLEVEL(driver.loc_);
4810 default:
4811 return isc::dhcp::Dhcp6Parser::make_STRING("debuglevel", driver.loc_);
4812 }
4813}
4814 YY_BREAK
4815case 158:
4817#line 1709 "dhcp6_lexer.ll"
4818{
4819 switch(driver.ctx_) {
4821 return isc::dhcp::Dhcp6Parser::make_SEVERITY(driver.loc_);
4822 default:
4823 return isc::dhcp::Dhcp6Parser::make_STRING("severity", driver.loc_);
4824 }
4825}
4826 YY_BREAK
4827case 159:
4829#line 1718 "dhcp6_lexer.ll"
4830{
4831 switch(driver.ctx_) {
4840 default:
4841 return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", driver.loc_);
4842 }
4843}
4844 YY_BREAK
4845case 160:
4847#line 1733 "dhcp6_lexer.ll"
4848{
4849 switch(driver.ctx_) {
4855 default:
4856 return isc::dhcp::Dhcp6Parser::make_STRING("require-client-classes", driver.loc_);
4857 }
4858}
4859 YY_BREAK
4860case 161:
4862#line 1745 "dhcp6_lexer.ll"
4863{
4864 switch(driver.ctx_) {
4870 default:
4871 return isc::dhcp::Dhcp6Parser::make_STRING("evaluate-additional-classes", driver.loc_);
4872 }
4873}
4874 YY_BREAK
4875case 162:
4877#line 1757 "dhcp6_lexer.ll"
4878{
4879 switch(driver.ctx_) {
4886 default:
4887 return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_);
4888 }
4889}
4890 YY_BREAK
4891case 163:
4893#line 1770 "dhcp6_lexer.ll"
4894{
4895 switch(driver.ctx_) {
4897 return isc::dhcp::Dhcp6Parser::make_TEST(driver.loc_);
4898 default:
4899 return isc::dhcp::Dhcp6Parser::make_STRING("test", driver.loc_);
4900 }
4901}
4902 YY_BREAK
4903case 164:
4905#line 1779 "dhcp6_lexer.ll"
4906{
4907 switch(driver.ctx_) {
4910 default:
4911 return isc::dhcp::Dhcp6Parser::make_STRING("template-test", driver.loc_);
4912 }
4913}
4914 YY_BREAK
4915case 165:
4917#line 1788 "dhcp6_lexer.ll"
4918{
4919 switch(driver.ctx_) {
4922 default:
4923 return isc::dhcp::Dhcp6Parser::make_STRING("only-if-required", driver.loc_);
4924 }
4925}
4926 YY_BREAK
4927case 166:
4929#line 1797 "dhcp6_lexer.ll"
4930{
4931 switch(driver.ctx_) {
4934 default:
4935 return isc::dhcp::Dhcp6Parser::make_STRING("only-in-additional-list", driver.loc_);
4936 }
4937}
4938 YY_BREAK
4939case 167:
4941#line 1806 "dhcp6_lexer.ll"
4942{
4943 switch(driver.ctx_) {
4947 default:
4948 return isc::dhcp::Dhcp6Parser::make_STRING("reservations", driver.loc_);
4949 }
4950}
4951 YY_BREAK
4952case 168:
4954#line 1816 "dhcp6_lexer.ll"
4955{
4956 switch(driver.ctx_) {
4960 default:
4961 return isc::dhcp::Dhcp6Parser::make_STRING("ip-addresses", driver.loc_);
4962 }
4963}
4964 YY_BREAK
4965case 169:
4967#line 1826 "dhcp6_lexer.ll"
4968{
4969 switch(driver.ctx_) {
4971 return isc::dhcp::Dhcp6Parser::make_PREFIXES(driver.loc_);
4972 default:
4973 return isc::dhcp::Dhcp6Parser::make_STRING("prefixes", driver.loc_);
4974 }
4975}
4976 YY_BREAK
4977case 170:
4979#line 1835 "dhcp6_lexer.ll"
4980{
4981 switch(driver.ctx_) {
4984 default:
4985 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefixes", driver.loc_);
4986 }
4987}
4988 YY_BREAK
4989case 171:
4991#line 1844 "dhcp6_lexer.ll"
4992{
4993 switch(driver.ctx_) {
4997 return isc::dhcp::Dhcp6Parser::make_DUID(driver.loc_);
4998 default:
4999 return isc::dhcp::Dhcp6Parser::make_STRING("duid", driver.loc_);
5000 }
5001}
5002 YY_BREAK
5003case 172:
5005#line 1855 "dhcp6_lexer.ll"
5006{
5007 switch(driver.ctx_) {
5010 return isc::dhcp::Dhcp6Parser::make_HW_ADDRESS(driver.loc_);
5011 default:
5012 return isc::dhcp::Dhcp6Parser::make_STRING("hw-address", driver.loc_);
5013 }
5014}
5015 YY_BREAK
5016case 173:
5018#line 1865 "dhcp6_lexer.ll"
5019{
5020 switch(driver.ctx_) {
5022 return isc::dhcp::Dhcp6Parser::make_HOSTNAME(driver.loc_);
5023 default:
5024 return isc::dhcp::Dhcp6Parser::make_STRING("hostname", driver.loc_);
5025 }
5026}
5027 YY_BREAK
5028case 174:
5030#line 1874 "dhcp6_lexer.ll"
5031{
5032 switch(driver.ctx_) {
5035 return isc::dhcp::Dhcp6Parser::make_FLEX_ID(driver.loc_);
5036 default:
5037 return isc::dhcp::Dhcp6Parser::make_STRING("flex-id", driver.loc_);
5038 }
5039}
5040 YY_BREAK
5041case 175:
5043#line 1884 "dhcp6_lexer.ll"
5044{
5045 switch(driver.ctx_) {
5048 return isc::dhcp::Dhcp6Parser::make_SPACE(driver.loc_);
5049 default:
5050 return isc::dhcp::Dhcp6Parser::make_STRING("space", driver.loc_);
5051 }
5052}
5053 YY_BREAK
5054case 176:
5056#line 1894 "dhcp6_lexer.ll"
5057{
5058 switch(driver.ctx_) {
5060 return isc::dhcp::Dhcp6Parser::make_CSV_FORMAT(driver.loc_);
5061 default:
5062 return isc::dhcp::Dhcp6Parser::make_STRING("csv-format", driver.loc_);
5063 }
5064}
5065 YY_BREAK
5066case 177:
5068#line 1903 "dhcp6_lexer.ll"
5069{
5070 switch(driver.ctx_) {
5073 default:
5074 return isc::dhcp::Dhcp6Parser::make_STRING("record-types", driver.loc_);
5075 }
5076}
5077 YY_BREAK
5078case 178:
5080#line 1912 "dhcp6_lexer.ll"
5081{
5082 switch(driver.ctx_) {
5084 return isc::dhcp::Dhcp6Parser::make_ENCAPSULATE(driver.loc_);
5085 default:
5086 return isc::dhcp::Dhcp6Parser::make_STRING("encapsulate", driver.loc_);
5087 }
5088}
5089 YY_BREAK
5090case 179:
5092#line 1921 "dhcp6_lexer.ll"
5093{
5094 switch(driver.ctx_) {
5096 return isc::dhcp::Dhcp6Parser::make_ARRAY(driver.loc_);
5097 default:
5098 return isc::dhcp::Dhcp6Parser::make_STRING("array", driver.loc_);
5099 }
5100}
5101 YY_BREAK
5102case 180:
5104#line 1930 "dhcp6_lexer.ll"
5105{
5106 switch(driver.ctx_) {
5109 return isc::dhcp::Dhcp6Parser::make_RELAY(driver.loc_);
5110 default:
5111 return isc::dhcp::Dhcp6Parser::make_STRING("relay", driver.loc_);
5112 }
5113}
5114 YY_BREAK
5115case 181:
5117#line 1940 "dhcp6_lexer.ll"
5118{
5119 switch(driver.ctx_) {
5122 default:
5123 return isc::dhcp::Dhcp6Parser::make_STRING("hooks-libraries", driver.loc_);
5124 }
5125}
5126 YY_BREAK
5127case 182:
5129#line 1949 "dhcp6_lexer.ll"
5130{
5131 switch(driver.ctx_) {
5133 return isc::dhcp::Dhcp6Parser::make_PARAMETERS(driver.loc_);
5134 default:
5135 return isc::dhcp::Dhcp6Parser::make_STRING("parameters", driver.loc_);
5136 }
5137}
5138 YY_BREAK
5139case 183:
5141#line 1958 "dhcp6_lexer.ll"
5142{
5143 switch(driver.ctx_) {
5145 return isc::dhcp::Dhcp6Parser::make_LIBRARY(driver.loc_);
5146 default:
5147 return isc::dhcp::Dhcp6Parser::make_STRING("library", driver.loc_);
5148 }
5149}
5150 YY_BREAK
5151case 184:
5153#line 1967 "dhcp6_lexer.ll"
5154{
5155 switch(driver.ctx_) {
5157 return isc::dhcp::Dhcp6Parser::make_SERVER_ID(driver.loc_);
5158 default:
5159 return isc::dhcp::Dhcp6Parser::make_STRING("server-id", driver.loc_);
5160 }
5161}
5162 YY_BREAK
5163case 185:
5165#line 1976 "dhcp6_lexer.ll"
5166{
5167 switch(driver.ctx_) {
5169 return isc::dhcp::Dhcp6Parser::make_LLT(driver.loc_);
5170 default:
5171 return isc::dhcp::Dhcp6Parser::make_STRING("LLT", driver.loc_);
5172 }
5173}
5174 YY_BREAK
5175case 186:
5177#line 1985 "dhcp6_lexer.ll"
5178{
5179 switch(driver.ctx_) {
5181 return isc::dhcp::Dhcp6Parser::make_EN(driver.loc_);
5182 default:
5183 return isc::dhcp::Dhcp6Parser::make_STRING("EN", driver.loc_);
5184 }
5185}
5186 YY_BREAK
5187case 187:
5189#line 1994 "dhcp6_lexer.ll"
5190{
5191 switch(driver.ctx_) {
5193 return isc::dhcp::Dhcp6Parser::make_LL(driver.loc_);
5194 default:
5195 return isc::dhcp::Dhcp6Parser::make_STRING("LL", driver.loc_);
5196 }
5197}
5198 YY_BREAK
5199case 188:
5201#line 2003 "dhcp6_lexer.ll"
5202{
5203 switch(driver.ctx_) {
5205 return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(driver.loc_);
5206 default:
5207 return isc::dhcp::Dhcp6Parser::make_STRING("identifier", driver.loc_);
5208 }
5209}
5210 YY_BREAK
5211case 189:
5213#line 2012 "dhcp6_lexer.ll"
5214{
5215 switch(driver.ctx_) {
5217 return isc::dhcp::Dhcp6Parser::make_HTYPE(driver.loc_);
5218 default:
5219 return isc::dhcp::Dhcp6Parser::make_STRING("htype", driver.loc_);
5220 }
5221}
5222 YY_BREAK
5223case 190:
5225#line 2021 "dhcp6_lexer.ll"
5226{
5227 switch(driver.ctx_) {
5229 return isc::dhcp::Dhcp6Parser::make_TIME(driver.loc_);
5230 default:
5231 return isc::dhcp::Dhcp6Parser::make_STRING("time", driver.loc_);
5232 }
5233}
5234 YY_BREAK
5235case 191:
5237#line 2030 "dhcp6_lexer.ll"
5238{
5239 switch(driver.ctx_) {
5242 default:
5243 return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", driver.loc_);
5244 }
5245}
5246 YY_BREAK
5247case 192:
5249#line 2039 "dhcp6_lexer.ll"
5250{
5251 switch(driver.ctx_) {
5254 default:
5255 return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", driver.loc_);
5256 }
5257}
5258 YY_BREAK
5259case 193:
5261#line 2048 "dhcp6_lexer.ll"
5262{
5263 switch(driver.ctx_) {
5266 default:
5267 return isc::dhcp::Dhcp6Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
5268 }
5269}
5270 YY_BREAK
5271case 194:
5273#line 2057 "dhcp6_lexer.ll"
5274{
5275 switch(driver.ctx_) {
5278 default:
5279 return isc::dhcp::Dhcp6Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
5280 }
5281}
5282 YY_BREAK
5283case 195:
5285#line 2066 "dhcp6_lexer.ll"
5286{
5287 switch(driver.ctx_) {
5290 default:
5291 return isc::dhcp::Dhcp6Parser::make_STRING("hold-reclaimed-time", driver.loc_);
5292 }
5293}
5294 YY_BREAK
5295case 196:
5297#line 2075 "dhcp6_lexer.ll"
5298{
5299 switch(driver.ctx_) {
5302 default:
5303 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-leases", driver.loc_);
5304 }
5305}
5306 YY_BREAK
5307case 197:
5309#line 2084 "dhcp6_lexer.ll"
5310{
5311 switch(driver.ctx_) {
5314 default:
5315 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-time", driver.loc_);
5316 }
5317}
5318 YY_BREAK
5319case 198:
5321#line 2093 "dhcp6_lexer.ll"
5322{
5323 switch(driver.ctx_) {
5326 default:
5327 return isc::dhcp::Dhcp6Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
5328 }
5329}
5330 YY_BREAK
5331case 199:
5333#line 2102 "dhcp6_lexer.ll"
5334{
5335 switch(driver.ctx_) {
5338 default:
5339 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp4o6-port", driver.loc_);
5340 }
5341}
5342 YY_BREAK
5343case 200:
5345#line 2111 "dhcp6_lexer.ll"
5346{
5347 switch(driver.ctx_) {
5350 default:
5351 return isc::dhcp::Dhcp6Parser::make_STRING("multi-threading", driver.loc_);
5352 }
5353}
5354 YY_BREAK
5355case 201:
5357#line 2120 "dhcp6_lexer.ll"
5358{
5359 switch(driver.ctx_) {
5362 default:
5363 return isc::dhcp::Dhcp6Parser::make_STRING("enable-multi-threading", driver.loc_);
5364 }
5365}
5366 YY_BREAK
5367case 202:
5369#line 2129 "dhcp6_lexer.ll"
5370{
5371 switch(driver.ctx_) {
5374 default:
5375 return isc::dhcp::Dhcp6Parser::make_STRING("thread-pool-size", driver.loc_);
5376 }
5377}
5378 YY_BREAK
5379case 203:
5381#line 2138 "dhcp6_lexer.ll"
5382{
5383 switch(driver.ctx_) {
5386 default:
5387 return isc::dhcp::Dhcp6Parser::make_STRING("packet-queue-size", driver.loc_);
5388 }
5389}
5390 YY_BREAK
5391case 204:
5393#line 2147 "dhcp6_lexer.ll"
5394{
5395 switch(driver.ctx_) {
5398 default:
5399 return isc::dhcp::Dhcp6Parser::make_STRING("control-socket", driver.loc_);
5400 }
5401}
5402 YY_BREAK
5403case 205:
5405#line 2156 "dhcp6_lexer.ll"
5406{
5407 switch(driver.ctx_) {
5410 default:
5411 return isc::dhcp::Dhcp6Parser::make_STRING("control-sockets", driver.loc_);
5412 }
5413}
5414 YY_BREAK
5415case 206:
5417#line 2165 "dhcp6_lexer.ll"
5418{
5419 switch(driver.ctx_) {
5421 return isc::dhcp::Dhcp6Parser::make_SOCKET_TYPE(driver.loc_);
5422 default:
5423 return isc::dhcp::Dhcp6Parser::make_STRING("socket-type", driver.loc_);
5424 }
5425}
5426 YY_BREAK
5427case 207:
5429#line 2174 "dhcp6_lexer.ll"
5430{
5431 switch(driver.ctx_) {
5433 return isc::dhcp::Dhcp6Parser::make_UNIX(driver.loc_);
5434 default:
5435 return isc::dhcp::Dhcp6Parser::make_STRING("unix", driver.loc_);
5436 }
5437}
5438 YY_BREAK
5439case 208:
5441#line 2183 "dhcp6_lexer.ll"
5442{
5443 switch(driver.ctx_) {
5445 return isc::dhcp::Dhcp6Parser::make_HTTP(driver.loc_);
5446 default:
5447 return isc::dhcp::Dhcp6Parser::make_STRING("http", driver.loc_);
5448 }
5449}
5450 YY_BREAK
5451case 209:
5453#line 2192 "dhcp6_lexer.ll"
5454{
5455 switch(driver.ctx_) {
5457 return isc::dhcp::Dhcp6Parser::make_HTTPS(driver.loc_);
5458 default:
5459 return isc::dhcp::Dhcp6Parser::make_STRING("https", driver.loc_);
5460 }
5461}
5462 YY_BREAK
5463case 210:
5465#line 2201 "dhcp6_lexer.ll"
5466{
5467 switch(driver.ctx_) {
5469 return isc::dhcp::Dhcp6Parser::make_SOCKET_NAME(driver.loc_);
5470 default:
5471 return isc::dhcp::Dhcp6Parser::make_STRING("socket-name", driver.loc_);
5472 }
5473}
5474 YY_BREAK
5475case 211:
5477#line 2210 "dhcp6_lexer.ll"
5478{
5479 switch(driver.ctx_) {
5482 default:
5483 return isc::dhcp::Dhcp6Parser::make_STRING("socket-address", driver.loc_);
5484 }
5485}
5486 YY_BREAK
5487case 212:
5489#line 2219 "dhcp6_lexer.ll"
5490{
5491 switch(driver.ctx_) {
5493 return isc::dhcp::Dhcp6Parser::make_SOCKET_PORT(driver.loc_);
5494 default:
5495 return isc::dhcp::Dhcp6Parser::make_STRING("socket-port", driver.loc_);
5496 }
5497}
5498 YY_BREAK
5499case 213:
5501#line 2228 "dhcp6_lexer.ll"
5502{
5503 switch(driver.ctx_) {
5506 default:
5507 return isc::dhcp::Dhcp6Parser::make_STRING("authentication", driver.loc_);
5508 }
5509}
5510 YY_BREAK
5511case 214:
5513#line 2237 "dhcp6_lexer.ll"
5514{
5515 switch(driver.ctx_) {
5517 return isc::dhcp::Dhcp6Parser::make_BASIC(driver.loc_);
5518 default:
5519 return isc::dhcp::Dhcp6Parser::make_STRING("basic", driver.loc_);
5520 }
5521}
5522 YY_BREAK
5523case 215:
5525#line 2246 "dhcp6_lexer.ll"
5526{
5527 switch(driver.ctx_) {
5529 return isc::dhcp::Dhcp6Parser::make_REALM(driver.loc_);
5530 default:
5531 return isc::dhcp::Dhcp6Parser::make_STRING("realm", driver.loc_);
5532 }
5533}
5534 YY_BREAK
5535case 216:
5537#line 2255 "dhcp6_lexer.ll"
5538{
5539 switch(driver.ctx_) {
5541 return isc::dhcp::Dhcp6Parser::make_DIRECTORY(driver.loc_);
5542 default:
5543 return isc::dhcp::Dhcp6Parser::make_STRING("directory", driver.loc_);
5544 }
5545}
5546 YY_BREAK
5547case 217:
5549#line 2264 "dhcp6_lexer.ll"
5550{
5551 switch(driver.ctx_) {
5553 return isc::dhcp::Dhcp6Parser::make_CLIENTS(driver.loc_);
5554 default:
5555 return isc::dhcp::Dhcp6Parser::make_STRING("clients", driver.loc_);
5556 }
5557}
5558 YY_BREAK
5559case 218:
5561#line 2273 "dhcp6_lexer.ll"
5562{
5563 switch(driver.ctx_) {
5565 return isc::dhcp::Dhcp6Parser::make_USER_FILE(driver.loc_);
5566 default:
5567 return isc::dhcp::Dhcp6Parser::make_STRING("user-file", driver.loc_);
5568 }
5569}
5570 YY_BREAK
5571case 219:
5573#line 2282 "dhcp6_lexer.ll"
5574{
5575 switch(driver.ctx_) {
5578 default:
5579 return isc::dhcp::Dhcp6Parser::make_STRING("password-file", driver.loc_);
5580 }
5581}
5582 YY_BREAK
5583case 220:
5585#line 2291 "dhcp6_lexer.ll"
5586{
5587 switch(driver.ctx_) {
5590 default:
5591 return isc::dhcp::Dhcp6Parser::make_STRING("cert-required", driver.loc_);
5592 }
5593}
5594 YY_BREAK
5595case 221:
5597#line 2300 "dhcp6_lexer.ll"
5598{
5599 switch(driver.ctx_) {
5602 default:
5603 return isc::dhcp::Dhcp6Parser::make_STRING("http-headers", driver.loc_);
5604 }
5605}
5606 YY_BREAK
5607case 222:
5609#line 2309 "dhcp6_lexer.ll"
5610{
5611 switch(driver.ctx_) {
5613 return isc::dhcp::Dhcp6Parser::make_VALUE(driver.loc_);
5614 default:
5615 return isc::dhcp::Dhcp6Parser::make_STRING("value", driver.loc_);
5616 }
5617}
5618 YY_BREAK
5619case 223:
5621#line 2318 "dhcp6_lexer.ll"
5622{
5623 switch(driver.ctx_) {
5626 default:
5627 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-queue-control", driver.loc_);
5628 }
5629}
5630 YY_BREAK
5631case 224:
5633#line 2327 "dhcp6_lexer.ll"
5634{
5635 switch(driver.ctx_) {
5638 default:
5639 return isc::dhcp::Dhcp6Parser::make_STRING("enable-queue", driver.loc_);
5640 }
5641}
5642 YY_BREAK
5643case 225:
5645#line 2336 "dhcp6_lexer.ll"
5646{
5647 switch(driver.ctx_) {
5649 return isc::dhcp::Dhcp6Parser::make_QUEUE_TYPE(driver.loc_);
5650 default:
5651 return isc::dhcp::Dhcp6Parser::make_STRING("queue-type", driver.loc_);
5652 }
5653}
5654 YY_BREAK
5655case 226:
5657#line 2345 "dhcp6_lexer.ll"
5658{
5659 switch(driver.ctx_) {
5661 return isc::dhcp::Dhcp6Parser::make_CAPACITY(driver.loc_);
5662 default:
5663 return isc::dhcp::Dhcp6Parser::make_STRING("capacity", driver.loc_);
5664 }
5665}
5666 YY_BREAK
5667case 227:
5669#line 2354 "dhcp6_lexer.ll"
5670{
5671 switch(driver.ctx_) {
5673 return isc::dhcp::Dhcp6Parser::make_DHCP_DDNS(driver.loc_);
5674 default:
5675 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-ddns", driver.loc_);
5676 }
5677}
5678 YY_BREAK
5679case 228:
5681#line 2363 "dhcp6_lexer.ll"
5682{
5683 switch(driver.ctx_) {
5686 default:
5687 return isc::dhcp::Dhcp6Parser::make_STRING("early-global-reservations-lookup", driver.loc_);
5688 }
5689}
5690 YY_BREAK
5691case 229:
5693#line 2372 "dhcp6_lexer.ll"
5694{
5695 switch(driver.ctx_) {
5698 default:
5699 return isc::dhcp::Dhcp6Parser::make_STRING("ip-reservations-unique", driver.loc_);
5700 }
5701}
5702 YY_BREAK
5703case 230:
5705#line 2381 "dhcp6_lexer.ll"
5706{
5707 switch(driver.ctx_) {
5710 default:
5711 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-lookup-first", driver.loc_);
5712 }
5713}
5714 YY_BREAK
5715case 231:
5717#line 2390 "dhcp6_lexer.ll"
5718{
5719 switch(driver.ctx_) {
5722 default:
5723 return isc::dhcp::Dhcp6Parser::make_STRING("allow-address-registration", driver.loc_);
5724 }
5725}
5726 YY_BREAK
5727case 232:
5729#line 2399 "dhcp6_lexer.ll"
5730{
5731 switch(driver.ctx_) {
5734 default:
5735 return isc::dhcp::Dhcp6Parser::make_STRING("compatibility", driver.loc_);
5736 }
5737}
5738 YY_BREAK
5739case 233:
5741#line 2408 "dhcp6_lexer.ll"
5742{
5743 switch(driver.ctx_) {
5746 default:
5747 return isc::dhcp::Dhcp6Parser::make_STRING("lenient-option-parsing", driver.loc_);
5748 }
5749}
5750 YY_BREAK
5751case 234:
5753#line 2417 "dhcp6_lexer.ll"
5754{
5755 /* A string has been matched. It contains the actual string and single quotes.
5756 We need to get those quotes out of the way and just use its content, e.g.
5757 for 'foo' we should get foo */
5758 std::string raw(yytext+1);
5759 size_t len = raw.size() - 1;
5760 raw.resize(len);
5761 std::string decoded;
5762 decoded.reserve(len);
5763 for (size_t pos = 0; pos < len; ++pos) {
5764 int b = 0;
5765 char c = raw[pos];
5766 switch (c) {
5767 case '"':
5768 /* impossible condition */
5769 driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
5770 break;
5771 case '\\':
5772 ++pos;
5773 if (pos >= len) {
5774 /* impossible condition */
5775 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
5776 }
5777 c = raw[pos];
5778 switch (c) {
5779 case '"':
5780 case '\\':
5781 case '/':
5782 decoded.push_back(c);
5783 break;
5784 case 'b':
5785 decoded.push_back('\b');
5786 break;
5787 case 'f':
5788 decoded.push_back('\f');
5789 break;
5790 case 'n':
5791 decoded.push_back('\n');
5792 break;
5793 case 'r':
5794 decoded.push_back('\r');
5795 break;
5796 case 't':
5797 decoded.push_back('\t');
5798 break;
5799 case 'u':
5800 /* support only \u0000 to \u00ff */
5801 ++pos;
5802 if (pos + 4 > len) {
5803 /* impossible condition */
5804 driver.error(driver.loc_,
5805 "Overflow unicode escape in \"" + raw + "\"");
5806 }
5807 if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
5808 driver.error(driver.loc_,
5809 "Unsupported unicode escape in \"" + raw + "\"",
5810 pos + 1);
5811 }
5812 pos += 2;
5813 c = raw[pos];
5814 if ((c >= '0') && (c <= '9')) {
5815 b = (c - '0') << 4;
5816 } else if ((c >= 'A') && (c <= 'F')) {
5817 b = (c - 'A' + 10) << 4;
5818 } else if ((c >= 'a') && (c <= 'f')) {
5819 b = (c - 'a' + 10) << 4;
5820 } else {
5821 /* impossible condition */
5822 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5823 }
5824 pos++;
5825 c = raw[pos];
5826 if ((c >= '0') && (c <= '9')) {
5827 b |= c - '0';
5828 } else if ((c >= 'A') && (c <= 'F')) {
5829 b |= c - 'A' + 10;
5830 } else if ((c >= 'a') && (c <= 'f')) {
5831 b |= c - 'a' + 10;
5832 } else {
5833 /* impossible condition */
5834 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5835 }
5836 decoded.push_back(static_cast<char>(b & 0xff));
5837 break;
5838 default:
5839 /* impossible condition */
5840 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5841 }
5842 break;
5843 default:
5844 if ((c >= 0) && (c < 0x20)) {
5845 /* impossible condition */
5846 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5847 }
5848 decoded.push_back(c);
5849 }
5850 }
5851
5852 return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
5853}
5854 YY_BREAK
5855case 235:
5856/* rule 235 can match eol */
5858#line 2518 "dhcp6_lexer.ll"
5859{
5860 /* Bad string with a forbidden control character inside */
5861 std::string raw(yytext+1);
5862 size_t len = raw.size() - 1;
5863 size_t pos = 0;
5864 for (; pos < len; ++pos) {
5865 char c = raw[pos];
5866 if ((c >= 0) && (c < 0x20)) {
5867 break;
5868 }
5869 }
5870 driver.error(driver.loc_,
5871 "Invalid control in " + std::string(yytext),
5872 pos + 1);
5873}
5874 YY_BREAK
5875case 236:
5876/* rule 236 can match eol */
5878#line 2534 "dhcp6_lexer.ll"
5879{
5880 /* Bad string with a bad escape inside */
5881 std::string raw(yytext+1);
5882 size_t len = raw.size() - 1;
5883 size_t pos = 0;
5884 bool found = false;
5885 for (; pos < len; ++pos) {
5886 if (found) {
5887 break;
5888 }
5889 char c = raw[pos];
5890 if (c == '\\') {
5891 ++pos;
5892 c = raw[pos];
5893 switch (c) {
5894 case '"':
5895 case '\\':
5896 case '/':
5897 case 'b':
5898 case 'f':
5899 case 'n':
5900 case 'r':
5901 case 't':
5902 break;
5903 case 'u':
5904 if ((pos + 4 > len) ||
5905 !std::isxdigit(raw[pos + 1]) ||
5906 !std::isxdigit(raw[pos + 2]) ||
5907 !std::isxdigit(raw[pos + 3]) ||
5908 !std::isxdigit(raw[pos + 4])) {
5909 found = true;
5910 }
5911 break;
5912 default:
5913 found = true;
5914 break;
5915 }
5916 }
5917 }
5918 /* The rule stops on the first " including on \" so add ... in this case */
5919 std::string trailer = "";
5920 if (raw[len - 1] == '\\') {
5921 trailer = "...";
5922 }
5923 driver.error(driver.loc_,
5924 "Bad escape in " + std::string(yytext) + trailer,
5925 pos);
5926}
5927 YY_BREAK
5928case 237:
5930#line 2583 "dhcp6_lexer.ll"
5931{
5932 /* Bad string with an open escape at the end */
5933 std::string raw(yytext+1);
5934 driver.error(driver.loc_,
5935 "Overflow escape in " + std::string(yytext),
5936 raw.size() + 1);
5937}
5938 YY_BREAK
5939case 238:
5941#line 2591 "dhcp6_lexer.ll"
5942{
5943 /* Bad string with an open unicode escape at the end */
5944 std::string raw(yytext+1);
5945 size_t pos = raw.size() - 1;
5946 for (; pos > 0; --pos) {
5947 char c = raw[pos];
5948 if (c == 'u') {
5949 break;
5950 }
5951 }
5952 driver.error(driver.loc_,
5953 "Overflow unicode escape in " + std::string(yytext),
5954 pos + 1);
5955}
5956 YY_BREAK
5957case 239:
5959#line 2606 "dhcp6_lexer.ll"
5960{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
5961 YY_BREAK
5962case 240:
5964#line 2607 "dhcp6_lexer.ll"
5965{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
5966 YY_BREAK
5967case 241:
5969#line 2608 "dhcp6_lexer.ll"
5970{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
5971 YY_BREAK
5972case 242:
5974#line 2609 "dhcp6_lexer.ll"
5975{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
5976 YY_BREAK
5977case 243:
5979#line 2610 "dhcp6_lexer.ll"
5980{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
5981 YY_BREAK
5982case 244:
5984#line 2611 "dhcp6_lexer.ll"
5985{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
5986 YY_BREAK
5987case 245:
5989#line 2613 "dhcp6_lexer.ll"
5990{
5991 /* Integer with leading zeros. */
5992 std::string tmp(yytext);
5993 int64_t integer = 0;
5994 try {
5995 /* In substring we want to use negative values (e.g. -1).
5996 In enterprise-id we need to use values up to 0xffffffff.
5997 To cover both of those use cases, we need at least
5998 int64_t. */
5999 integer = boost::lexical_cast<int64_t>(tmp);
6000 } catch (const boost::bad_lexical_cast &) {
6001 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
6002 }
6003
6004 driver.warning(driver.loc_, "leading zeros in integers will be deprecated.");
6005
6006 return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
6007}
6008 YY_BREAK
6009case 246:
6011#line 2632 "dhcp6_lexer.ll"
6012{
6013 /* An integer was found. */
6014 std::string tmp(yytext);
6015 int64_t integer = 0;
6016 try {
6017 /* In substring we want to use negative values (e.g. -1).
6018 In enterprise-id we need to use values up to 0xffffffff.
6019 To cover both of those use cases, we need at least
6020 int64_t. */
6021 integer = boost::lexical_cast<int64_t>(tmp);
6022 } catch (const boost::bad_lexical_cast &) {
6023 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
6024 }
6025
6026 return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
6027}
6028 YY_BREAK
6029case 247:
6031#line 2649 "dhcp6_lexer.ll"
6032{
6033 /* A plus sign was found */
6034 std::string tmp(yytext);
6035 driver.error(driver.loc_, "Deprecated plus sign in " + tmp + " number.");
6036}
6037 YY_BREAK
6038case 248:
6040#line 2655 "dhcp6_lexer.ll"
6041{
6042 /* Floating point with leading zeros. */
6043 std::string tmp(yytext);
6044 double fp = 0.0;
6045 try {
6046 fp = boost::lexical_cast<double>(tmp);
6047 } catch (const boost::bad_lexical_cast &) {
6048 driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
6049 }
6050
6051 driver.warning(driver.loc_, "leading zeros in numbers will be deprecated.");
6052
6053 return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
6054}
6055 YY_BREAK
6056case 249:
6058#line 2670 "dhcp6_lexer.ll"
6059{
6060 /* A floating point was found. */
6061 std::string tmp(yytext);
6062 double fp = 0.0;
6063 try {
6064 fp = boost::lexical_cast<double>(tmp);
6065 } catch (const boost::bad_lexical_cast &) {
6066 driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
6067 }
6068
6069 return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
6070}
6071 YY_BREAK
6072case 250:
6074#line 2683 "dhcp6_lexer.ll"
6075{
6076 string tmp(yytext);
6077 return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
6078}
6079 YY_BREAK
6080case 251:
6082#line 2688 "dhcp6_lexer.ll"
6083{
6084 return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
6085}
6086 YY_BREAK
6087case 252:
6089#line 2692 "dhcp6_lexer.ll"
6090driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
6091 YY_BREAK
6092case 253:
6094#line 2694 "dhcp6_lexer.ll"
6095driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
6096 YY_BREAK
6097case 254:
6099#line 2696 "dhcp6_lexer.ll"
6100driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
6101 YY_BREAK
6102case 255:
6104#line 2698 "dhcp6_lexer.ll"
6105driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
6106 YY_BREAK
6107case YY_STATE_EOF(INITIAL):
6108#line 2700 "dhcp6_lexer.ll"
6109{
6110 if (driver.states_.empty()) {
6111 return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
6112 }
6113 driver.loc_ = driver.locs_.back();
6114 driver.locs_.pop_back();
6115 driver.file_ = driver.files_.back();
6116 driver.files_.pop_back();
6117 if (driver.sfile_) {
6118 fclose(driver.sfile_);
6119 driver.sfile_ = 0;
6120 }
6121 if (!driver.sfiles_.empty()) {
6122 driver.sfile_ = driver.sfiles_.back();
6123 driver.sfiles_.pop_back();
6124 }
6125 parser6__delete_buffer(YY_CURRENT_BUFFER);
6126 parser6__switch_to_buffer(driver.states_.back());
6127 driver.states_.pop_back();
6128
6129 BEGIN(DIR_EXIT);
6130}
6131 YY_BREAK
6132case 256:
6134#line 2723 "dhcp6_lexer.ll"
6135ECHO;
6136 YY_BREAK
6137#line 6137 "dhcp6_lexer.cc"
6138
6139 case YY_END_OF_BUFFER:
6140 {
6141 /* Amount of text matched not including the EOB char. */
6142 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
6143
6144 /* Undo the effects of YY_DO_BEFORE_ACTION. */
6145 *yy_cp = (yy_hold_char);
6147
6148 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
6149 {
6150 /* We're scanning a new file or input source. It's
6151 * possible that this happened because the user
6152 * just pointed yyin at a new source and called
6153 * yylex(). If so, then we have to assure
6154 * consistency between YY_CURRENT_BUFFER and our
6155 * globals. Here is the right place to do so, because
6156 * this is the first action (other than possibly a
6157 * back-up) that will match for the new input source.
6158 */
6159 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6160/* %if-c-only */
6161 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
6162/* %endif */
6163/* %if-c++-only */
6164/* %endif */
6165 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
6166 }
6167
6168 /* Note that here we test for yy_c_buf_p "<=" to the position
6169 * of the first EOB in the buffer, since yy_c_buf_p will
6170 * already have been incremented past the NUL character
6171 * (since all states make transitions on EOB to the
6172 * end-of-buffer state). Contrast this with the test
6173 * in input().
6174 */
6175 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6176 { /* This was really a NUL. */
6177 yy_state_type yy_next_state;
6178
6179 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
6180
6181 yy_current_state = yy_get_previous_state( );
6182
6183 /* Okay, we're now positioned to make the NUL
6184 * transition. We couldn't have
6185 * yy_get_previous_state() go ahead and do it
6186 * for us because it doesn't know how to deal
6187 * with the possibility of jamming (and we don't
6188 * want to build jamming into it because then it
6189 * will run more slowly).
6190 */
6191
6192 yy_next_state = yy_try_NUL_trans( yy_current_state );
6193
6195
6196 if ( yy_next_state )
6197 {
6198 /* Consume the NUL. */
6199 yy_cp = ++(yy_c_buf_p);
6200 yy_current_state = yy_next_state;
6201 goto yy_match;
6202 }
6203
6204 else
6205 {
6206/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
6207 yy_cp = (yy_last_accepting_cpos);
6208 yy_current_state = (yy_last_accepting_state);
6209 goto yy_find_action;
6210 }
6211 }
6212
6213 else switch ( yy_get_next_buffer( ) )
6214 {
6216 {
6217 (yy_did_buffer_switch_on_eof) = 0;
6218
6219 if ( yywrap( ) )
6220 {
6221 /* Note: because we've taken care in
6222 * yy_get_next_buffer() to have set up
6223 * yytext, we can now set up
6224 * yy_c_buf_p so that if some total
6225 * hoser (like flex itself) wants to
6226 * call the scanner after we return the
6227 * YY_NULL, it'll still work - another
6228 * YY_NULL will get returned.
6229 */
6230 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
6231
6233 goto do_action;
6234 }
6235
6236 else
6237 {
6238 if ( ! (yy_did_buffer_switch_on_eof) )
6240 }
6241 break;
6242 }
6243
6245 (yy_c_buf_p) =
6246 (yytext_ptr) + yy_amount_of_matched_text;
6247
6248 yy_current_state = yy_get_previous_state( );
6249
6250 yy_cp = (yy_c_buf_p);
6252 goto yy_match;
6253
6254 case EOB_ACT_LAST_MATCH:
6255 (yy_c_buf_p) =
6256 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
6257
6258 yy_current_state = yy_get_previous_state( );
6259
6260 yy_cp = (yy_c_buf_p);
6262 goto yy_find_action;
6263 }
6264 break;
6265 }
6266
6267 default:
6269 "fatal flex scanner internal error--no action found" );
6270 } /* end of action switch */
6271 } /* end of scanning one token */
6272 } /* end of user's declarations */
6273} /* end of yylex */
6274/* %ok-for-header */
6275
6276/* %if-c++-only */
6277/* %not-for-header */
6278/* %ok-for-header */
6279
6280/* %endif */
6281
6282/* yy_get_next_buffer - try to read in a new buffer
6283 *
6284 * Returns a code representing an action:
6285 * EOB_ACT_LAST_MATCH -
6286 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
6287 * EOB_ACT_END_OF_FILE - end of file
6288 */
6289/* %if-c-only */
6290static int yy_get_next_buffer (void)
6291/* %endif */
6292/* %if-c++-only */
6293/* %endif */
6294{
6295 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
6296 char *source = (yytext_ptr);
6297 int number_to_move, i;
6298 int ret_val;
6299
6300 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
6302 "fatal flex scanner internal error--end of buffer missed" );
6303
6304 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
6305 { /* Don't try to fill the buffer, so this is an EOF. */
6306 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
6307 {
6308 /* We matched a single character, the EOB, so
6309 * treat this as a final EOF.
6310 */
6311 return EOB_ACT_END_OF_FILE;
6312 }
6313
6314 else
6315 {
6316 /* We matched some text prior to the EOB, first
6317 * process it.
6318 */
6319 return EOB_ACT_LAST_MATCH;
6320 }
6321 }
6322
6323 /* Try to read more data. */
6324
6325 /* First move last chars to start of buffer. */
6326 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
6327
6328 for ( i = 0; i < number_to_move; ++i )
6329 *(dest++) = *(source++);
6330
6331 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
6332 /* don't do the read, it's not guaranteed to return an EOF,
6333 * just force an EOF
6334 */
6335 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
6336
6337 else
6338 {
6339 int num_to_read =
6340 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
6341
6342 while ( num_to_read <= 0 )
6343 { /* Not enough room in the buffer - grow it. */
6344
6345 /* just a shorter name for the current buffer */
6347
6348 int yy_c_buf_p_offset =
6349 (int) ((yy_c_buf_p) - b->yy_ch_buf);
6350
6351 if ( b->yy_is_our_buffer )
6352 {
6353 int new_size = b->yy_buf_size * 2;
6354
6355 if ( new_size <= 0 )
6356 b->yy_buf_size += b->yy_buf_size / 8;
6357 else
6358 b->yy_buf_size *= 2;
6359
6360 b->yy_ch_buf = (char *)
6361 /* Include room in for 2 EOB chars. */
6362 yyrealloc( (void *) b->yy_ch_buf,
6363 (yy_size_t) (b->yy_buf_size + 2) );
6364 }
6365 else
6366 /* Can't grow it, we don't own it. */
6367 b->yy_ch_buf = NULL;
6368
6369 if ( ! b->yy_ch_buf )
6371 "fatal error - scanner input buffer overflow" );
6372
6373 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
6374
6375 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
6376 number_to_move - 1;
6377
6378 }
6379
6380 if ( num_to_read > YY_READ_BUF_SIZE )
6381 num_to_read = YY_READ_BUF_SIZE;
6382
6383 /* Read in more data. */
6384 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
6385 (yy_n_chars), num_to_read );
6386
6387 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6388 }
6389
6390 if ( (yy_n_chars) == 0 )
6391 {
6392 if ( number_to_move == YY_MORE_ADJ )
6393 {
6394 ret_val = EOB_ACT_END_OF_FILE;
6395 yyrestart( yyin );
6396 }
6397
6398 else
6399 {
6400 ret_val = EOB_ACT_LAST_MATCH;
6401 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
6403 }
6404 }
6405
6406 else
6407 ret_val = EOB_ACT_CONTINUE_SCAN;
6408
6409 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
6410 /* Extend the array by 50%, plus the number we really need. */
6411 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
6412 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
6413 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
6414 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
6415 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
6416 /* "- 2" to take care of EOB's */
6417 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
6418 }
6419
6420 (yy_n_chars) += number_to_move;
6421 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
6422 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
6423
6424 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
6425
6426 return ret_val;
6427}
6428
6429/* yy_get_previous_state - get the state just before the EOB char was reached */
6430
6431/* %if-c-only */
6432/* %not-for-header */
6433 static yy_state_type yy_get_previous_state (void)
6434/* %endif */
6435/* %if-c++-only */
6436/* %endif */
6437{
6438 yy_state_type yy_current_state;
6439 char *yy_cp;
6440
6441/* %% [15.0] code to get the start state into yy_current_state goes here */
6442 yy_current_state = (yy_start);
6443
6444 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
6445 {
6446/* %% [16.0] code to find the next state goes here */
6447 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
6448 if ( yy_accept[yy_current_state] )
6449 {
6450 (yy_last_accepting_state) = yy_current_state;
6451 (yy_last_accepting_cpos) = yy_cp;
6452 }
6453 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6454 {
6455 yy_current_state = (int) yy_def[yy_current_state];
6456 if ( yy_current_state >= 2426 )
6457 yy_c = yy_meta[yy_c];
6458 }
6459 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6460 }
6461
6462 return yy_current_state;
6463}
6464
6465/* yy_try_NUL_trans - try to make a transition on the NUL character
6466 *
6467 * synopsis
6468 * next_state = yy_try_NUL_trans( current_state );
6469 */
6470/* %if-c-only */
6471 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
6472/* %endif */
6473/* %if-c++-only */
6474/* %endif */
6475{
6476 int yy_is_jam;
6477 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
6478 char *yy_cp = (yy_c_buf_p);
6479
6480 YY_CHAR yy_c = 1;
6481 if ( yy_accept[yy_current_state] )
6482 {
6483 (yy_last_accepting_state) = yy_current_state;
6484 (yy_last_accepting_cpos) = yy_cp;
6485 }
6486 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6487 {
6488 yy_current_state = (int) yy_def[yy_current_state];
6489 if ( yy_current_state >= 2426 )
6490 yy_c = yy_meta[yy_c];
6491 }
6492 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6493 yy_is_jam = (yy_current_state == 2425);
6494
6495 return yy_is_jam ? 0 : yy_current_state;
6496}
6497
6498#ifndef YY_NO_UNPUT
6499/* %if-c-only */
6500
6501/* %endif */
6502#endif
6503
6504/* %if-c-only */
6505#ifndef YY_NO_INPUT
6506#ifdef __cplusplus
6507 static int yyinput (void)
6508#else
6509 static int input (void)
6510#endif
6511
6512/* %endif */
6513/* %if-c++-only */
6514/* %endif */
6515{
6516 int c;
6517
6518 *(yy_c_buf_p) = (yy_hold_char);
6519
6520 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
6521 {
6522 /* yy_c_buf_p now points to the character we want to return.
6523 * If this occurs *before* the EOB characters, then it's a
6524 * valid NUL; if not, then we've hit the end of the buffer.
6525 */
6526 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6527 /* This was really a NUL. */
6528 *(yy_c_buf_p) = '\0';
6529
6530 else
6531 { /* need more input */
6532 int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
6533 ++(yy_c_buf_p);
6534
6535 switch ( yy_get_next_buffer( ) )
6536 {
6537 case EOB_ACT_LAST_MATCH:
6538 /* This happens because yy_g_n_b()
6539 * sees that we've accumulated a
6540 * token and flags that we need to
6541 * try matching the token before
6542 * proceeding. But for input(),
6543 * there's no matching to consider.
6544 * So convert the EOB_ACT_LAST_MATCH
6545 * to EOB_ACT_END_OF_FILE.
6546 */
6547
6548 /* Reset buffer status. */
6549 yyrestart( yyin );
6550
6551 /*FALLTHROUGH*/
6552
6554 {
6555 if ( yywrap( ) )
6556 return 0;
6557
6558 if ( ! (yy_did_buffer_switch_on_eof) )
6560#ifdef __cplusplus
6561 return yyinput();
6562#else
6563 return input();
6564#endif
6565 }
6566
6568 (yy_c_buf_p) = (yytext_ptr) + offset;
6569 break;
6570 }
6571 }
6572 }
6573
6574 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
6575 *(yy_c_buf_p) = '\0'; /* preserve yytext */
6576 (yy_hold_char) = *++(yy_c_buf_p);
6577
6578/* %% [19.0] update BOL and yylineno */
6579
6580 return c;
6581}
6582/* %if-c-only */
6583#endif /* ifndef YY_NO_INPUT */
6584/* %endif */
6585
6591/* %if-c-only */
6592 void yyrestart (FILE * input_file )
6593/* %endif */
6594/* %if-c++-only */
6595/* %endif */
6596{
6597
6598 if ( ! YY_CURRENT_BUFFER ){
6602 }
6603
6604 yy_init_buffer( YY_CURRENT_BUFFER, input_file );
6606}
6607
6608/* %if-c++-only */
6609/* %endif */
6610
6615/* %if-c-only */
6617/* %endif */
6618/* %if-c++-only */
6619/* %endif */
6620{
6621
6622 /* TODO. We should be able to replace this entire function body
6623 * with
6624 * yypop_buffer_state();
6625 * yypush_buffer_state(new_buffer);
6626 */
6628 if ( YY_CURRENT_BUFFER == new_buffer )
6629 return;
6630
6631 if ( YY_CURRENT_BUFFER )
6632 {
6633 /* Flush out information for old buffer. */
6634 *(yy_c_buf_p) = (yy_hold_char);
6635 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6636 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6637 }
6638
6639 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6641
6642 /* We don't actually know whether we did this switch during
6643 * EOF (yywrap()) processing, but the only time this flag
6644 * is looked at is after yywrap() is called, so it's safe
6645 * to go ahead and always set it.
6646 */
6647 (yy_did_buffer_switch_on_eof) = 1;
6648}
6649
6650/* %if-c-only */
6651static void yy_load_buffer_state (void)
6652/* %endif */
6653/* %if-c++-only */
6654/* %endif */
6655{
6656 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6657 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6658/* %if-c-only */
6659 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6660/* %endif */
6661/* %if-c++-only */
6662/* %endif */
6663 (yy_hold_char) = *(yy_c_buf_p);
6664}
6665
6672/* %if-c-only */
6674/* %endif */
6675/* %if-c++-only */
6676/* %endif */
6677{
6679
6680 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6681 if ( ! b )
6682 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6683
6684 b->yy_buf_size = size;
6685
6686 /* yy_ch_buf has to be 2 characters longer than the size given because
6687 * we need to put in 2 end-of-buffer characters.
6688 */
6689 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
6690 if ( ! b->yy_ch_buf )
6691 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6692
6693 b->yy_is_our_buffer = 1;
6694
6695 yy_init_buffer( b, file );
6696
6697 return b;
6698}
6699
6700/* %if-c++-only */
6701/* %endif */
6702
6707/* %if-c-only */
6709/* %endif */
6710/* %if-c++-only */
6711/* %endif */
6712{
6713
6714 if ( ! b )
6715 return;
6716
6717 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6719
6720 if ( b->yy_is_our_buffer )
6721 yyfree( (void *) b->yy_ch_buf );
6722
6723 yyfree( (void *) b );
6724}
6725
6726/* Initializes or reinitializes a buffer.
6727 * This function is sometimes called more than once on the same buffer,
6728 * such as during a yyrestart() or at EOF.
6729 */
6730/* %if-c-only */
6731 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
6732/* %endif */
6733/* %if-c++-only */
6734/* %endif */
6735
6736{
6737 int oerrno = errno;
6738
6739 yy_flush_buffer( b );
6740
6741/* %if-c-only */
6742 b->yy_input_file = file;
6743/* %endif */
6744/* %if-c++-only */
6745/* %endif */
6746 b->yy_fill_buffer = 1;
6747
6748 /* If b is the current buffer, then yy_init_buffer was _probably_
6749 * called from yyrestart() or through yy_get_next_buffer.
6750 * In that case, we don't want to reset the lineno or column.
6751 */
6752 if (b != YY_CURRENT_BUFFER){
6753 b->yy_bs_lineno = 1;
6754 b->yy_bs_column = 0;
6755 }
6756
6757/* %if-c-only */
6758
6759 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
6760
6761/* %endif */
6762/* %if-c++-only */
6763/* %endif */
6764 errno = oerrno;
6765}
6766
6771/* %if-c-only */
6773/* %endif */
6774/* %if-c++-only */
6775/* %endif */
6776{
6777 if ( ! b )
6778 return;
6779
6780 b->yy_n_chars = 0;
6781
6782 /* We always need two end-of-buffer characters. The first causes
6783 * a transition to the end-of-buffer state. The second causes
6784 * a jam in that state.
6785 */
6788
6789 b->yy_buf_pos = &b->yy_ch_buf[0];
6790
6791 b->yy_at_bol = 1;
6793
6794 if ( b == YY_CURRENT_BUFFER )
6796}
6797
6798/* %if-c-or-c++ */
6805/* %if-c-only */
6807/* %endif */
6808/* %if-c++-only */
6809/* %endif */
6810{
6811 if (new_buffer == NULL)
6812 return;
6813
6815
6816 /* This block is copied from yy_switch_to_buffer. */
6817 if ( YY_CURRENT_BUFFER )
6818 {
6819 /* Flush out information for old buffer. */
6820 *(yy_c_buf_p) = (yy_hold_char);
6821 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6822 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6823 }
6824
6825 /* Only push if top exists. Otherwise, replace top. */
6827 (yy_buffer_stack_top)++;
6828 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6829
6830 /* copied from yy_switch_to_buffer. */
6832 (yy_did_buffer_switch_on_eof) = 1;
6833}
6834/* %endif */
6835
6836/* %if-c-or-c++ */
6841/* %if-c-only */
6843/* %endif */
6844/* %if-c++-only */
6845/* %endif */
6846{
6847 if (!YY_CURRENT_BUFFER)
6848 return;
6849
6852 if ((yy_buffer_stack_top) > 0)
6853 --(yy_buffer_stack_top);
6854
6855 if (YY_CURRENT_BUFFER) {
6857 (yy_did_buffer_switch_on_eof) = 1;
6858 }
6859}
6860/* %endif */
6861
6862/* %if-c-or-c++ */
6863/* Allocates the stack if it does not exist.
6864 * Guarantees space for at least one push.
6865 */
6866/* %if-c-only */
6867static void yyensure_buffer_stack (void)
6868/* %endif */
6869/* %if-c++-only */
6870/* %endif */
6871{
6872 yy_size_t num_to_alloc;
6873
6874 if (!(yy_buffer_stack)) {
6875
6876 /* First allocation is just for 2 elements, since we don't know if this
6877 * scanner will even need a stack. We use 2 instead of 1 to avoid an
6878 * immediate realloc on the next call.
6879 */
6880 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
6881 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
6882 (num_to_alloc * sizeof(struct yy_buffer_state*)
6883 );
6884 if ( ! (yy_buffer_stack) )
6885 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6886
6887 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6888
6889 (yy_buffer_stack_max) = num_to_alloc;
6890 (yy_buffer_stack_top) = 0;
6891 return;
6892 }
6893
6894 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6895
6896 /* Increase the buffer to prepare for a possible push. */
6897 yy_size_t grow_size = 8 /* arbitrary grow size */;
6898
6899 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6900 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
6901 ((yy_buffer_stack),
6902 num_to_alloc * sizeof(struct yy_buffer_state*)
6903 );
6904 if ( ! (yy_buffer_stack) )
6905 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6906
6907 /* zero only the new slots.*/
6908 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6909 (yy_buffer_stack_max) = num_to_alloc;
6910 }
6911}
6912/* %endif */
6913
6914/* %if-c-only */
6922{
6924
6925 if ( size < 2 ||
6926 base[size-2] != YY_END_OF_BUFFER_CHAR ||
6927 base[size-1] != YY_END_OF_BUFFER_CHAR )
6928 /* They forgot to leave room for the EOB's. */
6929 return NULL;
6930
6931 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6932 if ( ! b )
6933 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
6934
6935 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
6936 b->yy_buf_pos = b->yy_ch_buf = base;
6937 b->yy_is_our_buffer = 0;
6938 b->yy_input_file = NULL;
6939 b->yy_n_chars = b->yy_buf_size;
6940 b->yy_is_interactive = 0;
6941 b->yy_at_bol = 1;
6942 b->yy_fill_buffer = 0;
6944
6946
6947 return b;
6948}
6949/* %endif */
6950
6951/* %if-c-only */
6960YY_BUFFER_STATE yy_scan_string (const char * yystr )
6961{
6962
6963 return yy_scan_bytes( yystr, (int) strlen(yystr) );
6964}
6965/* %endif */
6966
6967/* %if-c-only */
6975YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
6976{
6978 char *buf;
6979 yy_size_t n;
6980 int i;
6981
6982 /* Get memory for full buffer, including space for trailing EOB's. */
6983 n = (yy_size_t) (_yybytes_len + 2);
6984 buf = (char *) yyalloc( n );
6985 if ( ! buf )
6986 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
6987
6988 for ( i = 0; i < _yybytes_len; ++i )
6989 buf[i] = yybytes[i];
6990
6991 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6992
6993 b = yy_scan_buffer( buf, n );
6994 if ( ! b )
6995 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
6996
6997 /* It's okay to grow etc. this buffer, and we should throw it
6998 * away when we're done.
6999 */
7000 b->yy_is_our_buffer = 1;
7001
7002 return b;
7003}
7004/* %endif */
7005
7006#ifndef YY_EXIT_FAILURE
7007#define YY_EXIT_FAILURE 2
7008#endif
7009
7010/* %if-c-only */
7011static void yynoreturn yy_fatal_error (const char* msg )
7012{
7013 fprintf( stderr, "%s\n", msg );
7014 exit( YY_EXIT_FAILURE );
7015}
7016/* %endif */
7017/* %if-c++-only */
7018/* %endif */
7019
7020/* Redefine yyless() so it works in section 3 code. */
7021
7022#undef yyless
7023#define yyless(n) \
7024 do \
7025 { \
7026 /* Undo effects of setting up yytext. */ \
7027 int yyless_macro_arg = (n); \
7028 YY_LESS_LINENO(yyless_macro_arg);\
7029 yytext[yyleng] = (yy_hold_char); \
7030 (yy_c_buf_p) = yytext + yyless_macro_arg; \
7031 (yy_hold_char) = *(yy_c_buf_p); \
7032 *(yy_c_buf_p) = '\0'; \
7033 yyleng = yyless_macro_arg; \
7034 } \
7035 while ( 0 )
7036
7037/* Accessor methods (get/set functions) to struct members. */
7038
7039/* %if-c-only */
7040/* %if-reentrant */
7041/* %endif */
7042
7047{
7048
7049 return yylineno;
7050}
7051
7055FILE *yyget_in (void)
7056{
7057 return yyin;
7058}
7059
7063FILE *yyget_out (void)
7064{
7065 return yyout;
7066}
7067
7071int yyget_leng (void)
7072{
7073 return yyleng;
7074}
7075
7079
7080char *yyget_text (void)
7081{
7082 return yytext;
7083}
7084
7085/* %if-reentrant */
7086/* %endif */
7087
7092void yyset_lineno (int _line_number )
7093{
7094
7095 yylineno = _line_number;
7096}
7097
7104void yyset_in (FILE * _in_str )
7105{
7106 yyin = _in_str ;
7107}
7108
7109void yyset_out (FILE * _out_str )
7110{
7111 yyout = _out_str ;
7112}
7113
7114int yyget_debug (void)
7115{
7116 return yy_flex_debug;
7117}
7118
7119void yyset_debug (int _bdebug )
7120{
7121 yy_flex_debug = _bdebug ;
7122}
7123
7124/* %endif */
7125
7126/* %if-reentrant */
7127/* %if-bison-bridge */
7128/* %endif */
7129/* %endif if-c-only */
7130
7131/* %if-c-only */
7132static int yy_init_globals (void)
7133{
7134 /* Initialization is the same as for the non-reentrant scanner.
7135 * This function is called from yylex_destroy(), so don't allocate here.
7136 */
7137
7138 (yy_buffer_stack) = NULL;
7139 (yy_buffer_stack_top) = 0;
7140 (yy_buffer_stack_max) = 0;
7141 (yy_c_buf_p) = NULL;
7142 (yy_init) = 0;
7143 (yy_start) = 0;
7144
7145/* Defined in main.c */
7146#ifdef YY_STDINIT
7147 yyin = stdin;
7148 yyout = stdout;
7149#else
7150 yyin = NULL;
7151 yyout = NULL;
7152#endif
7153
7154 /* For future reference: Set errno on error, since we are called by
7155 * yylex_init()
7156 */
7157 return 0;
7158}
7159/* %endif */
7160
7161/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
7162/* yylex_destroy is for both reentrant and non-reentrant scanners. */
7164{
7165
7166 /* Pop the buffer stack, destroying each element. */
7167 while(YY_CURRENT_BUFFER){
7171 }
7172
7173 /* Destroy the stack itself. */
7174 yyfree((yy_buffer_stack) );
7175 (yy_buffer_stack) = NULL;
7176
7177 /* Reset the globals. This is important in a non-reentrant scanner so the next time
7178 * yylex() is called, initialization will occur. */
7179 yy_init_globals( );
7180
7181/* %if-reentrant */
7182/* %endif */
7183 return 0;
7184}
7185/* %endif */
7186
7187/*
7188 * Internal utility routines.
7189 */
7190
7191#ifndef yytext_ptr
7192static void yy_flex_strncpy (char* s1, const char * s2, int n )
7193{
7194
7195 int i;
7196 for ( i = 0; i < n; ++i )
7197 s1[i] = s2[i];
7198}
7199#endif
7200
7201#ifdef YY_NEED_STRLEN
7202static int yy_flex_strlen (const char * s )
7203{
7204 int n;
7205 for ( n = 0; s[n]; ++n )
7206 ;
7207
7208 return n;
7209}
7210#endif
7211
7212void *yyalloc (yy_size_t size )
7213{
7214 return malloc(size);
7215}
7216
7217void *yyrealloc (void * ptr, yy_size_t size )
7218{
7219
7220 /* The cast to (char *) in the following accommodates both
7221 * implementations that use char* generic pointers, and those
7222 * that use void* generic pointers. It works with the latter
7223 * because both ANSI C and C++ allow castless assignment from
7224 * any pointer type to void*, and deal with argument conversions
7225 * as though doing an assignment.
7226 */
7227 return realloc(ptr, size);
7228}
7229
7230void yyfree (void * ptr )
7231{
7232 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
7233}
7234
7235/* %if-tables-serialization definitions */
7236/* %define-yytables The name for this specific scanner's tables. */
7237#define YYTABLES_NAME "yytables"
7238/* %endif */
7239
7240/* %ok-for-header */
7241
7242#line 2723 "dhcp6_lexer.ll"
7243
7244
7245using namespace isc::dhcp;
7246
7247void
7248Parser6Context::scanStringBegin(const std::string& str, ParserType parser_type)
7249{
7250 start_token_flag = true;
7251 start_token_value = parser_type;
7252
7253 file_ = "<string>";
7254 sfile_ = 0;
7255 loc_.initialize(&file_);
7256 yy_flex_debug = trace_scanning_;
7257 YY_BUFFER_STATE buffer;
7258 buffer = parser6__scan_bytes(str.c_str(), str.size());
7259 if (!buffer) {
7260 fatal("cannot scan string");
7261 /* fatal() throws an exception so this can't be reached */
7262 }
7263}
7264
7265void
7267 const std::string& filename,
7268 ParserType parser_type)
7269{
7270 start_token_flag = true;
7271 start_token_value = parser_type;
7272
7273 file_ = filename;
7274 sfile_ = f;
7275 loc_.initialize(&file_);
7276 yy_flex_debug = trace_scanning_;
7277 YY_BUFFER_STATE buffer;
7278
7279 /* See dhcp6_lexer.cc header for available definitions */
7280 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
7281 if (!buffer) {
7282 fatal("cannot scan file " + filename);
7283 }
7284 parser6__switch_to_buffer(buffer);
7285}
7286
7287void
7289 if (sfile_)
7290 fclose(sfile_);
7291 sfile_ = 0;
7292 static_cast<void>(parser6_lex_destroy());
7293 /* Close files */
7294 while (!sfiles_.empty()) {
7295 FILE* f = sfiles_.back();
7296 if (f) {
7297 fclose(f);
7298 }
7299 sfiles_.pop_back();
7300 }
7301 /* Delete states */
7302 while (!states_.empty()) {
7303 parser6__delete_buffer(states_.back());
7304 states_.pop_back();
7305 }
7306}
7307
7308void
7309Parser6Context::includeFile(const std::string& filename) {
7310 if (states_.size() > 10) {
7311 fatal("Too many nested include.");
7312 }
7313
7314 FILE* f = fopen(filename.c_str(), "r");
7315 if (!f) {
7316 fatal("Can't open include file " + filename);
7317 }
7318 if (sfile_) {
7319 sfiles_.push_back(sfile_);
7320 }
7321 sfile_ = f;
7322 states_.push_back(YY_CURRENT_BUFFER);
7323 YY_BUFFER_STATE buffer;
7324 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
7325 if (!buffer) {
7326 fatal( "Can't scan include file " + filename);
7327 }
7328 parser6__switch_to_buffer(buffer);
7329 files_.push_back(file_);
7330 file_ = filename;
7331 locs_.push_back(loc_);
7332 loc_.initialize(&file_);
7333
7334 BEGIN(INITIAL);
7335}
7336
7337namespace {
7339class Dummy {
7340 /* cppcheck-suppress unusedPrivateFunction */
7341 void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
7342};
7343}
7344#endif /* !__clang_analyzer__ */
7345
Evaluation error exception raised when trying to parse.
static symbol_type make_ADAPTIVE_LEASE_TIME_THRESHOLD(const location_type &l)
static symbol_type make_SUB_RESERVATION(const location_type &l)
static symbol_type make_EXCLUDED_PREFIXES(const location_type &l)
static symbol_type make_NAME(const location_type &l)
static symbol_type make_CIPHER_LIST(const location_type &l)
static symbol_type make_SUB_HOOKS_LIBRARY(const location_type &l)
static symbol_type make_WHEN_PRESENT(const location_type &l)
static symbol_type make_COMMENT(const location_type &l)
static symbol_type make_LENIENT_OPTION_PARSING(const location_type &l)
static symbol_type make_VALUE(const location_type &l)
static symbol_type make_SENDER_PORT(const location_type &l)
static symbol_type make_CODE(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_AGE(const location_type &l)
static symbol_type make_CACHE_THRESHOLD(const location_type &l)
static symbol_type make_ALLOCATOR(const location_type &l)
static symbol_type make_DHCP6(const location_type &l)
static symbol_type make_PASSWORD_FILE(const location_type &l)
static symbol_type make_DIRECTORY(const location_type &l)
static symbol_type make_VERIFY_CA(const location_type &l)
static symbol_type make_HOSTS_DATABASE(const location_type &l)
static symbol_type make_DDNS_CONFLICT_RESOLUTION_MODE(const location_type &l)
static symbol_type make_SERVICE_SOCKETS_REQUIRE_ALL(const location_type &l)
static symbol_type make_USER_CONTEXT(const location_type &l)
static symbol_type make_ENTERPRISE_ID(const location_type &l)
static symbol_type make_COMMA(const location_type &l)
static symbol_type make_DHCP_DDNS(const location_type &l)
static symbol_type make_MAX_RECLAIM_TIME(const location_type &l)
static symbol_type make_SOCKET_NAME(const location_type &l)
static symbol_type make_NCR_FORMAT(const location_type &l)
static symbol_type make_RESERVATIONS_OUT_OF_POOL(const location_type &l)
static symbol_type make_NCR_PROTOCOL(const location_type &l)
static symbol_type make_HTTPS(const location_type &l)
static symbol_type make_FLOAT(const double &v, const location_type &l)
static symbol_type make_EN(const location_type &l)
static symbol_type make_ARRAY(const location_type &l)
static symbol_type make_DDNS_QUALIFYING_SUFFIX(const location_type &l)
static symbol_type make_COLON(const location_type &l)
static symbol_type make_RETRY_ON_STARTUP(const location_type &l)
static symbol_type make_SUB_DHCP6(const location_type &l)
static symbol_type make_ONLY_IN_ADDITIONAL_LIST(const location_type &l)
static symbol_type make_RE_DETECT(const location_type &l)
static symbol_type make_DELEGATED_LEN(const location_type &l)
static symbol_type make_THREAD_POOL_SIZE(const location_type &l)
static symbol_type make_INTERFACE_ID(const location_type &l)
static symbol_type make_RESERVATIONS_LOOKUP_FIRST(const location_type &l)
static symbol_type make_HOSTNAME(const location_type &l)
static symbol_type make_DATA_DIRECTORY(const location_type &l)
static symbol_type make_MAX_QUEUE_SIZE(const location_type &l)
static symbol_type make_SUB_POOL6(const location_type &l)
static symbol_type make_SUB_DHCP_DDNS(const location_type &l)
static symbol_type make_SUB_CONFIG_CONTROL(const location_type &l)
static symbol_type make_DDNS_SEND_UPDATES(const location_type &l)
static symbol_type make_IP_ADDRESSES(const location_type &l)
static symbol_type make_EVALUATE_ADDITIONAL_CLASSES(const location_type &l)
static symbol_type make_POOLS(const location_type &l)
static symbol_type make_PREFIX(const location_type &l)
static symbol_type make_ID(const location_type &l)
static symbol_type make_MAXVER(const location_type &l)
static symbol_type make_RESERVATIONS(const location_type &l)
static symbol_type make_REQUIRE(const location_type &l)
static symbol_type make_DATA(const location_type &l)
static symbol_type make_INTERFACES(const location_type &l)
static symbol_type make_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_SERVER_IP(const location_type &l)
static symbol_type make_PATTERN(const location_type &l)
static symbol_type make_MAXSIZE(const location_type &l)
static symbol_type make_VERIFY_FULL(const location_type &l)
static symbol_type make_POOL_ID(const location_type &l)
static symbol_type make_HOST_RESERVATION_IDENTIFIERS(const location_type &l)
static symbol_type make_OPTION_DATA(const location_type &l)
static symbol_type make_SUBNET6(const location_type &l)
static symbol_type make_PD_POOLS(const location_type &l)
static symbol_type make_RCURLY_BRACKET(const location_type &l)
static symbol_type make_TEMPLATE_TEST(const location_type &l)
static symbol_type make_MAX_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_TRUST_ANCHOR(const location_type &l)
static symbol_type make_PORT(const location_type &l)
static symbol_type make_AUTHENTICATION(const location_type &l)
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_ENABLE_UPDATES(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_REPLACEMENT(const location_type &l)
static symbol_type make_NULL_TYPE(const location_type &l)
static symbol_type make_MAX_RECONNECT_TRIES(const location_type &l)
static symbol_type make_MAX_VALID_LIFETIME(const location_type &l)
static symbol_type make_TIME(const location_type &l)
static symbol_type make_SOCKET_TYPE(const location_type &l)
static symbol_type make_CHECK_WITH_DHCID(const location_type &l)
static symbol_type make_SUB_INTERFACES6(const location_type &l)
static symbol_type make_JSON(const location_type &l)
static symbol_type make_MIN_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_LLT(const location_type &l)
static symbol_type make_READ_TIMEOUT(const location_type &l)
static symbol_type make_CERT_FILE(const location_type &l)
static symbol_type make_HTTP(const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
static symbol_type make_FLEX_ID(const location_type &l)
static symbol_type make_REQUIRE_CLIENT_CLASSES(const location_type &l)
static symbol_type make_DDNS_TTL(const location_type &l)
static symbol_type make_SERVER_PORT(const location_type &l)
static symbol_type make_ONLY_IF_REQUIRED(const location_type &l)
static symbol_type make_SHARED_NETWORKS(const location_type &l)
static symbol_type make_DDNS_REPLACE_CLIENT_NAME(const location_type &l)
static symbol_type make_HTTP_HEADERS(const location_type &l)
static symbol_type make_USER_FILE(const location_type &l)
static symbol_type make_SUB_OPTION_DATA(const location_type &l)
static symbol_type make_OPTION_DEF(const location_type &l)
static symbol_type make_TCP_USER_TIMEOUT(const location_type &l)
static symbol_type make_UNIX(const location_type &l)
static symbol_type make_DDNS_GENERATED_PREFIX(const location_type &l)
static symbol_type make_ALWAYS_SEND(const location_type &l)
static symbol_type make_CLIENT_CLASS(const location_type &l)
static symbol_type make_NEVER_SEND(const location_type &l)
static symbol_type make_IP_RESERVATIONS_UNIQUE(const location_type &l)
static symbol_type make_PARKED_PACKET_LIMIT(const location_type &l)
static symbol_type make_LFC_INTERVAL(const location_type &l)
static symbol_type make_USER(const location_type &l)
static symbol_type make_SUBNET(const location_type &l)
static symbol_type make_RECORD_TYPES(const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
static symbol_type make_RECONNECT_WAIT_TIME(const location_type &l)
static symbol_type make_SUB_SUBNET6(const location_type &l)
static symbol_type make_EXPIRED_LEASES_PROCESSING(const location_type &l)
static symbol_type make_EXCLUDED_PREFIX(const location_type &l)
static symbol_type make_ALWAYS(const location_type &l)
static symbol_type make_HOSTS_DATABASES(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
static symbol_type make_DDNS_USE_CONFLICT_RESOLUTION(const location_type &l)
static symbol_type make_ALLOW_ADDRESS_REGISTRATION(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_NEW_FILE
Definition d2_lexer.cc:424
unsigned char flex_uint8_t
Definition d2_lexer.cc:335
#define COMMENT
Definition d2_lexer.cc:1272
#define yyleng
Definition d2_lexer.cc:26
#define YY_EXTRA_TYPE
Definition d2_lexer.cc:1290
#define DIR_INCLUDE
Definition d2_lexer.cc:1274
#define yyout
Definition d2_lexer.cc:29
short int flex_int16_t
Definition d2_lexer.cc:333
#define yytext
Definition d2_lexer.cc:31
unsigned int flex_uint32_t
Definition d2_lexer.cc:337
#define YY_BREAK
Definition d2_lexer.cc:1499
#define yynoreturn
Definition d2_lexer.cc:388
int yy_act
Definition d2_lexer.cc:1513
struct yy_buffer_state * YY_BUFFER_STATE
Definition d2_lexer.cc:446
#define YY_BUFFER_NEW
Definition d2_lexer.cc:539
#define YY_RESTORE_YY_MORE_OFFSET
Definition d2_lexer.cc:1196
#define yylineno
Definition d2_lexer.cc:28
#define YY_BUFFER_NORMAL
Definition d2_lexer.cc:540
char * yy_cp
Definition d2_lexer.cc:1512
#define YY_MORE_ADJ
Definition d2_lexer.cc:1195
#define YY_RULE_SETUP
Definition d2_lexer.cc:1503
#define yy_flex_debug
Definition d2_lexer.cc:24
#define DIR_EXIT
Definition d2_lexer.cc:1275
#define yytext_ptr
Definition d2_lexer.cc:669
signed char flex_int8_t
Definition d2_lexer.cc:332
#define EOB_ACT_END_OF_FILE
Definition d2_lexer.cc:465
#define YY_CURRENT_BUFFER_LVALUE
Definition d2_lexer.cc:581
int flex_int32_t
Definition d2_lexer.cc:334
#define yyin
Definition d2_lexer.cc:25
#define YY_START
Definition d2_lexer.cc:419
int yy_state_type
Definition d2_lexer.cc:660
#define YY_CURRENT_BUFFER
Definition d2_lexer.cc:575
#define INITIAL
Definition d2_lexer.cc:1271
char * yy_bp
Definition d2_lexer.cc:1512
#define YY_READ_BUF_SIZE
Definition d2_lexer.cc:1387
#define ECHO
Definition d2_lexer.cc:1397
#define YY_END_OF_BUFFER
Definition d2_lexer.cc:695
#define BEGIN
Definition d2_lexer.cc:414
#define YY_END_OF_BUFFER_CHAR
Definition d2_lexer.cc:425
unsigned short int flex_uint16_t
Definition d2_lexer.cc:336
flex_uint8_t YY_CHAR
Definition d2_lexer.cc:656
#define YY_DO_BEFORE_ACTION
Definition d2_lexer.cc:685
#define EOB_ACT_LAST_MATCH
Definition d2_lexer.cc:466
size_t yy_size_t
Definition d2_lexer.cc:451
#define YY_BUFFER_EOF_PENDING
Definition d2_lexer.cc:551
#define EOB_ACT_CONTINUE_SCAN
Definition d2_lexer.cc:464
#define YY_DECL
Definition d2_lexer.cc:1484
#define YY_BUF_SIZE
Definition d2_lexer.cc:436
#define YY_EXIT_FAILURE
Definition d2_lexer.cc:3758
#define DIR_ENTER
Definition d2_lexer.cc:1273
#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:123
int yy_bs_column
The column count.
Definition d2_lexer.cc:530
FILE * yy_input_file
Definition d2_lexer.cc:491
int yy_bs_lineno
The line count.
Definition d2_lexer.cc:529
char * yy_buf_pos
Definition d2_lexer.cc:498
flex_int32_t yy_verify
Definition d2_lexer.cc:700