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