Kea 2.0.1
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 220
695#define YY_END_OF_BUFFER 221
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[2042] =
704 { 0,
705 213, 213, 0, 0, 0, 0, 0, 0, 0, 0,
706 221, 219, 10, 11, 219, 1, 213, 210, 213, 213,
707 219, 212, 211, 219, 219, 219, 219, 219, 206, 207,
708 219, 219, 219, 208, 209, 5, 5, 5, 219, 219,
709 219, 10, 11, 0, 0, 201, 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, 213, 213,
713 0, 212, 213, 3, 2, 6, 0, 213, 0, 0,
714 0, 0, 0, 0, 4, 0, 0, 9, 0, 202,
715
716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 0, 0, 204, 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, 172, 0, 0, 173, 0, 0, 0,
726
727 0, 0, 0, 0, 203, 205, 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, 119, 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, 218,
739 216, 0, 215, 214, 0, 0, 0, 0, 0, 171,
740 0, 28, 0, 27, 0, 0, 126, 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, 123, 0, 0, 0, 0,
747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
748
749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
752 0, 0, 0, 0, 0, 0, 0, 0, 217, 214,
753 0, 0, 0, 0, 29, 0, 31, 0, 0, 0,
754 0, 0, 0, 0, 0, 130, 0, 0, 0, 0,
755 0, 0, 0, 0, 104, 0, 0, 0, 0, 0,
756 0, 0, 0, 156, 0, 0, 0, 0, 0, 0,
757 0, 0, 0, 0, 0, 58, 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, 0, 103, 0, 0, 0, 0, 0, 0,
762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
763 113, 0, 59, 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, 0, 0, 151, 0, 176,
767 51, 0, 56, 0, 0, 0, 0, 37, 34, 33,
768 0, 0, 0, 164, 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, 0, 0, 142, 0, 0, 0,
773 0, 0, 0, 0, 0, 175, 0, 0, 0, 0,
774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
775 0, 0, 0, 0, 0, 0, 0, 0, 0, 53,
776 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
777 0, 0, 0, 0, 0, 0, 106, 0, 0, 0,
778 0, 0, 0, 0, 0, 0, 0, 0, 0, 165,
779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
780 0, 0, 0, 0, 160, 0, 0, 0, 0, 0,
781
782 0, 0, 0, 0, 0, 0, 0, 7, 35, 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, 0, 0, 0, 125, 0,
787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
789 0, 0, 0, 144, 0, 0, 0, 0, 0, 0,
790 0, 0, 0, 0, 141, 0, 0, 0, 0, 0,
791 0, 0, 0, 0, 0, 0, 108, 0, 0, 0,
792
793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
795 0, 0, 0, 0, 0, 116, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
797 0, 0, 0, 115, 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, 0, 0, 0, 0, 159, 0, 0, 0, 0,
801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
802 0, 0, 0, 169, 139, 0, 0, 0, 0, 0,
803
804 0, 0, 143, 52, 0, 0, 0, 0, 0, 67,
805 0, 0, 0, 0, 0, 0, 0, 0, 0, 145,
806 0, 60, 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, 0, 0, 0, 0, 0, 98, 0, 0, 0,
810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
811 0, 196, 0, 0, 0, 0, 0, 0, 0, 0,
812 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
813 0, 0, 0, 0, 0, 0, 122, 0, 0, 0,
814
815 0, 0, 0, 0, 0, 0, 0, 0, 0, 158,
816 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,
817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
819 0, 0, 0, 57, 107, 0, 0, 0, 155, 0,
820 0, 0, 0, 50, 0, 0, 0, 0, 0, 0,
821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
822 0, 0, 0, 147, 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, 0,
827 0, 0, 0, 0, 0, 197, 0, 0, 0, 0,
828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
829 0, 0, 0, 0, 117, 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, 0, 0, 0, 0, 0, 0,
833 0, 41, 0, 0, 0, 0, 0, 0, 0, 0,
834 0, 0, 0, 16, 0, 0, 0, 170, 14, 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, 0, 0, 0, 0, 0, 0, 0,
839 161, 0, 0, 0, 0, 0, 0, 0, 0, 146,
840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 0, 0, 157, 174,
842 0, 40, 0, 166, 0, 0, 0, 0, 0, 0,
843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
844 20, 0, 0, 0, 101, 0, 0, 0, 0, 0,
845 168, 0, 54, 0, 109, 0, 195, 0, 0, 0,
846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
847
848 0, 0, 0, 86, 0, 0, 0, 0, 0, 0,
849 135, 136, 0, 0, 0, 0, 0, 0, 0, 0,
850 105, 0, 0, 0, 0, 0, 0, 0, 0, 0,
851 64, 0, 0, 0, 0, 0, 0, 0, 0, 0,
852 0, 0, 0, 0, 0, 0, 0, 0, 163, 0,
853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
854 0, 0, 0, 0, 0, 0, 0, 131, 0, 0,
855 0, 0, 0, 0, 0, 0, 0, 0, 0, 102,
856 124, 0, 0, 0, 0, 0, 0, 0, 0, 0,
857 0, 0, 0, 0, 83, 0, 0, 0, 0, 0,
858
859 0, 17, 0, 0, 15, 0, 192, 191, 0, 0,
860 0, 0, 73, 0, 0, 0, 0, 0, 30, 0,
861 0, 0, 150, 0, 0, 0, 0, 0, 0, 0,
862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
863 0, 0, 185, 0, 194, 0, 0, 0, 0, 0,
864 0, 0, 0, 0, 0, 0, 118, 0, 154, 0,
865 43, 0, 0, 61, 0, 0, 0, 0, 0, 0,
866 0, 0, 0, 0, 19, 0, 0, 0, 0, 0,
867 0, 0, 0, 120, 84, 0, 0, 162, 0, 0,
868 0, 0, 0, 153, 0, 0, 0, 0, 0, 0,
869
870 0, 0, 0, 0, 0, 0, 114, 0, 0, 138,
871 0, 0, 0, 199, 0, 0, 0, 0, 0, 0,
872 0, 0, 0, 0, 0, 0, 0, 0, 0, 112,
873 0, 0, 0, 177, 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, 0, 0, 0, 0, 0, 0,
877 0, 0, 0, 0, 0, 42, 0, 0, 0, 0,
878 0, 0, 0, 72, 0, 0, 0, 0, 0, 0,
879 148, 47, 0, 0, 0, 74, 190, 38, 0, 0,
880
881 0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
882 0, 0, 0, 0, 0, 0, 0, 0, 0, 45,
883 0, 0, 0, 44, 0, 0, 18, 0, 0, 0,
884 76, 0, 0, 0, 0, 0, 140, 0, 0, 0,
885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
887 0, 0, 80, 0, 137, 0, 0, 0, 62, 0,
888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
889 110, 0, 0, 0, 0, 0, 167, 0, 0, 0,
890 46, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891
892 0, 186, 0, 0, 0, 0, 0, 0, 0, 0,
893 0, 0, 0, 71, 0, 0, 0, 0, 0, 0,
894 0, 0, 100, 0, 68, 0, 0, 0, 36, 0,
895 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
896 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
897 0, 0, 0, 0, 0, 0, 183, 0, 0, 0,
898 0, 152, 0, 0, 0, 0, 0, 0, 0, 0,
899 0, 0, 0, 121, 0, 0, 0, 0, 0, 69,
900 0, 0, 188, 0, 0, 0, 0, 0, 0, 0,
901 0, 90, 0, 0, 0, 0, 0, 0, 0, 0,
902
903 0, 0, 0, 25, 39, 0, 0, 0, 0, 0,
904 0, 0, 0, 0, 0, 189, 0, 0, 13, 0,
905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
907 0, 0, 193, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 0, 182, 0, 82, 0, 81, 0, 21,
909 0, 77, 0, 0, 0, 0, 0, 0, 0, 0,
910 65, 0, 0, 0, 0, 134, 0, 0, 0, 0,
911 0, 0, 0, 0, 0, 0, 111, 0, 0, 181,
912 0, 0, 0, 0, 0, 75, 0, 0, 87, 0,
913
914 66, 0, 23, 0, 127, 0, 0, 0, 0, 99,
915 0, 0, 0, 0, 0, 0, 0, 96, 0, 0,
916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
917 0, 0, 0, 0, 0, 70, 0, 0, 0, 94,
918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
920 0, 0, 0, 49, 0, 0, 95, 0, 0, 0,
921 187, 0, 0, 0, 0, 198, 200, 79, 78, 22,
922 0, 132, 149, 128, 0, 0, 0, 0, 91, 0,
923 0, 0, 0, 0, 0, 0, 179, 0, 0, 184,
924
925 0, 93, 0, 85, 0, 0, 0, 0, 129, 0,
926 0, 0, 178, 0, 0, 26, 0, 0, 0, 0,
927 0, 0, 0, 0, 92, 0, 0, 0, 0, 0,
928 97, 0, 133, 89, 0, 0, 0, 0, 88, 180,
929 0
930 } ;
931
932static const YY_CHAR yy_ec[256] =
933 { 0,
934 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
935 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
936 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
937 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
938 5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
939 14, 17, 14, 18, 14, 14, 14, 19, 5, 20,
940 5, 21, 22, 5, 23, 24, 25, 26, 27, 28,
941 5, 29, 5, 30, 5, 31, 5, 32, 33, 34,
942 5, 35, 36, 37, 38, 39, 40, 5, 41, 5,
943 42, 43, 44, 5, 45, 5, 46, 47, 48, 49,
944
945 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
946 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
947 70, 71, 72, 5, 73, 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 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
954 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
955
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, 5, 5, 5, 5, 5,
960 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
961 5, 5, 5, 5, 5
962 } ;
963
964static const YY_CHAR yy_meta[74] =
965 { 0,
966 1, 1, 2, 1, 1, 3, 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, 1, 1, 1, 1, 1, 1, 1,
972 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
973 1, 1, 1
974 } ;
975
976static const flex_int16_t yy_base[2050] =
977 { 0,
978 0, 72, 21, 31, 43, 51, 54, 60, 91, 99,
979 2429, 2430, 34, 2425, 145, 0, 207, 2430, 214, 221,
980 13, 228, 2430, 2405, 118, 25, 2, 6, 2430, 2430,
981 73, 11, 17, 2430, 2430, 2430, 104, 2413, 2366, 0,
982 2403, 108, 2420, 24, 256, 2430, 67, 2369, 2389, 84,
983 75, 2389, 88, 226, 91, 89, 284, 196, 203, 279,
984 193, 224, 216, 60, 242, 2369, 286, 288, 314, 300,
985 319, 2352, 204, 324, 356, 329, 2371, 0, 380, 400,
986 420, 427, 406, 2430, 0, 2430, 385, 443, 238, 241,
987 310, 269, 299, 314, 2430, 2368, 2409, 2430, 405, 2430,
988
989 419, 400, 2366, 2407, 326, 10, 262, 407, 224, 409,
990 352, 206, 2406, 0, 480, 412, 2348, 415, 2356, 406,
991 2352, 2341, 2342, 2347, 442, 2357, 2340, 2349, 327, 431,
992 226, 2343, 2341, 452, 2330, 2388, 399, 2333, 2386, 2326,
993 441, 2347, 2347, 2341, 339, 2334, 2332, 2333, 2325, 2330,
994 2324, 414, 2335, 456, 2320, 2319, 2333, 454, 2371, 2318,
995 451, 2330, 474, 2318, 490, 2319, 476, 2331, 2328, 2329,
996 293, 2327, 2362, 2361, 449, 2307, 2307, 2311, 2307, 2299,
997 2316, 2308, 0, 457, 491, 401, 489, 501, 496, 2307,
998 2430, 510, 2302, 2430, 498, 508, 2430, 2356, 514, 2355,
999
1000 515, 2354, 512, 2353, 2430, 2430, 558, 2352, 522, 2311,
1001 2303, 2307, 2308, 2303, 2302, 219, 528, 2345, 2339, 2303,
1002 2284, 2281, 2289, 2295, 2283, 2297, 2293, 2294, 2294, 2289,
1003 2281, 2283, 2267, 2271, 2284, 2286, 2283, 2275, 2265, 2268,
1004 2282, 2430, 2268, 2276, 80, 2261, 2260, 2269, 2311, 2258,
1005 2268, 2308, 546, 2267, 2306, 2251, 2253, 2264, 2302, 528,
1006 2306, 2260, 2240, 2255, 539, 2245, 2251, 513, 2242, 2240,
1007 2243, 2239, 2245, 2236, 2235, 2248, 2241, 2231, 2242, 2246,
1008 2245, 2239, 431, 2246, 2241, 2233, 2223, 2238, 2233, 2237,
1009 523, 2235, 2221, 2227, 2234, 2216, 410, 2221, 2218, 2217,
1010
1011 555, 2212, 2226, 2225, 2224, 2227, 2209, 2217, 553, 2430,
1012 2430, 561, 2430, 2430, 2204, 519, 2251, 564, 2262, 2430,
1013 535, 2430, 2261, 2430, 2255, 601, 2430, 553, 2195, 2214,
1014 2197, 2214, 2202, 2254, 2209, 2212, 2203, 2206, 2201, 549,
1015 2430, 2203, 590, 2242, 2200, 2197, 2198, 619, 2202, 2242,
1016 2190, 2185, 2182, 2178, 2180, 2231, 2188, 2177, 2193, 2227,
1017 2173, 626, 2186, 2186, 2169, 2170, 2183, 2181, 2169, 2179,
1018 2178, 2173, 2180, 2175, 2160, 572, 2169, 2172, 2167, 577,
1019 2166, 2162, 2212, 570, 605, 2430, 2171, 2205, 2155, 2154,
1020 2147, 2149, 2161, 2152, 2159, 2140, 2157, 2146, 2151, 591,
1021
1022 2198, 2151, 591, 2148, 2151, 2151, 2149, 2138, 2138, 2150,
1023 583, 2125, 2126, 2147, 603, 2129, 2126, 2140, 2143, 2138,
1024 2124, 2136, 2135, 2134, 2129, 2171, 2131, 2130, 2129, 2128,
1025 543, 2171, 2130, 2169, 2168, 2110, 648, 2123, 2430, 2430,
1026 2122, 607, 2164, 2163, 2430, 2162, 2430, 628, 677, 620,
1027 2161, 2155, 2108, 2110, 2098, 2430, 2103, 2096, 2108, 2111,
1028 2094, 2109, 2096, 2095, 2430, 2105, 612, 2096, 2093, 2105,
1029 617, 2090, 2092, 2430, 2098, 2083, 2085, 2096, 2094, 2089,
1030 652, 2096, 2084, 2077, 2128, 2430, 2075, 2091, 2125, 2129,
1031 2085, 2079, 2081, 2082, 2066, 2083, 2117, 2068, 2067, 2062,
1032
1033 2061, 2063, 2059, 2055, 617, 2074, 2048, 2055, 2060, 2053,
1034 2069, 2103, 2107, 2430, 2052, 2048, 2104, 2055, 2054, 2048,
1035 2055, 2040, 2050, 2038, 2052, 2052, 2040, 2036, 2038, 2033,
1036 2430, 2090, 2430, 2032, 2031, 2024, 2041, 2080, 2079, 2024,
1037 2029, 2038, 2032, 2026, 2035, 659, 2072, 2034, 2017, 2017,
1038 2012, 2008, 2014, 2019, 650, 2021, 2025, 2008, 2066, 2007,
1039 2007, 2058, 2003, 2004, 2003, 2015, 2004, 2430, 2014, 2430,
1040 2430, 2003, 2430, 2013, 2049, 2009, 2052, 2430, 2430, 2430,
1041 636, 645, 675, 2430, 641, 2011, 1991, 2044, 1989, 1999,
1042 2041, 1986, 1985, 1984, 1991, 1984, 1992, 1995, 1977, 1977,
1043
1044 1992, 1991, 646, 1990, 1989, 1973, 1988, 1970, 2017, 1984,
1045 2022, 1966, 1968, 1980, 1980, 1979, 2430, 1964, 1961, 2019,
1046 1974, 1966, 1972, 1963, 1971, 2430, 1956, 1967, 1971, 1953,
1047 1965, 1966, 634, 1948, 1947, 1941, 1946, 1943, 1958, 1957,
1048 1958, 1937, 1947, 1953, 1996, 1951, 1950, 1942, 1933, 2430,
1049 1934, 1936, 2430, 1938, 1943, 1982, 1981, 16, 1942, 1979,
1050 1924, 1977, 1924, 1927, 1928, 1919, 2430, 1933, 1919, 703,
1051 1911, 1915, 1931, 1928, 1920, 1965, 1917, 1924, 1962, 2430,
1052 1908, 1906, 1920, 1904, 1918, 1921, 1955, 1954, 1953, 1900,
1053 1951, 1896, 1949, 1948, 2430, 1893, 1907, 1906, 711, 1907,
1054
1055 1906, 1903, 1903, 1940, 1900, 1889, 1891, 2430, 2430, 651,
1056 670, 1883, 1900, 1892, 1879, 1873, 1894, 1935, 1893, 670,
1057 1928, 1888, 1926, 1925, 1877, 1871, 1874, 1882, 1881, 80,
1058 161, 226, 294, 296, 552, 570, 563, 623, 687, 662,
1059 672, 655, 661, 673, 720, 726, 683, 685, 2430, 688,
1060 683, 675, 690, 695, 692, 689, 696, 695, 683, 697,
1061 695, 703, 739, 701, 746, 748, 692, 705, 691, 701,
1062 748, 706, 756, 2430, 757, 713, 711, 713, 709, 703,
1063 763, 759, 722, 711, 2430, 713, 724, 713, 726, 716,
1064 729, 773, 716, 775, 718, 733, 2430, 727, 721, 732,
1065
1066 717, 728, 741, 720, 726, 781, 745, 729, 729, 742,
1067 786, 787, 788, 735, 753, 748, 755, 754, 751, 736,
1068 748, 749, 756, 746, 744, 2430, 809, 767, 768, 758,
1069 770, 760, 773, 764, 770, 814, 790, 777, 759, 766,
1070 780, 825, 775, 2430, 779, 774, 789, 786, 772, 779,
1071 778, 776, 795, 792, 793, 781, 788, 789, 798, 802,
1072 838, 800, 790, 803, 789, 789, 795, 851, 792, 793,
1073 799, 815, 798, 852, 807, 2430, 817, 817, 810, 821,
1074 819, 864, 806, 808, 823, 824, 812, 810, 872, 829,
1075 815, 821, 819, 2430, 2430, 835, 834, 835, 840, 828,
1076
1077 838, 840, 2430, 2430, 840, 842, 829, 847, 834, 2430,
1078 832, 850, 837, 837, 888, 835, 839, 857, 898, 2430,
1079 899, 2430, 844, 858, 858, 903, 851, 850, 854, 848,
1080 908, 861, 851, 852, 848, 858, 862, 873, 857, 875,
1081 870, 872, 865, 867, 868, 864, 881, 871, 886, 927,
1082 884, 889, 866, 889, 875, 874, 2430, 881, 882, 897,
1083 887, 885, 935, 882, 897, 915, 923, 892, 941, 903,
1084 943, 2430, 909, 899, 898, 893, 894, 906, 913, 902,
1085 903, 899, 917, 903, 904, 914, 923, 959, 906, 924,
1086 917, 912, 966, 972, 929, 920, 2430, 924, 932, 934,
1087
1088 919, 935, 925, 937, 931, 978, 944, 928, 929, 2430,
1089 945, 948, 931, 933, 991, 934, 953, 2430, 952, 955,
1090 942, 937, 955, 943, 996, 954, 950, 947, 1000, 949,
1091 1002, 964, 950, 968, 967, 953, 968, 960, 956, 974,
1092 973, 960, 977, 2430, 2430, 969, 1016, 969, 2430, 977,
1093 980, 973, 1026, 2430, 976, 981, 1025, 976, 977, 989,
1094 983, 987, 985, 983, 994, 1039, 983, 988, 985, 1043,
1095 1044, 988, 1000, 2430, 988, 996, 995, 1046, 988, 1009,
1096 995, 996, 1005, 1017, 1004, 1002, 1016, 1017, 1033, 1038,
1097 1020, 1025, 1008, 1008, 1010, 1021, 1011, 1031, 1030, 1021,
1098
1099 1010, 1027, 1034, 1077, 1019, 1039, 1032, 1036, 1040, 1023,
1100 1040, 1031, 1086, 1033, 1037, 2430, 1084, 1035, 1034, 1034,
1101 1055, 1052, 1092, 1041, 1059, 1060, 1046, 1054, 1063, 1043,
1102 1058, 1065, 1107, 1108, 2430, 1061, 1110, 1111, 1053, 1063,
1103 1073, 1057, 1077, 1060, 1062, 1062, 1069, 1078, 1066, 1073,
1104 1068, 1075, 1087, 1128, 1075, 1074, 1091, 1132, 1082, 1086,
1105 1084, 1082, 1077, 1138, 1089, 1140, 1090, 1142, 1138, 1144,
1106 1097, 2430, 1102, 1095, 1086, 1105, 1099, 1094, 1104, 1101,
1107 1106, 1103, 1115, 2430, 1099, 1101, 1096, 2430, 2430, 1102,
1108 1162, 1101, 1120, 1121, 1123, 1162, 1115, 1169, 1170, 1123,
1109
1110 1108, 1122, 1130, 1112, 1117, 1156, 1147, 1179, 1134, 1134,
1111 1138, 1125, 1125, 1128, 1145, 1140, 1144, 1189, 1137, 1141,
1112 2430, 1138, 1134, 1151, 1131, 1152, 1142, 1193, 1146, 2430,
1113 1160, 1158, 1161, 1145, 1157, 1163, 1149, 1209, 1162, 1167,
1114 1154, 1165, 1157, 1163, 1159, 1177, 1178, 1179, 2430, 2430,
1115 1177, 2430, 1179, 2430, 1164, 1175, 1166, 1185, 1178, 1176,
1116 1228, 1185, 1182, 1226, 1190, 1179, 1186, 1191, 1188, 1194,
1117 2430, 1187, 1179, 1240, 2430, 1241, 1188, 1195, 1239, 1201,
1118 2430, 1202, 2430, 1199, 2430, 1190, 2430, 1190, 1193, 1207,
1119 1212, 1195, 1206, 1255, 1212, 1213, 1214, 1254, 1210, 1261,
1120
1121 1214, 1258, 1264, 2430, 1211, 1266, 1267, 1224, 1225, 1227,
1122 2430, 2430, 1210, 1272, 1268, 1232, 1216, 1228, 1247, 1278,
1123 2430, 1235, 1226, 1237, 1282, 1219, 1230, 1245, 1281, 1233,
1124 2430, 1229, 1245, 1233, 1247, 1248, 1245, 1289, 1252, 1242,
1125 1252, 1258, 1246, 1246, 1301, 1297, 1303, 1260, 2430, 1263,
1126 1262, 1264, 1257, 1266, 1267, 1265, 1255, 1258, 1258, 1317,
1127 1264, 1319, 1266, 1321, 1264, 1269, 1324, 2430, 1282, 1262,
1128 1277, 1270, 1273, 1286, 1289, 1288, 1286, 1335, 1289, 2430,
1129 2430, 1285, 1295, 1280, 1336, 1283, 1298, 1284, 1345, 1346,
1130 1290, 1300, 1349, 1306, 2430, 1298, 1298, 1300, 1302, 1355,
1131
1132 1298, 2430, 1299, 1317, 2430, 1301, 2430, 2430, 1317, 1300,
1133 1320, 1321, 2430, 1308, 1316, 1368, 1317, 1349, 2430, 1371,
1134 1321, 1368, 2430, 1316, 1375, 1325, 1319, 1316, 1319, 1322,
1135 1322, 1318, 1340, 1379, 1332, 1344, 1347, 1335, 1338, 1331,
1136 1391, 1339, 2430, 1335, 2430, 1337, 1396, 1349, 1340, 1355,
1137 1355, 1358, 1358, 1355, 1399, 1361, 2430, 1353, 2430, 1354,
1138 2430, 1364, 1356, 2430, 1405, 1367, 1368, 1365, 1409, 1357,
1139 1372, 1412, 1374, 1366, 2430, 1363, 1363, 1369, 1368, 1366,
1140 1420, 1382, 1382, 2430, 2430, 1423, 1370, 2430, 1387, 1372,
1141 1372, 1374, 1380, 2430, 1389, 1436, 1379, 1385, 1377, 1391,
1142
1143 1402, 1396, 1402, 1446, 1399, 1408, 2430, 1405, 1424, 2430,
1144 1408, 1393, 1453, 2430, 1454, 1411, 1416, 1398, 1458, 1459,
1145 1460, 1456, 1420, 1417, 1413, 1406, 1461, 1419, 1420, 2430,
1146 1410, 1423, 1471, 2430, 1409, 1469, 1432, 1428, 1473, 1421,
1147 1426, 1424, 1483, 1439, 1427, 1486, 1482, 1437, 1489, 1450,
1148 1439, 1433, 1493, 1435, 1444, 1437, 1451, 1454, 1499, 1441,
1149 1458, 1454, 1452, 1445, 1460, 1444, 1502, 1503, 1504, 1451,
1150 1506, 1469, 1462, 1461, 1455, 2430, 1472, 1464, 1470, 1461,
1151 1460, 1462, 1517, 2430, 1458, 1476, 1525, 1495, 1527, 1480,
1152 2430, 2430, 1471, 1482, 1531, 2430, 2430, 2430, 1477, 1482,
1153
1154 1480, 1530, 1488, 1493, 1481, 1497, 1486, 1485, 1486, 2430,
1155 1544, 1490, 1541, 1484, 1489, 1550, 1498, 1508, 1509, 2430,
1156 1555, 1508, 1552, 2430, 1503, 1511, 2430, 1502, 1517, 1505,
1157 2430, 1515, 1516, 1517, 1566, 1524, 2430, 1563, 1529, 1505,
1158 1523, 1524, 1525, 1534, 1516, 1522, 1524, 1578, 1537, 1536,
1159 1527, 1577, 1524, 1531, 1526, 1527, 1587, 1537, 1589, 1542,
1160 1547, 1540, 2430, 1593, 2430, 1542, 1595, 1537, 2430, 1540,
1161 1550, 1594, 1542, 1557, 1544, 1559, 1545, 1552, 1552, 1563,
1162 2430, 1557, 1552, 1551, 1611, 1564, 2430, 1608, 1559, 1556,
1163 2430, 1570, 1557, 1578, 1574, 1576, 1621, 1574, 1571, 1579,
1164
1165 1573, 2430, 1626, 1567, 1569, 1585, 1578, 1579, 1569, 1585,
1166 1586, 1580, 1596, 2430, 1586, 1638, 1598, 1582, 1636, 1600,
1167 1595, 1644, 2430, 1586, 2430, 1593, 1647, 1643, 2430, 1605,
1168 2430, 1645, 1607, 1608, 1593, 1594, 1602, 1656, 1604, 1653,
1169 1654, 1609, 1621, 1618, 1609, 1616, 2430, 1613, 1618, 1616,
1170 1668, 1669, 1617, 1614, 1628, 1615, 2430, 1630, 1631, 1632,
1171 1633, 2430, 1623, 1635, 1680, 1633, 1638, 1683, 1625, 1633,
1172 1627, 1635, 1648, 2430, 1649, 1630, 1637, 1628, 1640, 2430,
1173 1689, 1650, 2430, 1654, 1639, 1639, 1654, 1647, 1646, 1657,
1174 1644, 2430, 1660, 1648, 1651, 1707, 1665, 1656, 1668, 1659,
1175
1176 1668, 1670, 1674, 2430, 2430, 1667, 1658, 1658, 1718, 1661,
1177 1720, 1662, 1722, 1680, 1724, 2430, 1666, 1726, 2430, 1722,
1178 1684, 1681, 1686, 1673, 1681, 1692, 1689, 1735, 1676, 1679,
1179 1684, 1675, 1740, 1693, 1694, 1684, 1701, 1700, 1741, 1685,
1180 1704, 1705, 2430, 1702, 1751, 1708, 1709, 1754, 1711, 1714,
1181 1701, 1710, 1711, 2430, 1760, 2430, 1713, 2430, 1722, 2430,
1182 1763, 2430, 1705, 1765, 1712, 1767, 1710, 1769, 1717, 1766,
1183 2430, 1728, 1733, 1774, 1733, 2430, 1724, 1714, 1773, 1739,
1184 1732, 1728, 1782, 1725, 1727, 1732, 2430, 1728, 1730, 2430,
1185 1735, 1745, 1730, 1738, 1740, 2430, 1741, 1735, 2430, 1747,
1186
1187 2430, 1743, 2430, 1753, 2430, 1754, 1744, 1800, 1749, 2430,
1188 1751, 1759, 1804, 1745, 1747, 1744, 1768, 2430, 1755, 1762,
1189 1765, 1754, 1808, 1755, 1763, 1772, 1771, 1774, 1775, 1776,
1190 1769, 1764, 1765, 1765, 1771, 2430, 1771, 1783, 1828, 2430,
1191 1774, 1786, 1831, 1780, 1782, 1780, 1835, 1788, 1775, 1790,
1192 1795, 1840, 1841, 1842, 1843, 1844, 1801, 1846, 1847, 1848,
1193 1795, 1799, 1793, 2430, 1809, 1853, 2430, 1810, 1795, 1813,
1194 2430, 1804, 1818, 1814, 1807, 2430, 2430, 2430, 2430, 2430,
1195 1861, 2430, 2430, 2430, 1811, 1819, 1864, 1825, 2430, 1866,
1196 1808, 1868, 1823, 1822, 1823, 1813, 2430, 1873, 1869, 2430,
1197
1198 1816, 2430, 1828, 2430, 1877, 1819, 1835, 1880, 2430, 1841,
1199 1838, 1830, 2430, 1880, 1829, 2430, 1841, 1834, 1889, 1837,
1200 1832, 1834, 1849, 1834, 2430, 1895, 1848, 1897, 1898, 1846,
1201 2430, 1848, 2430, 2430, 1842, 1858, 1903, 1904, 2430, 2430,
1202 2430, 1910, 1913, 1916, 1917, 1919, 1922, 1925, 1928
1203 } ;
1204
1205static const flex_int16_t yy_def[2050] =
1206 { 0,
1207 2042, 2042, 2043, 2043, 2042, 2042, 2042, 2042, 2042, 2042,
1208 2041, 2041, 2041, 2041, 2041, 2044, 2041, 2041, 2041, 2041,
1209 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1210 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2045,
1211 2041, 2041, 2041, 2046, 15, 2041, 45, 45, 45, 45,
1212 45, 45, 45, 45, 45, 45, 2047, 45, 45, 45,
1213 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1214 45, 45, 45, 45, 45, 45, 45, 2044, 2041, 2041,
1215 2041, 2041, 2041, 2041, 2048, 2041, 2041, 2041, 2041, 2041,
1216 2041, 2041, 2041, 2041, 2041, 2041, 2045, 2041, 2046, 2041,
1217
1218 2041, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1219 45, 45, 2049, 45, 2047, 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, 45, 45, 45, 45, 45, 45, 45, 45,
1224 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1225 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1226 45, 45, 2048, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1227 2041, 45, 45, 2041, 45, 45, 2041, 45, 45, 45,
1228
1229 45, 45, 45, 2049, 2041, 2041, 115, 45, 45, 45,
1230 45, 45, 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, 2041, 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 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1237 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1238 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1239
1240 45, 45, 45, 45, 45, 45, 45, 45, 2041, 2041,
1241 2041, 2041, 2041, 2041, 2041, 45, 45, 45, 45, 2041,
1242 45, 2041, 45, 2041, 45, 115, 2041, 45, 45, 45,
1243 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1244 2041, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1245 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1246 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1247 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1248 45, 45, 45, 45, 45, 2041, 45, 45, 45, 45,
1249 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1250
1251 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1252 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1253 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1254 45, 45, 45, 45, 45, 45, 45, 45, 2041, 2041,
1255 2041, 45, 45, 45, 2041, 45, 2041, 45, 115, 45,
1256 45, 45, 45, 45, 45, 2041, 45, 45, 45, 45,
1257 45, 45, 45, 45, 2041, 45, 45, 45, 45, 45,
1258 45, 45, 45, 2041, 45, 45, 45, 45, 45, 45,
1259 45, 45, 45, 45, 45, 2041, 45, 45, 45, 45,
1260 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1261
1262 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1263 45, 45, 45, 2041, 45, 45, 45, 45, 45, 45,
1264 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1265 2041, 45, 2041, 45, 45, 45, 45, 45, 45, 45,
1266 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1267 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1268 45, 45, 45, 45, 45, 45, 45, 2041, 45, 2041,
1269 2041, 45, 2041, 45, 45, 2041, 45, 2041, 2041, 2041,
1270 45, 45, 45, 2041, 45, 45, 45, 45, 45, 45,
1271 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1272
1273 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1274 45, 45, 45, 45, 45, 45, 2041, 45, 45, 45,
1275 45, 45, 45, 45, 45, 2041, 45, 45, 45, 45,
1276 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1277 45, 45, 45, 45, 45, 45, 45, 45, 45, 2041,
1278 45, 45, 2041, 45, 45, 45, 45, 45, 45, 45,
1279 45, 45, 45, 45, 45, 45, 2041, 45, 45, 45,
1280 45, 45, 45, 45, 45, 45, 45, 45, 45, 2041,
1281 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1282 45, 45, 45, 45, 2041, 45, 45, 45, 45, 45,
1283
1284 45, 45, 45, 45, 45, 45, 45, 2041, 2041, 45,
1285 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1286 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1287 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1288 45, 45, 45, 45, 45, 45, 45, 45, 2041, 45,
1289 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1290 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1291 45, 45, 45, 2041, 45, 45, 45, 45, 45, 45,
1292 45, 45, 45, 45, 2041, 45, 45, 45, 45, 45,
1293 45, 45, 45, 45, 45, 45, 2041, 45, 45, 45,
1294
1295 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1296 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1297 45, 45, 45, 45, 45, 2041, 45, 45, 45, 45,
1298 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1299 45, 45, 45, 2041, 45, 45, 45, 45, 45, 45,
1300 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1301 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1302 45, 45, 45, 45, 45, 2041, 45, 45, 45, 45,
1303 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1304 45, 45, 45, 2041, 2041, 45, 45, 45, 45, 45,
1305
1306 45, 45, 2041, 2041, 45, 45, 45, 45, 45, 2041,
1307 45, 45, 45, 45, 45, 45, 45, 45, 45, 2041,
1308 45, 2041, 45, 45, 45, 45, 45, 45, 45, 45,
1309 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1310 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1311 45, 45, 45, 45, 45, 45, 2041, 45, 45, 45,
1312 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1313 45, 2041, 45, 45, 45, 45, 45, 45, 45, 45,
1314 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1315 45, 45, 45, 45, 45, 45, 2041, 45, 45, 45,
1316
1317 45, 45, 45, 45, 45, 45, 45, 45, 45, 2041,
1318 45, 45, 45, 45, 45, 45, 45, 2041, 45, 45,
1319 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1320 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1321 45, 45, 45, 2041, 2041, 45, 45, 45, 2041, 45,
1322 45, 45, 45, 2041, 45, 45, 45, 45, 45, 45,
1323 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1324 45, 45, 45, 2041, 45, 45, 45, 45, 45, 45,
1325 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1326 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1327
1328 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1329 45, 45, 45, 45, 45, 2041, 45, 45, 45, 45,
1330 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1331 45, 45, 45, 45, 2041, 45, 45, 45, 45, 45,
1332 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1333 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1334 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1335 45, 2041, 45, 45, 45, 45, 45, 45, 45, 45,
1336 45, 45, 45, 2041, 45, 45, 45, 2041, 2041, 45,
1337 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1338
1339 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1340 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1341 2041, 45, 45, 45, 45, 45, 45, 45, 45, 2041,
1342 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1343 45, 45, 45, 45, 45, 45, 45, 45, 2041, 2041,
1344 45, 2041, 45, 2041, 45, 45, 45, 45, 45, 45,
1345 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1346 2041, 45, 45, 45, 2041, 45, 45, 45, 45, 45,
1347 2041, 45, 2041, 45, 2041, 45, 2041, 45, 45, 45,
1348 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1349
1350 45, 45, 45, 2041, 45, 45, 45, 45, 45, 45,
1351 2041, 2041, 45, 45, 45, 45, 45, 45, 45, 45,
1352 2041, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1353 2041, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1354 45, 45, 45, 45, 45, 45, 45, 45, 2041, 45,
1355 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1356 45, 45, 45, 45, 45, 45, 45, 2041, 45, 45,
1357 45, 45, 45, 45, 45, 45, 45, 45, 45, 2041,
1358 2041, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1359 45, 45, 45, 45, 2041, 45, 45, 45, 45, 45,
1360
1361 45, 2041, 45, 45, 2041, 45, 2041, 2041, 45, 45,
1362 45, 45, 2041, 45, 45, 45, 45, 45, 2041, 45,
1363 45, 45, 2041, 45, 45, 45, 45, 45, 45, 45,
1364 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1365 45, 45, 2041, 45, 2041, 45, 45, 45, 45, 45,
1366 45, 45, 45, 45, 45, 45, 2041, 45, 2041, 45,
1367 2041, 45, 45, 2041, 45, 45, 45, 45, 45, 45,
1368 45, 45, 45, 45, 2041, 45, 45, 45, 45, 45,
1369 45, 45, 45, 2041, 2041, 45, 45, 2041, 45, 45,
1370 45, 45, 45, 2041, 45, 45, 45, 45, 45, 45,
1371
1372 45, 45, 45, 45, 45, 45, 2041, 45, 45, 2041,
1373 45, 45, 45, 2041, 45, 45, 45, 45, 45, 45,
1374 45, 45, 45, 45, 45, 45, 45, 45, 45, 2041,
1375 45, 45, 45, 2041, 45, 45, 45, 45, 45, 45,
1376 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1377 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1378 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1379 45, 45, 45, 45, 45, 2041, 45, 45, 45, 45,
1380 45, 45, 45, 2041, 45, 45, 45, 45, 45, 45,
1381 2041, 2041, 45, 45, 45, 2041, 2041, 2041, 45, 45,
1382
1383 45, 45, 45, 45, 45, 45, 45, 45, 45, 2041,
1384 45, 45, 45, 45, 45, 45, 45, 45, 45, 2041,
1385 45, 45, 45, 2041, 45, 45, 2041, 45, 45, 45,
1386 2041, 45, 45, 45, 45, 45, 2041, 45, 45, 45,
1387 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1388 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1389 45, 45, 2041, 45, 2041, 45, 45, 45, 2041, 45,
1390 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1391 2041, 45, 45, 45, 45, 45, 2041, 45, 45, 45,
1392 2041, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1393
1394 45, 2041, 45, 45, 45, 45, 45, 45, 45, 45,
1395 45, 45, 45, 2041, 45, 45, 45, 45, 45, 45,
1396 45, 45, 2041, 45, 2041, 45, 45, 45, 2041, 45,
1397 2041, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1398 45, 45, 45, 45, 45, 45, 2041, 45, 45, 45,
1399 45, 45, 45, 45, 45, 45, 2041, 45, 45, 45,
1400 45, 2041, 45, 45, 45, 45, 45, 45, 45, 45,
1401 45, 45, 45, 2041, 45, 45, 45, 45, 45, 2041,
1402 45, 45, 2041, 45, 45, 45, 45, 45, 45, 45,
1403 45, 2041, 45, 45, 45, 45, 45, 45, 45, 45,
1404
1405 45, 45, 45, 2041, 2041, 45, 45, 45, 45, 45,
1406 45, 45, 45, 45, 45, 2041, 45, 45, 2041, 45,
1407 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1408 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1409 45, 45, 2041, 45, 45, 45, 45, 45, 45, 45,
1410 45, 45, 45, 2041, 45, 2041, 45, 2041, 45, 2041,
1411 45, 2041, 45, 45, 45, 45, 45, 45, 45, 45,
1412 2041, 45, 45, 45, 45, 2041, 45, 45, 45, 45,
1413 45, 45, 45, 45, 45, 45, 2041, 45, 45, 2041,
1414 45, 45, 45, 45, 45, 2041, 45, 45, 2041, 45,
1415
1416 2041, 45, 2041, 45, 2041, 45, 45, 45, 45, 2041,
1417 45, 45, 45, 45, 45, 45, 45, 2041, 45, 45,
1418 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1419 45, 45, 45, 45, 45, 2041, 45, 45, 45, 2041,
1420 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1421 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1422 45, 45, 45, 2041, 45, 45, 2041, 45, 45, 45,
1423 2041, 45, 45, 45, 45, 2041, 2041, 2041, 2041, 2041,
1424 45, 2041, 2041, 2041, 45, 45, 45, 45, 2041, 45,
1425 45, 45, 45, 45, 45, 45, 2041, 45, 45, 2041,
1426
1427 45, 2041, 45, 2041, 45, 45, 45, 45, 2041, 45,
1428 45, 45, 2041, 45, 45, 2041, 45, 45, 45, 45,
1429 45, 45, 45, 45, 2041, 45, 45, 45, 45, 45,
1430 2041, 45, 2041, 2041, 45, 45, 45, 45, 2041, 2041,
1431 0, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041
1432 } ;
1433
1434static const flex_int16_t yy_nxt[2504] =
1435 { 0,
1436 2041, 13, 14, 13, 2041, 15, 16, 2041, 17, 18,
1437 19, 20, 21, 22, 22, 22, 22, 22, 23, 24,
1438 84, 785, 37, 14, 37, 85, 25, 26, 38, 100,
1439 2041, 27, 37, 14, 37, 42, 28, 42, 38, 90,
1440 91, 29, 196, 30, 13, 14, 13, 89, 90, 25,
1441 31, 91, 13, 14, 13, 13, 14, 13, 32, 40,
1442 786, 13, 14, 13, 33, 40, 101, 90, 91, 196,
1443 89, 34, 35, 13, 14, 13, 93, 15, 16, 94,
1444 17, 18, 19, 20, 21, 22, 22, 22, 22, 22,
1445 23, 24, 13, 14, 13, 89, 39, 102, 25, 26,
1446
1447 13, 14, 13, 27, 39, 42, 105, 42, 28, 42,
1448 106, 42, 41, 29, 108, 30, 111, 112, 92, 134,
1449 41, 25, 31, 102, 135, 367, 87, 136, 87, 105,
1450 32, 88, 88, 88, 88, 88, 33, 108, 106, 111,
1451 858, 112, 368, 34, 35, 44, 44, 44, 45, 45,
1452 46, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1453 45, 45, 45, 45, 45, 45, 45, 47, 45, 45,
1454 48, 49, 50, 45, 51, 52, 53, 45, 45, 45,
1455 45, 54, 55, 45, 56, 45, 45, 57, 45, 45,
1456 58, 45, 59, 60, 61, 62, 63, 64, 65, 51,
1457
1458 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1459 76, 77, 56, 45, 45, 45, 45, 45, 79, 859,
1460 80, 80, 80, 80, 80, 79, 102, 82, 82, 82,
1461 82, 82, 203, 81, 83, 83, 83, 83, 83, 79,
1462 81, 82, 82, 82, 82, 82, 105, 81, 118, 164,
1463 109, 129, 116, 165, 81, 203, 81, 200, 117, 119,
1464 110, 130, 120, 81, 121, 132, 122, 197, 184, 105,
1465 81, 185, 133, 109, 860, 233, 335, 81, 45, 336,
1466 131, 45, 45, 45, 200, 45, 45, 45, 110, 114,
1467 137, 234, 45, 45, 184, 45, 45, 185, 198, 184,
1468
1469 138, 45, 139, 45, 45, 45, 45, 45, 45, 45,
1470 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1471 45, 45, 45, 45, 123, 187, 45, 124, 125, 185,
1472 45, 126, 127, 145, 45, 141, 142, 146, 296, 143,
1473 108, 147, 45, 861, 128, 144, 45, 186, 45, 115,
1474 153, 186, 297, 148, 111, 188, 195, 149, 154, 150,
1475 155, 151, 862, 152, 158, 156, 157, 159, 160, 166,
1476 173, 174, 228, 167, 229, 186, 168, 111, 161, 189,
1477 109, 162, 195, 169, 170, 202, 252, 180, 171, 172,
1478 110, 230, 181, 83, 83, 83, 83, 83, 88, 88,
1479
1480 88, 88, 88, 175, 242, 176, 81, 253, 177, 178,
1481 100, 79, 202, 80, 80, 80, 80, 80, 110, 83,
1482 83, 83, 83, 83, 99, 179, 81, 311, 87, 81,
1483 87, 99, 81, 88, 88, 88, 88, 88, 79, 192,
1484 82, 82, 82, 82, 82, 199, 201, 101, 243, 81,
1485 311, 192, 199, 81, 215, 81, 88, 88, 88, 88,
1486 88, 99, 211, 216, 217, 99, 262, 192, 208, 99,
1487 426, 212, 427, 199, 201, 213, 81, 99, 231, 209,
1488 260, 99, 200, 99, 99, 206, 247, 410, 222, 223,
1489 411, 232, 309, 207, 207, 207, 207, 207, 224, 248,
1490
1491 280, 267, 207, 207, 207, 207, 207, 207, 237, 301,
1492 273, 238, 263, 274, 275, 239, 268, 269, 270, 277,
1493 309, 310, 311, 278, 309, 207, 207, 207, 207, 207,
1494 207, 310, 316, 318, 290, 281, 282, 283, 291, 319,
1495 321, 323, 292, 325, 316, 314, 284, 310, 285, 390,
1496 286, 287, 312, 288, 321, 316, 376, 313, 394, 442,
1497 322, 318, 863, 321, 323, 431, 319, 328, 395, 446,
1498 325, 326, 326, 326, 326, 326, 419, 385, 337, 439,
1499 326, 326, 326, 326, 326, 326, 338, 439, 442, 420,
1500 444, 339, 340, 442, 462, 465, 531, 446, 566, 391,
1501
1502 466, 567, 439, 326, 326, 326, 326, 326, 326, 377,
1503 440, 463, 378, 444, 449, 449, 449, 449, 449, 864,
1504 515, 865, 450, 449, 449, 449, 449, 449, 449, 471,
1505 516, 486, 503, 504, 505, 472, 487, 510, 506, 446,
1506 535, 544, 577, 511, 536, 545, 449, 449, 449, 449,
1507 449, 449, 549, 573, 532, 577, 550, 617, 574, 581,
1508 690, 582, 618, 598, 680, 607, 641, 517, 710, 681,
1509 577, 599, 866, 600, 601, 602, 642, 603, 608, 711,
1510 709, 761, 762, 583, 488, 712, 581, 836, 582, 489,
1511 45, 45, 45, 45, 45, 710, 837, 867, 713, 45,
1512
1513 45, 45, 45, 45, 45, 714, 732, 711, 797, 733,
1514 868, 872, 691, 798, 873, 836, 826, 846, 847, 837,
1515 848, 874, 45, 45, 45, 45, 45, 45, 827, 869,
1516 875, 876, 877, 870, 878, 879, 880, 871, 881, 882,
1517 883, 884, 885, 886, 887, 888, 889, 890, 891, 892,
1518 893, 894, 799, 895, 896, 897, 898, 899, 901, 902,
1519 900, 903, 904, 905, 906, 907, 908, 909, 910, 911,
1520 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,
1521 922, 923, 924, 925, 926, 927, 928, 929, 930, 931,
1522 932, 933, 934, 935, 936, 937, 938, 939, 940, 941,
1523
1524 942, 943, 945, 946, 947, 950, 951, 952, 944, 954,
1525 955, 948, 956, 953, 957, 949, 958, 959, 960, 961,
1526 962, 963, 964, 965, 966, 967, 968, 969, 970, 971,
1527 972, 973, 974, 975, 976, 977, 978, 979, 980, 981,
1528 982, 983, 984, 985, 986, 987, 988, 989, 990, 991,
1529 992, 993, 994, 967, 995, 996, 997, 998, 999, 1000,
1530 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
1531 1012, 1013, 1014, 1015, 1011, 1016, 1017, 1018, 1019, 1020,
1532 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030,
1533 1031, 1032, 1033, 1034, 1035, 1036, 1038, 1039, 1040, 1037,
1534
1535 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050,
1536 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060,
1537 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070,
1538 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081,
1539 1082, 1071, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090,
1540 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100,
1541 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110,
1542 1111, 1112, 1090, 1113, 1114, 1089, 1115, 1116, 1117, 1118,
1543 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128,
1544 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1138, 1139, 1140,
1545
1546 1141, 1136, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149,
1547 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159,
1548 1160, 1161, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170,
1549 1171, 1172, 1162, 1173, 1174, 1175, 1176, 1177, 1178, 1179,
1550 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189,
1551 1190, 1191, 1192, 1193, 1137, 1194, 1195, 1196, 1197, 1198,
1552 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1208, 1207,
1553 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218,
1554 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228,
1555 1229, 1230, 1231, 1232, 1233, 1206, 1207, 1234, 1235, 1236,
1556
1557 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246,
1558 1247, 1248, 1249, 1250, 1251, 1252, 1254, 1256, 1257, 1258,
1559 1253, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267,
1560 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277,
1561 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287,
1562 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297,
1563 1255, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306,
1564 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316,
1565 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326,
1566 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336,
1567
1568 1337, 1338, 1339, 1340, 1341, 1319, 1342, 1343, 1344, 1345,
1569 1346, 1320, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354,
1570 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364,
1571 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374,
1572 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384,
1573 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394,
1574 1395, 1396, 1397, 1398, 1399, 1401, 1402, 1403, 1404, 1405,
1575 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415,
1576 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1425, 1426,
1577 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436,
1578
1579 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446,
1580 1418, 1447, 1448, 1449, 1450, 1451, 1452, 1400, 1453, 1454,
1581 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464,
1582 1465, 1424, 1466, 1467, 1469, 1470, 1471, 1472, 1473, 1474,
1583 1475, 1468, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483,
1584 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493,
1585 1494, 1496, 1497, 1500, 1498, 1495, 1499, 1501, 1502, 1503,
1586 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513,
1587 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523,
1588 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1509, 1532,
1589
1590 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542,
1591 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552,
1592 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562,
1593 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572,
1594 1573, 1576, 1574, 1577, 1578, 1579, 1580, 1581, 1575, 1582,
1595 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592,
1596 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1602, 1603,
1597 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1601, 1612,
1598 1613, 1614, 1588, 1615, 1616, 1617, 1618, 1619, 1620, 1622,
1599 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632,
1600
1601 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642,
1602 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652,
1603 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662,
1604 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672,
1605 1673, 1674, 1675, 1676, 1677, 1678, 1621, 1679, 1680, 1681,
1606 1683, 1684, 1685, 1686, 1682, 1687, 1688, 1689, 1690, 1664,
1607 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700,
1608 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710,
1609 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720,
1610 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730,
1611
1612 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740,
1613 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750,
1614 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760,
1615 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770,
1616 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780,
1617 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790,
1618 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800,
1619 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810,
1620 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820,
1621 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830,
1622
1623 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840,
1624 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850,
1625 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860,
1626 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870,
1627 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880,
1628 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890,
1629 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900,
1630 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910,
1631 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920,
1632 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930,
1633
1634 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940,
1635 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950,
1636 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960,
1637 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970,
1638 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980,
1639 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990,
1640 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
1641 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
1642 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2019, 2018, 2020,
1643 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030,
1644
1645 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040,
1646 12, 12, 12, 36, 36, 36, 78, 97, 78, 99,
1647 99, 99, 113, 113, 113, 183, 857, 183, 204, 204,
1648 204, 856, 855, 854, 853, 852, 851, 850, 849, 845,
1649 844, 843, 842, 841, 840, 839, 838, 835, 834, 833,
1650 832, 831, 830, 829, 828, 825, 824, 823, 822, 821,
1651 820, 819, 818, 817, 816, 815, 814, 813, 812, 811,
1652 810, 809, 808, 807, 806, 805, 804, 803, 802, 801,
1653 800, 796, 795, 794, 793, 792, 791, 790, 789, 788,
1654 787, 784, 783, 782, 781, 780, 779, 778, 777, 776,
1655
1656 775, 774, 773, 772, 771, 770, 769, 768, 767, 766,
1657 765, 764, 763, 760, 759, 758, 757, 756, 755, 754,
1658 753, 752, 751, 750, 749, 748, 747, 746, 745, 744,
1659 743, 742, 741, 740, 739, 738, 737, 736, 735, 734,
1660 731, 730, 729, 728, 727, 726, 725, 724, 723, 722,
1661 721, 720, 719, 718, 717, 716, 715, 709, 708, 707,
1662 706, 705, 704, 703, 702, 701, 700, 699, 698, 697,
1663 696, 695, 694, 693, 692, 689, 688, 687, 686, 685,
1664 684, 683, 682, 679, 678, 677, 676, 675, 674, 673,
1665 672, 671, 670, 669, 668, 667, 666, 665, 664, 663,
1666
1667 662, 661, 660, 659, 658, 657, 656, 655, 654, 653,
1668 652, 651, 650, 649, 648, 647, 646, 645, 644, 643,
1669 640, 639, 638, 637, 636, 635, 634, 633, 632, 631,
1670 630, 629, 628, 627, 626, 625, 624, 623, 622, 621,
1671 620, 619, 616, 615, 614, 613, 612, 611, 610, 609,
1672 606, 605, 604, 597, 596, 595, 594, 593, 592, 591,
1673 590, 589, 588, 587, 586, 585, 584, 580, 579, 578,
1674 576, 575, 572, 571, 570, 569, 568, 565, 564, 563,
1675 562, 561, 560, 559, 558, 557, 556, 555, 554, 553,
1676 552, 551, 548, 547, 546, 543, 542, 541, 540, 539,
1677
1678 538, 537, 534, 533, 530, 529, 528, 527, 526, 525,
1679 524, 523, 522, 521, 520, 519, 518, 514, 513, 512,
1680 509, 508, 507, 502, 501, 500, 499, 498, 497, 496,
1681 495, 494, 493, 492, 491, 490, 485, 484, 483, 482,
1682 481, 480, 479, 478, 477, 476, 475, 474, 473, 470,
1683 469, 468, 467, 464, 461, 460, 459, 458, 457, 456,
1684 455, 454, 453, 452, 451, 448, 447, 445, 443, 441,
1685 438, 437, 436, 435, 434, 433, 432, 430, 429, 428,
1686 425, 424, 423, 422, 421, 418, 417, 416, 415, 414,
1687 413, 412, 409, 408, 407, 406, 405, 404, 403, 402,
1688
1689 401, 400, 399, 398, 397, 396, 393, 392, 389, 388,
1690 387, 386, 384, 383, 382, 381, 380, 379, 375, 374,
1691 373, 372, 371, 370, 369, 366, 365, 364, 363, 362,
1692 361, 360, 359, 358, 357, 356, 355, 354, 353, 352,
1693 351, 350, 349, 348, 347, 346, 345, 344, 343, 342,
1694 341, 334, 333, 332, 331, 330, 329, 327, 205, 324,
1695 322, 320, 317, 315, 308, 307, 306, 305, 304, 303,
1696 302, 300, 299, 298, 295, 294, 293, 289, 279, 276,
1697 272, 271, 266, 265, 264, 261, 259, 258, 257, 256,
1698 255, 254, 251, 250, 249, 246, 245, 244, 241, 240,
1699
1700 236, 235, 227, 226, 225, 221, 220, 219, 218, 214,
1701 210, 205, 194, 193, 191, 190, 182, 163, 140, 107,
1702 104, 103, 43, 98, 96, 95, 86, 43, 2041, 11,
1703 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1704 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1705 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1706 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1707 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1708 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1709 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1710
1711 2041, 2041, 2041
1712 } ;
1713
1714static const flex_int16_t yy_chk[2504] =
1715 { 0,
1716 0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
1717 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1718 21, 658, 3, 3, 3, 21, 1, 1, 3, 44,
1719 0, 1, 4, 4, 4, 13, 1, 13, 4, 27,
1720 28, 1, 106, 1, 5, 5, 5, 26, 32, 1,
1721 1, 33, 6, 6, 6, 7, 7, 7, 1, 7,
1722 658, 8, 8, 8, 1, 8, 44, 27, 28, 106,
1723 26, 1, 1, 2, 2, 2, 32, 2, 2, 33,
1724 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1725 2, 2, 9, 9, 9, 31, 5, 47, 2, 2,
1726
1727 10, 10, 10, 2, 6, 37, 50, 37, 2, 42,
1728 51, 42, 9, 2, 53, 2, 55, 56, 31, 64,
1729 10, 2, 2, 47, 64, 245, 25, 64, 25, 50,
1730 2, 25, 25, 25, 25, 25, 2, 53, 51, 55,
1731 730, 56, 245, 2, 2, 15, 15, 15, 15, 15,
1732 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1733 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1734 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1735 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1736 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1737
1738 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1739 15, 15, 15, 15, 15, 15, 15, 15, 17, 731,
1740 17, 17, 17, 17, 17, 19, 58, 19, 19, 19,
1741 19, 19, 112, 17, 20, 20, 20, 20, 20, 22,
1742 19, 22, 22, 22, 22, 22, 62, 20, 59, 73,
1743 54, 61, 58, 73, 22, 112, 17, 109, 58, 59,
1744 54, 61, 59, 19, 59, 63, 59, 107, 89, 62,
1745 20, 90, 63, 54, 732, 131, 216, 22, 45, 216,
1746 62, 45, 45, 45, 109, 45, 45, 45, 54, 57,
1747 65, 131, 45, 45, 89, 45, 57, 90, 107, 92,
1748
1749 65, 45, 65, 45, 45, 45, 45, 45, 45, 45,
1750 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1751 45, 45, 45, 45, 60, 92, 57, 60, 60, 93,
1752 57, 60, 60, 68, 57, 67, 67, 68, 171, 67,
1753 69, 68, 57, 733, 60, 67, 57, 91, 57, 57,
1754 70, 94, 171, 68, 76, 93, 105, 68, 70, 69,
1755 70, 69, 734, 69, 71, 70, 70, 71, 71, 74,
1756 75, 75, 129, 74, 129, 91, 74, 76, 71, 94,
1757 75, 71, 105, 74, 74, 111, 145, 76, 74, 74,
1758 75, 129, 76, 79, 79, 79, 79, 79, 87, 87,
1759
1760 87, 87, 87, 75, 137, 75, 79, 145, 75, 75,
1761 99, 80, 111, 80, 80, 80, 80, 80, 75, 83,
1762 83, 83, 83, 83, 101, 75, 80, 186, 81, 79,
1763 81, 101, 83, 81, 81, 81, 81, 81, 82, 102,
1764 82, 82, 82, 82, 82, 108, 110, 99, 137, 80,
1765 186, 116, 152, 82, 120, 83, 88, 88, 88, 88,
1766 88, 101, 118, 120, 120, 101, 154, 102, 116, 101,
1767 297, 118, 297, 108, 110, 118, 82, 101, 130, 116,
1768 152, 101, 175, 101, 101, 115, 141, 283, 125, 125,
1769 283, 130, 184, 115, 115, 115, 115, 115, 125, 141,
1770
1771 165, 158, 115, 115, 115, 115, 115, 115, 134, 175,
1772 161, 134, 154, 161, 161, 134, 158, 158, 158, 163,
1773 184, 185, 189, 163, 187, 115, 115, 115, 115, 115,
1774 115, 188, 192, 195, 167, 165, 165, 165, 167, 196,
1775 199, 201, 167, 203, 209, 189, 165, 185, 165, 265,
1776 165, 165, 187, 165, 260, 192, 253, 188, 268, 316,
1777 301, 195, 735, 199, 201, 301, 196, 209, 268, 321,
1778 203, 207, 207, 207, 207, 207, 291, 260, 217, 309,
1779 207, 207, 207, 207, 207, 207, 217, 312, 316, 291,
1780 318, 217, 217, 328, 340, 343, 400, 321, 431, 265,
1781
1782 343, 431, 309, 207, 207, 207, 207, 207, 207, 253,
1783 312, 340, 253, 318, 326, 326, 326, 326, 326, 736,
1784 384, 737, 328, 326, 326, 326, 326, 326, 326, 348,
1785 384, 362, 376, 376, 376, 348, 362, 380, 376, 385,
1786 403, 411, 442, 380, 403, 411, 326, 326, 326, 326,
1787 326, 326, 415, 437, 400, 450, 415, 481, 437, 448,
1788 555, 448, 481, 467, 546, 471, 505, 385, 581, 546,
1789 442, 467, 738, 467, 467, 467, 505, 467, 471, 582,
1790 583, 633, 633, 450, 362, 583, 448, 710, 448, 362,
1791 449, 449, 449, 449, 449, 581, 711, 739, 585, 449,
1792
1793 449, 449, 449, 449, 449, 585, 603, 582, 670, 603,
1794 740, 742, 555, 670, 743, 710, 699, 720, 720, 711,
1795 720, 744, 449, 449, 449, 449, 449, 449, 699, 741,
1796 745, 746, 747, 741, 748, 750, 751, 741, 752, 753,
1797 754, 755, 756, 757, 758, 759, 760, 761, 762, 763,
1798 764, 765, 670, 766, 767, 768, 769, 770, 771, 772,
1799 770, 773, 775, 776, 777, 778, 779, 780, 781, 782,
1800 783, 784, 786, 787, 788, 789, 790, 791, 792, 793,
1801 794, 795, 796, 798, 799, 800, 801, 802, 803, 804,
1802 805, 806, 807, 808, 809, 810, 811, 812, 813, 814,
1803
1804 815, 816, 817, 818, 819, 820, 821, 822, 816, 823,
1805 824, 819, 825, 822, 827, 819, 828, 829, 830, 831,
1806 832, 833, 834, 835, 836, 837, 838, 839, 840, 841,
1807 842, 843, 845, 846, 847, 848, 849, 850, 851, 852,
1808 853, 854, 855, 856, 857, 858, 859, 860, 861, 862,
1809 863, 864, 865, 837, 866, 867, 868, 869, 870, 871,
1810 872, 873, 874, 875, 877, 878, 879, 880, 881, 882,
1811 883, 884, 885, 886, 882, 887, 888, 889, 890, 891,
1812 892, 893, 896, 897, 898, 899, 900, 901, 902, 905,
1813 906, 907, 908, 909, 911, 912, 913, 914, 915, 912,
1814
1815 916, 917, 918, 919, 921, 923, 924, 925, 926, 927,
1816 928, 929, 930, 931, 932, 933, 934, 935, 936, 937,
1817 938, 939, 940, 941, 942, 943, 944, 945, 946, 947,
1818 948, 949, 950, 951, 952, 953, 954, 955, 956, 958,
1819 959, 947, 960, 961, 962, 963, 964, 965, 966, 967,
1820 968, 969, 970, 971, 973, 974, 975, 976, 977, 978,
1821 979, 980, 981, 982, 983, 984, 985, 986, 987, 988,
1822 989, 990, 967, 991, 992, 966, 993, 994, 995, 996,
1823 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007,
1824 1008, 1009, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1019,
1825
1826 1020, 1015, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028,
1827 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038,
1828 1039, 1040, 1041, 1042, 1043, 1046, 1047, 1048, 1050, 1051,
1829 1052, 1053, 1040, 1055, 1056, 1057, 1058, 1059, 1060, 1061,
1830 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071,
1831 1072, 1073, 1075, 1076, 1015, 1077, 1078, 1079, 1080, 1081,
1832 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1091, 1090,
1833 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101,
1834 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111,
1835 1112, 1113, 1114, 1115, 1117, 1089, 1090, 1118, 1119, 1120,
1836
1837 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130,
1838 1131, 1132, 1133, 1134, 1136, 1137, 1138, 1139, 1140, 1141,
1839 1137, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150,
1840 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160,
1841 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170,
1842 1171, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181,
1843 1138, 1182, 1183, 1185, 1186, 1187, 1190, 1191, 1192, 1193,
1844 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203,
1845 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213,
1846 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1222, 1223, 1224,
1847
1848 1225, 1226, 1227, 1228, 1229, 1206, 1231, 1232, 1233, 1234,
1849 1235, 1207, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243,
1850 1244, 1245, 1246, 1247, 1248, 1251, 1253, 1255, 1256, 1257,
1851 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267,
1852 1268, 1269, 1270, 1272, 1273, 1274, 1276, 1277, 1278, 1279,
1853 1280, 1282, 1284, 1286, 1288, 1289, 1290, 1291, 1292, 1293,
1854 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303,
1855 1305, 1306, 1307, 1308, 1309, 1310, 1313, 1314, 1315, 1316,
1856 1317, 1318, 1319, 1320, 1322, 1323, 1324, 1325, 1326, 1327,
1857 1328, 1329, 1330, 1332, 1333, 1334, 1335, 1336, 1337, 1338,
1858
1859 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348,
1860 1319, 1350, 1351, 1352, 1353, 1354, 1355, 1298, 1356, 1357,
1861 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367,
1862 1369, 1325, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377,
1863 1378, 1371, 1379, 1382, 1383, 1384, 1385, 1386, 1387, 1388,
1864 1389, 1390, 1391, 1392, 1393, 1394, 1396, 1397, 1398, 1399,
1865 1400, 1401, 1403, 1406, 1404, 1400, 1404, 1409, 1410, 1411,
1866 1412, 1414, 1415, 1416, 1417, 1418, 1420, 1421, 1422, 1424,
1867 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434,
1868 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1418, 1444,
1869
1870 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455,
1871 1456, 1458, 1460, 1462, 1463, 1465, 1466, 1467, 1468, 1469,
1872 1470, 1471, 1472, 1473, 1474, 1476, 1477, 1478, 1479, 1480,
1873 1481, 1482, 1483, 1486, 1487, 1489, 1490, 1491, 1492, 1493,
1874 1495, 1496, 1495, 1497, 1498, 1499, 1500, 1501, 1495, 1502,
1875 1503, 1504, 1505, 1506, 1508, 1509, 1511, 1512, 1513, 1515,
1876 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525,
1877 1526, 1527, 1528, 1529, 1531, 1532, 1533, 1535, 1523, 1536,
1878 1537, 1538, 1509, 1539, 1540, 1541, 1542, 1542, 1543, 1544,
1879 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554,
1880
1881 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564,
1882 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574,
1883 1575, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1585, 1586,
1884 1587, 1588, 1589, 1590, 1593, 1594, 1595, 1599, 1600, 1601,
1885 1602, 1603, 1604, 1605, 1606, 1607, 1543, 1608, 1609, 1611,
1886 1612, 1613, 1614, 1615, 1611, 1616, 1617, 1618, 1619, 1588,
1887 1621, 1622, 1623, 1625, 1626, 1628, 1629, 1630, 1632, 1633,
1888 1634, 1635, 1636, 1638, 1639, 1640, 1641, 1642, 1643, 1644,
1889 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654,
1890 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1664, 1666,
1891
1892 1667, 1668, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677,
1893 1678, 1679, 1680, 1682, 1683, 1684, 1685, 1686, 1688, 1689,
1894 1690, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700,
1895 1701, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711,
1896 1712, 1713, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722,
1897 1724, 1726, 1727, 1728, 1730, 1732, 1733, 1734, 1735, 1736,
1898 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746,
1899 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1758,
1900 1759, 1760, 1761, 1763, 1764, 1765, 1766, 1767, 1768, 1769,
1901 1770, 1771, 1772, 1773, 1775, 1776, 1777, 1778, 1779, 1781,
1902
1903 1782, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1793,
1904 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803,
1905 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815,
1906 1817, 1818, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827,
1907 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837,
1908 1838, 1839, 1840, 1841, 1842, 1844, 1845, 1846, 1847, 1848,
1909 1849, 1850, 1851, 1852, 1853, 1855, 1857, 1859, 1861, 1863,
1910 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1872, 1873, 1874,
1911 1875, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885,
1912 1886, 1888, 1889, 1891, 1892, 1893, 1894, 1895, 1897, 1898,
1913
1914 1900, 1902, 1904, 1906, 1907, 1908, 1909, 1911, 1912, 1913,
1915 1914, 1915, 1916, 1917, 1919, 1920, 1921, 1922, 1923, 1924,
1916 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934,
1917 1935, 1937, 1938, 1939, 1941, 1942, 1943, 1944, 1945, 1946,
1918 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956,
1919 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1965, 1966, 1968,
1920 1969, 1970, 1972, 1973, 1974, 1975, 1981, 1985, 1986, 1987,
1921 1988, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999,
1922 2001, 2003, 2005, 2006, 2007, 2008, 2010, 2011, 2010, 2012,
1923 2014, 2015, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024,
1924
1925 2026, 2027, 2028, 2029, 2030, 2032, 2035, 2036, 2037, 2038,
1926 2042, 2042, 2042, 2043, 2043, 2043, 2044, 2045, 2044, 2046,
1927 2046, 2046, 2047, 2047, 2047, 2048, 729, 2048, 2049, 2049,
1928 2049, 728, 727, 726, 725, 724, 723, 722, 721, 719,
1929 718, 717, 716, 715, 714, 713, 712, 707, 706, 705,
1930 704, 703, 702, 701, 700, 698, 697, 696, 694, 693,
1931 692, 691, 690, 689, 688, 687, 686, 685, 684, 683,
1932 682, 681, 679, 678, 677, 676, 675, 674, 673, 672,
1933 671, 669, 668, 666, 665, 664, 663, 662, 661, 660,
1934 659, 657, 656, 655, 654, 652, 651, 649, 648, 647,
1935
1936 646, 645, 644, 643, 642, 641, 640, 639, 638, 637,
1937 636, 635, 634, 632, 631, 630, 629, 628, 627, 625,
1938 624, 623, 622, 621, 620, 619, 618, 616, 615, 614,
1939 613, 612, 611, 610, 609, 608, 607, 606, 605, 604,
1940 602, 601, 600, 599, 598, 597, 596, 595, 594, 593,
1941 592, 591, 590, 589, 588, 587, 586, 577, 576, 575,
1942 574, 572, 569, 567, 566, 565, 564, 563, 562, 561,
1943 560, 559, 558, 557, 556, 554, 553, 552, 551, 550,
1944 549, 548, 547, 545, 544, 543, 542, 541, 540, 539,
1945 538, 537, 536, 535, 534, 532, 530, 529, 528, 527,
1946
1947 526, 525, 524, 523, 522, 521, 520, 519, 518, 517,
1948 516, 515, 513, 512, 511, 510, 509, 508, 507, 506,
1949 504, 503, 502, 501, 500, 499, 498, 497, 496, 495,
1950 494, 493, 492, 491, 490, 489, 488, 487, 485, 484,
1951 483, 482, 480, 479, 478, 477, 476, 475, 473, 472,
1952 470, 469, 468, 466, 464, 463, 462, 461, 460, 459,
1953 458, 457, 455, 454, 453, 452, 451, 446, 444, 443,
1954 441, 438, 436, 435, 434, 433, 432, 430, 429, 428,
1955 427, 426, 425, 424, 423, 422, 421, 420, 419, 418,
1956 417, 416, 414, 413, 412, 410, 409, 408, 407, 406,
1957
1958 405, 404, 402, 401, 399, 398, 397, 396, 395, 394,
1959 393, 392, 391, 390, 389, 388, 387, 383, 382, 381,
1960 379, 378, 377, 375, 374, 373, 372, 371, 370, 369,
1961 368, 367, 366, 365, 364, 363, 361, 360, 359, 358,
1962 357, 356, 355, 354, 353, 352, 351, 350, 349, 347,
1963 346, 345, 344, 342, 339, 338, 337, 336, 335, 334,
1964 333, 332, 331, 330, 329, 325, 323, 319, 317, 315,
1965 308, 307, 306, 305, 304, 303, 302, 300, 299, 298,
1966 296, 295, 294, 293, 292, 290, 289, 288, 287, 286,
1967 285, 284, 282, 281, 280, 279, 278, 277, 276, 275,
1968
1969 274, 273, 272, 271, 270, 269, 267, 266, 264, 263,
1970 262, 261, 259, 258, 257, 256, 255, 254, 252, 251,
1971 250, 249, 248, 247, 246, 244, 243, 241, 240, 239,
1972 238, 237, 236, 235, 234, 233, 232, 231, 230, 229,
1973 228, 227, 226, 225, 224, 223, 222, 221, 220, 219,
1974 218, 215, 214, 213, 212, 211, 210, 208, 204, 202,
1975 200, 198, 193, 190, 182, 181, 180, 179, 178, 177,
1976 176, 174, 173, 172, 170, 169, 168, 166, 164, 162,
1977 160, 159, 157, 156, 155, 153, 151, 150, 149, 148,
1978 147, 146, 144, 143, 142, 140, 139, 138, 136, 135,
1979
1980 133, 132, 128, 127, 126, 124, 123, 122, 121, 119,
1981 117, 113, 104, 103, 97, 96, 77, 72, 66, 52,
1982 49, 48, 43, 41, 39, 38, 24, 14, 11, 2041,
1983 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1984 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1985 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1986 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1987 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1988 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1989 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041, 2041,
1990
1991 2041, 2041, 2041
1992 } ;
1993
1994static yy_state_type yy_last_accepting_state;
1995static char *yy_last_accepting_cpos;
1996
1997extern int yy_flex_debug;
1999
2000static const flex_int16_t yy_rule_linenum[220] =
2001 { 0,
2002 148, 150, 152, 157, 158, 163, 164, 165, 177, 180,
2003 185, 192, 201, 210, 219, 228, 237, 246, 255, 264,
2004 273, 282, 291, 300, 309, 321, 333, 343, 353, 363,
2005 373, 383, 392, 402, 412, 422, 432, 441, 450, 459,
2006 468, 477, 486, 495, 504, 513, 522, 531, 540, 549,
2007 558, 571, 580, 589, 598, 607, 618, 629, 640, 651,
2008 663, 674, 685, 696, 707, 718, 729, 740, 749, 758,
2009 767, 778, 789, 800, 811, 822, 831, 843, 855, 867,
2010 879, 891, 903, 914, 925, 934, 943, 952, 961, 970,
2011 981, 992, 1003, 1014, 1025, 1036, 1047, 1059, 1069, 1080,
2012
2013 1089, 1098, 1113, 1129, 1138, 1147, 1156, 1165, 1174, 1183,
2014 1192, 1201, 1210, 1219, 1243, 1267, 1276, 1286, 1296, 1305,
2015 1315, 1326, 1335, 1344, 1353, 1362, 1371, 1382, 1393, 1404,
2016 1414, 1423, 1432, 1441, 1452, 1463, 1474, 1485, 1496, 1505,
2017 1514, 1523, 1532, 1541, 1550, 1559, 1568, 1577, 1587, 1599,
2018 1612, 1621, 1630, 1640, 1650, 1659, 1670, 1680, 1689, 1699,
2019 1709, 1718, 1727, 1736, 1745, 1755, 1764, 1773, 1782, 1791,
2020 1800, 1809, 1818, 1827, 1836, 1845, 1854, 1863, 1872, 1881,
2021 1890, 1899, 1908, 1917, 1926, 1935, 1944, 1953, 1962, 1971,
2022 1980, 1989, 1998, 2007, 2016, 2025, 2034, 2043, 2052, 2061,
2023
2024 2070, 2171, 2187, 2236, 2244, 2259, 2260, 2261, 2262, 2263,
2025 2264, 2266, 2284, 2297, 2302, 2306, 2308, 2310, 2312
2026 } ;
2027
2028/* The intent behind this definition is that it'll catch
2029 * any uses of REJECT which flex missed.
2030 */
2031#define REJECT reject_used_but_not_detected
2032#define yymore() yymore_used_but_not_detected
2033#define YY_MORE_ADJ 0
2034#define YY_RESTORE_YY_MORE_OFFSET
2036#line 1 "dhcp6_lexer.ll"
2037/* Copyright (C) 2016-2021 Internet Systems Consortium, Inc. ("ISC")
2038
2039 This Source Code Form is subject to the terms of the Mozilla Public
2040 License, v. 2.0. If a copy of the MPL was not distributed with this
2041 file, You can obtain one at http://mozilla.org/MPL/2.0/. */
2042#line 8 "dhcp6_lexer.ll"
2043
2044/* Generated files do not make clang static analyser so happy */
2045#ifndef __clang_analyzer__
2046
2047#include <cctype>
2048#include <cerrno>
2049#include <climits>
2050#include <cstdlib>
2051#include <string>
2052#include <dhcp6/parser_context.h>
2053#include <asiolink/io_address.h>
2054#include <boost/lexical_cast.hpp>
2055#include <exceptions/exceptions.h>
2056
2057/* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
2058
2059/* Work around an incompatibility in flex (at least versions
2060 2.5.31 through 2.5.33): it generates code that does
2061 not conform to C89. See Debian bug 333231
2062 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
2063# undef yywrap
2064# define yywrap() 1
2065
2066namespace {
2067
2068bool start_token_flag = false;
2069
2071unsigned int comment_start_line = 0;
2072
2073using namespace isc::dhcp;
2074
2075};
2076
2077/* To avoid the call to exit... oops! */
2078#define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
2079#line 2079 "dhcp6_lexer.cc"
2080/* noyywrap disables automatic rewinding for the next file to parse. Since we
2081 always parse only a single string, there's no need to do any wraps. And
2082 using yywrap requires linking with -lfl, which provides the default yywrap
2083 implementation that always returns 1 anyway. */
2084/* nounput simplifies the lexer, by removing support for putting a character
2085 back into the input stream. We never use such capability anyway. */
2086/* batch means that we'll never use the generated lexer interactively. */
2087/* avoid to get static global variables to remain with C++. */
2088/* in last resort %option reentrant */
2089/* Enables debug mode. To see the debug messages, one needs to also set
2090 yy_flex_debug to 1, then the debug messages will be printed on stderr. */
2091/* I have no idea what this option does, except it was specified in the bison
2092 examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
2093 be on the safe side and keep it. */
2094#define YY_NO_INPUT 1
2095
2096/* These are not token expressions yet, just convenience expressions that
2097 can be used during actual token definitions. Note some can match
2098 incorrect inputs (e.g., IP addresses) which must be checked. */
2099/* for errors */
2100#line 95 "dhcp6_lexer.ll"
2101/* This code run each time a pattern is matched. It updates the location
2102 by moving it ahead by yyleng bytes. yyleng specifies the length of the
2103 currently matched token. */
2104#define YY_USER_ACTION driver.loc_.columns(yyleng);
2105#line 2105 "dhcp6_lexer.cc"
2106#line 2106 "dhcp6_lexer.cc"
2107
2108#define INITIAL 0
2109#define COMMENT 1
2110#define DIR_ENTER 2
2111#define DIR_INCLUDE 3
2112#define DIR_EXIT 4
2113
2114#ifndef YY_NO_UNISTD_H
2115/* Special case for "unistd.h", since it is non-ANSI. We include it way
2116 * down here because we want the user's section 1 to have been scanned first.
2117 * The user has a chance to override it with an option.
2118 */
2119/* %if-c-only */
2120#include <unistd.h>
2121/* %endif */
2122/* %if-c++-only */
2123/* %endif */
2124#endif
2125
2126#ifndef YY_EXTRA_TYPE
2127#define YY_EXTRA_TYPE void *
2128#endif
2129
2130/* %if-c-only Reentrant structure and macros (non-C++). */
2131/* %if-reentrant */
2132/* %if-c-only */
2133
2134static int yy_init_globals ( void );
2135
2136/* %endif */
2137/* %if-reentrant */
2138/* %endif */
2139/* %endif End reentrant structures and macros. */
2140
2141/* Accessor methods to globals.
2142 These are made visible to non-reentrant scanners for convenience. */
2143
2144int yylex_destroy ( void );
2145
2146int yyget_debug ( void );
2147
2148void yyset_debug ( int debug_flag );
2149
2150YY_EXTRA_TYPE yyget_extra ( void );
2151
2152void yyset_extra ( YY_EXTRA_TYPE user_defined );
2153
2154FILE *yyget_in ( void );
2155
2156void yyset_in ( FILE * _in_str );
2157
2158FILE *yyget_out ( void );
2159
2160void yyset_out ( FILE * _out_str );
2161
2162 int yyget_leng ( void );
2163
2164char *yyget_text ( void );
2165
2166int yyget_lineno ( void );
2167
2168void yyset_lineno ( int _line_number );
2169
2170/* %if-bison-bridge */
2171/* %endif */
2172
2173/* Macros after this point can all be overridden by user definitions in
2174 * section 1.
2175 */
2176
2177#ifndef YY_SKIP_YYWRAP
2178#ifdef __cplusplus
2179extern "C" int yywrap ( void );
2180#else
2181extern int yywrap ( void );
2182#endif
2183#endif
2184
2185/* %not-for-header */
2186#ifndef YY_NO_UNPUT
2187
2188#endif
2189/* %ok-for-header */
2190
2191/* %endif */
2192
2193#ifndef yytext_ptr
2194static void yy_flex_strncpy ( char *, const char *, int );
2195#endif
2196
2197#ifdef YY_NEED_STRLEN
2198static int yy_flex_strlen ( const char * );
2199#endif
2200
2201#ifndef YY_NO_INPUT
2202/* %if-c-only Standard (non-C++) definition */
2203/* %not-for-header */
2204#ifdef __cplusplus
2205static int yyinput ( void );
2206#else
2207static int input ( void );
2208#endif
2209/* %ok-for-header */
2210
2211/* %endif */
2212#endif
2213
2214/* %if-c-only */
2215
2216/* %endif */
2217
2218/* Amount of stuff to slurp up with each read. */
2219#ifndef YY_READ_BUF_SIZE
2220#ifdef __ia64__
2221/* On IA-64, the buffer size is 16k, not 8k */
2222#define YY_READ_BUF_SIZE 16384
2223#else
2224#define YY_READ_BUF_SIZE 8192
2225#endif /* __ia64__ */
2226#endif
2227
2228/* Copy whatever the last rule matched to the standard output. */
2229#ifndef ECHO
2230/* %if-c-only Standard (non-C++) definition */
2231/* This used to be an fputs(), but since the string might contain NUL's,
2232 * we now use fwrite().
2233 */
2234#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2235/* %endif */
2236/* %if-c++-only C++ definition */
2237/* %endif */
2238#endif
2239
2240/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2241 * is returned in "result".
2242 */
2243#ifndef YY_INPUT
2244#define YY_INPUT(buf,result,max_size) \
2245/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2246 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2247 { \
2248 int c = '*'; \
2249 int n; \
2250 for ( n = 0; n < max_size && \
2251 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2252 buf[n] = (char) c; \
2253 if ( c == '\n' ) \
2254 buf[n++] = (char) c; \
2255 if ( c == EOF && ferror( yyin ) ) \
2256 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2257 result = n; \
2258 } \
2259 else \
2260 { \
2261 errno=0; \
2262 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2263 { \
2264 if( errno != EINTR) \
2265 { \
2266 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2267 break; \
2268 } \
2269 errno=0; \
2270 clearerr(yyin); \
2271 } \
2272 }\
2273\
2274/* %if-c++-only C++ definition \ */\
2275/* %endif */
2276
2277#endif
2278
2279/* No semi-colon after return; correct usage is to write "yyterminate();" -
2280 * we don't want an extra ';' after the "return" because that will cause
2281 * some compilers to complain about unreachable statements.
2282 */
2283#ifndef yyterminate
2284#define yyterminate() return YY_NULL
2285#endif
2286
2287/* Number of entries by which start-condition stack grows. */
2288#ifndef YY_START_STACK_INCR
2289#define YY_START_STACK_INCR 25
2290#endif
2291
2292/* Report a fatal error. */
2293#ifndef YY_FATAL_ERROR
2294/* %if-c-only */
2295#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2296/* %endif */
2297/* %if-c++-only */
2298/* %endif */
2299#endif
2300
2301/* %if-tables-serialization structures and prototypes */
2302/* %not-for-header */
2303/* %ok-for-header */
2304
2305/* %not-for-header */
2306/* %tables-yydmap generated elements */
2307/* %endif */
2308/* end tables serialization structures and prototypes */
2309
2310/* %ok-for-header */
2311
2312/* Default declaration of generated scanner - a define so the user can
2313 * easily add parameters.
2314 */
2315#ifndef YY_DECL
2316#define YY_DECL_IS_OURS 1
2317/* %if-c-only Standard (non-C++) definition */
2318
2319extern int yylex (void);
2320
2321#define YY_DECL int yylex (void)
2322/* %endif */
2323/* %if-c++-only C++ definition */
2324/* %endif */
2325#endif /* !YY_DECL */
2326
2327/* Code executed at the beginning of each rule, after yytext and yyleng
2328 * have been set up.
2329 */
2330#ifndef YY_USER_ACTION
2331#define YY_USER_ACTION
2332#endif
2333
2334/* Code executed at the end of each rule. */
2335#ifndef YY_BREAK
2336#define YY_BREAK /*LINTED*/break;
2337#endif
2338
2339/* %% [6.0] YY_RULE_SETUP definition goes here */
2340#define YY_RULE_SETUP \
2341 YY_USER_ACTION
2342
2343/* %not-for-header */
2347{
2348 yy_state_type yy_current_state;
2349 char *yy_cp, *yy_bp;
2351
2352 if ( !(yy_init) )
2353 {
2354 (yy_init) = 1;
2355
2356#ifdef YY_USER_INIT
2357 YY_USER_INIT;
2358#endif
2359
2360 if ( ! (yy_start) )
2361 (yy_start) = 1; /* first start state */
2362
2363 if ( ! yyin )
2364/* %if-c-only */
2365 yyin = stdin;
2366/* %endif */
2367/* %if-c++-only */
2368/* %endif */
2369
2370 if ( ! yyout )
2371/* %if-c-only */
2372 yyout = stdout;
2373/* %endif */
2374/* %if-c++-only */
2375/* %endif */
2376
2377 if ( ! YY_CURRENT_BUFFER ) {
2381 }
2382
2384 }
2385
2386 {
2387/* %% [7.0] user's declarations go here */
2388#line 101 "dhcp6_lexer.ll"
2389
2390
2391
2392#line 105 "dhcp6_lexer.ll"
2393 /* This part of the code is copied over to the verbatim to the top
2394 of the generated yylex function. Explanation:
2395 http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2396
2397 /* Code run each time yylex is called. */
2398 driver.loc_.step();
2399
2400 if (start_token_flag) {
2401 start_token_flag = false;
2402 switch (start_token_value) {
2403 case Parser6Context::PARSER_JSON:
2404 default:
2406 case Parser6Context::PARSER_DHCP6:
2408 case Parser6Context::SUBPARSER_DHCP6:
2409 return isc::dhcp::Dhcp6Parser::make_SUB_DHCP6(driver.loc_);
2410 case Parser6Context::PARSER_INTERFACES:
2412 case Parser6Context::PARSER_SUBNET6:
2413 return isc::dhcp::Dhcp6Parser::make_SUB_SUBNET6(driver.loc_);
2414 case Parser6Context::PARSER_POOL6:
2415 return isc::dhcp::Dhcp6Parser::make_SUB_POOL6(driver.loc_);
2416 case Parser6Context::PARSER_PD_POOL:
2417 return isc::dhcp::Dhcp6Parser::make_SUB_PD_POOL(driver.loc_);
2418 case Parser6Context::PARSER_HOST_RESERVATION:
2420 case Parser6Context::PARSER_OPTION_DEFS:
2422 case Parser6Context::PARSER_OPTION_DEF:
2424 case Parser6Context::PARSER_OPTION_DATA:
2426 case Parser6Context::PARSER_HOOKS_LIBRARY:
2428 case Parser6Context::PARSER_DHCP_DDNS:
2430 case Parser6Context::PARSER_CONFIG_CONTROL:
2432 }
2433 }
2434
2435
2436#line 2436 "dhcp6_lexer.cc"
2437
2438 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2439 {
2440/* %% [8.0] yymore()-related code goes here */
2441 yy_cp = (yy_c_buf_p);
2442
2443 /* Support of yytext. */
2444 *yy_cp = (yy_hold_char);
2445
2446 /* yy_bp points to the position in yy_ch_buf of the start of
2447 * the current run.
2448 */
2449 yy_bp = yy_cp;
2450
2451/* %% [9.0] code to set up and find next match goes here */
2452 yy_current_state = (yy_start);
2453yy_match:
2454 do
2455 {
2456 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2457 if ( yy_accept[yy_current_state] )
2458 {
2459 (yy_last_accepting_state) = yy_current_state;
2460 (yy_last_accepting_cpos) = yy_cp;
2461 }
2462 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2463 {
2464 yy_current_state = (int) yy_def[yy_current_state];
2465 if ( yy_current_state >= 2042 )
2466 yy_c = yy_meta[yy_c];
2467 }
2468 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2469 ++yy_cp;
2470 }
2471 while ( yy_current_state != 2041 );
2472 yy_cp = (yy_last_accepting_cpos);
2473 yy_current_state = (yy_last_accepting_state);
2474
2475yy_find_action:
2476/* %% [10.0] code to find the action number goes here */
2477 yy_act = yy_accept[yy_current_state];
2478
2480
2481/* %% [11.0] code for yylineno update goes here */
2482
2483do_action: /* This label is used only to access EOF actions. */
2484
2485/* %% [12.0] debug code goes here */
2486 if ( yy_flex_debug )
2487 {
2488 if ( yy_act == 0 )
2489 fprintf( stderr, "--scanner backing up\n" );
2490 else if ( yy_act < 220 )
2491 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2492 (long)yy_rule_linenum[yy_act], yytext );
2493 else if ( yy_act == 220 )
2494 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2495 yytext );
2496 else if ( yy_act == 221 )
2497 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2498 else
2499 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2500 }
2501
2502 switch ( yy_act )
2503 { /* beginning of action switch */
2504/* %% [13.0] actions go here */
2505 case 0: /* must back up */
2506 /* undo the effects of YY_DO_BEFORE_ACTION */
2507 *yy_cp = (yy_hold_char);
2508 yy_cp = (yy_last_accepting_cpos);
2509 yy_current_state = (yy_last_accepting_state);
2510 goto yy_find_action;
2511
2512case 1:
2514#line 148 "dhcp6_lexer.ll"
2515;
2516 YY_BREAK
2517case 2:
2519#line 150 "dhcp6_lexer.ll"
2520;
2521 YY_BREAK
2522case 3:
2524#line 152 "dhcp6_lexer.ll"
2525{
2526 BEGIN(COMMENT);
2527 comment_start_line = driver.loc_.end.line;;
2528}
2529 YY_BREAK
2530case 4:
2532#line 157 "dhcp6_lexer.ll"
2533BEGIN(INITIAL);
2534 YY_BREAK
2535case 5:
2537#line 158 "dhcp6_lexer.ll"
2538;
2539 YY_BREAK
2540case YY_STATE_EOF(COMMENT):
2541#line 159 "dhcp6_lexer.ll"
2542{
2543 isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line);
2544}
2545 YY_BREAK
2546case 6:
2548#line 163 "dhcp6_lexer.ll"
2550 YY_BREAK
2551case 7:
2553#line 164 "dhcp6_lexer.ll"
2555 YY_BREAK
2556case 8:
2558#line 165 "dhcp6_lexer.ll"
2559{
2560 /* Include directive. */
2561
2562 /* Extract the filename. */
2563 std::string tmp(yytext+1);
2564 tmp.resize(tmp.size() - 1);
2565
2566 driver.includeFile(tmp);
2567}
2568 YY_BREAK
2572#line 174 "dhcp6_lexer.ll"
2573{
2574 isc_throw(Dhcp6ParseError, "Directive not closed.");
2575}
2576 YY_BREAK
2577case 9:
2579#line 177 "dhcp6_lexer.ll"
2580BEGIN(INITIAL);
2581 YY_BREAK
2582case 10:
2584#line 180 "dhcp6_lexer.ll"
2585{
2586 /* Ok, we found a with space. Let's ignore it and update loc variable. */
2587 driver.loc_.step();
2588}
2589 YY_BREAK
2590case 11:
2591/* rule 11 can match eol */
2593#line 185 "dhcp6_lexer.ll"
2594{
2595 /* Newline found. Let's update the location and continue. */
2596 driver.loc_.lines(yyleng);
2597 driver.loc_.step();
2598}
2599 YY_BREAK
2600case 12:
2602#line 192 "dhcp6_lexer.ll"
2603{
2604 switch(driver.ctx_) {
2607 default:
2608 return isc::dhcp::Dhcp6Parser::make_STRING("enable-updates", driver.loc_);
2609 }
2610}
2611 YY_BREAK
2612case 13:
2614#line 201 "dhcp6_lexer.ll"
2615{
2616 switch(driver.ctx_) {
2619 default:
2620 return isc::dhcp::Dhcp6Parser::make_STRING("qualifying-suffix", driver.loc_);
2621 }
2622}
2623 YY_BREAK
2624case 14:
2626#line 210 "dhcp6_lexer.ll"
2627{
2628 switch(driver.ctx_) {
2630 return isc::dhcp::Dhcp6Parser::make_SERVER_IP(driver.loc_);
2631 default:
2632 return isc::dhcp::Dhcp6Parser::make_STRING("server-ip", driver.loc_);
2633 }
2634}
2635 YY_BREAK
2636case 15:
2638#line 219 "dhcp6_lexer.ll"
2639{
2640 switch(driver.ctx_) {
2642 return isc::dhcp::Dhcp6Parser::make_SERVER_PORT(driver.loc_);
2643 default:
2644 return isc::dhcp::Dhcp6Parser::make_STRING("server-port", driver.loc_);
2645 }
2646}
2647 YY_BREAK
2648case 16:
2650#line 228 "dhcp6_lexer.ll"
2651{
2652 switch(driver.ctx_) {
2654 return isc::dhcp::Dhcp6Parser::make_SENDER_IP(driver.loc_);
2655 default:
2656 return isc::dhcp::Dhcp6Parser::make_STRING("sender-ip", driver.loc_);
2657 }
2658}
2659 YY_BREAK
2660case 17:
2662#line 237 "dhcp6_lexer.ll"
2663{
2664 switch(driver.ctx_) {
2666 return isc::dhcp::Dhcp6Parser::make_SENDER_PORT(driver.loc_);
2667 default:
2668 return isc::dhcp::Dhcp6Parser::make_STRING("sender-port", driver.loc_);
2669 }
2670}
2671 YY_BREAK
2672case 18:
2674#line 246 "dhcp6_lexer.ll"
2675{
2676 switch(driver.ctx_) {
2679 default:
2680 return isc::dhcp::Dhcp6Parser::make_STRING("max-queue-size", driver.loc_);
2681 }
2682}
2683 YY_BREAK
2684case 19:
2686#line 255 "dhcp6_lexer.ll"
2687{
2688 switch(driver.ctx_) {
2691 default:
2692 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-protocol", driver.loc_);
2693 }
2694}
2695 YY_BREAK
2696case 20:
2698#line 264 "dhcp6_lexer.ll"
2699{
2700 switch(driver.ctx_) {
2702 return isc::dhcp::Dhcp6Parser::make_NCR_FORMAT(driver.loc_);
2703 default:
2704 return isc::dhcp::Dhcp6Parser::make_STRING("ncr-format", driver.loc_);
2705 }
2706}
2707 YY_BREAK
2708case 21:
2710#line 273 "dhcp6_lexer.ll"
2711{
2712 switch(driver.ctx_) {
2715 default:
2716 return isc::dhcp::Dhcp6Parser::make_STRING("override-no-update", driver.loc_);
2717 }
2718}
2719 YY_BREAK
2720case 22:
2722#line 282 "dhcp6_lexer.ll"
2723{
2724 switch(driver.ctx_) {
2727 default:
2728 return isc::dhcp::Dhcp6Parser::make_STRING("override-client-update", driver.loc_);
2729 }
2730}
2731 YY_BREAK
2732case 23:
2734#line 291 "dhcp6_lexer.ll"
2735{
2736 switch(driver.ctx_) {
2739 default:
2740 return isc::dhcp::Dhcp6Parser::make_STRING("replace-client-name", driver.loc_);
2741 }
2742}
2743 YY_BREAK
2744case 24:
2746#line 300 "dhcp6_lexer.ll"
2747{
2748 switch(driver.ctx_) {
2751 default:
2752 return isc::dhcp::Dhcp6Parser::make_STRING("generated-prefix", driver.loc_);
2753 }
2754}
2755 YY_BREAK
2756case 25:
2758#line 309 "dhcp6_lexer.ll"
2759{
2760 switch(driver.ctx_) {
2766 default:
2767 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-set", driver.loc_);
2768 }
2769}
2770 YY_BREAK
2771case 26:
2773#line 321 "dhcp6_lexer.ll"
2774{
2775 switch(driver.ctx_) {
2781 default:
2782 return isc::dhcp::Dhcp6Parser::make_STRING("hostname-char-replacement", driver.loc_);
2783 }
2784}
2785 YY_BREAK
2786case 27:
2788#line 333 "dhcp6_lexer.ll"
2789{
2790 /* dhcp-ddns value keywords are case insensitive */
2791 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2792 return isc::dhcp::Dhcp6Parser::make_UDP(driver.loc_);
2793 }
2794 std::string tmp(yytext+1);
2795 tmp.resize(tmp.size() - 1);
2796 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2797}
2798 YY_BREAK
2799case 28:
2801#line 343 "dhcp6_lexer.ll"
2802{
2803 /* dhcp-ddns value keywords are case insensitive */
2804 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
2805 return isc::dhcp::Dhcp6Parser::make_TCP(driver.loc_);
2806 }
2807 std::string tmp(yytext+1);
2808 tmp.resize(tmp.size() - 1);
2809 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2810}
2811 YY_BREAK
2812case 29:
2814#line 353 "dhcp6_lexer.ll"
2815{
2816 /* dhcp-ddns value keywords are case insensitive */
2817 if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) {
2818 return isc::dhcp::Dhcp6Parser::make_JSON(driver.loc_);
2819 }
2820 std::string tmp(yytext+1);
2821 tmp.resize(tmp.size() - 1);
2822 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2823}
2824 YY_BREAK
2825case 30:
2827#line 363 "dhcp6_lexer.ll"
2828{
2829 /* dhcp-ddns value keywords are case insensitive */
2832 }
2833 std::string tmp(yytext+1);
2834 tmp.resize(tmp.size() - 1);
2835 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2836}
2837 YY_BREAK
2838case 31:
2840#line 373 "dhcp6_lexer.ll"
2841{
2842 /* dhcp-ddns value keywords are case insensitive */
2845 }
2846 std::string tmp(yytext+1);
2847 tmp.resize(tmp.size() - 1);
2848 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2849}
2850 YY_BREAK
2851case 32:
2853#line 383 "dhcp6_lexer.ll"
2854{
2855 switch(driver.ctx_) {
2857 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2858 default:
2859 return isc::dhcp::Dhcp6Parser::make_STRING("never", driver.loc_);
2860 }
2861}
2862 YY_BREAK
2863case 33:
2865#line 392 "dhcp6_lexer.ll"
2866{
2867 /* dhcp-ddns value keywords are case insensitive */
2869 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2870 }
2871 std::string tmp(yytext+1);
2872 tmp.resize(tmp.size() - 1);
2873 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2874}
2875 YY_BREAK
2876case 34:
2878#line 402 "dhcp6_lexer.ll"
2879{
2880 /* dhcp-ddns value keywords are case insensitive */
2882 return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
2883 }
2884 std::string tmp(yytext+1);
2885 tmp.resize(tmp.size() - 1);
2886 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2887}
2888 YY_BREAK
2889case 35:
2891#line 412 "dhcp6_lexer.ll"
2892{
2893 /* dhcp-ddns value keywords are case insensitive */
2895 return isc::dhcp::Dhcp6Parser::make_ALWAYS(driver.loc_);
2896 }
2897 std::string tmp(yytext+1);
2898 tmp.resize(tmp.size() - 1);
2899 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2900}
2901 YY_BREAK
2902case 36:
2904#line 422 "dhcp6_lexer.ll"
2905{
2906 /* dhcp-ddns value keywords are case insensitive */
2909 }
2910 std::string tmp(yytext+1);
2911 tmp.resize(tmp.size() - 1);
2912 return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
2913}
2914 YY_BREAK
2915case 37:
2917#line 432 "dhcp6_lexer.ll"
2918{
2919 switch(driver.ctx_) {
2921 return isc::dhcp::Dhcp6Parser::make_DHCP6(driver.loc_);
2922 default:
2923 return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp6", driver.loc_);
2924 }
2925}
2926 YY_BREAK
2927case 38:
2929#line 441 "dhcp6_lexer.ll"
2930{
2931 switch(driver.ctx_) {
2934 default:
2935 return isc::dhcp::Dhcp6Parser::make_STRING("data-directory", driver.loc_);
2936 }
2937}
2938 YY_BREAK
2939case 39:
2941#line 450 "dhcp6_lexer.ll"
2942{
2943 switch(driver.ctx_) {
2946 default:
2947 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", driver.loc_);
2948 }
2949}
2950 YY_BREAK
2951case 40:
2953#line 459 "dhcp6_lexer.ll"
2954{
2955 switch(driver.ctx_) {
2957 return isc::dhcp::Dhcp6Parser::make_INTERFACES(driver.loc_);
2958 default:
2959 return isc::dhcp::Dhcp6Parser::make_STRING("interfaces", driver.loc_);
2960 }
2961}
2962 YY_BREAK
2963case 41:
2965#line 468 "dhcp6_lexer.ll"
2966{
2967 switch(driver.ctx_) {
2969 return isc::dhcp::Dhcp6Parser::make_RE_DETECT(driver.loc_);
2970 default:
2971 return isc::dhcp::Dhcp6Parser::make_STRING("re-detect", driver.loc_);
2972 }
2973}
2974 YY_BREAK
2975case 42:
2977#line 477 "dhcp6_lexer.ll"
2978{
2979 switch(driver.ctx_) {
2982 default:
2983 return isc::dhcp::Dhcp6Parser::make_STRING("sanity-checks", driver.loc_);
2984 }
2985}
2986 YY_BREAK
2987case 43:
2989#line 486 "dhcp6_lexer.ll"
2990{
2991 switch(driver.ctx_) {
2994 default:
2995 return isc::dhcp::Dhcp6Parser::make_STRING("lease-checks", driver.loc_);
2996 }
2997}
2998 YY_BREAK
2999case 44:
3001#line 495 "dhcp6_lexer.ll"
3002{
3003 switch(driver.ctx_) {
3006 default:
3007 return isc::dhcp::Dhcp6Parser::make_STRING("lease-database", driver.loc_);
3008 }
3009}
3010 YY_BREAK
3011case 45:
3013#line 504 "dhcp6_lexer.ll"
3014{
3015 switch(driver.ctx_) {
3018 default:
3019 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-database", driver.loc_);
3020 }
3021}
3022 YY_BREAK
3023case 46:
3025#line 513 "dhcp6_lexer.ll"
3026{
3027 switch(driver.ctx_) {
3030 default:
3031 return isc::dhcp::Dhcp6Parser::make_STRING("hosts-databases", driver.loc_);
3032 }
3033}
3034 YY_BREAK
3035case 47:
3037#line 522 "dhcp6_lexer.ll"
3038{
3039 switch(driver.ctx_) {
3042 default:
3043 return isc::dhcp::Dhcp6Parser::make_STRING("config-control", driver.loc_);
3044 }
3045}
3046 YY_BREAK
3047case 48:
3049#line 531 "dhcp6_lexer.ll"
3050{
3051 switch(driver.ctx_) {
3054 default:
3055 return isc::dhcp::Dhcp6Parser::make_STRING("config-databases", driver.loc_);
3056 }
3057}
3058 YY_BREAK
3059case 49:
3061#line 540 "dhcp6_lexer.ll"
3062{
3063 switch(driver.ctx_) {
3066 default:
3067 return isc::dhcp::Dhcp6Parser::make_STRING("config-fetch-wait-time", driver.loc_);
3068 }
3069}
3070 YY_BREAK
3071case 50:
3073#line 549 "dhcp6_lexer.ll"
3074{
3075 switch(driver.ctx_) {
3077 return isc::dhcp::Dhcp6Parser::make_READONLY(driver.loc_);
3078 default:
3079 return isc::dhcp::Dhcp6Parser::make_STRING("readonly", driver.loc_);
3080 }
3081}
3082 YY_BREAK
3083case 51:
3085#line 558 "dhcp6_lexer.ll"
3086{
3087 switch(driver.ctx_) {
3093 return isc::dhcp::Dhcp6Parser::make_TYPE(driver.loc_);
3094 default:
3095 return isc::dhcp::Dhcp6Parser::make_STRING("type", driver.loc_);
3096 }
3097}
3098 YY_BREAK
3099case 52:
3101#line 571 "dhcp6_lexer.ll"
3102{
3103 switch(driver.ctx_) {
3105 return isc::dhcp::Dhcp6Parser::make_MEMFILE(driver.loc_);
3106 default:
3107 return isc::dhcp::Dhcp6Parser::make_STRING("memfile", driver.loc_);
3108 }
3109}
3110 YY_BREAK
3111case 53:
3113#line 580 "dhcp6_lexer.ll"
3114{
3115 switch(driver.ctx_) {
3117 return isc::dhcp::Dhcp6Parser::make_MYSQL(driver.loc_);
3118 default:
3119 return isc::dhcp::Dhcp6Parser::make_STRING("mysql", driver.loc_);
3120 }
3121}
3122 YY_BREAK
3123case 54:
3125#line 589 "dhcp6_lexer.ll"
3126{
3127 switch(driver.ctx_) {
3129 return isc::dhcp::Dhcp6Parser::make_POSTGRESQL(driver.loc_);
3130 default:
3131 return isc::dhcp::Dhcp6Parser::make_STRING("postgresql", driver.loc_);
3132 }
3133}
3134 YY_BREAK
3135case 55:
3137#line 598 "dhcp6_lexer.ll"
3138{
3139 switch(driver.ctx_) {
3141 return isc::dhcp::Dhcp6Parser::make_CQL(driver.loc_);
3142 default:
3143 return isc::dhcp::Dhcp6Parser::make_STRING("cql", driver.loc_);
3144 }
3145}
3146 YY_BREAK
3147case 56:
3149#line 607 "dhcp6_lexer.ll"
3150{
3151 switch(driver.ctx_) {
3155 return isc::dhcp::Dhcp6Parser::make_USER(driver.loc_);
3156 default:
3157 return isc::dhcp::Dhcp6Parser::make_STRING("user", driver.loc_);
3158 }
3159}
3160 YY_BREAK
3161case 57:
3163#line 618 "dhcp6_lexer.ll"
3164{
3165 switch(driver.ctx_) {
3169 return isc::dhcp::Dhcp6Parser::make_PASSWORD(driver.loc_);
3170 default:
3171 return isc::dhcp::Dhcp6Parser::make_STRING("password", driver.loc_);
3172 }
3173}
3174 YY_BREAK
3175case 58:
3177#line 629 "dhcp6_lexer.ll"
3178{
3179 switch(driver.ctx_) {
3183 return isc::dhcp::Dhcp6Parser::make_HOST(driver.loc_);
3184 default:
3185 return isc::dhcp::Dhcp6Parser::make_STRING("host", driver.loc_);
3186 }
3187}
3188 YY_BREAK
3189case 59:
3191#line 640 "dhcp6_lexer.ll"
3192{
3193 switch(driver.ctx_) {
3197 return isc::dhcp::Dhcp6Parser::make_PORT(driver.loc_);
3198 default:
3199 return isc::dhcp::Dhcp6Parser::make_STRING("port", driver.loc_);
3200 }
3201}
3202 YY_BREAK
3203case 60:
3205#line 651 "dhcp6_lexer.ll"
3206{
3207 switch(driver.ctx_) {
3212 return isc::dhcp::Dhcp6Parser::make_PERSIST(driver.loc_);
3213 default:
3214 return isc::dhcp::Dhcp6Parser::make_STRING("persist", driver.loc_);
3215 }
3216}
3217 YY_BREAK
3218case 61:
3220#line 663 "dhcp6_lexer.ll"
3221{
3222 switch(driver.ctx_) {
3227 default:
3228 return isc::dhcp::Dhcp6Parser::make_STRING("lfc-interval", driver.loc_);
3229 }
3230}
3231 YY_BREAK
3232case 62:
3234#line 674 "dhcp6_lexer.ll"
3235{
3236 switch(driver.ctx_) {
3241 default:
3242 return isc::dhcp::Dhcp6Parser::make_STRING("connect-timeout", driver.loc_);
3243 }
3244}
3245 YY_BREAK
3246case 63:
3248#line 685 "dhcp6_lexer.ll"
3249{
3250 switch(driver.ctx_) {
3254 return isc::dhcp::Dhcp6Parser::make_KEYSPACE(driver.loc_);
3255 default:
3256 return isc::dhcp::Dhcp6Parser::make_STRING("keyspace", driver.loc_);
3257 }
3258}
3259 YY_BREAK
3260case 64:
3262#line 696 "dhcp6_lexer.ll"
3263{
3264 switch(driver.ctx_) {
3268 return isc::dhcp::Dhcp6Parser::make_CONSISTENCY(driver.loc_);
3269 default:
3270 return isc::dhcp::Dhcp6Parser::make_STRING("consistency", driver.loc_);
3271 }
3272}
3273 YY_BREAK
3274case 65:
3276#line 707 "dhcp6_lexer.ll"
3277{
3278 switch(driver.ctx_) {
3283 default:
3284 return isc::dhcp::Dhcp6Parser::make_STRING("serial-consistency", driver.loc_);
3285 }
3286}
3287 YY_BREAK
3288case 66:
3290#line 718 "dhcp6_lexer.ll"
3291{
3292 switch(driver.ctx_) {
3297 default:
3298 return isc::dhcp::Dhcp6Parser::make_STRING("reconnect-wait-time", driver.loc_);
3299 }
3300}
3301 YY_BREAK
3302case 67:
3304#line 729 "dhcp6_lexer.ll"
3305{
3306 switch(driver.ctx_) {
3310 return isc::dhcp::Dhcp6Parser::make_ON_FAIL(driver.loc_);
3311 default:
3312 return isc::dhcp::Dhcp6Parser::make_STRING("on-fail", driver.loc_);
3313 }
3314}
3315 YY_BREAK
3316case 68:
3318#line 740 "dhcp6_lexer.ll"
3319{
3320 switch(driver.ctx_) {
3323 default:
3324 return isc::dhcp::Dhcp6Parser::make_STRING("stop-retry-exit", driver.loc_);
3325 }
3326}
3327 YY_BREAK
3328case 69:
3330#line 749 "dhcp6_lexer.ll"
3331{
3332 switch(driver.ctx_) {
3335 default:
3336 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-exit", driver.loc_);
3337 }
3338}
3339 YY_BREAK
3340case 70:
3342#line 758 "dhcp6_lexer.ll"
3343{
3344 switch(driver.ctx_) {
3347 default:
3348 return isc::dhcp::Dhcp6Parser::make_STRING("serve-retry-continue", driver.loc_);
3349 }
3350}
3351 YY_BREAK
3352case 71:
3354#line 767 "dhcp6_lexer.ll"
3355{
3356 switch(driver.ctx_) {
3361 default:
3362 return isc::dhcp::Dhcp6Parser::make_STRING("request-timeout", driver.loc_);
3363 }
3364}
3365 YY_BREAK
3366case 72:
3368#line 778 "dhcp6_lexer.ll"
3369{
3370 switch(driver.ctx_) {
3375 default:
3376 return isc::dhcp::Dhcp6Parser::make_STRING("tcp-keepalive", driver.loc_);
3377 }
3378}
3379 YY_BREAK
3380case 73:
3382#line 789 "dhcp6_lexer.ll"
3383{
3384 switch(driver.ctx_) {
3388 return isc::dhcp::Dhcp6Parser::make_TCP_NODELAY(driver.loc_);
3389 default:
3390 return isc::dhcp::Dhcp6Parser::make_STRING("tcp-nodelay", driver.loc_);
3391 }
3392}
3393 YY_BREAK
3394case 74:
3396#line 800 "dhcp6_lexer.ll"
3397{
3398 switch(driver.ctx_) {
3403 default:
3404 return isc::dhcp::Dhcp6Parser::make_STRING("contact-points", driver.loc_);
3405 }
3406}
3407 YY_BREAK
3408case 75:
3410#line 811 "dhcp6_lexer.ll"
3411{
3412 switch(driver.ctx_) {
3417 default:
3418 return isc::dhcp::Dhcp6Parser::make_STRING("max-reconnect-tries", driver.loc_);
3419 }
3420}
3421 YY_BREAK
3422case 76:
3424#line 822 "dhcp6_lexer.ll"
3425{
3426 switch(driver.ctx_) {
3429 default:
3430 return isc::dhcp::Dhcp6Parser::make_STRING("max_row_errors", driver.loc_);
3431 }
3432}
3433 YY_BREAK
3434case 77:
3436#line 831 "dhcp6_lexer.ll"
3437{
3438 switch(driver.ctx_) {
3444 default:
3445 return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_);
3446 }
3447}
3448 YY_BREAK
3449case 78:
3451#line 843 "dhcp6_lexer.ll"
3452{
3453 switch(driver.ctx_) {
3459 default:
3460 return isc::dhcp::Dhcp6Parser::make_STRING("min-preferred-lifetime", driver.loc_);
3461 }
3462}
3463 YY_BREAK
3464case 79:
3466#line 855 "dhcp6_lexer.ll"
3467{
3468 switch(driver.ctx_) {
3474 default:
3475 return isc::dhcp::Dhcp6Parser::make_STRING("max-preferred-lifetime", driver.loc_);
3476 }
3477}
3478 YY_BREAK
3479case 80:
3481#line 867 "dhcp6_lexer.ll"
3482{
3483 switch(driver.ctx_) {
3489 default:
3490 return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_);
3491 }
3492}
3493 YY_BREAK
3494case 81:
3496#line 879 "dhcp6_lexer.ll"
3497{
3498 switch(driver.ctx_) {
3504 default:
3505 return isc::dhcp::Dhcp6Parser::make_STRING("min-valid-lifetime", driver.loc_);
3506 }
3507}
3508 YY_BREAK
3509case 82:
3511#line 891 "dhcp6_lexer.ll"
3512{
3513 switch(driver.ctx_) {
3519 default:
3520 return isc::dhcp::Dhcp6Parser::make_STRING("max-valid-lifetime", driver.loc_);
3521 }
3522}
3523 YY_BREAK
3524case 83:
3526#line 903 "dhcp6_lexer.ll"
3527{
3528 switch(driver.ctx_) {
3532 return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_);
3533 default:
3534 return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_);
3535 }
3536}
3537 YY_BREAK
3538case 84:
3540#line 914 "dhcp6_lexer.ll"
3541{
3542 switch(driver.ctx_) {
3547 default:
3548 return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_);
3549 }
3550}
3551 YY_BREAK
3552case 85:
3554#line 925 "dhcp6_lexer.ll"
3555{
3556 switch(driver.ctx_) {
3559 default:
3560 return isc::dhcp::Dhcp6Parser::make_STRING("decline-probation-period", driver.loc_);
3561 }
3562}
3563 YY_BREAK
3564case 86:
3566#line 934 "dhcp6_lexer.ll"
3567{
3568 switch(driver.ctx_) {
3570 return isc::dhcp::Dhcp6Parser::make_SERVER_TAG(driver.loc_);
3571 default:
3572 return isc::dhcp::Dhcp6Parser::make_STRING("server-tag", driver.loc_);
3573 }
3574}
3575 YY_BREAK
3576case 87:
3578#line 943 "dhcp6_lexer.ll"
3579{
3580 switch(driver.ctx_) {
3583 default:
3584 return isc::dhcp::Dhcp6Parser::make_STRING("parked-packet-limit", driver.loc_);
3585 }
3586}
3587 YY_BREAK
3588case 88:
3590#line 952 "dhcp6_lexer.ll"
3591{
3592 switch(driver.ctx_) {
3595 default:
3596 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3597 }
3598}
3599 YY_BREAK
3600case 89:
3602#line 961 "dhcp6_lexer.ll"
3603{
3604 switch(driver.ctx_) {
3607 default:
3608 return isc::dhcp::Dhcp6Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3609 }
3610}
3611 YY_BREAK
3612case 90:
3614#line 970 "dhcp6_lexer.ll"
3615{
3616 switch(driver.ctx_) {
3621 default:
3622 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-send-updates", driver.loc_);
3623 }
3624}
3625 YY_BREAK
3626case 91:
3628#line 981 "dhcp6_lexer.ll"
3629{
3630 switch(driver.ctx_) {
3635 default:
3636 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-no-update", driver.loc_);
3637 }
3638}
3639 YY_BREAK
3640case 92:
3642#line 992 "dhcp6_lexer.ll"
3643{
3644 switch(driver.ctx_) {
3649 default:
3650 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-override-client-update", driver.loc_);
3651 }
3652}
3653 YY_BREAK
3654case 93:
3656#line 1003 "dhcp6_lexer.ll"
3657{
3658 switch(driver.ctx_) {
3663 default:
3664 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3665 }
3666}
3667 YY_BREAK
3668case 94:
3670#line 1014 "dhcp6_lexer.ll"
3671{
3672 switch(driver.ctx_) {
3677 default:
3678 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-generated-prefix", driver.loc_);
3679 }
3680}
3681 YY_BREAK
3682case 95:
3684#line 1025 "dhcp6_lexer.ll"
3685{
3686 switch(driver.ctx_) {
3691 default:
3692 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
3693 }
3694}
3695 YY_BREAK
3696case 96:
3698#line 1036 "dhcp6_lexer.ll"
3699{
3700 switch(driver.ctx_) {
3705 default:
3706 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-update-on-renew", driver.loc_);
3707 }
3708}
3709 YY_BREAK
3710case 97:
3712#line 1047 "dhcp6_lexer.ll"
3713{
3714 switch(driver.ctx_) {
3719 default:
3720 return isc::dhcp::Dhcp6Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
3721 }
3722}
3723 YY_BREAK
3724case 98:
3726#line 1059 "dhcp6_lexer.ll"
3727{
3728 switch(driver.ctx_) {
3731 return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_);
3732 default:
3733 return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_);
3734 }
3735}
3736 YY_BREAK
3737case 99:
3739#line 1069 "dhcp6_lexer.ll"
3740{
3741 switch(driver.ctx_) {
3746 default:
3747 return isc::dhcp::Dhcp6Parser::make_STRING("store-extended-info", driver.loc_);
3748 }
3749}
3750 YY_BREAK
3751case 100:
3753#line 1080 "dhcp6_lexer.ll"
3754{
3755 switch (driver.ctx_) {
3757 return Dhcp6Parser::make_SHARED_NETWORKS(driver.loc_);
3758 default:
3759 return Dhcp6Parser::make_STRING("shared-networks", driver.loc_);
3760 }
3761}
3762 YY_BREAK
3763case 101:
3765#line 1089 "dhcp6_lexer.ll"
3766{
3767 switch(driver.ctx_) {
3769 return isc::dhcp::Dhcp6Parser::make_OPTION_DEF(driver.loc_);
3770 default:
3771 return isc::dhcp::Dhcp6Parser::make_STRING("option-def", driver.loc_);
3772 }
3773}
3774 YY_BREAK
3775case 102:
3777#line 1098 "dhcp6_lexer.ll"
3778{
3779 switch(driver.ctx_) {
3787 return isc::dhcp::Dhcp6Parser::make_OPTION_DATA(driver.loc_);
3788 default:
3789 return isc::dhcp::Dhcp6Parser::make_STRING("option-data", driver.loc_);
3790 }
3791}
3792 YY_BREAK
3793case 103:
3795#line 1113 "dhcp6_lexer.ll"
3796{
3797 switch(driver.ctx_) {
3806 return isc::dhcp::Dhcp6Parser::make_NAME(driver.loc_);
3807 default:
3808 return isc::dhcp::Dhcp6Parser::make_STRING("name", driver.loc_);
3809 }
3810}
3811 YY_BREAK
3812case 104:
3814#line 1129 "dhcp6_lexer.ll"
3815{
3816 switch(driver.ctx_) {
3818 return isc::dhcp::Dhcp6Parser::make_DATA(driver.loc_);
3819 default:
3820 return isc::dhcp::Dhcp6Parser::make_STRING("data", driver.loc_);
3821 }
3822}
3823 YY_BREAK
3824case 105:
3826#line 1138 "dhcp6_lexer.ll"
3827{
3828 switch(driver.ctx_) {
3830 return isc::dhcp::Dhcp6Parser::make_ALWAYS_SEND(driver.loc_);
3831 default:
3832 return isc::dhcp::Dhcp6Parser::make_STRING("always-send", driver.loc_);
3833 }
3834}
3835 YY_BREAK
3836case 106:
3838#line 1147 "dhcp6_lexer.ll"
3839{
3840 switch(driver.ctx_) {
3842 return isc::dhcp::Dhcp6Parser::make_POOLS(driver.loc_);
3843 default:
3844 return isc::dhcp::Dhcp6Parser::make_STRING("pools", driver.loc_);
3845 }
3846}
3847 YY_BREAK
3848case 107:
3850#line 1156 "dhcp6_lexer.ll"
3851{
3852 switch(driver.ctx_) {
3854 return isc::dhcp::Dhcp6Parser::make_PD_POOLS(driver.loc_);
3855 default:
3856 return isc::dhcp::Dhcp6Parser::make_STRING("pd-pools", driver.loc_);
3857 }
3858}
3859 YY_BREAK
3860case 108:
3862#line 1165 "dhcp6_lexer.ll"
3863{
3864 switch(driver.ctx_) {
3866 return isc::dhcp::Dhcp6Parser::make_PREFIX(driver.loc_);
3867 default:
3868 return isc::dhcp::Dhcp6Parser::make_STRING("prefix", driver.loc_);
3869 }
3870}
3871 YY_BREAK
3872case 109:
3874#line 1174 "dhcp6_lexer.ll"
3875{
3876 switch(driver.ctx_) {
3878 return isc::dhcp::Dhcp6Parser::make_PREFIX_LEN(driver.loc_);
3879 default:
3880 return isc::dhcp::Dhcp6Parser::make_STRING("prefix-len", driver.loc_);
3881 }
3882}
3883 YY_BREAK
3884case 110:
3886#line 1183 "dhcp6_lexer.ll"
3887{
3888 switch(driver.ctx_) {
3891 default:
3892 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix", driver.loc_);
3893 }
3894}
3895 YY_BREAK
3896case 111:
3898#line 1192 "dhcp6_lexer.ll"
3899{
3900 switch(driver.ctx_) {
3903 default:
3904 return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix-len", driver.loc_);
3905 }
3906}
3907 YY_BREAK
3908case 112:
3910#line 1201 "dhcp6_lexer.ll"
3911{
3912 switch(driver.ctx_) {
3915 default:
3916 return isc::dhcp::Dhcp6Parser::make_STRING("delegated-len", driver.loc_);
3917 }
3918}
3919 YY_BREAK
3920case 113:
3922#line 1210 "dhcp6_lexer.ll"
3923{
3924 switch(driver.ctx_) {
3926 return isc::dhcp::Dhcp6Parser::make_POOL(driver.loc_);
3927 default:
3928 return isc::dhcp::Dhcp6Parser::make_STRING("pool", driver.loc_);
3929 }
3930}
3931 YY_BREAK
3932case 114:
3934#line 1219 "dhcp6_lexer.ll"
3935{
3936 switch(driver.ctx_) {
3954 default:
3955 return isc::dhcp::Dhcp6Parser::make_STRING("user-context", driver.loc_);
3956 }
3957}
3958 YY_BREAK
3959case 115:
3961#line 1243 "dhcp6_lexer.ll"
3962{
3963 switch(driver.ctx_) {
3980 return isc::dhcp::Dhcp6Parser::make_COMMENT(driver.loc_);
3981 default:
3982 return isc::dhcp::Dhcp6Parser::make_STRING("comment", driver.loc_);
3983 }
3984}
3985 YY_BREAK
3986case 116:
3988#line 1267 "dhcp6_lexer.ll"
3989{
3990 switch(driver.ctx_) {
3992 return isc::dhcp::Dhcp6Parser::make_SUBNET(driver.loc_);
3993 default:
3994 return isc::dhcp::Dhcp6Parser::make_STRING("subnet", driver.loc_);
3995 }
3996}
3997 YY_BREAK
3998case 117:
4000#line 1276 "dhcp6_lexer.ll"
4001{
4002 switch(driver.ctx_) {
4005 return isc::dhcp::Dhcp6Parser::make_INTERFACE(driver.loc_);
4006 default:
4007 return isc::dhcp::Dhcp6Parser::make_STRING("interface", driver.loc_);
4008 }
4009}
4010 YY_BREAK
4011case 118:
4013#line 1286 "dhcp6_lexer.ll"
4014{
4015 switch(driver.ctx_) {
4019 default:
4020 return isc::dhcp::Dhcp6Parser::make_STRING("interface-id", driver.loc_);
4021 }
4022}
4023 YY_BREAK
4024case 119:
4026#line 1296 "dhcp6_lexer.ll"
4027{
4028 switch(driver.ctx_) {
4030 return isc::dhcp::Dhcp6Parser::make_ID(driver.loc_);
4031 default:
4032 return isc::dhcp::Dhcp6Parser::make_STRING("id", driver.loc_);
4033 }
4034}
4035 YY_BREAK
4036case 120:
4038#line 1305 "dhcp6_lexer.ll"
4039{
4040 switch(driver.ctx_) {
4044 default:
4045 return isc::dhcp::Dhcp6Parser::make_STRING("rapid-commit", driver.loc_);
4046 }
4047}
4048 YY_BREAK
4049case 121:
4051#line 1315 "dhcp6_lexer.ll"
4052{
4053 switch(driver.ctx_) {
4058 default:
4059 return isc::dhcp::Dhcp6Parser::make_STRING("reservation-mode", driver.loc_);
4060 }
4061}
4062 YY_BREAK
4063case 122:
4065#line 1326 "dhcp6_lexer.ll"
4066{
4067 switch(driver.ctx_) {
4069 return isc::dhcp::Dhcp6Parser::make_DISABLED(driver.loc_);
4070 default:
4071 return isc::dhcp::Dhcp6Parser::make_STRING("disabled", driver.loc_);
4072 }
4073}
4074 YY_BREAK
4075case 123:
4077#line 1335 "dhcp6_lexer.ll"
4078{
4079 switch(driver.ctx_) {
4081 return isc::dhcp::Dhcp6Parser::make_DISABLED(driver.loc_);
4082 default:
4083 return isc::dhcp::Dhcp6Parser::make_STRING("off", driver.loc_);
4084 }
4085}
4086 YY_BREAK
4087case 124:
4089#line 1344 "dhcp6_lexer.ll"
4090{
4091 switch(driver.ctx_) {
4093 return isc::dhcp::Dhcp6Parser::make_OUT_OF_POOL(driver.loc_);
4094 default:
4095 return isc::dhcp::Dhcp6Parser::make_STRING("out-of-pool", driver.loc_);
4096 }
4097}
4098 YY_BREAK
4099case 125:
4101#line 1353 "dhcp6_lexer.ll"
4102{
4103 switch(driver.ctx_) {
4105 return isc::dhcp::Dhcp6Parser::make_GLOBAL(driver.loc_);
4106 default:
4107 return isc::dhcp::Dhcp6Parser::make_STRING("global", driver.loc_);
4108 }
4109}
4110 YY_BREAK
4111case 126:
4113#line 1362 "dhcp6_lexer.ll"
4114{
4115 switch(driver.ctx_) {
4117 return isc::dhcp::Dhcp6Parser::make_ALL(driver.loc_);
4118 default:
4119 return isc::dhcp::Dhcp6Parser::make_STRING("all", driver.loc_);
4120 }
4121}
4122 YY_BREAK
4123case 127:
4125#line 1371 "dhcp6_lexer.ll"
4126{
4127 switch(driver.ctx_) {
4132 default:
4133 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-global", driver.loc_);
4134 }
4135}
4136 YY_BREAK
4137case 128:
4139#line 1382 "dhcp6_lexer.ll"
4140{
4141 switch(driver.ctx_) {
4146 default:
4147 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-in-subnet", driver.loc_);
4148 }
4149}
4150 YY_BREAK
4151case 129:
4153#line 1393 "dhcp6_lexer.ll"
4154{
4155 switch(driver.ctx_) {
4160 default:
4161 return isc::dhcp::Dhcp6Parser::make_STRING("reservations-out-of-pool", driver.loc_);
4162 }
4163}
4164 YY_BREAK
4165case 130:
4167#line 1404 "dhcp6_lexer.ll"
4168{
4169 switch(driver.ctx_) {
4172 return isc::dhcp::Dhcp6Parser::make_CODE(driver.loc_);
4173 default:
4174 return isc::dhcp::Dhcp6Parser::make_STRING("code", driver.loc_);
4175 }
4176}
4177 YY_BREAK
4178case 131:
4180#line 1414 "dhcp6_lexer.ll"
4181{
4182 switch(driver.ctx_) {
4184 return isc::dhcp::Dhcp6Parser::make_MAC_SOURCES(driver.loc_);
4185 default:
4186 return isc::dhcp::Dhcp6Parser::make_STRING("mac-sources", driver.loc_);
4187 }
4188}
4189 YY_BREAK
4190case 132:
4192#line 1423 "dhcp6_lexer.ll"
4193{
4194 switch(driver.ctx_) {
4197 default:
4198 return isc::dhcp::Dhcp6Parser::make_STRING("relay-supplied-options", driver.loc_);
4199 }
4200}
4201 YY_BREAK
4202case 133:
4204#line 1432 "dhcp6_lexer.ll"
4205{
4206 switch(driver.ctx_) {
4209 default:
4210 return isc::dhcp::Dhcp6Parser::make_STRING("host-reservation-identifiers", driver.loc_);
4211 }
4212}
4213 YY_BREAK
4214case 134:
4216#line 1441 "dhcp6_lexer.ll"
4217{
4218 switch(driver.ctx_) {
4223 default:
4224 return isc::dhcp::Dhcp6Parser::make_STRING("calculate-tee-times", driver.loc_);
4225 }
4226}
4227 YY_BREAK
4228case 135:
4230#line 1452 "dhcp6_lexer.ll"
4231{
4232 switch(driver.ctx_) {
4236 return isc::dhcp::Dhcp6Parser::make_T1_PERCENT(driver.loc_);
4237 default:
4238 return isc::dhcp::Dhcp6Parser::make_STRING("t1-percent", driver.loc_);
4239 }
4240}
4241 YY_BREAK
4242case 136:
4244#line 1463 "dhcp6_lexer.ll"
4245{
4246 switch(driver.ctx_) {
4250 return isc::dhcp::Dhcp6Parser::make_T2_PERCENT(driver.loc_);
4251 default:
4252 return isc::dhcp::Dhcp6Parser::make_STRING("t2-percent", driver.loc_);
4253 }
4254}
4255 YY_BREAK
4256case 137:
4258#line 1474 "dhcp6_lexer.ll"
4259{
4260 switch(driver.ctx_) {
4265 default:
4266 return isc::dhcp::Dhcp6Parser::make_STRING("cache-threshold", driver.loc_);
4267 }
4268}
4269 YY_BREAK
4270case 138:
4272#line 1485 "dhcp6_lexer.ll"
4273{
4274 switch(driver.ctx_) {
4279 default:
4280 return isc::dhcp::Dhcp6Parser::make_STRING("cache-max-age", driver.loc_);
4281 }
4282}
4283 YY_BREAK
4284case 139:
4286#line 1496 "dhcp6_lexer.ll"
4287{
4288 switch(driver.ctx_) {
4290 return isc::dhcp::Dhcp6Parser::make_LOGGERS(driver.loc_);
4291 default:
4292 return isc::dhcp::Dhcp6Parser::make_STRING("loggers", driver.loc_);
4293 }
4294}
4295 YY_BREAK
4296case 140:
4298#line 1505 "dhcp6_lexer.ll"
4299{
4300 switch(driver.ctx_) {
4303 default:
4304 return isc::dhcp::Dhcp6Parser::make_STRING("output_options", driver.loc_);
4305 }
4306}
4307 YY_BREAK
4308case 141:
4310#line 1514 "dhcp6_lexer.ll"
4311{
4312 switch(driver.ctx_) {
4314 return isc::dhcp::Dhcp6Parser::make_OUTPUT(driver.loc_);
4315 default:
4316 return isc::dhcp::Dhcp6Parser::make_STRING("output", driver.loc_);
4317 }
4318}
4319 YY_BREAK
4320case 142:
4322#line 1523 "dhcp6_lexer.ll"
4323{
4324 switch(driver.ctx_) {
4326 return isc::dhcp::Dhcp6Parser::make_FLUSH(driver.loc_);
4327 default:
4328 return isc::dhcp::Dhcp6Parser::make_STRING("flush", driver.loc_);
4329 }
4330}
4331 YY_BREAK
4332case 143:
4334#line 1532 "dhcp6_lexer.ll"
4335{
4336 switch(driver.ctx_) {
4338 return isc::dhcp::Dhcp6Parser::make_MAXSIZE(driver.loc_);
4339 default:
4340 return isc::dhcp::Dhcp6Parser::make_STRING("maxsize", driver.loc_);
4341 }
4342}
4343 YY_BREAK
4344case 144:
4346#line 1541 "dhcp6_lexer.ll"
4347{
4348 switch(driver.ctx_) {
4350 return isc::dhcp::Dhcp6Parser::make_MAXVER(driver.loc_);
4351 default:
4352 return isc::dhcp::Dhcp6Parser::make_STRING("maxver", driver.loc_);
4353 }
4354}
4355 YY_BREAK
4356case 145:
4358#line 1550 "dhcp6_lexer.ll"
4359{
4360 switch(driver.ctx_) {
4362 return isc::dhcp::Dhcp6Parser::make_PATTERN(driver.loc_);
4363 default:
4364 return isc::dhcp::Dhcp6Parser::make_STRING("pattern", driver.loc_);
4365 }
4366}
4367 YY_BREAK
4368case 146:
4370#line 1559 "dhcp6_lexer.ll"
4371{
4372 switch(driver.ctx_) {
4374 return isc::dhcp::Dhcp6Parser::make_DEBUGLEVEL(driver.loc_);
4375 default:
4376 return isc::dhcp::Dhcp6Parser::make_STRING("debuglevel", driver.loc_);
4377 }
4378}
4379 YY_BREAK
4380case 147:
4382#line 1568 "dhcp6_lexer.ll"
4383{
4384 switch(driver.ctx_) {
4386 return isc::dhcp::Dhcp6Parser::make_SEVERITY(driver.loc_);
4387 default:
4388 return isc::dhcp::Dhcp6Parser::make_STRING("severity", driver.loc_);
4389 }
4390}
4391 YY_BREAK
4392case 148:
4394#line 1577 "dhcp6_lexer.ll"
4395{
4396 switch(driver.ctx_) {
4400 default:
4401 return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", driver.loc_);
4402 }
4403}
4404 YY_BREAK
4405case 149:
4407#line 1587 "dhcp6_lexer.ll"
4408{
4409 switch(driver.ctx_) {
4415 default:
4416 return isc::dhcp::Dhcp6Parser::make_STRING("require-client-classes", driver.loc_);
4417 }
4418}
4419 YY_BREAK
4420case 150:
4422#line 1599 "dhcp6_lexer.ll"
4423{
4424 switch(driver.ctx_) {
4431 default:
4432 return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_);
4433 }
4434}
4435 YY_BREAK
4436case 151:
4438#line 1612 "dhcp6_lexer.ll"
4439{
4440 switch(driver.ctx_) {
4442 return isc::dhcp::Dhcp6Parser::make_TEST(driver.loc_);
4443 default:
4444 return isc::dhcp::Dhcp6Parser::make_STRING("test", driver.loc_);
4445 }
4446}
4447 YY_BREAK
4448case 152:
4450#line 1621 "dhcp6_lexer.ll"
4451{
4452 switch(driver.ctx_) {
4455 default:
4456 return isc::dhcp::Dhcp6Parser::make_STRING("only-if-required", driver.loc_);
4457 }
4458}
4459 YY_BREAK
4460case 153:
4462#line 1630 "dhcp6_lexer.ll"
4463{
4464 switch(driver.ctx_) {
4468 default:
4469 return isc::dhcp::Dhcp6Parser::make_STRING("reservations", driver.loc_);
4470 }
4471}
4472 YY_BREAK
4473case 154:
4475#line 1640 "dhcp6_lexer.ll"
4476{
4477 switch(driver.ctx_) {
4481 default:
4482 return isc::dhcp::Dhcp6Parser::make_STRING("ip-addresses", driver.loc_);
4483 }
4484}
4485 YY_BREAK
4486case 155:
4488#line 1650 "dhcp6_lexer.ll"
4489{
4490 switch(driver.ctx_) {
4492 return isc::dhcp::Dhcp6Parser::make_PREFIXES(driver.loc_);
4493 default:
4494 return isc::dhcp::Dhcp6Parser::make_STRING("prefixes", driver.loc_);
4495 }
4496}
4497 YY_BREAK
4498case 156:
4500#line 1659 "dhcp6_lexer.ll"
4501{
4502 switch(driver.ctx_) {
4506 return isc::dhcp::Dhcp6Parser::make_DUID(driver.loc_);
4507 default:
4508 return isc::dhcp::Dhcp6Parser::make_STRING("duid", driver.loc_);
4509 }
4510}
4511 YY_BREAK
4512case 157:
4514#line 1670 "dhcp6_lexer.ll"
4515{
4516 switch(driver.ctx_) {
4519 return isc::dhcp::Dhcp6Parser::make_HW_ADDRESS(driver.loc_);
4520 default:
4521 return isc::dhcp::Dhcp6Parser::make_STRING("hw-address", driver.loc_);
4522 }
4523}
4524 YY_BREAK
4525case 158:
4527#line 1680 "dhcp6_lexer.ll"
4528{
4529 switch(driver.ctx_) {
4531 return isc::dhcp::Dhcp6Parser::make_HOSTNAME(driver.loc_);
4532 default:
4533 return isc::dhcp::Dhcp6Parser::make_STRING("hostname", driver.loc_);
4534 }
4535}
4536 YY_BREAK
4537case 159:
4539#line 1689 "dhcp6_lexer.ll"
4540{
4541 switch(driver.ctx_) {
4544 return isc::dhcp::Dhcp6Parser::make_FLEX_ID(driver.loc_);
4545 default:
4546 return isc::dhcp::Dhcp6Parser::make_STRING("flex-id", driver.loc_);
4547 }
4548}
4549 YY_BREAK
4550case 160:
4552#line 1699 "dhcp6_lexer.ll"
4553{
4554 switch(driver.ctx_) {
4557 return isc::dhcp::Dhcp6Parser::make_SPACE(driver.loc_);
4558 default:
4559 return isc::dhcp::Dhcp6Parser::make_STRING("space", driver.loc_);
4560 }
4561}
4562 YY_BREAK
4563case 161:
4565#line 1709 "dhcp6_lexer.ll"
4566{
4567 switch(driver.ctx_) {
4569 return isc::dhcp::Dhcp6Parser::make_CSV_FORMAT(driver.loc_);
4570 default:
4571 return isc::dhcp::Dhcp6Parser::make_STRING("csv-format", driver.loc_);
4572 }
4573}
4574 YY_BREAK
4575case 162:
4577#line 1718 "dhcp6_lexer.ll"
4578{
4579 switch(driver.ctx_) {
4582 default:
4583 return isc::dhcp::Dhcp6Parser::make_STRING("record-types", driver.loc_);
4584 }
4585}
4586 YY_BREAK
4587case 163:
4589#line 1727 "dhcp6_lexer.ll"
4590{
4591 switch(driver.ctx_) {
4593 return isc::dhcp::Dhcp6Parser::make_ENCAPSULATE(driver.loc_);
4594 default:
4595 return isc::dhcp::Dhcp6Parser::make_STRING("encapsulate", driver.loc_);
4596 }
4597}
4598 YY_BREAK
4599case 164:
4601#line 1736 "dhcp6_lexer.ll"
4602{
4603 switch(driver.ctx_) {
4605 return isc::dhcp::Dhcp6Parser::make_ARRAY(driver.loc_);
4606 default:
4607 return isc::dhcp::Dhcp6Parser::make_STRING("array", driver.loc_);
4608 }
4609}
4610 YY_BREAK
4611case 165:
4613#line 1745 "dhcp6_lexer.ll"
4614{
4615 switch(driver.ctx_) {
4618 return isc::dhcp::Dhcp6Parser::make_RELAY(driver.loc_);
4619 default:
4620 return isc::dhcp::Dhcp6Parser::make_STRING("relay", driver.loc_);
4621 }
4622}
4623 YY_BREAK
4624case 166:
4626#line 1755 "dhcp6_lexer.ll"
4627{
4628 switch(driver.ctx_) {
4630 return isc::dhcp::Dhcp6Parser::make_IP_ADDRESS(driver.loc_);
4631 default:
4632 return isc::dhcp::Dhcp6Parser::make_STRING("ip-address", driver.loc_);
4633 }
4634}
4635 YY_BREAK
4636case 167:
4638#line 1764 "dhcp6_lexer.ll"
4639{
4640 switch(driver.ctx_) {
4643 default:
4644 return isc::dhcp::Dhcp6Parser::make_STRING("hooks-libraries", driver.loc_);
4645 }
4646}
4647 YY_BREAK
4648case 168:
4650#line 1773 "dhcp6_lexer.ll"
4651{
4652 switch(driver.ctx_) {
4654 return isc::dhcp::Dhcp6Parser::make_PARAMETERS(driver.loc_);
4655 default:
4656 return isc::dhcp::Dhcp6Parser::make_STRING("parameters", driver.loc_);
4657 }
4658}
4659 YY_BREAK
4660case 169:
4662#line 1782 "dhcp6_lexer.ll"
4663{
4664 switch(driver.ctx_) {
4666 return isc::dhcp::Dhcp6Parser::make_LIBRARY(driver.loc_);
4667 default:
4668 return isc::dhcp::Dhcp6Parser::make_STRING("library", driver.loc_);
4669 }
4670}
4671 YY_BREAK
4672case 170:
4674#line 1791 "dhcp6_lexer.ll"
4675{
4676 switch(driver.ctx_) {
4678 return isc::dhcp::Dhcp6Parser::make_SERVER_ID(driver.loc_);
4679 default:
4680 return isc::dhcp::Dhcp6Parser::make_STRING("server-id", driver.loc_);
4681 }
4682}
4683 YY_BREAK
4684case 171:
4686#line 1800 "dhcp6_lexer.ll"
4687{
4688 switch(driver.ctx_) {
4690 return isc::dhcp::Dhcp6Parser::make_LLT(driver.loc_);
4691 default:
4692 return isc::dhcp::Dhcp6Parser::make_STRING("LLT", driver.loc_);
4693 }
4694}
4695 YY_BREAK
4696case 172:
4698#line 1809 "dhcp6_lexer.ll"
4699{
4700 switch(driver.ctx_) {
4702 return isc::dhcp::Dhcp6Parser::make_EN(driver.loc_);
4703 default:
4704 return isc::dhcp::Dhcp6Parser::make_STRING("EN", driver.loc_);
4705 }
4706}
4707 YY_BREAK
4708case 173:
4710#line 1818 "dhcp6_lexer.ll"
4711{
4712 switch(driver.ctx_) {
4714 return isc::dhcp::Dhcp6Parser::make_LL(driver.loc_);
4715 default:
4716 return isc::dhcp::Dhcp6Parser::make_STRING("LL", driver.loc_);
4717 }
4718}
4719 YY_BREAK
4720case 174:
4722#line 1827 "dhcp6_lexer.ll"
4723{
4724 switch(driver.ctx_) {
4726 return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(driver.loc_);
4727 default:
4728 return isc::dhcp::Dhcp6Parser::make_STRING("identifier", driver.loc_);
4729 }
4730}
4731 YY_BREAK
4732case 175:
4734#line 1836 "dhcp6_lexer.ll"
4735{
4736 switch(driver.ctx_) {
4738 return isc::dhcp::Dhcp6Parser::make_HTYPE(driver.loc_);
4739 default:
4740 return isc::dhcp::Dhcp6Parser::make_STRING("htype", driver.loc_);
4741 }
4742}
4743 YY_BREAK
4744case 176:
4746#line 1845 "dhcp6_lexer.ll"
4747{
4748 switch(driver.ctx_) {
4750 return isc::dhcp::Dhcp6Parser::make_TIME(driver.loc_);
4751 default:
4752 return isc::dhcp::Dhcp6Parser::make_STRING("time", driver.loc_);
4753 }
4754}
4755 YY_BREAK
4756case 177:
4758#line 1854 "dhcp6_lexer.ll"
4759{
4760 switch(driver.ctx_) {
4763 default:
4764 return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", driver.loc_);
4765 }
4766}
4767 YY_BREAK
4768case 178:
4770#line 1863 "dhcp6_lexer.ll"
4771{
4772 switch(driver.ctx_) {
4775 default:
4776 return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", driver.loc_);
4777 }
4778}
4779 YY_BREAK
4780case 179:
4782#line 1872 "dhcp6_lexer.ll"
4783{
4784 switch(driver.ctx_) {
4787 default:
4788 return isc::dhcp::Dhcp6Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
4789 }
4790}
4791 YY_BREAK
4792case 180:
4794#line 1881 "dhcp6_lexer.ll"
4795{
4796 switch(driver.ctx_) {
4799 default:
4800 return isc::dhcp::Dhcp6Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
4801 }
4802}
4803 YY_BREAK
4804case 181:
4806#line 1890 "dhcp6_lexer.ll"
4807{
4808 switch(driver.ctx_) {
4811 default:
4812 return isc::dhcp::Dhcp6Parser::make_STRING("hold-reclaimed-time", driver.loc_);
4813 }
4814}
4815 YY_BREAK
4816case 182:
4818#line 1899 "dhcp6_lexer.ll"
4819{
4820 switch(driver.ctx_) {
4823 default:
4824 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-leases", driver.loc_);
4825 }
4826}
4827 YY_BREAK
4828case 183:
4830#line 1908 "dhcp6_lexer.ll"
4831{
4832 switch(driver.ctx_) {
4835 default:
4836 return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-time", driver.loc_);
4837 }
4838}
4839 YY_BREAK
4840case 184:
4842#line 1917 "dhcp6_lexer.ll"
4843{
4844 switch(driver.ctx_) {
4847 default:
4848 return isc::dhcp::Dhcp6Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
4849 }
4850}
4851 YY_BREAK
4852case 185:
4854#line 1926 "dhcp6_lexer.ll"
4855{
4856 switch(driver.ctx_) {
4859 default:
4860 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp4o6-port", driver.loc_);
4861 }
4862}
4863 YY_BREAK
4864case 186:
4866#line 1935 "dhcp6_lexer.ll"
4867{
4868 switch(driver.ctx_) {
4871 default:
4872 return isc::dhcp::Dhcp6Parser::make_STRING("multi-threading", driver.loc_);
4873 }
4874}
4875 YY_BREAK
4876case 187:
4878#line 1944 "dhcp6_lexer.ll"
4879{
4880 switch(driver.ctx_) {
4883 default:
4884 return isc::dhcp::Dhcp6Parser::make_STRING("enable-multi-threading", driver.loc_);
4885 }
4886}
4887 YY_BREAK
4888case 188:
4890#line 1953 "dhcp6_lexer.ll"
4891{
4892 switch(driver.ctx_) {
4895 default:
4896 return isc::dhcp::Dhcp6Parser::make_STRING("thread-pool-size", driver.loc_);
4897 }
4898}
4899 YY_BREAK
4900case 189:
4902#line 1962 "dhcp6_lexer.ll"
4903{
4904 switch(driver.ctx_) {
4907 default:
4908 return isc::dhcp::Dhcp6Parser::make_STRING("packet-queue-size", driver.loc_);
4909 }
4910}
4911 YY_BREAK
4912case 190:
4914#line 1971 "dhcp6_lexer.ll"
4915{
4916 switch(driver.ctx_) {
4919 default:
4920 return isc::dhcp::Dhcp6Parser::make_STRING("control-socket", driver.loc_);
4921 }
4922}
4923 YY_BREAK
4924case 191:
4926#line 1980 "dhcp6_lexer.ll"
4927{
4928 switch(driver.ctx_) {
4930 return isc::dhcp::Dhcp6Parser::make_SOCKET_TYPE(driver.loc_);
4931 default:
4932 return isc::dhcp::Dhcp6Parser::make_STRING("socket-type", driver.loc_);
4933 }
4934}
4935 YY_BREAK
4936case 192:
4938#line 1989 "dhcp6_lexer.ll"
4939{
4940 switch(driver.ctx_) {
4942 return isc::dhcp::Dhcp6Parser::make_SOCKET_NAME(driver.loc_);
4943 default:
4944 return isc::dhcp::Dhcp6Parser::make_STRING("socket-name", driver.loc_);
4945 }
4946}
4947 YY_BREAK
4948case 193:
4950#line 1998 "dhcp6_lexer.ll"
4951{
4952 switch(driver.ctx_) {
4955 default:
4956 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-queue-control", driver.loc_);
4957 }
4958}
4959 YY_BREAK
4960case 194:
4962#line 2007 "dhcp6_lexer.ll"
4963{
4964 switch(driver.ctx_) {
4967 default:
4968 return isc::dhcp::Dhcp6Parser::make_STRING("enable-queue", driver.loc_);
4969 }
4970}
4971 YY_BREAK
4972case 195:
4974#line 2016 "dhcp6_lexer.ll"
4975{
4976 switch(driver.ctx_) {
4978 return isc::dhcp::Dhcp6Parser::make_QUEUE_TYPE(driver.loc_);
4979 default:
4980 return isc::dhcp::Dhcp6Parser::make_STRING("queue-type", driver.loc_);
4981 }
4982}
4983 YY_BREAK
4984case 196:
4986#line 2025 "dhcp6_lexer.ll"
4987{
4988 switch(driver.ctx_) {
4990 return isc::dhcp::Dhcp6Parser::make_CAPACITY(driver.loc_);
4991 default:
4992 return isc::dhcp::Dhcp6Parser::make_STRING("capacity", driver.loc_);
4993 }
4994}
4995 YY_BREAK
4996case 197:
4998#line 2034 "dhcp6_lexer.ll"
4999{
5000 switch(driver.ctx_) {
5002 return isc::dhcp::Dhcp6Parser::make_DHCP_DDNS(driver.loc_);
5003 default:
5004 return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-ddns", driver.loc_);
5005 }
5006}
5007 YY_BREAK
5008case 198:
5010#line 2043 "dhcp6_lexer.ll"
5011{
5012 switch(driver.ctx_) {
5015 default:
5016 return isc::dhcp::Dhcp6Parser::make_STRING("ip-reservations-unique", driver.loc_);
5017 }
5018}
5019 YY_BREAK
5020case 199:
5022#line 2052 "dhcp6_lexer.ll"
5023{
5024 switch(driver.ctx_) {
5027 default:
5028 return isc::dhcp::Dhcp6Parser::make_STRING("compatibility", driver.loc_);
5029 }
5030}
5031 YY_BREAK
5032case 200:
5034#line 2061 "dhcp6_lexer.ll"
5035{
5036 switch(driver.ctx_) {
5039 default:
5040 return isc::dhcp::Dhcp6Parser::make_STRING("lenient-option-parsing", driver.loc_);
5041 }
5042}
5043 YY_BREAK
5044case 201:
5046#line 2070 "dhcp6_lexer.ll"
5047{
5048 /* A string has been matched. It contains the actual string and single quotes.
5049 We need to get those quotes out of the way and just use its content, e.g.
5050 for 'foo' we should get foo */
5051 std::string raw(yytext+1);
5052 size_t len = raw.size() - 1;
5053 raw.resize(len);
5054 std::string decoded;
5055 decoded.reserve(len);
5056 for (size_t pos = 0; pos < len; ++pos) {
5057 int b = 0;
5058 char c = raw[pos];
5059 switch (c) {
5060 case '"':
5061 /* impossible condition */
5062 driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
5063 break;
5064 case '\\':
5065 ++pos;
5066 if (pos >= len) {
5067 /* impossible condition */
5068 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
5069 }
5070 c = raw[pos];
5071 switch (c) {
5072 case '"':
5073 case '\\':
5074 case '/':
5075 decoded.push_back(c);
5076 break;
5077 case 'b':
5078 decoded.push_back('\b');
5079 break;
5080 case 'f':
5081 decoded.push_back('\f');
5082 break;
5083 case 'n':
5084 decoded.push_back('\n');
5085 break;
5086 case 'r':
5087 decoded.push_back('\r');
5088 break;
5089 case 't':
5090 decoded.push_back('\t');
5091 break;
5092 case 'u':
5093 /* support only \u0000 to \u00ff */
5094 ++pos;
5095 if (pos + 4 > len) {
5096 /* impossible condition */
5097 driver.error(driver.loc_,
5098 "Overflow unicode escape in \"" + raw + "\"");
5099 }
5100 if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
5101 driver.error(driver.loc_,
5102 "Unsupported unicode escape in \"" + raw + "\"",
5103 pos + 1);
5104 }
5105 pos += 2;
5106 c = raw[pos];
5107 if ((c >= '0') && (c <= '9')) {
5108 b = (c - '0') << 4;
5109 } else if ((c >= 'A') && (c <= 'F')) {
5110 b = (c - 'A' + 10) << 4;
5111 } else if ((c >= 'a') && (c <= 'f')) {
5112 b = (c - 'a' + 10) << 4;
5113 } else {
5114 /* impossible condition */
5115 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5116 }
5117 pos++;
5118 c = raw[pos];
5119 if ((c >= '0') && (c <= '9')) {
5120 b |= c - '0';
5121 } else if ((c >= 'A') && (c <= 'F')) {
5122 b |= c - 'A' + 10;
5123 } else if ((c >= 'a') && (c <= 'f')) {
5124 b |= c - 'a' + 10;
5125 } else {
5126 /* impossible condition */
5127 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5128 }
5129 decoded.push_back(static_cast<char>(b & 0xff));
5130 break;
5131 default:
5132 /* impossible condition */
5133 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5134 }
5135 break;
5136 default:
5137 if ((c >= 0) && (c < 0x20)) {
5138 /* impossible condition */
5139 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5140 }
5141 decoded.push_back(c);
5142 }
5143 }
5144
5145 return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
5146}
5147 YY_BREAK
5148case 202:
5149/* rule 202 can match eol */
5151#line 2171 "dhcp6_lexer.ll"
5152{
5153 /* Bad string with a forbidden control character inside */
5154 std::string raw(yytext+1);
5155 size_t len = raw.size() - 1;
5156 size_t pos = 0;
5157 for (; pos < len; ++pos) {
5158 char c = raw[pos];
5159 if ((c >= 0) && (c < 0x20)) {
5160 break;
5161 }
5162 }
5163 driver.error(driver.loc_,
5164 "Invalid control in " + std::string(yytext),
5165 pos + 1);
5166}
5167 YY_BREAK
5168case 203:
5169/* rule 203 can match eol */
5171#line 2187 "dhcp6_lexer.ll"
5172{
5173 /* Bad string with a bad escape inside */
5174 std::string raw(yytext+1);
5175 size_t len = raw.size() - 1;
5176 size_t pos = 0;
5177 bool found = false;
5178 for (; pos < len; ++pos) {
5179 if (found) {
5180 break;
5181 }
5182 char c = raw[pos];
5183 if (c == '\\') {
5184 ++pos;
5185 c = raw[pos];
5186 switch (c) {
5187 case '"':
5188 case '\\':
5189 case '/':
5190 case 'b':
5191 case 'f':
5192 case 'n':
5193 case 'r':
5194 case 't':
5195 break;
5196 case 'u':
5197 if ((pos + 4 > len) ||
5198 !std::isxdigit(raw[pos + 1]) ||
5199 !std::isxdigit(raw[pos + 2]) ||
5200 !std::isxdigit(raw[pos + 3]) ||
5201 !std::isxdigit(raw[pos + 4])) {
5202 found = true;
5203 }
5204 break;
5205 default:
5206 found = true;
5207 break;
5208 }
5209 }
5210 }
5211 /* The rule stops on the first " including on \" so add ... in this case */
5212 std::string trailer = "";
5213 if (raw[len - 1] == '\\') {
5214 trailer = "...";
5215 }
5216 driver.error(driver.loc_,
5217 "Bad escape in " + std::string(yytext) + trailer,
5218 pos);
5219}
5220 YY_BREAK
5221case 204:
5223#line 2236 "dhcp6_lexer.ll"
5224{
5225 /* Bad string with an open escape at the end */
5226 std::string raw(yytext+1);
5227 driver.error(driver.loc_,
5228 "Overflow escape in " + std::string(yytext),
5229 raw.size() + 1);
5230}
5231 YY_BREAK
5232case 205:
5234#line 2244 "dhcp6_lexer.ll"
5235{
5236 /* Bad string with an open unicode escape at the end */
5237 std::string raw(yytext+1);
5238 size_t pos = raw.size() - 1;
5239 for (; pos > 0; --pos) {
5240 char c = raw[pos];
5241 if (c == 'u') {
5242 break;
5243 }
5244 }
5245 driver.error(driver.loc_,
5246 "Overflow unicode escape in " + std::string(yytext),
5247 pos + 1);
5248}
5249 YY_BREAK
5250case 206:
5252#line 2259 "dhcp6_lexer.ll"
5253{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
5254 YY_BREAK
5255case 207:
5257#line 2260 "dhcp6_lexer.ll"
5258{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
5259 YY_BREAK
5260case 208:
5262#line 2261 "dhcp6_lexer.ll"
5263{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
5264 YY_BREAK
5265case 209:
5267#line 2262 "dhcp6_lexer.ll"
5268{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
5269 YY_BREAK
5270case 210:
5272#line 2263 "dhcp6_lexer.ll"
5273{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
5274 YY_BREAK
5275case 211:
5277#line 2264 "dhcp6_lexer.ll"
5278{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
5279 YY_BREAK
5280case 212:
5282#line 2266 "dhcp6_lexer.ll"
5283{
5284 /* An integer was found. */
5285 std::string tmp(yytext);
5286 int64_t integer = 0;
5287 try {
5288 /* In substring we want to use negative values (e.g. -1).
5289 In enterprise-id we need to use values up to 0xffffffff.
5290 To cover both of those use cases, we need at least
5291 int64_t. */
5292 integer = boost::lexical_cast<int64_t>(tmp);
5293 } catch (const boost::bad_lexical_cast &) {
5294 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5295 }
5296
5297 /* The parser needs the string form as double conversion is no lossless */
5298 return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
5299}
5300 YY_BREAK
5301case 213:
5303#line 2284 "dhcp6_lexer.ll"
5304{
5305 /* A floating point was found. */
5306 std::string tmp(yytext);
5307 double fp = 0.0;
5308 try {
5309 fp = boost::lexical_cast<double>(tmp);
5310 } catch (const boost::bad_lexical_cast &) {
5311 driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
5312 }
5313
5314 return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
5315}
5316 YY_BREAK
5317case 214:
5319#line 2297 "dhcp6_lexer.ll"
5320{
5321 string tmp(yytext);
5322 return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
5323}
5324 YY_BREAK
5325case 215:
5327#line 2302 "dhcp6_lexer.ll"
5328{
5329 return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
5330}
5331 YY_BREAK
5332case 216:
5334#line 2306 "dhcp6_lexer.ll"
5335driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
5336 YY_BREAK
5337case 217:
5339#line 2308 "dhcp6_lexer.ll"
5340driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
5341 YY_BREAK
5342case 218:
5344#line 2310 "dhcp6_lexer.ll"
5345driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
5346 YY_BREAK
5347case 219:
5349#line 2312 "dhcp6_lexer.ll"
5350driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
5351 YY_BREAK
5352case YY_STATE_EOF(INITIAL):
5353#line 2314 "dhcp6_lexer.ll"
5354{
5355 if (driver.states_.empty()) {
5356 return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
5357 }
5358 driver.loc_ = driver.locs_.back();
5359 driver.locs_.pop_back();
5360 driver.file_ = driver.files_.back();
5361 driver.files_.pop_back();
5362 if (driver.sfile_) {
5363 fclose(driver.sfile_);
5364 driver.sfile_ = 0;
5365 }
5366 if (!driver.sfiles_.empty()) {
5367 driver.sfile_ = driver.sfiles_.back();
5368 driver.sfiles_.pop_back();
5369 }
5370 parser6__delete_buffer(YY_CURRENT_BUFFER);
5371 parser6__switch_to_buffer(driver.states_.back());
5372 driver.states_.pop_back();
5373
5374 BEGIN(DIR_EXIT);
5375}
5376 YY_BREAK
5377case 220:
5379#line 2337 "dhcp6_lexer.ll"
5380ECHO;
5381 YY_BREAK
5382#line 5382 "dhcp6_lexer.cc"
5383
5384 case YY_END_OF_BUFFER:
5385 {
5386 /* Amount of text matched not including the EOB char. */
5387 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5388
5389 /* Undo the effects of YY_DO_BEFORE_ACTION. */
5390 *yy_cp = (yy_hold_char);
5392
5393 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5394 {
5395 /* We're scanning a new file or input source. It's
5396 * possible that this happened because the user
5397 * just pointed yyin at a new source and called
5398 * yylex(). If so, then we have to assure
5399 * consistency between YY_CURRENT_BUFFER and our
5400 * globals. Here is the right place to do so, because
5401 * this is the first action (other than possibly a
5402 * back-up) that will match for the new input source.
5403 */
5404 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5405/* %if-c-only */
5406 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
5407/* %endif */
5408/* %if-c++-only */
5409/* %endif */
5410 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5411 }
5412
5413 /* Note that here we test for yy_c_buf_p "<=" to the position
5414 * of the first EOB in the buffer, since yy_c_buf_p will
5415 * already have been incremented past the NUL character
5416 * (since all states make transitions on EOB to the
5417 * end-of-buffer state). Contrast this with the test
5418 * in input().
5419 */
5420 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5421 { /* This was really a NUL. */
5422 yy_state_type yy_next_state;
5423
5424 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5425
5426 yy_current_state = yy_get_previous_state( );
5427
5428 /* Okay, we're now positioned to make the NUL
5429 * transition. We couldn't have
5430 * yy_get_previous_state() go ahead and do it
5431 * for us because it doesn't know how to deal
5432 * with the possibility of jamming (and we don't
5433 * want to build jamming into it because then it
5434 * will run more slowly).
5435 */
5436
5437 yy_next_state = yy_try_NUL_trans( yy_current_state );
5438
5440
5441 if ( yy_next_state )
5442 {
5443 /* Consume the NUL. */
5444 yy_cp = ++(yy_c_buf_p);
5445 yy_current_state = yy_next_state;
5446 goto yy_match;
5447 }
5448
5449 else
5450 {
5451/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
5452 yy_cp = (yy_last_accepting_cpos);
5453 yy_current_state = (yy_last_accepting_state);
5454 goto yy_find_action;
5455 }
5456 }
5457
5458 else switch ( yy_get_next_buffer( ) )
5459 {
5461 {
5462 (yy_did_buffer_switch_on_eof) = 0;
5463
5464 if ( yywrap( ) )
5465 {
5466 /* Note: because we've taken care in
5467 * yy_get_next_buffer() to have set up
5468 * yytext, we can now set up
5469 * yy_c_buf_p so that if some total
5470 * hoser (like flex itself) wants to
5471 * call the scanner after we return the
5472 * YY_NULL, it'll still work - another
5473 * YY_NULL will get returned.
5474 */
5475 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5476
5478 goto do_action;
5479 }
5480
5481 else
5482 {
5483 if ( ! (yy_did_buffer_switch_on_eof) )
5485 }
5486 break;
5487 }
5488
5490 (yy_c_buf_p) =
5491 (yytext_ptr) + yy_amount_of_matched_text;
5492
5493 yy_current_state = yy_get_previous_state( );
5494
5495 yy_cp = (yy_c_buf_p);
5497 goto yy_match;
5498
5499 case EOB_ACT_LAST_MATCH:
5500 (yy_c_buf_p) =
5501 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5502
5503 yy_current_state = yy_get_previous_state( );
5504
5505 yy_cp = (yy_c_buf_p);
5507 goto yy_find_action;
5508 }
5509 break;
5510 }
5511
5512 default:
5514 "fatal flex scanner internal error--no action found" );
5515 } /* end of action switch */
5516 } /* end of scanning one token */
5517 } /* end of user's declarations */
5518} /* end of yylex */
5519/* %ok-for-header */
5520
5521/* %if-c++-only */
5522/* %not-for-header */
5523/* %ok-for-header */
5524
5525/* %endif */
5526
5527/* yy_get_next_buffer - try to read in a new buffer
5528 *
5529 * Returns a code representing an action:
5530 * EOB_ACT_LAST_MATCH -
5531 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5532 * EOB_ACT_END_OF_FILE - end of file
5533 */
5534/* %if-c-only */
5535static int yy_get_next_buffer (void)
5536/* %endif */
5537/* %if-c++-only */
5538/* %endif */
5539{
5540 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5541 char *source = (yytext_ptr);
5542 int number_to_move, i;
5543 int ret_val;
5544
5545 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
5547 "fatal flex scanner internal error--end of buffer missed" );
5548
5549 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
5550 { /* Don't try to fill the buffer, so this is an EOF. */
5551 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
5552 {
5553 /* We matched a single character, the EOB, so
5554 * treat this as a final EOF.
5555 */
5556 return EOB_ACT_END_OF_FILE;
5557 }
5558
5559 else
5560 {
5561 /* We matched some text prior to the EOB, first
5562 * process it.
5563 */
5564 return EOB_ACT_LAST_MATCH;
5565 }
5566 }
5567
5568 /* Try to read more data. */
5569
5570 /* First move last chars to start of buffer. */
5571 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
5572
5573 for ( i = 0; i < number_to_move; ++i )
5574 *(dest++) = *(source++);
5575
5576 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
5577 /* don't do the read, it's not guaranteed to return an EOF,
5578 * just force an EOF
5579 */
5580 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
5581
5582 else
5583 {
5584 int num_to_read =
5585 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
5586
5587 while ( num_to_read <= 0 )
5588 { /* Not enough room in the buffer - grow it. */
5589
5590 /* just a shorter name for the current buffer */
5592
5593 int yy_c_buf_p_offset =
5594 (int) ((yy_c_buf_p) - b->yy_ch_buf);
5595
5596 if ( b->yy_is_our_buffer )
5597 {
5598 int new_size = b->yy_buf_size * 2;
5599
5600 if ( new_size <= 0 )
5601 b->yy_buf_size += b->yy_buf_size / 8;
5602 else
5603 b->yy_buf_size *= 2;
5604
5605 b->yy_ch_buf = (char *)
5606 /* Include room in for 2 EOB chars. */
5607 yyrealloc( (void *) b->yy_ch_buf,
5608 (yy_size_t) (b->yy_buf_size + 2) );
5609 }
5610 else
5611 /* Can't grow it, we don't own it. */
5612 b->yy_ch_buf = NULL;
5613
5614 if ( ! b->yy_ch_buf )
5616 "fatal error - scanner input buffer overflow" );
5617
5618 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
5619
5620 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
5621 number_to_move - 1;
5622
5623 }
5624
5625 if ( num_to_read > YY_READ_BUF_SIZE )
5626 num_to_read = YY_READ_BUF_SIZE;
5627
5628 /* Read in more data. */
5629 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
5630 (yy_n_chars), num_to_read );
5631
5632 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5633 }
5634
5635 if ( (yy_n_chars) == 0 )
5636 {
5637 if ( number_to_move == YY_MORE_ADJ )
5638 {
5639 ret_val = EOB_ACT_END_OF_FILE;
5640 yyrestart( yyin );
5641 }
5642
5643 else
5644 {
5645 ret_val = EOB_ACT_LAST_MATCH;
5646 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
5648 }
5649 }
5650
5651 else
5652 ret_val = EOB_ACT_CONTINUE_SCAN;
5653
5654 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
5655 /* Extend the array by 50%, plus the number we really need. */
5656 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
5657 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
5658 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
5659 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
5660 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
5661 /* "- 2" to take care of EOB's */
5662 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
5663 }
5664
5665 (yy_n_chars) += number_to_move;
5666 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
5667 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
5668
5669 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
5670
5671 return ret_val;
5672}
5673
5674/* yy_get_previous_state - get the state just before the EOB char was reached */
5675
5676/* %if-c-only */
5677/* %not-for-header */
5678 static yy_state_type yy_get_previous_state (void)
5679/* %endif */
5680/* %if-c++-only */
5681/* %endif */
5682{
5683 yy_state_type yy_current_state;
5684 char *yy_cp;
5685
5686/* %% [15.0] code to get the start state into yy_current_state goes here */
5687 yy_current_state = (yy_start);
5688
5689 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
5690 {
5691/* %% [16.0] code to find the next state goes here */
5692 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
5693 if ( yy_accept[yy_current_state] )
5694 {
5695 (yy_last_accepting_state) = yy_current_state;
5696 (yy_last_accepting_cpos) = yy_cp;
5697 }
5698 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5699 {
5700 yy_current_state = (int) yy_def[yy_current_state];
5701 if ( yy_current_state >= 2042 )
5702 yy_c = yy_meta[yy_c];
5703 }
5704 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5705 }
5706
5707 return yy_current_state;
5708}
5709
5710/* yy_try_NUL_trans - try to make a transition on the NUL character
5711 *
5712 * synopsis
5713 * next_state = yy_try_NUL_trans( current_state );
5714 */
5715/* %if-c-only */
5716 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
5717/* %endif */
5718/* %if-c++-only */
5719/* %endif */
5720{
5721 int yy_is_jam;
5722 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
5723 char *yy_cp = (yy_c_buf_p);
5724
5725 YY_CHAR yy_c = 1;
5726 if ( yy_accept[yy_current_state] )
5727 {
5728 (yy_last_accepting_state) = yy_current_state;
5729 (yy_last_accepting_cpos) = yy_cp;
5730 }
5731 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5732 {
5733 yy_current_state = (int) yy_def[yy_current_state];
5734 if ( yy_current_state >= 2042 )
5735 yy_c = yy_meta[yy_c];
5736 }
5737 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5738 yy_is_jam = (yy_current_state == 2041);
5739
5740 return yy_is_jam ? 0 : yy_current_state;
5741}
5742
5743#ifndef YY_NO_UNPUT
5744/* %if-c-only */
5745
5746/* %endif */
5747#endif
5748
5749/* %if-c-only */
5750#ifndef YY_NO_INPUT
5751#ifdef __cplusplus
5752 static int yyinput (void)
5753#else
5754 static int input (void)
5755#endif
5756
5757/* %endif */
5758/* %if-c++-only */
5759/* %endif */
5760{
5761 int c;
5762
5763 *(yy_c_buf_p) = (yy_hold_char);
5764
5765 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
5766 {
5767 /* yy_c_buf_p now points to the character we want to return.
5768 * If this occurs *before* the EOB characters, then it's a
5769 * valid NUL; if not, then we've hit the end of the buffer.
5770 */
5771 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5772 /* This was really a NUL. */
5773 *(yy_c_buf_p) = '\0';
5774
5775 else
5776 { /* need more input */
5777 int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
5778 ++(yy_c_buf_p);
5779
5780 switch ( yy_get_next_buffer( ) )
5781 {
5782 case EOB_ACT_LAST_MATCH:
5783 /* This happens because yy_g_n_b()
5784 * sees that we've accumulated a
5785 * token and flags that we need to
5786 * try matching the token before
5787 * proceeding. But for input(),
5788 * there's no matching to consider.
5789 * So convert the EOB_ACT_LAST_MATCH
5790 * to EOB_ACT_END_OF_FILE.
5791 */
5792
5793 /* Reset buffer status. */
5794 yyrestart( yyin );
5795
5796 /*FALLTHROUGH*/
5797
5799 {
5800 if ( yywrap( ) )
5801 return 0;
5802
5803 if ( ! (yy_did_buffer_switch_on_eof) )
5805#ifdef __cplusplus
5806 return yyinput();
5807#else
5808 return input();
5809#endif
5810 }
5811
5813 (yy_c_buf_p) = (yytext_ptr) + offset;
5814 break;
5815 }
5816 }
5817 }
5818
5819 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
5820 *(yy_c_buf_p) = '\0'; /* preserve yytext */
5821 (yy_hold_char) = *++(yy_c_buf_p);
5822
5823/* %% [19.0] update BOL and yylineno */
5824
5825 return c;
5826}
5827/* %if-c-only */
5828#endif /* ifndef YY_NO_INPUT */
5829/* %endif */
5830
5836/* %if-c-only */
5837 void yyrestart (FILE * input_file )
5838/* %endif */
5839/* %if-c++-only */
5840/* %endif */
5841{
5842
5843 if ( ! YY_CURRENT_BUFFER ){
5847 }
5848
5849 yy_init_buffer( YY_CURRENT_BUFFER, input_file );
5851}
5852
5853/* %if-c++-only */
5854/* %endif */
5855
5860/* %if-c-only */
5862/* %endif */
5863/* %if-c++-only */
5864/* %endif */
5865{
5866
5867 /* TODO. We should be able to replace this entire function body
5868 * with
5869 * yypop_buffer_state();
5870 * yypush_buffer_state(new_buffer);
5871 */
5873 if ( YY_CURRENT_BUFFER == new_buffer )
5874 return;
5875
5876 if ( YY_CURRENT_BUFFER )
5877 {
5878 /* Flush out information for old buffer. */
5879 *(yy_c_buf_p) = (yy_hold_char);
5880 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
5881 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5882 }
5883
5884 YY_CURRENT_BUFFER_LVALUE = new_buffer;
5886
5887 /* We don't actually know whether we did this switch during
5888 * EOF (yywrap()) processing, but the only time this flag
5889 * is looked at is after yywrap() is called, so it's safe
5890 * to go ahead and always set it.
5891 */
5892 (yy_did_buffer_switch_on_eof) = 1;
5893}
5894
5895/* %if-c-only */
5896static void yy_load_buffer_state (void)
5897/* %endif */
5898/* %if-c++-only */
5899/* %endif */
5900{
5901 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5902 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
5903/* %if-c-only */
5904 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
5905/* %endif */
5906/* %if-c++-only */
5907/* %endif */
5908 (yy_hold_char) = *(yy_c_buf_p);
5909}
5910
5917/* %if-c-only */
5918 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
5919/* %endif */
5920/* %if-c++-only */
5921/* %endif */
5922{
5924
5925 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
5926 if ( ! b )
5927 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5928
5929 b->yy_buf_size = size;
5930
5931 /* yy_ch_buf has to be 2 characters longer than the size given because
5932 * we need to put in 2 end-of-buffer characters.
5933 */
5934 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
5935 if ( ! b->yy_ch_buf )
5936 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5937
5938 b->yy_is_our_buffer = 1;
5939
5940 yy_init_buffer( b, file );
5941
5942 return b;
5943}
5944
5945/* %if-c++-only */
5946/* %endif */
5947
5952/* %if-c-only */
5954/* %endif */
5955/* %if-c++-only */
5956/* %endif */
5957{
5958
5959 if ( ! b )
5960 return;
5961
5962 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
5964
5965 if ( b->yy_is_our_buffer )
5966 yyfree( (void *) b->yy_ch_buf );
5967
5968 yyfree( (void *) b );
5969}
5970
5971/* Initializes or reinitializes a buffer.
5972 * This function is sometimes called more than once on the same buffer,
5973 * such as during a yyrestart() or at EOF.
5974 */
5975/* %if-c-only */
5976 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
5977/* %endif */
5978/* %if-c++-only */
5979/* %endif */
5980
5981{
5982 int oerrno = errno;
5983
5984 yy_flush_buffer( b );
5985
5986/* %if-c-only */
5987 b->yy_input_file = file;
5988/* %endif */
5989/* %if-c++-only */
5990/* %endif */
5991 b->yy_fill_buffer = 1;
5992
5993 /* If b is the current buffer, then yy_init_buffer was _probably_
5994 * called from yyrestart() or through yy_get_next_buffer.
5995 * In that case, we don't want to reset the lineno or column.
5996 */
5997 if (b != YY_CURRENT_BUFFER){
5998 b->yy_bs_lineno = 1;
5999 b->yy_bs_column = 0;
6000 }
6001
6002/* %if-c-only */
6003
6004 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
6005
6006/* %endif */
6007/* %if-c++-only */
6008/* %endif */
6009 errno = oerrno;
6010}
6011
6016/* %if-c-only */
6018/* %endif */
6019/* %if-c++-only */
6020/* %endif */
6021{
6022 if ( ! b )
6023 return;
6024
6025 b->yy_n_chars = 0;
6026
6027 /* We always need two end-of-buffer characters. The first causes
6028 * a transition to the end-of-buffer state. The second causes
6029 * a jam in that state.
6030 */
6033
6034 b->yy_buf_pos = &b->yy_ch_buf[0];
6035
6036 b->yy_at_bol = 1;
6038
6039 if ( b == YY_CURRENT_BUFFER )
6041}
6042
6043/* %if-c-or-c++ */
6050/* %if-c-only */
6052/* %endif */
6053/* %if-c++-only */
6054/* %endif */
6055{
6056 if (new_buffer == NULL)
6057 return;
6058
6060
6061 /* This block is copied from yy_switch_to_buffer. */
6062 if ( YY_CURRENT_BUFFER )
6063 {
6064 /* Flush out information for old buffer. */
6065 *(yy_c_buf_p) = (yy_hold_char);
6066 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6067 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6068 }
6069
6070 /* Only push if top exists. Otherwise, replace top. */
6072 (yy_buffer_stack_top)++;
6073 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6074
6075 /* copied from yy_switch_to_buffer. */
6077 (yy_did_buffer_switch_on_eof) = 1;
6078}
6079/* %endif */
6080
6081/* %if-c-or-c++ */
6086/* %if-c-only */
6087void yypop_buffer_state (void)
6088/* %endif */
6089/* %if-c++-only */
6090/* %endif */
6091{
6092 if (!YY_CURRENT_BUFFER)
6093 return;
6094
6097 if ((yy_buffer_stack_top) > 0)
6098 --(yy_buffer_stack_top);
6099
6100 if (YY_CURRENT_BUFFER) {
6102 (yy_did_buffer_switch_on_eof) = 1;
6103 }
6104}
6105/* %endif */
6106
6107/* %if-c-or-c++ */
6108/* Allocates the stack if it does not exist.
6109 * Guarantees space for at least one push.
6110 */
6111/* %if-c-only */
6112static void yyensure_buffer_stack (void)
6113/* %endif */
6114/* %if-c++-only */
6115/* %endif */
6116{
6117 yy_size_t num_to_alloc;
6118
6119 if (!(yy_buffer_stack)) {
6120
6121 /* First allocation is just for 2 elements, since we don't know if this
6122 * scanner will even need a stack. We use 2 instead of 1 to avoid an
6123 * immediate realloc on the next call.
6124 */
6125 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
6126 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
6127 (num_to_alloc * sizeof(struct yy_buffer_state*)
6128 );
6129 if ( ! (yy_buffer_stack) )
6130 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6131
6132 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6133
6134 (yy_buffer_stack_max) = num_to_alloc;
6135 (yy_buffer_stack_top) = 0;
6136 return;
6137 }
6138
6139 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6140
6141 /* Increase the buffer to prepare for a possible push. */
6142 yy_size_t grow_size = 8 /* arbitrary grow size */;
6143
6144 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6145 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
6146 ((yy_buffer_stack),
6147 num_to_alloc * sizeof(struct yy_buffer_state*)
6148 );
6149 if ( ! (yy_buffer_stack) )
6150 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6151
6152 /* zero only the new slots.*/
6153 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6154 (yy_buffer_stack_max) = num_to_alloc;
6155 }
6156}
6157/* %endif */
6158
6159/* %if-c-only */
6167{
6169
6170 if ( size < 2 ||
6171 base[size-2] != YY_END_OF_BUFFER_CHAR ||
6172 base[size-1] != YY_END_OF_BUFFER_CHAR )
6173 /* They forgot to leave room for the EOB's. */
6174 return NULL;
6175
6176 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6177 if ( ! b )
6178 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
6179
6180 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
6181 b->yy_buf_pos = b->yy_ch_buf = base;
6182 b->yy_is_our_buffer = 0;
6183 b->yy_input_file = NULL;
6184 b->yy_n_chars = b->yy_buf_size;
6185 b->yy_is_interactive = 0;
6186 b->yy_at_bol = 1;
6187 b->yy_fill_buffer = 0;
6189
6191
6192 return b;
6193}
6194/* %endif */
6195
6196/* %if-c-only */
6205YY_BUFFER_STATE yy_scan_string (const char * yystr )
6206{
6207
6208 return yy_scan_bytes( yystr, (int) strlen(yystr) );
6209}
6210/* %endif */
6211
6212/* %if-c-only */
6220YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
6221{
6223 char *buf;
6224 yy_size_t n;
6225 int i;
6226
6227 /* Get memory for full buffer, including space for trailing EOB's. */
6228 n = (yy_size_t) (_yybytes_len + 2);
6229 buf = (char *) yyalloc( n );
6230 if ( ! buf )
6231 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
6232
6233 for ( i = 0; i < _yybytes_len; ++i )
6234 buf[i] = yybytes[i];
6235
6236 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6237
6238 b = yy_scan_buffer( buf, n );
6239 if ( ! b )
6240 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
6241
6242 /* It's okay to grow etc. this buffer, and we should throw it
6243 * away when we're done.
6244 */
6245 b->yy_is_our_buffer = 1;
6246
6247 return b;
6248}
6249/* %endif */
6250
6251#ifndef YY_EXIT_FAILURE
6252#define YY_EXIT_FAILURE 2
6253#endif
6254
6255/* %if-c-only */
6256static void yynoreturn yy_fatal_error (const char* msg )
6257{
6258 fprintf( stderr, "%s\n", msg );
6259 exit( YY_EXIT_FAILURE );
6260}
6261/* %endif */
6262/* %if-c++-only */
6263/* %endif */
6264
6265/* Redefine yyless() so it works in section 3 code. */
6266
6267#undef yyless
6268#define yyless(n) \
6269 do \
6270 { \
6271 /* Undo effects of setting up yytext. */ \
6272 int yyless_macro_arg = (n); \
6273 YY_LESS_LINENO(yyless_macro_arg);\
6274 yytext[yyleng] = (yy_hold_char); \
6275 (yy_c_buf_p) = yytext + yyless_macro_arg; \
6276 (yy_hold_char) = *(yy_c_buf_p); \
6277 *(yy_c_buf_p) = '\0'; \
6278 yyleng = yyless_macro_arg; \
6279 } \
6280 while ( 0 )
6281
6282/* Accessor methods (get/set functions) to struct members. */
6283
6284/* %if-c-only */
6285/* %if-reentrant */
6286/* %endif */
6287
6291int yyget_lineno (void)
6292{
6293
6294 return yylineno;
6295}
6296
6300FILE *yyget_in (void)
6301{
6302 return yyin;
6303}
6304
6308FILE *yyget_out (void)
6309{
6310 return yyout;
6311}
6312
6316int yyget_leng (void)
6317{
6318 return yyleng;
6319}
6320
6325char *yyget_text (void)
6326{
6327 return yytext;
6328}
6329
6330/* %if-reentrant */
6331/* %endif */
6332
6337void yyset_lineno (int _line_number )
6338{
6339
6340 yylineno = _line_number;
6341}
6342
6349void yyset_in (FILE * _in_str )
6350{
6351 yyin = _in_str ;
6352}
6353
6354void yyset_out (FILE * _out_str )
6355{
6356 yyout = _out_str ;
6357}
6358
6359int yyget_debug (void)
6360{
6361 return yy_flex_debug;
6362}
6363
6364void yyset_debug (int _bdebug )
6365{
6366 yy_flex_debug = _bdebug ;
6367}
6368
6369/* %endif */
6370
6371/* %if-reentrant */
6372/* %if-bison-bridge */
6373/* %endif */
6374/* %endif if-c-only */
6375
6376/* %if-c-only */
6377static int yy_init_globals (void)
6378{
6379 /* Initialization is the same as for the non-reentrant scanner.
6380 * This function is called from yylex_destroy(), so don't allocate here.
6381 */
6382
6383 (yy_buffer_stack) = NULL;
6384 (yy_buffer_stack_top) = 0;
6385 (yy_buffer_stack_max) = 0;
6386 (yy_c_buf_p) = NULL;
6387 (yy_init) = 0;
6388 (yy_start) = 0;
6389
6390/* Defined in main.c */
6391#ifdef YY_STDINIT
6392 yyin = stdin;
6393 yyout = stdout;
6394#else
6395 yyin = NULL;
6396 yyout = NULL;
6397#endif
6398
6399 /* For future reference: Set errno on error, since we are called by
6400 * yylex_init()
6401 */
6402 return 0;
6403}
6404/* %endif */
6405
6406/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
6407/* yylex_destroy is for both reentrant and non-reentrant scanners. */
6408int yylex_destroy (void)
6409{
6410
6411 /* Pop the buffer stack, destroying each element. */
6412 while(YY_CURRENT_BUFFER){
6416 }
6417
6418 /* Destroy the stack itself. */
6419 yyfree((yy_buffer_stack) );
6420 (yy_buffer_stack) = NULL;
6421
6422 /* Reset the globals. This is important in a non-reentrant scanner so the next time
6423 * yylex() is called, initialization will occur. */
6424 yy_init_globals( );
6425
6426/* %if-reentrant */
6427/* %endif */
6428 return 0;
6429}
6430/* %endif */
6431
6432/*
6433 * Internal utility routines.
6434 */
6435
6436#ifndef yytext_ptr
6437static void yy_flex_strncpy (char* s1, const char * s2, int n )
6438{
6439
6440 int i;
6441 for ( i = 0; i < n; ++i )
6442 s1[i] = s2[i];
6443}
6444#endif
6445
6446#ifdef YY_NEED_STRLEN
6447static int yy_flex_strlen (const char * s )
6448{
6449 int n;
6450 for ( n = 0; s[n]; ++n )
6451 ;
6452
6453 return n;
6454}
6455#endif
6456
6457void *yyalloc (yy_size_t size )
6458{
6459 return malloc(size);
6460}
6461
6462void *yyrealloc (void * ptr, yy_size_t size )
6463{
6464
6465 /* The cast to (char *) in the following accommodates both
6466 * implementations that use char* generic pointers, and those
6467 * that use void* generic pointers. It works with the latter
6468 * because both ANSI C and C++ allow castless assignment from
6469 * any pointer type to void*, and deal with argument conversions
6470 * as though doing an assignment.
6471 */
6472 return realloc(ptr, size);
6473}
6474
6475void yyfree (void * ptr )
6476{
6477 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
6478}
6479
6480/* %if-tables-serialization definitions */
6481/* %define-yytables The name for this specific scanner's tables. */
6482#define YYTABLES_NAME "yytables"
6483/* %endif */
6484
6485/* %ok-for-header */
6486
6487#line 2337 "dhcp6_lexer.ll"
6488
6489
6490using namespace isc::dhcp;
6491
6492void
6493Parser6Context::scanStringBegin(const std::string& str, ParserType parser_type)
6494{
6495 start_token_flag = true;
6496 start_token_value = parser_type;
6497
6498 file_ = "<string>";
6499 sfile_ = 0;
6500 loc_.initialize(&file_);
6501 yy_flex_debug = trace_scanning_;
6502 YY_BUFFER_STATE buffer;
6503 buffer = parser6__scan_bytes(str.c_str(), str.size());
6504 if (!buffer) {
6505 fatal("cannot scan string");
6506 /* fatal() throws an exception so this can't be reached */
6507 }
6508}
6509
6510void
6512 const std::string& filename,
6513 ParserType parser_type)
6514{
6515 start_token_flag = true;
6516 start_token_value = parser_type;
6517
6518 file_ = filename;
6519 sfile_ = f;
6520 loc_.initialize(&file_);
6521 yy_flex_debug = trace_scanning_;
6522 YY_BUFFER_STATE buffer;
6523
6524 /* See dhcp6_lexer.cc header for available definitions */
6525 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
6526 if (!buffer) {
6527 fatal("cannot scan file " + filename);
6528 }
6529 parser6__switch_to_buffer(buffer);
6530}
6531
6532void
6534 if (sfile_)
6535 fclose(sfile_);
6536 sfile_ = 0;
6537 static_cast<void>(parser6_lex_destroy());
6538 /* Close files */
6539 while (!sfiles_.empty()) {
6540 FILE* f = sfiles_.back();
6541 if (f) {
6542 fclose(f);
6543 }
6544 sfiles_.pop_back();
6545 }
6546 /* Delete states */
6547 while (!states_.empty()) {
6548 parser6__delete_buffer(states_.back());
6549 states_.pop_back();
6550 }
6551}
6552
6553void
6554Parser6Context::includeFile(const std::string& filename) {
6555 if (states_.size() > 10) {
6556 fatal("Too many nested include.");
6557 }
6558
6559 FILE* f = fopen(filename.c_str(), "r");
6560 if (!f) {
6561 fatal("Can't open include file " + filename);
6562 }
6563 if (sfile_) {
6564 sfiles_.push_back(sfile_);
6565 }
6566 sfile_ = f;
6567 states_.push_back(YY_CURRENT_BUFFER);
6568 YY_BUFFER_STATE buffer;
6569 buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
6570 if (!buffer) {
6571 fatal( "Can't scan include file " + filename);
6572 }
6573 parser6__switch_to_buffer(buffer);
6574 files_.push_back(file_);
6575 file_ = filename;
6576 locs_.push_back(loc_);
6577 loc_.initialize(&file_);
6578
6579 BEGIN(INITIAL);
6580}
6581
6582namespace {
6584class Dummy {
6585 /* cppcheck-suppress unusedPrivateFunction */
6586 void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
6587};
6588}
6589#endif /* !__clang_analyzer__ */
6590
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_PARKED_PACKET_LIMIT(const location_type &l)
static symbol_type make_LFC_INTERVAL(const location_type &l)
static symbol_type make_USER(const location_type &l)
static symbol_type make_SUBNET(const location_type &l)
static symbol_type make_RECORD_TYPES(const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
static symbol_type make_RECONNECT_WAIT_TIME(const location_type &l)
static symbol_type make_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