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