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