Kea 3.3.1
dhcp4_lexer.cc
Go to the documentation of this file.
1#line 1 "dhcp4_lexer.cc"
2
3#line 3 "dhcp4_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 parser4__create_buffer
13#define yy_delete_buffer parser4__delete_buffer
14#define yy_scan_buffer parser4__scan_buffer
15#define yy_scan_string parser4__scan_string
16#define yy_scan_bytes parser4__scan_bytes
17#define yy_init_buffer parser4__init_buffer
18#define yy_flush_buffer parser4__flush_buffer
19#define yy_load_buffer_state parser4__load_buffer_state
20#define yy_switch_to_buffer parser4__switch_to_buffer
21#define yypush_buffer_state parser4_push_buffer_state
22#define yypop_buffer_state parser4_pop_buffer_state
23#define yyensure_buffer_stack parser4_ensure_buffer_stack
24#define yy_flex_debug parser4__flex_debug
25#define yyin parser4_in
26#define yyleng parser4_leng
27#define yylex parser4_lex
28#define yylineno parser4_lineno
29#define yyout parser4_out
30#define yyrestart parser4_restart
31#define yytext parser4_text
32#define yywrap parser4_wrap
33#define yyalloc parser4_alloc
34#define yyrealloc parser4_realloc
35#define yyfree parser4_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 parser4__create_buffer_ALREADY_DEFINED
55#else
56#define yy_create_buffer parser4__create_buffer
57#endif
58
59#ifdef yy_delete_buffer
60#define parser4__delete_buffer_ALREADY_DEFINED
61#else
62#define yy_delete_buffer parser4__delete_buffer
63#endif
64
65#ifdef yy_scan_buffer
66#define parser4__scan_buffer_ALREADY_DEFINED
67#else
68#define yy_scan_buffer parser4__scan_buffer
69#endif
70
71#ifdef yy_scan_string
72#define parser4__scan_string_ALREADY_DEFINED
73#else
74#define yy_scan_string parser4__scan_string
75#endif
76
77#ifdef yy_scan_bytes
78#define parser4__scan_bytes_ALREADY_DEFINED
79#else
80#define yy_scan_bytes parser4__scan_bytes
81#endif
82
83#ifdef yy_init_buffer
84#define parser4__init_buffer_ALREADY_DEFINED
85#else
86#define yy_init_buffer parser4__init_buffer
87#endif
88
89#ifdef yy_flush_buffer
90#define parser4__flush_buffer_ALREADY_DEFINED
91#else
92#define yy_flush_buffer parser4__flush_buffer
93#endif
94
95#ifdef yy_load_buffer_state
96#define parser4__load_buffer_state_ALREADY_DEFINED
97#else
98#define yy_load_buffer_state parser4__load_buffer_state
99#endif
100
101#ifdef yy_switch_to_buffer
102#define parser4__switch_to_buffer_ALREADY_DEFINED
103#else
104#define yy_switch_to_buffer parser4__switch_to_buffer
105#endif
106
107#ifdef yypush_buffer_state
108#define parser4_push_buffer_state_ALREADY_DEFINED
109#else
110#define yypush_buffer_state parser4_push_buffer_state
111#endif
112
113#ifdef yypop_buffer_state
114#define parser4_pop_buffer_state_ALREADY_DEFINED
115#else
116#define yypop_buffer_state parser4_pop_buffer_state
117#endif
118
119#ifdef yyensure_buffer_stack
120#define parser4_ensure_buffer_stack_ALREADY_DEFINED
121#else
122#define yyensure_buffer_stack parser4_ensure_buffer_stack
123#endif
124
125#ifdef yylex
126#define parser4_lex_ALREADY_DEFINED
127#else
128#define yylex parser4_lex
129#endif
130
131#ifdef yyrestart
132#define parser4_restart_ALREADY_DEFINED
133#else
134#define yyrestart parser4_restart
135#endif
136
137#ifdef yylex_init
138#define parser4_lex_init_ALREADY_DEFINED
139#else
140#define yylex_init parser4_lex_init
141#endif
142
143#ifdef yylex_init_extra
144#define parser4_lex_init_extra_ALREADY_DEFINED
145#else
146#define yylex_init_extra parser4_lex_init_extra
147#endif
148
149#ifdef yylex_destroy
150#define parser4_lex_destroy_ALREADY_DEFINED
151#else
152#define yylex_destroy parser4_lex_destroy
153#endif
154
155#ifdef yyget_debug
156#define parser4_get_debug_ALREADY_DEFINED
157#else
158#define yyget_debug parser4_get_debug
159#endif
160
161#ifdef yyset_debug
162#define parser4_set_debug_ALREADY_DEFINED
163#else
164#define yyset_debug parser4_set_debug
165#endif
166
167#ifdef yyget_extra
168#define parser4_get_extra_ALREADY_DEFINED
169#else
170#define yyget_extra parser4_get_extra
171#endif
172
173#ifdef yyset_extra
174#define parser4_set_extra_ALREADY_DEFINED
175#else
176#define yyset_extra parser4_set_extra
177#endif
178
179#ifdef yyget_in
180#define parser4_get_in_ALREADY_DEFINED
181#else
182#define yyget_in parser4_get_in
183#endif
184
185#ifdef yyset_in
186#define parser4_set_in_ALREADY_DEFINED
187#else
188#define yyset_in parser4_set_in
189#endif
190
191#ifdef yyget_out
192#define parser4_get_out_ALREADY_DEFINED
193#else
194#define yyget_out parser4_get_out
195#endif
196
197#ifdef yyset_out
198#define parser4_set_out_ALREADY_DEFINED
199#else
200#define yyset_out parser4_set_out
201#endif
202
203#ifdef yyget_leng
204#define parser4_get_leng_ALREADY_DEFINED
205#else
206#define yyget_leng parser4_get_leng
207#endif
208
209#ifdef yyget_text
210#define parser4_get_text_ALREADY_DEFINED
211#else
212#define yyget_text parser4_get_text
213#endif
214
215#ifdef yyget_lineno
216#define parser4_get_lineno_ALREADY_DEFINED
217#else
218#define yyget_lineno parser4_get_lineno
219#endif
220
221#ifdef yyset_lineno
222#define parser4_set_lineno_ALREADY_DEFINED
223#else
224#define yyset_lineno parser4_set_lineno
225#endif
226
227#ifdef yywrap
228#define parser4_wrap_ALREADY_DEFINED
229#else
230#define yywrap parser4_wrap
231#endif
232
233/* %endif */
234
235#ifdef yyalloc
236#define parser4_alloc_ALREADY_DEFINED
237#else
238#define yyalloc parser4_alloc
239#endif
240
241#ifdef yyrealloc
242#define parser4_realloc_ALREADY_DEFINED
243#else
244#define yyrealloc parser4_realloc
245#endif
246
247#ifdef yyfree
248#define parser4_free_ALREADY_DEFINED
249#else
250#define yyfree parser4_free
251#endif
252
253/* %if-c-only */
254
255#ifdef yytext
256#define parser4_text_ALREADY_DEFINED
257#else
258#define yytext parser4_text
259#endif
260
261#ifdef yyleng
262#define parser4_leng_ALREADY_DEFINED
263#else
264#define yyleng parser4_leng
265#endif
266
267#ifdef yyin
268#define parser4_in_ALREADY_DEFINED
269#else
270#define yyin parser4_in
271#endif
272
273#ifdef yyout
274#define parser4_out_ALREADY_DEFINED
275#else
276#define yyout parser4_out
277#endif
278
279#ifdef yy_flex_debug
280#define parser4__flex_debug_ALREADY_DEFINED
281#else
282#define yy_flex_debug parser4__flex_debug
283#endif
284
285#ifdef yylineno
286#define parser4_lineno_ALREADY_DEFINED
287#else
288#define yylineno parser4_lineno
289#endif
290
291/* %endif */
292
293/* First, we deal with platform-specific or compiler-specific issues. */
294
295/* begin standard C headers. */
296/* %if-c-only */
297#include <stdio.h>
298#include <string.h>
299#include <errno.h>
300#include <stdlib.h>
301/* %endif */
302
303/* %if-tables-serialization */
304/* %endif */
305/* end standard C headers. */
306
307/* %if-c-or-c++ */
308/* flex integer type definitions */
309
310#ifndef FLEXINT_H
311#define FLEXINT_H
312
313/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
314
315#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
316
317/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
318 * if you want the limit (max/min) macros for int types.
319 */
320#ifndef __STDC_LIMIT_MACROS
321#define __STDC_LIMIT_MACROS 1
322#endif
323
324#include <inttypes.h>
325typedef int8_t flex_int8_t;
326typedef uint8_t flex_uint8_t;
327typedef int16_t flex_int16_t;
328typedef uint16_t flex_uint16_t;
329typedef int32_t flex_int32_t;
330typedef uint32_t flex_uint32_t;
331#else
332typedef signed char flex_int8_t;
333typedef short int flex_int16_t;
334typedef int flex_int32_t;
335typedef unsigned char flex_uint8_t;
336typedef unsigned short int flex_uint16_t;
337typedef unsigned int flex_uint32_t;
338
339/* Limits of integral types. */
340#ifndef INT8_MIN
341#define INT8_MIN (-128)
342#endif
343#ifndef INT16_MIN
344#define INT16_MIN (-32767-1)
345#endif
346#ifndef INT32_MIN
347#define INT32_MIN (-2147483647-1)
348#endif
349#ifndef INT8_MAX
350#define INT8_MAX (127)
351#endif
352#ifndef INT16_MAX
353#define INT16_MAX (32767)
354#endif
355#ifndef INT32_MAX
356#define INT32_MAX (2147483647)
357#endif
358#ifndef UINT8_MAX
359#define UINT8_MAX (255U)
360#endif
361#ifndef UINT16_MAX
362#define UINT16_MAX (65535U)
363#endif
364#ifndef UINT32_MAX
365#define UINT32_MAX (4294967295U)
366#endif
367
368#ifndef SIZE_MAX
369#define SIZE_MAX (~(size_t)0)
370#endif
371
372#endif /* ! C99 */
373
374#endif /* ! FLEXINT_H */
375
376/* %endif */
377
378/* begin standard C++ headers. */
379/* %if-c++-only */
380/* %endif */
381
382/* TODO: this is always defined, so inline it */
383#define yyconst const
384
385#if defined(__GNUC__) && __GNUC__ >= 3
386#define yynoreturn __attribute__((__noreturn__))
387#else
388#define yynoreturn
389#endif
390
391/* %not-for-header */
392/* Returned upon end-of-file. */
393#define YY_NULL 0
394/* %ok-for-header */
395
396/* %not-for-header */
397/* Promotes a possibly negative, possibly signed char to an
398 * integer in range [0..255] for use as an array index.
399 */
400#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
401/* %ok-for-header */
402
403/* %if-reentrant */
404/* %endif */
405
406/* %if-not-reentrant */
407
408/* %endif */
409
410/* Enter a start condition. This macro really ought to take a parameter,
411 * but we do it the disgusting crufty way forced on us by the ()-less
412 * definition of BEGIN.
413 */
414#define BEGIN (yy_start) = 1 + 2 *
415/* Translate the current start state into a value that can be later handed
416 * to BEGIN to return to the state. The YYSTATE alias is for lex
417 * compatibility.
418 */
419#define YY_START (((yy_start) - 1) / 2)
420#define YYSTATE YY_START
421/* Action number for EOF rule of a given start state. */
422#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
423/* Special action meaning "start processing a new file". */
424#define YY_NEW_FILE yyrestart( yyin )
425#define YY_END_OF_BUFFER_CHAR 0
426
427/* Size of default input buffer. */
428#ifndef YY_BUF_SIZE
429#ifdef __ia64__
430/* On IA-64, the buffer size is 16k, not 8k.
431 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
432 * Ditto for the __ia64__ case accordingly.
433 */
434#define YY_BUF_SIZE 32768
435#else
436#define YY_BUF_SIZE 16384
437#endif /* __ia64__ */
438#endif
439
440/* The state buf must be large enough to hold one state per character in the main buffer.
441 */
442#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
443
444#ifndef YY_TYPEDEF_YY_BUFFER_STATE
445#define YY_TYPEDEF_YY_BUFFER_STATE
447#endif
448
449#ifndef YY_TYPEDEF_YY_SIZE_T
450#define YY_TYPEDEF_YY_SIZE_T
451typedef size_t yy_size_t;
452#endif
453
454/* %if-not-reentrant */
455extern int yyleng;
456/* %endif */
457
458/* %if-c-only */
459/* %if-not-reentrant */
460extern FILE *yyin, *yyout;
461/* %endif */
462/* %endif */
463
464#define EOB_ACT_CONTINUE_SCAN 0
465#define EOB_ACT_END_OF_FILE 1
466#define EOB_ACT_LAST_MATCH 2
467
468 #define YY_LESS_LINENO(n)
469 #define YY_LINENO_REWIND_TO(ptr)
470
471/* Return all but the first "n" matched characters back to the input stream. */
472#define yyless(n) \
473 do \
474 { \
475 /* Undo effects of setting up yytext. */ \
476 int yyless_macro_arg = (n); \
477 YY_LESS_LINENO(yyless_macro_arg);\
478 *yy_cp = (yy_hold_char); \
479 YY_RESTORE_YY_MORE_OFFSET \
480 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
481 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
482 } \
483 while ( 0 )
484#define unput(c) yyunput( c, (yytext_ptr) )
485
486#ifndef YY_STRUCT_YY_BUFFER_STATE
487#define YY_STRUCT_YY_BUFFER_STATE
488struct yy_buffer_state
489 {
490/* %if-c-only */
491 FILE *yy_input_file;
492/* %endif */
493
494/* %if-c++-only */
495/* %endif */
496
497 char *yy_ch_buf; /* input buffer */
498 char *yy_buf_pos; /* current position in input buffer */
499
500 /* Size of input buffer in bytes, not including room for EOB
501 * characters.
502 */
503 int yy_buf_size;
504
505 /* Number of characters read into yy_ch_buf, not including EOB
506 * characters.
507 */
508 int yy_n_chars;
509
510 /* Whether we "own" the buffer - i.e., we know we created it,
511 * and can realloc() it to grow it, and should free() it to
512 * delete it.
513 */
515
516 /* Whether this is an "interactive" input source; if so, and
517 * if we're using stdio for input, then we want to use getc()
518 * instead of fread(), to make sure we stop fetching input after
519 * each newline.
520 */
522
523 /* Whether we're considered to be at the beginning of a line.
524 * If so, '^' rules will be active on the next match, otherwise
525 * not.
526 */
527 int yy_at_bol;
528
529 int yy_bs_lineno;
530 int yy_bs_column;
531
532 /* Whether to try to fill the input buffer when we reach the
533 * end of it.
534 */
535 int yy_fill_buffer;
536
538
539#define YY_BUFFER_NEW 0
540#define YY_BUFFER_NORMAL 1
541 /* When an EOF's been seen but there's still some text to process
542 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
543 * shouldn't try reading from the input source any more. We might
544 * still have a bunch of tokens to match, though, because of
545 * possible backing-up.
546 *
547 * When we actually see the EOF, we change the status to "new"
548 * (via yyrestart()), so that the user can continue scanning by
549 * just pointing yyin at a new input file.
550 */
551#define YY_BUFFER_EOF_PENDING 2
552
553 };
554#endif /* !YY_STRUCT_YY_BUFFER_STATE */
555
556/* %if-c-only Standard (non-C++) definition */
557/* %not-for-header */
558/* %if-not-reentrant */
559
560/* Stack of input buffers. */
561static size_t yy_buffer_stack_top = 0;
562static size_t yy_buffer_stack_max = 0;
563static YY_BUFFER_STATE * yy_buffer_stack = NULL;
564/* %endif */
565/* %ok-for-header */
566
567/* %endif */
568
569/* We provide macros for accessing buffer states in case in the
570 * future we want to put the buffer states in a more general
571 * "scanner state".
572 *
573 * Returns the top of the stack, or NULL.
574 */
575#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
576 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
577 : NULL)
578/* Same as previous macro, but useful when we know that the buffer stack is not
579 * NULL or when we need an lvalue. For internal use only.
580 */
581#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
582
583/* %if-c-only Standard (non-C++) definition */
584
585/* %if-not-reentrant */
586/* %not-for-header */
587/* yy_hold_char holds the character lost when yytext is formed. */
588static char yy_hold_char;
589static int yy_n_chars; /* number of characters read into yy_ch_buf */
591
592/* Points to current character in buffer. */
593static char *yy_c_buf_p = NULL;
594static int yy_init = 0; /* whether we need to initialize */
595static int yy_start = 0; /* start state number */
596
597/* Flag which is used to allow yywrap()'s to do buffer switches
598 * instead of setting up a fresh yyin. A bit of a hack ...
599 */
600static int yy_did_buffer_switch_on_eof;
601/* %ok-for-header */
602
603/* %endif */
604
605void yyrestart ( FILE *input_file );
606void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
607YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
610void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
611void yypop_buffer_state ( void );
612
613static void yyensure_buffer_stack ( void );
614static void yy_load_buffer_state ( void );
615static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
616#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
617
618YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
619YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
620YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
621
622/* %endif */
623
624void *yyalloc ( yy_size_t );
625void *yyrealloc ( void *, yy_size_t );
626void yyfree ( void * );
627
628#define yy_new_buffer yy_create_buffer
629#define yy_set_interactive(is_interactive) \
630 { \
631 if ( ! YY_CURRENT_BUFFER ){ \
632 yyensure_buffer_stack (); \
633 YY_CURRENT_BUFFER_LVALUE = \
634 yy_create_buffer( yyin, YY_BUF_SIZE ); \
635 } \
636 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
637 }
638#define yy_set_bol(at_bol) \
639 { \
640 if ( ! YY_CURRENT_BUFFER ){\
641 yyensure_buffer_stack (); \
642 YY_CURRENT_BUFFER_LVALUE = \
643 yy_create_buffer( yyin, YY_BUF_SIZE ); \
644 } \
645 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
646 }
647#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
648
649/* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
650/* Begin user sect3 */
651
652#define parser4_wrap() (/*CONSTCOND*/1)
653#define YY_SKIP_YYWRAP
654
655#define FLEX_DEBUG
656typedef flex_uint8_t YY_CHAR;
657
658FILE *yyin = NULL, *yyout = NULL;
659
660typedef int yy_state_type;
661
662extern int yylineno;
663int yylineno = 1;
664
665extern char *yytext;
666#ifdef yytext_ptr
667#undef yytext_ptr
668#endif
669#define yytext_ptr yytext
670
671/* %% [1.5] DFA */
672
673/* %if-c-only Standard (non-C++) definition */
674
675static yy_state_type yy_get_previous_state ( void );
676static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
677static int yy_get_next_buffer ( void );
678static void yynoreturn yy_fatal_error ( const char* msg );
679
680/* %endif */
681
682/* Done after the current pattern has been matched and before the
683 * corresponding action - sets up yytext.
684 */
685#define YY_DO_BEFORE_ACTION \
686 (yytext_ptr) = yy_bp; \
687/* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
688 yyleng = (int) (yy_cp - yy_bp); \
689 (yy_hold_char) = *yy_cp; \
690 *yy_cp = '\0'; \
691/* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
692 (yy_c_buf_p) = yy_cp;
693/* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
694#define YY_NUM_RULES 251
695#define YY_END_OF_BUFFER 252
696/* This struct is not used in this scanner,
697 but its presence is necessary. */
698struct yy_trans_info
699 {
701 flex_int32_t yy_nxt;
702 };
703static const flex_int16_t yy_accept[2458] =
704 { 0,
705 244, 244, 0, 0, 0, 0, 0, 0, 0, 0,
706 252, 250, 10, 11, 250, 1, 242, 238, 244, 244,
707 250, 241, 241, 239, 250, 250, 250, 250, 250, 234,
708 235, 250, 250, 250, 236, 237, 5, 5, 5, 250,
709 250, 250, 10, 11, 0, 0, 229, 0, 0, 0,
710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
712 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
713 242, 242, 0, 244, 241, 241, 0, 244, 3, 2,
714 240, 241, 6, 0, 244, 0, 0, 0, 0, 0,
715
716 0, 4, 0, 0, 9, 0, 230, 0, 0, 0,
717 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
718 0, 232, 0, 0, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
725 0, 0, 0, 0, 0, 0, 0, 242, 0, 242,
726
727 2, 243, 240, 0, 0, 0, 0, 0, 0, 0,
728 0, 8, 0, 0, 0, 0, 0, 0, 0, 0,
729 0, 0, 0, 0, 0, 231, 233, 0, 0, 0,
730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
733 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
737
738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
740 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
741 0, 0, 0, 0, 0, 0, 0, 0, 243, 0,
742 0, 243, 0, 249, 247, 0, 246, 245, 0, 0,
743 0, 0, 0, 0, 0, 0, 0, 202, 0, 201,
744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
748
749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
753 0, 0, 18, 0, 0, 0, 0, 0, 0, 0,
754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
756 0, 0, 0, 0, 0, 0, 19, 0, 0, 0,
757 0, 0, 0, 0, 0, 0, 243, 248, 245, 0,
758 0, 0, 0, 0, 0, 0, 203, 0, 0, 205,
759
760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
761 0, 0, 0, 0, 0, 0, 0, 112, 0, 0,
762 0, 0, 0, 0, 98, 0, 0, 0, 0, 0,
763 0, 0, 139, 0, 0, 0, 0, 0, 0, 0,
764 0, 0, 0, 0, 0, 38, 0, 0, 0, 171,
765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
767 0, 97, 0, 0, 0, 0, 0, 0, 0, 0,
768 0, 0, 0, 0, 0, 0, 0, 0, 102, 0,
769 0, 39, 0, 0, 0, 0, 0, 0, 0, 0,
770
771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
773 0, 0, 0, 0, 0, 0, 134, 0, 0, 35,
774 170, 0, 0, 36, 0, 0, 0, 0, 0, 0,
775 0, 0, 0, 0, 12, 207, 206, 0, 0, 0,
776 0, 0, 0, 149, 0, 0, 177, 0, 0, 0,
777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
780 0, 0, 0, 0, 0, 0, 0, 125, 0, 0,
781
782 0, 0, 0, 0, 0, 172, 0, 0, 0, 0,
783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
786 0, 0, 0, 101, 0, 0, 0, 0, 0, 178,
787 0, 0, 0, 0, 150, 0, 0, 0, 0, 0,
788 0, 0, 0, 0, 0, 0, 0, 0, 145, 0,
789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
790 0, 0, 0, 0, 0, 0, 185, 0, 0, 7,
791 0, 0, 208, 0, 0, 0, 0, 0, 0, 0,
792
793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
800 0, 127, 0, 0, 0, 0, 0, 0, 0, 0,
801 0, 0, 0, 0, 123, 0, 0, 0, 0, 0,
802 0, 0, 0, 0, 59, 0, 0, 0, 0, 0,
803
804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
806 0, 106, 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, 0, 0, 0, 180,
810 105, 0, 0, 0, 0, 0, 0, 0, 0, 0,
811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
812 0, 0, 0, 0, 58, 0, 0, 0, 0, 0,
813 0, 0, 0, 0, 0, 143, 0, 0, 0, 0,
814
815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
816 0, 0, 0, 0, 155, 120, 0, 0, 0, 0,
817 0, 0, 126, 0, 0, 0, 0, 0, 0, 0,
818 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
819 0, 128, 40, 103, 0, 0, 0, 0, 0, 0,
820 0, 0, 0, 60, 0, 0, 0, 0, 0, 0,
821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
822 0, 0, 0, 0, 0, 0, 0, 0, 92, 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, 189,
827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828 0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
831 0, 0, 0, 0, 144, 0, 0, 0, 0, 0,
832 0, 0, 0, 0, 56, 0, 0, 0, 0, 0,
833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
835 0, 0, 37, 0, 0, 0, 0, 34, 0, 0,
836
837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
838 0, 0, 0, 0, 0, 0, 129, 0, 0, 0,
839 0, 0, 57, 0, 0, 0, 0, 0, 0, 0,
840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,
842 0, 0, 0, 0, 0, 0, 0, 55, 0, 0,
843 0, 0, 141, 0, 0, 0, 0, 0, 0, 0,
844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
845 0, 0, 190, 0, 0, 0, 179, 0, 0, 0,
846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
847
848 0, 0, 0, 0, 0, 0, 0, 107, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
852 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
853 0, 0, 194, 0, 0, 0, 192, 0, 0, 0,
854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
855 0, 0, 0, 0, 0, 0, 0, 0, 181, 0,
856 61, 0, 0, 0, 212, 0, 0, 0, 0, 0,
857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
858
859 142, 0, 0, 0, 0, 0, 0, 0, 146, 0,
860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
861 124, 0, 0, 0, 0, 0, 0, 0, 0, 0,
862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
863 0, 0, 140, 0, 0, 23, 0, 151, 0, 0,
864 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
865 0, 0, 198, 0, 100, 0, 0, 0, 0, 0,
866 95, 0, 0, 0, 0, 154, 0, 0, 188, 0,
867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
868 0, 0, 0, 0, 70, 0, 0, 0, 0, 0,
869
870 0, 0, 0, 0, 0, 115, 116, 0, 0, 0,
871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
872 0, 0, 0, 0, 99, 0, 0, 0, 0, 0,
873 0, 0, 63, 0, 0, 0, 0, 0, 0, 0,
874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
876 148, 0, 0, 0, 0, 0, 0, 0, 0, 0,
877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
879 216, 0, 0, 0, 96, 0, 0, 0, 0, 0,
880
881 0, 0, 0, 0, 0, 0, 67, 0, 0, 0,
882 0, 0, 195, 0, 0, 193, 0, 0, 0, 173,
883 175, 169, 0, 0, 0, 0, 0, 0, 0, 0,
884 0, 22, 0, 0, 62, 0, 0, 0, 0, 0,
885 0, 204, 0, 0, 0, 0, 0, 0, 0, 0,
886 133, 0, 0, 0, 0, 0, 0, 0, 0, 0,
887 0, 0, 0, 0, 91, 90, 0, 0, 0, 0,
888 0, 0, 163, 0, 0, 0, 187, 0, 0, 0,
889 0, 0, 0, 0, 0, 0, 0, 0, 184, 0,
890 0, 0, 152, 0, 15, 0, 0, 41, 0, 0,
891
892 0, 0, 0, 0, 0, 0, 0, 197, 0, 0,
893 0, 0, 0, 0, 0, 0, 0, 43, 68, 0,
894 0, 147, 0, 138, 0, 0, 0, 0, 0, 0,
895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
896 0, 54, 0, 104, 0, 0, 210, 0, 0, 0,
897 0, 0, 0, 0, 0, 215, 0, 118, 0, 0,
898 183, 0, 222, 0, 0, 0, 0, 0, 0, 0,
899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
901 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
902
903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
904 0, 0, 0, 0, 0, 0, 0, 182, 0, 0,
905 0, 0, 0, 0, 0, 0, 0, 14, 0, 0,
906 0, 0, 0, 0, 0, 0, 0, 0, 0, 135,
907 0, 0, 0, 44, 0, 0, 0, 0, 0, 0,
908 0, 176, 218, 0, 0, 130, 31, 0, 0, 0,
909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
910 0, 0, 0, 0, 0, 213, 0, 191, 0, 0,
911 0, 0, 0, 0, 0, 0, 0, 0, 29, 0,
912 0, 0, 0, 0, 28, 0, 0, 196, 0, 0,
913
914 0, 53, 0, 0, 0, 227, 0, 0, 0, 122,
915 121, 0, 0, 0, 0, 0, 0, 0, 0, 0,
916 0, 0, 0, 0, 0, 0, 0, 174, 0, 0,
917 0, 0, 0, 0, 0, 64, 0, 0, 0, 0,
918 0, 0, 0, 117, 0, 0, 0, 42, 168, 0,
919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
921 153, 0, 0, 0, 30, 0, 0, 0, 0, 0,
922 214, 0, 0, 0, 0, 0, 164, 0, 0, 0,
923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
924
925 21, 0, 0, 217, 0, 94, 0, 0, 48, 0,
926 0, 0, 0, 211, 0, 84, 0, 0, 209, 0,
927 0, 32, 0, 0, 0, 0, 0, 0, 0, 0,
928 88, 0, 0, 0, 0, 17, 0, 0, 0, 0,
929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
930 0, 0, 0, 161, 0, 0, 0, 136, 0, 0,
931 0, 0, 0, 0, 0, 0, 0, 0, 0, 51,
932 0, 49, 0, 0, 0, 0, 0, 45, 166, 0,
933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
934 0, 0, 75, 0, 0, 0, 0, 0, 0, 0,
935
936 0, 0, 0, 0, 0, 0, 0, 199, 0, 0,
937 13, 0, 0, 0, 0, 0, 0, 0, 0, 167,
938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
941 186, 0, 0, 0, 0, 0, 0, 0, 0, 0,
942 0, 0, 0, 0, 0, 160, 0, 66, 65, 0,
943 20, 0, 0, 0, 0, 0, 0, 0, 0, 0,
944 0, 0, 0, 0, 0, 0, 0, 0, 85, 0,
945 0, 114, 0, 0, 0, 0, 0, 0, 0, 0,
946
947 0, 0, 0, 0, 0, 0, 0, 0, 0, 159,
948 0, 0, 0, 0, 0, 0, 52, 0, 71, 0,
949 46, 0, 109, 0, 0, 0, 0, 0, 0, 0,
950 228, 0, 93, 0, 0, 0, 0, 0, 0, 0,
951 0, 0, 0, 0, 81, 0, 0, 0, 0, 0,
952 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
953 0, 0, 0, 0, 0, 0, 50, 0, 0, 0,
954 0, 0, 0, 0, 0, 0, 0, 79, 0, 0,
955 0, 0, 0, 0, 0, 0, 0, 226, 0, 0,
956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
957
958 0, 0, 0, 0, 0, 0, 0, 0, 87, 0,
959 33, 0, 0, 0, 80, 0, 0, 0, 0, 165,
960 0, 0, 0, 0, 0, 0, 0, 220, 223, 0,
961 0, 131, 110, 0, 0, 0, 0, 0, 0, 0,
962 86, 0, 0, 0, 76, 0, 0, 0, 0, 0,
963 0, 0, 0, 0, 0, 0, 137, 157, 0, 0,
964 0, 0, 0, 0, 162, 0, 0, 0, 78, 0,
965 69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
966 111, 0, 0, 0, 0, 0, 0, 0, 0, 0,
967 0, 156, 0, 0, 200, 0, 225, 221, 0, 0,
968
969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
970 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
971 0, 0, 132, 0, 0, 0, 27, 25, 0, 0,
972 0, 0, 0, 82, 0, 0, 113, 0, 0, 74,
973 0, 119, 83, 0, 0, 224, 0, 0, 0, 0,
974 0, 73, 0, 158, 26, 219, 0
975 } ;
976
977static const YY_CHAR yy_ec[256] =
978 { 0,
979 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
980 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
981 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
982 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
983 5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
984 17, 18, 17, 19, 17, 17, 17, 20, 5, 21,
985 5, 22, 23, 5, 24, 25, 26, 27, 28, 29,
986 5, 30, 31, 32, 33, 34, 5, 35, 36, 37,
987 5, 38, 39, 40, 41, 42, 43, 44, 45, 5,
988 46, 47, 48, 5, 49, 5, 50, 51, 52, 53,
989
990 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
991 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
992 74, 75, 76, 5, 77, 5, 5, 5, 5, 5,
993 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
994 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
995 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
996 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
997 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
998 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
999 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1000
1001 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1002 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1003 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1004 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1005 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
1006 5, 5, 5, 5, 5
1007 } ;
1008
1009static const YY_CHAR yy_meta[78] =
1010 { 0,
1011 1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
1012 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1013 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1014 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1015 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1016 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1017 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1018 1, 1, 1, 1, 1, 1, 1
1019 } ;
1020
1021static const flex_int16_t yy_base[2466] =
1022 { 0,
1023 0, 76, 22, 29, 40, 48, 54, 62, 97, 105,
1024 3046, 3047, 32, 3042, 153, 0, 219, 3047, 227, 56,
1025 14, 242, 250, 3047, 3021, 118, 17, 71, 75, 3047,
1026 3047, 90, 74, 79, 3047, 3047, 3047, 43, 3030, 2979,
1027 0, 3019, 57, 3037, 2, 287, 3047, 2975, 87, 93,
1028 2981, 101, 79, 235, 248, 222, 220, 318, 242, 229,
1029 332, 310, 235, 260, 219, 270, 2983, 320, 182, 355,
1030 227, 344, 2966, 275, 356, 401, 365, 282, 250, 0,
1031 426, 445, 467, 473, 488, 496, 514, 520, 3047, 0,
1032 537, 545, 3047, 432, 479, 300, 309, 231, 338, 342,
1033
1034 325, 3047, 2983, 3028, 3047, 56, 3047, 534, 3014, 358,
1035 266, 2980, 343, 17, 360, 3020, 400, 382, 401, 343,
1036 3024, 0, 599, 2979, 515, 2961, 2958, 2958, 2961, 457,
1037 2957, 186, 2965, 515, 2951, 2952, 2957, 363, 2967, 367,
1038 2960, 2950, 2959, 417, 2965, 514, 248, 368, 2945, 3002,
1039 3006, 2948, 2941, 2998, 2934, 517, 2955, 2955, 2949, 401,
1040 2941, 2942, 2940, 2934, 499, 2945, 411, 2930, 2929, 540,
1041 2930, 453, 2942, 2941, 2922, 579, 481, 531, 2943, 2940,
1042 2941, 2929, 532, 2938, 2977, 2976, 547, 81, 2919, 505,
1043 2920, 556, 528, 2930, 2922, 2915, 2923, 618, 641, 647,
1044
1045 0, 659, 667, 682, 571, 561, 491, 599, 607, 615,
1046 2919, 3047, 2968, 620, 654, 2913, 649, 655, 661, 668,
1047 2971, 674, 2970, 668, 2969, 3047, 3047, 718, 2909, 2909,
1048 680, 2922, 2914, 2912, 2900, 2911, 2915, 2916, 2896, 2907,
1049 2911, 2908, 2907, 643, 656, 2949, 2909, 2890, 2887, 2895,
1050 2890, 2900, 2903, 2899, 2890, 2886, 2898, 2898, 2886, 2885,
1051 2887, 2890, 2870, 2874, 2888, 2880, 2870, 2873, 2887, 3047,
1052 2872, 2881, 52, 2923, 2865, 2874, 2920, 2863, 2873, 2876,
1053 681, 2916, 2857, 2871, 2913, 684, 2854, 2868, 2866, 2846,
1054 2861, 555, 2858, 664, 2849, 2847, 2847, 2853, 2844, 2857,
1055
1056 2841, 2904, 2856, 418, 2850, 646, 2857, 2852, 2835, 2850,
1057 2836, 2848, 2843, 2847, 2828, 2844, 2830, 2836, 2843, 2883,
1058 654, 504, 2830, 2827, 2826, 515, 2825, 2820, 2834, 699,
1059 2833, 2880, 2812, 2834, 698, 68, 2825, 2813, 760, 745,
1060 766, 775, 701, 3047, 3047, 712, 3047, 3047, 2811, 658,
1061 712, 762, 2862, 759, 2873, 758, 767, 3047, 2872, 3047,
1062 2866, 812, 2807, 2823, 758, 2800, 687, 2821, 2861, 2817,
1063 2800, 2817, 2857, 2813, 2796, 2802, 2858, 2809, 2812, 2803,
1064 2806, 2792, 2803, 2851, 2845, 2799, 2796, 787, 2801, 2801,
1065 2845, 2776, 2838, 2787, 2782, 2776, 2775, 2777, 2780, 2831,
1066
1067 2784, 2829, 2771, 793, 800, 2785, 2770, 2769, 2782, 2780,
1068 2778, 2778, 2777, 2772, 2779, 2774, 2770, 741, 2768, 2771,
1069 2753, 2765, 2816, 693, 777, 2810, 2753, 2769, 2807, 2753,
1070 2752, 2745, 2760, 2751, 2758, 2739, 2756, 2751, 810, 2802,
1071 2753, 2752, 3047, 2751, 789, 2742, 2740, 2752, 756, 2727,
1072 2728, 2741, 2731, 2723, 2785, 2726, 2740, 788, 2726, 2738,
1073 2737, 2736, 2727, 2731, 2729, 2775, 2731, 2730, 2729, 2728,
1074 2711, 2719, 2773, 2728, 2708, 2770, 3047, 2769, 2707, 2706,
1075 837, 2719, 2717, 2715, 2715, 855, 865, 3047, 3047, 2715,
1076 2704, 2696, 779, 2754, 2758, 2757, 3047, 2756, 781, 3047,
1077
1078 822, 874, 2703, 2710, 781, 2753, 2695, 2690, 2750, 2700,
1079 2743, 2692, 2694, 778, 2684, 2692, 2680, 3047, 2685, 2678,
1080 2690, 2693, 2680, 2679, 3047, 852, 2681, 2678, 841, 2676,
1081 2670, 2677, 3047, 2726, 2684, 2681, 2666, 2683, 2679, 2677,
1082 2677, 2671, 844, 2661, 2716, 3047, 2659, 2675, 2713, 3047,
1083 2666, 2716, 2668, 2666, 2664, 2665, 2649, 2658, 2704, 2651,
1084 2650, 2645, 2644, 2699, 2639, 822, 2658, 2632, 2639, 2655,
1085 2693, 3047, 2639, 2635, 899, 2633, 2689, 2641, 2640, 2634,
1086 2626, 2626, 2625, 2639, 2639, 2627, 2623, 2621, 3047, 2630,
1087 2681, 3047, 2619, 2674, 2615, 2614, 2619, 2675, 2627, 2621,
1088
1089 2615, 2624, 2670, 2664, 2607, 2602, 2661, 2621, 2596, 2602,
1090 791, 2616, 2609, 2613, 2596, 2658, 2599, 2651, 2593, 2593,
1091 2648, 2589, 2590, 2589, 2587, 2604, 3047, 2600, 2641, 3047,
1092 3047, 2588, 2586, 3047, 799, 2638, 2642, 2573, 2635, 2591,
1093 2575, 2592, 2636, 869, 3047, 3047, 3047, 808, 870, 873,
1094 2570, 2571, 924, 3047, 2570, 2580, 3047, 2579, 748, 2586,
1095 2566, 2576, 2579, 2621, 2562, 864, 2561, 2571, 2617, 2558,
1096 2565, 2558, 2560, 2569, 2551, 2551, 2566, 2565, 2549, 849,
1097 2563, 2562, 2562, 2544, 2549, 2593, 2547, 2556, 2553, 2547,
1098 2596, 2536, 2536, 2550, 2550, 2548, 2548, 3047, 2533, 2545,
1099
1100 2537, 2543, 2534, 2542, 2540, 3047, 2526, 2581, 2541, 2523,
1101 2535, 2527, 843, 2518, 2517, 2511, 2516, 2531, 2528, 2529,
1102 2508, 2518, 2524, 2571, 2515, 2506, 2507, 2509, 2504, 2517,
1103 2509, 2508, 556, 2557, 2504, 925, 2555, 2496, 2553, 2496,
1104 2499, 2492, 2507, 3047, 2553, 2489, 2503, 2498, 2494, 3047,
1105 2543, 2491, 2498, 2540, 3047, 2481, 2495, 2494, 184, 311,
1106 401, 445, 410, 577, 617, 670, 739, 790, 3047, 799,
1107 827, 844, 861, 879, 931, 886, 887, 888, 874, 933,
1108 895, 892, 877, 884, 892, 890, 3047, 941, 884, 3047,
1109 900, 892, 3047, 912, 926, 926, 918, 934, 906, 897,
1110
1111 895, 906, 896, 905, 917, 911, 900, 896, 910, 906,
1112 912, 964, 924, 971, 972, 928, 928, 978, 979, 929,
1113 929, 930, 940, 945, 931, 934, 937, 946, 946, 930,
1114 991, 940, 950, 953, 995, 940, 1002, 948, 952, 949,
1115 951, 959, 1003, 1005, 964, 1012, 966, 969, 964, 955,
1116 970, 975, 976, 973, 975, 977, 976, 964, 978, 976,
1117 984, 1024, 982, 1031, 1032, 978, 970, 980, 1032, 987,
1118 1040, 3047, 989, 991, 987, 981, 997, 985, 995, 1048,
1119 1044, 1045, 1004, 1005, 3047, 995, 996, 995, 1008, 998,
1120 1011, 1059, 1060, 1061, 3047, 994, 1017, 1008, 997, 1003,
1121
1122 1062, 1022, 1006, 1018, 1071, 1009, 1016, 1069, 1029, 1025,
1123 1030, 1028, 1076, 1014, 1026, 1041, 1038, 1038, 1037, 1027,
1124 1025, 3047, 1093, 1046, 1047, 1035, 1049, 1040, 1044, 1055,
1125 1040, 1048, 1051, 1055, 1062, 1057, 1049, 1064, 1088, 1080,
1126 1110, 1111, 1084, 1113, 1058, 1072, 1075, 1078, 1075, 1057,
1127 1064, 1078, 1127, 1080, 1065, 1078, 1079, 1077, 1086, 3047,
1128 3047, 1082, 1077, 1092, 1089, 1075, 1077, 1097, 1093, 1096,
1129 1084, 1092, 1093, 1102, 1150, 1107, 1147, 1105, 1095, 1094,
1130 1093, 1104, 1100, 1092, 3047, 1103, 1114, 1099, 1100, 1106,
1131 1122, 1162, 1119, 1114, 1165, 3047, 1125, 1117, 1128, 1126,
1132
1133 1175, 1113, 1130, 1116, 1128, 1137, 1134, 1121, 1119, 1185,
1134 1138, 1124, 1130, 1128, 3047, 3047, 1138, 1143, 1148, 1136,
1135 1146, 1148, 3047, 1149, 1136, 1154, 1141, 1143, 1136, 1153,
1136 3047, 1142, 1160, 1161, 1201, 1148, 1149, 1146, 1150, 1168,
1137 1213, 3047, 3047, 3047, 1155, 1152, 1168, 1217, 1167, 1157,
1138 1158, 1154, 1167, 3047, 1178, 1173, 1221, 1175, 1177, 1170,
1139 1172, 1168, 1174, 1174, 1176, 1191, 1174, 1237, 1190, 1192,
1140 1196, 1183, 1174, 1243, 1196, 1199, 1185, 1184, 3047, 1191,
1141 1192, 1245, 1246, 1194, 1207, 1249, 1203, 1193, 1209, 1209,
1142 1215, 1196, 1205, 1213, 1200, 1231, 1241, 1229, 1237, 1249,
1143
1144 1212, 1269, 1213, 1228, 1210, 1269, 1270, 1228, 1272, 3047,
1145 1278, 1227, 1218, 1234, 1238, 1283, 1229, 1228, 1223, 1224,
1146 1236, 1231, 1227, 1236, 1233, 1237, 1247, 1256, 1296, 3047,
1147 1246, 1240, 1258, 1251, 1246, 1308, 1261, 1262, 1253, 1312,
1148 1268, 1257, 1260, 1268, 1270, 1255, 1275, 1268, 1273, 1270,
1149 1268, 1280, 1264, 1265, 3047, 1281, 1284, 1281, 1268, 1285,
1150 1280, 1333, 1272, 1291, 3047, 1290, 1293, 1279, 1274, 1292,
1151 1336, 1290, 1286, 1283, 1340, 1341, 1299, 1285, 1303, 1303,
1152 1303, 1304, 1305, 1307, 1292, 1307, 1305, 1295, 1296, 1312,
1153 1299, 1316, 3047, 1314, 1316, 1365, 1308, 3047, 1311, 1316,
1154
1155 1364, 1311, 1323, 1317, 1315, 1312, 1318, 1328, 1377, 1317,
1156 1318, 1318, 1381, 1321, 1333, 1326, 3047, 1322, 1339, 1331,
1157 1327, 1330, 3047, 1333, 1386, 1324, 1345, 1331, 1333, 1334,
1158 1335, 1341, 1349, 1340, 1345, 1355, 1404, 1357, 1406, 1352,
1159 1360, 1365, 1410, 1377, 1407, 1389, 1381, 1386, 1368, 3047,
1160 1370, 1355, 1367, 1363, 1377, 1360, 1360, 3047, 1363, 1362,
1161 1426, 1365, 3047, 1376, 1366, 1386, 1385, 1376, 1387, 1434,
1162 1383, 1392, 1385, 1389, 1393, 1380, 1401, 1398, 1399, 1390,
1163 1449, 1392, 3047, 1446, 1389, 1393, 3047, 1411, 1393, 1394,
1164 1394, 1415, 1412, 1414, 1401, 1419, 1407, 1421, 1414, 1423,
1165
1166 1403, 1418, 1425, 1410, 1472, 1414, 1469, 3047, 1475, 1476,
1167 1414, 1424, 1434, 1418, 1438, 1426, 1422, 1429, 1438, 1426,
1168 1433, 1434, 1446, 1491, 1434, 1493, 1433, 1432, 1436, 1450,
1169 1454, 1499, 1443, 1449, 1450, 1439, 1504, 1451, 1454, 1507,
1170 3047, 1444, 1461, 1454, 1445, 1464, 1452, 1462, 1458, 1453,
1171 1472, 1472, 3047, 1456, 1452, 1458, 3047, 1459, 1523, 1479,
1172 1460, 1466, 1480, 1466, 1482, 1468, 1485, 1528, 1477, 1535,
1173 1536, 1485, 1490, 1484, 1482, 1493, 1492, 1476, 3047, 1481,
1174 3047, 1490, 1488, 1501, 3047, 1515, 1528, 1516, 1530, 1517,
1175 1509, 1554, 1503, 1491, 1513, 1508, 1508, 1512, 1513, 1562,
1176
1177 3047, 1501, 1501, 1504, 1521, 1516, 1520, 1515, 3047, 1524,
1178 1508, 1525, 1505, 1526, 1517, 1514, 1525, 1522, 1579, 1528,
1179 3047, 1541, 1541, 1583, 1526, 1535, 1586, 1540, 1545, 1531,
1180 1595, 1549, 1535, 1536, 1550, 1548, 1545, 1541, 1559, 1560,
1181 1561, 1544, 3047, 1602, 1553, 3047, 1563, 3047, 1548, 1559,
1182 1550, 1569, 1562, 1560, 1553, 1565, 1613, 1573, 1562, 1569,
1183 1570, 1576, 3047, 1569, 3047, 1625, 1574, 1563, 1576, 1629,
1184 3047, 1567, 1573, 1574, 1585, 3047, 1586, 1580, 3047, 1573,
1185 1576, 1590, 1595, 1578, 1641, 1594, 1581, 1600, 1587, 1592,
1186 1647, 1643, 1592, 1650, 3047, 1597, 1594, 1605, 1654, 1655,
1187
1188 1656, 1652, 1610, 1611, 1613, 3047, 3047, 1605, 1600, 1658,
1189 1603, 1619, 1666, 1604, 1616, 1669, 1606, 1623, 1667, 1649,
1190 1650, 1642, 1676, 1615, 3047, 1620, 1631, 1624, 1633, 1624,
1191 1635, 1637, 3047, 1685, 1618, 1629, 1644, 1684, 1632, 1643,
1192 1629, 1645, 1646, 1643, 1691, 1650, 1698, 1699, 1656, 1645,
1193 1656, 1662, 1649, 1645, 1709, 1705, 1659, 1707, 1713, 1666,
1194 3047, 1663, 1653, 1669, 1660, 1663, 1672, 1669, 1659, 1662,
1195 1662, 1725, 1664, 1675, 1670, 1729, 1672, 1731, 1670, 1676,
1196 1735, 1731, 1668, 1683, 1676, 1679, 1692, 1693, 1691, 1744,
1197 3047, 1689, 1695, 1685, 3047, 1701, 1693, 1694, 1747, 1690,
1198
1199 1706, 1755, 1756, 1696, 1706, 1759, 3047, 1703, 1761, 1701,
1200 1699, 1702, 3047, 1719, 1724, 3047, 1721, 1709, 1709, 3047,
1201 3047, 3047, 1714, 1724, 1707, 1727, 1728, 1714, 1716, 1779,
1202 1725, 3047, 1781, 1726, 3047, 1720, 1784, 1748, 1766, 1783,
1203 1768, 3047, 1739, 1734, 1792, 1745, 1794, 1740, 1791, 1797,
1204 3047, 1736, 1799, 1745, 1739, 1736, 1739, 1741, 1800, 1759,
1205 1802, 1751, 1763, 1766, 3047, 3047, 1763, 1758, 1762, 1755,
1206 1762, 1752, 3047, 1760, 1775, 1760, 3047, 1762, 1762, 1821,
1207 1765, 1823, 1781, 1783, 1783, 1780, 1828, 1786, 3047, 1787,
1208 1779, 1780, 3047, 1781, 3047, 1791, 1783, 3047, 1790, 1795,
1209
1210 1796, 1793, 1841, 1785, 1800, 1801, 1793, 3047, 1803, 1791,
1211 1801, 1793, 1793, 1794, 1795, 1853, 1859, 3047, 3047, 1855,
1212 1798, 3047, 1799, 3047, 1813, 1801, 1809, 1867, 1811, 1803,
1213 1816, 1810, 1820, 1813, 1817, 1833, 1826, 1832, 1822, 1881,
1214 1830, 3047, 1839, 3047, 1836, 1885, 3047, 1834, 1862, 1863,
1215 1869, 1854, 1862, 1887, 1893, 3047, 1894, 3047, 1848, 1833,
1216 3047, 1897, 3047, 1898, 1851, 1856, 1838, 1840, 1842, 1899,
1217 1860, 1855, 1852, 1845, 1852, 1905, 1859, 1860, 1850, 1861,
1218 1873, 1922, 1872, 1924, 1873, 1871, 1922, 1882, 1882, 1925,
1219 1869, 1874, 1872, 1935, 1875, 1883, 1889, 1877, 1940, 1936,
1220
1221 1895, 1943, 1900, 1889, 1883, 1947, 1885, 1886, 1900, 1951,
1222 1904, 1895, 1905, 1955, 1956, 1905, 1903, 3047, 1893, 1955,
1223 1956, 1907, 1906, 1906, 1901, 1902, 1920, 3047, 1911, 1917,
1224 1922, 1909, 1910, 1973, 1911, 1911, 1913, 1972, 1914, 3047,
1225 1910, 1928, 1981, 3047, 1935, 1949, 1963, 1962, 1951, 1953,
1226 1925, 3047, 3047, 1989, 1938, 3047, 3047, 1929, 1940, 1993,
1227 1994, 1947, 1937, 1943, 1941, 1995, 1949, 1954, 1940, 1943,
1228 1959, 1948, 1946, 1960, 1947, 3047, 1950, 3047, 1957, 1973,
1229 1959, 1968, 2015, 1958, 2022, 1966, 1976, 1977, 3047, 2026,
1230 1962, 2023, 1977, 2025, 3047, 1972, 2032, 3047, 1971, 1986,
1231
1232 1974, 3047, 1984, 1985, 2038, 3047, 1992, 1983, 1997, 3047,
1233 3047, 1973, 1991, 2000, 1982, 2000, 1989, 2043, 1991, 1987,
1234 1992, 2052, 1990, 1991, 2055, 2051, 2057, 3047, 2006, 2004,
1235 2060, 2009, 1999, 2015, 2008, 3047, 2065, 2042, 2067, 2048,
1236 2064, 2070, 2019, 3047, 2016, 2073, 2011, 3047, 3047, 2013,
1237 2015, 2025, 2073, 2017, 2032, 2019, 2082, 2035, 2021, 2028,
1238 2028, 2087, 2040, 2041, 2033, 2029, 2031, 2047, 2033, 2045,
1239 3047, 2093, 2040, 2037, 3047, 2053, 2040, 2053, 2040, 2061,
1240 3047, 2058, 2107, 2056, 2053, 2054, 3047, 2111, 2068, 2067,
1241 2066, 2059, 2064, 2065, 2063, 2074, 2058, 2067, 2117, 2123,
1242
1243 3047, 2072, 2125, 3047, 2070, 3047, 2069, 2065, 3047, 2072,
1244 2130, 2132, 2128, 3047, 2129, 3047, 2110, 2116, 3047, 2080,
1245 2090, 3047, 2134, 2082, 2093, 2094, 2079, 2080, 2088, 2146,
1246 3047, 2090, 2143, 2144, 2095, 3047, 2090, 2108, 2109, 2091,
1247 2097, 2110, 2105, 2102, 2107, 2105, 2161, 2103, 2117, 2166,
1248 2110, 2107, 2107, 3047, 2122, 2123, 2124, 3047, 2118, 2126,
1249 2175, 2124, 2114, 2122, 2135, 2136, 2117, 2118, 2125, 3047,
1250 2127, 3047, 2141, 2138, 2130, 2183, 2140, 3047, 3047, 2144,
1251 2170, 2171, 2169, 2146, 2133, 2133, 2142, 2149, 2142, 2141,
1252 2152, 2139, 3047, 2155, 2143, 2146, 2206, 2142, 2161, 2154,
1253
1254 2205, 2165, 2158, 2157, 2166, 2168, 2172, 3047, 2214, 2166,
1255 3047, 2170, 2161, 2224, 2163, 2226, 2227, 2223, 2229, 3047,
1256 2167, 2226, 2184, 2171, 2179, 2190, 2177, 2188, 2174, 2172,
1257 2180, 2179, 2180, 2186, 2177, 2222, 2247, 2228, 2244, 2250,
1258 2199, 2188, 2201, 2191, 2208, 2207, 2252, 2192, 2211, 2212,
1259 3047, 2217, 2210, 2258, 2254, 2217, 2204, 2219, 2268, 2221,
1260 2224, 2219, 2224, 2215, 2224, 3047, 2277, 3047, 3047, 2223,
1261 3047, 2279, 2217, 2281, 2220, 2283, 2227, 2280, 2281, 2239,
1262 2283, 2225, 2229, 2291, 2248, 2293, 2248, 2275, 3047, 2271,
1263 2234, 3047, 2242, 2236, 2233, 2296, 2258, 2251, 2247, 2305,
1264
1265 2244, 2246, 2245, 2252, 2264, 2299, 2250, 2313, 2253, 3047,
1266 2258, 2268, 2270, 2272, 2255, 2263, 3047, 2270, 3047, 2272,
1267 3047, 2277, 3047, 2278, 2278, 2269, 2329, 2269, 2279, 2264,
1268 3047, 2277, 3047, 2279, 2310, 2316, 2285, 2290, 2287, 2340,
1269 2277, 2279, 2276, 2300, 3047, 2287, 2294, 2295, 2298, 2294,
1270 2350, 2289, 3047, 2347, 2290, 2298, 2307, 2293, 2309, 2308,
1271 2297, 2304, 2299, 2301, 2313, 2308, 3047, 2319, 2307, 2364,
1272 2311, 2323, 2351, 2373, 2313, 2375, 2318, 3047, 2318, 2330,
1273 2379, 2324, 2326, 2324, 2325, 2384, 2341, 3047, 2334, 2321,
1274 2336, 2341, 2333, 2339, 2392, 2393, 2331, 2347, 2396, 2397,
1275
1276 2338, 2342, 2338, 2354, 2337, 2349, 2343, 2406, 3047, 2359,
1277 3047, 2351, 2362, 2410, 3047, 2363, 2348, 2366, 2357, 3047,
1278 2353, 2359, 2373, 2369, 2362, 2357, 2363, 3047, 3047, 2422,
1279 2423, 3047, 3047, 2362, 2370, 2365, 2422, 2384, 2381, 2430,
1280 3047, 2369, 2427, 2389, 3047, 2434, 2372, 2436, 2375, 2376,
1281 2389, 2388, 2389, 2379, 2391, 2387, 3047, 3047, 2382, 2446,
1282 2395, 2404, 2397, 2445, 3047, 2400, 2396, 2390, 3047, 2402,
1283 3047, 2450, 2408, 2457, 2395, 2411, 2460, 2412, 2462, 2463,
1284 3047, 2416, 2410, 2403, 2423, 2410, 2412, 2423, 2414, 2418,
1285 2412, 3047, 2470, 2415, 3047, 2425, 3047, 3047, 2416, 2424,
1286
1287 2475, 2431, 2424, 2428, 2437, 2485, 2429, 2429, 2488, 2426,
1288 2428, 2443, 2492, 2493, 2431, 2447, 2432, 2450, 2450, 3047,
1289 2499, 2442, 3047, 2449, 2502, 2442, 3047, 3047, 2452, 2505,
1290 2449, 2507, 2508, 3047, 2455, 2454, 3047, 2511, 2456, 3047,
1291 2450, 3047, 3047, 2450, 2467, 3047, 2468, 2517, 2459, 2519,
1292 2520, 3047, 2521, 3047, 3047, 3047, 3047, 2527, 2530, 2533,
1293 2534, 2536, 2539, 2542, 2545
1294 } ;
1295
1296static const flex_int16_t yy_def[2466] =
1297 { 0,
1298 2458, 2458, 2459, 2459, 2458, 2458, 2458, 2458, 2458, 2458,
1299 2457, 2457, 2457, 2457, 2457, 2460, 2457, 2457, 2457, 2457,
1300 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
1301 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
1302 2461, 2457, 2457, 2457, 2462, 15, 2457, 46, 46, 46,
1303 46, 46, 46, 46, 46, 46, 46, 2463, 46, 46,
1304 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1305 46, 46, 46, 46, 46, 46, 46, 46, 46, 2460,
1306 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2464,
1307 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
1308
1309 2457, 2457, 2457, 2461, 2457, 2462, 2457, 2457, 46, 46,
1310 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1311 2465, 46, 2463, 46, 46, 46, 46, 46, 46, 46,
1312 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1313 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1314 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1315 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1316 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1317 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1318 46, 46, 46, 46, 46, 46, 46, 2457, 2457, 2457,
1319
1320 2464, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
1321 2457, 2457, 46, 46, 46, 46, 46, 46, 46, 46,
1322 46, 46, 46, 46, 2465, 2457, 2457, 123, 46, 46,
1323 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1324 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1325 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1326 46, 46, 46, 46, 46, 46, 46, 46, 46, 2457,
1327 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1328 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1329 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1330
1331 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1332 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1333 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1334 46, 46, 46, 46, 46, 46, 46, 46, 2457, 2457,
1335 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 46,
1336 46, 46, 46, 46, 46, 46, 46, 2457, 46, 2457,
1337 46, 123, 46, 46, 46, 46, 46, 46, 46, 46,
1338 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1339 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1340 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1341
1342 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1343 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1344 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1345 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1346 46, 46, 2457, 46, 46, 46, 46, 46, 46, 46,
1347 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1348 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1349 46, 46, 46, 46, 46, 46, 2457, 46, 46, 46,
1350 46, 46, 46, 46, 46, 2457, 2457, 2457, 2457, 2457,
1351 46, 46, 46, 46, 46, 46, 2457, 46, 46, 2457,
1352
1353 46, 123, 46, 46, 46, 46, 46, 46, 46, 46,
1354 46, 46, 46, 46, 46, 46, 46, 2457, 46, 46,
1355 46, 46, 46, 46, 2457, 46, 46, 46, 46, 46,
1356 46, 46, 2457, 46, 46, 46, 46, 46, 46, 46,
1357 46, 46, 46, 46, 46, 2457, 46, 46, 46, 2457,
1358 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1359 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1360 46, 2457, 46, 46, 46, 46, 46, 46, 46, 46,
1361 46, 46, 46, 46, 46, 46, 46, 46, 2457, 46,
1362 46, 2457, 46, 46, 46, 46, 46, 46, 46, 46,
1363
1364 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1365 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1366 46, 46, 46, 46, 46, 46, 2457, 46, 46, 2457,
1367 2457, 46, 46, 2457, 46, 46, 46, 46, 46, 2457,
1368 46, 46, 46, 46, 2457, 2457, 2457, 46, 46, 46,
1369 46, 46, 46, 2457, 46, 46, 2457, 46, 46, 46,
1370 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1371 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1372 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1373 46, 46, 46, 46, 46, 46, 46, 2457, 46, 46,
1374
1375 46, 46, 46, 46, 46, 2457, 46, 46, 46, 46,
1376 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1377 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1378 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1379 46, 46, 46, 2457, 46, 46, 46, 46, 46, 2457,
1380 46, 46, 46, 46, 2457, 46, 46, 46, 46, 46,
1381 46, 46, 46, 46, 46, 46, 46, 46, 2457, 46,
1382 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1383 46, 46, 46, 46, 46, 46, 2457, 46, 46, 2457,
1384 46, 46, 2457, 46, 46, 46, 46, 46, 46, 46,
1385
1386 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1387 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1388 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1389 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1390 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1391 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1392 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1393 46, 2457, 46, 46, 46, 46, 46, 46, 46, 46,
1394 46, 46, 46, 46, 2457, 46, 46, 46, 46, 46,
1395 46, 46, 46, 46, 2457, 46, 46, 46, 46, 46,
1396
1397 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1398 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1399 46, 2457, 46, 46, 46, 46, 46, 46, 46, 46,
1400 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1401 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1402 46, 46, 46, 46, 46, 46, 46, 46, 46, 2457,
1403 2457, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1404 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1405 46, 46, 46, 46, 2457, 46, 46, 46, 46, 46,
1406 46, 46, 46, 46, 46, 2457, 46, 46, 46, 46,
1407
1408 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1409 46, 46, 46, 46, 2457, 2457, 46, 46, 46, 46,
1410 46, 46, 2457, 46, 46, 46, 46, 46, 46, 46,
1411 2457, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1412 46, 2457, 2457, 2457, 46, 46, 46, 46, 46, 46,
1413 46, 46, 46, 2457, 46, 46, 46, 46, 46, 46,
1414 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1415 46, 46, 46, 46, 46, 46, 46, 46, 2457, 46,
1416 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1417 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1418
1419 46, 46, 46, 46, 46, 46, 46, 46, 46, 2457,
1420 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1421 46, 46, 46, 46, 46, 46, 46, 46, 46, 2457,
1422 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1423 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1424 46, 46, 46, 46, 2457, 46, 46, 46, 46, 46,
1425 46, 46, 46, 46, 2457, 46, 46, 46, 46, 46,
1426 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1427 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1428 46, 46, 2457, 46, 46, 46, 46, 2457, 46, 46,
1429
1430 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1431 46, 46, 46, 46, 46, 46, 2457, 46, 46, 46,
1432 46, 46, 2457, 46, 46, 46, 46, 46, 46, 46,
1433 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1434 46, 46, 46, 46, 46, 46, 46, 46, 46, 2457,
1435 46, 46, 46, 46, 46, 46, 46, 2457, 46, 46,
1436 46, 46, 2457, 46, 46, 46, 46, 46, 46, 46,
1437 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1438 46, 46, 2457, 46, 46, 46, 2457, 46, 46, 46,
1439 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1440
1441 46, 46, 46, 46, 46, 46, 46, 2457, 46, 46,
1442 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1443 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1444 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1445 2457, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1446 46, 46, 2457, 46, 46, 46, 2457, 46, 46, 46,
1447 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1448 46, 46, 46, 46, 46, 46, 46, 46, 2457, 46,
1449 2457, 46, 46, 46, 2457, 46, 46, 46, 46, 46,
1450 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1451
1452 2457, 46, 46, 46, 46, 46, 46, 46, 2457, 46,
1453 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1454 2457, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1455 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1456 46, 46, 2457, 46, 46, 2457, 46, 2457, 46, 46,
1457 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1458 46, 46, 2457, 46, 2457, 46, 46, 46, 46, 46,
1459 2457, 46, 46, 46, 46, 2457, 46, 46, 2457, 46,
1460 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1461 46, 46, 46, 46, 2457, 46, 46, 46, 46, 46,
1462
1463 46, 46, 46, 46, 46, 2457, 2457, 46, 46, 46,
1464 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1465 46, 46, 46, 46, 2457, 46, 46, 46, 46, 46,
1466 46, 46, 2457, 46, 46, 46, 46, 46, 46, 46,
1467 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1468 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1469 2457, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1470 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1471 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1472 2457, 46, 46, 46, 2457, 46, 46, 46, 46, 46,
1473
1474 46, 46, 46, 46, 46, 46, 2457, 46, 46, 46,
1475 46, 46, 2457, 46, 46, 2457, 46, 46, 46, 2457,
1476 2457, 2457, 46, 46, 46, 46, 46, 46, 46, 46,
1477 46, 2457, 46, 46, 2457, 46, 46, 46, 46, 46,
1478 46, 2457, 46, 46, 46, 46, 46, 46, 46, 46,
1479 2457, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1480 46, 46, 46, 46, 2457, 2457, 46, 46, 46, 46,
1481 46, 46, 2457, 46, 46, 46, 2457, 46, 46, 46,
1482 46, 46, 46, 46, 46, 46, 46, 46, 2457, 46,
1483 46, 46, 2457, 46, 2457, 46, 46, 2457, 46, 46,
1484
1485 46, 46, 46, 46, 46, 46, 46, 2457, 46, 46,
1486 46, 46, 46, 46, 46, 46, 46, 2457, 2457, 46,
1487 46, 2457, 46, 2457, 46, 46, 46, 46, 46, 46,
1488 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1489 46, 2457, 46, 2457, 46, 46, 2457, 46, 46, 46,
1490 46, 46, 46, 46, 46, 2457, 46, 2457, 46, 46,
1491 2457, 46, 2457, 46, 46, 46, 46, 46, 46, 46,
1492 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1493 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1494 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1495
1496 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1497 46, 46, 46, 46, 46, 46, 46, 2457, 46, 46,
1498 46, 46, 46, 46, 46, 46, 46, 2457, 46, 46,
1499 46, 46, 46, 46, 46, 46, 46, 46, 46, 2457,
1500 46, 46, 46, 2457, 46, 46, 46, 46, 46, 46,
1501 46, 2457, 2457, 46, 46, 2457, 2457, 46, 46, 46,
1502 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1503 46, 46, 46, 46, 46, 2457, 46, 2457, 46, 46,
1504 46, 46, 46, 46, 46, 46, 46, 46, 2457, 46,
1505 46, 46, 46, 46, 2457, 46, 46, 2457, 46, 46,
1506
1507 46, 2457, 46, 46, 46, 2457, 46, 46, 46, 2457,
1508 2457, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1509 46, 46, 46, 46, 46, 46, 46, 2457, 46, 46,
1510 46, 46, 46, 46, 46, 2457, 46, 46, 46, 46,
1511 46, 46, 46, 2457, 46, 46, 46, 2457, 2457, 46,
1512 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1513 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1514 2457, 46, 46, 46, 2457, 46, 46, 46, 46, 46,
1515 2457, 46, 46, 46, 46, 46, 2457, 46, 46, 46,
1516 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1517
1518 2457, 46, 46, 2457, 46, 2457, 46, 46, 2457, 46,
1519 46, 46, 46, 2457, 46, 2457, 46, 46, 2457, 46,
1520 46, 2457, 46, 46, 46, 46, 46, 46, 46, 46,
1521 2457, 46, 46, 46, 46, 2457, 46, 46, 46, 46,
1522 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1523 46, 46, 46, 2457, 46, 46, 46, 2457, 46, 46,
1524 46, 46, 46, 46, 46, 46, 46, 46, 46, 2457,
1525 46, 2457, 46, 46, 46, 46, 46, 2457, 2457, 46,
1526 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1527 46, 46, 2457, 46, 46, 46, 46, 46, 46, 46,
1528
1529 46, 46, 46, 46, 46, 46, 46, 2457, 46, 46,
1530 2457, 46, 46, 46, 46, 46, 46, 46, 46, 2457,
1531 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1532 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1533 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1534 2457, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1535 46, 46, 46, 46, 46, 2457, 46, 2457, 2457, 46,
1536 2457, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1537 46, 46, 46, 46, 46, 46, 46, 46, 2457, 46,
1538 46, 2457, 46, 46, 46, 46, 46, 46, 46, 46,
1539
1540 46, 46, 46, 46, 46, 46, 46, 46, 46, 2457,
1541 46, 46, 46, 46, 46, 46, 2457, 46, 2457, 46,
1542 2457, 46, 2457, 46, 46, 46, 46, 46, 46, 46,
1543 2457, 46, 2457, 46, 46, 46, 46, 46, 46, 46,
1544 46, 46, 46, 46, 2457, 46, 46, 46, 46, 46,
1545 46, 46, 2457, 46, 46, 46, 46, 46, 46, 46,
1546 46, 46, 46, 46, 46, 46, 2457, 46, 46, 46,
1547 46, 46, 46, 46, 46, 46, 46, 2457, 46, 46,
1548 46, 46, 46, 46, 46, 46, 46, 2457, 46, 46,
1549 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1550
1551 46, 46, 46, 46, 46, 46, 46, 46, 2457, 46,
1552 2457, 46, 46, 46, 2457, 46, 46, 46, 46, 2457,
1553 46, 46, 46, 46, 46, 46, 46, 2457, 2457, 46,
1554 46, 2457, 2457, 46, 46, 46, 46, 46, 46, 46,
1555 2457, 46, 46, 46, 2457, 46, 46, 46, 46, 46,
1556 46, 46, 46, 46, 46, 46, 2457, 2457, 46, 46,
1557 46, 46, 46, 46, 2457, 46, 46, 46, 2457, 46,
1558 2457, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1559 2457, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1560 46, 2457, 46, 46, 2457, 46, 2457, 2457, 46, 46,
1561
1562 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1563 46, 46, 46, 46, 46, 46, 46, 46, 46, 2457,
1564 46, 46, 2457, 46, 46, 46, 2457, 2457, 46, 46,
1565 46, 46, 46, 2457, 46, 46, 2457, 46, 46, 2457,
1566 46, 2457, 2457, 46, 46, 2457, 46, 46, 46, 46,
1567 46, 2457, 46, 2457, 2457, 2457, 0, 2457, 2457, 2457,
1568 2457, 2457, 2457, 2457, 2457
1569 } ;
1570
1571static const flex_int16_t yy_nxt[3125] =
1572 { 0,
1573 2457, 13, 14, 13, 2457, 15, 16, 107, 17, 18,
1574 19, 20, 21, 22, 23, 23, 23, 23, 23, 24,
1575 25, 89, 2457, 38, 14, 38, 90, 26, 27, 39,
1576 38, 14, 38, 43, 28, 43, 39, 2457, 2457, 29,
1577 96, 13, 14, 13, 43, 30, 43, 31, 108, 13,
1578 14, 13, 218, 26, 32, 13, 14, 13, 43, 41,
1579 43, 107, 33, 13, 14, 13, 96, 41, 34, 88,
1580 88, 88, 88, 88, 88, 35, 36, 13, 14, 13,
1581 218, 15, 16, 87, 17, 18, 19, 20, 21, 22,
1582 23, 23, 23, 23, 23, 24, 25, 40, 13, 14,
1583
1584 13, 409, 108, 26, 27, 40, 13, 14, 13, 87,
1585 28, 97, 98, 96, 97, 29, 98, 114, 410, 42,
1586 110, 30, 111, 31, 113, 482, 94, 42, 94, 26,
1587 32, 95, 95, 95, 95, 95, 95, 483, 33, 99,
1588 97, 98, 327, 100, 34, 101, 114, 110, 328, 111,
1589 113, 35, 36, 45, 45, 45, 46, 46, 47, 46,
1590 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
1591 48, 46, 46, 46, 46, 46, 49, 46, 50, 51,
1592 46, 52, 46, 46, 53, 46, 46, 54, 46, 46,
1593 46, 46, 55, 56, 46, 57, 46, 46, 46, 58,
1594
1595 46, 46, 59, 60, 61, 62, 63, 64, 46, 65,
1596 66, 53, 67, 68, 69, 70, 71, 72, 73, 74,
1597 75, 76, 77, 78, 79, 46, 46, 46, 46, 46,
1598 81, 160, 82, 82, 82, 82, 82, 82, 84, 161,
1599 85, 86, 86, 86, 86, 86, 83, 907, 119, 120,
1600 240, 162, 241, 84, 87, 91, 91, 91, 91, 91,
1601 91, 84, 115, 92, 92, 92, 92, 92, 92, 87,
1602 116, 207, 83, 117, 119, 110, 120, 87, 128, 120,
1603 87, 166, 148, 113, 142, 118, 143, 149, 115, 167,
1604 150, 168, 129, 215, 124, 87, 169, 144, 116, 117,
1605
1606 207, 263, 125, 87, 46, 145, 120, 146, 126, 113,
1607 46, 127, 46, 46, 118, 46, 197, 264, 46, 215,
1608 147, 46, 151, 122, 175, 152, 46, 46, 176, 46,
1609 46, 195, 153, 205, 154, 196, 46, 46, 46, 46,
1610 46, 46, 206, 46, 46, 46, 46, 46, 46, 46,
1611 46, 46, 46, 46, 46, 46, 46, 46, 46, 136,
1612 205, 111, 137, 138, 46, 207, 139, 140, 46, 206,
1613 224, 205, 46, 156, 157, 206, 217, 158, 908, 141,
1614 46, 130, 115, 159, 46, 131, 46, 123, 111, 132,
1615 116, 119, 133, 170, 210, 134, 224, 171, 208, 135,
1616
1617 214, 219, 209, 217, 163, 177, 164, 172, 165, 178,
1618 173, 909, 179, 249, 250, 185, 186, 192, 116, 180,
1619 181, 289, 222, 182, 183, 184, 117, 193, 265, 214,
1620 219, 266, 194, 252, 253, 267, 221, 223, 118, 198,
1621 198, 198, 198, 198, 198, 95, 95, 95, 95, 95,
1622 95, 222, 187, 83, 188, 910, 81, 189, 82, 82,
1623 82, 82, 82, 82, 221, 223, 257, 190, 258, 280,
1624 445, 290, 83, 281, 191, 199, 911, 199, 446, 83,
1625 200, 200, 200, 200, 200, 200, 88, 88, 88, 88,
1626 88, 88, 95, 95, 95, 95, 95, 95, 83, 84,
1627
1628 87, 91, 91, 91, 91, 91, 91, 84, 236, 92,
1629 92, 92, 92, 92, 92, 87, 298, 237, 345, 299,
1630 358, 238, 94, 87, 94, 471, 87, 95, 95, 95,
1631 95, 95, 95, 88, 88, 88, 88, 88, 88, 106,
1632 219, 87, 312, 313, 345, 222, 106, 87, 202, 87,
1633 203, 203, 203, 203, 203, 203, 84, 214, 92, 92,
1634 92, 92, 92, 92, 204, 260, 275, 243, 466, 286,
1635 467, 287, 87, 87, 330, 230, 244, 245, 261, 276,
1636 106, 321, 262, 221, 106, 333, 231, 912, 106, 303,
1637 204, 293, 223, 314, 344, 322, 106, 315, 87, 334,
1638
1639 106, 316, 106, 106, 227, 431, 294, 295, 296, 343,
1640 881, 326, 228, 228, 228, 228, 228, 228, 882, 432,
1641 332, 344, 228, 228, 228, 228, 228, 228, 304, 305,
1642 306, 198, 198, 198, 198, 198, 198, 343, 343, 307,
1643 344, 308, 345, 351, 309, 83, 310, 311, 228, 228,
1644 228, 228, 228, 228, 200, 200, 200, 200, 200, 200,
1645 200, 200, 200, 200, 200, 200, 346, 347, 348, 351,
1646 913, 83, 339, 339, 339, 339, 339, 339, 202, 352,
1647 203, 203, 203, 203, 203, 203, 340, 354, 356, 355,
1648 341, 418, 341, 357, 204, 342, 342, 342, 342, 342,
1649
1650 342, 359, 361, 351, 378, 352, 448, 379, 480, 449,
1651 380, 356, 340, 434, 356, 491, 354, 355, 381, 357,
1652 204, 464, 465, 435, 382, 492, 359, 359, 488, 365,
1653 361, 362, 362, 362, 362, 362, 362, 425, 914, 488,
1654 507, 362, 362, 362, 362, 362, 362, 573, 419, 915,
1655 508, 420, 359, 486, 488, 486, 493, 574, 487, 487,
1656 487, 487, 487, 487, 481, 489, 475, 362, 362, 362,
1657 362, 362, 362, 339, 339, 339, 339, 339, 339, 342,
1658 342, 342, 342, 342, 342, 493, 496, 340, 342, 342,
1659 342, 342, 342, 342, 494, 498, 499, 529, 546, 596,
1660
1661 916, 763, 493, 547, 530, 550, 565, 566, 648, 805,
1662 551, 567, 496, 340, 498, 589, 806, 643, 601, 643,
1663 590, 494, 602, 499, 498, 502, 502, 502, 502, 502,
1664 502, 505, 662, 796, 648, 502, 502, 502, 502, 502,
1665 502, 611, 634, 575, 663, 612, 643, 635, 653, 698,
1666 784, 917, 597, 785, 699, 548, 649, 764, 650, 796,
1667 549, 502, 502, 502, 502, 502, 502, 552, 487, 487,
1668 487, 487, 487, 487, 813, 720, 918, 591, 487, 487,
1669 487, 487, 487, 487, 649, 721, 650, 46, 46, 46,
1670 46, 46, 46, 683, 860, 861, 794, 46, 46, 46,
1671
1672 46, 46, 46, 673, 647, 797, 684, 674, 685, 729,
1673 798, 795, 919, 828, 920, 675, 829, 676, 677, 678,
1674 679, 680, 794, 46, 46, 46, 46, 46, 46, 793,
1675 885, 814, 921, 797, 801, 886, 922, 924, 925, 798,
1676 795, 926, 927, 928, 929, 930, 931, 932, 923, 933,
1677 934, 935, 936, 937, 938, 939, 940, 942, 941, 944,
1678 945, 943, 946, 947, 948, 949, 950, 951, 952, 953,
1679 954, 955, 956, 887, 957, 958, 960, 961, 962, 963,
1680 964, 959, 965, 940, 939, 941, 942, 943, 966, 967,
1681 968, 969, 970, 971, 972, 973, 974, 975, 976, 977,
1682
1683 978, 979, 980, 981, 982, 983, 984, 985, 986, 987,
1684 988, 991, 992, 993, 989, 994, 995, 996, 990, 997,
1685 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1007, 1008,
1686 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
1687 1019, 1006, 1021, 1020, 1022, 1023, 1024, 1025, 1026, 1027,
1688 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037,
1689 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047,
1690 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1056, 1057, 1058,
1691 1059, 1055, 1060, 1062, 1063, 1064, 1067, 1068, 1069, 1061,
1692 1070, 1074, 1065, 1075, 1076, 1077, 1066, 1078, 1079, 1080,
1693
1694 1081, 1082, 1083, 1071, 1084, 1072, 1085, 1086, 1087, 1073,
1695 1088, 1089, 1090, 1091, 1093, 1094, 1092, 1095, 1096, 1097,
1696 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107,
1697 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
1698 1118, 1119, 1120, 1121, 1122, 1096, 1123, 1124, 1097, 1125,
1699 1126, 1100, 1127, 1128, 1129, 1130, 1132, 1133, 1134, 1135,
1700 1131, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144,
1701 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154,
1702 1155, 1157, 1158, 1159, 1160, 1156, 1161, 1162, 1163, 1164,
1703 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174,
1704
1705 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184,
1706 1185, 1187, 1188, 1189, 1186, 1190, 1191, 1192, 1193, 1195,
1707 1196, 1197, 1198, 1194, 1199, 1200, 1201, 1202, 1203, 1204,
1708 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214,
1709 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224,
1710 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234,
1711 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244,
1712 1245, 1246, 1249, 1247, 1250, 1251, 1248, 1252, 1253, 1254,
1713 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264,
1714 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1245, 1244, 1272,
1715
1716 1246, 1247, 1248, 1273, 1274, 1275, 1276, 1277, 1279, 1280,
1717 1278, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289,
1718 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299,
1719 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1310,
1720 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320,
1721 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330,
1722 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340,
1723 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350,
1724 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360,
1725 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370,
1726
1727 1309, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379,
1728 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1389, 1388,
1729 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399,
1730 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409,
1731 1410, 1411, 1412, 1413, 1414, 1386, 1388, 1389, 1390, 1415,
1732 1416, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1417, 1425,
1733 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435,
1734 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445,
1735 1446, 1448, 1450, 1451, 1452, 1447, 1453, 1454, 1455, 1456,
1736 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466,
1737
1738 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476,
1739 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486,
1740 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1449,
1741 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505,
1742 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515,
1743 1516, 1517, 1518, 1519, 1520, 1521, 1523, 1522, 1524, 1525,
1744 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535,
1745 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545,
1746 1520, 1546, 1519, 1522, 1521, 1523, 1547, 1548, 1549, 1550,
1747 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560,
1748
1749 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570,
1750 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580,
1751 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590,
1752 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600,
1753 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610,
1754 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620,
1755 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630,
1756 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640,
1757 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650,
1758 1651, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661,
1759
1760 1662, 1663, 1664, 1665, 1666, 1639, 1640, 1667, 1668, 1641,
1761 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678,
1762 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688,
1763 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1652, 1697,
1764 1698, 1699, 1700, 1701, 1703, 1704, 1705, 1706, 1707, 1708,
1765 1709, 1702, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717,
1766 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1726, 1727, 1728,
1767 1729, 1725, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737,
1768 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747,
1769 1749, 1750, 1754, 1751, 1748, 1753, 1755, 1756, 1757, 1758,
1770
1771 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768,
1772 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1750, 1752, 1749,
1773 1776, 1753, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784,
1774 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794,
1775 1795, 1796, 1797, 1798, 1799, 1800, 1752, 1801, 1802, 1803,
1776 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813,
1777 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1826,
1778 1823, 1827, 1828, 1824, 1829, 1830, 1825, 1831, 1832, 1833,
1779 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843,
1780 1844, 1845, 1846, 1847, 1849, 1848, 1850, 1851, 1852, 1853,
1781
1782 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863,
1783 1866, 1864, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1846,
1784 1847, 1848, 1865, 1849, 1850, 1874, 1875, 1876, 1877, 1878,
1785 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888,
1786 1889, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899,
1787 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909,
1788 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919,
1789 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929,
1790 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939,
1791 1941, 1940, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949,
1792
1793 1950, 1951, 1890, 1952, 1953, 1954, 1955, 1956, 1957, 1958,
1794 1959, 1960, 1961, 1962, 1963, 1939, 1964, 1938, 1940, 1941,
1795 1965, 1942, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973,
1796 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983,
1797 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993,
1798 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
1799 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
1800 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
1801 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033,
1802 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2015, 2017,
1803
1804 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051,
1805 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061,
1806 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071,
1807 2072, 2073, 2075, 2076, 2077, 2078, 2074, 2079, 2080, 2081,
1808 2082, 2084, 2083, 2085, 2086, 2087, 2088, 2089, 2090, 2091,
1809 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101,
1810 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2082, 2083, 2109,
1811 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119,
1812 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129,
1813 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139,
1814
1815 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149,
1816 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159,
1817 2160, 2161, 2136, 2137, 2162, 2138, 2163, 2164, 2165, 2166,
1818 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176,
1819 2177, 2178, 2179, 2180, 2181, 2182, 2184, 2185, 2183, 2186,
1820 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196,
1821 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206,
1822 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2188, 2190,
1823 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224,
1824 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234,
1825
1826 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244,
1827 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254,
1828 2255, 2256, 2257, 2258, 2259, 2260, 2235, 2261, 2236, 2262,
1829 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272,
1830 2273, 2275, 2274, 2276, 2277, 2278, 2279, 2280, 2281, 2282,
1831 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292,
1832 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2273, 2274, 2300,
1833 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310,
1834 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320,
1835 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330,
1836
1837 2331, 2332, 2333, 2308, 2334, 2335, 2336, 2337, 2338, 2339,
1838 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349,
1839 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359,
1840 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369,
1841 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379,
1842 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389,
1843 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399,
1844 2400, 2401, 2402, 2404, 2403, 2405, 2406, 2407, 2408, 2409,
1845 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419,
1846 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429,
1847
1848 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439,
1849 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449,
1850 2450, 2451, 2452, 2453, 2454, 2455, 2456, 12, 12, 12,
1851 37, 37, 37, 80, 104, 80, 106, 106, 106, 121,
1852 121, 121, 201, 906, 201, 225, 225, 225, 905, 904,
1853 903, 902, 901, 900, 899, 898, 897, 896, 895, 894,
1854 893, 892, 891, 890, 889, 888, 884, 883, 880, 879,
1855 878, 877, 876, 875, 874, 873, 872, 871, 870, 869,
1856 868, 867, 866, 865, 864, 863, 862, 859, 858, 857,
1857 856, 855, 854, 853, 852, 851, 850, 849, 848, 847,
1858
1859 846, 845, 844, 843, 842, 841, 840, 839, 838, 837,
1860 836, 835, 834, 833, 832, 831, 830, 827, 826, 825,
1861 824, 823, 822, 821, 820, 819, 818, 817, 816, 815,
1862 812, 811, 810, 809, 808, 807, 804, 803, 802, 800,
1863 799, 793, 792, 791, 790, 789, 788, 787, 786, 783,
1864 782, 781, 780, 779, 778, 777, 776, 775, 774, 773,
1865 772, 771, 770, 769, 768, 767, 766, 765, 762, 761,
1866 760, 759, 758, 757, 756, 755, 754, 753, 752, 751,
1867 750, 749, 748, 747, 746, 745, 744, 743, 742, 741,
1868 740, 739, 738, 737, 736, 735, 734, 733, 732, 731,
1869
1870 730, 728, 727, 726, 725, 724, 723, 722, 719, 718,
1871 717, 716, 715, 714, 713, 712, 711, 710, 709, 708,
1872 707, 706, 705, 704, 703, 702, 701, 700, 697, 696,
1873 695, 694, 693, 692, 691, 690, 689, 688, 687, 686,
1874 682, 681, 672, 671, 670, 669, 668, 667, 666, 665,
1875 664, 661, 660, 659, 658, 657, 656, 655, 654, 652,
1876 651, 647, 646, 645, 644, 642, 641, 640, 639, 638,
1877 637, 636, 633, 632, 631, 630, 629, 628, 627, 626,
1878 625, 624, 623, 622, 621, 620, 619, 618, 617, 616,
1879 615, 614, 613, 610, 609, 608, 607, 606, 605, 604,
1880
1881 603, 600, 599, 598, 595, 594, 593, 592, 588, 587,
1882 586, 585, 584, 583, 582, 581, 580, 579, 578, 577,
1883 576, 572, 571, 570, 569, 568, 564, 563, 562, 561,
1884 560, 559, 558, 557, 556, 555, 554, 553, 545, 544,
1885 543, 542, 541, 540, 539, 538, 537, 536, 535, 534,
1886 533, 532, 531, 528, 527, 526, 525, 524, 523, 522,
1887 521, 520, 519, 518, 517, 516, 515, 514, 513, 512,
1888 511, 510, 509, 506, 504, 503, 501, 500, 497, 495,
1889 490, 485, 484, 479, 478, 477, 476, 474, 473, 472,
1890 470, 469, 468, 463, 462, 461, 460, 459, 458, 457,
1891
1892 456, 455, 454, 453, 452, 451, 450, 447, 444, 443,
1893 442, 441, 440, 439, 438, 437, 436, 433, 430, 429,
1894 428, 427, 426, 424, 423, 422, 421, 417, 416, 415,
1895 414, 413, 412, 411, 408, 407, 406, 405, 404, 403,
1896 402, 401, 400, 399, 398, 397, 396, 395, 394, 393,
1897 392, 391, 390, 389, 388, 387, 386, 385, 384, 383,
1898 377, 376, 375, 374, 373, 372, 371, 370, 369, 368,
1899 367, 366, 364, 363, 226, 360, 358, 353, 350, 349,
1900 338, 337, 336, 335, 331, 329, 325, 324, 323, 320,
1901 319, 318, 317, 302, 301, 300, 297, 292, 291, 288,
1902
1903 285, 284, 283, 282, 279, 278, 277, 274, 273, 272,
1904 271, 270, 269, 268, 259, 256, 255, 254, 251, 248,
1905 247, 246, 242, 239, 235, 234, 233, 232, 229, 226,
1906 220, 216, 213, 212, 211, 174, 155, 112, 109, 44,
1907 105, 103, 102, 93, 44, 2457, 11, 2457, 2457, 2457,
1908 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
1909 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
1910 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
1911 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
1912 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
1913
1914 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
1915 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
1916 2457, 2457, 2457, 2457
1917 } ;
1918
1919static const flex_int16_t yy_chk[3125] =
1920 { 0,
1921 0, 1, 1, 1, 0, 1, 1, 45, 1, 1,
1922 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1923 1, 21, 0, 3, 3, 3, 21, 1, 1, 3,
1924 4, 4, 4, 13, 1, 13, 4, 0, 0, 1,
1925 27, 5, 5, 5, 38, 1, 38, 1, 45, 6,
1926 6, 6, 114, 1, 1, 7, 7, 7, 43, 7,
1927 43, 106, 1, 8, 8, 8, 27, 8, 1, 20,
1928 20, 20, 20, 20, 20, 1, 1, 2, 2, 2,
1929 114, 2, 2, 20, 2, 2, 2, 2, 2, 2,
1930 2, 2, 2, 2, 2, 2, 2, 5, 9, 9,
1931
1932 9, 273, 106, 2, 2, 6, 10, 10, 10, 20,
1933 2, 28, 29, 32, 33, 2, 34, 53, 273, 9,
1934 49, 2, 50, 2, 52, 336, 26, 10, 26, 2,
1935 2, 26, 26, 26, 26, 26, 26, 336, 2, 32,
1936 28, 29, 188, 33, 2, 34, 53, 49, 188, 50,
1937 52, 2, 2, 15, 15, 15, 15, 15, 15, 15,
1938 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1939 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1940 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1941 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1942
1943 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1944 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1945 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1946 17, 69, 17, 17, 17, 17, 17, 17, 19, 69,
1947 19, 19, 19, 19, 19, 19, 17, 759, 56, 57,
1948 132, 69, 132, 22, 19, 22, 22, 22, 22, 22,
1949 22, 23, 54, 23, 23, 23, 23, 23, 23, 22,
1950 54, 98, 17, 55, 56, 59, 57, 23, 60, 79,
1951 19, 71, 65, 64, 63, 55, 63, 65, 54, 71,
1952 65, 71, 60, 111, 59, 22, 71, 63, 54, 55,
1953
1954 98, 147, 59, 23, 46, 63, 79, 63, 59, 64,
1955 46, 59, 46, 46, 55, 46, 79, 147, 46, 111,
1956 64, 46, 66, 58, 74, 66, 46, 46, 74, 46,
1957 58, 78, 66, 96, 66, 78, 46, 46, 46, 46,
1958 46, 46, 97, 46, 46, 46, 46, 46, 46, 46,
1959 46, 46, 46, 46, 46, 46, 46, 46, 46, 62,
1960 96, 61, 62, 62, 58, 101, 62, 62, 58, 97,
1961 120, 99, 58, 68, 68, 100, 113, 68, 760, 62,
1962 58, 61, 70, 68, 58, 61, 58, 58, 61, 61,
1963 70, 77, 61, 72, 101, 61, 120, 72, 99, 61,
1964
1965 110, 115, 100, 113, 70, 75, 70, 72, 70, 75,
1966 72, 761, 75, 138, 138, 76, 76, 77, 70, 75,
1967 75, 167, 118, 75, 75, 75, 76, 77, 148, 110,
1968 115, 148, 77, 140, 140, 148, 117, 119, 76, 81,
1969 81, 81, 81, 81, 81, 94, 94, 94, 94, 94,
1970 94, 118, 76, 81, 76, 762, 82, 76, 82, 82,
1971 82, 82, 82, 82, 117, 119, 144, 76, 144, 160,
1972 304, 167, 82, 160, 76, 83, 763, 83, 304, 81,
1973 83, 83, 83, 83, 83, 83, 84, 84, 84, 84,
1974 84, 84, 95, 95, 95, 95, 95, 95, 82, 85,
1975
1976 84, 85, 85, 85, 85, 85, 85, 86, 130, 86,
1977 86, 86, 86, 86, 86, 85, 172, 130, 207, 172,
1978 326, 130, 87, 86, 87, 326, 84, 87, 87, 87,
1979 87, 87, 87, 88, 88, 88, 88, 88, 88, 108,
1980 165, 85, 177, 177, 207, 190, 108, 88, 91, 86,
1981 91, 91, 91, 91, 91, 91, 92, 125, 92, 92,
1982 92, 92, 92, 92, 91, 146, 156, 134, 322, 165,
1983 322, 165, 92, 88, 190, 125, 134, 134, 146, 156,
1984 108, 183, 146, 187, 108, 193, 125, 764, 108, 176,
1985 91, 170, 192, 178, 206, 183, 108, 178, 92, 193,
1986
1987 108, 178, 108, 108, 123, 292, 170, 170, 170, 205,
1988 733, 187, 123, 123, 123, 123, 123, 123, 733, 292,
1989 192, 206, 123, 123, 123, 123, 123, 123, 176, 176,
1990 176, 198, 198, 198, 198, 198, 198, 208, 205, 176,
1991 209, 176, 210, 214, 176, 198, 176, 176, 123, 123,
1992 123, 123, 123, 123, 199, 199, 199, 199, 199, 199,
1993 200, 200, 200, 200, 200, 200, 208, 209, 210, 214,
1994 765, 198, 202, 202, 202, 202, 202, 202, 203, 215,
1995 203, 203, 203, 203, 203, 203, 202, 217, 219, 218,
1996 204, 281, 204, 220, 203, 204, 204, 204, 204, 204,
1997
1998 204, 222, 224, 231, 244, 215, 306, 244, 335, 306,
1999 245, 286, 202, 294, 219, 350, 217, 218, 245, 220,
2000 203, 321, 321, 294, 245, 350, 330, 222, 343, 231,
2001 224, 228, 228, 228, 228, 228, 228, 286, 766, 346,
2002 367, 228, 228, 228, 228, 228, 228, 424, 281, 767,
2003 367, 281, 330, 340, 343, 340, 351, 424, 340, 340,
2004 340, 340, 340, 340, 335, 346, 330, 228, 228, 228,
2005 228, 228, 228, 339, 339, 339, 339, 339, 339, 341,
2006 341, 341, 341, 341, 341, 351, 354, 339, 342, 342,
2007 342, 342, 342, 342, 352, 356, 357, 388, 404, 445,
2008
2009 768, 611, 365, 404, 388, 405, 418, 418, 499, 659,
2010 405, 418, 354, 339, 425, 439, 659, 493, 449, 505,
2011 439, 352, 449, 357, 356, 362, 362, 362, 362, 362,
2012 362, 365, 514, 648, 499, 362, 362, 362, 362, 362,
2013 362, 458, 481, 425, 514, 458, 493, 481, 505, 543,
2014 635, 770, 445, 635, 543, 404, 501, 611, 501, 648,
2015 404, 362, 362, 362, 362, 362, 362, 405, 486, 486,
2016 486, 486, 486, 486, 666, 566, 771, 439, 487, 487,
2017 487, 487, 487, 487, 501, 566, 501, 502, 502, 502,
2018 502, 502, 502, 529, 713, 713, 644, 502, 502, 502,
2019
2020 502, 502, 502, 526, 575, 649, 529, 526, 529, 575,
2021 650, 644, 772, 680, 773, 526, 680, 526, 526, 526,
2022 526, 526, 644, 502, 502, 502, 502, 502, 502, 653,
2023 736, 666, 774, 649, 653, 736, 775, 776, 777, 650,
2024 644, 778, 779, 780, 781, 782, 783, 784, 775, 785,
2025 786, 788, 789, 791, 792, 794, 795, 797, 796, 799,
2026 800, 798, 801, 802, 803, 804, 805, 806, 807, 808,
2027 809, 810, 811, 736, 812, 813, 814, 815, 816, 817,
2028 817, 813, 817, 795, 794, 796, 797, 798, 818, 819,
2029 820, 821, 822, 823, 824, 825, 826, 827, 828, 829,
2030
2031 830, 831, 832, 833, 834, 835, 836, 837, 838, 839,
2032 840, 841, 842, 843, 840, 844, 845, 846, 840, 847,
2033 848, 849, 850, 851, 852, 853, 854, 855, 856, 857,
2034 858, 859, 860, 861, 862, 863, 864, 865, 866, 867,
2035 868, 855, 869, 868, 870, 871, 873, 874, 875, 876,
2036 877, 878, 879, 880, 881, 882, 883, 884, 886, 887,
2037 888, 889, 890, 891, 892, 893, 894, 896, 897, 898,
2038 899, 900, 901, 902, 903, 904, 905, 906, 907, 908,
2039 909, 905, 910, 911, 912, 912, 913, 914, 915, 910,
2040 916, 917, 912, 918, 919, 920, 912, 921, 923, 924,
2041
2042 925, 926, 927, 916, 928, 916, 929, 930, 931, 916,
2043 932, 933, 934, 935, 936, 937, 935, 938, 939, 940,
2044 941, 942, 943, 944, 945, 946, 947, 948, 949, 950,
2045 951, 952, 953, 954, 955, 956, 957, 958, 959, 962,
2046 963, 964, 965, 966, 967, 939, 968, 969, 940, 970,
2047 971, 943, 972, 973, 974, 975, 976, 977, 978, 979,
2048 975, 980, 981, 982, 983, 984, 986, 987, 988, 989,
2049 990, 991, 992, 993, 994, 995, 997, 998, 999, 1000,
2050 1001, 1002, 1003, 1004, 1005, 1001, 1006, 1007, 1008, 1009,
2051 1010, 1011, 1012, 1013, 1014, 1017, 1018, 1019, 1020, 1021,
2052
2053 1022, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1032, 1033,
2054 1034, 1035, 1036, 1037, 1034, 1038, 1039, 1040, 1041, 1045,
2055 1046, 1047, 1048, 1041, 1049, 1050, 1051, 1052, 1053, 1055,
2056 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065,
2057 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075,
2058 1076, 1077, 1078, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
2059 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096,
2060 1097, 1098, 1101, 1099, 1102, 1103, 1100, 1104, 1105, 1106,
2061 1107, 1108, 1109, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
2062 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1097, 1096, 1125,
2063
2064 1098, 1099, 1100, 1126, 1127, 1128, 1129, 1131, 1132, 1133,
2065 1131, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142,
2066 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152,
2067 1153, 1154, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163,
2068 1164, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174,
2069 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184,
2070 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1194, 1195,
2071 1196, 1197, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206,
2072 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216,
2073 1218, 1219, 1220, 1221, 1222, 1224, 1225, 1226, 1227, 1228,
2074
2075 1162, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237,
2076 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1247, 1246,
2077 1248, 1249, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1259,
2078 1260, 1261, 1262, 1264, 1265, 1266, 1267, 1268, 1269, 1270,
2079 1271, 1272, 1273, 1274, 1275, 1244, 1246, 1247, 1248, 1276,
2080 1277, 1278, 1279, 1280, 1281, 1282, 1284, 1285, 1277, 1286,
2081 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297,
2082 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307,
2083 1309, 1310, 1311, 1312, 1313, 1309, 1314, 1315, 1316, 1317,
2084 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327,
2085
2086 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337,
2087 1338, 1339, 1340, 1342, 1343, 1344, 1345, 1346, 1347, 1348,
2088 1349, 1350, 1351, 1352, 1354, 1355, 1356, 1358, 1359, 1310,
2089 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369,
2090 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1380,
2091 1382, 1383, 1384, 1386, 1387, 1388, 1390, 1389, 1391, 1392,
2092 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1402, 1403,
2093 1404, 1405, 1406, 1407, 1408, 1410, 1411, 1412, 1413, 1414,
2094 1387, 1415, 1386, 1389, 1388, 1390, 1416, 1417, 1418, 1419,
2095 1420, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430,
2096
2097 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440,
2098 1441, 1442, 1444, 1445, 1447, 1449, 1450, 1451, 1452, 1453,
2099 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1464,
2100 1466, 1467, 1468, 1469, 1470, 1472, 1473, 1474, 1475, 1477,
2101 1478, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488,
2102 1489, 1490, 1491, 1492, 1493, 1494, 1496, 1497, 1498, 1499,
2103 1500, 1501, 1502, 1503, 1504, 1505, 1508, 1509, 1510, 1511,
2104 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521,
2105 1522, 1523, 1524, 1526, 1527, 1528, 1529, 1530, 1531, 1532,
2106 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543,
2107
2108 1544, 1545, 1546, 1547, 1548, 1520, 1521, 1549, 1550, 1522,
2109 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560,
2110 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571,
2111 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1534, 1580,
2112 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590,
2113 1592, 1584, 1593, 1594, 1596, 1597, 1598, 1599, 1600, 1601,
2114 1602, 1603, 1604, 1605, 1606, 1608, 1609, 1610, 1611, 1612,
2115 1614, 1609, 1614, 1615, 1617, 1618, 1619, 1623, 1624, 1625,
2116 1626, 1627, 1628, 1629, 1630, 1631, 1633, 1634, 1636, 1637,
2117 1638, 1639, 1643, 1640, 1637, 1641, 1644, 1645, 1646, 1647,
2118
2119 1648, 1649, 1650, 1652, 1653, 1654, 1655, 1656, 1657, 1658,
2120 1659, 1660, 1661, 1662, 1663, 1664, 1667, 1639, 1640, 1638,
2121 1668, 1641, 1669, 1670, 1671, 1672, 1674, 1675, 1676, 1678,
2122 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688,
2123 1690, 1691, 1692, 1694, 1696, 1697, 1640, 1699, 1700, 1701,
2124 1702, 1703, 1704, 1705, 1706, 1707, 1709, 1710, 1711, 1712,
2125 1713, 1714, 1715, 1716, 1717, 1720, 1721, 1723, 1725, 1726,
2126 1725, 1727, 1728, 1725, 1729, 1730, 1725, 1731, 1732, 1733,
2127 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1743, 1745,
2128 1746, 1748, 1749, 1750, 1752, 1751, 1753, 1754, 1755, 1757,
2129
2130 1759, 1760, 1762, 1764, 1765, 1766, 1767, 1768, 1769, 1770,
2131 1772, 1771, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1749,
2132 1750, 1751, 1771, 1752, 1753, 1780, 1781, 1782, 1783, 1784,
2133 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1793,
2134 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803,
2135 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813,
2136 1814, 1815, 1816, 1817, 1819, 1820, 1821, 1822, 1823, 1824,
2137 1825, 1826, 1827, 1829, 1830, 1831, 1832, 1833, 1834, 1835,
2138 1836, 1837, 1838, 1839, 1841, 1842, 1843, 1845, 1846, 1847,
2139 1849, 1848, 1850, 1851, 1854, 1855, 1858, 1859, 1860, 1861,
2140
2141 1862, 1863, 1794, 1864, 1865, 1866, 1867, 1868, 1869, 1870,
2142 1871, 1872, 1873, 1874, 1875, 1847, 1877, 1846, 1848, 1849,
2143 1879, 1850, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887,
2144 1888, 1890, 1891, 1892, 1893, 1894, 1896, 1897, 1899, 1900,
2145 1901, 1903, 1904, 1905, 1907, 1908, 1909, 1912, 1913, 1914,
2146 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924,
2147 1925, 1926, 1927, 1929, 1930, 1931, 1932, 1933, 1934, 1935,
2148 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1945, 1946, 1947,
2149 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959,
2150 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1938, 1940,
2151
2152 1968, 1969, 1970, 1972, 1973, 1974, 1976, 1977, 1978, 1979,
2153 1980, 1982, 1983, 1984, 1985, 1986, 1988, 1989, 1990, 1991,
2154 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002,
2155 2003, 2005, 2007, 2008, 2010, 2011, 2005, 2012, 2013, 2015,
2156 2017, 2020, 2018, 2021, 2023, 2024, 2025, 2026, 2027, 2028,
2157 2029, 2030, 2032, 2033, 2034, 2035, 2037, 2038, 2039, 2040,
2158 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2017, 2018, 2048,
2159 2049, 2050, 2051, 2052, 2053, 2055, 2056, 2057, 2059, 2060,
2160 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2071,
2161 2073, 2074, 2075, 2076, 2077, 2080, 2081, 2082, 2083, 2084,
2162
2163 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2094, 2095,
2164 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105,
2165 2106, 2107, 2081, 2082, 2109, 2083, 2110, 2112, 2113, 2114,
2166 2115, 2116, 2117, 2118, 2119, 2121, 2122, 2123, 2124, 2125,
2167 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2131, 2134,
2168 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144,
2169 2145, 2146, 2147, 2148, 2149, 2150, 2152, 2153, 2154, 2155,
2170 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2136, 2138,
2171 2164, 2165, 2167, 2170, 2172, 2173, 2174, 2175, 2176, 2177,
2172 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187,
2173
2174 2188, 2190, 2191, 2193, 2194, 2195, 2196, 2197, 2198, 2199,
2175 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209,
2176 2211, 2212, 2213, 2214, 2215, 2216, 2188, 2218, 2190, 2220,
2177 2222, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2232, 2234,
2178 2235, 2237, 2236, 2238, 2239, 2240, 2241, 2242, 2243, 2244,
2179 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2254, 2255, 2256,
2180 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2235, 2236, 2264,
2181 2265, 2266, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275,
2182 2276, 2277, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286,
2183 2287, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297,
2184
2185 2298, 2299, 2300, 2273, 2301, 2302, 2303, 2304, 2305, 2306,
2186 2307, 2308, 2310, 2312, 2313, 2314, 2316, 2317, 2318, 2319,
2187 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2330, 2331, 2334,
2188 2335, 2336, 2337, 2338, 2339, 2340, 2342, 2343, 2344, 2346,
2189 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356,
2190 2359, 2360, 2361, 2362, 2363, 2364, 2366, 2367, 2368, 2370,
2191 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2382,
2192 2383, 2384, 2385, 2386, 2385, 2387, 2388, 2389, 2390, 2391,
2193 2393, 2394, 2396, 2399, 2400, 2401, 2402, 2403, 2404, 2405,
2194 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415,
2195
2196 2416, 2417, 2418, 2419, 2421, 2422, 2424, 2425, 2426, 2429,
2197 2430, 2431, 2432, 2433, 2435, 2436, 2438, 2439, 2441, 2444,
2198 2445, 2447, 2448, 2449, 2450, 2451, 2453, 2458, 2458, 2458,
2199 2459, 2459, 2459, 2460, 2461, 2460, 2462, 2462, 2462, 2463,
2200 2463, 2463, 2464, 758, 2464, 2465, 2465, 2465, 757, 756,
2201 754, 753, 752, 751, 749, 748, 747, 746, 745, 743,
2202 742, 741, 740, 739, 738, 737, 735, 734, 732, 731,
2203 730, 729, 728, 727, 726, 725, 724, 723, 722, 721,
2204 720, 719, 718, 717, 716, 715, 714, 712, 711, 710,
2205 709, 708, 707, 705, 704, 703, 702, 701, 700, 699,
2206
2207 697, 696, 695, 694, 693, 692, 691, 690, 689, 688,
2208 687, 686, 685, 684, 683, 682, 681, 679, 678, 677,
2209 676, 675, 674, 673, 672, 671, 670, 669, 668, 667,
2210 665, 664, 663, 662, 661, 660, 658, 656, 655, 652,
2211 651, 643, 642, 641, 640, 639, 638, 637, 636, 633,
2212 632, 629, 628, 626, 625, 624, 623, 622, 621, 620,
2213 619, 618, 617, 616, 615, 614, 613, 612, 610, 609,
2214 608, 607, 606, 605, 604, 603, 602, 601, 600, 599,
2215 598, 597, 596, 595, 594, 593, 591, 590, 588, 587,
2216 586, 585, 584, 583, 582, 581, 580, 579, 578, 577,
2217
2218 576, 574, 573, 571, 570, 569, 568, 567, 565, 564,
2219 563, 562, 561, 560, 559, 558, 557, 556, 555, 554,
2220 553, 552, 551, 549, 548, 547, 545, 544, 542, 541,
2221 540, 539, 538, 537, 536, 535, 534, 532, 531, 530,
2222 528, 527, 524, 523, 522, 521, 520, 519, 517, 516,
2223 515, 513, 512, 511, 510, 509, 508, 507, 506, 504,
2224 503, 498, 496, 495, 494, 492, 491, 490, 485, 484,
2225 483, 482, 480, 479, 478, 476, 475, 474, 473, 472,
2226 471, 470, 469, 468, 467, 466, 465, 464, 463, 462,
2227 461, 460, 459, 457, 456, 455, 454, 453, 452, 451,
2228
2229 450, 448, 447, 446, 444, 442, 441, 440, 438, 437,
2230 436, 435, 434, 433, 432, 431, 430, 429, 428, 427,
2231 426, 423, 422, 421, 420, 419, 417, 416, 415, 414,
2232 413, 412, 411, 410, 409, 408, 407, 406, 403, 402,
2233 401, 400, 399, 398, 397, 396, 395, 394, 393, 392,
2234 391, 390, 389, 387, 386, 385, 384, 383, 382, 381,
2235 380, 379, 378, 377, 376, 375, 374, 373, 372, 371,
2236 370, 369, 368, 366, 364, 363, 361, 359, 355, 353,
2237 349, 338, 337, 334, 333, 332, 331, 329, 328, 327,
2238 325, 324, 323, 320, 319, 318, 317, 316, 315, 314,
2239
2240 313, 312, 311, 310, 309, 308, 307, 305, 303, 302,
2241 301, 300, 299, 298, 297, 296, 295, 293, 291, 290,
2242 289, 288, 287, 285, 284, 283, 282, 280, 279, 278,
2243 277, 276, 275, 274, 272, 271, 269, 268, 267, 266,
2244 265, 264, 263, 262, 261, 260, 259, 258, 257, 256,
2245 255, 254, 253, 252, 251, 250, 249, 248, 247, 246,
2246 243, 242, 241, 240, 239, 238, 237, 236, 235, 234,
2247 233, 232, 230, 229, 225, 223, 221, 216, 213, 211,
2248 197, 196, 195, 194, 191, 189, 186, 185, 184, 182,
2249 181, 180, 179, 175, 174, 173, 171, 169, 168, 166,
2250
2251 164, 163, 162, 161, 159, 158, 157, 155, 154, 153,
2252 152, 151, 150, 149, 145, 143, 142, 141, 139, 137,
2253 136, 135, 133, 131, 129, 128, 127, 126, 124, 121,
2254 116, 112, 109, 104, 103, 73, 67, 51, 48, 44,
2255 42, 40, 39, 25, 14, 11, 2457, 2457, 2457, 2457,
2256 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
2257 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
2258 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
2259 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
2260 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
2261
2262 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
2263 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457, 2457,
2264 2457, 2457, 2457, 2457
2265 } ;
2266
2267static yy_state_type yy_last_accepting_state;
2268static char *yy_last_accepting_cpos;
2269
2270extern int yy_flex_debug;
2272
2273static const flex_int16_t yy_rule_linenum[251] =
2274 { 0,
2275 147, 149, 151, 156, 157, 162, 163, 164, 176, 178,
2276 183, 189, 198, 207, 216, 225, 234, 243, 252, 262,
2277 271, 280, 289, 298, 307, 316, 325, 334, 343, 352,
2278 361, 370, 379, 388, 397, 410, 422, 434, 445, 456,
2279 467, 478, 489, 500, 511, 522, 533, 544, 553, 562,
2280 571, 582, 593, 602, 614, 626, 638, 649, 658, 667,
2281 676, 685, 694, 705, 717, 729, 741, 752, 763, 772,
2282 781, 790, 801, 810, 819, 831, 843, 855, 867, 879,
2283 891, 903, 914, 926, 935, 944, 953, 962, 974, 986,
2284 998, 1010, 1020, 1031, 1040, 1050, 1064, 1081, 1090, 1099,
2285
2286 1108, 1117, 1126, 1135, 1160, 1185, 1194, 1204, 1213, 1224,
2287 1235, 1246, 1256, 1265, 1276, 1287, 1298, 1309, 1320, 1331,
2288 1340, 1349, 1358, 1367, 1376, 1385, 1394, 1403, 1412, 1421,
2289 1435, 1446, 1457, 1469, 1478, 1487, 1496, 1505, 1515, 1525,
2290 1535, 1545, 1555, 1565, 1574, 1584, 1593, 1602, 1611, 1620,
2291 1630, 1639, 1648, 1657, 1666, 1675, 1684, 1693, 1702, 1711,
2292 1720, 1729, 1738, 1747, 1756, 1765, 1774, 1783, 1792, 1801,
2293 1810, 1819, 1828, 1837, 1846, 1855, 1864, 1873, 1882, 1891,
2294 1900, 1909, 1921, 1930, 1939, 1948, 1957, 1966, 1975, 1984,
2295 1993, 2002, 2011, 2020, 2029, 2038, 2047, 2056, 2065, 2077,
2296
2297 2089, 2099, 2109, 2119, 2129, 2139, 2149, 2159, 2169, 2179,
2298 2188, 2197, 2206, 2215, 2226, 2237, 2250, 2263, 2276, 2285,
2299 2294, 2303, 2312, 2321, 2330, 2339, 2348, 2360, 2369, 2470,
2300 2486, 2535, 2543, 2558, 2559, 2560, 2561, 2562, 2563, 2565,
2301 2584, 2601, 2607, 2622, 2635, 2640, 2644, 2646, 2648, 2650
2302 } ;
2303
2304/* The intent behind this definition is that it'll catch
2305 * any uses of REJECT which flex missed.
2306 */
2307#define REJECT reject_used_but_not_detected
2308#define yymore() yymore_used_but_not_detected
2309#define YY_MORE_ADJ 0
2310#define YY_RESTORE_YY_MORE_OFFSET
2312#line 1 "dhcp4_lexer.ll"
2313/* Copyright (C) 2016-2026 Internet Systems Consortium, Inc. ("ISC")
2314
2315 This Source Code Form is subject to the terms of the Mozilla Public
2316 License, v. 2.0. If a copy of the MPL was not distributed with this
2317 file, You can obtain one at http://mozilla.org/MPL/2.0/. */
2318#line 8 "dhcp4_lexer.ll"
2319
2320/* Generated files do not make clang static analyser so happy */
2321#ifndef __clang_analyzer__
2322
2323#include <cctype>
2324#include <cerrno>
2325#include <climits>
2326#include <cstdint>
2327#include <cstdlib>
2328#include <string>
2329#include <dhcp4/parser_context.h>
2330#include <asiolink/io_address.h>
2331#include <boost/lexical_cast.hpp>
2332#include <exceptions/exceptions.h>
2333
2334/* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
2335
2336/* Work around an incompatibility in flex (at least versions
2337 2.5.31 through 2.5.33): it generates code that does
2338 not conform to C89. See Debian bug 333231
2339 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
2340# undef yywrap
2341# define yywrap() 1
2342
2343namespace {
2344
2345bool start_token_flag = false;
2346
2348unsigned int comment_start_line = 0;
2349
2350using namespace isc::dhcp;
2351
2352};
2353
2354/* To avoid the call to exit... oops! */
2355#define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
2356#line 2356 "dhcp4_lexer.cc"
2357/* noyywrap disables automatic rewinding for the next file to parse. Since we
2358 always parse only a single string, there's no need to do any wraps. And
2359 using yywrap requires linking with -lfl, which provides the default yywrap
2360 implementation that always returns 1 anyway. */
2361/* nounput simplifies the lexer, by removing support for putting a character
2362 back into the input stream. We never use such capability anyway. */
2363/* batch means that we'll never use the generated lexer interactively. */
2364/* avoid to get static global variables to remain with C++. */
2365/* in last resort %option reentrant */
2366/* Enables debug mode. To see the debug messages, one needs to also set
2367 yy_flex_debug to 1, then the debug messages will be printed on stderr. */
2368/* I have no idea what this option does, except it was specified in the bison
2369 examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
2370 be on the safe side and keep it. */
2371#define YY_NO_INPUT 1
2372
2373/* These are not token expressions yet, just convenience expressions that
2374 can be used during actual token definitions. Note some can match
2375 incorrect inputs (e.g., IP addresses) which must be checked. */
2376/* for errors */
2377#line 96 "dhcp4_lexer.ll"
2378/* This code run each time a pattern is matched. It updates the location
2379 by moving it ahead by yyleng bytes. yyleng specifies the length of the
2380 currently matched token. */
2381#define YY_USER_ACTION driver.loc_.columns(yyleng);
2382#line 2382 "dhcp4_lexer.cc"
2383#line 2383 "dhcp4_lexer.cc"
2384
2385#define INITIAL 0
2386#define COMMENT 1
2387#define DIR_ENTER 2
2388#define DIR_INCLUDE 3
2389#define DIR_EXIT 4
2390
2391#ifndef YY_NO_UNISTD_H
2392/* Special case for "unistd.h", since it is non-ANSI. We include it way
2393 * down here because we want the user's section 1 to have been scanned first.
2394 * The user has a chance to override it with an option.
2395 */
2396/* %if-c-only */
2397#include <unistd.h>
2398/* %endif */
2399/* %if-c++-only */
2400/* %endif */
2401#endif
2402
2403#ifndef YY_EXTRA_TYPE
2404#define YY_EXTRA_TYPE void *
2405#endif
2406
2407/* %if-c-only Reentrant structure and macros (non-C++). */
2408/* %if-reentrant */
2409/* %if-c-only */
2410
2411static int yy_init_globals ( void );
2412
2413/* %endif */
2414/* %if-reentrant */
2415/* %endif */
2416/* %endif End reentrant structures and macros. */
2417
2418/* Accessor methods to globals.
2419 These are made visible to non-reentrant scanners for convenience. */
2420
2421int yylex_destroy ( void );
2422
2423int yyget_debug ( void );
2424
2425void yyset_debug ( int debug_flag );
2426
2427YY_EXTRA_TYPE yyget_extra ( void );
2428
2429void yyset_extra ( YY_EXTRA_TYPE user_defined );
2430
2431FILE *yyget_in ( void );
2432
2433void yyset_in ( FILE * _in_str );
2434
2435FILE *yyget_out ( void );
2436
2437void yyset_out ( FILE * _out_str );
2438
2439 int yyget_leng ( void );
2440
2441char *yyget_text ( void );
2442
2443int yyget_lineno ( void );
2444
2445void yyset_lineno ( int _line_number );
2446
2447/* %if-bison-bridge */
2448/* %endif */
2449
2450/* Macros after this point can all be overridden by user definitions in
2451 * section 1.
2452 */
2453
2454#ifndef YY_SKIP_YYWRAP
2455#ifdef __cplusplus
2456extern "C" int yywrap ( void );
2457#else
2458extern int yywrap ( void );
2459#endif
2460#endif
2461
2462/* %not-for-header */
2463#ifndef YY_NO_UNPUT
2464
2465#endif
2466/* %ok-for-header */
2467
2468/* %endif */
2469
2470#ifndef yytext_ptr
2471static void yy_flex_strncpy ( char *, const char *, int );
2472#endif
2473
2474#ifdef YY_NEED_STRLEN
2475static int yy_flex_strlen ( const char * );
2476#endif
2477
2478#ifndef YY_NO_INPUT
2479/* %if-c-only Standard (non-C++) definition */
2480/* %not-for-header */
2481#ifdef __cplusplus
2482static int yyinput ( void );
2483#else
2484static int input ( void );
2485#endif
2486/* %ok-for-header */
2487
2488/* %endif */
2489#endif
2490
2491/* %if-c-only */
2492
2493/* %endif */
2494
2495/* Amount of stuff to slurp up with each read. */
2496#ifndef YY_READ_BUF_SIZE
2497#ifdef __ia64__
2498/* On IA-64, the buffer size is 16k, not 8k */
2499#define YY_READ_BUF_SIZE 16384
2500#else
2501#define YY_READ_BUF_SIZE 8192
2502#endif /* __ia64__ */
2503#endif
2504
2505/* Copy whatever the last rule matched to the standard output. */
2506#ifndef ECHO
2507/* %if-c-only Standard (non-C++) definition */
2508/* This used to be an fputs(), but since the string might contain NUL's,
2509 * we now use fwrite().
2510 */
2511#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2512/* %endif */
2513/* %if-c++-only C++ definition */
2514/* %endif */
2515#endif
2516
2517/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2518 * is returned in "result".
2519 */
2520#ifndef YY_INPUT
2521#define YY_INPUT(buf,result,max_size) \
2522/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2523 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2524 { \
2525 int c = '*'; \
2526 int n; \
2527 for ( n = 0; n < max_size && \
2528 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2529 buf[n] = (char) c; \
2530 if ( c == '\n' ) \
2531 buf[n++] = (char) c; \
2532 if ( c == EOF && ferror( yyin ) ) \
2533 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2534 result = n; \
2535 } \
2536 else \
2537 { \
2538 errno=0; \
2539 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2540 { \
2541 if( errno != EINTR) \
2542 { \
2543 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2544 break; \
2545 } \
2546 errno=0; \
2547 clearerr(yyin); \
2548 } \
2549 }\
2550\
2551/* %if-c++-only C++ definition \ */\
2552/* %endif */
2553
2554#endif
2555
2556/* No semi-colon after return; correct usage is to write "yyterminate();" -
2557 * we don't want an extra ';' after the "return" because that will cause
2558 * some compilers to complain about unreachable statements.
2559 */
2560#ifndef yyterminate
2561#define yyterminate() return YY_NULL
2562#endif
2563
2564/* Number of entries by which start-condition stack grows. */
2565#ifndef YY_START_STACK_INCR
2566#define YY_START_STACK_INCR 25
2567#endif
2568
2569/* Report a fatal error. */
2570#ifndef YY_FATAL_ERROR
2571/* %if-c-only */
2572#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2573/* %endif */
2574/* %if-c++-only */
2575/* %endif */
2576#endif
2577
2578/* %if-tables-serialization structures and prototypes */
2579/* %not-for-header */
2580/* %ok-for-header */
2581
2582/* %not-for-header */
2583/* %tables-yydmap generated elements */
2584/* %endif */
2585/* end tables serialization structures and prototypes */
2586
2587/* %ok-for-header */
2588
2589/* Default declaration of generated scanner - a define so the user can
2590 * easily add parameters.
2591 */
2592#ifndef YY_DECL
2593#define YY_DECL_IS_OURS 1
2594/* %if-c-only Standard (non-C++) definition */
2595
2596extern int yylex (void);
2597
2598#define YY_DECL int yylex (void)
2599/* %endif */
2600/* %if-c++-only C++ definition */
2601/* %endif */
2602#endif /* !YY_DECL */
2603
2604/* Code executed at the beginning of each rule, after yytext and yyleng
2605 * have been set up.
2606 */
2607#ifndef YY_USER_ACTION
2608#define YY_USER_ACTION
2609#endif
2610
2611/* Code executed at the end of each rule. */
2612#ifndef YY_BREAK
2613#define YY_BREAK /*LINTED*/break;
2614#endif
2615
2616/* %% [6.0] YY_RULE_SETUP definition goes here */
2617#define YY_RULE_SETUP \
2618 YY_USER_ACTION
2619
2620/* %not-for-header */
2624{
2625 yy_state_type yy_current_state;
2626 char *yy_cp, *yy_bp;
2628
2629 if ( !(yy_init) )
2630 {
2631 (yy_init) = 1;
2632
2633#ifdef YY_USER_INIT
2634 YY_USER_INIT;
2635#endif
2636
2637 if ( ! (yy_start) )
2638 (yy_start) = 1; /* first start state */
2639
2640 if ( ! yyin )
2641/* %if-c-only */
2642 yyin = stdin;
2643/* %endif */
2644/* %if-c++-only */
2645/* %endif */
2646
2647 if ( ! yyout )
2648/* %if-c-only */
2649 yyout = stdout;
2650/* %endif */
2651/* %if-c++-only */
2652/* %endif */
2653
2654 if ( ! YY_CURRENT_BUFFER ) {
2658 }
2659
2661 }
2662
2663 {
2664/* %% [7.0] user's declarations go here */
2665#line 102 "dhcp4_lexer.ll"
2666
2667
2668
2669#line 106 "dhcp4_lexer.ll"
2670 /* This part of the code is copied over to the verbatim to the top
2671 of the generated yylex function. Explanation:
2672 http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2673
2674 /* Code run each time yylex is called. */
2675 driver.loc_.step();
2676
2677 if (start_token_flag) {
2678 start_token_flag = false;
2679 switch (start_token_value) {
2681 default:
2686 return isc::dhcp::Dhcp4Parser::make_SUB_DHCP4(driver.loc_);
2690 return isc::dhcp::Dhcp4Parser::make_SUB_SUBNET4(driver.loc_);
2692 return isc::dhcp::Dhcp4Parser::make_SUB_POOL4(driver.loc_);
2707 }
2708 }
2709
2710
2711#line 2711 "dhcp4_lexer.cc"
2712
2713 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2714 {
2715/* %% [8.0] yymore()-related code goes here */
2716 yy_cp = (yy_c_buf_p);
2717
2718 /* Support of yytext. */
2719 *yy_cp = (yy_hold_char);
2720
2721 /* yy_bp points to the position in yy_ch_buf of the start of
2722 * the current run.
2723 */
2724 yy_bp = yy_cp;
2725
2726/* %% [9.0] code to set up and find next match goes here */
2727 yy_current_state = (yy_start);
2728yy_match:
2729 do
2730 {
2731 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2732 if ( yy_accept[yy_current_state] )
2733 {
2734 (yy_last_accepting_state) = yy_current_state;
2735 (yy_last_accepting_cpos) = yy_cp;
2736 }
2737 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2738 {
2739 yy_current_state = (int) yy_def[yy_current_state];
2740 if ( yy_current_state >= 2458 )
2741 yy_c = yy_meta[yy_c];
2742 }
2743 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2744 ++yy_cp;
2745 }
2746 while ( yy_current_state != 2457 );
2747 yy_cp = (yy_last_accepting_cpos);
2748 yy_current_state = (yy_last_accepting_state);
2749
2750yy_find_action:
2751/* %% [10.0] code to find the action number goes here */
2752 yy_act = yy_accept[yy_current_state];
2753
2755
2756/* %% [11.0] code for yylineno update goes here */
2757
2758do_action: /* This label is used only to access EOF actions. */
2759
2760/* %% [12.0] debug code goes here */
2761 if ( yy_flex_debug )
2762 {
2763 if ( yy_act == 0 )
2764 fprintf( stderr, "--scanner backing up\n" );
2765 else if ( yy_act < 251 )
2766 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2767 (long)yy_rule_linenum[yy_act], yytext );
2768 else if ( yy_act == 251 )
2769 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2770 yytext );
2771 else if ( yy_act == 252 )
2772 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2773 else
2774 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2775 }
2776
2777 switch ( yy_act )
2778 { /* beginning of action switch */
2779/* %% [13.0] actions go here */
2780 case 0: /* must back up */
2781 /* undo the effects of YY_DO_BEFORE_ACTION */
2782 *yy_cp = (yy_hold_char);
2783 yy_cp = (yy_last_accepting_cpos);
2784 yy_current_state = (yy_last_accepting_state);
2785 goto yy_find_action;
2786
2787case 1:
2789#line 147 "dhcp4_lexer.ll"
2790;
2791 YY_BREAK
2792case 2:
2794#line 149 "dhcp4_lexer.ll"
2795;
2796 YY_BREAK
2797case 3:
2799#line 151 "dhcp4_lexer.ll"
2800{
2801 BEGIN(COMMENT);
2802 comment_start_line = driver.loc_.end.line;;
2803}
2804 YY_BREAK
2805case 4:
2807#line 156 "dhcp4_lexer.ll"
2808BEGIN(INITIAL);
2809 YY_BREAK
2810case 5:
2812#line 157 "dhcp4_lexer.ll"
2813;
2814 YY_BREAK
2815case YY_STATE_EOF(COMMENT):
2816#line 158 "dhcp4_lexer.ll"
2817{
2818 isc_throw(Dhcp4ParseError, "Comment not closed. (/* in line " << comment_start_line);
2819}
2820 YY_BREAK
2821case 6:
2823#line 162 "dhcp4_lexer.ll"
2825 YY_BREAK
2826case 7:
2828#line 163 "dhcp4_lexer.ll"
2830 YY_BREAK
2831case 8:
2833#line 164 "dhcp4_lexer.ll"
2834{
2835 /* Include directive. */
2836
2837 /* Extract the filename. */
2838 std::string tmp(yytext+1);
2839 tmp.resize(tmp.size() - 1);
2840
2841 driver.includeFile(tmp);
2842}
2843 YY_BREAK
2847#line 173 "dhcp4_lexer.ll"
2848{
2849 isc_throw(Dhcp4ParseError, "Directive not closed.");
2850}
2851 YY_BREAK
2852case 9:
2854#line 176 "dhcp4_lexer.ll"
2855BEGIN(INITIAL);
2856 YY_BREAK
2857case 10:
2859#line 178 "dhcp4_lexer.ll"
2860{
2861 /* Ok, we found a with space. Let's ignore it and update loc variable. */
2862 driver.loc_.step();
2863}
2864 YY_BREAK
2865case 11:
2866/* rule 11 can match eol */
2868#line 183 "dhcp4_lexer.ll"
2869{
2870 /* Newline found. Let's update the location and continue. */
2871 driver.loc_.lines(yyleng);
2872 driver.loc_.step();
2873}
2874 YY_BREAK
2875case 12:
2877#line 189 "dhcp4_lexer.ll"
2878{
2879 switch(driver.ctx_) {
2881 return isc::dhcp::Dhcp4Parser::make_DHCP4(driver.loc_);
2882 default:
2883 return isc::dhcp::Dhcp4Parser::make_STRING("Dhcp4", driver.loc_);
2884 }
2885}
2886 YY_BREAK
2887case 13:
2889#line 198 "dhcp4_lexer.ll"
2890{
2891 switch(driver.ctx_) {
2894 default:
2895 return isc::dhcp::Dhcp4Parser::make_STRING("interfaces-config", driver.loc_);
2896 }
2897}
2898 YY_BREAK
2899case 14:
2901#line 207 "dhcp4_lexer.ll"
2902{
2903 switch(driver.ctx_) {
2906 default:
2907 return isc::dhcp::Dhcp4Parser::make_STRING("sanity-checks", driver.loc_);
2908 }
2909}
2910 YY_BREAK
2911case 15:
2913#line 216 "dhcp4_lexer.ll"
2914{
2915 switch(driver.ctx_) {
2918 default:
2919 return isc::dhcp::Dhcp4Parser::make_STRING("lease-checks", driver.loc_);
2920 }
2921}
2922 YY_BREAK
2923case 16:
2925#line 225 "dhcp4_lexer.ll"
2926{
2927 switch(driver.ctx_) {
2930 default:
2931 return isc::dhcp::Dhcp4Parser::make_STRING("extended-info-checks", driver.loc_);
2932 }
2933}
2934 YY_BREAK
2935case 17:
2937#line 234 "dhcp4_lexer.ll"
2938{
2939 switch(driver.ctx_) {
2942 default:
2943 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-socket-type", driver.loc_);
2944 }
2945}
2946 YY_BREAK
2947case 18:
2949#line 243 "dhcp4_lexer.ll"
2950{
2951 switch(driver.ctx_) {
2953 return isc::dhcp::Dhcp4Parser::make_RAW(driver.loc_);
2954 default:
2955 return isc::dhcp::Dhcp4Parser::make_STRING("raw", driver.loc_);
2956 }
2957}
2958 YY_BREAK
2959case 19:
2961#line 252 "dhcp4_lexer.ll"
2962{
2963 switch(driver.ctx_) {
2966 return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_);
2967 default:
2968 return isc::dhcp::Dhcp4Parser::make_STRING("udp", driver.loc_);
2969 }
2970}
2971 YY_BREAK
2972case 20:
2974#line 262 "dhcp4_lexer.ll"
2975{
2976 switch(driver.ctx_) {
2979 default:
2980 return isc::dhcp::Dhcp4Parser::make_STRING("outbound-interface", driver.loc_);
2981 }
2982}
2983 YY_BREAK
2984case 21:
2986#line 271 "dhcp4_lexer.ll"
2987{
2988 switch(driver.ctx_) {
2990 return Dhcp4Parser::make_SAME_AS_INBOUND(driver.loc_);
2991 default:
2992 return Dhcp4Parser::make_STRING("same-as-inbound", driver.loc_);
2993 }
2994}
2995 YY_BREAK
2996case 22:
2998#line 280 "dhcp4_lexer.ll"
2999{
3000 switch(driver.ctx_) {
3002 return Dhcp4Parser::make_USE_ROUTING(driver.loc_);
3003 default:
3004 return Dhcp4Parser::make_STRING("use-routing", driver.loc_);
3005 }
3006}
3007 YY_BREAK
3008case 23:
3010#line 289 "dhcp4_lexer.ll"
3011{
3012 switch(driver.ctx_) {
3014 return isc::dhcp::Dhcp4Parser::make_INTERFACES(driver.loc_);
3015 default:
3016 return isc::dhcp::Dhcp4Parser::make_STRING("interfaces", driver.loc_);
3017 }
3018}
3019 YY_BREAK
3020case 24:
3022#line 298 "dhcp4_lexer.ll"
3023{
3024 switch(driver.ctx_) {
3026 return isc::dhcp::Dhcp4Parser::make_RE_DETECT(driver.loc_);
3027 default:
3028 return isc::dhcp::Dhcp4Parser::make_STRING("re-detect", driver.loc_);
3029 }
3030}
3031 YY_BREAK
3032case 25:
3034#line 307 "dhcp4_lexer.ll"
3035{
3036 switch(driver.ctx_) {
3039 default:
3040 return isc::dhcp::Dhcp4Parser::make_STRING("service-sockets-require-all", driver.loc_);
3041 }
3042}
3043 YY_BREAK
3044case 26:
3046#line 316 "dhcp4_lexer.ll"
3047{
3048 switch(driver.ctx_) {
3051 default:
3052 return isc::dhcp::Dhcp4Parser::make_STRING("service-sockets-retry-wait-time", driver.loc_);
3053 }
3054}
3055 YY_BREAK
3056case 27:
3058#line 325 "dhcp4_lexer.ll"
3059{
3060 switch(driver.ctx_) {
3063 default:
3064 return isc::dhcp::Dhcp4Parser::make_STRING("service-sockets-max-retries", driver.loc_);
3065 }
3066}
3067 YY_BREAK
3068case 28:
3070#line 334 "dhcp4_lexer.ll"
3071{
3072 switch(driver.ctx_) {
3075 default:
3076 return isc::dhcp::Dhcp4Parser::make_STRING("lease-database", driver.loc_);
3077 }
3078}
3079 YY_BREAK
3080case 29:
3082#line 343 "dhcp4_lexer.ll"
3083{
3084 switch(driver.ctx_) {
3087 default:
3088 return isc::dhcp::Dhcp4Parser::make_STRING("hosts-database", driver.loc_);
3089 }
3090}
3091 YY_BREAK
3092case 30:
3094#line 352 "dhcp4_lexer.ll"
3095{
3096 switch(driver.ctx_) {
3099 default:
3100 return isc::dhcp::Dhcp4Parser::make_STRING("hosts-databases", driver.loc_);
3101 }
3102}
3103 YY_BREAK
3104case 31:
3106#line 361 "dhcp4_lexer.ll"
3107{
3108 switch(driver.ctx_) {
3111 default:
3112 return isc::dhcp::Dhcp4Parser::make_STRING("config-control", driver.loc_);
3113 }
3114}
3115 YY_BREAK
3116case 32:
3118#line 370 "dhcp4_lexer.ll"
3119{
3120 switch(driver.ctx_) {
3123 default:
3124 return isc::dhcp::Dhcp4Parser::make_STRING("config-databases", driver.loc_);
3125 }
3126}
3127 YY_BREAK
3128case 33:
3130#line 379 "dhcp4_lexer.ll"
3131{
3132 switch(driver.ctx_) {
3135 default:
3136 return isc::dhcp::Dhcp4Parser::make_STRING("config-fetch-wait-time", driver.loc_);
3137 }
3138}
3139 YY_BREAK
3140case 34:
3142#line 388 "dhcp4_lexer.ll"
3143{
3144 switch(driver.ctx_) {
3146 return isc::dhcp::Dhcp4Parser::make_READONLY(driver.loc_);
3147 default:
3148 return isc::dhcp::Dhcp4Parser::make_STRING("readonly", driver.loc_);
3149 }
3150}
3151 YY_BREAK
3152case 35:
3154#line 397 "dhcp4_lexer.ll"
3155{
3156 switch(driver.ctx_) {
3162 return isc::dhcp::Dhcp4Parser::make_TYPE(driver.loc_);
3163 default:
3164 return isc::dhcp::Dhcp4Parser::make_STRING("type", driver.loc_);
3165 }
3166}
3167 YY_BREAK
3168case 36:
3170#line 410 "dhcp4_lexer.ll"
3171{
3172 switch(driver.ctx_) {
3177 return isc::dhcp::Dhcp4Parser::make_USER(driver.loc_);
3178 default:
3179 return isc::dhcp::Dhcp4Parser::make_STRING("user", driver.loc_);
3180 }
3181}
3182 YY_BREAK
3183case 37:
3185#line 422 "dhcp4_lexer.ll"
3186{
3187 switch(driver.ctx_) {
3192 return isc::dhcp::Dhcp4Parser::make_PASSWORD(driver.loc_);
3193 default:
3194 return isc::dhcp::Dhcp4Parser::make_STRING("password", driver.loc_);
3195 }
3196}
3197 YY_BREAK
3198case 38:
3200#line 434 "dhcp4_lexer.ll"
3201{
3202 switch(driver.ctx_) {
3206 return isc::dhcp::Dhcp4Parser::make_HOST(driver.loc_);
3207 default:
3208 return isc::dhcp::Dhcp4Parser::make_STRING("host", driver.loc_);
3209 }
3210}
3211 YY_BREAK
3212case 39:
3214#line 445 "dhcp4_lexer.ll"
3215{
3216 switch(driver.ctx_) {
3220 return isc::dhcp::Dhcp4Parser::make_PORT(driver.loc_);
3221 default:
3222 return isc::dhcp::Dhcp4Parser::make_STRING("port", driver.loc_);
3223 }
3224}
3225 YY_BREAK
3226case 40:
3228#line 456 "dhcp4_lexer.ll"
3229{
3230 switch(driver.ctx_) {
3234 return isc::dhcp::Dhcp4Parser::make_PERSIST(driver.loc_);
3235 default:
3236 return isc::dhcp::Dhcp4Parser::make_STRING("persist", driver.loc_);
3237 }
3238}
3239 YY_BREAK
3240case 41:
3242#line 467 "dhcp4_lexer.ll"
3243{
3244 switch(driver.ctx_) {
3249 default:
3250 return isc::dhcp::Dhcp4Parser::make_STRING("lfc-interval", driver.loc_);
3251 }
3252}
3253 YY_BREAK
3254case 42:
3256#line 478 "dhcp4_lexer.ll"
3257{
3258 switch(driver.ctx_) {
3263 default:
3264 return isc::dhcp::Dhcp4Parser::make_STRING("connect-timeout", driver.loc_);
3265 }
3266}
3267 YY_BREAK
3268case 43:
3270#line 489 "dhcp4_lexer.ll"
3271{
3272 switch(driver.ctx_) {
3277 default:
3278 return isc::dhcp::Dhcp4Parser::make_STRING("read-timeout", driver.loc_);
3279 }
3280}
3281 YY_BREAK
3282case 44:
3284#line 500 "dhcp4_lexer.ll"
3285{
3286 switch(driver.ctx_) {
3291 default:
3292 return isc::dhcp::Dhcp4Parser::make_STRING("write-timeout", driver.loc_);
3293 }
3294}
3295 YY_BREAK
3296case 45:
3298#line 511 "dhcp4_lexer.ll"
3299{
3300 switch(driver.ctx_) {
3305 default:
3306 return isc::dhcp::Dhcp4Parser::make_STRING("tcp-user-timeout", driver.loc_);
3307 }
3308}
3309 YY_BREAK
3310case 46:
3312#line 522 "dhcp4_lexer.ll"
3313{
3314 switch(driver.ctx_) {
3319 default:
3320 return isc::dhcp::Dhcp4Parser::make_STRING("reconnect-wait-time", driver.loc_);
3321 }
3322}
3323 YY_BREAK
3324case 47:
3326#line 533 "dhcp4_lexer.ll"
3327{
3328 switch(driver.ctx_) {
3332 return isc::dhcp::Dhcp4Parser::make_ON_FAIL(driver.loc_);
3333 default:
3334 return isc::dhcp::Dhcp4Parser::make_STRING("on-fail", driver.loc_);
3335 }
3336}
3337 YY_BREAK
3338case 48:
3340#line 544 "dhcp4_lexer.ll"
3341{
3342 switch(driver.ctx_) {
3345 default:
3346 return isc::dhcp::Dhcp4Parser::make_STRING("stop-retry-exit", driver.loc_);
3347 }
3348}
3349 YY_BREAK
3350case 49:
3352#line 553 "dhcp4_lexer.ll"
3353{
3354 switch(driver.ctx_) {
3357 default:
3358 return isc::dhcp::Dhcp4Parser::make_STRING("serve-retry-exit", driver.loc_);
3359 }
3360}
3361 YY_BREAK
3362case 50:
3364#line 562 "dhcp4_lexer.ll"
3365{
3366 switch(driver.ctx_) {
3369 default:
3370 return isc::dhcp::Dhcp4Parser::make_STRING("serve-retry-continue", driver.loc_);
3371 }
3372}
3373 YY_BREAK
3374case 51:
3376#line 571 "dhcp4_lexer.ll"
3377{
3378 switch(driver.ctx_) {
3383 default:
3384 return isc::dhcp::Dhcp4Parser::make_STRING("retry-on-startup", driver.loc_);
3385 }
3386}
3387 YY_BREAK
3388case 52:
3390#line 582 "dhcp4_lexer.ll"
3391{
3392 switch(driver.ctx_) {
3397 default:
3398 return isc::dhcp::Dhcp4Parser::make_STRING("max-reconnect-tries", driver.loc_);
3399 }
3400}
3401 YY_BREAK
3402case 53:
3404#line 593 "dhcp4_lexer.ll"
3405{
3406 switch(driver.ctx_) {
3409 default:
3410 return isc::dhcp::Dhcp4Parser::make_STRING("max-row-errors", driver.loc_);
3411 }
3412}
3413 YY_BREAK
3414case 54:
3416#line 602 "dhcp4_lexer.ll"
3417{
3418 switch(driver.ctx_) {
3424 default:
3425 return isc::dhcp::Dhcp4Parser::make_STRING("trust-anchor", driver.loc_);
3426 }
3427}
3428 YY_BREAK
3429case 55:
3431#line 614 "dhcp4_lexer.ll"
3432{
3433 switch(driver.ctx_) {
3438 return isc::dhcp::Dhcp4Parser::make_CERT_FILE(driver.loc_);
3439 default:
3440 return isc::dhcp::Dhcp4Parser::make_STRING("cert-file", driver.loc_);
3441 }
3442}
3443 YY_BREAK
3444case 56:
3446#line 626 "dhcp4_lexer.ll"
3447{
3448 switch(driver.ctx_) {
3453 return isc::dhcp::Dhcp4Parser::make_KEY_FILE(driver.loc_);
3454 default:
3455 return isc::dhcp::Dhcp4Parser::make_STRING("key-file", driver.loc_);
3456 }
3457}
3458 YY_BREAK
3459case 57:
3461#line 638 "dhcp4_lexer.ll"
3462{
3463 switch(driver.ctx_) {
3467 return isc::dhcp::Dhcp4Parser::make_SSL_MODE(driver.loc_);
3468 default:
3469 return isc::dhcp::Dhcp4Parser::make_STRING("ssl-mode", driver.loc_);
3470 }
3471}
3472 YY_BREAK
3473case 58:
3475#line 649 "dhcp4_lexer.ll"
3476{
3477 switch(driver.ctx_) {
3479 return isc::dhcp::Dhcp4Parser::make_DISABLE(driver.loc_);
3480 default:
3481 return isc::dhcp::Dhcp4Parser::make_STRING("disable", driver.loc_);
3482 }
3483}
3484 YY_BREAK
3485case 59:
3487#line 658 "dhcp4_lexer.ll"
3488{
3489 switch(driver.ctx_) {
3491 return isc::dhcp::Dhcp4Parser::make_PREFER(driver.loc_);
3492 default:
3493 return isc::dhcp::Dhcp4Parser::make_STRING("prefer", driver.loc_);
3494 }
3495}
3496 YY_BREAK
3497case 60:
3499#line 667 "dhcp4_lexer.ll"
3500{
3501 switch(driver.ctx_) {
3503 return isc::dhcp::Dhcp4Parser::make_REQUIRE(driver.loc_);
3504 default:
3505 return isc::dhcp::Dhcp4Parser::make_STRING("require", driver.loc_);
3506 }
3507}
3508 YY_BREAK
3509case 61:
3511#line 676 "dhcp4_lexer.ll"
3512{
3513 switch(driver.ctx_) {
3515 return isc::dhcp::Dhcp4Parser::make_VERIFY_CA(driver.loc_);
3516 default:
3517 return isc::dhcp::Dhcp4Parser::make_STRING("verify-ca", driver.loc_);
3518 }
3519}
3520 YY_BREAK
3521case 62:
3523#line 685 "dhcp4_lexer.ll"
3524{
3525 switch(driver.ctx_) {
3527 return isc::dhcp::Dhcp4Parser::make_VERIFY_FULL(driver.loc_);
3528 default:
3529 return isc::dhcp::Dhcp4Parser::make_STRING("verify-full", driver.loc_);
3530 }
3531}
3532 YY_BREAK
3533case 63:
3535#line 694 "dhcp4_lexer.ll"
3536{
3537 switch(driver.ctx_) {
3541 return isc::dhcp::Dhcp4Parser::make_CIPHER_LIST(driver.loc_);
3542 default:
3543 return isc::dhcp::Dhcp4Parser::make_STRING("cipher-list", driver.loc_);
3544 }
3545}
3546 YY_BREAK
3547case 64:
3549#line 705 "dhcp4_lexer.ll"
3550{
3551 switch(driver.ctx_) {
3557 default:
3558 return isc::dhcp::Dhcp4Parser::make_STRING("valid-lifetime", driver.loc_);
3559 }
3560}
3561 YY_BREAK
3562case 65:
3564#line 717 "dhcp4_lexer.ll"
3565{
3566 switch(driver.ctx_) {
3572 default:
3573 return isc::dhcp::Dhcp4Parser::make_STRING("min-valid-lifetime", driver.loc_);
3574 }
3575}
3576 YY_BREAK
3577case 66:
3579#line 729 "dhcp4_lexer.ll"
3580{
3581 switch(driver.ctx_) {
3587 default:
3588 return isc::dhcp::Dhcp4Parser::make_STRING("max-valid-lifetime", driver.loc_);
3589 }
3590}
3591 YY_BREAK
3592case 67:
3594#line 741 "dhcp4_lexer.ll"
3595{
3596 switch(driver.ctx_) {
3600 return isc::dhcp::Dhcp4Parser::make_RENEW_TIMER(driver.loc_);
3601 default:
3602 return isc::dhcp::Dhcp4Parser::make_STRING("renew-timer", driver.loc_);
3603 }
3604}
3605 YY_BREAK
3606case 68:
3608#line 752 "dhcp4_lexer.ll"
3609{
3610 switch(driver.ctx_) {
3615 default:
3616 return isc::dhcp::Dhcp4Parser::make_STRING("rebind-timer", driver.loc_);
3617 }
3618}
3619 YY_BREAK
3620case 69:
3622#line 763 "dhcp4_lexer.ll"
3623{
3624 switch(driver.ctx_) {
3627 default:
3628 return isc::dhcp::Dhcp4Parser::make_STRING("decline-probation-period", driver.loc_);
3629 }
3630}
3631 YY_BREAK
3632case 70:
3634#line 772 "dhcp4_lexer.ll"
3635{
3636 switch(driver.ctx_) {
3638 return isc::dhcp::Dhcp4Parser::make_SERVER_TAG(driver.loc_);
3639 default:
3640 return isc::dhcp::Dhcp4Parser::make_STRING("server-tag", driver.loc_);
3641 }
3642}
3643 YY_BREAK
3644case 71:
3646#line 781 "dhcp4_lexer.ll"
3647{
3648 switch(driver.ctx_) {
3651 default:
3652 return isc::dhcp::Dhcp4Parser::make_STRING("parked-packet-limit", driver.loc_);
3653 }
3654}
3655 YY_BREAK
3656case 72:
3658#line 790 "dhcp4_lexer.ll"
3659{
3660 switch(driver.ctx_) {
3664 return isc::dhcp::Dhcp4Parser::make_ALLOCATOR(driver.loc_);
3665 default:
3666 return isc::dhcp::Dhcp4Parser::make_STRING("allocator", driver.loc_);
3667 }
3668}
3669 YY_BREAK
3670case 73:
3672#line 801 "dhcp4_lexer.ll"
3673{
3674 switch(driver.ctx_) {
3677 default:
3678 return isc::dhcp::Dhcp4Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3679 }
3680}
3681 YY_BREAK
3682case 74:
3684#line 810 "dhcp4_lexer.ll"
3685{
3686 switch(driver.ctx_) {
3689 default:
3690 return isc::dhcp::Dhcp4Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3691 }
3692}
3693 YY_BREAK
3694case 75:
3696#line 819 "dhcp4_lexer.ll"
3697{
3698 switch(driver.ctx_) {
3704 default:
3705 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-send-updates", driver.loc_);
3706 }
3707}
3708 YY_BREAK
3709case 76:
3711#line 831 "dhcp4_lexer.ll"
3712{
3713 switch(driver.ctx_) {
3719 default:
3720 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-no-update", driver.loc_);
3721 }
3722}
3723 YY_BREAK
3724case 77:
3726#line 843 "dhcp4_lexer.ll"
3727{
3728 switch(driver.ctx_) {
3734 default:
3735 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-client-update", driver.loc_);
3736 }
3737}
3738 YY_BREAK
3739case 78:
3741#line 855 "dhcp4_lexer.ll"
3742{
3743 switch(driver.ctx_) {
3749 default:
3750 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3751 }
3752}
3753 YY_BREAK
3754case 79:
3756#line 867 "dhcp4_lexer.ll"
3757{
3758 switch(driver.ctx_) {
3764 default:
3765 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-generated-prefix", driver.loc_);
3766 }
3767}
3768 YY_BREAK
3769case 80:
3771#line 879 "dhcp4_lexer.ll"
3772{
3773 switch(driver.ctx_) {
3779 default:
3780 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
3781 }
3782}
3783 YY_BREAK
3784case 81:
3786#line 891 "dhcp4_lexer.ll"
3787{
3788 switch(driver.ctx_) {
3794 default:
3795 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-update-on-renew", driver.loc_);
3796 }
3797}
3798 YY_BREAK
3799case 82:
3801#line 903 "dhcp4_lexer.ll"
3802{
3803 switch(driver.ctx_) {
3808 default:
3809 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
3810 }
3811}
3812 YY_BREAK
3813case 83:
3815#line 914 "dhcp4_lexer.ll"
3816{
3817 switch(driver.ctx_) {
3823 default:
3824 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-conflict-resolution-mode", driver.loc_);
3825 }
3826}
3827 YY_BREAK
3828case 84:
3830#line 926 "dhcp4_lexer.ll"
3831{
3834 }
3835 std::string tmp(yytext+1);
3836 tmp.resize(tmp.size() - 1);
3837 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
3838}
3839 YY_BREAK
3840case 85:
3842#line 935 "dhcp4_lexer.ll"
3843{
3846 }
3847 std::string tmp(yytext+1);
3848 tmp.resize(tmp.size() - 1);
3849 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
3850}
3851 YY_BREAK
3852case 86:
3854#line 944 "dhcp4_lexer.ll"
3855{
3858 }
3859 std::string tmp(yytext+1);
3860 tmp.resize(tmp.size() - 1);
3861 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
3862}
3863 YY_BREAK
3864case 87:
3866#line 953 "dhcp4_lexer.ll"
3867{
3870 }
3871 std::string tmp(yytext+1);
3872 tmp.resize(tmp.size() - 1);
3873 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
3874}
3875 YY_BREAK
3876case 88:
3878#line 962 "dhcp4_lexer.ll"
3879{
3880 switch(driver.ctx_) {
3886 default:
3887 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-ttl-percent", driver.loc_);
3888 }
3889}
3890 YY_BREAK
3891case 89:
3893#line 974 "dhcp4_lexer.ll"
3894{
3895 switch(driver.ctx_) {
3900 return isc::dhcp::Dhcp4Parser::make_DDNS_TTL(driver.loc_);
3901 default:
3902 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-ttl", driver.loc_);
3903 }
3904}
3905 YY_BREAK
3906case 90:
3908#line 986 "dhcp4_lexer.ll"
3909{
3910 switch(driver.ctx_) {
3916 default:
3917 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-ttl-min", driver.loc_);
3918 }
3919}
3920 YY_BREAK
3921case 91:
3923#line 998 "dhcp4_lexer.ll"
3924{
3925 switch(driver.ctx_) {
3931 default:
3932 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-ttl-max", driver.loc_);
3933 }
3934}
3935 YY_BREAK
3936case 92:
3938#line 1010 "dhcp4_lexer.ll"
3939{
3940 switch(driver.ctx_) {
3943 return isc::dhcp::Dhcp4Parser::make_SUBNET4(driver.loc_);
3944 default:
3945 return isc::dhcp::Dhcp4Parser::make_STRING("subnet4", driver.loc_);
3946 }
3947}
3948 YY_BREAK
3949case 93:
3951#line 1020 "dhcp4_lexer.ll"
3952{
3953 switch(driver.ctx_) {
3958 default:
3959 return isc::dhcp::Dhcp4Parser::make_STRING("store-extended-info", driver.loc_);
3960 }
3961}
3962 YY_BREAK
3963case 94:
3965#line 1031 "dhcp4_lexer.ll"
3966{
3967 switch (driver.ctx_) {
3970 default:
3971 return isc::dhcp::Dhcp4Parser::make_STRING("shared-networks", driver.loc_);
3972 }
3973}
3974 YY_BREAK
3975case 95:
3977#line 1040 "dhcp4_lexer.ll"
3978{
3979 switch(driver.ctx_) {
3982 return isc::dhcp::Dhcp4Parser::make_OPTION_DEF(driver.loc_);
3983 default:
3984 return isc::dhcp::Dhcp4Parser::make_STRING("option-def", driver.loc_);
3985 }
3986}
3987 YY_BREAK
3988case 96:
3990#line 1050 "dhcp4_lexer.ll"
3991{
3992 switch(driver.ctx_) {
3999 return isc::dhcp::Dhcp4Parser::make_OPTION_DATA(driver.loc_);
4000 default:
4001 return isc::dhcp::Dhcp4Parser::make_STRING("option-data", driver.loc_);
4002 }
4003}
4004 YY_BREAK
4005case 97:
4007#line 1064 "dhcp4_lexer.ll"
4008{
4009 switch(driver.ctx_) {
4019 return isc::dhcp::Dhcp4Parser::make_NAME(driver.loc_);
4020 default:
4021 return isc::dhcp::Dhcp4Parser::make_STRING("name", driver.loc_);
4022 }
4023}
4024 YY_BREAK
4025case 98:
4027#line 1081 "dhcp4_lexer.ll"
4028{
4029 switch(driver.ctx_) {
4031 return isc::dhcp::Dhcp4Parser::make_DATA(driver.loc_);
4032 default:
4033 return isc::dhcp::Dhcp4Parser::make_STRING("data", driver.loc_);
4034 }
4035}
4036 YY_BREAK
4037case 99:
4039#line 1090 "dhcp4_lexer.ll"
4040{
4041 switch(driver.ctx_) {
4043 return isc::dhcp::Dhcp4Parser::make_ALWAYS_SEND(driver.loc_);
4044 default:
4045 return isc::dhcp::Dhcp4Parser::make_STRING("always-send", driver.loc_);
4046 }
4047}
4048 YY_BREAK
4049case 100:
4051#line 1099 "dhcp4_lexer.ll"
4052{
4053 switch(driver.ctx_) {
4055 return isc::dhcp::Dhcp4Parser::make_NEVER_SEND(driver.loc_);
4056 default:
4057 return isc::dhcp::Dhcp4Parser::make_STRING("never-send", driver.loc_);
4058 }
4059}
4060 YY_BREAK
4061case 101:
4063#line 1108 "dhcp4_lexer.ll"
4064{
4065 switch(driver.ctx_) {
4067 return isc::dhcp::Dhcp4Parser::make_POOLS(driver.loc_);
4068 default:
4069 return isc::dhcp::Dhcp4Parser::make_STRING("pools", driver.loc_);
4070 }
4071}
4072 YY_BREAK
4073case 102:
4075#line 1117 "dhcp4_lexer.ll"
4076{
4077 switch(driver.ctx_) {
4079 return isc::dhcp::Dhcp4Parser::make_POOL(driver.loc_);
4080 default:
4081 return isc::dhcp::Dhcp4Parser::make_STRING("pool", driver.loc_);
4082 }
4083}
4084 YY_BREAK
4085case 103:
4087#line 1126 "dhcp4_lexer.ll"
4088{
4089 switch(driver.ctx_) {
4091 return isc::dhcp::Dhcp4Parser::make_POOL_ID(driver.loc_);
4092 default:
4093 return isc::dhcp::Dhcp4Parser::make_STRING("pool-id", driver.loc_);
4094 }
4095}
4096 YY_BREAK
4097case 104:
4099#line 1135 "dhcp4_lexer.ll"
4100{
4101 switch(driver.ctx_) {
4120 default:
4121 return isc::dhcp::Dhcp4Parser::make_STRING("user-context", driver.loc_);
4122 }
4123}
4124 YY_BREAK
4125case 105:
4127#line 1160 "dhcp4_lexer.ll"
4128{
4129 switch(driver.ctx_) {
4147 return isc::dhcp::Dhcp4Parser::make_COMMENT(driver.loc_);
4148 default:
4149 return isc::dhcp::Dhcp4Parser::make_STRING("comment", driver.loc_);
4150 }
4151}
4152 YY_BREAK
4153case 106:
4155#line 1185 "dhcp4_lexer.ll"
4156{
4157 switch(driver.ctx_) {
4159 return isc::dhcp::Dhcp4Parser::make_SUBNET(driver.loc_);
4160 default:
4161 return isc::dhcp::Dhcp4Parser::make_STRING("subnet", driver.loc_);
4162 }
4163}
4164 YY_BREAK
4165case 107:
4167#line 1194 "dhcp4_lexer.ll"
4168{
4169 switch(driver.ctx_) {
4172 return isc::dhcp::Dhcp4Parser::make_INTERFACE(driver.loc_);
4173 default:
4174 return isc::dhcp::Dhcp4Parser::make_STRING("interface", driver.loc_);
4175 }
4176}
4177 YY_BREAK
4178case 108:
4180#line 1204 "dhcp4_lexer.ll"
4181{
4182 switch(driver.ctx_) {
4184 return isc::dhcp::Dhcp4Parser::make_ID(driver.loc_);
4185 default:
4186 return isc::dhcp::Dhcp4Parser::make_STRING("id", driver.loc_);
4187 }
4188}
4189 YY_BREAK
4190case 109:
4192#line 1213 "dhcp4_lexer.ll"
4193{
4194 switch(driver.ctx_) {
4199 default:
4200 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-global", driver.loc_);
4201 }
4202}
4203 YY_BREAK
4204case 110:
4206#line 1224 "dhcp4_lexer.ll"
4207{
4208 switch(driver.ctx_) {
4213 default:
4214 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-in-subnet", driver.loc_);
4215 }
4216}
4217 YY_BREAK
4218case 111:
4220#line 1235 "dhcp4_lexer.ll"
4221{
4222 switch(driver.ctx_) {
4227 default:
4228 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-out-of-pool", driver.loc_);
4229 }
4230}
4231 YY_BREAK
4232case 112:
4234#line 1246 "dhcp4_lexer.ll"
4235{
4236 switch(driver.ctx_) {
4239 return isc::dhcp::Dhcp4Parser::make_CODE(driver.loc_);
4240 default:
4241 return isc::dhcp::Dhcp4Parser::make_STRING("code", driver.loc_);
4242 }
4243}
4244 YY_BREAK
4245case 113:
4247#line 1256 "dhcp4_lexer.ll"
4248{
4249 switch(driver.ctx_) {
4252 default:
4253 return isc::dhcp::Dhcp4Parser::make_STRING("host-reservation-identifiers", driver.loc_);
4254 }
4255}
4256 YY_BREAK
4257case 114:
4259#line 1265 "dhcp4_lexer.ll"
4260{
4261 switch(driver.ctx_) {
4266 default:
4267 return isc::dhcp::Dhcp4Parser::make_STRING("calculate-tee-times", driver.loc_);
4268 }
4269}
4270 YY_BREAK
4271case 115:
4273#line 1276 "dhcp4_lexer.ll"
4274{
4275 switch(driver.ctx_) {
4279 return isc::dhcp::Dhcp4Parser::make_T1_PERCENT(driver.loc_);
4280 default:
4281 return isc::dhcp::Dhcp4Parser::make_STRING("t1-percent", driver.loc_);
4282 }
4283}
4284 YY_BREAK
4285case 116:
4287#line 1287 "dhcp4_lexer.ll"
4288{
4289 switch(driver.ctx_) {
4293 return isc::dhcp::Dhcp4Parser::make_T2_PERCENT(driver.loc_);
4294 default:
4295 return isc::dhcp::Dhcp4Parser::make_STRING("t2-percent", driver.loc_);
4296 }
4297}
4298 YY_BREAK
4299case 117:
4301#line 1298 "dhcp4_lexer.ll"
4302{
4303 switch(driver.ctx_) {
4308 default:
4309 return isc::dhcp::Dhcp4Parser::make_STRING("cache-threshold", driver.loc_);
4310 }
4311}
4312 YY_BREAK
4313case 118:
4315#line 1309 "dhcp4_lexer.ll"
4316{
4317 switch(driver.ctx_) {
4322 default:
4323 return isc::dhcp::Dhcp4Parser::make_STRING("cache-max-age", driver.loc_);
4324 }
4325}
4326 YY_BREAK
4327case 119:
4329#line 1320 "dhcp4_lexer.ll"
4330{
4331 switch(driver.ctx_) {
4336 default:
4337 return isc::dhcp::Dhcp4Parser::make_STRING("adaptive-lease-time-threshold", driver.loc_);
4338 }
4339}
4340 YY_BREAK
4341case 120:
4343#line 1331 "dhcp4_lexer.ll"
4344{
4345 switch(driver.ctx_) {
4347 return isc::dhcp::Dhcp4Parser::make_LOGGERS(driver.loc_);
4348 default:
4349 return isc::dhcp::Dhcp4Parser::make_STRING("loggers", driver.loc_);
4350 }
4351}
4352 YY_BREAK
4353case 121:
4355#line 1340 "dhcp4_lexer.ll"
4356{
4357 switch(driver.ctx_) {
4360 default:
4361 return isc::dhcp::Dhcp4Parser::make_STRING("output_options", driver.loc_);
4362 }
4363}
4364 YY_BREAK
4365case 122:
4367#line 1349 "dhcp4_lexer.ll"
4368{
4369 switch(driver.ctx_) {
4372 default:
4373 return isc::dhcp::Dhcp4Parser::make_STRING("output-options", driver.loc_);
4374 }
4375}
4376 YY_BREAK
4377case 123:
4379#line 1358 "dhcp4_lexer.ll"
4380{
4381 switch(driver.ctx_) {
4383 return isc::dhcp::Dhcp4Parser::make_OUTPUT(driver.loc_);
4384 default:
4385 return isc::dhcp::Dhcp4Parser::make_STRING("output", driver.loc_);
4386 }
4387}
4388 YY_BREAK
4389case 124:
4391#line 1367 "dhcp4_lexer.ll"
4392{
4393 switch(driver.ctx_) {
4395 return isc::dhcp::Dhcp4Parser::make_DEBUGLEVEL(driver.loc_);
4396 default:
4397 return isc::dhcp::Dhcp4Parser::make_STRING("debuglevel", driver.loc_);
4398 }
4399}
4400 YY_BREAK
4401case 125:
4403#line 1376 "dhcp4_lexer.ll"
4404{
4405 switch(driver.ctx_) {
4407 return isc::dhcp::Dhcp4Parser::make_FLUSH(driver.loc_);
4408 default:
4409 return isc::dhcp::Dhcp4Parser::make_STRING("flush", driver.loc_);
4410 }
4411}
4412 YY_BREAK
4413case 126:
4415#line 1385 "dhcp4_lexer.ll"
4416{
4417 switch(driver.ctx_) {
4419 return isc::dhcp::Dhcp4Parser::make_MAXSIZE(driver.loc_);
4420 default:
4421 return isc::dhcp::Dhcp4Parser::make_STRING("maxsize", driver.loc_);
4422 }
4423}
4424 YY_BREAK
4425case 127:
4427#line 1394 "dhcp4_lexer.ll"
4428{
4429 switch(driver.ctx_) {
4431 return isc::dhcp::Dhcp4Parser::make_MAXVER(driver.loc_);
4432 default:
4433 return isc::dhcp::Dhcp4Parser::make_STRING("maxver", driver.loc_);
4434 }
4435}
4436 YY_BREAK
4437case 128:
4439#line 1403 "dhcp4_lexer.ll"
4440{
4441 switch(driver.ctx_) {
4443 return isc::dhcp::Dhcp4Parser::make_PATTERN(driver.loc_);
4444 default:
4445 return isc::dhcp::Dhcp4Parser::make_STRING("pattern", driver.loc_);
4446 }
4447}
4448 YY_BREAK
4449case 129:
4451#line 1412 "dhcp4_lexer.ll"
4452{
4453 switch(driver.ctx_) {
4455 return isc::dhcp::Dhcp4Parser::make_SEVERITY(driver.loc_);
4456 default:
4457 return isc::dhcp::Dhcp4Parser::make_STRING("severity", driver.loc_);
4458 }
4459}
4460 YY_BREAK
4461case 130:
4463#line 1421 "dhcp4_lexer.ll"
4464{
4465 switch(driver.ctx_) {
4473 default:
4474 return isc::dhcp::Dhcp4Parser::make_STRING("client-classes", driver.loc_);
4475 }
4476}
4477 YY_BREAK
4478case 131:
4480#line 1435 "dhcp4_lexer.ll"
4481{
4482 switch(driver.ctx_) {
4487 default:
4488 return isc::dhcp::Dhcp4Parser::make_STRING("require-client-classes", driver.loc_);
4489 }
4490}
4491 YY_BREAK
4492case 132:
4494#line 1446 "dhcp4_lexer.ll"
4495{
4496 switch(driver.ctx_) {
4501 default:
4502 return isc::dhcp::Dhcp4Parser::make_STRING("evaluate-additional-classes", driver.loc_);
4503 }
4504}
4505 YY_BREAK
4506case 133:
4508#line 1457 "dhcp4_lexer.ll"
4509{
4510 switch(driver.ctx_) {
4516 default:
4517 return isc::dhcp::Dhcp4Parser::make_STRING("client-class", driver.loc_);
4518 }
4519}
4520 YY_BREAK
4521case 134:
4523#line 1469 "dhcp4_lexer.ll"
4524{
4525 switch(driver.ctx_) {
4527 return isc::dhcp::Dhcp4Parser::make_TEST(driver.loc_);
4528 default:
4529 return isc::dhcp::Dhcp4Parser::make_STRING("test", driver.loc_);
4530 }
4531}
4532 YY_BREAK
4533case 135:
4535#line 1478 "dhcp4_lexer.ll"
4536{
4537 switch(driver.ctx_) {
4540 default:
4541 return isc::dhcp::Dhcp4Parser::make_STRING("template-test", driver.loc_);
4542 }
4543}
4544 YY_BREAK
4545case 136:
4547#line 1487 "dhcp4_lexer.ll"
4548{
4549 switch(driver.ctx_) {
4552 default:
4553 return isc::dhcp::Dhcp4Parser::make_STRING("only-if-required", driver.loc_);
4554 }
4555}
4556 YY_BREAK
4557case 137:
4559#line 1496 "dhcp4_lexer.ll"
4560{
4561 switch(driver.ctx_) {
4564 default:
4565 return isc::dhcp::Dhcp4Parser::make_STRING("only-in-additional-list", driver.loc_);
4566 }
4567}
4568 YY_BREAK
4569case 138:
4571#line 1505 "dhcp4_lexer.ll"
4572{
4573 switch(driver.ctx_) {
4577 default:
4578 return isc::dhcp::Dhcp4Parser::make_STRING("reservations", driver.loc_);
4579 }
4580}
4581 YY_BREAK
4582case 139:
4584#line 1515 "dhcp4_lexer.ll"
4585{
4586 switch(driver.ctx_) {
4589 return isc::dhcp::Dhcp4Parser::make_DUID(driver.loc_);
4590 default:
4591 return isc::dhcp::Dhcp4Parser::make_STRING("duid", driver.loc_);
4592 }
4593}
4594 YY_BREAK
4595case 140:
4597#line 1525 "dhcp4_lexer.ll"
4598{
4599 switch(driver.ctx_) {
4602 return isc::dhcp::Dhcp4Parser::make_HW_ADDRESS(driver.loc_);
4603 default:
4604 return isc::dhcp::Dhcp4Parser::make_STRING("hw-address", driver.loc_);
4605 }
4606}
4607 YY_BREAK
4608case 141:
4610#line 1535 "dhcp4_lexer.ll"
4611{
4612 switch(driver.ctx_) {
4615 return isc::dhcp::Dhcp4Parser::make_CLIENT_ID(driver.loc_);
4616 default:
4617 return isc::dhcp::Dhcp4Parser::make_STRING("client-id", driver.loc_);
4618 }
4619}
4620 YY_BREAK
4621case 142:
4623#line 1545 "dhcp4_lexer.ll"
4624{
4625 switch(driver.ctx_) {
4628 return isc::dhcp::Dhcp4Parser::make_CIRCUIT_ID(driver.loc_);
4629 default:
4630 return isc::dhcp::Dhcp4Parser::make_STRING("circuit-id", driver.loc_);
4631 }
4632}
4633 YY_BREAK
4634case 143:
4636#line 1555 "dhcp4_lexer.ll"
4637{
4638 switch(driver.ctx_) {
4641 return isc::dhcp::Dhcp4Parser::make_FLEX_ID(driver.loc_);
4642 default:
4643 return isc::dhcp::Dhcp4Parser::make_STRING("flex-id", driver.loc_);
4644 }
4645}
4646 YY_BREAK
4647case 144:
4649#line 1565 "dhcp4_lexer.ll"
4650{
4651 switch(driver.ctx_) {
4653 return isc::dhcp::Dhcp4Parser::make_HOSTNAME(driver.loc_);
4654 default:
4655 return isc::dhcp::Dhcp4Parser::make_STRING("hostname", driver.loc_);
4656 }
4657}
4658 YY_BREAK
4659case 145:
4661#line 1574 "dhcp4_lexer.ll"
4662{
4663 switch(driver.ctx_) {
4666 return isc::dhcp::Dhcp4Parser::make_SPACE(driver.loc_);
4667 default:
4668 return isc::dhcp::Dhcp4Parser::make_STRING("space", driver.loc_);
4669 }
4670}
4671 YY_BREAK
4672case 146:
4674#line 1584 "dhcp4_lexer.ll"
4675{
4676 switch(driver.ctx_) {
4678 return isc::dhcp::Dhcp4Parser::make_CSV_FORMAT(driver.loc_);
4679 default:
4680 return isc::dhcp::Dhcp4Parser::make_STRING("csv-format", driver.loc_);
4681 }
4682}
4683 YY_BREAK
4684case 147:
4686#line 1593 "dhcp4_lexer.ll"
4687{
4688 switch(driver.ctx_) {
4691 default:
4692 return isc::dhcp::Dhcp4Parser::make_STRING("record-types", driver.loc_);
4693 }
4694}
4695 YY_BREAK
4696case 148:
4698#line 1602 "dhcp4_lexer.ll"
4699{
4700 switch(driver.ctx_) {
4702 return isc::dhcp::Dhcp4Parser::make_ENCAPSULATE(driver.loc_);
4703 default:
4704 return isc::dhcp::Dhcp4Parser::make_STRING("encapsulate", driver.loc_);
4705 }
4706}
4707 YY_BREAK
4708case 149:
4710#line 1611 "dhcp4_lexer.ll"
4711{
4712 switch(driver.ctx_) {
4714 return isc::dhcp::Dhcp4Parser::make_ARRAY(driver.loc_);
4715 default:
4716 return isc::dhcp::Dhcp4Parser::make_STRING("array", driver.loc_);
4717 }
4718}
4719 YY_BREAK
4720case 150:
4722#line 1620 "dhcp4_lexer.ll"
4723{
4724 switch(driver.ctx_) {
4727 return isc::dhcp::Dhcp4Parser::make_RELAY(driver.loc_);
4728 default:
4729 return isc::dhcp::Dhcp4Parser::make_STRING("relay", driver.loc_);
4730 }
4731}
4732 YY_BREAK
4733case 151:
4735#line 1630 "dhcp4_lexer.ll"
4736{
4737 switch(driver.ctx_) {
4739 return isc::dhcp::Dhcp4Parser::make_IP_ADDRESS(driver.loc_);
4740 default:
4741 return isc::dhcp::Dhcp4Parser::make_STRING("ip-address", driver.loc_);
4742 }
4743}
4744 YY_BREAK
4745case 152:
4747#line 1639 "dhcp4_lexer.ll"
4748{
4749 switch(driver.ctx_) {
4752 default:
4753 return isc::dhcp::Dhcp4Parser::make_STRING("ip-addresses", driver.loc_);
4754 }
4755}
4756 YY_BREAK
4757case 153:
4759#line 1648 "dhcp4_lexer.ll"
4760{
4761 switch(driver.ctx_) {
4764 default:
4765 return isc::dhcp::Dhcp4Parser::make_STRING("hooks-libraries", driver.loc_);
4766 }
4767}
4768 YY_BREAK
4769case 154:
4771#line 1657 "dhcp4_lexer.ll"
4772{
4773 switch(driver.ctx_) {
4775 return isc::dhcp::Dhcp4Parser::make_PARAMETERS(driver.loc_);
4776 default:
4777 return isc::dhcp::Dhcp4Parser::make_STRING("parameters", driver.loc_);
4778 }
4779}
4780 YY_BREAK
4781case 155:
4783#line 1666 "dhcp4_lexer.ll"
4784{
4785 switch(driver.ctx_) {
4787 return isc::dhcp::Dhcp4Parser::make_LIBRARY(driver.loc_);
4788 default:
4789 return isc::dhcp::Dhcp4Parser::make_STRING("library", driver.loc_);
4790 }
4791}
4792 YY_BREAK
4793case 156:
4795#line 1675 "dhcp4_lexer.ll"
4796{
4797 switch(driver.ctx_) {
4800 default:
4801 return isc::dhcp::Dhcp4Parser::make_STRING("expired-leases-processing", driver.loc_);
4802 }
4803}
4804 YY_BREAK
4805case 157:
4807#line 1684 "dhcp4_lexer.ll"
4808{
4809 switch(driver.ctx_) {
4812 default:
4813 return isc::dhcp::Dhcp4Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
4814 }
4815}
4816 YY_BREAK
4817case 158:
4819#line 1693 "dhcp4_lexer.ll"
4820{
4821 switch(driver.ctx_) {
4824 default:
4825 return isc::dhcp::Dhcp4Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
4826 }
4827}
4828 YY_BREAK
4829case 159:
4831#line 1702 "dhcp4_lexer.ll"
4832{
4833 switch(driver.ctx_) {
4836 default:
4837 return isc::dhcp::Dhcp4Parser::make_STRING("hold-reclaimed-time", driver.loc_);
4838 }
4839}
4840 YY_BREAK
4841case 160:
4843#line 1711 "dhcp4_lexer.ll"
4844{
4845 switch(driver.ctx_) {
4848 default:
4849 return isc::dhcp::Dhcp4Parser::make_STRING("max-reclaim-leases", driver.loc_);
4850 }
4851}
4852 YY_BREAK
4853case 161:
4855#line 1720 "dhcp4_lexer.ll"
4856{
4857 switch(driver.ctx_) {
4860 default:
4861 return isc::dhcp::Dhcp4Parser::make_STRING("max-reclaim-time", driver.loc_);
4862 }
4863}
4864 YY_BREAK
4865case 162:
4867#line 1729 "dhcp4_lexer.ll"
4868{
4869 switch(driver.ctx_) {
4872 default:
4873 return isc::dhcp::Dhcp4Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
4874 }
4875}
4876 YY_BREAK
4877case 163:
4879#line 1738 "dhcp4_lexer.ll"
4880{
4881 switch(driver.ctx_) {
4884 default:
4885 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp4o6-port", driver.loc_);
4886 }
4887}
4888 YY_BREAK
4889case 164:
4891#line 1747 "dhcp4_lexer.ll"
4892{
4893 switch(driver.ctx_) {
4896 default:
4897 return isc::dhcp::Dhcp4Parser::make_STRING("multi-threading", driver.loc_);
4898 }
4899}
4900 YY_BREAK
4901case 165:
4903#line 1756 "dhcp4_lexer.ll"
4904{
4905 switch(driver.ctx_) {
4908 default:
4909 return isc::dhcp::Dhcp4Parser::make_STRING("enable-multi-threading", driver.loc_);
4910 }
4911}
4912 YY_BREAK
4913case 166:
4915#line 1765 "dhcp4_lexer.ll"
4916{
4917 switch(driver.ctx_) {
4920 default:
4921 return isc::dhcp::Dhcp4Parser::make_STRING("thread-pool-size", driver.loc_);
4922 }
4923}
4924 YY_BREAK
4925case 167:
4927#line 1774 "dhcp4_lexer.ll"
4928{
4929 switch(driver.ctx_) {
4932 default:
4933 return isc::dhcp::Dhcp4Parser::make_STRING("packet-queue-size", driver.loc_);
4934 }
4935}
4936 YY_BREAK
4937case 168:
4939#line 1783 "dhcp4_lexer.ll"
4940{
4941 switch(driver.ctx_) {
4944 default:
4945 return isc::dhcp::Dhcp4Parser::make_STRING("control-sockets", driver.loc_);
4946 }
4947}
4948 YY_BREAK
4949case 169:
4951#line 1792 "dhcp4_lexer.ll"
4952{
4953 switch(driver.ctx_) {
4955 return isc::dhcp::Dhcp4Parser::make_SOCKET_TYPE(driver.loc_);
4956 default:
4957 return isc::dhcp::Dhcp4Parser::make_STRING("socket-type", driver.loc_);
4958 }
4959}
4960 YY_BREAK
4961case 170:
4963#line 1801 "dhcp4_lexer.ll"
4964{
4965 switch(driver.ctx_) {
4967 return isc::dhcp::Dhcp4Parser::make_UNIX(driver.loc_);
4968 default:
4969 return isc::dhcp::Dhcp4Parser::make_STRING("unix", driver.loc_);
4970 }
4971}
4972 YY_BREAK
4973case 171:
4975#line 1810 "dhcp4_lexer.ll"
4976{
4977 switch(driver.ctx_) {
4979 return isc::dhcp::Dhcp4Parser::make_HTTP(driver.loc_);
4980 default:
4981 return isc::dhcp::Dhcp4Parser::make_STRING("http", driver.loc_);
4982 }
4983}
4984 YY_BREAK
4985case 172:
4987#line 1819 "dhcp4_lexer.ll"
4988{
4989 switch(driver.ctx_) {
4991 return isc::dhcp::Dhcp4Parser::make_HTTPS(driver.loc_);
4992 default:
4993 return isc::dhcp::Dhcp4Parser::make_STRING("https", driver.loc_);
4994 }
4995}
4996 YY_BREAK
4997case 173:
4999#line 1828 "dhcp4_lexer.ll"
5000{
5001 switch(driver.ctx_) {
5003 return isc::dhcp::Dhcp4Parser::make_SOCKET_NAME(driver.loc_);
5004 default:
5005 return isc::dhcp::Dhcp4Parser::make_STRING("socket-name", driver.loc_);
5006 }
5007}
5008 YY_BREAK
5009case 174:
5011#line 1837 "dhcp4_lexer.ll"
5012{
5013 switch(driver.ctx_) {
5016 default:
5017 return isc::dhcp::Dhcp4Parser::make_STRING("socket-address", driver.loc_);
5018 }
5019}
5020 YY_BREAK
5021case 175:
5023#line 1846 "dhcp4_lexer.ll"
5024{
5025 switch(driver.ctx_) {
5027 return isc::dhcp::Dhcp4Parser::make_SOCKET_PORT(driver.loc_);
5028 default:
5029 return isc::dhcp::Dhcp4Parser::make_STRING("socket-port", driver.loc_);
5030 }
5031}
5032 YY_BREAK
5033case 176:
5035#line 1855 "dhcp4_lexer.ll"
5036{
5037 switch(driver.ctx_) {
5040 default:
5041 return isc::dhcp::Dhcp4Parser::make_STRING("authentication", driver.loc_);
5042 }
5043}
5044 YY_BREAK
5045case 177:
5047#line 1864 "dhcp4_lexer.ll"
5048{
5049 switch(driver.ctx_) {
5051 return isc::dhcp::Dhcp4Parser::make_BASIC(driver.loc_);
5052 default:
5053 return isc::dhcp::Dhcp4Parser::make_STRING("basic", driver.loc_);
5054 }
5055}
5056 YY_BREAK
5057case 178:
5059#line 1873 "dhcp4_lexer.ll"
5060{
5061 switch(driver.ctx_) {
5063 return isc::dhcp::Dhcp4Parser::make_REALM(driver.loc_);
5064 default:
5065 return isc::dhcp::Dhcp4Parser::make_STRING("realm", driver.loc_);
5066 }
5067}
5068 YY_BREAK
5069case 179:
5071#line 1882 "dhcp4_lexer.ll"
5072{
5073 switch(driver.ctx_) {
5075 return isc::dhcp::Dhcp4Parser::make_DIRECTORY(driver.loc_);
5076 default:
5077 return isc::dhcp::Dhcp4Parser::make_STRING("directory", driver.loc_);
5078 }
5079}
5080 YY_BREAK
5081case 180:
5083#line 1891 "dhcp4_lexer.ll"
5084{
5085 switch(driver.ctx_) {
5087 return isc::dhcp::Dhcp4Parser::make_CLIENTS(driver.loc_);
5088 default:
5089 return isc::dhcp::Dhcp4Parser::make_STRING("clients", driver.loc_);
5090 }
5091}
5092 YY_BREAK
5093case 181:
5095#line 1900 "dhcp4_lexer.ll"
5096{
5097 switch(driver.ctx_) {
5099 return isc::dhcp::Dhcp4Parser::make_USER_FILE(driver.loc_);
5100 default:
5101 return isc::dhcp::Dhcp4Parser::make_STRING("user-file", driver.loc_);
5102 }
5103}
5104 YY_BREAK
5105case 182:
5107#line 1909 "dhcp4_lexer.ll"
5108{
5109 switch(driver.ctx_) {
5115 default:
5116 return isc::dhcp::Dhcp4Parser::make_STRING("password-file", driver.loc_);
5117 }
5118}
5119 YY_BREAK
5120case 183:
5122#line 1921 "dhcp4_lexer.ll"
5123{
5124 switch(driver.ctx_) {
5127 default:
5128 return isc::dhcp::Dhcp4Parser::make_STRING("cert-required", driver.loc_);
5129 }
5130}
5131 YY_BREAK
5132case 184:
5134#line 1930 "dhcp4_lexer.ll"
5135{
5136 switch(driver.ctx_) {
5139 default:
5140 return isc::dhcp::Dhcp4Parser::make_STRING("http-headers", driver.loc_);
5141 }
5142}
5143 YY_BREAK
5144case 185:
5146#line 1939 "dhcp4_lexer.ll"
5147{
5148 switch(driver.ctx_) {
5150 return isc::dhcp::Dhcp4Parser::make_VALUE(driver.loc_);
5151 default:
5152 return isc::dhcp::Dhcp4Parser::make_STRING("value", driver.loc_);
5153 }
5154}
5155 YY_BREAK
5156case 186:
5158#line 1948 "dhcp4_lexer.ll"
5159{
5160 switch(driver.ctx_) {
5163 default:
5164 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-queue-control", driver.loc_);
5165 }
5166}
5167 YY_BREAK
5168case 187:
5170#line 1957 "dhcp4_lexer.ll"
5171{
5172 switch(driver.ctx_) {
5175 default:
5176 return isc::dhcp::Dhcp4Parser::make_STRING("enable-queue", driver.loc_);
5177 }
5178}
5179 YY_BREAK
5180case 188:
5182#line 1966 "dhcp4_lexer.ll"
5183{
5184 switch(driver.ctx_) {
5186 return isc::dhcp::Dhcp4Parser::make_QUEUE_TYPE(driver.loc_);
5187 default:
5188 return isc::dhcp::Dhcp4Parser::make_STRING("queue-type", driver.loc_);
5189 }
5190}
5191 YY_BREAK
5192case 189:
5194#line 1975 "dhcp4_lexer.ll"
5195{
5196 switch(driver.ctx_) {
5198 return isc::dhcp::Dhcp4Parser::make_CAPACITY(driver.loc_);
5199 default:
5200 return isc::dhcp::Dhcp4Parser::make_STRING("capacity", driver.loc_);
5201 }
5202}
5203 YY_BREAK
5204case 190:
5206#line 1984 "dhcp4_lexer.ll"
5207{
5208 switch(driver.ctx_) {
5210 return isc::dhcp::Dhcp4Parser::make_DHCP_DDNS(driver.loc_);
5211 default:
5212 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-ddns", driver.loc_);
5213 }
5214}
5215 YY_BREAK
5216case 191:
5218#line 1993 "dhcp4_lexer.ll"
5219{
5220 switch(driver.ctx_) {
5223 default:
5224 return isc::dhcp::Dhcp4Parser::make_STRING("enable-updates", driver.loc_);
5225 }
5226}
5227 YY_BREAK
5228case 192:
5230#line 2002 "dhcp4_lexer.ll"
5231{
5232 switch(driver.ctx_) {
5234 return isc::dhcp::Dhcp4Parser::make_SERVER_IP(driver.loc_);
5235 default:
5236 return isc::dhcp::Dhcp4Parser::make_STRING("server-ip", driver.loc_);
5237 }
5238}
5239 YY_BREAK
5240case 193:
5242#line 2011 "dhcp4_lexer.ll"
5243{
5244 switch(driver.ctx_) {
5246 return isc::dhcp::Dhcp4Parser::make_SERVER_PORT(driver.loc_);
5247 default:
5248 return isc::dhcp::Dhcp4Parser::make_STRING("server-port", driver.loc_);
5249 }
5250}
5251 YY_BREAK
5252case 194:
5254#line 2020 "dhcp4_lexer.ll"
5255{
5256 switch(driver.ctx_) {
5258 return isc::dhcp::Dhcp4Parser::make_SENDER_IP(driver.loc_);
5259 default:
5260 return isc::dhcp::Dhcp4Parser::make_STRING("sender-ip", driver.loc_);
5261 }
5262}
5263 YY_BREAK
5264case 195:
5266#line 2029 "dhcp4_lexer.ll"
5267{
5268 switch(driver.ctx_) {
5270 return isc::dhcp::Dhcp4Parser::make_SENDER_PORT(driver.loc_);
5271 default:
5272 return isc::dhcp::Dhcp4Parser::make_STRING("sender-port", driver.loc_);
5273 }
5274}
5275 YY_BREAK
5276case 196:
5278#line 2038 "dhcp4_lexer.ll"
5279{
5280 switch(driver.ctx_) {
5283 default:
5284 return isc::dhcp::Dhcp4Parser::make_STRING("max-queue-size", driver.loc_);
5285 }
5286}
5287 YY_BREAK
5288case 197:
5290#line 2047 "dhcp4_lexer.ll"
5291{
5292 switch(driver.ctx_) {
5295 default:
5296 return isc::dhcp::Dhcp4Parser::make_STRING("ncr-protocol", driver.loc_);
5297 }
5298}
5299 YY_BREAK
5300case 198:
5302#line 2056 "dhcp4_lexer.ll"
5303{
5304 switch(driver.ctx_) {
5306 return isc::dhcp::Dhcp4Parser::make_NCR_FORMAT(driver.loc_);
5307 default:
5308 return isc::dhcp::Dhcp4Parser::make_STRING("ncr-format", driver.loc_);
5309 }
5310}
5311 YY_BREAK
5312case 199:
5314#line 2065 "dhcp4_lexer.ll"
5315{
5316 switch(driver.ctx_) {
5322 default:
5323 return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-set", driver.loc_);
5324 }
5325}
5326 YY_BREAK
5327case 200:
5329#line 2077 "dhcp4_lexer.ll"
5330{
5331 switch(driver.ctx_) {
5337 default:
5338 return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-replacement", driver.loc_);
5339 }
5340}
5341 YY_BREAK
5342case 201:
5344#line 2089 "dhcp4_lexer.ll"
5345{
5346 /* dhcp-ddns value keywords are case insensitive */
5347 if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
5348 return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_);
5349 }
5350 std::string tmp(yytext+1);
5351 tmp.resize(tmp.size() - 1);
5352 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5353}
5354 YY_BREAK
5355case 202:
5357#line 2099 "dhcp4_lexer.ll"
5358{
5359 /* dhcp-ddns value keywords are case insensitive */
5360 if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
5361 return isc::dhcp::Dhcp4Parser::make_TCP(driver.loc_);
5362 }
5363 std::string tmp(yytext+1);
5364 tmp.resize(tmp.size() - 1);
5365 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5366}
5367 YY_BREAK
5368case 203:
5370#line 2109 "dhcp4_lexer.ll"
5371{
5372 /* dhcp-ddns value keywords are case insensitive */
5373 if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
5374 return isc::dhcp::Dhcp4Parser::make_JSON(driver.loc_);
5375 }
5376 std::string tmp(yytext+1);
5377 tmp.resize(tmp.size() - 1);
5378 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5379}
5380 YY_BREAK
5381case 204:
5383#line 2119 "dhcp4_lexer.ll"
5384{
5385 /* dhcp-ddns value keywords are case insensitive */
5388 }
5389 std::string tmp(yytext+1);
5390 tmp.resize(tmp.size() - 1);
5391 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5392}
5393 YY_BREAK
5394case 205:
5396#line 2129 "dhcp4_lexer.ll"
5397{
5398 /* dhcp-ddns value keywords are case insensitive */
5401 }
5402 std::string tmp(yytext+1);
5403 tmp.resize(tmp.size() - 1);
5404 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5405}
5406 YY_BREAK
5407case 206:
5409#line 2139 "dhcp4_lexer.ll"
5410{
5411 /* dhcp-ddns value keywords are case insensitive */
5413 return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
5414 }
5415 std::string tmp(yytext+1);
5416 tmp.resize(tmp.size() - 1);
5417 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5418}
5419 YY_BREAK
5420case 207:
5422#line 2149 "dhcp4_lexer.ll"
5423{
5424 /* dhcp-ddns value keywords are case insensitive */
5426 return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
5427 }
5428 std::string tmp(yytext+1);
5429 tmp.resize(tmp.size() - 1);
5430 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5431}
5432 YY_BREAK
5433case 208:
5435#line 2159 "dhcp4_lexer.ll"
5436{
5437 /* dhcp-ddns value keywords are case insensitive */
5439 return isc::dhcp::Dhcp4Parser::make_ALWAYS(driver.loc_);
5440 }
5441 std::string tmp(yytext+1);
5442 tmp.resize(tmp.size() - 1);
5443 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5444}
5445 YY_BREAK
5446case 209:
5448#line 2169 "dhcp4_lexer.ll"
5449{
5450 /* dhcp-ddns value keywords are case insensitive */
5453 }
5454 std::string tmp(yytext+1);
5455 tmp.resize(tmp.size() - 1);
5456 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5457}
5458 YY_BREAK
5459case 210:
5461#line 2179 "dhcp4_lexer.ll"
5462{
5463 switch(driver.ctx_) {
5466 default:
5467 return isc::dhcp::Dhcp4Parser::make_STRING("4o6-interface", driver.loc_);
5468 }
5469}
5470 YY_BREAK
5471case 211:
5473#line 2188 "dhcp4_lexer.ll"
5474{
5475 switch(driver.ctx_) {
5478 default:
5479 return isc::dhcp::Dhcp4Parser::make_STRING("4o6-interface-id", driver.loc_);
5480 }
5481}
5482 YY_BREAK
5483case 212:
5485#line 2197 "dhcp4_lexer.ll"
5486{
5487 switch(driver.ctx_) {
5490 default:
5491 return isc::dhcp::Dhcp4Parser::make_STRING("4o6-subnet", driver.loc_);
5492 }
5493}
5494 YY_BREAK
5495case 213:
5497#line 2206 "dhcp4_lexer.ll"
5498{
5499 switch(driver.ctx_) {
5502 default:
5503 return isc::dhcp::Dhcp4Parser::make_STRING("echo-client-id", driver.loc_);
5504 }
5505}
5506 YY_BREAK
5507case 214:
5509#line 2215 "dhcp4_lexer.ll"
5510{
5511 switch(driver.ctx_) {
5516 default:
5517 return isc::dhcp::Dhcp4Parser::make_STRING("match-client-id", driver.loc_);
5518 }
5519}
5520 YY_BREAK
5521case 215:
5523#line 2226 "dhcp4_lexer.ll"
5524{
5525 switch(driver.ctx_) {
5530 default:
5531 return isc::dhcp::Dhcp4Parser::make_STRING("authoritative", driver.loc_);
5532 }
5533}
5534 YY_BREAK
5535case 216:
5537#line 2237 "dhcp4_lexer.ll"
5538{
5539 switch(driver.ctx_) {
5545 return isc::dhcp::Dhcp4Parser::make_NEXT_SERVER(driver.loc_);
5546 default:
5547 return isc::dhcp::Dhcp4Parser::make_STRING("next-server", driver.loc_);
5548 }
5549}
5550 YY_BREAK
5551case 217:
5553#line 2250 "dhcp4_lexer.ll"
5554{
5555 switch(driver.ctx_) {
5562 default:
5563 return isc::dhcp::Dhcp4Parser::make_STRING("server-hostname", driver.loc_);
5564 }
5565}
5566 YY_BREAK
5567case 218:
5569#line 2263 "dhcp4_lexer.ll"
5570{
5571 switch(driver.ctx_) {
5578 default:
5579 return isc::dhcp::Dhcp4Parser::make_STRING("boot-file-name", driver.loc_);
5580 }
5581}
5582 YY_BREAK
5583case 219:
5585#line 2276 "dhcp4_lexer.ll"
5586{
5587 switch(driver.ctx_) {
5590 default:
5591 return isc::dhcp::Dhcp4Parser::make_STRING("early-global-reservations-lookup", driver.loc_);
5592 }
5593}
5594 YY_BREAK
5595case 220:
5597#line 2285 "dhcp4_lexer.ll"
5598{
5599 switch(driver.ctx_) {
5602 default:
5603 return isc::dhcp::Dhcp4Parser::make_STRING("ip-reservations-unique", driver.loc_);
5604 }
5605}
5606 YY_BREAK
5607case 221:
5609#line 2294 "dhcp4_lexer.ll"
5610{
5611 switch(driver.ctx_) {
5614 default:
5615 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-lookup-first", driver.loc_);
5616 }
5617}
5618 YY_BREAK
5619case 222:
5621#line 2303 "dhcp4_lexer.ll"
5622{
5623 switch(driver.ctx_) {
5626 default:
5627 return isc::dhcp::Dhcp4Parser::make_STRING("compatibility", driver.loc_);
5628 }
5629}
5630 YY_BREAK
5631case 223:
5633#line 2312 "dhcp4_lexer.ll"
5634{
5635 switch(driver.ctx_) {
5638 default:
5639 return isc::dhcp::Dhcp4Parser::make_STRING("lenient-option-parsing", driver.loc_);
5640 }
5641}
5642 YY_BREAK
5643case 224:
5645#line 2321 "dhcp4_lexer.ll"
5646{
5647 switch(driver.ctx_) {
5650 default:
5651 return isc::dhcp::Dhcp4Parser::make_STRING("ignore-dhcp-server-identifier", driver.loc_);
5652 }
5653}
5654 YY_BREAK
5655case 225:
5657#line 2330 "dhcp4_lexer.ll"
5658{
5659 switch(driver.ctx_) {
5662 default:
5663 return isc::dhcp::Dhcp4Parser::make_STRING("ignore-rai-link-selection", driver.loc_);
5664 }
5665}
5666 YY_BREAK
5667case 226:
5669#line 2339 "dhcp4_lexer.ll"
5670{
5671 switch(driver.ctx_) {
5674 default:
5675 return isc::dhcp::Dhcp4Parser::make_STRING("exclude-first-last-24", driver.loc_);
5676 }
5677}
5678 YY_BREAK
5679case 227:
5681#line 2348 "dhcp4_lexer.ll"
5682{
5683 switch(driver.ctx_) {
5688 return isc::dhcp::Dhcp4Parser::make_OFFER_LFT(driver.loc_);
5689 default:
5690 return isc::dhcp::Dhcp4Parser::make_STRING("offer-lifetime", driver.loc_);
5691 }
5692}
5693 YY_BREAK
5694case 228:
5696#line 2360 "dhcp4_lexer.ll"
5697{
5698 switch(driver.ctx_) {
5701 default:
5702 return isc::dhcp::Dhcp4Parser::make_STRING("stash-agent-options", driver.loc_);
5703 }
5704}
5705 YY_BREAK
5706case 229:
5708#line 2369 "dhcp4_lexer.ll"
5709{
5710 /* A string has been matched. It contains the actual string and single quotes.
5711 We need to get those quotes out of the way and just use its content, e.g.
5712 for 'foo' we should get foo */
5713 std::string raw(yytext+1);
5714 size_t len = raw.size() - 1;
5715 raw.resize(len);
5716 std::string decoded;
5717 decoded.reserve(len);
5718 for (size_t pos = 0; pos < len; ++pos) {
5719 int b = 0;
5720 char c = raw[pos];
5721 switch (c) {
5722 case '"':
5723 /* impossible condition */
5724 driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
5725 break;
5726 case '\\':
5727 ++pos;
5728 if (pos >= len) {
5729 /* impossible condition */
5730 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
5731 }
5732 c = raw[pos];
5733 switch (c) {
5734 case '"':
5735 case '\\':
5736 case '/':
5737 decoded.push_back(c);
5738 break;
5739 case 'b':
5740 decoded.push_back('\b');
5741 break;
5742 case 'f':
5743 decoded.push_back('\f');
5744 break;
5745 case 'n':
5746 decoded.push_back('\n');
5747 break;
5748 case 'r':
5749 decoded.push_back('\r');
5750 break;
5751 case 't':
5752 decoded.push_back('\t');
5753 break;
5754 case 'u':
5755 /* support only \u0000 to \u00ff */
5756 ++pos;
5757 if (pos + 4 > len) {
5758 /* impossible condition */
5759 driver.error(driver.loc_,
5760 "Overflow unicode escape in \"" + raw + "\"");
5761 }
5762 if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
5763 driver.error(driver.loc_,
5764 "Unsupported unicode escape in \"" + raw + "\"",
5765 pos + 1);
5766 }
5767 pos += 2;
5768 c = raw[pos];
5769 if ((c >= '0') && (c <= '9')) {
5770 b = (c - '0') << 4;
5771 } else if ((c >= 'A') && (c <= 'F')) {
5772 b = (c - 'A' + 10) << 4;
5773 } else if ((c >= 'a') && (c <= 'f')) {
5774 b = (c - 'a' + 10) << 4;
5775 } else {
5776 /* impossible condition */
5777 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5778 }
5779 pos++;
5780 c = raw[pos];
5781 if ((c >= '0') && (c <= '9')) {
5782 b |= c - '0';
5783 } else if ((c >= 'A') && (c <= 'F')) {
5784 b |= c - 'A' + 10;
5785 } else if ((c >= 'a') && (c <= 'f')) {
5786 b |= c - 'a' + 10;
5787 } else {
5788 /* impossible condition */
5789 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5790 }
5791 decoded.push_back(static_cast<char>(b & 0xff));
5792 break;
5793 default:
5794 /* impossible condition */
5795 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5796 }
5797 break;
5798 default:
5799 if ((c >= 0) && (c < 0x20)) {
5800 /* impossible condition */
5801 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5802 }
5803 decoded.push_back(c);
5804 }
5805 }
5806
5807 return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_);
5808}
5809 YY_BREAK
5810case 230:
5811/* rule 230 can match eol */
5813#line 2470 "dhcp4_lexer.ll"
5814{
5815 /* Bad string with a forbidden control character inside */
5816 std::string raw(yytext+1);
5817 size_t len = raw.size() - 1;
5818 size_t pos = 0;
5819 for (; pos < len; ++pos) {
5820 char c = raw[pos];
5821 if ((c >= 0) && (c < 0x20)) {
5822 break;
5823 }
5824 }
5825 driver.error(driver.loc_,
5826 "Invalid control in " + std::string(yytext),
5827 pos + 1);
5828}
5829 YY_BREAK
5830case 231:
5831/* rule 231 can match eol */
5833#line 2486 "dhcp4_lexer.ll"
5834{
5835 /* Bad string with a bad escape inside */
5836 std::string raw(yytext+1);
5837 size_t len = raw.size() - 1;
5838 size_t pos = 0;
5839 bool found = false;
5840 for (; pos < len; ++pos) {
5841 if (found) {
5842 break;
5843 }
5844 char c = raw[pos];
5845 if (c == '\\') {
5846 ++pos;
5847 c = raw[pos];
5848 switch (c) {
5849 case '"':
5850 case '\\':
5851 case '/':
5852 case 'b':
5853 case 'f':
5854 case 'n':
5855 case 'r':
5856 case 't':
5857 break;
5858 case 'u':
5859 if ((pos + 4 > len) ||
5860 !std::isxdigit(raw[pos + 1]) ||
5861 !std::isxdigit(raw[pos + 2]) ||
5862 !std::isxdigit(raw[pos + 3]) ||
5863 !std::isxdigit(raw[pos + 4])) {
5864 found = true;
5865 }
5866 break;
5867 default:
5868 found = true;
5869 break;
5870 }
5871 }
5872 }
5873 /* The rule stops on the first " including on \" so add ... in this case */
5874 std::string trailer = "";
5875 if (raw[len - 1] == '\\') {
5876 trailer = "...";
5877 }
5878 driver.error(driver.loc_,
5879 "Bad escape in " + std::string(yytext) + trailer,
5880 pos);
5881}
5882 YY_BREAK
5883case 232:
5885#line 2535 "dhcp4_lexer.ll"
5886{
5887 /* Bad string with an open escape at the end */
5888 std::string raw(yytext+1);
5889 driver.error(driver.loc_,
5890 "Overflow escape in " + std::string(yytext),
5891 raw.size() + 1);
5892}
5893 YY_BREAK
5894case 233:
5896#line 2543 "dhcp4_lexer.ll"
5897{
5898 /* Bad string with an open unicode escape at the end */
5899 std::string raw(yytext+1);
5900 size_t pos = raw.size() - 1;
5901 for (; pos > 0; --pos) {
5902 char c = raw[pos];
5903 if (c == 'u') {
5904 break;
5905 }
5906 }
5907 driver.error(driver.loc_,
5908 "Overflow unicode escape in " + std::string(yytext),
5909 pos + 1);
5910}
5911 YY_BREAK
5912case 234:
5914#line 2558 "dhcp4_lexer.ll"
5915{ return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
5916 YY_BREAK
5917case 235:
5919#line 2559 "dhcp4_lexer.ll"
5920{ return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
5921 YY_BREAK
5922case 236:
5924#line 2560 "dhcp4_lexer.ll"
5925{ return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
5926 YY_BREAK
5927case 237:
5929#line 2561 "dhcp4_lexer.ll"
5930{ return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
5931 YY_BREAK
5932case 238:
5934#line 2562 "dhcp4_lexer.ll"
5935{ return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
5936 YY_BREAK
5937case 239:
5939#line 2563 "dhcp4_lexer.ll"
5940{ return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
5941 YY_BREAK
5942case 240:
5944#line 2565 "dhcp4_lexer.ll"
5945{
5946 /* Integer with leading zeros. */
5947 std::string tmp(yytext);
5948 int64_t integer = 0;
5949 try {
5950 /* In substring we want to use negative values (e.g. -1).
5951 In enterprise-id we need to use values up to 0xffffffff.
5952 To cover both of those use cases, we need at least
5953 int64_t. */
5954 integer = boost::lexical_cast<int64_t>(tmp);
5955 } catch (const boost::bad_lexical_cast &) {
5956 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5957 }
5958
5959 driver.warning(driver.loc_, "leading zeros in integers will be deprecated.");
5960
5961 return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_);
5962}
5963 YY_BREAK
5964case 241:
5966#line 2584 "dhcp4_lexer.ll"
5967{
5968 /* An integer was found. */
5969 std::string tmp(yytext);
5970 int64_t integer = 0;
5971 try {
5972 /* In substring we want to use negative values (e.g. -1).
5973 In enterprise-id we need to use values up to 0xffffffff.
5974 To cover both of those use cases, we need at least
5975 int64_t. */
5976 integer = boost::lexical_cast<int64_t>(tmp);
5977 } catch (const boost::bad_lexical_cast &) {
5978 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5979 }
5980
5981 return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_);
5982}
5983 YY_BREAK
5984case 242:
5986#line 2601 "dhcp4_lexer.ll"
5987{
5988 /* A plus sign was found */
5989 std::string tmp(yytext);
5990 driver.error(driver.loc_, "Deprecated plus sign in " + tmp + " number.");
5991}
5992 YY_BREAK
5993case 243:
5995#line 2607 "dhcp4_lexer.ll"
5996{
5997 /* Floating point with leading zeros. */
5998 std::string tmp(yytext);
5999 double fp = 0.0;
6000 try {
6001 fp = boost::lexical_cast<double>(tmp);
6002 } catch (const boost::bad_lexical_cast &) {
6003 driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
6004 }
6005
6006 driver.warning(driver.loc_, "leading zeros in numbers will be deprecated.");
6007
6008 return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_);
6009}
6010 YY_BREAK
6011case 244:
6013#line 2622 "dhcp4_lexer.ll"
6014{
6015 /* A floating point was found. */
6016 std::string tmp(yytext);
6017 double fp = 0.0;
6018 try {
6019 fp = boost::lexical_cast<double>(tmp);
6020 } catch (const boost::bad_lexical_cast &) {
6021 driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
6022 }
6023
6024 return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_);
6025}
6026 YY_BREAK
6027case 245:
6029#line 2635 "dhcp4_lexer.ll"
6030{
6031 string tmp(yytext);
6032 return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
6033}
6034 YY_BREAK
6035case 246:
6037#line 2640 "dhcp4_lexer.ll"
6038{
6039 return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
6040}
6041 YY_BREAK
6042case 247:
6044#line 2644 "dhcp4_lexer.ll"
6045driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
6046 YY_BREAK
6047case 248:
6049#line 2646 "dhcp4_lexer.ll"
6050driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
6051 YY_BREAK
6052case 249:
6054#line 2648 "dhcp4_lexer.ll"
6055driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
6056 YY_BREAK
6057case 250:
6059#line 2650 "dhcp4_lexer.ll"
6060driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
6061 YY_BREAK
6062case YY_STATE_EOF(INITIAL):
6063#line 2652 "dhcp4_lexer.ll"
6064{
6065 if (driver.states_.empty()) {
6066 return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
6067 }
6068 driver.loc_ = driver.locs_.back();
6069 driver.locs_.pop_back();
6070 driver.file_ = driver.files_.back();
6071 driver.files_.pop_back();
6072 if (driver.sfile_) {
6073 fclose(driver.sfile_);
6074 driver.sfile_ = 0;
6075 }
6076 if (!driver.sfiles_.empty()) {
6077 driver.sfile_ = driver.sfiles_.back();
6078 driver.sfiles_.pop_back();
6079 }
6080 parser4__delete_buffer(YY_CURRENT_BUFFER);
6081 parser4__switch_to_buffer(driver.states_.back());
6082 driver.states_.pop_back();
6083
6084 BEGIN(DIR_EXIT);
6085}
6086 YY_BREAK
6087case 251:
6089#line 2675 "dhcp4_lexer.ll"
6090ECHO;
6091 YY_BREAK
6092#line 6092 "dhcp4_lexer.cc"
6093
6094 case YY_END_OF_BUFFER:
6095 {
6096 /* Amount of text matched not including the EOB char. */
6097 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
6098
6099 /* Undo the effects of YY_DO_BEFORE_ACTION. */
6100 *yy_cp = (yy_hold_char);
6102
6103 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
6104 {
6105 /* We're scanning a new file or input source. It's
6106 * possible that this happened because the user
6107 * just pointed yyin at a new source and called
6108 * yylex(). If so, then we have to assure
6109 * consistency between YY_CURRENT_BUFFER and our
6110 * globals. Here is the right place to do so, because
6111 * this is the first action (other than possibly a
6112 * back-up) that will match for the new input source.
6113 */
6114 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6115/* %if-c-only */
6116 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
6117/* %endif */
6118/* %if-c++-only */
6119/* %endif */
6120 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
6121 }
6122
6123 /* Note that here we test for yy_c_buf_p "<=" to the position
6124 * of the first EOB in the buffer, since yy_c_buf_p will
6125 * already have been incremented past the NUL character
6126 * (since all states make transitions on EOB to the
6127 * end-of-buffer state). Contrast this with the test
6128 * in input().
6129 */
6130 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6131 { /* This was really a NUL. */
6132 yy_state_type yy_next_state;
6133
6134 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
6135
6136 yy_current_state = yy_get_previous_state( );
6137
6138 /* Okay, we're now positioned to make the NUL
6139 * transition. We couldn't have
6140 * yy_get_previous_state() go ahead and do it
6141 * for us because it doesn't know how to deal
6142 * with the possibility of jamming (and we don't
6143 * want to build jamming into it because then it
6144 * will run more slowly).
6145 */
6146
6147 yy_next_state = yy_try_NUL_trans( yy_current_state );
6148
6150
6151 if ( yy_next_state )
6152 {
6153 /* Consume the NUL. */
6154 yy_cp = ++(yy_c_buf_p);
6155 yy_current_state = yy_next_state;
6156 goto yy_match;
6157 }
6158
6159 else
6160 {
6161/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
6162 yy_cp = (yy_last_accepting_cpos);
6163 yy_current_state = (yy_last_accepting_state);
6164 goto yy_find_action;
6165 }
6166 }
6167
6168 else switch ( yy_get_next_buffer( ) )
6169 {
6171 {
6172 (yy_did_buffer_switch_on_eof) = 0;
6173
6174 if ( yywrap( ) )
6175 {
6176 /* Note: because we've taken care in
6177 * yy_get_next_buffer() to have set up
6178 * yytext, we can now set up
6179 * yy_c_buf_p so that if some total
6180 * hoser (like flex itself) wants to
6181 * call the scanner after we return the
6182 * YY_NULL, it'll still work - another
6183 * YY_NULL will get returned.
6184 */
6185 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
6186
6188 goto do_action;
6189 }
6190
6191 else
6192 {
6193 if ( ! (yy_did_buffer_switch_on_eof) )
6195 }
6196 break;
6197 }
6198
6200 (yy_c_buf_p) =
6201 (yytext_ptr) + yy_amount_of_matched_text;
6202
6203 yy_current_state = yy_get_previous_state( );
6204
6205 yy_cp = (yy_c_buf_p);
6207 goto yy_match;
6208
6209 case EOB_ACT_LAST_MATCH:
6210 (yy_c_buf_p) =
6211 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
6212
6213 yy_current_state = yy_get_previous_state( );
6214
6215 yy_cp = (yy_c_buf_p);
6217 goto yy_find_action;
6218 }
6219 break;
6220 }
6221
6222 default:
6224 "fatal flex scanner internal error--no action found" );
6225 } /* end of action switch */
6226 } /* end of scanning one token */
6227 } /* end of user's declarations */
6228} /* end of yylex */
6229/* %ok-for-header */
6230
6231/* %if-c++-only */
6232/* %not-for-header */
6233/* %ok-for-header */
6234
6235/* %endif */
6236
6237/* yy_get_next_buffer - try to read in a new buffer
6238 *
6239 * Returns a code representing an action:
6240 * EOB_ACT_LAST_MATCH -
6241 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
6242 * EOB_ACT_END_OF_FILE - end of file
6243 */
6244/* %if-c-only */
6245static int yy_get_next_buffer (void)
6246/* %endif */
6247/* %if-c++-only */
6248/* %endif */
6249{
6250 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
6251 char *source = (yytext_ptr);
6252 int number_to_move, i;
6253 int ret_val;
6254
6255 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
6257 "fatal flex scanner internal error--end of buffer missed" );
6258
6259 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
6260 { /* Don't try to fill the buffer, so this is an EOF. */
6261 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
6262 {
6263 /* We matched a single character, the EOB, so
6264 * treat this as a final EOF.
6265 */
6266 return EOB_ACT_END_OF_FILE;
6267 }
6268
6269 else
6270 {
6271 /* We matched some text prior to the EOB, first
6272 * process it.
6273 */
6274 return EOB_ACT_LAST_MATCH;
6275 }
6276 }
6277
6278 /* Try to read more data. */
6279
6280 /* First move last chars to start of buffer. */
6281 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
6282
6283 for ( i = 0; i < number_to_move; ++i )
6284 *(dest++) = *(source++);
6285
6286 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
6287 /* don't do the read, it's not guaranteed to return an EOF,
6288 * just force an EOF
6289 */
6290 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
6291
6292 else
6293 {
6294 int num_to_read =
6295 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
6296
6297 while ( num_to_read <= 0 )
6298 { /* Not enough room in the buffer - grow it. */
6299
6300 /* just a shorter name for the current buffer */
6302
6303 int yy_c_buf_p_offset =
6304 (int) ((yy_c_buf_p) - b->yy_ch_buf);
6305
6306 if ( b->yy_is_our_buffer )
6307 {
6308 int new_size = b->yy_buf_size * 2;
6309
6310 if ( new_size <= 0 )
6311 b->yy_buf_size += b->yy_buf_size / 8;
6312 else
6313 b->yy_buf_size *= 2;
6314
6315 b->yy_ch_buf = (char *)
6316 /* Include room in for 2 EOB chars. */
6317 yyrealloc( (void *) b->yy_ch_buf,
6318 (yy_size_t) (b->yy_buf_size + 2) );
6319 }
6320 else
6321 /* Can't grow it, we don't own it. */
6322 b->yy_ch_buf = NULL;
6323
6324 if ( ! b->yy_ch_buf )
6326 "fatal error - scanner input buffer overflow" );
6327
6328 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
6329
6330 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
6331 number_to_move - 1;
6332
6333 }
6334
6335 if ( num_to_read > YY_READ_BUF_SIZE )
6336 num_to_read = YY_READ_BUF_SIZE;
6337
6338 /* Read in more data. */
6339 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
6340 (yy_n_chars), num_to_read );
6341
6342 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6343 }
6344
6345 if ( (yy_n_chars) == 0 )
6346 {
6347 if ( number_to_move == YY_MORE_ADJ )
6348 {
6349 ret_val = EOB_ACT_END_OF_FILE;
6350 yyrestart( yyin );
6351 }
6352
6353 else
6354 {
6355 ret_val = EOB_ACT_LAST_MATCH;
6356 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
6358 }
6359 }
6360
6361 else
6362 ret_val = EOB_ACT_CONTINUE_SCAN;
6363
6364 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
6365 /* Extend the array by 50%, plus the number we really need. */
6366 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
6367 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
6368 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
6369 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
6370 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
6371 /* "- 2" to take care of EOB's */
6372 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
6373 }
6374
6375 (yy_n_chars) += number_to_move;
6376 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
6377 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
6378
6379 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
6380
6381 return ret_val;
6382}
6383
6384/* yy_get_previous_state - get the state just before the EOB char was reached */
6385
6386/* %if-c-only */
6387/* %not-for-header */
6388 static yy_state_type yy_get_previous_state (void)
6389/* %endif */
6390/* %if-c++-only */
6391/* %endif */
6392{
6393 yy_state_type yy_current_state;
6394 char *yy_cp;
6395
6396/* %% [15.0] code to get the start state into yy_current_state goes here */
6397 yy_current_state = (yy_start);
6398
6399 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
6400 {
6401/* %% [16.0] code to find the next state goes here */
6402 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
6403 if ( yy_accept[yy_current_state] )
6404 {
6405 (yy_last_accepting_state) = yy_current_state;
6406 (yy_last_accepting_cpos) = yy_cp;
6407 }
6408 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6409 {
6410 yy_current_state = (int) yy_def[yy_current_state];
6411 if ( yy_current_state >= 2458 )
6412 yy_c = yy_meta[yy_c];
6413 }
6414 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6415 }
6416
6417 return yy_current_state;
6418}
6419
6420/* yy_try_NUL_trans - try to make a transition on the NUL character
6421 *
6422 * synopsis
6423 * next_state = yy_try_NUL_trans( current_state );
6424 */
6425/* %if-c-only */
6426 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
6427/* %endif */
6428/* %if-c++-only */
6429/* %endif */
6430{
6431 int yy_is_jam;
6432 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
6433 char *yy_cp = (yy_c_buf_p);
6434
6435 YY_CHAR yy_c = 1;
6436 if ( yy_accept[yy_current_state] )
6437 {
6438 (yy_last_accepting_state) = yy_current_state;
6439 (yy_last_accepting_cpos) = yy_cp;
6440 }
6441 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6442 {
6443 yy_current_state = (int) yy_def[yy_current_state];
6444 if ( yy_current_state >= 2458 )
6445 yy_c = yy_meta[yy_c];
6446 }
6447 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6448 yy_is_jam = (yy_current_state == 2457);
6449
6450 return yy_is_jam ? 0 : yy_current_state;
6451}
6452
6453#ifndef YY_NO_UNPUT
6454/* %if-c-only */
6455
6456/* %endif */
6457#endif
6458
6459/* %if-c-only */
6460#ifndef YY_NO_INPUT
6461#ifdef __cplusplus
6462 static int yyinput (void)
6463#else
6464 static int input (void)
6465#endif
6466
6467/* %endif */
6468/* %if-c++-only */
6469/* %endif */
6470{
6471 int c;
6472
6473 *(yy_c_buf_p) = (yy_hold_char);
6474
6475 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
6476 {
6477 /* yy_c_buf_p now points to the character we want to return.
6478 * If this occurs *before* the EOB characters, then it's a
6479 * valid NUL; if not, then we've hit the end of the buffer.
6480 */
6481 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6482 /* This was really a NUL. */
6483 *(yy_c_buf_p) = '\0';
6484
6485 else
6486 { /* need more input */
6487 int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
6488 ++(yy_c_buf_p);
6489
6490 switch ( yy_get_next_buffer( ) )
6491 {
6492 case EOB_ACT_LAST_MATCH:
6493 /* This happens because yy_g_n_b()
6494 * sees that we've accumulated a
6495 * token and flags that we need to
6496 * try matching the token before
6497 * proceeding. But for input(),
6498 * there's no matching to consider.
6499 * So convert the EOB_ACT_LAST_MATCH
6500 * to EOB_ACT_END_OF_FILE.
6501 */
6502
6503 /* Reset buffer status. */
6504 yyrestart( yyin );
6505
6506 /*FALLTHROUGH*/
6507
6509 {
6510 if ( yywrap( ) )
6511 return 0;
6512
6513 if ( ! (yy_did_buffer_switch_on_eof) )
6515#ifdef __cplusplus
6516 return yyinput();
6517#else
6518 return input();
6519#endif
6520 }
6521
6523 (yy_c_buf_p) = (yytext_ptr) + offset;
6524 break;
6525 }
6526 }
6527 }
6528
6529 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
6530 *(yy_c_buf_p) = '\0'; /* preserve yytext */
6531 (yy_hold_char) = *++(yy_c_buf_p);
6532
6533/* %% [19.0] update BOL and yylineno */
6534
6535 return c;
6536}
6537/* %if-c-only */
6538#endif /* ifndef YY_NO_INPUT */
6539/* %endif */
6540
6546/* %if-c-only */
6547 void yyrestart (FILE * input_file )
6548/* %endif */
6549/* %if-c++-only */
6550/* %endif */
6551{
6552
6553 if ( ! YY_CURRENT_BUFFER ){
6557 }
6558
6559 yy_init_buffer( YY_CURRENT_BUFFER, input_file );
6561}
6562
6563/* %if-c++-only */
6564/* %endif */
6565
6570/* %if-c-only */
6572/* %endif */
6573/* %if-c++-only */
6574/* %endif */
6575{
6576
6577 /* TODO. We should be able to replace this entire function body
6578 * with
6579 * yypop_buffer_state();
6580 * yypush_buffer_state(new_buffer);
6581 */
6583 if ( YY_CURRENT_BUFFER == new_buffer )
6584 return;
6585
6586 if ( YY_CURRENT_BUFFER )
6587 {
6588 /* Flush out information for old buffer. */
6589 *(yy_c_buf_p) = (yy_hold_char);
6590 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6591 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6592 }
6593
6594 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6596
6597 /* We don't actually know whether we did this switch during
6598 * EOF (yywrap()) processing, but the only time this flag
6599 * is looked at is after yywrap() is called, so it's safe
6600 * to go ahead and always set it.
6601 */
6602 (yy_did_buffer_switch_on_eof) = 1;
6603}
6604
6605/* %if-c-only */
6606static void yy_load_buffer_state (void)
6607/* %endif */
6608/* %if-c++-only */
6609/* %endif */
6610{
6611 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6612 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6613/* %if-c-only */
6614 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6615/* %endif */
6616/* %if-c++-only */
6617/* %endif */
6618 (yy_hold_char) = *(yy_c_buf_p);
6619}
6620
6627/* %if-c-only */
6629/* %endif */
6630/* %if-c++-only */
6631/* %endif */
6632{
6634
6635 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6636 if ( ! b )
6637 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6638
6639 b->yy_buf_size = size;
6640
6641 /* yy_ch_buf has to be 2 characters longer than the size given because
6642 * we need to put in 2 end-of-buffer characters.
6643 */
6644 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
6645 if ( ! b->yy_ch_buf )
6646 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6647
6648 b->yy_is_our_buffer = 1;
6649
6650 yy_init_buffer( b, file );
6651
6652 return b;
6653}
6654
6655/* %if-c++-only */
6656/* %endif */
6657
6662/* %if-c-only */
6664/* %endif */
6665/* %if-c++-only */
6666/* %endif */
6667{
6668
6669 if ( ! b )
6670 return;
6671
6672 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6674
6675 if ( b->yy_is_our_buffer )
6676 yyfree( (void *) b->yy_ch_buf );
6677
6678 yyfree( (void *) b );
6679}
6680
6681/* Initializes or reinitializes a buffer.
6682 * This function is sometimes called more than once on the same buffer,
6683 * such as during a yyrestart() or at EOF.
6684 */
6685/* %if-c-only */
6686 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
6687/* %endif */
6688/* %if-c++-only */
6689/* %endif */
6690
6691{
6692 int oerrno = errno;
6693
6694 yy_flush_buffer( b );
6695
6696/* %if-c-only */
6697 b->yy_input_file = file;
6698/* %endif */
6699/* %if-c++-only */
6700/* %endif */
6701 b->yy_fill_buffer = 1;
6702
6703 /* If b is the current buffer, then yy_init_buffer was _probably_
6704 * called from yyrestart() or through yy_get_next_buffer.
6705 * In that case, we don't want to reset the lineno or column.
6706 */
6707 if (b != YY_CURRENT_BUFFER){
6708 b->yy_bs_lineno = 1;
6709 b->yy_bs_column = 0;
6710 }
6711
6712/* %if-c-only */
6713
6714 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
6715
6716/* %endif */
6717/* %if-c++-only */
6718/* %endif */
6719 errno = oerrno;
6720}
6721
6726/* %if-c-only */
6728/* %endif */
6729/* %if-c++-only */
6730/* %endif */
6731{
6732 if ( ! b )
6733 return;
6734
6735 b->yy_n_chars = 0;
6736
6737 /* We always need two end-of-buffer characters. The first causes
6738 * a transition to the end-of-buffer state. The second causes
6739 * a jam in that state.
6740 */
6743
6744 b->yy_buf_pos = &b->yy_ch_buf[0];
6745
6746 b->yy_at_bol = 1;
6748
6749 if ( b == YY_CURRENT_BUFFER )
6751}
6752
6753/* %if-c-or-c++ */
6760/* %if-c-only */
6762/* %endif */
6763/* %if-c++-only */
6764/* %endif */
6765{
6766 if (new_buffer == NULL)
6767 return;
6768
6770
6771 /* This block is copied from yy_switch_to_buffer. */
6772 if ( YY_CURRENT_BUFFER )
6773 {
6774 /* Flush out information for old buffer. */
6775 *(yy_c_buf_p) = (yy_hold_char);
6776 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6777 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6778 }
6779
6780 /* Only push if top exists. Otherwise, replace top. */
6782 (yy_buffer_stack_top)++;
6783 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6784
6785 /* copied from yy_switch_to_buffer. */
6787 (yy_did_buffer_switch_on_eof) = 1;
6788}
6789/* %endif */
6790
6791/* %if-c-or-c++ */
6796/* %if-c-only */
6798/* %endif */
6799/* %if-c++-only */
6800/* %endif */
6801{
6802 if (!YY_CURRENT_BUFFER)
6803 return;
6804
6807 if ((yy_buffer_stack_top) > 0)
6808 --(yy_buffer_stack_top);
6809
6810 if (YY_CURRENT_BUFFER) {
6812 (yy_did_buffer_switch_on_eof) = 1;
6813 }
6814}
6815/* %endif */
6816
6817/* %if-c-or-c++ */
6818/* Allocates the stack if it does not exist.
6819 * Guarantees space for at least one push.
6820 */
6821/* %if-c-only */
6822static void yyensure_buffer_stack (void)
6823/* %endif */
6824/* %if-c++-only */
6825/* %endif */
6826{
6827 yy_size_t num_to_alloc;
6828
6829 if (!(yy_buffer_stack)) {
6830
6831 /* First allocation is just for 2 elements, since we don't know if this
6832 * scanner will even need a stack. We use 2 instead of 1 to avoid an
6833 * immediate realloc on the next call.
6834 */
6835 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
6836 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
6837 (num_to_alloc * sizeof(struct yy_buffer_state*)
6838 );
6839 if ( ! (yy_buffer_stack) )
6840 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6841
6842 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6843
6844 (yy_buffer_stack_max) = num_to_alloc;
6845 (yy_buffer_stack_top) = 0;
6846 return;
6847 }
6848
6849 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6850
6851 /* Increase the buffer to prepare for a possible push. */
6852 yy_size_t grow_size = 8 /* arbitrary grow size */;
6853
6854 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6855 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
6856 ((yy_buffer_stack),
6857 num_to_alloc * sizeof(struct yy_buffer_state*)
6858 );
6859 if ( ! (yy_buffer_stack) )
6860 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6861
6862 /* zero only the new slots.*/
6863 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6864 (yy_buffer_stack_max) = num_to_alloc;
6865 }
6866}
6867/* %endif */
6868
6869/* %if-c-only */
6877{
6879
6880 if ( size < 2 ||
6881 base[size-2] != YY_END_OF_BUFFER_CHAR ||
6882 base[size-1] != YY_END_OF_BUFFER_CHAR )
6883 /* They forgot to leave room for the EOB's. */
6884 return NULL;
6885
6886 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6887 if ( ! b )
6888 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
6889
6890 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
6891 b->yy_buf_pos = b->yy_ch_buf = base;
6892 b->yy_is_our_buffer = 0;
6893 b->yy_input_file = NULL;
6894 b->yy_n_chars = b->yy_buf_size;
6895 b->yy_is_interactive = 0;
6896 b->yy_at_bol = 1;
6897 b->yy_fill_buffer = 0;
6899
6901
6902 return b;
6903}
6904/* %endif */
6905
6906/* %if-c-only */
6915YY_BUFFER_STATE yy_scan_string (const char * yystr )
6916{
6917
6918 return yy_scan_bytes( yystr, (int) strlen(yystr) );
6919}
6920/* %endif */
6921
6922/* %if-c-only */
6930YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
6931{
6933 char *buf;
6934 yy_size_t n;
6935 int i;
6936
6937 /* Get memory for full buffer, including space for trailing EOB's. */
6938 n = (yy_size_t) (_yybytes_len + 2);
6939 buf = (char *) yyalloc( n );
6940 if ( ! buf )
6941 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
6942
6943 for ( i = 0; i < _yybytes_len; ++i )
6944 buf[i] = yybytes[i];
6945
6946 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6947
6948 b = yy_scan_buffer( buf, n );
6949 if ( ! b )
6950 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
6951
6952 /* It's okay to grow etc. this buffer, and we should throw it
6953 * away when we're done.
6954 */
6955 b->yy_is_our_buffer = 1;
6956
6957 return b;
6958}
6959/* %endif */
6960
6961#ifndef YY_EXIT_FAILURE
6962#define YY_EXIT_FAILURE 2
6963#endif
6964
6965/* %if-c-only */
6966static void yynoreturn yy_fatal_error (const char* msg )
6967{
6968 fprintf( stderr, "%s\n", msg );
6969 exit( YY_EXIT_FAILURE );
6970}
6971/* %endif */
6972/* %if-c++-only */
6973/* %endif */
6974
6975/* Redefine yyless() so it works in section 3 code. */
6976
6977#undef yyless
6978#define yyless(n) \
6979 do \
6980 { \
6981 /* Undo effects of setting up yytext. */ \
6982 int yyless_macro_arg = (n); \
6983 YY_LESS_LINENO(yyless_macro_arg);\
6984 yytext[yyleng] = (yy_hold_char); \
6985 (yy_c_buf_p) = yytext + yyless_macro_arg; \
6986 (yy_hold_char) = *(yy_c_buf_p); \
6987 *(yy_c_buf_p) = '\0'; \
6988 yyleng = yyless_macro_arg; \
6989 } \
6990 while ( 0 )
6991
6992/* Accessor methods (get/set functions) to struct members. */
6993
6994/* %if-c-only */
6995/* %if-reentrant */
6996/* %endif */
6997
7002{
7003
7004 return yylineno;
7005}
7006
7010FILE *yyget_in (void)
7011{
7012 return yyin;
7013}
7014
7018FILE *yyget_out (void)
7019{
7020 return yyout;
7021}
7022
7026int yyget_leng (void)
7027{
7028 return yyleng;
7029}
7030
7034
7035char *yyget_text (void)
7036{
7037 return yytext;
7038}
7039
7040/* %if-reentrant */
7041/* %endif */
7042
7047void yyset_lineno (int _line_number )
7048{
7049
7050 yylineno = _line_number;
7051}
7052
7059void yyset_in (FILE * _in_str )
7060{
7061 yyin = _in_str ;
7062}
7063
7064void yyset_out (FILE * _out_str )
7065{
7066 yyout = _out_str ;
7067}
7068
7069int yyget_debug (void)
7070{
7071 return yy_flex_debug;
7072}
7073
7074void yyset_debug (int _bdebug )
7075{
7076 yy_flex_debug = _bdebug ;
7077}
7078
7079/* %endif */
7080
7081/* %if-reentrant */
7082/* %if-bison-bridge */
7083/* %endif */
7084/* %endif if-c-only */
7085
7086/* %if-c-only */
7087static int yy_init_globals (void)
7088{
7089 /* Initialization is the same as for the non-reentrant scanner.
7090 * This function is called from yylex_destroy(), so don't allocate here.
7091 */
7092
7093 (yy_buffer_stack) = NULL;
7094 (yy_buffer_stack_top) = 0;
7095 (yy_buffer_stack_max) = 0;
7096 (yy_c_buf_p) = NULL;
7097 (yy_init) = 0;
7098 (yy_start) = 0;
7099
7100/* Defined in main.c */
7101#ifdef YY_STDINIT
7102 yyin = stdin;
7103 yyout = stdout;
7104#else
7105 yyin = NULL;
7106 yyout = NULL;
7107#endif
7108
7109 /* For future reference: Set errno on error, since we are called by
7110 * yylex_init()
7111 */
7112 return 0;
7113}
7114/* %endif */
7115
7116/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
7117/* yylex_destroy is for both reentrant and non-reentrant scanners. */
7119{
7120
7121 /* Pop the buffer stack, destroying each element. */
7122 while(YY_CURRENT_BUFFER){
7126 }
7127
7128 /* Destroy the stack itself. */
7129 yyfree((yy_buffer_stack) );
7130 (yy_buffer_stack) = NULL;
7131
7132 /* Reset the globals. This is important in a non-reentrant scanner so the next time
7133 * yylex() is called, initialization will occur. */
7134 yy_init_globals( );
7135
7136/* %if-reentrant */
7137/* %endif */
7138 return 0;
7139}
7140/* %endif */
7141
7142/*
7143 * Internal utility routines.
7144 */
7145
7146#ifndef yytext_ptr
7147static void yy_flex_strncpy (char* s1, const char * s2, int n )
7148{
7149
7150 int i;
7151 for ( i = 0; i < n; ++i )
7152 s1[i] = s2[i];
7153}
7154#endif
7155
7156#ifdef YY_NEED_STRLEN
7157static int yy_flex_strlen (const char * s )
7158{
7159 int n;
7160 for ( n = 0; s[n]; ++n )
7161 ;
7162
7163 return n;
7164}
7165#endif
7166
7167void *yyalloc (yy_size_t size )
7168{
7169 return malloc(size);
7170}
7171
7172void *yyrealloc (void * ptr, yy_size_t size )
7173{
7174
7175 /* The cast to (char *) in the following accommodates both
7176 * implementations that use char* generic pointers, and those
7177 * that use void* generic pointers. It works with the latter
7178 * because both ANSI C and C++ allow castless assignment from
7179 * any pointer type to void*, and deal with argument conversions
7180 * as though doing an assignment.
7181 */
7182 return realloc(ptr, size);
7183}
7184
7185void yyfree (void * ptr )
7186{
7187 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
7188}
7189
7190/* %if-tables-serialization definitions */
7191/* %define-yytables The name for this specific scanner's tables. */
7192#define YYTABLES_NAME "yytables"
7193/* %endif */
7194
7195/* %ok-for-header */
7196
7197#line 2675 "dhcp4_lexer.ll"
7198
7199
7200using namespace isc::dhcp;
7201
7202void
7203Parser4Context::scanStringBegin(const std::string& str, ParserType parser_type)
7204{
7205 start_token_flag = true;
7206 start_token_value = parser_type;
7207
7208 file_ = "<string>";
7209 sfile_ = 0;
7210 loc_.initialize(&file_);
7211 yy_flex_debug = trace_scanning_;
7212 YY_BUFFER_STATE buffer;
7213 buffer = parser4__scan_bytes(str.c_str(), str.size());
7214 if (!buffer) {
7215 fatal("cannot scan string");
7216 /* fatal() throws an exception so this can't be reached */
7217 }
7218}
7219
7220void
7222 const std::string& filename,
7223 ParserType parser_type)
7224{
7225 start_token_flag = true;
7226 start_token_value = parser_type;
7227
7228 file_ = filename;
7229 sfile_ = f;
7230 loc_.initialize(&file_);
7231 yy_flex_debug = trace_scanning_;
7232 YY_BUFFER_STATE buffer;
7233
7234 /* See dhcp4_lexer.cc header for available definitions */
7235 buffer = parser4__create_buffer(f, 65536 /*buffer size*/);
7236 if (!buffer) {
7237 fatal("cannot scan file " + filename);
7238 }
7239 parser4__switch_to_buffer(buffer);
7240}
7241
7242void
7244 if (sfile_)
7245 fclose(sfile_);
7246 sfile_ = 0;
7247 static_cast<void>(parser4_lex_destroy());
7248 /* Close files */
7249 while (!sfiles_.empty()) {
7250 FILE* f = sfiles_.back();
7251 if (f) {
7252 fclose(f);
7253 }
7254 sfiles_.pop_back();
7255 }
7256 /* Delete states */
7257 while (!states_.empty()) {
7258 parser4__delete_buffer(states_.back());
7259 states_.pop_back();
7260 }
7261}
7262
7263void
7264Parser4Context::includeFile(const std::string& filename) {
7265 if (states_.size() > 10) {
7266 fatal("Too many nested include.");
7267 }
7268
7269 FILE* f = fopen(filename.c_str(), "r");
7270 if (!f) {
7271 fatal("Can't open include file " + filename);
7272 }
7273 if (sfile_) {
7274 sfiles_.push_back(sfile_);
7275 }
7276 sfile_ = f;
7277 states_.push_back(YY_CURRENT_BUFFER);
7278 YY_BUFFER_STATE buffer;
7279 buffer = parser4__create_buffer(f, 65536 /*buffer size*/);
7280 if (!buffer) {
7281 fatal( "Can't scan include file " + filename);
7282 }
7283 parser4__switch_to_buffer(buffer);
7284 files_.push_back(file_);
7285 file_ = filename;
7286 locs_.push_back(loc_);
7287 loc_.initialize(&file_);
7288
7289 BEGIN(INITIAL);
7290}
7291
7292namespace {
7294class Dummy {
7295 /* cppcheck-suppress unusedPrivateFunction */
7296 void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
7297};
7298}
7299#endif /* !__clang_analyzer__ */
7300
Evaluation error exception raised when trying to parse.
static symbol_type make_SAME_AS_INBOUND(const location_type &l)
static symbol_type make_SOCKET_NAME(const location_type &l)
static symbol_type make_PERSIST(const location_type &l)
static symbol_type make_FLUSH_RECLAIMED_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_SUBNET_4O6_INTERFACE_ID(const location_type &l)
static symbol_type make_SUB_INTERFACES4(const location_type &l)
static symbol_type make_RETRY_ON_STARTUP(const location_type &l)
static symbol_type make_PREFER(const location_type &l)
static symbol_type make_END(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_COUNT(const location_type &l)
static symbol_type make_IP_RESERVATIONS_UNIQUE(const location_type &l)
static symbol_type make_CLIENTS(const location_type &l)
static symbol_type make_VERIFY_FULL(const location_type &l)
static symbol_type make_THREAD_POOL_SIZE(const location_type &l)
static symbol_type make_SUB_OPTION_DATA(const location_type &l)
static symbol_type make_NAME(const location_type &l)
static symbol_type make_MATCH_CLIENT_ID(const location_type &l)
static symbol_type make_REQUIRE(const location_type &l)
static symbol_type make_MAX_RECLAIM_LEASES(const location_type &l)
static symbol_type make_STORE_EXTENDED_INFO(const location_type &l)
static symbol_type make_HTTPS(const location_type &l)
static symbol_type make_SERVICE_SOCKETS_MAX_RETRIES(const location_type &l)
static symbol_type make_LFC_INTERVAL(const location_type &l)
static symbol_type make_HOLD_RECLAIMED_TIME(const location_type &l)
static symbol_type make_SOCKET_ADDRESS(const location_type &l)
static symbol_type make_CONNECT_TIMEOUT(const location_type &l)
static symbol_type make_OPTION_DEF(const location_type &l)
static symbol_type make_NULL_TYPE(const location_type &l)
static symbol_type make_SERVICE_SOCKETS_REQUIRE_ALL(const location_type &l)
static symbol_type make_OUTPUT_OPTIONS(const location_type &l)
static symbol_type make_SENDER_PORT(const location_type &l)
static symbol_type make_CACHE_MAX_AGE(const location_type &l)
static symbol_type make_DDNS_TTL_MAX(const location_type &l)
static symbol_type make_CERT_REQUIRED(const location_type &l)
static symbol_type make_NCR_PROTOCOL(const location_type &l)
static symbol_type make_NO_CHECK_WITH_DHCID(const location_type &l)
static symbol_type make_CALCULATE_TEE_TIMES(const location_type &l)
static symbol_type make_RE_DETECT(const location_type &l)
static symbol_type make_RELAY(const location_type &l)
static symbol_type make_POOL_ID(const location_type &l)
static symbol_type make_MAX_VALID_LIFETIME(const location_type &l)
static symbol_type make_SERVER_HOSTNAME(const location_type &l)
static symbol_type make_IGNORE_DHCP_SERVER_ID(const location_type &l)
static symbol_type make_KEY_FILE(const location_type &l)
static symbol_type make_TEST(const location_type &l)
static symbol_type make_RECONNECT_WAIT_TIME(const location_type &l)
static symbol_type make_DHCP_MULTI_THREADING(const location_type &l)
static symbol_type make_ARRAY(const location_type &l)
static symbol_type make_SOCKET_TYPE(const location_type &l)
static symbol_type make_CHECK_EXISTS_WITH_DHCID(const location_type &l)
static symbol_type make_SPACE(const location_type &l)
static symbol_type make_HW_ADDRESS(const location_type &l)
static symbol_type make_USE_ROUTING(const location_type &l)
static symbol_type make_MAX_RECLAIM_TIME(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_REPLACEMENT(const location_type &l)
static symbol_type make_REALM(const location_type &l)
static symbol_type make_VALID_LIFETIME(const location_type &l)
static symbol_type make_MAXVER(const location_type &l)
static symbol_type make_BOOLEAN(const bool &v, const location_type &l)
static symbol_type make_DDNS_TTL_PERCENT(const location_type &l)
static symbol_type make_INTERFACE(const location_type &l)
static symbol_type make_REBIND_TIMER(const location_type &l)
static symbol_type make_BOOT_FILE_NAME(const location_type &l)
static symbol_type make_SEVERITY(const location_type &l)
static symbol_type make_RESERVATIONS_IN_SUBNET(const location_type &l)
static symbol_type make_IP_ADDRESSES(const location_type &l)
static symbol_type make_DDNS_UPDATE_ON_RENEW(const location_type &l)
static symbol_type make_INTERFACES_CONFIG(const location_type &l)
static symbol_type make_UDP(const location_type &l)
static symbol_type make_TCP(const location_type &l)
static symbol_type make_ONLY_IN_ADDITIONAL_LIST(const location_type &l)
static symbol_type make_SUBNET4(const location_type &l)
static symbol_type make_COLON(const location_type &l)
static symbol_type make_SERVE_RETRY_CONTINUE(const location_type &l)
static symbol_type make_HOSTS_DATABASES(const location_type &l)
static symbol_type make_SUB_DHCP_DDNS(const location_type &l)
static symbol_type make_DDNS_SEND_UPDATES(const location_type &l)
static symbol_type make_SOCKET_PORT(const location_type &l)
static symbol_type make_LENIENT_OPTION_PARSING(const location_type &l)
static symbol_type make_UNIX(const location_type &l)
static symbol_type make_DDNS_TTL_MIN(const location_type &l)
static symbol_type make_MIN_VALID_LIFETIME(const location_type &l)
static symbol_type make_DDNS_QUALIFYING_SUFFIX(const location_type &l)
static symbol_type make_DECLINE_PROBATION_PERIOD(const location_type &l)
static symbol_type make_IP_ADDRESS(const location_type &l)
static symbol_type make_SUB_HOOKS_LIBRARY(const location_type &l)
static symbol_type make_ENABLE_QUEUE(const location_type &l)
static symbol_type make_SUBNET(const location_type &l)
static symbol_type make_FLOAT(const double &v, const location_type &l)
static symbol_type make_HOSTNAME(const location_type &l)
static symbol_type make_DDNS_REPLACE_CLIENT_NAME(const location_type &l)
static symbol_type make_DIRECTORY(const location_type &l)
static symbol_type make_EXCLUDE_FIRST_LAST_24(const location_type &l)
static symbol_type make_SUB_RESERVATION(const location_type &l)
static symbol_type make_SUB_OPTION_DEFS(const location_type &l)
static symbol_type make_OPTION_DATA(const location_type &l)
static symbol_type make_TEMPLATE_TEST(const location_type &l)
static symbol_type make_EARLY_GLOBAL_RESERVATIONS_LOOKUP(const location_type &l)
static symbol_type make_ADAPTIVE_LEASE_TIME_THRESHOLD(const location_type &l)
static symbol_type make_LOGGERS(const location_type &l)
static symbol_type make_UNWARNED_RECLAIM_CYCLES(const location_type &l)
static symbol_type make_LEASE_CHECKS(const location_type &l)
static symbol_type make_USER(const location_type &l)
static symbol_type make_HTTP_HEADERS(const location_type &l)
static symbol_type make_AUTHENTICATION(const location_type &l)
static symbol_type make_SERVER_IP(const location_type &l)
static symbol_type make_IGNORE_RAI_LINK_SEL(const location_type &l)
static symbol_type make_HOSTS_DATABASE(const location_type &l)
static symbol_type make_QUEUE_TYPE(const location_type &l)
static symbol_type make_T1_PERCENT(const location_type &l)
static symbol_type make_RECLAIM_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_STOP_RETRY_EXIT(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_ALWAYS_SEND(const location_type &l)
static symbol_type make_CERT_FILE(const location_type &l)
static symbol_type make_ECHO_CLIENT_ID(const location_type &l)
static symbol_type make_VERIFY_CA(const location_type &l)
static symbol_type make_CHECK_WITH_DHCID(const location_type &l)
static symbol_type make_CIPHER_LIST(const location_type &l)
static symbol_type make_POOL(const location_type &l)
static symbol_type make_DATA(const location_type &l)
static symbol_type make_ENABLE_MULTI_THREADING(const location_type &l)
static symbol_type make_SSL_MODE(const location_type &l)
static symbol_type make_CSV_FORMAT(const location_type &l)
static symbol_type make_SERVER_PORT(const location_type &l)
static symbol_type make_SUB_SUBNET4(const location_type &l)
static symbol_type make_WHEN_NOT_PRESENT(const location_type &l)
static symbol_type make_READ_TIMEOUT(const location_type &l)
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_ON_FAIL(const location_type &l)
static symbol_type make_EXTENDED_INFO_CHECKS(const location_type &l)
static symbol_type make_JSON(const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
static symbol_type make_RECORD_TYPES(const location_type &l)
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
static symbol_type make_DUID(const location_type &l)
static symbol_type make_EVALUATE_ADDITIONAL_CLASSES(const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
static symbol_type make_SUBNET_4O6_INTERFACE(const location_type &l)
static symbol_type make_DHCP4(const location_type &l)
static symbol_type make_CAPACITY(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
static symbol_type make_SUB_OPTION_DEF(const location_type &l)
static symbol_type make_TYPE(const location_type &l)
static symbol_type make_ONLY_IF_REQUIRED(const location_type &l)
static symbol_type make_PASSWORD(const location_type &l)
static symbol_type make_CONFIG_DATABASES(const location_type &l)
static symbol_type make_AUTHORITATIVE(const location_type &l)
static symbol_type make_TCP_USER_TIMEOUT(const location_type &l)
static symbol_type make_HOST_RESERVATION_IDENTIFIERS(const location_type &l)
static symbol_type make_HTTP(const location_type &l)
static symbol_type make_MAX_ROW_ERRORS(const location_type &l)
static symbol_type make_INTERFACES(const location_type &l)
static symbol_type make_T2_PERCENT(const location_type &l)
static symbol_type make_READONLY(const location_type &l)
static symbol_type make_DDNS_USE_CONFLICT_RESOLUTION(const location_type &l)
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
static symbol_type make_ENABLE_UPDATES(const location_type &l)
static symbol_type make_SERVER_TAG(const location_type &l)
static symbol_type make_DEBUGLEVEL(const location_type &l)
static symbol_type make_DHCP_QUEUE_CONTROL(const location_type &l)
static symbol_type make_MAXSIZE(const location_type &l)
static symbol_type make_PORT(const location_type &l)
static symbol_type make_FLEX_ID(const location_type &l)
static symbol_type make_PASSWORD_FILE(const location_type &l)
static symbol_type make_DISABLE(const location_type &l)
static symbol_type make_CLIENT_CLASS(const location_type &l)
static symbol_type make_NEXT_SERVER(const location_type &l)
static symbol_type make_SANITY_CHECKS(const location_type &l)
static symbol_type make_EXPIRED_LEASES_PROCESSING(const location_type &l)
static symbol_type make_RAW(const location_type &l)
static symbol_type make_OUTBOUND_INTERFACE(const location_type &l)
static symbol_type make_RESERVATIONS_OUT_OF_POOL(const location_type &l)
static symbol_type make_ID(const location_type &l)
static symbol_type make_PATTERN(const location_type &l)
static symbol_type make_SUB_POOL4(const location_type &l)
static symbol_type make_NEVER(const location_type &l)
static symbol_type make_TOPLEVEL_JSON(const location_type &l)
static symbol_type make_RESERVATIONS_GLOBAL(const location_type &l)
static symbol_type make_RCURLY_BRACKET(const location_type &l)
static symbol_type make_COMMENT(const location_type &l)
static symbol_type make_RESERVATIONS(const location_type &l)
static symbol_type make_HOOKS_LIBRARIES(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_SET(const location_type &l)
static symbol_type make_TRUST_ANCHOR(const location_type &l)
static symbol_type make_MAX_QUEUE_SIZE(const location_type &l)
static symbol_type make_SERVE_RETRY_EXIT(const location_type &l)
static symbol_type make_USER_FILE(const location_type &l)
static symbol_type make_ALLOCATOR(const location_type &l)
static symbol_type make_COMPATIBILITY(const location_type &l)
static symbol_type make_POOLS(const location_type &l)
static symbol_type make_DHCP_DDNS(const location_type &l)
static symbol_type make_ALWAYS(const location_type &l)
static symbol_type make_CLIENT_ID(const location_type &l)
static symbol_type make_OFFER_LFT(const location_type &l)
static symbol_type make_SUB_CONFIG_CONTROL(const location_type &l)
static symbol_type make_RESERVATIONS_LOOKUP_FIRST(const location_type &l)
static symbol_type make_CONTROL_SOCKETS(const location_type &l)
static symbol_type make_TOPLEVEL_DHCP4(const location_type &l)
static symbol_type make_MAX_RECONNECT_TRIES(const location_type &l)
static symbol_type make_VALUE(const location_type &l)
static symbol_type make_FLUSH(const location_type &l)
static symbol_type make_HOST(const location_type &l)
static symbol_type make_WHEN_PRESENT(const location_type &l)
static symbol_type make_SENDER_IP(const location_type &l)
static symbol_type make_DHCP_SOCKET_TYPE(const location_type &l)
static symbol_type make_CONFIG_CONTROL(const location_type &l)
static symbol_type make_CONFIG_FETCH_WAIT_TIME(const location_type &l)
static symbol_type make_DHCP4O6_PORT(const location_type &l)
static symbol_type make_NO_CHECK_WITHOUT_DHCID(const location_type &l)
static symbol_type make_CODE(const location_type &l)
static symbol_type make_SHARED_NETWORKS(const location_type &l)
static symbol_type make_DDNS_GENERATED_PREFIX(const location_type &l)
static symbol_type make_USER_CONTEXT(const location_type &l)
static symbol_type make_NCR_FORMAT(const location_type &l)
static symbol_type make_WRITE_TIMEOUT(const location_type &l)
static symbol_type make_REQUIRE_CLIENT_CLASSES(const location_type &l)
static symbol_type make_COMMA(const location_type &l)
static symbol_type make_DDNS_CONFLICT_RESOLUTION_MODE(const location_type &l)
static symbol_type make_SUB_DHCP4(const location_type &l)
static symbol_type make_SUBNET_4O6_SUBNET(const location_type &l)
static symbol_type make_OUTPUT(const location_type &l)
static symbol_type make_NEVER_SEND(const location_type &l)
static symbol_type make_DDNS_TTL(const location_type &l)
static symbol_type make_RSQUARE_BRACKET(const location_type &l)
static symbol_type make_RENEW_TIMER(const location_type &l)
static symbol_type make_BASIC(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_CLIENT_UPDATE(const location_type &l)
static symbol_type make_CLIENT_CLASSES(const location_type &l)
static symbol_type make_ENCAPSULATE(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_AGE(const location_type &l)
static symbol_type make_CIRCUIT_ID(const location_type &l)
static symbol_type make_CACHE_THRESHOLD(const location_type &l)
static symbol_type make_PARKED_PACKET_LIMIT(const location_type &l)
static symbol_type make_PACKET_QUEUE_SIZE(const location_type &l)
static symbol_type make_SERVICE_SOCKETS_RETRY_WAIT_TIME(const location_type &l)
static symbol_type make_STASH_AGENT_OPTIONS(const location_type &l)
static symbol_type make_LEASE_DATABASE(const location_type &l)
void scanFileBegin(FILE *f, const std::string &filename, ParserType type)
Method called before scanning starts on a file.
std::vector< std::string > files_
File name stack.
void scanEnd()
Method called after the last tokens are scanned.
std::vector< FILE * > sfiles_
sFile (aka FILE) stack
@ SUBNET4
Used while parsing Dhcp4/Subnet4 structures.
@ POOLS
Used while parsing Dhcp4/subnet4/pools structures.
@ CLIENT_CLASSES
Used while parsing Dhcp4/client-classes structures.
@ RESERVATIONS
Used while parsing Dhcp4/reservations structures.
@ HOSTS_DATABASE
Used while parsing Dhcp4/hosts-databases structures.
@ NCR_PROTOCOL
Used while parsing Dhcp4/dhcp-ddns/ncr-protocol.
@ LOGGERS
Used while parsing Dhcp4/loggers structures.
@ DATABASE_ON_FAIL
Used while parsing Dhcp4/*-database/on-fail.
@ NCR_FORMAT
Used while parsing Dhcp4/dhcp-ddns/ncr-format.
@ DDNS_CONFLICT_RESOLUTION_MODE
Used while parsing Dhcp4/ib-ddns-conflict-resolution-mode.
@ COMPATIBILITY
Used while parsing compatibility parameters.
@ OUTBOUND_INTERFACE
Used while parsing Dhcp4/interfaces/outbound-interface structures.
@ CONFIG
Used while parsing content of Dhcp4.
@ OUTPUT_OPTIONS
Used while parsing Dhcp4/loggers/output-options structures.
@ DHCP_DDNS
Used while parsing Dhcp4/dhcp-ddns.
@ OPTION_DATA
Used while parsing Dhcp4/option-data, Dhcp4/subnet4/option-data or anywhere option-data is present (c...
@ AUTH_TYPE
Used while parsing Dhcp4/control-sockets/authentication/type structures.
@ DHCP_MULTI_THREADING
Used while parsing Dhcp4/multi-threading structures.
@ LEASE_DATABASE
Used while parsing Dhcp4/lease-database structures.
@ SHARED_NETWORK
Used while parsing shared-networks structures.
@ CONTROL_SOCKETS
Used while parsing Dhcp4/control-sockets structures.
@ EXPIRED_LEASES_PROCESSING
Used while parsing Dhcp4/expired-leases-processing.
@ CLIENTS
Used while parsing Dhcp4/control-sockets/authentication/clients structures.
@ CONFIG_CONTROL
Used while parsing Dhcp4/config-control.
@ INTERFACES_CONFIG
Used while parsing Dhcp4/interfaces structures.
@ HOST_RESERVATION_IDENTIFIERS
Used while parsing Dhcp4/host-reservation-identifiers.
@ CONTROL_SOCKET_TYPE
Used while parsing Dhcp4/control-sockets/socket-type structures.
@ OPTION_DEF
Used while parsing Dhcp4/option-def structures.
@ CONFIG_DATABASE
Used while parsing config-control/config-databases.
@ HOOKS_LIBRARIES
Used while parsing Dhcp4/hooks-libraries.
@ DHCP_QUEUE_CONTROL
Used while parsing Dhcp4/dhcp-queue-control structures.
@ AUTHENTICATION
Used while parsing Dhcp4/control-sockets/authentication structures.
@ REPLACE_CLIENT_NAME
Used while parsing Dhcp4/dhcp-ddns/replace-client-name.
@ RELAY
Used while parsing Dhcp4/subnet4relay structures.
@ SSL_MODE
Used while parsing Dhcp4/*-database/ssl-mode.
@ DHCP_SOCKET_TYPE
Used while parsing Dhcp4/interfaces/dhcp-socket-type structures.
ParserType
Defines currently supported scopes.
@ PARSER_INTERFACES
This will parse the input as interfaces content.
@ PARSER_CONFIG_CONTROL
This will parse the input as config-control.
@ PARSER_DHCP_DDNS
This will parse the input as dhcp-ddns.
@ PARSER_DHCP4
This parser will parse the content as Dhcp4 config wrapped in a map (that's the regular config file).
@ PARSER_OPTION_DEFS
This will parse the input option definitions (for tests).
@ PARSER_HOST_RESERVATION
This will parse the input as host-reservation.
@ PARSER_OPTION_DATA
This will parse the input as option data.
@ PARSER_OPTION_DEF
This will parse the input as option definition.
@ PARSER_JSON
This parser will parse the content as generic JSON.
@ PARSER_POOL4
This will parse the input as pool4 content.
@ SUBPARSER_DHCP4
This parser will parse the content of Dhcp4 (without outer { } and without "Dhcp4").
@ PARSER_HOOKS_LIBRARY
This will parse the input as hooks-library.
@ PARSER_SUBNET4
This will parse the input as Subnet4 content.
FILE * sfile_
sFile (aka FILE)
std::vector< struct yy_buffer_state * > states_
Lexer state stack.
isc::dhcp::location loc_
Location of the current token.
void includeFile(const std::string &filename)
Divert input to an include file.
void scanStringBegin(const std::string &str, ParserType type)
Method called before scanning starts on a string.
std::vector< isc::dhcp::location > locs_
Location stack.
#define YY_NEW_FILE
Definition d2_lexer.cc:424
unsigned char flex_uint8_t
Definition d2_lexer.cc:335
#define COMMENT
Definition d2_lexer.cc:1272
#define yyleng
Definition d2_lexer.cc:26
#define YY_EXTRA_TYPE
Definition d2_lexer.cc:1290
#define DIR_INCLUDE
Definition d2_lexer.cc:1274
#define yyout
Definition d2_lexer.cc:29
short int flex_int16_t
Definition d2_lexer.cc:333
#define yytext
Definition d2_lexer.cc:31
unsigned int flex_uint32_t
Definition d2_lexer.cc:337
#define YY_BREAK
Definition d2_lexer.cc:1499
#define yynoreturn
Definition d2_lexer.cc:388
int yy_act
Definition d2_lexer.cc:1513
struct yy_buffer_state * YY_BUFFER_STATE
Definition d2_lexer.cc:446
#define YY_BUFFER_NEW
Definition d2_lexer.cc:539
#define YY_RESTORE_YY_MORE_OFFSET
Definition d2_lexer.cc:1196
#define yylineno
Definition d2_lexer.cc:28
#define YY_BUFFER_NORMAL
Definition d2_lexer.cc:540
char * yy_cp
Definition d2_lexer.cc:1512
#define YY_MORE_ADJ
Definition d2_lexer.cc:1195
#define YY_RULE_SETUP
Definition d2_lexer.cc:1503
#define yy_flex_debug
Definition d2_lexer.cc:24
#define DIR_EXIT
Definition d2_lexer.cc:1275
#define yytext_ptr
Definition d2_lexer.cc:669
signed char flex_int8_t
Definition d2_lexer.cc:332
#define EOB_ACT_END_OF_FILE
Definition d2_lexer.cc:465
#define YY_CURRENT_BUFFER_LVALUE
Definition d2_lexer.cc:581
int flex_int32_t
Definition d2_lexer.cc:334
#define yyin
Definition d2_lexer.cc:25
#define YY_START
Definition d2_lexer.cc:419
int yy_state_type
Definition d2_lexer.cc:660
#define YY_CURRENT_BUFFER
Definition d2_lexer.cc:575
#define INITIAL
Definition d2_lexer.cc:1271
char * yy_bp
Definition d2_lexer.cc:1512
#define YY_READ_BUF_SIZE
Definition d2_lexer.cc:1387
#define ECHO
Definition d2_lexer.cc:1397
#define YY_END_OF_BUFFER
Definition d2_lexer.cc:695
#define BEGIN
Definition d2_lexer.cc:414
#define YY_END_OF_BUFFER_CHAR
Definition d2_lexer.cc:425
unsigned short int flex_uint16_t
Definition d2_lexer.cc:336
flex_uint8_t YY_CHAR
Definition d2_lexer.cc:656
#define YY_DO_BEFORE_ACTION
Definition d2_lexer.cc:685
#define EOB_ACT_LAST_MATCH
Definition d2_lexer.cc:466
size_t yy_size_t
Definition d2_lexer.cc:451
#define YY_BUFFER_EOF_PENDING
Definition d2_lexer.cc:551
#define EOB_ACT_CONTINUE_SCAN
Definition d2_lexer.cc:464
#define YY_DECL
Definition d2_lexer.cc:1484
#define YY_BUF_SIZE
Definition d2_lexer.cc:436
#define YY_EXIT_FAILURE
Definition d2_lexer.cc:3746
#define DIR_ENTER
Definition d2_lexer.cc:1273
#define yy_load_buffer_state
#define yyset_extra
#define yyset_lineno
#define yyrestart
#define yyset_debug
#define yy_scan_bytes
#define yyget_debug
#define yypush_buffer_state
#define yyget_in
Get the input stream.
#define yyfree
#define yylex
#define yyget_leng
Get the length of the current token.
#define yywrap
#define yyget_out
Get the output stream.
#define yyensure_buffer_stack
#define yy_scan_buffer
#define yy_scan_string
#define yyalloc
#define yylex_destroy
#define yyget_text
Get the current token.
#define yy_switch_to_buffer
#define yy_init_buffer
#define yyget_extra
#define YY_INPUT(buf, result, max_size)
#define yy_flush_buffer
#define yyrealloc
#define YY_STATE_EOF(state)
#define BEGIN
#define YY_FATAL_ERROR(msg)
#define yypop_buffer_state
Removes and deletes the top of the stack, if present.
#define yy_create_buffer
#define yy_delete_buffer
#define yyset_out
#define yyget_lineno
Get the current line number.
#define YY_SC_TO_UI(c)
#define yyset_in
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
@ fatal
Definition db_log.h:125
int yy_bs_column
The column count.
Definition d2_lexer.cc:530
FILE * yy_input_file
Definition d2_lexer.cc:491
int yy_bs_lineno
The line count.
Definition d2_lexer.cc:529
char * yy_buf_pos
Definition d2_lexer.cc:498
flex_int32_t yy_verify
Definition d2_lexer.cc:700