Kea 2.5.8
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 234
695#define YY_END_OF_BUFFER 235
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[2356] =
704 { 0,
705 227, 227, 0, 0, 0, 0, 0, 0, 0, 0,
706 235, 233, 10, 11, 233, 1, 227, 224, 227, 227,
707 233, 226, 225, 233, 233, 233, 233, 233, 220, 221,
708 233, 233, 233, 222, 223, 5, 5, 5, 233, 233,
709 233, 10, 11, 0, 0, 215, 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, 0, 1,
713 227, 227, 0, 226, 227, 3, 2, 6, 0, 227,
714 0, 0, 0, 0, 0, 0, 4, 0, 0, 9,
715
716 0, 216, 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 0, 0, 0, 0, 0, 218, 0, 0, 0,
718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
725 2, 0, 0, 0, 0, 0, 0, 0, 8, 0,
726
727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
728 0, 0, 217, 219, 0, 0, 0, 0, 0, 0,
729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
732 0, 0, 0, 102, 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, 0, 0,
740 0, 0, 0, 0, 0, 232, 230, 0, 229, 228,
741 0, 0, 0, 0, 0, 0, 0, 0, 0, 189,
742 0, 188, 0, 0, 108, 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, 105, 0,
750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
751 0, 0, 0, 0, 0, 0, 0, 0, 18, 0,
752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
755 19, 0, 0, 0, 0, 0, 231, 228, 0, 0,
756 0, 0, 0, 0, 0, 190, 0, 0, 192, 0,
757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
758 0, 0, 0, 112, 0, 0, 0, 0, 0, 0,
759
760 92, 0, 0, 0, 0, 0, 0, 136, 0, 0,
761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
762 0, 41, 0, 0, 0, 0, 0, 0, 0, 0,
763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
764 0, 0, 0, 0, 0, 0, 91, 0, 0, 0,
765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
766 0, 0, 0, 0, 0, 96, 0, 0, 42, 0,
767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
770
771 0, 0, 132, 0, 0, 35, 0, 0, 39, 0,
772 0, 0, 0, 0, 0, 0, 0, 12, 194, 193,
773 0, 0, 0, 0, 0, 146, 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, 0, 0, 0, 0, 0,
777 0, 0, 0, 0, 124, 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, 37, 0, 0, 0, 0, 0,
781
782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
783 0, 0, 0, 0, 95, 0, 0, 0, 0, 0,
784 0, 0, 0, 0, 0, 147, 0, 0, 0, 0,
785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
786 142, 0, 0, 0, 0, 0, 0, 0, 0, 0,
787 0, 0, 0, 0, 0, 0, 7, 0, 0, 195,
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, 107,
794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 126, 0, 0, 0, 0, 0, 0,
797 0, 0, 0, 0, 0, 0, 0, 122, 0, 0,
798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
801 0, 0, 0, 0, 0, 100, 0, 0, 0, 0,
802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
803
804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
805 0, 0, 0, 0, 0, 0, 0, 0, 99, 0,
806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
809 0, 140, 0, 0, 0, 0, 0, 0, 0, 0,
810 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
811 152, 119, 0, 0, 0, 0, 0, 0, 125, 36,
812 0, 0, 0, 0, 0, 0, 0, 50, 0, 0,
813 0, 0, 0, 0, 0, 0, 0, 0, 0, 127,
814
815 43, 97, 0, 0, 0, 0, 0, 0, 0, 0,
816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
818 0, 0, 0, 0, 86, 0, 0, 0, 0, 0,
819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
821 171, 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, 104, 0,
824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
825
826 0, 0, 0, 141, 0, 0, 0, 0, 0, 0,
827 0, 0, 59, 0, 0, 0, 0, 0, 0, 0,
828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
830 0, 40, 0, 0, 0, 0, 0, 34, 0, 0,
831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
832 0, 0, 0, 0, 0, 0, 0, 128, 0, 0,
833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
835 0, 0, 69, 0, 0, 0, 0, 0, 0, 58,
836
837 0, 0, 0, 138, 0, 0, 0, 0, 0, 0,
838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
839 0, 0, 172, 0, 0, 0, 0, 0, 0, 0,
840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
841 0, 0, 0, 0, 0, 101, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
845 0, 24, 0, 0, 0, 0, 0, 0, 0, 0,
846 0, 0, 0, 0, 177, 0, 0, 0, 175, 0,
847
848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
850 199, 0, 0, 0, 0, 0, 0, 0, 0, 0,
851 0, 0, 0, 139, 0, 0, 0, 0, 0, 0,
852 0, 143, 0, 0, 0, 0, 0, 0, 0, 0,
853 0, 123, 0, 0, 0, 0, 0, 0, 0, 0,
854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
855 0, 0, 137, 0, 0, 23, 0, 148, 0, 0,
856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
857 0, 0, 181, 0, 94, 0, 0, 0, 0, 89,
858
859 0, 0, 0, 0, 0, 0, 0, 151, 0, 38,
860 0, 170, 0, 0, 0, 0, 0, 0, 0, 0,
861 0, 0, 0, 0, 0, 0, 0, 0, 67, 0,
862 0, 0, 0, 0, 0, 0, 115, 116, 0, 0,
863 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
864 0, 0, 0, 93, 0, 0, 0, 0, 0, 60,
865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
867 0, 0, 0, 0, 0, 145, 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 0, 0, 0, 0, 203, 0, 0, 90, 106, 0,
872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
873 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,
874 178, 0, 0, 176, 0, 0, 167, 166, 0, 0,
875 0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
876 0, 0, 0, 0, 0, 191, 0, 0, 0, 0,
877 0, 131, 0, 0, 0, 0, 0, 0, 0, 0,
878 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
879 0, 160, 0, 0, 0, 169, 0, 0, 0, 0,
880
881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
882 149, 0, 15, 0, 0, 44, 0, 0, 0, 0,
883 0, 0, 0, 0, 0, 180, 0, 0, 0, 0,
884 0, 0, 0, 0, 0, 0, 46, 65, 0, 0,
885 144, 0, 0, 0, 135, 0, 0, 0, 0, 0,
886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
887 57, 0, 98, 0, 0, 197, 0, 0, 0, 0,
888 0, 0, 202, 0, 118, 0, 0, 0, 209, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
896 0, 0, 0, 0, 0, 0, 14, 0, 0, 0,
897 0, 0, 0, 0, 0, 0, 133, 0, 0, 0,
898 47, 0, 0, 0, 0, 0, 0, 205, 0, 0,
899 129, 31, 0, 0, 0, 165, 0, 0, 0, 0,
900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
901 200, 0, 173, 0, 0, 0, 0, 0, 0, 0,
902
903 0, 0, 0, 29, 0, 0, 0, 0, 0, 28,
904 0, 0, 179, 0, 0, 0, 56, 0, 0, 0,
905 214, 0, 0, 121, 120, 0, 0, 0, 0, 0,
906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 61, 0, 0, 0, 0, 0, 0, 117,
909 0, 0, 0, 45, 0, 0, 0, 0, 0, 0,
910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
911 0, 0, 0, 0, 0, 150, 0, 0, 0, 30,
912 0, 0, 0, 0, 0, 201, 0, 0, 0, 0,
913
914 0, 161, 0, 0, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,
916 0, 0, 204, 0, 88, 0, 51, 0, 0, 0,
917 0, 198, 0, 81, 0, 0, 196, 0, 32, 0,
918 0, 0, 0, 0, 0, 0, 0, 85, 0, 0,
919 0, 0, 17, 0, 0, 0, 0, 0, 0, 185,
920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
921 158, 0, 0, 0, 134, 0, 0, 0, 0, 0,
922 0, 0, 0, 0, 0, 103, 0, 0, 0, 0,
923 54, 0, 52, 0, 0, 0, 0, 48, 163, 0,
924
925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
926 0, 72, 0, 0, 0, 0, 0, 0, 0, 0,
927 0, 0, 0, 0, 0, 186, 0, 0, 13, 0,
928 0, 0, 0, 0, 0, 0, 0, 0, 164, 0,
929 174, 0, 0, 0, 0, 0, 0, 0, 0, 0,
930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
931 0, 0, 0, 0, 0, 0, 0, 0, 0, 168,
932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
933 0, 0, 0, 157, 0, 63, 62, 20, 0, 182,
934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
935
936 0, 0, 0, 0, 0, 0, 0, 82, 0, 114,
937 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
938 0, 0, 0, 0, 0, 0, 156, 0, 0, 0,
939 0, 0, 0, 55, 0, 68, 0, 49, 184, 0,
940 109, 0, 0, 0, 0, 0, 0, 0, 0, 87,
941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
942 78, 0, 0, 0, 0, 0, 0, 16, 0, 0,
943 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
944 0, 53, 0, 0, 0, 0, 0, 0, 0, 0,
945 0, 76, 0, 0, 0, 0, 0, 0, 0, 0,
946
947 213, 0, 0, 0, 0, 0, 0, 0, 0, 0,
948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
949 0, 84, 33, 0, 0, 0, 77, 0, 0, 0,
950 0, 162, 0, 0, 0, 0, 0, 0, 207, 210,
951 183, 0, 130, 110, 0, 0, 0, 0, 0, 0,
952 0, 83, 0, 0, 73, 0, 0, 0, 0, 0,
953 0, 0, 0, 0, 0, 154, 0, 0, 0, 0,
954 0, 0, 159, 0, 0, 75, 0, 66, 0, 0,
955 0, 0, 0, 0, 0, 0, 111, 0, 0, 0,
956 0, 0, 0, 0, 0, 153, 0, 0, 187, 0,
957
958 212, 208, 0, 0, 0, 0, 0, 0, 0, 0,
959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
960 74, 0, 0, 0, 0, 0, 27, 25, 0, 0,
961 0, 0, 79, 0, 0, 113, 0, 0, 71, 0,
962 80, 0, 0, 211, 0, 0, 0, 0, 0, 70,
963 0, 155, 26, 206, 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[2364] =
1011 { 0,
1012 0, 75, 21, 28, 39, 47, 53, 61, 95, 103,
1013 2805, 2806, 31, 2801, 151, 0, 216, 2806, 223, 230,
1014 13, 237, 2806, 2781, 124, 17, 4, 34, 2806, 2806,
1015 23, 43, 64, 2806, 2806, 2806, 56, 2789, 2739, 0,
1016 2779, 106, 2796, 2, 274, 2806, 2735, 85, 90, 2741,
1017 98, 77, 231, 235, 97, 200, 304, 229, 2733, 318,
1018 218, 62, 219, 220, 214, 257, 2742, 298, 307, 342,
1019 328, 229, 2725, 21, 347, 392, 327, 2744, 293, 0,
1020 404, 420, 435, 452, 445, 2806, 0, 2806, 409, 460,
1021 203, 228, 317, 260, 354, 343, 2806, 2741, 2785, 2806,
1022
1023 300, 2806, 474, 2772, 342, 254, 2738, 368, 17, 363,
1024 2777, 366, 402, 418, 335, 2781, 0, 538, 439, 2720,
1025 2717, 2721, 432, 2717, 299, 2725, 432, 2711, 2712, 2717,
1026 76, 2727, 2710, 2719, 2709, 2718, 390, 438, 63, 2711,
1027 2709, 428, 2760, 2764, 2707, 2700, 2756, 2693, 441, 2714,
1028 2714, 2708, 243, 2701, 2699, 2700, 2692, 2697, 2691, 444,
1029 2702, 395, 2687, 2686, 2700, 464, 2686, 434, 455, 2680,
1030 508, 242, 447, 2701, 2698, 2699, 458, 2697, 2735, 2734,
1031 475, 198, 2678, 472, 2679, 482, 2671, 2688, 2680, 2682,
1032 0, 484, 490, 507, 500, 514, 518, 2678, 2806, 2726,
1033
1034 546, 552, 2672, 511, 545, 553, 557, 2729, 556, 2728,
1035 550, 2727, 2806, 2806, 599, 393, 562, 2683, 2675, 2662,
1036 2673, 2677, 2678, 2658, 2669, 2673, 2670, 2669, 465, 532,
1037 2710, 2671, 2652, 2649, 2657, 2652, 2666, 2662, 2653, 2649,
1038 2661, 2661, 2649, 2651, 2654, 2634, 2638, 2651, 2653, 2650,
1039 2642, 2632, 2650, 2806, 2635, 2644, 82, 2685, 2628, 2637,
1040 2682, 2626, 2636, 2639, 526, 2635, 2677, 2619, 2621, 2632,
1041 2673, 575, 2615, 16, 2628, 2608, 2623, 570, 2613, 2619,
1042 476, 2610, 2608, 2608, 2614, 2605, 2604, 2611, 2601, 2663,
1043 2616, 2615, 2609, 538, 2616, 2611, 2603, 2593, 2608, 2594,
1044
1045 2606, 2601, 2605, 2586, 2602, 2588, 2594, 2601, 2583, 533,
1046 2588, 2585, 2584, 599, 2583, 2578, 2592, 577, 2591, 2637,
1047 2593, 607, 2584, 2572, 592, 2806, 2806, 594, 2806, 2806,
1048 2570, 572, 587, 600, 2621, 608, 2631, 596, 607, 2806,
1049 2630, 2806, 2624, 660, 2806, 2583, 593, 2560, 2569, 2620,
1050 2577, 2560, 2577, 2616, 2573, 2556, 2562, 2617, 2569, 2572,
1051 2563, 2566, 2552, 2563, 2610, 2604, 2559, 2556, 516, 2562,
1052 2605, 2537, 2598, 2548, 2543, 2537, 2539, 2542, 2592, 2546,
1053 2535, 2551, 2588, 2531, 632, 2545, 2530, 2529, 2542, 2540,
1054 2538, 2538, 2537, 2532, 2539, 2534, 2530, 576, 2528, 2531,
1055
1056 2526, 2512, 2524, 2520, 2573, 600, 603, 2567, 2806, 2511,
1057 2527, 2564, 2511, 2510, 2509, 2502, 2504, 2516, 2507, 2514,
1058 2495, 2512, 2507, 659, 2557, 2507, 2504, 2507, 2806, 2506,
1059 285, 2496, 2508, 605, 2483, 2484, 2505, 2496, 2486, 2478,
1060 2539, 2481, 2495, 615, 2481, 2493, 2492, 2491, 2486, 2531,
1061 2488, 2487, 2486, 2485, 2468, 2476, 2529, 2485, 2465, 2526,
1062 2806, 2465, 2464, 684, 2477, 2475, 2806, 2806, 2475, 2464,
1063 2456, 641, 2513, 2517, 2516, 2806, 2515, 628, 2806, 655,
1064 713, 2471, 654, 2513, 2452, 2463, 2505, 2455, 2457, 2459,
1065 2446, 2454, 2442, 2806, 2447, 2440, 2452, 2455, 2442, 2441,
1066
1067 2806, 691, 2443, 2440, 651, 2438, 2440, 2806, 2488, 2447,
1068 2444, 2429, 2443, 2441, 2441, 2435, 687, 2442, 2430, 2423,
1069 2477, 2806, 2421, 2437, 2474, 2432, 2430, 2428, 2429, 2413,
1070 2422, 2467, 2415, 2414, 2409, 2408, 2462, 2403, 643, 2422,
1071 2396, 2403, 2408, 2418, 2455, 2459, 2806, 2401, 2397, 691,
1072 2395, 2450, 2403, 2402, 2396, 2403, 2387, 2387, 2397, 2385,
1073 2399, 2399, 2387, 2383, 2381, 2806, 2390, 2440, 2806, 2379,
1074 2390, 2432, 2374, 2373, 2378, 2387, 2381, 2375, 2384, 2429,
1075 2423, 2382, 2366, 2361, 2419, 2380, 2355, 2361, 669, 2375,
1076 2368, 2372, 2355, 2416, 2354, 2354, 2408, 2350, 2351, 2350,
1077
1078 2348, 2365, 2806, 2361, 2401, 2806, 2349, 2347, 2806, 2358,
1079 2397, 2396, 2353, 2337, 2354, 2397, 680, 2806, 2806, 2806,
1080 631, 669, 668, 2334, 709, 2806, 2344, 2343, 682, 2350,
1081 2330, 2340, 2385, 2327, 2383, 2325, 2335, 2380, 2322, 2329,
1082 2322, 2324, 2333, 2315, 2315, 2330, 2329, 2313, 680, 2327,
1083 2326, 2326, 2308, 2313, 2357, 2321, 2318, 2312, 2360, 2301,
1084 2316, 2316, 2314, 2314, 2806, 2299, 2296, 2357, 2309, 2301,
1085 2307, 2298, 2306, 2291, 2345, 2306, 2288, 2300, 2292, 606,
1086 2283, 2282, 2276, 2281, 2296, 2293, 2294, 2273, 2283, 2289,
1087 2335, 2287, 2279, 2270, 2806, 2271, 2273, 2268, 2281, 2273,
1088
1089 2272, 2277, 2319, 2318, 2266, 742, 2275, 2315, 2257, 2313,
1090 2257, 2260, 2253, 2268, 2806, 2266, 2245, 2249, 2263, 2258,
1091 2254, 2302, 2251, 2258, 2299, 2806, 2241, 2255, 2250, 12,
1092 73, 251, 357, 398, 374, 475, 495, 632, 690, 712,
1093 2806, 656, 672, 692, 755, 698, 701, 702, 700, 758,
1094 721, 718, 704, 711, 715, 708, 2806, 724, 716, 2806,
1095 736, 750, 750, 742, 758, 720, 717, 718, 727, 739,
1096 733, 723, 719, 733, 734, 784, 745, 791, 748, 749,
1097 788, 793, 744, 744, 750, 760, 765, 751, 754, 757,
1098 766, 766, 750, 810, 760, 770, 773, 814, 774, 767,
1099
1100 771, 768, 770, 820, 821, 782, 829, 783, 785, 2806,
1101 788, 783, 774, 789, 794, 791, 793, 795, 794, 782,
1102 796, 794, 802, 841, 800, 848, 849, 796, 788, 798,
1103 849, 805, 857, 2806, 858, 808, 810, 806, 800, 816,
1104 804, 814, 866, 862, 822, 811, 824, 2806, 814, 815,
1105 826, 815, 828, 818, 831, 878, 879, 880, 820, 831,
1106 816, 839, 830, 819, 825, 883, 844, 828, 840, 887,
1107 888, 832, 839, 891, 852, 847, 852, 850, 897, 836,
1108 848, 851, 855, 847, 844, 2806, 911, 867, 868, 856,
1109 870, 860, 863, 874, 859, 866, 872, 873, 865, 879,
1110
1111 903, 895, 924, 925, 899, 872, 886, 891, 888, 870,
1112 877, 891, 939, 893, 890, 891, 889, 898, 2806, 894,
1113 889, 904, 901, 887, 889, 908, 904, 906, 895, 902,
1114 904, 913, 956, 919, 958, 917, 907, 905, 904, 915,
1115 911, 970, 914, 925, 910, 911, 917, 933, 929, 924,
1116 974, 2806, 935, 935, 928, 939, 937, 985, 924, 926,
1117 938, 946, 944, 931, 929, 994, 948, 934, 940, 938,
1118 2806, 2806, 948, 953, 958, 946, 956, 958, 2806, 2806,
1119 959, 946, 964, 951, 953, 946, 963, 2806, 952, 970,
1120 957, 1010, 958, 960, 1014, 957, 961, 979, 1023, 2806,
1121
1122 2806, 2806, 965, 969, 968, 965, 981, 1029, 979, 969,
1123 970, 966, 979, 990, 991, 986, 1033, 988, 990, 983,
1124 985, 981, 987, 987, 989, 1004, 987, 1049, 1003, 1008,
1125 985, 1008, 994, 993, 2806, 1000, 1001, 1053, 1054, 1003,
1126 1016, 1057, 1012, 1002, 1017, 1011, 1019, 1006, 1037, 1047,
1127 1035, 1043, 1055, 1072, 1018, 1013, 1072, 1073, 1032, 1075,
1128 2806, 1081, 1021, 1037, 1041, 1085, 1032, 1031, 1026, 1027,
1129 1039, 1034, 1030, 1039, 1034, 1035, 1045, 1056, 1098, 1046,
1130 1043, 1061, 1053, 1048, 1109, 1063, 1064, 1055, 2806, 1069,
1131 1058, 1061, 1069, 1071, 1056, 1068, 1073, 1070, 1068, 1118,
1132
1133 1081, 1065, 1066, 2806, 1082, 1085, 1068, 1085, 1080, 1132,
1134 1072, 1091, 2806, 1090, 1093, 1079, 1074, 1092, 1135, 1090,
1135 1086, 1083, 1139, 1140, 1099, 1085, 1103, 1103, 1103, 1104,
1136 1105, 1091, 1106, 1098, 1105, 1095, 1096, 1114, 1113, 1100,
1137 1117, 2806, 1109, 1115, 1118, 1166, 1110, 2806, 1113, 1118,
1138 1166, 1114, 1126, 1120, 1121, 1119, 1116, 1122, 1132, 1180,
1139 1121, 1122, 1122, 1184, 1125, 1137, 1130, 2806, 1126, 1134,
1140 1132, 1186, 1125, 1147, 1133, 1134, 1135, 1136, 1142, 1150,
1141 1141, 1146, 1156, 1157, 1158, 1163, 1207, 1175, 1204, 1187,
1142 1179, 1184, 2806, 1167, 1163, 1159, 1173, 1156, 1156, 2806,
1143
1144 1157, 1220, 1160, 2806, 1171, 1161, 1181, 1180, 1171, 1182,
1145 1228, 1178, 1187, 1180, 1184, 1188, 1171, 1188, 1189, 1184,
1146 1242, 1186, 2806, 1239, 1183, 1186, 1204, 1186, 1187, 1187,
1147 1208, 1205, 1193, 1211, 1199, 1213, 1199, 1207, 1216, 1196,
1148 1211, 1218, 1263, 1206, 1260, 2806, 1266, 1267, 1206, 1216,
1149 1226, 1210, 1230, 1218, 1214, 1221, 1230, 1218, 1225, 1226,
1150 1238, 1282, 1226, 1284, 1225, 1224, 1228, 1245, 1289, 1236,
1151 1235, 1241, 1242, 1240, 1238, 1233, 1297, 1245, 1299, 1295,
1152 1301, 2806, 1239, 1256, 1249, 1240, 1259, 1247, 1257, 1258,
1153 1254, 1249, 1268, 1268, 2806, 1253, 1249, 1255, 2806, 1256,
1154
1155 1319, 1275, 1256, 1275, 1276, 1278, 1320, 1270, 1327, 1328,
1156 1278, 1283, 1277, 1275, 1286, 1285, 1269, 1274, 1280, 1293,
1157 2806, 1307, 1320, 1308, 1322, 1309, 1344, 1281, 1303, 1298,
1158 1298, 1302, 1350, 2806, 1290, 1290, 1293, 1310, 1305, 1309,
1159 1304, 2806, 1313, 1297, 1314, 1294, 1315, 1305, 1304, 1360,
1160 1311, 2806, 1328, 1328, 1369, 1313, 1322, 1372, 1327, 1332,
1161 1318, 1381, 1321, 1322, 1336, 1334, 1326, 1332, 1328, 1346,
1162 1347, 1348, 2806, 1387, 1339, 2806, 1349, 2806, 1334, 1345,
1163 1336, 1355, 1348, 1346, 1339, 1351, 1398, 1359, 1348, 1355,
1164 1356, 1362, 2806, 1355, 2806, 1410, 1360, 1349, 1413, 2806,
1165
1166 1414, 1353, 1359, 1360, 1367, 1414, 1373, 2806, 1374, 2806,
1167 1361, 2806, 1361, 1364, 1378, 1383, 1366, 1428, 1382, 1383,
1168 1426, 1389, 1376, 1381, 1435, 1431, 1381, 1438, 2806, 1386,
1169 1383, 1441, 1442, 1396, 1397, 1399, 2806, 2806, 1391, 1386,
1170 1443, 1389, 1405, 1451, 1390, 1402, 1391, 1408, 1451, 1434,
1171 1435, 1427, 1460, 2806, 1414, 1407, 1416, 1407, 1418, 2806,
1172 1466, 1400, 1411, 1426, 1465, 1414, 1425, 1411, 1427, 1428,
1173 1425, 1472, 1432, 1434, 1423, 1433, 1439, 1426, 1424, 1489,
1174 1485, 1440, 1487, 1493, 1447, 2806, 1433, 1449, 1440, 1443,
1175 1452, 1453, 1450, 1440, 1443, 1443, 1444, 1455, 1450, 1508,
1176
1177 1452, 1510, 1450, 1455, 1514, 1510, 1448, 1463, 1456, 1459,
1178 1472, 1473, 1471, 1523, 2806, 1469, 1475, 2806, 2806, 1480,
1179 1472, 1473, 1483, 1468, 1527, 1471, 1471, 1535, 1536, 1477,
1180 1487, 1539, 2806, 1484, 1485, 1487, 1543, 1484, 1482, 1485,
1181 2806, 1502, 1507, 2806, 1504, 1492, 2806, 2806, 1505, 1488,
1182 1508, 1509, 1495, 1497, 1559, 1506, 2806, 1561, 1507, 1501,
1183 1564, 1529, 1547, 1562, 1549, 2806, 1568, 1524, 1572, 1519,
1184 1569, 2806, 1514, 1576, 1523, 1517, 1514, 1517, 1519, 1577,
1185 1537, 1579, 1529, 1541, 1544, 1541, 1533, 1536, 1531, 1539,
1186 1530, 2806, 1538, 1553, 1538, 2806, 1540, 1597, 1542, 1599,
1187
1188 1558, 1558, 1561, 1561, 1558, 1605, 1564, 1565, 1557, 1558,
1189 2806, 1559, 2806, 1569, 1561, 2806, 1567, 1573, 1574, 1571,
1190 1618, 1563, 1578, 1579, 1571, 2806, 1581, 1569, 1570, 1570,
1191 1571, 1577, 1576, 1574, 1631, 1589, 2806, 2806, 1633, 1577,
1192 2806, 1578, 1579, 1585, 2806, 1594, 1582, 1590, 1647, 1592,
1193 1584, 1597, 1591, 1601, 1612, 1605, 1611, 1601, 1659, 1609,
1194 2806, 1618, 2806, 1615, 1663, 2806, 1613, 1641, 1642, 1648,
1195 1633, 1641, 2806, 1670, 2806, 1625, 1610, 1673, 2806, 1674,
1196 1628, 1633, 1615, 1678, 1619, 1675, 1639, 1632, 1628, 1621,
1197 1629, 1681, 1636, 1637, 1627, 1632, 1644, 1698, 1649, 1700,
1198
1199 1647, 1697, 1658, 1658, 1654, 1701, 1646, 1651, 1649, 1711,
1200 1652, 1660, 1666, 1654, 1716, 1712, 1672, 1719, 1677, 1666,
1201 1660, 1723, 1662, 1663, 1677, 1727, 1681, 1681, 1730, 1731,
1202 1670, 1687, 1683, 1681, 1688, 1672, 1733, 1734, 1735, 1695,
1203 1688, 1687, 1687, 1682, 1683, 1701, 2806, 1692, 1698, 1703,
1204 1690, 1691, 1690, 1692, 1750, 1693, 2806, 1689, 1707, 1759,
1205 2806, 1714, 1728, 1742, 1741, 1730, 1732, 2806, 1766, 1716,
1206 2806, 2806, 1707, 1718, 1770, 2806, 1724, 1715, 1720, 1718,
1207 1771, 1726, 1731, 1717, 1720, 1736, 1725, 1723, 1737, 1724,
1208 2806, 1726, 2806, 1744, 1731, 1743, 1790, 1730, 1735, 1798,
1209
1210 1743, 1753, 1754, 2806, 1802, 1739, 1799, 1754, 1801, 2806,
1211 1749, 1808, 2806, 1748, 1763, 1751, 2806, 1761, 1762, 1814,
1212 2806, 1769, 1773, 2806, 2806, 1812, 1775, 1751, 1769, 1770,
1213 1779, 1761, 1768, 1780, 1779, 1770, 1823, 1772, 1768, 1773,
1214 1832, 1771, 1772, 1835, 1831, 1837, 1784, 1839, 1789, 1779,
1215 1795, 1788, 2806, 1844, 1822, 1846, 1828, 1843, 1849, 2806,
1216 1795, 1851, 1790, 2806, 1792, 1794, 1804, 1851, 1796, 1811,
1217 1798, 1860, 1814, 1800, 1807, 1807, 1865, 1819, 1820, 1807,
1218 1809, 1823, 1809, 1874, 1824, 2806, 1871, 1819, 1816, 2806,
1219 1832, 1819, 1832, 1819, 1840, 2806, 1837, 1885, 1835, 1832,
1220
1221 1833, 2806, 1889, 1845, 1828, 1830, 1846, 1839, 1829, 1845,
1222 1846, 1855, 1845, 1900, 1857, 1841, 1850, 1899, 1905, 2806,
1223 1855, 1907, 2806, 1853, 2806, 1847, 2806, 1854, 1911, 1912,
1224 1909, 2806, 1910, 2806, 1892, 1898, 2806, 1870, 2806, 1914,
1225 1863, 1874, 1875, 1860, 1861, 1869, 1926, 2806, 1871, 1923,
1226 1924, 1876, 2806, 1871, 1889, 1871, 1877, 1890, 1885, 2806,
1227 1882, 1887, 1885, 1940, 1881, 1895, 1945, 1890, 1887, 1887,
1228 2806, 1902, 1903, 1904, 2806, 1905, 1895, 1907, 1955, 1905,
1229 1957, 1896, 1904, 1905, 1918, 2806, 1919, 1900, 1901, 1908,
1230 2806, 1910, 2806, 1924, 1921, 1964, 1922, 2806, 2806, 1926,
1231
1232 1952, 1953, 1951, 1914, 1914, 1923, 1930, 1923, 1922, 1933,
1233 1920, 2806, 1936, 1924, 1927, 1986, 1923, 1942, 1984, 1945,
1234 1938, 1937, 1946, 1948, 1952, 2806, 1991, 1943, 2806, 1949,
1235 1941, 2003, 1943, 2005, 2006, 2007, 1962, 2009, 2806, 1948,
1236 2806, 2006, 1965, 1966, 1953, 1961, 1972, 1959, 1970, 1956,
1237 1954, 1962, 1961, 1966, 1958, 2003, 2027, 2009, 2029, 1979,
1238 1968, 1981, 1971, 1988, 1987, 2031, 1972, 1991, 1992, 2806,
1239 1997, 1990, 2032, 1996, 1983, 1998, 2046, 2000, 2003, 1998,
1240 2003, 1992, 2001, 2806, 2055, 2806, 2806, 2806, 2013, 2806,
1241 2057, 1996, 2059, 2060, 2000, 2062, 2007, 2059, 2060, 2019,
1242
1243 2062, 2005, 2009, 2027, 2071, 2027, 2054, 2806, 2050, 2806,
1244 2020, 2014, 2011, 2073, 2036, 2029, 2025, 2082, 2022, 2024,
1245 2023, 2030, 2076, 2027, 2089, 2030, 2806, 2035, 2045, 2047,
1246 2049, 2032, 2040, 2806, 2035, 2806, 2047, 2806, 2806, 2053,
1247 2806, 2055, 2055, 2046, 2105, 2046, 2056, 2041, 2054, 2806,
1248 2056, 2087, 2093, 2065, 2063, 2115, 2053, 2055, 2052, 2076,
1249 2806, 2063, 2070, 2071, 2074, 2124, 2064, 2806, 2121, 2065,
1250 2073, 2082, 2068, 2084, 2083, 2086, 2079, 2074, 2074, 2086,
1251 2083, 2806, 2094, 2082, 2138, 2086, 2098, 2126, 2147, 2148,
1252 2092, 2806, 2092, 2104, 2152, 2098, 2100, 2098, 2099, 2157,
1253
1254 2806, 2107, 2094, 2109, 2114, 2106, 2112, 2164, 2165, 2166,
1255 2120, 2168, 2169, 2110, 2114, 2111, 2127, 2110, 2122, 2116,
1256 2178, 2806, 2806, 2123, 2134, 2181, 2806, 2135, 2120, 2138,
1257 2129, 2806, 2130, 2144, 2140, 2133, 2128, 2134, 2806, 2806,
1258 2806, 2192, 2806, 2806, 2132, 2140, 2135, 2191, 2154, 2151,
1259 2199, 2806, 2195, 2158, 2806, 2202, 2141, 2204, 2144, 2157,
1260 2156, 2157, 2147, 2159, 2155, 2806, 2150, 2213, 2163, 2172,
1261 2165, 2212, 2806, 2163, 2157, 2806, 2169, 2806, 2216, 2222,
1262 2161, 2177, 2225, 2178, 2227, 2228, 2806, 2182, 2176, 2169,
1263 2189, 2176, 2188, 2179, 2183, 2806, 2233, 2179, 2806, 2189,
1264
1265 2806, 2806, 2180, 2188, 2238, 2195, 2188, 2200, 2247, 2192,
1266 2192, 2188, 2190, 2205, 2253, 2254, 2193, 2209, 2194, 2211,
1267 2806, 2259, 2203, 2210, 2262, 2203, 2806, 2806, 2213, 2265,
1268 2210, 2267, 2806, 2215, 2214, 2806, 2270, 2216, 2806, 2210,
1269 2806, 2210, 2227, 2806, 2228, 2276, 2219, 2278, 2279, 2806,
1270 2280, 2806, 2806, 2806, 2806, 2286, 2289, 2292, 2293, 2295,
1271 2298, 2301, 2304
1272 } ;
1273
1274static const flex_int16_t yy_def[2364] =
1275 { 0,
1276 2356, 2356, 2357, 2357, 2356, 2356, 2356, 2356, 2356, 2356,
1277 2355, 2355, 2355, 2355, 2355, 2358, 2355, 2355, 2355, 2355,
1278 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1279 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2359,
1280 2355, 2355, 2355, 2360, 15, 2355, 45, 45, 45, 45,
1281 45, 45, 45, 45, 45, 45, 2361, 45, 45, 45,
1282 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1283 45, 45, 45, 45, 45, 45, 45, 45, 45, 2358,
1284 2355, 2355, 2355, 2355, 2355, 2355, 2362, 2355, 2355, 2355,
1285 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2359, 2355,
1286
1287 2360, 2355, 2355, 45, 45, 45, 45, 45, 45, 45,
1288 45, 45, 45, 45, 45, 2363, 45, 2361, 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, 45, 45, 45,
1296 2362, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 45,
1297
1298 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1299 45, 2363, 2355, 2355, 118, 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, 45, 45, 2355, 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, 45, 45, 45,
1311 45, 45, 45, 45, 2355, 2355, 2355, 2355, 2355, 2355,
1312 2355, 45, 45, 45, 45, 45, 45, 45, 45, 2355,
1313 45, 2355, 45, 118, 2355, 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, 2355, 45,
1321 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1322 45, 45, 45, 45, 45, 45, 45, 45, 2355, 45,
1323 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1324 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1325 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1326 2355, 45, 45, 45, 45, 45, 2355, 2355, 2355, 45,
1327 45, 45, 45, 45, 45, 2355, 45, 45, 2355, 45,
1328 118, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1329 45, 45, 45, 2355, 45, 45, 45, 45, 45, 45,
1330
1331 2355, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1332 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1333 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1334 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1335 45, 45, 45, 45, 45, 45, 2355, 45, 45, 45,
1336 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1337 45, 45, 45, 45, 45, 2355, 45, 45, 2355, 45,
1338 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1339 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1340 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1341
1342 45, 45, 2355, 45, 45, 2355, 45, 45, 2355, 45,
1343 45, 45, 2355, 45, 45, 45, 45, 2355, 2355, 2355,
1344 45, 45, 45, 45, 45, 2355, 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, 45, 45, 45, 45, 45,
1348 45, 45, 45, 45, 2355, 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, 2355, 45, 45, 45, 45, 45,
1352
1353 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1354 45, 45, 45, 45, 2355, 45, 45, 45, 45, 45,
1355 45, 45, 45, 45, 45, 2355, 45, 45, 45, 45,
1356 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1357 2355, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1358 45, 45, 45, 45, 45, 45, 2355, 45, 45, 2355,
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, 2355,
1365 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1366 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1367 45, 45, 45, 2355, 45, 45, 45, 45, 45, 45,
1368 45, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1369 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1370 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1371 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1372 45, 45, 45, 45, 45, 2355, 45, 45, 45, 45,
1373 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1374
1375 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1376 45, 45, 45, 45, 45, 45, 45, 45, 2355, 45,
1377 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1378 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1379 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1380 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1381 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1382 2355, 2355, 45, 45, 45, 45, 45, 45, 2355, 2355,
1383 45, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1384 45, 45, 45, 45, 45, 45, 45, 45, 45, 2355,
1385
1386 2355, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1387 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1388 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1389 45, 45, 45, 45, 2355, 45, 45, 45, 45, 45,
1390 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1391 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1392 2355, 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, 2355, 45,
1395 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1396
1397 45, 45, 45, 2355, 45, 45, 45, 45, 45, 45,
1398 45, 45, 2355, 45, 45, 45, 45, 45, 45, 45,
1399 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1400 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1401 45, 2355, 45, 45, 45, 45, 45, 2355, 45, 45,
1402 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1403 45, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1404 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1405 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1406 45, 45, 2355, 45, 45, 45, 45, 45, 45, 2355,
1407
1408 45, 45, 45, 2355, 45, 45, 45, 45, 45, 45,
1409 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1410 45, 45, 2355, 45, 45, 45, 45, 45, 45, 45,
1411 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1412 45, 45, 45, 45, 45, 2355, 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, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1416 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1417 45, 45, 45, 45, 2355, 45, 45, 45, 2355, 45,
1418
1419 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1420 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1421 2355, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1422 45, 45, 45, 2355, 45, 45, 45, 45, 45, 45,
1423 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1424 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1425 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1426 45, 45, 2355, 45, 45, 2355, 45, 2355, 45, 45,
1427 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1428 45, 45, 2355, 45, 2355, 45, 45, 45, 45, 2355,
1429
1430 45, 45, 45, 45, 45, 45, 45, 2355, 45, 2355,
1431 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1432 45, 45, 45, 45, 45, 45, 45, 45, 2355, 45,
1433 45, 45, 45, 45, 45, 45, 2355, 2355, 45, 45,
1434 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1435 45, 45, 45, 2355, 45, 45, 45, 45, 45, 2355,
1436 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1437 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1438 45, 45, 45, 45, 45, 2355, 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 45, 45, 45, 45, 2355, 45, 45, 2355, 2355, 45,
1443 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1444 45, 45, 2355, 45, 45, 45, 45, 45, 45, 45,
1445 2355, 45, 45, 2355, 45, 45, 2355, 2355, 45, 45,
1446 45, 45, 45, 45, 45, 45, 2355, 45, 45, 45,
1447 45, 45, 45, 45, 45, 2355, 45, 45, 45, 45,
1448 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1449 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1450 45, 2355, 45, 45, 45, 2355, 45, 45, 45, 45,
1451
1452 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1453 2355, 45, 2355, 45, 45, 2355, 45, 45, 45, 45,
1454 45, 45, 45, 45, 45, 2355, 45, 45, 45, 45,
1455 45, 45, 45, 45, 45, 45, 2355, 2355, 45, 45,
1456 2355, 45, 45, 45, 2355, 45, 45, 45, 45, 45,
1457 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1458 2355, 45, 2355, 45, 45, 2355, 45, 45, 45, 45,
1459 45, 45, 2355, 45, 2355, 45, 45, 45, 2355, 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, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1467 45, 45, 45, 45, 45, 45, 2355, 45, 45, 45,
1468 45, 45, 45, 45, 45, 45, 2355, 45, 45, 45,
1469 2355, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1470 2355, 2355, 45, 45, 45, 2355, 45, 45, 45, 45,
1471 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1472 2355, 45, 2355, 45, 45, 45, 45, 45, 45, 45,
1473
1474 45, 45, 45, 2355, 45, 45, 45, 45, 45, 2355,
1475 45, 45, 2355, 45, 45, 45, 2355, 45, 45, 45,
1476 2355, 45, 45, 2355, 2355, 45, 45, 45, 45, 45,
1477 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1478 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1479 45, 45, 2355, 45, 45, 45, 45, 45, 45, 2355,
1480 45, 45, 45, 2355, 45, 45, 45, 45, 45, 45,
1481 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1482 45, 45, 45, 45, 45, 2355, 45, 45, 45, 2355,
1483 45, 45, 45, 45, 45, 2355, 45, 45, 45, 45,
1484
1485 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1486 45, 45, 45, 45, 45, 45, 45, 45, 45, 2355,
1487 45, 45, 2355, 45, 2355, 45, 2355, 45, 45, 45,
1488 45, 2355, 45, 2355, 45, 45, 2355, 45, 2355, 45,
1489 45, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1490 45, 45, 2355, 45, 45, 45, 45, 45, 45, 2355,
1491 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1492 2355, 45, 45, 45, 2355, 45, 45, 45, 45, 45,
1493 45, 45, 45, 45, 45, 2355, 45, 45, 45, 45,
1494 2355, 45, 2355, 45, 45, 45, 45, 2355, 2355, 45,
1495
1496 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1497 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1498 45, 45, 45, 45, 45, 2355, 45, 45, 2355, 45,
1499 45, 45, 45, 45, 45, 45, 45, 45, 2355, 45,
1500 2355, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1501 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1502 45, 45, 45, 45, 45, 45, 45, 45, 45, 2355,
1503 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1504 45, 45, 45, 2355, 45, 2355, 2355, 2355, 45, 2355,
1505 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1506
1507 45, 45, 45, 45, 45, 45, 45, 2355, 45, 2355,
1508 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1509 45, 45, 45, 45, 45, 45, 2355, 45, 45, 45,
1510 45, 45, 45, 2355, 45, 2355, 45, 2355, 2355, 45,
1511 2355, 45, 45, 45, 45, 45, 45, 45, 45, 2355,
1512 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1513 2355, 45, 45, 45, 45, 45, 45, 2355, 45, 45,
1514 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1515 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1516 45, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1517
1518 2355, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1519 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1520 45, 2355, 2355, 45, 45, 45, 2355, 45, 45, 45,
1521 45, 2355, 45, 45, 45, 45, 45, 45, 2355, 2355,
1522 2355, 45, 2355, 2355, 45, 45, 45, 45, 45, 45,
1523 45, 2355, 45, 45, 2355, 45, 45, 45, 45, 45,
1524 45, 45, 45, 45, 45, 2355, 45, 45, 45, 45,
1525 45, 45, 2355, 45, 45, 2355, 45, 2355, 45, 45,
1526 45, 45, 45, 45, 45, 45, 2355, 45, 45, 45,
1527 45, 45, 45, 45, 45, 2355, 45, 45, 2355, 45,
1528
1529 2355, 2355, 45, 45, 45, 45, 45, 45, 45, 45,
1530 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1531 2355, 45, 45, 45, 45, 45, 2355, 2355, 45, 45,
1532 45, 45, 2355, 45, 45, 2355, 45, 45, 2355, 45,
1533 2355, 45, 45, 2355, 45, 45, 45, 45, 45, 2355,
1534 45, 2355, 2355, 2355, 0, 2355, 2355, 2355, 2355, 2355,
1535 2355, 2355, 2355
1536 } ;
1537
1538static const flex_int16_t yy_nxt[2883] =
1539 { 0,
1540 2355, 13, 14, 13, 2355, 15, 16, 102, 17, 18,
1541 19, 20, 21, 22, 22, 22, 22, 22, 23, 24,
1542 86, 409, 37, 14, 37, 87, 25, 26, 38, 37,
1543 14, 37, 42, 27, 42, 38, 2355, 2355, 28, 91,
1544 13, 14, 13, 92, 29, 91, 30, 103, 13, 14,
1545 13, 205, 25, 31, 13, 14, 13, 42, 40, 42,
1546 872, 32, 13, 14, 13, 91, 40, 33, 410, 170,
1547 93, 94, 92, 171, 34, 35, 13, 14, 13, 205,
1548 15, 16, 92, 17, 18, 19, 20, 21, 22, 22,
1549 22, 22, 22, 23, 24, 39, 13, 14, 13, 93,
1550
1551 93, 25, 26, 39, 13, 14, 13, 42, 27, 42,
1552 135, 95, 136, 28, 109, 246, 41, 105, 106, 29,
1553 108, 30, 114, 137, 41, 234, 235, 25, 31, 96,
1554 389, 247, 89, 138, 89, 873, 32, 90, 90, 90,
1555 90, 90, 33, 109, 105, 106, 108, 390, 114, 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, 64, 65, 66, 52, 67,
1563 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1564 78, 79, 45, 45, 45, 45, 45, 81, 115, 82,
1565 82, 82, 82, 82, 81, 192, 84, 84, 84, 84,
1566 84, 108, 83, 85, 85, 85, 85, 85, 81, 83,
1567 84, 84, 84, 84, 84, 115, 83, 110, 315, 112,
1568 193, 105, 192, 83, 316, 111, 129, 108, 83, 130,
1569 131, 113, 140, 132, 133, 83, 142, 166, 139, 141,
1570 202, 167, 83, 110, 143, 112, 134, 193, 119, 83,
1571 45, 168, 192, 111, 120, 574, 45, 121, 45, 45,
1572
1573 113, 45, 301, 302, 45, 102, 202, 45, 144, 117,
1574 264, 145, 45, 45, 265, 45, 45, 874, 146, 195,
1575 147, 115, 45, 45, 45, 45, 45, 45, 45, 45,
1576 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1577 45, 45, 45, 45, 45, 103, 106, 575, 115, 45,
1578 149, 150, 114, 45, 151, 153, 194, 45, 190, 154,
1579 152, 211, 225, 155, 226, 45, 123, 875, 110, 45,
1580 124, 45, 118, 106, 125, 156, 111, 126, 186, 157,
1581 127, 161, 194, 201, 128, 194, 193, 211, 187, 162,
1582 158, 163, 159, 188, 160, 172, 164, 165, 345, 173,
1583
1584 204, 208, 174, 206, 111, 275, 179, 180, 876, 175,
1585 176, 197, 201, 196, 177, 178, 112, 85, 85, 85,
1586 85, 85, 90, 90, 90, 90, 90, 204, 113, 208,
1587 83, 81, 206, 82, 82, 82, 82, 82, 241, 877,
1588 242, 209, 181, 89, 182, 89, 83, 183, 90, 90,
1589 90, 90, 90, 210, 276, 346, 83, 184, 85, 85,
1590 85, 85, 85, 81, 185, 84, 84, 84, 84, 84,
1591 209, 83, 83, 90, 90, 90, 90, 90, 83, 101,
1592 201, 210, 221, 228, 206, 878, 101, 250, 243, 259,
1593 251, 222, 229, 230, 252, 223, 285, 83, 216, 286,
1594
1595 287, 244, 260, 288, 83, 245, 309, 289, 303, 217,
1596 208, 209, 304, 272, 280, 273, 305, 210, 291, 101,
1597 310, 325, 326, 101, 419, 359, 505, 101, 360, 281,
1598 282, 283, 506, 327, 420, 101, 398, 325, 314, 101,
1599 318, 101, 101, 214, 327, 320, 326, 879, 336, 326,
1600 325, 215, 215, 215, 215, 215, 292, 293, 294, 327,
1601 215, 215, 215, 215, 215, 215, 328, 295, 333, 296,
1602 330, 297, 298, 329, 299, 300, 334, 336, 337, 338,
1603 414, 339, 341, 343, 333, 361, 215, 215, 215, 215,
1604 215, 215, 399, 362, 333, 400, 450, 433, 451, 363,
1605
1606 434, 338, 334, 341, 340, 338, 337, 339, 341, 455,
1607 347, 343, 344, 344, 344, 344, 344, 463, 467, 415,
1608 467, 344, 344, 344, 344, 344, 344, 407, 470, 341,
1609 472, 473, 477, 416, 475, 478, 472, 522, 471, 477,
1610 538, 539, 523, 459, 467, 540, 468, 344, 344, 344,
1611 344, 344, 344, 548, 621, 763, 822, 823, 473, 472,
1612 475, 477, 478, 549, 566, 483, 578, 589, 550, 567,
1613 579, 590, 464, 481, 481, 481, 481, 481, 616, 735,
1614 621, 763, 481, 481, 481, 481, 481, 481, 622, 609,
1615 623, 616, 665, 524, 610, 687, 620, 666, 525, 880,
1616
1617 881, 698, 652, 764, 765, 688, 761, 616, 481, 481,
1618 481, 481, 481, 481, 760, 653, 622, 654, 623, 767,
1619 625, 762, 882, 883, 884, 568, 45, 45, 45, 45,
1620 45, 764, 761, 765, 736, 45, 45, 45, 45, 45,
1621 45, 642, 770, 791, 885, 643, 792, 848, 888, 771,
1622 762, 889, 849, 644, 890, 645, 646, 647, 648, 649,
1623 886, 45, 45, 45, 45, 45, 45, 891, 892, 893,
1624 894, 887, 895, 896, 897, 898, 899, 900, 901, 902,
1625 904, 903, 906, 907, 905, 908, 909, 910, 911, 850,
1626 912, 913, 914, 915, 916, 917, 919, 920, 924, 921,
1627
1628 922, 918, 923, 925, 926, 927, 902, 901, 903, 904,
1629 905, 928, 929, 930, 931, 932, 933, 934, 935, 936,
1630 937, 938, 939, 940, 941, 942, 943, 944, 945, 948,
1631 949, 950, 946, 951, 952, 953, 947, 954, 955, 956,
1632 957, 958, 959, 960, 961, 963, 964, 965, 966, 967,
1633 968, 969, 970, 971, 972, 973, 974, 975, 962, 977,
1634 976, 978, 979, 980, 981, 982, 983, 984, 985, 986,
1635 987, 988, 989, 990, 991, 992, 993, 994, 995, 996,
1636 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006,
1637 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016,
1638
1639 1017, 1018, 1019, 1020, 1022, 1023, 1024, 1027, 1028, 1029,
1640 1021, 1032, 1030, 1025, 1033, 1034, 1035, 1026, 1031, 1036,
1641 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046,
1642 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,
1643 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066,
1644 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1049,
1645 1076, 1077, 1050, 1078, 1079, 1053, 1080, 1081, 1082, 1083,
1646 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093,
1647 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103,
1648 1104, 1106, 1107, 1108, 1109, 1105, 1110, 1111, 1112, 1113,
1649
1650 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123,
1651 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1134,
1652 1135, 1136, 1133, 1137, 1138, 1139, 1140, 1141, 1142, 1143,
1653 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153,
1654 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163,
1655 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173,
1656 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183,
1657 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1193, 1191, 1194,
1658 1195, 1192, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203,
1659 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213,
1660
1661 1214, 1215, 1189, 1188, 1216, 1190, 1191, 1192, 1217, 1218,
1662 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228,
1663 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238,
1664 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1248, 1249,
1665 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259,
1666 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269,
1667 1270, 1271, 1272, 1273, 1274, 1276, 1277, 1278, 1279, 1280,
1668 1281, 1282, 1283, 1284, 1285, 1275, 1286, 1287, 1288, 1289,
1669 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299,
1670 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1247, 1308,
1671
1672 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318,
1673 1319, 1320, 1321, 1322, 1323, 1325, 1324, 1326, 1327, 1328,
1674 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338,
1675 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348,
1676 1349, 1350, 1322, 1324, 1325, 1326, 1351, 1352, 1353, 1354,
1677 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364,
1678 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374,
1679 1375, 1376, 1378, 1380, 1381, 1382, 1377, 1383, 1384, 1385,
1680 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395,
1681 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405,
1682
1683 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415,
1684 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1379,
1685 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434,
1686 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444,
1687 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1453, 1452, 1454,
1688 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464,
1689 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474,
1690 1475, 1450, 1476, 1449, 1452, 1451, 1453, 1477, 1478, 1479,
1691 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489,
1692 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499,
1693
1694 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509,
1695 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519,
1696 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529,
1697 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1538, 1539, 1540,
1698 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550,
1699 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560,
1700 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570,
1701 1571, 1572, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581,
1702 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1563,
1703 1564, 1591, 1537, 1565, 1592, 1593, 1594, 1595, 1596, 1597,
1704
1705 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607,
1706 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1573, 1616,
1707 1617, 1618, 1619, 1621, 1622, 1623, 1624, 1625, 1626, 1627,
1708 1620, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636,
1709 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1647,
1710 1648, 1649, 1650, 1646, 1651, 1652, 1653, 1654, 1655, 1656,
1711 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666,
1712 1668, 1669, 1670, 1673, 1667, 1672, 1674, 1675, 1676, 1677,
1713 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687,
1714 1688, 1689, 1690, 1691, 1692, 1693, 1671, 1669, 1694, 1668,
1715
1716 1695, 1672, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703,
1717 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713,
1718 1714, 1715, 1716, 1717, 1671, 1718, 1719, 1720, 1721, 1722,
1719 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732,
1720 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1745,
1721 1742, 1746, 1747, 1743, 1748, 1749, 1744, 1750, 1751, 1752,
1722 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762,
1723 1763, 1764, 1766, 1765, 1767, 1768, 1769, 1770, 1771, 1772,
1724 1773, 1774, 1775, 1776, 1777, 1778, 1781, 1782, 1783, 1779,
1725 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1763, 1764, 1765,
1726
1727 1780, 1766, 1767, 1791, 1792, 1793, 1794, 1795, 1796, 1797,
1728 1798, 1799, 1800, 1801, 1802, 1803, 1804, 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, 1832, 1833, 1834, 1835, 1836, 1837, 1838,
1732 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848,
1733 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1858, 1857,
1734 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1805, 1866, 1867,
1735 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877,
1736 1878, 1879, 1880, 1856, 1881, 1855, 1857, 1858, 1882, 1859,
1737
1738 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892,
1739 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902,
1740 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912,
1741 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922,
1742 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932,
1743 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942,
1744 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952,
1745 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1933, 1935, 1960,
1746 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970,
1747 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980,
1748
1749 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990,
1750 1991, 1992, 1993, 1994, 1996, 1997, 1998, 1999, 1995, 2000,
1751 2001, 2002, 2004, 2003, 2005, 2006, 2007, 2008, 2009, 2010,
1752 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020,
1753 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2002, 2003,
1754 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038,
1755 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048,
1756 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058,
1757 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068,
1758 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078,
1759
1760 2079, 2080, 2081, 2056, 2057, 2082, 2058, 2083, 2084, 2085,
1761 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095,
1762 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2104, 2105, 2103,
1763 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115,
1764 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125,
1765 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2107, 2109,
1766 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143,
1767 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153,
1768 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163,
1769 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173,
1770
1771 2174, 2175, 2176, 2177, 2152, 2178, 2153, 2179, 2180, 2181,
1772 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2190, 2189, 2191,
1773 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201,
1774 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211,
1775 2212, 2213, 2214, 2188, 2189, 2215, 2216, 2217, 2218, 2219,
1776 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229,
1777 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239,
1778 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2221, 2247, 2248,
1779 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258,
1780 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268,
1781
1782 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278,
1783 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288,
1784 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298,
1785 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2308, 2307,
1786 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318,
1787 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328,
1788 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338,
1789 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348,
1790 2349, 2350, 2351, 2352, 2353, 2354, 12, 12, 12, 36,
1791 36, 36, 80, 99, 80, 101, 101, 101, 116, 116,
1792
1793 116, 191, 871, 191, 212, 212, 212, 870, 869, 868,
1794 867, 866, 865, 864, 863, 862, 861, 860, 859, 858,
1795 857, 856, 855, 854, 853, 852, 851, 847, 846, 845,
1796 844, 843, 842, 841, 840, 839, 838, 837, 836, 835,
1797 834, 833, 832, 831, 830, 829, 828, 827, 826, 825,
1798 824, 821, 820, 819, 818, 817, 816, 815, 814, 813,
1799 812, 811, 810, 809, 808, 807, 806, 805, 804, 803,
1800 802, 801, 800, 799, 798, 797, 796, 795, 794, 793,
1801 790, 789, 788, 787, 786, 785, 784, 783, 782, 781,
1802 780, 779, 778, 777, 776, 775, 774, 773, 772, 769,
1803
1804 768, 766, 760, 759, 758, 757, 756, 755, 754, 753,
1805 752, 751, 750, 749, 748, 747, 746, 745, 744, 743,
1806 742, 741, 740, 739, 738, 737, 734, 733, 732, 731,
1807 730, 729, 728, 727, 726, 725, 724, 723, 722, 721,
1808 720, 719, 718, 717, 716, 715, 714, 713, 712, 711,
1809 710, 709, 708, 707, 706, 705, 704, 703, 702, 701,
1810 700, 699, 697, 696, 695, 694, 693, 692, 691, 690,
1811 689, 686, 685, 684, 683, 682, 681, 680, 679, 678,
1812 677, 676, 675, 674, 673, 672, 671, 670, 669, 668,
1813 667, 664, 663, 662, 661, 660, 659, 658, 657, 656,
1814
1815 655, 651, 650, 641, 640, 639, 638, 637, 636, 635,
1816 634, 633, 632, 631, 630, 629, 628, 627, 626, 624,
1817 620, 619, 618, 617, 615, 614, 613, 612, 611, 608,
1818 607, 606, 605, 604, 603, 602, 601, 600, 599, 598,
1819 597, 596, 595, 594, 593, 592, 591, 588, 587, 586,
1820 585, 584, 583, 582, 581, 580, 577, 576, 573, 572,
1821 571, 570, 569, 565, 564, 563, 562, 561, 560, 559,
1822 558, 557, 556, 555, 554, 553, 552, 551, 547, 546,
1823 545, 544, 543, 542, 541, 537, 536, 535, 534, 533,
1824 532, 531, 530, 529, 528, 527, 526, 521, 520, 519,
1825
1826 518, 517, 516, 515, 514, 513, 512, 511, 510, 509,
1827 508, 507, 504, 503, 502, 501, 500, 499, 498, 497,
1828 496, 495, 494, 493, 492, 491, 490, 489, 488, 487,
1829 486, 485, 484, 482, 480, 479, 476, 474, 469, 466,
1830 465, 462, 461, 460, 458, 457, 456, 454, 453, 452,
1831 449, 448, 447, 446, 445, 444, 443, 442, 441, 440,
1832 439, 438, 437, 436, 435, 432, 431, 430, 429, 428,
1833 427, 426, 425, 424, 423, 422, 421, 418, 417, 413,
1834 412, 411, 408, 406, 405, 404, 403, 402, 401, 397,
1835 396, 395, 394, 393, 392, 391, 388, 387, 386, 385,
1836
1837 384, 383, 382, 381, 380, 379, 378, 377, 376, 375,
1838 374, 373, 372, 371, 370, 369, 368, 367, 366, 365,
1839 364, 358, 357, 356, 355, 354, 353, 352, 351, 350,
1840 349, 348, 213, 342, 340, 335, 332, 331, 324, 323,
1841 322, 321, 319, 317, 313, 312, 311, 308, 307, 306,
1842 290, 284, 279, 278, 277, 274, 271, 270, 269, 268,
1843 267, 266, 263, 262, 261, 258, 257, 256, 255, 254,
1844 253, 249, 248, 240, 239, 238, 237, 236, 233, 232,
1845 231, 227, 224, 220, 219, 218, 213, 207, 203, 200,
1846 199, 198, 189, 169, 148, 122, 107, 104, 43, 100,
1847
1848 98, 97, 88, 43, 2355, 11, 2355, 2355, 2355, 2355,
1849 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1850 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1851 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1852 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1853 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1854 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1855 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
1856 2355, 2355
1857 } ;
1858
1859static const flex_int16_t yy_chk[2883] =
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, 274, 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, 109, 1, 1, 7, 7, 7, 37, 7, 37,
1867 730, 1, 8, 8, 8, 26, 8, 1, 274, 74,
1868 28, 31, 27, 74, 1, 1, 2, 2, 2, 109,
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 62, 32, 62, 2, 52, 139, 9, 48, 49, 2,
1874 51, 2, 55, 62, 10, 131, 131, 2, 2, 33,
1875 257, 139, 25, 62, 25, 731, 2, 25, 25, 25,
1876 25, 25, 2, 52, 48, 49, 51, 257, 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, 91, 19, 19, 19, 19,
1887 19, 63, 17, 20, 20, 20, 20, 20, 22, 19,
1888 22, 22, 22, 22, 22, 56, 20, 53, 182, 54,
1889 92, 58, 91, 22, 182, 53, 61, 63, 17, 61,
1890 61, 54, 64, 61, 61, 19, 65, 72, 63, 64,
1891 106, 72, 20, 53, 65, 54, 61, 92, 58, 22,
1892 45, 72, 94, 53, 58, 431, 45, 58, 45, 45,
1893
1894 54, 45, 172, 172, 45, 101, 106, 45, 66, 57,
1895 153, 66, 45, 45, 153, 45, 57, 732, 66, 94,
1896 66, 79, 45, 45, 45, 45, 45, 45, 45, 45,
1897 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1898 45, 45, 45, 45, 45, 101, 60, 431, 79, 57,
1899 68, 68, 77, 57, 68, 69, 93, 57, 79, 69,
1900 68, 115, 125, 69, 125, 57, 60, 733, 70, 57,
1901 60, 57, 57, 60, 60, 69, 70, 60, 77, 69,
1902 60, 71, 96, 105, 60, 93, 95, 115, 77, 71,
1903 70, 71, 70, 77, 70, 75, 71, 71, 216, 75,
1904
1905 108, 112, 75, 110, 70, 162, 76, 76, 734, 75,
1906 75, 96, 105, 95, 75, 75, 76, 81, 81, 81,
1907 81, 81, 89, 89, 89, 89, 89, 108, 76, 112,
1908 81, 82, 110, 82, 82, 82, 82, 82, 137, 735,
1909 137, 113, 76, 83, 76, 83, 82, 76, 83, 83,
1910 83, 83, 83, 114, 162, 216, 81, 76, 85, 85,
1911 85, 85, 85, 84, 76, 84, 84, 84, 84, 84,
1912 113, 85, 82, 90, 90, 90, 90, 90, 84, 103,
1913 119, 114, 123, 127, 160, 736, 103, 142, 138, 149,
1914 142, 123, 127, 127, 142, 123, 168, 85, 119, 168,
1915
1916 168, 138, 149, 169, 84, 138, 177, 169, 173, 119,
1917 181, 184, 173, 160, 166, 160, 173, 186, 171, 103,
1918 177, 192, 193, 103, 281, 229, 369, 103, 229, 166,
1919 166, 166, 369, 194, 281, 103, 265, 195, 181, 103,
1920 184, 103, 103, 118, 197, 186, 196, 737, 204, 193,
1921 192, 118, 118, 118, 118, 118, 171, 171, 171, 194,
1922 118, 118, 118, 118, 118, 118, 195, 171, 201, 171,
1923 197, 171, 171, 196, 171, 171, 202, 204, 205, 206,
1924 278, 207, 209, 211, 217, 230, 118, 118, 118, 118,
1925 118, 118, 265, 230, 201, 265, 310, 294, 310, 230,
1926
1927 294, 272, 202, 318, 314, 206, 205, 207, 209, 314,
1928 217, 211, 215, 215, 215, 215, 215, 322, 325, 278,
1929 328, 215, 215, 215, 215, 215, 215, 272, 332, 318,
1930 333, 334, 338, 278, 336, 339, 347, 385, 332, 407,
1931 398, 398, 385, 318, 325, 398, 328, 215, 215, 215,
1932 215, 215, 215, 406, 478, 621, 680, 680, 334, 333,
1933 336, 338, 339, 406, 424, 347, 434, 444, 407, 424,
1934 434, 444, 322, 344, 344, 344, 344, 344, 472, 589,
1935 478, 621, 344, 344, 344, 344, 344, 344, 480, 464,
1936 480, 483, 517, 385, 464, 539, 550, 517, 385, 738,
1937
1938 739, 550, 505, 622, 623, 539, 617, 472, 344, 344,
1939 344, 344, 344, 344, 625, 505, 480, 505, 480, 625,
1940 483, 617, 740, 742, 743, 424, 481, 481, 481, 481,
1941 481, 622, 617, 623, 589, 481, 481, 481, 481, 481,
1942 481, 502, 629, 649, 744, 502, 649, 706, 746, 629,
1943 617, 747, 706, 502, 748, 502, 502, 502, 502, 502,
1944 745, 481, 481, 481, 481, 481, 481, 749, 750, 751,
1945 752, 745, 753, 754, 755, 756, 758, 759, 761, 762,
1946 764, 763, 766, 767, 765, 768, 769, 770, 771, 706,
1947 772, 773, 774, 775, 776, 777, 778, 779, 781, 780,
1948
1949 780, 777, 780, 782, 783, 784, 762, 761, 763, 764,
1950 765, 785, 786, 787, 788, 789, 790, 791, 792, 793,
1951 794, 795, 796, 797, 798, 799, 800, 801, 802, 803,
1952 804, 805, 802, 806, 807, 808, 802, 809, 811, 812,
1953 813, 814, 815, 816, 817, 818, 819, 820, 821, 822,
1954 823, 824, 825, 826, 827, 828, 829, 830, 817, 831,
1955 830, 832, 833, 835, 836, 837, 838, 839, 840, 841,
1956 842, 843, 844, 845, 846, 847, 849, 850, 851, 852,
1957 853, 854, 855, 856, 857, 858, 859, 860, 861, 862,
1958 863, 864, 865, 866, 867, 868, 869, 870, 871, 872,
1959
1960 873, 874, 875, 876, 877, 878, 878, 879, 880, 881,
1961 876, 883, 882, 878, 884, 885, 887, 878, 882, 888,
1962 889, 890, 891, 892, 893, 894, 895, 896, 897, 898,
1963 899, 900, 901, 902, 903, 904, 905, 906, 907, 908,
1964 909, 910, 911, 912, 913, 914, 915, 916, 917, 918,
1965 920, 921, 922, 923, 924, 925, 926, 927, 928, 901,
1966 929, 930, 902, 931, 932, 905, 933, 934, 935, 936,
1967 937, 938, 939, 940, 941, 942, 943, 944, 945, 946,
1968 947, 948, 949, 950, 951, 953, 954, 955, 956, 957,
1969 958, 959, 960, 961, 962, 958, 963, 964, 965, 966,
1970
1971 967, 968, 969, 970, 973, 974, 975, 976, 977, 978,
1972 981, 982, 983, 984, 985, 986, 987, 989, 990, 991,
1973 992, 993, 990, 994, 995, 996, 997, 998, 999, 1003,
1974 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013,
1975 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023,
1976 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033,
1977 1034, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044,
1978 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1054, 1052, 1055,
1979 1056, 1053, 1057, 1058, 1059, 1060, 1062, 1063, 1064, 1065,
1980 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075,
1981
1982 1076, 1077, 1050, 1049, 1078, 1051, 1052, 1053, 1079, 1080,
1983 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1090, 1091,
1984 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101,
1985 1102, 1103, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112,
1986 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123,
1987 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133,
1988 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1143, 1144,
1989 1145, 1146, 1147, 1149, 1150, 1138, 1151, 1152, 1153, 1154,
1990 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164,
1991 1165, 1166, 1167, 1169, 1170, 1171, 1172, 1173, 1110, 1174,
1992
1993 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184,
1994 1185, 1186, 1187, 1188, 1189, 1191, 1190, 1192, 1194, 1195,
1995 1196, 1197, 1198, 1199, 1201, 1202, 1203, 1205, 1206, 1207,
1996 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217,
1997 1218, 1219, 1188, 1190, 1191, 1192, 1220, 1221, 1222, 1224,
1998 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234,
1999 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244,
2000 1245, 1247, 1248, 1249, 1250, 1251, 1247, 1252, 1253, 1254,
2001 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264,
2002 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274,
2003
2004 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1283, 1284, 1285,
2005 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1248,
2006 1296, 1297, 1298, 1300, 1301, 1302, 1303, 1304, 1305, 1306,
2007 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316,
2008 1317, 1318, 1319, 1320, 1322, 1323, 1324, 1326, 1325, 1327,
2009 1328, 1329, 1330, 1331, 1332, 1333, 1335, 1336, 1337, 1338,
2010 1339, 1340, 1341, 1343, 1344, 1345, 1346, 1347, 1348, 1349,
2011 1350, 1323, 1351, 1322, 1325, 1324, 1326, 1353, 1354, 1355,
2012 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365,
2013 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1374, 1375, 1377,
2014
2015 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388,
2016 1389, 1390, 1391, 1392, 1394, 1396, 1397, 1398, 1399, 1401,
2017 1402, 1403, 1404, 1405, 1406, 1407, 1409, 1411, 1413, 1414,
2018 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424,
2019 1425, 1426, 1427, 1428, 1430, 1431, 1432, 1433, 1434, 1435,
2020 1436, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447,
2021 1448, 1449, 1450, 1451, 1452, 1453, 1455, 1456, 1457, 1458,
2022 1459, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469,
2023 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1450,
2024 1451, 1479, 1421, 1452, 1480, 1481, 1482, 1483, 1484, 1485,
2025
2026 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496,
2027 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1461, 1505,
2028 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1516,
2029 1508, 1517, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527,
2030 1528, 1529, 1530, 1531, 1532, 1534, 1535, 1536, 1537, 1538,
2031 1539, 1540, 1542, 1537, 1542, 1543, 1545, 1546, 1549, 1550,
2032 1551, 1552, 1553, 1554, 1555, 1556, 1558, 1559, 1560, 1561,
2033 1562, 1563, 1564, 1567, 1561, 1565, 1568, 1569, 1570, 1571,
2034 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582,
2035 1583, 1584, 1585, 1586, 1587, 1588, 1564, 1563, 1589, 1562,
2036
2037 1590, 1565, 1591, 1593, 1594, 1595, 1597, 1598, 1599, 1600,
2038 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610,
2039 1612, 1614, 1615, 1617, 1564, 1618, 1619, 1620, 1621, 1622,
2040 1623, 1624, 1625, 1627, 1628, 1629, 1630, 1631, 1632, 1633,
2041 1634, 1635, 1636, 1639, 1640, 1642, 1643, 1644, 1646, 1647,
2042 1646, 1648, 1649, 1646, 1650, 1651, 1646, 1652, 1653, 1654,
2043 1655, 1656, 1657, 1658, 1659, 1660, 1662, 1664, 1665, 1667,
2044 1668, 1669, 1671, 1670, 1672, 1674, 1676, 1677, 1678, 1680,
2045 1681, 1682, 1683, 1684, 1685, 1686, 1688, 1689, 1690, 1687,
2046 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1668, 1669, 1670,
2047
2048 1687, 1671, 1672, 1698, 1699, 1700, 1701, 1702, 1703, 1704,
2049 1705, 1706, 1707, 1708, 1709, 1709, 1710, 1711, 1712, 1713,
2050 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723,
2051 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733,
2052 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743,
2053 1744, 1745, 1746, 1748, 1749, 1750, 1751, 1752, 1753, 1754,
2054 1755, 1756, 1758, 1759, 1760, 1762, 1763, 1764, 1766, 1765,
2055 1767, 1769, 1770, 1773, 1774, 1775, 1777, 1710, 1778, 1779,
2056 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789,
2057 1790, 1792, 1794, 1764, 1795, 1763, 1765, 1766, 1796, 1767,
2058
2059 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1805, 1806, 1807,
2060 1808, 1809, 1811, 1812, 1814, 1815, 1816, 1818, 1819, 1820,
2061 1822, 1823, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833,
2062 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843,
2063 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1854,
2064 1855, 1856, 1857, 1858, 1859, 1861, 1862, 1863, 1865, 1866,
2065 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876,
2066 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1855, 1857, 1884,
2067 1885, 1887, 1888, 1889, 1891, 1892, 1893, 1894, 1895, 1897,
2068 1898, 1899, 1900, 1901, 1903, 1904, 1905, 1906, 1907, 1908,
2069
2070 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918,
2071 1919, 1921, 1922, 1924, 1926, 1928, 1929, 1930, 1924, 1931,
2072 1933, 1935, 1938, 1936, 1940, 1941, 1942, 1943, 1944, 1945,
2073 1946, 1947, 1949, 1950, 1951, 1952, 1954, 1955, 1956, 1957,
2074 1958, 1959, 1961, 1962, 1963, 1964, 1965, 1966, 1935, 1936,
2075 1967, 1968, 1969, 1970, 1972, 1973, 1974, 1976, 1977, 1978,
2076 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1987, 1988, 1989,
2077 1990, 1992, 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003,
2078 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013, 2014,
2079 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024,
2080
2081 2025, 2027, 2028, 2001, 2002, 2030, 2003, 2031, 2032, 2033,
2082 2034, 2035, 2036, 2037, 2038, 2040, 2042, 2043, 2044, 2045,
2083 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2052,
2084 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064,
2085 2065, 2066, 2067, 2068, 2069, 2071, 2072, 2073, 2074, 2075,
2086 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2056, 2058,
2087 2085, 2089, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098,
2088 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2109,
2089 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120,
2090 2121, 2122, 2123, 2124, 2125, 2126, 2128, 2129, 2130, 2131,
2091
2092 2132, 2133, 2135, 2137, 2107, 2140, 2109, 2142, 2143, 2144,
2093 2145, 2146, 2147, 2148, 2149, 2151, 2152, 2154, 2153, 2155,
2094 2156, 2157, 2158, 2159, 2160, 2162, 2163, 2164, 2165, 2166,
2095 2167, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177,
2096 2178, 2179, 2180, 2152, 2153, 2181, 2183, 2184, 2185, 2186,
2097 2187, 2188, 2189, 2190, 2191, 2193, 2194, 2195, 2196, 2197,
2098 2198, 2199, 2200, 2202, 2203, 2204, 2205, 2206, 2207, 2208,
2099 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2188, 2216, 2217,
2100 2218, 2219, 2220, 2221, 2224, 2225, 2226, 2228, 2229, 2230,
2101 2231, 2233, 2234, 2235, 2236, 2237, 2238, 2242, 2245, 2246,
2102
2103 2247, 2248, 2249, 2250, 2251, 2253, 2254, 2256, 2257, 2258,
2104 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2267, 2268, 2269,
2105 2270, 2271, 2272, 2274, 2275, 2277, 2279, 2280, 2281, 2282,
2106 2283, 2284, 2285, 2286, 2288, 2289, 2290, 2291, 2292, 2291,
2107 2293, 2294, 2295, 2297, 2298, 2300, 2303, 2304, 2305, 2306,
2108 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316,
2109 2317, 2318, 2319, 2320, 2322, 2323, 2324, 2325, 2326, 2329,
2110 2330, 2331, 2332, 2334, 2335, 2337, 2338, 2340, 2342, 2343,
2111 2345, 2346, 2347, 2348, 2349, 2351, 2356, 2356, 2356, 2357,
2112 2357, 2357, 2358, 2359, 2358, 2360, 2360, 2360, 2361, 2361,
2113
2114 2361, 2362, 729, 2362, 2363, 2363, 2363, 728, 727, 725,
2115 724, 723, 722, 721, 720, 719, 718, 717, 716, 714,
2116 713, 712, 711, 710, 709, 708, 707, 705, 704, 703,
2117 702, 701, 700, 699, 698, 697, 696, 694, 693, 692,
2118 691, 690, 689, 688, 687, 686, 685, 684, 683, 682,
2119 681, 679, 678, 677, 676, 675, 674, 673, 672, 671,
2120 670, 669, 668, 667, 666, 664, 663, 662, 661, 660,
2121 659, 658, 657, 656, 655, 654, 653, 652, 651, 650,
2122 648, 647, 646, 645, 644, 643, 642, 641, 640, 639,
2123 638, 637, 636, 635, 634, 633, 632, 631, 630, 628,
2124
2125 627, 624, 616, 615, 614, 613, 612, 611, 610, 608,
2126 607, 605, 604, 602, 601, 600, 599, 598, 597, 596,
2127 595, 594, 593, 592, 591, 590, 588, 587, 586, 585,
2128 584, 583, 582, 581, 580, 579, 578, 577, 576, 575,
2129 574, 573, 572, 571, 570, 568, 567, 565, 564, 563,
2130 562, 561, 560, 559, 558, 557, 556, 555, 554, 553,
2131 552, 551, 549, 548, 546, 545, 544, 543, 542, 541,
2132 540, 538, 537, 536, 535, 534, 533, 532, 531, 530,
2133 529, 528, 527, 526, 525, 524, 523, 521, 520, 519,
2134 518, 516, 515, 514, 513, 512, 511, 510, 509, 507,
2135
2136 506, 504, 503, 500, 499, 498, 497, 496, 495, 493,
2137 492, 491, 490, 489, 488, 487, 486, 485, 484, 482,
2138 477, 475, 474, 473, 471, 470, 469, 466, 465, 463,
2139 462, 460, 459, 458, 457, 456, 455, 454, 453, 452,
2140 451, 450, 449, 448, 447, 446, 445, 443, 442, 441,
2141 440, 439, 438, 437, 436, 435, 433, 432, 430, 428,
2142 427, 426, 425, 423, 422, 421, 420, 419, 418, 417,
2143 416, 415, 414, 413, 412, 411, 410, 408, 405, 404,
2144 403, 402, 401, 400, 399, 397, 396, 395, 394, 393,
2145 392, 391, 390, 389, 388, 387, 386, 384, 383, 382,
2146
2147 381, 380, 379, 378, 377, 376, 375, 374, 373, 372,
2148 371, 370, 368, 367, 366, 365, 364, 363, 362, 361,
2149 360, 359, 358, 357, 356, 355, 354, 353, 352, 351,
2150 350, 349, 348, 346, 343, 341, 337, 335, 331, 324,
2151 323, 321, 320, 319, 317, 316, 315, 313, 312, 311,
2152 309, 308, 307, 306, 305, 304, 303, 302, 301, 300,
2153 299, 298, 297, 296, 295, 293, 292, 291, 290, 289,
2154 288, 287, 286, 285, 284, 283, 282, 280, 279, 277,
2155 276, 275, 273, 271, 270, 269, 268, 267, 266, 264,
2156 263, 262, 261, 260, 259, 258, 256, 255, 253, 252,
2157
2158 251, 250, 249, 248, 247, 246, 245, 244, 243, 242,
2159 241, 240, 239, 238, 237, 236, 235, 234, 233, 232,
2160 231, 228, 227, 226, 225, 224, 223, 222, 221, 220,
2161 219, 218, 212, 210, 208, 203, 200, 198, 190, 189,
2162 188, 187, 185, 183, 180, 179, 178, 176, 175, 174,
2163 170, 167, 165, 164, 163, 161, 159, 158, 157, 156,
2164 155, 154, 152, 151, 150, 148, 147, 146, 145, 144,
2165 143, 141, 140, 136, 135, 134, 133, 132, 130, 129,
2166 128, 126, 124, 122, 121, 120, 116, 111, 107, 104,
2167 99, 98, 78, 73, 67, 59, 50, 47, 43, 41,
2168
2169 39, 38, 24, 14, 11, 2355, 2355, 2355, 2355, 2355,
2170 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
2171 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
2172 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
2173 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
2174 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
2175 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
2176 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355, 2355,
2177 2355, 2355
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[234] =
2187 { 0,
2188 147, 149, 151, 156, 157, 162, 163, 164, 176, 179,
2189 184, 191, 200, 209, 218, 227, 236, 245, 254, 264,
2190 273, 282, 291, 300, 309, 318, 327, 336, 345, 354,
2191 363, 372, 381, 390, 399, 411, 420, 429, 438, 449,
2192 460, 471, 482, 493, 504, 515, 526, 537, 548, 559,
2193 570, 579, 588, 597, 608, 619, 628, 639, 650, 661,
2194 672, 684, 696, 708, 719, 730, 739, 748, 757, 768,
2195 777, 786, 797, 808, 819, 830, 841, 852, 863, 874,
2196 885, 894, 903, 912, 922, 933, 943, 954, 963, 973,
2197 987, 1003, 1012, 1021, 1030, 1039, 1048, 1057, 1079, 1101,
2198
2199 1110, 1120, 1129, 1140, 1149, 1158, 1167, 1176, 1185, 1196,
2200 1207, 1218, 1228, 1237, 1248, 1259, 1270, 1281, 1293, 1302,
2201 1311, 1320, 1329, 1338, 1347, 1356, 1365, 1374, 1383, 1393,
2202 1404, 1416, 1425, 1434, 1443, 1453, 1463, 1473, 1483, 1493,
2203 1503, 1512, 1522, 1531, 1540, 1549, 1558, 1568, 1578, 1587,
2204 1597, 1606, 1615, 1624, 1633, 1642, 1651, 1660, 1669, 1678,
2205 1687, 1696, 1705, 1714, 1723, 1732, 1741, 1750, 1759, 1768,
2206 1777, 1786, 1795, 1804, 1813, 1822, 1831, 1840, 1849, 1858,
2207 1867, 1876, 1885, 1894, 1903, 1912, 1924, 1936, 1946, 1956,
2208 1966, 1976, 1986, 1996, 2006, 2016, 2026, 2035, 2044, 2053,
2209
2210 2062, 2073, 2084, 2097, 2110, 2123, 2132, 2141, 2150, 2159,
2211 2168, 2177, 2186, 2195, 2207, 2308, 2324, 2373, 2381, 2396,
2212 2397, 2398, 2399, 2400, 2401, 2403, 2421, 2434, 2439, 2443,
2213 2445, 2447, 2449
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 >= 2356 )
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 != 2355 );
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 < 234 )
2678 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2679 (long)yy_rule_linenum[yy_act], yytext );
2680 else if ( yy_act == 234 )
2681 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2682 yytext );
2683 else if ( yy_act == 235 )
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 179 "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 184 "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 191 "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 200 "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 209 "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 218 "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 227 "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 236 "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 245 "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 254 "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 264 "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 273 "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 282 "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 291 "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 300 "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 309 "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 318 "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 327 "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 336 "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 345 "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 354 "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 363 "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 372 "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 381 "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 390 "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 399 "dhcp4_lexer.ll"
3067{
3068 switch(driver.ctx_) {
3073 return isc::dhcp::Dhcp4Parser::make_TYPE(driver.loc_);
3074 default:
3075 return isc::dhcp::Dhcp4Parser::make_STRING("type", driver.loc_);
3076 }
3077}
3078 YY_BREAK
3079case 36:
3081#line 411 "dhcp4_lexer.ll"
3082{
3083 switch(driver.ctx_) {
3085 return isc::dhcp::Dhcp4Parser::make_MEMFILE(driver.loc_);
3086 default:
3087 return isc::dhcp::Dhcp4Parser::make_STRING("memfile", driver.loc_);
3088 }
3089}
3090 YY_BREAK
3091case 37:
3093#line 420 "dhcp4_lexer.ll"
3094{
3095 switch(driver.ctx_) {
3097 return isc::dhcp::Dhcp4Parser::make_MYSQL(driver.loc_);
3098 default:
3099 return isc::dhcp::Dhcp4Parser::make_STRING("mysql", driver.loc_);
3100 }
3101}
3102 YY_BREAK
3103case 38:
3105#line 429 "dhcp4_lexer.ll"
3106{
3107 switch(driver.ctx_) {
3109 return isc::dhcp::Dhcp4Parser::make_POSTGRESQL(driver.loc_);
3110 default:
3111 return isc::dhcp::Dhcp4Parser::make_STRING("postgresql", driver.loc_);
3112 }
3113}
3114 YY_BREAK
3115case 39:
3117#line 438 "dhcp4_lexer.ll"
3118{
3119 switch(driver.ctx_) {
3123 return isc::dhcp::Dhcp4Parser::make_USER(driver.loc_);
3124 default:
3125 return isc::dhcp::Dhcp4Parser::make_STRING("user", driver.loc_);
3126 }
3127}
3128 YY_BREAK
3129case 40:
3131#line 449 "dhcp4_lexer.ll"
3132{
3133 switch(driver.ctx_) {
3137 return isc::dhcp::Dhcp4Parser::make_PASSWORD(driver.loc_);
3138 default:
3139 return isc::dhcp::Dhcp4Parser::make_STRING("password", driver.loc_);
3140 }
3141}
3142 YY_BREAK
3143case 41:
3145#line 460 "dhcp4_lexer.ll"
3146{
3147 switch(driver.ctx_) {
3151 return isc::dhcp::Dhcp4Parser::make_HOST(driver.loc_);
3152 default:
3153 return isc::dhcp::Dhcp4Parser::make_STRING("host", driver.loc_);
3154 }
3155}
3156 YY_BREAK
3157case 42:
3159#line 471 "dhcp4_lexer.ll"
3160{
3161 switch(driver.ctx_) {
3165 return isc::dhcp::Dhcp4Parser::make_PORT(driver.loc_);
3166 default:
3167 return isc::dhcp::Dhcp4Parser::make_STRING("port", driver.loc_);
3168 }
3169}
3170 YY_BREAK
3171case 43:
3173#line 482 "dhcp4_lexer.ll"
3174{
3175 switch(driver.ctx_) {
3179 return isc::dhcp::Dhcp4Parser::make_PERSIST(driver.loc_);
3180 default:
3181 return isc::dhcp::Dhcp4Parser::make_STRING("persist", driver.loc_);
3182 }
3183}
3184 YY_BREAK
3185case 44:
3187#line 493 "dhcp4_lexer.ll"
3188{
3189 switch(driver.ctx_) {
3194 default:
3195 return isc::dhcp::Dhcp4Parser::make_STRING("lfc-interval", driver.loc_);
3196 }
3197}
3198 YY_BREAK
3199case 45:
3201#line 504 "dhcp4_lexer.ll"
3202{
3203 switch(driver.ctx_) {
3208 default:
3209 return isc::dhcp::Dhcp4Parser::make_STRING("connect-timeout", driver.loc_);
3210 }
3211}
3212 YY_BREAK
3213case 46:
3215#line 515 "dhcp4_lexer.ll"
3216{
3217 switch(driver.ctx_) {
3222 default:
3223 return isc::dhcp::Dhcp4Parser::make_STRING("read-timeout", driver.loc_);
3224 }
3225}
3226 YY_BREAK
3227case 47:
3229#line 526 "dhcp4_lexer.ll"
3230{
3231 switch(driver.ctx_) {
3236 default:
3237 return isc::dhcp::Dhcp4Parser::make_STRING("write-timeout", driver.loc_);
3238 }
3239}
3240 YY_BREAK
3241case 48:
3243#line 537 "dhcp4_lexer.ll"
3244{
3245 switch(driver.ctx_) {
3250 default:
3251 return isc::dhcp::Dhcp4Parser::make_STRING("tcp-user-timeout", driver.loc_);
3252 }
3253}
3254 YY_BREAK
3255case 49:
3257#line 548 "dhcp4_lexer.ll"
3258{
3259 switch(driver.ctx_) {
3264 default:
3265 return isc::dhcp::Dhcp4Parser::make_STRING("reconnect-wait-time", driver.loc_);
3266 }
3267}
3268 YY_BREAK
3269case 50:
3271#line 559 "dhcp4_lexer.ll"
3272{
3273 switch(driver.ctx_) {
3277 return isc::dhcp::Dhcp4Parser::make_ON_FAIL(driver.loc_);
3278 default:
3279 return isc::dhcp::Dhcp4Parser::make_STRING("on-fail", driver.loc_);
3280 }
3281}
3282 YY_BREAK
3283case 51:
3285#line 570 "dhcp4_lexer.ll"
3286{
3287 switch(driver.ctx_) {
3290 default:
3291 return isc::dhcp::Dhcp4Parser::make_STRING("stop-retry-exit", driver.loc_);
3292 }
3293}
3294 YY_BREAK
3295case 52:
3297#line 579 "dhcp4_lexer.ll"
3298{
3299 switch(driver.ctx_) {
3302 default:
3303 return isc::dhcp::Dhcp4Parser::make_STRING("serve-retry-exit", driver.loc_);
3304 }
3305}
3306 YY_BREAK
3307case 53:
3309#line 588 "dhcp4_lexer.ll"
3310{
3311 switch(driver.ctx_) {
3314 default:
3315 return isc::dhcp::Dhcp4Parser::make_STRING("serve-retry-continue", driver.loc_);
3316 }
3317}
3318 YY_BREAK
3319case 54:
3321#line 597 "dhcp4_lexer.ll"
3322{
3323 switch(driver.ctx_) {
3328 default:
3329 return isc::dhcp::Dhcp4Parser::make_STRING("retry-on-startup", driver.loc_);
3330 }
3331}
3332 YY_BREAK
3333case 55:
3335#line 608 "dhcp4_lexer.ll"
3336{
3337 switch(driver.ctx_) {
3342 default:
3343 return isc::dhcp::Dhcp4Parser::make_STRING("max-reconnect-tries", driver.loc_);
3344 }
3345}
3346 YY_BREAK
3347case 56:
3349#line 619 "dhcp4_lexer.ll"
3350{
3351 switch(driver.ctx_) {
3354 default:
3355 return isc::dhcp::Dhcp4Parser::make_STRING("max-row-errors", driver.loc_);
3356 }
3357}
3358 YY_BREAK
3359case 57:
3361#line 628 "dhcp4_lexer.ll"
3362{
3363 switch(driver.ctx_) {
3368 default:
3369 return isc::dhcp::Dhcp4Parser::make_STRING("trust-anchor", driver.loc_);
3370 }
3371}
3372 YY_BREAK
3373case 58:
3375#line 639 "dhcp4_lexer.ll"
3376{
3377 switch(driver.ctx_) {
3381 return isc::dhcp::Dhcp4Parser::make_CERT_FILE(driver.loc_);
3382 default:
3383 return isc::dhcp::Dhcp4Parser::make_STRING("cert-file", driver.loc_);
3384 }
3385}
3386 YY_BREAK
3387case 59:
3389#line 650 "dhcp4_lexer.ll"
3390{
3391 switch(driver.ctx_) {
3395 return isc::dhcp::Dhcp4Parser::make_KEY_FILE(driver.loc_);
3396 default:
3397 return isc::dhcp::Dhcp4Parser::make_STRING("key-file", driver.loc_);
3398 }
3399}
3400 YY_BREAK
3401case 60:
3403#line 661 "dhcp4_lexer.ll"
3404{
3405 switch(driver.ctx_) {
3409 return isc::dhcp::Dhcp4Parser::make_CIPHER_LIST(driver.loc_);
3410 default:
3411 return isc::dhcp::Dhcp4Parser::make_STRING("cipher-list", driver.loc_);
3412 }
3413}
3414 YY_BREAK
3415case 61:
3417#line 672 "dhcp4_lexer.ll"
3418{
3419 switch(driver.ctx_) {
3425 default:
3426 return isc::dhcp::Dhcp4Parser::make_STRING("valid-lifetime", driver.loc_);
3427 }
3428}
3429 YY_BREAK
3430case 62:
3432#line 684 "dhcp4_lexer.ll"
3433{
3434 switch(driver.ctx_) {
3440 default:
3441 return isc::dhcp::Dhcp4Parser::make_STRING("min-valid-lifetime", driver.loc_);
3442 }
3443}
3444 YY_BREAK
3445case 63:
3447#line 696 "dhcp4_lexer.ll"
3448{
3449 switch(driver.ctx_) {
3455 default:
3456 return isc::dhcp::Dhcp4Parser::make_STRING("max-valid-lifetime", driver.loc_);
3457 }
3458}
3459 YY_BREAK
3460case 64:
3462#line 708 "dhcp4_lexer.ll"
3463{
3464 switch(driver.ctx_) {
3468 return isc::dhcp::Dhcp4Parser::make_RENEW_TIMER(driver.loc_);
3469 default:
3470 return isc::dhcp::Dhcp4Parser::make_STRING("renew-timer", driver.loc_);
3471 }
3472}
3473 YY_BREAK
3474case 65:
3476#line 719 "dhcp4_lexer.ll"
3477{
3478 switch(driver.ctx_) {
3483 default:
3484 return isc::dhcp::Dhcp4Parser::make_STRING("rebind-timer", driver.loc_);
3485 }
3486}
3487 YY_BREAK
3488case 66:
3490#line 730 "dhcp4_lexer.ll"
3491{
3492 switch(driver.ctx_) {
3495 default:
3496 return isc::dhcp::Dhcp4Parser::make_STRING("decline-probation-period", driver.loc_);
3497 }
3498}
3499 YY_BREAK
3500case 67:
3502#line 739 "dhcp4_lexer.ll"
3503{
3504 switch(driver.ctx_) {
3506 return isc::dhcp::Dhcp4Parser::make_SERVER_TAG(driver.loc_);
3507 default:
3508 return isc::dhcp::Dhcp4Parser::make_STRING("server-tag", driver.loc_);
3509 }
3510}
3511 YY_BREAK
3512case 68:
3514#line 748 "dhcp4_lexer.ll"
3515{
3516 switch(driver.ctx_) {
3519 default:
3520 return isc::dhcp::Dhcp4Parser::make_STRING("parked-packet-limit", driver.loc_);
3521 }
3522}
3523 YY_BREAK
3524case 69:
3526#line 757 "dhcp4_lexer.ll"
3527{
3528 switch(driver.ctx_) {
3532 return isc::dhcp::Dhcp4Parser::make_ALLOCATOR(driver.loc_);
3533 default:
3534 return isc::dhcp::Dhcp4Parser::make_STRING("allocator", driver.loc_);
3535 }
3536}
3537 YY_BREAK
3538case 70:
3540#line 768 "dhcp4_lexer.ll"
3541{
3542 switch(driver.ctx_) {
3545 default:
3546 return isc::dhcp::Dhcp4Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3547 }
3548}
3549 YY_BREAK
3550case 71:
3552#line 777 "dhcp4_lexer.ll"
3553{
3554 switch(driver.ctx_) {
3557 default:
3558 return isc::dhcp::Dhcp4Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3559 }
3560}
3561 YY_BREAK
3562case 72:
3564#line 786 "dhcp4_lexer.ll"
3565{
3566 switch(driver.ctx_) {
3571 default:
3572 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-send-updates", driver.loc_);
3573 }
3574}
3575 YY_BREAK
3576case 73:
3578#line 797 "dhcp4_lexer.ll"
3579{
3580 switch(driver.ctx_) {
3585 default:
3586 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-no-update", driver.loc_);
3587 }
3588}
3589 YY_BREAK
3590case 74:
3592#line 808 "dhcp4_lexer.ll"
3593{
3594 switch(driver.ctx_) {
3599 default:
3600 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-client-update", driver.loc_);
3601 }
3602}
3603 YY_BREAK
3604case 75:
3606#line 819 "dhcp4_lexer.ll"
3607{
3608 switch(driver.ctx_) {
3613 default:
3614 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3615 }
3616}
3617 YY_BREAK
3618case 76:
3620#line 830 "dhcp4_lexer.ll"
3621{
3622 switch(driver.ctx_) {
3627 default:
3628 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-generated-prefix", driver.loc_);
3629 }
3630}
3631 YY_BREAK
3632case 77:
3634#line 841 "dhcp4_lexer.ll"
3635{
3636 switch(driver.ctx_) {
3641 default:
3642 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
3643 }
3644}
3645 YY_BREAK
3646case 78:
3648#line 852 "dhcp4_lexer.ll"
3649{
3650 switch(driver.ctx_) {
3655 default:
3656 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-update-on-renew", driver.loc_);
3657 }
3658}
3659 YY_BREAK
3660case 79:
3662#line 863 "dhcp4_lexer.ll"
3663{
3664 switch(driver.ctx_) {
3669 default:
3670 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
3671 }
3672}
3673 YY_BREAK
3674case 80:
3676#line 874 "dhcp4_lexer.ll"
3677{
3678 switch(driver.ctx_) {
3683 default:
3684 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-conflict-resolution-mode", driver.loc_);
3685 }
3686}
3687 YY_BREAK
3688case 81:
3690#line 885 "dhcp4_lexer.ll"
3691{
3694 }
3695 std::string tmp(yytext+1);
3696 tmp.resize(tmp.size() - 1);
3697 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
3698}
3699 YY_BREAK
3700case 82:
3702#line 894 "dhcp4_lexer.ll"
3703{
3706 }
3707 std::string tmp(yytext+1);
3708 tmp.resize(tmp.size() - 1);
3709 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
3710}
3711 YY_BREAK
3712case 83:
3714#line 903 "dhcp4_lexer.ll"
3715{
3718 }
3719 std::string tmp(yytext+1);
3720 tmp.resize(tmp.size() - 1);
3721 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
3722}
3723 YY_BREAK
3724case 84:
3726#line 912 "dhcp4_lexer.ll"
3727{
3730 }
3731 std::string tmp(yytext+1);
3732 tmp.resize(tmp.size() - 1);
3733 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
3734}
3735 YY_BREAK
3736case 85:
3738#line 922 "dhcp4_lexer.ll"
3739{
3740 switch(driver.ctx_) {
3745 default:
3746 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-ttl-percent", driver.loc_);
3747 }
3748}
3749 YY_BREAK
3750case 86:
3752#line 933 "dhcp4_lexer.ll"
3753{
3754 switch(driver.ctx_) {
3757 return isc::dhcp::Dhcp4Parser::make_SUBNET4(driver.loc_);
3758 default:
3759 return isc::dhcp::Dhcp4Parser::make_STRING("subnet4", driver.loc_);
3760 }
3761}
3762 YY_BREAK
3763case 87:
3765#line 943 "dhcp4_lexer.ll"
3766{
3767 switch(driver.ctx_) {
3772 default:
3773 return isc::dhcp::Dhcp4Parser::make_STRING("store-extended-info", driver.loc_);
3774 }
3775}
3776 YY_BREAK
3777case 88:
3779#line 954 "dhcp4_lexer.ll"
3780{
3781 switch (driver.ctx_) {
3784 default:
3785 return isc::dhcp::Dhcp4Parser::make_STRING("shared-networks", driver.loc_);
3786 }
3787}
3788 YY_BREAK
3789case 89:
3791#line 963 "dhcp4_lexer.ll"
3792{
3793 switch(driver.ctx_) {
3796 return isc::dhcp::Dhcp4Parser::make_OPTION_DEF(driver.loc_);
3797 default:
3798 return isc::dhcp::Dhcp4Parser::make_STRING("option-def", driver.loc_);
3799 }
3800}
3801 YY_BREAK
3802case 90:
3804#line 973 "dhcp4_lexer.ll"
3805{
3806 switch(driver.ctx_) {
3813 return isc::dhcp::Dhcp4Parser::make_OPTION_DATA(driver.loc_);
3814 default:
3815 return isc::dhcp::Dhcp4Parser::make_STRING("option-data", driver.loc_);
3816 }
3817}
3818 YY_BREAK
3819case 91:
3821#line 987 "dhcp4_lexer.ll"
3822{
3823 switch(driver.ctx_) {
3832 return isc::dhcp::Dhcp4Parser::make_NAME(driver.loc_);
3833 default:
3834 return isc::dhcp::Dhcp4Parser::make_STRING("name", driver.loc_);
3835 }
3836}
3837 YY_BREAK
3838case 92:
3840#line 1003 "dhcp4_lexer.ll"
3841{
3842 switch(driver.ctx_) {
3844 return isc::dhcp::Dhcp4Parser::make_DATA(driver.loc_);
3845 default:
3846 return isc::dhcp::Dhcp4Parser::make_STRING("data", driver.loc_);
3847 }
3848}
3849 YY_BREAK
3850case 93:
3852#line 1012 "dhcp4_lexer.ll"
3853{
3854 switch(driver.ctx_) {
3856 return isc::dhcp::Dhcp4Parser::make_ALWAYS_SEND(driver.loc_);
3857 default:
3858 return isc::dhcp::Dhcp4Parser::make_STRING("always-send", driver.loc_);
3859 }
3860}
3861 YY_BREAK
3862case 94:
3864#line 1021 "dhcp4_lexer.ll"
3865{
3866 switch(driver.ctx_) {
3868 return isc::dhcp::Dhcp4Parser::make_NEVER_SEND(driver.loc_);
3869 default:
3870 return isc::dhcp::Dhcp4Parser::make_STRING("never-send", driver.loc_);
3871 }
3872}
3873 YY_BREAK
3874case 95:
3876#line 1030 "dhcp4_lexer.ll"
3877{
3878 switch(driver.ctx_) {
3880 return isc::dhcp::Dhcp4Parser::make_POOLS(driver.loc_);
3881 default:
3882 return isc::dhcp::Dhcp4Parser::make_STRING("pools", driver.loc_);
3883 }
3884}
3885 YY_BREAK
3886case 96:
3888#line 1039 "dhcp4_lexer.ll"
3889{
3890 switch(driver.ctx_) {
3892 return isc::dhcp::Dhcp4Parser::make_POOL(driver.loc_);
3893 default:
3894 return isc::dhcp::Dhcp4Parser::make_STRING("pool", driver.loc_);
3895 }
3896}
3897 YY_BREAK
3898case 97:
3900#line 1048 "dhcp4_lexer.ll"
3901{
3902 switch(driver.ctx_) {
3904 return isc::dhcp::Dhcp4Parser::make_POOL_ID(driver.loc_);
3905 default:
3906 return isc::dhcp::Dhcp4Parser::make_STRING("pool-id", driver.loc_);
3907 }
3908}
3909 YY_BREAK
3910case 98:
3912#line 1057 "dhcp4_lexer.ll"
3913{
3914 switch(driver.ctx_) {
3930 default:
3931 return isc::dhcp::Dhcp4Parser::make_STRING("user-context", driver.loc_);
3932 }
3933}
3934 YY_BREAK
3935case 99:
3937#line 1079 "dhcp4_lexer.ll"
3938{
3939 switch(driver.ctx_) {
3954 return isc::dhcp::Dhcp4Parser::make_COMMENT(driver.loc_);
3955 default:
3956 return isc::dhcp::Dhcp4Parser::make_STRING("comment", driver.loc_);
3957 }
3958}
3959 YY_BREAK
3960case 100:
3962#line 1101 "dhcp4_lexer.ll"
3963{
3964 switch(driver.ctx_) {
3966 return isc::dhcp::Dhcp4Parser::make_SUBNET(driver.loc_);
3967 default:
3968 return isc::dhcp::Dhcp4Parser::make_STRING("subnet", driver.loc_);
3969 }
3970}
3971 YY_BREAK
3972case 101:
3974#line 1110 "dhcp4_lexer.ll"
3975{
3976 switch(driver.ctx_) {
3979 return isc::dhcp::Dhcp4Parser::make_INTERFACE(driver.loc_);
3980 default:
3981 return isc::dhcp::Dhcp4Parser::make_STRING("interface", driver.loc_);
3982 }
3983}
3984 YY_BREAK
3985case 102:
3987#line 1120 "dhcp4_lexer.ll"
3988{
3989 switch(driver.ctx_) {
3991 return isc::dhcp::Dhcp4Parser::make_ID(driver.loc_);
3992 default:
3993 return isc::dhcp::Dhcp4Parser::make_STRING("id", driver.loc_);
3994 }
3995}
3996 YY_BREAK
3997case 103:
3999#line 1129 "dhcp4_lexer.ll"
4000{
4001 switch(driver.ctx_) {
4006 default:
4007 return isc::dhcp::Dhcp4Parser::make_STRING("reservation-mode", driver.loc_);
4008 }
4009}
4010 YY_BREAK
4011case 104:
4013#line 1140 "dhcp4_lexer.ll"
4014{
4015 switch(driver.ctx_) {
4017 return isc::dhcp::Dhcp4Parser::make_DISABLED(driver.loc_);
4018 default:
4019 return isc::dhcp::Dhcp4Parser::make_STRING("disabled", driver.loc_);
4020 }
4021}
4022 YY_BREAK
4023case 105:
4025#line 1149 "dhcp4_lexer.ll"
4026{
4027 switch(driver.ctx_) {
4029 return isc::dhcp::Dhcp4Parser::make_DISABLED(driver.loc_);
4030 default:
4031 return isc::dhcp::Dhcp4Parser::make_STRING("off", driver.loc_);
4032 }
4033}
4034 YY_BREAK
4035case 106:
4037#line 1158 "dhcp4_lexer.ll"
4038{
4039 switch(driver.ctx_) {
4041 return isc::dhcp::Dhcp4Parser::make_OUT_OF_POOL(driver.loc_);
4042 default:
4043 return isc::dhcp::Dhcp4Parser::make_STRING("out-of-pool", driver.loc_);
4044 }
4045}
4046 YY_BREAK
4047case 107:
4049#line 1167 "dhcp4_lexer.ll"
4050{
4051 switch(driver.ctx_) {
4053 return isc::dhcp::Dhcp4Parser::make_GLOBAL(driver.loc_);
4054 default:
4055 return isc::dhcp::Dhcp4Parser::make_STRING("global", driver.loc_);
4056 }
4057}
4058 YY_BREAK
4059case 108:
4061#line 1176 "dhcp4_lexer.ll"
4062{
4063 switch(driver.ctx_) {
4065 return isc::dhcp::Dhcp4Parser::make_ALL(driver.loc_);
4066 default:
4067 return isc::dhcp::Dhcp4Parser::make_STRING("all", driver.loc_);
4068 }
4069}
4070 YY_BREAK
4071case 109:
4073#line 1185 "dhcp4_lexer.ll"
4074{
4075 switch(driver.ctx_) {
4080 default:
4081 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-global", driver.loc_);
4082 }
4083}
4084 YY_BREAK
4085case 110:
4087#line 1196 "dhcp4_lexer.ll"
4088{
4089 switch(driver.ctx_) {
4094 default:
4095 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-in-subnet", driver.loc_);
4096 }
4097}
4098 YY_BREAK
4099case 111:
4101#line 1207 "dhcp4_lexer.ll"
4102{
4103 switch(driver.ctx_) {
4108 default:
4109 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-out-of-pool", driver.loc_);
4110 }
4111}
4112 YY_BREAK
4113case 112:
4115#line 1218 "dhcp4_lexer.ll"
4116{
4117 switch(driver.ctx_) {
4120 return isc::dhcp::Dhcp4Parser::make_CODE(driver.loc_);
4121 default:
4122 return isc::dhcp::Dhcp4Parser::make_STRING("code", driver.loc_);
4123 }
4124}
4125 YY_BREAK
4126case 113:
4128#line 1228 "dhcp4_lexer.ll"
4129{
4130 switch(driver.ctx_) {
4133 default:
4134 return isc::dhcp::Dhcp4Parser::make_STRING("host-reservation-identifiers", driver.loc_);
4135 }
4136}
4137 YY_BREAK
4138case 114:
4140#line 1237 "dhcp4_lexer.ll"
4141{
4142 switch(driver.ctx_) {
4147 default:
4148 return isc::dhcp::Dhcp4Parser::make_STRING("calculate-tee-times", driver.loc_);
4149 }
4150}
4151 YY_BREAK
4152case 115:
4154#line 1248 "dhcp4_lexer.ll"
4155{
4156 switch(driver.ctx_) {
4160 return isc::dhcp::Dhcp4Parser::make_T1_PERCENT(driver.loc_);
4161 default:
4162 return isc::dhcp::Dhcp4Parser::make_STRING("t1-percent", driver.loc_);
4163 }
4164}
4165 YY_BREAK
4166case 116:
4168#line 1259 "dhcp4_lexer.ll"
4169{
4170 switch(driver.ctx_) {
4174 return isc::dhcp::Dhcp4Parser::make_T2_PERCENT(driver.loc_);
4175 default:
4176 return isc::dhcp::Dhcp4Parser::make_STRING("t2-percent", driver.loc_);
4177 }
4178}
4179 YY_BREAK
4180case 117:
4182#line 1270 "dhcp4_lexer.ll"
4183{
4184 switch(driver.ctx_) {
4189 default:
4190 return isc::dhcp::Dhcp4Parser::make_STRING("cache-threshold", driver.loc_);
4191 }
4192}
4193 YY_BREAK
4194case 118:
4196#line 1281 "dhcp4_lexer.ll"
4197{
4198 switch(driver.ctx_) {
4203 default:
4204 return isc::dhcp::Dhcp4Parser::make_STRING("cache-max-age", driver.loc_);
4205 }
4206}
4207 YY_BREAK
4208case 119:
4210#line 1293 "dhcp4_lexer.ll"
4211{
4212 switch(driver.ctx_) {
4214 return isc::dhcp::Dhcp4Parser::make_LOGGERS(driver.loc_);
4215 default:
4216 return isc::dhcp::Dhcp4Parser::make_STRING("loggers", driver.loc_);
4217 }
4218}
4219 YY_BREAK
4220case 120:
4222#line 1302 "dhcp4_lexer.ll"
4223{
4224 switch(driver.ctx_) {
4227 default:
4228 return isc::dhcp::Dhcp4Parser::make_STRING("output_options", driver.loc_);
4229 }
4230}
4231 YY_BREAK
4232case 121:
4234#line 1311 "dhcp4_lexer.ll"
4235{
4236 switch(driver.ctx_) {
4239 default:
4240 return isc::dhcp::Dhcp4Parser::make_STRING("output-options", driver.loc_);
4241 }
4242}
4243 YY_BREAK
4244case 122:
4246#line 1320 "dhcp4_lexer.ll"
4247{
4248 switch(driver.ctx_) {
4250 return isc::dhcp::Dhcp4Parser::make_OUTPUT(driver.loc_);
4251 default:
4252 return isc::dhcp::Dhcp4Parser::make_STRING("output", driver.loc_);
4253 }
4254}
4255 YY_BREAK
4256case 123:
4258#line 1329 "dhcp4_lexer.ll"
4259{
4260 switch(driver.ctx_) {
4262 return isc::dhcp::Dhcp4Parser::make_DEBUGLEVEL(driver.loc_);
4263 default:
4264 return isc::dhcp::Dhcp4Parser::make_STRING("debuglevel", driver.loc_);
4265 }
4266}
4267 YY_BREAK
4268case 124:
4270#line 1338 "dhcp4_lexer.ll"
4271{
4272 switch(driver.ctx_) {
4274 return isc::dhcp::Dhcp4Parser::make_FLUSH(driver.loc_);
4275 default:
4276 return isc::dhcp::Dhcp4Parser::make_STRING("flush", driver.loc_);
4277 }
4278}
4279 YY_BREAK
4280case 125:
4282#line 1347 "dhcp4_lexer.ll"
4283{
4284 switch(driver.ctx_) {
4286 return isc::dhcp::Dhcp4Parser::make_MAXSIZE(driver.loc_);
4287 default:
4288 return isc::dhcp::Dhcp4Parser::make_STRING("maxsize", driver.loc_);
4289 }
4290}
4291 YY_BREAK
4292case 126:
4294#line 1356 "dhcp4_lexer.ll"
4295{
4296 switch(driver.ctx_) {
4298 return isc::dhcp::Dhcp4Parser::make_MAXVER(driver.loc_);
4299 default:
4300 return isc::dhcp::Dhcp4Parser::make_STRING("maxver", driver.loc_);
4301 }
4302}
4303 YY_BREAK
4304case 127:
4306#line 1365 "dhcp4_lexer.ll"
4307{
4308 switch(driver.ctx_) {
4310 return isc::dhcp::Dhcp4Parser::make_PATTERN(driver.loc_);
4311 default:
4312 return isc::dhcp::Dhcp4Parser::make_STRING("pattern", driver.loc_);
4313 }
4314}
4315 YY_BREAK
4316case 128:
4318#line 1374 "dhcp4_lexer.ll"
4319{
4320 switch(driver.ctx_) {
4322 return isc::dhcp::Dhcp4Parser::make_SEVERITY(driver.loc_);
4323 default:
4324 return isc::dhcp::Dhcp4Parser::make_STRING("severity", driver.loc_);
4325 }
4326}
4327 YY_BREAK
4328case 129:
4330#line 1383 "dhcp4_lexer.ll"
4331{
4332 switch(driver.ctx_) {
4336 default:
4337 return isc::dhcp::Dhcp4Parser::make_STRING("client-classes", driver.loc_);
4338 }
4339}
4340 YY_BREAK
4341case 130:
4343#line 1393 "dhcp4_lexer.ll"
4344{
4345 switch(driver.ctx_) {
4350 default:
4351 return isc::dhcp::Dhcp4Parser::make_STRING("require-client-classes", driver.loc_);
4352 }
4353}
4354 YY_BREAK
4355case 131:
4357#line 1404 "dhcp4_lexer.ll"
4358{
4359 switch(driver.ctx_) {
4365 default:
4366 return isc::dhcp::Dhcp4Parser::make_STRING("client-class", driver.loc_);
4367 }
4368}
4369 YY_BREAK
4370case 132:
4372#line 1416 "dhcp4_lexer.ll"
4373{
4374 switch(driver.ctx_) {
4376 return isc::dhcp::Dhcp4Parser::make_TEST(driver.loc_);
4377 default:
4378 return isc::dhcp::Dhcp4Parser::make_STRING("test", driver.loc_);
4379 }
4380}
4381 YY_BREAK
4382case 133:
4384#line 1425 "dhcp4_lexer.ll"
4385{
4386 switch(driver.ctx_) {
4389 default:
4390 return isc::dhcp::Dhcp4Parser::make_STRING("template-test", driver.loc_);
4391 }
4392}
4393 YY_BREAK
4394case 134:
4396#line 1434 "dhcp4_lexer.ll"
4397{
4398 switch(driver.ctx_) {
4401 default:
4402 return isc::dhcp::Dhcp4Parser::make_STRING("only-if-required", driver.loc_);
4403 }
4404}
4405 YY_BREAK
4406case 135:
4408#line 1443 "dhcp4_lexer.ll"
4409{
4410 switch(driver.ctx_) {
4414 default:
4415 return isc::dhcp::Dhcp4Parser::make_STRING("reservations", driver.loc_);
4416 }
4417}
4418 YY_BREAK
4419case 136:
4421#line 1453 "dhcp4_lexer.ll"
4422{
4423 switch(driver.ctx_) {
4426 return isc::dhcp::Dhcp4Parser::make_DUID(driver.loc_);
4427 default:
4428 return isc::dhcp::Dhcp4Parser::make_STRING("duid", driver.loc_);
4429 }
4430}
4431 YY_BREAK
4432case 137:
4434#line 1463 "dhcp4_lexer.ll"
4435{
4436 switch(driver.ctx_) {
4439 return isc::dhcp::Dhcp4Parser::make_HW_ADDRESS(driver.loc_);
4440 default:
4441 return isc::dhcp::Dhcp4Parser::make_STRING("hw-address", driver.loc_);
4442 }
4443}
4444 YY_BREAK
4445case 138:
4447#line 1473 "dhcp4_lexer.ll"
4448{
4449 switch(driver.ctx_) {
4452 return isc::dhcp::Dhcp4Parser::make_CLIENT_ID(driver.loc_);
4453 default:
4454 return isc::dhcp::Dhcp4Parser::make_STRING("client-id", driver.loc_);
4455 }
4456}
4457 YY_BREAK
4458case 139:
4460#line 1483 "dhcp4_lexer.ll"
4461{
4462 switch(driver.ctx_) {
4465 return isc::dhcp::Dhcp4Parser::make_CIRCUIT_ID(driver.loc_);
4466 default:
4467 return isc::dhcp::Dhcp4Parser::make_STRING("circuit-id", driver.loc_);
4468 }
4469}
4470 YY_BREAK
4471case 140:
4473#line 1493 "dhcp4_lexer.ll"
4474{
4475 switch(driver.ctx_) {
4478 return isc::dhcp::Dhcp4Parser::make_FLEX_ID(driver.loc_);
4479 default:
4480 return isc::dhcp::Dhcp4Parser::make_STRING("flex-id", driver.loc_);
4481 }
4482}
4483 YY_BREAK
4484case 141:
4486#line 1503 "dhcp4_lexer.ll"
4487{
4488 switch(driver.ctx_) {
4490 return isc::dhcp::Dhcp4Parser::make_HOSTNAME(driver.loc_);
4491 default:
4492 return isc::dhcp::Dhcp4Parser::make_STRING("hostname", driver.loc_);
4493 }
4494}
4495 YY_BREAK
4496case 142:
4498#line 1512 "dhcp4_lexer.ll"
4499{
4500 switch(driver.ctx_) {
4503 return isc::dhcp::Dhcp4Parser::make_SPACE(driver.loc_);
4504 default:
4505 return isc::dhcp::Dhcp4Parser::make_STRING("space", driver.loc_);
4506 }
4507}
4508 YY_BREAK
4509case 143:
4511#line 1522 "dhcp4_lexer.ll"
4512{
4513 switch(driver.ctx_) {
4515 return isc::dhcp::Dhcp4Parser::make_CSV_FORMAT(driver.loc_);
4516 default:
4517 return isc::dhcp::Dhcp4Parser::make_STRING("csv-format", driver.loc_);
4518 }
4519}
4520 YY_BREAK
4521case 144:
4523#line 1531 "dhcp4_lexer.ll"
4524{
4525 switch(driver.ctx_) {
4528 default:
4529 return isc::dhcp::Dhcp4Parser::make_STRING("record-types", driver.loc_);
4530 }
4531}
4532 YY_BREAK
4533case 145:
4535#line 1540 "dhcp4_lexer.ll"
4536{
4537 switch(driver.ctx_) {
4539 return isc::dhcp::Dhcp4Parser::make_ENCAPSULATE(driver.loc_);
4540 default:
4541 return isc::dhcp::Dhcp4Parser::make_STRING("encapsulate", driver.loc_);
4542 }
4543}
4544 YY_BREAK
4545case 146:
4547#line 1549 "dhcp4_lexer.ll"
4548{
4549 switch(driver.ctx_) {
4551 return isc::dhcp::Dhcp4Parser::make_ARRAY(driver.loc_);
4552 default:
4553 return isc::dhcp::Dhcp4Parser::make_STRING("array", driver.loc_);
4554 }
4555}
4556 YY_BREAK
4557case 147:
4559#line 1558 "dhcp4_lexer.ll"
4560{
4561 switch(driver.ctx_) {
4564 return isc::dhcp::Dhcp4Parser::make_RELAY(driver.loc_);
4565 default:
4566 return isc::dhcp::Dhcp4Parser::make_STRING("relay", driver.loc_);
4567 }
4568}
4569 YY_BREAK
4570case 148:
4572#line 1568 "dhcp4_lexer.ll"
4573{
4574 switch(driver.ctx_) {
4577 return isc::dhcp::Dhcp4Parser::make_IP_ADDRESS(driver.loc_);
4578 default:
4579 return isc::dhcp::Dhcp4Parser::make_STRING("ip-address", driver.loc_);
4580 }
4581}
4582 YY_BREAK
4583case 149:
4585#line 1578 "dhcp4_lexer.ll"
4586{
4587 switch(driver.ctx_) {
4590 default:
4591 return isc::dhcp::Dhcp4Parser::make_STRING("ip-addresses", driver.loc_);
4592 }
4593}
4594 YY_BREAK
4595case 150:
4597#line 1587 "dhcp4_lexer.ll"
4598{
4599 switch(driver.ctx_) {
4602 default:
4603 return isc::dhcp::Dhcp4Parser::make_STRING("hooks-libraries", driver.loc_);
4604 }
4605}
4606 YY_BREAK
4607case 151:
4609#line 1597 "dhcp4_lexer.ll"
4610{
4611 switch(driver.ctx_) {
4613 return isc::dhcp::Dhcp4Parser::make_PARAMETERS(driver.loc_);
4614 default:
4615 return isc::dhcp::Dhcp4Parser::make_STRING("parameters", driver.loc_);
4616 }
4617}
4618 YY_BREAK
4619case 152:
4621#line 1606 "dhcp4_lexer.ll"
4622{
4623 switch(driver.ctx_) {
4625 return isc::dhcp::Dhcp4Parser::make_LIBRARY(driver.loc_);
4626 default:
4627 return isc::dhcp::Dhcp4Parser::make_STRING("library", driver.loc_);
4628 }
4629}
4630 YY_BREAK
4631case 153:
4633#line 1615 "dhcp4_lexer.ll"
4634{
4635 switch(driver.ctx_) {
4638 default:
4639 return isc::dhcp::Dhcp4Parser::make_STRING("expired-leases-processing", driver.loc_);
4640 }
4641}
4642 YY_BREAK
4643case 154:
4645#line 1624 "dhcp4_lexer.ll"
4646{
4647 switch(driver.ctx_) {
4650 default:
4651 return isc::dhcp::Dhcp4Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
4652 }
4653}
4654 YY_BREAK
4655case 155:
4657#line 1633 "dhcp4_lexer.ll"
4658{
4659 switch(driver.ctx_) {
4662 default:
4663 return isc::dhcp::Dhcp4Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
4664 }
4665}
4666 YY_BREAK
4667case 156:
4669#line 1642 "dhcp4_lexer.ll"
4670{
4671 switch(driver.ctx_) {
4674 default:
4675 return isc::dhcp::Dhcp4Parser::make_STRING("hold-reclaimed-time", driver.loc_);
4676 }
4677}
4678 YY_BREAK
4679case 157:
4681#line 1651 "dhcp4_lexer.ll"
4682{
4683 switch(driver.ctx_) {
4686 default:
4687 return isc::dhcp::Dhcp4Parser::make_STRING("max-reclaim-leases", driver.loc_);
4688 }
4689}
4690 YY_BREAK
4691case 158:
4693#line 1660 "dhcp4_lexer.ll"
4694{
4695 switch(driver.ctx_) {
4698 default:
4699 return isc::dhcp::Dhcp4Parser::make_STRING("max-reclaim-time", driver.loc_);
4700 }
4701}
4702 YY_BREAK
4703case 159:
4705#line 1669 "dhcp4_lexer.ll"
4706{
4707 switch(driver.ctx_) {
4710 default:
4711 return isc::dhcp::Dhcp4Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
4712 }
4713}
4714 YY_BREAK
4715case 160:
4717#line 1678 "dhcp4_lexer.ll"
4718{
4719 switch(driver.ctx_) {
4722 default:
4723 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp4o6-port", driver.loc_);
4724 }
4725}
4726 YY_BREAK
4727case 161:
4729#line 1687 "dhcp4_lexer.ll"
4730{
4731 switch(driver.ctx_) {
4734 default:
4735 return isc::dhcp::Dhcp4Parser::make_STRING("multi-threading", driver.loc_);
4736 }
4737}
4738 YY_BREAK
4739case 162:
4741#line 1696 "dhcp4_lexer.ll"
4742{
4743 switch(driver.ctx_) {
4746 default:
4747 return isc::dhcp::Dhcp4Parser::make_STRING("enable-multi-threading", driver.loc_);
4748 }
4749}
4750 YY_BREAK
4751case 163:
4753#line 1705 "dhcp4_lexer.ll"
4754{
4755 switch(driver.ctx_) {
4758 default:
4759 return isc::dhcp::Dhcp4Parser::make_STRING("thread-pool-size", driver.loc_);
4760 }
4761}
4762 YY_BREAK
4763case 164:
4765#line 1714 "dhcp4_lexer.ll"
4766{
4767 switch(driver.ctx_) {
4770 default:
4771 return isc::dhcp::Dhcp4Parser::make_STRING("packet-queue-size", driver.loc_);
4772 }
4773}
4774 YY_BREAK
4775case 165:
4777#line 1723 "dhcp4_lexer.ll"
4778{
4779 switch(driver.ctx_) {
4782 default:
4783 return isc::dhcp::Dhcp4Parser::make_STRING("control-socket", driver.loc_);
4784 }
4785}
4786 YY_BREAK
4787case 166:
4789#line 1732 "dhcp4_lexer.ll"
4790{
4791 switch(driver.ctx_) {
4793 return isc::dhcp::Dhcp4Parser::make_SOCKET_TYPE(driver.loc_);
4794 default:
4795 return isc::dhcp::Dhcp4Parser::make_STRING("socket-type", driver.loc_);
4796 }
4797}
4798 YY_BREAK
4799case 167:
4801#line 1741 "dhcp4_lexer.ll"
4802{
4803 switch(driver.ctx_) {
4805 return isc::dhcp::Dhcp4Parser::make_SOCKET_NAME(driver.loc_);
4806 default:
4807 return isc::dhcp::Dhcp4Parser::make_STRING("socket-name", driver.loc_);
4808 }
4809}
4810 YY_BREAK
4811case 168:
4813#line 1750 "dhcp4_lexer.ll"
4814{
4815 switch(driver.ctx_) {
4818 default:
4819 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-queue-control", driver.loc_);
4820 }
4821}
4822 YY_BREAK
4823case 169:
4825#line 1759 "dhcp4_lexer.ll"
4826{
4827 switch(driver.ctx_) {
4830 default:
4831 return isc::dhcp::Dhcp4Parser::make_STRING("enable-queue", driver.loc_);
4832 }
4833}
4834 YY_BREAK
4835case 170:
4837#line 1768 "dhcp4_lexer.ll"
4838{
4839 switch(driver.ctx_) {
4841 return isc::dhcp::Dhcp4Parser::make_QUEUE_TYPE(driver.loc_);
4842 default:
4843 return isc::dhcp::Dhcp4Parser::make_STRING("queue-type", driver.loc_);
4844 }
4845}
4846 YY_BREAK
4847case 171:
4849#line 1777 "dhcp4_lexer.ll"
4850{
4851 switch(driver.ctx_) {
4853 return isc::dhcp::Dhcp4Parser::make_CAPACITY(driver.loc_);
4854 default:
4855 return isc::dhcp::Dhcp4Parser::make_STRING("capacity", driver.loc_);
4856 }
4857}
4858 YY_BREAK
4859case 172:
4861#line 1786 "dhcp4_lexer.ll"
4862{
4863 switch(driver.ctx_) {
4865 return isc::dhcp::Dhcp4Parser::make_DHCP_DDNS(driver.loc_);
4866 default:
4867 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-ddns", driver.loc_);
4868 }
4869}
4870 YY_BREAK
4871case 173:
4873#line 1795 "dhcp4_lexer.ll"
4874{
4875 switch(driver.ctx_) {
4878 default:
4879 return isc::dhcp::Dhcp4Parser::make_STRING("enable-updates", driver.loc_);
4880 }
4881}
4882 YY_BREAK
4883case 174:
4885#line 1804 "dhcp4_lexer.ll"
4886{
4887 switch(driver.ctx_) {
4890 default:
4891 return isc::dhcp::Dhcp4Parser::make_STRING("qualifying-suffix", driver.loc_);
4892 }
4893}
4894 YY_BREAK
4895case 175:
4897#line 1813 "dhcp4_lexer.ll"
4898{
4899 switch(driver.ctx_) {
4901 return isc::dhcp::Dhcp4Parser::make_SERVER_IP(driver.loc_);
4902 default:
4903 return isc::dhcp::Dhcp4Parser::make_STRING("server-ip", driver.loc_);
4904 }
4905}
4906 YY_BREAK
4907case 176:
4909#line 1822 "dhcp4_lexer.ll"
4910{
4911 switch(driver.ctx_) {
4913 return isc::dhcp::Dhcp4Parser::make_SERVER_PORT(driver.loc_);
4914 default:
4915 return isc::dhcp::Dhcp4Parser::make_STRING("server-port", driver.loc_);
4916 }
4917}
4918 YY_BREAK
4919case 177:
4921#line 1831 "dhcp4_lexer.ll"
4922{
4923 switch(driver.ctx_) {
4925 return isc::dhcp::Dhcp4Parser::make_SENDER_IP(driver.loc_);
4926 default:
4927 return isc::dhcp::Dhcp4Parser::make_STRING("sender-ip", driver.loc_);
4928 }
4929}
4930 YY_BREAK
4931case 178:
4933#line 1840 "dhcp4_lexer.ll"
4934{
4935 switch(driver.ctx_) {
4937 return isc::dhcp::Dhcp4Parser::make_SENDER_PORT(driver.loc_);
4938 default:
4939 return isc::dhcp::Dhcp4Parser::make_STRING("sender-port", driver.loc_);
4940 }
4941}
4942 YY_BREAK
4943case 179:
4945#line 1849 "dhcp4_lexer.ll"
4946{
4947 switch(driver.ctx_) {
4950 default:
4951 return isc::dhcp::Dhcp4Parser::make_STRING("max-queue-size", driver.loc_);
4952 }
4953}
4954 YY_BREAK
4955case 180:
4957#line 1858 "dhcp4_lexer.ll"
4958{
4959 switch(driver.ctx_) {
4962 default:
4963 return isc::dhcp::Dhcp4Parser::make_STRING("ncr-protocol", driver.loc_);
4964 }
4965}
4966 YY_BREAK
4967case 181:
4969#line 1867 "dhcp4_lexer.ll"
4970{
4971 switch(driver.ctx_) {
4973 return isc::dhcp::Dhcp4Parser::make_NCR_FORMAT(driver.loc_);
4974 default:
4975 return isc::dhcp::Dhcp4Parser::make_STRING("ncr-format", driver.loc_);
4976 }
4977}
4978 YY_BREAK
4979case 182:
4981#line 1876 "dhcp4_lexer.ll"
4982{
4983 switch(driver.ctx_) {
4986 default:
4987 return isc::dhcp::Dhcp4Parser::make_STRING("override-no-update", driver.loc_);
4988 }
4989}
4990 YY_BREAK
4991case 183:
4993#line 1885 "dhcp4_lexer.ll"
4994{
4995 switch(driver.ctx_) {
4998 default:
4999 return isc::dhcp::Dhcp4Parser::make_STRING("override-client-update", driver.loc_);
5000 }
5001}
5002 YY_BREAK
5003case 184:
5005#line 1894 "dhcp4_lexer.ll"
5006{
5007 switch(driver.ctx_) {
5010 default:
5011 return isc::dhcp::Dhcp4Parser::make_STRING("replace-client-name", driver.loc_);
5012 }
5013}
5014 YY_BREAK
5015case 185:
5017#line 1903 "dhcp4_lexer.ll"
5018{
5019 switch(driver.ctx_) {
5022 default:
5023 return isc::dhcp::Dhcp4Parser::make_STRING("generated-prefix", driver.loc_);
5024 }
5025}
5026 YY_BREAK
5027case 186:
5029#line 1912 "dhcp4_lexer.ll"
5030{
5031 switch(driver.ctx_) {
5037 default:
5038 return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-set", driver.loc_);
5039 }
5040}
5041 YY_BREAK
5042case 187:
5044#line 1924 "dhcp4_lexer.ll"
5045{
5046 switch(driver.ctx_) {
5052 default:
5053 return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-replacement", driver.loc_);
5054 }
5055}
5056 YY_BREAK
5057case 188:
5059#line 1936 "dhcp4_lexer.ll"
5060{
5061 /* dhcp-ddns value keywords are case insensitive */
5062 if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
5063 return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_);
5064 }
5065 std::string tmp(yytext+1);
5066 tmp.resize(tmp.size() - 1);
5067 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5068}
5069 YY_BREAK
5070case 189:
5072#line 1946 "dhcp4_lexer.ll"
5073{
5074 /* dhcp-ddns value keywords are case insensitive */
5075 if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
5076 return isc::dhcp::Dhcp4Parser::make_TCP(driver.loc_);
5077 }
5078 std::string tmp(yytext+1);
5079 tmp.resize(tmp.size() - 1);
5080 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5081}
5082 YY_BREAK
5083case 190:
5085#line 1956 "dhcp4_lexer.ll"
5086{
5087 /* dhcp-ddns value keywords are case insensitive */
5088 if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
5089 return isc::dhcp::Dhcp4Parser::make_JSON(driver.loc_);
5090 }
5091 std::string tmp(yytext+1);
5092 tmp.resize(tmp.size() - 1);
5093 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5094}
5095 YY_BREAK
5096case 191:
5098#line 1966 "dhcp4_lexer.ll"
5099{
5100 /* dhcp-ddns value keywords are case insensitive */
5103 }
5104 std::string tmp(yytext+1);
5105 tmp.resize(tmp.size() - 1);
5106 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5107}
5108 YY_BREAK
5109case 192:
5111#line 1976 "dhcp4_lexer.ll"
5112{
5113 /* dhcp-ddns value keywords are case insensitive */
5116 }
5117 std::string tmp(yytext+1);
5118 tmp.resize(tmp.size() - 1);
5119 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5120}
5121 YY_BREAK
5122case 193:
5124#line 1986 "dhcp4_lexer.ll"
5125{
5126 /* dhcp-ddns value keywords are case insensitive */
5128 return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
5129 }
5130 std::string tmp(yytext+1);
5131 tmp.resize(tmp.size() - 1);
5132 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5133}
5134 YY_BREAK
5135case 194:
5137#line 1996 "dhcp4_lexer.ll"
5138{
5139 /* dhcp-ddns value keywords are case insensitive */
5141 return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
5142 }
5143 std::string tmp(yytext+1);
5144 tmp.resize(tmp.size() - 1);
5145 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5146}
5147 YY_BREAK
5148case 195:
5150#line 2006 "dhcp4_lexer.ll"
5151{
5152 /* dhcp-ddns value keywords are case insensitive */
5154 return isc::dhcp::Dhcp4Parser::make_ALWAYS(driver.loc_);
5155 }
5156 std::string tmp(yytext+1);
5157 tmp.resize(tmp.size() - 1);
5158 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5159}
5160 YY_BREAK
5161case 196:
5163#line 2016 "dhcp4_lexer.ll"
5164{
5165 /* dhcp-ddns value keywords are case insensitive */
5168 }
5169 std::string tmp(yytext+1);
5170 tmp.resize(tmp.size() - 1);
5171 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5172}
5173 YY_BREAK
5174case 197:
5176#line 2026 "dhcp4_lexer.ll"
5177{
5178 switch(driver.ctx_) {
5181 default:
5182 return isc::dhcp::Dhcp4Parser::make_STRING("4o6-interface", driver.loc_);
5183 }
5184}
5185 YY_BREAK
5186case 198:
5188#line 2035 "dhcp4_lexer.ll"
5189{
5190 switch(driver.ctx_) {
5193 default:
5194 return isc::dhcp::Dhcp4Parser::make_STRING("4o6-interface-id", driver.loc_);
5195 }
5196}
5197 YY_BREAK
5198case 199:
5200#line 2044 "dhcp4_lexer.ll"
5201{
5202 switch(driver.ctx_) {
5205 default:
5206 return isc::dhcp::Dhcp4Parser::make_STRING("4o6-subnet", driver.loc_);
5207 }
5208}
5209 YY_BREAK
5210case 200:
5212#line 2053 "dhcp4_lexer.ll"
5213{
5214 switch(driver.ctx_) {
5217 default:
5218 return isc::dhcp::Dhcp4Parser::make_STRING("echo-client-id", driver.loc_);
5219 }
5220}
5221 YY_BREAK
5222case 201:
5224#line 2062 "dhcp4_lexer.ll"
5225{
5226 switch(driver.ctx_) {
5231 default:
5232 return isc::dhcp::Dhcp4Parser::make_STRING("match-client-id", driver.loc_);
5233 }
5234}
5235 YY_BREAK
5236case 202:
5238#line 2073 "dhcp4_lexer.ll"
5239{
5240 switch(driver.ctx_) {
5245 default:
5246 return isc::dhcp::Dhcp4Parser::make_STRING("authoritative", driver.loc_);
5247 }
5248}
5249 YY_BREAK
5250case 203:
5252#line 2084 "dhcp4_lexer.ll"
5253{
5254 switch(driver.ctx_) {
5260 return isc::dhcp::Dhcp4Parser::make_NEXT_SERVER(driver.loc_);
5261 default:
5262 return isc::dhcp::Dhcp4Parser::make_STRING("next-server", driver.loc_);
5263 }
5264}
5265 YY_BREAK
5266case 204:
5268#line 2097 "dhcp4_lexer.ll"
5269{
5270 switch(driver.ctx_) {
5277 default:
5278 return isc::dhcp::Dhcp4Parser::make_STRING("server-hostname", driver.loc_);
5279 }
5280}
5281 YY_BREAK
5282case 205:
5284#line 2110 "dhcp4_lexer.ll"
5285{
5286 switch(driver.ctx_) {
5293 default:
5294 return isc::dhcp::Dhcp4Parser::make_STRING("boot-file-name", driver.loc_);
5295 }
5296}
5297 YY_BREAK
5298case 206:
5300#line 2123 "dhcp4_lexer.ll"
5301{
5302 switch(driver.ctx_) {
5305 default:
5306 return isc::dhcp::Dhcp4Parser::make_STRING("early-global-reservations-lookup", driver.loc_);
5307 }
5308}
5309 YY_BREAK
5310case 207:
5312#line 2132 "dhcp4_lexer.ll"
5313{
5314 switch(driver.ctx_) {
5317 default:
5318 return isc::dhcp::Dhcp4Parser::make_STRING("ip-reservations-unique", driver.loc_);
5319 }
5320}
5321 YY_BREAK
5322case 208:
5324#line 2141 "dhcp4_lexer.ll"
5325{
5326 switch(driver.ctx_) {
5329 default:
5330 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-lookup-first", driver.loc_);
5331 }
5332}
5333 YY_BREAK
5334case 209:
5336#line 2150 "dhcp4_lexer.ll"
5337{
5338 switch(driver.ctx_) {
5341 default:
5342 return isc::dhcp::Dhcp4Parser::make_STRING("compatibility", driver.loc_);
5343 }
5344}
5345 YY_BREAK
5346case 210:
5348#line 2159 "dhcp4_lexer.ll"
5349{
5350 switch(driver.ctx_) {
5353 default:
5354 return isc::dhcp::Dhcp4Parser::make_STRING("lenient-option-parsing", driver.loc_);
5355 }
5356}
5357 YY_BREAK
5358case 211:
5360#line 2168 "dhcp4_lexer.ll"
5361{
5362 switch(driver.ctx_) {
5365 default:
5366 return isc::dhcp::Dhcp4Parser::make_STRING("ignore-dhcp-server-identifier", driver.loc_);
5367 }
5368}
5369 YY_BREAK
5370case 212:
5372#line 2177 "dhcp4_lexer.ll"
5373{
5374 switch(driver.ctx_) {
5377 default:
5378 return isc::dhcp::Dhcp4Parser::make_STRING("ignore-rai-link-selection", driver.loc_);
5379 }
5380}
5381 YY_BREAK
5382case 213:
5384#line 2186 "dhcp4_lexer.ll"
5385{
5386 switch(driver.ctx_) {
5389 default:
5390 return isc::dhcp::Dhcp4Parser::make_STRING("exclude-first-last-24", driver.loc_);
5391 }
5392}
5393 YY_BREAK
5394case 214:
5396#line 2195 "dhcp4_lexer.ll"
5397{
5398 switch(driver.ctx_) {
5403 return isc::dhcp::Dhcp4Parser::make_OFFER_LFT(driver.loc_);
5404 default:
5405 return isc::dhcp::Dhcp4Parser::make_STRING("offer-lifetime", driver.loc_);
5406 }
5407}
5408 YY_BREAK
5409case 215:
5411#line 2207 "dhcp4_lexer.ll"
5412{
5413 /* A string has been matched. It contains the actual string and single quotes.
5414 We need to get those quotes out of the way and just use its content, e.g.
5415 for 'foo' we should get foo */
5416 std::string raw(yytext+1);
5417 size_t len = raw.size() - 1;
5418 raw.resize(len);
5419 std::string decoded;
5420 decoded.reserve(len);
5421 for (size_t pos = 0; pos < len; ++pos) {
5422 int b = 0;
5423 char c = raw[pos];
5424 switch (c) {
5425 case '"':
5426 /* impossible condition */
5427 driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
5428 break;
5429 case '\\':
5430 ++pos;
5431 if (pos >= len) {
5432 /* impossible condition */
5433 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
5434 }
5435 c = raw[pos];
5436 switch (c) {
5437 case '"':
5438 case '\\':
5439 case '/':
5440 decoded.push_back(c);
5441 break;
5442 case 'b':
5443 decoded.push_back('\b');
5444 break;
5445 case 'f':
5446 decoded.push_back('\f');
5447 break;
5448 case 'n':
5449 decoded.push_back('\n');
5450 break;
5451 case 'r':
5452 decoded.push_back('\r');
5453 break;
5454 case 't':
5455 decoded.push_back('\t');
5456 break;
5457 case 'u':
5458 /* support only \u0000 to \u00ff */
5459 ++pos;
5460 if (pos + 4 > len) {
5461 /* impossible condition */
5462 driver.error(driver.loc_,
5463 "Overflow unicode escape in \"" + raw + "\"");
5464 }
5465 if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
5466 driver.error(driver.loc_,
5467 "Unsupported unicode escape in \"" + raw + "\"",
5468 pos + 1);
5469 }
5470 pos += 2;
5471 c = raw[pos];
5472 if ((c >= '0') && (c <= '9')) {
5473 b = (c - '0') << 4;
5474 } else if ((c >= 'A') && (c <= 'F')) {
5475 b = (c - 'A' + 10) << 4;
5476 } else if ((c >= 'a') && (c <= 'f')) {
5477 b = (c - 'a' + 10) << 4;
5478 } else {
5479 /* impossible condition */
5480 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5481 }
5482 pos++;
5483 c = raw[pos];
5484 if ((c >= '0') && (c <= '9')) {
5485 b |= c - '0';
5486 } else if ((c >= 'A') && (c <= 'F')) {
5487 b |= c - 'A' + 10;
5488 } else if ((c >= 'a') && (c <= 'f')) {
5489 b |= c - 'a' + 10;
5490 } else {
5491 /* impossible condition */
5492 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5493 }
5494 decoded.push_back(static_cast<char>(b & 0xff));
5495 break;
5496 default:
5497 /* impossible condition */
5498 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5499 }
5500 break;
5501 default:
5502 if ((c >= 0) && (c < 0x20)) {
5503 /* impossible condition */
5504 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5505 }
5506 decoded.push_back(c);
5507 }
5508 }
5509
5510 return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_);
5511}
5512 YY_BREAK
5513case 216:
5514/* rule 216 can match eol */
5516#line 2308 "dhcp4_lexer.ll"
5517{
5518 /* Bad string with a forbidden control character inside */
5519 std::string raw(yytext+1);
5520 size_t len = raw.size() - 1;
5521 size_t pos = 0;
5522 for (; pos < len; ++pos) {
5523 char c = raw[pos];
5524 if ((c >= 0) && (c < 0x20)) {
5525 break;
5526 }
5527 }
5528 driver.error(driver.loc_,
5529 "Invalid control in " + std::string(yytext),
5530 pos + 1);
5531}
5532 YY_BREAK
5533case 217:
5534/* rule 217 can match eol */
5536#line 2324 "dhcp4_lexer.ll"
5537{
5538 /* Bad string with a bad escape inside */
5539 std::string raw(yytext+1);
5540 size_t len = raw.size() - 1;
5541 size_t pos = 0;
5542 bool found = false;
5543 for (; pos < len; ++pos) {
5544 if (found) {
5545 break;
5546 }
5547 char c = raw[pos];
5548 if (c == '\\') {
5549 ++pos;
5550 c = raw[pos];
5551 switch (c) {
5552 case '"':
5553 case '\\':
5554 case '/':
5555 case 'b':
5556 case 'f':
5557 case 'n':
5558 case 'r':
5559 case 't':
5560 break;
5561 case 'u':
5562 if ((pos + 4 > len) ||
5563 !std::isxdigit(raw[pos + 1]) ||
5564 !std::isxdigit(raw[pos + 2]) ||
5565 !std::isxdigit(raw[pos + 3]) ||
5566 !std::isxdigit(raw[pos + 4])) {
5567 found = true;
5568 }
5569 break;
5570 default:
5571 found = true;
5572 break;
5573 }
5574 }
5575 }
5576 /* The rule stops on the first " including on \" so add ... in this case */
5577 std::string trailer = "";
5578 if (raw[len - 1] == '\\') {
5579 trailer = "...";
5580 }
5581 driver.error(driver.loc_,
5582 "Bad escape in " + std::string(yytext) + trailer,
5583 pos);
5584}
5585 YY_BREAK
5586case 218:
5588#line 2373 "dhcp4_lexer.ll"
5589{
5590 /* Bad string with an open escape at the end */
5591 std::string raw(yytext+1);
5592 driver.error(driver.loc_,
5593 "Overflow escape in " + std::string(yytext),
5594 raw.size() + 1);
5595}
5596 YY_BREAK
5597case 219:
5599#line 2381 "dhcp4_lexer.ll"
5600{
5601 /* Bad string with an open unicode escape at the end */
5602 std::string raw(yytext+1);
5603 size_t pos = raw.size() - 1;
5604 for (; pos > 0; --pos) {
5605 char c = raw[pos];
5606 if (c == 'u') {
5607 break;
5608 }
5609 }
5610 driver.error(driver.loc_,
5611 "Overflow unicode escape in " + std::string(yytext),
5612 pos + 1);
5613}
5614 YY_BREAK
5615case 220:
5617#line 2396 "dhcp4_lexer.ll"
5618{ return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
5619 YY_BREAK
5620case 221:
5622#line 2397 "dhcp4_lexer.ll"
5623{ return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
5624 YY_BREAK
5625case 222:
5627#line 2398 "dhcp4_lexer.ll"
5628{ return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
5629 YY_BREAK
5630case 223:
5632#line 2399 "dhcp4_lexer.ll"
5633{ return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
5634 YY_BREAK
5635case 224:
5637#line 2400 "dhcp4_lexer.ll"
5638{ return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
5639 YY_BREAK
5640case 225:
5642#line 2401 "dhcp4_lexer.ll"
5643{ return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
5644 YY_BREAK
5645case 226:
5647#line 2403 "dhcp4_lexer.ll"
5648{
5649 /* An integer was found. */
5650 std::string tmp(yytext);
5651 int64_t integer = 0;
5652 try {
5653 /* In substring we want to use negative values (e.g. -1).
5654 In enterprise-id we need to use values up to 0xffffffff.
5655 To cover both of those use cases, we need at least
5656 int64_t. */
5657 integer = boost::lexical_cast<int64_t>(tmp);
5658 } catch (const boost::bad_lexical_cast &) {
5659 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5660 }
5661
5662 /* The parser needs the string form as double conversion is no lossless */
5663 return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_);
5664}
5665 YY_BREAK
5666case 227:
5668#line 2421 "dhcp4_lexer.ll"
5669{
5670 /* A floating point was found. */
5671 std::string tmp(yytext);
5672 double fp = 0.0;
5673 try {
5674 fp = boost::lexical_cast<double>(tmp);
5675 } catch (const boost::bad_lexical_cast &) {
5676 driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
5677 }
5678
5679 return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_);
5680}
5681 YY_BREAK
5682case 228:
5684#line 2434 "dhcp4_lexer.ll"
5685{
5686 string tmp(yytext);
5687 return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
5688}
5689 YY_BREAK
5690case 229:
5692#line 2439 "dhcp4_lexer.ll"
5693{
5694 return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
5695}
5696 YY_BREAK
5697case 230:
5699#line 2443 "dhcp4_lexer.ll"
5700driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
5701 YY_BREAK
5702case 231:
5704#line 2445 "dhcp4_lexer.ll"
5705driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
5706 YY_BREAK
5707case 232:
5709#line 2447 "dhcp4_lexer.ll"
5710driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
5711 YY_BREAK
5712case 233:
5714#line 2449 "dhcp4_lexer.ll"
5715driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
5716 YY_BREAK
5717case YY_STATE_EOF(INITIAL):
5718#line 2451 "dhcp4_lexer.ll"
5719{
5720 if (driver.states_.empty()) {
5721 return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
5722 }
5723 driver.loc_ = driver.locs_.back();
5724 driver.locs_.pop_back();
5725 driver.file_ = driver.files_.back();
5726 driver.files_.pop_back();
5727 if (driver.sfile_) {
5728 fclose(driver.sfile_);
5729 driver.sfile_ = 0;
5730 }
5731 if (!driver.sfiles_.empty()) {
5732 driver.sfile_ = driver.sfiles_.back();
5733 driver.sfiles_.pop_back();
5734 }
5735 parser4__delete_buffer(YY_CURRENT_BUFFER);
5736 parser4__switch_to_buffer(driver.states_.back());
5737 driver.states_.pop_back();
5738
5739 BEGIN(DIR_EXIT);
5740}
5741 YY_BREAK
5742case 234:
5744#line 2474 "dhcp4_lexer.ll"
5745ECHO;
5746 YY_BREAK
5747#line 5747 "dhcp4_lexer.cc"
5748
5749 case YY_END_OF_BUFFER:
5750 {
5751 /* Amount of text matched not including the EOB char. */
5752 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5753
5754 /* Undo the effects of YY_DO_BEFORE_ACTION. */
5755 *yy_cp = (yy_hold_char);
5757
5758 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5759 {
5760 /* We're scanning a new file or input source. It's
5761 * possible that this happened because the user
5762 * just pointed yyin at a new source and called
5763 * yylex(). If so, then we have to assure
5764 * consistency between YY_CURRENT_BUFFER and our
5765 * globals. Here is the right place to do so, because
5766 * this is the first action (other than possibly a
5767 * back-up) that will match for the new input source.
5768 */
5769 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5770/* %if-c-only */
5771 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
5772/* %endif */
5773/* %if-c++-only */
5774/* %endif */
5775 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5776 }
5777
5778 /* Note that here we test for yy_c_buf_p "<=" to the position
5779 * of the first EOB in the buffer, since yy_c_buf_p will
5780 * already have been incremented past the NUL character
5781 * (since all states make transitions on EOB to the
5782 * end-of-buffer state). Contrast this with the test
5783 * in input().
5784 */
5785 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5786 { /* This was really a NUL. */
5787 yy_state_type yy_next_state;
5788
5789 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5790
5791 yy_current_state = yy_get_previous_state( );
5792
5793 /* Okay, we're now positioned to make the NUL
5794 * transition. We couldn't have
5795 * yy_get_previous_state() go ahead and do it
5796 * for us because it doesn't know how to deal
5797 * with the possibility of jamming (and we don't
5798 * want to build jamming into it because then it
5799 * will run more slowly).
5800 */
5801
5802 yy_next_state = yy_try_NUL_trans( yy_current_state );
5803
5805
5806 if ( yy_next_state )
5807 {
5808 /* Consume the NUL. */
5809 yy_cp = ++(yy_c_buf_p);
5810 yy_current_state = yy_next_state;
5811 goto yy_match;
5812 }
5813
5814 else
5815 {
5816/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
5817 yy_cp = (yy_last_accepting_cpos);
5818 yy_current_state = (yy_last_accepting_state);
5819 goto yy_find_action;
5820 }
5821 }
5822
5823 else switch ( yy_get_next_buffer( ) )
5824 {
5826 {
5827 (yy_did_buffer_switch_on_eof) = 0;
5828
5829 if ( yywrap( ) )
5830 {
5831 /* Note: because we've taken care in
5832 * yy_get_next_buffer() to have set up
5833 * yytext, we can now set up
5834 * yy_c_buf_p so that if some total
5835 * hoser (like flex itself) wants to
5836 * call the scanner after we return the
5837 * YY_NULL, it'll still work - another
5838 * YY_NULL will get returned.
5839 */
5840 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5841
5843 goto do_action;
5844 }
5845
5846 else
5847 {
5848 if ( ! (yy_did_buffer_switch_on_eof) )
5850 }
5851 break;
5852 }
5853
5855 (yy_c_buf_p) =
5856 (yytext_ptr) + yy_amount_of_matched_text;
5857
5858 yy_current_state = yy_get_previous_state( );
5859
5860 yy_cp = (yy_c_buf_p);
5862 goto yy_match;
5863
5864 case EOB_ACT_LAST_MATCH:
5865 (yy_c_buf_p) =
5866 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5867
5868 yy_current_state = yy_get_previous_state( );
5869
5870 yy_cp = (yy_c_buf_p);
5872 goto yy_find_action;
5873 }
5874 break;
5875 }
5876
5877 default:
5879 "fatal flex scanner internal error--no action found" );
5880 } /* end of action switch */
5881 } /* end of scanning one token */
5882 } /* end of user's declarations */
5883} /* end of yylex */
5884/* %ok-for-header */
5885
5886/* %if-c++-only */
5887/* %not-for-header */
5888/* %ok-for-header */
5889
5890/* %endif */
5891
5892/* yy_get_next_buffer - try to read in a new buffer
5893 *
5894 * Returns a code representing an action:
5895 * EOB_ACT_LAST_MATCH -
5896 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5897 * EOB_ACT_END_OF_FILE - end of file
5898 */
5899/* %if-c-only */
5900static int yy_get_next_buffer (void)
5901/* %endif */
5902/* %if-c++-only */
5903/* %endif */
5904{
5905 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5906 char *source = (yytext_ptr);
5907 int number_to_move, i;
5908 int ret_val;
5909
5910 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
5912 "fatal flex scanner internal error--end of buffer missed" );
5913
5914 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
5915 { /* Don't try to fill the buffer, so this is an EOF. */
5916 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
5917 {
5918 /* We matched a single character, the EOB, so
5919 * treat this as a final EOF.
5920 */
5921 return EOB_ACT_END_OF_FILE;
5922 }
5923
5924 else
5925 {
5926 /* We matched some text prior to the EOB, first
5927 * process it.
5928 */
5929 return EOB_ACT_LAST_MATCH;
5930 }
5931 }
5932
5933 /* Try to read more data. */
5934
5935 /* First move last chars to start of buffer. */
5936 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
5937
5938 for ( i = 0; i < number_to_move; ++i )
5939 *(dest++) = *(source++);
5940
5941 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
5942 /* don't do the read, it's not guaranteed to return an EOF,
5943 * just force an EOF
5944 */
5945 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
5946
5947 else
5948 {
5949 int num_to_read =
5950 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
5951
5952 while ( num_to_read <= 0 )
5953 { /* Not enough room in the buffer - grow it. */
5954
5955 /* just a shorter name for the current buffer */
5957
5958 int yy_c_buf_p_offset =
5959 (int) ((yy_c_buf_p) - b->yy_ch_buf);
5960
5961 if ( b->yy_is_our_buffer )
5962 {
5963 int new_size = b->yy_buf_size * 2;
5964
5965 if ( new_size <= 0 )
5966 b->yy_buf_size += b->yy_buf_size / 8;
5967 else
5968 b->yy_buf_size *= 2;
5969
5970 b->yy_ch_buf = (char *)
5971 /* Include room in for 2 EOB chars. */
5972 yyrealloc( (void *) b->yy_ch_buf,
5973 (yy_size_t) (b->yy_buf_size + 2) );
5974 }
5975 else
5976 /* Can't grow it, we don't own it. */
5977 b->yy_ch_buf = NULL;
5978
5979 if ( ! b->yy_ch_buf )
5981 "fatal error - scanner input buffer overflow" );
5982
5983 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
5984
5985 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
5986 number_to_move - 1;
5987
5988 }
5989
5990 if ( num_to_read > YY_READ_BUF_SIZE )
5991 num_to_read = YY_READ_BUF_SIZE;
5992
5993 /* Read in more data. */
5994 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
5995 (yy_n_chars), num_to_read );
5996
5997 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5998 }
5999
6000 if ( (yy_n_chars) == 0 )
6001 {
6002 if ( number_to_move == YY_MORE_ADJ )
6003 {
6004 ret_val = EOB_ACT_END_OF_FILE;
6005 yyrestart( yyin );
6006 }
6007
6008 else
6009 {
6010 ret_val = EOB_ACT_LAST_MATCH;
6011 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
6013 }
6014 }
6015
6016 else
6017 ret_val = EOB_ACT_CONTINUE_SCAN;
6018
6019 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
6020 /* Extend the array by 50%, plus the number we really need. */
6021 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
6022 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
6023 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
6024 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
6025 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
6026 /* "- 2" to take care of EOB's */
6027 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
6028 }
6029
6030 (yy_n_chars) += number_to_move;
6031 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
6032 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
6033
6034 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
6035
6036 return ret_val;
6037}
6038
6039/* yy_get_previous_state - get the state just before the EOB char was reached */
6040
6041/* %if-c-only */
6042/* %not-for-header */
6043 static yy_state_type yy_get_previous_state (void)
6044/* %endif */
6045/* %if-c++-only */
6046/* %endif */
6047{
6048 yy_state_type yy_current_state;
6049 char *yy_cp;
6050
6051/* %% [15.0] code to get the start state into yy_current_state goes here */
6052 yy_current_state = (yy_start);
6053
6054 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
6055 {
6056/* %% [16.0] code to find the next state goes here */
6057 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
6058 if ( yy_accept[yy_current_state] )
6059 {
6060 (yy_last_accepting_state) = yy_current_state;
6061 (yy_last_accepting_cpos) = yy_cp;
6062 }
6063 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6064 {
6065 yy_current_state = (int) yy_def[yy_current_state];
6066 if ( yy_current_state >= 2356 )
6067 yy_c = yy_meta[yy_c];
6068 }
6069 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6070 }
6071
6072 return yy_current_state;
6073}
6074
6075/* yy_try_NUL_trans - try to make a transition on the NUL character
6076 *
6077 * synopsis
6078 * next_state = yy_try_NUL_trans( current_state );
6079 */
6080/* %if-c-only */
6081 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
6082/* %endif */
6083/* %if-c++-only */
6084/* %endif */
6085{
6086 int yy_is_jam;
6087 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
6088 char *yy_cp = (yy_c_buf_p);
6089
6090 YY_CHAR yy_c = 1;
6091 if ( yy_accept[yy_current_state] )
6092 {
6093 (yy_last_accepting_state) = yy_current_state;
6094 (yy_last_accepting_cpos) = yy_cp;
6095 }
6096 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
6097 {
6098 yy_current_state = (int) yy_def[yy_current_state];
6099 if ( yy_current_state >= 2356 )
6100 yy_c = yy_meta[yy_c];
6101 }
6102 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
6103 yy_is_jam = (yy_current_state == 2355);
6104
6105 return yy_is_jam ? 0 : yy_current_state;
6106}
6107
6108#ifndef YY_NO_UNPUT
6109/* %if-c-only */
6110
6111/* %endif */
6112#endif
6113
6114/* %if-c-only */
6115#ifndef YY_NO_INPUT
6116#ifdef __cplusplus
6117 static int yyinput (void)
6118#else
6119 static int input (void)
6120#endif
6121
6122/* %endif */
6123/* %if-c++-only */
6124/* %endif */
6125{
6126 int c;
6127
6128 *(yy_c_buf_p) = (yy_hold_char);
6129
6130 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
6131 {
6132 /* yy_c_buf_p now points to the character we want to return.
6133 * If this occurs *before* the EOB characters, then it's a
6134 * valid NUL; if not, then we've hit the end of the buffer.
6135 */
6136 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
6137 /* This was really a NUL. */
6138 *(yy_c_buf_p) = '\0';
6139
6140 else
6141 { /* need more input */
6142 int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
6143 ++(yy_c_buf_p);
6144
6145 switch ( yy_get_next_buffer( ) )
6146 {
6147 case EOB_ACT_LAST_MATCH:
6148 /* This happens because yy_g_n_b()
6149 * sees that we've accumulated a
6150 * token and flags that we need to
6151 * try matching the token before
6152 * proceeding. But for input(),
6153 * there's no matching to consider.
6154 * So convert the EOB_ACT_LAST_MATCH
6155 * to EOB_ACT_END_OF_FILE.
6156 */
6157
6158 /* Reset buffer status. */
6159 yyrestart( yyin );
6160
6161 /*FALLTHROUGH*/
6162
6164 {
6165 if ( yywrap( ) )
6166 return 0;
6167
6168 if ( ! (yy_did_buffer_switch_on_eof) )
6170#ifdef __cplusplus
6171 return yyinput();
6172#else
6173 return input();
6174#endif
6175 }
6176
6178 (yy_c_buf_p) = (yytext_ptr) + offset;
6179 break;
6180 }
6181 }
6182 }
6183
6184 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
6185 *(yy_c_buf_p) = '\0'; /* preserve yytext */
6186 (yy_hold_char) = *++(yy_c_buf_p);
6187
6188/* %% [19.0] update BOL and yylineno */
6189
6190 return c;
6191}
6192/* %if-c-only */
6193#endif /* ifndef YY_NO_INPUT */
6194/* %endif */
6195
6201/* %if-c-only */
6202 void yyrestart (FILE * input_file )
6203/* %endif */
6204/* %if-c++-only */
6205/* %endif */
6206{
6207
6208 if ( ! YY_CURRENT_BUFFER ){
6212 }
6213
6214 yy_init_buffer( YY_CURRENT_BUFFER, input_file );
6216}
6217
6218/* %if-c++-only */
6219/* %endif */
6220
6225/* %if-c-only */
6227/* %endif */
6228/* %if-c++-only */
6229/* %endif */
6230{
6231
6232 /* TODO. We should be able to replace this entire function body
6233 * with
6234 * yypop_buffer_state();
6235 * yypush_buffer_state(new_buffer);
6236 */
6238 if ( YY_CURRENT_BUFFER == new_buffer )
6239 return;
6240
6241 if ( YY_CURRENT_BUFFER )
6242 {
6243 /* Flush out information for old buffer. */
6244 *(yy_c_buf_p) = (yy_hold_char);
6245 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6246 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6247 }
6248
6249 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6251
6252 /* We don't actually know whether we did this switch during
6253 * EOF (yywrap()) processing, but the only time this flag
6254 * is looked at is after yywrap() is called, so it's safe
6255 * to go ahead and always set it.
6256 */
6257 (yy_did_buffer_switch_on_eof) = 1;
6258}
6259
6260/* %if-c-only */
6261static void yy_load_buffer_state (void)
6262/* %endif */
6263/* %if-c++-only */
6264/* %endif */
6265{
6266 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6267 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6268/* %if-c-only */
6269 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6270/* %endif */
6271/* %if-c++-only */
6272/* %endif */
6273 (yy_hold_char) = *(yy_c_buf_p);
6274}
6275
6282/* %if-c-only */
6283 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
6284/* %endif */
6285/* %if-c++-only */
6286/* %endif */
6287{
6289
6290 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6291 if ( ! b )
6292 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6293
6294 b->yy_buf_size = size;
6295
6296 /* yy_ch_buf has to be 2 characters longer than the size given because
6297 * we need to put in 2 end-of-buffer characters.
6298 */
6299 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
6300 if ( ! b->yy_ch_buf )
6301 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6302
6303 b->yy_is_our_buffer = 1;
6304
6305 yy_init_buffer( b, file );
6306
6307 return b;
6308}
6309
6310/* %if-c++-only */
6311/* %endif */
6312
6317/* %if-c-only */
6319/* %endif */
6320/* %if-c++-only */
6321/* %endif */
6322{
6323
6324 if ( ! b )
6325 return;
6326
6327 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6329
6330 if ( b->yy_is_our_buffer )
6331 yyfree( (void *) b->yy_ch_buf );
6332
6333 yyfree( (void *) b );
6334}
6335
6336/* Initializes or reinitializes a buffer.
6337 * This function is sometimes called more than once on the same buffer,
6338 * such as during a yyrestart() or at EOF.
6339 */
6340/* %if-c-only */
6341 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
6342/* %endif */
6343/* %if-c++-only */
6344/* %endif */
6345
6346{
6347 int oerrno = errno;
6348
6349 yy_flush_buffer( b );
6350
6351/* %if-c-only */
6352 b->yy_input_file = file;
6353/* %endif */
6354/* %if-c++-only */
6355/* %endif */
6356 b->yy_fill_buffer = 1;
6357
6358 /* If b is the current buffer, then yy_init_buffer was _probably_
6359 * called from yyrestart() or through yy_get_next_buffer.
6360 * In that case, we don't want to reset the lineno or column.
6361 */
6362 if (b != YY_CURRENT_BUFFER){
6363 b->yy_bs_lineno = 1;
6364 b->yy_bs_column = 0;
6365 }
6366
6367/* %if-c-only */
6368
6369 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
6370
6371/* %endif */
6372/* %if-c++-only */
6373/* %endif */
6374 errno = oerrno;
6375}
6376
6381/* %if-c-only */
6383/* %endif */
6384/* %if-c++-only */
6385/* %endif */
6386{
6387 if ( ! b )
6388 return;
6389
6390 b->yy_n_chars = 0;
6391
6392 /* We always need two end-of-buffer characters. The first causes
6393 * a transition to the end-of-buffer state. The second causes
6394 * a jam in that state.
6395 */
6398
6399 b->yy_buf_pos = &b->yy_ch_buf[0];
6400
6401 b->yy_at_bol = 1;
6403
6404 if ( b == YY_CURRENT_BUFFER )
6406}
6407
6408/* %if-c-or-c++ */
6415/* %if-c-only */
6417/* %endif */
6418/* %if-c++-only */
6419/* %endif */
6420{
6421 if (new_buffer == NULL)
6422 return;
6423
6425
6426 /* This block is copied from yy_switch_to_buffer. */
6427 if ( YY_CURRENT_BUFFER )
6428 {
6429 /* Flush out information for old buffer. */
6430 *(yy_c_buf_p) = (yy_hold_char);
6431 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6432 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6433 }
6434
6435 /* Only push if top exists. Otherwise, replace top. */
6437 (yy_buffer_stack_top)++;
6438 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6439
6440 /* copied from yy_switch_to_buffer. */
6442 (yy_did_buffer_switch_on_eof) = 1;
6443}
6444/* %endif */
6445
6446/* %if-c-or-c++ */
6451/* %if-c-only */
6452void yypop_buffer_state (void)
6453/* %endif */
6454/* %if-c++-only */
6455/* %endif */
6456{
6457 if (!YY_CURRENT_BUFFER)
6458 return;
6459
6462 if ((yy_buffer_stack_top) > 0)
6463 --(yy_buffer_stack_top);
6464
6465 if (YY_CURRENT_BUFFER) {
6467 (yy_did_buffer_switch_on_eof) = 1;
6468 }
6469}
6470/* %endif */
6471
6472/* %if-c-or-c++ */
6473/* Allocates the stack if it does not exist.
6474 * Guarantees space for at least one push.
6475 */
6476/* %if-c-only */
6477static void yyensure_buffer_stack (void)
6478/* %endif */
6479/* %if-c++-only */
6480/* %endif */
6481{
6482 yy_size_t num_to_alloc;
6483
6484 if (!(yy_buffer_stack)) {
6485
6486 /* First allocation is just for 2 elements, since we don't know if this
6487 * scanner will even need a stack. We use 2 instead of 1 to avoid an
6488 * immediate realloc on the next call.
6489 */
6490 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
6491 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
6492 (num_to_alloc * sizeof(struct yy_buffer_state*)
6493 );
6494 if ( ! (yy_buffer_stack) )
6495 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6496
6497 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6498
6499 (yy_buffer_stack_max) = num_to_alloc;
6500 (yy_buffer_stack_top) = 0;
6501 return;
6502 }
6503
6504 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6505
6506 /* Increase the buffer to prepare for a possible push. */
6507 yy_size_t grow_size = 8 /* arbitrary grow size */;
6508
6509 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6510 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
6511 ((yy_buffer_stack),
6512 num_to_alloc * sizeof(struct yy_buffer_state*)
6513 );
6514 if ( ! (yy_buffer_stack) )
6515 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6516
6517 /* zero only the new slots.*/
6518 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6519 (yy_buffer_stack_max) = num_to_alloc;
6520 }
6521}
6522/* %endif */
6523
6524/* %if-c-only */
6532{
6534
6535 if ( size < 2 ||
6536 base[size-2] != YY_END_OF_BUFFER_CHAR ||
6537 base[size-1] != YY_END_OF_BUFFER_CHAR )
6538 /* They forgot to leave room for the EOB's. */
6539 return NULL;
6540
6541 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6542 if ( ! b )
6543 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
6544
6545 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
6546 b->yy_buf_pos = b->yy_ch_buf = base;
6547 b->yy_is_our_buffer = 0;
6548 b->yy_input_file = NULL;
6549 b->yy_n_chars = b->yy_buf_size;
6550 b->yy_is_interactive = 0;
6551 b->yy_at_bol = 1;
6552 b->yy_fill_buffer = 0;
6554
6556
6557 return b;
6558}
6559/* %endif */
6560
6561/* %if-c-only */
6570YY_BUFFER_STATE yy_scan_string (const char * yystr )
6571{
6572
6573 return yy_scan_bytes( yystr, (int) strlen(yystr) );
6574}
6575/* %endif */
6576
6577/* %if-c-only */
6585YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
6586{
6588 char *buf;
6589 yy_size_t n;
6590 int i;
6591
6592 /* Get memory for full buffer, including space for trailing EOB's. */
6593 n = (yy_size_t) (_yybytes_len + 2);
6594 buf = (char *) yyalloc( n );
6595 if ( ! buf )
6596 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
6597
6598 for ( i = 0; i < _yybytes_len; ++i )
6599 buf[i] = yybytes[i];
6600
6601 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6602
6603 b = yy_scan_buffer( buf, n );
6604 if ( ! b )
6605 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
6606
6607 /* It's okay to grow etc. this buffer, and we should throw it
6608 * away when we're done.
6609 */
6610 b->yy_is_our_buffer = 1;
6611
6612 return b;
6613}
6614/* %endif */
6615
6616#ifndef YY_EXIT_FAILURE
6617#define YY_EXIT_FAILURE 2
6618#endif
6619
6620/* %if-c-only */
6621static void yynoreturn yy_fatal_error (const char* msg )
6622{
6623 fprintf( stderr, "%s\n", msg );
6624 exit( YY_EXIT_FAILURE );
6625}
6626/* %endif */
6627/* %if-c++-only */
6628/* %endif */
6629
6630/* Redefine yyless() so it works in section 3 code. */
6631
6632#undef yyless
6633#define yyless(n) \
6634 do \
6635 { \
6636 /* Undo effects of setting up yytext. */ \
6637 int yyless_macro_arg = (n); \
6638 YY_LESS_LINENO(yyless_macro_arg);\
6639 yytext[yyleng] = (yy_hold_char); \
6640 (yy_c_buf_p) = yytext + yyless_macro_arg; \
6641 (yy_hold_char) = *(yy_c_buf_p); \
6642 *(yy_c_buf_p) = '\0'; \
6643 yyleng = yyless_macro_arg; \
6644 } \
6645 while ( 0 )
6646
6647/* Accessor methods (get/set functions) to struct members. */
6648
6649/* %if-c-only */
6650/* %if-reentrant */
6651/* %endif */
6652
6656int yyget_lineno (void)
6657{
6658
6659 return yylineno;
6660}
6661
6665FILE *yyget_in (void)
6666{
6667 return yyin;
6668}
6669
6673FILE *yyget_out (void)
6674{
6675 return yyout;
6676}
6677
6681int yyget_leng (void)
6682{
6683 return yyleng;
6684}
6685
6690char *yyget_text (void)
6691{
6692 return yytext;
6693}
6694
6695/* %if-reentrant */
6696/* %endif */
6697
6702void yyset_lineno (int _line_number )
6703{
6704
6705 yylineno = _line_number;
6706}
6707
6714void yyset_in (FILE * _in_str )
6715{
6716 yyin = _in_str ;
6717}
6718
6719void yyset_out (FILE * _out_str )
6720{
6721 yyout = _out_str ;
6722}
6723
6724int yyget_debug (void)
6725{
6726 return yy_flex_debug;
6727}
6728
6729void yyset_debug (int _bdebug )
6730{
6731 yy_flex_debug = _bdebug ;
6732}
6733
6734/* %endif */
6735
6736/* %if-reentrant */
6737/* %if-bison-bridge */
6738/* %endif */
6739/* %endif if-c-only */
6740
6741/* %if-c-only */
6742static int yy_init_globals (void)
6743{
6744 /* Initialization is the same as for the non-reentrant scanner.
6745 * This function is called from yylex_destroy(), so don't allocate here.
6746 */
6747
6748 (yy_buffer_stack) = NULL;
6749 (yy_buffer_stack_top) = 0;
6750 (yy_buffer_stack_max) = 0;
6751 (yy_c_buf_p) = NULL;
6752 (yy_init) = 0;
6753 (yy_start) = 0;
6754
6755/* Defined in main.c */
6756#ifdef YY_STDINIT
6757 yyin = stdin;
6758 yyout = stdout;
6759#else
6760 yyin = NULL;
6761 yyout = NULL;
6762#endif
6763
6764 /* For future reference: Set errno on error, since we are called by
6765 * yylex_init()
6766 */
6767 return 0;
6768}
6769/* %endif */
6770
6771/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
6772/* yylex_destroy is for both reentrant and non-reentrant scanners. */
6773int yylex_destroy (void)
6774{
6775
6776 /* Pop the buffer stack, destroying each element. */
6777 while(YY_CURRENT_BUFFER){
6781 }
6782
6783 /* Destroy the stack itself. */
6784 yyfree((yy_buffer_stack) );
6785 (yy_buffer_stack) = NULL;
6786
6787 /* Reset the globals. This is important in a non-reentrant scanner so the next time
6788 * yylex() is called, initialization will occur. */
6789 yy_init_globals( );
6790
6791/* %if-reentrant */
6792/* %endif */
6793 return 0;
6794}
6795/* %endif */
6796
6797/*
6798 * Internal utility routines.
6799 */
6800
6801#ifndef yytext_ptr
6802static void yy_flex_strncpy (char* s1, const char * s2, int n )
6803{
6804
6805 int i;
6806 for ( i = 0; i < n; ++i )
6807 s1[i] = s2[i];
6808}
6809#endif
6810
6811#ifdef YY_NEED_STRLEN
6812static int yy_flex_strlen (const char * s )
6813{
6814 int n;
6815 for ( n = 0; s[n]; ++n )
6816 ;
6817
6818 return n;
6819}
6820#endif
6821
6822void *yyalloc (yy_size_t size )
6823{
6824 return malloc(size);
6825}
6826
6827void *yyrealloc (void * ptr, yy_size_t size )
6828{
6829
6830 /* The cast to (char *) in the following accommodates both
6831 * implementations that use char* generic pointers, and those
6832 * that use void* generic pointers. It works with the latter
6833 * because both ANSI C and C++ allow castless assignment from
6834 * any pointer type to void*, and deal with argument conversions
6835 * as though doing an assignment.
6836 */
6837 return realloc(ptr, size);
6838}
6839
6840void yyfree (void * ptr )
6841{
6842 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
6843}
6844
6845/* %if-tables-serialization definitions */
6846/* %define-yytables The name for this specific scanner's tables. */
6847#define YYTABLES_NAME "yytables"
6848/* %endif */
6849
6850/* %ok-for-header */
6851
6852#line 2474 "dhcp4_lexer.ll"
6853
6854
6855using namespace isc::dhcp;
6856
6857void
6858Parser4Context::scanStringBegin(const std::string& str, ParserType parser_type)
6859{
6860 start_token_flag = true;
6861 start_token_value = parser_type;
6862
6863 file_ = "<string>";
6864 sfile_ = 0;
6865 loc_.initialize(&file_);
6866 yy_flex_debug = trace_scanning_;
6867 YY_BUFFER_STATE buffer;
6868 buffer = parser4__scan_bytes(str.c_str(), str.size());
6869 if (!buffer) {
6870 fatal("cannot scan string");
6871 /* fatal() throws an exception so this can't be reached */
6872 }
6873}
6874
6875void
6877 const std::string& filename,
6878 ParserType parser_type)
6879{
6880 start_token_flag = true;
6881 start_token_value = parser_type;
6882
6883 file_ = filename;
6884 sfile_ = f;
6885 loc_.initialize(&file_);
6886 yy_flex_debug = trace_scanning_;
6887 YY_BUFFER_STATE buffer;
6888
6889 /* See dhcp4_lexer.cc header for available definitions */
6890 buffer = parser4__create_buffer(f, 65536 /*buffer size*/);
6891 if (!buffer) {
6892 fatal("cannot scan file " + filename);
6893 }
6894 parser4__switch_to_buffer(buffer);
6895}
6896
6897void
6899 if (sfile_)
6900 fclose(sfile_);
6901 sfile_ = 0;
6902 static_cast<void>(parser4_lex_destroy());
6903 /* Close files */
6904 while (!sfiles_.empty()) {
6905 FILE* f = sfiles_.back();
6906 if (f) {
6907 fclose(f);
6908 }
6909 sfiles_.pop_back();
6910 }
6911 /* Delete states */
6912 while (!states_.empty()) {
6913 parser4__delete_buffer(states_.back());
6914 states_.pop_back();
6915 }
6916}
6917
6918void
6919Parser4Context::includeFile(const std::string& filename) {
6920 if (states_.size() > 10) {
6921 fatal("Too many nested include.");
6922 }
6923
6924 FILE* f = fopen(filename.c_str(), "r");
6925 if (!f) {
6926 fatal("Can't open include file " + filename);
6927 }
6928 if (sfile_) {
6929 sfiles_.push_back(sfile_);
6930 }
6931 sfile_ = f;
6932 states_.push_back(YY_CURRENT_BUFFER);
6933 YY_BUFFER_STATE buffer;
6934 buffer = parser4__create_buffer(f, 65536 /*buffer size*/);
6935 if (!buffer) {
6936 fatal( "Can't scan include file " + filename);
6937 }
6938 parser4__switch_to_buffer(buffer);
6939 files_.push_back(file_);
6940 file_ = filename;
6941 locs_.push_back(loc_);
6942 loc_.initialize(&file_);
6943
6944 BEGIN(INITIAL);
6945}
6946
6947namespace {
6949class Dummy {
6950 /* cppcheck-suppress unusedPrivateFunction */
6951 void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
6952};
6953}
6954#endif /* !__clang_analyzer__ */
6955
unsigned char flex_uint8_t
Definition: agent_lexer.cc:335
short int flex_int16_t
Definition: agent_lexer.cc:333
#define yy_flex_debug
Definition: agent_lexer.cc:24
int flex_int32_t
Definition: agent_lexer.cc:334
int yy_state_type
Definition: agent_lexer.cc:660
#define YY_CURRENT_BUFFER
Definition: agent_lexer.cc:575
#define INITIAL
#define BEGIN
Definition: agent_lexer.cc:414
flex_uint8_t YY_CHAR
Definition: agent_lexer.cc:656
size_t yy_size_t
Definition: agent_lexer.cc:451
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_CONTROL_SOCKET(const location_type &l)
static symbol_type make_THREAD_POOL_SIZE(const location_type &l)
static symbol_type make_GENERATED_PREFIX(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_OVERRIDE_CLIENT_UPDATE(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_MEMFILE(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_ALL(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_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_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_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_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_LENIENT_OPTION_PARSING(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_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_POSTGRESQL(const location_type &l)
static symbol_type make_LOGGERS(const location_type &l)
static symbol_type make_MYSQL(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_GLOBAL(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_OUT_OF_POOL(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_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_RESERVATION_MODE(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_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_REPLACE_CLIENT_NAME(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_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_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_QUALIFYING_SUFFIX(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_DISABLED(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_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_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
std::string file_
File name.
@ SUBNET4
Used while parsing Dhcp4/Subnet4 structures.
@ DATABASE_TYPE
Used while parsing Dhcp4/*-database/type.
@ 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.
@ RESERVATION_MODE
Used while parsing Dhcp4/reservation-mode.
@ 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...
@ 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.
@ 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.
@ 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.
@ 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
Definition: dhcp4_lexer.cc:19
#define YY_NEW_FILE
Definition: dhcp4_lexer.cc:424
#define yyset_extra
Definition: dhcp4_lexer.cc:176
#define yytext
Definition: dhcp4_lexer.cc:31
unsigned char flex_uint8_t
Definition: dhcp4_lexer.cc:335
#define yyset_lineno
Definition: dhcp4_lexer.cc:224
#define COMMENT
#define yyrestart
Definition: dhcp4_lexer.cc:30
#define yyset_debug
Definition: dhcp4_lexer.cc:164
#define YY_EXTRA_TYPE
#define DIR_INCLUDE
short int flex_int16_t
Definition: dhcp4_lexer.cc:333
#define yy_flex_debug
Definition: dhcp4_lexer.cc:24
unsigned int flex_uint32_t
Definition: dhcp4_lexer.cc:337
#define yy_scan_bytes
Definition: dhcp4_lexer.cc:16
#define YY_BREAK
#define yynoreturn
Definition: dhcp4_lexer.cc:388
#define yyget_debug
Definition: dhcp4_lexer.cc:158
int yy_act
#define yypush_buffer_state
Definition: dhcp4_lexer.cc:21
#define yyget_in
Get the input stream.
Definition: dhcp4_lexer.cc:182
struct yy_buffer_state * YY_BUFFER_STATE
Definition: dhcp4_lexer.cc:446
#define yyfree
Definition: dhcp4_lexer.cc:35
#define yyout
Definition: dhcp4_lexer.cc:29
#define YY_BUFFER_NEW
Definition: dhcp4_lexer.cc:539
#define yylex
Definition: dhcp4_lexer.cc:27
#define YY_RESTORE_YY_MORE_OFFSET
#define yyget_leng
Get the length of the current token.
Definition: dhcp4_lexer.cc:206
#define yywrap
#define yyget_out
Get the output stream.
Definition: dhcp4_lexer.cc:194
#define YY_BUFFER_NORMAL
Definition: dhcp4_lexer.cc:540
char * yy_cp
#define yyensure_buffer_stack
Definition: dhcp4_lexer.cc:23
#define yy_scan_buffer
Definition: dhcp4_lexer.cc:14
#define YY_MORE_ADJ
#define YY_RULE_SETUP
#define yy_scan_string
Definition: dhcp4_lexer.cc:15
#define DIR_EXIT
#define yytext_ptr
Definition: dhcp4_lexer.cc:669
signed char flex_int8_t
Definition: dhcp4_lexer.cc:332
#define EOB_ACT_END_OF_FILE
Definition: dhcp4_lexer.cc:465
#define yyalloc
Definition: dhcp4_lexer.cc:33
#define YY_CURRENT_BUFFER_LVALUE
Definition: dhcp4_lexer.cc:581
int flex_int32_t
Definition: dhcp4_lexer.cc:334
#define yylex_destroy
Definition: dhcp4_lexer.cc:152
#define YY_START
Definition: dhcp4_lexer.cc:419
#define yyget_text
Get the current token.
Definition: dhcp4_lexer.cc:212
#define yy_switch_to_buffer
Definition: dhcp4_lexer.cc:20
int yy_state_type
Definition: dhcp4_lexer.cc:660
#define YY_CURRENT_BUFFER
Definition: dhcp4_lexer.cc:575
#define yy_init_buffer
Definition: dhcp4_lexer.cc:17
#define INITIAL
#define yyget_extra
Definition: dhcp4_lexer.cc:170
char * yy_bp
#define yyin
Definition: dhcp4_lexer.cc:25
#define YY_READ_BUF_SIZE
#define YY_INPUT(buf, result, max_size)
#define ECHO
#define yy_flush_buffer
Definition: dhcp4_lexer.cc:18
#define yyrealloc
Definition: dhcp4_lexer.cc:34
#define YY_END_OF_BUFFER
Definition: dhcp4_lexer.cc:695
#define YY_STATE_EOF(state)
Definition: dhcp4_lexer.cc:422
#define BEGIN
Definition: dhcp4_lexer.cc:414
#define YY_END_OF_BUFFER_CHAR
Definition: dhcp4_lexer.cc:425
#define YY_FATAL_ERROR(msg)
unsigned short int flex_uint16_t
Definition: dhcp4_lexer.cc:336
#define yypop_buffer_state
Removes and deletes the top of the stack, if present.
Definition: dhcp4_lexer.cc:22
#define yy_create_buffer
Definition: dhcp4_lexer.cc:12
flex_uint8_t YY_CHAR
Definition: dhcp4_lexer.cc:656
#define YY_DO_BEFORE_ACTION
Definition: dhcp4_lexer.cc:685
#define yy_delete_buffer
Definition: dhcp4_lexer.cc:13
#define EOB_ACT_LAST_MATCH
Definition: dhcp4_lexer.cc:466
size_t yy_size_t
Definition: dhcp4_lexer.cc:451
#define YY_BUFFER_EOF_PENDING
Definition: dhcp4_lexer.cc:551
#define yylineno
Definition: dhcp4_lexer.cc:28
#define yyset_out
Definition: dhcp4_lexer.cc:200
#define EOB_ACT_CONTINUE_SCAN
Definition: dhcp4_lexer.cc:464
#define yyget_lineno
Get the current line number.
Definition: dhcp4_lexer.cc:218
#define YY_DECL
#define YY_BUF_SIZE
Definition: dhcp4_lexer.cc:436
#define YY_EXIT_FAILURE
#define YY_SC_TO_UI(c)
Definition: dhcp4_lexer.cc:400
#define DIR_ENTER
#define yyleng
Definition: dhcp4_lexer.cc:26
#define yyset_in
Definition: dhcp4_lexer.cc:188
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
@ fatal
Definition: db_log.h:117
int yy_bs_column
The column count.
Definition: agent_lexer.cc:530
FILE * yy_input_file
Definition: agent_lexer.cc:491
int yy_bs_lineno
The line count.
Definition: agent_lexer.cc:529
flex_int32_t yy_verify
Definition: agent_lexer.cc:700
flex_int32_t yy_nxt
Definition: agent_lexer.cc:701