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