Kea: dhcp4_lexer.cc Source File

| Kea 2.2.0

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