Kea 1.9.11
dhcp6_lexer.cc
Go to the documentation of this file.
1#line 1 "dhcp6_lexer.cc"
2
3#line 3 "dhcp6_lexer.cc"
4
5#define YY_INT_ALIGNED short int
6
7/* A lexical scanner generated by flex */
8
9/* %not-for-header */
10/* %if-c-only */
11/* %if-not-reentrant */
12#define yy_create_buffer parser6__create_buffer
13#define yy_delete_buffer parser6__delete_buffer
14#define yy_scan_buffer parser6__scan_buffer
15#define yy_scan_string parser6__scan_string
16#define yy_scan_bytes parser6__scan_bytes
17#define yy_init_buffer parser6__init_buffer
18#define yy_flush_buffer parser6__flush_buffer
19#define yy_load_buffer_state parser6__load_buffer_state
20#define yy_switch_to_buffer parser6__switch_to_buffer
21#define yypush_buffer_state parser6_push_buffer_state
22#define yypop_buffer_state parser6_pop_buffer_state
23#define yyensure_buffer_stack parser6_ensure_buffer_stack
24#define yy_flex_debug parser6__flex_debug
25#define yyin parser6_in
26#define yyleng parser6_leng
27#define yylex parser6_lex
28#define yylineno parser6_lineno
29#define yyout parser6_out
30#define yyrestart parser6_restart
31#define yytext parser6_text
32#define yywrap parser6_wrap
33#define yyalloc parser6_alloc
34#define yyrealloc parser6_realloc
35#define yyfree parser6_free
36
37/* %endif */
38/* %endif */
39/* %ok-for-header */
40
41#define FLEX_SCANNER
42#define YY_FLEX_MAJOR_VERSION 2
43#define YY_FLEX_MINOR_VERSION 6
44#define YY_FLEX_SUBMINOR_VERSION 4
45#if YY_FLEX_SUBMINOR_VERSION > 0
46#define FLEX_BETA
47#endif
48
49/* %if-c++-only */
50/* %endif */
51
52/* %if-c-only */
53#ifdef yy_create_buffer
54#define parser6__create_buffer_ALREADY_DEFINED
55#else
56#define yy_create_buffer parser6__create_buffer
57#endif
58
59#ifdef yy_delete_buffer
60#define parser6__delete_buffer_ALREADY_DEFINED
61#else
62#define yy_delete_buffer parser6__delete_buffer
63#endif
64
65#ifdef yy_scan_buffer
66#define parser6__scan_buffer_ALREADY_DEFINED
67#else
68#define yy_scan_buffer parser6__scan_buffer
69#endif
70
71#ifdef yy_scan_string
72#define parser6__scan_string_ALREADY_DEFINED
73#else
74#define yy_scan_string parser6__scan_string
75#endif
76
77#ifdef yy_scan_bytes
78#define parser6__scan_bytes_ALREADY_DEFINED
79#else
80#define yy_scan_bytes parser6__scan_bytes
81#endif
82
83#ifdef yy_init_buffer
84#define parser6__init_buffer_ALREADY_DEFINED
85#else
86#define yy_init_buffer parser6__init_buffer
87#endif
88
89#ifdef yy_flush_buffer
90#define parser6__flush_buffer_ALREADY_DEFINED
91#else
92#define yy_flush_buffer parser6__flush_buffer
93#endif
94
95#ifdef yy_load_buffer_state
96#define parser6__load_buffer_state_ALREADY_DEFINED
97#else
98#define yy_load_buffer_state parser6__load_buffer_state
99#endif
100
101#ifdef yy_switch_to_buffer
102#define parser6__switch_to_buffer_ALREADY_DEFINED
103#else
104#define yy_switch_to_buffer parser6__switch_to_buffer
105#endif
106
107#ifdef yypush_buffer_state
108#define parser6_push_buffer_state_ALREADY_DEFINED
109#else
110#define yypush_buffer_state parser6_push_buffer_state
111#endif
112
113#ifdef yypop_buffer_state
114#define parser6_pop_buffer_state_ALREADY_DEFINED
115#else
116#define yypop_buffer_state parser6_pop_buffer_state
117#endif
118
119#ifdef yyensure_buffer_stack
120#define parser6_ensure_buffer_stack_ALREADY_DEFINED
121#else
122#define yyensure_buffer_stack parser6_ensure_buffer_stack
123#endif
124
125#ifdef yylex
126#define parser6_lex_ALREADY_DEFINED
127#else
128#define yylex parser6_lex
129#endif
130
131#ifdef yyrestart
132#define parser6_restart_ALREADY_DEFINED
133#else
134#define yyrestart parser6_restart
135#endif
136
137#ifdef yylex_init
138#define parser6_lex_init_ALREADY_DEFINED
139#else
140#define yylex_init parser6_lex_init
141#endif
142
143#ifdef yylex_init_extra
144#define parser6_lex_init_extra_ALREADY_DEFINED
145#else
146#define yylex_init_extra parser6_lex_init_extra
147#endif
148
149#ifdef yylex_destroy
150#define parser6_lex_destroy_ALREADY_DEFINED
151#else
152#define yylex_destroy parser6_lex_destroy
153#endif
154
155#ifdef yyget_debug
156#define parser6_get_debug_ALREADY_DEFINED
157#else
158#define yyget_debug parser6_get_debug
159#endif
160
161#ifdef yyset_debug
162#define parser6_set_debug_ALREADY_DEFINED
163#else
164#define yyset_debug parser6_set_debug
165#endif
166
167#ifdef yyget_extra
168#define parser6_get_extra_ALREADY_DEFINED
169#else
170#define yyget_extra parser6_get_extra
171#endif
172
173#ifdef yyset_extra
174#define parser6_set_extra_ALREADY_DEFINED
175#else
176#define yyset_extra parser6_set_extra
177#endif
178
179#ifdef yyget_in
180#define parser6_get_in_ALREADY_DEFINED
181#else
182#define yyget_in parser6_get_in
183#endif
184
185#ifdef yyset_in
186#define parser6_set_in_ALREADY_DEFINED
187#else
188#define yyset_in parser6_set_in
189#endif
190
191#ifdef yyget_out
192#define parser6_get_out_ALREADY_DEFINED
193#else
194#define yyget_out parser6_get_out
195#endif
196
197#ifdef yyset_out
198#define parser6_set_out_ALREADY_DEFINED
199#else
200#define yyset_out parser6_set_out
201#endif
202
203#ifdef yyget_leng
204#define parser6_get_leng_ALREADY_DEFINED
205#else
206#define yyget_leng parser6_get_leng
207#endif
208
209#ifdef yyget_text
210#define parser6_get_text_ALREADY_DEFINED
211#else
212#define yyget_text parser6_get_text
213#endif
214
215#ifdef yyget_lineno
216#define parser6_get_lineno_ALREADY_DEFINED
217#else
218#define yyget_lineno parser6_get_lineno
219#endif
220
221#ifdef yyset_lineno
222#define parser6_set_lineno_ALREADY_DEFINED
223#else
224#define yyset_lineno parser6_set_lineno
225#endif
226
227#ifdef yywrap
228#define parser6_wrap_ALREADY_DEFINED
229#else
230#define yywrap parser6_wrap
231#endif
232
233/* %endif */
234
235#ifdef yyalloc
236#define parser6_alloc_ALREADY_DEFINED
237#else
238#define yyalloc parser6_alloc
239#endif
240
241#ifdef yyrealloc
242#define parser6_realloc_ALREADY_DEFINED
243#else
244#define yyrealloc parser6_realloc
245#endif
246
247#ifdef yyfree
248#define parser6_free_ALREADY_DEFINED
249#else
250#define yyfree parser6_free
251#endif
252
253/* %if-c-only */
254
255#ifdef yytext
256#define parser6_text_ALREADY_DEFINED
257#else
258#define yytext parser6_text
259#endif
260
261#ifdef yyleng
262#define parser6_leng_ALREADY_DEFINED
263#else
264#define yyleng parser6_leng
265#endif
266
267#ifdef yyin
268#define parser6_in_ALREADY_DEFINED
269#else
270#define yyin parser6_in
271#endif
272
273#ifdef yyout
274#define parser6_out_ALREADY_DEFINED
275#else
276#define yyout parser6_out
277#endif
278
279#ifdef yy_flex_debug
280#define parser6__flex_debug_ALREADY_DEFINED
281#else
282#define yy_flex_debug parser6__flex_debug
283#endif
284
285#ifdef yylineno
286#define parser6_lineno_ALREADY_DEFINED
287#else
288#define yylineno parser6_lineno
289#endif
290
291/* %endif */
292
293/* First, we deal with platform-specific or compiler-specific issues. */
294
295/* begin standard C headers. */
296/* %if-c-only */
297#include <stdio.h>
298#include <string.h>
299#include <errno.h>
300#include <stdlib.h>
301/* %endif */
302
303/* %if-tables-serialization */
304/* %endif */
305/* end standard C headers. */
306
307/* %if-c-or-c++ */
308/* flex integer type definitions */
309
310#ifndef FLEXINT_H
311#define FLEXINT_H
312
313/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
314
315#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
316
317/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
318 * if you want the limit (max/min) macros for int types.
319 */
320#ifndef __STDC_LIMIT_MACROS
321#define __STDC_LIMIT_MACROS 1
322#endif
323
324#include <inttypes.h>
325typedef int8_t flex_int8_t;
326typedef uint8_t flex_uint8_t;
327typedef int16_t flex_int16_t;
328typedef uint16_t flex_uint16_t;
329typedef int32_t flex_int32_t;
330typedef uint32_t flex_uint32_t;
331#else
332typedef signed char flex_int8_t;
333typedef short int flex_int16_t;
334typedef int flex_int32_t;
335typedef unsigned char flex_uint8_t;
336typedef unsigned short int flex_uint16_t;
337typedef unsigned int flex_uint32_t;
338
339/* Limits of integral types. */
340#ifndef INT8_MIN
341#define INT8_MIN (-128)
342#endif
343#ifndef INT16_MIN
344#define INT16_MIN (-32767-1)
345#endif
346#ifndef INT32_MIN
347#define INT32_MIN (-2147483647-1)
348#endif
349#ifndef INT8_MAX
350#define INT8_MAX (127)
351#endif
352#ifndef INT16_MAX
353#define INT16_MAX (32767)
354#endif
355#ifndef INT32_MAX
356#define INT32_MAX (2147483647)
357#endif
358#ifndef UINT8_MAX
359#define UINT8_MAX (255U)
360#endif
361#ifndef UINT16_MAX
362#define UINT16_MAX (65535U)
363#endif
364#ifndef UINT32_MAX
365#define UINT32_MAX (4294967295U)
366#endif
367
368#ifndef SIZE_MAX
369#define SIZE_MAX (~(size_t)0)
370#endif
371
372#endif /* ! C99 */
373
374#endif /* ! FLEXINT_H */
375
376/* %endif */
377
378/* begin standard C++ headers. */
379/* %if-c++-only */
380/* %endif */
381
382/* TODO: this is always defined, so inline it */
383#define yyconst const
384
385#if defined(__GNUC__) && __GNUC__ >= 3
386#define yynoreturn __attribute__((__noreturn__))
387#else
388#define yynoreturn
389#endif
390
391/* %not-for-header */
392/* Returned upon end-of-file. */
393#define YY_NULL 0
394/* %ok-for-header */
395
396/* %not-for-header */
397/* Promotes a possibly negative, possibly signed char to an
398 * integer in range [0..255] for use as an array index.
399 */
400#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
401/* %ok-for-header */
402
403/* %if-reentrant */
404/* %endif */
405
406/* %if-not-reentrant */
407
408/* %endif */
409
410/* Enter a start condition. This macro really ought to take a parameter,
411 * but we do it the disgusting crufty way forced on us by the ()-less
412 * definition of BEGIN.
413 */
414#define BEGIN (yy_start) = 1 + 2 *
415/* Translate the current start state into a value that can be later handed
416 * to BEGIN to return to the state. The YYSTATE alias is for lex
417 * compatibility.
418 */
419#define YY_START (((yy_start) - 1) / 2)
420#define YYSTATE YY_START
421/* Action number for EOF rule of a given start state. */
422#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
423/* Special action meaning "start processing a new file". */
424#define YY_NEW_FILE yyrestart( yyin )
425#define YY_END_OF_BUFFER_CHAR 0
426
427/* Size of default input buffer. */
428#ifndef YY_BUF_SIZE
429#ifdef __ia64__
430/* On IA-64, the buffer size is 16k, not 8k.
431 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
432 * Ditto for the __ia64__ case accordingly.
433 */
434#define YY_BUF_SIZE 32768
435#else
436#define YY_BUF_SIZE 16384
437#endif /* __ia64__ */
438#endif
439
440/* The state buf must be large enough to hold one state per character in the main buffer.
441 */
442#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
443
444#ifndef YY_TYPEDEF_YY_BUFFER_STATE
445#define YY_TYPEDEF_YY_BUFFER_STATE
447#endif
448
449#ifndef YY_TYPEDEF_YY_SIZE_T
450#define YY_TYPEDEF_YY_SIZE_T
451typedef size_t yy_size_t;
452#endif
453
454/* %if-not-reentrant */
455extern int yyleng;
456/* %endif */
457
458/* %if-c-only */
459/* %if-not-reentrant */
460extern FILE *yyin, *yyout;
461/* %endif */
462/* %endif */
463
464#define EOB_ACT_CONTINUE_SCAN 0
465#define EOB_ACT_END_OF_FILE 1
466#define EOB_ACT_LAST_MATCH 2
467
468 #define YY_LESS_LINENO(n)
469 #define YY_LINENO_REWIND_TO(ptr)
470
471/* Return all but the first "n" matched characters back to the input stream. */
472#define yyless(n) \
473 do \
474 { \
475 /* Undo effects of setting up yytext. */ \
476 int yyless_macro_arg = (n); \
477 YY_LESS_LINENO(yyless_macro_arg);\
478 *yy_cp = (yy_hold_char); \
479 YY_RESTORE_YY_MORE_OFFSET \
480 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
481 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
482 } \
483 while ( 0 )
484#define unput(c) yyunput( c, (yytext_ptr) )
485
486#ifndef YY_STRUCT_YY_BUFFER_STATE
487#define YY_STRUCT_YY_BUFFER_STATE
488struct yy_buffer_state
489 {
490/* %if-c-only */
491 FILE *yy_input_file;
492/* %endif */
493
494/* %if-c++-only */
495/* %endif */
496
497 char *yy_ch_buf; /* input buffer */
498 char *yy_buf_pos; /* current position in input buffer */
499
500 /* Size of input buffer in bytes, not including room for EOB
501 * characters.
502 */
503 int yy_buf_size;
504
505 /* Number of characters read into yy_ch_buf, not including EOB
506 * characters.
507 */
508 int yy_n_chars;
509
510 /* Whether we "own" the buffer - i.e., we know we created it,
511 * and can realloc() it to grow it, and should free() it to
512 * delete it.
513 */
515
516 /* Whether this is an "interactive" input source; if so, and
517 * if we're using stdio for input, then we want to use getc()
518 * instead of fread(), to make sure we stop fetching input after
519 * each newline.
520 */
522
523 /* Whether we're considered to be at the beginning of a line.
524 * If so, '^' rules will be active on the next match, otherwise
525 * not.
526 */
527 int yy_at_bol;
528
529 int yy_bs_lineno;
530 int yy_bs_column;
532 /* Whether to try to fill the input buffer when we reach the
533 * end of it.
534 */
535 int yy_fill_buffer;
536
538
539#define YY_BUFFER_NEW 0
540#define YY_BUFFER_NORMAL 1
541 /* When an EOF's been seen but there's still some text to process
542 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
543 * shouldn't try reading from the input source any more. We might
544 * still have a bunch of tokens to match, though, because of
545 * possible backing-up.
546 *
547 * When we actually see the EOF, we change the status to "new"
548 * (via yyrestart()), so that the user can continue scanning by
549 * just pointing yyin at a new input file.
550 */
551#define YY_BUFFER_EOF_PENDING 2
552
553 };
554#endif /* !YY_STRUCT_YY_BUFFER_STATE */
555
556/* %if-c-only Standard (non-C++) definition */
557/* %not-for-header */
558/* %if-not-reentrant */
559
560/* Stack of input buffers. */
561static size_t yy_buffer_stack_top = 0;
562static size_t yy_buffer_stack_max = 0;
563static YY_BUFFER_STATE * yy_buffer_stack = NULL;
564/* %endif */
565/* %ok-for-header */
566
567/* %endif */
568
569/* We provide macros for accessing buffer states in case in the
570 * future we want to put the buffer states in a more general
571 * "scanner state".
572 *
573 * Returns the top of the stack, or NULL.
574 */
575#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
576 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
577 : NULL)
578/* Same as previous macro, but useful when we know that the buffer stack is not
579 * NULL or when we need an lvalue. For internal use only.
580 */
581#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
582
583/* %if-c-only Standard (non-C++) definition */
584
585/* %if-not-reentrant */
586/* %not-for-header */
587/* yy_hold_char holds the character lost when yytext is formed. */
588static char yy_hold_char;
589static int yy_n_chars; /* number of characters read into yy_ch_buf */
591
592/* Points to current character in buffer. */
593static char *yy_c_buf_p = NULL;
594static int yy_init = 0; /* whether we need to initialize */
595static int yy_start = 0; /* start state number */
596
597/* Flag which is used to allow yywrap()'s to do buffer switches
598 * instead of setting up a fresh yyin. A bit of a hack ...
599 */
600static int yy_did_buffer_switch_on_eof;
601/* %ok-for-header */
602
603/* %endif */
604
605void yyrestart ( FILE *input_file );
606void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
607YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
610void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
611void yypop_buffer_state ( void );
612
613static void yyensure_buffer_stack ( void );
614static void yy_load_buffer_state ( void );
615static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
616#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
617
618YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
619YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
620YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
621
622/* %endif */
623
624void *yyalloc ( yy_size_t );
625void *yyrealloc ( void *, yy_size_t );
626void yyfree ( void * );
627
628#define yy_new_buffer yy_create_buffer
629#define yy_set_interactive(is_interactive) \
630 { \
631 if ( ! YY_CURRENT_BUFFER ){ \
632 yyensure_buffer_stack (); \
633 YY_CURRENT_BUFFER_LVALUE = \
634 yy_create_buffer( yyin, YY_BUF_SIZE ); \
635 } \
636 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
637 }
638#define yy_set_bol(at_bol) \
639 { \
640 if ( ! YY_CURRENT_BUFFER ){\
641 yyensure_buffer_stack (); \
642 YY_CURRENT_BUFFER_LVALUE = \
643 yy_create_buffer( yyin, YY_BUF_SIZE ); \
644 } \
645 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
646 }
647#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
648
649/* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
650/* Begin user sect3 */
651
652#define parser6_wrap() (/*CONSTCOND*/1)
653#define YY_SKIP_YYWRAP
654
655#define FLEX_DEBUG
657
658FILE *yyin = NULL, *yyout = NULL;
659
660typedef int yy_state_type;
661
662extern int yylineno;
663int yylineno = 1;
664
665extern char *yytext;
666#ifdef yytext_ptr
667#undef yytext_ptr
668#endif
669#define yytext_ptr yytext
670
671/* %% [1.5] DFA */
672
673/* %if-c-only Standard (non-C++) definition */
674
675static yy_state_type yy_get_previous_state ( void );
676static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
677static int yy_get_next_buffer ( void );
678static void yynoreturn yy_fatal_error ( const char* msg );
679
680/* %endif */
681
682/* Done after the current pattern has been matched and before the
683 * corresponding action - sets up yytext.
684 */
685#define YY_DO_BEFORE_ACTION \
686 (yytext_ptr) = yy_bp; \
687/* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
688 yyleng = (int) (yy_cp - yy_bp); \
689 (yy_hold_char) = *yy_cp; \
690 *yy_cp = '\0'; \
691/* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
692 (yy_c_buf_p) = yy_cp;
693/* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
694#define YY_NUM_RULES 219
695#define YY_END_OF_BUFFER 220
696/* This struct is not used in this scanner,
697 but its presence is necessary. */
698struct yy_trans_info
699 {
702 };
703static const flex_int16_t yy_accept[2025] =
704 { 0,
705 212, 212, 0, 0, 0, 0, 0, 0, 0, 0,
706 220, 218, 10, 11, 218, 1, 212, 209, 212, 212,
707 218, 211, 210, 218, 218, 218, 218, 218, 205, 206,
708 218, 218, 218, 207, 208, 5, 5, 5, 218, 218,
709 218, 10, 11, 0, 0, 200, 0, 0, 0, 0,
710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
712 0, 0, 0, 0, 0, 0, 0, 1, 212, 212,
713 0, 211, 212, 3, 2, 6, 0, 212, 0, 0,
714 0, 0, 0, 0, 4, 0, 0, 9, 0, 201,
715
716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 0, 0, 203, 0, 0, 0, 0, 0, 0,
718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
725 8, 0, 0, 171, 0, 0, 172, 0, 0, 0,
726
727 0, 0, 0, 0, 202, 204, 0, 0, 0, 0,
728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
731 0, 118, 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 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
737
738 0, 0, 0, 0, 0, 0, 0, 0, 0, 217,
739 215, 0, 214, 213, 0, 0, 0, 0, 0, 170,
740 0, 28, 0, 27, 0, 0, 125, 0, 0, 0,
741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
742 55, 0, 0, 0, 0, 0, 0, 0, 0, 0,
743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
746 0, 0, 0, 0, 0, 122, 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, 216, 213, 0,
753 0, 0, 0, 29, 0, 31, 0, 0, 0, 0,
754 0, 0, 0, 0, 129, 0, 0, 0, 0, 0,
755 0, 0, 0, 103, 0, 0, 0, 0, 0, 0,
756 0, 0, 155, 0, 0, 0, 0, 0, 0, 0,
757 0, 0, 0, 0, 58, 0, 0, 0, 0, 0,
758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
759
760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
761 0, 0, 102, 0, 0, 0, 0, 0, 0, 0,
762 0, 0, 0, 0, 0, 0, 0, 0, 112, 0,
763 59, 0, 0, 0, 0, 0, 0, 0, 0, 0,
764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
766 0, 0, 0, 0, 0, 150, 0, 175, 51, 0,
767 56, 0, 0, 0, 0, 37, 34, 33, 0, 0,
768 0, 163, 0, 0, 0, 0, 0, 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, 141, 0, 0, 0, 0, 0,
773 0, 0, 0, 174, 0, 0, 0, 0, 0, 0,
774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
775 0, 0, 0, 0, 0, 0, 0, 53, 0, 0,
776 32, 0, 0, 0, 0, 0, 0, 0, 0, 0,
777 0, 0, 0, 105, 0, 0, 0, 0, 0, 0,
778 0, 0, 0, 0, 0, 0, 164, 0, 0, 0,
779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
780 0, 159, 0, 0, 0, 0, 0, 0, 0, 0,
781
782 0, 0, 0, 0, 7, 35, 0, 0, 0, 0,
783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
786 0, 0, 0, 0, 0, 124, 0, 0, 0, 0,
787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
789 143, 0, 0, 0, 0, 0, 0, 0, 0, 0,
790 0, 140, 0, 0, 0, 0, 0, 0, 0, 0,
791 0, 0, 107, 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, 115, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 0, 0, 0, 0, 114,
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, 0, 0, 0, 0, 0, 0,
800 0, 158, 0, 0, 0, 0, 0, 0, 0, 0,
801 0, 0, 0, 0, 0, 0, 0, 0, 0, 168,
802 138, 0, 0, 0, 0, 0, 0, 0, 142, 52,
803
804 0, 0, 0, 0, 0, 67, 0, 0, 0, 0,
805 0, 0, 0, 0, 144, 0, 60, 0, 0, 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 0, 97, 0, 0, 0, 0, 0, 0, 0, 0,
810 0, 0, 0, 0, 0, 0, 195, 0, 0, 0,
811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
813 0, 121, 0, 0, 0, 0, 0, 0, 0, 0,
814
815 0, 0, 0, 0, 157, 0, 0, 0, 0, 0,
816 0, 0, 63, 0, 0, 0, 0, 0, 0, 0,
817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
818 0, 0, 0, 0, 0, 0, 0, 57, 106, 0,
819 0, 0, 154, 0, 0, 0, 0, 50, 0, 0,
820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
821 0, 0, 0, 0, 0, 0, 0, 146, 0, 0,
822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
823 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
825
826 0, 0, 0, 0, 0, 0, 0, 0, 0, 196,
827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828 0, 0, 0, 0, 0, 0, 0, 0, 116, 0,
829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
832 0, 0, 0, 0, 41, 0, 0, 0, 0, 0,
833 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
834 169, 14, 0, 0, 0, 0, 0, 0, 0, 0,
835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
836
837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
838 0, 0, 0, 160, 0, 0, 0, 0, 0, 0,
839 0, 0, 145, 0, 0, 0, 0, 0, 0, 0,
840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
841 0, 156, 173, 0, 40, 0, 165, 0, 0, 0,
842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
843 0, 0, 0, 20, 0, 0, 0, 100, 0, 0,
844 0, 0, 0, 167, 54, 0, 108, 0, 194, 0,
845 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
846 0, 0, 0, 0, 0, 86, 0, 0, 0, 0,
847
848 0, 0, 134, 135, 0, 0, 0, 0, 0, 0,
849 0, 0, 104, 0, 0, 0, 0, 0, 0, 0,
850 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,
851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
852 162, 0, 0, 0, 0, 0, 0, 0, 0, 0,
853 0, 0, 0, 0, 0, 0, 0, 0, 0, 130,
854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
855 0, 101, 123, 0, 0, 0, 0, 0, 0, 0,
856 0, 0, 0, 0, 0, 83, 0, 0, 0, 0,
857 0, 0, 17, 0, 0, 15, 0, 191, 190, 0,
858
859 0, 0, 0, 73, 0, 0, 0, 0, 0, 30,
860 0, 0, 0, 149, 0, 0, 0, 0, 0, 0,
861 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
862 0, 0, 0, 184, 0, 193, 0, 0, 0, 0,
863 0, 0, 0, 0, 0, 0, 0, 117, 0, 153,
864 0, 43, 0, 0, 61, 0, 0, 0, 0, 0,
865 0, 0, 0, 0, 0, 19, 0, 0, 0, 0,
866 0, 0, 0, 119, 84, 0, 0, 161, 0, 0,
867 0, 0, 0, 152, 0, 0, 0, 0, 0, 0,
868 0, 0, 0, 0, 0, 0, 113, 0, 0, 137,
869
870 0, 0, 0, 198, 0, 0, 0, 0, 0, 0,
871 0, 0, 0, 0, 0, 0, 0, 0, 0, 111,
872 0, 0, 0, 176, 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, 0, 0, 0,
875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
876 0, 0, 0, 0, 42, 0, 0, 0, 0, 0,
877 0, 0, 72, 0, 0, 0, 0, 0, 0, 147,
878 47, 0, 0, 0, 74, 189, 38, 0, 0, 0,
879 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
880
881 0, 0, 0, 0, 0, 0, 0, 0, 45, 0,
882 0, 0, 44, 0, 0, 18, 0, 0, 0, 76,
883 0, 0, 0, 0, 0, 139, 0, 0, 0, 0,
884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
886 80, 0, 136, 0, 0, 0, 62, 0, 0, 0,
887 0, 0, 0, 0, 0, 0, 0, 0, 109, 0,
888 0, 0, 0, 0, 166, 0, 0, 0, 46, 0,
889 0, 0, 0, 0, 0, 0, 0, 0, 0, 185,
890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891
892 71, 0, 0, 0, 0, 0, 0, 0, 0, 99,
893 0, 68, 0, 0, 0, 36, 0, 48, 0, 0,
894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
895 0, 0, 0, 24, 0, 0, 0, 0, 0, 0,
896 0, 0, 0, 182, 0, 0, 0, 0, 151, 0,
897 0, 0, 0, 0, 0, 0, 0, 0, 0, 120,
898 0, 0, 0, 0, 0, 69, 0, 0, 187, 0,
899 0, 0, 0, 0, 0, 0, 0, 89, 0, 0,
900 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,
901 39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
902
903 0, 188, 0, 13, 0, 0, 0, 0, 0, 0,
904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
905 0, 0, 0, 0, 0, 0, 0, 192, 0, 0,
906 0, 0, 0, 0, 0, 0, 0, 0, 181, 0,
907 82, 0, 81, 0, 21, 77, 0, 0, 0, 0,
908 0, 0, 0, 0, 65, 0, 0, 0, 0, 133,
909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
910 110, 0, 0, 180, 0, 0, 0, 0, 0, 75,
911 0, 0, 0, 66, 0, 23, 0, 126, 0, 0,
912 0, 0, 98, 0, 0, 0, 0, 0, 0, 0,
913
914 95, 0, 0, 0, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 0, 0, 0, 0, 70, 0,
916 0, 0, 93, 0, 0, 0, 0, 0, 0, 0,
917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
918 0, 0, 0, 0, 0, 0, 49, 0, 0, 94,
919 0, 0, 0, 186, 0, 0, 0, 0, 197, 199,
920 79, 78, 22, 0, 131, 148, 127, 0, 0, 0,
921 0, 90, 0, 0, 0, 0, 0, 0, 0, 178,
922 0, 0, 183, 0, 92, 0, 85, 0, 0, 0,
923 0, 128, 0, 0, 0, 177, 0, 0, 26, 0,
924
925 0, 0, 0, 0, 0, 0, 0, 91, 0, 0,
926 0, 0, 0, 96, 0, 132, 88, 0, 0, 0,
927 0, 87, 179, 0
928 } ;
929
930static const YY_CHAR yy_ec[256] =
931 { 0,
932 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
933 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
934 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
935 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
936 5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
937 14, 17, 14, 18, 14, 14, 14, 19, 5, 20,
938 5, 21, 22, 5, 23, 24, 25, 26, 27, 28,
939 5, 29, 5, 30, 5, 31, 5, 32, 33, 34,
940 5, 35, 36, 37, 38, 39, 40, 5, 41, 5,
941 42, 43, 44, 5, 45, 5, 46, 47, 48, 49,
942
943 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
944 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
945 70, 71, 72, 5, 73, 5, 5, 5, 5, 5,
946 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
947 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
948 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
949 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
950 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
951 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
952 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
953
954 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
955 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
956 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
957 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
958 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
959 5, 5, 5, 5, 5
960 } ;
961
962static const YY_CHAR yy_meta[74] =
963 { 0,
964 1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
965 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
966 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
967 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
968 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
969 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
970 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
971 1, 1, 1
972 } ;
973
974static const flex_int16_t yy_base[2033] =
975 { 0,
976 0, 72, 21, 31, 43, 51, 54, 60, 91, 99,
977 2412, 2413, 34, 2408, 145, 0, 207, 2413, 214, 221,
978 13, 228, 2413, 2388, 118, 25, 2, 6, 2413, 2413,
979 73, 11, 17, 2413, 2413, 2413, 104, 2396, 2349, 0,
980 2386, 108, 2403, 24, 256, 2413, 67, 2352, 2372, 84,
981 75, 2372, 88, 226, 91, 89, 284, 196, 203, 279,
982 193, 224, 216, 60, 242, 2352, 286, 288, 314, 300,
983 319, 2335, 204, 324, 356, 329, 2354, 0, 380, 400,
984 420, 427, 406, 2413, 0, 2413, 385, 443, 238, 241,
985 310, 269, 299, 314, 2413, 2351, 2392, 2413, 405, 2413,
986
987 419, 400, 2349, 2390, 326, 10, 262, 407, 224, 409,
988 352, 206, 2389, 0, 480, 412, 2331, 415, 2339, 406,
989 2335, 2324, 2325, 2330, 442, 2340, 2323, 2332, 327, 431,
990 226, 2326, 2324, 452, 2313, 2371, 399, 2316, 2369, 2309,
991 441, 2330, 2330, 2324, 339, 2317, 2315, 2316, 2308, 2313,
992 2307, 414, 2318, 456, 2303, 2302, 2316, 454, 2354, 2301,
993 451, 2313, 474, 2301, 490, 2302, 476, 2314, 2311, 2312,
994 293, 2310, 2345, 2344, 449, 2290, 2290, 2294, 2290, 2282,
995 2299, 2291, 0, 457, 491, 401, 489, 501, 496, 2290,
996 2413, 510, 2285, 2413, 498, 508, 2413, 2339, 514, 2338,
997
998 515, 2337, 512, 2336, 2413, 2413, 558, 2335, 522, 2294,
999 2286, 2290, 2291, 2286, 2285, 219, 528, 2328, 2322, 2286,
1000 2267, 2264, 2272, 2278, 2266, 2280, 2276, 2277, 2277, 2272,
1001 2264, 2266, 2250, 2254, 2267, 2269, 2266, 2258, 2248, 2251,
1002 2265, 2413, 2251, 2259, 80, 2244, 2243, 2252, 2294, 2241,
1003 2251, 2291, 546, 2250, 2289, 2234, 2236, 2247, 2285, 528,
1004 2289, 2243, 2223, 2238, 539, 2228, 2234, 2243, 2224, 2222,
1005 2225, 2221, 2227, 2218, 2217, 2230, 2223, 2213, 2224, 2228,
1006 2227, 2221, 431, 2228, 2223, 2215, 2205, 2220, 2215, 2219,
1007 523, 2217, 2203, 2209, 2216, 2198, 410, 2203, 2200, 2199,
1008
1009 555, 2194, 2208, 2207, 2206, 2209, 2191, 2199, 553, 2413,
1010 2413, 561, 2413, 2413, 2186, 519, 2233, 564, 2244, 2413,
1011 534, 2413, 2243, 2413, 2237, 601, 2413, 529, 2177, 2196,
1012 2179, 2196, 2184, 2236, 2191, 2194, 2185, 2188, 2183, 549,
1013 2413, 2185, 590, 2224, 2182, 2179, 2180, 619, 2184, 2224,
1014 2172, 2167, 2164, 2160, 2162, 2213, 2170, 2159, 2175, 2209,
1015 2155, 626, 2168, 2168, 2151, 2152, 2165, 2163, 2151, 2161,
1016 2160, 2155, 2162, 2157, 2142, 572, 2151, 2154, 2149, 577,
1017 2148, 2144, 2194, 570, 559, 2413, 2153, 2187, 2137, 2136,
1018 2129, 2131, 2143, 2134, 2123, 2140, 2129, 2134, 592, 2181,
1019
1020 2134, 509, 2131, 2134, 2134, 2132, 2121, 2121, 2133, 582,
1021 2108, 2109, 2130, 592, 2112, 2109, 2123, 2126, 2121, 2107,
1022 2119, 2118, 2117, 2112, 2154, 2114, 2113, 2112, 2111, 564,
1023 2154, 2113, 2152, 2151, 2093, 647, 2106, 2413, 2413, 2105,
1024 604, 2147, 2146, 2413, 2145, 2413, 623, 677, 607, 2144,
1025 2138, 2091, 2093, 2081, 2413, 2086, 2079, 2091, 2094, 2077,
1026 2092, 2079, 2078, 2413, 2088, 610, 2079, 2076, 2088, 605,
1027 2073, 2075, 2413, 2081, 2066, 2068, 2079, 2077, 2072, 653,
1028 2079, 2067, 2060, 2111, 2413, 2058, 2074, 2108, 2112, 2068,
1029 2062, 2064, 2065, 2049, 2066, 2100, 2051, 2050, 2045, 2044,
1030
1031 2046, 2042, 2038, 615, 2057, 2031, 2038, 2043, 2036, 2052,
1032 2086, 2090, 2413, 2035, 2031, 2087, 2038, 2037, 2031, 2038,
1033 2023, 2033, 2021, 2035, 2024, 2020, 2022, 2017, 2413, 2074,
1034 2413, 2016, 2015, 2008, 2025, 2064, 2063, 2008, 2013, 2022,
1035 2016, 2010, 2019, 655, 2056, 2018, 2001, 2001, 1996, 1992,
1036 1998, 2003, 649, 2005, 2009, 1992, 2050, 1991, 1991, 2042,
1037 1987, 1988, 1987, 1999, 1988, 2413, 1998, 2413, 2413, 1987,
1038 2413, 1997, 2033, 1993, 2036, 2413, 2413, 2413, 636, 643,
1039 675, 2413, 622, 1995, 1975, 2028, 1973, 1983, 2025, 1970,
1040 1969, 1968, 1975, 1968, 1976, 1979, 1961, 1961, 1976, 1975,
1041
1042 646, 1974, 1973, 1957, 1972, 1954, 2001, 1968, 2006, 1950,
1043 1952, 1964, 1964, 1963, 2413, 1948, 1945, 2003, 1958, 1950,
1044 1956, 1947, 1955, 2413, 1940, 1951, 1955, 1937, 1949, 1950,
1045 640, 1932, 1931, 1925, 1930, 1927, 1942, 1941, 1942, 1921,
1046 1931, 1937, 1980, 1935, 1934, 1926, 1917, 2413, 1918, 1920,
1047 2413, 1922, 1927, 1966, 1965, 16, 1926, 1963, 1908, 1909,
1048 1912, 1913, 1904, 2413, 1918, 1904, 702, 1896, 1900, 1916,
1049 1913, 1905, 1950, 1902, 1909, 1947, 2413, 1893, 1891, 1905,
1050 1889, 1903, 1906, 1940, 1939, 1938, 1885, 1936, 1881, 1934,
1051 1933, 2413, 1878, 1892, 1891, 691, 1892, 1891, 1888, 1888,
1052
1053 1925, 1885, 1874, 1876, 2413, 2413, 646, 671, 1868, 1885,
1054 1877, 1864, 1858, 1879, 1920, 1878, 666, 1913, 1873, 1911,
1055 1910, 1862, 1856, 1859, 1867, 1870, 1854, 1851, 92, 170,
1056 208, 333, 313, 543, 613, 666, 630, 671, 642, 662,
1057 669, 708, 714, 672, 680, 2413, 683, 678, 670, 685,
1058 690, 688, 685, 692, 691, 679, 693, 691, 699, 735,
1059 697, 742, 743, 687, 700, 687, 697, 744, 702, 752,
1060 2413, 753, 709, 707, 709, 705, 699, 759, 755, 718,
1061 707, 2413, 709, 720, 709, 722, 724, 768, 711, 770,
1062 713, 728, 2413, 722, 716, 727, 712, 723, 736, 715,
1063
1064 721, 776, 740, 724, 724, 737, 781, 782, 783, 730,
1065 748, 743, 750, 749, 746, 731, 743, 744, 751, 741,
1066 739, 2413, 804, 762, 763, 753, 765, 755, 768, 759,
1067 765, 809, 785, 772, 754, 761, 775, 820, 770, 2413,
1068 774, 769, 784, 781, 767, 774, 773, 771, 790, 787,
1069 788, 776, 783, 784, 793, 797, 833, 795, 785, 798,
1070 784, 784, 790, 846, 787, 788, 794, 810, 793, 847,
1071 802, 2413, 812, 812, 805, 816, 814, 859, 801, 803,
1072 818, 819, 807, 805, 867, 824, 810, 816, 814, 2413,
1073 2413, 830, 829, 830, 835, 823, 833, 835, 2413, 2413,
1074
1075 835, 837, 824, 842, 829, 2413, 827, 845, 832, 832,
1076 883, 830, 834, 892, 2413, 893, 2413, 838, 852, 852,
1077 897, 845, 844, 848, 842, 902, 855, 845, 846, 842,
1078 852, 856, 867, 851, 869, 864, 866, 859, 861, 862,
1079 858, 875, 865, 880, 921, 878, 883, 860, 883, 869,
1080 868, 2413, 875, 876, 891, 881, 879, 929, 876, 891,
1081 909, 917, 886, 935, 897, 937, 2413, 903, 893, 892,
1082 887, 888, 900, 907, 896, 897, 893, 911, 897, 898,
1083 908, 917, 953, 900, 918, 911, 906, 960, 966, 923,
1084 914, 2413, 918, 926, 928, 913, 929, 919, 931, 925,
1085
1086 972, 938, 922, 923, 2413, 939, 942, 925, 927, 985,
1087 928, 947, 2413, 946, 949, 936, 931, 949, 937, 990,
1088 948, 944, 941, 994, 943, 996, 958, 944, 962, 961,
1089 947, 962, 954, 950, 968, 967, 954, 2413, 2413, 962,
1090 1009, 962, 2413, 970, 973, 966, 1019, 2413, 968, 974,
1091 1018, 969, 970, 982, 976, 980, 978, 976, 987, 1032,
1092 976, 981, 978, 1036, 1037, 981, 993, 2413, 981, 989,
1093 987, 1039, 981, 1002, 988, 989, 998, 1010, 997, 995,
1094 1009, 1010, 1026, 1031, 1013, 1018, 1001, 1001, 1003, 1014,
1095 1004, 1024, 1023, 1014, 1003, 1020, 1027, 1070, 1012, 1032,
1096
1097 1025, 1029, 1033, 1016, 1033, 1024, 1079, 1026, 1030, 2413,
1098 1077, 1028, 1027, 1027, 1048, 1045, 1085, 1034, 1052, 1053,
1099 1039, 1047, 1056, 1036, 1051, 1058, 1100, 1101, 2413, 1054,
1100 1103, 1104, 1046, 1056, 1066, 1050, 1070, 1053, 1055, 1055,
1101 1062, 1071, 1059, 1066, 1061, 1068, 1080, 1121, 1068, 1067,
1102 1084, 1125, 1075, 1079, 1077, 1075, 1070, 1131, 1132, 1082,
1103 1134, 1130, 1136, 1089, 2413, 1094, 1087, 1078, 1097, 1091,
1104 1086, 1096, 1093, 1098, 1094, 1107, 2413, 1091, 1093, 1088,
1105 2413, 2413, 1094, 1154, 1093, 1112, 1113, 1115, 1154, 1107,
1106 1161, 1162, 1115, 1100, 1114, 1122, 1104, 1109, 1148, 1139,
1107
1108 1171, 1126, 1126, 1130, 1117, 1117, 1120, 1137, 1132, 1136,
1109 1181, 1129, 1133, 2413, 1130, 1126, 1143, 1123, 1144, 1134,
1110 1185, 1138, 2413, 1152, 1150, 1153, 1137, 1149, 1155, 1141,
1111 1201, 1154, 1159, 1146, 1157, 1149, 1155, 1151, 1169, 1170,
1112 1171, 2413, 2413, 1169, 2413, 1171, 2413, 1156, 1167, 1158,
1113 1177, 1170, 1168, 1220, 1177, 1174, 1218, 1182, 1171, 1178,
1114 1183, 1180, 1186, 2413, 1179, 1171, 1232, 2413, 1233, 1180,
1115 1187, 1231, 1193, 2413, 2413, 1190, 2413, 1181, 2413, 1181,
1116 1184, 1198, 1203, 1186, 1197, 1246, 1203, 1204, 1205, 1245,
1117 1201, 1252, 1205, 1249, 1255, 2413, 1202, 1257, 1258, 1215,
1118
1119 1216, 1218, 2413, 2413, 1201, 1263, 1259, 1223, 1207, 1219,
1120 1238, 1269, 2413, 1226, 1217, 1228, 1273, 1210, 1221, 1236,
1121 1272, 1224, 2413, 1220, 1236, 1224, 1238, 1239, 1236, 1280,
1122 1243, 1233, 1243, 1249, 1237, 1237, 1292, 1288, 1294, 1251,
1123 2413, 1254, 1253, 1255, 1248, 1257, 1258, 1256, 1246, 1249,
1124 1249, 1308, 1255, 1310, 1257, 1312, 1255, 1260, 1315, 2413,
1125 1273, 1253, 1268, 1261, 1264, 1277, 1280, 1279, 1277, 1326,
1126 1280, 2413, 2413, 1276, 1286, 1271, 1327, 1288, 1274, 1335,
1127 1336, 1280, 1290, 1339, 1296, 2413, 1288, 1288, 1290, 1292,
1128 1345, 1288, 2413, 1289, 1307, 2413, 1291, 2413, 2413, 1307,
1129
1130 1290, 1310, 1311, 2413, 1298, 1306, 1358, 1307, 1339, 2413,
1131 1361, 1311, 1358, 2413, 1306, 1365, 1315, 1309, 1306, 1309,
1132 1312, 1312, 1308, 1330, 1369, 1322, 1334, 1337, 1325, 1328,
1133 1321, 1381, 1329, 2413, 1325, 2413, 1327, 1386, 1339, 1330,
1134 1345, 1345, 1348, 1348, 1345, 1389, 1351, 2413, 1343, 2413,
1135 1344, 2413, 1354, 1346, 2413, 1395, 1357, 1358, 1355, 1399,
1136 1347, 1362, 1402, 1364, 1356, 2413, 1353, 1353, 1359, 1358,
1137 1356, 1371, 1371, 2413, 2413, 1412, 1359, 2413, 1376, 1361,
1138 1361, 1363, 1369, 2413, 1378, 1425, 1368, 1374, 1366, 1380,
1139 1391, 1385, 1391, 1435, 1388, 1397, 2413, 1394, 1413, 2413,
1140
1141 1397, 1382, 1442, 2413, 1443, 1400, 1405, 1387, 1447, 1448,
1142 1449, 1445, 1409, 1406, 1402, 1395, 1450, 1408, 1409, 2413,
1143 1399, 1412, 1460, 2413, 1398, 1458, 1421, 1417, 1462, 1410,
1144 1415, 1413, 1472, 1428, 1416, 1475, 1471, 1426, 1478, 1439,
1145 1428, 1422, 1482, 1424, 1433, 1426, 1440, 1443, 1488, 1430,
1146 1447, 1443, 1433, 1448, 1432, 1490, 1491, 1492, 1439, 1494,
1147 1457, 1450, 1449, 1443, 2413, 1460, 1452, 1458, 1449, 1448,
1148 1450, 1505, 2413, 1446, 1464, 1513, 1483, 1515, 1468, 2413,
1149 2413, 1459, 1470, 1519, 2413, 2413, 2413, 1465, 1470, 1468,
1150 1518, 1476, 1481, 1469, 1485, 1474, 1472, 1474, 2413, 1532,
1151
1152 1478, 1529, 1472, 1477, 1538, 1486, 1496, 1497, 2413, 1543,
1153 1496, 1540, 2413, 1491, 1499, 2413, 1490, 1505, 1493, 2413,
1154 1503, 1504, 1505, 1554, 1512, 2413, 1551, 1517, 1493, 1511,
1155 1512, 1521, 1503, 1509, 1511, 1565, 1524, 1523, 1514, 1564,
1156 1511, 1518, 1513, 1514, 1574, 1524, 1576, 1529, 1534, 1527,
1157 2413, 1580, 2413, 1529, 1582, 1524, 2413, 1527, 1537, 1581,
1158 1529, 1544, 1531, 1546, 1532, 1539, 1539, 1550, 2413, 1544,
1159 1539, 1538, 1598, 1551, 2413, 1595, 1546, 1543, 2413, 1557,
1160 1544, 1565, 1561, 1563, 1608, 1561, 1558, 1566, 1560, 2413,
1161 1613, 1554, 1556, 1572, 1565, 1555, 1571, 1572, 1566, 1582,
1162
1163 2413, 1572, 1624, 1584, 1568, 1622, 1586, 1581, 1630, 2413,
1164 1572, 2413, 1579, 1633, 1629, 2413, 1591, 2413, 1631, 1593,
1165 1594, 1579, 1580, 1588, 1642, 1590, 1639, 1640, 1595, 1607,
1166 1604, 1595, 1602, 2413, 1599, 1604, 1602, 1654, 1655, 1603,
1167 1600, 1614, 1601, 2413, 1616, 1617, 1618, 1619, 2413, 1609,
1168 1621, 1666, 1623, 1668, 1610, 1618, 1612, 1620, 1633, 2413,
1169 1634, 1615, 1622, 1613, 1625, 2413, 1674, 1635, 2413, 1639,
1170 1624, 1624, 1639, 1632, 1631, 1642, 1629, 2413, 1645, 1633,
1171 1636, 1692, 1650, 1641, 1653, 1644, 1653, 1655, 1659, 2413,
1172 2413, 1652, 1643, 1643, 1703, 1646, 1705, 1647, 1707, 1665,
1173
1174 1709, 2413, 1710, 2413, 1706, 1668, 1665, 1670, 1657, 1665,
1175 1676, 1673, 1719, 1660, 1663, 1668, 1659, 1724, 1677, 1678,
1176 1668, 1685, 1684, 1725, 1669, 1688, 1689, 2413, 1686, 1735,
1177 1692, 1693, 1738, 1695, 1698, 1685, 1694, 1695, 2413, 1744,
1178 2413, 1697, 2413, 1706, 2413, 2413, 1688, 1748, 1695, 1750,
1179 1693, 1752, 1700, 1749, 2413, 1711, 1716, 1757, 1716, 2413,
1180 1707, 1697, 1756, 1722, 1715, 1711, 1765, 1708, 1710, 1715,
1181 2413, 1711, 1713, 2413, 1718, 1728, 1713, 1721, 1723, 2413,
1182 1724, 1718, 1730, 2413, 1726, 2413, 1736, 2413, 1737, 1727,
1183 1783, 1732, 2413, 1734, 1742, 1787, 1728, 1730, 1727, 1751,
1184
1185 2413, 1738, 1745, 1748, 1737, 1791, 1738, 1746, 1755, 1754,
1186 1757, 1758, 1759, 1752, 1747, 1748, 1748, 1754, 2413, 1754,
1187 1766, 1811, 2413, 1757, 1769, 1814, 1763, 1765, 1763, 1818,
1188 1771, 1758, 1773, 1778, 1823, 1824, 1825, 1826, 1827, 1784,
1189 1829, 1830, 1831, 1778, 1782, 1776, 2413, 1792, 1836, 2413,
1190 1793, 1778, 1796, 2413, 1787, 1801, 1797, 1790, 2413, 2413,
1191 2413, 2413, 2413, 1844, 2413, 2413, 2413, 1794, 1802, 1847,
1192 1808, 2413, 1849, 1791, 1851, 1806, 1805, 1806, 1796, 2413,
1193 1856, 1852, 2413, 1799, 2413, 1811, 2413, 1860, 1802, 1818,
1194 1863, 2413, 1824, 1821, 1813, 2413, 1863, 1812, 2413, 1824,
1195
1196 1817, 1872, 1820, 1815, 1817, 1832, 1817, 2413, 1878, 1831,
1197 1880, 1881, 1829, 2413, 1831, 2413, 2413, 1825, 1841, 1886,
1198 1887, 2413, 2413, 2413, 1893, 1896, 1899, 1900, 1902, 1905,
1199 1908, 1911
1200 } ;
1201
1202static const flex_int16_t yy_def[2033] =
1203 { 0,
1204 2025, 2025, 2026, 2026, 2025, 2025, 2025, 2025, 2025, 2025,
1205 2024, 2024, 2024, 2024, 2024, 2027, 2024, 2024, 2024, 2024,
1206 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1207 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2028,
1208 2024, 2024, 2024, 2029, 15, 2024, 45, 45, 45, 45,
1209 45, 45, 45, 45, 45, 45, 2030, 45, 45, 45,
1210 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1211 45, 45, 45, 45, 45, 45, 45, 2027, 2024, 2024,
1212 2024, 2024, 2024, 2024, 2031, 2024, 2024, 2024, 2024, 2024,
1213 2024, 2024, 2024, 2024, 2024, 2024, 2028, 2024, 2029, 2024,
1214
1215 2024, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1216 45, 45, 2032, 45, 2030, 45, 45, 45, 45, 45,
1217 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1218 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1219 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1220 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1221 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1222 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1223 45, 45, 2031, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1224 2024, 45, 45, 2024, 45, 45, 2024, 45, 45, 45,
1225
1226 45, 45, 45, 2032, 2024, 2024, 115, 45, 45, 45,
1227 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1228 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1229 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1230 45, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1231 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1232 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1233 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1234 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1235 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1236
1237 45, 45, 45, 45, 45, 45, 45, 45, 2024, 2024,
1238 2024, 2024, 2024, 2024, 2024, 45, 45, 45, 45, 2024,
1239 45, 2024, 45, 2024, 45, 115, 2024, 45, 45, 45,
1240 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1241 2024, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1242 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1243 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1244 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1245 45, 45, 45, 45, 45, 2024, 45, 45, 45, 45,
1246 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1247
1248 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1249 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1250 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1251 45, 45, 45, 45, 45, 45, 45, 2024, 2024, 2024,
1252 45, 45, 45, 2024, 45, 2024, 45, 115, 45, 45,
1253 45, 45, 45, 45, 2024, 45, 45, 45, 45, 45,
1254 45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1255 45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1256 45, 45, 45, 45, 2024, 45, 45, 45, 45, 45,
1257 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1258
1259 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1260 45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1261 45, 45, 45, 45, 45, 45, 45, 45, 2024, 45,
1262 2024, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1263 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1264 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1265 45, 45, 45, 45, 45, 2024, 45, 2024, 2024, 45,
1266 2024, 45, 45, 2024, 45, 2024, 2024, 2024, 45, 45,
1267 45, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1268 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1269
1270 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1271 45, 45, 45, 45, 2024, 45, 45, 45, 45, 45,
1272 45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1273 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1274 45, 45, 45, 45, 45, 45, 45, 2024, 45, 45,
1275 2024, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1276 45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1277 45, 45, 45, 45, 45, 45, 2024, 45, 45, 45,
1278 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1279 45, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1280
1281 45, 45, 45, 45, 2024, 2024, 45, 45, 45, 45,
1282 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1283 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1284 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1285 45, 45, 45, 45, 45, 2024, 45, 45, 45, 45,
1286 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1287 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1288 2024, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1289 45, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1290 45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1291
1292 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1293 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1294 45, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1295 45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1296 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1297 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1298 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1299 45, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1300 45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1301 2024, 45, 45, 45, 45, 45, 45, 45, 2024, 2024,
1302
1303 45, 45, 45, 45, 45, 2024, 45, 45, 45, 45,
1304 45, 45, 45, 45, 2024, 45, 2024, 45, 45, 45,
1305 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1306 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1307 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1308 45, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1309 45, 45, 45, 45, 45, 45, 2024, 45, 45, 45,
1310 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1311 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1312 45, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1313
1314 45, 45, 45, 45, 2024, 45, 45, 45, 45, 45,
1315 45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1316 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1317 45, 45, 45, 45, 45, 45, 45, 2024, 2024, 45,
1318 45, 45, 2024, 45, 45, 45, 45, 2024, 45, 45,
1319 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1320 45, 45, 45, 45, 45, 45, 45, 2024, 45, 45,
1321 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1322 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1323 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1324
1325 45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1326 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1327 45, 45, 45, 45, 45, 45, 45, 45, 2024, 45,
1328 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1329 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1330 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1331 45, 45, 45, 45, 2024, 45, 45, 45, 45, 45,
1332 45, 45, 45, 45, 45, 45, 2024, 45, 45, 45,
1333 2024, 2024, 45, 45, 45, 45, 45, 45, 45, 45,
1334 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1335
1336 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1337 45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1338 45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1339 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1340 45, 2024, 2024, 45, 2024, 45, 2024, 45, 45, 45,
1341 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1342 45, 45, 45, 2024, 45, 45, 45, 2024, 45, 45,
1343 45, 45, 45, 2024, 2024, 45, 2024, 45, 2024, 45,
1344 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1345 45, 45, 45, 45, 45, 2024, 45, 45, 45, 45,
1346
1347 45, 45, 2024, 2024, 45, 45, 45, 45, 45, 45,
1348 45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1349 45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1350 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1351 2024, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1352 45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1353 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1354 45, 2024, 2024, 45, 45, 45, 45, 45, 45, 45,
1355 45, 45, 45, 45, 45, 2024, 45, 45, 45, 45,
1356 45, 45, 2024, 45, 45, 2024, 45, 2024, 2024, 45,
1357
1358 45, 45, 45, 2024, 45, 45, 45, 45, 45, 2024,
1359 45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1360 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1361 45, 45, 45, 2024, 45, 2024, 45, 45, 45, 45,
1362 45, 45, 45, 45, 45, 45, 45, 2024, 45, 2024,
1363 45, 2024, 45, 45, 2024, 45, 45, 45, 45, 45,
1364 45, 45, 45, 45, 45, 2024, 45, 45, 45, 45,
1365 45, 45, 45, 2024, 2024, 45, 45, 2024, 45, 45,
1366 45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1367 45, 45, 45, 45, 45, 45, 2024, 45, 45, 2024,
1368
1369 45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1370 45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1371 45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1372 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1373 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1374 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1375 45, 45, 45, 45, 2024, 45, 45, 45, 45, 45,
1376 45, 45, 2024, 45, 45, 45, 45, 45, 45, 2024,
1377 2024, 45, 45, 45, 2024, 2024, 2024, 45, 45, 45,
1378 45, 45, 45, 45, 45, 45, 45, 45, 2024, 45,
1379
1380 45, 45, 45, 45, 45, 45, 45, 45, 2024, 45,
1381 45, 45, 2024, 45, 45, 2024, 45, 45, 45, 2024,
1382 45, 45, 45, 45, 45, 2024, 45, 45, 45, 45,
1383 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1384 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1385 2024, 45, 2024, 45, 45, 45, 2024, 45, 45, 45,
1386 45, 45, 45, 45, 45, 45, 45, 45, 2024, 45,
1387 45, 45, 45, 45, 2024, 45, 45, 45, 2024, 45,
1388 45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1389 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1390
1391 2024, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1392 45, 2024, 45, 45, 45, 2024, 45, 2024, 45, 45,
1393 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1394 45, 45, 45, 2024, 45, 45, 45, 45, 45, 45,
1395 45, 45, 45, 2024, 45, 45, 45, 45, 2024, 45,
1396 45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1397 45, 45, 45, 45, 45, 2024, 45, 45, 2024, 45,
1398 45, 45, 45, 45, 45, 45, 45, 2024, 45, 45,
1399 45, 45, 45, 45, 45, 45, 45, 45, 45, 2024,
1400 2024, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1401
1402 45, 2024, 45, 2024, 45, 45, 45, 45, 45, 45,
1403 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1404 45, 45, 45, 45, 45, 45, 45, 2024, 45, 45,
1405 45, 45, 45, 45, 45, 45, 45, 45, 2024, 45,
1406 2024, 45, 2024, 45, 2024, 2024, 45, 45, 45, 45,
1407 45, 45, 45, 45, 2024, 45, 45, 45, 45, 2024,
1408 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1409 2024, 45, 45, 2024, 45, 45, 45, 45, 45, 2024,
1410 45, 45, 45, 2024, 45, 2024, 45, 2024, 45, 45,
1411 45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1412
1413 2024, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1414 45, 45, 45, 45, 45, 45, 45, 45, 2024, 45,
1415 45, 45, 2024, 45, 45, 45, 45, 45, 45, 45,
1416 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1417 45, 45, 45, 45, 45, 45, 2024, 45, 45, 2024,
1418 45, 45, 45, 2024, 45, 45, 45, 45, 2024, 2024,
1419 2024, 2024, 2024, 45, 2024, 2024, 2024, 45, 45, 45,
1420 45, 2024, 45, 45, 45, 45, 45, 45, 45, 2024,
1421 45, 45, 2024, 45, 2024, 45, 2024, 45, 45, 45,
1422 45, 2024, 45, 45, 45, 2024, 45, 45, 2024, 45,
1423
1424 45, 45, 45, 45, 45, 45, 45, 2024, 45, 45,
1425 45, 45, 45, 2024, 45, 2024, 2024, 45, 45, 45,
1426 45, 2024, 2024, 0, 2024, 2024, 2024, 2024, 2024, 2024,
1427 2024, 2024
1428 } ;
1429
1430static const flex_int16_t yy_nxt[2487] =
1431 { 0,
1432 2024, 13, 14, 13, 2024, 15, 16, 2024, 17, 18,
1433 19, 20, 21, 22, 22, 22, 22, 22, 23, 24,
1434 84, 782, 37, 14, 37, 85, 25, 26, 38, 100,
1435 2024, 27, 37, 14, 37, 42, 28, 42, 38, 90,
1436 91, 29, 196, 30, 13, 14, 13, 89, 90, 25,
1437 31, 91, 13, 14, 13, 13, 14, 13, 32, 40,
1438 783, 13, 14, 13, 33, 40, 101, 90, 91, 196,
1439 89, 34, 35, 13, 14, 13, 93, 15, 16, 94,
1440 17, 18, 19, 20, 21, 22, 22, 22, 22, 22,
1441 23, 24, 13, 14, 13, 89, 39, 102, 25, 26,
1442
1443 13, 14, 13, 27, 39, 42, 105, 42, 28, 42,
1444 106, 42, 41, 29, 108, 30, 111, 112, 92, 134,
1445 41, 25, 31, 102, 135, 367, 87, 136, 87, 105,
1446 32, 88, 88, 88, 88, 88, 33, 108, 106, 111,
1447 856, 112, 368, 34, 35, 44, 44, 44, 45, 45,
1448 46, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1449 45, 45, 45, 45, 45, 45, 45, 47, 45, 45,
1450 48, 49, 50, 45, 51, 52, 53, 45, 45, 45,
1451 45, 54, 55, 45, 56, 45, 45, 57, 45, 45,
1452 58, 45, 59, 60, 61, 62, 63, 64, 65, 51,
1453
1454 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1455 76, 77, 56, 45, 45, 45, 45, 45, 79, 857,
1456 80, 80, 80, 80, 80, 79, 102, 82, 82, 82,
1457 82, 82, 203, 81, 83, 83, 83, 83, 83, 79,
1458 81, 82, 82, 82, 82, 82, 105, 81, 118, 164,
1459 109, 129, 116, 165, 81, 203, 81, 200, 117, 119,
1460 110, 130, 120, 81, 121, 132, 122, 197, 184, 105,
1461 81, 185, 133, 109, 858, 233, 335, 81, 45, 336,
1462 131, 45, 45, 45, 200, 45, 45, 45, 110, 114,
1463 137, 234, 45, 45, 184, 45, 45, 185, 198, 184,
1464
1465 138, 45, 139, 45, 45, 45, 45, 45, 45, 45,
1466 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1467 45, 45, 45, 45, 123, 187, 45, 124, 125, 185,
1468 45, 126, 127, 145, 45, 141, 142, 146, 296, 143,
1469 108, 147, 45, 859, 128, 144, 45, 186, 45, 115,
1470 153, 186, 297, 148, 111, 188, 195, 149, 154, 150,
1471 155, 151, 860, 152, 158, 156, 157, 159, 160, 166,
1472 173, 174, 228, 167, 229, 186, 168, 111, 161, 189,
1473 109, 162, 195, 169, 170, 202, 252, 180, 171, 172,
1474 110, 230, 181, 83, 83, 83, 83, 83, 88, 88,
1475
1476 88, 88, 88, 175, 242, 176, 81, 253, 177, 178,
1477 100, 79, 202, 80, 80, 80, 80, 80, 110, 83,
1478 83, 83, 83, 83, 99, 179, 81, 311, 87, 81,
1479 87, 99, 81, 88, 88, 88, 88, 88, 79, 192,
1480 82, 82, 82, 82, 82, 199, 201, 101, 243, 81,
1481 311, 192, 199, 81, 215, 81, 88, 88, 88, 88,
1482 88, 99, 211, 216, 217, 99, 262, 192, 208, 99,
1483 425, 212, 426, 199, 201, 213, 81, 99, 231, 209,
1484 260, 99, 200, 99, 99, 206, 247, 409, 222, 223,
1485 410, 232, 309, 207, 207, 207, 207, 207, 224, 248,
1486
1487 280, 267, 207, 207, 207, 207, 207, 207, 237, 301,
1488 273, 238, 263, 274, 275, 239, 268, 269, 270, 277,
1489 309, 310, 311, 278, 309, 207, 207, 207, 207, 207,
1490 207, 310, 316, 318, 290, 281, 282, 283, 291, 319,
1491 321, 323, 292, 325, 316, 314, 284, 310, 285, 390,
1492 286, 287, 312, 288, 321, 316, 376, 313, 533, 441,
1493 322, 318, 534, 321, 323, 430, 319, 328, 445, 441,
1494 325, 326, 326, 326, 326, 326, 418, 385, 337, 438,
1495 326, 326, 326, 326, 326, 326, 338, 438, 441, 419,
1496 443, 339, 340, 445, 461, 464, 445, 529, 449, 391,
1497
1498 465, 861, 438, 326, 326, 326, 326, 326, 326, 377,
1499 439, 462, 378, 443, 448, 448, 448, 448, 448, 564,
1500 514, 516, 565, 448, 448, 448, 448, 448, 448, 470,
1501 515, 485, 502, 503, 504, 471, 486, 509, 505, 575,
1502 542, 547, 575, 510, 543, 548, 448, 448, 448, 448,
1503 448, 448, 571, 605, 579, 530, 580, 572, 615, 687,
1504 677, 596, 862, 616, 639, 678, 606, 575, 707, 597,
1505 581, 598, 599, 600, 640, 601, 863, 708, 864, 710,
1506 706, 579, 832, 580, 487, 709, 711, 758, 759, 488,
1507 45, 45, 45, 45, 45, 707, 822, 833, 868, 45,
1508
1509 45, 45, 45, 45, 45, 708, 729, 793, 823, 730,
1510 832, 688, 794, 842, 843, 869, 844, 870, 871, 872,
1511 833, 873, 45, 45, 45, 45, 45, 45, 865, 874,
1512 875, 876, 866, 877, 878, 879, 867, 880, 881, 882,
1513 883, 884, 885, 886, 887, 888, 889, 890, 891, 892,
1514 893, 795, 894, 895, 897, 898, 896, 899, 900, 901,
1515 902, 903, 904, 905, 906, 907, 908, 909, 910, 911,
1516 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,
1517 922, 923, 924, 925, 926, 927, 928, 929, 930, 931,
1518 932, 933, 934, 935, 936, 937, 938, 940, 941, 942,
1519
1520 945, 946, 947, 939, 949, 950, 943, 951, 948, 952,
1521 944, 953, 954, 955, 956, 957, 958, 959, 960, 961,
1522 962, 963, 964, 965, 966, 967, 968, 969, 970, 971,
1523 972, 973, 974, 975, 976, 977, 978, 979, 980, 981,
1524 982, 983, 984, 985, 986, 987, 988, 989, 962, 990,
1525 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000,
1526 1001, 1002, 1003, 1004, 1005, 1007, 1008, 1009, 1010, 1006,
1527 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
1528 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030,
1529 1031, 1033, 1034, 1035, 1032, 1036, 1037, 1038, 1039, 1040,
1530
1531 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050,
1532 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060,
1533 1061, 1062, 1063, 1064, 1066, 1067, 1068, 1069, 1070, 1071,
1534 1072, 1073, 1074, 1075, 1076, 1065, 1077, 1078, 1079, 1080,
1535 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090,
1536 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100,
1537 1101, 1102, 1103, 1104, 1105, 1106, 1084, 1107, 1108, 1083,
1538 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118,
1539 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128,
1540 1129, 1132, 1133, 1134, 1135, 1130, 1136, 1137, 1138, 1139,
1541
1542 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149,
1543 1150, 1151, 1152, 1153, 1154, 1155, 1157, 1158, 1159, 1160,
1544 1161, 1162, 1163, 1164, 1165, 1166, 1156, 1167, 1168, 1169,
1545 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179,
1546 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1131, 1188,
1547 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198,
1548 1199, 1201, 1200, 1202, 1203, 1204, 1205, 1206, 1207, 1208,
1549 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218,
1550 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1199, 1200,
1551 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236,
1552
1553 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1247,
1554 1249, 1250, 1251, 1246, 1252, 1253, 1254, 1255, 1256, 1257,
1555 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267,
1556 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277,
1557 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287,
1558 1288, 1289, 1290, 1248, 1291, 1292, 1293, 1294, 1295, 1296,
1559 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306,
1560 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316,
1561 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326,
1562 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1311, 1334, 1335,
1563
1564 1336, 1337, 1338, 1312, 1339, 1340, 1341, 1342, 1343, 1344,
1565 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354,
1566 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364,
1567 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374,
1568 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384,
1569 1385, 1386, 1387, 1388, 1389, 1390, 1392, 1393, 1394, 1395,
1570 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405,
1571 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1416,
1572 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426,
1573 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436,
1574
1575 1437, 1409, 1438, 1439, 1440, 1441, 1442, 1443, 1391, 1444,
1576 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454,
1577 1455, 1456, 1415, 1457, 1458, 1460, 1461, 1462, 1463, 1464,
1578 1465, 1466, 1459, 1467, 1468, 1469, 1470, 1471, 1472, 1473,
1579 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483,
1580 1484, 1486, 1487, 1490, 1488, 1485, 1489, 1491, 1492, 1493,
1581 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503,
1582 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513,
1583 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1499, 1522,
1584 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532,
1585
1586 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542,
1587 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552,
1588 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562,
1589 1565, 1563, 1566, 1567, 1568, 1569, 1570, 1564, 1571, 1572,
1590 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582,
1591 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1591, 1592, 1593,
1592 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1590, 1601, 1602,
1593 1603, 1577, 1604, 1605, 1606, 1607, 1608, 1609, 1611, 1612,
1594 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622,
1595 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632,
1596
1597 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642,
1598 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652,
1599 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662,
1600 1663, 1664, 1665, 1666, 1667, 1610, 1668, 1669, 1671, 1672,
1601 1673, 1674, 1670, 1675, 1676, 1677, 1678, 1652, 1679, 1680,
1602 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690,
1603 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700,
1604 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710,
1605 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720,
1606 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730,
1607
1608 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740,
1609 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750,
1610 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760,
1611 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770,
1612 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780,
1613 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790,
1614 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800,
1615 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810,
1616 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820,
1617 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830,
1618
1619 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840,
1620 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850,
1621 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860,
1622 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870,
1623 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880,
1624 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890,
1625 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900,
1626 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910,
1627 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920,
1628 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930,
1629
1630 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940,
1631 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950,
1632 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960,
1633 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970,
1634 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980,
1635 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990,
1636 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
1637 2002, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
1638 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020,
1639 2021, 2022, 2023, 12, 12, 12, 36, 36, 36, 78,
1640
1641 97, 78, 99, 99, 99, 113, 113, 113, 183, 855,
1642 183, 204, 204, 204, 854, 853, 852, 851, 850, 849,
1643 848, 847, 846, 845, 841, 840, 839, 838, 837, 836,
1644 835, 834, 831, 830, 829, 828, 827, 826, 825, 824,
1645 821, 820, 819, 818, 817, 816, 815, 814, 813, 812,
1646 811, 810, 809, 808, 807, 806, 805, 804, 803, 802,
1647 801, 800, 799, 798, 797, 796, 792, 791, 790, 789,
1648 788, 787, 786, 785, 784, 781, 780, 779, 778, 777,
1649 776, 775, 774, 773, 772, 771, 770, 769, 768, 767,
1650 766, 765, 764, 763, 762, 761, 760, 757, 756, 755,
1651
1652 754, 753, 752, 751, 750, 749, 748, 747, 746, 745,
1653 744, 743, 742, 741, 740, 739, 738, 737, 736, 735,
1654 734, 733, 732, 731, 728, 727, 726, 725, 724, 723,
1655 722, 721, 720, 719, 718, 717, 716, 715, 714, 713,
1656 712, 706, 705, 704, 703, 702, 701, 700, 699, 698,
1657 697, 696, 695, 694, 693, 692, 691, 690, 689, 686,
1658 685, 684, 683, 682, 681, 680, 679, 676, 675, 674,
1659 673, 672, 671, 670, 669, 668, 667, 666, 665, 664,
1660 663, 662, 661, 660, 659, 658, 657, 656, 655, 654,
1661 653, 652, 651, 650, 649, 648, 647, 646, 645, 644,
1662
1663 643, 642, 641, 638, 637, 636, 635, 634, 633, 632,
1664 631, 630, 629, 628, 627, 626, 625, 624, 623, 622,
1665 621, 620, 619, 618, 617, 614, 613, 612, 611, 610,
1666 609, 608, 607, 604, 603, 602, 595, 594, 593, 592,
1667 591, 590, 589, 588, 587, 586, 585, 584, 583, 582,
1668 578, 577, 576, 574, 573, 570, 569, 568, 567, 566,
1669 563, 562, 561, 560, 559, 558, 557, 556, 555, 554,
1670 553, 552, 551, 550, 549, 546, 545, 544, 541, 540,
1671 539, 538, 537, 536, 535, 532, 531, 528, 527, 526,
1672 525, 524, 523, 522, 521, 520, 519, 518, 517, 513,
1673
1674 512, 511, 508, 507, 506, 501, 500, 499, 498, 497,
1675 496, 495, 494, 493, 492, 491, 490, 489, 484, 483,
1676 482, 481, 480, 479, 478, 477, 476, 475, 474, 473,
1677 472, 469, 468, 467, 466, 463, 460, 459, 458, 457,
1678 456, 455, 454, 453, 452, 451, 450, 447, 446, 444,
1679 442, 440, 437, 436, 435, 434, 433, 432, 431, 429,
1680 428, 427, 424, 423, 422, 421, 420, 417, 416, 415,
1681 414, 413, 412, 411, 408, 407, 406, 405, 404, 403,
1682 402, 401, 400, 399, 398, 397, 396, 395, 394, 393,
1683 392, 389, 388, 387, 386, 384, 383, 382, 381, 380,
1684
1685 379, 375, 374, 373, 372, 371, 370, 369, 366, 365,
1686 364, 363, 362, 361, 360, 359, 358, 357, 356, 355,
1687 354, 353, 352, 351, 350, 349, 348, 347, 346, 345,
1688 344, 343, 342, 341, 334, 333, 332, 331, 330, 329,
1689 327, 205, 324, 322, 320, 317, 315, 308, 307, 306,
1690 305, 304, 303, 302, 300, 299, 298, 295, 294, 293,
1691 289, 279, 276, 272, 271, 266, 265, 264, 261, 259,
1692 258, 257, 256, 255, 254, 251, 250, 249, 246, 245,
1693 244, 241, 240, 236, 235, 227, 226, 225, 221, 220,
1694 219, 218, 214, 210, 205, 194, 193, 191, 190, 182,
1695
1696 163, 140, 107, 104, 103, 43, 98, 96, 95, 86,
1697 43, 2024, 11, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1698 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1699 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1700 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1701 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1702 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1703 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1704 2024, 2024, 2024, 2024, 2024, 2024
1705 } ;
1706
1707static const flex_int16_t yy_chk[2487] =
1708 { 0,
1709 0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
1710 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1711 21, 656, 3, 3, 3, 21, 1, 1, 3, 44,
1712 0, 1, 4, 4, 4, 13, 1, 13, 4, 27,
1713 28, 1, 106, 1, 5, 5, 5, 26, 32, 1,
1714 1, 33, 6, 6, 6, 7, 7, 7, 1, 7,
1715 656, 8, 8, 8, 1, 8, 44, 27, 28, 106,
1716 26, 1, 1, 2, 2, 2, 32, 2, 2, 33,
1717 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1718 2, 2, 9, 9, 9, 31, 5, 47, 2, 2,
1719
1720 10, 10, 10, 2, 6, 37, 50, 37, 2, 42,
1721 51, 42, 9, 2, 53, 2, 55, 56, 31, 64,
1722 10, 2, 2, 47, 64, 245, 25, 64, 25, 50,
1723 2, 25, 25, 25, 25, 25, 2, 53, 51, 55,
1724 729, 56, 245, 2, 2, 15, 15, 15, 15, 15,
1725 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1726 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1727 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1728 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1729 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1730
1731 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1732 15, 15, 15, 15, 15, 15, 15, 15, 17, 730,
1733 17, 17, 17, 17, 17, 19, 58, 19, 19, 19,
1734 19, 19, 112, 17, 20, 20, 20, 20, 20, 22,
1735 19, 22, 22, 22, 22, 22, 62, 20, 59, 73,
1736 54, 61, 58, 73, 22, 112, 17, 109, 58, 59,
1737 54, 61, 59, 19, 59, 63, 59, 107, 89, 62,
1738 20, 90, 63, 54, 731, 131, 216, 22, 45, 216,
1739 62, 45, 45, 45, 109, 45, 45, 45, 54, 57,
1740 65, 131, 45, 45, 89, 45, 57, 90, 107, 92,
1741
1742 65, 45, 65, 45, 45, 45, 45, 45, 45, 45,
1743 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1744 45, 45, 45, 45, 60, 92, 57, 60, 60, 93,
1745 57, 60, 60, 68, 57, 67, 67, 68, 171, 67,
1746 69, 68, 57, 732, 60, 67, 57, 91, 57, 57,
1747 70, 94, 171, 68, 76, 93, 105, 68, 70, 69,
1748 70, 69, 733, 69, 71, 70, 70, 71, 71, 74,
1749 75, 75, 129, 74, 129, 91, 74, 76, 71, 94,
1750 75, 71, 105, 74, 74, 111, 145, 76, 74, 74,
1751 75, 129, 76, 79, 79, 79, 79, 79, 87, 87,
1752
1753 87, 87, 87, 75, 137, 75, 79, 145, 75, 75,
1754 99, 80, 111, 80, 80, 80, 80, 80, 75, 83,
1755 83, 83, 83, 83, 101, 75, 80, 186, 81, 79,
1756 81, 101, 83, 81, 81, 81, 81, 81, 82, 102,
1757 82, 82, 82, 82, 82, 108, 110, 99, 137, 80,
1758 186, 116, 152, 82, 120, 83, 88, 88, 88, 88,
1759 88, 101, 118, 120, 120, 101, 154, 102, 116, 101,
1760 297, 118, 297, 108, 110, 118, 82, 101, 130, 116,
1761 152, 101, 175, 101, 101, 115, 141, 283, 125, 125,
1762 283, 130, 184, 115, 115, 115, 115, 115, 125, 141,
1763
1764 165, 158, 115, 115, 115, 115, 115, 115, 134, 175,
1765 161, 134, 154, 161, 161, 134, 158, 158, 158, 163,
1766 184, 185, 189, 163, 187, 115, 115, 115, 115, 115,
1767 115, 188, 192, 195, 167, 165, 165, 165, 167, 196,
1768 199, 201, 167, 203, 209, 189, 165, 185, 165, 265,
1769 165, 165, 187, 165, 260, 192, 253, 188, 402, 316,
1770 301, 195, 402, 199, 201, 301, 196, 209, 321, 328,
1771 203, 207, 207, 207, 207, 207, 291, 260, 217, 309,
1772 207, 207, 207, 207, 207, 207, 217, 312, 316, 291,
1773 318, 217, 217, 385, 340, 343, 321, 399, 328, 265,
1774
1775 343, 734, 309, 207, 207, 207, 207, 207, 207, 253,
1776 312, 340, 253, 318, 326, 326, 326, 326, 326, 430,
1777 384, 385, 430, 326, 326, 326, 326, 326, 326, 348,
1778 384, 362, 376, 376, 376, 348, 362, 380, 376, 441,
1779 410, 414, 449, 380, 410, 414, 326, 326, 326, 326,
1780 326, 326, 436, 470, 447, 399, 447, 436, 480, 553,
1781 544, 466, 735, 480, 504, 544, 470, 441, 579, 466,
1782 449, 466, 466, 466, 504, 466, 736, 580, 737, 583,
1783 581, 447, 707, 447, 362, 581, 583, 631, 631, 362,
1784 448, 448, 448, 448, 448, 579, 696, 708, 739, 448,
1785
1786 448, 448, 448, 448, 448, 580, 601, 667, 696, 601,
1787 707, 553, 667, 717, 717, 740, 717, 741, 742, 743,
1788 708, 744, 448, 448, 448, 448, 448, 448, 738, 745,
1789 747, 748, 738, 749, 750, 751, 738, 752, 753, 754,
1790 755, 756, 757, 758, 759, 760, 761, 762, 763, 764,
1791 765, 667, 766, 767, 768, 769, 767, 770, 772, 773,
1792 774, 775, 776, 777, 778, 779, 780, 781, 783, 784,
1793 785, 786, 787, 788, 789, 790, 791, 792, 794, 795,
1794 796, 797, 798, 799, 800, 801, 802, 803, 804, 805,
1795 806, 807, 808, 809, 810, 811, 812, 813, 814, 815,
1796
1797 816, 817, 818, 812, 819, 820, 815, 821, 818, 823,
1798 815, 824, 825, 826, 827, 828, 829, 830, 831, 832,
1799 833, 834, 835, 836, 837, 838, 839, 841, 842, 843,
1800 844, 845, 846, 847, 848, 849, 850, 851, 852, 853,
1801 854, 855, 856, 857, 858, 859, 860, 861, 833, 862,
1802 863, 864, 865, 866, 867, 868, 869, 870, 871, 873,
1803 874, 875, 876, 877, 878, 879, 880, 881, 882, 878,
1804 883, 884, 885, 886, 887, 888, 889, 892, 893, 894,
1805 895, 896, 897, 898, 901, 902, 903, 904, 905, 907,
1806 908, 909, 910, 911, 908, 912, 913, 914, 916, 918,
1807
1808 919, 920, 921, 922, 923, 924, 925, 926, 927, 928,
1809 929, 930, 931, 932, 933, 934, 935, 936, 937, 938,
1810 939, 940, 941, 942, 943, 944, 945, 946, 947, 948,
1811 949, 950, 951, 953, 954, 942, 955, 956, 957, 958,
1812 959, 960, 961, 962, 963, 964, 965, 966, 968, 969,
1813 970, 971, 972, 973, 974, 975, 976, 977, 978, 979,
1814 980, 981, 982, 983, 984, 985, 962, 986, 987, 961,
1815 988, 989, 990, 991, 993, 994, 995, 996, 997, 998,
1816 999, 1000, 1001, 1002, 1003, 1004, 1006, 1007, 1008, 1009,
1817 1010, 1011, 1012, 1014, 1015, 1010, 1016, 1017, 1018, 1019,
1818
1819 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029,
1820 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1040, 1041,
1821 1042, 1044, 1045, 1046, 1047, 1049, 1035, 1050, 1051, 1052,
1822 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062,
1823 1063, 1064, 1065, 1066, 1067, 1069, 1070, 1071, 1010, 1072,
1824 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,
1825 1083, 1085, 1084, 1086, 1087, 1088, 1089, 1090, 1091, 1092,
1826 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102,
1827 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1111, 1083, 1084,
1828 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121,
1829
1830 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1130, 1131, 1132,
1831 1133, 1134, 1135, 1131, 1136, 1137, 1138, 1139, 1140, 1141,
1832 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151,
1833 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161,
1834 1162, 1163, 1164, 1166, 1167, 1168, 1169, 1170, 1171, 1172,
1835 1173, 1174, 1175, 1132, 1176, 1178, 1179, 1180, 1183, 1184,
1836 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194,
1837 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204,
1838 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1215,
1839 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1199, 1224, 1225,
1840
1841 1226, 1227, 1228, 1200, 1229, 1230, 1231, 1232, 1233, 1234,
1842 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1244, 1246, 1248,
1843 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258,
1844 1259, 1260, 1261, 1262, 1263, 1265, 1266, 1267, 1269, 1270,
1845 1271, 1272, 1273, 1276, 1278, 1280, 1281, 1282, 1283, 1284,
1846 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294,
1847 1295, 1297, 1298, 1299, 1300, 1301, 1302, 1305, 1306, 1307,
1848 1308, 1309, 1310, 1311, 1312, 1314, 1315, 1316, 1317, 1318,
1849 1319, 1320, 1321, 1322, 1324, 1325, 1326, 1327, 1328, 1329,
1850 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339,
1851
1852 1340, 1311, 1342, 1343, 1344, 1345, 1346, 1347, 1290, 1348,
1853 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358,
1854 1359, 1361, 1317, 1362, 1363, 1364, 1365, 1366, 1367, 1368,
1855 1369, 1370, 1363, 1371, 1374, 1375, 1376, 1377, 1378, 1379,
1856 1380, 1381, 1382, 1383, 1384, 1385, 1387, 1388, 1389, 1390,
1857 1391, 1392, 1394, 1397, 1395, 1391, 1395, 1400, 1401, 1402,
1858 1403, 1405, 1406, 1407, 1408, 1409, 1411, 1412, 1413, 1415,
1859 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425,
1860 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1409, 1435,
1861 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446,
1862
1863 1447, 1449, 1451, 1453, 1454, 1456, 1457, 1458, 1459, 1460,
1864 1461, 1462, 1463, 1464, 1465, 1467, 1468, 1469, 1470, 1471,
1865 1472, 1473, 1476, 1477, 1479, 1480, 1481, 1482, 1483, 1485,
1866 1486, 1485, 1487, 1488, 1489, 1490, 1491, 1485, 1492, 1493,
1867 1494, 1495, 1496, 1498, 1499, 1501, 1502, 1503, 1505, 1506,
1868 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516,
1869 1517, 1518, 1519, 1521, 1522, 1523, 1525, 1513, 1526, 1527,
1870 1528, 1499, 1529, 1530, 1531, 1532, 1532, 1533, 1534, 1535,
1871 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545,
1872 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555,
1873
1874 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1566,
1875 1567, 1568, 1569, 1570, 1571, 1572, 1574, 1575, 1576, 1577,
1876 1578, 1579, 1582, 1583, 1584, 1588, 1589, 1590, 1591, 1592,
1877 1593, 1594, 1595, 1596, 1597, 1533, 1598, 1600, 1601, 1602,
1878 1603, 1604, 1600, 1605, 1606, 1607, 1608, 1577, 1610, 1611,
1879 1612, 1614, 1615, 1617, 1618, 1619, 1621, 1622, 1623, 1624,
1880 1625, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635,
1881 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645,
1882 1646, 1647, 1648, 1649, 1650, 1652, 1654, 1655, 1656, 1658,
1883 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668,
1884
1885 1670, 1671, 1672, 1673, 1674, 1676, 1677, 1678, 1680, 1681,
1886 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1691, 1692,
1887 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1702, 1703,
1888 1704, 1705, 1706, 1707, 1708, 1709, 1711, 1713, 1714, 1715,
1889 1717, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727,
1890 1728, 1729, 1730, 1731, 1732, 1733, 1735, 1736, 1737, 1738,
1891 1739, 1740, 1741, 1742, 1743, 1745, 1746, 1747, 1748, 1750,
1892 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1761,
1893 1762, 1763, 1764, 1765, 1767, 1768, 1770, 1771, 1772, 1773,
1894 1774, 1775, 1776, 1777, 1779, 1780, 1781, 1782, 1783, 1784,
1895
1896 1785, 1786, 1787, 1788, 1789, 1792, 1793, 1794, 1795, 1796,
1897 1797, 1798, 1799, 1800, 1801, 1803, 1805, 1806, 1807, 1808,
1898 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818,
1899 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1829,
1900 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1840,
1901 1842, 1844, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854,
1902 1856, 1857, 1858, 1859, 1861, 1862, 1863, 1864, 1865, 1866,
1903 1867, 1868, 1869, 1870, 1872, 1873, 1875, 1876, 1877, 1878,
1904 1879, 1881, 1882, 1883, 1885, 1887, 1889, 1890, 1891, 1892,
1905 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1902, 1903, 1904,
1906
1907 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914,
1908 1915, 1916, 1917, 1918, 1920, 1921, 1922, 1924, 1925, 1926,
1909 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936,
1910 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946,
1911 1948, 1949, 1951, 1952, 1953, 1955, 1956, 1957, 1958, 1964,
1912 1968, 1969, 1970, 1971, 1973, 1974, 1975, 1976, 1977, 1978,
1913 1979, 1981, 1982, 1984, 1986, 1988, 1989, 1990, 1991, 1993,
1914 1994, 1993, 1995, 1997, 1998, 2000, 2001, 2002, 2003, 2004,
1915 2005, 2006, 2007, 2009, 2010, 2011, 2012, 2013, 2015, 2018,
1916 2019, 2020, 2021, 2025, 2025, 2025, 2026, 2026, 2026, 2027,
1917
1918 2028, 2027, 2029, 2029, 2029, 2030, 2030, 2030, 2031, 728,
1919 2031, 2032, 2032, 2032, 727, 726, 725, 724, 723, 722,
1920 721, 720, 719, 718, 716, 715, 714, 713, 712, 711,
1921 710, 709, 704, 703, 702, 701, 700, 699, 698, 697,
1922 695, 694, 693, 691, 690, 689, 688, 687, 686, 685,
1923 684, 683, 682, 681, 680, 679, 678, 676, 675, 674,
1924 673, 672, 671, 670, 669, 668, 666, 665, 663, 662,
1925 661, 660, 659, 658, 657, 655, 654, 653, 652, 650,
1926 649, 647, 646, 645, 644, 643, 642, 641, 640, 639,
1927 638, 637, 636, 635, 634, 633, 632, 630, 629, 628,
1928
1929 627, 626, 625, 623, 622, 621, 620, 619, 618, 617,
1930 616, 614, 613, 612, 611, 610, 609, 608, 607, 606,
1931 605, 604, 603, 602, 600, 599, 598, 597, 596, 595,
1932 594, 593, 592, 591, 590, 589, 588, 587, 586, 585,
1933 584, 575, 574, 573, 572, 570, 567, 565, 564, 563,
1934 562, 561, 560, 559, 558, 557, 556, 555, 554, 552,
1935 551, 550, 549, 548, 547, 546, 545, 543, 542, 541,
1936 540, 539, 538, 537, 536, 535, 534, 533, 532, 530,
1937 528, 527, 526, 525, 524, 523, 522, 521, 520, 519,
1938 518, 517, 516, 515, 514, 512, 511, 510, 509, 508,
1939
1940 507, 506, 505, 503, 502, 501, 500, 499, 498, 497,
1941 496, 495, 494, 493, 492, 491, 490, 489, 488, 487,
1942 486, 484, 483, 482, 481, 479, 478, 477, 476, 475,
1943 474, 472, 471, 469, 468, 467, 465, 463, 462, 461,
1944 460, 459, 458, 457, 456, 454, 453, 452, 451, 450,
1945 445, 443, 442, 440, 437, 435, 434, 433, 432, 431,
1946 429, 428, 427, 426, 425, 424, 423, 422, 421, 420,
1947 419, 418, 417, 416, 415, 413, 412, 411, 409, 408,
1948 407, 406, 405, 404, 403, 401, 400, 398, 397, 396,
1949 395, 394, 393, 392, 391, 390, 389, 388, 387, 383,
1950
1951 382, 381, 379, 378, 377, 375, 374, 373, 372, 371,
1952 370, 369, 368, 367, 366, 365, 364, 363, 361, 360,
1953 359, 358, 357, 356, 355, 354, 353, 352, 351, 350,
1954 349, 347, 346, 345, 344, 342, 339, 338, 337, 336,
1955 335, 334, 333, 332, 331, 330, 329, 325, 323, 319,
1956 317, 315, 308, 307, 306, 305, 304, 303, 302, 300,
1957 299, 298, 296, 295, 294, 293, 292, 290, 289, 288,
1958 287, 286, 285, 284, 282, 281, 280, 279, 278, 277,
1959 276, 275, 274, 273, 272, 271, 270, 269, 268, 267,
1960 266, 264, 263, 262, 261, 259, 258, 257, 256, 255,
1961
1962 254, 252, 251, 250, 249, 248, 247, 246, 244, 243,
1963 241, 240, 239, 238, 237, 236, 235, 234, 233, 232,
1964 231, 230, 229, 228, 227, 226, 225, 224, 223, 222,
1965 221, 220, 219, 218, 215, 214, 213, 212, 211, 210,
1966 208, 204, 202, 200, 198, 193, 190, 182, 181, 180,
1967 179, 178, 177, 176, 174, 173, 172, 170, 169, 168,
1968 166, 164, 162, 160, 159, 157, 156, 155, 153, 151,
1969 150, 149, 148, 147, 146, 144, 143, 142, 140, 139,
1970 138, 136, 135, 133, 132, 128, 127, 126, 124, 123,
1971 122, 121, 119, 117, 113, 104, 103, 97, 96, 77,
1972
1973 72, 66, 52, 49, 48, 43, 41, 39, 38, 24,
1974 14, 11, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1975 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1976 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1977 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1978 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1979 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1980 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024, 2024,
1981 2024, 2024, 2024, 2024, 2024, 2024
1982 } ;
1983
1984static yy_state_type yy_last_accepting_state;
1985static char *yy_last_accepting_cpos;
1986
1987extern int yy_flex_debug;
1989
1990static const flex_int16_t yy_rule_linenum[219] =
1991 { 0,
1992 148, 150, 152, 157, 158, 163, 164, 165, 177, 180,
1993 185, 192, 201, 210, 219, 228, 237, 246, 255, 264,
1994 273, 282, 291, 300, 309, 321, 333, 343, 353, 363,
1995 373, 383, 392, 402, 412, 422, 432, 441, 450, 459,
1996 468, 477, 486, 495, 504, 513, 522, 531, 540, 549,
1997 558, 571, 580, 589, 598, 607, 618, 629, 640, 651,
1998 663, 674, 685, 696, 707, 718, 729, 740, 749, 758,
1999 767, 778, 789, 800, 811, 822, 831, 843, 855, 867,
2000 879, 891, 903, 914, 925, 934, 943, 952, 961, 972,
2001 983, 994, 1005, 1016, 1027, 1038, 1050, 1060, 1071, 1080,
2002
2003 1089, 1104, 1120, 1129, 1138, 1147, 1156, 1165, 1174, 1183,
2004 1192, 1201, 1210, 1234, 1258, 1267, 1277, 1287, 1296, 1306,
2005 1317, 1326, 1335, 1344, 1353, 1362, 1373, 1384, 1395, 1405,
2006 1414, 1423, 1432, 1443, 1454, 1465, 1476, 1487, 1496, 1505,
2007 1514, 1523, 1532, 1541, 1550, 1559, 1568, 1578, 1590, 1603,
2008 1612, 1621, 1631, 1641, 1650, 1661, 1671, 1680, 1690, 1700,
2009 1709, 1718, 1727, 1736, 1746, 1755, 1764, 1773, 1782, 1791,
2010 1800, 1809, 1818, 1827, 1836, 1845, 1854, 1863, 1872, 1881,
2011 1890, 1899, 1908, 1917, 1926, 1935, 1944, 1953, 1962, 1971,
2012 1980, 1989, 1998, 2007, 2016, 2025, 2034, 2043, 2052, 2061,
2013
2014 2162, 2178, 2227, 2235, 2250, 2251, 2252, 2253, 2254, 2255,
2015 2257, 2275, 2288, 2293, 2297, 2299, 2301, 2303
2016 } ;
2017
2018/* The intent behind this definition is that it'll catch
2019 * any uses of REJECT which flex missed.
2020 */
2021#define REJECT reject_used_but_not_detected
2022#define yymore() yymore_used_but_not_detected
2023#define YY_MORE_ADJ 0
2024#define YY_RESTORE_YY_MORE_OFFSET
2026#line 1 "dhcp6_lexer.ll"
2027/* Copyright (C) 2016-2021 Internet Systems Consortium, Inc. ("ISC")
2028
2029 This Source Code Form is subject to the terms of the Mozilla Public
2030 License, v. 2.0. If a copy of the MPL was not distributed with this
2031 file, You can obtain one at http://mozilla.org/MPL/2.0/. */
2032#line 8 "dhcp6_lexer.ll"
2033
2034/* Generated files do not make clang static analyser so happy */
2035#ifndef __clang_analyzer__
2036
2037#include <cctype>
2038#include <cerrno>
2039#include <climits>
2040#include <cstdlib>
2041#include <string>
2042#include <dhcp6/parser_context.h>
2043#include <asiolink/io_address.h>
2044#include <boost/lexical_cast.hpp>
2045#include <exceptions/exceptions.h>
2046
2047/* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
2048
2049/* Work around an incompatibility in flex (at least versions
2050 2.5.31 through 2.5.33): it generates code that does
2051 not conform to C89. See Debian bug 333231
2052 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
2053# undef yywrap
2054# define yywrap() 1
2055
2056namespace {
2057
2058bool start_token_flag = false;
2059
2061unsigned int comment_start_line = 0;
2062
2063using namespace isc::dhcp;
2064
2065};
2066
2067/* To avoid the call to exit... oops! */
2068#define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
2069#line 2069 "dhcp6_lexer.cc"
2070/* noyywrap disables automatic rewinding for the next file to parse. Since we
2071 always parse only a single string, there's no need to do any wraps. And
2072 using yywrap requires linking with -lfl, which provides the default yywrap
2073 implementation that always returns 1 anyway. */
2074/* nounput simplifies the lexer, by removing support for putting a character
2075 back into the input stream. We never use such capability anyway. */
2076/* batch means that we'll never use the generated lexer interactively. */
2077/* avoid to get static global variables to remain with C++. */
2078/* in last resort %option reentrant */
2079/* Enables debug mode. To see the debug messages, one needs to also set
2080 yy_flex_debug to 1, then the debug messages will be printed on stderr. */
2081/* I have no idea what this option does, except it was specified in the bison
2082 examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
2083 be on the safe side and keep it. */
2084#define YY_NO_INPUT 1
2085
2086/* These are not token expressions yet, just convenience expressions that
2087 can be used during actual token definitions. Note some can match
2088 incorrect inputs (e.g., IP addresses) which must be checked. */
2089/* for errors */
2090#line 95 "dhcp6_lexer.ll"
2091/* This code run each time a pattern is matched. It updates the location
2092 by moving it ahead by yyleng bytes. yyleng specifies the length of the
2093 currently matched token. */
2094#define YY_USER_ACTION driver.loc_.columns(yyleng);
2095#line 2095 "dhcp6_lexer.cc"
2096#line 2096 "dhcp6_lexer.cc"
2097
2098#define INITIAL 0
2099#define COMMENT 1
2100#define DIR_ENTER 2
2101#define DIR_INCLUDE 3
2102#define DIR_EXIT 4
2103
2104#ifndef YY_NO_UNISTD_H
2105/* Special case for "unistd.h", since it is non-ANSI. We include it way
2106 * down here because we want the user's section 1 to have been scanned first.
2107 * The user has a chance to override it with an option.
2108 */
2109/* %if-c-only */
2110#include <unistd.h>
2111/* %endif */
2112/* %if-c++-only */
2113/* %endif */
2114#endif
2115
2116#ifndef YY_EXTRA_TYPE
2117#define YY_EXTRA_TYPE void *
2118#endif
2119
2120/* %if-c-only Reentrant structure and macros (non-C++). */
2121/* %if-reentrant */
2122/* %if-c-only */
2123
2124static int yy_init_globals ( void );
2125
2126/* %endif */
2127/* %if-reentrant */
2128/* %endif */
2129/* %endif End reentrant structures and macros. */
2130
2131/* Accessor methods to globals.
2132 These are made visible to non-reentrant scanners for convenience. */
2133
2134int yylex_destroy ( void );
2135
2136int yyget_debug ( void );
2137
2138void yyset_debug ( int debug_flag );
2139
2140YY_EXTRA_TYPE yyget_extra ( void );
2141
2142void yyset_extra ( YY_EXTRA_TYPE user_defined );
2143
2144FILE *yyget_in ( void );
2145
2146void yyset_in ( FILE * _in_str );
2147
2148FILE *yyget_out ( void );
2149
2150void yyset_out ( FILE * _out_str );
2151
2152 int yyget_leng ( void );
2153
2154char *yyget_text ( void );
2155
2156int yyget_lineno ( void );
2157
2158void yyset_lineno ( int _line_number );
2159
2160/* %if-bison-bridge */
2161/* %endif */
2162
2163/* Macros after this point can all be overridden by user definitions in
2164 * section 1.
2165 */
2166
2167#ifndef YY_SKIP_YYWRAP
2168#ifdef __cplusplus
2169extern "C" int yywrap ( void );
2170#else
2171extern int yywrap ( void );
2172#endif
2173#endif
2174
2175/* %not-for-header */
2176#ifndef YY_NO_UNPUT
2177
2178#endif
2179/* %ok-for-header */
2180
2181/* %endif */
2182
2183#ifndef yytext_ptr
2184static void yy_flex_strncpy ( char *, const char *, int );
2185#endif
2186
2187#ifdef YY_NEED_STRLEN
2188static int yy_flex_strlen ( const char * );
2189#endif
2190
2191#ifndef YY_NO_INPUT
2192/* %if-c-only Standard (non-C++) definition */
2193/* %not-for-header */
2194#ifdef __cplusplus
2195static int yyinput ( void );
2196#else
2197static int input ( void );
2198#endif
2199/* %ok-for-header */
2200
2201/* %endif */
2202#endif
2203
2204/* %if-c-only */
2205
2206/* %endif */
2207
2208/* Amount of stuff to slurp up with each read. */
2209#ifndef YY_READ_BUF_SIZE
2210#ifdef __ia64__
2211/* On IA-64, the buffer size is 16k, not 8k */
2212#define YY_READ_BUF_SIZE 16384
2213#else
2214#define YY_READ_BUF_SIZE 8192
2215#endif /* __ia64__ */
2216#endif
2217
2218/* Copy whatever the last rule matched to the standard output. */
2219#ifndef ECHO
2220/* %if-c-only Standard (non-C++) definition */
2221/* This used to be an fputs(), but since the string might contain NUL's,
2222 * we now use fwrite().
2223 */
2224#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2225/* %endif */
2226/* %if-c++-only C++ definition */
2227/* %endif */
2228#endif
2229
2230/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2231 * is returned in "result".
2232 */
2233#ifndef YY_INPUT
2234#define YY_INPUT(buf,result,max_size) \
2235/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2236 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2237 { \
2238 int c = '*'; \
2239 int n; \
2240 for ( n = 0; n < max_size && \
2241 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2242 buf[n] = (char) c; \
2243 if ( c == '\n' ) \
2244 buf[n++] = (char) c; \
2245 if ( c == EOF && ferror( yyin ) ) \
2246 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2247 result = n; \
2248 } \
2249 else \
2250 { \
2251 errno=0; \
2252 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2253 { \
2254 if( errno != EINTR) \
2255 { \
2256 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2257 break; \
2258 } \
2259 errno=0; \
2260 clearerr(yyin); \
2261 } \
2262 }\
2263\
2264/* %if-c++-only C++ definition \ */\
2265/* %endif */
2266
2267#endif
2268
2269/* No semi-colon after return; correct usage is to write "yyterminate();" -
2270 * we don't want an extra ';' after the "return" because that will cause
2271 * some compilers to complain about unreachable statements.
2272 */
2273#ifndef yyterminate
2274#define yyterminate() return YY_NULL
2275#endif
2276
2277/* Number of entries by which start-condition stack grows. */
2278#ifndef YY_START_STACK_INCR
2279#define YY_START_STACK_INCR 25
2280#endif
2281
2282/* Report a fatal error. */
2283#ifndef YY_FATAL_ERROR
2284/* %if-c-only */
2285#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2286/* %endif */
2287/* %if-c++-only */
2288/* %endif */
2289#endif
2290
2291/* %if-tables-serialization structures and prototypes */
2292/* %not-for-header */
2293/* %ok-for-header */
2294
2295/* %not-for-header */
2296/* %tables-yydmap generated elements */
2297/* %endif */
2298/* end tables serialization structures and prototypes */
2299
2300/* %ok-for-header */
2301
2302/* Default declaration of generated scanner - a define so the user can
2303 * easily add parameters.
2304 */
2305#ifndef YY_DECL
2306#define YY_DECL_IS_OURS 1
2307/* %if-c-only Standard (non-C++) definition */
2308
2309extern int yylex (void);
2310
2311#define YY_DECL int yylex (void)
2312/* %endif */
2313/* %if-c++-only C++ definition */
2314/* %endif */
2315#endif /* !YY_DECL */
2316
2317/* Code executed at the beginning of each rule, after yytext and yyleng
2318 * have been set up.
2319 */
2320#ifndef YY_USER_ACTION
2321#define YY_USER_ACTION
2322#endif
2323
2324/* Code executed at the end of each rule. */
2325#ifndef YY_BREAK
2326#define YY_BREAK /*LINTED*/break;
2327#endif
2328
2329/* %% [6.0] YY_RULE_SETUP definition goes here */
2330#define YY_RULE_SETUP \
2331 YY_USER_ACTION
2332
2333/* %not-for-header */
2337{
2338 yy_state_type yy_current_state;
2339 char *yy_cp, *yy_bp;
2341
2342 if ( !(yy_init) )
2343 {
2344 (yy_init) = 1;
2345
2346#ifdef YY_USER_INIT
2347 YY_USER_INIT;
2348#endif
2349
2350 if ( ! (yy_start) )
2351 (yy_start) = 1; /* first start state */
2352
2353 if ( ! yyin )
2354/* %if-c-only */
2355 yyin = stdin;
2356/* %endif */
2357/* %if-c++-only */
2358/* %endif */
2359
2360 if ( ! yyout )
2361/* %if-c-only */
2362 yyout = stdout;
2363/* %endif */
2364/* %if-c++-only */
2365/* %endif */
2366
2367 if ( ! YY_CURRENT_BUFFER ) {
2371 }
2372
2374 }
2375
2376 {
2377/* %% [7.0] user's declarations go here */
2378#line 101 "dhcp6_lexer.ll"
2379
2380
2381
2382#line 105 "dhcp6_lexer.ll"
2383 /* This part of the code is copied over to the verbatim to the top
2384 of the generated yylex function. Explanation:
2385 http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2386
2387 /* Code run each time yylex is called. */
2388 driver.loc_.step();
2389
2390 if (start_token_flag) {
2391 start_token_flag = false;
2392 switch (start_token_value) {
2393 case Parser6Context::PARSER_JSON:
2394 default:
2396 case Parser6Context::PARSER_DHCP6:
2398 case Parser6Context::SUBPARSER_DHCP6:
2399 return isc::dhcp::Dhcp6Parser::make_SUB_DHCP6(driver.loc_);
2400 case Parser6Context::PARSER_INTERFACES:
2402 case Parser6Context::PARSER_SUBNET6:
2403 return isc::dhcp::Dhcp6Parser::make_SUB_SUBNET6(driver.loc_);
2404 case Parser6Context::PARSER_POOL6:
2405 return isc::dhcp::Dhcp6Parser::make_SUB_POOL6(driver.loc_);
2406 case Parser6Context::PARSER_PD_POOL:
2407 return isc::dhcp::Dhcp6Parser::make_SUB_PD_POOL(driver.loc_);
2408 case Parser6Context::PARSER_HOST_RESERVATION:
2410 case Parser6Context::PARSER_OPTION_DEFS:
2412 case Parser6Context::PARSER_OPTION_DEF:
2414 case Parser6Context::PARSER_OPTION_DATA:
2416 case Parser6Context::PARSER_HOOKS_LIBRARY:
2418 case Parser6Context::PARSER_DHCP_DDNS:
2420 case Parser6Context::PARSER_CONFIG_CONTROL:
2422 }
2423 }
2424
2425
2426#line 2426 "dhcp6_lexer.cc"
2427
2428 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2429 {
2430/* %% [8.0] yymore()-related code goes here */
2431 yy_cp = (yy_c_buf_p);
2432
2433 /* Support of yytext. */
2434 *yy_cp = (yy_hold_char);
2435
2436 /* yy_bp points to the position in yy_ch_buf of the start of
2437 * the current run.
2438 */
2439 yy_bp = yy_cp;
2440
2441/* %% [9.0] code to set up and find next match goes here */
2442 yy_current_state = (yy_start);
2443yy_match:
2444 do
2445 {
2446 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2447 if ( yy_accept[yy_current_state] )
2448 {
2449 (yy_last_accepting_state) = yy_current_state;
2450 (yy_last_accepting_cpos) = yy_cp;
2451 }
2452 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2453 {
2454 yy_current_state = (int) yy_def[yy_current_state];
2455 if ( yy_current_state >= 2025 )
2456 yy_c = yy_meta[yy_c];
2457 }
2458 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2459 ++yy_cp;
2460 }
2461 while ( yy_current_state != 2024 );
2462 yy_cp = (yy_last_accepting_cpos);
2463 yy_current_state = (yy_last_accepting_state);
2464
2465yy_find_action:
2466/* %% [10.0] code to find the action number goes here */
2467 yy_act = yy_accept[yy_current_state];
2468
2470
2471/* %% [11.0] code for yylineno update goes here */
2472
2473do_action: /* This label is used only to access EOF actions. */
2474
2475/* %% [12.0] debug code goes here */
2476 if ( yy_flex_debug )
2477 {
2478 if ( yy_act == 0 )
2479 fprintf( stderr, "--scanner backing up\n" );
2480 else if ( yy_act < 219 )
2481 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2482 (long)yy_rule_linenum[yy_act], yytext );
2483 else if ( yy_act == 219 )
2484 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2485 yytext );
2486 else if ( yy_act == 220 )
2487 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2488 else
2489 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2490 }
2491
2492 switch ( yy_act )
2493 { /* beginning of action switch */
2494/* %% [13.0] actions go here */
2495 case 0: /* must back up */
2496 /* undo the effects of YY_DO_BEFORE_ACTION */
2497 *yy_cp = (yy_hold_char);
2498 yy_cp = (yy_last_accepting_cpos);
2499 yy_current_state = (yy_last_accepting_state);
2500 goto yy_find_action;
2501
2502case 1:
2504#line 148 "dhcp6_lexer.ll"
2505;
2506 YY_BREAK
2507case 2:
2509#line 150 "dhcp6_lexer.ll"
2510;
2511 YY_BREAK
2512case 3:
2514#line 152 "dhcp6_lexer.ll"
2515{
2516 BEGIN(COMMENT);
2517 comment_start_line = driver.loc_.end.line;;
2518}
2519 YY_BREAK
2520case 4:
2522#line 157 "dhcp6_lexer.ll"
2523BEGIN(INITIAL);
2524 YY_BREAK
2525case 5:
2527#line 158 "dhcp6_lexer.ll"
2528;
2529 YY_BREAK
2530case YY_STATE_EOF(COMMENT):
2531#line 159 "dhcp6_lexer.ll"
2532{
2533 isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line);
2534}
2535 YY_BREAK
2536case 6:
2538#line 163 "dhcp6_lexer.ll"
2540 YY_BREAK
2541case 7:
2543#line 164 "dhcp6_lexer.ll"
2545 YY_BREAK
2546case 8:
2548#line 165 "dhcp6_lexer.ll"
2549{
2550 /* Include directive. */
2551
2552 /* Extract the filename. */
2553 std::string tmp(yytext+1);
2554 tmp.resize(tmp.size() - 1);
2555
2556 driver.includeFile(tmp);
2557}
2558 YY_BREAK
2562#line 174 "dhcp6_lexer.ll"
2563{
2564 isc_throw(Dhcp6ParseError, "Directive not closed.");
2565}
2566 YY_BREAK
2567case 9:
2569#line 177 "dhcp6_lexer.ll"
2570BEGIN(INITIAL);
2571 YY_BREAK
2572case 10:
2574#line 180 "dhcp6_lexer.ll"
2575{
2576 /* Ok, we found a with space. Let's ignore it and update loc variable. */
2577 driver.loc_.step();
2578}
2579 YY_BREAK
2580case 11:
2581/* rule 11 can match eol */
2583#line 185 "dhcp6_lexer.ll"
2584{
2585 /* Newline found. Let's update the location and continue. */
2586 driver.loc_.lines(yyleng);
2587 driver.loc_.step();
2588}
2589 YY_BREAK
2590case 12:
2592#line 192 "dhcp6_lexer.ll"
2593{
2594 switch(driver.ctx_) {
2597 default:
2598 return isc::dhcp::Dhcp6Parser::make_STRING("enable-updates", driver.loc_);
2599 }
2600}
2601 YY_BREAK
2602case 13:
2604#line 201 "dhcp6_lexer.ll"
2605{
2606 switch(driver.ctx_) {
2609 default:
2610 return isc::dhcp::Dhcp6Parser::make_STRING("qualifying-suffix", driver.loc_);
2611 }
2612}
2613 YY_BREAK
2614case 14:
2616#line 210 "dhcp6_lexer.ll"
2617{
2618 switch(driver.ctx_) {
2620 return isc::dhcp::Dhcp6Parser::make_SERVER_IP(driver.loc_);
2621 default:
2622 return isc::dhcp::Dhcp6Parser::make_STRING("server-ip", driver.loc_);
2623 }
2624}
2625 YY_BREAK
2626case 15:
2628#line 219 "dhcp6_lexer.ll"
2629{
2630 switch(driver.ctx_) {
2632 return isc::dhcp::Dhcp6Parser::make_SERVER_PORT(driver.loc_);
2633 default:
2634 return isc::dhcp::Dhcp6Parser::make_STRING("server-port", driver.loc_);
2635 }
2636}
2637 YY_BREAK
2638case 16:
2640#line 228 "dhcp6_lexer.ll"
2641{
2642 switch(driver.ctx_) {
2644 return isc::dhcp::Dhcp6Parser::make_SENDER_IP(driver.loc_);
2645 default:
2646 return isc::dhcp::Dhcp6Parser::make_STRING("sender-ip", driver.loc_);
2647 }
2648}
2649 YY_BREAK
2650case 17:
2652#line 237 "dhcp6_lexer.ll"
2653{
2654 switch(driver.ctx_) {
2656 return isc::dhcp::Dhcp6Parser::make_SENDER_PORT(driver.loc_);
2657 default:
2658 return isc::dhcp::Dhcp6Parser::make_STRING("sender-port", driver.loc_);
2659 }
2660}
2661 YY_BREAK
2662case 18:
2664#line 246 "dhcp6_lexer.ll"
2665{
2666 switch(driver.ctx_) {
2669 default:
2670 return isc::dhcp::Dhcp6Parser::make_STRING("max-queue-size", driver.loc_);
2671 }
2672}
2673 YY_BREAK
2674case 19:
2676#line 255 "dhcp6_lexer.ll"
2677{
2678 switch(driver.ctx_) {
2681 default:
2682 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-protocol", driver.loc_);
2683 }
2684}
2685 YY_BREAK
2686case 20:
2688#line 264 "dhcp6_lexer.ll"
2689{
2690 switch(driver.ctx_) {
2692 return isc::dhcp::Dhcp6Parser::make_NCR_FORMAT(driver.loc_);
2693 default:
2694 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-format", driver.loc_);
2695 }
2696}
2697 YY_BREAK
2698case 21:
2700#line 273 "dhcp6_lexer.ll"
2701{
2702 switch(driver.ctx_) {
2705 default:
2706 return isc::dhcp::Dhcp6Parser::make_STRING("override-no-update", driver.loc_);
2707 }
2708}
2709 YY_BREAK
2710case 22:
2712#line 282 "dhcp6_lexer.ll"
2713{
2714 switch(driver.ctx_) {
2717 default:
2718 return isc::dhcp::Dhcp6Parser::make_STRING("override-client-update", driver.loc_);
2719 }
2720}
2721 YY_BREAK
2722case 23:
2724#line 291 "dhcp6_lexer.ll"
2725{
2726 switch(driver.ctx_) {
2729 default:
2730 return isc::dhcp::Dhcp6Parser::make_STRING("replace-client-name", driver.loc_);
2731 }
2732}
2733 YY_BREAK
2734case 24:
2736#line 300 "dhcp6_lexer.ll"
2737{
2738 switch(driver.ctx_) {
2741 default:
2742 return isc::dhcp::Dhcp6Parser::make_STRING("generated-prefix", driver.loc_);
2743 }
2744}
2745 YY_BREAK
2746case 25:
2748#line 309 "dhcp6_lexer.ll"
2749{
2750 switch(driver.ctx_) {
2756 default:
2757 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-set", driver.loc_);
2758 }
2759}
2760 YY_BREAK
2761case 26:
2763#line 321 "dhcp6_lexer.ll"
2764{
2765 switch(driver.ctx_) {
2771 default:
2772 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-replacement", driver.loc_);
2773 }
2774}
2775 YY_BREAK
2776case 27:
2778#line 333 "dhcp6_lexer.ll"
2779{
2780 /* dhcp-ddns value keywords are case insensitive */
2781 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2782 return isc::dhcp::Dhcp6Parser::make_UDP(driver.loc_);
2783 }
2784 std::string tmp(yytext+1);
2785 tmp.resize(tmp.size() - 1);
2786 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2787}
2788 YY_BREAK
2789case 28:
2791#line 343 "dhcp6_lexer.ll"
2792{
2793 /* dhcp-ddns value keywords are case insensitive */
2794 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2795 return isc::dhcp::Dhcp6Parser::make_TCP(driver.loc_);
2796 }
2797 std::string tmp(yytext+1);
2798 tmp.resize(tmp.size() - 1);
2799 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2800}
2801 YY_BREAK
2802case 29:
2804#line 353 "dhcp6_lexer.ll"
2805{
2806 /* dhcp-ddns value keywords are case insensitive */
2807 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) {
2808 return isc::dhcp::Dhcp6Parser::make_JSON(driver.loc_);
2809 }
2810 std::string tmp(yytext+1);
2811 tmp.resize(tmp.size() - 1);
2812 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2813}
2814 YY_BREAK
2815case 30:
2817#line 363 "dhcp6_lexer.ll"
2818{
2819 /* dhcp-ddns value keywords are case insensitive */
2822 }
2823 std::string tmp(yytext+1);
2824 tmp.resize(tmp.size() - 1);
2825 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2826}
2827 YY_BREAK
2828case 31:
2830#line 373 "dhcp6_lexer.ll"
2831{
2832 /* dhcp-ddns value keywords are case insensitive */
2835 }
2836 std::string tmp(yytext+1);
2837 tmp.resize(tmp.size() - 1);
2838 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2839}
2840 YY_BREAK
2841case 32:
2843#line 383 "dhcp6_lexer.ll"
2844{
2845 switch(driver.ctx_) {
2847 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2848 default:
2849 return isc::dhcp::Dhcp6Parser::make_STRING("never", driver.loc_);
2850 }
2851}
2852 YY_BREAK
2853case 33:
2855#line 392 "dhcp6_lexer.ll"
2856{
2857 /* dhcp-ddns value keywords are case insensitive */
2859 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2860 }
2861 std::string tmp(yytext+1);
2862 tmp.resize(tmp.size() - 1);
2863 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2864}
2865 YY_BREAK
2866case 34:
2868#line 402 "dhcp6_lexer.ll"
2869{
2870 /* dhcp-ddns value keywords are case insensitive */
2872 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2873 }
2874 std::string tmp(yytext+1);
2875 tmp.resize(tmp.size() - 1);
2876 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2877}
2878 YY_BREAK
2879case 35:
2881#line 412 "dhcp6_lexer.ll"
2882{
2883 /* dhcp-ddns value keywords are case insensitive */
2885 return isc::dhcp::Dhcp6Parser::make_ALWAYS(driver.loc_);
2886 }
2887 std::string tmp(yytext+1);
2888 tmp.resize(tmp.size() - 1);
2889 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2890}
2891 YY_BREAK
2892case 36:
2894#line 422 "dhcp6_lexer.ll"
2895{
2896 /* dhcp-ddns value keywords are case insensitive */
2899 }
2900 std::string tmp(yytext+1);
2901 tmp.resize(tmp.size() - 1);
2902 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2903}
2904 YY_BREAK
2905case 37:
2907#line 432 "dhcp6_lexer.ll"
2908{
2909 switch(driver.ctx_) {
2911 return isc::dhcp::Dhcp6Parser::make_DHCP6(driver.loc_);
2912 default:
2913 return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp6", driver.loc_);
2914 }
2915}
2916 YY_BREAK
2917case 38:
2919#line 441 "dhcp6_lexer.ll"
2920{
2921 switch(driver.ctx_) {
2924 default:
2925 return isc::dhcp::Dhcp6Parser::make_STRING("data-directory", driver.loc_);
2926 }
2927}
2928 YY_BREAK
2929case 39:
2931#line 450 "dhcp6_lexer.ll"
2932{
2933 switch(driver.ctx_) {
2936 default:
2937 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", driver.loc_);
2938 }
2939}
2940 YY_BREAK
2941case 40:
2943#line 459 "dhcp6_lexer.ll"
2944{
2945 switch(driver.ctx_) {
2947 return isc::dhcp::Dhcp6Parser::make_INTERFACES(driver.loc_);
2948 default:
2949 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces", driver.loc_);
2950 }
2951}
2952 YY_BREAK
2953case 41:
2955#line 468 "dhcp6_lexer.ll"
2956{
2957 switch(driver.ctx_) {
2959 return isc::dhcp::Dhcp6Parser::make_RE_DETECT(driver.loc_);
2960 default:
2961 return isc::dhcp::Dhcp6Parser::make_STRING("re-detect", driver.loc_);
2962 }
2963}
2964 YY_BREAK
2965case 42:
2967#line 477 "dhcp6_lexer.ll"
2968{
2969 switch(driver.ctx_) {
2972 default:
2973 return isc::dhcp::Dhcp6Parser::make_STRING("sanity-checks", driver.loc_);
2974 }
2975}
2976 YY_BREAK
2977case 43:
2979#line 486 "dhcp6_lexer.ll"
2980{
2981 switch(driver.ctx_) {
2984 default:
2985 return isc::dhcp::Dhcp6Parser::make_STRING("lease-checks", driver.loc_);
2986 }
2987}
2988 YY_BREAK
2989case 44:
2991#line 495 "dhcp6_lexer.ll"
2992{
2993 switch(driver.ctx_) {
2996 default:
2997 return isc::dhcp::Dhcp6Parser::make_STRING("lease-database", driver.loc_);
2998 }
2999}
3000 YY_BREAK
3001case 45:
3003#line 504 "dhcp6_lexer.ll"
3004{
3005 switch(driver.ctx_) {
3008 default:
3009 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-database", driver.loc_);
3010 }
3011}
3012 YY_BREAK
3013case 46:
3015#line 513 "dhcp6_lexer.ll"
3016{
3017 switch(driver.ctx_) {
3020 default:
3021 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-databases", driver.loc_);
3022 }
3023}
3024 YY_BREAK
3025case 47:
3027#line 522 "dhcp6_lexer.ll"
3028{
3029 switch(driver.ctx_) {
3032 default:
3033 return isc::dhcp::Dhcp6Parser::make_STRING("config-control", driver.loc_);
3034 }
3035}
3036 YY_BREAK
3037case 48:
3039#line 531 "dhcp6_lexer.ll"
3040{
3041 switch(driver.ctx_) {
3044 default:
3045 return isc::dhcp::Dhcp6Parser::make_STRING("config-databases", driver.loc_);
3046 }
3047}
3048 YY_BREAK
3049case 49:
3051#line 540 "dhcp6_lexer.ll"
3052{
3053 switch(driver.ctx_) {
3056 default:
3057 return isc::dhcp::Dhcp6Parser::make_STRING("config-fetch-wait-time", driver.loc_);
3058 }
3059}
3060 YY_BREAK
3061case 50:
3063#line 549 "dhcp6_lexer.ll"
3064{
3065 switch(driver.ctx_) {
3067 return isc::dhcp::Dhcp6Parser::make_READONLY(driver.loc_);
3068 default:
3069 return isc::dhcp::Dhcp6Parser::make_STRING("readonly", driver.loc_);
3070 }
3071}
3072 YY_BREAK
3073case 51:
3075#line 558 "dhcp6_lexer.ll"
3076{
3077 switch(driver.ctx_) {
3083 return isc::dhcp::Dhcp6Parser::make_TYPE(driver.loc_);
3084 default:
3085 return isc::dhcp::Dhcp6Parser::make_STRING("type", driver.loc_);
3086 }
3087}
3088 YY_BREAK
3089case 52:
3091#line 571 "dhcp6_lexer.ll"
3092{
3093 switch(driver.ctx_) {
3095 return isc::dhcp::Dhcp6Parser::make_MEMFILE(driver.loc_);
3096 default:
3097 return isc::dhcp::Dhcp6Parser::make_STRING("memfile", driver.loc_);
3098 }
3099}
3100 YY_BREAK
3101case 53:
3103#line 580 "dhcp6_lexer.ll"
3104{
3105 switch(driver.ctx_) {
3107 return isc::dhcp::Dhcp6Parser::make_MYSQL(driver.loc_);
3108 default:
3109 return isc::dhcp::Dhcp6Parser::make_STRING("mysql", driver.loc_);
3110 }
3111}
3112 YY_BREAK
3113case 54:
3115#line 589 "dhcp6_lexer.ll"
3116{
3117 switch(driver.ctx_) {
3119 return isc::dhcp::Dhcp6Parser::make_POSTGRESQL(driver.loc_);
3120 default:
3121 return isc::dhcp::Dhcp6Parser::make_STRING("postgresql", driver.loc_);
3122 }
3123}
3124 YY_BREAK
3125case 55:
3127#line 598 "dhcp6_lexer.ll"
3128{
3129 switch(driver.ctx_) {
3131 return isc::dhcp::Dhcp6Parser::make_CQL(driver.loc_);
3132 default:
3133 return isc::dhcp::Dhcp6Parser::make_STRING("cql", driver.loc_);
3134 }
3135}
3136 YY_BREAK
3137case 56:
3139#line 607 "dhcp6_lexer.ll"
3140{
3141 switch(driver.ctx_) {
3145 return isc::dhcp::Dhcp6Parser::make_USER(driver.loc_);
3146 default:
3147 return isc::dhcp::Dhcp6Parser::make_STRING("user", driver.loc_);
3148 }
3149}
3150 YY_BREAK
3151case 57:
3153#line 618 "dhcp6_lexer.ll"
3154{
3155 switch(driver.ctx_) {
3159 return isc::dhcp::Dhcp6Parser::make_PASSWORD(driver.loc_);
3160 default:
3161 return isc::dhcp::Dhcp6Parser::make_STRING("password", driver.loc_);
3162 }
3163}
3164 YY_BREAK
3165case 58:
3167#line 629 "dhcp6_lexer.ll"
3168{
3169 switch(driver.ctx_) {
3173 return isc::dhcp::Dhcp6Parser::make_HOST(driver.loc_);
3174 default:
3175 return isc::dhcp::Dhcp6Parser::make_STRING("host", driver.loc_);
3176 }
3177}
3178 YY_BREAK
3179case 59:
3181#line 640 "dhcp6_lexer.ll"
3182{
3183 switch(driver.ctx_) {
3187 return isc::dhcp::Dhcp6Parser::make_PORT(driver.loc_);
3188 default:
3189 return isc::dhcp::Dhcp6Parser::make_STRING("port", driver.loc_);
3190 }
3191}
3192 YY_BREAK
3193case 60:
3195#line 651 "dhcp6_lexer.ll"
3196{
3197 switch(driver.ctx_) {
3202 return isc::dhcp::Dhcp6Parser::make_PERSIST(driver.loc_);
3203 default:
3204 return isc::dhcp::Dhcp6Parser::make_STRING("persist", driver.loc_);
3205 }
3206}
3207 YY_BREAK
3208case 61:
3210#line 663 "dhcp6_lexer.ll"
3211{
3212 switch(driver.ctx_) {
3217 default:
3218 return isc::dhcp::Dhcp6Parser::make_STRING("lfc-interval", driver.loc_);
3219 }
3220}
3221 YY_BREAK
3222case 62:
3224#line 674 "dhcp6_lexer.ll"
3225{
3226 switch(driver.ctx_) {
3231 default:
3232 return isc::dhcp::Dhcp6Parser::make_STRING("connect-timeout", driver.loc_);
3233 }
3234}
3235 YY_BREAK
3236case 63:
3238#line 685 "dhcp6_lexer.ll"
3239{
3240 switch(driver.ctx_) {
3244 return isc::dhcp::Dhcp6Parser::make_KEYSPACE(driver.loc_);
3245 default:
3246 return isc::dhcp::Dhcp6Parser::make_STRING("keyspace", driver.loc_);
3247 }
3248}
3249 YY_BREAK
3250case 64:
3252#line 696 "dhcp6_lexer.ll"
3253{
3254 switch(driver.ctx_) {
3258 return isc::dhcp::Dhcp6Parser::make_CONSISTENCY(driver.loc_);
3259 default:
3260 return isc::dhcp::Dhcp6Parser::make_STRING("consistency", driver.loc_);
3261 }
3262}
3263 YY_BREAK
3264case 65:
3266#line 707 "dhcp6_lexer.ll"
3267{
3268 switch(driver.ctx_) {
3273 default:
3274 return isc::dhcp::Dhcp6Parser::make_STRING("serial-consistency", driver.loc_);
3275 }
3276}
3277 YY_BREAK
3278case 66:
3280#line 718 "dhcp6_lexer.ll"
3281{
3282 switch(driver.ctx_) {
3287 default:
3288 return isc::dhcp::Dhcp6Parser::make_STRING("reconnect-wait-time", driver.loc_);
3289 }
3290}
3291 YY_BREAK
3292case 67:
3294#line 729 "dhcp6_lexer.ll"
3295{
3296 switch(driver.ctx_) {
3300 return isc::dhcp::Dhcp6Parser::make_ON_FAIL(driver.loc_);
3301 default:
3302 return isc::dhcp::Dhcp6Parser::make_STRING("on-fail", driver.loc_);
3303 }
3304}
3305 YY_BREAK
3306case 68:
3308#line 740 "dhcp6_lexer.ll"
3309{
3310 switch(driver.ctx_) {
3313 default:
3314 return isc::dhcp::Dhcp6Parser::make_STRING("stop-retry-exit", driver.loc_);
3315 }
3316}
3317 YY_BREAK
3318case 69:
3320#line 749 "dhcp6_lexer.ll"
3321{
3322 switch(driver.ctx_) {
3325 default:
3326 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-exit", driver.loc_);
3327 }
3328}
3329 YY_BREAK
3330case 70:
3332#line 758 "dhcp6_lexer.ll"
3333{
3334 switch(driver.ctx_) {
3337 default:
3338 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-continue", driver.loc_);
3339 }
3340}
3341 YY_BREAK
3342case 71:
3344#line 767 "dhcp6_lexer.ll"
3345{
3346 switch(driver.ctx_) {
3351 default:
3352 return isc::dhcp::Dhcp6Parser::make_STRING("request-timeout", driver.loc_);
3353 }
3354}
3355 YY_BREAK
3356case 72:
3358#line 778 "dhcp6_lexer.ll"
3359{
3360 switch(driver.ctx_) {
3365 default:
3366 return isc::dhcp::Dhcp6Parser::make_STRING("tcp-keepalive", driver.loc_);
3367 }
3368}
3369 YY_BREAK
3370case 73:
3372#line 789 "dhcp6_lexer.ll"
3373{
3374 switch(driver.ctx_) {
3378 return isc::dhcp::Dhcp6Parser::make_TCP_NODELAY(driver.loc_);
3379 default:
3380 return isc::dhcp::Dhcp6Parser::make_STRING("tcp-nodelay", driver.loc_);
3381 }
3382}
3383 YY_BREAK
3384case 74:
3386#line 800 "dhcp6_lexer.ll"
3387{
3388 switch(driver.ctx_) {
3393 default:
3394 return isc::dhcp::Dhcp6Parser::make_STRING("contact-points", driver.loc_);
3395 }
3396}
3397 YY_BREAK
3398case 75:
3400#line 811 "dhcp6_lexer.ll"
3401{
3402 switch(driver.ctx_) {
3407 default:
3408 return isc::dhcp::Dhcp6Parser::make_STRING("max-reconnect-tries", driver.loc_);
3409 }
3410}
3411 YY_BREAK
3412case 76:
3414#line 822 "dhcp6_lexer.ll"
3415{
3416 switch(driver.ctx_) {
3419 default:
3420 return isc::dhcp::Dhcp6Parser::make_STRING("max_row_errors", driver.loc_);
3421 }
3422}
3423 YY_BREAK
3424case 77:
3426#line 831 "dhcp6_lexer.ll"
3427{
3428 switch(driver.ctx_) {
3434 default:
3435 return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_);
3436 }
3437}
3438 YY_BREAK
3439case 78:
3441#line 843 "dhcp6_lexer.ll"
3442{
3443 switch(driver.ctx_) {
3449 default:
3450 return isc::dhcp::Dhcp6Parser::make_STRING("min-preferred-lifetime", driver.loc_);
3451 }
3452}
3453 YY_BREAK
3454case 79:
3456#line 855 "dhcp6_lexer.ll"
3457{
3458 switch(driver.ctx_) {
3464 default:
3465 return isc::dhcp::Dhcp6Parser::make_STRING("max-preferred-lifetime", driver.loc_);
3466 }
3467}
3468 YY_BREAK
3469case 80:
3471#line 867 "dhcp6_lexer.ll"
3472{
3473 switch(driver.ctx_) {
3479 default:
3480 return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_);
3481 }
3482}
3483 YY_BREAK
3484case 81:
3486#line 879 "dhcp6_lexer.ll"
3487{
3488 switch(driver.ctx_) {
3494 default:
3495 return isc::dhcp::Dhcp6Parser::make_STRING("min-valid-lifetime", driver.loc_);
3496 }
3497}
3498 YY_BREAK
3499case 82:
3501#line 891 "dhcp6_lexer.ll"
3502{
3503 switch(driver.ctx_) {
3509 default:
3510 return isc::dhcp::Dhcp6Parser::make_STRING("max-valid-lifetime", driver.loc_);
3511 }
3512}
3513 YY_BREAK
3514case 83:
3516#line 903 "dhcp6_lexer.ll"
3517{
3518 switch(driver.ctx_) {
3522 return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_);
3523 default:
3524 return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_);
3525 }
3526}
3527 YY_BREAK
3528case 84:
3530#line 914 "dhcp6_lexer.ll"
3531{
3532 switch(driver.ctx_) {
3537 default:
3538 return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_);
3539 }
3540}
3541 YY_BREAK
3542case 85:
3544#line 925 "dhcp6_lexer.ll"
3545{
3546 switch(driver.ctx_) {
3549 default:
3550 return isc::dhcp::Dhcp6Parser::make_STRING("decline-probation-period", driver.loc_);
3551 }
3552}
3553 YY_BREAK
3554case 86:
3556#line 934 "dhcp6_lexer.ll"
3557{
3558 switch(driver.ctx_) {
3560 return isc::dhcp::Dhcp6Parser::make_SERVER_TAG(driver.loc_);
3561 default:
3562 return isc::dhcp::Dhcp6Parser::make_STRING("server-tag", driver.loc_);
3563 }
3564}
3565 YY_BREAK
3566case 87:
3568#line 943 "dhcp6_lexer.ll"
3569{
3570 switch(driver.ctx_) {
3573 default:
3574 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3575 }
3576}
3577 YY_BREAK
3578case 88:
3580#line 952 "dhcp6_lexer.ll"
3581{
3582 switch(driver.ctx_) {
3585 default:
3586 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3587 }
3588}
3589 YY_BREAK
3590case 89:
3592#line 961 "dhcp6_lexer.ll"
3593{
3594 switch(driver.ctx_) {
3599 default:
3600 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-send-updates", driver.loc_);
3601 }
3602}
3603 YY_BREAK
3604case 90:
3606#line 972 "dhcp6_lexer.ll"
3607{
3608 switch(driver.ctx_) {
3613 default:
3614 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-no-update", driver.loc_);
3615 }
3616}
3617 YY_BREAK
3618case 91:
3620#line 983 "dhcp6_lexer.ll"
3621{
3622 switch(driver.ctx_) {
3627 default:
3628 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-client-update", driver.loc_);
3629 }
3630}
3631 YY_BREAK
3632case 92:
3634#line 994 "dhcp6_lexer.ll"
3635{
3636 switch(driver.ctx_) {
3641 default:
3642 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3643 }
3644}
3645 YY_BREAK
3646case 93:
3648#line 1005 "dhcp6_lexer.ll"
3649{
3650 switch(driver.ctx_) {
3655 default:
3656 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-generated-prefix", driver.loc_);
3657 }
3658}
3659 YY_BREAK
3660case 94:
3662#line 1016 "dhcp6_lexer.ll"
3663{
3664 switch(driver.ctx_) {
3669 default:
3670 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
3671 }
3672}
3673 YY_BREAK
3674case 95:
3676#line 1027 "dhcp6_lexer.ll"
3677{
3678 switch(driver.ctx_) {
3683 default:
3684 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-update-on-renew", driver.loc_);
3685 }
3686}
3687 YY_BREAK
3688case 96:
3690#line 1038 "dhcp6_lexer.ll"
3691{
3692 switch(driver.ctx_) {
3697 default:
3698 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
3699 }
3700}
3701 YY_BREAK
3702case 97:
3704#line 1050 "dhcp6_lexer.ll"
3705{
3706 switch(driver.ctx_) {
3709 return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_);
3710 default:
3711 return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_);
3712 }
3713}
3714 YY_BREAK
3715case 98:
3717#line 1060 "dhcp6_lexer.ll"
3718{
3719 switch(driver.ctx_) {
3724 default:
3725 return isc::dhcp::Dhcp6Parser::make_STRING("store-extended-info", driver.loc_);
3726 }
3727}
3728 YY_BREAK
3729case 99:
3731#line 1071 "dhcp6_lexer.ll"
3732{
3733 switch (driver.ctx_) {
3735 return Dhcp6Parser::make_SHARED_NETWORKS(driver.loc_);
3736 default:
3737 return Dhcp6Parser::make_STRING("shared-networks", driver.loc_);
3738 }
3739}
3740 YY_BREAK
3741case 100:
3743#line 1080 "dhcp6_lexer.ll"
3744{
3745 switch(driver.ctx_) {
3747 return isc::dhcp::Dhcp6Parser::make_OPTION_DEF(driver.loc_);
3748 default:
3749 return isc::dhcp::Dhcp6Parser::make_STRING("option-def", driver.loc_);
3750 }
3751}
3752 YY_BREAK
3753case 101:
3755#line 1089 "dhcp6_lexer.ll"
3756{
3757 switch(driver.ctx_) {
3765 return isc::dhcp::Dhcp6Parser::make_OPTION_DATA(driver.loc_);
3766 default:
3767 return isc::dhcp::Dhcp6Parser::make_STRING("option-data", driver.loc_);
3768 }
3769}
3770 YY_BREAK
3771case 102:
3773#line 1104 "dhcp6_lexer.ll"
3774{
3775 switch(driver.ctx_) {
3784 return isc::dhcp::Dhcp6Parser::make_NAME(driver.loc_);
3785 default:
3786 return isc::dhcp::Dhcp6Parser::make_STRING("name", driver.loc_);
3787 }
3788}
3789 YY_BREAK
3790case 103:
3792#line 1120 "dhcp6_lexer.ll"
3793{
3794 switch(driver.ctx_) {
3796 return isc::dhcp::Dhcp6Parser::make_DATA(driver.loc_);
3797 default:
3798 return isc::dhcp::Dhcp6Parser::make_STRING("data", driver.loc_);
3799 }
3800}
3801 YY_BREAK
3802case 104:
3804#line 1129 "dhcp6_lexer.ll"
3805{
3806 switch(driver.ctx_) {
3808 return isc::dhcp::Dhcp6Parser::make_ALWAYS_SEND(driver.loc_);
3809 default:
3810 return isc::dhcp::Dhcp6Parser::make_STRING("always-send", driver.loc_);
3811 }
3812}
3813 YY_BREAK
3814case 105:
3816#line 1138 "dhcp6_lexer.ll"
3817{
3818 switch(driver.ctx_) {
3820 return isc::dhcp::Dhcp6Parser::make_POOLS(driver.loc_);
3821 default:
3822 return isc::dhcp::Dhcp6Parser::make_STRING("pools", driver.loc_);
3823 }
3824}
3825 YY_BREAK
3826case 106:
3828#line 1147 "dhcp6_lexer.ll"
3829{
3830 switch(driver.ctx_) {
3832 return isc::dhcp::Dhcp6Parser::make_PD_POOLS(driver.loc_);
3833 default:
3834 return isc::dhcp::Dhcp6Parser::make_STRING("pd-pools", driver.loc_);
3835 }
3836}
3837 YY_BREAK
3838case 107:
3840#line 1156 "dhcp6_lexer.ll"
3841{
3842 switch(driver.ctx_) {
3844 return isc::dhcp::Dhcp6Parser::make_PREFIX(driver.loc_);
3845 default:
3846 return isc::dhcp::Dhcp6Parser::make_STRING("prefix", driver.loc_);
3847 }
3848}
3849 YY_BREAK
3850case 108:
3852#line 1165 "dhcp6_lexer.ll"
3853{
3854 switch(driver.ctx_) {
3856 return isc::dhcp::Dhcp6Parser::make_PREFIX_LEN(driver.loc_);
3857 default:
3858 return isc::dhcp::Dhcp6Parser::make_STRING("prefix-len", driver.loc_);
3859 }
3860}
3861 YY_BREAK
3862case 109:
3864#line 1174 "dhcp6_lexer.ll"
3865{
3866 switch(driver.ctx_) {
3869 default:
3870 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix", driver.loc_);
3871 }
3872}
3873 YY_BREAK
3874case 110:
3876#line 1183 "dhcp6_lexer.ll"
3877{
3878 switch(driver.ctx_) {
3881 default:
3882 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix-len", driver.loc_);
3883 }
3884}
3885 YY_BREAK
3886case 111:
3888#line 1192 "dhcp6_lexer.ll"
3889{
3890 switch(driver.ctx_) {
3893 default:
3894 return isc::dhcp::Dhcp6Parser::make_STRING("delegated-len", driver.loc_);
3895 }
3896}
3897 YY_BREAK
3898case 112:
3900#line 1201 "dhcp6_lexer.ll"
3901{
3902 switch(driver.ctx_) {
3904 return isc::dhcp::Dhcp6Parser::make_POOL(driver.loc_);
3905 default:
3906 return isc::dhcp::Dhcp6Parser::make_STRING("pool", driver.loc_);
3907 }
3908}
3909 YY_BREAK
3910case 113:
3912#line 1210 "dhcp6_lexer.ll"
3913{
3914 switch(driver.ctx_) {
3932 default:
3933 return isc::dhcp::Dhcp6Parser::make_STRING("user-context", driver.loc_);
3934 }
3935}
3936 YY_BREAK
3937case 114:
3939#line 1234 "dhcp6_lexer.ll"
3940{
3941 switch(driver.ctx_) {
3958 return isc::dhcp::Dhcp6Parser::make_COMMENT(driver.loc_);
3959 default:
3960 return isc::dhcp::Dhcp6Parser::make_STRING("comment", driver.loc_);
3961 }
3962}
3963 YY_BREAK
3964case 115:
3966#line 1258 "dhcp6_lexer.ll"
3967{
3968 switch(driver.ctx_) {
3970 return isc::dhcp::Dhcp6Parser::make_SUBNET(driver.loc_);
3971 default:
3972 return isc::dhcp::Dhcp6Parser::make_STRING("subnet", driver.loc_);
3973 }
3974}
3975 YY_BREAK
3976case 116:
3978#line 1267 "dhcp6_lexer.ll"
3979{
3980 switch(driver.ctx_) {
3983 return isc::dhcp::Dhcp6Parser::make_INTERFACE(driver.loc_);
3984 default:
3985 return isc::dhcp::Dhcp6Parser::make_STRING("interface", driver.loc_);
3986 }
3987}
3988 YY_BREAK
3989case 117:
3991#line 1277 "dhcp6_lexer.ll"
3992{
3993 switch(driver.ctx_) {
3997 default:
3998 return isc::dhcp::Dhcp6Parser::make_STRING("interface-id", driver.loc_);
3999 }
4000}
4001 YY_BREAK
4002case 118:
4004#line 1287 "dhcp6_lexer.ll"
4005{
4006 switch(driver.ctx_) {
4008 return isc::dhcp::Dhcp6Parser::make_ID(driver.loc_);
4009 default:
4010 return isc::dhcp::Dhcp6Parser::make_STRING("id", driver.loc_);
4011 }
4012}
4013 YY_BREAK
4014case 119:
4016#line 1296 "dhcp6_lexer.ll"
4017{
4018 switch(driver.ctx_) {
4022 default:
4023 return isc::dhcp::Dhcp6Parser::make_STRING("rapid-commit", driver.loc_);
4024 }
4025}
4026 YY_BREAK
4027case 120:
4029#line 1306 "dhcp6_lexer.ll"
4030{
4031 switch(driver.ctx_) {
4036 default:
4037 return isc::dhcp::Dhcp6Parser::make_STRING("reservation-mode", driver.loc_);
4038 }
4039}
4040 YY_BREAK
4041case 121:
4043#line 1317 "dhcp6_lexer.ll"
4044{
4045 switch(driver.ctx_) {
4047 return isc::dhcp::Dhcp6Parser::make_DISABLED(driver.loc_);
4048 default:
4049 return isc::dhcp::Dhcp6Parser::make_STRING("disabled", driver.loc_);
4050 }
4051}
4052 YY_BREAK
4053case 122:
4055#line 1326 "dhcp6_lexer.ll"
4056{
4057 switch(driver.ctx_) {
4059 return isc::dhcp::Dhcp6Parser::make_DISABLED(driver.loc_);
4060 default:
4061 return isc::dhcp::Dhcp6Parser::make_STRING("off", driver.loc_);
4062 }
4063}
4064 YY_BREAK
4065case 123:
4067#line 1335 "dhcp6_lexer.ll"
4068{
4069 switch(driver.ctx_) {
4071 return isc::dhcp::Dhcp6Parser::make_OUT_OF_POOL(driver.loc_);
4072 default:
4073 return isc::dhcp::Dhcp6Parser::make_STRING("out-of-pool", driver.loc_);
4074 }
4075}
4076 YY_BREAK
4077case 124:
4079#line 1344 "dhcp6_lexer.ll"
4080{
4081 switch(driver.ctx_) {
4083 return isc::dhcp::Dhcp6Parser::make_GLOBAL(driver.loc_);
4084 default:
4085 return isc::dhcp::Dhcp6Parser::make_STRING("global", driver.loc_);
4086 }
4087}
4088 YY_BREAK
4089case 125:
4091#line 1353 "dhcp6_lexer.ll"
4092{
4093 switch(driver.ctx_) {
4095 return isc::dhcp::Dhcp6Parser::make_ALL(driver.loc_);
4096 default:
4097 return isc::dhcp::Dhcp6Parser::make_STRING("all", driver.loc_);
4098 }
4099}
4100 YY_BREAK
4101case 126:
4103#line 1362 "dhcp6_lexer.ll"
4104{
4105 switch(driver.ctx_) {
4110 default:
4111 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-global", driver.loc_);
4112 }
4113}
4114 YY_BREAK
4115case 127:
4117#line 1373 "dhcp6_lexer.ll"
4118{
4119 switch(driver.ctx_) {
4124 default:
4125 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-in-subnet", driver.loc_);
4126 }
4127}
4128 YY_BREAK
4129case 128:
4131#line 1384 "dhcp6_lexer.ll"
4132{
4133 switch(driver.ctx_) {
4138 default:
4139 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-out-of-pool", driver.loc_);
4140 }
4141}
4142 YY_BREAK
4143case 129:
4145#line 1395 "dhcp6_lexer.ll"
4146{
4147 switch(driver.ctx_) {
4150 return isc::dhcp::Dhcp6Parser::make_CODE(driver.loc_);
4151 default:
4152 return isc::dhcp::Dhcp6Parser::make_STRING("code", driver.loc_);
4153 }
4154}
4155 YY_BREAK
4156case 130:
4158#line 1405 "dhcp6_lexer.ll"
4159{
4160 switch(driver.ctx_) {
4162 return isc::dhcp::Dhcp6Parser::make_MAC_SOURCES(driver.loc_);
4163 default:
4164 return isc::dhcp::Dhcp6Parser::make_STRING("mac-sources", driver.loc_);
4165 }
4166}
4167 YY_BREAK
4168case 131:
4170#line 1414 "dhcp6_lexer.ll"
4171{
4172 switch(driver.ctx_) {
4175 default:
4176 return isc::dhcp::Dhcp6Parser::make_STRING("relay-supplied-options", driver.loc_);
4177 }
4178}
4179 YY_BREAK
4180case 132:
4182#line 1423 "dhcp6_lexer.ll"
4183{
4184 switch(driver.ctx_) {
4187 default:
4188 return isc::dhcp::Dhcp6Parser::make_STRING("host-reservation-identifiers", driver.loc_);
4189 }
4190}
4191 YY_BREAK
4192case 133:
4194#line 1432 "dhcp6_lexer.ll"
4195{
4196 switch(driver.ctx_) {
4201 default:
4202 return isc::dhcp::Dhcp6Parser::make_STRING("calculate-tee-times", driver.loc_);
4203 }
4204}
4205 YY_BREAK
4206case 134:
4208#line 1443 "dhcp6_lexer.ll"
4209{
4210 switch(driver.ctx_) {
4214 return isc::dhcp::Dhcp6Parser::make_T1_PERCENT(driver.loc_);
4215 default:
4216 return isc::dhcp::Dhcp6Parser::make_STRING("t1-percent", driver.loc_);
4217 }
4218}
4219 YY_BREAK
4220case 135:
4222#line 1454 "dhcp6_lexer.ll"
4223{
4224 switch(driver.ctx_) {
4228 return isc::dhcp::Dhcp6Parser::make_T2_PERCENT(driver.loc_);
4229 default:
4230 return isc::dhcp::Dhcp6Parser::make_STRING("t2-percent", driver.loc_);
4231 }
4232}
4233 YY_BREAK
4234case 136:
4236#line 1465 "dhcp6_lexer.ll"
4237{
4238 switch(driver.ctx_) {
4243 default:
4244 return isc::dhcp::Dhcp6Parser::make_STRING("cache-threshold", driver.loc_);
4245 }
4246}
4247 YY_BREAK
4248case 137:
4250#line 1476 "dhcp6_lexer.ll"
4251{
4252 switch(driver.ctx_) {
4257 default:
4258 return isc::dhcp::Dhcp6Parser::make_STRING("cache-max-age", driver.loc_);
4259 }
4260}
4261 YY_BREAK
4262case 138:
4264#line 1487 "dhcp6_lexer.ll"
4265{
4266 switch(driver.ctx_) {
4268 return isc::dhcp::Dhcp6Parser::make_LOGGERS(driver.loc_);
4269 default:
4270 return isc::dhcp::Dhcp6Parser::make_STRING("loggers", driver.loc_);
4271 }
4272}
4273 YY_BREAK
4274case 139:
4276#line 1496 "dhcp6_lexer.ll"
4277{
4278 switch(driver.ctx_) {
4281 default:
4282 return isc::dhcp::Dhcp6Parser::make_STRING("output_options", driver.loc_);
4283 }
4284}
4285 YY_BREAK
4286case 140:
4288#line 1505 "dhcp6_lexer.ll"
4289{
4290 switch(driver.ctx_) {
4292 return isc::dhcp::Dhcp6Parser::make_OUTPUT(driver.loc_);
4293 default:
4294 return isc::dhcp::Dhcp6Parser::make_STRING("output", driver.loc_);
4295 }
4296}
4297 YY_BREAK
4298case 141:
4300#line 1514 "dhcp6_lexer.ll"
4301{
4302 switch(driver.ctx_) {
4304 return isc::dhcp::Dhcp6Parser::make_FLUSH(driver.loc_);
4305 default:
4306 return isc::dhcp::Dhcp6Parser::make_STRING("flush", driver.loc_);
4307 }
4308}
4309 YY_BREAK
4310case 142:
4312#line 1523 "dhcp6_lexer.ll"
4313{
4314 switch(driver.ctx_) {
4316 return isc::dhcp::Dhcp6Parser::make_MAXSIZE(driver.loc_);
4317 default:
4318 return isc::dhcp::Dhcp6Parser::make_STRING("maxsize", driver.loc_);
4319 }
4320}
4321 YY_BREAK
4322case 143:
4324#line 1532 "dhcp6_lexer.ll"
4325{
4326 switch(driver.ctx_) {
4328 return isc::dhcp::Dhcp6Parser::make_MAXVER(driver.loc_);
4329 default:
4330 return isc::dhcp::Dhcp6Parser::make_STRING("maxver", driver.loc_);
4331 }
4332}
4333 YY_BREAK
4334case 144:
4336#line 1541 "dhcp6_lexer.ll"
4337{
4338 switch(driver.ctx_) {
4340 return isc::dhcp::Dhcp6Parser::make_PATTERN(driver.loc_);
4341 default:
4342 return isc::dhcp::Dhcp6Parser::make_STRING("pattern", driver.loc_);
4343 }
4344}
4345 YY_BREAK
4346case 145:
4348#line 1550 "dhcp6_lexer.ll"
4349{
4350 switch(driver.ctx_) {
4352 return isc::dhcp::Dhcp6Parser::make_DEBUGLEVEL(driver.loc_);
4353 default:
4354 return isc::dhcp::Dhcp6Parser::make_STRING("debuglevel", driver.loc_);
4355 }
4356}
4357 YY_BREAK
4358case 146:
4360#line 1559 "dhcp6_lexer.ll"
4361{
4362 switch(driver.ctx_) {
4364 return isc::dhcp::Dhcp6Parser::make_SEVERITY(driver.loc_);
4365 default:
4366 return isc::dhcp::Dhcp6Parser::make_STRING("severity", driver.loc_);
4367 }
4368}
4369 YY_BREAK
4370case 147:
4372#line 1568 "dhcp6_lexer.ll"
4373{
4374 switch(driver.ctx_) {
4378 default:
4379 return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", driver.loc_);
4380 }
4381}
4382 YY_BREAK
4383case 148:
4385#line 1578 "dhcp6_lexer.ll"
4386{
4387 switch(driver.ctx_) {
4393 default:
4394 return isc::dhcp::Dhcp6Parser::make_STRING("require-client-classes", driver.loc_);
4395 }
4396}
4397 YY_BREAK
4398case 149:
4400#line 1590 "dhcp6_lexer.ll"
4401{
4402 switch(driver.ctx_) {
4409 default:
4410 return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_);
4411 }
4412}
4413 YY_BREAK
4414case 150:
4416#line 1603 "dhcp6_lexer.ll"
4417{
4418 switch(driver.ctx_) {
4420 return isc::dhcp::Dhcp6Parser::make_TEST(driver.loc_);
4421 default:
4422 return isc::dhcp::Dhcp6Parser::make_STRING("test", driver.loc_);
4423 }
4424}
4425 YY_BREAK
4426case 151:
4428#line 1612 "dhcp6_lexer.ll"
4429{
4430 switch(driver.ctx_) {
4433 default:
4434 return isc::dhcp::Dhcp6Parser::make_STRING("only-if-required", driver.loc_);
4435 }
4436}
4437 YY_BREAK
4438case 152:
4440#line 1621 "dhcp6_lexer.ll"
4441{
4442 switch(driver.ctx_) {
4446 default:
4447 return isc::dhcp::Dhcp6Parser::make_STRING("reservations", driver.loc_);
4448 }
4449}
4450 YY_BREAK
4451case 153:
4453#line 1631 "dhcp6_lexer.ll"
4454{
4455 switch(driver.ctx_) {
4459 default:
4460 return isc::dhcp::Dhcp6Parser::make_STRING("ip-addresses", driver.loc_);
4461 }
4462}
4463 YY_BREAK
4464case 154:
4466#line 1641 "dhcp6_lexer.ll"
4467{
4468 switch(driver.ctx_) {
4470 return isc::dhcp::Dhcp6Parser::make_PREFIXES(driver.loc_);
4471 default:
4472 return isc::dhcp::Dhcp6Parser::make_STRING("prefixes", driver.loc_);
4473 }
4474}
4475 YY_BREAK
4476case 155:
4478#line 1650 "dhcp6_lexer.ll"
4479{
4480 switch(driver.ctx_) {
4484 return isc::dhcp::Dhcp6Parser::make_DUID(driver.loc_);
4485 default:
4486 return isc::dhcp::Dhcp6Parser::make_STRING("duid", driver.loc_);
4487 }
4488}
4489 YY_BREAK
4490case 156:
4492#line 1661 "dhcp6_lexer.ll"
4493{
4494 switch(driver.ctx_) {
4497 return isc::dhcp::Dhcp6Parser::make_HW_ADDRESS(driver.loc_);
4498 default:
4499 return isc::dhcp::Dhcp6Parser::make_STRING("hw-address", driver.loc_);
4500 }
4501}
4502 YY_BREAK
4503case 157:
4505#line 1671 "dhcp6_lexer.ll"
4506{
4507 switch(driver.ctx_) {
4509 return isc::dhcp::Dhcp6Parser::make_HOSTNAME(driver.loc_);
4510 default:
4511 return isc::dhcp::Dhcp6Parser::make_STRING("hostname", driver.loc_);
4512 }
4513}
4514 YY_BREAK
4515case 158:
4517#line 1680 "dhcp6_lexer.ll"
4518{
4519 switch(driver.ctx_) {
4522 return isc::dhcp::Dhcp6Parser::make_FLEX_ID(driver.loc_);
4523 default:
4524 return isc::dhcp::Dhcp6Parser::make_STRING("flex-id", driver.loc_);
4525 }
4526}
4527 YY_BREAK
4528case 159:
4530#line 1690 "dhcp6_lexer.ll"
4531{
4532 switch(driver.ctx_) {
4535 return isc::dhcp::Dhcp6Parser::make_SPACE(driver.loc_);
4536 default:
4537 return isc::dhcp::Dhcp6Parser::make_STRING("space", driver.loc_);
4538 }
4539}
4540 YY_BREAK
4541case 160:
4543#line 1700 "dhcp6_lexer.ll"
4544{
4545 switch(driver.ctx_) {
4547 return isc::dhcp::Dhcp6Parser::make_CSV_FORMAT(driver.loc_);
4548 default:
4549 return isc::dhcp::Dhcp6Parser::make_STRING("csv-format", driver.loc_);
4550 }
4551}
4552 YY_BREAK
4553case 161:
4555#line 1709 "dhcp6_lexer.ll"
4556{
4557 switch(driver.ctx_) {
4560 default:
4561 return isc::dhcp::Dhcp6Parser::make_STRING("record-types", driver.loc_);
4562 }
4563}
4564 YY_BREAK
4565case 162:
4567#line 1718 "dhcp6_lexer.ll"
4568{
4569 switch(driver.ctx_) {
4571 return isc::dhcp::Dhcp6Parser::make_ENCAPSULATE(driver.loc_);
4572 default:
4573 return isc::dhcp::Dhcp6Parser::make_STRING("encapsulate", driver.loc_);
4574 }
4575}
4576 YY_BREAK
4577case 163:
4579#line 1727 "dhcp6_lexer.ll"
4580{
4581 switch(driver.ctx_) {
4583 return isc::dhcp::Dhcp6Parser::make_ARRAY(driver.loc_);
4584 default:
4585 return isc::dhcp::Dhcp6Parser::make_STRING("array", driver.loc_);
4586 }
4587}
4588 YY_BREAK
4589case 164:
4591#line 1736 "dhcp6_lexer.ll"
4592{
4593 switch(driver.ctx_) {
4596 return isc::dhcp::Dhcp6Parser::make_RELAY(driver.loc_);
4597 default:
4598 return isc::dhcp::Dhcp6Parser::make_STRING("relay", driver.loc_);
4599 }
4600}
4601 YY_BREAK
4602case 165:
4604#line 1746 "dhcp6_lexer.ll"
4605{
4606 switch(driver.ctx_) {
4608 return isc::dhcp::Dhcp6Parser::make_IP_ADDRESS(driver.loc_);
4609 default:
4610 return isc::dhcp::Dhcp6Parser::make_STRING("ip-address", driver.loc_);
4611 }
4612}
4613 YY_BREAK
4614case 166:
4616#line 1755 "dhcp6_lexer.ll"
4617{
4618 switch(driver.ctx_) {
4621 default:
4622 return isc::dhcp::Dhcp6Parser::make_STRING("hooks-libraries", driver.loc_);
4623 }
4624}
4625 YY_BREAK
4626case 167:
4628#line 1764 "dhcp6_lexer.ll"
4629{
4630 switch(driver.ctx_) {
4632 return isc::dhcp::Dhcp6Parser::make_PARAMETERS(driver.loc_);
4633 default:
4634 return isc::dhcp::Dhcp6Parser::make_STRING("parameters", driver.loc_);
4635 }
4636}
4637 YY_BREAK
4638case 168:
4640#line 1773 "dhcp6_lexer.ll"
4641{
4642 switch(driver.ctx_) {
4644 return isc::dhcp::Dhcp6Parser::make_LIBRARY(driver.loc_);
4645 default:
4646 return isc::dhcp::Dhcp6Parser::make_STRING("library", driver.loc_);
4647 }
4648}
4649 YY_BREAK
4650case 169:
4652#line 1782 "dhcp6_lexer.ll"
4653{
4654 switch(driver.ctx_) {
4656 return isc::dhcp::Dhcp6Parser::make_SERVER_ID(driver.loc_);
4657 default:
4658 return isc::dhcp::Dhcp6Parser::make_STRING("server-id", driver.loc_);
4659 }
4660}
4661 YY_BREAK
4662case 170:
4664#line 1791 "dhcp6_lexer.ll"
4665{
4666 switch(driver.ctx_) {
4668 return isc::dhcp::Dhcp6Parser::make_LLT(driver.loc_);
4669 default:
4670 return isc::dhcp::Dhcp6Parser::make_STRING("LLT", driver.loc_);
4671 }
4672}
4673 YY_BREAK
4674case 171:
4676#line 1800 "dhcp6_lexer.ll"
4677{
4678 switch(driver.ctx_) {
4680 return isc::dhcp::Dhcp6Parser::make_EN(driver.loc_);
4681 default:
4682 return isc::dhcp::Dhcp6Parser::make_STRING("EN", driver.loc_);
4683 }
4684}
4685 YY_BREAK
4686case 172:
4688#line 1809 "dhcp6_lexer.ll"
4689{
4690 switch(driver.ctx_) {
4692 return isc::dhcp::Dhcp6Parser::make_LL(driver.loc_);
4693 default:
4694 return isc::dhcp::Dhcp6Parser::make_STRING("LL", driver.loc_);
4695 }
4696}
4697 YY_BREAK
4698case 173:
4700#line 1818 "dhcp6_lexer.ll"
4701{
4702 switch(driver.ctx_) {
4704 return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(driver.loc_);
4705 default:
4706 return isc::dhcp::Dhcp6Parser::make_STRING("identifier", driver.loc_);
4707 }
4708}
4709 YY_BREAK
4710case 174:
4712#line 1827 "dhcp6_lexer.ll"
4713{
4714 switch(driver.ctx_) {
4716 return isc::dhcp::Dhcp6Parser::make_HTYPE(driver.loc_);
4717 default:
4718 return isc::dhcp::Dhcp6Parser::make_STRING("htype", driver.loc_);
4719 }
4720}
4721 YY_BREAK
4722case 175:
4724#line 1836 "dhcp6_lexer.ll"
4725{
4726 switch(driver.ctx_) {
4728 return isc::dhcp::Dhcp6Parser::make_TIME(driver.loc_);
4729 default:
4730 return isc::dhcp::Dhcp6Parser::make_STRING("time", driver.loc_);
4731 }
4732}
4733 YY_BREAK
4734case 176:
4736#line 1845 "dhcp6_lexer.ll"
4737{
4738 switch(driver.ctx_) {
4741 default:
4742 return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", driver.loc_);
4743 }
4744}
4745 YY_BREAK
4746case 177:
4748#line 1854 "dhcp6_lexer.ll"
4749{
4750 switch(driver.ctx_) {
4753 default:
4754 return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", driver.loc_);
4755 }
4756}
4757 YY_BREAK
4758case 178:
4760#line 1863 "dhcp6_lexer.ll"
4761{
4762 switch(driver.ctx_) {
4765 default:
4766 return isc::dhcp::Dhcp6Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
4767 }
4768}
4769 YY_BREAK
4770case 179:
4772#line 1872 "dhcp6_lexer.ll"
4773{
4774 switch(driver.ctx_) {
4777 default:
4778 return isc::dhcp::Dhcp6Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
4779 }
4780}
4781 YY_BREAK
4782case 180:
4784#line 1881 "dhcp6_lexer.ll"
4785{
4786 switch(driver.ctx_) {
4789 default:
4790 return isc::dhcp::Dhcp6Parser::make_STRING("hold-reclaimed-time", driver.loc_);
4791 }
4792}
4793 YY_BREAK
4794case 181:
4796#line 1890 "dhcp6_lexer.ll"
4797{
4798 switch(driver.ctx_) {
4801 default:
4802 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-leases", driver.loc_);
4803 }
4804}
4805 YY_BREAK
4806case 182:
4808#line 1899 "dhcp6_lexer.ll"
4809{
4810 switch(driver.ctx_) {
4813 default:
4814 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-time", driver.loc_);
4815 }
4816}
4817 YY_BREAK
4818case 183:
4820#line 1908 "dhcp6_lexer.ll"
4821{
4822 switch(driver.ctx_) {
4825 default:
4826 return isc::dhcp::Dhcp6Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
4827 }
4828}
4829 YY_BREAK
4830case 184:
4832#line 1917 "dhcp6_lexer.ll"
4833{
4834 switch(driver.ctx_) {
4837 default:
4838 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp4o6-port", driver.loc_);
4839 }
4840}
4841 YY_BREAK
4842case 185:
4844#line 1926 "dhcp6_lexer.ll"
4845{
4846 switch(driver.ctx_) {
4849 default:
4850 return isc::dhcp::Dhcp6Parser::make_STRING("multi-threading", driver.loc_);
4851 }
4852}
4853 YY_BREAK
4854case 186:
4856#line 1935 "dhcp6_lexer.ll"
4857{
4858 switch(driver.ctx_) {
4861 default:
4862 return isc::dhcp::Dhcp6Parser::make_STRING("enable-multi-threading", driver.loc_);
4863 }
4864}
4865 YY_BREAK
4866case 187:
4868#line 1944 "dhcp6_lexer.ll"
4869{
4870 switch(driver.ctx_) {
4873 default:
4874 return isc::dhcp::Dhcp6Parser::make_STRING("thread-pool-size", driver.loc_);
4875 }
4876}
4877 YY_BREAK
4878case 188:
4880#line 1953 "dhcp6_lexer.ll"
4881{
4882 switch(driver.ctx_) {
4885 default:
4886 return isc::dhcp::Dhcp6Parser::make_STRING("packet-queue-size", driver.loc_);
4887 }
4888}
4889 YY_BREAK
4890case 189:
4892#line 1962 "dhcp6_lexer.ll"
4893{
4894 switch(driver.ctx_) {
4897 default:
4898 return isc::dhcp::Dhcp6Parser::make_STRING("control-socket", driver.loc_);
4899 }
4900}
4901 YY_BREAK
4902case 190:
4904#line 1971 "dhcp6_lexer.ll"
4905{
4906 switch(driver.ctx_) {
4908 return isc::dhcp::Dhcp6Parser::make_SOCKET_TYPE(driver.loc_);
4909 default:
4910 return isc::dhcp::Dhcp6Parser::make_STRING("socket-type", driver.loc_);
4911 }
4912}
4913 YY_BREAK
4914case 191:
4916#line 1980 "dhcp6_lexer.ll"
4917{
4918 switch(driver.ctx_) {
4920 return isc::dhcp::Dhcp6Parser::make_SOCKET_NAME(driver.loc_);
4921 default:
4922 return isc::dhcp::Dhcp6Parser::make_STRING("socket-name", driver.loc_);
4923 }
4924}
4925 YY_BREAK
4926case 192:
4928#line 1989 "dhcp6_lexer.ll"
4929{
4930 switch(driver.ctx_) {
4933 default:
4934 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-queue-control", driver.loc_);
4935 }
4936}
4937 YY_BREAK
4938case 193:
4940#line 1998 "dhcp6_lexer.ll"
4941{
4942 switch(driver.ctx_) {
4945 default:
4946 return isc::dhcp::Dhcp6Parser::make_STRING("enable-queue", driver.loc_);
4947 }
4948}
4949 YY_BREAK
4950case 194:
4952#line 2007 "dhcp6_lexer.ll"
4953{
4954 switch(driver.ctx_) {
4956 return isc::dhcp::Dhcp6Parser::make_QUEUE_TYPE(driver.loc_);
4957 default:
4958 return isc::dhcp::Dhcp6Parser::make_STRING("queue-type", driver.loc_);
4959 }
4960}
4961 YY_BREAK
4962case 195:
4964#line 2016 "dhcp6_lexer.ll"
4965{
4966 switch(driver.ctx_) {
4968 return isc::dhcp::Dhcp6Parser::make_CAPACITY(driver.loc_);
4969 default:
4970 return isc::dhcp::Dhcp6Parser::make_STRING("capacity", driver.loc_);
4971 }
4972}
4973 YY_BREAK
4974case 196:
4976#line 2025 "dhcp6_lexer.ll"
4977{
4978 switch(driver.ctx_) {
4980 return isc::dhcp::Dhcp6Parser::make_DHCP_DDNS(driver.loc_);
4981 default:
4982 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-ddns", driver.loc_);
4983 }
4984}
4985 YY_BREAK
4986case 197:
4988#line 2034 "dhcp6_lexer.ll"
4989{
4990 switch(driver.ctx_) {
4993 default:
4994 return isc::dhcp::Dhcp6Parser::make_STRING("ip-reservations-unique", driver.loc_);
4995 }
4996}
4997 YY_BREAK
4998case 198:
5000#line 2043 "dhcp6_lexer.ll"
5001{
5002 switch(driver.ctx_) {
5005 default:
5006 return isc::dhcp::Dhcp6Parser::make_STRING("compatibility", driver.loc_);
5007 }
5008}
5009 YY_BREAK
5010case 199:
5012#line 2052 "dhcp6_lexer.ll"
5013{
5014 switch(driver.ctx_) {
5017 default:
5018 return isc::dhcp::Dhcp6Parser::make_STRING("lenient-option-parsing", driver.loc_);
5019 }
5020}
5021 YY_BREAK
5022case 200:
5024#line 2061 "dhcp6_lexer.ll"
5025{
5026 /* A string has been matched. It contains the actual string and single quotes.
5027 We need to get those quotes out of the way and just use its content, e.g.
5028 for 'foo' we should get foo */
5029 std::string raw(yytext+1);
5030 size_t len = raw.size() - 1;
5031 raw.resize(len);
5032 std::string decoded;
5033 decoded.reserve(len);
5034 for (size_t pos = 0; pos < len; ++pos) {
5035 int b = 0;
5036 char c = raw[pos];
5037 switch (c) {
5038 case '"':
5039 /* impossible condition */
5040 driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
5041 break;
5042 case '\\':
5043 ++pos;
5044 if (pos >= len) {
5045 /* impossible condition */
5046 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
5047 }
5048 c = raw[pos];
5049 switch (c) {
5050 case '"':
5051 case '\\':
5052 case '/':
5053 decoded.push_back(c);
5054 break;
5055 case 'b':
5056 decoded.push_back('\b');
5057 break;
5058 case 'f':
5059 decoded.push_back('\f');
5060 break;
5061 case 'n':
5062 decoded.push_back('\n');
5063 break;
5064 case 'r':
5065 decoded.push_back('\r');
5066 break;
5067 case 't':
5068 decoded.push_back('\t');
5069 break;
5070 case 'u':
5071 /* support only \u0000 to \u00ff */
5072 ++pos;
5073 if (pos + 4 > len) {
5074 /* impossible condition */
5075 driver.error(driver.loc_,
5076 "Overflow unicode escape in \"" + raw + "\"");
5077 }
5078 if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
5079 driver.error(driver.loc_,
5080 "Unsupported unicode escape in \"" + raw + "\"",
5081 pos + 1);
5082 }
5083 pos += 2;
5084 c = raw[pos];
5085 if ((c >= '0') && (c <= '9')) {
5086 b = (c - '0') << 4;
5087 } else if ((c >= 'A') && (c <= 'F')) {
5088 b = (c - 'A' + 10) << 4;
5089 } else if ((c >= 'a') && (c <= 'f')) {
5090 b = (c - 'a' + 10) << 4;
5091 } else {
5092 /* impossible condition */
5093 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5094 }
5095 pos++;
5096 c = raw[pos];
5097 if ((c >= '0') && (c <= '9')) {
5098 b |= c - '0';
5099 } else if ((c >= 'A') && (c <= 'F')) {
5100 b |= c - 'A' + 10;
5101 } else if ((c >= 'a') && (c <= 'f')) {
5102 b |= c - 'a' + 10;
5103 } else {
5104 /* impossible condition */
5105 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5106 }
5107 decoded.push_back(static_cast<char>(b & 0xff));
5108 break;
5109 default:
5110 /* impossible condition */
5111 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5112 }
5113 break;
5114 default:
5115 if ((c >= 0) && (c < 0x20)) {
5116 /* impossible condition */
5117 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5118 }
5119 decoded.push_back(c);
5120 }
5121 }
5122
5123 return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
5124}
5125 YY_BREAK
5126case 201:
5127/* rule 201 can match eol */
5129#line 2162 "dhcp6_lexer.ll"
5130{
5131 /* Bad string with a forbidden control character inside */
5132 std::string raw(yytext+1);
5133 size_t len = raw.size() - 1;
5134 size_t pos = 0;
5135 for (; pos < len; ++pos) {
5136 char c = raw[pos];
5137 if ((c >= 0) && (c < 0x20)) {
5138 break;
5139 }
5140 }
5141 driver.error(driver.loc_,
5142 "Invalid control in " + std::string(yytext),
5143 pos + 1);
5144}
5145 YY_BREAK
5146case 202:
5147/* rule 202 can match eol */
5149#line 2178 "dhcp6_lexer.ll"
5150{
5151 /* Bad string with a bad escape inside */
5152 std::string raw(yytext+1);
5153 size_t len = raw.size() - 1;
5154 size_t pos = 0;
5155 bool found = false;
5156 for (; pos < len; ++pos) {
5157 if (found) {
5158 break;
5159 }
5160 char c = raw[pos];
5161 if (c == '\\') {
5162 ++pos;
5163 c = raw[pos];
5164 switch (c) {
5165 case '"':
5166 case '\\':
5167 case '/':
5168 case 'b':
5169 case 'f':
5170 case 'n':
5171 case 'r':
5172 case 't':
5173 break;
5174 case 'u':
5175 if ((pos + 4 > len) ||
5176 !std::isxdigit(raw[pos + 1]) ||
5177 !std::isxdigit(raw[pos + 2]) ||
5178 !std::isxdigit(raw[pos + 3]) ||
5179 !std::isxdigit(raw[pos + 4])) {
5180 found = true;
5181 }
5182 break;
5183 default:
5184 found = true;
5185 break;
5186 }
5187 }
5188 }
5189 /* The rule stops on the first " including on \" so add ... in this case */
5190 std::string trailer = "";
5191 if (raw[len - 1] == '\\') {
5192 trailer = "...";
5193 }
5194 driver.error(driver.loc_,
5195 "Bad escape in " + std::string(yytext) + trailer,
5196 pos);
5197}
5198 YY_BREAK
5199case 203:
5201#line 2227 "dhcp6_lexer.ll"
5202{
5203 /* Bad string with an open escape at the end */
5204 std::string raw(yytext+1);
5205 driver.error(driver.loc_,
5206 "Overflow escape in " + std::string(yytext),
5207 raw.size() + 1);
5208}
5209 YY_BREAK
5210case 204:
5212#line 2235 "dhcp6_lexer.ll"
5213{
5214 /* Bad string with an open unicode escape at the end */
5215 std::string raw(yytext+1);
5216 size_t pos = raw.size() - 1;
5217 for (; pos > 0; --pos) {
5218 char c = raw[pos];
5219 if (c == 'u') {
5220 break;
5221 }
5222 }
5223 driver.error(driver.loc_,
5224 "Overflow unicode escape in " + std::string(yytext),
5225 pos + 1);
5226}
5227 YY_BREAK
5228case 205:
5230#line 2250 "dhcp6_lexer.ll"
5231{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
5232 YY_BREAK
5233case 206:
5235#line 2251 "dhcp6_lexer.ll"
5236{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
5237 YY_BREAK
5238case 207:
5240#line 2252 "dhcp6_lexer.ll"
5241{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
5242 YY_BREAK
5243case 208:
5245#line 2253 "dhcp6_lexer.ll"
5246{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
5247 YY_BREAK
5248case 209:
5250#line 2254 "dhcp6_lexer.ll"
5251{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
5252 YY_BREAK
5253case 210:
5255#line 2255 "dhcp6_lexer.ll"
5256{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
5257 YY_BREAK
5258case 211:
5260#line 2257 "dhcp6_lexer.ll"
5261{
5262 /* An integer was found. */
5263 std::string tmp(yytext);
5264 int64_t integer = 0;
5265 try {
5266 /* In substring we want to use negative values (e.g. -1).
5267 In enterprise-id we need to use values up to 0xffffffff.
5268 To cover both of those use cases, we need at least
5269 int64_t. */
5270 integer = boost::lexical_cast<int64_t>(tmp);
5271 } catch (const boost::bad_lexical_cast &) {
5272 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5273 }
5274
5275 /* The parser needs the string form as double conversion is no lossless */
5276 return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
5277}
5278 YY_BREAK
5279case 212:
5281#line 2275 "dhcp6_lexer.ll"
5282{
5283 /* A floating point was found. */
5284 std::string tmp(yytext);
5285 double fp = 0.0;
5286 try {
5287 fp = boost::lexical_cast<double>(tmp);
5288 } catch (const boost::bad_lexical_cast &) {
5289 driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
5290 }
5291
5292 return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
5293}
5294 YY_BREAK
5295case 213:
5297#line 2288 "dhcp6_lexer.ll"
5298{
5299 string tmp(yytext);
5300 return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
5301}
5302 YY_BREAK
5303case 214:
5305#line 2293 "dhcp6_lexer.ll"
5306{
5307 return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
5308}
5309 YY_BREAK
5310case 215:
5312#line 2297 "dhcp6_lexer.ll"
5313driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
5314 YY_BREAK
5315case 216:
5317#line 2299 "dhcp6_lexer.ll"
5318driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
5319 YY_BREAK
5320case 217:
5322#line 2301 "dhcp6_lexer.ll"
5323driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
5324 YY_BREAK
5325case 218:
5327#line 2303 "dhcp6_lexer.ll"
5328driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
5329 YY_BREAK
5330case YY_STATE_EOF(INITIAL):
5331#line 2305 "dhcp6_lexer.ll"
5332{
5333 if (driver.states_.empty()) {
5334 return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
5335 }
5336 driver.loc_ = driver.locs_.back();
5337 driver.locs_.pop_back();
5338 driver.file_ = driver.files_.back();
5339 driver.files_.pop_back();
5340 if (driver.sfile_) {
5341 fclose(driver.sfile_);
5342 driver.sfile_ = 0;
5343 }
5344 if (!driver.sfiles_.empty()) {
5345 driver.sfile_ = driver.sfiles_.back();
5346 driver.sfiles_.pop_back();
5347 }
5348 parser6__delete_buffer(YY_CURRENT_BUFFER);
5349 parser6__switch_to_buffer(driver.states_.back());
5350 driver.states_.pop_back();
5351
5352 BEGIN(DIR_EXIT);
5353}
5354 YY_BREAK
5355case 219:
5357#line 2328 "dhcp6_lexer.ll"
5358ECHO;
5359 YY_BREAK
5360#line 5360 "dhcp6_lexer.cc"
5361
5362 case YY_END_OF_BUFFER:
5363 {
5364 /* Amount of text matched not including the EOB char. */
5365 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5366
5367 /* Undo the effects of YY_DO_BEFORE_ACTION. */
5368 *yy_cp = (yy_hold_char);
5370
5371 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5372 {
5373 /* We're scanning a new file or input source. It's
5374 * possible that this happened because the user
5375 * just pointed yyin at a new source and called
5376 * yylex(). If so, then we have to assure
5377 * consistency between YY_CURRENT_BUFFER and our
5378 * globals. Here is the right place to do so, because
5379 * this is the first action (other than possibly a
5380 * back-up) that will match for the new input source.
5381 */
5382 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5383/* %if-c-only */
5384 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
5385/* %endif */
5386/* %if-c++-only */
5387/* %endif */
5388 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5389 }
5390
5391 /* Note that here we test for yy_c_buf_p "<=" to the position
5392 * of the first EOB in the buffer, since yy_c_buf_p will
5393 * already have been incremented past the NUL character
5394 * (since all states make transitions on EOB to the
5395 * end-of-buffer state). Contrast this with the test
5396 * in input().
5397 */
5398 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5399 { /* This was really a NUL. */
5400 yy_state_type yy_next_state;
5401
5402 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5403
5404 yy_current_state = yy_get_previous_state( );
5405
5406 /* Okay, we're now positioned to make the NUL
5407 * transition. We couldn't have
5408 * yy_get_previous_state() go ahead and do it
5409 * for us because it doesn't know how to deal
5410 * with the possibility of jamming (and we don't
5411 * want to build jamming into it because then it
5412 * will run more slowly).
5413 */
5414
5415 yy_next_state = yy_try_NUL_trans( yy_current_state );
5416
5418
5419 if ( yy_next_state )
5420 {
5421 /* Consume the NUL. */
5422 yy_cp = ++(yy_c_buf_p);
5423 yy_current_state = yy_next_state;
5424 goto yy_match;
5425 }
5426
5427 else
5428 {
5429/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
5430 yy_cp = (yy_last_accepting_cpos);
5431 yy_current_state = (yy_last_accepting_state);
5432 goto yy_find_action;
5433 }
5434 }
5435
5436 else switch ( yy_get_next_buffer( ) )
5437 {
5439 {
5440 (yy_did_buffer_switch_on_eof) = 0;
5441
5442 if ( yywrap( ) )
5443 {
5444 /* Note: because we've taken care in
5445 * yy_get_next_buffer() to have set up
5446 * yytext, we can now set up
5447 * yy_c_buf_p so that if some total
5448 * hoser (like flex itself) wants to
5449 * call the scanner after we return the
5450 * YY_NULL, it'll still work - another
5451 * YY_NULL will get returned.
5452 */
5453 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5454
5456 goto do_action;
5457 }
5458
5459 else
5460 {
5461 if ( ! (yy_did_buffer_switch_on_eof) )
5463 }
5464 break;
5465 }
5466
5468 (yy_c_buf_p) =
5469 (yytext_ptr) + yy_amount_of_matched_text;
5470
5471 yy_current_state = yy_get_previous_state( );
5472
5473 yy_cp = (yy_c_buf_p);
5475 goto yy_match;
5476
5477 case EOB_ACT_LAST_MATCH:
5478 (yy_c_buf_p) =
5479 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5480
5481 yy_current_state = yy_get_previous_state( );
5482
5483 yy_cp = (yy_c_buf_p);
5485 goto yy_find_action;
5486 }
5487 break;
5488 }
5489
5490 default:
5492 "fatal flex scanner internal error--no action found" );
5493 } /* end of action switch */
5494 } /* end of scanning one token */
5495 } /* end of user's declarations */
5496} /* end of yylex */
5497/* %ok-for-header */
5498
5499/* %if-c++-only */
5500/* %not-for-header */
5501/* %ok-for-header */
5502
5503/* %endif */
5504
5505/* yy_get_next_buffer - try to read in a new buffer
5506 *
5507 * Returns a code representing an action:
5508 * EOB_ACT_LAST_MATCH -
5509 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5510 * EOB_ACT_END_OF_FILE - end of file
5511 */
5512/* %if-c-only */
5513static int yy_get_next_buffer (void)
5514/* %endif */
5515/* %if-c++-only */
5516/* %endif */
5517{
5518 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5519 char *source = (yytext_ptr);
5520 int number_to_move, i;
5521 int ret_val;
5522
5523 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
5525 "fatal flex scanner internal error--end of buffer missed" );
5526
5527 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
5528 { /* Don't try to fill the buffer, so this is an EOF. */
5529 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
5530 {
5531 /* We matched a single character, the EOB, so
5532 * treat this as a final EOF.
5533 */
5534 return EOB_ACT_END_OF_FILE;
5535 }
5536
5537 else
5538 {
5539 /* We matched some text prior to the EOB, first
5540 * process it.
5541 */
5542 return EOB_ACT_LAST_MATCH;
5543 }
5544 }
5545
5546 /* Try to read more data. */
5547
5548 /* First move last chars to start of buffer. */
5549 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
5550
5551 for ( i = 0; i < number_to_move; ++i )
5552 *(dest++) = *(source++);
5553
5554 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
5555 /* don't do the read, it's not guaranteed to return an EOF,
5556 * just force an EOF
5557 */
5558 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
5559
5560 else
5561 {
5562 int num_to_read =
5563 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
5564
5565 while ( num_to_read <= 0 )
5566 { /* Not enough room in the buffer - grow it. */
5567
5568 /* just a shorter name for the current buffer */
5570
5571 int yy_c_buf_p_offset =
5572 (int) ((yy_c_buf_p) - b->yy_ch_buf);
5573
5574 if ( b->yy_is_our_buffer )
5575 {
5576 int new_size = b->yy_buf_size * 2;
5577
5578 if ( new_size <= 0 )
5579 b->yy_buf_size += b->yy_buf_size / 8;
5580 else
5581 b->yy_buf_size *= 2;
5582
5583 b->yy_ch_buf = (char *)
5584 /* Include room in for 2 EOB chars. */
5585 yyrealloc( (void *) b->yy_ch_buf,
5586 (yy_size_t) (b->yy_buf_size + 2) );
5587 }
5588 else
5589 /* Can't grow it, we don't own it. */
5590 b->yy_ch_buf = NULL;
5591
5592 if ( ! b->yy_ch_buf )
5594 "fatal error - scanner input buffer overflow" );
5595
5596 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
5597
5598 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
5599 number_to_move - 1;
5600
5601 }
5602
5603 if ( num_to_read > YY_READ_BUF_SIZE )
5604 num_to_read = YY_READ_BUF_SIZE;
5605
5606 /* Read in more data. */
5607 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
5608 (yy_n_chars), num_to_read );
5609
5610 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5611 }
5612
5613 if ( (yy_n_chars) == 0 )
5614 {
5615 if ( number_to_move == YY_MORE_ADJ )
5616 {
5617 ret_val = EOB_ACT_END_OF_FILE;
5618 yyrestart( yyin );
5619 }
5620
5621 else
5622 {
5623 ret_val = EOB_ACT_LAST_MATCH;
5624 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
5626 }
5627 }
5628
5629 else
5630 ret_val = EOB_ACT_CONTINUE_SCAN;
5631
5632 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
5633 /* Extend the array by 50%, plus the number we really need. */
5634 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
5635 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
5636 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
5637 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
5638 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
5639 /* "- 2" to take care of EOB's */
5640 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
5641 }
5642
5643 (yy_n_chars) += number_to_move;
5644 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
5645 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
5646
5647 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
5648
5649 return ret_val;
5650}
5651
5652/* yy_get_previous_state - get the state just before the EOB char was reached */
5653
5654/* %if-c-only */
5655/* %not-for-header */
5656 static yy_state_type yy_get_previous_state (void)
5657/* %endif */
5658/* %if-c++-only */
5659/* %endif */
5660{
5661 yy_state_type yy_current_state;
5662 char *yy_cp;
5663
5664/* %% [15.0] code to get the start state into yy_current_state goes here */
5665 yy_current_state = (yy_start);
5666
5667 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
5668 {
5669/* %% [16.0] code to find the next state goes here */
5670 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
5671 if ( yy_accept[yy_current_state] )
5672 {
5673 (yy_last_accepting_state) = yy_current_state;
5674 (yy_last_accepting_cpos) = yy_cp;
5675 }
5676 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5677 {
5678 yy_current_state = (int) yy_def[yy_current_state];
5679 if ( yy_current_state >= 2025 )
5680 yy_c = yy_meta[yy_c];
5681 }
5682 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5683 }
5684
5685 return yy_current_state;
5686}
5687
5688/* yy_try_NUL_trans - try to make a transition on the NUL character
5689 *
5690 * synopsis
5691 * next_state = yy_try_NUL_trans( current_state );
5692 */
5693/* %if-c-only */
5694 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
5695/* %endif */
5696/* %if-c++-only */
5697/* %endif */
5698{
5699 int yy_is_jam;
5700 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
5701 char *yy_cp = (yy_c_buf_p);
5702
5703 YY_CHAR yy_c = 1;
5704 if ( yy_accept[yy_current_state] )
5705 {
5706 (yy_last_accepting_state) = yy_current_state;
5707 (yy_last_accepting_cpos) = yy_cp;
5708 }
5709 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5710 {
5711 yy_current_state = (int) yy_def[yy_current_state];
5712 if ( yy_current_state >= 2025 )
5713 yy_c = yy_meta[yy_c];
5714 }
5715 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5716 yy_is_jam = (yy_current_state == 2024);
5717
5718 return yy_is_jam ? 0 : yy_current_state;
5719}
5720
5721#ifndef YY_NO_UNPUT
5722/* %if-c-only */
5723
5724/* %endif */
5725#endif
5726
5727/* %if-c-only */
5728#ifndef YY_NO_INPUT
5729#ifdef __cplusplus
5730 static int yyinput (void)
5731#else
5732 static int input (void)
5733#endif
5734
5735/* %endif */
5736/* %if-c++-only */
5737/* %endif */
5738{
5739 int c;
5740
5741 *(yy_c_buf_p) = (yy_hold_char);
5742
5743 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
5744 {
5745 /* yy_c_buf_p now points to the character we want to return.
5746 * If this occurs *before* the EOB characters, then it's a
5747 * valid NUL; if not, then we've hit the end of the buffer.
5748 */
5749 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5750 /* This was really a NUL. */
5751 *(yy_c_buf_p) = '\0';
5752
5753 else
5754 { /* need more input */
5755 int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
5756 ++(yy_c_buf_p);
5757
5758 switch ( yy_get_next_buffer( ) )
5759 {
5760 case EOB_ACT_LAST_MATCH:
5761 /* This happens because yy_g_n_b()
5762 * sees that we've accumulated a
5763 * token and flags that we need to
5764 * try matching the token before
5765 * proceeding. But for input(),
5766 * there's no matching to consider.
5767 * So convert the EOB_ACT_LAST_MATCH
5768 * to EOB_ACT_END_OF_FILE.
5769 */
5770
5771 /* Reset buffer status. */
5772 yyrestart( yyin );
5773
5774 /*FALLTHROUGH*/
5775
5777 {
5778 if ( yywrap( ) )
5779 return 0;
5780
5781 if ( ! (yy_did_buffer_switch_on_eof) )
5783#ifdef __cplusplus
5784 return yyinput();
5785#else
5786 return input();
5787#endif
5788 }
5789
5791 (yy_c_buf_p) = (yytext_ptr) + offset;
5792 break;
5793 }
5794 }
5795 }
5796
5797 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
5798 *(yy_c_buf_p) = '\0'; /* preserve yytext */
5799 (yy_hold_char) = *++(yy_c_buf_p);
5800
5801/* %% [19.0] update BOL and yylineno */
5802
5803 return c;
5804}
5805/* %if-c-only */
5806#endif /* ifndef YY_NO_INPUT */
5807/* %endif */
5808
5814/* %if-c-only */
5815 void yyrestart (FILE * input_file )
5816/* %endif */
5817/* %if-c++-only */
5818/* %endif */
5819{
5820
5821 if ( ! YY_CURRENT_BUFFER ){
5825 }
5826
5827 yy_init_buffer( YY_CURRENT_BUFFER, input_file );
5829}
5830
5831/* %if-c++-only */
5832/* %endif */
5833
5838/* %if-c-only */
5840/* %endif */
5841/* %if-c++-only */
5842/* %endif */
5843{
5844
5845 /* TODO. We should be able to replace this entire function body
5846 * with
5847 * yypop_buffer_state();
5848 * yypush_buffer_state(new_buffer);
5849 */
5851 if ( YY_CURRENT_BUFFER == new_buffer )
5852 return;
5853
5854 if ( YY_CURRENT_BUFFER )
5855 {
5856 /* Flush out information for old buffer. */
5857 *(yy_c_buf_p) = (yy_hold_char);
5858 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
5859 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5860 }
5861
5862 YY_CURRENT_BUFFER_LVALUE = new_buffer;
5864
5865 /* We don't actually know whether we did this switch during
5866 * EOF (yywrap()) processing, but the only time this flag
5867 * is looked at is after yywrap() is called, so it's safe
5868 * to go ahead and always set it.
5869 */
5870 (yy_did_buffer_switch_on_eof) = 1;
5871}
5872
5873/* %if-c-only */
5874static void yy_load_buffer_state (void)
5875/* %endif */
5876/* %if-c++-only */
5877/* %endif */
5878{
5879 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5880 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
5881/* %if-c-only */
5882 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
5883/* %endif */
5884/* %if-c++-only */
5885/* %endif */
5886 (yy_hold_char) = *(yy_c_buf_p);
5887}
5888
5895/* %if-c-only */
5896 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
5897/* %endif */
5898/* %if-c++-only */
5899/* %endif */
5900{
5902
5903 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
5904 if ( ! b )
5905 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5906
5907 b->yy_buf_size = size;
5908
5909 /* yy_ch_buf has to be 2 characters longer than the size given because
5910 * we need to put in 2 end-of-buffer characters.
5911 */
5912 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
5913 if ( ! b->yy_ch_buf )
5914 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5915
5916 b->yy_is_our_buffer = 1;
5917
5918 yy_init_buffer( b, file );
5919
5920 return b;
5921}
5922
5923/* %if-c++-only */
5924/* %endif */
5925
5930/* %if-c-only */
5932/* %endif */
5933/* %if-c++-only */
5934/* %endif */
5935{
5936
5937 if ( ! b )
5938 return;
5939
5940 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
5942
5943 if ( b->yy_is_our_buffer )
5944 yyfree( (void *) b->yy_ch_buf );
5945
5946 yyfree( (void *) b );
5947}
5948
5949/* Initializes or reinitializes a buffer.
5950 * This function is sometimes called more than once on the same buffer,
5951 * such as during a yyrestart() or at EOF.
5952 */
5953/* %if-c-only */
5954 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
5955/* %endif */
5956/* %if-c++-only */
5957/* %endif */
5958
5959{
5960 int oerrno = errno;
5961
5962 yy_flush_buffer( b );
5963
5964/* %if-c-only */
5965 b->yy_input_file = file;
5966/* %endif */
5967/* %if-c++-only */
5968/* %endif */
5969 b->yy_fill_buffer = 1;
5970
5971 /* If b is the current buffer, then yy_init_buffer was _probably_
5972 * called from yyrestart() or through yy_get_next_buffer.
5973 * In that case, we don't want to reset the lineno or column.
5974 */
5975 if (b != YY_CURRENT_BUFFER){
5976 b->yy_bs_lineno = 1;
5977 b->yy_bs_column = 0;
5978 }
5979
5980/* %if-c-only */
5981
5982 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
5983
5984/* %endif */
5985/* %if-c++-only */
5986/* %endif */
5987 errno = oerrno;
5988}
5989
5994/* %if-c-only */
5996/* %endif */
5997/* %if-c++-only */
5998/* %endif */
5999{
6000 if ( ! b )
6001 return;
6002
6003 b->yy_n_chars = 0;
6004
6005 /* We always need two end-of-buffer characters. The first causes
6006 * a transition to the end-of-buffer state. The second causes
6007 * a jam in that state.
6008 */
6011
6012 b->yy_buf_pos = &b->yy_ch_buf[0];
6013
6014 b->yy_at_bol = 1;
6016
6017 if ( b == YY_CURRENT_BUFFER )
6019}
6020
6021/* %if-c-or-c++ */
6028/* %if-c-only */
6030/* %endif */
6031/* %if-c++-only */
6032/* %endif */
6033{
6034 if (new_buffer == NULL)
6035 return;
6036
6038
6039 /* This block is copied from yy_switch_to_buffer. */
6040 if ( YY_CURRENT_BUFFER )
6041 {
6042 /* Flush out information for old buffer. */
6043 *(yy_c_buf_p) = (yy_hold_char);
6044 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6045 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6046 }
6047
6048 /* Only push if top exists. Otherwise, replace top. */
6050 (yy_buffer_stack_top)++;
6051 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6052
6053 /* copied from yy_switch_to_buffer. */
6055 (yy_did_buffer_switch_on_eof) = 1;
6056}
6057/* %endif */
6058
6059/* %if-c-or-c++ */
6064/* %if-c-only */
6065void yypop_buffer_state (void)
6066/* %endif */
6067/* %if-c++-only */
6068/* %endif */
6069{
6070 if (!YY_CURRENT_BUFFER)
6071 return;
6072
6075 if ((yy_buffer_stack_top) > 0)
6076 --(yy_buffer_stack_top);
6077
6078 if (YY_CURRENT_BUFFER) {
6080 (yy_did_buffer_switch_on_eof) = 1;
6081 }
6082}
6083/* %endif */
6084
6085/* %if-c-or-c++ */
6086/* Allocates the stack if it does not exist.
6087 * Guarantees space for at least one push.
6088 */
6089/* %if-c-only */
6090static void yyensure_buffer_stack (void)
6091/* %endif */
6092/* %if-c++-only */
6093/* %endif */
6094{
6095 yy_size_t num_to_alloc;
6096
6097 if (!(yy_buffer_stack)) {
6098
6099 /* First allocation is just for 2 elements, since we don't know if this
6100 * scanner will even need a stack. We use 2 instead of 1 to avoid an
6101 * immediate realloc on the next call.
6102 */
6103 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
6104 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
6105 (num_to_alloc * sizeof(struct yy_buffer_state*)
6106 );
6107 if ( ! (yy_buffer_stack) )
6108 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6109
6110 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6111
6112 (yy_buffer_stack_max) = num_to_alloc;
6113 (yy_buffer_stack_top) = 0;
6114 return;
6115 }
6116
6117 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6118
6119 /* Increase the buffer to prepare for a possible push. */
6120 yy_size_t grow_size = 8 /* arbitrary grow size */;
6121
6122 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6123 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
6124 ((yy_buffer_stack),
6125 num_to_alloc * sizeof(struct yy_buffer_state*)
6126 );
6127 if ( ! (yy_buffer_stack) )
6128 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6129
6130 /* zero only the new slots.*/
6131 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6132 (yy_buffer_stack_max) = num_to_alloc;
6133 }
6134}
6135/* %endif */
6136
6137/* %if-c-only */
6145{
6147
6148 if ( size < 2 ||
6149 base[size-2] != YY_END_OF_BUFFER_CHAR ||
6150 base[size-1] != YY_END_OF_BUFFER_CHAR )
6151 /* They forgot to leave room for the EOB's. */
6152 return NULL;
6153
6154 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6155 if ( ! b )
6156 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
6157
6158 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
6159 b->yy_buf_pos = b->yy_ch_buf = base;
6160 b->yy_is_our_buffer = 0;
6161 b->yy_input_file = NULL;
6162 b->yy_n_chars = b->yy_buf_size;
6163 b->yy_is_interactive = 0;
6164 b->yy_at_bol = 1;
6165 b->yy_fill_buffer = 0;
6167
6169
6170 return b;
6171}
6172/* %endif */
6173
6174/* %if-c-only */
6183YY_BUFFER_STATE yy_scan_string (const char * yystr )
6184{
6185
6186 return yy_scan_bytes( yystr, (int) strlen(yystr) );
6187}
6188/* %endif */
6189
6190/* %if-c-only */
6198YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
6199{
6201 char *buf;
6202 yy_size_t n;
6203 int i;
6204
6205 /* Get memory for full buffer, including space for trailing EOB's. */
6206 n = (yy_size_t) (_yybytes_len + 2);
6207 buf = (char *) yyalloc( n );
6208 if ( ! buf )
6209 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
6210
6211 for ( i = 0; i < _yybytes_len; ++i )
6212 buf[i] = yybytes[i];
6213
6214 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6215
6216 b = yy_scan_buffer( buf, n );
6217 if ( ! b )
6218 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
6219
6220 /* It's okay to grow etc. this buffer, and we should throw it
6221 * away when we're done.
6222 */
6223 b->yy_is_our_buffer = 1;
6224
6225 return b;
6226}
6227/* %endif */
6228
6229#ifndef YY_EXIT_FAILURE
6230#define YY_EXIT_FAILURE 2
6231#endif
6232
6233/* %if-c-only */
6234static void yynoreturn yy_fatal_error (const char* msg )
6235{
6236 fprintf( stderr, "%s\n", msg );
6237 exit( YY_EXIT_FAILURE );
6238}
6239/* %endif */
6240/* %if-c++-only */
6241/* %endif */
6242
6243/* Redefine yyless() so it works in section 3 code. */
6244
6245#undef yyless
6246#define yyless(n) \
6247 do \
6248 { \
6249 /* Undo effects of setting up yytext. */ \
6250 int yyless_macro_arg = (n); \
6251 YY_LESS_LINENO(yyless_macro_arg);\
6252 yytext[yyleng] = (yy_hold_char); \
6253 (yy_c_buf_p) = yytext + yyless_macro_arg; \
6254 (yy_hold_char) = *(yy_c_buf_p); \
6255 *(yy_c_buf_p) = '\0'; \
6256 yyleng = yyless_macro_arg; \
6257 } \
6258 while ( 0 )
6259
6260/* Accessor methods (get/set functions) to struct members. */
6261
6262/* %if-c-only */
6263/* %if-reentrant */
6264/* %endif */
6265
6269int yyget_lineno (void)
6270{
6271
6272 return yylineno;
6273}
6274
6278FILE *yyget_in (void)
6279{
6280 return yyin;
6281}
6282
6286FILE *yyget_out (void)
6287{
6288 return yyout;
6289}
6290
6294int yyget_leng (void)
6295{
6296 return yyleng;
6297}
6298
6303char *yyget_text (void)
6304{
6305 return yytext;
6306}
6307
6308/* %if-reentrant */
6309/* %endif */
6310
6315void yyset_lineno (int _line_number )
6316{
6317
6318 yylineno = _line_number;
6319}
6320
6327void yyset_in (FILE * _in_str )
6328{
6329 yyin = _in_str ;
6330}
6331
6332void yyset_out (FILE * _out_str )
6333{
6334 yyout = _out_str ;
6335}
6336
6337int yyget_debug (void)
6338{
6339 return yy_flex_debug;
6340}
6341
6342void yyset_debug (int _bdebug )
6343{
6344 yy_flex_debug = _bdebug ;
6345}
6346
6347/* %endif */
6348
6349/* %if-reentrant */
6350/* %if-bison-bridge */
6351/* %endif */
6352/* %endif if-c-only */
6353
6354/* %if-c-only */
6355static int yy_init_globals (void)
6356{
6357 /* Initialization is the same as for the non-reentrant scanner.
6358 * This function is called from yylex_destroy(), so don't allocate here.
6359 */
6360
6361 (yy_buffer_stack) = NULL;
6362 (yy_buffer_stack_top) = 0;
6363 (yy_buffer_stack_max) = 0;
6364 (yy_c_buf_p) = NULL;
6365 (yy_init) = 0;
6366 (yy_start) = 0;
6367
6368/* Defined in main.c */
6369#ifdef YY_STDINIT
6370 yyin = stdin;
6371 yyout = stdout;
6372#else
6373 yyin = NULL;
6374 yyout = NULL;
6375#endif
6376
6377 /* For future reference: Set errno on error, since we are called by
6378 * yylex_init()
6379 */
6380 return 0;
6381}
6382/* %endif */
6383
6384/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
6385/* yylex_destroy is for both reentrant and non-reentrant scanners. */
6386int yylex_destroy (void)
6387{
6388
6389 /* Pop the buffer stack, destroying each element. */
6390 while(YY_CURRENT_BUFFER){
6394 }
6395
6396 /* Destroy the stack itself. */
6397 yyfree((yy_buffer_stack) );
6398 (yy_buffer_stack) = NULL;
6399
6400 /* Reset the globals. This is important in a non-reentrant scanner so the next time
6401 * yylex() is called, initialization will occur. */
6402 yy_init_globals( );
6403
6404/* %if-reentrant */
6405/* %endif */
6406 return 0;
6407}
6408/* %endif */
6409
6410/*
6411 * Internal utility routines.
6412 */
6413
6414#ifndef yytext_ptr
6415static void yy_flex_strncpy (char* s1, const char * s2, int n )
6416{
6417
6418 int i;
6419 for ( i = 0; i < n; ++i )
6420 s1[i] = s2[i];
6421}
6422#endif
6423
6424#ifdef YY_NEED_STRLEN
6425static int yy_flex_strlen (const char * s )
6426{
6427 int n;
6428 for ( n = 0; s[n]; ++n )
6429 ;
6430
6431 return n;
6432}
6433#endif
6434
6435void *yyalloc (yy_size_t size )
6436{
6437 return malloc(size);
6438}
6439
6440void *yyrealloc (void * ptr, yy_size_t size )
6441{
6442
6443 /* The cast to (char *) in the following accommodates both
6444 * implementations that use char* generic pointers, and those
6445 * that use void* generic pointers. It works with the latter
6446 * because both ANSI C and C++ allow castless assignment from
6447 * any pointer type to void*, and deal with argument conversions
6448 * as though doing an assignment.
6449 */
6450 return realloc(ptr, size);
6451}
6452
6453void yyfree (void * ptr )
6454{
6455 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
6456}
6457
6458/* %if-tables-serialization definitions */
6459/* %define-yytables The name for this specific scanner's tables. */
6460#define YYTABLES_NAME "yytables"
6461/* %endif */
6462
6463/* %ok-for-header */
6464
6465#line 2328 "dhcp6_lexer.ll"
6466
6467
6468using namespace isc::dhcp;
6469
6470void
6471Parser6Context::scanStringBegin(const std::string& str, ParserType parser_type)
6472{
6473 start_token_flag = true;
6474 start_token_value = parser_type;
6475
6476 file_ = "<string>";
6477 sfile_ = 0;
6478 loc_.initialize(&file_);
6479 yy_flex_debug = trace_scanning_;
6480 YY_BUFFER_STATE buffer;
6481 buffer = parser6__scan_bytes(str.c_str(), str.size());
6482 if (!buffer) {
6483 fatal("cannot scan string");
6484 /* fatal() throws an exception so this can't be reached */
6485 }
6486}
6487
6488void
6490 const std::string& filename,
6491 ParserType parser_type)
6492{
6493 start_token_flag = true;
6494 start_token_value = parser_type;
6495
6496 file_ = filename;
6497 sfile_ = f;
6498 loc_.initialize(&file_);
6499 yy_flex_debug = trace_scanning_;
6500 YY_BUFFER_STATE buffer;
6501
6502 /* See dhcp6_lexer.cc header for available definitions */
6503 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
6504 if (!buffer) {
6505 fatal("cannot scan file " + filename);
6506 }
6507 parser6__switch_to_buffer(buffer);
6508}
6509
6510void
6512 if (sfile_)
6513 fclose(sfile_);
6514 sfile_ = 0;
6515 static_cast<void>(parser6_lex_destroy());
6516 /* Close files */
6517 while (!sfiles_.empty()) {
6518 FILE* f = sfiles_.back();
6519 if (f) {
6520 fclose(f);
6521 }
6522 sfiles_.pop_back();
6523 }
6524 /* Delete states */
6525 while (!states_.empty()) {
6526 parser6__delete_buffer(states_.back());
6527 states_.pop_back();
6528 }
6529}
6530
6531void
6532Parser6Context::includeFile(const std::string& filename) {
6533 if (states_.size() > 10) {
6534 fatal("Too many nested include.");
6535 }
6536
6537 FILE* f = fopen(filename.c_str(), "r");
6538 if (!f) {
6539 fatal("Can't open include file " + filename);
6540 }
6541 if (sfile_) {
6542 sfiles_.push_back(sfile_);
6543 }
6544 sfile_ = f;
6545 states_.push_back(YY_CURRENT_BUFFER);
6546 YY_BUFFER_STATE buffer;
6547 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
6548 if (!buffer) {
6549 fatal( "Can't scan include file " + filename);
6550 }
6551 parser6__switch_to_buffer(buffer);
6552 files_.push_back(file_);
6553 file_ = filename;
6554 locs_.push_back(loc_);
6555 loc_.initialize(&file_);
6556
6557 BEGIN(INITIAL);
6558}
6559
6560namespace {
6562class Dummy {
6563 /* cppcheck-suppress unusedPrivateFunction */
6564 void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
6565};
6566}
6567#endif /* !__clang_analyzer__ */
6568
unsigned char flex_uint8_t
Definition: agent_lexer.cc:335
short int flex_int16_t
Definition: agent_lexer.cc:333
int flex_int32_t
Definition: agent_lexer.cc:334
int yy_state_type
Definition: agent_lexer.cc:660
flex_uint8_t YY_CHAR
Definition: agent_lexer.cc:656
size_t yy_size_t
Definition: agent_lexer.cc:451
Evaluation error exception raised when trying to parse.
static symbol_type make_SUB_RESERVATION(const location_type &l)
static symbol_type make_DISABLED(const location_type &l)
static symbol_type make_QUALIFYING_SUFFIX(const location_type &l)
static symbol_type make_REQUEST_TIMEOUT(const location_type &l)
static symbol_type make_NAME(const location_type &l)
static symbol_type make_SUB_HOOKS_LIBRARY(const location_type &l)
static symbol_type make_WHEN_PRESENT(const location_type &l)
static symbol_type make_COMMENT(const location_type &l)
static symbol_type make_LENIENT_OPTION_PARSING(const location_type &l)
static symbol_type make_SENDER_PORT(const location_type &l)
static symbol_type make_IP_ADDRESS(const location_type &l)
static symbol_type make_CODE(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_AGE(const location_type &l)
static symbol_type make_CACHE_THRESHOLD(const location_type &l)
static symbol_type make_DHCP6(const location_type &l)
static symbol_type make_HOSTS_DATABASE(const location_type &l)
static symbol_type make_USER_CONTEXT(const location_type &l)
static symbol_type make_ENTERPRISE_ID(const location_type &l)
static symbol_type make_COMMA(const location_type &l)
static symbol_type make_DHCP_DDNS(const location_type &l)
static symbol_type make_MAX_RECLAIM_TIME(const location_type &l)
static symbol_type make_SOCKET_NAME(const location_type &l)
static symbol_type make_NCR_FORMAT(const location_type &l)
static symbol_type make_RESERVATIONS_OUT_OF_POOL(const location_type &l)
static symbol_type make_NCR_PROTOCOL(const location_type &l)
static symbol_type make_FLOAT(const double &v, const location_type &l)
static symbol_type make_EN(const location_type &l)
static symbol_type make_ARRAY(const location_type &l)
static symbol_type make_DDNS_QUALIFYING_SUFFIX(const location_type &l)
static symbol_type make_COLON(const location_type &l)
static symbol_type make_REPLACE_CLIENT_NAME(const location_type &l)
static symbol_type make_SUB_DHCP6(const location_type &l)
static symbol_type make_RE_DETECT(const location_type &l)
static symbol_type make_DELEGATED_LEN(const location_type &l)
static symbol_type make_THREAD_POOL_SIZE(const location_type &l)
static symbol_type make_INTERFACE_ID(const location_type &l)
static symbol_type make_HOSTNAME(const location_type &l)
static symbol_type make_DATA_DIRECTORY(const location_type &l)
static symbol_type make_MAX_QUEUE_SIZE(const location_type &l)
static symbol_type make_SUB_POOL6(const location_type &l)
static symbol_type make_SUB_DHCP_DDNS(const location_type &l)
static symbol_type make_ALL(const location_type &l)
static symbol_type make_SUB_CONFIG_CONTROL(const location_type &l)
static symbol_type make_DDNS_SEND_UPDATES(const location_type &l)
static symbol_type make_IP_ADDRESSES(const location_type &l)
static symbol_type make_POOLS(const location_type &l)
static symbol_type make_PREFIX(const location_type &l)
static symbol_type make_ID(const location_type &l)
static symbol_type make_MAXVER(const location_type &l)
static symbol_type make_KEYSPACE(const location_type &l)
static symbol_type make_RESERVATIONS(const location_type &l)
static symbol_type make_DATA(const location_type &l)
static symbol_type make_INTERFACES(const location_type &l)
static symbol_type make_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_SERVER_IP(const location_type &l)
static symbol_type make_PATTERN(const location_type &l)
static symbol_type make_MAXSIZE(const location_type &l)
static symbol_type make_HOST_RESERVATION_IDENTIFIERS(const location_type &l)
static symbol_type make_OPTION_DATA(const location_type &l)
static symbol_type make_SUBNET6(const location_type &l)
static symbol_type make_PD_POOLS(const location_type &l)
static symbol_type make_RCURLY_BRACKET(const location_type &l)
static symbol_type make_MAX_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_PORT(const location_type &l)
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_ENABLE_UPDATES(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_REPLACEMENT(const location_type &l)
static symbol_type make_NULL_TYPE(const location_type &l)
static symbol_type make_MAX_RECONNECT_TRIES(const location_type &l)
static symbol_type make_MAX_VALID_LIFETIME(const location_type &l)
static symbol_type make_TIME(const location_type &l)
static symbol_type make_SOCKET_TYPE(const location_type &l)
static symbol_type make_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_SUB_INTERFACES6(const location_type &l)
static symbol_type make_JSON(const location_type &l)
static symbol_type make_MIN_PREFERRED_LIFETIME(const location_type &l)
static symbol_type make_LLT(const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
static symbol_type make_FLEX_ID(const location_type &l)
static symbol_type make_CONSISTENCY(const location_type &l)
static symbol_type make_REQUIRE_CLIENT_CLASSES(const location_type &l)
static symbol_type make_SERVER_PORT(const location_type &l)
static symbol_type make_ONLY_IF_REQUIRED(const location_type &l)
static symbol_type make_DDNS_REPLACE_CLIENT_NAME(const location_type &l)
static symbol_type make_TCP_KEEPALIVE(const location_type &l)
static symbol_type make_SUB_OPTION_DATA(const location_type &l)
static symbol_type make_OPTION_DEF(const location_type &l)
static symbol_type make_DDNS_GENERATED_PREFIX(const location_type &l)
static symbol_type make_ALWAYS_SEND(const location_type &l)
static symbol_type make_CLIENT_CLASS(const location_type &l)
static symbol_type make_IP_RESERVATIONS_UNIQUE(const location_type &l)
static symbol_type make_LFC_INTERVAL(const location_type &l)
static symbol_type make_USER(const location_type &l)
static symbol_type make_SUBNET(const location_type &l)
static symbol_type make_RECORD_TYPES(const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
static symbol_type make_RECONNECT_WAIT_TIME(const location_type &l)
static symbol_type make_OUT_OF_POOL(const location_type &l)
static symbol_type make_SUB_SUBNET6(const location_type &l)
static symbol_type make_EXPIRED_LEASES_PROCESSING(const location_type &l)
static symbol_type make_EXCLUDED_PREFIX(const location_type &l)
static symbol_type make_ALWAYS(const location_type &l)
static symbol_type make_HOSTS_DATABASES(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
static symbol_type make_MYSQL(const location_type &l)
static symbol_type make_DDNS_USE_CONFLICT_RESOLUTION(const location_type &l)
static symbol_type make_MEMFILE(const location_type &l)
static symbol_type make_DDNS_UPDATE_ON_RENEW(const location_type &l)
static symbol_type make_SANITY_CHECKS(const location_type &l)
static symbol_type make_ENABLE_MULTI_THREADING(const location_type &l)
static symbol_type make_PERSIST(const location_type &l)
static symbol_type make_LEASE_DATABASE(const location_type &l)
static symbol_type make_INTERFACES_CONFIG(const location_type &l)
static symbol_type make_HTYPE(const location_type &l)
static symbol_type make_FLUSH_RECLAIMED_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_CONFIG_FETCH_WAIT_TIME(const location_type &l)
static symbol_type make_OUTPUT_OPTIONS(const location_type &l)
static symbol_type make_STORE_EXTENDED_INFO(const location_type &l)
static symbol_type make_CLIENT_CLASSES(const location_type &l)
static symbol_type make_PREFIX_LEN(const location_type &l)
static symbol_type make_RSQUARE_BRACKET(const location_type &l)
static symbol_type make_END(const location_type &l)
static symbol_type make_IDENTIFIER(const location_type &l)
static symbol_type make_CACHE_MAX_AGE(const location_type &l)
static symbol_type make_READONLY(const location_type &l)
static symbol_type make_PASSWORD(const location_type &l)
static symbol_type make_TCP_NODELAY(const location_type &l)
static symbol_type make_OVERRIDE_CLIENT_UPDATE(const location_type &l)
static symbol_type make_LEASE_CHECKS(const location_type &l)
static symbol_type make_FLUSH(const location_type &l)
static symbol_type make_MIN_VALID_LIFETIME(const location_type &l)
static symbol_type make_T2_PERCENT(const location_type &l)
static symbol_type make_UNWARNED_RECLAIM_CYCLES(const location_type &l)
static symbol_type make_DEBUGLEVEL(const location_type &l)
static symbol_type make_HOOKS_LIBRARIES(const location_type &l)
static symbol_type make_TCP(const location_type &l)
static symbol_type make_GLOBAL(const location_type &l)
static symbol_type make_POOL(const location_type &l)
static symbol_type make_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_SUB_PD_POOL(const location_type &l)
static symbol_type make_T1_PERCENT(const location_type &l)
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
static symbol_type make_SERIAL_CONSISTENCY(const location_type &l)
static symbol_type make_UDP(const location_type &l)
static symbol_type make_POSTGRESQL(const location_type &l)
static symbol_type make_CONTACT_POINTS(const location_type &l)
static symbol_type make_GENERATED_PREFIX(const location_type &l)
static symbol_type make_QUEUE_TYPE(const location_type &l)
static symbol_type make_TOPLEVEL_DHCP6(const location_type &l)
static symbol_type make_SERVER_ID(const location_type &l)
static symbol_type make_RELAY(const location_type &l)
static symbol_type make_HOLD_RECLAIMED_TIME(const location_type &l)
static symbol_type make_RELAY_SUPPLIED_OPTIONS(const location_type &l)
static symbol_type make_COMPATIBILITY(const location_type &l)
static symbol_type make_SUB_OPTION_DEFS(const location_type &l)
static symbol_type make_CONTROL_SOCKET(const location_type &l)
static symbol_type make_TYPE(const location_type &l)
static symbol_type make_CONNECT_TIMEOUT(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_LOGGERS(const location_type &l)
static symbol_type make_PACKET_QUEUE_SIZE(const location_type &l)
static symbol_type make_RESERVATIONS_IN_SUBNET(const location_type &l)
static symbol_type make_REBIND_TIMER(const location_type &l)
static symbol_type make_CONFIG_CONTROL(const location_type &l)
static symbol_type make_PREFIXES(const location_type &l)
static symbol_type make_RESERVATION_MODE(const location_type &l)
static symbol_type make_CSV_FORMAT(const location_type &l)
static symbol_type make_MAC_SOURCES(const location_type &l)
static symbol_type make_DECLINE_PROBATION_PERIOD(const location_type &l)
static symbol_type make_TEST(const location_type &l)
static symbol_type make_RAPID_COMMIT(const location_type &l)
static symbol_type make_DUID(const location_type &l)
static symbol_type make_DHCP4O6_PORT(const location_type &l)
static symbol_type make_VALID_LIFETIME(const location_type &l)
static symbol_type make_ON_FAIL(const location_type &l)
static symbol_type make_SENDER_IP(const location_type &l)
static symbol_type make_HOST(const location_type &l)
static symbol_type make_MAX_RECLAIM_LEASES(const location_type &l)
static symbol_type make_SPACE(const location_type &l)
static symbol_type make_TOPLEVEL_JSON(const location_type &l)
static symbol_type make_EXCLUDED_PREFIX_LEN(const location_type &l)
static symbol_type make_HW_ADDRESS(const location_type &l)
static symbol_type make_RENEW_TIMER(const location_type &l)
static symbol_type make_MAX_ROW_ERRORS(const location_type &l)
static symbol_type make_NEVER(const location_type &l)
static symbol_type make_BOOLEAN(const bool &v, const location_type &l)
static symbol_type make_ENCAPSULATE(const location_type &l)
static symbol_type make_RESERVATIONS_GLOBAL(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_SET(const location_type &l)
static symbol_type make_CQL(const location_type &l)
static symbol_type make_SERVER_TAG(const location_type &l)
static symbol_type make_OUTPUT(const location_type &l)
static symbol_type make_SEVERITY(const location_type &l)
std::string file_
File name.
std::vector< isc::dhcp::location > locs_
Location stack.
isc::dhcp::location loc_
Location of the current token.
static void fatal(const std::string &what)
Fatal error handler.
void includeFile(const std::string &filename)
Divert input to an include file.
FILE * sfile_
sFile (aka FILE)
std::vector< std::string > files_
File name stack.
@ LOGGERS
Used while parsing Dhcp6/loggers structures.
@ RESERVATION_MODE
Used while parsing Dhcp6/reservation-mode.
@ CLIENT_CLASSES
Used while parsing Dhcp6/client-classes structures.
@ DATABASE_ON_FAIL
Used while parsing Dhcp6/*-database/on-fail.
@ OPTION_DEF
Used while parsing Dhcp6/option-def structures.
@ POOLS
Used while parsing Dhcp6/subnet6/pools structures.
@ EXPIRED_LEASES_PROCESSING
Used while parsing Dhcp6/expired-leases-processing.
@ OPTION_DATA
Used while parsing Dhcp6/option-data, Dhcp6/subnet6/option-data or anywhere option-data is present (c...
@ CONTROL_SOCKET
Used while parsing Dhcp6/control-socket structures.
@ DHCP_QUEUE_CONTROL
Used while parsing Dhcp6/dhcp-queue-control structures.
@ SERVER_ID
Used while parsing Dhcp6/server-id structures.
@ HOSTS_DATABASE
Used while parsing Dhcp6/hosts-database[s] structures.
@ SUBNET6
Used while parsing Dhcp6/Subnet6 structures.
@ RESERVATIONS
Used while parsing Dhcp6/reservations structures.
@ CONFIG_DATABASE
Used while parsing config-control/config-databases.
@ DATABASE_TYPE
Used while parsing Dhcp6/*-database/type.
@ DHCP_DDNS
Used while parsing Dhcp6/dhcp-ddns.
@ COMPATIBILITY
Used while parsing compatibility parameters.
@ INTERFACES_CONFIG
Used while parsing Dhcp6/interfaces structures.
@ DUID_TYPE
Used while parsing Dhcp6/server-id/type structures.
@ HOOKS_LIBRARIES
Used while parsing Dhcp6/hooks-libraries.
@ CONFIG
Used while parsing content of Dhcp6.
@ LEASE_DATABASE
Used while parsing Dhcp6/lease-database structures.
@ NCR_PROTOCOL
Used while parsing Dhcp6/dhcp-ddns/ncr-protocol.
@ RELAY
Used while parsing Dhcp6/subnet6/relay structures.
@ OUTPUT_OPTIONS
Used while parsing Dhcp6/loggers/output_options structures.
@ HOST_RESERVATION_IDENTIFIERS
Used while parsing Dhcp6/host-reservation-identifiers.
@ NCR_FORMAT
Used while parsing Dhcp6/dhcp-ddns/ncr-format.
@ REPLACE_CLIENT_NAME
Used while parsing Dhcp6/dhcp-ddns/replace-client-name.
@ DHCP_MULTI_THREADING
Used while parsing Dhcp6/multi-threading structures.
@ SHARED_NETWORK
Used while parsing shared-networks structures.
@ PD_POOLS
Used while parsing Dhcp6/subnet6/pd-pools structures.
@ MAC_SOURCES
Used while parsing Dhcp6/mac-sources structures.
@ CONFIG_CONTROL
Used while parsing Dhcp6/config-control.
void scanEnd()
Method called after the last tokens are scanned.
void scanFileBegin(FILE *f, const std::string &filename, ParserType type)
Method called before scanning starts on a file.
ParserType
Defines currently supported scopes.
std::vector< FILE * > sfiles_
sFile (aka FILE) stack
std::vector< struct yy_buffer_state * > states_
Lexer state stack.
#define yy_load_buffer_state
Definition: dhcp6_lexer.cc:19
#define YY_NEW_FILE
Definition: dhcp6_lexer.cc:424
#define yyset_extra
Definition: dhcp6_lexer.cc:176
#define yytext
Definition: dhcp6_lexer.cc:31
unsigned char flex_uint8_t
Definition: dhcp6_lexer.cc:335
#define yyset_lineno
Definition: dhcp6_lexer.cc:224
#define COMMENT
#define yyrestart
Definition: dhcp6_lexer.cc:30
#define yyset_debug
Definition: dhcp6_lexer.cc:164
#define YY_EXTRA_TYPE
#define DIR_INCLUDE
short int flex_int16_t
Definition: dhcp6_lexer.cc:333
#define yy_flex_debug
Definition: dhcp6_lexer.cc:24
unsigned int flex_uint32_t
Definition: dhcp6_lexer.cc:337
#define yy_scan_bytes
Definition: dhcp6_lexer.cc:16
#define YY_BREAK
#define yynoreturn
Definition: dhcp6_lexer.cc:388
#define yyget_debug
Definition: dhcp6_lexer.cc:158
int yy_act
#define yypush_buffer_state
Definition: dhcp6_lexer.cc:21
#define yyget_in
Get the input stream.
Definition: dhcp6_lexer.cc:182
struct yy_buffer_state * YY_BUFFER_STATE
Definition: dhcp6_lexer.cc:446
#define yyfree
Definition: dhcp6_lexer.cc:35
#define yyout
Definition: dhcp6_lexer.cc:29
#define YY_BUFFER_NEW
Definition: dhcp6_lexer.cc:539
#define yylex
Definition: dhcp6_lexer.cc:27
#define YY_RESTORE_YY_MORE_OFFSET
#define yyget_leng
Get the length of the current token.
Definition: dhcp6_lexer.cc:206
#define yywrap
#define yyget_out
Get the output stream.
Definition: dhcp6_lexer.cc:194
#define YY_BUFFER_NORMAL
Definition: dhcp6_lexer.cc:540
char * yy_cp
#define yyensure_buffer_stack
Definition: dhcp6_lexer.cc:23
#define yy_scan_buffer
Definition: dhcp6_lexer.cc:14
#define YY_MORE_ADJ
#define YY_RULE_SETUP
#define yy_scan_string
Definition: dhcp6_lexer.cc:15
#define DIR_EXIT
#define yytext_ptr
Definition: dhcp6_lexer.cc:669
signed char flex_int8_t
Definition: dhcp6_lexer.cc:332
#define EOB_ACT_END_OF_FILE
Definition: dhcp6_lexer.cc:465
#define yyalloc
Definition: dhcp6_lexer.cc:33
#define YY_CURRENT_BUFFER_LVALUE
Definition: dhcp6_lexer.cc:581
int flex_int32_t
Definition: dhcp6_lexer.cc:334
#define yylex_destroy
Definition: dhcp6_lexer.cc:152
#define YY_START
Definition: dhcp6_lexer.cc:419
#define yyget_text
Get the current token.
Definition: dhcp6_lexer.cc:212
#define yy_switch_to_buffer
Definition: dhcp6_lexer.cc:20
int yy_state_type
Definition: dhcp6_lexer.cc:660
#define YY_CURRENT_BUFFER
Definition: dhcp6_lexer.cc:575
#define yy_init_buffer
Definition: dhcp6_lexer.cc:17
#define INITIAL
#define yyget_extra
Definition: dhcp6_lexer.cc:170
char * yy_bp
#define yyin
Definition: dhcp6_lexer.cc:25
#define YY_READ_BUF_SIZE
#define YY_INPUT(buf, result, max_size)
#define ECHO
#define yy_flush_buffer
Definition: dhcp6_lexer.cc:18
#define yyrealloc
Definition: dhcp6_lexer.cc:34
#define YY_END_OF_BUFFER
Definition: dhcp6_lexer.cc:695
#define YY_STATE_EOF(state)
Definition: dhcp6_lexer.cc:422
#define BEGIN
Definition: dhcp6_lexer.cc:414
#define YY_END_OF_BUFFER_CHAR
Definition: dhcp6_lexer.cc:425
#define YY_FATAL_ERROR(msg)
unsigned short int flex_uint16_t
Definition: dhcp6_lexer.cc:336
#define yypop_buffer_state
Removes and deletes the top of the stack, if present.
Definition: dhcp6_lexer.cc:22
#define yy_create_buffer
Definition: dhcp6_lexer.cc:12
flex_uint8_t YY_CHAR
Definition: dhcp6_lexer.cc:656
#define YY_DO_BEFORE_ACTION
Definition: dhcp6_lexer.cc:685
#define yy_delete_buffer
Definition: dhcp6_lexer.cc:13
#define EOB_ACT_LAST_MATCH
Definition: dhcp6_lexer.cc:466
size_t yy_size_t
Definition: dhcp6_lexer.cc:451
#define YY_BUFFER_EOF_PENDING
Definition: dhcp6_lexer.cc:551
#define yylineno
Definition: dhcp6_lexer.cc:28
#define yyset_out
Definition: dhcp6_lexer.cc:200
#define EOB_ACT_CONTINUE_SCAN
Definition: dhcp6_lexer.cc:464
#define yyget_lineno
Get the current line number.
Definition: dhcp6_lexer.cc:218
#define YY_DECL
#define YY_BUF_SIZE
Definition: dhcp6_lexer.cc:436
#define YY_EXIT_FAILURE
#define YY_SC_TO_UI(c)
Definition: dhcp6_lexer.cc:400
#define DIR_ENTER
#define yyleng
Definition: dhcp6_lexer.cc:26
#define yyset_in
Definition: dhcp6_lexer.cc:188
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
int yy_bs_column
The column count.
Definition: agent_lexer.cc:530
FILE * yy_input_file
Definition: agent_lexer.cc:491
int yy_bs_lineno
The line count.
Definition: agent_lexer.cc:529
flex_int32_t yy_verify
Definition: agent_lexer.cc:700
flex_int32_t yy_nxt
Definition: agent_lexer.cc:701