Kea: dhcp4_lexer.cc Source File

| Kea 3.0.2-git

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