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