Kea: dhcp4_lexer.cc Source File

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