Kea 2.2.0
dhcp4_lexer.cc
Go to the documentation of this file.
1#line 1 "dhcp4_lexer.cc"
2
3#line 3 "dhcp4_lexer.cc"
4
5#define YY_INT_ALIGNED short int
6
7/* A lexical scanner generated by flex */
8
9/* %not-for-header */
10/* %if-c-only */
11/* %if-not-reentrant */
12#define yy_create_buffer parser4__create_buffer
13#define yy_delete_buffer parser4__delete_buffer
14#define yy_scan_buffer parser4__scan_buffer
15#define yy_scan_string parser4__scan_string
16#define yy_scan_bytes parser4__scan_bytes
17#define yy_init_buffer parser4__init_buffer
18#define yy_flush_buffer parser4__flush_buffer
19#define yy_load_buffer_state parser4__load_buffer_state
20#define yy_switch_to_buffer parser4__switch_to_buffer
21#define yypush_buffer_state parser4_push_buffer_state
22#define yypop_buffer_state parser4_pop_buffer_state
23#define yyensure_buffer_stack parser4_ensure_buffer_stack
24#define yy_flex_debug parser4__flex_debug
25#define yyin parser4_in
26#define yyleng parser4_leng
27#define yylex parser4_lex
28#define yylineno parser4_lineno
29#define yyout parser4_out
30#define yyrestart parser4_restart
31#define yytext parser4_text
32#define yywrap parser4_wrap
33#define yyalloc parser4_alloc
34#define yyrealloc parser4_realloc
35#define yyfree parser4_free
36
37/* %endif */
38/* %endif */
39/* %ok-for-header */
40
41#define FLEX_SCANNER
42#define YY_FLEX_MAJOR_VERSION 2
43#define YY_FLEX_MINOR_VERSION 6
44#define YY_FLEX_SUBMINOR_VERSION 4
45#if YY_FLEX_SUBMINOR_VERSION > 0
46#define FLEX_BETA
47#endif
48
49/* %if-c++-only */
50/* %endif */
51
52/* %if-c-only */
53#ifdef yy_create_buffer
54#define parser4__create_buffer_ALREADY_DEFINED
55#else
56#define yy_create_buffer parser4__create_buffer
57#endif
58
59#ifdef yy_delete_buffer
60#define parser4__delete_buffer_ALREADY_DEFINED
61#else
62#define yy_delete_buffer parser4__delete_buffer
63#endif
64
65#ifdef yy_scan_buffer
66#define parser4__scan_buffer_ALREADY_DEFINED
67#else
68#define yy_scan_buffer parser4__scan_buffer
69#endif
70
71#ifdef yy_scan_string
72#define parser4__scan_string_ALREADY_DEFINED
73#else
74#define yy_scan_string parser4__scan_string
75#endif
76
77#ifdef yy_scan_bytes
78#define parser4__scan_bytes_ALREADY_DEFINED
79#else
80#define yy_scan_bytes parser4__scan_bytes
81#endif
82
83#ifdef yy_init_buffer
84#define parser4__init_buffer_ALREADY_DEFINED
85#else
86#define yy_init_buffer parser4__init_buffer
87#endif
88
89#ifdef yy_flush_buffer
90#define parser4__flush_buffer_ALREADY_DEFINED
91#else
92#define yy_flush_buffer parser4__flush_buffer
93#endif
94
95#ifdef yy_load_buffer_state
96#define parser4__load_buffer_state_ALREADY_DEFINED
97#else
98#define yy_load_buffer_state parser4__load_buffer_state
99#endif
100
101#ifdef yy_switch_to_buffer
102#define parser4__switch_to_buffer_ALREADY_DEFINED
103#else
104#define yy_switch_to_buffer parser4__switch_to_buffer
105#endif
106
107#ifdef yypush_buffer_state
108#define parser4_push_buffer_state_ALREADY_DEFINED
109#else
110#define yypush_buffer_state parser4_push_buffer_state
111#endif
112
113#ifdef yypop_buffer_state
114#define parser4_pop_buffer_state_ALREADY_DEFINED
115#else
116#define yypop_buffer_state parser4_pop_buffer_state
117#endif
118
119#ifdef yyensure_buffer_stack
120#define parser4_ensure_buffer_stack_ALREADY_DEFINED
121#else
122#define yyensure_buffer_stack parser4_ensure_buffer_stack
123#endif
124
125#ifdef yylex
126#define parser4_lex_ALREADY_DEFINED
127#else
128#define yylex parser4_lex
129#endif
130
131#ifdef yyrestart
132#define parser4_restart_ALREADY_DEFINED
133#else
134#define yyrestart parser4_restart
135#endif
136
137#ifdef yylex_init
138#define parser4_lex_init_ALREADY_DEFINED
139#else
140#define yylex_init parser4_lex_init
141#endif
142
143#ifdef yylex_init_extra
144#define parser4_lex_init_extra_ALREADY_DEFINED
145#else
146#define yylex_init_extra parser4_lex_init_extra
147#endif
148
149#ifdef yylex_destroy
150#define parser4_lex_destroy_ALREADY_DEFINED
151#else
152#define yylex_destroy parser4_lex_destroy
153#endif
154
155#ifdef yyget_debug
156#define parser4_get_debug_ALREADY_DEFINED
157#else
158#define yyget_debug parser4_get_debug
159#endif
160
161#ifdef yyset_debug
162#define parser4_set_debug_ALREADY_DEFINED
163#else
164#define yyset_debug parser4_set_debug
165#endif
166
167#ifdef yyget_extra
168#define parser4_get_extra_ALREADY_DEFINED
169#else
170#define yyget_extra parser4_get_extra
171#endif
172
173#ifdef yyset_extra
174#define parser4_set_extra_ALREADY_DEFINED
175#else
176#define yyset_extra parser4_set_extra
177#endif
178
179#ifdef yyget_in
180#define parser4_get_in_ALREADY_DEFINED
181#else
182#define yyget_in parser4_get_in
183#endif
184
185#ifdef yyset_in
186#define parser4_set_in_ALREADY_DEFINED
187#else
188#define yyset_in parser4_set_in
189#endif
190
191#ifdef yyget_out
192#define parser4_get_out_ALREADY_DEFINED
193#else
194#define yyget_out parser4_get_out
195#endif
196
197#ifdef yyset_out
198#define parser4_set_out_ALREADY_DEFINED
199#else
200#define yyset_out parser4_set_out
201#endif
202
203#ifdef yyget_leng
204#define parser4_get_leng_ALREADY_DEFINED
205#else
206#define yyget_leng parser4_get_leng
207#endif
208
209#ifdef yyget_text
210#define parser4_get_text_ALREADY_DEFINED
211#else
212#define yyget_text parser4_get_text
213#endif
214
215#ifdef yyget_lineno
216#define parser4_get_lineno_ALREADY_DEFINED
217#else
218#define yyget_lineno parser4_get_lineno
219#endif
220
221#ifdef yyset_lineno
222#define parser4_set_lineno_ALREADY_DEFINED
223#else
224#define yyset_lineno parser4_set_lineno
225#endif
226
227#ifdef yywrap
228#define parser4_wrap_ALREADY_DEFINED
229#else
230#define yywrap parser4_wrap
231#endif
232
233/* %endif */
234
235#ifdef yyalloc
236#define parser4_alloc_ALREADY_DEFINED
237#else
238#define yyalloc parser4_alloc
239#endif
240
241#ifdef yyrealloc
242#define parser4_realloc_ALREADY_DEFINED
243#else
244#define yyrealloc parser4_realloc
245#endif
246
247#ifdef yyfree
248#define parser4_free_ALREADY_DEFINED
249#else
250#define yyfree parser4_free
251#endif
252
253/* %if-c-only */
254
255#ifdef yytext
256#define parser4_text_ALREADY_DEFINED
257#else
258#define yytext parser4_text
259#endif
260
261#ifdef yyleng
262#define parser4_leng_ALREADY_DEFINED
263#else
264#define yyleng parser4_leng
265#endif
266
267#ifdef yyin
268#define parser4_in_ALREADY_DEFINED
269#else
270#define yyin parser4_in
271#endif
272
273#ifdef yyout
274#define parser4_out_ALREADY_DEFINED
275#else
276#define yyout parser4_out
277#endif
278
279#ifdef yy_flex_debug
280#define parser4__flex_debug_ALREADY_DEFINED
281#else
282#define yy_flex_debug parser4__flex_debug
283#endif
284
285#ifdef yylineno
286#define parser4_lineno_ALREADY_DEFINED
287#else
288#define yylineno parser4_lineno
289#endif
290
291/* %endif */
292
293/* First, we deal with platform-specific or compiler-specific issues. */
294
295/* begin standard C headers. */
296/* %if-c-only */
297#include <stdio.h>
298#include <string.h>
299#include <errno.h>
300#include <stdlib.h>
301/* %endif */
302
303/* %if-tables-serialization */
304/* %endif */
305/* end standard C headers. */
306
307/* %if-c-or-c++ */
308/* flex integer type definitions */
309
310#ifndef FLEXINT_H
311#define FLEXINT_H
312
313/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
314
315#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
316
317/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
318 * if you want the limit (max/min) macros for int types.
319 */
320#ifndef __STDC_LIMIT_MACROS
321#define __STDC_LIMIT_MACROS 1
322#endif
323
324#include <inttypes.h>
325typedef int8_t flex_int8_t;
326typedef uint8_t flex_uint8_t;
327typedef int16_t flex_int16_t;
328typedef uint16_t flex_uint16_t;
329typedef int32_t flex_int32_t;
330typedef uint32_t flex_uint32_t;
331#else
332typedef signed char flex_int8_t;
333typedef short int flex_int16_t;
334typedef int flex_int32_t;
335typedef unsigned char flex_uint8_t;
336typedef unsigned short int flex_uint16_t;
337typedef unsigned int flex_uint32_t;
338
339/* Limits of integral types. */
340#ifndef INT8_MIN
341#define INT8_MIN (-128)
342#endif
343#ifndef INT16_MIN
344#define INT16_MIN (-32767-1)
345#endif
346#ifndef INT32_MIN
347#define INT32_MIN (-2147483647-1)
348#endif
349#ifndef INT8_MAX
350#define INT8_MAX (127)
351#endif
352#ifndef INT16_MAX
353#define INT16_MAX (32767)
354#endif
355#ifndef INT32_MAX
356#define INT32_MAX (2147483647)
357#endif
358#ifndef UINT8_MAX
359#define UINT8_MAX (255U)
360#endif
361#ifndef UINT16_MAX
362#define UINT16_MAX (65535U)
363#endif
364#ifndef UINT32_MAX
365#define UINT32_MAX (4294967295U)
366#endif
367
368#ifndef SIZE_MAX
369#define SIZE_MAX (~(size_t)0)
370#endif
371
372#endif /* ! C99 */
373
374#endif /* ! FLEXINT_H */
375
376/* %endif */
377
378/* begin standard C++ headers. */
379/* %if-c++-only */
380/* %endif */
381
382/* TODO: this is always defined, so inline it */
383#define yyconst const
384
385#if defined(__GNUC__) && __GNUC__ >= 3
386#define yynoreturn __attribute__((__noreturn__))
387#else
388#define yynoreturn
389#endif
390
391/* %not-for-header */
392/* Returned upon end-of-file. */
393#define YY_NULL 0
394/* %ok-for-header */
395
396/* %not-for-header */
397/* Promotes a possibly negative, possibly signed char to an
398 * integer in range [0..255] for use as an array index.
399 */
400#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
401/* %ok-for-header */
402
403/* %if-reentrant */
404/* %endif */
405
406/* %if-not-reentrant */
407
408/* %endif */
409
410/* Enter a start condition. This macro really ought to take a parameter,
411 * but we do it the disgusting crufty way forced on us by the ()-less
412 * definition of BEGIN.
413 */
414#define BEGIN (yy_start) = 1 + 2 *
415/* Translate the current start state into a value that can be later handed
416 * to BEGIN to return to the state. The YYSTATE alias is for lex
417 * compatibility.
418 */
419#define YY_START (((yy_start) - 1) / 2)
420#define YYSTATE YY_START
421/* Action number for EOF rule of a given start state. */
422#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
423/* Special action meaning "start processing a new file". */
424#define YY_NEW_FILE yyrestart( yyin )
425#define YY_END_OF_BUFFER_CHAR 0
426
427/* Size of default input buffer. */
428#ifndef YY_BUF_SIZE
429#ifdef __ia64__
430/* On IA-64, the buffer size is 16k, not 8k.
431 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
432 * Ditto for the __ia64__ case accordingly.
433 */
434#define YY_BUF_SIZE 32768
435#else
436#define YY_BUF_SIZE 16384
437#endif /* __ia64__ */
438#endif
439
440/* The state buf must be large enough to hold one state per character in the main buffer.
441 */
442#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
443
444#ifndef YY_TYPEDEF_YY_BUFFER_STATE
445#define YY_TYPEDEF_YY_BUFFER_STATE
447#endif
448
449#ifndef YY_TYPEDEF_YY_SIZE_T
450#define YY_TYPEDEF_YY_SIZE_T
451typedef size_t yy_size_t;
452#endif
453
454/* %if-not-reentrant */
455extern int yyleng;
456/* %endif */
457
458/* %if-c-only */
459/* %if-not-reentrant */
460extern FILE *yyin, *yyout;
461/* %endif */
462/* %endif */
463
464#define EOB_ACT_CONTINUE_SCAN 0
465#define EOB_ACT_END_OF_FILE 1
466#define EOB_ACT_LAST_MATCH 2
467
468 #define YY_LESS_LINENO(n)
469 #define YY_LINENO_REWIND_TO(ptr)
470
471/* Return all but the first "n" matched characters back to the input stream. */
472#define yyless(n) \
473 do \
474 { \
475 /* Undo effects of setting up yytext. */ \
476 int yyless_macro_arg = (n); \
477 YY_LESS_LINENO(yyless_macro_arg);\
478 *yy_cp = (yy_hold_char); \
479 YY_RESTORE_YY_MORE_OFFSET \
480 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
481 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
482 } \
483 while ( 0 )
484#define unput(c) yyunput( c, (yytext_ptr) )
485
486#ifndef YY_STRUCT_YY_BUFFER_STATE
487#define YY_STRUCT_YY_BUFFER_STATE
488struct yy_buffer_state
489 {
490/* %if-c-only */
491 FILE *yy_input_file;
492/* %endif */
493
494/* %if-c++-only */
495/* %endif */
496
497 char *yy_ch_buf; /* input buffer */
498 char *yy_buf_pos; /* current position in input buffer */
499
500 /* Size of input buffer in bytes, not including room for EOB
501 * characters.
502 */
503 int yy_buf_size;
504
505 /* Number of characters read into yy_ch_buf, not including EOB
506 * characters.
507 */
508 int yy_n_chars;
509
510 /* Whether we "own" the buffer - i.e., we know we created it,
511 * and can realloc() it to grow it, and should free() it to
512 * delete it.
513 */
515
516 /* Whether this is an "interactive" input source; if so, and
517 * if we're using stdio for input, then we want to use getc()
518 * instead of fread(), to make sure we stop fetching input after
519 * each newline.
520 */
522
523 /* Whether we're considered to be at the beginning of a line.
524 * If so, '^' rules will be active on the next match, otherwise
525 * not.
526 */
527 int yy_at_bol;
528
529 int yy_bs_lineno;
530 int yy_bs_column;
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 214
695#define YY_END_OF_BUFFER 215
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[2061] =
704 { 0,
705 207, 207, 0, 0, 0, 0, 0, 0, 0, 0,
706 215, 213, 10, 11, 213, 1, 207, 204, 207, 207,
707 213, 206, 205, 213, 213, 213, 213, 213, 200, 201,
708 213, 213, 213, 202, 203, 5, 5, 5, 213, 213,
709 213, 10, 11, 0, 0, 195, 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, 1, 207, 207,
713 0, 206, 207, 3, 2, 6, 0, 207, 0, 0,
714 0, 0, 0, 0, 4, 0, 0, 9, 0, 196,
715
716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 0, 198, 0, 0, 0, 0, 0, 0, 0,
718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
725 0, 8, 0, 0, 0, 0, 0, 0, 0, 0,
726
727 0, 0, 0, 197, 199, 0, 0, 0, 0, 0,
728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
731 0, 0, 88, 0, 0, 0, 0, 0, 0, 0,
732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
733 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 212, 210,
739 0, 209, 208, 0, 0, 0, 0, 0, 0, 0,
740 173, 0, 172, 0, 0, 94, 0, 0, 0, 0,
741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
746 0, 0, 0, 0, 91, 0, 0, 0, 0, 0,
747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
748
749 0, 0, 0, 17, 0, 0, 0, 0, 0, 0,
750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
752 0, 0, 18, 0, 0, 0, 0, 211, 208, 0,
753 0, 0, 0, 0, 0, 174, 0, 176, 0, 0,
754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
755 0, 98, 0, 0, 0, 0, 0, 0, 80, 0,
756 0, 0, 0, 0, 0, 120, 0, 0, 0, 0,
757 0, 0, 0, 0, 0, 0, 0, 40, 0, 0,
758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
759
760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
761 0, 79, 0, 0, 0, 0, 0, 0, 0, 0,
762 0, 0, 0, 0, 0, 0, 0, 0, 83, 0,
763 41, 0, 0, 0, 0, 0, 0, 0, 0, 0,
764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
766 117, 0, 0, 34, 0, 0, 38, 0, 0, 0,
767 0, 0, 0, 12, 178, 177, 0, 0, 0, 130,
768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
770
771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
772 0, 0, 0, 0, 109, 0, 0, 0, 0, 0,
773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
775 0, 0, 0, 36, 0, 0, 0, 0, 0, 0,
776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
777 82, 0, 0, 0, 0, 0, 0, 0, 0, 0,
778 131, 0, 0, 0, 0, 0, 0, 0, 0, 0,
779 0, 0, 0, 0, 126, 0, 0, 0, 0, 0,
780 0, 0, 0, 0, 0, 0, 0, 7, 0, 0,
781
782 179, 0, 0, 0, 0, 0, 0, 0, 0, 0,
783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
786 0, 0, 93, 0, 0, 0, 0, 0, 0, 0,
787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
788 0, 0, 0, 0, 0, 111, 0, 0, 0, 0,
789 0, 0, 0, 0, 0, 0, 0, 107, 0, 0,
790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
792
793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
794 0, 86, 0, 0, 0, 0, 0, 0, 0, 0,
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 0, 0, 85, 0, 0,
797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799 0, 0, 0, 0, 0, 0, 124, 0, 0, 0,
800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
801 0, 0, 0, 136, 105, 0, 0, 0, 0, 0,
802 0, 110, 35, 0, 0, 0, 0, 0, 46, 0,
803
804 0, 0, 0, 0, 0, 0, 0, 0, 0, 112,
805 42, 0, 0, 0, 0, 0, 0, 0, 0, 0,
806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
808 0, 74, 0, 0, 0, 0, 0, 0, 0, 0,
809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
810 155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
812 0, 0, 0, 0, 0, 0, 90, 0, 0, 0,
813 0, 0, 0, 0, 0, 0, 0, 0, 0, 125,
814
815 0, 0, 0, 0, 0, 0, 54, 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, 39, 0, 0, 0, 0, 33, 0, 0,
819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
820 0, 0, 0, 0, 0, 0, 113, 0, 0, 0,
821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
823 0, 53, 0, 0, 0, 122, 0, 0, 0, 0,
824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
825
826 0, 0, 156, 0, 0, 0, 0, 0, 0, 0,
827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828 0, 87, 0, 0, 0, 0, 0, 0, 0, 0,
829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
831 0, 0, 0, 0, 23, 0, 0, 0, 0, 0,
832 0, 0, 0, 0, 0, 161, 0, 0, 0, 159,
833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
834 0, 0, 0, 0, 0, 0, 0, 0, 183, 0,
835 0, 0, 0, 0, 0, 0, 0, 0, 123, 0,
836
837 0, 0, 0, 0, 0, 0, 127, 0, 0, 0,
838 0, 0, 0, 0, 108, 0, 0, 0, 0, 0,
839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
840 0, 0, 0, 121, 22, 0, 132, 0, 0, 0,
841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
842 0, 165, 0, 0, 0, 0, 77, 0, 0, 0,
843 0, 0, 0, 135, 0, 37, 0, 154, 0, 0,
844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
845 0, 0, 62, 0, 0, 0, 0, 0, 0, 0,
846 101, 102, 0, 0, 0, 0, 0, 0, 0, 0,
847
848 0, 81, 0, 0, 0, 0, 0, 55, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
851 0, 129, 0, 0, 0, 0, 0, 0, 0, 0,
852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
853 0, 0, 0, 0, 0, 0, 187, 0, 78, 92,
854 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
855 0, 59, 0, 0, 0, 0, 0, 0, 162, 0,
856 0, 160, 0, 0, 151, 150, 0, 0, 0, 0,
857 0, 0, 21, 0, 0, 0, 0, 175, 0, 0,
858
859 0, 0, 0, 116, 0, 0, 0, 0, 0, 0,
860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
861 0, 144, 0, 0, 0, 153, 0, 0, 0, 0,
862 0, 0, 0, 0, 0, 0, 133, 0, 15, 0,
863 0, 43, 0, 0, 0, 0, 0, 0, 0, 0,
864 0, 164, 0, 0, 0, 0, 0, 0, 0, 0,
865 60, 0, 0, 128, 0, 0, 0, 119, 0, 0,
866 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
867 52, 0, 84, 0, 181, 0, 0, 186, 0, 104,
868 0, 0, 0, 193, 0, 0, 0, 0, 0, 0,
869
870 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
875 0, 0, 14, 0, 0, 0, 0, 0, 0, 0,
876 0, 0, 0, 0, 0, 0, 189, 0, 0, 114,
877 30, 0, 0, 0, 149, 0, 0, 0, 0, 0,
878 0, 0, 0, 0, 0, 0, 0, 184, 0, 157,
879 0, 0, 0, 0, 0, 0, 0, 0, 28, 0,
880
881 0, 0, 27, 0, 0, 163, 0, 0, 0, 51,
882 0, 0, 0, 0, 0, 106, 0, 0, 0, 0,
883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
885 0, 56, 0, 0, 103, 0, 0, 0, 44, 0,
886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
887 0, 0, 0, 0, 0, 0, 134, 0, 0, 0,
888 29, 0, 0, 0, 185, 0, 0, 0, 0, 0,
889 145, 0, 0, 0, 0, 0, 0, 0, 0, 0,
890 0, 0, 0, 0, 0, 0, 0, 20, 0, 0,
891
892 188, 0, 76, 0, 47, 0, 0, 0, 182, 180,
893 0, 31, 0, 0, 0, 0, 0, 0, 0, 0,
894 0, 0, 0, 16, 0, 0, 0, 0, 169, 0,
895 0, 0, 0, 0, 0, 0, 0, 142, 0, 0,
896 0, 118, 0, 0, 0, 0, 0, 0, 0, 0,
897 0, 0, 89, 0, 0, 0, 0, 0, 48, 0,
898 0, 0, 0, 147, 0, 0, 0, 0, 0, 0,
899 0, 0, 66, 0, 0, 0, 0, 0, 0, 0,
900 0, 0, 0, 0, 170, 13, 0, 0, 0, 0,
901 0, 0, 0, 0, 0, 148, 0, 158, 0, 0,
902
903 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
905 0, 0, 152, 0, 0, 0, 0, 0, 0, 0,
906 0, 0, 141, 0, 58, 57, 19, 0, 166, 0,
907 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
908 0, 0, 0, 0, 0, 100, 0, 0, 0, 0,
909 0, 0, 0, 0, 0, 0, 0, 0, 0, 140,
910 0, 0, 0, 0, 50, 0, 63, 0, 45, 168,
911 0, 95, 0, 0, 0, 0, 0, 0, 0, 0,
912 75, 0, 0, 0, 0, 0, 0, 0, 72, 0,
913
914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
915 0, 0, 0, 0, 0, 49, 0, 0, 0, 0,
916 0, 0, 70, 0, 0, 0, 0, 0, 0, 0,
917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
918 0, 0, 0, 0, 0, 0, 0, 0, 32, 0,
919 0, 71, 0, 0, 0, 0, 146, 0, 0, 0,
920 0, 191, 194, 167, 0, 115, 96, 0, 0, 0,
921 0, 0, 0, 0, 0, 67, 0, 0, 0, 0,
922 0, 0, 0, 0, 138, 0, 0, 0, 0, 0,
923 0, 143, 0, 69, 0, 61, 0, 0, 0, 0,
924
925 0, 0, 97, 0, 0, 0, 0, 0, 0, 0,
926 137, 0, 0, 171, 192, 0, 0, 0, 0, 0,
927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
928 68, 0, 0, 0, 0, 26, 24, 0, 0, 0,
929 73, 0, 0, 99, 0, 65, 0, 0, 0, 0,
930 0, 0, 0, 0, 64, 0, 139, 25, 190, 0
931 } ;
932
933static const YY_CHAR yy_ec[256] =
934 { 0,
935 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
936 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
937 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
938 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
939 5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
940 14, 17, 14, 18, 14, 14, 14, 19, 5, 20,
941 5, 21, 22, 5, 23, 24, 25, 26, 27, 28,
942 5, 29, 5, 30, 5, 31, 5, 32, 33, 34,
943 5, 35, 36, 37, 38, 39, 40, 5, 41, 5,
944 42, 43, 44, 5, 45, 5, 46, 47, 48, 49,
945
946 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
947 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
948 70, 71, 72, 5, 73, 5, 5, 5, 5, 5,
949 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
950 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
951 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
952 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
953 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
954 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
955 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
956
957 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
958 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
959 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
960 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
961 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
962 5, 5, 5, 5, 5
963 } ;
964
965static const YY_CHAR yy_meta[74] =
966 { 0,
967 1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
968 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
969 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
970 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
971 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
972 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
973 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
974 1, 1, 1
975 } ;
976
977static const flex_int16_t yy_base[2069] =
978 { 0,
979 0, 72, 21, 31, 43, 51, 54, 60, 91, 99,
980 2447, 2448, 34, 2443, 145, 0, 207, 2448, 214, 221,
981 13, 228, 2448, 2423, 118, 25, 2, 6, 2448, 2448,
982 73, 11, 17, 2448, 2448, 2448, 104, 2431, 2384, 0,
983 2421, 108, 2438, 24, 262, 2448, 2380, 67, 2386, 84,
984 75, 88, 224, 91, 89, 290, 220, 2378, 206, 285,
985 236, 204, 197, 60, 232, 2387, 247, 294, 315, 307,
986 286, 2370, 212, 325, 354, 328, 2389, 0, 366, 382,
987 397, 411, 404, 2448, 0, 2448, 419, 425, 249, 319,
988 238, 331, 399, 329, 2448, 2386, 2427, 2448, 404, 2448,
989
990 438, 2414, 405, 2383, 415, 10, 409, 311, 411, 418,
991 428, 2424, 0, 499, 418, 2366, 2363, 2367, 402, 2363,
992 80, 2371, 216, 2357, 2358, 2363, 78, 2373, 2356, 2365,
993 2355, 2364, 221, 2355, 223, 2356, 2354, 400, 2402, 2406,
994 2346, 2399, 2339, 174, 2360, 2360, 2354, 278, 2347, 2345,
995 2346, 2338, 2343, 2337, 423, 2348, 346, 2333, 2332, 2346,
996 405, 2332, 420, 355, 2326, 495, 407, 428, 2347, 2344,
997 2345, 428, 2343, 2378, 2377, 2323, 2323, 433, 2324, 433,
998 2316, 2333, 2325, 0, 446, 462, 471, 464, 476, 481,
999 2324, 2448, 2369, 486, 2318, 466, 479, 485, 2372, 510,
1000
1001 2371, 502, 2370, 2448, 2448, 548, 2369, 521, 2328, 2320,
1002 2307, 2318, 2322, 2323, 2303, 2314, 2318, 2315, 2314, 478,
1003 518, 2352, 2316, 2297, 2294, 2302, 2297, 2311, 2307, 2298,
1004 2294, 2306, 2306, 2297, 2281, 2285, 2298, 2300, 2297, 2289,
1005 2279, 2297, 2448, 2292, 505, 2330, 2276, 2285, 2327, 2274,
1006 2284, 2287, 518, 2283, 2322, 2267, 2269, 2280, 2318, 2263,
1007 2321, 2275, 2255, 2270, 542, 2260, 2266, 524, 2257, 2255,
1008 2255, 2261, 2252, 2251, 2258, 2248, 2307, 2263, 2262, 2256,
1009 498, 2263, 2258, 2250, 2240, 2255, 2254, 2249, 2253, 2234,
1010 2250, 2236, 2242, 2249, 2231, 457, 2236, 2233, 2232, 2227,
1011
1012 2241, 551, 2240, 2283, 2242, 529, 2233, 552, 2448, 2448,
1013 554, 2448, 2448, 2220, 536, 543, 2268, 559, 2278, 553,
1014 2448, 2277, 2448, 2271, 603, 2448, 552, 2211, 2220, 2268,
1015 2228, 2211, 2228, 2264, 2224, 2207, 2213, 2265, 2220, 2223,
1016 2214, 2217, 2203, 2214, 2258, 2252, 2210, 2207, 594, 2213,
1017 2253, 2188, 2246, 2199, 2194, 2191, 2242, 2199, 2188, 2204,
1018 2238, 2184, 601, 2198, 2183, 2196, 2194, 2192, 2192, 2191,
1019 2186, 2193, 2188, 2184, 570, 2182, 2185, 2180, 2166, 2178,
1020 2174, 2224, 563, 2218, 2448, 2182, 2216, 2166, 2165, 2164,
1021 2157, 2159, 2171, 2162, 2169, 2150, 2167, 2162, 581, 2209,
1022
1023 2162, 2159, 2162, 2448, 2161, 2150, 2150, 2162, 547, 2137,
1024 2138, 2159, 2150, 2140, 2191, 2136, 2150, 584, 2136, 2148,
1025 2147, 2146, 2141, 2183, 2143, 2142, 2141, 2140, 2183, 2142,
1026 2122, 2180, 2448, 2122, 2121, 629, 2134, 2448, 2448, 2133,
1027 2122, 2114, 572, 2173, 2172, 2448, 2171, 2448, 607, 655,
1028 610, 2170, 2112, 2123, 2162, 2115, 2117, 2119, 2106, 2114,
1029 2102, 2448, 2107, 2100, 2112, 2115, 2102, 2101, 2448, 595,
1030 2103, 2100, 613, 2098, 2100, 2448, 2145, 2107, 2104, 2089,
1031 2102, 2097, 637, 2104, 2092, 2085, 2136, 2448, 2083, 2099,
1032 2133, 2094, 2091, 2092, 2076, 2085, 2127, 2078, 2077, 2072,
1033
1034 2071, 2122, 2066, 626, 2085, 2059, 2066, 2071, 2081, 2115,
1035 2119, 2448, 2064, 2060, 2058, 2067, 2066, 2060, 2067, 2051,
1036 2051, 2061, 2049, 2063, 2063, 2051, 2047, 2045, 2448, 2102,
1037 2448, 2044, 2055, 2094, 2039, 2044, 2053, 2047, 2041, 2050,
1038 2092, 2086, 2048, 2032, 2027, 2047, 2022, 2028, 631, 2042,
1039 2035, 2039, 2022, 2080, 2021, 2021, 2072, 2017, 2018, 2017,
1040 2448, 2030, 2067, 2448, 2018, 2016, 2448, 2027, 2063, 2023,
1041 2007, 2024, 2064, 2448, 2448, 2448, 630, 621, 681, 2448,
1042 2015, 2014, 294, 2021, 2001, 2011, 2053, 1998, 2051, 1996,
1043 2006, 2048, 1993, 2000, 1993, 2005, 1987, 1987, 2002, 2001,
1044
1045 603, 2000, 1999, 1999, 1981, 1986, 2027, 1994, 1991, 1985,
1046 2030, 1974, 1990, 1989, 2448, 1974, 1971, 2029, 1984, 1976,
1047 1982, 1973, 1981, 1966, 1982, 1964, 1976, 1968, 640, 1959,
1048 1958, 1952, 1957, 1972, 1969, 1970, 1949, 1959, 1965, 2008,
1049 1963, 1955, 1946, 2448, 1947, 1949, 1958, 1950, 1955, 1994,
1050 1993, 1944, 16, 1953, 1990, 1935, 1988, 1935, 1938, 1931,
1051 2448, 1945, 1924, 1928, 1942, 1934, 1979, 1931, 1938, 1976,
1052 2448, 1921, 1935, 1934, 1937, 1918, 1970, 1969, 1916, 1967,
1053 1927, 1911, 1964, 1963, 2448, 1908, 1922, 1921, 679, 1922,
1054 1921, 1957, 1921, 1916, 1899, 1904, 1906, 2448, 1912, 1902,
1055
1056 2448, 654, 666, 1896, 1894, 1901, 1911, 1903, 1890, 1884,
1057 1896, 1895, 1940, 659, 1944, 1898, 649, 20, 242, 210,
1058 437, 541, 577, 564, 585, 646, 649, 641, 698, 651,
1059 661, 664, 703, 666, 660, 664, 662, 664, 711, 717,
1060 675, 676, 2448, 679, 675, 666, 681, 686, 683, 686,
1061 685, 673, 687, 685, 693, 729, 691, 736, 737, 687,
1062 679, 689, 736, 694, 744, 2448, 745, 698, 700, 696,
1063 690, 693, 751, 747, 710, 699, 712, 2448, 702, 713,
1064 702, 715, 705, 718, 762, 763, 706, 717, 702, 725,
1065 704, 710, 765, 729, 713, 725, 769, 770, 717, 772,
1066
1067 736, 731, 736, 734, 778, 720, 732, 735, 739, 731,
1068 728, 2448, 792, 751, 752, 742, 745, 756, 741, 748,
1069 754, 746, 760, 800, 776, 763, 768, 765, 747, 754,
1070 768, 813, 770, 767, 768, 766, 775, 2448, 771, 766,
1071 781, 778, 764, 766, 785, 782, 770, 777, 778, 787,
1072 791, 827, 789, 780, 778, 777, 788, 784, 840, 787,
1073 798, 783, 784, 790, 806, 796, 2448, 806, 806, 799,
1074 810, 808, 853, 795, 797, 812, 799, 798, 860, 817,
1075 803, 809, 807, 2448, 2448, 817, 822, 827, 815, 825,
1076 827, 2448, 2448, 828, 815, 833, 820, 814, 2448, 819,
1077
1078 837, 824, 874, 825, 877, 823, 827, 845, 886, 2448,
1079 2448, 831, 835, 834, 831, 891, 844, 834, 835, 831,
1080 844, 855, 856, 851, 852, 854, 847, 849, 845, 851,
1081 851, 853, 868, 851, 910, 867, 872, 849, 872, 858,
1082 857, 2448, 864, 865, 865, 878, 916, 874, 864, 879,
1083 880, 867, 899, 907, 876, 871, 926, 927, 889, 929,
1084 2448, 935, 878, 894, 898, 939, 889, 888, 883, 884,
1085 896, 891, 887, 890, 891, 901, 910, 947, 894, 913,
1086 905, 900, 958, 915, 916, 907, 2448, 921, 910, 913,
1087 921, 923, 908, 924, 918, 965, 931, 915, 916, 2448,
1088
1089 932, 935, 918, 977, 920, 939, 2448, 938, 941, 927,
1090 922, 940, 980, 938, 934, 931, 984, 985, 947, 933,
1091 951, 950, 951, 937, 952, 944, 951, 941, 959, 958,
1092 945, 962, 2448, 954, 960, 963, 1008, 2448, 957, 962,
1093 1006, 958, 970, 964, 965, 963, 965, 975, 1020, 964,
1094 965, 965, 1024, 968, 980, 973, 2448, 969, 977, 975,
1095 1026, 968, 989, 975, 977, 983, 991, 982, 987, 997,
1096 998, 1003, 1044, 1016, 1021, 1003, 1000, 996, 1010, 993,
1097 993, 2448, 994, 1054, 997, 2448, 1008, 998, 1018, 1017,
1098 1008, 1019, 1062, 1023, 1016, 1020, 1024, 1007, 1024, 1015,
1099
1100 1070, 1017, 2448, 1067, 1016, 1019, 1037, 1019, 1020, 1020,
1101 1041, 1038, 1043, 1044, 1030, 1038, 1047, 1027, 1042, 1049,
1102 1091, 2448, 1092, 1093, 1035, 1045, 1055, 1039, 1059, 1047,
1103 1043, 1050, 1059, 1047, 1054, 1055, 1067, 1108, 1055, 1053,
1104 1055, 1072, 1113, 1063, 1062, 1068, 1066, 1064, 1059, 1120,
1105 1071, 1122, 1118, 1124, 2448, 1081, 1074, 1065, 1084, 1072,
1106 1082, 1083, 1079, 1092, 1092, 2448, 1076, 1072, 1079, 2448,
1107 1080, 1140, 1099, 1080, 1099, 1100, 1102, 1141, 1094, 1148,
1108 1149, 1099, 1097, 1108, 1107, 1091, 1096, 1114, 2448, 1136,
1109 1127, 1159, 1099, 1121, 1116, 1116, 1120, 1165, 2448, 1108,
1110
1111 1108, 1111, 1128, 1123, 1127, 1122, 2448, 1114, 1131, 1111,
1112 1132, 1122, 1173, 1126, 2448, 1140, 1140, 1178, 1125, 1134,
1113 1182, 1140, 1145, 1131, 1191, 1134, 1145, 1137, 1143, 1139,
1114 1157, 1158, 1159, 2448, 2448, 1158, 2448, 1143, 1154, 1145,
1115 1164, 1157, 1155, 1148, 1160, 1204, 1168, 1157, 1164, 1165,
1116 1171, 2448, 1164, 1216, 1157, 1218, 2448, 1219, 1161, 1167,
1117 1174, 1218, 1180, 2448, 1181, 2448, 1168, 2448, 1170, 1184,
1118 1189, 1172, 1231, 1188, 1189, 1229, 1181, 1186, 1237, 1233,
1119 1186, 1240, 2448, 1191, 1188, 1243, 1244, 1201, 1202, 1204,
1120 2448, 2448, 1243, 1192, 1208, 1251, 1193, 1205, 1210, 1225,
1121
1122 1256, 2448, 1213, 1206, 1215, 1206, 1217, 2448, 1262, 1199,
1123 1210, 1225, 1261, 1213, 1224, 1225, 1226, 1223, 1267, 1230,
1124 1220, 1230, 1236, 1223, 1219, 1279, 1275, 1233, 1277, 1284,
1125 1241, 2448, 1242, 1236, 1245, 1246, 1243, 1233, 1236, 1236,
1126 1241, 1296, 1243, 1298, 1241, 1246, 1301, 1297, 1238, 1253,
1127 1246, 1250, 1263, 1264, 1262, 1311, 2448, 1265, 2448, 2448,
1128 1270, 1262, 1272, 1257, 1313, 1260, 1260, 1321, 1265, 1275,
1129 1324, 2448, 1272, 1273, 1275, 1328, 1269, 1272, 2448, 1290,
1130 1291, 2448, 1291, 1279, 2448, 2448, 1292, 1275, 1295, 1282,
1131 1341, 1291, 2448, 1343, 1292, 1345, 1325, 2448, 1347, 1304,
1132
1133 1349, 1300, 1347, 2448, 1295, 1354, 1304, 1298, 1295, 1298,
1134 1300, 1317, 1356, 1309, 1321, 1324, 1312, 1315, 1308, 1315,
1135 1306, 2448, 1314, 1329, 1314, 2448, 1316, 1317, 1332, 1332,
1136 1335, 1335, 1332, 1376, 1338, 1330, 2448, 1331, 2448, 1341,
1137 1333, 2448, 1339, 1344, 1345, 1342, 1386, 1334, 1349, 1350,
1138 1342, 2448, 1339, 1340, 1340, 1346, 1345, 1343, 1397, 1358,
1139 2448, 1399, 1346, 2448, 1347, 1348, 1354, 2448, 1363, 1357,
1140 1412, 1359, 1352, 1364, 1359, 1369, 1380, 1373, 1379, 1375,
1141 2448, 1384, 2448, 1381, 2448, 1378, 1401, 2448, 1428, 2448,
1142 1386, 1371, 1431, 2448, 1432, 1389, 1394, 1376, 1436, 1432,
1143
1144 1396, 1393, 1389, 1382, 1437, 1395, 1396, 1386, 1391, 1403,
1145 1448, 1403, 1451, 1447, 1410, 1407, 1451, 1399, 1404, 1402,
1146 1461, 1417, 1405, 1464, 1460, 1423, 1467, 1428, 1417, 1411,
1147 1471, 1413, 1414, 1428, 1431, 1431, 1477, 1419, 1436, 1432,
1148 1430, 1437, 1421, 1479, 1480, 1481, 1444, 1437, 1436, 1436,
1149 1431, 1449, 2448, 1440, 1446, 1451, 1438, 1439, 1438, 1440,
1150 1495, 1436, 1454, 1503, 1461, 1474, 2448, 1506, 1459, 2448,
1151 2448, 1450, 1461, 1510, 2448, 1456, 1461, 1459, 1509, 1467,
1152 1472, 1460, 1476, 1466, 1464, 1478, 1465, 2448, 1467, 2448,
1153 1470, 1521, 1464, 1469, 1529, 1477, 1487, 1488, 2448, 1534,
1154
1155 1487, 1531, 2448, 1482, 1538, 2448, 1481, 1496, 1484, 2448,
1156 1494, 1495, 1544, 1502, 1506, 2448, 1542, 1508, 1484, 1502,
1157 1503, 1512, 1494, 1501, 1513, 1512, 1503, 1553, 1505, 1501,
1158 1561, 1503, 1504, 1564, 1560, 1566, 1516, 1568, 1521, 1526,
1159 1519, 2448, 1572, 1573, 2448, 1522, 1575, 1517, 2448, 1520,
1160 1530, 1574, 1522, 1537, 1524, 1539, 1525, 1532, 1532, 1587,
1161 1544, 1545, 1533, 1532, 1592, 1545, 2448, 1589, 1540, 1537,
1162 2448, 1551, 1538, 1559, 2448, 1556, 1601, 1554, 1551, 1552,
1163 2448, 1605, 1564, 1547, 1549, 1565, 1558, 1548, 1564, 1565,
1164 1574, 1564, 1616, 1576, 1560, 1569, 1615, 2448, 1573, 1622,
1165
1166 2448, 1571, 2448, 1565, 2448, 1572, 1626, 1622, 2448, 2448,
1167 1585, 2448, 1625, 1587, 1588, 1573, 1574, 1582, 1636, 1584,
1168 1633, 1634, 1589, 2448, 1584, 1602, 1589, 1596, 2448, 1593,
1169 1598, 1596, 1648, 1649, 1597, 1594, 1594, 2448, 1609, 1610,
1170 1611, 2448, 1612, 1602, 1614, 1659, 1612, 1661, 1603, 1611,
1171 1612, 1625, 2448, 1626, 1607, 1608, 1615, 1617, 2448, 1631,
1172 1628, 1668, 1629, 2448, 1633, 1618, 1618, 1633, 1626, 1625,
1173 1636, 1623, 2448, 1639, 1627, 1630, 1686, 1626, 1645, 1647,
1174 1638, 1647, 1649, 1653, 2448, 2448, 1646, 1637, 1696, 1639,
1175 1698, 1699, 1700, 1658, 1702, 2448, 1644, 2448, 1699, 1661,
1176
1177 1662, 1649, 1657, 1668, 1655, 1666, 1652, 1650, 1658, 1657,
1178 1662, 1654, 1719, 1672, 1673, 1663, 1680, 1679, 1720, 1664,
1179 1683, 1684, 2448, 1689, 1682, 1687, 1688, 1733, 1690, 1693,
1180 1680, 1689, 2448, 1738, 2448, 2448, 2448, 1699, 2448, 1740,
1181 1682, 1742, 1743, 1686, 1745, 1693, 1742, 1743, 1705, 1745,
1182 1691, 1695, 1713, 1754, 1713, 2448, 1704, 1694, 1753, 1719,
1183 1712, 1708, 1762, 1705, 1707, 1706, 1713, 1709, 1711, 2448,
1184 1716, 1726, 1711, 1719, 2448, 1714, 2448, 1726, 2448, 2448,
1185 1731, 2448, 1732, 1732, 1723, 1779, 1723, 1733, 1718, 1731,
1186 2448, 1733, 1741, 1786, 1727, 1729, 1726, 1750, 2448, 1737,
1187
1188 1744, 1745, 1748, 1737, 1791, 1738, 1746, 1755, 1754, 1757,
1189 1750, 1745, 1745, 1757, 1752, 2448, 1763, 1751, 1804, 1755,
1190 1767, 1812, 2448, 1758, 1770, 1815, 1764, 1766, 1764, 1765,
1191 1820, 1773, 1760, 1775, 1780, 1825, 1826, 1827, 1784, 1829,
1192 1830, 1774, 1778, 1774, 1790, 1773, 1785, 1779, 2448, 1795,
1193 1839, 2448, 1796, 1781, 1799, 1790, 2448, 1791, 1805, 1801,
1194 1794, 2448, 2448, 2448, 1848, 2448, 2448, 1791, 1799, 1794,
1195 1847, 1813, 1810, 1855, 1816, 2448, 1857, 1799, 1859, 1802,
1196 1815, 1814, 1815, 1805, 2448, 1806, 1866, 1819, 1828, 1821,
1197 1865, 2448, 1812, 2448, 1824, 2448, 1868, 1874, 1816, 1832,
1198
1199 1877, 1878, 2448, 1835, 1829, 1822, 1842, 1839, 1831, 1835,
1200 2448, 1882, 1831, 2448, 2448, 1831, 1839, 1886, 1846, 1839,
1201 1894, 1842, 1842, 1838, 1840, 1899, 1900, 1842, 1858, 1843,
1202 2448, 1904, 1851, 1858, 1907, 2448, 2448, 1860, 1909, 1857,
1203 2448, 1861, 1860, 2448, 1861, 2448, 1855, 1855, 1872, 1873,
1204 1918, 1864, 1920, 1921, 2448, 1922, 2448, 2448, 2448, 2448,
1205 1928, 1931, 1934, 1935, 1937, 1940, 1943, 1946
1206 } ;
1207
1208static const flex_int16_t yy_def[2069] =
1209 { 0,
1210 2061, 2061, 2062, 2062, 2061, 2061, 2061, 2061, 2061, 2061,
1211 2060, 2060, 2060, 2060, 2060, 2063, 2060, 2060, 2060, 2060,
1212 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1213 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2064,
1214 2060, 2060, 2060, 2065, 15, 2060, 45, 45, 45, 45,
1215 45, 45, 45, 45, 45, 2066, 45, 45, 45, 45,
1216 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1217 45, 45, 45, 45, 45, 45, 45, 2063, 2060, 2060,
1218 2060, 2060, 2060, 2060, 2067, 2060, 2060, 2060, 2060, 2060,
1219 2060, 2060, 2060, 2060, 2060, 2060, 2064, 2060, 2065, 2060,
1220
1221 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1222 45, 2068, 45, 2066, 45, 45, 45, 45, 45, 45,
1223 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1224 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1225 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1226 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1227 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1228 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1229 45, 45, 45, 2067, 2060, 2060, 2060, 2060, 2060, 2060,
1230 2060, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1231
1232 45, 45, 2068, 2060, 2060, 114, 45, 45, 45, 45,
1233 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1234 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1235 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1236 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1237 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1238 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1239 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1240 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1241 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1242
1243 45, 45, 45, 45, 45, 45, 45, 2060, 2060, 2060,
1244 2060, 2060, 2060, 2060, 45, 45, 45, 45, 45, 45,
1245 2060, 45, 2060, 45, 114, 2060, 45, 45, 45, 45,
1246 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1247 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1248 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1249 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1250 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1251 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1252 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1253
1254 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45,
1255 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1256 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1257 45, 45, 2060, 45, 45, 45, 45, 2060, 2060, 2060,
1258 45, 45, 45, 45, 45, 2060, 45, 2060, 45, 114,
1259 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1260 45, 2060, 45, 45, 45, 45, 45, 45, 2060, 45,
1261 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45,
1262 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45,
1263 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1264
1265 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1266 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1267 45, 45, 45, 45, 45, 45, 45, 45, 2060, 45,
1268 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1269 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1270 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1271 2060, 45, 45, 2060, 45, 45, 2060, 45, 45, 2060,
1272 45, 45, 45, 2060, 2060, 2060, 45, 45, 45, 2060,
1273 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1274 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1275
1276 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1277 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1278 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1279 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1280 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45,
1281 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1282 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1283 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1284 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1285 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45,
1286
1287 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1288 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1289 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1290 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1291 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1292 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1293 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45,
1294 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45,
1295 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1296 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1297
1298 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1299 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1300 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1301 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45,
1302 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1303 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1304 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45,
1305 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1306 45, 45, 45, 2060, 2060, 45, 45, 45, 45, 45,
1307 45, 2060, 2060, 45, 45, 45, 45, 45, 2060, 45,
1308
1309 45, 45, 45, 45, 45, 45, 45, 45, 45, 2060,
1310 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1311 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1312 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1313 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1314 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1315 2060, 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, 2060, 45, 45, 45,
1318 45, 45, 45, 45, 45, 45, 45, 45, 45, 2060,
1319
1320 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45,
1321 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1322 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1323 45, 45, 2060, 45, 45, 45, 45, 2060, 45, 45,
1324 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1325 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45,
1326 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1327 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1328 45, 2060, 45, 45, 45, 2060, 45, 45, 45, 45,
1329 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1330
1331 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1332 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1333 45, 2060, 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, 45, 45, 45, 45,
1336 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1337 45, 45, 45, 45, 45, 2060, 45, 45, 45, 2060,
1338 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1339 45, 45, 45, 45, 45, 45, 45, 45, 2060, 45,
1340 45, 45, 45, 45, 45, 45, 45, 45, 2060, 45,
1341
1342 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45,
1343 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1344 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1345 45, 45, 45, 2060, 2060, 45, 2060, 45, 45, 45,
1346 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1347 45, 2060, 45, 45, 45, 45, 2060, 45, 45, 45,
1348 45, 45, 45, 2060, 45, 2060, 45, 2060, 45, 45,
1349 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1350 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1351 2060, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1352
1353 45, 2060, 45, 45, 45, 45, 45, 2060, 45, 45,
1354 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1355 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1356 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1357 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1358 45, 45, 45, 45, 45, 45, 2060, 45, 2060, 2060,
1359 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1360 45, 2060, 45, 45, 45, 45, 45, 45, 2060, 45,
1361 45, 2060, 45, 45, 2060, 2060, 45, 45, 45, 45,
1362 45, 45, 2060, 45, 45, 45, 45, 2060, 45, 45,
1363
1364 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45,
1365 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1366 45, 2060, 45, 45, 45, 2060, 45, 45, 45, 45,
1367 45, 45, 45, 45, 45, 45, 2060, 45, 2060, 45,
1368 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1369 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1370 2060, 45, 45, 2060, 45, 45, 45, 2060, 45, 45,
1371 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1372 2060, 45, 2060, 45, 2060, 45, 45, 2060, 45, 2060,
1373 45, 45, 45, 2060, 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, 45, 45,
1377 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1378 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1379 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1380 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1381 45, 45, 45, 45, 45, 45, 2060, 45, 45, 2060,
1382 2060, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1383 45, 45, 45, 45, 45, 45, 45, 2060, 45, 2060,
1384 45, 45, 45, 45, 45, 45, 45, 45, 2060, 45,
1385
1386 45, 45, 2060, 45, 45, 2060, 45, 45, 45, 2060,
1387 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45,
1388 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1389 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1390 45, 2060, 45, 45, 2060, 45, 45, 45, 2060, 45,
1391 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1392 45, 45, 45, 45, 45, 45, 2060, 45, 45, 45,
1393 2060, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1394 2060, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1395 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45,
1396
1397 2060, 45, 2060, 45, 2060, 45, 45, 45, 2060, 2060,
1398 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1399 45, 45, 45, 2060, 45, 45, 45, 45, 2060, 45,
1400 45, 45, 45, 45, 45, 45, 45, 2060, 45, 45,
1401 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1402 45, 45, 2060, 45, 45, 45, 45, 45, 2060, 45,
1403 45, 45, 45, 2060, 45, 45, 45, 45, 45, 45,
1404 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1405 45, 45, 45, 45, 2060, 2060, 45, 45, 45, 45,
1406 45, 45, 45, 45, 45, 2060, 45, 2060, 45, 45,
1407
1408 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1409 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1410 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1411 45, 45, 2060, 45, 2060, 2060, 2060, 45, 2060, 45,
1412 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1413 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45,
1414 45, 45, 45, 45, 45, 45, 45, 45, 45, 2060,
1415 45, 45, 45, 45, 2060, 45, 2060, 45, 2060, 2060,
1416 45, 2060, 45, 45, 45, 45, 45, 45, 45, 45,
1417 2060, 45, 45, 45, 45, 45, 45, 45, 2060, 45,
1418
1419 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1420 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45,
1421 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1422 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1423 45, 45, 45, 45, 45, 45, 45, 45, 2060, 45,
1424 45, 2060, 45, 45, 45, 45, 2060, 45, 45, 45,
1425 45, 2060, 2060, 2060, 45, 2060, 2060, 45, 45, 45,
1426 45, 45, 45, 45, 45, 2060, 45, 45, 45, 45,
1427 45, 45, 45, 45, 2060, 45, 45, 45, 45, 45,
1428 45, 2060, 45, 2060, 45, 2060, 45, 45, 45, 45,
1429
1430 45, 45, 2060, 45, 45, 45, 45, 45, 45, 45,
1431 2060, 45, 45, 2060, 2060, 45, 45, 45, 45, 45,
1432 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1433 2060, 45, 45, 45, 45, 2060, 2060, 45, 45, 45,
1434 2060, 45, 45, 2060, 45, 2060, 45, 45, 45, 45,
1435 45, 45, 45, 45, 2060, 45, 2060, 2060, 2060, 0,
1436 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060
1437 } ;
1438
1439static const flex_int16_t yy_nxt[2522] =
1440 { 0,
1441 2060, 13, 14, 13, 2060, 15, 16, 2060, 17, 18,
1442 19, 20, 21, 22, 22, 22, 22, 22, 23, 24,
1443 84, 778, 37, 14, 37, 85, 25, 26, 38, 100,
1444 843, 27, 37, 14, 37, 42, 28, 42, 38, 90,
1445 91, 29, 197, 30, 13, 14, 13, 89, 90, 25,
1446 31, 91, 13, 14, 13, 13, 14, 13, 32, 40,
1447 779, 13, 14, 13, 33, 40, 101, 90, 91, 197,
1448 89, 34, 35, 13, 14, 13, 93, 15, 16, 94,
1449 17, 18, 19, 20, 21, 22, 22, 22, 22, 22,
1450 23, 24, 13, 14, 13, 89, 39, 103, 25, 26,
1451
1452 13, 14, 13, 27, 39, 42, 105, 42, 28, 42,
1453 106, 42, 41, 29, 107, 30, 110, 111, 92, 138,
1454 41, 25, 31, 103, 225, 226, 87, 139, 87, 105,
1455 32, 88, 88, 88, 88, 88, 33, 107, 106, 110,
1456 216, 111, 217, 34, 35, 44, 44, 44, 45, 45,
1457 46, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1458 45, 47, 45, 45, 45, 45, 45, 48, 45, 45,
1459 49, 45, 50, 45, 51, 45, 52, 45, 45, 45,
1460 45, 53, 54, 45, 55, 45, 45, 56, 45, 45,
1461 57, 58, 59, 60, 61, 62, 63, 64, 65, 51,
1462
1463 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1464 76, 77, 55, 45, 45, 45, 45, 45, 79, 247,
1465 80, 80, 80, 80, 80, 79, 105, 82, 82, 82,
1466 82, 82, 248, 81, 83, 83, 83, 83, 83, 79,
1467 81, 82, 82, 82, 82, 82, 136, 81, 108, 105,
1468 103, 119, 844, 137, 81, 120, 81, 165, 109, 121,
1469 135, 166, 122, 81, 219, 123, 232, 845, 233, 124,
1470 81, 108, 235, 220, 221, 187, 115, 81, 45, 185,
1471 140, 131, 116, 132, 45, 117, 109, 45, 236, 45,
1472 141, 45, 142, 45, 133, 113, 144, 145, 45, 45,
1473
1474 146, 45, 45, 187, 134, 185, 147, 45, 45, 45,
1475 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1476 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1477 125, 161, 45, 126, 127, 162, 45, 128, 129, 148,
1478 45, 107, 252, 149, 199, 163, 253, 150, 45, 186,
1479 130, 707, 45, 110, 45, 114, 262, 156, 708, 151,
1480 153, 185, 154, 152, 155, 157, 187, 158, 174, 175,
1481 167, 199, 159, 160, 168, 186, 180, 169, 108, 83,
1482 83, 83, 83, 83, 170, 171, 181, 188, 109, 172,
1483 173, 182, 81, 79, 190, 80, 80, 80, 80, 80,
1484
1485 275, 108, 263, 176, 276, 87, 177, 87, 81, 100,
1486 88, 88, 88, 88, 88, 81, 178, 83, 83, 83,
1487 83, 83, 79, 179, 82, 82, 82, 82, 82, 186,
1488 81, 81, 88, 88, 88, 88, 88, 81, 88, 88,
1489 88, 88, 88, 99, 194, 196, 101, 198, 200, 212,
1490 99, 201, 267, 81, 202, 189, 239, 194, 213, 240,
1491 81, 198, 214, 241, 287, 288, 201, 268, 269, 270,
1492 200, 196, 194, 295, 207, 198, 200, 202, 201, 272,
1493 99, 308, 273, 274, 99, 208, 289, 296, 99, 198,
1494 290, 260, 309, 304, 291, 846, 99, 310, 302, 308,
1495
1496 99, 318, 99, 99, 205, 278, 309, 310, 316, 308,
1497 319, 320, 206, 206, 206, 206, 206, 424, 309, 425,
1498 310, 206, 206, 206, 206, 206, 206, 311, 375, 318,
1499 313, 316, 312, 324, 320, 339, 322, 319, 340, 435,
1500 279, 280, 281, 316, 206, 206, 206, 206, 206, 206,
1501 366, 282, 389, 283, 408, 284, 285, 409, 286, 322,
1502 324, 325, 325, 325, 325, 325, 327, 367, 341, 394,
1503 325, 325, 325, 325, 325, 325, 342, 322, 438, 395,
1504 438, 376, 343, 443, 377, 445, 529, 447, 390, 441,
1505 847, 436, 443, 325, 325, 325, 325, 325, 325, 442,
1506
1507 322, 438, 391, 439, 473, 539, 488, 573, 445, 540,
1508 474, 489, 443, 513, 431, 447, 450, 450, 450, 450,
1509 450, 451, 848, 514, 849, 450, 450, 450, 450, 450,
1510 450, 503, 504, 549, 567, 573, 505, 550, 577, 568,
1511 578, 679, 615, 850, 530, 573, 596, 616, 450, 450,
1512 450, 450, 450, 450, 597, 703, 598, 599, 600, 490,
1513 601, 604, 702, 726, 491, 577, 727, 578, 45, 45,
1514 45, 45, 45, 579, 605, 636, 606, 45, 45, 45,
1515 45, 45, 45, 703, 812, 637, 701, 754, 755, 702,
1516 824, 704, 825, 680, 851, 813, 840, 841, 852, 842,
1517
1518 45, 45, 45, 45, 45, 45, 836, 853, 854, 855,
1519 856, 857, 837, 858, 859, 825, 860, 861, 824, 862,
1520 865, 866, 867, 863, 868, 869, 870, 864, 871, 872,
1521 873, 874, 875, 876, 877, 878, 879, 880, 881, 882,
1522 883, 884, 885, 886, 887, 888, 890, 891, 889, 892,
1523 893, 894, 895, 896, 897, 898, 899, 900, 901, 902,
1524 903, 904, 905, 906, 907, 908, 909, 910, 911, 912,
1525 913, 914, 915, 916, 917, 918, 919, 920, 921, 922,
1526 923, 924, 925, 926, 927, 929, 930, 931, 934, 935,
1527 936, 928, 939, 937, 932, 940, 941, 942, 933, 938,
1528
1529 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,
1530 953, 954, 955, 956, 957, 958, 959, 960, 961, 962,
1531 963, 964, 965, 966, 967, 968, 969, 970, 971, 972,
1532 973, 974, 975, 976, 977, 978, 979, 980, 981, 954,
1533 982, 983, 984, 985, 986, 987, 988, 989, 990, 991,
1534 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1002,
1535 1003, 1004, 1005, 1001, 1006, 1007, 1008, 1009, 1010, 1011,
1536 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
1537 1022, 1023, 1024, 1026, 1027, 1028, 1025, 1029, 1030, 1031,
1538 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
1539
1540 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051,
1541 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061,
1542 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071,
1543 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081,
1544 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091,
1545 1092, 1093, 1094, 1095, 1096, 1097, 1075, 1098, 1099, 1074,
1546 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109,
1547 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119,
1548 1120, 1121, 1122, 1124, 1125, 1126, 1127, 1128, 1129, 1130,
1549 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140,
1550
1551 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1149, 1150, 1151,
1552 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1148, 1159, 1160,
1553 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170,
1554 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180,
1555 1123, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189,
1556 1190, 1192, 1191, 1193, 1194, 1195, 1196, 1197, 1198, 1199,
1557 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
1558 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1190, 1191,
1559 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227,
1560 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1237, 1239,
1561
1562 1240, 1241, 1236, 1242, 1243, 1244, 1245, 1246, 1247, 1248,
1563 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258,
1564 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268,
1565 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278,
1566 1279, 1280, 1238, 1281, 1282, 1283, 1284, 1285, 1286, 1287,
1567 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297,
1568 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307,
1569 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317,
1570 1318, 1319, 1320, 1321, 1322, 1300, 1323, 1324, 1325, 1326,
1571 1327, 1301, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335,
1572
1573 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345,
1574 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355,
1575 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365,
1576 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375,
1577 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386,
1578 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396,
1579 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1406, 1407,
1580 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417,
1581 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1397, 1426,
1582 1427, 1428, 1376, 1429, 1430, 1431, 1432, 1433, 1434, 1435,
1583
1584 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445,
1585 1447, 1405, 1448, 1449, 1450, 1451, 1452, 1446, 1453, 1454,
1586 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464,
1587 1465, 1466, 1467, 1468, 1470, 1471, 1474, 1472, 1469, 1473,
1588 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484,
1589 1485, 1487, 1488, 1489, 1490, 1486, 1491, 1492, 1493, 1494,
1590 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504,
1591 1505, 1506, 1507, 1508, 1487, 1509, 1510, 1511, 1512, 1513,
1592 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523,
1593 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533,
1594
1595 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543,
1596 1544, 1545, 1546, 1547, 1548, 1552, 1549, 1553, 1554, 1550,
1597 1555, 1556, 1551, 1557, 1558, 1559, 1560, 1561, 1562, 1563,
1598 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573,
1599 1574, 1575, 1576, 1577, 1579, 1580, 1581, 1582, 1583, 1584,
1600 1585, 1586, 1587, 1588, 1578, 1589, 1590, 1591, 1592, 1566,
1601 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1601, 1602, 1603,
1602 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613,
1603 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623,
1604 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633,
1605
1606 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643,
1607 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653,
1608 1654, 1655, 1656, 1657, 1600, 1658, 1659, 1660, 1661, 1662,
1609 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1644, 1671,
1610 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681,
1611 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691,
1612 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701,
1613 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711,
1614 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721,
1615 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731,
1616
1617 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741,
1618 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751,
1619 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1762,
1620 1763, 1764, 1765, 1761, 1766, 1767, 1768, 1769, 1770, 1771,
1621 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781,
1622 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791,
1623 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801,
1624 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811,
1625 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821,
1626 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831,
1627
1628 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841,
1629 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851,
1630 1853, 1854, 1852, 1855, 1856, 1857, 1858, 1859, 1860, 1861,
1631 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871,
1632 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881,
1633 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891,
1634 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901,
1635 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911,
1636 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921,
1637 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931,
1638
1639 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941,
1640 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951,
1641 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961,
1642 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971,
1643 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981,
1644 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991,
1645 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
1646 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
1647 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2021, 2020,
1648 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031,
1649
1650 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041,
1651 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051,
1652 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 12, 12,
1653 12, 36, 36, 36, 78, 97, 78, 99, 99, 99,
1654 112, 112, 112, 184, 839, 184, 203, 203, 203, 838,
1655 835, 834, 833, 832, 831, 830, 829, 828, 827, 826,
1656 823, 822, 821, 820, 819, 818, 817, 816, 815, 814,
1657 811, 810, 809, 808, 807, 806, 805, 804, 803, 802,
1658 801, 800, 799, 798, 797, 796, 795, 794, 793, 792,
1659 791, 790, 789, 788, 787, 786, 785, 784, 783, 782,
1660
1661 781, 780, 777, 776, 775, 774, 773, 772, 771, 770,
1662 769, 768, 767, 766, 765, 764, 763, 762, 761, 760,
1663 759, 758, 757, 756, 753, 752, 751, 750, 749, 748,
1664 747, 746, 745, 744, 743, 742, 741, 740, 739, 738,
1665 737, 736, 735, 734, 733, 732, 731, 730, 729, 728,
1666 725, 724, 723, 722, 721, 720, 719, 718, 717, 716,
1667 715, 714, 713, 712, 711, 710, 709, 706, 705, 701,
1668 700, 699, 698, 697, 696, 695, 694, 693, 692, 691,
1669 690, 689, 688, 687, 686, 685, 684, 683, 682, 681,
1670 678, 677, 676, 675, 674, 673, 672, 671, 670, 669,
1671
1672 668, 667, 666, 665, 664, 663, 662, 661, 660, 659,
1673 658, 657, 656, 655, 654, 653, 652, 651, 650, 649,
1674 648, 647, 646, 645, 644, 643, 642, 641, 640, 639,
1675 638, 635, 634, 633, 632, 631, 630, 629, 628, 627,
1676 626, 625, 624, 623, 622, 621, 620, 619, 618, 617,
1677 614, 613, 612, 611, 610, 609, 608, 607, 603, 602,
1678 595, 594, 593, 592, 591, 590, 589, 588, 587, 586,
1679 585, 584, 583, 582, 581, 580, 576, 575, 574, 572,
1680 571, 570, 569, 566, 565, 564, 563, 562, 561, 560,
1681 559, 558, 557, 556, 555, 554, 553, 552, 551, 548,
1682
1683 547, 546, 545, 544, 543, 542, 541, 538, 537, 536,
1684 535, 534, 533, 532, 531, 528, 527, 526, 525, 524,
1685 523, 522, 521, 520, 519, 518, 517, 516, 515, 512,
1686 511, 510, 509, 508, 507, 506, 502, 501, 500, 499,
1687 498, 497, 496, 495, 494, 493, 492, 487, 486, 485,
1688 484, 483, 482, 481, 480, 479, 478, 477, 476, 475,
1689 472, 471, 470, 469, 468, 467, 466, 465, 464, 463,
1690 462, 461, 460, 459, 458, 457, 456, 455, 454, 453,
1691 452, 449, 448, 446, 444, 440, 437, 434, 433, 432,
1692 430, 429, 428, 427, 426, 423, 422, 421, 420, 419,
1693
1694 418, 417, 416, 415, 414, 413, 412, 411, 410, 407,
1695 406, 405, 404, 403, 402, 401, 400, 399, 398, 397,
1696 396, 393, 392, 388, 387, 386, 385, 384, 383, 382,
1697 381, 380, 379, 378, 374, 373, 372, 371, 370, 369,
1698 368, 365, 364, 363, 362, 361, 360, 359, 358, 357,
1699 356, 355, 354, 353, 352, 351, 350, 349, 348, 347,
1700 346, 345, 344, 338, 337, 336, 335, 334, 333, 332,
1701 331, 330, 329, 328, 326, 204, 323, 321, 317, 315,
1702 314, 307, 306, 305, 303, 301, 300, 299, 298, 297,
1703 294, 293, 292, 277, 271, 266, 265, 264, 261, 259,
1704
1705 258, 257, 256, 255, 254, 251, 250, 249, 246, 245,
1706 244, 243, 242, 238, 237, 234, 231, 230, 229, 228,
1707 227, 224, 223, 222, 218, 215, 211, 210, 209, 204,
1708 195, 193, 192, 191, 183, 164, 143, 118, 104, 102,
1709 43, 98, 96, 95, 86, 43, 2060, 11, 2060, 2060,
1710 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1711 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1712 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1713 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1714 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1715
1716 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1717 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1718 2060
1719 } ;
1720
1721static const flex_int16_t yy_chk[2522] =
1722 { 0,
1723 0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
1724 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1725 21, 653, 3, 3, 3, 21, 1, 1, 3, 44,
1726 718, 1, 4, 4, 4, 13, 1, 13, 4, 27,
1727 28, 1, 106, 1, 5, 5, 5, 26, 32, 1,
1728 1, 33, 6, 6, 6, 7, 7, 7, 1, 7,
1729 653, 8, 8, 8, 1, 8, 44, 27, 28, 106,
1730 26, 1, 1, 2, 2, 2, 32, 2, 2, 33,
1731 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1732 2, 2, 9, 9, 9, 31, 5, 48, 2, 2,
1733
1734 10, 10, 10, 2, 6, 37, 50, 37, 2, 42,
1735 51, 42, 9, 2, 52, 2, 54, 55, 31, 64,
1736 10, 2, 2, 48, 127, 127, 25, 64, 25, 50,
1737 2, 25, 25, 25, 25, 25, 2, 52, 51, 54,
1738 121, 55, 121, 2, 2, 15, 15, 15, 15, 15,
1739 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1740 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1741 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1742 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1743 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1744
1745 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1746 15, 15, 15, 15, 15, 15, 15, 15, 17, 144,
1747 17, 17, 17, 17, 17, 19, 62, 19, 19, 19,
1748 19, 19, 144, 17, 20, 20, 20, 20, 20, 22,
1749 19, 22, 22, 22, 22, 22, 63, 20, 53, 62,
1750 57, 59, 719, 63, 22, 59, 17, 73, 53, 59,
1751 62, 73, 59, 19, 123, 59, 133, 720, 133, 59,
1752 20, 53, 135, 123, 123, 91, 57, 22, 45, 89,
1753 65, 61, 57, 61, 45, 57, 53, 45, 135, 45,
1754 65, 45, 65, 45, 61, 56, 67, 67, 45, 45,
1755
1756 67, 45, 56, 91, 61, 89, 67, 45, 45, 45,
1757 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1758 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1759 60, 71, 56, 60, 60, 71, 56, 60, 60, 68,
1760 56, 69, 148, 68, 108, 71, 148, 68, 56, 90,
1761 60, 583, 56, 76, 56, 56, 157, 70, 583, 68,
1762 69, 92, 69, 68, 69, 70, 94, 70, 75, 75,
1763 74, 108, 70, 70, 74, 90, 76, 74, 75, 79,
1764 79, 79, 79, 79, 74, 74, 76, 92, 75, 74,
1765 74, 76, 79, 80, 94, 80, 80, 80, 80, 80,
1766
1767 164, 75, 157, 75, 164, 81, 75, 81, 80, 99,
1768 81, 81, 81, 81, 81, 79, 75, 83, 83, 83,
1769 83, 83, 82, 75, 82, 82, 82, 82, 82, 93,
1770 83, 80, 87, 87, 87, 87, 87, 82, 88, 88,
1771 88, 88, 88, 101, 103, 105, 99, 107, 109, 119,
1772 101, 110, 161, 83, 111, 93, 138, 115, 119, 138,
1773 82, 155, 119, 138, 167, 167, 180, 161, 161, 161,
1774 178, 105, 103, 172, 115, 107, 109, 111, 110, 163,
1775 101, 185, 163, 163, 101, 115, 168, 172, 101, 155,
1776 168, 155, 186, 180, 168, 721, 101, 187, 178, 188,
1777
1778 101, 196, 101, 101, 114, 166, 189, 190, 194, 185,
1779 197, 198, 114, 114, 114, 114, 114, 296, 186, 296,
1780 187, 114, 114, 114, 114, 114, 114, 188, 253, 196,
1781 190, 194, 189, 202, 198, 220, 200, 197, 220, 306,
1782 166, 166, 166, 208, 114, 114, 114, 114, 114, 114,
1783 245, 166, 265, 166, 281, 166, 166, 281, 166, 200,
1784 202, 206, 206, 206, 206, 206, 208, 245, 221, 268,
1785 206, 206, 206, 206, 206, 206, 221, 302, 308, 268,
1786 311, 253, 221, 316, 253, 318, 399, 320, 265, 315,
1787 722, 306, 327, 206, 206, 206, 206, 206, 206, 315,
1788
1789 302, 308, 265, 311, 349, 409, 363, 443, 318, 409,
1790 349, 363, 316, 383, 302, 320, 325, 325, 325, 325,
1791 325, 327, 723, 383, 724, 325, 325, 325, 325, 325,
1792 325, 375, 375, 418, 436, 443, 375, 418, 449, 436,
1793 449, 549, 483, 725, 399, 451, 470, 483, 325, 325,
1794 325, 325, 325, 325, 470, 578, 470, 470, 470, 363,
1795 470, 473, 577, 601, 363, 449, 601, 449, 450, 450,
1796 450, 450, 450, 451, 473, 504, 473, 450, 450, 450,
1797 450, 450, 450, 578, 689, 504, 579, 629, 629, 577,
1798 702, 579, 703, 549, 726, 689, 717, 717, 727, 717,
1799
1800 450, 450, 450, 450, 450, 450, 714, 728, 729, 730,
1801 731, 732, 714, 733, 734, 703, 735, 736, 702, 737,
1802 738, 739, 740, 737, 741, 742, 744, 737, 745, 746,
1803 747, 748, 749, 750, 751, 752, 753, 754, 755, 756,
1804 757, 758, 759, 760, 761, 762, 763, 764, 762, 765,
1805 767, 768, 769, 770, 771, 772, 773, 774, 775, 776,
1806 777, 779, 780, 781, 782, 783, 784, 785, 786, 787,
1807 788, 789, 790, 791, 792, 793, 794, 795, 796, 797,
1808 798, 799, 800, 801, 802, 803, 804, 804, 805, 806,
1809 807, 802, 809, 808, 804, 810, 811, 813, 804, 808,
1810
1811 814, 815, 816, 817, 818, 819, 820, 821, 822, 823,
1812 824, 825, 826, 827, 828, 829, 830, 831, 832, 833,
1813 834, 835, 836, 837, 839, 840, 841, 842, 843, 844,
1814 845, 846, 847, 848, 849, 850, 851, 852, 853, 825,
1815 854, 855, 856, 857, 858, 859, 860, 861, 862, 863,
1816 864, 865, 866, 868, 869, 870, 871, 872, 873, 874,
1817 875, 876, 877, 873, 878, 879, 880, 881, 882, 883,
1818 886, 887, 888, 889, 890, 891, 894, 895, 896, 897,
1819 898, 900, 901, 902, 903, 904, 901, 905, 906, 907,
1820 908, 909, 912, 913, 914, 915, 916, 917, 918, 919,
1821
1822 920, 921, 922, 923, 924, 925, 926, 927, 928, 929,
1823 930, 931, 932, 933, 934, 935, 936, 937, 938, 939,
1824 940, 941, 943, 944, 945, 946, 947, 948, 949, 950,
1825 951, 952, 953, 954, 955, 956, 957, 958, 959, 960,
1826 962, 963, 964, 965, 966, 967, 968, 969, 970, 971,
1827 972, 973, 974, 975, 976, 977, 954, 978, 979, 953,
1828 980, 981, 982, 983, 984, 985, 986, 988, 989, 990,
1829 991, 992, 993, 994, 995, 996, 997, 998, 999, 1001,
1830 1002, 1003, 1004, 1005, 1006, 1008, 1009, 1010, 1011, 1012,
1831 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022,
1832
1833 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032,
1834 1034, 1035, 1036, 1037, 1039, 1040, 1041, 1029, 1042, 1043,
1835 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
1836 1054, 1055, 1056, 1058, 1059, 1060, 1061, 1062, 1063, 1064,
1837 1004, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073,
1838 1074, 1076, 1075, 1077, 1078, 1079, 1080, 1081, 1083, 1084,
1839 1085, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,
1840 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1104, 1074, 1075,
1841 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114,
1842 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1123, 1124, 1125,
1843
1844 1126, 1127, 1123, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
1845 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144,
1846 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154,
1847 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165,
1848 1167, 1168, 1124, 1169, 1171, 1172, 1173, 1174, 1175, 1176,
1849 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186,
1850 1187, 1188, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197,
1851 1198, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1208, 1209,
1852 1210, 1211, 1212, 1213, 1214, 1190, 1216, 1217, 1218, 1219,
1853 1220, 1191, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228,
1854
1855 1229, 1230, 1231, 1232, 1233, 1236, 1238, 1239, 1240, 1241,
1856 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251,
1857 1253, 1254, 1255, 1256, 1258, 1259, 1260, 1261, 1262, 1263,
1858 1265, 1267, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276,
1859 1277, 1278, 1279, 1280, 1281, 1282, 1284, 1285, 1286, 1287,
1860 1288, 1289, 1290, 1293, 1294, 1295, 1296, 1297, 1298, 1299,
1861 1300, 1301, 1303, 1304, 1305, 1306, 1307, 1309, 1310, 1311,
1862 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321,
1863 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1300, 1330,
1864 1331, 1333, 1276, 1334, 1335, 1336, 1337, 1338, 1339, 1340,
1865
1866 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350,
1867 1351, 1309, 1352, 1353, 1354, 1355, 1356, 1350, 1358, 1361,
1868 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371,
1869 1373, 1374, 1375, 1376, 1377, 1378, 1381, 1380, 1376, 1380,
1870 1383, 1384, 1387, 1388, 1389, 1390, 1391, 1392, 1394, 1395,
1871 1396, 1397, 1399, 1400, 1401, 1396, 1402, 1403, 1405, 1406,
1872 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416,
1873 1417, 1418, 1419, 1420, 1397, 1421, 1423, 1424, 1425, 1427,
1874 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1438,
1875 1440, 1441, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450,
1876
1877 1451, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1462,
1878 1463, 1465, 1466, 1467, 1469, 1470, 1469, 1471, 1472, 1469,
1879 1473, 1474, 1469, 1475, 1476, 1477, 1478, 1479, 1480, 1482,
1880 1484, 1486, 1487, 1489, 1491, 1492, 1493, 1495, 1496, 1497,
1881 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507,
1882 1508, 1509, 1510, 1511, 1501, 1512, 1513, 1514, 1515, 1487,
1883 1516, 1517, 1518, 1519, 1520, 1520, 1521, 1522, 1523, 1524,
1884 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534,
1885 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544,
1886 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1554, 1555,
1887
1888 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565,
1889 1566, 1568, 1569, 1572, 1573, 1574, 1576, 1577, 1578, 1579,
1890 1580, 1581, 1582, 1583, 1521, 1584, 1585, 1586, 1587, 1589,
1891 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1566, 1600,
1892 1601, 1602, 1604, 1605, 1607, 1608, 1609, 1611, 1612, 1613,
1893 1614, 1615, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624,
1894 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634,
1895 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1643, 1644, 1646,
1896 1647, 1648, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657,
1897 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1668,
1898
1899 1669, 1670, 1672, 1673, 1674, 1676, 1677, 1678, 1679, 1680,
1900 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691,
1901 1692, 1693, 1694, 1695, 1696, 1697, 1699, 1700, 1702, 1704,
1902 1706, 1707, 1708, 1702, 1711, 1713, 1714, 1715, 1716, 1717,
1903 1718, 1719, 1720, 1721, 1722, 1723, 1725, 1726, 1727, 1728,
1904 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1739, 1740,
1905 1741, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751,
1906 1752, 1754, 1755, 1756, 1757, 1758, 1760, 1761, 1762, 1763,
1907 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1774, 1775,
1908 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1787,
1909
1910 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1797, 1799,
1911 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809,
1912 1810, 1811, 1809, 1812, 1813, 1814, 1815, 1816, 1817, 1818,
1913 1819, 1820, 1821, 1822, 1824, 1825, 1826, 1827, 1828, 1829,
1914 1830, 1831, 1832, 1834, 1838, 1840, 1841, 1842, 1843, 1844,
1915 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854,
1916 1855, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865,
1917 1866, 1867, 1868, 1869, 1871, 1872, 1873, 1874, 1876, 1878,
1918 1881, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1892,
1919 1893, 1894, 1895, 1896, 1897, 1898, 1900, 1901, 1902, 1903,
1920
1921 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913,
1922 1914, 1915, 1917, 1918, 1919, 1920, 1921, 1922, 1924, 1925,
1923 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935,
1924 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945,
1925 1946, 1947, 1948, 1950, 1951, 1953, 1954, 1955, 1956, 1958,
1926 1959, 1960, 1961, 1965, 1968, 1969, 1970, 1971, 1972, 1973,
1927 1974, 1975, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984,
1928 1986, 1987, 1988, 1989, 1990, 1991, 1993, 1995, 1997, 1998,
1929 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2007,
1930 2009, 2010, 2012, 2013, 2016, 2017, 2018, 2019, 2020, 2021,
1931
1932 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2032,
1933 2033, 2034, 2035, 2038, 2039, 2040, 2042, 2043, 2045, 2047,
1934 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2056, 2061, 2061,
1935 2061, 2062, 2062, 2062, 2063, 2064, 2063, 2065, 2065, 2065,
1936 2066, 2066, 2066, 2067, 716, 2067, 2068, 2068, 2068, 715,
1937 713, 712, 711, 710, 709, 708, 707, 706, 705, 704,
1938 700, 699, 697, 696, 695, 694, 693, 692, 691, 690,
1939 688, 687, 686, 684, 683, 682, 681, 680, 679, 678,
1940 677, 676, 675, 674, 673, 672, 670, 669, 668, 667,
1941 666, 665, 664, 663, 662, 660, 659, 658, 657, 656,
1942
1943 655, 654, 652, 651, 650, 649, 648, 647, 646, 645,
1944 643, 642, 641, 640, 639, 638, 637, 636, 635, 634,
1945 633, 632, 631, 630, 628, 627, 626, 625, 624, 623,
1946 622, 621, 620, 619, 618, 617, 616, 614, 613, 612,
1947 611, 610, 609, 608, 607, 606, 605, 604, 603, 602,
1948 600, 599, 598, 597, 596, 595, 594, 593, 592, 591,
1949 590, 589, 588, 587, 586, 585, 584, 582, 581, 573,
1950 572, 571, 570, 569, 568, 566, 565, 563, 562, 560,
1951 559, 558, 557, 556, 555, 554, 553, 552, 551, 550,
1952 548, 547, 546, 545, 544, 543, 542, 541, 540, 539,
1953
1954 538, 537, 536, 535, 534, 533, 532, 530, 528, 527,
1955 526, 525, 524, 523, 522, 521, 520, 519, 518, 517,
1956 516, 515, 514, 513, 511, 510, 509, 508, 507, 506,
1957 505, 503, 502, 501, 500, 499, 498, 497, 496, 495,
1958 494, 493, 492, 491, 490, 489, 487, 486, 485, 484,
1959 482, 481, 480, 479, 478, 477, 475, 474, 472, 471,
1960 468, 467, 466, 465, 464, 463, 461, 460, 459, 458,
1961 457, 456, 455, 454, 453, 452, 447, 445, 444, 442,
1962 441, 440, 437, 435, 434, 432, 431, 430, 429, 428,
1963 427, 426, 425, 424, 423, 422, 421, 420, 419, 417,
1964
1965 416, 415, 414, 413, 412, 411, 410, 408, 407, 406,
1966 405, 403, 402, 401, 400, 398, 397, 396, 395, 394,
1967 393, 392, 391, 390, 389, 388, 387, 386, 384, 382,
1968 381, 380, 379, 378, 377, 376, 374, 373, 372, 371,
1969 370, 369, 368, 367, 366, 365, 364, 362, 361, 360,
1970 359, 358, 357, 356, 355, 354, 353, 352, 351, 350,
1971 348, 347, 346, 345, 344, 343, 342, 341, 340, 339,
1972 338, 337, 336, 335, 334, 333, 332, 331, 330, 329,
1973 328, 324, 322, 319, 317, 314, 307, 305, 304, 303,
1974 301, 300, 299, 298, 297, 295, 294, 293, 292, 291,
1975
1976 290, 289, 288, 287, 286, 285, 284, 283, 282, 280,
1977 279, 278, 277, 276, 275, 274, 273, 272, 271, 270,
1978 269, 267, 266, 264, 263, 262, 261, 260, 259, 258,
1979 257, 256, 255, 254, 252, 251, 250, 249, 248, 247,
1980 246, 244, 242, 241, 240, 239, 238, 237, 236, 235,
1981 234, 233, 232, 231, 230, 229, 228, 227, 226, 225,
1982 224, 223, 222, 219, 218, 217, 216, 215, 214, 213,
1983 212, 211, 210, 209, 207, 203, 201, 199, 195, 193,
1984 191, 183, 182, 181, 179, 177, 176, 175, 174, 173,
1985 171, 170, 169, 165, 162, 160, 159, 158, 156, 154,
1986
1987 153, 152, 151, 150, 149, 147, 146, 145, 143, 142,
1988 141, 140, 139, 137, 136, 134, 132, 131, 130, 129,
1989 128, 126, 125, 124, 122, 120, 118, 117, 116, 112,
1990 104, 102, 97, 96, 77, 72, 66, 58, 49, 47,
1991 43, 41, 39, 38, 24, 14, 11, 2060, 2060, 2060,
1992 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1993 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1994 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1995 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1996 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1997
1998 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
1999 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060, 2060,
2000 2060
2001 } ;
2002
2003static yy_state_type yy_last_accepting_state;
2004static char *yy_last_accepting_cpos;
2005
2006extern int yy_flex_debug;
2008
2009static const flex_int16_t yy_rule_linenum[214] =
2010 { 0,
2011 146, 148, 150, 155, 156, 161, 162, 163, 175, 178,
2012 183, 190, 199, 208, 217, 226, 235, 244, 254, 263,
2013 272, 281, 290, 299, 308, 317, 326, 335, 344, 353,
2014 362, 371, 380, 389, 401, 410, 419, 428, 439, 450,
2015 461, 472, 483, 494, 505, 516, 527, 536, 545, 554,
2016 565, 574, 585, 596, 607, 618, 630, 642, 654, 665,
2017 676, 685, 694, 703, 712, 721, 732, 743, 754, 765,
2018 776, 787, 798, 809, 819, 830, 839, 849, 863, 879,
2019 888, 897, 906, 915, 937, 959, 968, 978, 987, 998,
2020 1007, 1016, 1025, 1034, 1043, 1054, 1065, 1076, 1086, 1095,
2021
2022 1106, 1117, 1128, 1139, 1151, 1160, 1169, 1178, 1187, 1196,
2023 1205, 1214, 1223, 1232, 1242, 1253, 1265, 1274, 1283, 1293,
2024 1303, 1313, 1323, 1333, 1343, 1352, 1362, 1371, 1380, 1389,
2025 1398, 1408, 1418, 1427, 1437, 1446, 1455, 1464, 1473, 1482,
2026 1491, 1500, 1509, 1518, 1527, 1536, 1545, 1554, 1563, 1572,
2027 1581, 1590, 1599, 1608, 1617, 1626, 1635, 1644, 1653, 1662,
2028 1671, 1680, 1689, 1698, 1707, 1716, 1725, 1734, 1743, 1752,
2029 1764, 1776, 1786, 1796, 1806, 1816, 1826, 1836, 1846, 1856,
2030 1866, 1875, 1884, 1893, 1902, 1913, 1924, 1937, 1950, 1963,
2031 1972, 1981, 1990, 1999, 2008, 2109, 2125, 2174, 2182, 2197,
2032
2033 2198, 2199, 2200, 2201, 2202, 2204, 2222, 2235, 2240, 2244,
2034 2246, 2248, 2250
2035 } ;
2036
2037/* The intent behind this definition is that it'll catch
2038 * any uses of REJECT which flex missed.
2039 */
2040#define REJECT reject_used_but_not_detected
2041#define yymore() yymore_used_but_not_detected
2042#define YY_MORE_ADJ 0
2043#define YY_RESTORE_YY_MORE_OFFSET
2045#line 1 "dhcp4_lexer.ll"
2046/* Copyright (C) 2016-2022 Internet Systems Consortium, Inc. ("ISC")
2047
2048 This Source Code Form is subject to the terms of the Mozilla Public
2049 License, v. 2.0. If a copy of the MPL was not distributed with this
2050 file, You can obtain one at http://mozilla.org/MPL/2.0/. */
2051#line 8 "dhcp4_lexer.ll"
2052
2053/* Generated files do not make clang static analyser so happy */
2054#ifndef __clang_analyzer__
2055
2056#include <cctype>
2057#include <cerrno>
2058#include <climits>
2059#include <cstdlib>
2060#include <string>
2061#include <dhcp4/parser_context.h>
2062#include <asiolink/io_address.h>
2063#include <boost/lexical_cast.hpp>
2064#include <exceptions/exceptions.h>
2065
2066/* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
2067
2068/* Work around an incompatibility in flex (at least versions
2069 2.5.31 through 2.5.33): it generates code that does
2070 not conform to C89. See Debian bug 333231
2071 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
2072# undef yywrap
2073# define yywrap() 1
2074
2075namespace {
2076
2077bool start_token_flag = false;
2078
2080unsigned int comment_start_line = 0;
2081
2082using namespace isc::dhcp;
2083
2084};
2085
2086/* To avoid the call to exit... oops! */
2087#define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
2088#line 2088 "dhcp4_lexer.cc"
2089/* noyywrap disables automatic rewinding for the next file to parse. Since we
2090 always parse only a single string, there's no need to do any wraps. And
2091 using yywrap requires linking with -lfl, which provides the default yywrap
2092 implementation that always returns 1 anyway. */
2093/* nounput simplifies the lexer, by removing support for putting a character
2094 back into the input stream. We never use such capability anyway. */
2095/* batch means that we'll never use the generated lexer interactively. */
2096/* avoid to get static global variables to remain with C++. */
2097/* in last resort %option reentrant */
2098/* Enables debug mode. To see the debug messages, one needs to also set
2099 yy_flex_debug to 1, then the debug messages will be printed on stderr. */
2100/* I have no idea what this option does, except it was specified in the bison
2101 examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
2102 be on the safe side and keep it. */
2103#define YY_NO_INPUT 1
2104
2105/* These are not token expressions yet, just convenience expressions that
2106 can be used during actual token definitions. Note some can match
2107 incorrect inputs (e.g., IP addresses) which must be checked. */
2108/* for errors */
2109#line 95 "dhcp4_lexer.ll"
2110/* This code run each time a pattern is matched. It updates the location
2111 by moving it ahead by yyleng bytes. yyleng specifies the length of the
2112 currently matched token. */
2113#define YY_USER_ACTION driver.loc_.columns(yyleng);
2114#line 2114 "dhcp4_lexer.cc"
2115#line 2115 "dhcp4_lexer.cc"
2116
2117#define INITIAL 0
2118#define COMMENT 1
2119#define DIR_ENTER 2
2120#define DIR_INCLUDE 3
2121#define DIR_EXIT 4
2122
2123#ifndef YY_NO_UNISTD_H
2124/* Special case for "unistd.h", since it is non-ANSI. We include it way
2125 * down here because we want the user's section 1 to have been scanned first.
2126 * The user has a chance to override it with an option.
2127 */
2128/* %if-c-only */
2129#include <unistd.h>
2130/* %endif */
2131/* %if-c++-only */
2132/* %endif */
2133#endif
2134
2135#ifndef YY_EXTRA_TYPE
2136#define YY_EXTRA_TYPE void *
2137#endif
2138
2139/* %if-c-only Reentrant structure and macros (non-C++). */
2140/* %if-reentrant */
2141/* %if-c-only */
2142
2143static int yy_init_globals ( void );
2144
2145/* %endif */
2146/* %if-reentrant */
2147/* %endif */
2148/* %endif End reentrant structures and macros. */
2149
2150/* Accessor methods to globals.
2151 These are made visible to non-reentrant scanners for convenience. */
2152
2153int yylex_destroy ( void );
2154
2155int yyget_debug ( void );
2156
2157void yyset_debug ( int debug_flag );
2158
2159YY_EXTRA_TYPE yyget_extra ( void );
2160
2161void yyset_extra ( YY_EXTRA_TYPE user_defined );
2162
2163FILE *yyget_in ( void );
2164
2165void yyset_in ( FILE * _in_str );
2166
2167FILE *yyget_out ( void );
2168
2169void yyset_out ( FILE * _out_str );
2170
2171 int yyget_leng ( void );
2172
2173char *yyget_text ( void );
2174
2175int yyget_lineno ( void );
2176
2177void yyset_lineno ( int _line_number );
2178
2179/* %if-bison-bridge */
2180/* %endif */
2181
2182/* Macros after this point can all be overridden by user definitions in
2183 * section 1.
2184 */
2185
2186#ifndef YY_SKIP_YYWRAP
2187#ifdef __cplusplus
2188extern "C" int yywrap ( void );
2189#else
2190extern int yywrap ( void );
2191#endif
2192#endif
2193
2194/* %not-for-header */
2195#ifndef YY_NO_UNPUT
2196
2197#endif
2198/* %ok-for-header */
2199
2200/* %endif */
2201
2202#ifndef yytext_ptr
2203static void yy_flex_strncpy ( char *, const char *, int );
2204#endif
2205
2206#ifdef YY_NEED_STRLEN
2207static int yy_flex_strlen ( const char * );
2208#endif
2209
2210#ifndef YY_NO_INPUT
2211/* %if-c-only Standard (non-C++) definition */
2212/* %not-for-header */
2213#ifdef __cplusplus
2214static int yyinput ( void );
2215#else
2216static int input ( void );
2217#endif
2218/* %ok-for-header */
2219
2220/* %endif */
2221#endif
2222
2223/* %if-c-only */
2224
2225/* %endif */
2226
2227/* Amount of stuff to slurp up with each read. */
2228#ifndef YY_READ_BUF_SIZE
2229#ifdef __ia64__
2230/* On IA-64, the buffer size is 16k, not 8k */
2231#define YY_READ_BUF_SIZE 16384
2232#else
2233#define YY_READ_BUF_SIZE 8192
2234#endif /* __ia64__ */
2235#endif
2236
2237/* Copy whatever the last rule matched to the standard output. */
2238#ifndef ECHO
2239/* %if-c-only Standard (non-C++) definition */
2240/* This used to be an fputs(), but since the string might contain NUL's,
2241 * we now use fwrite().
2242 */
2243#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2244/* %endif */
2245/* %if-c++-only C++ definition */
2246/* %endif */
2247#endif
2248
2249/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2250 * is returned in "result".
2251 */
2252#ifndef YY_INPUT
2253#define YY_INPUT(buf,result,max_size) \
2254/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2255 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2256 { \
2257 int c = '*'; \
2258 int n; \
2259 for ( n = 0; n < max_size && \
2260 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2261 buf[n] = (char) c; \
2262 if ( c == '\n' ) \
2263 buf[n++] = (char) c; \
2264 if ( c == EOF && ferror( yyin ) ) \
2265 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2266 result = n; \
2267 } \
2268 else \
2269 { \
2270 errno=0; \
2271 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2272 { \
2273 if( errno != EINTR) \
2274 { \
2275 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2276 break; \
2277 } \
2278 errno=0; \
2279 clearerr(yyin); \
2280 } \
2281 }\
2282\
2283/* %if-c++-only C++ definition \ */\
2284/* %endif */
2285
2286#endif
2287
2288/* No semi-colon after return; correct usage is to write "yyterminate();" -
2289 * we don't want an extra ';' after the "return" because that will cause
2290 * some compilers to complain about unreachable statements.
2291 */
2292#ifndef yyterminate
2293#define yyterminate() return YY_NULL
2294#endif
2295
2296/* Number of entries by which start-condition stack grows. */
2297#ifndef YY_START_STACK_INCR
2298#define YY_START_STACK_INCR 25
2299#endif
2300
2301/* Report a fatal error. */
2302#ifndef YY_FATAL_ERROR
2303/* %if-c-only */
2304#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2305/* %endif */
2306/* %if-c++-only */
2307/* %endif */
2308#endif
2309
2310/* %if-tables-serialization structures and prototypes */
2311/* %not-for-header */
2312/* %ok-for-header */
2313
2314/* %not-for-header */
2315/* %tables-yydmap generated elements */
2316/* %endif */
2317/* end tables serialization structures and prototypes */
2318
2319/* %ok-for-header */
2320
2321/* Default declaration of generated scanner - a define so the user can
2322 * easily add parameters.
2323 */
2324#ifndef YY_DECL
2325#define YY_DECL_IS_OURS 1
2326/* %if-c-only Standard (non-C++) definition */
2327
2328extern int yylex (void);
2329
2330#define YY_DECL int yylex (void)
2331/* %endif */
2332/* %if-c++-only C++ definition */
2333/* %endif */
2334#endif /* !YY_DECL */
2335
2336/* Code executed at the beginning of each rule, after yytext and yyleng
2337 * have been set up.
2338 */
2339#ifndef YY_USER_ACTION
2340#define YY_USER_ACTION
2341#endif
2342
2343/* Code executed at the end of each rule. */
2344#ifndef YY_BREAK
2345#define YY_BREAK /*LINTED*/break;
2346#endif
2347
2348/* %% [6.0] YY_RULE_SETUP definition goes here */
2349#define YY_RULE_SETUP \
2350 YY_USER_ACTION
2351
2352/* %not-for-header */
2356{
2357 yy_state_type yy_current_state;
2358 char *yy_cp, *yy_bp;
2360
2361 if ( !(yy_init) )
2362 {
2363 (yy_init) = 1;
2364
2365#ifdef YY_USER_INIT
2366 YY_USER_INIT;
2367#endif
2368
2369 if ( ! (yy_start) )
2370 (yy_start) = 1; /* first start state */
2371
2372 if ( ! yyin )
2373/* %if-c-only */
2374 yyin = stdin;
2375/* %endif */
2376/* %if-c++-only */
2377/* %endif */
2378
2379 if ( ! yyout )
2380/* %if-c-only */
2381 yyout = stdout;
2382/* %endif */
2383/* %if-c++-only */
2384/* %endif */
2385
2386 if ( ! YY_CURRENT_BUFFER ) {
2390 }
2391
2393 }
2394
2395 {
2396/* %% [7.0] user's declarations go here */
2397#line 101 "dhcp4_lexer.ll"
2398
2399
2400
2401#line 105 "dhcp4_lexer.ll"
2402 /* This part of the code is copied over to the verbatim to the top
2403 of the generated yylex function. Explanation:
2404 http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2405
2406 /* Code run each time yylex is called. */
2407 driver.loc_.step();
2408
2409 if (start_token_flag) {
2410 start_token_flag = false;
2411 switch (start_token_value) {
2412 case Parser4Context::PARSER_JSON:
2413 default:
2415 case Parser4Context::PARSER_DHCP4:
2417 case Parser4Context::SUBPARSER_DHCP4:
2418 return isc::dhcp::Dhcp4Parser::make_SUB_DHCP4(driver.loc_);
2419 case Parser4Context::PARSER_INTERFACES:
2421 case Parser4Context::PARSER_SUBNET4:
2422 return isc::dhcp::Dhcp4Parser::make_SUB_SUBNET4(driver.loc_);
2423 case Parser4Context::PARSER_POOL4:
2424 return isc::dhcp::Dhcp4Parser::make_SUB_POOL4(driver.loc_);
2425 case Parser4Context::PARSER_HOST_RESERVATION:
2427 case Parser4Context::PARSER_OPTION_DEFS:
2429 case Parser4Context::PARSER_OPTION_DEF:
2431 case Parser4Context::PARSER_OPTION_DATA:
2433 case Parser4Context::PARSER_HOOKS_LIBRARY:
2435 case Parser4Context::PARSER_DHCP_DDNS:
2437 case Parser4Context::PARSER_CONFIG_CONTROL:
2439 }
2440 }
2441
2442
2443#line 2443 "dhcp4_lexer.cc"
2444
2445 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2446 {
2447/* %% [8.0] yymore()-related code goes here */
2448 yy_cp = (yy_c_buf_p);
2449
2450 /* Support of yytext. */
2451 *yy_cp = (yy_hold_char);
2452
2453 /* yy_bp points to the position in yy_ch_buf of the start of
2454 * the current run.
2455 */
2456 yy_bp = yy_cp;
2457
2458/* %% [9.0] code to set up and find next match goes here */
2459 yy_current_state = (yy_start);
2460yy_match:
2461 do
2462 {
2463 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2464 if ( yy_accept[yy_current_state] )
2465 {
2466 (yy_last_accepting_state) = yy_current_state;
2467 (yy_last_accepting_cpos) = yy_cp;
2468 }
2469 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2470 {
2471 yy_current_state = (int) yy_def[yy_current_state];
2472 if ( yy_current_state >= 2061 )
2473 yy_c = yy_meta[yy_c];
2474 }
2475 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2476 ++yy_cp;
2477 }
2478 while ( yy_current_state != 2060 );
2479 yy_cp = (yy_last_accepting_cpos);
2480 yy_current_state = (yy_last_accepting_state);
2481
2482yy_find_action:
2483/* %% [10.0] code to find the action number goes here */
2484 yy_act = yy_accept[yy_current_state];
2485
2487
2488/* %% [11.0] code for yylineno update goes here */
2489
2490do_action: /* This label is used only to access EOF actions. */
2491
2492/* %% [12.0] debug code goes here */
2493 if ( yy_flex_debug )
2494 {
2495 if ( yy_act == 0 )
2496 fprintf( stderr, "--scanner backing up\n" );
2497 else if ( yy_act < 214 )
2498 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2499 (long)yy_rule_linenum[yy_act], yytext );
2500 else if ( yy_act == 214 )
2501 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2502 yytext );
2503 else if ( yy_act == 215 )
2504 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2505 else
2506 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2507 }
2508
2509 switch ( yy_act )
2510 { /* beginning of action switch */
2511/* %% [13.0] actions go here */
2512 case 0: /* must back up */
2513 /* undo the effects of YY_DO_BEFORE_ACTION */
2514 *yy_cp = (yy_hold_char);
2515 yy_cp = (yy_last_accepting_cpos);
2516 yy_current_state = (yy_last_accepting_state);
2517 goto yy_find_action;
2518
2519case 1:
2521#line 146 "dhcp4_lexer.ll"
2522;
2523 YY_BREAK
2524case 2:
2526#line 148 "dhcp4_lexer.ll"
2527;
2528 YY_BREAK
2529case 3:
2531#line 150 "dhcp4_lexer.ll"
2532{
2533 BEGIN(COMMENT);
2534 comment_start_line = driver.loc_.end.line;;
2535}
2536 YY_BREAK
2537case 4:
2539#line 155 "dhcp4_lexer.ll"
2540BEGIN(INITIAL);
2541 YY_BREAK
2542case 5:
2544#line 156 "dhcp4_lexer.ll"
2545;
2546 YY_BREAK
2547case YY_STATE_EOF(COMMENT):
2548#line 157 "dhcp4_lexer.ll"
2549{
2550 isc_throw(Dhcp4ParseError, "Comment not closed. (/* in line " << comment_start_line);
2551}
2552 YY_BREAK
2553case 6:
2555#line 161 "dhcp4_lexer.ll"
2557 YY_BREAK
2558case 7:
2560#line 162 "dhcp4_lexer.ll"
2562 YY_BREAK
2563case 8:
2565#line 163 "dhcp4_lexer.ll"
2566{
2567 /* Include directive. */
2568
2569 /* Extract the filename. */
2570 std::string tmp(yytext+1);
2571 tmp.resize(tmp.size() - 1);
2572
2573 driver.includeFile(tmp);
2574}
2575 YY_BREAK
2579#line 172 "dhcp4_lexer.ll"
2580{
2581 isc_throw(Dhcp4ParseError, "Directive not closed.");
2582}
2583 YY_BREAK
2584case 9:
2586#line 175 "dhcp4_lexer.ll"
2587BEGIN(INITIAL);
2588 YY_BREAK
2589case 10:
2591#line 178 "dhcp4_lexer.ll"
2592{
2593 /* Ok, we found a with space. Let's ignore it and update loc variable. */
2594 driver.loc_.step();
2595}
2596 YY_BREAK
2597case 11:
2598/* rule 11 can match eol */
2600#line 183 "dhcp4_lexer.ll"
2601{
2602 /* Newline found. Let's update the location and continue. */
2603 driver.loc_.lines(yyleng);
2604 driver.loc_.step();
2605}
2606 YY_BREAK
2607case 12:
2609#line 190 "dhcp4_lexer.ll"
2610{
2611 switch(driver.ctx_) {
2613 return isc::dhcp::Dhcp4Parser::make_DHCP4(driver.loc_);
2614 default:
2615 return isc::dhcp::Dhcp4Parser::make_STRING("Dhcp4", driver.loc_);
2616 }
2617}
2618 YY_BREAK
2619case 13:
2621#line 199 "dhcp4_lexer.ll"
2622{
2623 switch(driver.ctx_) {
2626 default:
2627 return isc::dhcp::Dhcp4Parser::make_STRING("interfaces-config", driver.loc_);
2628 }
2629}
2630 YY_BREAK
2631case 14:
2633#line 208 "dhcp4_lexer.ll"
2634{
2635 switch(driver.ctx_) {
2638 default:
2639 return isc::dhcp::Dhcp4Parser::make_STRING("sanity-checks", driver.loc_);
2640 }
2641}
2642 YY_BREAK
2643case 15:
2645#line 217 "dhcp4_lexer.ll"
2646{
2647 switch(driver.ctx_) {
2650 default:
2651 return isc::dhcp::Dhcp4Parser::make_STRING("lease-checks", driver.loc_);
2652 }
2653}
2654 YY_BREAK
2655case 16:
2657#line 226 "dhcp4_lexer.ll"
2658{
2659 switch(driver.ctx_) {
2662 default:
2663 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-socket-type", driver.loc_);
2664 }
2665}
2666 YY_BREAK
2667case 17:
2669#line 235 "dhcp4_lexer.ll"
2670{
2671 switch(driver.ctx_) {
2673 return isc::dhcp::Dhcp4Parser::make_RAW(driver.loc_);
2674 default:
2675 return isc::dhcp::Dhcp4Parser::make_STRING("raw", driver.loc_);
2676 }
2677}
2678 YY_BREAK
2679case 18:
2681#line 244 "dhcp4_lexer.ll"
2682{
2683 switch(driver.ctx_) {
2686 return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_);
2687 default:
2688 return isc::dhcp::Dhcp4Parser::make_STRING("udp", driver.loc_);
2689 }
2690}
2691 YY_BREAK
2692case 19:
2694#line 254 "dhcp4_lexer.ll"
2695{
2696 switch(driver.ctx_) {
2697 case Parser4Context::INTERFACES_CONFIG:
2699 default:
2700 return isc::dhcp::Dhcp4Parser::make_STRING("outbound-interface", driver.loc_);
2701 }
2702}
2703 YY_BREAK
2704case 20:
2706#line 263 "dhcp4_lexer.ll"
2707{
2708 switch(driver.ctx_) {
2709 case Parser4Context::OUTBOUND_INTERFACE:
2710 return Dhcp4Parser::make_SAME_AS_INBOUND(driver.loc_);
2711 default:
2712 return Dhcp4Parser::make_STRING("same-as-inbound", driver.loc_);
2713 }
2714}
2715 YY_BREAK
2716case 21:
2718#line 272 "dhcp4_lexer.ll"
2719{
2720 switch(driver.ctx_) {
2721 case Parser4Context::OUTBOUND_INTERFACE:
2722 return Dhcp4Parser::make_USE_ROUTING(driver.loc_);
2723 default:
2724 return Dhcp4Parser::make_STRING("use-routing", driver.loc_);
2725 }
2726}
2727 YY_BREAK
2728case 22:
2730#line 281 "dhcp4_lexer.ll"
2731{
2732 switch(driver.ctx_) {
2734 return isc::dhcp::Dhcp4Parser::make_INTERFACES(driver.loc_);
2735 default:
2736 return isc::dhcp::Dhcp4Parser::make_STRING("interfaces", driver.loc_);
2737 }
2738}
2739 YY_BREAK
2740case 23:
2742#line 290 "dhcp4_lexer.ll"
2743{
2744 switch(driver.ctx_) {
2746 return isc::dhcp::Dhcp4Parser::make_RE_DETECT(driver.loc_);
2747 default:
2748 return isc::dhcp::Dhcp4Parser::make_STRING("re-detect", driver.loc_);
2749 }
2750}
2751 YY_BREAK
2752case 24:
2754#line 299 "dhcp4_lexer.ll"
2755{
2756 switch(driver.ctx_) {
2759 default:
2760 return isc::dhcp::Dhcp4Parser::make_STRING("service-sockets-require-all", driver.loc_);
2761 }
2762}
2763 YY_BREAK
2764case 25:
2766#line 308 "dhcp4_lexer.ll"
2767{
2768 switch(driver.ctx_) {
2771 default:
2772 return isc::dhcp::Dhcp4Parser::make_STRING("service-sockets-retry-wait-time", driver.loc_);
2773 }
2774}
2775 YY_BREAK
2776case 26:
2778#line 317 "dhcp4_lexer.ll"
2779{
2780 switch(driver.ctx_) {
2783 default:
2784 return isc::dhcp::Dhcp4Parser::make_STRING("service-sockets-max-retries", driver.loc_);
2785 }
2786}
2787 YY_BREAK
2788case 27:
2790#line 326 "dhcp4_lexer.ll"
2791{
2792 switch(driver.ctx_) {
2795 default:
2796 return isc::dhcp::Dhcp4Parser::make_STRING("lease-database", driver.loc_);
2797 }
2798}
2799 YY_BREAK
2800case 28:
2802#line 335 "dhcp4_lexer.ll"
2803{
2804 switch(driver.ctx_) {
2807 default:
2808 return isc::dhcp::Dhcp4Parser::make_STRING("hosts-database", driver.loc_);
2809 }
2810}
2811 YY_BREAK
2812case 29:
2814#line 344 "dhcp4_lexer.ll"
2815{
2816 switch(driver.ctx_) {
2819 default:
2820 return isc::dhcp::Dhcp4Parser::make_STRING("hosts-databases", driver.loc_);
2821 }
2822}
2823 YY_BREAK
2824case 30:
2826#line 353 "dhcp4_lexer.ll"
2827{
2828 switch(driver.ctx_) {
2831 default:
2832 return isc::dhcp::Dhcp4Parser::make_STRING("config-control", driver.loc_);
2833 }
2834}
2835 YY_BREAK
2836case 31:
2838#line 362 "dhcp4_lexer.ll"
2839{
2840 switch(driver.ctx_) {
2843 default:
2844 return isc::dhcp::Dhcp4Parser::make_STRING("config-databases", driver.loc_);
2845 }
2846}
2847 YY_BREAK
2848case 32:
2850#line 371 "dhcp4_lexer.ll"
2851{
2852 switch(driver.ctx_) {
2855 default:
2856 return isc::dhcp::Dhcp4Parser::make_STRING("config-fetch-wait-time", driver.loc_);
2857 }
2858}
2859 YY_BREAK
2860case 33:
2862#line 380 "dhcp4_lexer.ll"
2863{
2864 switch(driver.ctx_) {
2866 return isc::dhcp::Dhcp4Parser::make_READONLY(driver.loc_);
2867 default:
2868 return isc::dhcp::Dhcp4Parser::make_STRING("readonly", driver.loc_);
2869 }
2870}
2871 YY_BREAK
2872case 34:
2874#line 389 "dhcp4_lexer.ll"
2875{
2876 switch(driver.ctx_) {
2881 return isc::dhcp::Dhcp4Parser::make_TYPE(driver.loc_);
2882 default:
2883 return isc::dhcp::Dhcp4Parser::make_STRING("type", driver.loc_);
2884 }
2885}
2886 YY_BREAK
2887case 35:
2889#line 401 "dhcp4_lexer.ll"
2890{
2891 switch(driver.ctx_) {
2893 return isc::dhcp::Dhcp4Parser::make_MEMFILE(driver.loc_);
2894 default:
2895 return isc::dhcp::Dhcp4Parser::make_STRING("memfile", driver.loc_);
2896 }
2897}
2898 YY_BREAK
2899case 36:
2901#line 410 "dhcp4_lexer.ll"
2902{
2903 switch(driver.ctx_) {
2905 return isc::dhcp::Dhcp4Parser::make_MYSQL(driver.loc_);
2906 default:
2907 return isc::dhcp::Dhcp4Parser::make_STRING("mysql", driver.loc_);
2908 }
2909}
2910 YY_BREAK
2911case 37:
2913#line 419 "dhcp4_lexer.ll"
2914{
2915 switch(driver.ctx_) {
2917 return isc::dhcp::Dhcp4Parser::make_POSTGRESQL(driver.loc_);
2918 default:
2919 return isc::dhcp::Dhcp4Parser::make_STRING("postgresql", driver.loc_);
2920 }
2921}
2922 YY_BREAK
2923case 38:
2925#line 428 "dhcp4_lexer.ll"
2926{
2927 switch(driver.ctx_) {
2931 return isc::dhcp::Dhcp4Parser::make_USER(driver.loc_);
2932 default:
2933 return isc::dhcp::Dhcp4Parser::make_STRING("user", driver.loc_);
2934 }
2935}
2936 YY_BREAK
2937case 39:
2939#line 439 "dhcp4_lexer.ll"
2940{
2941 switch(driver.ctx_) {
2945 return isc::dhcp::Dhcp4Parser::make_PASSWORD(driver.loc_);
2946 default:
2947 return isc::dhcp::Dhcp4Parser::make_STRING("password", driver.loc_);
2948 }
2949}
2950 YY_BREAK
2951case 40:
2953#line 450 "dhcp4_lexer.ll"
2954{
2955 switch(driver.ctx_) {
2959 return isc::dhcp::Dhcp4Parser::make_HOST(driver.loc_);
2960 default:
2961 return isc::dhcp::Dhcp4Parser::make_STRING("host", driver.loc_);
2962 }
2963}
2964 YY_BREAK
2965case 41:
2967#line 461 "dhcp4_lexer.ll"
2968{
2969 switch(driver.ctx_) {
2973 return isc::dhcp::Dhcp4Parser::make_PORT(driver.loc_);
2974 default:
2975 return isc::dhcp::Dhcp4Parser::make_STRING("port", driver.loc_);
2976 }
2977}
2978 YY_BREAK
2979case 42:
2981#line 472 "dhcp4_lexer.ll"
2982{
2983 switch(driver.ctx_) {
2987 return isc::dhcp::Dhcp4Parser::make_PERSIST(driver.loc_);
2988 default:
2989 return isc::dhcp::Dhcp4Parser::make_STRING("persist", driver.loc_);
2990 }
2991}
2992 YY_BREAK
2993case 43:
2995#line 483 "dhcp4_lexer.ll"
2996{
2997 switch(driver.ctx_) {
3002 default:
3003 return isc::dhcp::Dhcp4Parser::make_STRING("lfc-interval", driver.loc_);
3004 }
3005}
3006 YY_BREAK
3007case 44:
3009#line 494 "dhcp4_lexer.ll"
3010{
3011 switch(driver.ctx_) {
3016 default:
3017 return isc::dhcp::Dhcp4Parser::make_STRING("connect-timeout", driver.loc_);
3018 }
3019}
3020 YY_BREAK
3021case 45:
3023#line 505 "dhcp4_lexer.ll"
3024{
3025 switch(driver.ctx_) {
3030 default:
3031 return isc::dhcp::Dhcp4Parser::make_STRING("reconnect-wait-time", driver.loc_);
3032 }
3033}
3034 YY_BREAK
3035case 46:
3037#line 516 "dhcp4_lexer.ll"
3038{
3039 switch(driver.ctx_) {
3043 return isc::dhcp::Dhcp4Parser::make_ON_FAIL(driver.loc_);
3044 default:
3045 return isc::dhcp::Dhcp4Parser::make_STRING("on-fail", driver.loc_);
3046 }
3047}
3048 YY_BREAK
3049case 47:
3051#line 527 "dhcp4_lexer.ll"
3052{
3053 switch(driver.ctx_) {
3056 default:
3057 return isc::dhcp::Dhcp4Parser::make_STRING("stop-retry-exit", driver.loc_);
3058 }
3059}
3060 YY_BREAK
3061case 48:
3063#line 536 "dhcp4_lexer.ll"
3064{
3065 switch(driver.ctx_) {
3068 default:
3069 return isc::dhcp::Dhcp4Parser::make_STRING("serve-retry-exit", driver.loc_);
3070 }
3071}
3072 YY_BREAK
3073case 49:
3075#line 545 "dhcp4_lexer.ll"
3076{
3077 switch(driver.ctx_) {
3080 default:
3081 return isc::dhcp::Dhcp4Parser::make_STRING("serve-retry-continue", driver.loc_);
3082 }
3083}
3084 YY_BREAK
3085case 50:
3087#line 554 "dhcp4_lexer.ll"
3088{
3089 switch(driver.ctx_) {
3094 default:
3095 return isc::dhcp::Dhcp4Parser::make_STRING("max-reconnect-tries", driver.loc_);
3096 }
3097}
3098 YY_BREAK
3099case 51:
3101#line 565 "dhcp4_lexer.ll"
3102{
3103 switch(driver.ctx_) {
3106 default:
3107 return isc::dhcp::Dhcp4Parser::make_STRING("max-row-errors", driver.loc_);
3108 }
3109}
3110 YY_BREAK
3111case 52:
3113#line 574 "dhcp4_lexer.ll"
3114{
3115 switch(driver.ctx_) {
3120 default:
3121 return isc::dhcp::Dhcp4Parser::make_STRING("trust-anchor", driver.loc_);
3122 }
3123}
3124 YY_BREAK
3125case 53:
3127#line 585 "dhcp4_lexer.ll"
3128{
3129 switch(driver.ctx_) {
3133 return isc::dhcp::Dhcp4Parser::make_CERT_FILE(driver.loc_);
3134 default:
3135 return isc::dhcp::Dhcp4Parser::make_STRING("cert-file", driver.loc_);
3136 }
3137}
3138 YY_BREAK
3139case 54:
3141#line 596 "dhcp4_lexer.ll"
3142{
3143 switch(driver.ctx_) {
3147 return isc::dhcp::Dhcp4Parser::make_KEY_FILE(driver.loc_);
3148 default:
3149 return isc::dhcp::Dhcp4Parser::make_STRING("key-file", driver.loc_);
3150 }
3151}
3152 YY_BREAK
3153case 55:
3155#line 607 "dhcp4_lexer.ll"
3156{
3157 switch(driver.ctx_) {
3161 return isc::dhcp::Dhcp4Parser::make_CIPHER_LIST(driver.loc_);
3162 default:
3163 return isc::dhcp::Dhcp4Parser::make_STRING("cipher-list", driver.loc_);
3164 }
3165}
3166 YY_BREAK
3167case 56:
3169#line 618 "dhcp4_lexer.ll"
3170{
3171 switch(driver.ctx_) {
3177 default:
3178 return isc::dhcp::Dhcp4Parser::make_STRING("valid-lifetime", driver.loc_);
3179 }
3180}
3181 YY_BREAK
3182case 57:
3184#line 630 "dhcp4_lexer.ll"
3185{
3186 switch(driver.ctx_) {
3192 default:
3193 return isc::dhcp::Dhcp4Parser::make_STRING("min-valid-lifetime", driver.loc_);
3194 }
3195}
3196 YY_BREAK
3197case 58:
3199#line 642 "dhcp4_lexer.ll"
3200{
3201 switch(driver.ctx_) {
3207 default:
3208 return isc::dhcp::Dhcp4Parser::make_STRING("max-valid-lifetime", driver.loc_);
3209 }
3210}
3211 YY_BREAK
3212case 59:
3214#line 654 "dhcp4_lexer.ll"
3215{
3216 switch(driver.ctx_) {
3220 return isc::dhcp::Dhcp4Parser::make_RENEW_TIMER(driver.loc_);
3221 default:
3222 return isc::dhcp::Dhcp4Parser::make_STRING("renew-timer", driver.loc_);
3223 }
3224}
3225 YY_BREAK
3226case 60:
3228#line 665 "dhcp4_lexer.ll"
3229{
3230 switch(driver.ctx_) {
3235 default:
3236 return isc::dhcp::Dhcp4Parser::make_STRING("rebind-timer", driver.loc_);
3237 }
3238}
3239 YY_BREAK
3240case 61:
3242#line 676 "dhcp4_lexer.ll"
3243{
3244 switch(driver.ctx_) {
3247 default:
3248 return isc::dhcp::Dhcp4Parser::make_STRING("decline-probation-period", driver.loc_);
3249 }
3250}
3251 YY_BREAK
3252case 62:
3254#line 685 "dhcp4_lexer.ll"
3255{
3256 switch(driver.ctx_) {
3258 return isc::dhcp::Dhcp4Parser::make_SERVER_TAG(driver.loc_);
3259 default:
3260 return isc::dhcp::Dhcp4Parser::make_STRING("server-tag", driver.loc_);
3261 }
3262}
3263 YY_BREAK
3264case 63:
3266#line 694 "dhcp4_lexer.ll"
3267{
3268 switch(driver.ctx_) {
3271 default:
3272 return isc::dhcp::Dhcp4Parser::make_STRING("parked-packet-limit", driver.loc_);
3273 }
3274}
3275 YY_BREAK
3276case 64:
3278#line 703 "dhcp4_lexer.ll"
3279{
3280 switch(driver.ctx_) {
3283 default:
3284 return isc::dhcp::Dhcp4Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3285 }
3286}
3287 YY_BREAK
3288case 65:
3290#line 712 "dhcp4_lexer.ll"
3291{
3292 switch(driver.ctx_) {
3295 default:
3296 return isc::dhcp::Dhcp4Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3297 }
3298}
3299 YY_BREAK
3300case 66:
3302#line 721 "dhcp4_lexer.ll"
3303{
3304 switch(driver.ctx_) {
3309 default:
3310 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-send-updates", driver.loc_);
3311 }
3312}
3313 YY_BREAK
3314case 67:
3316#line 732 "dhcp4_lexer.ll"
3317{
3318 switch(driver.ctx_) {
3323 default:
3324 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-no-update", driver.loc_);
3325 }
3326}
3327 YY_BREAK
3328case 68:
3330#line 743 "dhcp4_lexer.ll"
3331{
3332 switch(driver.ctx_) {
3337 default:
3338 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-client-update", driver.loc_);
3339 }
3340}
3341 YY_BREAK
3342case 69:
3344#line 754 "dhcp4_lexer.ll"
3345{
3346 switch(driver.ctx_) {
3351 default:
3352 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3353 }
3354}
3355 YY_BREAK
3356case 70:
3358#line 765 "dhcp4_lexer.ll"
3359{
3360 switch(driver.ctx_) {
3365 default:
3366 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-generated-prefix", driver.loc_);
3367 }
3368}
3369 YY_BREAK
3370case 71:
3372#line 776 "dhcp4_lexer.ll"
3373{
3374 switch(driver.ctx_) {
3379 default:
3380 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
3381 }
3382}
3383 YY_BREAK
3384case 72:
3386#line 787 "dhcp4_lexer.ll"
3387{
3388 switch(driver.ctx_) {
3393 default:
3394 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-update-on-renew", driver.loc_);
3395 }
3396}
3397 YY_BREAK
3398case 73:
3400#line 798 "dhcp4_lexer.ll"
3401{
3402 switch(driver.ctx_) {
3407 default:
3408 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
3409 }
3410}
3411 YY_BREAK
3412case 74:
3414#line 809 "dhcp4_lexer.ll"
3415{
3416 switch(driver.ctx_) {
3419 return isc::dhcp::Dhcp4Parser::make_SUBNET4(driver.loc_);
3420 default:
3421 return isc::dhcp::Dhcp4Parser::make_STRING("subnet4", driver.loc_);
3422 }
3423}
3424 YY_BREAK
3425case 75:
3427#line 819 "dhcp4_lexer.ll"
3428{
3429 switch(driver.ctx_) {
3434 default:
3435 return isc::dhcp::Dhcp4Parser::make_STRING("store-extended-info", driver.loc_);
3436 }
3437}
3438 YY_BREAK
3439case 76:
3441#line 830 "dhcp4_lexer.ll"
3442{
3443 switch (driver.ctx_) {
3446 default:
3447 return isc::dhcp::Dhcp4Parser::make_STRING("shared-networks", driver.loc_);
3448 }
3449}
3450 YY_BREAK
3451case 77:
3453#line 839 "dhcp4_lexer.ll"
3454{
3455 switch(driver.ctx_) {
3458 return isc::dhcp::Dhcp4Parser::make_OPTION_DEF(driver.loc_);
3459 default:
3460 return isc::dhcp::Dhcp4Parser::make_STRING("option-def", driver.loc_);
3461 }
3462}
3463 YY_BREAK
3464case 78:
3466#line 849 "dhcp4_lexer.ll"
3467{
3468 switch(driver.ctx_) {
3475 return isc::dhcp::Dhcp4Parser::make_OPTION_DATA(driver.loc_);
3476 default:
3477 return isc::dhcp::Dhcp4Parser::make_STRING("option-data", driver.loc_);
3478 }
3479}
3480 YY_BREAK
3481case 79:
3483#line 863 "dhcp4_lexer.ll"
3484{
3485 switch(driver.ctx_) {
3494 return isc::dhcp::Dhcp4Parser::make_NAME(driver.loc_);
3495 default:
3496 return isc::dhcp::Dhcp4Parser::make_STRING("name", driver.loc_);
3497 }
3498}
3499 YY_BREAK
3500case 80:
3502#line 879 "dhcp4_lexer.ll"
3503{
3504 switch(driver.ctx_) {
3506 return isc::dhcp::Dhcp4Parser::make_DATA(driver.loc_);
3507 default:
3508 return isc::dhcp::Dhcp4Parser::make_STRING("data", driver.loc_);
3509 }
3510}
3511 YY_BREAK
3512case 81:
3514#line 888 "dhcp4_lexer.ll"
3515{
3516 switch(driver.ctx_) {
3518 return isc::dhcp::Dhcp4Parser::make_ALWAYS_SEND(driver.loc_);
3519 default:
3520 return isc::dhcp::Dhcp4Parser::make_STRING("always-send", driver.loc_);
3521 }
3522}
3523 YY_BREAK
3524case 82:
3526#line 897 "dhcp4_lexer.ll"
3527{
3528 switch(driver.ctx_) {
3530 return isc::dhcp::Dhcp4Parser::make_POOLS(driver.loc_);
3531 default:
3532 return isc::dhcp::Dhcp4Parser::make_STRING("pools", driver.loc_);
3533 }
3534}
3535 YY_BREAK
3536case 83:
3538#line 906 "dhcp4_lexer.ll"
3539{
3540 switch(driver.ctx_) {
3542 return isc::dhcp::Dhcp4Parser::make_POOL(driver.loc_);
3543 default:
3544 return isc::dhcp::Dhcp4Parser::make_STRING("pool", driver.loc_);
3545 }
3546}
3547 YY_BREAK
3548case 84:
3550#line 915 "dhcp4_lexer.ll"
3551{
3552 switch(driver.ctx_) {
3568 default:
3569 return isc::dhcp::Dhcp4Parser::make_STRING("user-context", driver.loc_);
3570 }
3571}
3572 YY_BREAK
3573case 85:
3575#line 937 "dhcp4_lexer.ll"
3576{
3577 switch(driver.ctx_) {
3592 return isc::dhcp::Dhcp4Parser::make_COMMENT(driver.loc_);
3593 default:
3594 return isc::dhcp::Dhcp4Parser::make_STRING("comment", driver.loc_);
3595 }
3596}
3597 YY_BREAK
3598case 86:
3600#line 959 "dhcp4_lexer.ll"
3601{
3602 switch(driver.ctx_) {
3604 return isc::dhcp::Dhcp4Parser::make_SUBNET(driver.loc_);
3605 default:
3606 return isc::dhcp::Dhcp4Parser::make_STRING("subnet", driver.loc_);
3607 }
3608}
3609 YY_BREAK
3610case 87:
3612#line 968 "dhcp4_lexer.ll"
3613{
3614 switch(driver.ctx_) {
3617 return isc::dhcp::Dhcp4Parser::make_INTERFACE(driver.loc_);
3618 default:
3619 return isc::dhcp::Dhcp4Parser::make_STRING("interface", driver.loc_);
3620 }
3621}
3622 YY_BREAK
3623case 88:
3625#line 978 "dhcp4_lexer.ll"
3626{
3627 switch(driver.ctx_) {
3629 return isc::dhcp::Dhcp4Parser::make_ID(driver.loc_);
3630 default:
3631 return isc::dhcp::Dhcp4Parser::make_STRING("id", driver.loc_);
3632 }
3633}
3634 YY_BREAK
3635case 89:
3637#line 987 "dhcp4_lexer.ll"
3638{
3639 switch(driver.ctx_) {
3644 default:
3645 return isc::dhcp::Dhcp4Parser::make_STRING("reservation-mode", driver.loc_);
3646 }
3647}
3648 YY_BREAK
3649case 90:
3651#line 998 "dhcp4_lexer.ll"
3652{
3653 switch(driver.ctx_) {
3655 return isc::dhcp::Dhcp4Parser::make_DISABLED(driver.loc_);
3656 default:
3657 return isc::dhcp::Dhcp4Parser::make_STRING("disabled", driver.loc_);
3658 }
3659}
3660 YY_BREAK
3661case 91:
3663#line 1007 "dhcp4_lexer.ll"
3664{
3665 switch(driver.ctx_) {
3667 return isc::dhcp::Dhcp4Parser::make_DISABLED(driver.loc_);
3668 default:
3669 return isc::dhcp::Dhcp4Parser::make_STRING("off", driver.loc_);
3670 }
3671}
3672 YY_BREAK
3673case 92:
3675#line 1016 "dhcp4_lexer.ll"
3676{
3677 switch(driver.ctx_) {
3679 return isc::dhcp::Dhcp4Parser::make_OUT_OF_POOL(driver.loc_);
3680 default:
3681 return isc::dhcp::Dhcp4Parser::make_STRING("out-of-pool", driver.loc_);
3682 }
3683}
3684 YY_BREAK
3685case 93:
3687#line 1025 "dhcp4_lexer.ll"
3688{
3689 switch(driver.ctx_) {
3691 return isc::dhcp::Dhcp4Parser::make_GLOBAL(driver.loc_);
3692 default:
3693 return isc::dhcp::Dhcp4Parser::make_STRING("global", driver.loc_);
3694 }
3695}
3696 YY_BREAK
3697case 94:
3699#line 1034 "dhcp4_lexer.ll"
3700{
3701 switch(driver.ctx_) {
3703 return isc::dhcp::Dhcp4Parser::make_ALL(driver.loc_);
3704 default:
3705 return isc::dhcp::Dhcp4Parser::make_STRING("all", driver.loc_);
3706 }
3707}
3708 YY_BREAK
3709case 95:
3711#line 1043 "dhcp4_lexer.ll"
3712{
3713 switch(driver.ctx_) {
3718 default:
3719 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-global", driver.loc_);
3720 }
3721}
3722 YY_BREAK
3723case 96:
3725#line 1054 "dhcp4_lexer.ll"
3726{
3727 switch(driver.ctx_) {
3732 default:
3733 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-in-subnet", driver.loc_);
3734 }
3735}
3736 YY_BREAK
3737case 97:
3739#line 1065 "dhcp4_lexer.ll"
3740{
3741 switch(driver.ctx_) {
3746 default:
3747 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-out-of-pool", driver.loc_);
3748 }
3749}
3750 YY_BREAK
3751case 98:
3753#line 1076 "dhcp4_lexer.ll"
3754{
3755 switch(driver.ctx_) {
3758 return isc::dhcp::Dhcp4Parser::make_CODE(driver.loc_);
3759 default:
3760 return isc::dhcp::Dhcp4Parser::make_STRING("code", driver.loc_);
3761 }
3762}
3763 YY_BREAK
3764case 99:
3766#line 1086 "dhcp4_lexer.ll"
3767{
3768 switch(driver.ctx_) {
3771 default:
3772 return isc::dhcp::Dhcp4Parser::make_STRING("host-reservation-identifiers", driver.loc_);
3773 }
3774}
3775 YY_BREAK
3776case 100:
3778#line 1095 "dhcp4_lexer.ll"
3779{
3780 switch(driver.ctx_) {
3785 default:
3786 return isc::dhcp::Dhcp4Parser::make_STRING("calculate-tee-times", driver.loc_);
3787 }
3788}
3789 YY_BREAK
3790case 101:
3792#line 1106 "dhcp4_lexer.ll"
3793{
3794 switch(driver.ctx_) {
3798 return isc::dhcp::Dhcp4Parser::make_T1_PERCENT(driver.loc_);
3799 default:
3800 return isc::dhcp::Dhcp4Parser::make_STRING("t1-percent", driver.loc_);
3801 }
3802}
3803 YY_BREAK
3804case 102:
3806#line 1117 "dhcp4_lexer.ll"
3807{
3808 switch(driver.ctx_) {
3812 return isc::dhcp::Dhcp4Parser::make_T2_PERCENT(driver.loc_);
3813 default:
3814 return isc::dhcp::Dhcp4Parser::make_STRING("t2-percent", driver.loc_);
3815 }
3816}
3817 YY_BREAK
3818case 103:
3820#line 1128 "dhcp4_lexer.ll"
3821{
3822 switch(driver.ctx_) {
3827 default:
3828 return isc::dhcp::Dhcp4Parser::make_STRING("cache-threshold", driver.loc_);
3829 }
3830}
3831 YY_BREAK
3832case 104:
3834#line 1139 "dhcp4_lexer.ll"
3835{
3836 switch(driver.ctx_) {
3841 default:
3842 return isc::dhcp::Dhcp4Parser::make_STRING("cache-max-age", driver.loc_);
3843 }
3844}
3845 YY_BREAK
3846case 105:
3848#line 1151 "dhcp4_lexer.ll"
3849{
3850 switch(driver.ctx_) {
3852 return isc::dhcp::Dhcp4Parser::make_LOGGERS(driver.loc_);
3853 default:
3854 return isc::dhcp::Dhcp4Parser::make_STRING("loggers", driver.loc_);
3855 }
3856}
3857 YY_BREAK
3858case 106:
3860#line 1160 "dhcp4_lexer.ll"
3861{
3862 switch(driver.ctx_) {
3865 default:
3866 return isc::dhcp::Dhcp4Parser::make_STRING("output_options", driver.loc_);
3867 }
3868}
3869 YY_BREAK
3870case 107:
3872#line 1169 "dhcp4_lexer.ll"
3873{
3874 switch(driver.ctx_) {
3876 return isc::dhcp::Dhcp4Parser::make_OUTPUT(driver.loc_);
3877 default:
3878 return isc::dhcp::Dhcp4Parser::make_STRING("output", driver.loc_);
3879 }
3880}
3881 YY_BREAK
3882case 108:
3884#line 1178 "dhcp4_lexer.ll"
3885{
3886 switch(driver.ctx_) {
3888 return isc::dhcp::Dhcp4Parser::make_DEBUGLEVEL(driver.loc_);
3889 default:
3890 return isc::dhcp::Dhcp4Parser::make_STRING("debuglevel", driver.loc_);
3891 }
3892}
3893 YY_BREAK
3894case 109:
3896#line 1187 "dhcp4_lexer.ll"
3897{
3898 switch(driver.ctx_) {
3900 return isc::dhcp::Dhcp4Parser::make_FLUSH(driver.loc_);
3901 default:
3902 return isc::dhcp::Dhcp4Parser::make_STRING("flush", driver.loc_);
3903 }
3904}
3905 YY_BREAK
3906case 110:
3908#line 1196 "dhcp4_lexer.ll"
3909{
3910 switch(driver.ctx_) {
3912 return isc::dhcp::Dhcp4Parser::make_MAXSIZE(driver.loc_);
3913 default:
3914 return isc::dhcp::Dhcp4Parser::make_STRING("maxsize", driver.loc_);
3915 }
3916}
3917 YY_BREAK
3918case 111:
3920#line 1205 "dhcp4_lexer.ll"
3921{
3922 switch(driver.ctx_) {
3924 return isc::dhcp::Dhcp4Parser::make_MAXVER(driver.loc_);
3925 default:
3926 return isc::dhcp::Dhcp4Parser::make_STRING("maxver", driver.loc_);
3927 }
3928}
3929 YY_BREAK
3930case 112:
3932#line 1214 "dhcp4_lexer.ll"
3933{
3934 switch(driver.ctx_) {
3936 return isc::dhcp::Dhcp4Parser::make_PATTERN(driver.loc_);
3937 default:
3938 return isc::dhcp::Dhcp4Parser::make_STRING("pattern", driver.loc_);
3939 }
3940}
3941 YY_BREAK
3942case 113:
3944#line 1223 "dhcp4_lexer.ll"
3945{
3946 switch(driver.ctx_) {
3948 return isc::dhcp::Dhcp4Parser::make_SEVERITY(driver.loc_);
3949 default:
3950 return isc::dhcp::Dhcp4Parser::make_STRING("severity", driver.loc_);
3951 }
3952}
3953 YY_BREAK
3954case 114:
3956#line 1232 "dhcp4_lexer.ll"
3957{
3958 switch(driver.ctx_) {
3962 default:
3963 return isc::dhcp::Dhcp4Parser::make_STRING("client-classes", driver.loc_);
3964 }
3965}
3966 YY_BREAK
3967case 115:
3969#line 1242 "dhcp4_lexer.ll"
3970{
3971 switch(driver.ctx_) {
3976 default:
3977 return isc::dhcp::Dhcp4Parser::make_STRING("require-client-classes", driver.loc_);
3978 }
3979}
3980 YY_BREAK
3981case 116:
3983#line 1253 "dhcp4_lexer.ll"
3984{
3985 switch(driver.ctx_) {
3991 default:
3992 return isc::dhcp::Dhcp4Parser::make_STRING("client-class", driver.loc_);
3993 }
3994}
3995 YY_BREAK
3996case 117:
3998#line 1265 "dhcp4_lexer.ll"
3999{
4000 switch(driver.ctx_) {
4002 return isc::dhcp::Dhcp4Parser::make_TEST(driver.loc_);
4003 default:
4004 return isc::dhcp::Dhcp4Parser::make_STRING("test", driver.loc_);
4005 }
4006}
4007 YY_BREAK
4008case 118:
4010#line 1274 "dhcp4_lexer.ll"
4011{
4012 switch(driver.ctx_) {
4015 default:
4016 return isc::dhcp::Dhcp4Parser::make_STRING("only-if-required", driver.loc_);
4017 }
4018}
4019 YY_BREAK
4020case 119:
4022#line 1283 "dhcp4_lexer.ll"
4023{
4024 switch(driver.ctx_) {
4028 default:
4029 return isc::dhcp::Dhcp4Parser::make_STRING("reservations", driver.loc_);
4030 }
4031}
4032 YY_BREAK
4033case 120:
4035#line 1293 "dhcp4_lexer.ll"
4036{
4037 switch(driver.ctx_) {
4040 return isc::dhcp::Dhcp4Parser::make_DUID(driver.loc_);
4041 default:
4042 return isc::dhcp::Dhcp4Parser::make_STRING("duid", driver.loc_);
4043 }
4044}
4045 YY_BREAK
4046case 121:
4048#line 1303 "dhcp4_lexer.ll"
4049{
4050 switch(driver.ctx_) {
4053 return isc::dhcp::Dhcp4Parser::make_HW_ADDRESS(driver.loc_);
4054 default:
4055 return isc::dhcp::Dhcp4Parser::make_STRING("hw-address", driver.loc_);
4056 }
4057}
4058 YY_BREAK
4059case 122:
4061#line 1313 "dhcp4_lexer.ll"
4062{
4063 switch(driver.ctx_) {
4066 return isc::dhcp::Dhcp4Parser::make_CLIENT_ID(driver.loc_);
4067 default:
4068 return isc::dhcp::Dhcp4Parser::make_STRING("client-id", driver.loc_);
4069 }
4070}
4071 YY_BREAK
4072case 123:
4074#line 1323 "dhcp4_lexer.ll"
4075{
4076 switch(driver.ctx_) {
4079 return isc::dhcp::Dhcp4Parser::make_CIRCUIT_ID(driver.loc_);
4080 default:
4081 return isc::dhcp::Dhcp4Parser::make_STRING("circuit-id", driver.loc_);
4082 }
4083}
4084 YY_BREAK
4085case 124:
4087#line 1333 "dhcp4_lexer.ll"
4088{
4089 switch(driver.ctx_) {
4092 return isc::dhcp::Dhcp4Parser::make_FLEX_ID(driver.loc_);
4093 default:
4094 return isc::dhcp::Dhcp4Parser::make_STRING("flex-id", driver.loc_);
4095 }
4096}
4097 YY_BREAK
4098case 125:
4100#line 1343 "dhcp4_lexer.ll"
4101{
4102 switch(driver.ctx_) {
4104 return isc::dhcp::Dhcp4Parser::make_HOSTNAME(driver.loc_);
4105 default:
4106 return isc::dhcp::Dhcp4Parser::make_STRING("hostname", driver.loc_);
4107 }
4108}
4109 YY_BREAK
4110case 126:
4112#line 1352 "dhcp4_lexer.ll"
4113{
4114 switch(driver.ctx_) {
4117 return isc::dhcp::Dhcp4Parser::make_SPACE(driver.loc_);
4118 default:
4119 return isc::dhcp::Dhcp4Parser::make_STRING("space", driver.loc_);
4120 }
4121}
4122 YY_BREAK
4123case 127:
4125#line 1362 "dhcp4_lexer.ll"
4126{
4127 switch(driver.ctx_) {
4129 return isc::dhcp::Dhcp4Parser::make_CSV_FORMAT(driver.loc_);
4130 default:
4131 return isc::dhcp::Dhcp4Parser::make_STRING("csv-format", driver.loc_);
4132 }
4133}
4134 YY_BREAK
4135case 128:
4137#line 1371 "dhcp4_lexer.ll"
4138{
4139 switch(driver.ctx_) {
4142 default:
4143 return isc::dhcp::Dhcp4Parser::make_STRING("record-types", driver.loc_);
4144 }
4145}
4146 YY_BREAK
4147case 129:
4149#line 1380 "dhcp4_lexer.ll"
4150{
4151 switch(driver.ctx_) {
4153 return isc::dhcp::Dhcp4Parser::make_ENCAPSULATE(driver.loc_);
4154 default:
4155 return isc::dhcp::Dhcp4Parser::make_STRING("encapsulate", driver.loc_);
4156 }
4157}
4158 YY_BREAK
4159case 130:
4161#line 1389 "dhcp4_lexer.ll"
4162{
4163 switch(driver.ctx_) {
4165 return isc::dhcp::Dhcp4Parser::make_ARRAY(driver.loc_);
4166 default:
4167 return isc::dhcp::Dhcp4Parser::make_STRING("array", driver.loc_);
4168 }
4169}
4170 YY_BREAK
4171case 131:
4173#line 1398 "dhcp4_lexer.ll"
4174{
4175 switch(driver.ctx_) {
4178 return isc::dhcp::Dhcp4Parser::make_RELAY(driver.loc_);
4179 default:
4180 return isc::dhcp::Dhcp4Parser::make_STRING("relay", driver.loc_);
4181 }
4182}
4183 YY_BREAK
4184case 132:
4186#line 1408 "dhcp4_lexer.ll"
4187{
4188 switch(driver.ctx_) {
4191 return isc::dhcp::Dhcp4Parser::make_IP_ADDRESS(driver.loc_);
4192 default:
4193 return isc::dhcp::Dhcp4Parser::make_STRING("ip-address", driver.loc_);
4194 }
4195}
4196 YY_BREAK
4197case 133:
4199#line 1418 "dhcp4_lexer.ll"
4200{
4201 switch(driver.ctx_) {
4204 default:
4205 return isc::dhcp::Dhcp4Parser::make_STRING("ip-addresses", driver.loc_);
4206 }
4207}
4208 YY_BREAK
4209case 134:
4211#line 1427 "dhcp4_lexer.ll"
4212{
4213 switch(driver.ctx_) {
4216 default:
4217 return isc::dhcp::Dhcp4Parser::make_STRING("hooks-libraries", driver.loc_);
4218 }
4219}
4220 YY_BREAK
4221case 135:
4223#line 1437 "dhcp4_lexer.ll"
4224{
4225 switch(driver.ctx_) {
4227 return isc::dhcp::Dhcp4Parser::make_PARAMETERS(driver.loc_);
4228 default:
4229 return isc::dhcp::Dhcp4Parser::make_STRING("parameters", driver.loc_);
4230 }
4231}
4232 YY_BREAK
4233case 136:
4235#line 1446 "dhcp4_lexer.ll"
4236{
4237 switch(driver.ctx_) {
4239 return isc::dhcp::Dhcp4Parser::make_LIBRARY(driver.loc_);
4240 default:
4241 return isc::dhcp::Dhcp4Parser::make_STRING("library", driver.loc_);
4242 }
4243}
4244 YY_BREAK
4245case 137:
4247#line 1455 "dhcp4_lexer.ll"
4248{
4249 switch(driver.ctx_) {
4252 default:
4253 return isc::dhcp::Dhcp4Parser::make_STRING("expired-leases-processing", driver.loc_);
4254 }
4255}
4256 YY_BREAK
4257case 138:
4259#line 1464 "dhcp4_lexer.ll"
4260{
4261 switch(driver.ctx_) {
4264 default:
4265 return isc::dhcp::Dhcp4Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
4266 }
4267}
4268 YY_BREAK
4269case 139:
4271#line 1473 "dhcp4_lexer.ll"
4272{
4273 switch(driver.ctx_) {
4276 default:
4277 return isc::dhcp::Dhcp4Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
4278 }
4279}
4280 YY_BREAK
4281case 140:
4283#line 1482 "dhcp4_lexer.ll"
4284{
4285 switch(driver.ctx_) {
4288 default:
4289 return isc::dhcp::Dhcp4Parser::make_STRING("hold-reclaimed-time", driver.loc_);
4290 }
4291}
4292 YY_BREAK
4293case 141:
4295#line 1491 "dhcp4_lexer.ll"
4296{
4297 switch(driver.ctx_) {
4300 default:
4301 return isc::dhcp::Dhcp4Parser::make_STRING("max-reclaim-leases", driver.loc_);
4302 }
4303}
4304 YY_BREAK
4305case 142:
4307#line 1500 "dhcp4_lexer.ll"
4308{
4309 switch(driver.ctx_) {
4312 default:
4313 return isc::dhcp::Dhcp4Parser::make_STRING("max-reclaim-time", driver.loc_);
4314 }
4315}
4316 YY_BREAK
4317case 143:
4319#line 1509 "dhcp4_lexer.ll"
4320{
4321 switch(driver.ctx_) {
4324 default:
4325 return isc::dhcp::Dhcp4Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
4326 }
4327}
4328 YY_BREAK
4329case 144:
4331#line 1518 "dhcp4_lexer.ll"
4332{
4333 switch(driver.ctx_) {
4336 default:
4337 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp4o6-port", driver.loc_);
4338 }
4339}
4340 YY_BREAK
4341case 145:
4343#line 1527 "dhcp4_lexer.ll"
4344{
4345 switch(driver.ctx_) {
4348 default:
4349 return isc::dhcp::Dhcp4Parser::make_STRING("multi-threading", driver.loc_);
4350 }
4351}
4352 YY_BREAK
4353case 146:
4355#line 1536 "dhcp4_lexer.ll"
4356{
4357 switch(driver.ctx_) {
4360 default:
4361 return isc::dhcp::Dhcp4Parser::make_STRING("enable-multi-threading", driver.loc_);
4362 }
4363}
4364 YY_BREAK
4365case 147:
4367#line 1545 "dhcp4_lexer.ll"
4368{
4369 switch(driver.ctx_) {
4372 default:
4373 return isc::dhcp::Dhcp4Parser::make_STRING("thread-pool-size", driver.loc_);
4374 }
4375}
4376 YY_BREAK
4377case 148:
4379#line 1554 "dhcp4_lexer.ll"
4380{
4381 switch(driver.ctx_) {
4384 default:
4385 return isc::dhcp::Dhcp4Parser::make_STRING("packet-queue-size", driver.loc_);
4386 }
4387}
4388 YY_BREAK
4389case 149:
4391#line 1563 "dhcp4_lexer.ll"
4392{
4393 switch(driver.ctx_) {
4396 default:
4397 return isc::dhcp::Dhcp4Parser::make_STRING("control-socket", driver.loc_);
4398 }
4399}
4400 YY_BREAK
4401case 150:
4403#line 1572 "dhcp4_lexer.ll"
4404{
4405 switch(driver.ctx_) {
4407 return isc::dhcp::Dhcp4Parser::make_SOCKET_TYPE(driver.loc_);
4408 default:
4409 return isc::dhcp::Dhcp4Parser::make_STRING("socket-type", driver.loc_);
4410 }
4411}
4412 YY_BREAK
4413case 151:
4415#line 1581 "dhcp4_lexer.ll"
4416{
4417 switch(driver.ctx_) {
4419 return isc::dhcp::Dhcp4Parser::make_SOCKET_NAME(driver.loc_);
4420 default:
4421 return isc::dhcp::Dhcp4Parser::make_STRING("socket-name", driver.loc_);
4422 }
4423}
4424 YY_BREAK
4425case 152:
4427#line 1590 "dhcp4_lexer.ll"
4428{
4429 switch(driver.ctx_) {
4432 default:
4433 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-queue-control", driver.loc_);
4434 }
4435}
4436 YY_BREAK
4437case 153:
4439#line 1599 "dhcp4_lexer.ll"
4440{
4441 switch(driver.ctx_) {
4444 default:
4445 return isc::dhcp::Dhcp4Parser::make_STRING("enable-queue", driver.loc_);
4446 }
4447}
4448 YY_BREAK
4449case 154:
4451#line 1608 "dhcp4_lexer.ll"
4452{
4453 switch(driver.ctx_) {
4455 return isc::dhcp::Dhcp4Parser::make_QUEUE_TYPE(driver.loc_);
4456 default:
4457 return isc::dhcp::Dhcp4Parser::make_STRING("queue-type", driver.loc_);
4458 }
4459}
4460 YY_BREAK
4461case 155:
4463#line 1617 "dhcp4_lexer.ll"
4464{
4465 switch(driver.ctx_) {
4467 return isc::dhcp::Dhcp4Parser::make_CAPACITY(driver.loc_);
4468 default:
4469 return isc::dhcp::Dhcp4Parser::make_STRING("capacity", driver.loc_);
4470 }
4471}
4472 YY_BREAK
4473case 156:
4475#line 1626 "dhcp4_lexer.ll"
4476{
4477 switch(driver.ctx_) {
4479 return isc::dhcp::Dhcp4Parser::make_DHCP_DDNS(driver.loc_);
4480 default:
4481 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-ddns", driver.loc_);
4482 }
4483}
4484 YY_BREAK
4485case 157:
4487#line 1635 "dhcp4_lexer.ll"
4488{
4489 switch(driver.ctx_) {
4492 default:
4493 return isc::dhcp::Dhcp4Parser::make_STRING("enable-updates", driver.loc_);
4494 }
4495}
4496 YY_BREAK
4497case 158:
4499#line 1644 "dhcp4_lexer.ll"
4500{
4501 switch(driver.ctx_) {
4504 default:
4505 return isc::dhcp::Dhcp4Parser::make_STRING("qualifying-suffix", driver.loc_);
4506 }
4507}
4508 YY_BREAK
4509case 159:
4511#line 1653 "dhcp4_lexer.ll"
4512{
4513 switch(driver.ctx_) {
4515 return isc::dhcp::Dhcp4Parser::make_SERVER_IP(driver.loc_);
4516 default:
4517 return isc::dhcp::Dhcp4Parser::make_STRING("server-ip", driver.loc_);
4518 }
4519}
4520 YY_BREAK
4521case 160:
4523#line 1662 "dhcp4_lexer.ll"
4524{
4525 switch(driver.ctx_) {
4527 return isc::dhcp::Dhcp4Parser::make_SERVER_PORT(driver.loc_);
4528 default:
4529 return isc::dhcp::Dhcp4Parser::make_STRING("server-port", driver.loc_);
4530 }
4531}
4532 YY_BREAK
4533case 161:
4535#line 1671 "dhcp4_lexer.ll"
4536{
4537 switch(driver.ctx_) {
4539 return isc::dhcp::Dhcp4Parser::make_SENDER_IP(driver.loc_);
4540 default:
4541 return isc::dhcp::Dhcp4Parser::make_STRING("sender-ip", driver.loc_);
4542 }
4543}
4544 YY_BREAK
4545case 162:
4547#line 1680 "dhcp4_lexer.ll"
4548{
4549 switch(driver.ctx_) {
4551 return isc::dhcp::Dhcp4Parser::make_SENDER_PORT(driver.loc_);
4552 default:
4553 return isc::dhcp::Dhcp4Parser::make_STRING("sender-port", driver.loc_);
4554 }
4555}
4556 YY_BREAK
4557case 163:
4559#line 1689 "dhcp4_lexer.ll"
4560{
4561 switch(driver.ctx_) {
4564 default:
4565 return isc::dhcp::Dhcp4Parser::make_STRING("max-queue-size", driver.loc_);
4566 }
4567}
4568 YY_BREAK
4569case 164:
4571#line 1698 "dhcp4_lexer.ll"
4572{
4573 switch(driver.ctx_) {
4576 default:
4577 return isc::dhcp::Dhcp4Parser::make_STRING("ncr-protocol", driver.loc_);
4578 }
4579}
4580 YY_BREAK
4581case 165:
4583#line 1707 "dhcp4_lexer.ll"
4584{
4585 switch(driver.ctx_) {
4587 return isc::dhcp::Dhcp4Parser::make_NCR_FORMAT(driver.loc_);
4588 default:
4589 return isc::dhcp::Dhcp4Parser::make_STRING("ncr-format", driver.loc_);
4590 }
4591}
4592 YY_BREAK
4593case 166:
4595#line 1716 "dhcp4_lexer.ll"
4596{
4597 switch(driver.ctx_) {
4600 default:
4601 return isc::dhcp::Dhcp4Parser::make_STRING("override-no-update", driver.loc_);
4602 }
4603}
4604 YY_BREAK
4605case 167:
4607#line 1725 "dhcp4_lexer.ll"
4608{
4609 switch(driver.ctx_) {
4612 default:
4613 return isc::dhcp::Dhcp4Parser::make_STRING("override-client-update", driver.loc_);
4614 }
4615}
4616 YY_BREAK
4617case 168:
4619#line 1734 "dhcp4_lexer.ll"
4620{
4621 switch(driver.ctx_) {
4624 default:
4625 return isc::dhcp::Dhcp4Parser::make_STRING("replace-client-name", driver.loc_);
4626 }
4627}
4628 YY_BREAK
4629case 169:
4631#line 1743 "dhcp4_lexer.ll"
4632{
4633 switch(driver.ctx_) {
4636 default:
4637 return isc::dhcp::Dhcp4Parser::make_STRING("generated-prefix", driver.loc_);
4638 }
4639}
4640 YY_BREAK
4641case 170:
4643#line 1752 "dhcp4_lexer.ll"
4644{
4645 switch(driver.ctx_) {
4651 default:
4652 return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-set", driver.loc_);
4653 }
4654}
4655 YY_BREAK
4656case 171:
4658#line 1764 "dhcp4_lexer.ll"
4659{
4660 switch(driver.ctx_) {
4666 default:
4667 return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-replacement", driver.loc_);
4668 }
4669}
4670 YY_BREAK
4671case 172:
4673#line 1776 "dhcp4_lexer.ll"
4674{
4675 /* dhcp-ddns value keywords are case insensitive */
4676 if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
4677 return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_);
4678 }
4679 std::string tmp(yytext+1);
4680 tmp.resize(tmp.size() - 1);
4681 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4682}
4683 YY_BREAK
4684case 173:
4686#line 1786 "dhcp4_lexer.ll"
4687{
4688 /* dhcp-ddns value keywords are case insensitive */
4689 if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
4690 return isc::dhcp::Dhcp4Parser::make_TCP(driver.loc_);
4691 }
4692 std::string tmp(yytext+1);
4693 tmp.resize(tmp.size() - 1);
4694 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4695}
4696 YY_BREAK
4697case 174:
4699#line 1796 "dhcp4_lexer.ll"
4700{
4701 /* dhcp-ddns value keywords are case insensitive */
4702 if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
4703 return isc::dhcp::Dhcp4Parser::make_JSON(driver.loc_);
4704 }
4705 std::string tmp(yytext+1);
4706 tmp.resize(tmp.size() - 1);
4707 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4708}
4709 YY_BREAK
4710case 175:
4712#line 1806 "dhcp4_lexer.ll"
4713{
4714 /* dhcp-ddns value keywords are case insensitive */
4717 }
4718 std::string tmp(yytext+1);
4719 tmp.resize(tmp.size() - 1);
4720 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4721}
4722 YY_BREAK
4723case 176:
4725#line 1816 "dhcp4_lexer.ll"
4726{
4727 /* dhcp-ddns value keywords are case insensitive */
4730 }
4731 std::string tmp(yytext+1);
4732 tmp.resize(tmp.size() - 1);
4733 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4734}
4735 YY_BREAK
4736case 177:
4738#line 1826 "dhcp4_lexer.ll"
4739{
4740 /* dhcp-ddns value keywords are case insensitive */
4742 return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
4743 }
4744 std::string tmp(yytext+1);
4745 tmp.resize(tmp.size() - 1);
4746 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4747}
4748 YY_BREAK
4749case 178:
4751#line 1836 "dhcp4_lexer.ll"
4752{
4753 /* dhcp-ddns value keywords are case insensitive */
4755 return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
4756 }
4757 std::string tmp(yytext+1);
4758 tmp.resize(tmp.size() - 1);
4759 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4760}
4761 YY_BREAK
4762case 179:
4764#line 1846 "dhcp4_lexer.ll"
4765{
4766 /* dhcp-ddns value keywords are case insensitive */
4768 return isc::dhcp::Dhcp4Parser::make_ALWAYS(driver.loc_);
4769 }
4770 std::string tmp(yytext+1);
4771 tmp.resize(tmp.size() - 1);
4772 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4773}
4774 YY_BREAK
4775case 180:
4777#line 1856 "dhcp4_lexer.ll"
4778{
4779 /* dhcp-ddns value keywords are case insensitive */
4782 }
4783 std::string tmp(yytext+1);
4784 tmp.resize(tmp.size() - 1);
4785 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4786}
4787 YY_BREAK
4788case 181:
4790#line 1866 "dhcp4_lexer.ll"
4791{
4792 switch(driver.ctx_) {
4795 default:
4796 return isc::dhcp::Dhcp4Parser::make_STRING("4o6-interface", driver.loc_);
4797 }
4798}
4799 YY_BREAK
4800case 182:
4802#line 1875 "dhcp4_lexer.ll"
4803{
4804 switch(driver.ctx_) {
4807 default:
4808 return isc::dhcp::Dhcp4Parser::make_STRING("4o6-interface-id", driver.loc_);
4809 }
4810}
4811 YY_BREAK
4812case 183:
4814#line 1884 "dhcp4_lexer.ll"
4815{
4816 switch(driver.ctx_) {
4819 default:
4820 return isc::dhcp::Dhcp4Parser::make_STRING("4o6-subnet", driver.loc_);
4821 }
4822}
4823 YY_BREAK
4824case 184:
4826#line 1893 "dhcp4_lexer.ll"
4827{
4828 switch(driver.ctx_) {
4831 default:
4832 return isc::dhcp::Dhcp4Parser::make_STRING("echo-client-id", driver.loc_);
4833 }
4834}
4835 YY_BREAK
4836case 185:
4838#line 1902 "dhcp4_lexer.ll"
4839{
4840 switch(driver.ctx_) {
4845 default:
4846 return isc::dhcp::Dhcp4Parser::make_STRING("match-client-id", driver.loc_);
4847 }
4848}
4849 YY_BREAK
4850case 186:
4852#line 1913 "dhcp4_lexer.ll"
4853{
4854 switch(driver.ctx_) {
4859 default:
4860 return isc::dhcp::Dhcp4Parser::make_STRING("authoritative", driver.loc_);
4861 }
4862}
4863 YY_BREAK
4864case 187:
4866#line 1924 "dhcp4_lexer.ll"
4867{
4868 switch(driver.ctx_) {
4874 return isc::dhcp::Dhcp4Parser::make_NEXT_SERVER(driver.loc_);
4875 default:
4876 return isc::dhcp::Dhcp4Parser::make_STRING("next-server", driver.loc_);
4877 }
4878}
4879 YY_BREAK
4880case 188:
4882#line 1937 "dhcp4_lexer.ll"
4883{
4884 switch(driver.ctx_) {
4891 default:
4892 return isc::dhcp::Dhcp4Parser::make_STRING("server-hostname", driver.loc_);
4893 }
4894}
4895 YY_BREAK
4896case 189:
4898#line 1950 "dhcp4_lexer.ll"
4899{
4900 switch(driver.ctx_) {
4907 default:
4908 return isc::dhcp::Dhcp4Parser::make_STRING("boot-file-name", driver.loc_);
4909 }
4910}
4911 YY_BREAK
4912case 190:
4914#line 1963 "dhcp4_lexer.ll"
4915{
4916 switch(driver.ctx_) {
4919 default:
4920 return isc::dhcp::Dhcp4Parser::make_STRING("early-global-reservations-lookup", driver.loc_);
4921 }
4922}
4923 YY_BREAK
4924case 191:
4926#line 1972 "dhcp4_lexer.ll"
4927{
4928 switch(driver.ctx_) {
4931 default:
4932 return isc::dhcp::Dhcp4Parser::make_STRING("ip-reservations-unique", driver.loc_);
4933 }
4934}
4935 YY_BREAK
4936case 192:
4938#line 1981 "dhcp4_lexer.ll"
4939{
4940 switch(driver.ctx_) {
4943 default:
4944 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-lookup-first", driver.loc_);
4945 }
4946}
4947 YY_BREAK
4948case 193:
4950#line 1990 "dhcp4_lexer.ll"
4951{
4952 switch(driver.ctx_) {
4955 default:
4956 return isc::dhcp::Dhcp4Parser::make_STRING("compatibility", driver.loc_);
4957 }
4958}
4959 YY_BREAK
4960case 194:
4962#line 1999 "dhcp4_lexer.ll"
4963{
4964 switch(driver.ctx_) {
4967 default:
4968 return isc::dhcp::Dhcp4Parser::make_STRING("lenient-option-parsing", driver.loc_);
4969 }
4970}
4971 YY_BREAK
4972case 195:
4974#line 2008 "dhcp4_lexer.ll"
4975{
4976 /* A string has been matched. It contains the actual string and single quotes.
4977 We need to get those quotes out of the way and just use its content, e.g.
4978 for 'foo' we should get foo */
4979 std::string raw(yytext+1);
4980 size_t len = raw.size() - 1;
4981 raw.resize(len);
4982 std::string decoded;
4983 decoded.reserve(len);
4984 for (size_t pos = 0; pos < len; ++pos) {
4985 int b = 0;
4986 char c = raw[pos];
4987 switch (c) {
4988 case '"':
4989 /* impossible condition */
4990 driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
4991 break;
4992 case '\\':
4993 ++pos;
4994 if (pos >= len) {
4995 /* impossible condition */
4996 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
4997 }
4998 c = raw[pos];
4999 switch (c) {
5000 case '"':
5001 case '\\':
5002 case '/':
5003 decoded.push_back(c);
5004 break;
5005 case 'b':
5006 decoded.push_back('\b');
5007 break;
5008 case 'f':
5009 decoded.push_back('\f');
5010 break;
5011 case 'n':
5012 decoded.push_back('\n');
5013 break;
5014 case 'r':
5015 decoded.push_back('\r');
5016 break;
5017 case 't':
5018 decoded.push_back('\t');
5019 break;
5020 case 'u':
5021 /* support only \u0000 to \u00ff */
5022 ++pos;
5023 if (pos + 4 > len) {
5024 /* impossible condition */
5025 driver.error(driver.loc_,
5026 "Overflow unicode escape in \"" + raw + "\"");
5027 }
5028 if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
5029 driver.error(driver.loc_,
5030 "Unsupported unicode escape in \"" + raw + "\"",
5031 pos + 1);
5032 }
5033 pos += 2;
5034 c = raw[pos];
5035 if ((c >= '0') && (c <= '9')) {
5036 b = (c - '0') << 4;
5037 } else if ((c >= 'A') && (c <= 'F')) {
5038 b = (c - 'A' + 10) << 4;
5039 } else if ((c >= 'a') && (c <= 'f')) {
5040 b = (c - 'a' + 10) << 4;
5041 } else {
5042 /* impossible condition */
5043 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5044 }
5045 pos++;
5046 c = raw[pos];
5047 if ((c >= '0') && (c <= '9')) {
5048 b |= c - '0';
5049 } else if ((c >= 'A') && (c <= 'F')) {
5050 b |= c - 'A' + 10;
5051 } else if ((c >= 'a') && (c <= 'f')) {
5052 b |= c - 'a' + 10;
5053 } else {
5054 /* impossible condition */
5055 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5056 }
5057 decoded.push_back(static_cast<char>(b & 0xff));
5058 break;
5059 default:
5060 /* impossible condition */
5061 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5062 }
5063 break;
5064 default:
5065 if ((c >= 0) && (c < 0x20)) {
5066 /* impossible condition */
5067 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5068 }
5069 decoded.push_back(c);
5070 }
5071 }
5072
5073 return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_);
5074}
5075 YY_BREAK
5076case 196:
5077/* rule 196 can match eol */
5079#line 2109 "dhcp4_lexer.ll"
5080{
5081 /* Bad string with a forbidden control character inside */
5082 std::string raw(yytext+1);
5083 size_t len = raw.size() - 1;
5084 size_t pos = 0;
5085 for (; pos < len; ++pos) {
5086 char c = raw[pos];
5087 if ((c >= 0) && (c < 0x20)) {
5088 break;
5089 }
5090 }
5091 driver.error(driver.loc_,
5092 "Invalid control in " + std::string(yytext),
5093 pos + 1);
5094}
5095 YY_BREAK
5096case 197:
5097/* rule 197 can match eol */
5099#line 2125 "dhcp4_lexer.ll"
5100{
5101 /* Bad string with a bad escape inside */
5102 std::string raw(yytext+1);
5103 size_t len = raw.size() - 1;
5104 size_t pos = 0;
5105 bool found = false;
5106 for (; pos < len; ++pos) {
5107 if (found) {
5108 break;
5109 }
5110 char c = raw[pos];
5111 if (c == '\\') {
5112 ++pos;
5113 c = raw[pos];
5114 switch (c) {
5115 case '"':
5116 case '\\':
5117 case '/':
5118 case 'b':
5119 case 'f':
5120 case 'n':
5121 case 'r':
5122 case 't':
5123 break;
5124 case 'u':
5125 if ((pos + 4 > len) ||
5126 !std::isxdigit(raw[pos + 1]) ||
5127 !std::isxdigit(raw[pos + 2]) ||
5128 !std::isxdigit(raw[pos + 3]) ||
5129 !std::isxdigit(raw[pos + 4])) {
5130 found = true;
5131 }
5132 break;
5133 default:
5134 found = true;
5135 break;
5136 }
5137 }
5138 }
5139 /* The rule stops on the first " including on \" so add ... in this case */
5140 std::string trailer = "";
5141 if (raw[len - 1] == '\\') {
5142 trailer = "...";
5143 }
5144 driver.error(driver.loc_,
5145 "Bad escape in " + std::string(yytext) + trailer,
5146 pos);
5147}
5148 YY_BREAK
5149case 198:
5151#line 2174 "dhcp4_lexer.ll"
5152{
5153 /* Bad string with an open escape at the end */
5154 std::string raw(yytext+1);
5155 driver.error(driver.loc_,
5156 "Overflow escape in " + std::string(yytext),
5157 raw.size() + 1);
5158}
5159 YY_BREAK
5160case 199:
5162#line 2182 "dhcp4_lexer.ll"
5163{
5164 /* Bad string with an open unicode escape at the end */
5165 std::string raw(yytext+1);
5166 size_t pos = raw.size() - 1;
5167 for (; pos > 0; --pos) {
5168 char c = raw[pos];
5169 if (c == 'u') {
5170 break;
5171 }
5172 }
5173 driver.error(driver.loc_,
5174 "Overflow unicode escape in " + std::string(yytext),
5175 pos + 1);
5176}
5177 YY_BREAK
5178case 200:
5180#line 2197 "dhcp4_lexer.ll"
5181{ return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
5182 YY_BREAK
5183case 201:
5185#line 2198 "dhcp4_lexer.ll"
5186{ return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
5187 YY_BREAK
5188case 202:
5190#line 2199 "dhcp4_lexer.ll"
5191{ return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
5192 YY_BREAK
5193case 203:
5195#line 2200 "dhcp4_lexer.ll"
5196{ return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
5197 YY_BREAK
5198case 204:
5200#line 2201 "dhcp4_lexer.ll"
5201{ return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
5202 YY_BREAK
5203case 205:
5205#line 2202 "dhcp4_lexer.ll"
5206{ return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
5207 YY_BREAK
5208case 206:
5210#line 2204 "dhcp4_lexer.ll"
5211{
5212 /* An integer was found. */
5213 std::string tmp(yytext);
5214 int64_t integer = 0;
5215 try {
5216 /* In substring we want to use negative values (e.g. -1).
5217 In enterprise-id we need to use values up to 0xffffffff.
5218 To cover both of those use cases, we need at least
5219 int64_t. */
5220 integer = boost::lexical_cast<int64_t>(tmp);
5221 } catch (const boost::bad_lexical_cast &) {
5222 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5223 }
5224
5225 /* The parser needs the string form as double conversion is no lossless */
5226 return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_);
5227}
5228 YY_BREAK
5229case 207:
5231#line 2222 "dhcp4_lexer.ll"
5232{
5233 /* A floating point was found. */
5234 std::string tmp(yytext);
5235 double fp = 0.0;
5236 try {
5237 fp = boost::lexical_cast<double>(tmp);
5238 } catch (const boost::bad_lexical_cast &) {
5239 driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
5240 }
5241
5242 return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_);
5243}
5244 YY_BREAK
5245case 208:
5247#line 2235 "dhcp4_lexer.ll"
5248{
5249 string tmp(yytext);
5250 return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
5251}
5252 YY_BREAK
5253case 209:
5255#line 2240 "dhcp4_lexer.ll"
5256{
5257 return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
5258}
5259 YY_BREAK
5260case 210:
5262#line 2244 "dhcp4_lexer.ll"
5263driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
5264 YY_BREAK
5265case 211:
5267#line 2246 "dhcp4_lexer.ll"
5268driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
5269 YY_BREAK
5270case 212:
5272#line 2248 "dhcp4_lexer.ll"
5273driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
5274 YY_BREAK
5275case 213:
5277#line 2250 "dhcp4_lexer.ll"
5278driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
5279 YY_BREAK
5280case YY_STATE_EOF(INITIAL):
5281#line 2252 "dhcp4_lexer.ll"
5282{
5283 if (driver.states_.empty()) {
5284 return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
5285 }
5286 driver.loc_ = driver.locs_.back();
5287 driver.locs_.pop_back();
5288 driver.file_ = driver.files_.back();
5289 driver.files_.pop_back();
5290 if (driver.sfile_) {
5291 fclose(driver.sfile_);
5292 driver.sfile_ = 0;
5293 }
5294 if (!driver.sfiles_.empty()) {
5295 driver.sfile_ = driver.sfiles_.back();
5296 driver.sfiles_.pop_back();
5297 }
5298 parser4__delete_buffer(YY_CURRENT_BUFFER);
5299 parser4__switch_to_buffer(driver.states_.back());
5300 driver.states_.pop_back();
5301
5302 BEGIN(DIR_EXIT);
5303}
5304 YY_BREAK
5305case 214:
5307#line 2275 "dhcp4_lexer.ll"
5308ECHO;
5309 YY_BREAK
5310#line 5310 "dhcp4_lexer.cc"
5311
5312 case YY_END_OF_BUFFER:
5313 {
5314 /* Amount of text matched not including the EOB char. */
5315 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5316
5317 /* Undo the effects of YY_DO_BEFORE_ACTION. */
5318 *yy_cp = (yy_hold_char);
5320
5321 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5322 {
5323 /* We're scanning a new file or input source. It's
5324 * possible that this happened because the user
5325 * just pointed yyin at a new source and called
5326 * yylex(). If so, then we have to assure
5327 * consistency between YY_CURRENT_BUFFER and our
5328 * globals. Here is the right place to do so, because
5329 * this is the first action (other than possibly a
5330 * back-up) that will match for the new input source.
5331 */
5332 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5333/* %if-c-only */
5334 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
5335/* %endif */
5336/* %if-c++-only */
5337/* %endif */
5338 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5339 }
5340
5341 /* Note that here we test for yy_c_buf_p "<=" to the position
5342 * of the first EOB in the buffer, since yy_c_buf_p will
5343 * already have been incremented past the NUL character
5344 * (since all states make transitions on EOB to the
5345 * end-of-buffer state). Contrast this with the test
5346 * in input().
5347 */
5348 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5349 { /* This was really a NUL. */
5350 yy_state_type yy_next_state;
5351
5352 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5353
5354 yy_current_state = yy_get_previous_state( );
5355
5356 /* Okay, we're now positioned to make the NUL
5357 * transition. We couldn't have
5358 * yy_get_previous_state() go ahead and do it
5359 * for us because it doesn't know how to deal
5360 * with the possibility of jamming (and we don't
5361 * want to build jamming into it because then it
5362 * will run more slowly).
5363 */
5364
5365 yy_next_state = yy_try_NUL_trans( yy_current_state );
5366
5368
5369 if ( yy_next_state )
5370 {
5371 /* Consume the NUL. */
5372 yy_cp = ++(yy_c_buf_p);
5373 yy_current_state = yy_next_state;
5374 goto yy_match;
5375 }
5376
5377 else
5378 {
5379/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
5380 yy_cp = (yy_last_accepting_cpos);
5381 yy_current_state = (yy_last_accepting_state);
5382 goto yy_find_action;
5383 }
5384 }
5385
5386 else switch ( yy_get_next_buffer( ) )
5387 {
5389 {
5390 (yy_did_buffer_switch_on_eof) = 0;
5391
5392 if ( yywrap( ) )
5393 {
5394 /* Note: because we've taken care in
5395 * yy_get_next_buffer() to have set up
5396 * yytext, we can now set up
5397 * yy_c_buf_p so that if some total
5398 * hoser (like flex itself) wants to
5399 * call the scanner after we return the
5400 * YY_NULL, it'll still work - another
5401 * YY_NULL will get returned.
5402 */
5403 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5404
5406 goto do_action;
5407 }
5408
5409 else
5410 {
5411 if ( ! (yy_did_buffer_switch_on_eof) )
5413 }
5414 break;
5415 }
5416
5418 (yy_c_buf_p) =
5419 (yytext_ptr) + yy_amount_of_matched_text;
5420
5421 yy_current_state = yy_get_previous_state( );
5422
5423 yy_cp = (yy_c_buf_p);
5425 goto yy_match;
5426
5427 case EOB_ACT_LAST_MATCH:
5428 (yy_c_buf_p) =
5429 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5430
5431 yy_current_state = yy_get_previous_state( );
5432
5433 yy_cp = (yy_c_buf_p);
5435 goto yy_find_action;
5436 }
5437 break;
5438 }
5439
5440 default:
5442 "fatal flex scanner internal error--no action found" );
5443 } /* end of action switch */
5444 } /* end of scanning one token */
5445 } /* end of user's declarations */
5446} /* end of yylex */
5447/* %ok-for-header */
5448
5449/* %if-c++-only */
5450/* %not-for-header */
5451/* %ok-for-header */
5452
5453/* %endif */
5454
5455/* yy_get_next_buffer - try to read in a new buffer
5456 *
5457 * Returns a code representing an action:
5458 * EOB_ACT_LAST_MATCH -
5459 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5460 * EOB_ACT_END_OF_FILE - end of file
5461 */
5462/* %if-c-only */
5463static int yy_get_next_buffer (void)
5464/* %endif */
5465/* %if-c++-only */
5466/* %endif */
5467{
5468 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5469 char *source = (yytext_ptr);
5470 int number_to_move, i;
5471 int ret_val;
5472
5473 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
5475 "fatal flex scanner internal error--end of buffer missed" );
5476
5477 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
5478 { /* Don't try to fill the buffer, so this is an EOF. */
5479 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
5480 {
5481 /* We matched a single character, the EOB, so
5482 * treat this as a final EOF.
5483 */
5484 return EOB_ACT_END_OF_FILE;
5485 }
5486
5487 else
5488 {
5489 /* We matched some text prior to the EOB, first
5490 * process it.
5491 */
5492 return EOB_ACT_LAST_MATCH;
5493 }
5494 }
5495
5496 /* Try to read more data. */
5497
5498 /* First move last chars to start of buffer. */
5499 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
5500
5501 for ( i = 0; i < number_to_move; ++i )
5502 *(dest++) = *(source++);
5503
5504 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
5505 /* don't do the read, it's not guaranteed to return an EOF,
5506 * just force an EOF
5507 */
5508 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
5509
5510 else
5511 {
5512 int num_to_read =
5513 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
5514
5515 while ( num_to_read <= 0 )
5516 { /* Not enough room in the buffer - grow it. */
5517
5518 /* just a shorter name for the current buffer */
5520
5521 int yy_c_buf_p_offset =
5522 (int) ((yy_c_buf_p) - b->yy_ch_buf);
5523
5524 if ( b->yy_is_our_buffer )
5525 {
5526 int new_size = b->yy_buf_size * 2;
5527
5528 if ( new_size <= 0 )
5529 b->yy_buf_size += b->yy_buf_size / 8;
5530 else
5531 b->yy_buf_size *= 2;
5532
5533 b->yy_ch_buf = (char *)
5534 /* Include room in for 2 EOB chars. */
5535 yyrealloc( (void *) b->yy_ch_buf,
5536 (yy_size_t) (b->yy_buf_size + 2) );
5537 }
5538 else
5539 /* Can't grow it, we don't own it. */
5540 b->yy_ch_buf = NULL;
5541
5542 if ( ! b->yy_ch_buf )
5544 "fatal error - scanner input buffer overflow" );
5545
5546 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
5547
5548 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
5549 number_to_move - 1;
5550
5551 }
5552
5553 if ( num_to_read > YY_READ_BUF_SIZE )
5554 num_to_read = YY_READ_BUF_SIZE;
5555
5556 /* Read in more data. */
5557 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
5558 (yy_n_chars), num_to_read );
5559
5560 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5561 }
5562
5563 if ( (yy_n_chars) == 0 )
5564 {
5565 if ( number_to_move == YY_MORE_ADJ )
5566 {
5567 ret_val = EOB_ACT_END_OF_FILE;
5568 yyrestart( yyin );
5569 }
5570
5571 else
5572 {
5573 ret_val = EOB_ACT_LAST_MATCH;
5574 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
5576 }
5577 }
5578
5579 else
5580 ret_val = EOB_ACT_CONTINUE_SCAN;
5581
5582 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
5583 /* Extend the array by 50%, plus the number we really need. */
5584 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
5585 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
5586 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
5587 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
5588 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
5589 /* "- 2" to take care of EOB's */
5590 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
5591 }
5592
5593 (yy_n_chars) += number_to_move;
5594 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
5595 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
5596
5597 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
5598
5599 return ret_val;
5600}
5601
5602/* yy_get_previous_state - get the state just before the EOB char was reached */
5603
5604/* %if-c-only */
5605/* %not-for-header */
5606 static yy_state_type yy_get_previous_state (void)
5607/* %endif */
5608/* %if-c++-only */
5609/* %endif */
5610{
5611 yy_state_type yy_current_state;
5612 char *yy_cp;
5613
5614/* %% [15.0] code to get the start state into yy_current_state goes here */
5615 yy_current_state = (yy_start);
5616
5617 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
5618 {
5619/* %% [16.0] code to find the next state goes here */
5620 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
5621 if ( yy_accept[yy_current_state] )
5622 {
5623 (yy_last_accepting_state) = yy_current_state;
5624 (yy_last_accepting_cpos) = yy_cp;
5625 }
5626 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5627 {
5628 yy_current_state = (int) yy_def[yy_current_state];
5629 if ( yy_current_state >= 2061 )
5630 yy_c = yy_meta[yy_c];
5631 }
5632 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5633 }
5634
5635 return yy_current_state;
5636}
5637
5638/* yy_try_NUL_trans - try to make a transition on the NUL character
5639 *
5640 * synopsis
5641 * next_state = yy_try_NUL_trans( current_state );
5642 */
5643/* %if-c-only */
5644 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
5645/* %endif */
5646/* %if-c++-only */
5647/* %endif */
5648{
5649 int yy_is_jam;
5650 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
5651 char *yy_cp = (yy_c_buf_p);
5652
5653 YY_CHAR yy_c = 1;
5654 if ( yy_accept[yy_current_state] )
5655 {
5656 (yy_last_accepting_state) = yy_current_state;
5657 (yy_last_accepting_cpos) = yy_cp;
5658 }
5659 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5660 {
5661 yy_current_state = (int) yy_def[yy_current_state];
5662 if ( yy_current_state >= 2061 )
5663 yy_c = yy_meta[yy_c];
5664 }
5665 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5666 yy_is_jam = (yy_current_state == 2060);
5667
5668 return yy_is_jam ? 0 : yy_current_state;
5669}
5670
5671#ifndef YY_NO_UNPUT
5672/* %if-c-only */
5673
5674/* %endif */
5675#endif
5676
5677/* %if-c-only */
5678#ifndef YY_NO_INPUT
5679#ifdef __cplusplus
5680 static int yyinput (void)
5681#else
5682 static int input (void)
5683#endif
5684
5685/* %endif */
5686/* %if-c++-only */
5687/* %endif */
5688{
5689 int c;
5690
5691 *(yy_c_buf_p) = (yy_hold_char);
5692
5693 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
5694 {
5695 /* yy_c_buf_p now points to the character we want to return.
5696 * If this occurs *before* the EOB characters, then it's a
5697 * valid NUL; if not, then we've hit the end of the buffer.
5698 */
5699 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5700 /* This was really a NUL. */
5701 *(yy_c_buf_p) = '\0';
5702
5703 else
5704 { /* need more input */
5705 int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
5706 ++(yy_c_buf_p);
5707
5708 switch ( yy_get_next_buffer( ) )
5709 {
5710 case EOB_ACT_LAST_MATCH:
5711 /* This happens because yy_g_n_b()
5712 * sees that we've accumulated a
5713 * token and flags that we need to
5714 * try matching the token before
5715 * proceeding. But for input(),
5716 * there's no matching to consider.
5717 * So convert the EOB_ACT_LAST_MATCH
5718 * to EOB_ACT_END_OF_FILE.
5719 */
5720
5721 /* Reset buffer status. */
5722 yyrestart( yyin );
5723
5724 /*FALLTHROUGH*/
5725
5727 {
5728 if ( yywrap( ) )
5729 return 0;
5730
5731 if ( ! (yy_did_buffer_switch_on_eof) )
5733#ifdef __cplusplus
5734 return yyinput();
5735#else
5736 return input();
5737#endif
5738 }
5739
5741 (yy_c_buf_p) = (yytext_ptr) + offset;
5742 break;
5743 }
5744 }
5745 }
5746
5747 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
5748 *(yy_c_buf_p) = '\0'; /* preserve yytext */
5749 (yy_hold_char) = *++(yy_c_buf_p);
5750
5751/* %% [19.0] update BOL and yylineno */
5752
5753 return c;
5754}
5755/* %if-c-only */
5756#endif /* ifndef YY_NO_INPUT */
5757/* %endif */
5758
5764/* %if-c-only */
5765 void yyrestart (FILE * input_file )
5766/* %endif */
5767/* %if-c++-only */
5768/* %endif */
5769{
5770
5771 if ( ! YY_CURRENT_BUFFER ){
5775 }
5776
5777 yy_init_buffer( YY_CURRENT_BUFFER, input_file );
5779}
5780
5781/* %if-c++-only */
5782/* %endif */
5783
5788/* %if-c-only */
5790/* %endif */
5791/* %if-c++-only */
5792/* %endif */
5793{
5794
5795 /* TODO. We should be able to replace this entire function body
5796 * with
5797 * yypop_buffer_state();
5798 * yypush_buffer_state(new_buffer);
5799 */
5801 if ( YY_CURRENT_BUFFER == new_buffer )
5802 return;
5803
5804 if ( YY_CURRENT_BUFFER )
5805 {
5806 /* Flush out information for old buffer. */
5807 *(yy_c_buf_p) = (yy_hold_char);
5808 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
5809 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5810 }
5811
5812 YY_CURRENT_BUFFER_LVALUE = new_buffer;
5814
5815 /* We don't actually know whether we did this switch during
5816 * EOF (yywrap()) processing, but the only time this flag
5817 * is looked at is after yywrap() is called, so it's safe
5818 * to go ahead and always set it.
5819 */
5820 (yy_did_buffer_switch_on_eof) = 1;
5821}
5822
5823/* %if-c-only */
5824static void yy_load_buffer_state (void)
5825/* %endif */
5826/* %if-c++-only */
5827/* %endif */
5828{
5829 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5830 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
5831/* %if-c-only */
5832 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
5833/* %endif */
5834/* %if-c++-only */
5835/* %endif */
5836 (yy_hold_char) = *(yy_c_buf_p);
5837}
5838
5845/* %if-c-only */
5846 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
5847/* %endif */
5848/* %if-c++-only */
5849/* %endif */
5850{
5852
5853 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
5854 if ( ! b )
5855 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5856
5857 b->yy_buf_size = size;
5858
5859 /* yy_ch_buf has to be 2 characters longer than the size given because
5860 * we need to put in 2 end-of-buffer characters.
5861 */
5862 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
5863 if ( ! b->yy_ch_buf )
5864 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5865
5866 b->yy_is_our_buffer = 1;
5867
5868 yy_init_buffer( b, file );
5869
5870 return b;
5871}
5872
5873/* %if-c++-only */
5874/* %endif */
5875
5880/* %if-c-only */
5882/* %endif */
5883/* %if-c++-only */
5884/* %endif */
5885{
5886
5887 if ( ! b )
5888 return;
5889
5890 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
5892
5893 if ( b->yy_is_our_buffer )
5894 yyfree( (void *) b->yy_ch_buf );
5895
5896 yyfree( (void *) b );
5897}
5898
5899/* Initializes or reinitializes a buffer.
5900 * This function is sometimes called more than once on the same buffer,
5901 * such as during a yyrestart() or at EOF.
5902 */
5903/* %if-c-only */
5904 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
5905/* %endif */
5906/* %if-c++-only */
5907/* %endif */
5908
5909{
5910 int oerrno = errno;
5911
5912 yy_flush_buffer( b );
5913
5914/* %if-c-only */
5915 b->yy_input_file = file;
5916/* %endif */
5917/* %if-c++-only */
5918/* %endif */
5919 b->yy_fill_buffer = 1;
5920
5921 /* If b is the current buffer, then yy_init_buffer was _probably_
5922 * called from yyrestart() or through yy_get_next_buffer.
5923 * In that case, we don't want to reset the lineno or column.
5924 */
5925 if (b != YY_CURRENT_BUFFER){
5926 b->yy_bs_lineno = 1;
5927 b->yy_bs_column = 0;
5928 }
5929
5930/* %if-c-only */
5931
5932 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
5933
5934/* %endif */
5935/* %if-c++-only */
5936/* %endif */
5937 errno = oerrno;
5938}
5939
5944/* %if-c-only */
5946/* %endif */
5947/* %if-c++-only */
5948/* %endif */
5949{
5950 if ( ! b )
5951 return;
5952
5953 b->yy_n_chars = 0;
5954
5955 /* We always need two end-of-buffer characters. The first causes
5956 * a transition to the end-of-buffer state. The second causes
5957 * a jam in that state.
5958 */
5961
5962 b->yy_buf_pos = &b->yy_ch_buf[0];
5963
5964 b->yy_at_bol = 1;
5966
5967 if ( b == YY_CURRENT_BUFFER )
5969}
5970
5971/* %if-c-or-c++ */
5978/* %if-c-only */
5980/* %endif */
5981/* %if-c++-only */
5982/* %endif */
5983{
5984 if (new_buffer == NULL)
5985 return;
5986
5988
5989 /* This block is copied from yy_switch_to_buffer. */
5990 if ( YY_CURRENT_BUFFER )
5991 {
5992 /* Flush out information for old buffer. */
5993 *(yy_c_buf_p) = (yy_hold_char);
5994 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
5995 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5996 }
5997
5998 /* Only push if top exists. Otherwise, replace top. */
6000 (yy_buffer_stack_top)++;
6001 YY_CURRENT_BUFFER_LVALUE = new_buffer;
6002
6003 /* copied from yy_switch_to_buffer. */
6005 (yy_did_buffer_switch_on_eof) = 1;
6006}
6007/* %endif */
6008
6009/* %if-c-or-c++ */
6014/* %if-c-only */
6015void yypop_buffer_state (void)
6016/* %endif */
6017/* %if-c++-only */
6018/* %endif */
6019{
6020 if (!YY_CURRENT_BUFFER)
6021 return;
6022
6025 if ((yy_buffer_stack_top) > 0)
6026 --(yy_buffer_stack_top);
6027
6028 if (YY_CURRENT_BUFFER) {
6030 (yy_did_buffer_switch_on_eof) = 1;
6031 }
6032}
6033/* %endif */
6034
6035/* %if-c-or-c++ */
6036/* Allocates the stack if it does not exist.
6037 * Guarantees space for at least one push.
6038 */
6039/* %if-c-only */
6040static void yyensure_buffer_stack (void)
6041/* %endif */
6042/* %if-c++-only */
6043/* %endif */
6044{
6045 yy_size_t num_to_alloc;
6046
6047 if (!(yy_buffer_stack)) {
6048
6049 /* First allocation is just for 2 elements, since we don't know if this
6050 * scanner will even need a stack. We use 2 instead of 1 to avoid an
6051 * immediate realloc on the next call.
6052 */
6053 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
6054 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
6055 (num_to_alloc * sizeof(struct yy_buffer_state*)
6056 );
6057 if ( ! (yy_buffer_stack) )
6058 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6059
6060 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6061
6062 (yy_buffer_stack_max) = num_to_alloc;
6063 (yy_buffer_stack_top) = 0;
6064 return;
6065 }
6066
6067 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6068
6069 /* Increase the buffer to prepare for a possible push. */
6070 yy_size_t grow_size = 8 /* arbitrary grow size */;
6071
6072 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6073 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
6074 ((yy_buffer_stack),
6075 num_to_alloc * sizeof(struct yy_buffer_state*)
6076 );
6077 if ( ! (yy_buffer_stack) )
6078 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6079
6080 /* zero only the new slots.*/
6081 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6082 (yy_buffer_stack_max) = num_to_alloc;
6083 }
6084}
6085/* %endif */
6086
6087/* %if-c-only */
6095{
6097
6098 if ( size < 2 ||
6099 base[size-2] != YY_END_OF_BUFFER_CHAR ||
6100 base[size-1] != YY_END_OF_BUFFER_CHAR )
6101 /* They forgot to leave room for the EOB's. */
6102 return NULL;
6103
6104 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6105 if ( ! b )
6106 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
6107
6108 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
6109 b->yy_buf_pos = b->yy_ch_buf = base;
6110 b->yy_is_our_buffer = 0;
6111 b->yy_input_file = NULL;
6112 b->yy_n_chars = b->yy_buf_size;
6113 b->yy_is_interactive = 0;
6114 b->yy_at_bol = 1;
6115 b->yy_fill_buffer = 0;
6117
6119
6120 return b;
6121}
6122/* %endif */
6123
6124/* %if-c-only */
6133YY_BUFFER_STATE yy_scan_string (const char * yystr )
6134{
6135
6136 return yy_scan_bytes( yystr, (int) strlen(yystr) );
6137}
6138/* %endif */
6139
6140/* %if-c-only */
6148YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
6149{
6151 char *buf;
6152 yy_size_t n;
6153 int i;
6154
6155 /* Get memory for full buffer, including space for trailing EOB's. */
6156 n = (yy_size_t) (_yybytes_len + 2);
6157 buf = (char *) yyalloc( n );
6158 if ( ! buf )
6159 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
6160
6161 for ( i = 0; i < _yybytes_len; ++i )
6162 buf[i] = yybytes[i];
6163
6164 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6165
6166 b = yy_scan_buffer( buf, n );
6167 if ( ! b )
6168 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
6169
6170 /* It's okay to grow etc. this buffer, and we should throw it
6171 * away when we're done.
6172 */
6173 b->yy_is_our_buffer = 1;
6174
6175 return b;
6176}
6177/* %endif */
6178
6179#ifndef YY_EXIT_FAILURE
6180#define YY_EXIT_FAILURE 2
6181#endif
6182
6183/* %if-c-only */
6184static void yynoreturn yy_fatal_error (const char* msg )
6185{
6186 fprintf( stderr, "%s\n", msg );
6187 exit( YY_EXIT_FAILURE );
6188}
6189/* %endif */
6190/* %if-c++-only */
6191/* %endif */
6192
6193/* Redefine yyless() so it works in section 3 code. */
6194
6195#undef yyless
6196#define yyless(n) \
6197 do \
6198 { \
6199 /* Undo effects of setting up yytext. */ \
6200 int yyless_macro_arg = (n); \
6201 YY_LESS_LINENO(yyless_macro_arg);\
6202 yytext[yyleng] = (yy_hold_char); \
6203 (yy_c_buf_p) = yytext + yyless_macro_arg; \
6204 (yy_hold_char) = *(yy_c_buf_p); \
6205 *(yy_c_buf_p) = '\0'; \
6206 yyleng = yyless_macro_arg; \
6207 } \
6208 while ( 0 )
6209
6210/* Accessor methods (get/set functions) to struct members. */
6211
6212/* %if-c-only */
6213/* %if-reentrant */
6214/* %endif */
6215
6219int yyget_lineno (void)
6220{
6221
6222 return yylineno;
6223}
6224
6228FILE *yyget_in (void)
6229{
6230 return yyin;
6231}
6232
6236FILE *yyget_out (void)
6237{
6238 return yyout;
6239}
6240
6244int yyget_leng (void)
6245{
6246 return yyleng;
6247}
6248
6253char *yyget_text (void)
6254{
6255 return yytext;
6256}
6257
6258/* %if-reentrant */
6259/* %endif */
6260
6265void yyset_lineno (int _line_number )
6266{
6267
6268 yylineno = _line_number;
6269}
6270
6277void yyset_in (FILE * _in_str )
6278{
6279 yyin = _in_str ;
6280}
6281
6282void yyset_out (FILE * _out_str )
6283{
6284 yyout = _out_str ;
6285}
6286
6287int yyget_debug (void)
6288{
6289 return yy_flex_debug;
6290}
6291
6292void yyset_debug (int _bdebug )
6293{
6294 yy_flex_debug = _bdebug ;
6295}
6296
6297/* %endif */
6298
6299/* %if-reentrant */
6300/* %if-bison-bridge */
6301/* %endif */
6302/* %endif if-c-only */
6303
6304/* %if-c-only */
6305static int yy_init_globals (void)
6306{
6307 /* Initialization is the same as for the non-reentrant scanner.
6308 * This function is called from yylex_destroy(), so don't allocate here.
6309 */
6310
6311 (yy_buffer_stack) = NULL;
6312 (yy_buffer_stack_top) = 0;
6313 (yy_buffer_stack_max) = 0;
6314 (yy_c_buf_p) = NULL;
6315 (yy_init) = 0;
6316 (yy_start) = 0;
6317
6318/* Defined in main.c */
6319#ifdef YY_STDINIT
6320 yyin = stdin;
6321 yyout = stdout;
6322#else
6323 yyin = NULL;
6324 yyout = NULL;
6325#endif
6326
6327 /* For future reference: Set errno on error, since we are called by
6328 * yylex_init()
6329 */
6330 return 0;
6331}
6332/* %endif */
6333
6334/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
6335/* yylex_destroy is for both reentrant and non-reentrant scanners. */
6336int yylex_destroy (void)
6337{
6338
6339 /* Pop the buffer stack, destroying each element. */
6340 while(YY_CURRENT_BUFFER){
6344 }
6345
6346 /* Destroy the stack itself. */
6347 yyfree((yy_buffer_stack) );
6348 (yy_buffer_stack) = NULL;
6349
6350 /* Reset the globals. This is important in a non-reentrant scanner so the next time
6351 * yylex() is called, initialization will occur. */
6352 yy_init_globals( );
6353
6354/* %if-reentrant */
6355/* %endif */
6356 return 0;
6357}
6358/* %endif */
6359
6360/*
6361 * Internal utility routines.
6362 */
6363
6364#ifndef yytext_ptr
6365static void yy_flex_strncpy (char* s1, const char * s2, int n )
6366{
6367
6368 int i;
6369 for ( i = 0; i < n; ++i )
6370 s1[i] = s2[i];
6371}
6372#endif
6373
6374#ifdef YY_NEED_STRLEN
6375static int yy_flex_strlen (const char * s )
6376{
6377 int n;
6378 for ( n = 0; s[n]; ++n )
6379 ;
6380
6381 return n;
6382}
6383#endif
6384
6385void *yyalloc (yy_size_t size )
6386{
6387 return malloc(size);
6388}
6389
6390void *yyrealloc (void * ptr, yy_size_t size )
6391{
6392
6393 /* The cast to (char *) in the following accommodates both
6394 * implementations that use char* generic pointers, and those
6395 * that use void* generic pointers. It works with the latter
6396 * because both ANSI C and C++ allow castless assignment from
6397 * any pointer type to void*, and deal with argument conversions
6398 * as though doing an assignment.
6399 */
6400 return realloc(ptr, size);
6401}
6402
6403void yyfree (void * ptr )
6404{
6405 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
6406}
6407
6408/* %if-tables-serialization definitions */
6409/* %define-yytables The name for this specific scanner's tables. */
6410#define YYTABLES_NAME "yytables"
6411/* %endif */
6412
6413/* %ok-for-header */
6414
6415#line 2275 "dhcp4_lexer.ll"
6416
6417
6418using namespace isc::dhcp;
6419
6420void
6421Parser4Context::scanStringBegin(const std::string& str, ParserType parser_type)
6422{
6423 start_token_flag = true;
6424 start_token_value = parser_type;
6425
6426 file_ = "<string>";
6427 sfile_ = 0;
6428 loc_.initialize(&file_);
6429 yy_flex_debug = trace_scanning_;
6430 YY_BUFFER_STATE buffer;
6431 buffer = parser4__scan_bytes(str.c_str(), str.size());
6432 if (!buffer) {
6433 fatal("cannot scan string");
6434 /* fatal() throws an exception so this can't be reached */
6435 }
6436}
6437
6438void
6440 const std::string& filename,
6441 ParserType parser_type)
6442{
6443 start_token_flag = true;
6444 start_token_value = parser_type;
6445
6446 file_ = filename;
6447 sfile_ = f;
6448 loc_.initialize(&file_);
6449 yy_flex_debug = trace_scanning_;
6450 YY_BUFFER_STATE buffer;
6451
6452 /* See dhcp4_lexer.cc header for available definitions */
6453 buffer = parser4__create_buffer(f, 65536 /*buffer size*/);
6454 if (!buffer) {
6455 fatal("cannot scan file " + filename);
6456 }
6457 parser4__switch_to_buffer(buffer);
6458}
6459
6460void
6462 if (sfile_)
6463 fclose(sfile_);
6464 sfile_ = 0;
6465 static_cast<void>(parser4_lex_destroy());
6466 /* Close files */
6467 while (!sfiles_.empty()) {
6468 FILE* f = sfiles_.back();
6469 if (f) {
6470 fclose(f);
6471 }
6472 sfiles_.pop_back();
6473 }
6474 /* Delete states */
6475 while (!states_.empty()) {
6476 parser4__delete_buffer(states_.back());
6477 states_.pop_back();
6478 }
6479}
6480
6481void
6482Parser4Context::includeFile(const std::string& filename) {
6483 if (states_.size() > 10) {
6484 fatal("Too many nested include.");
6485 }
6486
6487 FILE* f = fopen(filename.c_str(), "r");
6488 if (!f) {
6489 fatal("Can't open include file " + filename);
6490 }
6491 if (sfile_) {
6492 sfiles_.push_back(sfile_);
6493 }
6494 sfile_ = f;
6495 states_.push_back(YY_CURRENT_BUFFER);
6496 YY_BUFFER_STATE buffer;
6497 buffer = parser4__create_buffer(f, 65536 /*buffer size*/);
6498 if (!buffer) {
6499 fatal( "Can't scan include file " + filename);
6500 }
6501 parser4__switch_to_buffer(buffer);
6502 files_.push_back(file_);
6503 file_ = filename;
6504 locs_.push_back(loc_);
6505 loc_.initialize(&file_);
6506
6507 BEGIN(INITIAL);
6508}
6509
6510namespace {
6512class Dummy {
6513 /* cppcheck-suppress unusedPrivateFunction */
6514 void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
6515};
6516}
6517#endif /* !__clang_analyzer__ */
6518
unsigned char flex_uint8_t
Definition: agent_lexer.cc:335
short int flex_int16_t
Definition: agent_lexer.cc:333
int flex_int32_t
Definition: agent_lexer.cc:334
int yy_state_type
Definition: agent_lexer.cc:660
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_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_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_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_MAX_VALID_LIFETIME(const location_type &l)
static symbol_type make_SERVER_HOSTNAME(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_SPACE(const location_type &l)
static symbol_type make_HW_ADDRESS(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_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_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_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_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_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_LIBRARY(const location_type &l)
static symbol_type make_ON_FAIL(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_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_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_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_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_REQUIRE_CLIENT_CLASSES(const location_type &l)
static symbol_type make_COMMA(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_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.
@ COMPATIBILITY
Used while parsing compatibility parameters.
@ 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.
static void fatal(const std::string &what)
Fatal error handler.
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.
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.
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