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