Kea 2.5.5
dhcp4_lexer.cc
Go to the documentation of this file.
1#line 1 "dhcp4_lexer.cc"
2
3#line 3 "dhcp4_lexer.cc"
4
5#define YY_INT_ALIGNED short int
6
7/* A lexical scanner generated by flex */
8
9/* %not-for-header */
10/* %if-c-only */
11/* %if-not-reentrant */
12#define yy_create_buffer parser4__create_buffer
13#define yy_delete_buffer parser4__delete_buffer
14#define yy_scan_buffer parser4__scan_buffer
15#define yy_scan_string parser4__scan_string
16#define yy_scan_bytes parser4__scan_bytes
17#define yy_init_buffer parser4__init_buffer
18#define yy_flush_buffer parser4__flush_buffer
19#define yy_load_buffer_state parser4__load_buffer_state
20#define yy_switch_to_buffer parser4__switch_to_buffer
21#define yypush_buffer_state parser4_push_buffer_state
22#define yypop_buffer_state parser4_pop_buffer_state
23#define yyensure_buffer_stack parser4_ensure_buffer_stack
24#define yy_flex_debug parser4__flex_debug
25#define yyin parser4_in
26#define yyleng parser4_leng
27#define yylex parser4_lex
28#define yylineno parser4_lineno
29#define yyout parser4_out
30#define yyrestart parser4_restart
31#define yytext parser4_text
32#define yywrap parser4_wrap
33#define yyalloc parser4_alloc
34#define yyrealloc parser4_realloc
35#define yyfree parser4_free
36
37/* %endif */
38/* %endif */
39/* %ok-for-header */
40
41#define FLEX_SCANNER
42#define YY_FLEX_MAJOR_VERSION 2
43#define YY_FLEX_MINOR_VERSION 6
44#define YY_FLEX_SUBMINOR_VERSION 4
45#if YY_FLEX_SUBMINOR_VERSION > 0
46#define FLEX_BETA
47#endif
48
49/* %if-c++-only */
50/* %endif */
51
52/* %if-c-only */
53#ifdef yy_create_buffer
54#define parser4__create_buffer_ALREADY_DEFINED
55#else
56#define yy_create_buffer parser4__create_buffer
57#endif
58
59#ifdef yy_delete_buffer
60#define parser4__delete_buffer_ALREADY_DEFINED
61#else
62#define yy_delete_buffer parser4__delete_buffer
63#endif
64
65#ifdef yy_scan_buffer
66#define parser4__scan_buffer_ALREADY_DEFINED
67#else
68#define yy_scan_buffer parser4__scan_buffer
69#endif
70
71#ifdef yy_scan_string
72#define parser4__scan_string_ALREADY_DEFINED
73#else
74#define yy_scan_string parser4__scan_string
75#endif
76
77#ifdef yy_scan_bytes
78#define parser4__scan_bytes_ALREADY_DEFINED
79#else
80#define yy_scan_bytes parser4__scan_bytes
81#endif
82
83#ifdef yy_init_buffer
84#define parser4__init_buffer_ALREADY_DEFINED
85#else
86#define yy_init_buffer parser4__init_buffer
87#endif
88
89#ifdef yy_flush_buffer
90#define parser4__flush_buffer_ALREADY_DEFINED
91#else
92#define yy_flush_buffer parser4__flush_buffer
93#endif
94
95#ifdef yy_load_buffer_state
96#define parser4__load_buffer_state_ALREADY_DEFINED
97#else
98#define yy_load_buffer_state parser4__load_buffer_state
99#endif
100
101#ifdef yy_switch_to_buffer
102#define parser4__switch_to_buffer_ALREADY_DEFINED
103#else
104#define yy_switch_to_buffer parser4__switch_to_buffer
105#endif
106
107#ifdef yypush_buffer_state
108#define parser4_push_buffer_state_ALREADY_DEFINED
109#else
110#define yypush_buffer_state parser4_push_buffer_state
111#endif
112
113#ifdef yypop_buffer_state
114#define parser4_pop_buffer_state_ALREADY_DEFINED
115#else
116#define yypop_buffer_state parser4_pop_buffer_state
117#endif
118
119#ifdef yyensure_buffer_stack
120#define parser4_ensure_buffer_stack_ALREADY_DEFINED
121#else
122#define yyensure_buffer_stack parser4_ensure_buffer_stack
123#endif
124
125#ifdef yylex
126#define parser4_lex_ALREADY_DEFINED
127#else
128#define yylex parser4_lex
129#endif
130
131#ifdef yyrestart
132#define parser4_restart_ALREADY_DEFINED
133#else
134#define yyrestart parser4_restart
135#endif
136
137#ifdef yylex_init
138#define parser4_lex_init_ALREADY_DEFINED
139#else
140#define yylex_init parser4_lex_init
141#endif
142
143#ifdef yylex_init_extra
144#define parser4_lex_init_extra_ALREADY_DEFINED
145#else
146#define yylex_init_extra parser4_lex_init_extra
147#endif
148
149#ifdef yylex_destroy
150#define parser4_lex_destroy_ALREADY_DEFINED
151#else
152#define yylex_destroy parser4_lex_destroy
153#endif
154
155#ifdef yyget_debug
156#define parser4_get_debug_ALREADY_DEFINED
157#else
158#define yyget_debug parser4_get_debug
159#endif
160
161#ifdef yyset_debug
162#define parser4_set_debug_ALREADY_DEFINED
163#else
164#define yyset_debug parser4_set_debug
165#endif
166
167#ifdef yyget_extra
168#define parser4_get_extra_ALREADY_DEFINED
169#else
170#define yyget_extra parser4_get_extra
171#endif
172
173#ifdef yyset_extra
174#define parser4_set_extra_ALREADY_DEFINED
175#else
176#define yyset_extra parser4_set_extra
177#endif
178
179#ifdef yyget_in
180#define parser4_get_in_ALREADY_DEFINED
181#else
182#define yyget_in parser4_get_in
183#endif
184
185#ifdef yyset_in
186#define parser4_set_in_ALREADY_DEFINED
187#else
188#define yyset_in parser4_set_in
189#endif
190
191#ifdef yyget_out
192#define parser4_get_out_ALREADY_DEFINED
193#else
194#define yyget_out parser4_get_out
195#endif
196
197#ifdef yyset_out
198#define parser4_set_out_ALREADY_DEFINED
199#else
200#define yyset_out parser4_set_out
201#endif
202
203#ifdef yyget_leng
204#define parser4_get_leng_ALREADY_DEFINED
205#else
206#define yyget_leng parser4_get_leng
207#endif
208
209#ifdef yyget_text
210#define parser4_get_text_ALREADY_DEFINED
211#else
212#define yyget_text parser4_get_text
213#endif
214
215#ifdef yyget_lineno
216#define parser4_get_lineno_ALREADY_DEFINED
217#else
218#define yyget_lineno parser4_get_lineno
219#endif
220
221#ifdef yyset_lineno
222#define parser4_set_lineno_ALREADY_DEFINED
223#else
224#define yyset_lineno parser4_set_lineno
225#endif
226
227#ifdef yywrap
228#define parser4_wrap_ALREADY_DEFINED
229#else
230#define yywrap parser4_wrap
231#endif
232
233/* %endif */
234
235#ifdef yyalloc
236#define parser4_alloc_ALREADY_DEFINED
237#else
238#define yyalloc parser4_alloc
239#endif
240
241#ifdef yyrealloc
242#define parser4_realloc_ALREADY_DEFINED
243#else
244#define yyrealloc parser4_realloc
245#endif
246
247#ifdef yyfree
248#define parser4_free_ALREADY_DEFINED
249#else
250#define yyfree parser4_free
251#endif
252
253/* %if-c-only */
254
255#ifdef yytext
256#define parser4_text_ALREADY_DEFINED
257#else
258#define yytext parser4_text
259#endif
260
261#ifdef yyleng
262#define parser4_leng_ALREADY_DEFINED
263#else
264#define yyleng parser4_leng
265#endif
266
267#ifdef yyin
268#define parser4_in_ALREADY_DEFINED
269#else
270#define yyin parser4_in
271#endif
272
273#ifdef yyout
274#define parser4_out_ALREADY_DEFINED
275#else
276#define yyout parser4_out
277#endif
278
279#ifdef yy_flex_debug
280#define parser4__flex_debug_ALREADY_DEFINED
281#else
282#define yy_flex_debug parser4__flex_debug
283#endif
284
285#ifdef yylineno
286#define parser4_lineno_ALREADY_DEFINED
287#else
288#define yylineno parser4_lineno
289#endif
290
291/* %endif */
292
293/* First, we deal with platform-specific or compiler-specific issues. */
294
295/* begin standard C headers. */
296/* %if-c-only */
297#include <stdio.h>
298#include <string.h>
299#include <errno.h>
300#include <stdlib.h>
301/* %endif */
302
303/* %if-tables-serialization */
304/* %endif */
305/* end standard C headers. */
306
307/* %if-c-or-c++ */
308/* flex integer type definitions */
309
310#ifndef FLEXINT_H
311#define FLEXINT_H
312
313/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
314
315#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
316
317/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
318 * if you want the limit (max/min) macros for int types.
319 */
320#ifndef __STDC_LIMIT_MACROS
321#define __STDC_LIMIT_MACROS 1
322#endif
323
324#include <inttypes.h>
325typedef int8_t flex_int8_t;
326typedef uint8_t flex_uint8_t;
327typedef int16_t flex_int16_t;
328typedef uint16_t flex_uint16_t;
329typedef int32_t flex_int32_t;
330typedef uint32_t flex_uint32_t;
331#else
332typedef signed char flex_int8_t;
333typedef short int flex_int16_t;
334typedef int flex_int32_t;
335typedef unsigned char flex_uint8_t;
336typedef unsigned short int flex_uint16_t;
337typedef unsigned int flex_uint32_t;
338
339/* Limits of integral types. */
340#ifndef INT8_MIN
341#define INT8_MIN (-128)
342#endif
343#ifndef INT16_MIN
344#define INT16_MIN (-32767-1)
345#endif
346#ifndef INT32_MIN
347#define INT32_MIN (-2147483647-1)
348#endif
349#ifndef INT8_MAX
350#define INT8_MAX (127)
351#endif
352#ifndef INT16_MAX
353#define INT16_MAX (32767)
354#endif
355#ifndef INT32_MAX
356#define INT32_MAX (2147483647)
357#endif
358#ifndef UINT8_MAX
359#define UINT8_MAX (255U)
360#endif
361#ifndef UINT16_MAX
362#define UINT16_MAX (65535U)
363#endif
364#ifndef UINT32_MAX
365#define UINT32_MAX (4294967295U)
366#endif
367
368#ifndef SIZE_MAX
369#define SIZE_MAX (~(size_t)0)
370#endif
371
372#endif /* ! C99 */
373
374#endif /* ! FLEXINT_H */
375
376/* %endif */
377
378/* begin standard C++ headers. */
379/* %if-c++-only */
380/* %endif */
381
382/* TODO: this is always defined, so inline it */
383#define yyconst const
384
385#if defined(__GNUC__) && __GNUC__ >= 3
386#define yynoreturn __attribute__((__noreturn__))
387#else
388#define yynoreturn
389#endif
390
391/* %not-for-header */
392/* Returned upon end-of-file. */
393#define YY_NULL 0
394/* %ok-for-header */
395
396/* %not-for-header */
397/* Promotes a possibly negative, possibly signed char to an
398 * integer in range [0..255] for use as an array index.
399 */
400#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
401/* %ok-for-header */
402
403/* %if-reentrant */
404/* %endif */
405
406/* %if-not-reentrant */
407
408/* %endif */
409
410/* Enter a start condition. This macro really ought to take a parameter,
411 * but we do it the disgusting crufty way forced on us by the ()-less
412 * definition of BEGIN.
413 */
414#define BEGIN (yy_start) = 1 + 2 *
415/* Translate the current start state into a value that can be later handed
416 * to BEGIN to return to the state. The YYSTATE alias is for lex
417 * compatibility.
418 */
419#define YY_START (((yy_start) - 1) / 2)
420#define YYSTATE YY_START
421/* Action number for EOF rule of a given start state. */
422#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
423/* Special action meaning "start processing a new file". */
424#define YY_NEW_FILE yyrestart( yyin )
425#define YY_END_OF_BUFFER_CHAR 0
426
427/* Size of default input buffer. */
428#ifndef YY_BUF_SIZE
429#ifdef __ia64__
430/* On IA-64, the buffer size is 16k, not 8k.
431 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
432 * Ditto for the __ia64__ case accordingly.
433 */
434#define YY_BUF_SIZE 32768
435#else
436#define YY_BUF_SIZE 16384
437#endif /* __ia64__ */
438#endif
439
440/* The state buf must be large enough to hold one state per character in the main buffer.
441 */
442#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
443
444#ifndef YY_TYPEDEF_YY_BUFFER_STATE
445#define YY_TYPEDEF_YY_BUFFER_STATE
447#endif
448
449#ifndef YY_TYPEDEF_YY_SIZE_T
450#define YY_TYPEDEF_YY_SIZE_T
451typedef size_t yy_size_t;
452#endif
453
454/* %if-not-reentrant */
455extern int yyleng;
456/* %endif */
457
458/* %if-c-only */
459/* %if-not-reentrant */
460extern FILE *yyin, *yyout;
461/* %endif */
462/* %endif */
463
464#define EOB_ACT_CONTINUE_SCAN 0
465#define EOB_ACT_END_OF_FILE 1
466#define EOB_ACT_LAST_MATCH 2
467
468 #define YY_LESS_LINENO(n)
469 #define YY_LINENO_REWIND_TO(ptr)
470
471/* Return all but the first "n" matched characters back to the input stream. */
472#define yyless(n) \
473 do \
474 { \
475 /* Undo effects of setting up yytext. */ \
476 int yyless_macro_arg = (n); \
477 YY_LESS_LINENO(yyless_macro_arg);\
478 *yy_cp = (yy_hold_char); \
479 YY_RESTORE_YY_MORE_OFFSET \
480 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
481 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
482 } \
483 while ( 0 )
484#define unput(c) yyunput( c, (yytext_ptr) )
485
486#ifndef YY_STRUCT_YY_BUFFER_STATE
487#define YY_STRUCT_YY_BUFFER_STATE
488struct yy_buffer_state
489 {
490/* %if-c-only */
491 FILE *yy_input_file;
492/* %endif */
493
494/* %if-c++-only */
495/* %endif */
496
497 char *yy_ch_buf; /* input buffer */
498 char *yy_buf_pos; /* current position in input buffer */
499
500 /* Size of input buffer in bytes, not including room for EOB
501 * characters.
502 */
503 int yy_buf_size;
504
505 /* Number of characters read into yy_ch_buf, not including EOB
506 * characters.
507 */
508 int yy_n_chars;
509
510 /* Whether we "own" the buffer - i.e., we know we created it,
511 * and can realloc() it to grow it, and should free() it to
512 * delete it.
513 */
515
516 /* Whether this is an "interactive" input source; if so, and
517 * if we're using stdio for input, then we want to use getc()
518 * instead of fread(), to make sure we stop fetching input after
519 * each newline.
520 */
522
523 /* Whether we're considered to be at the beginning of a line.
524 * If so, '^' rules will be active on the next match, otherwise
525 * not.
526 */
527 int yy_at_bol;
528
529 int yy_bs_lineno;
530 int yy_bs_column;
532 /* Whether to try to fill the input buffer when we reach the
533 * end of it.
534 */
535 int yy_fill_buffer;
536
538
539#define YY_BUFFER_NEW 0
540#define YY_BUFFER_NORMAL 1
541 /* When an EOF's been seen but there's still some text to process
542 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
543 * shouldn't try reading from the input source any more. We might
544 * still have a bunch of tokens to match, though, because of
545 * possible backing-up.
546 *
547 * When we actually see the EOF, we change the status to "new"
548 * (via yyrestart()), so that the user can continue scanning by
549 * just pointing yyin at a new input file.
550 */
551#define YY_BUFFER_EOF_PENDING 2
552
553 };
554#endif /* !YY_STRUCT_YY_BUFFER_STATE */
555
556/* %if-c-only Standard (non-C++) definition */
557/* %not-for-header */
558/* %if-not-reentrant */
559
560/* Stack of input buffers. */
561static size_t yy_buffer_stack_top = 0;
562static size_t yy_buffer_stack_max = 0;
563static YY_BUFFER_STATE * yy_buffer_stack = NULL;
564/* %endif */
565/* %ok-for-header */
566
567/* %endif */
568
569/* We provide macros for accessing buffer states in case in the
570 * future we want to put the buffer states in a more general
571 * "scanner state".
572 *
573 * Returns the top of the stack, or NULL.
574 */
575#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
576 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
577 : NULL)
578/* Same as previous macro, but useful when we know that the buffer stack is not
579 * NULL or when we need an lvalue. For internal use only.
580 */
581#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
582
583/* %if-c-only Standard (non-C++) definition */
584
585/* %if-not-reentrant */
586/* %not-for-header */
587/* yy_hold_char holds the character lost when yytext is formed. */
588static char yy_hold_char;
589static int yy_n_chars; /* number of characters read into yy_ch_buf */
591
592/* Points to current character in buffer. */
593static char *yy_c_buf_p = NULL;
594static int yy_init = 0; /* whether we need to initialize */
595static int yy_start = 0; /* start state number */
596
597/* Flag which is used to allow yywrap()'s to do buffer switches
598 * instead of setting up a fresh yyin. A bit of a hack ...
599 */
600static int yy_did_buffer_switch_on_eof;
601/* %ok-for-header */
602
603/* %endif */
604
605void yyrestart ( FILE *input_file );
606void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
607YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
610void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
611void yypop_buffer_state ( void );
612
613static void yyensure_buffer_stack ( void );
614static void yy_load_buffer_state ( void );
615static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
616#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
617
618YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
619YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
620YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
621
622/* %endif */
623
624void *yyalloc ( yy_size_t );
625void *yyrealloc ( void *, yy_size_t );
626void yyfree ( void * );
627
628#define yy_new_buffer yy_create_buffer
629#define yy_set_interactive(is_interactive) \
630 { \
631 if ( ! YY_CURRENT_BUFFER ){ \
632 yyensure_buffer_stack (); \
633 YY_CURRENT_BUFFER_LVALUE = \
634 yy_create_buffer( yyin, YY_BUF_SIZE ); \
635 } \
636 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
637 }
638#define yy_set_bol(at_bol) \
639 { \
640 if ( ! YY_CURRENT_BUFFER ){\
641 yyensure_buffer_stack (); \
642 YY_CURRENT_BUFFER_LVALUE = \
643 yy_create_buffer( yyin, YY_BUF_SIZE ); \
644 } \
645 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
646 }
647#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
648
649/* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
650/* Begin user sect3 */
651
652#define parser4_wrap() (/*CONSTCOND*/1)
653#define YY_SKIP_YYWRAP
654
655#define FLEX_DEBUG
657
658FILE *yyin = NULL, *yyout = NULL;
659
660typedef int yy_state_type;
661
662extern int yylineno;
663int yylineno = 1;
664
665extern char *yytext;
666#ifdef yytext_ptr
667#undef yytext_ptr
668#endif
669#define yytext_ptr yytext
670
671/* %% [1.5] DFA */
672
673/* %if-c-only Standard (non-C++) definition */
674
675static yy_state_type yy_get_previous_state ( void );
676static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
677static int yy_get_next_buffer ( void );
678static void yynoreturn yy_fatal_error ( const char* msg );
679
680/* %endif */
681
682/* Done after the current pattern has been matched and before the
683 * corresponding action - sets up yytext.
684 */
685#define YY_DO_BEFORE_ACTION \
686 (yytext_ptr) = yy_bp; \
687/* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
688 yyleng = (int) (yy_cp - yy_bp); \
689 (yy_hold_char) = *yy_cp; \
690 *yy_cp = '\0'; \
691/* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
692 (yy_c_buf_p) = yy_cp;
693/* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
694#define YY_NUM_RULES 233
695#define YY_END_OF_BUFFER 234
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[2341] =
704 { 0,
705 226, 226, 0, 0, 0, 0, 0, 0, 0, 0,
706 234, 232, 10, 11, 232, 1, 226, 223, 226, 226,
707 232, 225, 224, 232, 232, 232, 232, 232, 219, 220,
708 232, 232, 232, 221, 222, 5, 5, 5, 232, 232,
709 232, 10, 11, 0, 0, 214, 0, 0, 0, 0,
710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
712 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
713 226, 226, 0, 225, 226, 3, 2, 6, 0, 226,
714 0, 0, 0, 0, 0, 0, 4, 0, 0, 9,
715
716 0, 215, 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 0, 0, 0, 0, 0, 217, 0, 0, 0,
718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
725 2, 0, 0, 0, 0, 0, 0, 0, 8, 0,
726
727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
728 0, 0, 216, 218, 0, 0, 0, 0, 0, 0,
729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
732 0, 0, 0, 101, 0, 0, 0, 0, 0, 0,
733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
737
738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
740 0, 0, 0, 0, 231, 229, 0, 228, 227, 0,
741 0, 0, 0, 0, 0, 0, 0, 0, 188, 0,
742 187, 0, 0, 107, 0, 0, 0, 0, 0, 0,
743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
747 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
748
749 0, 0, 0, 0, 0, 0, 0, 104, 0, 0,
750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
751 0, 0, 0, 0, 0, 0, 0, 18, 0, 0,
752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
754 0, 0, 0, 0, 0, 0, 0, 0, 19, 0,
755 0, 0, 0, 0, 230, 227, 0, 0, 0, 0,
756 0, 0, 0, 189, 0, 0, 191, 0, 0, 0,
757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
758 0, 111, 0, 0, 0, 0, 0, 0, 91, 0,
759
760 0, 0, 0, 0, 0, 135, 0, 0, 0, 0,
761 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,
762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
764 0, 0, 0, 0, 90, 0, 0, 0, 0, 0,
765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
766 0, 0, 0, 95, 0, 0, 42, 0, 0, 0,
767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
769 0, 0, 0, 0, 0, 0, 0, 0, 0, 131,
770
771 0, 0, 35, 0, 0, 39, 0, 0, 0, 0,
772 0, 0, 0, 0, 12, 193, 192, 0, 0, 0,
773 0, 0, 145, 0, 0, 0, 0, 0, 0, 0,
774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
777 0, 123, 0, 0, 0, 0, 0, 0, 0, 0,
778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
780 0, 37, 0, 0, 0, 0, 0, 0, 0, 0,
781
782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
783 0, 94, 0, 0, 0, 0, 0, 0, 0, 0,
784 0, 0, 146, 0, 0, 0, 0, 0, 0, 0,
785 0, 0, 0, 0, 0, 0, 141, 0, 0, 0,
786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
787 0, 0, 7, 0, 0, 194, 0, 0, 0, 0,
788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
792
793 0, 0, 0, 0, 0, 106, 0, 0, 0, 0,
794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 125,
796 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
797 0, 0, 0, 121, 0, 0, 0, 0, 0, 0,
798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
801 99, 0, 0, 0, 0, 0, 0, 0, 0, 0,
802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
803
804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
805 0, 0, 0, 98, 0, 0, 0, 0, 0, 0,
806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
808 0, 0, 0, 0, 0, 0, 139, 0, 0, 0,
809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
810 0, 0, 0, 0, 0, 151, 118, 0, 0, 0,
811 0, 0, 0, 124, 36, 0, 0, 0, 0, 0,
812 0, 0, 50, 0, 0, 0, 0, 0, 0, 0,
813 0, 0, 0, 0, 126, 43, 96, 0, 0, 0,
814
815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
817 0, 0, 0, 0, 0, 0, 0, 0, 85, 0,
818 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
820 0, 0, 0, 0, 170, 0, 0, 0, 0, 0,
821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
823 0, 0, 103, 0, 0, 0, 0, 0, 0, 0,
824 0, 0, 0, 0, 0, 0, 0, 140, 0, 0,
825
826 0, 0, 0, 0, 0, 0, 58, 0, 0, 0,
827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
829 0, 0, 0, 0, 0, 40, 0, 0, 0, 0,
830 0, 34, 0, 0, 0, 0, 0, 0, 0, 0,
831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
832 127, 0, 0, 0, 0, 0, 0, 0, 0, 0,
833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
834 0, 0, 0, 0, 0, 68, 0, 0, 0, 0,
835 0, 0, 57, 0, 0, 0, 137, 0, 0, 0,
836
837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
838 0, 0, 0, 0, 0, 171, 0, 0, 0, 0,
839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
840 0, 0, 0, 0, 0, 0, 0, 0, 100, 0,
841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
844 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,
845 0, 0, 0, 0, 0, 0, 176, 0, 0, 0,
846 174, 0, 0, 0, 0, 0, 0, 0, 0, 0,
847
848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
849 0, 0, 198, 0, 0, 0, 0, 0, 0, 0,
850 0, 0, 0, 0, 0, 138, 0, 0, 0, 0,
851 0, 0, 0, 142, 0, 0, 0, 0, 0, 0,
852 0, 0, 0, 122, 0, 0, 0, 0, 0, 0,
853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
854 0, 0, 0, 0, 136, 0, 0, 23, 0, 147,
855 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
856 0, 0, 0, 0, 180, 0, 93, 0, 0, 0,
857 0, 88, 0, 0, 0, 0, 0, 0, 0, 150,
858
859 0, 38, 0, 169, 0, 0, 0, 0, 0, 0,
860 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,
861 0, 0, 0, 0, 0, 0, 0, 114, 115, 0,
862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
863 0, 0, 0, 0, 92, 0, 0, 0, 0, 0,
864 59, 0, 0, 0, 0, 0, 0, 0, 0, 0,
865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
866 0, 0, 0, 0, 0, 0, 144, 0, 0, 0,
867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
868 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
869
870 0, 0, 0, 0, 0, 202, 0, 0, 89, 105,
871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
872 0, 0, 0, 63, 0, 0, 0, 0, 0, 0,
873 177, 0, 0, 175, 0, 0, 166, 165, 0, 0,
874 0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
875 0, 0, 0, 0, 0, 190, 0, 0, 0, 0,
876 0, 130, 0, 0, 0, 0, 0, 0, 0, 0,
877 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
878 0, 159, 0, 0, 0, 168, 0, 0, 0, 0,
879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
880
881 148, 0, 15, 0, 0, 44, 0, 0, 0, 0,
882 0, 0, 0, 0, 0, 179, 0, 0, 0, 0,
883 0, 0, 0, 0, 0, 0, 46, 64, 0, 0,
884 143, 0, 0, 0, 134, 0, 0, 0, 0, 0,
885 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,
886 0, 97, 0, 0, 196, 0, 0, 0, 0, 0,
887 0, 201, 0, 117, 0, 0, 0, 208, 0, 0,
888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
889 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
891
892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
895 0, 0, 0, 0, 14, 0, 0, 0, 0, 0,
896 0, 0, 0, 0, 132, 0, 0, 0, 47, 0,
897 0, 0, 0, 0, 0, 204, 0, 0, 128, 31,
898 0, 0, 0, 164, 0, 0, 0, 0, 0, 0,
899 0, 0, 0, 0, 0, 0, 0, 0, 199, 0,
900 172, 0, 0, 0, 0, 0, 0, 0, 0, 0,
901 0, 29, 0, 0, 0, 0, 0, 28, 0, 0,
902
903 178, 0, 0, 0, 55, 0, 0, 0, 213, 0,
904 0, 120, 119, 0, 0, 0, 0, 0, 0, 0,
905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
906 0, 0, 0, 0, 0, 0, 0, 0, 0, 60,
907 0, 0, 0, 0, 0, 0, 116, 0, 0, 0,
908 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
910 0, 0, 149, 0, 0, 0, 30, 0, 0, 0,
911 0, 0, 200, 0, 0, 0, 0, 0, 160, 0,
912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
913
914 0, 0, 0, 0, 0, 21, 0, 0, 203, 0,
915 87, 0, 51, 0, 0, 0, 0, 197, 0, 80,
916 0, 0, 195, 0, 32, 0, 0, 0, 0, 0,
917 0, 0, 0, 84, 0, 0, 0, 0, 17, 0,
918 0, 0, 0, 0, 0, 184, 0, 0, 0, 0,
919 0, 0, 0, 0, 0, 0, 157, 0, 0, 0,
920 133, 0, 0, 0, 0, 0, 0, 0, 0, 0,
921 0, 102, 0, 0, 0, 0, 0, 52, 0, 0,
922 0, 0, 48, 162, 0, 0, 0, 0, 0, 0,
923 0, 0, 0, 0, 0, 0, 71, 0, 0, 0,
924
925 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
926 185, 0, 0, 13, 0, 0, 0, 0, 0, 0,
927 0, 0, 0, 163, 0, 173, 0, 0, 0, 0,
928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
930 0, 0, 0, 0, 167, 0, 0, 0, 0, 0,
931 0, 0, 0, 0, 0, 0, 0, 0, 156, 0,
932 62, 61, 20, 0, 181, 0, 0, 0, 0, 0,
933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
934 0, 0, 81, 0, 113, 0, 0, 0, 0, 0,
935
936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
937 0, 155, 0, 0, 0, 0, 0, 0, 54, 0,
938 67, 0, 49, 183, 0, 108, 0, 0, 0, 0,
939 0, 0, 0, 0, 86, 0, 0, 0, 0, 0,
940 0, 0, 0, 0, 0, 77, 0, 0, 0, 0,
941 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
942 0, 0, 0, 0, 0, 0, 53, 0, 0, 0,
943 0, 0, 0, 0, 0, 0, 75, 0, 0, 0,
944 0, 0, 0, 0, 0, 212, 0, 0, 0, 0,
945 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
946
947 0, 0, 0, 0, 0, 0, 83, 33, 0, 0,
948 0, 76, 0, 0, 0, 0, 161, 0, 0, 0,
949 0, 0, 0, 206, 209, 182, 0, 129, 109, 0,
950 0, 0, 0, 0, 0, 0, 82, 0, 0, 72,
951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
952 153, 0, 0, 0, 0, 0, 0, 158, 0, 0,
953 74, 0, 65, 0, 0, 0, 0, 0, 0, 0,
954 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
955 152, 0, 0, 186, 0, 211, 207, 0, 0, 0,
956 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
957
958 0, 0, 0, 0, 0, 73, 0, 0, 0, 0,
959 0, 27, 25, 0, 0, 0, 0, 78, 0, 0,
960 112, 0, 0, 70, 0, 79, 0, 0, 210, 0,
961 0, 0, 0, 0, 69, 0, 154, 26, 205, 0
962 } ;
963
964static const YY_CHAR yy_ec[256] =
965 { 0,
966 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
967 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
968 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
969 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
970 5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
971 14, 17, 14, 18, 14, 14, 14, 19, 5, 20,
972 5, 21, 22, 5, 23, 24, 25, 26, 27, 28,
973 5, 29, 30, 31, 32, 33, 5, 34, 35, 36,
974 5, 37, 38, 39, 40, 41, 42, 43, 44, 5,
975 45, 46, 47, 5, 48, 5, 49, 50, 51, 52,
976
977 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
978 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
979 73, 74, 75, 5, 76, 5, 5, 5, 5, 5,
980 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
981 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
982 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
983 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
984 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
985 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
986 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
987
988 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
989 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
990 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
991 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
992 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
993 5, 5, 5, 5, 5
994 } ;
995
996static const YY_CHAR yy_meta[77] =
997 { 0,
998 1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
999 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1000 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1001 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1002 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1003 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1004 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1005 1, 1, 1, 1, 1, 1
1006 } ;
1007
1008static const flex_int16_t yy_base[2349] =
1009 { 0,
1010 0, 75, 21, 28, 39, 47, 53, 61, 95, 103,
1011 2790, 2791, 31, 2786, 151, 0, 216, 2791, 223, 230,
1012 13, 237, 2791, 2766, 124, 17, 4, 34, 2791, 2791,
1013 23, 43, 64, 2791, 2791, 2791, 56, 2774, 2724, 0,
1014 2764, 106, 2781, 2, 274, 2791, 2720, 85, 90, 2726,
1015 98, 77, 231, 235, 97, 200, 304, 229, 2718, 318,
1016 218, 62, 219, 220, 214, 257, 2727, 298, 307, 342,
1017 328, 229, 2710, 21, 347, 392, 327, 2729, 293, 0,
1018 404, 420, 435, 452, 445, 2791, 0, 2791, 409, 460,
1019 203, 228, 317, 260, 354, 343, 2791, 2726, 2770, 2791,
1020
1021 300, 2791, 474, 2757, 342, 254, 2723, 368, 17, 363,
1022 2762, 366, 402, 418, 335, 2766, 0, 538, 439, 2705,
1023 2702, 2706, 432, 2702, 299, 2710, 432, 2696, 2697, 2702,
1024 76, 2712, 2695, 2704, 2694, 2703, 390, 438, 63, 2696,
1025 2694, 428, 2745, 2749, 2692, 2685, 2741, 2678, 441, 2699,
1026 2699, 2693, 243, 2686, 2684, 2685, 2677, 2682, 2676, 444,
1027 2687, 395, 2672, 2671, 2685, 464, 2671, 434, 455, 2665,
1028 508, 242, 447, 2686, 2683, 2684, 458, 2682, 2720, 2719,
1029 475, 198, 2663, 472, 2664, 482, 2656, 2673, 2665, 2667,
1030 0, 484, 490, 507, 500, 514, 518, 2663, 2791, 2711,
1031
1032 546, 551, 2657, 510, 544, 552, 556, 2714, 555, 2713,
1033 549, 2712, 2791, 2791, 598, 393, 561, 2668, 2660, 2647,
1034 2658, 2662, 2663, 2643, 2654, 2658, 2655, 2654, 465, 531,
1035 2695, 2656, 2637, 2634, 2642, 2637, 2651, 2647, 2638, 2634,
1036 2646, 2646, 2634, 2636, 2639, 2619, 2623, 2636, 2638, 2635,
1037 2627, 2617, 2635, 2791, 2620, 2629, 82, 2670, 2613, 2622,
1038 2667, 2611, 2621, 2624, 569, 2620, 2662, 2604, 2606, 2617,
1039 2658, 567, 2600, 16, 2613, 2593, 2608, 590, 2598, 2604,
1040 476, 2595, 2593, 2593, 2599, 2590, 2589, 2596, 2586, 2648,
1041 2601, 2600, 2594, 537, 2601, 2596, 2588, 2578, 2593, 2592,
1042
1043 2587, 2591, 2572, 2588, 2574, 2580, 2587, 2569, 532, 2574,
1044 2571, 2570, 598, 2569, 2564, 2578, 576, 2577, 2623, 2579,
1045 575, 2570, 2558, 591, 2791, 2791, 592, 2791, 2791, 2556,
1046 470, 573, 596, 2607, 600, 2617, 593, 602, 2791, 2616,
1047 2791, 2610, 646, 2791, 2569, 593, 2546, 2555, 2606, 2563,
1048 2546, 2563, 2602, 2559, 2542, 2548, 2603, 2555, 2558, 2549,
1049 2552, 2538, 2549, 2596, 2590, 2545, 2542, 621, 2548, 2591,
1050 2523, 2584, 2534, 2529, 2523, 2525, 2528, 2578, 2532, 2521,
1051 2537, 2574, 2517, 669, 2531, 2516, 2515, 2528, 2526, 2524,
1052 2524, 2523, 2518, 2525, 2520, 2516, 611, 2514, 2517, 2512,
1053
1054 2498, 2510, 2506, 2559, 603, 619, 2553, 2791, 2497, 2513,
1055 2550, 2497, 2496, 2495, 2488, 2490, 2502, 2493, 2500, 2481,
1056 2498, 2493, 672, 2543, 2493, 2490, 2493, 2791, 2492, 285,
1057 2482, 2494, 620, 2469, 2470, 2491, 2482, 2472, 2526, 2468,
1058 2482, 631, 2468, 2480, 2479, 2478, 2473, 2518, 2475, 2474,
1059 2473, 2472, 2455, 2463, 2516, 2472, 2452, 2513, 2791, 2452,
1060 2451, 681, 2464, 2462, 2791, 2791, 2462, 2451, 2443, 627,
1061 2500, 2504, 2503, 2791, 2502, 615, 2791, 655, 726, 2458,
1062 641, 2500, 2439, 2450, 2492, 2442, 2444, 2446, 2433, 2441,
1063 2429, 2791, 2434, 2427, 2439, 2442, 2429, 2428, 2791, 655,
1064
1065 2430, 2427, 638, 2425, 2427, 2791, 2475, 2434, 2431, 2416,
1066 2430, 2428, 2428, 2422, 696, 2429, 2417, 2410, 2464, 2791,
1067 2408, 2424, 2461, 2419, 2417, 2415, 2416, 2400, 2409, 2454,
1068 2402, 2401, 2396, 2395, 2449, 2390, 648, 2409, 2383, 2390,
1069 2395, 2405, 2442, 2446, 2791, 2388, 2384, 698, 2382, 2437,
1070 2390, 2389, 2383, 2390, 2374, 2374, 2384, 2372, 2386, 2386,
1071 2374, 2370, 2368, 2791, 2377, 2427, 2791, 2366, 2377, 2419,
1072 2361, 2360, 2365, 2374, 2368, 2362, 2371, 2416, 2410, 2369,
1073 2353, 2348, 2368, 2343, 2349, 682, 2363, 2356, 2360, 2343,
1074 2404, 2342, 2342, 2396, 2338, 2339, 2338, 2336, 2353, 2791,
1075
1076 2349, 2389, 2791, 2337, 2335, 2791, 2346, 2385, 2384, 2341,
1077 2325, 2342, 2385, 685, 2791, 2791, 2791, 704, 695, 679,
1078 2322, 722, 2791, 2332, 2331, 664, 2338, 2318, 2328, 2373,
1079 2315, 2371, 2313, 2323, 2368, 2310, 2317, 2310, 2312, 2321,
1080 2303, 2303, 2318, 2317, 2301, 670, 2315, 2314, 2314, 2296,
1081 2301, 2345, 2309, 2306, 2300, 2348, 2289, 2304, 2304, 2302,
1082 2302, 2791, 2287, 2284, 2345, 2297, 2289, 2295, 2286, 2294,
1083 2279, 2333, 2294, 2276, 2288, 2280, 582, 2271, 2270, 2264,
1084 2269, 2284, 2281, 2282, 2261, 2271, 2277, 2323, 2275, 2267,
1085 2258, 2791, 2259, 2261, 2256, 2269, 2261, 2260, 2265, 2307,
1086
1087 2306, 2254, 751, 2263, 2303, 2245, 2301, 2245, 2248, 2241,
1088 2256, 2791, 2254, 2233, 2237, 2251, 2246, 2242, 2290, 2239,
1089 2246, 2287, 2791, 2229, 2243, 2242, 2245, 2226, 2277, 26,
1090 70, 307, 315, 341, 429, 475, 2791, 465, 496, 582,
1091 709, 662, 663, 682, 678, 736, 710, 707, 692, 700,
1092 704, 697, 2791, 713, 705, 2791, 725, 739, 739, 733,
1093 747, 707, 706, 713, 722, 734, 728, 717, 713, 727,
1094 728, 778, 751, 784, 741, 741, 783, 792, 743, 743,
1095 744, 754, 760, 746, 749, 752, 761, 761, 745, 805,
1096 755, 765, 768, 809, 769, 762, 766, 763, 765, 815,
1097
1098 816, 777, 824, 778, 780, 2791, 783, 778, 769, 784,
1099 789, 786, 788, 790, 789, 777, 791, 789, 797, 836,
1100 795, 843, 844, 791, 783, 793, 844, 800, 852, 2791,
1101 853, 803, 805, 801, 795, 811, 799, 809, 861, 857,
1102 817, 806, 819, 2791, 809, 810, 821, 810, 823, 813,
1103 826, 873, 874, 875, 815, 826, 811, 834, 825, 814,
1104 820, 878, 839, 823, 835, 882, 883, 827, 885, 846,
1105 841, 846, 844, 891, 830, 842, 845, 849, 841, 838,
1106 2791, 905, 861, 862, 850, 864, 854, 857, 868, 853,
1107 860, 866, 867, 859, 873, 897, 889, 918, 919, 893,
1108
1109 866, 880, 885, 882, 864, 871, 885, 933, 887, 884,
1110 885, 883, 892, 2791, 888, 883, 898, 895, 881, 883,
1111 902, 898, 900, 889, 896, 898, 907, 950, 913, 952,
1112 911, 901, 899, 898, 909, 905, 964, 908, 919, 904,
1113 905, 911, 927, 923, 918, 968, 2791, 929, 929, 922,
1114 933, 931, 979, 918, 920, 932, 940, 938, 925, 923,
1115 988, 942, 928, 934, 932, 2791, 2791, 942, 947, 952,
1116 940, 950, 952, 2791, 2791, 953, 940, 958, 945, 947,
1117 940, 957, 2791, 946, 964, 951, 1004, 952, 954, 1008,
1118 951, 955, 973, 1017, 2791, 2791, 2791, 959, 963, 962,
1119
1120 959, 975, 1023, 973, 963, 964, 960, 973, 984, 985,
1121 980, 981, 983, 976, 978, 974, 980, 980, 982, 997,
1122 980, 1042, 996, 1001, 978, 1001, 987, 986, 2791, 993,
1123 994, 1046, 1047, 996, 1009, 1050, 1005, 995, 1010, 1004,
1124 1012, 999, 1030, 1040, 1028, 1036, 1048, 1065, 1011, 1006,
1125 1065, 1066, 1025, 1068, 2791, 1074, 1014, 1030, 1034, 1078,
1126 1025, 1024, 1019, 1020, 1032, 1027, 1023, 1032, 1027, 1028,
1127 1038, 1049, 1091, 1039, 1036, 1054, 1046, 1041, 1102, 1056,
1128 1057, 1048, 2791, 1062, 1051, 1054, 1062, 1064, 1049, 1061,
1129 1066, 1063, 1061, 1111, 1074, 1058, 1059, 2791, 1075, 1078,
1130
1131 1061, 1078, 1073, 1125, 1065, 1084, 2791, 1083, 1086, 1072,
1132 1067, 1085, 1128, 1083, 1079, 1076, 1132, 1133, 1092, 1078,
1133 1096, 1096, 1096, 1097, 1098, 1084, 1099, 1091, 1098, 1088,
1134 1089, 1107, 1106, 1093, 1110, 2791, 1102, 1108, 1111, 1159,
1135 1103, 2791, 1106, 1111, 1159, 1107, 1119, 1113, 1114, 1112,
1136 1114, 1124, 1172, 1113, 1114, 1114, 1176, 1117, 1129, 1122,
1137 2791, 1118, 1126, 1124, 1178, 1117, 1138, 1125, 1126, 1127,
1138 1128, 1134, 1142, 1133, 1138, 1148, 1149, 1150, 1155, 1199,
1139 1167, 1196, 1179, 1171, 1176, 2791, 1159, 1155, 1151, 1165,
1140 1148, 1148, 2791, 1149, 1212, 1152, 2791, 1163, 1153, 1173,
1141
1142 1172, 1163, 1174, 1220, 1170, 1179, 1172, 1176, 1180, 1163,
1143 1180, 1181, 1176, 1234, 1178, 2791, 1231, 1175, 1178, 1196,
1144 1178, 1179, 1179, 1200, 1197, 1185, 1203, 1191, 1205, 1191,
1145 1199, 1208, 1188, 1203, 1210, 1255, 1198, 1252, 2791, 1258,
1146 1259, 1198, 1208, 1218, 1202, 1222, 1210, 1206, 1213, 1222,
1147 1210, 1217, 1218, 1230, 1274, 1218, 1276, 1217, 1216, 1220,
1148 1237, 1281, 1228, 1227, 1233, 1234, 1232, 1230, 1225, 1289,
1149 1237, 1291, 1287, 1293, 2791, 1231, 1248, 1241, 1232, 1251,
1150 1239, 1249, 1250, 1246, 1259, 1259, 2791, 1243, 1240, 1246,
1151 2791, 1247, 1310, 1266, 1247, 1266, 1267, 1269, 1311, 1261,
1152
1153 1318, 1319, 1269, 1274, 1268, 1266, 1277, 1276, 1260, 1265,
1154 1271, 1284, 2791, 1298, 1311, 1299, 1313, 1300, 1335, 1272,
1155 1294, 1289, 1289, 1293, 1341, 2791, 1281, 1281, 1284, 1301,
1156 1296, 1300, 1295, 2791, 1304, 1288, 1305, 1285, 1306, 1296,
1157 1295, 1351, 1302, 2791, 1319, 1319, 1360, 1304, 1313, 1363,
1158 1318, 1323, 1309, 1372, 1312, 1313, 1327, 1325, 1317, 1323,
1159 1319, 1337, 1338, 1339, 2791, 1378, 1330, 2791, 1340, 2791,
1160 1325, 1336, 1327, 1346, 1339, 1337, 1330, 1342, 1389, 1350,
1161 1339, 1346, 1347, 1353, 2791, 1346, 2791, 1401, 1351, 1340,
1162 1404, 2791, 1405, 1344, 1350, 1351, 1358, 1405, 1364, 2791,
1163
1164 1365, 2791, 1352, 2791, 1352, 1355, 1369, 1374, 1357, 1419,
1165 1373, 1374, 1417, 1366, 1371, 1425, 1421, 1371, 1428, 2791,
1166 1376, 1373, 1431, 1432, 1386, 1387, 1389, 2791, 2791, 1381,
1167 1376, 1433, 1379, 1395, 1441, 1380, 1392, 1381, 1398, 1441,
1168 1424, 1425, 1418, 1449, 2791, 1404, 1397, 1406, 1397, 1408,
1169 2791, 1456, 1390, 1401, 1416, 1455, 1404, 1415, 1401, 1417,
1170 1418, 1415, 1462, 1422, 1424, 1413, 1423, 1429, 1416, 1414,
1171 1477, 1475, 1430, 1477, 1483, 1437, 2791, 1423, 1439, 1430,
1172 1433, 1442, 1443, 1440, 1430, 1433, 1433, 1434, 1445, 1440,
1173 1498, 1442, 1500, 1440, 1445, 1504, 1500, 1438, 1453, 1446,
1174
1175 1449, 1462, 1463, 1461, 1513, 2791, 1459, 1465, 2791, 2791,
1176 1470, 1462, 1463, 1473, 1458, 1517, 1461, 1461, 1525, 1526,
1177 1467, 1477, 1529, 2791, 1474, 1475, 1477, 1533, 1471, 1474,
1178 2791, 1492, 1493, 2791, 1493, 1481, 2791, 2791, 1494, 1477,
1179 1497, 1498, 1484, 1486, 1548, 1495, 2791, 1550, 1496, 1490,
1180 1553, 1518, 1536, 1551, 1538, 2791, 1557, 1513, 1561, 1508,
1181 1558, 2791, 1503, 1565, 1512, 1506, 1503, 1506, 1508, 1566,
1182 1526, 1568, 1518, 1530, 1533, 1530, 1522, 1525, 1520, 1528,
1183 1519, 2791, 1527, 1542, 1527, 2791, 1529, 1586, 1531, 1588,
1184 1547, 1547, 1550, 1550, 1547, 1594, 1553, 1554, 1546, 1547,
1185
1186 2791, 1548, 2791, 1558, 1550, 2791, 1556, 1562, 1563, 1560,
1187 1607, 1552, 1567, 1568, 1560, 2791, 1570, 1558, 1559, 1559,
1188 1560, 1566, 1565, 1563, 1620, 1578, 2791, 2791, 1622, 1566,
1189 2791, 1567, 1568, 1574, 2791, 1583, 1577, 1635, 1579, 1572,
1190 1584, 1579, 1589, 1600, 1593, 1599, 1589, 1647, 1597, 2791,
1191 1606, 2791, 1603, 1651, 2791, 1601, 1629, 1630, 1636, 1621,
1192 1629, 2791, 1658, 2791, 1613, 1598, 1661, 2791, 1662, 1616,
1193 1621, 1603, 1666, 1607, 1663, 1627, 1620, 1616, 1609, 1617,
1194 1669, 1624, 1625, 1615, 1620, 1632, 1686, 1637, 1688, 1635,
1195 1685, 1646, 1646, 1642, 1689, 1634, 1639, 1637, 1699, 1640,
1196
1197 1648, 1654, 1642, 1704, 1700, 1660, 1707, 1665, 1654, 1648,
1198 1711, 1650, 1651, 1665, 1715, 1669, 1669, 1718, 1719, 1658,
1199 1675, 1671, 1669, 1676, 1660, 1721, 1722, 1723, 1683, 1676,
1200 1675, 1675, 1670, 1688, 2791, 1679, 1685, 1690, 1677, 1678,
1201 1677, 1679, 1737, 1680, 2791, 1676, 1694, 1746, 2791, 1701,
1202 1715, 1729, 1728, 1717, 1719, 2791, 1753, 1703, 2791, 2791,
1203 1694, 1705, 1757, 2791, 1711, 1701, 1707, 1705, 1758, 1713,
1204 1718, 1704, 1707, 1723, 1712, 1710, 1724, 1711, 2791, 1713,
1205 2791, 1731, 1718, 1730, 1777, 1717, 1722, 1785, 1730, 1740,
1206 1741, 2791, 1789, 1726, 1786, 1741, 1788, 2791, 1736, 1795,
1207
1208 2791, 1735, 1750, 1738, 2791, 1748, 1749, 1801, 2791, 1756,
1209 1760, 2791, 2791, 1799, 1762, 1738, 1756, 1757, 1766, 1748,
1210 1755, 1767, 1766, 1757, 1810, 1759, 1755, 1818, 1757, 1758,
1211 1821, 1817, 1823, 1770, 1825, 1775, 1765, 1781, 1774, 2791,
1212 1830, 1808, 1832, 1814, 1829, 1835, 2791, 1781, 1837, 1776,
1213 2791, 1778, 1780, 1790, 1837, 1782, 1797, 1784, 1846, 1800,
1214 1786, 1793, 1793, 1851, 1805, 1806, 1793, 1795, 1809, 1795,
1215 1860, 1810, 2791, 1857, 1805, 1802, 2791, 1818, 1805, 1818,
1216 1805, 1826, 2791, 1823, 1871, 1821, 1818, 1819, 2791, 1875,
1217 1831, 1814, 1816, 1832, 1825, 1815, 1831, 1832, 1841, 1831,
1218
1219 1886, 1843, 1827, 1836, 1885, 2791, 1840, 1892, 2791, 1838,
1220 2791, 1832, 2791, 1839, 1896, 1897, 1894, 2791, 1895, 2791,
1221 1877, 1883, 2791, 1855, 2791, 1899, 1848, 1859, 1860, 1845,
1222 1846, 1854, 1911, 2791, 1856, 1908, 1909, 1861, 2791, 1856,
1223 1874, 1856, 1862, 1875, 1870, 2791, 1867, 1872, 1870, 1925,
1224 1866, 1880, 1930, 1875, 1872, 1872, 2791, 1887, 1888, 1889,
1225 2791, 1890, 1880, 1892, 1940, 1890, 1942, 1881, 1889, 1890,
1226 1903, 2791, 1904, 1885, 1886, 1893, 1895, 2791, 1909, 1906,
1227 1949, 1907, 2791, 2791, 1911, 1937, 1938, 1936, 1899, 1899,
1228 1908, 1915, 1908, 1907, 1918, 1905, 2791, 1921, 1909, 1912,
1229
1230 1971, 1908, 1927, 1969, 1930, 1923, 1922, 1931, 1933, 1937,
1231 2791, 1976, 1928, 2791, 1934, 1926, 1988, 1928, 1990, 1991,
1232 1992, 1947, 1994, 2791, 1933, 2791, 1991, 1950, 1951, 1938,
1233 1946, 1957, 1944, 1955, 1941, 1939, 1947, 1946, 1951, 1943,
1234 1988, 2012, 1994, 2014, 1964, 1953, 1966, 1956, 1973, 1972,
1235 2016, 1957, 1976, 1977, 2791, 1982, 1975, 2017, 1981, 1968,
1236 1983, 2031, 1985, 1988, 1983, 1988, 1977, 1986, 2791, 2040,
1237 2791, 2791, 2791, 1998, 2791, 2042, 1981, 2044, 2045, 1985,
1238 2047, 1992, 2044, 2045, 2004, 2047, 1990, 1994, 2012, 2056,
1239 2012, 2039, 2791, 2035, 2791, 2005, 1999, 1996, 2058, 2021,
1240
1241 2014, 2010, 2067, 2007, 2009, 2008, 2015, 2061, 2012, 2074,
1242 2015, 2791, 2020, 2030, 2032, 2034, 2017, 2025, 2791, 2020,
1243 2791, 2032, 2791, 2791, 2038, 2791, 2040, 2040, 2031, 2090,
1244 2031, 2041, 2026, 2039, 2791, 2041, 2072, 2078, 2050, 2048,
1245 2100, 2038, 2040, 2037, 2061, 2791, 2048, 2055, 2056, 2059,
1246 2109, 2049, 2791, 2106, 2050, 2058, 2067, 2053, 2069, 2068,
1247 2071, 2064, 2059, 2059, 2071, 2068, 2791, 2079, 2067, 2123,
1248 2071, 2083, 2111, 2132, 2133, 2077, 2791, 2077, 2089, 2137,
1249 2083, 2085, 2083, 2084, 2142, 2791, 2092, 2079, 2094, 2099,
1250 2091, 2097, 2149, 2150, 2151, 2105, 2153, 2154, 2095, 2099,
1251
1252 2096, 2112, 2095, 2107, 2101, 2163, 2791, 2791, 2108, 2119,
1253 2166, 2791, 2120, 2105, 2123, 2114, 2791, 2115, 2129, 2125,
1254 2118, 2113, 2119, 2791, 2791, 2791, 2177, 2791, 2791, 2117,
1255 2125, 2120, 2176, 2139, 2136, 2184, 2791, 2180, 2143, 2791,
1256 2187, 2126, 2189, 2129, 2142, 2141, 2142, 2132, 2144, 2140,
1257 2791, 2135, 2198, 2148, 2157, 2150, 2197, 2791, 2148, 2142,
1258 2791, 2154, 2791, 2201, 2207, 2146, 2162, 2210, 2163, 2212,
1259 2213, 2791, 2167, 2161, 2154, 2174, 2161, 2173, 2164, 2168,
1260 2791, 2218, 2164, 2791, 2174, 2791, 2791, 2165, 2173, 2223,
1261 2180, 2173, 2185, 2232, 2177, 2177, 2173, 2175, 2190, 2238,
1262
1263 2239, 2178, 2194, 2179, 2196, 2791, 2244, 2188, 2195, 2247,
1264 2188, 2791, 2791, 2198, 2250, 2195, 2252, 2791, 2200, 2199,
1265 2791, 2255, 2201, 2791, 2195, 2791, 2195, 2212, 2791, 2213,
1266 2261, 2204, 2263, 2264, 2791, 2265, 2791, 2791, 2791, 2791,
1267 2271, 2274, 2277, 2278, 2280, 2283, 2286, 2289
1268 } ;
1269
1270static const flex_int16_t yy_def[2349] =
1271 { 0,
1272 2341, 2341, 2342, 2342, 2341, 2341, 2341, 2341, 2341, 2341,
1273 2340, 2340, 2340, 2340, 2340, 2343, 2340, 2340, 2340, 2340,
1274 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
1275 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2344,
1276 2340, 2340, 2340, 2345, 15, 2340, 45, 45, 45, 45,
1277 45, 45, 45, 45, 45, 45, 2346, 45, 45, 45,
1278 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1279 45, 45, 45, 45, 45, 45, 45, 45, 45, 2343,
1280 2340, 2340, 2340, 2340, 2340, 2340, 2347, 2340, 2340, 2340,
1281 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2344, 2340,
1282
1283 2345, 2340, 2340, 45, 45, 45, 45, 45, 45, 45,
1284 45, 45, 45, 45, 45, 2348, 45, 2346, 45, 45,
1285 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1286 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1287 45, 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, 45, 45, 45, 45, 45, 45, 45, 45,
1292 2347, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 45,
1293
1294 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1295 45, 2348, 2340, 2340, 118, 45, 45, 45, 45, 45,
1296 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1297 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1298 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1299 45, 45, 45, 2340, 45, 45, 45, 45, 45, 45,
1300 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1301 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1302 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1303 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1304
1305 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1306 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1307 45, 45, 45, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
1308 45, 45, 45, 45, 45, 45, 45, 45, 2340, 45,
1309 2340, 45, 118, 2340, 45, 45, 45, 45, 45, 45,
1310 45, 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, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1314 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1315
1316 45, 45, 45, 45, 45, 45, 45, 2340, 45, 45,
1317 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1318 45, 45, 45, 45, 45, 45, 45, 2340, 45, 45,
1319 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1320 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1321 45, 45, 45, 45, 45, 45, 45, 45, 2340, 45,
1322 45, 45, 45, 45, 2340, 2340, 2340, 45, 45, 45,
1323 45, 45, 45, 2340, 45, 45, 2340, 45, 118, 45,
1324 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1325 45, 2340, 45, 45, 45, 45, 45, 45, 2340, 45,
1326
1327 45, 45, 45, 45, 45, 2340, 45, 45, 45, 45,
1328 45, 45, 45, 45, 45, 45, 45, 45, 45, 2340,
1329 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1330 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1331 45, 45, 45, 45, 2340, 45, 45, 45, 45, 45,
1332 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1333 45, 45, 45, 2340, 45, 45, 2340, 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, 45, 45, 45, 45, 45, 2340,
1337
1338 45, 45, 2340, 45, 45, 2340, 45, 45, 45, 2340,
1339 45, 45, 45, 45, 2340, 2340, 2340, 45, 45, 45,
1340 45, 45, 2340, 45, 45, 45, 45, 45, 45, 45,
1341 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1342 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1343 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1344 45, 2340, 45, 45, 45, 45, 45, 45, 45, 45,
1345 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1346 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1347 45, 2340, 45, 45, 45, 45, 45, 45, 45, 45,
1348
1349 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1350 45, 2340, 45, 45, 45, 45, 45, 45, 45, 45,
1351 45, 45, 2340, 45, 45, 45, 45, 45, 45, 45,
1352 45, 45, 45, 45, 45, 45, 2340, 45, 45, 45,
1353 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1354 45, 45, 2340, 45, 45, 2340, 45, 45, 45, 45,
1355 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1356 45, 45, 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, 45, 45, 45, 45,
1359
1360 45, 45, 45, 45, 45, 2340, 45, 45, 45, 45,
1361 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1362 45, 45, 45, 45, 45, 45, 45, 45, 45, 2340,
1363 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1364 45, 45, 45, 2340, 45, 45, 45, 45, 45, 45,
1365 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1366 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1367 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1368 2340, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1369 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1370
1371 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1372 45, 45, 45, 2340, 45, 45, 45, 45, 45, 45,
1373 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1374 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1375 45, 45, 45, 45, 45, 45, 2340, 45, 45, 45,
1376 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1377 45, 45, 45, 45, 45, 2340, 2340, 45, 45, 45,
1378 45, 45, 45, 2340, 2340, 45, 45, 45, 45, 45,
1379 45, 45, 2340, 45, 45, 45, 45, 45, 45, 45,
1380 45, 45, 45, 45, 2340, 2340, 2340, 45, 45, 45,
1381
1382 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1383 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1384 45, 45, 45, 45, 45, 45, 45, 45, 2340, 45,
1385 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1386 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1387 45, 45, 45, 45, 2340, 45, 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, 45, 2340, 45, 45, 45, 45, 45, 45, 45,
1391 45, 45, 45, 45, 45, 45, 45, 2340, 45, 45,
1392
1393 45, 45, 45, 45, 45, 45, 2340, 45, 45, 45,
1394 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1395 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1396 45, 45, 45, 45, 45, 2340, 45, 45, 45, 45,
1397 45, 2340, 45, 45, 45, 45, 45, 45, 45, 45,
1398 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1399 2340, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1400 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1401 45, 45, 45, 45, 45, 2340, 45, 45, 45, 45,
1402 45, 45, 2340, 45, 45, 45, 2340, 45, 45, 45,
1403
1404 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1405 45, 45, 45, 45, 45, 2340, 45, 45, 45, 45,
1406 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1407 45, 45, 45, 45, 45, 45, 45, 45, 2340, 45,
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, 45, 45, 45, 45, 45, 45, 45, 45,
1411 45, 45, 45, 45, 2340, 45, 45, 45, 45, 45,
1412 45, 45, 45, 45, 45, 45, 2340, 45, 45, 45,
1413 2340, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1414
1415 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1416 45, 45, 2340, 45, 45, 45, 45, 45, 45, 45,
1417 45, 45, 45, 45, 45, 2340, 45, 45, 45, 45,
1418 45, 45, 45, 2340, 45, 45, 45, 45, 45, 45,
1419 45, 45, 45, 2340, 45, 45, 45, 45, 45, 45,
1420 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1421 45, 45, 45, 45, 2340, 45, 45, 2340, 45, 2340,
1422 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1423 45, 45, 45, 45, 2340, 45, 2340, 45, 45, 45,
1424 45, 2340, 45, 45, 45, 45, 45, 45, 45, 2340,
1425
1426 45, 2340, 45, 2340, 45, 45, 45, 45, 45, 45,
1427 45, 45, 45, 45, 45, 45, 45, 45, 45, 2340,
1428 45, 45, 45, 45, 45, 45, 45, 2340, 2340, 45,
1429 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1430 45, 45, 45, 45, 2340, 45, 45, 45, 45, 45,
1431 2340, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1432 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1433 45, 45, 45, 45, 45, 45, 2340, 45, 45, 45,
1434 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1435 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1436
1437 45, 45, 45, 45, 45, 2340, 45, 45, 2340, 2340,
1438 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1439 45, 45, 45, 2340, 45, 45, 45, 45, 45, 45,
1440 2340, 45, 45, 2340, 45, 45, 2340, 2340, 45, 45,
1441 45, 45, 45, 45, 45, 45, 2340, 45, 45, 45,
1442 45, 45, 45, 45, 45, 2340, 45, 45, 45, 45,
1443 45, 2340, 45, 45, 45, 45, 45, 45, 45, 45,
1444 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1445 45, 2340, 45, 45, 45, 2340, 45, 45, 45, 45,
1446 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1447
1448 2340, 45, 2340, 45, 45, 2340, 45, 45, 45, 45,
1449 45, 45, 45, 45, 45, 2340, 45, 45, 45, 45,
1450 45, 45, 45, 45, 45, 45, 2340, 2340, 45, 45,
1451 2340, 45, 45, 45, 2340, 45, 45, 45, 45, 45,
1452 45, 45, 45, 45, 45, 45, 45, 45, 45, 2340,
1453 45, 2340, 45, 45, 2340, 45, 45, 45, 45, 45,
1454 45, 2340, 45, 2340, 45, 45, 45, 2340, 45, 45,
1455 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1456 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1457 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1458
1459 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1460 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1461 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1462 45, 45, 45, 45, 2340, 45, 45, 45, 45, 45,
1463 45, 45, 45, 45, 2340, 45, 45, 45, 2340, 45,
1464 45, 45, 45, 45, 45, 2340, 45, 45, 2340, 2340,
1465 45, 45, 45, 2340, 45, 45, 45, 45, 45, 45,
1466 45, 45, 45, 45, 45, 45, 45, 45, 2340, 45,
1467 2340, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1468 45, 2340, 45, 45, 45, 45, 45, 2340, 45, 45,
1469
1470 2340, 45, 45, 45, 2340, 45, 45, 45, 2340, 45,
1471 45, 2340, 2340, 45, 45, 45, 45, 45, 45, 45,
1472 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1473 45, 45, 45, 45, 45, 45, 45, 45, 45, 2340,
1474 45, 45, 45, 45, 45, 45, 2340, 45, 45, 45,
1475 2340, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1476 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1477 45, 45, 2340, 45, 45, 45, 2340, 45, 45, 45,
1478 45, 45, 2340, 45, 45, 45, 45, 45, 2340, 45,
1479 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1480
1481 45, 45, 45, 45, 45, 2340, 45, 45, 2340, 45,
1482 2340, 45, 2340, 45, 45, 45, 45, 2340, 45, 2340,
1483 45, 45, 2340, 45, 2340, 45, 45, 45, 45, 45,
1484 45, 45, 45, 2340, 45, 45, 45, 45, 2340, 45,
1485 45, 45, 45, 45, 45, 2340, 45, 45, 45, 45,
1486 45, 45, 45, 45, 45, 45, 2340, 45, 45, 45,
1487 2340, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1488 45, 2340, 45, 45, 45, 45, 45, 2340, 45, 45,
1489 45, 45, 2340, 2340, 45, 45, 45, 45, 45, 45,
1490 45, 45, 45, 45, 45, 45, 2340, 45, 45, 45,
1491
1492 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1493 2340, 45, 45, 2340, 45, 45, 45, 45, 45, 45,
1494 45, 45, 45, 2340, 45, 2340, 45, 45, 45, 45,
1495 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1496 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1497 45, 45, 45, 45, 2340, 45, 45, 45, 45, 45,
1498 45, 45, 45, 45, 45, 45, 45, 45, 2340, 45,
1499 2340, 2340, 2340, 45, 2340, 45, 45, 45, 45, 45,
1500 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1501 45, 45, 2340, 45, 2340, 45, 45, 45, 45, 45,
1502
1503 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1504 45, 2340, 45, 45, 45, 45, 45, 45, 2340, 45,
1505 2340, 45, 2340, 2340, 45, 2340, 45, 45, 45, 45,
1506 45, 45, 45, 45, 2340, 45, 45, 45, 45, 45,
1507 45, 45, 45, 45, 45, 2340, 45, 45, 45, 45,
1508 45, 45, 2340, 45, 45, 45, 45, 45, 45, 45,
1509 45, 45, 45, 45, 45, 45, 2340, 45, 45, 45,
1510 45, 45, 45, 45, 45, 45, 2340, 45, 45, 45,
1511 45, 45, 45, 45, 45, 2340, 45, 45, 45, 45,
1512 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1513
1514 45, 45, 45, 45, 45, 45, 2340, 2340, 45, 45,
1515 45, 2340, 45, 45, 45, 45, 2340, 45, 45, 45,
1516 45, 45, 45, 2340, 2340, 2340, 45, 2340, 2340, 45,
1517 45, 45, 45, 45, 45, 45, 2340, 45, 45, 2340,
1518 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1519 2340, 45, 45, 45, 45, 45, 45, 2340, 45, 45,
1520 2340, 45, 2340, 45, 45, 45, 45, 45, 45, 45,
1521 45, 2340, 45, 45, 45, 45, 45, 45, 45, 45,
1522 2340, 45, 45, 2340, 45, 2340, 2340, 45, 45, 45,
1523 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1524
1525 45, 45, 45, 45, 45, 2340, 45, 45, 45, 45,
1526 45, 2340, 2340, 45, 45, 45, 45, 2340, 45, 45,
1527 2340, 45, 45, 2340, 45, 2340, 45, 45, 2340, 45,
1528 45, 45, 45, 45, 2340, 45, 2340, 2340, 2340, 0,
1529 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340
1530 } ;
1531
1532static const flex_int16_t yy_nxt[2868] =
1533 { 0,
1534 2340, 13, 14, 13, 2340, 15, 16, 102, 17, 18,
1535 19, 20, 21, 22, 22, 22, 22, 22, 23, 24,
1536 86, 408, 37, 14, 37, 87, 25, 26, 38, 37,
1537 14, 37, 42, 27, 42, 38, 871, 2340, 28, 91,
1538 13, 14, 13, 92, 29, 91, 30, 103, 13, 14,
1539 13, 205, 25, 31, 13, 14, 13, 42, 40, 42,
1540 2340, 32, 13, 14, 13, 91, 40, 33, 409, 170,
1541 93, 94, 92, 171, 34, 35, 13, 14, 13, 205,
1542 15, 16, 92, 17, 18, 19, 20, 21, 22, 22,
1543 22, 22, 22, 23, 24, 39, 13, 14, 13, 93,
1544
1545 93, 25, 26, 39, 13, 14, 13, 42, 27, 42,
1546 135, 95, 136, 28, 109, 246, 41, 105, 106, 29,
1547 108, 30, 114, 137, 41, 234, 235, 25, 31, 96,
1548 388, 247, 89, 138, 89, 872, 32, 90, 90, 90,
1549 90, 90, 33, 109, 105, 106, 108, 389, 114, 34,
1550 35, 44, 44, 44, 45, 45, 46, 45, 45, 45,
1551 45, 45, 45, 45, 45, 45, 45, 47, 45, 45,
1552 45, 45, 45, 48, 45, 49, 50, 45, 51, 45,
1553 45, 52, 45, 45, 53, 45, 45, 45, 45, 54,
1554 55, 45, 56, 45, 45, 45, 57, 45, 45, 58,
1555
1556 59, 60, 61, 62, 63, 64, 65, 66, 52, 67,
1557 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
1558 78, 79, 45, 45, 45, 45, 45, 81, 115, 82,
1559 82, 82, 82, 82, 81, 192, 84, 84, 84, 84,
1560 84, 108, 83, 85, 85, 85, 85, 85, 81, 83,
1561 84, 84, 84, 84, 84, 115, 83, 110, 314, 112,
1562 193, 105, 192, 83, 315, 111, 129, 108, 83, 130,
1563 131, 113, 140, 132, 133, 83, 142, 166, 139, 141,
1564 202, 167, 83, 110, 143, 112, 134, 193, 119, 83,
1565 45, 168, 192, 111, 120, 572, 45, 121, 45, 45,
1566
1567 113, 45, 300, 301, 45, 102, 202, 45, 144, 117,
1568 264, 145, 45, 45, 265, 45, 45, 873, 146, 195,
1569 147, 115, 45, 45, 45, 45, 45, 45, 45, 45,
1570 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1571 45, 45, 45, 45, 45, 103, 106, 573, 115, 45,
1572 149, 150, 114, 45, 151, 153, 194, 45, 190, 154,
1573 152, 211, 225, 155, 226, 45, 123, 874, 110, 45,
1574 124, 45, 118, 106, 125, 156, 111, 126, 186, 157,
1575 127, 161, 194, 201, 128, 194, 193, 211, 187, 162,
1576 158, 163, 159, 188, 160, 172, 164, 165, 344, 173,
1577
1578 204, 208, 174, 206, 111, 275, 179, 180, 875, 175,
1579 176, 197, 201, 196, 177, 178, 112, 85, 85, 85,
1580 85, 85, 90, 90, 90, 90, 90, 204, 113, 208,
1581 83, 81, 206, 82, 82, 82, 82, 82, 241, 876,
1582 242, 209, 181, 89, 182, 89, 83, 183, 90, 90,
1583 90, 90, 90, 210, 276, 345, 83, 184, 85, 85,
1584 85, 85, 85, 81, 185, 84, 84, 84, 84, 84,
1585 209, 83, 83, 90, 90, 90, 90, 90, 83, 101,
1586 201, 210, 221, 228, 206, 877, 101, 250, 243, 259,
1587 251, 222, 229, 230, 252, 223, 285, 83, 216, 286,
1588
1589 287, 244, 260, 288, 83, 245, 308, 289, 302, 217,
1590 208, 209, 303, 272, 280, 273, 304, 210, 291, 101,
1591 309, 324, 325, 101, 418, 358, 468, 101, 359, 281,
1592 282, 283, 878, 326, 419, 101, 469, 324, 313, 101,
1593 317, 101, 101, 214, 326, 319, 325, 335, 879, 325,
1594 324, 215, 215, 215, 215, 215, 292, 293, 294, 326,
1595 215, 215, 215, 215, 215, 215, 327, 295, 332, 296,
1596 329, 297, 298, 328, 299, 333, 335, 336, 337, 397,
1597 338, 340, 342, 332, 360, 461, 215, 215, 215, 215,
1598 215, 215, 361, 337, 332, 448, 432, 449, 362, 433,
1599
1600 413, 333, 340, 339, 337, 336, 338, 340, 453, 346,
1601 342, 343, 343, 343, 343, 343, 470, 465, 465, 406,
1602 343, 343, 343, 343, 343, 343, 473, 471, 340, 475,
1603 476, 503, 818, 819, 880, 398, 470, 504, 399, 414,
1604 462, 618, 457, 465, 466, 470, 343, 343, 343, 343,
1605 343, 343, 473, 415, 471, 475, 546, 476, 475, 479,
1606 479, 479, 479, 479, 613, 481, 547, 618, 479, 479,
1607 479, 479, 479, 479, 520, 536, 537, 564, 613, 521,
1608 538, 576, 565, 586, 548, 577, 606, 587, 619, 649,
1609 620, 607, 731, 613, 479, 479, 479, 479, 479, 479,
1610
1611 684, 662, 650, 617, 651, 639, 663, 622, 695, 640,
1612 685, 757, 883, 884, 881, 761, 619, 641, 620, 642,
1613 643, 644, 645, 646, 766, 882, 758, 756, 759, 760,
1614 522, 767, 763, 787, 885, 523, 788, 757, 566, 45,
1615 45, 45, 45, 45, 761, 886, 887, 732, 45, 45,
1616 45, 45, 45, 45, 759, 758, 844, 760, 888, 889,
1617 890, 845, 891, 892, 893, 894, 895, 896, 897, 901,
1618 898, 899, 902, 900, 45, 45, 45, 45, 45, 45,
1619 903, 904, 905, 906, 907, 908, 909, 910, 911, 914,
1620 915, 916, 917, 919, 918, 897, 896, 898, 846, 900,
1621
1622 899, 912, 920, 921, 922, 923, 924, 913, 925, 926,
1623 927, 928, 929, 930, 931, 932, 933, 934, 935, 936,
1624 937, 938, 939, 940, 943, 944, 945, 941, 946, 947,
1625 948, 942, 949, 950, 951, 952, 953, 954, 955, 956,
1626 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,
1627 968, 969, 970, 957, 972, 971, 973, 974, 975, 976,
1628 977, 978, 979, 980, 981, 982, 983, 984, 985, 986,
1629 987, 988, 989, 990, 991, 992, 993, 994, 995, 996,
1630 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006,
1631 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1016, 1017,
1632
1633 1018, 1021, 1022, 1023, 1015, 1026, 1024, 1019, 1027, 1028,
1634 1029, 1020, 1025, 1030, 1031, 1032, 1033, 1034, 1035, 1036,
1635 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046,
1636 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,
1637 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066,
1638 1067, 1068, 1069, 1043, 1070, 1071, 1044, 1072, 1073, 1047,
1639 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083,
1640 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093,
1641 1094, 1095, 1096, 1097, 1098, 1100, 1101, 1102, 1103, 1099,
1642 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113,
1643
1644 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123,
1645 1124, 1125, 1126, 1128, 1129, 1130, 1127, 1131, 1132, 1133,
1646 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143,
1647 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153,
1648 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163,
1649 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173,
1650 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183,
1651 1186, 1184, 1187, 1188, 1185, 1189, 1190, 1191, 1192, 1193,
1652 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203,
1653 1204, 1205, 1206, 1207, 1208, 1182, 1181, 1209, 1183, 1184,
1654
1655 1185, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218,
1656 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228,
1657 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238,
1658 1239, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249,
1659 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259,
1660 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1269, 1270,
1661 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1268, 1279,
1662 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289,
1663 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299,
1664 1300, 1240, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308,
1665
1666 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1317, 1316, 1318,
1667 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328,
1668 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338,
1669 1339, 1340, 1341, 1342, 1314, 1316, 1317, 1318, 1343, 1344,
1670 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354,
1671 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364,
1672 1365, 1366, 1367, 1368, 1370, 1372, 1373, 1374, 1369, 1375,
1673 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385,
1674 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395,
1675 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405,
1676
1677 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415,
1678 1416, 1371, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424,
1679 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434,
1680 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1444, 1443,
1681 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454,
1682 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464,
1683 1465, 1466, 1441, 1467, 1440, 1443, 1442, 1444, 1468, 1469,
1684 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479,
1685 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489,
1686 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499,
1687
1688 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509,
1689 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519,
1690 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1529, 1530,
1691 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540,
1692 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550,
1693 1551, 1552, 1553, 1554, 1556, 1555, 1557, 1558, 1559, 1560,
1694 1561, 1562, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571,
1695 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1553,
1696 1554, 1581, 1582, 1528, 1555, 1583, 1584, 1585, 1586, 1587,
1697 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597,
1698
1699 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1563, 1606,
1700 1607, 1608, 1609, 1611, 1612, 1613, 1614, 1615, 1616, 1617,
1701 1610, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626,
1702 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1637,
1703 1638, 1641, 1639, 1636, 1640, 1642, 1643, 1644, 1645, 1646,
1704 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1657,
1705 1658, 1659, 1662, 1656, 1661, 1663, 1664, 1665, 1666, 1667,
1706 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677,
1707 1678, 1679, 1680, 1681, 1682, 1660, 1658, 1683, 1657, 1684,
1708 1661, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693,
1709
1710 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703,
1711 1704, 1705, 1706, 1660, 1707, 1708, 1709, 1710, 1711, 1712,
1712 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722,
1713 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1734, 1731,
1714 1735, 1736, 1732, 1737, 1738, 1733, 1739, 1740, 1741, 1742,
1715 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752,
1716 1754, 1753, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762,
1717 1763, 1764, 1765, 1766, 1769, 1770, 1771, 1767, 1772, 1773,
1718 1774, 1775, 1776, 1777, 1778, 1751, 1752, 1753, 1768, 1754,
1719 1755, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787,
1720
1721 1788, 1789, 1790, 1791, 1792, 1794, 1795, 1796, 1797, 1798,
1722 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808,
1723 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818,
1724 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828,
1725 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838,
1726 1839, 1840, 1841, 1842, 1843, 1845, 1844, 1846, 1847, 1848,
1727 1849, 1850, 1851, 1852, 1853, 1793, 1854, 1855, 1856, 1857,
1728 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867,
1729 1843, 1868, 1842, 1844, 1845, 1869, 1846, 1870, 1871, 1872,
1730 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882,
1731
1732 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892,
1733 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902,
1734 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912,
1735 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922,
1736 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932,
1737 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942,
1738 1943, 1944, 1945, 1919, 1921, 1946, 1947, 1948, 1949, 1950,
1739 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960,
1740 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970,
1741 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1981,
1742
1743 1982, 1983, 1984, 1980, 1985, 1986, 1987, 1989, 1988, 1990,
1744 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
1745 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
1746 2011, 2012, 2013, 1987, 1988, 2014, 2015, 2016, 2017, 2018,
1747 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028,
1748 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038,
1749 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048,
1750 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058,
1751 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2041, 2042,
1752 2067, 2043, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075,
1753
1754 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085,
1755 2086, 2087, 2089, 2090, 2088, 2091, 2092, 2093, 2094, 2095,
1756 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105,
1757 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115,
1758 2116, 2117, 2118, 2092, 2094, 2119, 2120, 2121, 2122, 2123,
1759 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133,
1760 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143,
1761 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153,
1762 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2137,
1763 2163, 2138, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171,
1764
1765 2172, 2173, 2175, 2174, 2176, 2177, 2178, 2179, 2180, 2181,
1766 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191,
1767 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2173, 2174,
1768 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209,
1769 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219,
1770 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229,
1771 2230, 2231, 2206, 2232, 2233, 2234, 2235, 2236, 2237, 2238,
1772 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248,
1773 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258,
1774 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268,
1775
1776 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278,
1777 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288,
1778 2289, 2290, 2291, 2293, 2292, 2294, 2295, 2296, 2297, 2298,
1779 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308,
1780 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318,
1781 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328,
1782 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338,
1783 2339, 12, 12, 12, 36, 36, 36, 80, 99, 80,
1784 101, 101, 101, 116, 116, 116, 191, 870, 191, 212,
1785 212, 212, 869, 868, 867, 866, 865, 864, 863, 862,
1786
1787 861, 860, 859, 858, 857, 856, 855, 854, 853, 852,
1788 851, 850, 849, 848, 847, 843, 842, 841, 840, 839,
1789 838, 837, 836, 835, 834, 833, 832, 831, 830, 829,
1790 828, 827, 826, 825, 824, 823, 822, 821, 820, 817,
1791 816, 815, 814, 813, 812, 811, 810, 809, 808, 807,
1792 806, 805, 804, 803, 802, 801, 800, 799, 798, 797,
1793 796, 795, 794, 793, 792, 791, 790, 789, 786, 785,
1794 784, 783, 782, 781, 780, 779, 778, 777, 776, 775,
1795 774, 773, 772, 771, 770, 769, 768, 765, 764, 762,
1796 756, 755, 754, 753, 752, 751, 750, 749, 748, 747,
1797
1798 746, 745, 744, 743, 742, 741, 740, 739, 738, 737,
1799 736, 735, 734, 733, 730, 729, 728, 727, 726, 725,
1800 724, 723, 722, 721, 720, 719, 718, 717, 716, 715,
1801 714, 713, 712, 711, 710, 709, 708, 707, 706, 705,
1802 704, 703, 702, 701, 700, 699, 698, 697, 696, 694,
1803 693, 692, 691, 690, 689, 688, 687, 686, 683, 682,
1804 681, 680, 679, 678, 677, 676, 675, 674, 673, 672,
1805 671, 670, 669, 668, 667, 666, 665, 664, 661, 660,
1806 659, 658, 657, 656, 655, 654, 653, 652, 648, 647,
1807 638, 637, 636, 635, 634, 633, 632, 631, 630, 629,
1808
1809 628, 627, 626, 625, 624, 623, 621, 617, 616, 615,
1810 614, 612, 611, 610, 609, 608, 605, 604, 603, 602,
1811 601, 600, 599, 598, 597, 596, 595, 594, 593, 592,
1812 591, 590, 589, 588, 585, 584, 583, 582, 581, 580,
1813 579, 578, 575, 574, 571, 570, 569, 568, 567, 563,
1814 562, 561, 560, 559, 558, 557, 556, 555, 554, 553,
1815 552, 551, 550, 549, 545, 544, 543, 542, 541, 540,
1816 539, 535, 534, 533, 532, 531, 530, 529, 528, 527,
1817 526, 525, 524, 519, 518, 517, 516, 515, 514, 513,
1818 512, 511, 510, 509, 508, 507, 506, 505, 502, 501,
1819
1820 500, 499, 498, 497, 496, 495, 494, 493, 492, 491,
1821 490, 489, 488, 487, 486, 485, 484, 483, 482, 480,
1822 478, 477, 474, 472, 467, 464, 463, 460, 459, 458,
1823 456, 455, 454, 452, 451, 450, 447, 446, 445, 444,
1824 443, 442, 441, 440, 439, 438, 437, 436, 435, 434,
1825 431, 430, 429, 428, 427, 426, 425, 424, 423, 422,
1826 421, 420, 417, 416, 412, 411, 410, 407, 405, 404,
1827 403, 402, 401, 400, 396, 395, 394, 393, 392, 391,
1828 390, 387, 386, 385, 384, 383, 382, 381, 380, 379,
1829 378, 377, 376, 375, 374, 373, 372, 371, 370, 369,
1830
1831 368, 367, 366, 365, 364, 363, 357, 356, 355, 354,
1832 353, 352, 351, 350, 349, 348, 347, 213, 341, 339,
1833 334, 331, 330, 323, 322, 321, 320, 318, 316, 312,
1834 311, 310, 307, 306, 305, 290, 284, 279, 278, 277,
1835 274, 271, 270, 269, 268, 267, 266, 263, 262, 261,
1836 258, 257, 256, 255, 254, 253, 249, 248, 240, 239,
1837 238, 237, 236, 233, 232, 231, 227, 224, 220, 219,
1838 218, 213, 207, 203, 200, 199, 198, 189, 169, 148,
1839 122, 107, 104, 43, 100, 98, 97, 88, 43, 2340,
1840 11, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
1841
1842 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
1843 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
1844 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
1845 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
1846 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
1847 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
1848 2340, 2340, 2340, 2340, 2340, 2340, 2340
1849 } ;
1850
1851static const flex_int16_t yy_chk[2868] =
1852 { 0,
1853 0, 1, 1, 1, 0, 1, 1, 44, 1, 1,
1854 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1855 21, 274, 3, 3, 3, 21, 1, 1, 3, 4,
1856 4, 4, 13, 1, 13, 4, 730, 0, 1, 26,
1857 5, 5, 5, 27, 1, 31, 1, 44, 6, 6,
1858 6, 109, 1, 1, 7, 7, 7, 37, 7, 37,
1859 0, 1, 8, 8, 8, 26, 8, 1, 274, 74,
1860 28, 31, 27, 74, 1, 1, 2, 2, 2, 109,
1861 2, 2, 32, 2, 2, 2, 2, 2, 2, 2,
1862 2, 2, 2, 2, 2, 5, 9, 9, 9, 28,
1863
1864 33, 2, 2, 6, 10, 10, 10, 42, 2, 42,
1865 62, 32, 62, 2, 52, 139, 9, 48, 49, 2,
1866 51, 2, 55, 62, 10, 131, 131, 2, 2, 33,
1867 257, 139, 25, 62, 25, 731, 2, 25, 25, 25,
1868 25, 25, 2, 52, 48, 49, 51, 257, 55, 2,
1869 2, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1870 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1871 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1872 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1873 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1874
1875 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1876 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1877 15, 15, 15, 15, 15, 15, 15, 17, 56, 17,
1878 17, 17, 17, 17, 19, 91, 19, 19, 19, 19,
1879 19, 63, 17, 20, 20, 20, 20, 20, 22, 19,
1880 22, 22, 22, 22, 22, 56, 20, 53, 182, 54,
1881 92, 58, 91, 22, 182, 53, 61, 63, 17, 61,
1882 61, 54, 64, 61, 61, 19, 65, 72, 63, 64,
1883 106, 72, 20, 53, 65, 54, 61, 92, 58, 22,
1884 45, 72, 94, 53, 58, 430, 45, 58, 45, 45,
1885
1886 54, 45, 172, 172, 45, 101, 106, 45, 66, 57,
1887 153, 66, 45, 45, 153, 45, 57, 732, 66, 94,
1888 66, 79, 45, 45, 45, 45, 45, 45, 45, 45,
1889 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1890 45, 45, 45, 45, 45, 101, 60, 430, 79, 57,
1891 68, 68, 77, 57, 68, 69, 93, 57, 79, 69,
1892 68, 115, 125, 69, 125, 57, 60, 733, 70, 57,
1893 60, 57, 57, 60, 60, 69, 70, 60, 77, 69,
1894 60, 71, 96, 105, 60, 93, 95, 115, 77, 71,
1895 70, 71, 70, 77, 70, 75, 71, 71, 216, 75,
1896
1897 108, 112, 75, 110, 70, 162, 76, 76, 734, 75,
1898 75, 96, 105, 95, 75, 75, 76, 81, 81, 81,
1899 81, 81, 89, 89, 89, 89, 89, 108, 76, 112,
1900 81, 82, 110, 82, 82, 82, 82, 82, 137, 735,
1901 137, 113, 76, 83, 76, 83, 82, 76, 83, 83,
1902 83, 83, 83, 114, 162, 216, 81, 76, 85, 85,
1903 85, 85, 85, 84, 76, 84, 84, 84, 84, 84,
1904 113, 85, 82, 90, 90, 90, 90, 90, 84, 103,
1905 119, 114, 123, 127, 160, 736, 103, 142, 138, 149,
1906 142, 123, 127, 127, 142, 123, 168, 85, 119, 168,
1907
1908 168, 138, 149, 169, 84, 138, 177, 169, 173, 119,
1909 181, 184, 173, 160, 166, 160, 173, 186, 171, 103,
1910 177, 192, 193, 103, 281, 229, 331, 103, 229, 166,
1911 166, 166, 738, 194, 281, 103, 331, 195, 181, 103,
1912 184, 103, 103, 118, 197, 186, 196, 204, 739, 193,
1913 192, 118, 118, 118, 118, 118, 171, 171, 171, 194,
1914 118, 118, 118, 118, 118, 118, 195, 171, 201, 171,
1915 197, 171, 171, 196, 171, 202, 204, 205, 206, 265,
1916 207, 209, 211, 217, 230, 321, 118, 118, 118, 118,
1917 118, 118, 230, 272, 201, 309, 294, 309, 230, 294,
1918
1919 278, 202, 317, 313, 206, 205, 207, 209, 313, 217,
1920 211, 215, 215, 215, 215, 215, 332, 324, 327, 272,
1921 215, 215, 215, 215, 215, 215, 335, 333, 317, 337,
1922 338, 368, 677, 677, 740, 265, 346, 368, 265, 278,
1923 321, 476, 317, 324, 327, 332, 215, 215, 215, 215,
1924 215, 215, 335, 278, 333, 406, 405, 338, 337, 343,
1925 343, 343, 343, 343, 470, 346, 405, 476, 343, 343,
1926 343, 343, 343, 343, 384, 397, 397, 423, 481, 384,
1927 397, 433, 423, 442, 406, 433, 462, 442, 478, 503,
1928 478, 462, 586, 470, 343, 343, 343, 343, 343, 343,
1929
1930 537, 515, 503, 548, 503, 500, 515, 481, 548, 500,
1931 537, 614, 742, 743, 741, 620, 478, 500, 478, 500,
1932 500, 500, 500, 500, 626, 741, 614, 622, 618, 619,
1933 384, 626, 622, 646, 744, 384, 646, 614, 423, 479,
1934 479, 479, 479, 479, 620, 745, 746, 586, 479, 479,
1935 479, 479, 479, 479, 618, 614, 703, 619, 747, 748,
1936 749, 703, 750, 751, 752, 754, 755, 757, 758, 762,
1937 759, 760, 763, 761, 479, 479, 479, 479, 479, 479,
1938 764, 765, 766, 767, 768, 769, 770, 771, 772, 774,
1939 775, 776, 776, 777, 776, 758, 757, 759, 703, 761,
1940
1941 760, 773, 778, 779, 780, 781, 782, 773, 783, 784,
1942 785, 786, 787, 788, 789, 790, 791, 792, 793, 794,
1943 795, 796, 797, 798, 799, 800, 801, 798, 802, 803,
1944 804, 798, 805, 807, 808, 809, 810, 811, 812, 813,
1945 814, 815, 816, 817, 818, 819, 820, 821, 822, 823,
1946 824, 825, 826, 813, 827, 826, 828, 829, 831, 832,
1947 833, 834, 835, 836, 837, 838, 839, 840, 841, 842,
1948 843, 845, 846, 847, 848, 849, 850, 851, 852, 853,
1949 854, 855, 856, 857, 858, 859, 860, 861, 862, 863,
1950 864, 865, 866, 867, 868, 869, 870, 871, 872, 873,
1951
1952 873, 874, 875, 876, 871, 878, 877, 873, 879, 880,
1953 882, 873, 877, 883, 884, 885, 886, 887, 888, 889,
1954 890, 891, 892, 893, 894, 895, 896, 897, 898, 899,
1955 900, 901, 902, 903, 904, 905, 906, 907, 908, 909,
1956 910, 911, 912, 913, 915, 916, 917, 918, 919, 920,
1957 921, 922, 923, 896, 924, 925, 897, 926, 927, 900,
1958 928, 929, 930, 931, 932, 933, 934, 935, 936, 937,
1959 938, 939, 940, 941, 942, 943, 944, 945, 946, 948,
1960 949, 950, 951, 952, 953, 954, 955, 956, 957, 953,
1961 958, 959, 960, 961, 962, 963, 964, 965, 968, 969,
1962
1963 970, 971, 972, 973, 976, 977, 978, 979, 980, 981,
1964 982, 984, 985, 986, 987, 988, 985, 989, 990, 991,
1965 992, 993, 994, 998, 999, 1000, 1001, 1002, 1003, 1004,
1966 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014,
1967 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024,
1968 1025, 1026, 1027, 1028, 1030, 1031, 1032, 1033, 1034, 1035,
1969 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045,
1970 1048, 1046, 1049, 1050, 1047, 1051, 1052, 1053, 1054, 1056,
1971 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066,
1972 1067, 1068, 1069, 1070, 1071, 1044, 1043, 1072, 1045, 1046,
1973
1974 1047, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081,
1975 1082, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092,
1976 1093, 1094, 1095, 1096, 1097, 1099, 1100, 1101, 1102, 1103,
1977 1104, 1105, 1106, 1108, 1109, 1110, 1111, 1112, 1113, 1114,
1978 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124,
1979 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
1980 1135, 1137, 1138, 1139, 1140, 1141, 1143, 1144, 1132, 1145,
1981 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155,
1982 1156, 1157, 1158, 1159, 1160, 1162, 1163, 1164, 1165, 1166,
1983 1167, 1104, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175,
1984
1985 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1184, 1183, 1185,
1986 1187, 1188, 1189, 1190, 1191, 1192, 1194, 1195, 1196, 1198,
1987 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208,
1988 1209, 1210, 1211, 1212, 1181, 1183, 1184, 1185, 1213, 1214,
1989 1215, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225,
1990 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235,
1991 1236, 1237, 1238, 1240, 1241, 1242, 1243, 1244, 1240, 1245,
1992 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255,
1993 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265,
1994 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1276,
1995
1996 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286,
1997 1288, 1241, 1289, 1290, 1292, 1293, 1294, 1295, 1296, 1297,
1998 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307,
1999 1308, 1309, 1310, 1311, 1312, 1314, 1315, 1316, 1318, 1317,
2000 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1327, 1328, 1329,
2001 1330, 1331, 1332, 1333, 1335, 1336, 1337, 1338, 1339, 1340,
2002 1341, 1342, 1315, 1343, 1314, 1317, 1316, 1318, 1345, 1346,
2003 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356,
2004 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1366, 1367,
2005 1369, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379,
2006
2007 1380, 1381, 1382, 1383, 1384, 1386, 1388, 1389, 1390, 1391,
2008 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1401, 1403, 1405,
2009 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415,
2010 1416, 1417, 1418, 1419, 1421, 1422, 1423, 1424, 1425, 1426,
2011 1427, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438,
2012 1439, 1440, 1441, 1442, 1444, 1443, 1446, 1447, 1448, 1449,
2013 1450, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460,
2014 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1441,
2015 1442, 1470, 1471, 1413, 1443, 1472, 1473, 1474, 1475, 1476,
2016 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487,
2017
2018 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1452, 1496,
2019 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1507,
2020 1499, 1508, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518,
2021 1519, 1520, 1521, 1522, 1523, 1525, 1526, 1527, 1528, 1529,
2022 1530, 1533, 1532, 1528, 1532, 1535, 1536, 1539, 1540, 1541,
2023 1542, 1543, 1544, 1545, 1546, 1548, 1549, 1550, 1551, 1552,
2024 1553, 1554, 1557, 1551, 1555, 1558, 1559, 1560, 1561, 1563,
2025 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573,
2026 1574, 1575, 1576, 1577, 1578, 1554, 1553, 1579, 1552, 1580,
2027 1555, 1581, 1583, 1584, 1585, 1587, 1588, 1589, 1590, 1591,
2028
2029 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1602,
2030 1604, 1605, 1607, 1554, 1608, 1609, 1610, 1611, 1612, 1613,
2031 1614, 1615, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624,
2032 1625, 1626, 1629, 1630, 1632, 1633, 1634, 1636, 1637, 1636,
2033 1638, 1639, 1636, 1640, 1641, 1636, 1642, 1643, 1644, 1645,
2034 1646, 1647, 1648, 1649, 1651, 1653, 1654, 1656, 1657, 1658,
2035 1660, 1659, 1661, 1663, 1665, 1666, 1667, 1669, 1670, 1671,
2036 1672, 1673, 1674, 1675, 1677, 1678, 1679, 1676, 1680, 1681,
2037 1682, 1683, 1684, 1685, 1686, 1657, 1658, 1659, 1676, 1660,
2038 1661, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695,
2039
2040 1696, 1697, 1698, 1698, 1699, 1700, 1701, 1702, 1703, 1704,
2041 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714,
2042 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724,
2043 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734,
2044 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1746,
2045 1747, 1748, 1750, 1751, 1752, 1754, 1753, 1755, 1757, 1758,
2046 1761, 1762, 1763, 1765, 1766, 1699, 1767, 1768, 1769, 1770,
2047 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1780, 1782,
2048 1752, 1783, 1751, 1753, 1754, 1784, 1755, 1785, 1786, 1787,
2049 1788, 1789, 1790, 1791, 1793, 1794, 1795, 1796, 1797, 1799,
2050
2051 1800, 1802, 1803, 1804, 1806, 1807, 1808, 1810, 1811, 1814,
2052 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824,
2053 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834,
2054 1835, 1836, 1837, 1838, 1839, 1841, 1842, 1843, 1844, 1845,
2055 1846, 1848, 1849, 1850, 1852, 1853, 1854, 1855, 1856, 1857,
2056 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867,
2057 1868, 1869, 1870, 1842, 1844, 1871, 1872, 1874, 1875, 1876,
2058 1878, 1879, 1880, 1881, 1882, 1884, 1885, 1886, 1887, 1888,
2059 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899,
2060 1900, 1901, 1902, 1903, 1904, 1905, 1907, 1908, 1910, 1912,
2061
2062 1914, 1915, 1916, 1910, 1917, 1919, 1921, 1924, 1922, 1926,
2063 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1935, 1936, 1937,
2064 1938, 1940, 1941, 1942, 1943, 1944, 1945, 1947, 1948, 1949,
2065 1950, 1951, 1952, 1921, 1922, 1953, 1954, 1955, 1956, 1958,
2066 1959, 1960, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969,
2067 1970, 1971, 1973, 1974, 1975, 1976, 1977, 1979, 1980, 1981,
2068 1982, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993,
2069 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
2070 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013, 1986, 1987,
2071 2015, 1988, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
2072
2073 2025, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035,
2074 2036, 2037, 2038, 2039, 2037, 2040, 2041, 2042, 2043, 2044,
2075 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054,
2076 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065,
2077 2066, 2067, 2068, 2041, 2043, 2070, 2074, 2076, 2077, 2078,
2078 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088,
2079 2089, 2090, 2091, 2092, 2094, 2096, 2097, 2098, 2099, 2100,
2080 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110,
2081 2111, 2113, 2114, 2115, 2116, 2117, 2118, 2120, 2122, 2092,
2082 2125, 2094, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134,
2083
2084 2136, 2137, 2139, 2138, 2140, 2141, 2142, 2143, 2144, 2145,
2085 2147, 2148, 2149, 2150, 2151, 2152, 2154, 2155, 2156, 2157,
2086 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2137, 2138,
2087 2166, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176,
2088 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2187, 2188,
2089 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198,
2090 2199, 2200, 2173, 2201, 2202, 2203, 2204, 2205, 2206, 2209,
2091 2210, 2211, 2213, 2214, 2215, 2216, 2218, 2219, 2220, 2221,
2092 2222, 2223, 2227, 2230, 2231, 2232, 2233, 2234, 2235, 2236,
2093 2238, 2239, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248,
2094
2095 2249, 2250, 2252, 2253, 2254, 2255, 2256, 2257, 2259, 2260,
2096 2262, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2273,
2097 2274, 2275, 2276, 2277, 2276, 2278, 2279, 2280, 2282, 2283,
2098 2285, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296,
2099 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2307,
2100 2308, 2309, 2310, 2311, 2314, 2315, 2316, 2317, 2319, 2320,
2101 2322, 2323, 2325, 2327, 2328, 2330, 2331, 2332, 2333, 2334,
2102 2336, 2341, 2341, 2341, 2342, 2342, 2342, 2343, 2344, 2343,
2103 2345, 2345, 2345, 2346, 2346, 2346, 2347, 729, 2347, 2348,
2104 2348, 2348, 728, 727, 726, 725, 724, 722, 721, 720,
2105
2106 719, 718, 717, 716, 715, 714, 713, 711, 710, 709,
2107 708, 707, 706, 705, 704, 702, 701, 700, 699, 698,
2108 697, 696, 695, 694, 693, 691, 690, 689, 688, 687,
2109 686, 685, 684, 683, 682, 681, 680, 679, 678, 676,
2110 675, 674, 673, 672, 671, 670, 669, 668, 667, 666,
2111 665, 664, 663, 661, 660, 659, 658, 657, 656, 655,
2112 654, 653, 652, 651, 650, 649, 648, 647, 645, 644,
2113 643, 642, 641, 640, 639, 638, 637, 636, 635, 634,
2114 633, 632, 631, 630, 629, 628, 627, 625, 624, 621,
2115 613, 612, 611, 610, 609, 608, 607, 605, 604, 602,
2116
2117 601, 599, 598, 597, 596, 595, 594, 593, 592, 591,
2118 590, 589, 588, 587, 585, 584, 583, 582, 581, 580,
2119 579, 578, 577, 576, 575, 574, 573, 572, 571, 570,
2120 569, 568, 566, 565, 563, 562, 561, 560, 559, 558,
2121 557, 556, 555, 554, 553, 552, 551, 550, 549, 547,
2122 546, 544, 543, 542, 541, 540, 539, 538, 536, 535,
2123 534, 533, 532, 531, 530, 529, 528, 527, 526, 525,
2124 524, 523, 522, 521, 519, 518, 517, 516, 514, 513,
2125 512, 511, 510, 509, 508, 507, 505, 504, 502, 501,
2126 498, 497, 496, 495, 494, 493, 491, 490, 489, 488,
2127
2128 487, 486, 485, 484, 483, 482, 480, 475, 473, 472,
2129 471, 469, 468, 467, 464, 463, 461, 460, 458, 457,
2130 456, 455, 454, 453, 452, 451, 450, 449, 448, 447,
2131 446, 445, 444, 443, 441, 440, 439, 438, 437, 436,
2132 435, 434, 432, 431, 429, 427, 426, 425, 424, 422,
2133 421, 420, 419, 418, 417, 416, 415, 414, 413, 412,
2134 411, 410, 409, 407, 404, 403, 402, 401, 400, 399,
2135 398, 396, 395, 394, 393, 392, 391, 390, 389, 388,
2136 387, 386, 385, 383, 382, 381, 380, 379, 378, 377,
2137 376, 375, 374, 373, 372, 371, 370, 369, 367, 366,
2138
2139 365, 364, 363, 362, 361, 360, 359, 358, 357, 356,
2140 355, 354, 353, 352, 351, 350, 349, 348, 347, 345,
2141 342, 340, 336, 334, 330, 323, 322, 320, 319, 318,
2142 316, 315, 314, 312, 311, 310, 308, 307, 306, 305,
2143 304, 303, 302, 301, 300, 299, 298, 297, 296, 295,
2144 293, 292, 291, 290, 289, 288, 287, 286, 285, 284,
2145 283, 282, 280, 279, 277, 276, 275, 273, 271, 270,
2146 269, 268, 267, 266, 264, 263, 262, 261, 260, 259,
2147 258, 256, 255, 253, 252, 251, 250, 249, 248, 247,
2148 246, 245, 244, 243, 242, 241, 240, 239, 238, 237,
2149
2150 236, 235, 234, 233, 232, 231, 228, 227, 226, 225,
2151 224, 223, 222, 221, 220, 219, 218, 212, 210, 208,
2152 203, 200, 198, 190, 189, 188, 187, 185, 183, 180,
2153 179, 178, 176, 175, 174, 170, 167, 165, 164, 163,
2154 161, 159, 158, 157, 156, 155, 154, 152, 151, 150,
2155 148, 147, 146, 145, 144, 143, 141, 140, 136, 135,
2156 134, 133, 132, 130, 129, 128, 126, 124, 122, 121,
2157 120, 116, 111, 107, 104, 99, 98, 78, 73, 67,
2158 59, 50, 47, 43, 41, 39, 38, 24, 14, 11,
2159 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
2160
2161 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
2162 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
2163 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
2164 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
2165 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
2166 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340, 2340,
2167 2340, 2340, 2340, 2340, 2340, 2340, 2340
2168 } ;
2169
2170static yy_state_type yy_last_accepting_state;
2171static char *yy_last_accepting_cpos;
2172
2173extern int yy_flex_debug;
2175
2176static const flex_int16_t yy_rule_linenum[233] =
2177 { 0,
2178 147, 149, 151, 156, 157, 162, 163, 164, 176, 179,
2179 184, 191, 200, 209, 218, 227, 236, 245, 254, 264,
2180 273, 282, 291, 300, 309, 318, 327, 336, 345, 354,
2181 363, 372, 381, 390, 399, 411, 420, 429, 438, 449,
2182 460, 471, 482, 493, 504, 515, 526, 537, 548, 559,
2183 570, 579, 588, 597, 608, 617, 628, 639, 650, 661,
2184 673, 685, 697, 708, 719, 728, 737, 746, 757, 766,
2185 775, 786, 797, 808, 819, 830, 841, 852, 863, 874,
2186 883, 892, 901, 911, 922, 932, 943, 952, 962, 976,
2187 992, 1001, 1010, 1019, 1028, 1037, 1046, 1068, 1090, 1099,
2188
2189 1109, 1118, 1129, 1138, 1147, 1156, 1165, 1174, 1185, 1196,
2190 1207, 1217, 1226, 1237, 1248, 1259, 1270, 1282, 1291, 1300,
2191 1309, 1318, 1327, 1336, 1345, 1354, 1363, 1372, 1382, 1393,
2192 1405, 1414, 1423, 1432, 1442, 1452, 1462, 1472, 1482, 1492,
2193 1501, 1511, 1520, 1529, 1538, 1547, 1557, 1567, 1576, 1586,
2194 1595, 1604, 1613, 1622, 1631, 1640, 1649, 1658, 1667, 1676,
2195 1685, 1694, 1703, 1712, 1721, 1730, 1739, 1748, 1757, 1766,
2196 1775, 1784, 1793, 1802, 1811, 1820, 1829, 1838, 1847, 1856,
2197 1865, 1874, 1883, 1892, 1901, 1913, 1925, 1935, 1945, 1955,
2198 1965, 1975, 1985, 1995, 2005, 2015, 2024, 2033, 2042, 2051,
2199
2200 2062, 2073, 2086, 2099, 2112, 2121, 2130, 2139, 2148, 2157,
2201 2166, 2175, 2184, 2196, 2297, 2313, 2362, 2370, 2385, 2386,
2202 2387, 2388, 2389, 2390, 2392, 2410, 2423, 2428, 2432, 2434,
2203 2436, 2438
2204 } ;
2205
2206/* The intent behind this definition is that it'll catch
2207 * any uses of REJECT which flex missed.
2208 */
2209#define REJECT reject_used_but_not_detected
2210#define yymore() yymore_used_but_not_detected
2211#define YY_MORE_ADJ 0
2212#define YY_RESTORE_YY_MORE_OFFSET
2214#line 1 "dhcp4_lexer.ll"
2215/* Copyright (C) 2016-2023 Internet Systems Consortium, Inc. ("ISC")
2216
2217 This Source Code Form is subject to the terms of the Mozilla Public
2218 License, v. 2.0. If a copy of the MPL was not distributed with this
2219 file, You can obtain one at http://mozilla.org/MPL/2.0/. */
2220#line 8 "dhcp4_lexer.ll"
2221
2222/* Generated files do not make clang static analyser so happy */
2223#ifndef __clang_analyzer__
2224
2225#include <cctype>
2226#include <cerrno>
2227#include <climits>
2228#include <cstdint>
2229#include <cstdlib>
2230#include <string>
2231#include <dhcp4/parser_context.h>
2232#include <asiolink/io_address.h>
2233#include <boost/lexical_cast.hpp>
2234#include <exceptions/exceptions.h>
2235
2236/* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
2237
2238/* Work around an incompatibility in flex (at least versions
2239 2.5.31 through 2.5.33): it generates code that does
2240 not conform to C89. See Debian bug 333231
2241 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
2242# undef yywrap
2243# define yywrap() 1
2244
2245namespace {
2246
2247bool start_token_flag = false;
2248
2250unsigned int comment_start_line = 0;
2251
2252using namespace isc::dhcp;
2253
2254};
2255
2256/* To avoid the call to exit... oops! */
2257#define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
2258#line 2258 "dhcp4_lexer.cc"
2259/* noyywrap disables automatic rewinding for the next file to parse. Since we
2260 always parse only a single string, there's no need to do any wraps. And
2261 using yywrap requires linking with -lfl, which provides the default yywrap
2262 implementation that always returns 1 anyway. */
2263/* nounput simplifies the lexer, by removing support for putting a character
2264 back into the input stream. We never use such capability anyway. */
2265/* batch means that we'll never use the generated lexer interactively. */
2266/* avoid to get static global variables to remain with C++. */
2267/* in last resort %option reentrant */
2268/* Enables debug mode. To see the debug messages, one needs to also set
2269 yy_flex_debug to 1, then the debug messages will be printed on stderr. */
2270/* I have no idea what this option does, except it was specified in the bison
2271 examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
2272 be on the safe side and keep it. */
2273#define YY_NO_INPUT 1
2274
2275/* These are not token expressions yet, just convenience expressions that
2276 can be used during actual token definitions. Note some can match
2277 incorrect inputs (e.g., IP addresses) which must be checked. */
2278/* for errors */
2279#line 96 "dhcp4_lexer.ll"
2280/* This code run each time a pattern is matched. It updates the location
2281 by moving it ahead by yyleng bytes. yyleng specifies the length of the
2282 currently matched token. */
2283#define YY_USER_ACTION driver.loc_.columns(yyleng);
2284#line 2284 "dhcp4_lexer.cc"
2285#line 2285 "dhcp4_lexer.cc"
2286
2287#define INITIAL 0
2288#define COMMENT 1
2289#define DIR_ENTER 2
2290#define DIR_INCLUDE 3
2291#define DIR_EXIT 4
2292
2293#ifndef YY_NO_UNISTD_H
2294/* Special case for "unistd.h", since it is non-ANSI. We include it way
2295 * down here because we want the user's section 1 to have been scanned first.
2296 * The user has a chance to override it with an option.
2297 */
2298/* %if-c-only */
2299#include <unistd.h>
2300/* %endif */
2301/* %if-c++-only */
2302/* %endif */
2303#endif
2304
2305#ifndef YY_EXTRA_TYPE
2306#define YY_EXTRA_TYPE void *
2307#endif
2308
2309/* %if-c-only Reentrant structure and macros (non-C++). */
2310/* %if-reentrant */
2311/* %if-c-only */
2312
2313static int yy_init_globals ( void );
2314
2315/* %endif */
2316/* %if-reentrant */
2317/* %endif */
2318/* %endif End reentrant structures and macros. */
2319
2320/* Accessor methods to globals.
2321 These are made visible to non-reentrant scanners for convenience. */
2322
2323int yylex_destroy ( void );
2324
2325int yyget_debug ( void );
2326
2327void yyset_debug ( int debug_flag );
2328
2329YY_EXTRA_TYPE yyget_extra ( void );
2330
2331void yyset_extra ( YY_EXTRA_TYPE user_defined );
2332
2333FILE *yyget_in ( void );
2334
2335void yyset_in ( FILE * _in_str );
2336
2337FILE *yyget_out ( void );
2338
2339void yyset_out ( FILE * _out_str );
2340
2341 int yyget_leng ( void );
2342
2343char *yyget_text ( void );
2344
2345int yyget_lineno ( void );
2346
2347void yyset_lineno ( int _line_number );
2348
2349/* %if-bison-bridge */
2350/* %endif */
2351
2352/* Macros after this point can all be overridden by user definitions in
2353 * section 1.
2354 */
2355
2356#ifndef YY_SKIP_YYWRAP
2357#ifdef __cplusplus
2358extern "C" int yywrap ( void );
2359#else
2360extern int yywrap ( void );
2361#endif
2362#endif
2363
2364/* %not-for-header */
2365#ifndef YY_NO_UNPUT
2366
2367#endif
2368/* %ok-for-header */
2369
2370/* %endif */
2371
2372#ifndef yytext_ptr
2373static void yy_flex_strncpy ( char *, const char *, int );
2374#endif
2375
2376#ifdef YY_NEED_STRLEN
2377static int yy_flex_strlen ( const char * );
2378#endif
2379
2380#ifndef YY_NO_INPUT
2381/* %if-c-only Standard (non-C++) definition */
2382/* %not-for-header */
2383#ifdef __cplusplus
2384static int yyinput ( void );
2385#else
2386static int input ( void );
2387#endif
2388/* %ok-for-header */
2389
2390/* %endif */
2391#endif
2392
2393/* %if-c-only */
2394
2395/* %endif */
2396
2397/* Amount of stuff to slurp up with each read. */
2398#ifndef YY_READ_BUF_SIZE
2399#ifdef __ia64__
2400/* On IA-64, the buffer size is 16k, not 8k */
2401#define YY_READ_BUF_SIZE 16384
2402#else
2403#define YY_READ_BUF_SIZE 8192
2404#endif /* __ia64__ */
2405#endif
2406
2407/* Copy whatever the last rule matched to the standard output. */
2408#ifndef ECHO
2409/* %if-c-only Standard (non-C++) definition */
2410/* This used to be an fputs(), but since the string might contain NUL's,
2411 * we now use fwrite().
2412 */
2413#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2414/* %endif */
2415/* %if-c++-only C++ definition */
2416/* %endif */
2417#endif
2418
2419/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2420 * is returned in "result".
2421 */
2422#ifndef YY_INPUT
2423#define YY_INPUT(buf,result,max_size) \
2424/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2425 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2426 { \
2427 int c = '*'; \
2428 int n; \
2429 for ( n = 0; n < max_size && \
2430 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2431 buf[n] = (char) c; \
2432 if ( c == '\n' ) \
2433 buf[n++] = (char) c; \
2434 if ( c == EOF && ferror( yyin ) ) \
2435 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2436 result = n; \
2437 } \
2438 else \
2439 { \
2440 errno=0; \
2441 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2442 { \
2443 if( errno != EINTR) \
2444 { \
2445 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2446 break; \
2447 } \
2448 errno=0; \
2449 clearerr(yyin); \
2450 } \
2451 }\
2452\
2453/* %if-c++-only C++ definition \ */\
2454/* %endif */
2455
2456#endif
2457
2458/* No semi-colon after return; correct usage is to write "yyterminate();" -
2459 * we don't want an extra ';' after the "return" because that will cause
2460 * some compilers to complain about unreachable statements.
2461 */
2462#ifndef yyterminate
2463#define yyterminate() return YY_NULL
2464#endif
2465
2466/* Number of entries by which start-condition stack grows. */
2467#ifndef YY_START_STACK_INCR
2468#define YY_START_STACK_INCR 25
2469#endif
2470
2471/* Report a fatal error. */
2472#ifndef YY_FATAL_ERROR
2473/* %if-c-only */
2474#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2475/* %endif */
2476/* %if-c++-only */
2477/* %endif */
2478#endif
2479
2480/* %if-tables-serialization structures and prototypes */
2481/* %not-for-header */
2482/* %ok-for-header */
2483
2484/* %not-for-header */
2485/* %tables-yydmap generated elements */
2486/* %endif */
2487/* end tables serialization structures and prototypes */
2488
2489/* %ok-for-header */
2490
2491/* Default declaration of generated scanner - a define so the user can
2492 * easily add parameters.
2493 */
2494#ifndef YY_DECL
2495#define YY_DECL_IS_OURS 1
2496/* %if-c-only Standard (non-C++) definition */
2497
2498extern int yylex (void);
2499
2500#define YY_DECL int yylex (void)
2501/* %endif */
2502/* %if-c++-only C++ definition */
2503/* %endif */
2504#endif /* !YY_DECL */
2505
2506/* Code executed at the beginning of each rule, after yytext and yyleng
2507 * have been set up.
2508 */
2509#ifndef YY_USER_ACTION
2510#define YY_USER_ACTION
2511#endif
2512
2513/* Code executed at the end of each rule. */
2514#ifndef YY_BREAK
2515#define YY_BREAK /*LINTED*/break;
2516#endif
2517
2518/* %% [6.0] YY_RULE_SETUP definition goes here */
2519#define YY_RULE_SETUP \
2520 YY_USER_ACTION
2521
2522/* %not-for-header */
2526{
2527 yy_state_type yy_current_state;
2528 char *yy_cp, *yy_bp;
2530
2531 if ( !(yy_init) )
2532 {
2533 (yy_init) = 1;
2534
2535#ifdef YY_USER_INIT
2536 YY_USER_INIT;
2537#endif
2538
2539 if ( ! (yy_start) )
2540 (yy_start) = 1; /* first start state */
2541
2542 if ( ! yyin )
2543/* %if-c-only */
2544 yyin = stdin;
2545/* %endif */
2546/* %if-c++-only */
2547/* %endif */
2548
2549 if ( ! yyout )
2550/* %if-c-only */
2551 yyout = stdout;
2552/* %endif */
2553/* %if-c++-only */
2554/* %endif */
2555
2556 if ( ! YY_CURRENT_BUFFER ) {
2560 }
2561
2563 }
2564
2565 {
2566/* %% [7.0] user's declarations go here */
2567#line 102 "dhcp4_lexer.ll"
2568
2569
2570
2571#line 106 "dhcp4_lexer.ll"
2572 /* This part of the code is copied over to the verbatim to the top
2573 of the generated yylex function. Explanation:
2574 http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2575
2576 /* Code run each time yylex is called. */
2577 driver.loc_.step();
2578
2579 if (start_token_flag) {
2580 start_token_flag = false;
2581 switch (start_token_value) {
2582 case Parser4Context::PARSER_JSON:
2583 default:
2585 case Parser4Context::PARSER_DHCP4:
2587 case Parser4Context::SUBPARSER_DHCP4:
2588 return isc::dhcp::Dhcp4Parser::make_SUB_DHCP4(driver.loc_);
2589 case Parser4Context::PARSER_INTERFACES:
2591 case Parser4Context::PARSER_SUBNET4:
2592 return isc::dhcp::Dhcp4Parser::make_SUB_SUBNET4(driver.loc_);
2593 case Parser4Context::PARSER_POOL4:
2594 return isc::dhcp::Dhcp4Parser::make_SUB_POOL4(driver.loc_);
2595 case Parser4Context::PARSER_HOST_RESERVATION:
2597 case Parser4Context::PARSER_OPTION_DEFS:
2599 case Parser4Context::PARSER_OPTION_DEF:
2601 case Parser4Context::PARSER_OPTION_DATA:
2603 case Parser4Context::PARSER_HOOKS_LIBRARY:
2605 case Parser4Context::PARSER_DHCP_DDNS:
2607 case Parser4Context::PARSER_CONFIG_CONTROL:
2609 }
2610 }
2611
2612
2613#line 2613 "dhcp4_lexer.cc"
2614
2615 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2616 {
2617/* %% [8.0] yymore()-related code goes here */
2618 yy_cp = (yy_c_buf_p);
2619
2620 /* Support of yytext. */
2621 *yy_cp = (yy_hold_char);
2622
2623 /* yy_bp points to the position in yy_ch_buf of the start of
2624 * the current run.
2625 */
2626 yy_bp = yy_cp;
2627
2628/* %% [9.0] code to set up and find next match goes here */
2629 yy_current_state = (yy_start);
2630yy_match:
2631 do
2632 {
2633 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2634 if ( yy_accept[yy_current_state] )
2635 {
2636 (yy_last_accepting_state) = yy_current_state;
2637 (yy_last_accepting_cpos) = yy_cp;
2638 }
2639 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2640 {
2641 yy_current_state = (int) yy_def[yy_current_state];
2642 if ( yy_current_state >= 2341 )
2643 yy_c = yy_meta[yy_c];
2644 }
2645 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2646 ++yy_cp;
2647 }
2648 while ( yy_current_state != 2340 );
2649 yy_cp = (yy_last_accepting_cpos);
2650 yy_current_state = (yy_last_accepting_state);
2651
2652yy_find_action:
2653/* %% [10.0] code to find the action number goes here */
2654 yy_act = yy_accept[yy_current_state];
2655
2657
2658/* %% [11.0] code for yylineno update goes here */
2659
2660do_action: /* This label is used only to access EOF actions. */
2661
2662/* %% [12.0] debug code goes here */
2663 if ( yy_flex_debug )
2664 {
2665 if ( yy_act == 0 )
2666 fprintf( stderr, "--scanner backing up\n" );
2667 else if ( yy_act < 233 )
2668 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2669 (long)yy_rule_linenum[yy_act], yytext );
2670 else if ( yy_act == 233 )
2671 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2672 yytext );
2673 else if ( yy_act == 234 )
2674 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2675 else
2676 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2677 }
2678
2679 switch ( yy_act )
2680 { /* beginning of action switch */
2681/* %% [13.0] actions go here */
2682 case 0: /* must back up */
2683 /* undo the effects of YY_DO_BEFORE_ACTION */
2684 *yy_cp = (yy_hold_char);
2685 yy_cp = (yy_last_accepting_cpos);
2686 yy_current_state = (yy_last_accepting_state);
2687 goto yy_find_action;
2688
2689case 1:
2691#line 147 "dhcp4_lexer.ll"
2692;
2693 YY_BREAK
2694case 2:
2696#line 149 "dhcp4_lexer.ll"
2697;
2698 YY_BREAK
2699case 3:
2701#line 151 "dhcp4_lexer.ll"
2702{
2703 BEGIN(COMMENT);
2704 comment_start_line = driver.loc_.end.line;;
2705}
2706 YY_BREAK
2707case 4:
2709#line 156 "dhcp4_lexer.ll"
2710BEGIN(INITIAL);
2711 YY_BREAK
2712case 5:
2714#line 157 "dhcp4_lexer.ll"
2715;
2716 YY_BREAK
2717case YY_STATE_EOF(COMMENT):
2718#line 158 "dhcp4_lexer.ll"
2719{
2720 isc_throw(Dhcp4ParseError, "Comment not closed. (/* in line " << comment_start_line);
2721}
2722 YY_BREAK
2723case 6:
2725#line 162 "dhcp4_lexer.ll"
2727 YY_BREAK
2728case 7:
2730#line 163 "dhcp4_lexer.ll"
2732 YY_BREAK
2733case 8:
2735#line 164 "dhcp4_lexer.ll"
2736{
2737 /* Include directive. */
2738
2739 /* Extract the filename. */
2740 std::string tmp(yytext+1);
2741 tmp.resize(tmp.size() - 1);
2742
2743 driver.includeFile(tmp);
2744}
2745 YY_BREAK
2749#line 173 "dhcp4_lexer.ll"
2750{
2751 isc_throw(Dhcp4ParseError, "Directive not closed.");
2752}
2753 YY_BREAK
2754case 9:
2756#line 176 "dhcp4_lexer.ll"
2757BEGIN(INITIAL);
2758 YY_BREAK
2759case 10:
2761#line 179 "dhcp4_lexer.ll"
2762{
2763 /* Ok, we found a with space. Let's ignore it and update loc variable. */
2764 driver.loc_.step();
2765}
2766 YY_BREAK
2767case 11:
2768/* rule 11 can match eol */
2770#line 184 "dhcp4_lexer.ll"
2771{
2772 /* Newline found. Let's update the location and continue. */
2773 driver.loc_.lines(yyleng);
2774 driver.loc_.step();
2775}
2776 YY_BREAK
2777case 12:
2779#line 191 "dhcp4_lexer.ll"
2780{
2781 switch(driver.ctx_) {
2783 return isc::dhcp::Dhcp4Parser::make_DHCP4(driver.loc_);
2784 default:
2785 return isc::dhcp::Dhcp4Parser::make_STRING("Dhcp4", driver.loc_);
2786 }
2787}
2788 YY_BREAK
2789case 13:
2791#line 200 "dhcp4_lexer.ll"
2792{
2793 switch(driver.ctx_) {
2796 default:
2797 return isc::dhcp::Dhcp4Parser::make_STRING("interfaces-config", driver.loc_);
2798 }
2799}
2800 YY_BREAK
2801case 14:
2803#line 209 "dhcp4_lexer.ll"
2804{
2805 switch(driver.ctx_) {
2808 default:
2809 return isc::dhcp::Dhcp4Parser::make_STRING("sanity-checks", driver.loc_);
2810 }
2811}
2812 YY_BREAK
2813case 15:
2815#line 218 "dhcp4_lexer.ll"
2816{
2817 switch(driver.ctx_) {
2820 default:
2821 return isc::dhcp::Dhcp4Parser::make_STRING("lease-checks", driver.loc_);
2822 }
2823}
2824 YY_BREAK
2825case 16:
2827#line 227 "dhcp4_lexer.ll"
2828{
2829 switch(driver.ctx_) {
2832 default:
2833 return isc::dhcp::Dhcp4Parser::make_STRING("extended-info-checks", driver.loc_);
2834 }
2835}
2836 YY_BREAK
2837case 17:
2839#line 236 "dhcp4_lexer.ll"
2840{
2841 switch(driver.ctx_) {
2844 default:
2845 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-socket-type", driver.loc_);
2846 }
2847}
2848 YY_BREAK
2849case 18:
2851#line 245 "dhcp4_lexer.ll"
2852{
2853 switch(driver.ctx_) {
2855 return isc::dhcp::Dhcp4Parser::make_RAW(driver.loc_);
2856 default:
2857 return isc::dhcp::Dhcp4Parser::make_STRING("raw", driver.loc_);
2858 }
2859}
2860 YY_BREAK
2861case 19:
2863#line 254 "dhcp4_lexer.ll"
2864{
2865 switch(driver.ctx_) {
2868 return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_);
2869 default:
2870 return isc::dhcp::Dhcp4Parser::make_STRING("udp", driver.loc_);
2871 }
2872}
2873 YY_BREAK
2874case 20:
2876#line 264 "dhcp4_lexer.ll"
2877{
2878 switch(driver.ctx_) {
2879 case Parser4Context::INTERFACES_CONFIG:
2881 default:
2882 return isc::dhcp::Dhcp4Parser::make_STRING("outbound-interface", driver.loc_);
2883 }
2884}
2885 YY_BREAK
2886case 21:
2888#line 273 "dhcp4_lexer.ll"
2889{
2890 switch(driver.ctx_) {
2891 case Parser4Context::OUTBOUND_INTERFACE:
2892 return Dhcp4Parser::make_SAME_AS_INBOUND(driver.loc_);
2893 default:
2894 return Dhcp4Parser::make_STRING("same-as-inbound", driver.loc_);
2895 }
2896}
2897 YY_BREAK
2898case 22:
2900#line 282 "dhcp4_lexer.ll"
2901{
2902 switch(driver.ctx_) {
2903 case Parser4Context::OUTBOUND_INTERFACE:
2904 return Dhcp4Parser::make_USE_ROUTING(driver.loc_);
2905 default:
2906 return Dhcp4Parser::make_STRING("use-routing", driver.loc_);
2907 }
2908}
2909 YY_BREAK
2910case 23:
2912#line 291 "dhcp4_lexer.ll"
2913{
2914 switch(driver.ctx_) {
2916 return isc::dhcp::Dhcp4Parser::make_INTERFACES(driver.loc_);
2917 default:
2918 return isc::dhcp::Dhcp4Parser::make_STRING("interfaces", driver.loc_);
2919 }
2920}
2921 YY_BREAK
2922case 24:
2924#line 300 "dhcp4_lexer.ll"
2925{
2926 switch(driver.ctx_) {
2928 return isc::dhcp::Dhcp4Parser::make_RE_DETECT(driver.loc_);
2929 default:
2930 return isc::dhcp::Dhcp4Parser::make_STRING("re-detect", driver.loc_);
2931 }
2932}
2933 YY_BREAK
2934case 25:
2936#line 309 "dhcp4_lexer.ll"
2937{
2938 switch(driver.ctx_) {
2941 default:
2942 return isc::dhcp::Dhcp4Parser::make_STRING("service-sockets-require-all", driver.loc_);
2943 }
2944}
2945 YY_BREAK
2946case 26:
2948#line 318 "dhcp4_lexer.ll"
2949{
2950 switch(driver.ctx_) {
2953 default:
2954 return isc::dhcp::Dhcp4Parser::make_STRING("service-sockets-retry-wait-time", driver.loc_);
2955 }
2956}
2957 YY_BREAK
2958case 27:
2960#line 327 "dhcp4_lexer.ll"
2961{
2962 switch(driver.ctx_) {
2965 default:
2966 return isc::dhcp::Dhcp4Parser::make_STRING("service-sockets-max-retries", driver.loc_);
2967 }
2968}
2969 YY_BREAK
2970case 28:
2972#line 336 "dhcp4_lexer.ll"
2973{
2974 switch(driver.ctx_) {
2977 default:
2978 return isc::dhcp::Dhcp4Parser::make_STRING("lease-database", driver.loc_);
2979 }
2980}
2981 YY_BREAK
2982case 29:
2984#line 345 "dhcp4_lexer.ll"
2985{
2986 switch(driver.ctx_) {
2989 default:
2990 return isc::dhcp::Dhcp4Parser::make_STRING("hosts-database", driver.loc_);
2991 }
2992}
2993 YY_BREAK
2994case 30:
2996#line 354 "dhcp4_lexer.ll"
2997{
2998 switch(driver.ctx_) {
3001 default:
3002 return isc::dhcp::Dhcp4Parser::make_STRING("hosts-databases", driver.loc_);
3003 }
3004}
3005 YY_BREAK
3006case 31:
3008#line 363 "dhcp4_lexer.ll"
3009{
3010 switch(driver.ctx_) {
3013 default:
3014 return isc::dhcp::Dhcp4Parser::make_STRING("config-control", driver.loc_);
3015 }
3016}
3017 YY_BREAK
3018case 32:
3020#line 372 "dhcp4_lexer.ll"
3021{
3022 switch(driver.ctx_) {
3025 default:
3026 return isc::dhcp::Dhcp4Parser::make_STRING("config-databases", driver.loc_);
3027 }
3028}
3029 YY_BREAK
3030case 33:
3032#line 381 "dhcp4_lexer.ll"
3033{
3034 switch(driver.ctx_) {
3037 default:
3038 return isc::dhcp::Dhcp4Parser::make_STRING("config-fetch-wait-time", driver.loc_);
3039 }
3040}
3041 YY_BREAK
3042case 34:
3044#line 390 "dhcp4_lexer.ll"
3045{
3046 switch(driver.ctx_) {
3048 return isc::dhcp::Dhcp4Parser::make_READONLY(driver.loc_);
3049 default:
3050 return isc::dhcp::Dhcp4Parser::make_STRING("readonly", driver.loc_);
3051 }
3052}
3053 YY_BREAK
3054case 35:
3056#line 399 "dhcp4_lexer.ll"
3057{
3058 switch(driver.ctx_) {
3063 return isc::dhcp::Dhcp4Parser::make_TYPE(driver.loc_);
3064 default:
3065 return isc::dhcp::Dhcp4Parser::make_STRING("type", driver.loc_);
3066 }
3067}
3068 YY_BREAK
3069case 36:
3071#line 411 "dhcp4_lexer.ll"
3072{
3073 switch(driver.ctx_) {
3075 return isc::dhcp::Dhcp4Parser::make_MEMFILE(driver.loc_);
3076 default:
3077 return isc::dhcp::Dhcp4Parser::make_STRING("memfile", driver.loc_);
3078 }
3079}
3080 YY_BREAK
3081case 37:
3083#line 420 "dhcp4_lexer.ll"
3084{
3085 switch(driver.ctx_) {
3087 return isc::dhcp::Dhcp4Parser::make_MYSQL(driver.loc_);
3088 default:
3089 return isc::dhcp::Dhcp4Parser::make_STRING("mysql", driver.loc_);
3090 }
3091}
3092 YY_BREAK
3093case 38:
3095#line 429 "dhcp4_lexer.ll"
3096{
3097 switch(driver.ctx_) {
3099 return isc::dhcp::Dhcp4Parser::make_POSTGRESQL(driver.loc_);
3100 default:
3101 return isc::dhcp::Dhcp4Parser::make_STRING("postgresql", driver.loc_);
3102 }
3103}
3104 YY_BREAK
3105case 39:
3107#line 438 "dhcp4_lexer.ll"
3108{
3109 switch(driver.ctx_) {
3113 return isc::dhcp::Dhcp4Parser::make_USER(driver.loc_);
3114 default:
3115 return isc::dhcp::Dhcp4Parser::make_STRING("user", driver.loc_);
3116 }
3117}
3118 YY_BREAK
3119case 40:
3121#line 449 "dhcp4_lexer.ll"
3122{
3123 switch(driver.ctx_) {
3127 return isc::dhcp::Dhcp4Parser::make_PASSWORD(driver.loc_);
3128 default:
3129 return isc::dhcp::Dhcp4Parser::make_STRING("password", driver.loc_);
3130 }
3131}
3132 YY_BREAK
3133case 41:
3135#line 460 "dhcp4_lexer.ll"
3136{
3137 switch(driver.ctx_) {
3141 return isc::dhcp::Dhcp4Parser::make_HOST(driver.loc_);
3142 default:
3143 return isc::dhcp::Dhcp4Parser::make_STRING("host", driver.loc_);
3144 }
3145}
3146 YY_BREAK
3147case 42:
3149#line 471 "dhcp4_lexer.ll"
3150{
3151 switch(driver.ctx_) {
3155 return isc::dhcp::Dhcp4Parser::make_PORT(driver.loc_);
3156 default:
3157 return isc::dhcp::Dhcp4Parser::make_STRING("port", driver.loc_);
3158 }
3159}
3160 YY_BREAK
3161case 43:
3163#line 482 "dhcp4_lexer.ll"
3164{
3165 switch(driver.ctx_) {
3169 return isc::dhcp::Dhcp4Parser::make_PERSIST(driver.loc_);
3170 default:
3171 return isc::dhcp::Dhcp4Parser::make_STRING("persist", driver.loc_);
3172 }
3173}
3174 YY_BREAK
3175case 44:
3177#line 493 "dhcp4_lexer.ll"
3178{
3179 switch(driver.ctx_) {
3184 default:
3185 return isc::dhcp::Dhcp4Parser::make_STRING("lfc-interval", driver.loc_);
3186 }
3187}
3188 YY_BREAK
3189case 45:
3191#line 504 "dhcp4_lexer.ll"
3192{
3193 switch(driver.ctx_) {
3198 default:
3199 return isc::dhcp::Dhcp4Parser::make_STRING("connect-timeout", driver.loc_);
3200 }
3201}
3202 YY_BREAK
3203case 46:
3205#line 515 "dhcp4_lexer.ll"
3206{
3207 switch(driver.ctx_) {
3212 default:
3213 return isc::dhcp::Dhcp4Parser::make_STRING("read-timeout", driver.loc_);
3214 }
3215}
3216 YY_BREAK
3217case 47:
3219#line 526 "dhcp4_lexer.ll"
3220{
3221 switch(driver.ctx_) {
3226 default:
3227 return isc::dhcp::Dhcp4Parser::make_STRING("write-timeout", driver.loc_);
3228 }
3229}
3230 YY_BREAK
3231case 48:
3233#line 537 "dhcp4_lexer.ll"
3234{
3235 switch(driver.ctx_) {
3240 default:
3241 return isc::dhcp::Dhcp4Parser::make_STRING("tcp-user-timeout", driver.loc_);
3242 }
3243}
3244 YY_BREAK
3245case 49:
3247#line 548 "dhcp4_lexer.ll"
3248{
3249 switch(driver.ctx_) {
3254 default:
3255 return isc::dhcp::Dhcp4Parser::make_STRING("reconnect-wait-time", driver.loc_);
3256 }
3257}
3258 YY_BREAK
3259case 50:
3261#line 559 "dhcp4_lexer.ll"
3262{
3263 switch(driver.ctx_) {
3267 return isc::dhcp::Dhcp4Parser::make_ON_FAIL(driver.loc_);
3268 default:
3269 return isc::dhcp::Dhcp4Parser::make_STRING("on-fail", driver.loc_);
3270 }
3271}
3272 YY_BREAK
3273case 51:
3275#line 570 "dhcp4_lexer.ll"
3276{
3277 switch(driver.ctx_) {
3280 default:
3281 return isc::dhcp::Dhcp4Parser::make_STRING("stop-retry-exit", driver.loc_);
3282 }
3283}
3284 YY_BREAK
3285case 52:
3287#line 579 "dhcp4_lexer.ll"
3288{
3289 switch(driver.ctx_) {
3292 default:
3293 return isc::dhcp::Dhcp4Parser::make_STRING("serve-retry-exit", driver.loc_);
3294 }
3295}
3296 YY_BREAK
3297case 53:
3299#line 588 "dhcp4_lexer.ll"
3300{
3301 switch(driver.ctx_) {
3304 default:
3305 return isc::dhcp::Dhcp4Parser::make_STRING("serve-retry-continue", driver.loc_);
3306 }
3307}
3308 YY_BREAK
3309case 54:
3311#line 597 "dhcp4_lexer.ll"
3312{
3313 switch(driver.ctx_) {
3318 default:
3319 return isc::dhcp::Dhcp4Parser::make_STRING("max-reconnect-tries", driver.loc_);
3320 }
3321}
3322 YY_BREAK
3323case 55:
3325#line 608 "dhcp4_lexer.ll"
3326{
3327 switch(driver.ctx_) {
3330 default:
3331 return isc::dhcp::Dhcp4Parser::make_STRING("max-row-errors", driver.loc_);
3332 }
3333}
3334 YY_BREAK
3335case 56:
3337#line 617 "dhcp4_lexer.ll"
3338{
3339 switch(driver.ctx_) {
3344 default:
3345 return isc::dhcp::Dhcp4Parser::make_STRING("trust-anchor", driver.loc_);
3346 }
3347}
3348 YY_BREAK
3349case 57:
3351#line 628 "dhcp4_lexer.ll"
3352{
3353 switch(driver.ctx_) {
3357 return isc::dhcp::Dhcp4Parser::make_CERT_FILE(driver.loc_);
3358 default:
3359 return isc::dhcp::Dhcp4Parser::make_STRING("cert-file", driver.loc_);
3360 }
3361}
3362 YY_BREAK
3363case 58:
3365#line 639 "dhcp4_lexer.ll"
3366{
3367 switch(driver.ctx_) {
3371 return isc::dhcp::Dhcp4Parser::make_KEY_FILE(driver.loc_);
3372 default:
3373 return isc::dhcp::Dhcp4Parser::make_STRING("key-file", driver.loc_);
3374 }
3375}
3376 YY_BREAK
3377case 59:
3379#line 650 "dhcp4_lexer.ll"
3380{
3381 switch(driver.ctx_) {
3385 return isc::dhcp::Dhcp4Parser::make_CIPHER_LIST(driver.loc_);
3386 default:
3387 return isc::dhcp::Dhcp4Parser::make_STRING("cipher-list", driver.loc_);
3388 }
3389}
3390 YY_BREAK
3391case 60:
3393#line 661 "dhcp4_lexer.ll"
3394{
3395 switch(driver.ctx_) {
3401 default:
3402 return isc::dhcp::Dhcp4Parser::make_STRING("valid-lifetime", driver.loc_);
3403 }
3404}
3405 YY_BREAK
3406case 61:
3408#line 673 "dhcp4_lexer.ll"
3409{
3410 switch(driver.ctx_) {
3416 default:
3417 return isc::dhcp::Dhcp4Parser::make_STRING("min-valid-lifetime", driver.loc_);
3418 }
3419}
3420 YY_BREAK
3421case 62:
3423#line 685 "dhcp4_lexer.ll"
3424{
3425 switch(driver.ctx_) {
3431 default:
3432 return isc::dhcp::Dhcp4Parser::make_STRING("max-valid-lifetime", driver.loc_);
3433 }
3434}
3435 YY_BREAK
3436case 63:
3438#line 697 "dhcp4_lexer.ll"
3439{
3440 switch(driver.ctx_) {
3444 return isc::dhcp::Dhcp4Parser::make_RENEW_TIMER(driver.loc_);
3445 default:
3446 return isc::dhcp::Dhcp4Parser::make_STRING("renew-timer", driver.loc_);
3447 }
3448}
3449 YY_BREAK
3450case 64:
3452#line 708 "dhcp4_lexer.ll"
3453{
3454 switch(driver.ctx_) {
3459 default:
3460 return isc::dhcp::Dhcp4Parser::make_STRING("rebind-timer", driver.loc_);
3461 }
3462}
3463 YY_BREAK
3464case 65:
3466#line 719 "dhcp4_lexer.ll"
3467{
3468 switch(driver.ctx_) {
3471 default:
3472 return isc::dhcp::Dhcp4Parser::make_STRING("decline-probation-period", driver.loc_);
3473 }
3474}
3475 YY_BREAK
3476case 66:
3478#line 728 "dhcp4_lexer.ll"
3479{
3480 switch(driver.ctx_) {
3482 return isc::dhcp::Dhcp4Parser::make_SERVER_TAG(driver.loc_);
3483 default:
3484 return isc::dhcp::Dhcp4Parser::make_STRING("server-tag", driver.loc_);
3485 }
3486}
3487 YY_BREAK
3488case 67:
3490#line 737 "dhcp4_lexer.ll"
3491{
3492 switch(driver.ctx_) {
3495 default:
3496 return isc::dhcp::Dhcp4Parser::make_STRING("parked-packet-limit", driver.loc_);
3497 }
3498}
3499 YY_BREAK
3500case 68:
3502#line 746 "dhcp4_lexer.ll"
3503{
3504 switch(driver.ctx_) {
3508 return isc::dhcp::Dhcp4Parser::make_ALLOCATOR(driver.loc_);
3509 default:
3510 return isc::dhcp::Dhcp4Parser::make_STRING("allocator", driver.loc_);
3511 }
3512}
3513 YY_BREAK
3514case 69:
3516#line 757 "dhcp4_lexer.ll"
3517{
3518 switch(driver.ctx_) {
3521 default:
3522 return isc::dhcp::Dhcp4Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3523 }
3524}
3525 YY_BREAK
3526case 70:
3528#line 766 "dhcp4_lexer.ll"
3529{
3530 switch(driver.ctx_) {
3533 default:
3534 return isc::dhcp::Dhcp4Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3535 }
3536}
3537 YY_BREAK
3538case 71:
3540#line 775 "dhcp4_lexer.ll"
3541{
3542 switch(driver.ctx_) {
3547 default:
3548 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-send-updates", driver.loc_);
3549 }
3550}
3551 YY_BREAK
3552case 72:
3554#line 786 "dhcp4_lexer.ll"
3555{
3556 switch(driver.ctx_) {
3561 default:
3562 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-no-update", driver.loc_);
3563 }
3564}
3565 YY_BREAK
3566case 73:
3568#line 797 "dhcp4_lexer.ll"
3569{
3570 switch(driver.ctx_) {
3575 default:
3576 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-client-update", driver.loc_);
3577 }
3578}
3579 YY_BREAK
3580case 74:
3582#line 808 "dhcp4_lexer.ll"
3583{
3584 switch(driver.ctx_) {
3589 default:
3590 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3591 }
3592}
3593 YY_BREAK
3594case 75:
3596#line 819 "dhcp4_lexer.ll"
3597{
3598 switch(driver.ctx_) {
3603 default:
3604 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-generated-prefix", driver.loc_);
3605 }
3606}
3607 YY_BREAK
3608case 76:
3610#line 830 "dhcp4_lexer.ll"
3611{
3612 switch(driver.ctx_) {
3617 default:
3618 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
3619 }
3620}
3621 YY_BREAK
3622case 77:
3624#line 841 "dhcp4_lexer.ll"
3625{
3626 switch(driver.ctx_) {
3631 default:
3632 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-update-on-renew", driver.loc_);
3633 }
3634}
3635 YY_BREAK
3636case 78:
3638#line 852 "dhcp4_lexer.ll"
3639{
3640 switch(driver.ctx_) {
3645 default:
3646 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
3647 }
3648}
3649 YY_BREAK
3650case 79:
3652#line 863 "dhcp4_lexer.ll"
3653{
3654 switch(driver.ctx_) {
3659 default:
3660 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-conflict-resolution-mode", driver.loc_);
3661 }
3662}
3663 YY_BREAK
3664case 80:
3666#line 874 "dhcp4_lexer.ll"
3667{
3670 }
3671 std::string tmp(yytext+1);
3672 tmp.resize(tmp.size() - 1);
3673 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
3674}
3675 YY_BREAK
3676case 81:
3678#line 883 "dhcp4_lexer.ll"
3679{
3682 }
3683 std::string tmp(yytext+1);
3684 tmp.resize(tmp.size() - 1);
3685 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
3686}
3687 YY_BREAK
3688case 82:
3690#line 892 "dhcp4_lexer.ll"
3691{
3694 }
3695 std::string tmp(yytext+1);
3696 tmp.resize(tmp.size() - 1);
3697 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
3698}
3699 YY_BREAK
3700case 83:
3702#line 901 "dhcp4_lexer.ll"
3703{
3706 }
3707 std::string tmp(yytext+1);
3708 tmp.resize(tmp.size() - 1);
3709 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
3710}
3711 YY_BREAK
3712case 84:
3714#line 911 "dhcp4_lexer.ll"
3715{
3716 switch(driver.ctx_) {
3721 default:
3722 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-ttl-percent", driver.loc_);
3723 }
3724}
3725 YY_BREAK
3726case 85:
3728#line 922 "dhcp4_lexer.ll"
3729{
3730 switch(driver.ctx_) {
3733 return isc::dhcp::Dhcp4Parser::make_SUBNET4(driver.loc_);
3734 default:
3735 return isc::dhcp::Dhcp4Parser::make_STRING("subnet4", driver.loc_);
3736 }
3737}
3738 YY_BREAK
3739case 86:
3741#line 932 "dhcp4_lexer.ll"
3742{
3743 switch(driver.ctx_) {
3748 default:
3749 return isc::dhcp::Dhcp4Parser::make_STRING("store-extended-info", driver.loc_);
3750 }
3751}
3752 YY_BREAK
3753case 87:
3755#line 943 "dhcp4_lexer.ll"
3756{
3757 switch (driver.ctx_) {
3760 default:
3761 return isc::dhcp::Dhcp4Parser::make_STRING("shared-networks", driver.loc_);
3762 }
3763}
3764 YY_BREAK
3765case 88:
3767#line 952 "dhcp4_lexer.ll"
3768{
3769 switch(driver.ctx_) {
3772 return isc::dhcp::Dhcp4Parser::make_OPTION_DEF(driver.loc_);
3773 default:
3774 return isc::dhcp::Dhcp4Parser::make_STRING("option-def", driver.loc_);
3775 }
3776}
3777 YY_BREAK
3778case 89:
3780#line 962 "dhcp4_lexer.ll"
3781{
3782 switch(driver.ctx_) {
3789 return isc::dhcp::Dhcp4Parser::make_OPTION_DATA(driver.loc_);
3790 default:
3791 return isc::dhcp::Dhcp4Parser::make_STRING("option-data", driver.loc_);
3792 }
3793}
3794 YY_BREAK
3795case 90:
3797#line 976 "dhcp4_lexer.ll"
3798{
3799 switch(driver.ctx_) {
3808 return isc::dhcp::Dhcp4Parser::make_NAME(driver.loc_);
3809 default:
3810 return isc::dhcp::Dhcp4Parser::make_STRING("name", driver.loc_);
3811 }
3812}
3813 YY_BREAK
3814case 91:
3816#line 992 "dhcp4_lexer.ll"
3817{
3818 switch(driver.ctx_) {
3820 return isc::dhcp::Dhcp4Parser::make_DATA(driver.loc_);
3821 default:
3822 return isc::dhcp::Dhcp4Parser::make_STRING("data", driver.loc_);
3823 }
3824}
3825 YY_BREAK
3826case 92:
3828#line 1001 "dhcp4_lexer.ll"
3829{
3830 switch(driver.ctx_) {
3832 return isc::dhcp::Dhcp4Parser::make_ALWAYS_SEND(driver.loc_);
3833 default:
3834 return isc::dhcp::Dhcp4Parser::make_STRING("always-send", driver.loc_);
3835 }
3836}
3837 YY_BREAK
3838case 93:
3840#line 1010 "dhcp4_lexer.ll"
3841{
3842 switch(driver.ctx_) {
3844 return isc::dhcp::Dhcp4Parser::make_NEVER_SEND(driver.loc_);
3845 default:
3846 return isc::dhcp::Dhcp4Parser::make_STRING("never-send", driver.loc_);
3847 }
3848}
3849 YY_BREAK
3850case 94:
3852#line 1019 "dhcp4_lexer.ll"
3853{
3854 switch(driver.ctx_) {
3856 return isc::dhcp::Dhcp4Parser::make_POOLS(driver.loc_);
3857 default:
3858 return isc::dhcp::Dhcp4Parser::make_STRING("pools", driver.loc_);
3859 }
3860}
3861 YY_BREAK
3862case 95:
3864#line 1028 "dhcp4_lexer.ll"
3865{
3866 switch(driver.ctx_) {
3868 return isc::dhcp::Dhcp4Parser::make_POOL(driver.loc_);
3869 default:
3870 return isc::dhcp::Dhcp4Parser::make_STRING("pool", driver.loc_);
3871 }
3872}
3873 YY_BREAK
3874case 96:
3876#line 1037 "dhcp4_lexer.ll"
3877{
3878 switch(driver.ctx_) {
3880 return isc::dhcp::Dhcp4Parser::make_POOL_ID(driver.loc_);
3881 default:
3882 return isc::dhcp::Dhcp4Parser::make_STRING("pool-id", driver.loc_);
3883 }
3884}
3885 YY_BREAK
3886case 97:
3888#line 1046 "dhcp4_lexer.ll"
3889{
3890 switch(driver.ctx_) {
3906 default:
3907 return isc::dhcp::Dhcp4Parser::make_STRING("user-context", driver.loc_);
3908 }
3909}
3910 YY_BREAK
3911case 98:
3913#line 1068 "dhcp4_lexer.ll"
3914{
3915 switch(driver.ctx_) {
3930 return isc::dhcp::Dhcp4Parser::make_COMMENT(driver.loc_);
3931 default:
3932 return isc::dhcp::Dhcp4Parser::make_STRING("comment", driver.loc_);
3933 }
3934}
3935 YY_BREAK
3936case 99:
3938#line 1090 "dhcp4_lexer.ll"
3939{
3940 switch(driver.ctx_) {
3942 return isc::dhcp::Dhcp4Parser::make_SUBNET(driver.loc_);
3943 default:
3944 return isc::dhcp::Dhcp4Parser::make_STRING("subnet", driver.loc_);
3945 }
3946}
3947 YY_BREAK
3948case 100:
3950#line 1099 "dhcp4_lexer.ll"
3951{
3952 switch(driver.ctx_) {
3955 return isc::dhcp::Dhcp4Parser::make_INTERFACE(driver.loc_);
3956 default:
3957 return isc::dhcp::Dhcp4Parser::make_STRING("interface", driver.loc_);
3958 }
3959}
3960 YY_BREAK
3961case 101:
3963#line 1109 "dhcp4_lexer.ll"
3964{
3965 switch(driver.ctx_) {
3967 return isc::dhcp::Dhcp4Parser::make_ID(driver.loc_);
3968 default:
3969 return isc::dhcp::Dhcp4Parser::make_STRING("id", driver.loc_);
3970 }
3971}
3972 YY_BREAK
3973case 102:
3975#line 1118 "dhcp4_lexer.ll"
3976{
3977 switch(driver.ctx_) {
3982 default:
3983 return isc::dhcp::Dhcp4Parser::make_STRING("reservation-mode", driver.loc_);
3984 }
3985}
3986 YY_BREAK
3987case 103:
3989#line 1129 "dhcp4_lexer.ll"
3990{
3991 switch(driver.ctx_) {
3993 return isc::dhcp::Dhcp4Parser::make_DISABLED(driver.loc_);
3994 default:
3995 return isc::dhcp::Dhcp4Parser::make_STRING("disabled", driver.loc_);
3996 }
3997}
3998 YY_BREAK
3999case 104:
4001#line 1138 "dhcp4_lexer.ll"
4002{
4003 switch(driver.ctx_) {
4005 return isc::dhcp::Dhcp4Parser::make_DISABLED(driver.loc_);
4006 default:
4007 return isc::dhcp::Dhcp4Parser::make_STRING("off", driver.loc_);
4008 }
4009}
4010 YY_BREAK
4011case 105:
4013#line 1147 "dhcp4_lexer.ll"
4014{
4015 switch(driver.ctx_) {
4017 return isc::dhcp::Dhcp4Parser::make_OUT_OF_POOL(driver.loc_);
4018 default:
4019 return isc::dhcp::Dhcp4Parser::make_STRING("out-of-pool", driver.loc_);
4020 }
4021}
4022 YY_BREAK
4023case 106:
4025#line 1156 "dhcp4_lexer.ll"
4026{
4027 switch(driver.ctx_) {
4029 return isc::dhcp::Dhcp4Parser::make_GLOBAL(driver.loc_);
4030 default:
4031 return isc::dhcp::Dhcp4Parser::make_STRING("global", driver.loc_);
4032 }
4033}
4034 YY_BREAK
4035case 107:
4037#line 1165 "dhcp4_lexer.ll"
4038{
4039 switch(driver.ctx_) {
4041 return isc::dhcp::Dhcp4Parser::make_ALL(driver.loc_);
4042 default:
4043 return isc::dhcp::Dhcp4Parser::make_STRING("all", driver.loc_);
4044 }
4045}
4046 YY_BREAK
4047case 108:
4049#line 1174 "dhcp4_lexer.ll"
4050{
4051 switch(driver.ctx_) {
4056 default:
4057 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-global", driver.loc_);
4058 }
4059}
4060 YY_BREAK
4061case 109:
4063#line 1185 "dhcp4_lexer.ll"
4064{
4065 switch(driver.ctx_) {
4070 default:
4071 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-in-subnet", driver.loc_);
4072 }
4073}
4074 YY_BREAK
4075case 110:
4077#line 1196 "dhcp4_lexer.ll"
4078{
4079 switch(driver.ctx_) {
4084 default:
4085 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-out-of-pool", driver.loc_);
4086 }
4087}
4088 YY_BREAK
4089case 111:
4091#line 1207 "dhcp4_lexer.ll"
4092{
4093 switch(driver.ctx_) {
4096 return isc::dhcp::Dhcp4Parser::make_CODE(driver.loc_);
4097 default:
4098 return isc::dhcp::Dhcp4Parser::make_STRING("code", driver.loc_);
4099 }
4100}
4101 YY_BREAK
4102case 112:
4104#line 1217 "dhcp4_lexer.ll"
4105{
4106 switch(driver.ctx_) {
4109 default:
4110 return isc::dhcp::Dhcp4Parser::make_STRING("host-reservation-identifiers", driver.loc_);
4111 }
4112}
4113 YY_BREAK
4114case 113:
4116#line 1226 "dhcp4_lexer.ll"
4117{
4118 switch(driver.ctx_) {
4123 default:
4124 return isc::dhcp::Dhcp4Parser::make_STRING("calculate-tee-times", driver.loc_);
4125 }
4126}
4127 YY_BREAK
4128case 114:
4130#line 1237 "dhcp4_lexer.ll"
4131{
4132 switch(driver.ctx_) {
4136 return isc::dhcp::Dhcp4Parser::make_T1_PERCENT(driver.loc_);
4137 default:
4138 return isc::dhcp::Dhcp4Parser::make_STRING("t1-percent", driver.loc_);
4139 }
4140}
4141 YY_BREAK
4142case 115:
4144#line 1248 "dhcp4_lexer.ll"
4145{
4146 switch(driver.ctx_) {
4150 return isc::dhcp::Dhcp4Parser::make_T2_PERCENT(driver.loc_);
4151 default:
4152 return isc::dhcp::Dhcp4Parser::make_STRING("t2-percent", driver.loc_);
4153 }
4154}
4155 YY_BREAK
4156case 116:
4158#line 1259 "dhcp4_lexer.ll"
4159{
4160 switch(driver.ctx_) {
4165 default:
4166 return isc::dhcp::Dhcp4Parser::make_STRING("cache-threshold", driver.loc_);
4167 }
4168}
4169 YY_BREAK
4170case 117:
4172#line 1270 "dhcp4_lexer.ll"
4173{
4174 switch(driver.ctx_) {
4179 default:
4180 return isc::dhcp::Dhcp4Parser::make_STRING("cache-max-age", driver.loc_);
4181 }
4182}
4183 YY_BREAK
4184case 118:
4186#line 1282 "dhcp4_lexer.ll"
4187{
4188 switch(driver.ctx_) {
4190 return isc::dhcp::Dhcp4Parser::make_LOGGERS(driver.loc_);
4191 default:
4192 return isc::dhcp::Dhcp4Parser::make_STRING("loggers", driver.loc_);
4193 }
4194}
4195 YY_BREAK
4196case 119:
4198#line 1291 "dhcp4_lexer.ll"
4199{
4200 switch(driver.ctx_) {
4203 default:
4204 return isc::dhcp::Dhcp4Parser::make_STRING("output_options", driver.loc_);
4205 }
4206}
4207 YY_BREAK
4208case 120:
4210#line 1300 "dhcp4_lexer.ll"
4211{
4212 switch(driver.ctx_) {
4215 default:
4216 return isc::dhcp::Dhcp4Parser::make_STRING("output-options", driver.loc_);
4217 }
4218}
4219 YY_BREAK
4220case 121:
4222#line 1309 "dhcp4_lexer.ll"
4223{
4224 switch(driver.ctx_) {
4226 return isc::dhcp::Dhcp4Parser::make_OUTPUT(driver.loc_);
4227 default:
4228 return isc::dhcp::Dhcp4Parser::make_STRING("output", driver.loc_);
4229 }
4230}
4231 YY_BREAK
4232case 122:
4234#line 1318 "dhcp4_lexer.ll"
4235{
4236 switch(driver.ctx_) {
4238 return isc::dhcp::Dhcp4Parser::make_DEBUGLEVEL(driver.loc_);
4239 default:
4240 return isc::dhcp::Dhcp4Parser::make_STRING("debuglevel", driver.loc_);
4241 }
4242}
4243 YY_BREAK
4244case 123:
4246#line 1327 "dhcp4_lexer.ll"
4247{
4248 switch(driver.ctx_) {
4250 return isc::dhcp::Dhcp4Parser::make_FLUSH(driver.loc_);
4251 default:
4252 return isc::dhcp::Dhcp4Parser::make_STRING("flush", driver.loc_);
4253 }
4254}
4255 YY_BREAK
4256case 124:
4258#line 1336 "dhcp4_lexer.ll"
4259{
4260 switch(driver.ctx_) {
4262 return isc::dhcp::Dhcp4Parser::make_MAXSIZE(driver.loc_);
4263 default:
4264 return isc::dhcp::Dhcp4Parser::make_STRING("maxsize", driver.loc_);
4265 }
4266}
4267 YY_BREAK
4268case 125:
4270#line 1345 "dhcp4_lexer.ll"
4271{
4272 switch(driver.ctx_) {
4274 return isc::dhcp::Dhcp4Parser::make_MAXVER(driver.loc_);
4275 default:
4276 return isc::dhcp::Dhcp4Parser::make_STRING("maxver", driver.loc_);
4277 }
4278}
4279 YY_BREAK
4280case 126:
4282#line 1354 "dhcp4_lexer.ll"
4283{
4284 switch(driver.ctx_) {
4286 return isc::dhcp::Dhcp4Parser::make_PATTERN(driver.loc_);
4287 default:
4288 return isc::dhcp::Dhcp4Parser::make_STRING("pattern", driver.loc_);
4289 }
4290}
4291 YY_BREAK
4292case 127:
4294#line 1363 "dhcp4_lexer.ll"
4295{
4296 switch(driver.ctx_) {
4298 return isc::dhcp::Dhcp4Parser::make_SEVERITY(driver.loc_);
4299 default:
4300 return isc::dhcp::Dhcp4Parser::make_STRING("severity", driver.loc_);
4301 }
4302}
4303 YY_BREAK
4304case 128:
4306#line 1372 "dhcp4_lexer.ll"
4307{
4308 switch(driver.ctx_) {
4312 default:
4313 return isc::dhcp::Dhcp4Parser::make_STRING("client-classes", driver.loc_);
4314 }
4315}
4316 YY_BREAK
4317case 129:
4319#line 1382 "dhcp4_lexer.ll"
4320{
4321 switch(driver.ctx_) {
4326 default:
4327 return isc::dhcp::Dhcp4Parser::make_STRING("require-client-classes", driver.loc_);
4328 }
4329}
4330 YY_BREAK
4331case 130:
4333#line 1393 "dhcp4_lexer.ll"
4334{
4335 switch(driver.ctx_) {
4341 default:
4342 return isc::dhcp::Dhcp4Parser::make_STRING("client-class", driver.loc_);
4343 }
4344}
4345 YY_BREAK
4346case 131:
4348#line 1405 "dhcp4_lexer.ll"
4349{
4350 switch(driver.ctx_) {
4352 return isc::dhcp::Dhcp4Parser::make_TEST(driver.loc_);
4353 default:
4354 return isc::dhcp::Dhcp4Parser::make_STRING("test", driver.loc_);
4355 }
4356}
4357 YY_BREAK
4358case 132:
4360#line 1414 "dhcp4_lexer.ll"
4361{
4362 switch(driver.ctx_) {
4365 default:
4366 return isc::dhcp::Dhcp4Parser::make_STRING("template-test", driver.loc_);
4367 }
4368}
4369 YY_BREAK
4370case 133:
4372#line 1423 "dhcp4_lexer.ll"
4373{
4374 switch(driver.ctx_) {
4377 default:
4378 return isc::dhcp::Dhcp4Parser::make_STRING("only-if-required", driver.loc_);
4379 }
4380}
4381 YY_BREAK
4382case 134:
4384#line 1432 "dhcp4_lexer.ll"
4385{
4386 switch(driver.ctx_) {
4390 default:
4391 return isc::dhcp::Dhcp4Parser::make_STRING("reservations", driver.loc_);
4392 }
4393}
4394 YY_BREAK
4395case 135:
4397#line 1442 "dhcp4_lexer.ll"
4398{
4399 switch(driver.ctx_) {
4402 return isc::dhcp::Dhcp4Parser::make_DUID(driver.loc_);
4403 default:
4404 return isc::dhcp::Dhcp4Parser::make_STRING("duid", driver.loc_);
4405 }
4406}
4407 YY_BREAK
4408case 136:
4410#line 1452 "dhcp4_lexer.ll"
4411{
4412 switch(driver.ctx_) {
4415 return isc::dhcp::Dhcp4Parser::make_HW_ADDRESS(driver.loc_);
4416 default:
4417 return isc::dhcp::Dhcp4Parser::make_STRING("hw-address", driver.loc_);
4418 }
4419}
4420 YY_BREAK
4421case 137:
4423#line 1462 "dhcp4_lexer.ll"
4424{
4425 switch(driver.ctx_) {
4428 return isc::dhcp::Dhcp4Parser::make_CLIENT_ID(driver.loc_);
4429 default:
4430 return isc::dhcp::Dhcp4Parser::make_STRING("client-id", driver.loc_);
4431 }
4432}
4433 YY_BREAK
4434case 138:
4436#line 1472 "dhcp4_lexer.ll"
4437{
4438 switch(driver.ctx_) {
4441 return isc::dhcp::Dhcp4Parser::make_CIRCUIT_ID(driver.loc_);
4442 default:
4443 return isc::dhcp::Dhcp4Parser::make_STRING("circuit-id", driver.loc_);
4444 }
4445}
4446 YY_BREAK
4447case 139:
4449#line 1482 "dhcp4_lexer.ll"
4450{
4451 switch(driver.ctx_) {
4454 return isc::dhcp::Dhcp4Parser::make_FLEX_ID(driver.loc_);
4455 default:
4456 return isc::dhcp::Dhcp4Parser::make_STRING("flex-id", driver.loc_);
4457 }
4458}
4459 YY_BREAK
4460case 140:
4462#line 1492 "dhcp4_lexer.ll"
4463{
4464 switch(driver.ctx_) {
4466 return isc::dhcp::Dhcp4Parser::make_HOSTNAME(driver.loc_);
4467 default:
4468 return isc::dhcp::Dhcp4Parser::make_STRING("hostname", driver.loc_);
4469 }
4470}
4471 YY_BREAK
4472case 141:
4474#line 1501 "dhcp4_lexer.ll"
4475{
4476 switch(driver.ctx_) {
4479 return isc::dhcp::Dhcp4Parser::make_SPACE(driver.loc_);
4480 default:
4481 return isc::dhcp::Dhcp4Parser::make_STRING("space", driver.loc_);
4482 }
4483}
4484 YY_BREAK
4485case 142:
4487#line 1511 "dhcp4_lexer.ll"
4488{
4489 switch(driver.ctx_) {
4491 return isc::dhcp::Dhcp4Parser::make_CSV_FORMAT(driver.loc_);
4492 default:
4493 return isc::dhcp::Dhcp4Parser::make_STRING("csv-format", driver.loc_);
4494 }
4495}
4496 YY_BREAK
4497case 143:
4499#line 1520 "dhcp4_lexer.ll"
4500{
4501 switch(driver.ctx_) {
4504 default:
4505 return isc::dhcp::Dhcp4Parser::make_STRING("record-types", driver.loc_);
4506 }
4507}
4508 YY_BREAK
4509case 144:
4511#line 1529 "dhcp4_lexer.ll"
4512{
4513 switch(driver.ctx_) {
4515 return isc::dhcp::Dhcp4Parser::make_ENCAPSULATE(driver.loc_);
4516 default:
4517 return isc::dhcp::Dhcp4Parser::make_STRING("encapsulate", driver.loc_);
4518 }
4519}
4520 YY_BREAK
4521case 145:
4523#line 1538 "dhcp4_lexer.ll"
4524{
4525 switch(driver.ctx_) {
4527 return isc::dhcp::Dhcp4Parser::make_ARRAY(driver.loc_);
4528 default:
4529 return isc::dhcp::Dhcp4Parser::make_STRING("array", driver.loc_);
4530 }
4531}
4532 YY_BREAK
4533case 146:
4535#line 1547 "dhcp4_lexer.ll"
4536{
4537 switch(driver.ctx_) {
4540 return isc::dhcp::Dhcp4Parser::make_RELAY(driver.loc_);
4541 default:
4542 return isc::dhcp::Dhcp4Parser::make_STRING("relay", driver.loc_);
4543 }
4544}
4545 YY_BREAK
4546case 147:
4548#line 1557 "dhcp4_lexer.ll"
4549{
4550 switch(driver.ctx_) {
4553 return isc::dhcp::Dhcp4Parser::make_IP_ADDRESS(driver.loc_);
4554 default:
4555 return isc::dhcp::Dhcp4Parser::make_STRING("ip-address", driver.loc_);
4556 }
4557}
4558 YY_BREAK
4559case 148:
4561#line 1567 "dhcp4_lexer.ll"
4562{
4563 switch(driver.ctx_) {
4566 default:
4567 return isc::dhcp::Dhcp4Parser::make_STRING("ip-addresses", driver.loc_);
4568 }
4569}
4570 YY_BREAK
4571case 149:
4573#line 1576 "dhcp4_lexer.ll"
4574{
4575 switch(driver.ctx_) {
4578 default:
4579 return isc::dhcp::Dhcp4Parser::make_STRING("hooks-libraries", driver.loc_);
4580 }
4581}
4582 YY_BREAK
4583case 150:
4585#line 1586 "dhcp4_lexer.ll"
4586{
4587 switch(driver.ctx_) {
4589 return isc::dhcp::Dhcp4Parser::make_PARAMETERS(driver.loc_);
4590 default:
4591 return isc::dhcp::Dhcp4Parser::make_STRING("parameters", driver.loc_);
4592 }
4593}
4594 YY_BREAK
4595case 151:
4597#line 1595 "dhcp4_lexer.ll"
4598{
4599 switch(driver.ctx_) {
4601 return isc::dhcp::Dhcp4Parser::make_LIBRARY(driver.loc_);
4602 default:
4603 return isc::dhcp::Dhcp4Parser::make_STRING("library", driver.loc_);
4604 }
4605}
4606 YY_BREAK
4607case 152:
4609#line 1604 "dhcp4_lexer.ll"
4610{
4611 switch(driver.ctx_) {
4614 default:
4615 return isc::dhcp::Dhcp4Parser::make_STRING("expired-leases-processing", driver.loc_);
4616 }
4617}
4618 YY_BREAK
4619case 153:
4621#line 1613 "dhcp4_lexer.ll"
4622{
4623 switch(driver.ctx_) {
4626 default:
4627 return isc::dhcp::Dhcp4Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
4628 }
4629}
4630 YY_BREAK
4631case 154:
4633#line 1622 "dhcp4_lexer.ll"
4634{
4635 switch(driver.ctx_) {
4638 default:
4639 return isc::dhcp::Dhcp4Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
4640 }
4641}
4642 YY_BREAK
4643case 155:
4645#line 1631 "dhcp4_lexer.ll"
4646{
4647 switch(driver.ctx_) {
4650 default:
4651 return isc::dhcp::Dhcp4Parser::make_STRING("hold-reclaimed-time", driver.loc_);
4652 }
4653}
4654 YY_BREAK
4655case 156:
4657#line 1640 "dhcp4_lexer.ll"
4658{
4659 switch(driver.ctx_) {
4662 default:
4663 return isc::dhcp::Dhcp4Parser::make_STRING("max-reclaim-leases", driver.loc_);
4664 }
4665}
4666 YY_BREAK
4667case 157:
4669#line 1649 "dhcp4_lexer.ll"
4670{
4671 switch(driver.ctx_) {
4674 default:
4675 return isc::dhcp::Dhcp4Parser::make_STRING("max-reclaim-time", driver.loc_);
4676 }
4677}
4678 YY_BREAK
4679case 158:
4681#line 1658 "dhcp4_lexer.ll"
4682{
4683 switch(driver.ctx_) {
4686 default:
4687 return isc::dhcp::Dhcp4Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
4688 }
4689}
4690 YY_BREAK
4691case 159:
4693#line 1667 "dhcp4_lexer.ll"
4694{
4695 switch(driver.ctx_) {
4698 default:
4699 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp4o6-port", driver.loc_);
4700 }
4701}
4702 YY_BREAK
4703case 160:
4705#line 1676 "dhcp4_lexer.ll"
4706{
4707 switch(driver.ctx_) {
4710 default:
4711 return isc::dhcp::Dhcp4Parser::make_STRING("multi-threading", driver.loc_);
4712 }
4713}
4714 YY_BREAK
4715case 161:
4717#line 1685 "dhcp4_lexer.ll"
4718{
4719 switch(driver.ctx_) {
4722 default:
4723 return isc::dhcp::Dhcp4Parser::make_STRING("enable-multi-threading", driver.loc_);
4724 }
4725}
4726 YY_BREAK
4727case 162:
4729#line 1694 "dhcp4_lexer.ll"
4730{
4731 switch(driver.ctx_) {
4734 default:
4735 return isc::dhcp::Dhcp4Parser::make_STRING("thread-pool-size", driver.loc_);
4736 }
4737}
4738 YY_BREAK
4739case 163:
4741#line 1703 "dhcp4_lexer.ll"
4742{
4743 switch(driver.ctx_) {
4746 default:
4747 return isc::dhcp::Dhcp4Parser::make_STRING("packet-queue-size", driver.loc_);
4748 }
4749}
4750 YY_BREAK
4751case 164:
4753#line 1712 "dhcp4_lexer.ll"
4754{
4755 switch(driver.ctx_) {
4758 default:
4759 return isc::dhcp::Dhcp4Parser::make_STRING("control-socket", driver.loc_);
4760 }
4761}
4762 YY_BREAK
4763case 165:
4765#line 1721 "dhcp4_lexer.ll"
4766{
4767 switch(driver.ctx_) {
4769 return isc::dhcp::Dhcp4Parser::make_SOCKET_TYPE(driver.loc_);
4770 default:
4771 return isc::dhcp::Dhcp4Parser::make_STRING("socket-type", driver.loc_);
4772 }
4773}
4774 YY_BREAK
4775case 166:
4777#line 1730 "dhcp4_lexer.ll"
4778{
4779 switch(driver.ctx_) {
4781 return isc::dhcp::Dhcp4Parser::make_SOCKET_NAME(driver.loc_);
4782 default:
4783 return isc::dhcp::Dhcp4Parser::make_STRING("socket-name", driver.loc_);
4784 }
4785}
4786 YY_BREAK
4787case 167:
4789#line 1739 "dhcp4_lexer.ll"
4790{
4791 switch(driver.ctx_) {
4794 default:
4795 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-queue-control", driver.loc_);
4796 }
4797}
4798 YY_BREAK
4799case 168:
4801#line 1748 "dhcp4_lexer.ll"
4802{
4803 switch(driver.ctx_) {
4806 default:
4807 return isc::dhcp::Dhcp4Parser::make_STRING("enable-queue", driver.loc_);
4808 }
4809}
4810 YY_BREAK
4811case 169:
4813#line 1757 "dhcp4_lexer.ll"
4814{
4815 switch(driver.ctx_) {
4817 return isc::dhcp::Dhcp4Parser::make_QUEUE_TYPE(driver.loc_);
4818 default:
4819 return isc::dhcp::Dhcp4Parser::make_STRING("queue-type", driver.loc_);
4820 }
4821}
4822 YY_BREAK
4823case 170:
4825#line 1766 "dhcp4_lexer.ll"
4826{
4827 switch(driver.ctx_) {
4829 return isc::dhcp::Dhcp4Parser::make_CAPACITY(driver.loc_);
4830 default:
4831 return isc::dhcp::Dhcp4Parser::make_STRING("capacity", driver.loc_);
4832 }
4833}
4834 YY_BREAK
4835case 171:
4837#line 1775 "dhcp4_lexer.ll"
4838{
4839 switch(driver.ctx_) {
4841 return isc::dhcp::Dhcp4Parser::make_DHCP_DDNS(driver.loc_);
4842 default:
4843 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-ddns", driver.loc_);
4844 }
4845}
4846 YY_BREAK
4847case 172:
4849#line 1784 "dhcp4_lexer.ll"
4850{
4851 switch(driver.ctx_) {
4854 default:
4855 return isc::dhcp::Dhcp4Parser::make_STRING("enable-updates", driver.loc_);
4856 }
4857}
4858 YY_BREAK
4859case 173:
4861#line 1793 "dhcp4_lexer.ll"
4862{
4863 switch(driver.ctx_) {
4866 default:
4867 return isc::dhcp::Dhcp4Parser::make_STRING("qualifying-suffix", driver.loc_);
4868 }
4869}
4870 YY_BREAK
4871case 174:
4873#line 1802 "dhcp4_lexer.ll"
4874{
4875 switch(driver.ctx_) {
4877 return isc::dhcp::Dhcp4Parser::make_SERVER_IP(driver.loc_);
4878 default:
4879 return isc::dhcp::Dhcp4Parser::make_STRING("server-ip", driver.loc_);
4880 }
4881}
4882 YY_BREAK
4883case 175:
4885#line 1811 "dhcp4_lexer.ll"
4886{
4887 switch(driver.ctx_) {
4889 return isc::dhcp::Dhcp4Parser::make_SERVER_PORT(driver.loc_);
4890 default:
4891 return isc::dhcp::Dhcp4Parser::make_STRING("server-port", driver.loc_);
4892 }
4893}
4894 YY_BREAK
4895case 176:
4897#line 1820 "dhcp4_lexer.ll"
4898{
4899 switch(driver.ctx_) {
4901 return isc::dhcp::Dhcp4Parser::make_SENDER_IP(driver.loc_);
4902 default:
4903 return isc::dhcp::Dhcp4Parser::make_STRING("sender-ip", driver.loc_);
4904 }
4905}
4906 YY_BREAK
4907case 177:
4909#line 1829 "dhcp4_lexer.ll"
4910{
4911 switch(driver.ctx_) {
4913 return isc::dhcp::Dhcp4Parser::make_SENDER_PORT(driver.loc_);
4914 default:
4915 return isc::dhcp::Dhcp4Parser::make_STRING("sender-port", driver.loc_);
4916 }
4917}
4918 YY_BREAK
4919case 178:
4921#line 1838 "dhcp4_lexer.ll"
4922{
4923 switch(driver.ctx_) {
4926 default:
4927 return isc::dhcp::Dhcp4Parser::make_STRING("max-queue-size", driver.loc_);
4928 }
4929}
4930 YY_BREAK
4931case 179:
4933#line 1847 "dhcp4_lexer.ll"
4934{
4935 switch(driver.ctx_) {
4938 default:
4939 return isc::dhcp::Dhcp4Parser::make_STRING("ncr-protocol", driver.loc_);
4940 }
4941}
4942 YY_BREAK
4943case 180:
4945#line 1856 "dhcp4_lexer.ll"
4946{
4947 switch(driver.ctx_) {
4949 return isc::dhcp::Dhcp4Parser::make_NCR_FORMAT(driver.loc_);
4950 default:
4951 return isc::dhcp::Dhcp4Parser::make_STRING("ncr-format", driver.loc_);
4952 }
4953}
4954 YY_BREAK
4955case 181:
4957#line 1865 "dhcp4_lexer.ll"
4958{
4959 switch(driver.ctx_) {
4962 default:
4963 return isc::dhcp::Dhcp4Parser::make_STRING("override-no-update", driver.loc_);
4964 }
4965}
4966 YY_BREAK
4967case 182:
4969#line 1874 "dhcp4_lexer.ll"
4970{
4971 switch(driver.ctx_) {
4974 default:
4975 return isc::dhcp::Dhcp4Parser::make_STRING("override-client-update", driver.loc_);
4976 }
4977}
4978 YY_BREAK
4979case 183:
4981#line 1883 "dhcp4_lexer.ll"
4982{
4983 switch(driver.ctx_) {
4986 default:
4987 return isc::dhcp::Dhcp4Parser::make_STRING("replace-client-name", driver.loc_);
4988 }
4989}
4990 YY_BREAK
4991case 184:
4993#line 1892 "dhcp4_lexer.ll"
4994{
4995 switch(driver.ctx_) {
4998 default:
4999 return isc::dhcp::Dhcp4Parser::make_STRING("generated-prefix", driver.loc_);
5000 }
5001}
5002 YY_BREAK
5003case 185:
5005#line 1901 "dhcp4_lexer.ll"
5006{
5007 switch(driver.ctx_) {
5013 default:
5014 return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-set", driver.loc_);
5015 }
5016}
5017 YY_BREAK
5018case 186:
5020#line 1913 "dhcp4_lexer.ll"
5021{
5022 switch(driver.ctx_) {
5028 default:
5029 return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-replacement", driver.loc_);
5030 }
5031}
5032 YY_BREAK
5033case 187:
5035#line 1925 "dhcp4_lexer.ll"
5036{
5037 /* dhcp-ddns value keywords are case insensitive */
5038 if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
5039 return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_);
5040 }
5041 std::string tmp(yytext+1);
5042 tmp.resize(tmp.size() - 1);
5043 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5044}
5045 YY_BREAK
5046case 188:
5048#line 1935 "dhcp4_lexer.ll"
5049{
5050 /* dhcp-ddns value keywords are case insensitive */
5051 if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
5052 return isc::dhcp::Dhcp4Parser::make_TCP(driver.loc_);
5053 }
5054 std::string tmp(yytext+1);
5055 tmp.resize(tmp.size() - 1);
5056 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5057}
5058 YY_BREAK
5059case 189:
5061#line 1945 "dhcp4_lexer.ll"
5062{
5063 /* dhcp-ddns value keywords are case insensitive */
5064 if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
5065 return isc::dhcp::Dhcp4Parser::make_JSON(driver.loc_);
5066 }
5067 std::string tmp(yytext+1);
5068 tmp.resize(tmp.size() - 1);
5069 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5070}
5071 YY_BREAK
5072case 190:
5074#line 1955 "dhcp4_lexer.ll"
5075{
5076 /* dhcp-ddns value keywords are case insensitive */
5079 }
5080 std::string tmp(yytext+1);
5081 tmp.resize(tmp.size() - 1);
5082 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5083}
5084 YY_BREAK
5085case 191:
5087#line 1965 "dhcp4_lexer.ll"
5088{
5089 /* dhcp-ddns value keywords are case insensitive */
5092 }
5093 std::string tmp(yytext+1);
5094 tmp.resize(tmp.size() - 1);
5095 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5096}
5097 YY_BREAK
5098case 192:
5100#line 1975 "dhcp4_lexer.ll"
5101{
5102 /* dhcp-ddns value keywords are case insensitive */
5104 return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
5105 }
5106 std::string tmp(yytext+1);
5107 tmp.resize(tmp.size() - 1);
5108 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5109}
5110 YY_BREAK
5111case 193:
5113#line 1985 "dhcp4_lexer.ll"
5114{
5115 /* dhcp-ddns value keywords are case insensitive */
5117 return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
5118 }
5119 std::string tmp(yytext+1);
5120 tmp.resize(tmp.size() - 1);
5121 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5122}
5123 YY_BREAK
5124case 194:
5126#line 1995 "dhcp4_lexer.ll"
5127{
5128 /* dhcp-ddns value keywords are case insensitive */
5130 return isc::dhcp::Dhcp4Parser::make_ALWAYS(driver.loc_);
5131 }
5132 std::string tmp(yytext+1);
5133 tmp.resize(tmp.size() - 1);
5134 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5135}
5136 YY_BREAK
5137case 195:
5139#line 2005 "dhcp4_lexer.ll"
5140{
5141 /* dhcp-ddns value keywords are case insensitive */
5144 }
5145 std::string tmp(yytext+1);
5146 tmp.resize(tmp.size() - 1);
5147 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
5148}
5149 YY_BREAK
5150case 196:
5152#line 2015 "dhcp4_lexer.ll"
5153{
5154 switch(driver.ctx_) {
5157 default:
5158 return isc::dhcp::Dhcp4Parser::make_STRING("4o6-interface", driver.loc_);
5159 }
5160}
5161 YY_BREAK
5162case 197:
5164#line 2024 "dhcp4_lexer.ll"
5165{
5166 switch(driver.ctx_) {
5169 default:
5170 return isc::dhcp::Dhcp4Parser::make_STRING("4o6-interface-id", driver.loc_);
5171 }
5172}
5173 YY_BREAK
5174case 198:
5176#line 2033 "dhcp4_lexer.ll"
5177{
5178 switch(driver.ctx_) {
5181 default:
5182 return isc::dhcp::Dhcp4Parser::make_STRING("4o6-subnet", driver.loc_);
5183 }
5184}
5185 YY_BREAK
5186case 199:
5188#line 2042 "dhcp4_lexer.ll"
5189{
5190 switch(driver.ctx_) {
5193 default:
5194 return isc::dhcp::Dhcp4Parser::make_STRING("echo-client-id", driver.loc_);
5195 }
5196}
5197 YY_BREAK
5198case 200:
5200#line 2051 "dhcp4_lexer.ll"
5201{
5202 switch(driver.ctx_) {
5207 default:
5208 return isc::dhcp::Dhcp4Parser::make_STRING("match-client-id", driver.loc_);
5209 }
5210}
5211 YY_BREAK
5212case 201:
5214#line 2062 "dhcp4_lexer.ll"
5215{
5216 switch(driver.ctx_) {
5221 default:
5222 return isc::dhcp::Dhcp4Parser::make_STRING("authoritative", driver.loc_);
5223 }
5224}
5225 YY_BREAK
5226case 202:
5228#line 2073 "dhcp4_lexer.ll"
5229{
5230 switch(driver.ctx_) {
5236 return isc::dhcp::Dhcp4Parser::make_NEXT_SERVER(driver.loc_);
5237 default:
5238 return isc::dhcp::Dhcp4Parser::make_STRING("next-server", driver.loc_);
5239 }
5240}
5241 YY_BREAK
5242case 203:
5244#line 2086 "dhcp4_lexer.ll"
5245{
5246 switch(driver.ctx_) {
5253 default:
5254 return isc::dhcp::Dhcp4Parser::make_STRING("server-hostname", driver.loc_);
5255 }
5256}
5257 YY_BREAK
5258case 204:
5260#line 2099 "dhcp4_lexer.ll"
5261{
5262 switch(driver.ctx_) {
5269 default:
5270 return isc::dhcp::Dhcp4Parser::make_STRING("boot-file-name", driver.loc_);
5271 }
5272}
5273 YY_BREAK
5274case 205:
5276#line 2112 "dhcp4_lexer.ll"
5277{
5278 switch(driver.ctx_) {
5281 default:
5282 return isc::dhcp::Dhcp4Parser::make_STRING("early-global-reservations-lookup", driver.loc_);
5283 }
5284}
5285 YY_BREAK
5286case 206:
5288#line 2121 "dhcp4_lexer.ll"
5289{
5290 switch(driver.ctx_) {
5293 default:
5294 return isc::dhcp::Dhcp4Parser::make_STRING("ip-reservations-unique", driver.loc_);
5295 }
5296}
5297 YY_BREAK
5298case 207:
5300#line 2130 "dhcp4_lexer.ll"
5301{
5302 switch(driver.ctx_) {
5305 default:
5306 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-lookup-first", driver.loc_);
5307 }
5308}
5309 YY_BREAK
5310case 208:
5312#line 2139 "dhcp4_lexer.ll"
5313{
5314 switch(driver.ctx_) {
5317 default:
5318 return isc::dhcp::Dhcp4Parser::make_STRING("compatibility", driver.loc_);
5319 }
5320}
5321 YY_BREAK
5322case 209:
5324#line 2148 "dhcp4_lexer.ll"
5325{
5326 switch(driver.ctx_) {
5329 default:
5330 return isc::dhcp::Dhcp4Parser::make_STRING("lenient-option-parsing", driver.loc_);
5331 }
5332}
5333 YY_BREAK
5334case 210:
5336#line 2157 "dhcp4_lexer.ll"
5337{
5338 switch(driver.ctx_) {
5341 default:
5342 return isc::dhcp::Dhcp4Parser::make_STRING("ignore-dhcp-server-identifier", driver.loc_);
5343 }
5344}
5345 YY_BREAK
5346case 211:
5348#line 2166 "dhcp4_lexer.ll"
5349{
5350 switch(driver.ctx_) {
5353 default:
5354 return isc::dhcp::Dhcp4Parser::make_STRING("ignore-rai-link-selection", driver.loc_);
5355 }
5356}
5357 YY_BREAK
5358case 212:
5360#line 2175 "dhcp4_lexer.ll"
5361{
5362 switch(driver.ctx_) {
5365 default:
5366 return isc::dhcp::Dhcp4Parser::make_STRING("exclude-first-last-24", driver.loc_);
5367 }
5368}
5369 YY_BREAK
5370case 213:
5372#line 2184 "dhcp4_lexer.ll"
5373{
5374 switch(driver.ctx_) {
5379 return isc::dhcp::Dhcp4Parser::make_OFFER_LFT(driver.loc_);
5380 default:
5381 return isc::dhcp::Dhcp4Parser::make_STRING("offer-lifetime", driver.loc_);
5382 }
5383}
5384 YY_BREAK
5385case 214:
5387#line 2196 "dhcp4_lexer.ll"
5388{
5389 /* A string has been matched. It contains the actual string and single quotes.
5390 We need to get those quotes out of the way and just use its content, e.g.
5391 for 'foo' we should get foo */
5392 std::string raw(yytext+1);
5393 size_t len = raw.size() - 1;
5394 raw.resize(len);
5395 std::string decoded;
5396 decoded.reserve(len);
5397 for (size_t pos = 0; pos < len; ++pos) {
5398 int b = 0;
5399 char c = raw[pos];
5400 switch (c) {
5401 case '"':
5402 /* impossible condition */
5403 driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
5404 break;
5405 case '\\':
5406 ++pos;
5407 if (pos >= len) {
5408 /* impossible condition */
5409 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
5410 }
5411 c = raw[pos];
5412 switch (c) {
5413 case '"':
5414 case '\\':
5415 case '/':
5416 decoded.push_back(c);
5417 break;
5418 case 'b':
5419 decoded.push_back('\b');
5420 break;
5421 case 'f':
5422 decoded.push_back('\f');
5423 break;
5424 case 'n':
5425 decoded.push_back('\n');
5426 break;
5427 case 'r':
5428 decoded.push_back('\r');
5429 break;
5430 case 't':
5431 decoded.push_back('\t');
5432 break;
5433 case 'u':
5434 /* support only \u0000 to \u00ff */
5435 ++pos;
5436 if (pos + 4 > len) {
5437 /* impossible condition */
5438 driver.error(driver.loc_,
5439 "Overflow unicode escape in \"" + raw + "\"");
5440 }
5441 if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
5442 driver.error(driver.loc_,
5443 "Unsupported unicode escape in \"" + raw + "\"",
5444 pos + 1);
5445 }
5446 pos += 2;
5447 c = raw[pos];
5448 if ((c >= '0') && (c <= '9')) {
5449 b = (c - '0') << 4;
5450 } else if ((c >= 'A') && (c <= 'F')) {
5451 b = (c - 'A' + 10) << 4;
5452 } else if ((c >= 'a') && (c <= 'f')) {
5453 b = (c - 'a' + 10) << 4;
5454 } else {
5455 /* impossible condition */
5456 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5457 }
5458 pos++;
5459 c = raw[pos];
5460 if ((c >= '0') && (c <= '9')) {
5461 b |= c - '0';
5462 } else if ((c >= 'A') && (c <= 'F')) {
5463 b |= c - 'A' + 10;
5464 } else if ((c >= 'a') && (c <= 'f')) {
5465 b |= c - 'a' + 10;
5466 } else {
5467 /* impossible condition */
5468 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5469 }
5470 decoded.push_back(static_cast<char>(b & 0xff));
5471 break;
5472 default:
5473 /* impossible condition */
5474 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5475 }
5476 break;
5477 default:
5478 if ((c >= 0) && (c < 0x20)) {
5479 /* impossible condition */
5480 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5481 }
5482 decoded.push_back(c);
5483 }
5484 }
5485
5486 return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_);
5487}
5488 YY_BREAK
5489case 215:
5490/* rule 215 can match eol */
5492#line 2297 "dhcp4_lexer.ll"
5493{
5494 /* Bad string with a forbidden control character inside */
5495 std::string raw(yytext+1);
5496 size_t len = raw.size() - 1;
5497 size_t pos = 0;
5498 for (; pos < len; ++pos) {
5499 char c = raw[pos];
5500 if ((c >= 0) && (c < 0x20)) {
5501 break;
5502 }
5503 }
5504 driver.error(driver.loc_,
5505 "Invalid control in " + std::string(yytext),
5506 pos + 1);
5507}
5508 YY_BREAK
5509case 216:
5510/* rule 216 can match eol */
5512#line 2313 "dhcp4_lexer.ll"
5513{
5514 /* Bad string with a bad escape inside */
5515 std::string raw(yytext+1);
5516 size_t len = raw.size() - 1;
5517 size_t pos = 0;
5518 bool found = false;
5519 for (; pos < len; ++pos) {
5520 if (found) {
5521 break;
5522 }
5523 char c = raw[pos];
5524 if (c == '\\') {
5525 ++pos;
5526 c = raw[pos];
5527 switch (c) {
5528 case '"':
5529 case '\\':
5530 case '/':
5531 case 'b':
5532 case 'f':
5533 case 'n':
5534 case 'r':
5535 case 't':
5536 break;
5537 case 'u':
5538 if ((pos + 4 > len) ||
5539 !std::isxdigit(raw[pos + 1]) ||
5540 !std::isxdigit(raw[pos + 2]) ||
5541 !std::isxdigit(raw[pos + 3]) ||
5542 !std::isxdigit(raw[pos + 4])) {
5543 found = true;
5544 }
5545 break;
5546 default:
5547 found = true;
5548 break;
5549 }
5550 }
5551 }
5552 /* The rule stops on the first " including on \" so add ... in this case */
5553 std::string trailer = "";
5554 if (raw[len - 1] == '\\') {
5555 trailer = "...";
5556 }
5557 driver.error(driver.loc_,
5558 "Bad escape in " + std::string(yytext) + trailer,
5559 pos);
5560}
5561 YY_BREAK
5562case 217:
5564#line 2362 "dhcp4_lexer.ll"
5565{
5566 /* Bad string with an open escape at the end */
5567 std::string raw(yytext+1);
5568 driver.error(driver.loc_,
5569 "Overflow escape in " + std::string(yytext),
5570 raw.size() + 1);
5571}
5572 YY_BREAK
5573case 218:
5575#line 2370 "dhcp4_lexer.ll"
5576{
5577 /* Bad string with an open unicode escape at the end */
5578 std::string raw(yytext+1);
5579 size_t pos = raw.size() - 1;
5580 for (; pos > 0; --pos) {
5581 char c = raw[pos];
5582 if (c == 'u') {
5583 break;
5584 }
5585 }
5586 driver.error(driver.loc_,
5587 "Overflow unicode escape in " + std::string(yytext),
5588 pos + 1);
5589}
5590 YY_BREAK
5591case 219:
5593#line 2385 "dhcp4_lexer.ll"
5594{ return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
5595 YY_BREAK
5596case 220:
5598#line 2386 "dhcp4_lexer.ll"
5599{ return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
5600 YY_BREAK
5601case 221:
5603#line 2387 "dhcp4_lexer.ll"
5604{ return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
5605 YY_BREAK
5606case 222:
5608#line 2388 "dhcp4_lexer.ll"
5609{ return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
5610 YY_BREAK
5611case 223:
5613#line 2389 "dhcp4_lexer.ll"
5614{ return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
5615 YY_BREAK
5616case 224:
5618#line 2390 "dhcp4_lexer.ll"
5619{ return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
5620 YY_BREAK
5621case 225:
5623#line 2392 "dhcp4_lexer.ll"
5624{
5625 /* An integer was found. */
5626 std::string tmp(yytext);
5627 int64_t integer = 0;
5628 try {
5629 /* In substring we want to use negative values (e.g. -1).
5630 In enterprise-id we need to use values up to 0xffffffff.
5631 To cover both of those use cases, we need at least
5632 int64_t. */
5633 integer = boost::lexical_cast<int64_t>(tmp);
5634 } catch (const boost::bad_lexical_cast &) {
5635 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5636 }
5637
5638 /* The parser needs the string form as double conversion is no lossless */
5639 return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_);
5640}
5641 YY_BREAK
5642case 226:
5644#line 2410 "dhcp4_lexer.ll"
5645{
5646 /* A floating point was found. */
5647 std::string tmp(yytext);
5648 double fp = 0.0;
5649 try {
5650 fp = boost::lexical_cast<double>(tmp);
5651 } catch (const boost::bad_lexical_cast &) {
5652 driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
5653 }
5654
5655 return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_);
5656}
5657 YY_BREAK
5658case 227:
5660#line 2423 "dhcp4_lexer.ll"
5661{
5662 string tmp(yytext);
5663 return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
5664}
5665 YY_BREAK
5666case 228:
5668#line 2428 "dhcp4_lexer.ll"
5669{
5670 return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
5671}
5672 YY_BREAK
5673case 229:
5675#line 2432 "dhcp4_lexer.ll"
5676driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
5677 YY_BREAK
5678case 230:
5680#line 2434 "dhcp4_lexer.ll"
5681driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
5682 YY_BREAK
5683case 231:
5685#line 2436 "dhcp4_lexer.ll"
5686driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
5687 YY_BREAK
5688case 232:
5690#line 2438 "dhcp4_lexer.ll"
5691driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
5692 YY_BREAK
5693case YY_STATE_EOF(INITIAL):
5694#line 2440 "dhcp4_lexer.ll"
5695{
5696 if (driver.states_.empty()) {
5697 return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
5698 }
5699 driver.loc_ = driver.locs_.back();
5700 driver.locs_.pop_back();
5701 driver.file_ = driver.files_.back();
5702 driver.files_.pop_back();
5703 if (driver.sfile_) {
5704 fclose(driver.sfile_);
5705 driver.sfile_ = 0;
5706 }
5707 if (!driver.sfiles_.empty()) {
5708 driver.sfile_ = driver.sfiles_.back();
5709 driver.sfiles_.pop_back();
5710 }
5711 parser4__delete_buffer(YY_CURRENT_BUFFER);
5712 parser4__switch_to_buffer(driver.states_.back());
5713 driver.states_.pop_back();
5714
5715 BEGIN(DIR_EXIT);
5716}
5717 YY_BREAK
5718case 233:
5720#line 2463 "dhcp4_lexer.ll"
5721ECHO;
5722 YY_BREAK
5723#line 5723 "dhcp4_lexer.cc"
5724
5725 case YY_END_OF_BUFFER:
5726 {
5727 /* Amount of text matched not including the EOB char. */
5728 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5729
5730 /* Undo the effects of YY_DO_BEFORE_ACTION. */
5731 *yy_cp = (yy_hold_char);
5733
5734 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5735 {
5736 /* We're scanning a new file or input source. It's
5737 * possible that this happened because the user
5738 * just pointed yyin at a new source and called
5739 * yylex(). If so, then we have to assure
5740 * consistency between YY_CURRENT_BUFFER and our
5741 * globals. Here is the right place to do so, because
5742 * this is the first action (other than possibly a
5743 * back-up) that will match for the new input source.
5744 */
5745 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5746/* %if-c-only */
5747 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
5748/* %endif */
5749/* %if-c++-only */
5750/* %endif */
5751 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5752 }
5753
5754 /* Note that here we test for yy_c_buf_p "<=" to the position
5755 * of the first EOB in the buffer, since yy_c_buf_p will
5756 * already have been incremented past the NUL character
5757 * (since all states make transitions on EOB to the
5758 * end-of-buffer state). Contrast this with the test
5759 * in input().
5760 */
5761 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5762 { /* This was really a NUL. */
5763 yy_state_type yy_next_state;
5764
5765 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5766
5767 yy_current_state = yy_get_previous_state( );
5768
5769 /* Okay, we're now positioned to make the NUL
5770 * transition. We couldn't have
5771 * yy_get_previous_state() go ahead and do it
5772 * for us because it doesn't know how to deal
5773 * with the possibility of jamming (and we don't
5774 * want to build jamming into it because then it
5775 * will run more slowly).
5776 */
5777
5778 yy_next_state = yy_try_NUL_trans( yy_current_state );
5779
5781
5782 if ( yy_next_state )
5783 {
5784 /* Consume the NUL. */
5785 yy_cp = ++(yy_c_buf_p);
5786 yy_current_state = yy_next_state;
5787 goto yy_match;
5788 }
5789
5790 else
5791 {
5792/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
5793 yy_cp = (yy_last_accepting_cpos);
5794 yy_current_state = (yy_last_accepting_state);
5795 goto yy_find_action;
5796 }
5797 }
5798
5799 else switch ( yy_get_next_buffer( ) )
5800 {
5802 {
5803 (yy_did_buffer_switch_on_eof) = 0;
5804
5805 if ( yywrap( ) )
5806 {
5807 /* Note: because we've taken care in
5808 * yy_get_next_buffer() to have set up
5809 * yytext, we can now set up
5810 * yy_c_buf_p so that if some total
5811 * hoser (like flex itself) wants to
5812 * call the scanner after we return the
5813 * YY_NULL, it'll still work - another
5814 * YY_NULL will get returned.
5815 */
5816 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5817
5819 goto do_action;
5820 }
5821
5822 else
5823 {
5824 if ( ! (yy_did_buffer_switch_on_eof) )
5826 }
5827 break;
5828 }
5829
5831 (yy_c_buf_p) =
5832 (yytext_ptr) + yy_amount_of_matched_text;
5833
5834 yy_current_state = yy_get_previous_state( );
5835
5836 yy_cp = (yy_c_buf_p);
5838 goto yy_match;
5839
5840 case EOB_ACT_LAST