Kea 2.0.1
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 213
695#define YY_END_OF_BUFFER 214
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[2007] =
704 { 0,
705 206, 206, 0, 0, 0, 0, 0, 0, 0, 0,
706 214, 212, 10, 11, 212, 1, 206, 203, 206, 206,
707 212, 205, 204, 212, 212, 212, 212, 212, 199, 200,
708 212, 212, 212, 201, 202, 5, 5, 5, 212, 212,
709 212, 10, 11, 0, 0, 194, 0, 0, 0, 0,
710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
712 0, 0, 0, 0, 0, 0, 0, 1, 206, 206,
713 0, 205, 206, 3, 2, 6, 0, 206, 0, 0,
714 0, 0, 0, 0, 4, 0, 0, 9, 0, 195,
715
716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
717 0, 0, 197, 0, 0, 0, 0, 0, 0, 0,
718 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
725 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
726
727 0, 0, 196, 198, 0, 0, 0, 0, 0, 0,
728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
730 0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
736 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
737
738 0, 0, 0, 0, 0, 211, 209, 0, 208, 207,
739 0, 0, 0, 0, 0, 0, 0, 174, 0, 173,
740 0, 0, 95, 0, 0, 0, 0, 0, 0, 0,
741 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,
742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
745 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
746 92, 0, 0, 0, 0, 0, 0, 0, 0, 0,
747 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,
748
749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
751 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
752 0, 0, 0, 0, 210, 207, 0, 0, 0, 0,
753 0, 0, 175, 0, 177, 0, 0, 0, 0, 0,
754 0, 0, 0, 0, 0, 0, 99, 0, 0, 0,
755 0, 0, 0, 0, 0, 81, 0, 0, 0, 0,
756 0, 0, 121, 0, 0, 0, 0, 0, 0, 0,
757 0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
759
760 0, 0, 0, 0, 0, 0, 0, 80, 0, 0,
761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
762 0, 0, 0, 0, 84, 0, 39, 0, 0, 0,
763 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
765 0, 0, 0, 0, 0, 0, 0, 0, 0, 118,
766 0, 31, 0, 0, 36, 0, 0, 0, 0, 0,
767 0, 12, 179, 178, 0, 0, 0, 131, 0, 0,
768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
770
771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
772 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
775 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,
776 0, 0, 0, 0, 0, 0, 0, 83, 0, 0,
777 0, 0, 0, 0, 0, 0, 0, 132, 0, 0,
778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
779 0, 0, 127, 0, 0, 0, 0, 0, 0, 0,
780 0, 0, 0, 0, 0, 0, 7, 0, 0, 180,
781
782 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
786 94, 0, 0, 0, 0, 0, 0, 0, 0, 0,
787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
788 0, 0, 0, 112, 0, 0, 0, 0, 0, 0,
789 0, 0, 0, 0, 0, 108, 0, 0, 0, 0,
790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
792
793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
794 87, 0, 0, 0, 0, 0, 0, 0, 0, 0,
795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
796 0, 0, 0, 0, 0, 86, 0, 0, 0, 0,
797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799 0, 0, 0, 0, 0, 125, 0, 0, 0, 0,
800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
801 0, 0, 137, 106, 0, 0, 0, 0, 0, 0,
802 111, 32, 0, 0, 0, 0, 0, 47, 0, 0,
803
804 0, 0, 0, 0, 0, 0, 0, 0, 113, 40,
805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
808 0, 75, 0, 0, 0, 0, 0, 0, 0, 0,
809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
810 0, 156, 0, 0, 0, 0, 0, 0, 0, 0,
811 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
812 0, 0, 0, 0, 0, 0, 0, 91, 0, 0,
813 0, 0, 0, 0, 0, 0, 0, 0, 0, 126,
814
815 0, 0, 0, 0, 0, 0, 43, 0, 0, 0,
816 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
818 0, 0, 37, 0, 0, 0, 0, 30, 0, 0,
819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
820 0, 0, 0, 0, 0, 0, 0, 114, 0, 0,
821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
823 0, 0, 0, 0, 0, 123, 0, 0, 0, 0,
824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
825
826 0, 0, 0, 0, 157, 0, 0, 0, 0, 0,
827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828 0, 0, 88, 0, 0, 0, 0, 0, 0, 0,
829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
831 0, 0, 0, 0, 0, 23, 0, 0, 0, 0,
832 0, 0, 0, 0, 0, 0, 0, 162, 0, 0,
833 0, 0, 160, 0, 0, 0, 0, 0, 0, 0,
834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
835 0, 184, 0, 0, 0, 0, 0, 0, 0, 0,
836
837 124, 0, 0, 0, 0, 0, 0, 0, 0, 0,
838 128, 0, 0, 0, 0, 0, 0, 0, 109, 0,
839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
840 0, 0, 0, 0, 0, 0, 122, 22, 0, 133,
841 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
842 0, 0, 0, 0, 166, 0, 0, 0, 0, 78,
843 0, 0, 0, 0, 0, 0, 136, 0, 34, 0,
844 155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
845 0, 0, 0, 0, 0, 0, 0, 63, 0, 0,
846 0, 0, 0, 0, 102, 103, 0, 0, 0, 0,
847
848 0, 0, 0, 0, 0, 0, 82, 0, 0, 0,
849 0, 0, 0, 0, 0, 0, 0, 0, 44, 0,
850 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
851 0, 0, 0, 0, 0, 0, 130, 0, 0, 0,
852 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
853 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
854 0, 188, 0, 79, 93, 0, 0, 0, 0, 0,
855 0, 0, 0, 0, 0, 0, 60, 0, 0, 0,
856 0, 0, 0, 0, 163, 0, 0, 0, 161, 0,
857 152, 151, 0, 0, 0, 0, 53, 0, 0, 21,
858
859 0, 0, 0, 0, 176, 0, 0, 0, 0, 0,
860 117, 0, 0, 0, 0, 0, 0, 0, 0, 0,
861 0, 0, 0, 0, 0, 0, 0, 0, 0, 145,
862 0, 0, 154, 0, 0, 0, 0, 0, 0, 0,
863 0, 0, 0, 134, 0, 15, 0, 0, 41, 0,
864 0, 0, 0, 0, 0, 0, 0, 0, 165, 0,
865 0, 0, 0, 0, 0, 0, 0, 61, 0, 0,
866 129, 0, 0, 0, 0, 120, 0, 0, 0, 0,
867 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
868 85, 0, 182, 0, 0, 187, 0, 105, 0, 0,
869
870 0, 192, 0, 0, 0, 0, 0, 0, 0, 0,
871 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
872 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
874 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
875 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
876 14, 0, 0, 0, 0, 0, 0, 0, 0, 52,
877 0, 0, 0, 0, 0, 190, 0, 0, 115, 27,
878 0, 0, 0, 54, 150, 0, 0, 0, 0, 0,
879 0, 0, 0, 0, 0, 0, 185, 0, 158, 0,
880
881 0, 0, 0, 0, 0, 0, 0, 25, 0, 0,
882 0, 24, 0, 0, 164, 0, 0, 0, 56, 0,
883 0, 0, 0, 0, 107, 0, 0, 0, 0, 0,
884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
886 57, 0, 0, 104, 0, 0, 0, 42, 0, 0,
887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
888 0, 0, 0, 0, 135, 0, 0, 0, 26, 0,
889 0, 0, 186, 0, 0, 0, 0, 0, 146, 0,
890 0, 0, 0, 0, 0, 0, 0, 0, 0, 51,
891
892 0, 0, 0, 0, 0, 20, 0, 0, 0, 189,
893 77, 0, 48, 0, 0, 0, 183, 181, 0, 28,
894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
895 0, 16, 0, 0, 0, 170, 0, 0, 0, 0,
896 0, 0, 0, 0, 143, 0, 0, 0, 119, 0,
897 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
898 0, 0, 0, 0, 0, 49, 0, 0, 148, 0,
899 0, 0, 0, 0, 0, 0, 0, 67, 0, 0,
900 0, 0, 0, 0, 0, 0, 0, 0, 171, 13,
901 0, 0, 0, 0, 0, 0, 0, 0, 0, 149,
902
903 0, 159, 0, 0, 0, 0, 0, 0, 0, 0,
904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
905 0, 0, 0, 0, 153, 0, 0, 0, 0, 0,
906 0, 0, 0, 142, 0, 59, 58, 19, 0, 167,
907 0, 0, 0, 0, 0, 0, 0, 0, 45, 0,
908 0, 0, 0, 101, 0, 0, 0, 0, 0, 0,
909 0, 0, 0, 0, 0, 0, 141, 0, 0, 0,
910 0, 55, 0, 64, 0, 46, 169, 0, 96, 0,
911 0, 0, 0, 76, 0, 0, 0, 0, 0, 0,
912 0, 73, 0, 0, 0, 0, 0, 0, 0, 0,
913
914 0, 0, 0, 0, 0, 0, 50, 0, 0, 0,
915 71, 0, 0, 0, 0, 0, 0, 0, 0, 0,
916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
917 0, 29, 0, 0, 72, 0, 0, 0, 147, 0,
918 0, 0, 0, 191, 193, 168, 0, 116, 97, 0,
919 0, 0, 0, 68, 0, 0, 0, 0, 0, 0,
920 0, 139, 0, 0, 144, 0, 70, 0, 62, 0,
921 0, 0, 0, 98, 0, 0, 0, 138, 0, 0,
922 172, 0, 0, 0, 0, 0, 0, 0, 0, 69,
923 0, 0, 0, 0, 0, 74, 0, 100, 66, 0,
924
925 0, 0, 0, 65, 140, 0
926 } ;
927
928static const YY_CHAR yy_ec[256] =
929 { 0,
930 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
931 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
932 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
933 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
934 5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
935 14, 17, 14, 18, 14, 14, 14, 19, 5, 20,
936 5, 21, 22, 5, 23, 24, 25, 26, 27, 28,
937 5, 29, 5, 30, 5, 31, 5, 32, 33, 34,
938 5, 35, 36, 37, 38, 39, 40, 5, 41, 5,
939 42, 43, 44, 5, 45, 5, 46, 47, 48, 49,
940
941 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
942 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
943 70, 71, 72, 5, 73, 5, 5, 5, 5, 5,
944 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
945 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
946 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
947 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
948 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
949 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
950 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
951
952 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
953 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
954 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
955 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
956 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
957 5, 5, 5, 5, 5
958 } ;
959
960static const YY_CHAR yy_meta[74] =
961 { 0,
962 1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
963 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
964 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
965 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
966 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
967 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
968 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
969 1, 1, 1
970 } ;
971
972static const flex_int16_t yy_base[2015] =
973 { 0,
974 0, 72, 21, 31, 43, 51, 54, 60, 91, 99,
975 2393, 2394, 34, 2389, 145, 0, 207, 2394, 214, 221,
976 13, 228, 2394, 2369, 118, 25, 2, 6, 2394, 2394,
977 73, 11, 17, 2394, 2394, 2394, 104, 2377, 2330, 0,
978 2367, 108, 2384, 24, 262, 2394, 2326, 67, 2332, 84,
979 75, 88, 224, 91, 89, 290, 220, 2324, 206, 285,
980 206, 204, 212, 60, 232, 2333, 247, 294, 315, 307,
981 286, 2316, 230, 325, 354, 328, 2335, 0, 366, 382,
982 397, 411, 404, 2394, 0, 2394, 419, 425, 216, 225,
983 229, 227, 319, 329, 2394, 2332, 2373, 2394, 300, 2394,
984
985 438, 2360, 390, 2329, 331, 10, 406, 311, 408, 414,
986 420, 2370, 0, 499, 409, 2312, 2309, 2313, 402, 2309,
987 2317, 406, 2313, 2302, 2303, 2308, 78, 2318, 2301, 2310,
988 2310, 95, 2301, 239, 2302, 2300, 396, 2348, 2352, 2292,
989 2345, 2285, 174, 2306, 2306, 2300, 336, 2293, 2291, 2292,
990 2284, 2289, 2283, 413, 2294, 346, 2279, 2278, 2292, 423,
991 2278, 430, 422, 2272, 472, 420, 432, 2293, 2290, 2291,
992 416, 2289, 2324, 2323, 423, 2269, 2269, 2270, 435, 2262,
993 2279, 2271, 0, 464, 475, 471, 466, 478, 510, 2270,
994 2394, 2315, 515, 2264, 475, 508, 514, 2318, 515, 2317,
995
996 511, 2316, 2394, 2394, 557, 2315, 530, 2274, 2266, 2253,
997 2264, 2268, 2269, 2266, 2263, 2262, 449, 493, 2305, 2299,
998 2263, 2244, 2241, 2249, 2244, 2258, 2254, 2242, 2254, 2254,
999 2245, 2229, 2233, 2246, 2248, 2245, 2237, 2227, 2245, 2394,
1000 2240, 505, 2225, 2224, 2233, 2275, 2222, 2232, 2235, 545,
1001 2231, 2270, 2215, 2217, 2228, 2266, 2211, 2269, 2223, 2203,
1002 2218, 552, 2208, 2214, 513, 2205, 2203, 2203, 2209, 2200,
1003 2199, 2206, 2196, 2255, 2211, 2210, 2204, 529, 2211, 2206,
1004 2198, 2188, 2203, 2202, 2197, 2201, 512, 2199, 2185, 2191,
1005 2198, 2180, 527, 2185, 2182, 2181, 341, 2176, 2190, 2189,
1006
1007 2232, 2191, 551, 2182, 527, 2394, 2394, 528, 2394, 2394,
1008 2169, 533, 550, 2217, 565, 2227, 558, 2394, 2226, 2394,
1009 2220, 608, 2394, 557, 2160, 2169, 2217, 2177, 2160, 2177,
1010 2158, 2164, 2216, 2171, 2174, 2165, 2168, 2163, 548, 2394,
1011 2165, 2209, 2203, 2161, 2158, 584, 2164, 2204, 2198, 2151,
1012 2146, 2143, 2194, 2151, 2140, 2156, 2190, 2136, 631, 2150,
1013 2135, 2148, 2146, 2134, 2144, 2143, 2138, 2145, 2140, 2136,
1014 576, 2134, 2137, 2132, 2118, 2130, 2126, 2176, 549, 2170,
1015 2394, 2134, 2168, 2118, 2117, 2116, 2109, 2111, 2123, 2114,
1016 2121, 2102, 2119, 2114, 596, 2161, 2114, 2111, 2114, 2394,
1017
1018 2113, 2102, 2102, 2114, 449, 2089, 2090, 2111, 590, 2093,
1019 2144, 2089, 2103, 2106, 2101, 2087, 2099, 2098, 2097, 2092,
1020 2134, 2094, 2093, 2092, 2091, 560, 2134, 2093, 2132, 2394,
1021 2074, 2073, 635, 2086, 2394, 2394, 2085, 2074, 2066, 581,
1022 2125, 2124, 2394, 2123, 2394, 615, 682, 614, 2122, 2064,
1023 2075, 2114, 2067, 2069, 2068, 2056, 2394, 2061, 2054, 2066,
1024 2069, 2052, 2067, 2054, 2053, 2394, 601, 2055, 2052, 613,
1025 2050, 2052, 2394, 2060, 2057, 2042, 2055, 2050, 660, 2057,
1026 2045, 2038, 2089, 2394, 2036, 2052, 2086, 2047, 2044, 2045,
1027 2029, 2046, 2080, 2031, 2030, 2025, 2024, 2075, 2019, 568,
1028
1029 2038, 2012, 2019, 2024, 2034, 2068, 2072, 2394, 2017, 2013,
1030 2011, 2020, 2019, 2013, 2020, 2004, 2004, 2014, 2002, 2016,
1031 2016, 2004, 2000, 1998, 2394, 2055, 2394, 1997, 2008, 2047,
1032 1992, 1997, 2006, 2000, 1994, 2003, 2045, 2039, 2001, 1984,
1033 1984, 1979, 1999, 1974, 1980, 1985, 585, 1987, 1991, 1974,
1034 2032, 1973, 1973, 2024, 1969, 1970, 1969, 1981, 1970, 2394,
1035 1980, 2394, 1969, 1967, 2394, 1978, 2014, 1974, 1958, 1975,
1036 2015, 2394, 2394, 2394, 619, 638, 674, 2394, 1966, 1965,
1037 623, 1972, 1952, 1951, 2004, 1949, 1959, 2001, 1946, 1945,
1038 1944, 1951, 1944, 1956, 1938, 1938, 1953, 1952, 608, 1951,
1039
1040 1950, 1950, 1932, 1937, 1978, 1945, 1937, 1982, 1926, 1942,
1041 1941, 2394, 1926, 1923, 1981, 1936, 1928, 1934, 1925, 1933,
1042 1918, 1934, 1916, 1928, 1929, 581, 1911, 1910, 1904, 1909,
1043 1924, 1921, 1922, 1901, 1911, 1917, 1960, 1915, 1907, 1898,
1044 2394, 1899, 1901, 1910, 1902, 1907, 1946, 1945, 1896, 16,
1045 1905, 1942, 1887, 1940, 1887, 1890, 1883, 2394, 1897, 1876,
1046 1880, 1894, 1886, 1931, 1883, 1890, 1928, 2394, 1873, 1887,
1047 1871, 1885, 1888, 1869, 1921, 1920, 1919, 1866, 1917, 1862,
1048 1915, 1914, 2394, 1859, 1873, 1872, 676, 1873, 1872, 1869,
1049 1869, 1906, 1866, 1849, 1854, 1856, 2394, 1862, 1852, 2394,
1050
1051 646, 641, 1846, 1844, 1851, 1861, 1853, 1840, 1834, 1892,
1052 638, 1896, 1854, 664, 1889, 1849, 1887, 1886, 1838, 1832,
1053 203, 228, 243, 300, 361, 417, 425, 640, 611, 634,
1054 639, 678, 645, 648, 656, 646, 693, 710, 667, 669,
1055 2394, 672, 667, 659, 674, 679, 676, 679, 684, 672,
1056 686, 684, 692, 728, 690, 735, 736, 686, 678, 688,
1057 735, 693, 743, 2394, 744, 697, 699, 695, 689, 692,
1058 750, 746, 709, 698, 711, 2394, 701, 712, 701, 714,
1059 704, 717, 761, 762, 705, 716, 701, 724, 703, 709,
1060 764, 728, 712, 724, 768, 769, 770, 717, 772, 736,
1061
1062 731, 738, 737, 735, 720, 732, 734, 740, 730, 728,
1063 2394, 792, 751, 752, 742, 754, 744, 757, 742, 749,
1064 755, 747, 761, 801, 777, 764, 769, 766, 748, 755,
1065 769, 814, 767, 765, 774, 2394, 770, 765, 780, 777,
1066 763, 770, 769, 767, 786, 783, 771, 778, 779, 788,
1067 792, 828, 790, 781, 779, 778, 789, 785, 841, 798,
1068 783, 784, 790, 806, 796, 2394, 806, 806, 799, 810,
1069 808, 853, 795, 797, 812, 799, 798, 860, 817, 803,
1070 809, 807, 2394, 2394, 817, 822, 827, 815, 825, 827,
1071 2394, 2394, 828, 815, 833, 820, 814, 2394, 819, 837,
1072
1073 824, 874, 825, 877, 823, 827, 845, 886, 2394, 2394,
1074 831, 835, 834, 831, 891, 844, 834, 835, 831, 844,
1075 855, 839, 857, 852, 853, 855, 848, 850, 851, 847,
1076 853, 853, 855, 870, 911, 868, 873, 850, 873, 859,
1077 858, 2394, 865, 866, 880, 870, 868, 918, 876, 866,
1078 881, 882, 869, 901, 909, 878, 873, 928, 929, 891,
1079 931, 2394, 894, 898, 939, 889, 888, 883, 884, 896,
1080 903, 892, 893, 889, 892, 893, 903, 912, 949, 896,
1081 915, 907, 902, 960, 917, 918, 909, 2394, 911, 914,
1082 922, 924, 909, 925, 919, 966, 932, 916, 917, 2394,
1083
1084 933, 936, 919, 978, 921, 940, 2394, 939, 942, 928,
1085 923, 941, 981, 939, 935, 932, 985, 986, 948, 934,
1086 952, 951, 952, 938, 953, 945, 952, 942, 960, 959,
1087 946, 963, 2394, 955, 961, 964, 1009, 2394, 958, 963,
1088 1007, 959, 971, 965, 969, 967, 965, 967, 977, 1022,
1089 966, 971, 968, 968, 1027, 971, 983, 2394, 971, 979,
1090 977, 1028, 970, 991, 978, 979, 988, 1000, 987, 985,
1091 990, 1000, 1001, 1006, 1047, 1019, 1024, 1006, 1003, 999,
1092 1013, 996, 996, 1056, 999, 2394, 1010, 1000, 1020, 1019,
1093 1010, 999, 1016, 1023, 1066, 1027, 1020, 1024, 1028, 1011,
1094
1095 1028, 1019, 1074, 1021, 2394, 1073, 1020, 1023, 1022, 1023,
1096 1023, 1044, 1041, 1046, 1047, 1033, 1041, 1050, 1030, 1045,
1097 1052, 1094, 2394, 1095, 1096, 1038, 1048, 1058, 1042, 1062,
1098 1050, 1046, 1053, 1062, 1050, 1057, 1058, 1070, 1111, 1058,
1099 1056, 1058, 1075, 1116, 1066, 1065, 1071, 1069, 1067, 1062,
1100 1123, 1074, 1125, 1121, 1127, 2394, 1084, 1077, 1068, 1087,
1101 1075, 1085, 1082, 1087, 1083, 1096, 1096, 2394, 1080, 1083,
1102 1078, 1084, 2394, 1085, 1145, 1084, 1103, 1104, 1106, 1145,
1103 1098, 1152, 1153, 1106, 1091, 1105, 1113, 1112, 1096, 1101,
1104 1119, 2394, 1141, 1132, 1164, 1104, 1126, 1121, 1121, 1125,
1105
1106 2394, 1112, 1112, 1115, 1132, 1127, 1131, 1176, 1124, 1128,
1107 2394, 1120, 1137, 1117, 1138, 1128, 1179, 1133, 2394, 1146,
1108 1146, 1184, 1131, 1187, 1145, 1150, 1136, 1196, 1139, 1150,
1109 1142, 1148, 1144, 1162, 1163, 1164, 2394, 2394, 1163, 2394,
1110 1148, 1159, 1150, 1169, 1162, 1160, 1153, 1165, 1209, 1173,
1111 1162, 1169, 1170, 1176, 2394, 1169, 1221, 1162, 1223, 2394,
1112 1224, 1166, 1172, 1179, 1223, 1185, 2394, 1186, 2394, 1173,
1113 2394, 1175, 1189, 1194, 1177, 1236, 1193, 1194, 1195, 1235,
1114 1187, 1192, 1243, 1196, 1240, 1193, 1247, 2394, 1194, 1249,
1115 1250, 1207, 1208, 1210, 2394, 2394, 1193, 1255, 1251, 1215,
1116
1117 1258, 1200, 1212, 1217, 1232, 1263, 2394, 1220, 1213, 1222,
1118 1213, 1224, 1269, 1206, 1217, 1232, 1268, 1220, 2394, 1216,
1119 1232, 1233, 1234, 1231, 1275, 1238, 1228, 1238, 1244, 1231,
1120 1227, 1287, 1240, 1284, 1291, 1248, 2394, 1250, 1243, 1252,
1121 1253, 1250, 1240, 1243, 1243, 1248, 1303, 1250, 1305, 1248,
1122 1253, 1308, 1304, 1245, 1260, 1253, 1257, 1270, 1271, 1269,
1123 1318, 2394, 1272, 2394, 2394, 1277, 1269, 1279, 1264, 1320,
1124 1267, 1267, 1328, 1272, 1282, 1331, 2394, 1279, 1279, 1281,
1125 1283, 1336, 1277, 1280, 2394, 1281, 1298, 1303, 2394, 1287,
1126 2394, 2394, 1300, 1283, 1303, 1304, 2394, 1291, 1299, 2394,
1127
1128 1351, 1300, 1353, 1333, 2394, 1355, 1312, 1357, 1308, 1355,
1129 2394, 1303, 1362, 1312, 1306, 1303, 1306, 1309, 1309, 1326,
1130 1365, 1318, 1330, 1333, 1321, 1324, 1317, 1325, 1315, 2394,
1131 1337, 1322, 2394, 1324, 1325, 1340, 1340, 1343, 1343, 1340,
1132 1384, 1346, 1338, 2394, 1339, 2394, 1349, 1341, 2394, 1347,
1133 1352, 1353, 1350, 1394, 1342, 1357, 1358, 1350, 2394, 1347,
1134 1348, 1348, 1354, 1353, 1351, 1405, 1366, 2394, 1407, 1354,
1135 2394, 1355, 1355, 1357, 1363, 2394, 1372, 1366, 1421, 1363,
1136 1369, 1361, 1373, 1377, 1388, 1381, 1387, 1431, 1384, 1393,
1137 2394, 1390, 2394, 1387, 1410, 2394, 1437, 2394, 1395, 1380,
1138
1139 1440, 2394, 1441, 1398, 1403, 1385, 1445, 1446, 1442, 1406,
1140 1403, 1399, 1392, 1447, 1405, 1406, 1396, 1401, 1457, 1411,
1141 1460, 1456, 1419, 1416, 1460, 1408, 1413, 1411, 1470, 1426,
1142 1414, 1473, 1469, 1432, 1476, 1437, 1426, 1420, 1480, 1422,
1143 1423, 1437, 1440, 1440, 1486, 1428, 1445, 1441, 1439, 1446,
1144 1430, 1488, 1489, 1436, 1491, 1454, 1447, 1446, 1440, 1458,
1145 2394, 1458, 1450, 1456, 1461, 1448, 1447, 1449, 1504, 2394,
1146 1445, 1463, 1512, 1470, 1483, 2394, 1515, 1468, 2394, 2394,
1147 1459, 1470, 1519, 2394, 2394, 1465, 1470, 1468, 1518, 1476,
1148 1481, 1469, 1485, 1475, 1473, 1487, 2394, 1475, 2394, 1478,
1149
1150 1529, 1472, 1477, 1537, 1485, 1495, 1496, 2394, 1541, 1495,
1151 1539, 2394, 1490, 1546, 2394, 1489, 1504, 1492, 2394, 1502,
1152 1503, 1552, 1510, 1514, 2394, 1550, 1516, 1492, 1510, 1511,
1153 1520, 1502, 1509, 1563, 1522, 1521, 1512, 1562, 1509, 1569,
1154 1517, 1512, 1513, 1573, 1574, 1524, 1576, 1529, 1534, 1527,
1155 2394, 1580, 1581, 2394, 1530, 1583, 1525, 2394, 1528, 1538,
1156 1582, 1530, 1545, 1532, 1547, 1533, 1540, 1540, 1595, 1552,
1157 1540, 1539, 1599, 1552, 2394, 1596, 1547, 1544, 2394, 1558,
1158 1545, 1566, 2394, 1563, 1608, 1561, 1558, 1559, 2394, 1612,
1159 1571, 1554, 1556, 1572, 1565, 1555, 1571, 1572, 1581, 2394,
1160
1161 1571, 1623, 1583, 1567, 1621, 2394, 1585, 1580, 1629, 2394,
1162 2394, 1571, 2394, 1578, 1632, 1628, 2394, 2394, 1590, 2394,
1163 1630, 1592, 1593, 1578, 1579, 1587, 1641, 1589, 1638, 1639,
1164 1594, 2394, 1606, 1593, 1600, 2394, 1597, 1602, 1600, 1652,
1165 1653, 1601, 1598, 1598, 2394, 1613, 1614, 1615, 2394, 1616,
1166 1606, 1618, 1663, 1616, 1665, 1607, 1615, 1616, 1629, 2394,
1167 1630, 1611, 1618, 1609, 1621, 2394, 1670, 1631, 2394, 1635,
1168 1620, 1620, 1635, 1628, 1627, 1638, 1625, 2394, 1641, 1629,
1169 1632, 1688, 1646, 1648, 1639, 1648, 1650, 1654, 2394, 2394,
1170 1647, 1638, 1697, 1640, 1699, 1700, 1701, 1659, 1703, 2394,
1171
1172 1645, 2394, 1700, 1662, 1663, 1650, 1658, 1669, 1666, 1712,
1173 1653, 1656, 1661, 1652, 1717, 1670, 1671, 1661, 1678, 1677,
1174 1718, 1662, 1681, 1682, 2394, 1679, 1684, 1685, 1730, 1687,
1175 1690, 1677, 1686, 2394, 1735, 2394, 2394, 2394, 1696, 2394,
1176 1737, 1679, 1739, 1740, 1683, 1742, 1690, 1739, 2394, 1701,
1177 1706, 1747, 1706, 2394, 1697, 1687, 1746, 1712, 1705, 1701,
1178 1755, 1698, 1700, 1705, 1701, 1703, 2394, 1708, 1718, 1703,
1179 1711, 2394, 1706, 2394, 1718, 2394, 2394, 1723, 2394, 1724,
1180 1714, 1770, 1719, 2394, 1721, 1729, 1774, 1715, 1717, 1714,
1181 1738, 2394, 1725, 1732, 1735, 1724, 1778, 1725, 1733, 1742,
1182
1183 1741, 1744, 1737, 1732, 1732, 1738, 2394, 1738, 1750, 1795,
1184 2394, 1741, 1753, 1798, 1747, 1749, 1747, 1802, 1755, 1742,
1185 1757, 1762, 1807, 1808, 1809, 1766, 1811, 1812, 1759, 1763,
1186 1757, 2394, 1773, 1817, 2394, 1774, 1759, 1777, 2394, 1768,
1187 1782, 1778, 1771, 2394, 2394, 2394, 1825, 2394, 2394, 1775,
1188 1783, 1828, 1789, 2394, 1830, 1772, 1832, 1787, 1786, 1787,
1189 1777, 2394, 1837, 1833, 2394, 1780, 2394, 1792, 2394, 1841,
1190 1783, 1799, 1844, 2394, 1805, 1802, 1794, 2394, 1844, 1793,
1191 2394, 1805, 1798, 1853, 1801, 1796, 1798, 1813, 1798, 2394,
1192 1859, 1812, 1861, 1862, 1810, 2394, 1812, 2394, 2394, 1806,
1193
1194 1822, 1867, 1868, 2394, 2394, 2394, 1874, 1877, 1880, 1881,
1195 1883, 1886, 1889, 1892
1196 } ;
1197
1198static const flex_int16_t yy_def[2015] =
1199 { 0,
1200 2007, 2007, 2008, 2008, 2007, 2007, 2007, 2007, 2007, 2007,
1201 2006, 2006, 2006, 2006, 2006, 2009, 2006, 2006, 2006, 2006,
1202 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
1203 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2010,
1204 2006, 2006, 2006, 2011, 15, 2006, 45, 45, 45, 45,
1205 45, 45, 45, 45, 45, 2012, 45, 45, 45, 45,
1206 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1207 45, 45, 45, 45, 45, 45, 45, 2009, 2006, 2006,
1208 2006, 2006, 2006, 2006, 2013, 2006, 2006, 2006, 2006, 2006,
1209 2006, 2006, 2006, 2006, 2006, 2006, 2010, 2006, 2011, 2006,
1210
1211 2006, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1212 45, 2014, 45, 2012, 45, 45, 45, 45, 45, 45,
1213 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1214 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1215 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1216 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1217 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1218 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1219 45, 45, 2013, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
1220 2006, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1221
1222 45, 2014, 2006, 2006, 114, 45, 45, 45, 45, 45,
1223 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1224 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1225 45, 45, 45, 45, 45, 45, 45, 45, 45, 2006,
1226 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1227 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1228 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1229 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1230 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1231 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1232
1233 45, 45, 45, 45, 2006, 2006, 2006, 2006, 2006, 2006,
1234 2006, 45, 45, 45, 45, 45, 45, 2006, 45, 2006,
1235 45, 114, 2006, 45, 45, 45, 45, 45, 45, 45,
1236 45, 45, 45, 45, 45, 45, 45, 45, 45, 2006,
1237 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1238 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1239 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1240 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1241 2006, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1242 45, 45, 45, 45, 45, 45, 45, 45, 45, 2006,
1243
1244 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1245 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1246 45, 45, 45, 45, 45, 45, 45, 45, 45, 2006,
1247 45, 45, 45, 45, 2006, 2006, 2006, 45, 45, 45,
1248 45, 45, 2006, 45, 2006, 45, 114, 45, 45, 45,
1249 45, 45, 45, 45, 45, 45, 2006, 45, 45, 45,
1250 45, 45, 45, 45, 45, 2006, 45, 45, 45, 45,
1251 45, 45, 2006, 45, 45, 45, 45, 45, 45, 45,
1252 45, 45, 45, 2006, 45, 45, 45, 45, 45, 45,
1253 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1254
1255 45, 45, 45, 45, 45, 45, 45, 2006, 45, 45,
1256 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1257 45, 45, 45, 45, 2006, 45, 2006, 45, 45, 45,
1258 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1259 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1260 45, 45, 45, 45, 45, 45, 45, 45, 45, 2006,
1261 45, 2006, 45, 45, 2006, 45, 45, 2006, 45, 45,
1262 45, 2006, 2006, 2006, 45, 45, 45, 2006, 45, 45,
1263 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1264 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1265
1266 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1267 45, 2006, 45, 45, 45, 45, 45, 45, 45, 45,
1268 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1269 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1270 2006, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1271 45, 45, 45, 45, 45, 45, 45, 2006, 45, 45,
1272 45, 45, 45, 45, 45, 45, 45, 2006, 45, 45,
1273 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1274 45, 45, 2006, 45, 45, 45, 45, 45, 45, 45,
1275 45, 45, 45, 45, 45, 45, 2006, 45, 45, 2006,
1276
1277 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1278 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1279 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1280 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1281 2006, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1282 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1283 45, 45, 45, 2006, 45, 45, 45, 45, 45, 45,
1284 45, 45, 45, 45, 45, 2006, 45, 45, 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
1288 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1289 2006, 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, 2006, 45, 45, 45, 45,
1292 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1293 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1294 45, 45, 45, 45, 45, 2006, 45, 45, 45, 45,
1295 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1296 45, 45, 2006, 2006, 45, 45, 45, 45, 45, 45,
1297 2006, 2006, 45, 45, 45, 45, 45, 2006, 45, 45,
1298
1299 45, 45, 45, 45, 45, 45, 45, 45, 2006, 2006,
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, 2006, 45, 45, 45, 45, 45, 45, 45, 45,
1304 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1305 45, 2006, 45, 45, 45, 45, 45, 45, 45, 45,
1306 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1307 45, 45, 45, 45, 45, 45, 45, 2006, 45, 45,
1308 45, 45, 45, 45, 45, 45, 45, 45, 45, 2006,
1309
1310 45, 45, 45, 45, 45, 45, 2006, 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, 2006, 45, 45, 45, 45, 2006, 45, 45,
1314 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1315 45, 45, 45, 45, 45, 45, 45, 2006, 45, 45,
1316 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1317 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1318 45, 45, 45, 45, 45, 2006, 45, 45, 45, 45,
1319 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1320
1321 45, 45, 45, 45, 2006, 45, 45, 45, 45, 45,
1322 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1323 45, 45, 2006, 45, 45, 45, 45, 45, 45, 45,
1324 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1325 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1326 45, 45, 45, 45, 45, 2006, 45, 45, 45, 45,
1327 45, 45, 45, 45, 45, 45, 45, 2006, 45, 45,
1328 45, 45, 2006, 45, 45, 45, 45, 45, 45, 45,
1329 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1330 45, 2006, 45, 45, 45, 45, 45, 45, 45, 45,
1331
1332 2006, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1333 2006, 45, 45, 45, 45, 45, 45, 45, 2006, 45,
1334 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1335 45, 45, 45, 45, 45, 45, 2006, 2006, 45, 2006,
1336 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1337 45, 45, 45, 45, 2006, 45, 45, 45, 45, 2006,
1338 45, 45, 45, 45, 45, 45, 2006, 45, 2006, 45,
1339 2006, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1340 45, 45, 45, 45, 45, 45, 45, 2006, 45, 45,
1341 45, 45, 45, 45, 2006, 2006, 45, 45, 45, 45,
1342
1343 45, 45, 45, 45, 45, 45, 2006, 45, 45, 45,
1344 45, 45, 45, 45, 45, 45, 45, 45, 2006, 45,
1345 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1346 45, 45, 45, 45, 45, 45, 2006, 45, 45, 45,
1347 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1348 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1349 45, 2006, 45, 2006, 2006, 45, 45, 45, 45, 45,
1350 45, 45, 45, 45, 45, 45, 2006, 45, 45, 45,
1351 45, 45, 45, 45, 2006, 45, 45, 45, 2006, 45,
1352 2006, 2006, 45, 45, 45, 45, 2006, 45, 45, 2006,
1353
1354 45, 45, 45, 45, 2006, 45, 45, 45, 45, 45,
1355 2006, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1356 45, 45, 45, 45, 45, 45, 45, 45, 45, 2006,
1357 45, 45, 2006, 45, 45, 45, 45, 45, 45, 45,
1358 45, 45, 45, 2006, 45, 2006, 45, 45, 2006, 45,
1359 45, 45, 45, 45, 45, 45, 45, 45, 2006, 45,
1360 45, 45, 45, 45, 45, 45, 45, 2006, 45, 45,
1361 2006, 45, 45, 45, 45, 2006, 45, 45, 45, 45,
1362 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1363 2006, 45, 2006, 45, 45, 2006, 45, 2006, 45, 45,
1364
1365 45, 2006, 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 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1369 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1370 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1371 2006, 45, 45, 45, 45, 45, 45, 45, 45, 2006,
1372 45, 45, 45, 45, 45, 2006, 45, 45, 2006, 2006,
1373 45, 45, 45, 2006, 2006, 45, 45, 45, 45, 45,
1374 45, 45, 45, 45, 45, 45, 2006, 45, 2006, 45,
1375
1376 45, 45, 45, 45, 45, 45, 45, 2006, 45, 45,
1377 45, 2006, 45, 45, 2006, 45, 45, 45, 2006, 45,
1378 45, 45, 45, 45, 2006, 45, 45, 45, 45, 45,
1379 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1380 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1381 2006, 45, 45, 2006, 45, 45, 45, 2006, 45, 45,
1382 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1383 45, 45, 45, 45, 2006, 45, 45, 45, 2006, 45,
1384 45, 45, 2006, 45, 45, 45, 45, 45, 2006, 45,
1385 45, 45, 45, 45, 45, 45, 45, 45, 45, 2006,
1386
1387 45, 45, 45, 45, 45, 2006, 45, 45, 45, 2006,
1388 2006, 45, 2006, 45, 45, 45, 2006, 2006, 45, 2006,
1389 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1390 45, 2006, 45, 45, 45, 2006, 45, 45, 45, 45,
1391 45, 45, 45, 45, 2006, 45, 45, 45, 2006, 45,
1392 45, 45, 45, 45, 45, 45, 45, 45, 45, 2006,
1393 45, 45, 45, 45, 45, 2006, 45, 45, 2006, 45,
1394 45, 45, 45, 45, 45, 45, 45, 2006, 45, 45,
1395 45, 45, 45, 45, 45, 45, 45, 45, 2006, 2006,
1396 45, 45, 45, 45, 45, 45, 45, 45, 45, 2006,
1397
1398 45, 2006, 45, 45, 45, 45, 45, 45, 45, 45,
1399 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1400 45, 45, 45, 45, 2006, 45, 45, 45, 45, 45,
1401 45, 45, 45, 2006, 45, 2006, 2006, 2006, 45, 2006,
1402 45, 45, 45, 45, 45, 45, 45, 45, 2006, 45,
1403 45, 45, 45, 2006, 45, 45, 45, 45, 45, 45,
1404 45, 45, 45, 45, 45, 45, 2006, 45, 45, 45,
1405 45, 2006, 45, 2006, 45, 2006, 2006, 45, 2006, 45,
1406 45, 45, 45, 2006, 45, 45, 45, 45, 45, 45,
1407 45, 2006, 45, 45, 45, 45, 45, 45, 45, 45,
1408
1409 45, 45, 45, 45, 45, 45, 2006, 45, 45, 45,
1410 2006, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1411 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1412 45, 2006, 45, 45, 2006, 45, 45, 45, 2006, 45,
1413 45, 45, 45, 2006, 2006, 2006, 45, 2006, 2006, 45,
1414 45, 45, 45, 2006, 45, 45, 45, 45, 45, 45,
1415 45, 2006, 45, 45, 2006, 45, 2006, 45, 2006, 45,
1416 45, 45, 45, 2006, 45, 45, 45, 2006, 45, 45,
1417 2006, 45, 45, 45, 45, 45, 45, 45, 45, 2006,
1418 45, 45, 45, 45, 45, 2006, 45, 2006, 2006, 45,
1419
1420 45, 45, 45, 2006, 2006, 0, 2006, 2006, 2006, 2006,
1421 2006, 2006, 2006, 2006
1422 } ;
1423
1424static const flex_int16_t yy_nxt[2468] =
1425 { 0,
1426 2006, 13, 14, 13, 2006, 15, 16, 2006, 17, 18,
1427 19, 20, 21, 22, 22, 22, 22, 22, 23, 24,
1428 84, 776, 37, 14, 37, 85, 25, 26, 38, 100,
1429 2006, 27, 37, 14, 37, 42, 28, 42, 38, 90,
1430 91, 29, 196, 30, 13, 14, 13, 89, 90, 25,
1431 31, 91, 13, 14, 13, 13, 14, 13, 32, 40,
1432 777, 13, 14, 13, 33, 40, 101, 90, 91, 196,
1433 89, 34, 35, 13, 14, 13, 93, 15, 16, 94,
1434 17, 18, 19, 20, 21, 22, 22, 22, 22, 22,
1435 23, 24, 13, 14, 13, 89, 39, 103, 25, 26,
1436
1437 13, 14, 13, 27, 39, 42, 105, 42, 28, 42,
1438 106, 42, 41, 29, 107, 30, 110, 111, 92, 137,
1439 41, 25, 31, 103, 223, 224, 87, 138, 87, 105,
1440 32, 88, 88, 88, 88, 88, 33, 107, 106, 110,
1441 229, 111, 230, 34, 35, 44, 44, 44, 45, 45,
1442 46, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1443 45, 47, 45, 45, 45, 45, 45, 48, 45, 45,
1444 49, 45, 50, 45, 51, 45, 52, 45, 45, 45,
1445 45, 53, 54, 45, 55, 45, 45, 56, 45, 45,
1446 57, 58, 59, 60, 61, 62, 63, 64, 65, 51,
1447
1448 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1449 76, 77, 55, 45, 45, 45, 45, 45, 79, 244,
1450 80, 80, 80, 80, 80, 79, 105, 82, 82, 82,
1451 82, 82, 245, 81, 83, 83, 83, 83, 83, 79,
1452 81, 82, 82, 82, 82, 82, 184, 81, 108, 105,
1453 103, 119, 847, 131, 81, 185, 81, 184, 109, 120,
1454 134, 135, 121, 81, 132, 122, 186, 123, 136, 124,
1455 81, 108, 184, 848, 133, 164, 115, 81, 45, 165,
1456 139, 185, 116, 187, 45, 117, 109, 45, 232, 45,
1457 140, 45, 141, 45, 186, 113, 143, 144, 45, 45,
1458
1459 145, 45, 45, 849, 233, 100, 146, 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 125, 160, 45, 126, 127, 161, 45, 128, 129, 147,
1463 45, 107, 101, 148, 198, 162, 318, 149, 45, 185,
1464 130, 426, 45, 110, 45, 114, 259, 155, 850, 150,
1465 152, 195, 153, 151, 154, 156, 186, 157, 173, 174,
1466 166, 198, 158, 159, 167, 188, 179, 168, 108, 83,
1467 83, 83, 83, 83, 169, 170, 180, 195, 109, 171,
1468 172, 181, 81, 79, 189, 80, 80, 80, 80, 80,
1469
1470 249, 175, 260, 176, 250, 87, 177, 87, 81, 851,
1471 88, 88, 88, 88, 88, 81, 109, 83, 83, 83,
1472 83, 83, 79, 178, 82, 82, 82, 82, 82, 193,
1473 81, 81, 88, 88, 88, 88, 88, 81, 88, 88,
1474 88, 88, 88, 99, 197, 199, 201, 200, 193, 211,
1475 99, 197, 236, 81, 216, 237, 198, 193, 212, 238,
1476 81, 292, 213, 217, 218, 206, 852, 272, 200, 201,
1477 264, 273, 197, 199, 200, 293, 207, 284, 285, 197,
1478 99, 257, 275, 297, 99, 265, 266, 267, 99, 269,
1479 286, 853, 270, 271, 287, 301, 99, 307, 288, 305,
1480
1481 99, 305, 99, 99, 204, 306, 334, 535, 306, 335,
1482 315, 536, 205, 205, 205, 205, 205, 276, 277, 278,
1483 307, 205, 205, 205, 205, 205, 205, 305, 279, 308,
1484 280, 306, 281, 282, 309, 283, 307, 313, 315, 316,
1485 317, 319, 321, 336, 205, 205, 205, 205, 205, 205,
1486 362, 337, 313, 435, 435, 371, 338, 339, 390, 310,
1487 313, 432, 385, 317, 319, 414, 316, 363, 391, 321,
1488 322, 322, 322, 322, 322, 324, 435, 436, 415, 322,
1489 322, 322, 322, 322, 322, 404, 438, 421, 405, 422,
1490 440, 442, 444, 463, 470, 678, 439, 440, 386, 509,
1491
1492 471, 525, 322, 322, 322, 322, 322, 322, 372, 510,
1493 464, 373, 387, 433, 442, 558, 571, 633, 559, 440,
1494 444, 447, 447, 447, 447, 447, 448, 634, 752, 753,
1495 447, 447, 447, 447, 447, 447, 484, 499, 500, 540,
1496 565, 485, 501, 541, 571, 566, 575, 679, 576, 571,
1497 854, 701, 594, 447, 447, 447, 447, 447, 447, 526,
1498 595, 602, 596, 597, 598, 612, 599, 825, 725, 855,
1499 613, 726, 702, 575, 603, 576, 604, 577, 701, 700,
1500 706, 811, 824, 856, 703, 834, 857, 707, 858, 486,
1501 825, 835, 812, 859, 487, 45, 45, 45, 45, 45,
1502
1503 702, 860, 864, 865, 45, 45, 45, 45, 45, 45,
1504 824, 838, 839, 861, 840, 866, 867, 862, 868, 869,
1505 870, 863, 871, 872, 873, 874, 875, 45, 45, 45,
1506 45, 45, 45, 876, 877, 878, 879, 880, 881, 882,
1507 883, 884, 885, 886, 887, 889, 890, 888, 891, 892,
1508 893, 894, 895, 896, 897, 898, 899, 900, 901, 902,
1509 903, 904, 905, 906, 907, 908, 909, 910, 911, 912,
1510 913, 914, 915, 916, 917, 918, 919, 920, 921, 922,
1511 923, 924, 925, 926, 927, 929, 930, 931, 932, 935,
1512 936, 928, 937, 939, 940, 933, 941, 942, 938, 934,
1513
1514 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,
1515 953, 954, 955, 956, 957, 958, 959, 960, 961, 962,
1516 963, 964, 965, 966, 967, 968, 969, 970, 971, 972,
1517 973, 974, 975, 976, 977, 978, 979, 980, 981, 982,
1518 955, 983, 984, 985, 986, 987, 988, 989, 990, 991,
1519 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1002,
1520 1003, 1004, 1005, 1001, 1006, 1007, 1008, 1009, 1010, 1011,
1521 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
1522 1022, 1023, 1024, 1026, 1027, 1028, 1025, 1029, 1030, 1031,
1523 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
1524
1525 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051,
1526 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061,
1527 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071,
1528 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081,
1529 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091,
1530 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1077, 1100,
1531 1101, 1076, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109,
1532 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119,
1533 1120, 1121, 1122, 1123, 1125, 1126, 1127, 1128, 1129, 1130,
1534 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140,
1535
1536 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1150, 1151,
1537 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1149, 1160,
1538 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170,
1539 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180,
1540 1181, 1124, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189,
1541 1190, 1191, 1192, 1193, 1195, 1194, 1196, 1197, 1198, 1199,
1542 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
1543 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219,
1544 1220, 1193, 1194, 1221, 1222, 1223, 1224, 1225, 1226, 1227,
1545 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237,
1546
1547 1238, 1240, 1242, 1243, 1244, 1239, 1245, 1246, 1247, 1248,
1548 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258,
1549 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268,
1550 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278,
1551 1279, 1280, 1281, 1282, 1283, 1241, 1284, 1285, 1286, 1287,
1552 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297,
1553 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307,
1554 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317,
1555 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327,
1556 1305, 1328, 1329, 1330, 1331, 1332, 1306, 1333, 1334, 1335,
1557
1558 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345,
1559 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355,
1560 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365,
1561 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375,
1562 1376, 1377, 1378, 1379, 1380, 1381, 1383, 1384, 1385, 1386,
1563 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396,
1564 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406,
1565 1407, 1408, 1409, 1410, 1411, 1413, 1414, 1415, 1416, 1417,
1566 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427,
1567 1428, 1429, 1430, 1431, 1432, 1404, 1433, 1434, 1382, 1435,
1568
1569 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445,
1570 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1454, 1412, 1455,
1571 1456, 1457, 1458, 1459, 1453, 1460, 1461, 1462, 1463, 1464,
1572 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474,
1573 1475, 1476, 1478, 1479, 1480, 1481, 1477, 1482, 1483, 1484,
1574 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1495,
1575 1496, 1497, 1498, 1494, 1499, 1500, 1501, 1502, 1503, 1504,
1576 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514,
1577 1515, 1516, 1495, 1517, 1518, 1519, 1520, 1521, 1522, 1523,
1578 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533,
1579
1580 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543,
1581 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553,
1582 1554, 1555, 1556, 1557, 1560, 1558, 1561, 1562, 1563, 1564,
1583 1565, 1559, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573,
1584 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583,
1585 1584, 1585, 1586, 1587, 1589, 1590, 1591, 1592, 1593, 1594,
1586 1595, 1596, 1597, 1598, 1588, 1599, 1600, 1601, 1575, 1602,
1587 1603, 1604, 1605, 1606, 1607, 1608, 1610, 1611, 1612, 1613,
1588 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623,
1589 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633,
1590
1591 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643,
1592 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653,
1593 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663,
1594 1664, 1665, 1666, 1609, 1667, 1668, 1669, 1670, 1671, 1672,
1595 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1653, 1680, 1681,
1596 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691,
1597 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701,
1598 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711,
1599 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721,
1600 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731,
1601
1602 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741,
1603 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751,
1604 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761,
1605 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771,
1606 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781,
1607 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791,
1608 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801,
1609 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811,
1610 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821,
1611 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831,
1612
1613 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841,
1614 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851,
1615 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861,
1616 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871,
1617 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881,
1618 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891,
1619 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901,
1620 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911,
1621 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921,
1622 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931,
1623
1624 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941,
1625 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951,
1626 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961,
1627 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971,
1628 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981,
1629 1982, 1984, 1983, 1985, 1986, 1987, 1988, 1989, 1990, 1991,
1630 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
1631 2002, 2003, 2004, 2005, 12, 12, 12, 36, 36, 36,
1632 78, 97, 78, 99, 99, 99, 112, 112, 112, 183,
1633 846, 183, 202, 202, 202, 845, 844, 843, 842, 841,
1634
1635 837, 836, 833, 832, 831, 830, 829, 828, 827, 826,
1636 823, 822, 821, 820, 819, 818, 817, 816, 815, 814,
1637 813, 810, 809, 808, 807, 806, 805, 804, 803, 802,
1638 801, 800, 799, 798, 797, 796, 795, 794, 793, 792,
1639 791, 790, 789, 788, 787, 786, 785, 784, 783, 782,
1640 781, 780, 779, 778, 775, 774, 773, 772, 771, 770,
1641 769, 768, 767, 766, 765, 764, 763, 762, 761, 760,
1642 759, 758, 757, 756, 755, 754, 751, 750, 749, 748,
1643 747, 746, 745, 744, 743, 742, 741, 740, 739, 738,
1644 737, 736, 735, 734, 733, 732, 731, 730, 729, 728,
1645
1646 727, 724, 723, 722, 721, 720, 719, 718, 717, 716,
1647 715, 714, 713, 712, 711, 710, 709, 708, 705, 704,
1648 700, 699, 698, 697, 696, 695, 694, 693, 692, 691,
1649 690, 689, 688, 687, 686, 685, 684, 683, 682, 681,
1650 680, 677, 676, 675, 674, 673, 672, 671, 670, 669,
1651 668, 667, 666, 665, 664, 663, 662, 661, 660, 659,
1652 658, 657, 656, 655, 654, 653, 652, 651, 650, 649,
1653 648, 647, 646, 645, 644, 643, 642, 641, 640, 639,
1654 638, 637, 636, 635, 632, 631, 630, 629, 628, 627,
1655 626, 625, 624, 623, 622, 621, 620, 619, 618, 617,
1656
1657 616, 615, 614, 611, 610, 609, 608, 607, 606, 605,
1658 601, 600, 593, 592, 591, 590, 589, 588, 587, 586,
1659 585, 584, 583, 582, 581, 580, 579, 578, 574, 573,
1660 572, 570, 569, 568, 567, 564, 563, 562, 561, 560,
1661 557, 556, 555, 554, 553, 552, 551, 550, 549, 548,
1662 547, 546, 545, 544, 543, 542, 539, 538, 537, 534,
1663 533, 532, 531, 530, 529, 528, 527, 524, 523, 522,
1664 521, 520, 519, 518, 517, 516, 515, 514, 513, 512,
1665 511, 508, 507, 506, 505, 504, 503, 502, 498, 497,
1666 496, 495, 494, 493, 492, 491, 490, 489, 488, 483,
1667
1668 482, 481, 480, 479, 478, 477, 476, 475, 474, 473,
1669 472, 469, 468, 467, 466, 465, 462, 461, 460, 459,
1670 458, 457, 456, 455, 454, 453, 452, 451, 450, 449,
1671 446, 445, 443, 441, 437, 434, 431, 430, 429, 428,
1672 427, 425, 424, 423, 420, 419, 418, 417, 416, 413,
1673 412, 411, 410, 409, 408, 407, 406, 403, 402, 401,
1674 400, 399, 398, 397, 396, 395, 394, 393, 392, 389,
1675 388, 384, 383, 382, 381, 380, 379, 378, 377, 376,
1676 375, 374, 370, 369, 368, 367, 366, 365, 364, 361,
1677 360, 359, 358, 357, 356, 355, 354, 353, 352, 351,
1678
1679 350, 349, 348, 347, 346, 345, 344, 343, 342, 341,
1680 340, 333, 332, 331, 330, 329, 328, 327, 326, 325,
1681 323, 203, 320, 318, 314, 312, 311, 304, 303, 302,
1682 300, 299, 298, 296, 295, 294, 291, 290, 289, 274,
1683 268, 263, 262, 261, 258, 256, 255, 254, 253, 252,
1684 251, 248, 247, 246, 243, 242, 241, 240, 239, 235,
1685 234, 231, 228, 227, 226, 225, 222, 221, 220, 219,
1686 215, 214, 210, 209, 208, 203, 194, 192, 191, 190,
1687 182, 163, 142, 118, 104, 102, 43, 98, 96, 95,
1688 86, 43, 2006, 11, 2006, 2006, 2006, 2006, 2006, 2006,
1689
1690 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
1691 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
1692 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
1693 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
1694 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
1695 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
1696 2006, 2006, 2006, 2006, 2006, 2006, 2006
1697 } ;
1698
1699static const flex_int16_t yy_chk[2468] =
1700 { 0,
1701 0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
1702 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1703 21, 650, 3, 3, 3, 21, 1, 1, 3, 44,
1704 0, 1, 4, 4, 4, 13, 1, 13, 4, 27,
1705 28, 1, 106, 1, 5, 5, 5, 26, 32, 1,
1706 1, 33, 6, 6, 6, 7, 7, 7, 1, 7,
1707 650, 8, 8, 8, 1, 8, 44, 27, 28, 106,
1708 26, 1, 1, 2, 2, 2, 32, 2, 2, 33,
1709 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1710 2, 2, 9, 9, 9, 31, 5, 48, 2, 2,
1711
1712 10, 10, 10, 2, 6, 37, 50, 37, 2, 42,
1713 51, 42, 9, 2, 52, 2, 54, 55, 31, 64,
1714 10, 2, 2, 48, 127, 127, 25, 64, 25, 50,
1715 2, 25, 25, 25, 25, 25, 2, 52, 51, 54,
1716 132, 55, 132, 2, 2, 15, 15, 15, 15, 15,
1717 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1718 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1719 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1720 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1721 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1722
1723 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1724 15, 15, 15, 15, 15, 15, 15, 15, 17, 143,
1725 17, 17, 17, 17, 17, 19, 62, 19, 19, 19,
1726 19, 19, 143, 17, 20, 20, 20, 20, 20, 22,
1727 19, 22, 22, 22, 22, 22, 89, 20, 53, 62,
1728 57, 59, 721, 61, 22, 90, 17, 92, 53, 59,
1729 62, 63, 59, 19, 61, 59, 91, 59, 63, 59,
1730 20, 53, 89, 722, 61, 73, 57, 22, 45, 73,
1731 65, 90, 57, 92, 45, 57, 53, 45, 134, 45,
1732 65, 45, 65, 45, 91, 56, 67, 67, 45, 45,
1733
1734 67, 45, 56, 723, 134, 99, 67, 45, 45, 45,
1735 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1736 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1737 60, 71, 56, 60, 60, 71, 56, 60, 60, 68,
1738 56, 69, 99, 68, 108, 71, 297, 68, 56, 93,
1739 60, 297, 56, 76, 56, 56, 156, 70, 724, 68,
1740 69, 105, 69, 68, 69, 70, 94, 70, 75, 75,
1741 74, 108, 70, 70, 74, 93, 76, 74, 75, 79,
1742 79, 79, 79, 79, 74, 74, 76, 105, 75, 74,
1743 74, 76, 79, 80, 94, 80, 80, 80, 80, 80,
1744
1745 147, 75, 156, 75, 147, 81, 75, 81, 80, 725,
1746 81, 81, 81, 81, 81, 79, 75, 83, 83, 83,
1747 83, 83, 82, 75, 82, 82, 82, 82, 82, 103,
1748 83, 80, 87, 87, 87, 87, 87, 82, 88, 88,
1749 88, 88, 88, 101, 107, 109, 111, 110, 115, 119,
1750 101, 154, 137, 83, 122, 137, 175, 103, 119, 137,
1751 82, 171, 119, 122, 122, 115, 726, 163, 179, 111,
1752 160, 163, 107, 109, 110, 171, 115, 166, 166, 154,
1753 101, 154, 165, 175, 101, 160, 160, 160, 101, 162,
1754 167, 727, 162, 162, 167, 179, 101, 186, 167, 184,
1755
1756 101, 187, 101, 101, 114, 185, 217, 405, 188, 217,
1757 195, 405, 114, 114, 114, 114, 114, 165, 165, 165,
1758 186, 114, 114, 114, 114, 114, 114, 184, 165, 187,
1759 165, 185, 165, 165, 188, 165, 189, 193, 195, 196,
1760 197, 199, 201, 218, 114, 114, 114, 114, 114, 114,
1761 242, 218, 207, 305, 308, 250, 218, 218, 265, 189,
1762 193, 303, 262, 197, 199, 287, 196, 242, 265, 201,
1763 205, 205, 205, 205, 205, 207, 305, 308, 287, 205,
1764 205, 205, 205, 205, 205, 278, 312, 293, 278, 293,
1765 313, 315, 317, 339, 346, 547, 312, 324, 262, 379,
1766
1767 346, 395, 205, 205, 205, 205, 205, 205, 250, 379,
1768 339, 250, 262, 303, 315, 426, 440, 500, 426, 313,
1769 317, 322, 322, 322, 322, 322, 324, 500, 626, 626,
1770 322, 322, 322, 322, 322, 322, 359, 371, 371, 409,
1771 433, 359, 371, 409, 440, 433, 446, 547, 446, 448,
1772 728, 575, 467, 322, 322, 322, 322, 322, 322, 395,
1773 467, 470, 467, 467, 467, 479, 467, 702, 599, 729,
1774 479, 599, 576, 446, 470, 446, 470, 448, 575, 577,
1775 581, 687, 701, 730, 577, 711, 731, 581, 732, 359,
1776 702, 711, 687, 733, 359, 447, 447, 447, 447, 447,
1777
1778 576, 734, 736, 737, 447, 447, 447, 447, 447, 447,
1779 701, 714, 714, 735, 714, 738, 739, 735, 740, 742,
1780 743, 735, 744, 745, 746, 747, 748, 447, 447, 447,
1781 447, 447, 447, 749, 750, 751, 752, 753, 754, 755,
1782 756, 757, 758, 759, 760, 761, 762, 760, 763, 765,
1783 766, 767, 768, 769, 770, 771, 772, 773, 774, 775,
1784 777, 778, 779, 780, 781, 782, 783, 784, 785, 786,
1785 787, 788, 789, 790, 791, 792, 793, 794, 795, 796,
1786 797, 798, 799, 800, 801, 802, 803, 804, 804, 805,
1787 806, 801, 807, 808, 809, 804, 810, 812, 807, 804,
1788
1789 813, 814, 815, 816, 817, 818, 819, 820, 821, 822,
1790 823, 824, 825, 826, 827, 828, 829, 830, 831, 832,
1791 833, 834, 835, 837, 838, 839, 840, 841, 842, 843,
1792 844, 845, 846, 847, 848, 849, 850, 851, 852, 853,
1793 825, 854, 855, 856, 857, 858, 859, 860, 861, 862,
1794 863, 864, 865, 867, 868, 869, 870, 871, 872, 873,
1795 874, 875, 876, 872, 877, 878, 879, 880, 881, 882,
1796 885, 886, 887, 888, 889, 890, 893, 894, 895, 896,
1797 897, 899, 900, 901, 902, 903, 900, 904, 905, 906,
1798 907, 908, 911, 912, 913, 914, 915, 916, 917, 918,
1799
1800 919, 920, 921, 922, 923, 924, 925, 926, 927, 928,
1801 929, 930, 931, 932, 933, 934, 935, 936, 937, 938,
1802 939, 940, 941, 943, 944, 945, 946, 947, 948, 949,
1803 950, 951, 952, 953, 954, 955, 956, 957, 958, 959,
1804 960, 961, 963, 964, 965, 966, 967, 968, 969, 970,
1805 971, 972, 973, 974, 975, 976, 977, 978, 955, 979,
1806 980, 954, 981, 982, 983, 984, 985, 986, 987, 989,
1807 990, 991, 992, 993, 994, 995, 996, 997, 998, 999,
1808 1001, 1002, 1003, 1004, 1005, 1006, 1008, 1009, 1010, 1011,
1809 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021,
1810
1811 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031,
1812 1032, 1034, 1035, 1036, 1037, 1039, 1040, 1041, 1029, 1042,
1813 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052,
1814 1053, 1054, 1055, 1056, 1057, 1059, 1060, 1061, 1062, 1063,
1815 1064, 1004, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072,
1816 1073, 1074, 1075, 1076, 1078, 1077, 1079, 1080, 1081, 1082,
1817 1083, 1084, 1085, 1087, 1088, 1089, 1090, 1091, 1092, 1093,
1818 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103,
1819 1104, 1076, 1077, 1106, 1107, 1108, 1109, 1110, 1111, 1112,
1820 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122,
1821
1822 1124, 1125, 1126, 1127, 1128, 1124, 1129, 1130, 1131, 1132,
1823 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142,
1824 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152,
1825 1153, 1154, 1155, 1157, 1158, 1159, 1160, 1161, 1162, 1163,
1826 1164, 1165, 1166, 1167, 1169, 1125, 1170, 1171, 1172, 1174,
1827 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184,
1828 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1193, 1194, 1195,
1829 1196, 1197, 1198, 1199, 1200, 1202, 1203, 1204, 1205, 1206,
1830 1207, 1208, 1209, 1210, 1212, 1213, 1214, 1215, 1216, 1217,
1831 1193, 1218, 1220, 1221, 1222, 1223, 1194, 1224, 1225, 1226,
1832
1833 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236,
1834 1239, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249,
1835 1250, 1251, 1252, 1253, 1254, 1256, 1257, 1258, 1259, 1261,
1836 1262, 1263, 1264, 1265, 1266, 1268, 1270, 1272, 1273, 1274,
1837 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284,
1838 1285, 1286, 1287, 1289, 1290, 1291, 1292, 1293, 1294, 1297,
1839 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1308,
1840 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318,
1841 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329,
1842 1330, 1331, 1332, 1333, 1334, 1305, 1335, 1336, 1280, 1338,
1843
1844 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348,
1845 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1313, 1357,
1846 1358, 1359, 1360, 1361, 1355, 1363, 1366, 1367, 1368, 1369,
1847 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1378, 1379, 1380,
1848 1381, 1382, 1383, 1384, 1386, 1387, 1382, 1387, 1388, 1390,
1849 1393, 1394, 1395, 1396, 1398, 1399, 1401, 1402, 1403, 1404,
1850 1406, 1407, 1408, 1403, 1409, 1410, 1412, 1413, 1414, 1415,
1851 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425,
1852 1426, 1427, 1404, 1428, 1429, 1431, 1432, 1434, 1435, 1436,
1853 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1445, 1447, 1448,
1854
1855 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1460,
1856 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1469, 1470, 1472,
1857 1473, 1474, 1475, 1477, 1478, 1477, 1479, 1480, 1481, 1482,
1858 1483, 1477, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1492,
1859 1494, 1495, 1497, 1499, 1500, 1501, 1503, 1504, 1505, 1506,
1860 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516,
1861 1517, 1518, 1519, 1520, 1510, 1521, 1522, 1523, 1495, 1524,
1862 1525, 1526, 1527, 1528, 1528, 1529, 1530, 1531, 1532, 1533,
1863 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543,
1864 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553,
1865
1866 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1562, 1563, 1564,
1867 1565, 1566, 1567, 1568, 1569, 1571, 1572, 1573, 1574, 1575,
1868 1577, 1578, 1581, 1582, 1583, 1586, 1587, 1588, 1589, 1590,
1869 1591, 1592, 1593, 1529, 1594, 1595, 1596, 1598, 1600, 1601,
1870 1602, 1603, 1604, 1605, 1606, 1607, 1609, 1575, 1610, 1611,
1871 1613, 1614, 1616, 1617, 1618, 1620, 1621, 1622, 1623, 1624,
1872 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635,
1873 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645,
1874 1646, 1647, 1648, 1649, 1650, 1652, 1653, 1655, 1656, 1657,
1875 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668,
1876
1877 1669, 1670, 1671, 1672, 1673, 1674, 1676, 1677, 1678, 1680,
1878 1681, 1682, 1684, 1685, 1686, 1687, 1688, 1690, 1691, 1692,
1879 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1701, 1702, 1703,
1880 1704, 1705, 1707, 1708, 1709, 1712, 1714, 1715, 1716, 1719,
1881 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730,
1882 1731, 1733, 1734, 1735, 1737, 1738, 1739, 1740, 1741, 1742,
1883 1743, 1744, 1746, 1747, 1748, 1750, 1751, 1752, 1753, 1754,
1884 1755, 1756, 1757, 1758, 1759, 1761, 1762, 1763, 1764, 1765,
1885 1767, 1768, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777,
1886 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788,
1887
1888 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1801,
1889 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812,
1890 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822,
1891 1823, 1824, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833,
1892 1835, 1839, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848,
1893 1850, 1851, 1852, 1853, 1855, 1856, 1857, 1858, 1859, 1860,
1894 1861, 1862, 1863, 1864, 1865, 1866, 1868, 1869, 1870, 1871,
1895 1873, 1875, 1878, 1880, 1881, 1882, 1883, 1885, 1886, 1887,
1896 1888, 1889, 1890, 1891, 1893, 1894, 1895, 1896, 1897, 1898,
1897 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1908, 1909,
1898
1899 1910, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920,
1900 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930,
1901 1931, 1933, 1934, 1936, 1937, 1938, 1940, 1941, 1942, 1943,
1902 1947, 1950, 1951, 1952, 1953, 1955, 1956, 1957, 1958, 1959,
1903 1960, 1961, 1963, 1964, 1966, 1968, 1970, 1971, 1972, 1973,
1904 1975, 1976, 1975, 1977, 1979, 1980, 1982, 1983, 1984, 1985,
1905 1986, 1987, 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1997,
1906 2000, 2001, 2002, 2003, 2007, 2007, 2007, 2008, 2008, 2008,
1907 2009, 2010, 2009, 2011, 2011, 2011, 2012, 2012, 2012, 2013,
1908 720, 2013, 2014, 2014, 2014, 719, 718, 717, 716, 715,
1909
1910 713, 712, 710, 709, 708, 707, 706, 705, 704, 703,
1911 699, 698, 696, 695, 694, 693, 692, 691, 690, 689,
1912 688, 686, 685, 684, 682, 681, 680, 679, 678, 677,
1913 676, 675, 674, 673, 672, 671, 670, 669, 667, 666,
1914 665, 664, 663, 662, 661, 660, 659, 657, 656, 655,
1915 654, 653, 652, 651, 649, 648, 647, 646, 645, 644,
1916 643, 642, 640, 639, 638, 637, 636, 635, 634, 633,
1917 632, 631, 630, 629, 628, 627, 625, 624, 623, 622,
1918 621, 620, 619, 618, 617, 616, 615, 614, 613, 611,
1919 610, 609, 608, 607, 606, 605, 604, 603, 602, 601,
1920
1921 600, 598, 597, 596, 595, 594, 593, 592, 591, 590,
1922 589, 588, 587, 586, 585, 584, 583, 582, 580, 579,
1923 571, 570, 569, 568, 567, 566, 564, 563, 561, 559,
1924 558, 557, 556, 555, 554, 553, 552, 551, 550, 549,
1925 548, 546, 545, 544, 543, 542, 541, 540, 539, 538,
1926 537, 536, 535, 534, 533, 532, 531, 530, 529, 528,
1927 526, 524, 523, 522, 521, 520, 519, 518, 517, 516,
1928 515, 514, 513, 512, 511, 510, 509, 507, 506, 505,
1929 504, 503, 502, 501, 499, 498, 497, 496, 495, 494,
1930 493, 492, 491, 490, 489, 488, 487, 486, 485, 483,
1931
1932 482, 481, 480, 478, 477, 476, 475, 474, 472, 471,
1933 469, 468, 465, 464, 463, 462, 461, 460, 459, 458,
1934 456, 455, 454, 453, 452, 451, 450, 449, 444, 442,
1935 441, 439, 438, 437, 434, 432, 431, 429, 428, 427,
1936 425, 424, 423, 422, 421, 420, 419, 418, 417, 416,
1937 415, 414, 413, 412, 411, 410, 408, 407, 406, 404,
1938 403, 402, 401, 399, 398, 397, 396, 394, 393, 392,
1939 391, 390, 389, 388, 387, 386, 385, 384, 383, 382,
1940 380, 378, 377, 376, 375, 374, 373, 372, 370, 369,
1941 368, 367, 366, 365, 364, 363, 362, 361, 360, 358,
1942
1943 357, 356, 355, 354, 353, 352, 351, 350, 349, 348,
1944 347, 345, 344, 343, 342, 341, 338, 337, 336, 335,
1945 334, 333, 332, 331, 330, 329, 328, 327, 326, 325,
1946 321, 319, 316, 314, 311, 304, 302, 301, 300, 299,
1947 298, 296, 295, 294, 292, 291, 290, 289, 288, 286,
1948 285, 284, 283, 282, 281, 280, 279, 277, 276, 275,
1949 274, 273, 272, 271, 270, 269, 268, 267, 266, 264,
1950 263, 261, 260, 259, 258, 257, 256, 255, 254, 253,
1951 252, 251, 249, 248, 247, 246, 245, 244, 243, 241,
1952 239, 238, 237, 236, 235, 234, 233, 232, 231, 230,
1953
1954 229, 228, 227, 226, 225, 224, 223, 222, 221, 220,
1955 219, 216, 215, 214, 213, 212, 211, 210, 209, 208,
1956 206, 202, 200, 198, 194, 192, 190, 182, 181, 180,
1957 178, 177, 176, 174, 173, 172, 170, 169, 168, 164,
1958 161, 159, 158, 157, 155, 153, 152, 151, 150, 149,
1959 148, 146, 145, 144, 142, 141, 140, 139, 138, 136,
1960 135, 133, 131, 130, 129, 128, 126, 125, 124, 123,
1961 121, 120, 118, 117, 116, 112, 104, 102, 97, 96,
1962 77, 72, 66, 58, 49, 47, 43, 41, 39, 38,
1963 24, 14, 11, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
1964
1965 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
1966 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
1967 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
1968 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
1969 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
1970 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
1971 2006, 2006, 2006, 2006, 2006, 2006, 2006
1972 } ;
1973
1974static yy_state_type yy_last_accepting_state;
1975static char *yy_last_accepting_cpos;
1976
1977extern int yy_flex_debug;
1979
1980static const flex_int16_t yy_rule_linenum[213] =
1981 { 0,
1982 146, 148, 150, 155, 156, 161, 162, 163, 175, 178,
1983 183, 190, 199, 208, 217, 226, 235, 244, 254, 263,
1984 272, 281, 290, 299, 308, 317, 326, 335, 344, 353,
1985 362, 374, 383, 392, 401, 410, 421, 432, 443, 454,
1986 465, 476, 487, 498, 509, 520, 531, 542, 551, 560,
1987 569, 580, 591, 602, 613, 624, 633, 645, 657, 669,
1988 680, 691, 700, 709, 718, 727, 736, 747, 758, 769,
1989 780, 791, 802, 813, 824, 834, 845, 854, 864, 878,
1990 894, 903, 912, 921, 930, 952, 974, 983, 993, 1002,
1991 1013, 1022, 1031, 1040, 1049, 1058, 1069, 1080, 1091, 1101,
1992
1993 1110, 1121, 1132, 1143, 1154, 1166, 1175, 1184, 1193, 1202,
1994 1211, 1220, 1229, 1238, 1247, 1257, 1268, 1280, 1289, 1298,
1995 1308, 1318, 1328, 1338, 1348, 1358, 1367, 1377, 1386, 1395,
1996 1404, 1413, 1423, 1433, 1442, 1452, 1461, 1470, 1479, 1488,
1997 1497, 1506, 1515, 1524, 1533, 1542, 1551, 1560, 1569, 1578,
1998 1587, 1596, 1605, 1614, 1623, 1632, 1641, 1650, 1659, 1668,
1999 1677, 1686, 1695, 1704, 1713, 1722, 1731, 1740, 1749, 1758,
2000 1767, 1779, 1791, 1801, 1811, 1821, 1831, 1841, 1851, 1861,
2001 1871, 1881, 1890, 1899, 1908, 1917, 1928, 1939, 1952, 1965,
2002 1978, 1987, 1996, 2005, 2106, 2122, 2171, 2179, 2194, 2195,
2003
2004 2196, 2197, 2198, 2199, 2201, 2219, 2232, 2237, 2241, 2243,
2005 2245, 2247
2006 } ;
2007
2008/* The intent behind this definition is that it'll catch
2009 * any uses of REJECT which flex missed.
2010 */
2011#define REJECT reject_used_but_not_detected
2012#define yymore() yymore_used_but_not_detected
2013#define YY_MORE_ADJ 0
2014#define YY_RESTORE_YY_MORE_OFFSET
2016#line 1 "dhcp4_lexer.ll"
2017/* Copyright (C) 2016-2021 Internet Systems Consortium, Inc. ("ISC")
2018
2019 This Source Code Form is subject to the terms of the Mozilla Public
2020 License, v. 2.0. If a copy of the MPL was not distributed with this
2021 file, You can obtain one at http://mozilla.org/MPL/2.0/. */
2022#line 8 "dhcp4_lexer.ll"
2023
2024/* Generated files do not make clang static analyser so happy */
2025#ifndef __clang_analyzer__
2026
2027#include <cctype>
2028#include <cerrno>
2029#include <climits>
2030#include <cstdlib>
2031#include <string>
2032#include <dhcp4/parser_context.h>
2033#include <asiolink/io_address.h>
2034#include <boost/lexical_cast.hpp>
2035#include <exceptions/exceptions.h>
2036
2037/* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
2038
2039/* Work around an incompatibility in flex (at least versions
2040 2.5.31 through 2.5.33): it generates code that does
2041 not conform to C89. See Debian bug 333231
2042 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
2043# undef yywrap
2044# define yywrap() 1
2045
2046namespace {
2047
2048bool start_token_flag = false;
2049
2051unsigned int comment_start_line = 0;
2052
2053using namespace isc::dhcp;
2054
2055};
2056
2057/* To avoid the call to exit... oops! */
2058#define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
2059#line 2059 "dhcp4_lexer.cc"
2060/* noyywrap disables automatic rewinding for the next file to parse. Since we
2061 always parse only a single string, there's no need to do any wraps. And
2062 using yywrap requires linking with -lfl, which provides the default yywrap
2063 implementation that always returns 1 anyway. */
2064/* nounput simplifies the lexer, by removing support for putting a character
2065 back into the input stream. We never use such capability anyway. */
2066/* batch means that we'll never use the generated lexer interactively. */
2067/* avoid to get static global variables to remain with C++. */
2068/* in last resort %option reentrant */
2069/* Enables debug mode. To see the debug messages, one needs to also set
2070 yy_flex_debug to 1, then the debug messages will be printed on stderr. */
2071/* I have no idea what this option does, except it was specified in the bison
2072 examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
2073 be on the safe side and keep it. */
2074#define YY_NO_INPUT 1
2075
2076/* These are not token expressions yet, just convenience expressions that
2077 can be used during actual token definitions. Note some can match
2078 incorrect inputs (e.g., IP addresses) which must be checked. */
2079/* for errors */
2080#line 95 "dhcp4_lexer.ll"
2081/* This code run each time a pattern is matched. It updates the location
2082 by moving it ahead by yyleng bytes. yyleng specifies the length of the
2083 currently matched token. */
2084#define YY_USER_ACTION driver.loc_.columns(yyleng);
2085#line 2085 "dhcp4_lexer.cc"
2086#line 2086 "dhcp4_lexer.cc"
2087
2088#define INITIAL 0
2089#define COMMENT 1
2090#define DIR_ENTER 2
2091#define DIR_INCLUDE 3
2092#define DIR_EXIT 4
2093
2094#ifndef YY_NO_UNISTD_H
2095/* Special case for "unistd.h", since it is non-ANSI. We include it way
2096 * down here because we want the user's section 1 to have been scanned first.
2097 * The user has a chance to override it with an option.
2098 */
2099/* %if-c-only */
2100#include <unistd.h>
2101/* %endif */
2102/* %if-c++-only */
2103/* %endif */
2104#endif
2105
2106#ifndef YY_EXTRA_TYPE
2107#define YY_EXTRA_TYPE void *
2108#endif
2109
2110/* %if-c-only Reentrant structure and macros (non-C++). */
2111/* %if-reentrant */
2112/* %if-c-only */
2113
2114static int yy_init_globals ( void );
2115
2116/* %endif */
2117/* %if-reentrant */
2118/* %endif */
2119/* %endif End reentrant structures and macros. */
2120
2121/* Accessor methods to globals.
2122 These are made visible to non-reentrant scanners for convenience. */
2123
2124int yylex_destroy ( void );
2125
2126int yyget_debug ( void );
2127
2128void yyset_debug ( int debug_flag );
2129
2130YY_EXTRA_TYPE yyget_extra ( void );
2131
2132void yyset_extra ( YY_EXTRA_TYPE user_defined );
2133
2134FILE *yyget_in ( void );
2135
2136void yyset_in ( FILE * _in_str );
2137
2138FILE *yyget_out ( void );
2139
2140void yyset_out ( FILE * _out_str );
2141
2142 int yyget_leng ( void );
2143
2144char *yyget_text ( void );
2145
2146int yyget_lineno ( void );
2147
2148void yyset_lineno ( int _line_number );
2149
2150/* %if-bison-bridge */
2151/* %endif */
2152
2153/* Macros after this point can all be overridden by user definitions in
2154 * section 1.
2155 */
2156
2157#ifndef YY_SKIP_YYWRAP
2158#ifdef __cplusplus
2159extern "C" int yywrap ( void );
2160#else
2161extern int yywrap ( void );
2162#endif
2163#endif
2164
2165/* %not-for-header */
2166#ifndef YY_NO_UNPUT
2167
2168#endif
2169/* %ok-for-header */
2170
2171/* %endif */
2172
2173#ifndef yytext_ptr
2174static void yy_flex_strncpy ( char *, const char *, int );
2175#endif
2176
2177#ifdef YY_NEED_STRLEN
2178static int yy_flex_strlen ( const char * );
2179#endif
2180
2181#ifndef YY_NO_INPUT
2182/* %if-c-only Standard (non-C++) definition */
2183/* %not-for-header */
2184#ifdef __cplusplus
2185static int yyinput ( void );
2186#else
2187static int input ( void );
2188#endif
2189/* %ok-for-header */
2190
2191/* %endif */
2192#endif
2193
2194/* %if-c-only */
2195
2196/* %endif */
2197
2198/* Amount of stuff to slurp up with each read. */
2199#ifndef YY_READ_BUF_SIZE
2200#ifdef __ia64__
2201/* On IA-64, the buffer size is 16k, not 8k */
2202#define YY_READ_BUF_SIZE 16384
2203#else
2204#define YY_READ_BUF_SIZE 8192
2205#endif /* __ia64__ */
2206#endif
2207
2208/* Copy whatever the last rule matched to the standard output. */
2209#ifndef ECHO
2210/* %if-c-only Standard (non-C++) definition */
2211/* This used to be an fputs(), but since the string might contain NUL's,
2212 * we now use fwrite().
2213 */
2214#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2215/* %endif */
2216/* %if-c++-only C++ definition */
2217/* %endif */
2218#endif
2219
2220/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2221 * is returned in "result".
2222 */
2223#ifndef YY_INPUT
2224#define YY_INPUT(buf,result,max_size) \
2225/* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2226 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2227 { \
2228 int c = '*'; \
2229 int n; \
2230 for ( n = 0; n < max_size && \
2231 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2232 buf[n] = (char) c; \
2233 if ( c == '\n' ) \
2234 buf[n++] = (char) c; \
2235 if ( c == EOF && ferror( yyin ) ) \
2236 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2237 result = n; \
2238 } \
2239 else \
2240 { \
2241 errno=0; \
2242 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2243 { \
2244 if( errno != EINTR) \
2245 { \
2246 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2247 break; \
2248 } \
2249 errno=0; \
2250 clearerr(yyin); \
2251 } \
2252 }\
2253\
2254/* %if-c++-only C++ definition \ */\
2255/* %endif */
2256
2257#endif
2258
2259/* No semi-colon after return; correct usage is to write "yyterminate();" -
2260 * we don't want an extra ';' after the "return" because that will cause
2261 * some compilers to complain about unreachable statements.
2262 */
2263#ifndef yyterminate
2264#define yyterminate() return YY_NULL
2265#endif
2266
2267/* Number of entries by which start-condition stack grows. */
2268#ifndef YY_START_STACK_INCR
2269#define YY_START_STACK_INCR 25
2270#endif
2271
2272/* Report a fatal error. */
2273#ifndef YY_FATAL_ERROR
2274/* %if-c-only */
2275#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2276/* %endif */
2277/* %if-c++-only */
2278/* %endif */
2279#endif
2280
2281/* %if-tables-serialization structures and prototypes */
2282/* %not-for-header */
2283/* %ok-for-header */
2284
2285/* %not-for-header */
2286/* %tables-yydmap generated elements */
2287/* %endif */
2288/* end tables serialization structures and prototypes */
2289
2290/* %ok-for-header */
2291
2292/* Default declaration of generated scanner - a define so the user can
2293 * easily add parameters.
2294 */
2295#ifndef YY_DECL
2296#define YY_DECL_IS_OURS 1
2297/* %if-c-only Standard (non-C++) definition */
2298
2299extern int yylex (void);
2300
2301#define YY_DECL int yylex (void)
2302/* %endif */
2303/* %if-c++-only C++ definition */
2304/* %endif */
2305#endif /* !YY_DECL */
2306
2307/* Code executed at the beginning of each rule, after yytext and yyleng
2308 * have been set up.
2309 */
2310#ifndef YY_USER_ACTION
2311#define YY_USER_ACTION
2312#endif
2313
2314/* Code executed at the end of each rule. */
2315#ifndef YY_BREAK
2316#define YY_BREAK /*LINTED*/break;
2317#endif
2318
2319/* %% [6.0] YY_RULE_SETUP definition goes here */
2320#define YY_RULE_SETUP \
2321 YY_USER_ACTION
2322
2323/* %not-for-header */
2327{
2328 yy_state_type yy_current_state;
2329 char *yy_cp, *yy_bp;
2331
2332 if ( !(yy_init) )
2333 {
2334 (yy_init) = 1;
2335
2336#ifdef YY_USER_INIT
2337 YY_USER_INIT;
2338#endif
2339
2340 if ( ! (yy_start) )
2341 (yy_start) = 1; /* first start state */
2342
2343 if ( ! yyin )
2344/* %if-c-only */
2345 yyin = stdin;
2346/* %endif */
2347/* %if-c++-only */
2348/* %endif */
2349
2350 if ( ! yyout )
2351/* %if-c-only */
2352 yyout = stdout;
2353/* %endif */
2354/* %if-c++-only */
2355/* %endif */
2356
2357 if ( ! YY_CURRENT_BUFFER ) {
2361 }
2362
2364 }
2365
2366 {
2367/* %% [7.0] user's declarations go here */
2368#line 101 "dhcp4_lexer.ll"
2369
2370
2371
2372#line 105 "dhcp4_lexer.ll"
2373 /* This part of the code is copied over to the verbatim to the top
2374 of the generated yylex function. Explanation:
2375 http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2376
2377 /* Code run each time yylex is called. */
2378 driver.loc_.step();
2379
2380 if (start_token_flag) {
2381 start_token_flag = false;
2382 switch (start_token_value) {
2383 case Parser4Context::PARSER_JSON:
2384 default:
2386 case Parser4Context::PARSER_DHCP4:
2388 case Parser4Context::SUBPARSER_DHCP4:
2389 return isc::dhcp::Dhcp4Parser::make_SUB_DHCP4(driver.loc_);
2390 case Parser4Context::PARSER_INTERFACES:
2392 case Parser4Context::PARSER_SUBNET4:
2393 return isc::dhcp::Dhcp4Parser::make_SUB_SUBNET4(driver.loc_);
2394 case Parser4Context::PARSER_POOL4:
2395 return isc::dhcp::Dhcp4Parser::make_SUB_POOL4(driver.loc_);
2396 case Parser4Context::PARSER_HOST_RESERVATION:
2398 case Parser4Context::PARSER_OPTION_DEFS:
2400 case Parser4Context::PARSER_OPTION_DEF:
2402 case Parser4Context::PARSER_OPTION_DATA:
2404 case Parser4Context::PARSER_HOOKS_LIBRARY:
2406 case Parser4Context::PARSER_DHCP_DDNS:
2408 case Parser4Context::PARSER_CONFIG_CONTROL:
2410 }
2411 }
2412
2413
2414#line 2414 "dhcp4_lexer.cc"
2415
2416 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2417 {
2418/* %% [8.0] yymore()-related code goes here */
2419 yy_cp = (yy_c_buf_p);
2420
2421 /* Support of yytext. */
2422 *yy_cp = (yy_hold_char);
2423
2424 /* yy_bp points to the position in yy_ch_buf of the start of
2425 * the current run.
2426 */
2427 yy_bp = yy_cp;
2428
2429/* %% [9.0] code to set up and find next match goes here */
2430 yy_current_state = (yy_start);
2431yy_match:
2432 do
2433 {
2434 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2435 if ( yy_accept[yy_current_state] )
2436 {
2437 (yy_last_accepting_state) = yy_current_state;
2438 (yy_last_accepting_cpos) = yy_cp;
2439 }
2440 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2441 {
2442 yy_current_state = (int) yy_def[yy_current_state];
2443 if ( yy_current_state >= 2007 )
2444 yy_c = yy_meta[yy_c];
2445 }
2446 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2447 ++yy_cp;
2448 }
2449 while ( yy_current_state != 2006 );
2450 yy_cp = (yy_last_accepting_cpos);
2451 yy_current_state = (yy_last_accepting_state);
2452
2453yy_find_action:
2454/* %% [10.0] code to find the action number goes here */
2455 yy_act = yy_accept[yy_current_state];
2456
2458
2459/* %% [11.0] code for yylineno update goes here */
2460
2461do_action: /* This label is used only to access EOF actions. */
2462
2463/* %% [12.0] debug code goes here */
2464 if ( yy_flex_debug )
2465 {
2466 if ( yy_act == 0 )
2467 fprintf( stderr, "--scanner backing up\n" );
2468 else if ( yy_act < 213 )
2469 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2470 (long)yy_rule_linenum[yy_act], yytext );
2471 else if ( yy_act == 213 )
2472 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2473 yytext );
2474 else if ( yy_act == 214 )
2475 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2476 else
2477 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2478 }
2479
2480 switch ( yy_act )
2481 { /* beginning of action switch */
2482/* %% [13.0] actions go here */
2483 case 0: /* must back up */
2484 /* undo the effects of YY_DO_BEFORE_ACTION */
2485 *yy_cp = (yy_hold_char);
2486 yy_cp = (yy_last_accepting_cpos);
2487 yy_current_state = (yy_last_accepting_state);
2488 goto yy_find_action;
2489
2490case 1:
2492#line 146 "dhcp4_lexer.ll"
2493;
2494 YY_BREAK
2495case 2:
2497#line 148 "dhcp4_lexer.ll"
2498;
2499 YY_BREAK
2500case 3:
2502#line 150 "dhcp4_lexer.ll"
2503{
2504 BEGIN(COMMENT);
2505 comment_start_line = driver.loc_.end.line;;
2506}
2507 YY_BREAK
2508case 4:
2510#line 155 "dhcp4_lexer.ll"
2511BEGIN(INITIAL);
2512 YY_BREAK
2513case 5:
2515#line 156 "dhcp4_lexer.ll"
2516;
2517 YY_BREAK
2518case YY_STATE_EOF(COMMENT):
2519#line 157 "dhcp4_lexer.ll"
2520{
2521 isc_throw(Dhcp4ParseError, "Comment not closed. (/* in line " << comment_start_line);
2522}
2523 YY_BREAK
2524case 6:
2526#line 161 "dhcp4_lexer.ll"
2528 YY_BREAK
2529case 7:
2531#line 162 "dhcp4_lexer.ll"
2533 YY_BREAK
2534case 8:
2536#line 163 "dhcp4_lexer.ll"
2537{
2538 /* Include directive. */
2539
2540 /* Extract the filename. */
2541 std::string tmp(yytext+1);
2542 tmp.resize(tmp.size() - 1);
2543
2544 driver.includeFile(tmp);
2545}
2546 YY_BREAK
2550#line 172 "dhcp4_lexer.ll"
2551{
2552 isc_throw(Dhcp4ParseError, "Directive not closed.");
2553}
2554 YY_BREAK
2555case 9:
2557#line 175 "dhcp4_lexer.ll"
2558BEGIN(INITIAL);
2559 YY_BREAK
2560case 10:
2562#line 178 "dhcp4_lexer.ll"
2563{
2564 /* Ok, we found a with space. Let's ignore it and update loc variable. */
2565 driver.loc_.step();
2566}
2567 YY_BREAK
2568case 11:
2569/* rule 11 can match eol */
2571#line 183 "dhcp4_lexer.ll"
2572{
2573 /* Newline found. Let's update the location and continue. */
2574 driver.loc_.lines(yyleng);
2575 driver.loc_.step();
2576}
2577 YY_BREAK
2578case 12:
2580#line 190 "dhcp4_lexer.ll"
2581{
2582 switch(driver.ctx_) {
2584 return isc::dhcp::Dhcp4Parser::make_DHCP4(driver.loc_);
2585 default:
2586 return isc::dhcp::Dhcp4Parser::make_STRING("Dhcp4", driver.loc_);
2587 }
2588}
2589 YY_BREAK
2590case 13:
2592#line 199 "dhcp4_lexer.ll"
2593{
2594 switch(driver.ctx_) {
2597 default:
2598 return isc::dhcp::Dhcp4Parser::make_STRING("interfaces-config", driver.loc_);
2599 }
2600}
2601 YY_BREAK
2602case 14:
2604#line 208 "dhcp4_lexer.ll"
2605{
2606 switch(driver.ctx_) {
2609 default:
2610 return isc::dhcp::Dhcp4Parser::make_STRING("sanity-checks", driver.loc_);
2611 }
2612}
2613 YY_BREAK
2614case 15:
2616#line 217 "dhcp4_lexer.ll"
2617{
2618 switch(driver.ctx_) {
2621 default:
2622 return isc::dhcp::Dhcp4Parser::make_STRING("lease-checks", driver.loc_);
2623 }
2624}
2625 YY_BREAK
2626case 16:
2628#line 226 "dhcp4_lexer.ll"
2629{
2630 switch(driver.ctx_) {
2633 default:
2634 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-socket-type", driver.loc_);
2635 }
2636}
2637 YY_BREAK
2638case 17:
2640#line 235 "dhcp4_lexer.ll"
2641{
2642 switch(driver.ctx_) {
2644 return isc::dhcp::Dhcp4Parser::make_RAW(driver.loc_);
2645 default:
2646 return isc::dhcp::Dhcp4Parser::make_STRING("raw", driver.loc_);
2647 }
2648}
2649 YY_BREAK
2650case 18:
2652#line 244 "dhcp4_lexer.ll"
2653{
2654 switch(driver.ctx_) {
2657 return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_);
2658 default:
2659 return isc::dhcp::Dhcp4Parser::make_STRING("udp", driver.loc_);
2660 }
2661}
2662 YY_BREAK
2663case 19:
2665#line 254 "dhcp4_lexer.ll"
2666{
2667 switch(driver.ctx_) {
2668 case Parser4Context::INTERFACES_CONFIG:
2670 default:
2671 return isc::dhcp::Dhcp4Parser::make_STRING("outbound-interface", driver.loc_);
2672 }
2673}
2674 YY_BREAK
2675case 20:
2677#line 263 "dhcp4_lexer.ll"
2678{
2679 switch(driver.ctx_) {
2680 case Parser4Context::OUTBOUND_INTERFACE:
2681 return Dhcp4Parser::make_SAME_AS_INBOUND(driver.loc_);
2682 default:
2683 return Dhcp4Parser::make_STRING("same-as-inbound", driver.loc_);
2684 }
2685}
2686 YY_BREAK
2687case 21:
2689#line 272 "dhcp4_lexer.ll"
2690{
2691 switch(driver.ctx_) {
2692 case Parser4Context::OUTBOUND_INTERFACE:
2693 return Dhcp4Parser::make_USE_ROUTING(driver.loc_);
2694 default:
2695 return Dhcp4Parser::make_STRING("use-routing", driver.loc_);
2696 }
2697}
2698 YY_BREAK
2699case 22:
2701#line 281 "dhcp4_lexer.ll"
2702{
2703 switch(driver.ctx_) {
2705 return isc::dhcp::Dhcp4Parser::make_INTERFACES(driver.loc_);
2706 default:
2707 return isc::dhcp::Dhcp4Parser::make_STRING("interfaces", driver.loc_);
2708 }
2709}
2710 YY_BREAK
2711case 23:
2713#line 290 "dhcp4_lexer.ll"
2714{
2715 switch(driver.ctx_) {
2717 return isc::dhcp::Dhcp4Parser::make_RE_DETECT(driver.loc_);
2718 default:
2719 return isc::dhcp::Dhcp4Parser::make_STRING("re-detect", driver.loc_);
2720 }
2721}
2722 YY_BREAK
2723case 24:
2725#line 299 "dhcp4_lexer.ll"
2726{
2727 switch(driver.ctx_) {
2730 default:
2731 return isc::dhcp::Dhcp4Parser::make_STRING("lease-database", driver.loc_);
2732 }
2733}
2734 YY_BREAK
2735case 25:
2737#line 308 "dhcp4_lexer.ll"
2738{
2739 switch(driver.ctx_) {
2742 default:
2743 return isc::dhcp::Dhcp4Parser::make_STRING("hosts-database", driver.loc_);
2744 }
2745}
2746 YY_BREAK
2747case 26:
2749#line 317 "dhcp4_lexer.ll"
2750{
2751 switch(driver.ctx_) {
2754 default:
2755 return isc::dhcp::Dhcp4Parser::make_STRING("hosts-databases", driver.loc_);
2756 }
2757}
2758 YY_BREAK
2759case 27:
2761#line 326 "dhcp4_lexer.ll"
2762{
2763 switch(driver.ctx_) {
2766 default:
2767 return isc::dhcp::Dhcp4Parser::make_STRING("config-control", driver.loc_);
2768 }
2769}
2770 YY_BREAK
2771case 28:
2773#line 335 "dhcp4_lexer.ll"
2774{
2775 switch(driver.ctx_) {
2778 default:
2779 return isc::dhcp::Dhcp4Parser::make_STRING("config-databases", driver.loc_);
2780 }
2781}
2782 YY_BREAK
2783case 29:
2785#line 344 "dhcp4_lexer.ll"
2786{
2787 switch(driver.ctx_) {
2790 default:
2791 return isc::dhcp::Dhcp4Parser::make_STRING("config-fetch-wait-time", driver.loc_);
2792 }
2793}
2794 YY_BREAK
2795case 30:
2797#line 353 "dhcp4_lexer.ll"
2798{
2799 switch(driver.ctx_) {
2801 return isc::dhcp::Dhcp4Parser::make_READONLY(driver.loc_);
2802 default:
2803 return isc::dhcp::Dhcp4Parser::make_STRING("readonly", driver.loc_);
2804 }
2805}
2806 YY_BREAK
2807case 31:
2809#line 362 "dhcp4_lexer.ll"
2810{
2811 switch(driver.ctx_) {
2816 return isc::dhcp::Dhcp4Parser::make_TYPE(driver.loc_);
2817 default:
2818 return isc::dhcp::Dhcp4Parser::make_STRING("type", driver.loc_);
2819 }
2820}
2821 YY_BREAK
2822case 32:
2824#line 374 "dhcp4_lexer.ll"
2825{
2826 switch(driver.ctx_) {
2828 return isc::dhcp::Dhcp4Parser::make_MEMFILE(driver.loc_);
2829 default:
2830 return isc::dhcp::Dhcp4Parser::make_STRING("memfile", driver.loc_);
2831 }
2832}
2833 YY_BREAK
2834case 33:
2836#line 383 "dhcp4_lexer.ll"
2837{
2838 switch(driver.ctx_) {
2840 return isc::dhcp::Dhcp4Parser::make_MYSQL(driver.loc_);
2841 default:
2842 return isc::dhcp::Dhcp4Parser::make_STRING("mysql", driver.loc_);
2843 }
2844}
2845 YY_BREAK
2846case 34:
2848#line 392 "dhcp4_lexer.ll"
2849{
2850 switch(driver.ctx_) {
2852 return isc::dhcp::Dhcp4Parser::make_POSTGRESQL(driver.loc_);
2853 default:
2854 return isc::dhcp::Dhcp4Parser::make_STRING("postgresql", driver.loc_);
2855 }
2856}
2857 YY_BREAK
2858case 35:
2860#line 401 "dhcp4_lexer.ll"
2861{
2862 switch(driver.ctx_) {
2864 return isc::dhcp::Dhcp4Parser::make_CQL(driver.loc_);
2865 default:
2866 return isc::dhcp::Dhcp4Parser::make_STRING("cql", driver.loc_);
2867 }
2868}
2869 YY_BREAK
2870case 36:
2872#line 410 "dhcp4_lexer.ll"
2873{
2874 switch(driver.ctx_) {
2878 return isc::dhcp::Dhcp4Parser::make_USER(driver.loc_);
2879 default:
2880 return isc::dhcp::Dhcp4Parser::make_STRING("user", driver.loc_);
2881 }
2882}
2883 YY_BREAK
2884case 37:
2886#line 421 "dhcp4_lexer.ll"
2887{
2888 switch(driver.ctx_) {
2892 return isc::dhcp::Dhcp4Parser::make_PASSWORD(driver.loc_);
2893 default:
2894 return isc::dhcp::Dhcp4Parser::make_STRING("password", driver.loc_);
2895 }
2896}
2897 YY_BREAK
2898case 38:
2900#line 432 "dhcp4_lexer.ll"
2901{
2902 switch(driver.ctx_) {
2906 return isc::dhcp::Dhcp4Parser::make_HOST(driver.loc_);
2907 default:
2908 return isc::dhcp::Dhcp4Parser::make_STRING("host", driver.loc_);
2909 }
2910}
2911 YY_BREAK
2912case 39:
2914#line 443 "dhcp4_lexer.ll"
2915{
2916 switch(driver.ctx_) {
2920 return isc::dhcp::Dhcp4Parser::make_PORT(driver.loc_);
2921 default:
2922 return isc::dhcp::Dhcp4Parser::make_STRING("port", driver.loc_);
2923 }
2924}
2925 YY_BREAK
2926case 40:
2928#line 454 "dhcp4_lexer.ll"
2929{
2930 switch(driver.ctx_) {
2934 return isc::dhcp::Dhcp4Parser::make_PERSIST(driver.loc_);
2935 default:
2936 return isc::dhcp::Dhcp4Parser::make_STRING("persist", driver.loc_);
2937 }
2938}
2939 YY_BREAK
2940case 41:
2942#line 465 "dhcp4_lexer.ll"
2943{
2944 switch(driver.ctx_) {
2949 default:
2950 return isc::dhcp::Dhcp4Parser::make_STRING("lfc-interval", driver.loc_);
2951 }
2952}
2953 YY_BREAK
2954case 42:
2956#line 476 "dhcp4_lexer.ll"
2957{
2958 switch(driver.ctx_) {
2963 default:
2964 return isc::dhcp::Dhcp4Parser::make_STRING("connect-timeout", driver.loc_);
2965 }
2966}
2967 YY_BREAK
2968case 43:
2970#line 487 "dhcp4_lexer.ll"
2971{
2972 switch(driver.ctx_) {
2976 return isc::dhcp::Dhcp4Parser::make_KEYSPACE(driver.loc_);
2977 default:
2978 return isc::dhcp::Dhcp4Parser::make_STRING("keyspace", driver.loc_);
2979 }
2980}
2981 YY_BREAK
2982case 44:
2984#line 498 "dhcp4_lexer.ll"
2985{
2986 switch(driver.ctx_) {
2990 return isc::dhcp::Dhcp4Parser::make_CONSISTENCY(driver.loc_);
2991 default:
2992 return isc::dhcp::Dhcp4Parser::make_STRING("consistency", driver.loc_);
2993 }
2994}
2995 YY_BREAK
2996case 45:
2998#line 509 "dhcp4_lexer.ll"
2999{
3000 switch(driver.ctx_) {
3005 default:
3006 return isc::dhcp::Dhcp4Parser::make_STRING("serial-consistency", driver.loc_);
3007 }
3008}
3009 YY_BREAK
3010case 46:
3012#line 520 "dhcp4_lexer.ll"
3013{
3014 switch(driver.ctx_) {
3019 default:
3020 return isc::dhcp::Dhcp4Parser::make_STRING("reconnect-wait-time", driver.loc_);
3021 }
3022}
3023 YY_BREAK
3024case 47:
3026#line 531 "dhcp4_lexer.ll"
3027{
3028 switch(driver.ctx_) {
3032 return isc::dhcp::Dhcp4Parser::make_ON_FAIL(driver.loc_);
3033 default:
3034 return isc::dhcp::Dhcp4Parser::make_STRING("on-fail", driver.loc_);
3035 }
3036}
3037 YY_BREAK
3038case 48:
3040#line 542 "dhcp4_lexer.ll"
3041{
3042 switch(driver.ctx_) {
3045 default:
3046 return isc::dhcp::Dhcp4Parser::make_STRING("stop-retry-exit", driver.loc_);
3047 }
3048}
3049 YY_BREAK
3050case 49:
3052#line 551 "dhcp4_lexer.ll"
3053{
3054 switch(driver.ctx_) {
3057 default:
3058 return isc::dhcp::Dhcp4Parser::make_STRING("serve-retry-exit", driver.loc_);
3059 }
3060}
3061 YY_BREAK
3062case 50:
3064#line 560 "dhcp4_lexer.ll"
3065{
3066 switch(driver.ctx_) {
3069 default:
3070 return isc::dhcp::Dhcp4Parser::make_STRING("serve-retry-continue", driver.loc_);
3071 }
3072}
3073 YY_BREAK
3074case 51:
3076#line 569 "dhcp4_lexer.ll"
3077{
3078 switch(driver.ctx_) {
3083 default:
3084 return isc::dhcp::Dhcp4Parser::make_STRING("request-timeout", driver.loc_);
3085 }
3086}
3087 YY_BREAK
3088case 52:
3090#line 580 "dhcp4_lexer.ll"
3091{
3092 switch(driver.ctx_) {
3097 default:
3098 return isc::dhcp::Dhcp4Parser::make_STRING("tcp-keepalive", driver.loc_);
3099 }
3100}
3101 YY_BREAK
3102case 53:
3104#line 591 "dhcp4_lexer.ll"
3105{
3106 switch(driver.ctx_) {
3110 return isc::dhcp::Dhcp4Parser::make_TCP_NODELAY(driver.loc_);
3111 default:
3112 return isc::dhcp::Dhcp4Parser::make_STRING("tcp-nodelay", driver.loc_);
3113 }
3114}
3115 YY_BREAK
3116case 54:
3118#line 602 "dhcp4_lexer.ll"
3119{
3120 switch(driver.ctx_) {
3125 default:
3126 return isc::dhcp::Dhcp4Parser::make_STRING("contact-points", driver.loc_);
3127 }
3128}
3129 YY_BREAK
3130case 55:
3132#line 613 "dhcp4_lexer.ll"
3133{
3134 switch(driver.ctx_) {
3139 default:
3140 return isc::dhcp::Dhcp4Parser::make_STRING("max-reconnect-tries", driver.loc_);
3141 }
3142}
3143 YY_BREAK
3144case 56:
3146#line 624 "dhcp4_lexer.ll"
3147{
3148 switch(driver.ctx_) {
3151 default:
3152 return isc::dhcp::Dhcp4Parser::make_STRING("max_row_errors", driver.loc_);
3153 }
3154}
3155 YY_BREAK
3156case 57:
3158#line 633 "dhcp4_lexer.ll"
3159{
3160 switch(driver.ctx_) {
3166 default:
3167 return isc::dhcp::Dhcp4Parser::make_STRING("valid-lifetime", driver.loc_);
3168 }
3169}
3170 YY_BREAK
3171case 58:
3173#line 645 "dhcp4_lexer.ll"
3174{
3175 switch(driver.ctx_) {
3181 default:
3182 return isc::dhcp::Dhcp4Parser::make_STRING("min-valid-lifetime", driver.loc_);
3183 }
3184}
3185 YY_BREAK
3186case 59:
3188#line 657 "dhcp4_lexer.ll"
3189{
3190 switch(driver.ctx_) {
3196 default:
3197 return isc::dhcp::Dhcp4Parser::make_STRING("max-valid-lifetime", driver.loc_);
3198 }
3199}
3200 YY_BREAK
3201case 60:
3203#line 669 "dhcp4_lexer.ll"
3204{
3205 switch(driver.ctx_) {
3209 return isc::dhcp::Dhcp4Parser::make_RENEW_TIMER(driver.loc_);
3210 default:
3211 return isc::dhcp::Dhcp4Parser::make_STRING("renew-timer", driver.loc_);
3212 }
3213}
3214 YY_BREAK
3215case 61:
3217#line 680 "dhcp4_lexer.ll"
3218{
3219 switch(driver.ctx_) {
3224 default:
3225 return isc::dhcp::Dhcp4Parser::make_STRING("rebind-timer", driver.loc_);
3226 }
3227}
3228 YY_BREAK
3229case 62:
3231#line 691 "dhcp4_lexer.ll"
3232{
3233 switch(driver.ctx_) {
3236 default:
3237 return isc::dhcp::Dhcp4Parser::make_STRING("decline-probation-period", driver.loc_);
3238 }
3239}
3240 YY_BREAK
3241case 63:
3243#line 700 "dhcp4_lexer.ll"
3244{
3245 switch(driver.ctx_) {
3247 return isc::dhcp::Dhcp4Parser::make_SERVER_TAG(driver.loc_);
3248 default:
3249 return isc::dhcp::Dhcp4Parser::make_STRING("server-tag", driver.loc_);
3250 }
3251}
3252 YY_BREAK
3253case 64:
3255#line 709 "dhcp4_lexer.ll"
3256{
3257 switch(driver.ctx_) {
3260 default:
3261 return isc::dhcp::Dhcp4Parser::make_STRING("parked-packet-limit", driver.loc_);
3262 }
3263}
3264 YY_BREAK
3265case 65:
3267#line 718 "dhcp4_lexer.ll"
3268{
3269 switch(driver.ctx_) {
3272 default:
3273 return isc::dhcp::Dhcp4Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3274 }
3275}
3276 YY_BREAK
3277case 66:
3279#line 727 "dhcp4_lexer.ll"
3280{
3281 switch(driver.ctx_) {
3284 default:
3285 return isc::dhcp::Dhcp4Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3286 }
3287}
3288 YY_BREAK
3289case 67:
3291#line 736 "dhcp4_lexer.ll"
3292{
3293 switch(driver.ctx_) {
3298 default:
3299 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-send-updates", driver.loc_);
3300 }
3301}
3302 YY_BREAK
3303case 68:
3305#line 747 "dhcp4_lexer.ll"
3306{
3307 switch(driver.ctx_) {
3312 default:
3313 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-no-update", driver.loc_);
3314 }
3315}
3316 YY_BREAK
3317case 69:
3319#line 758 "dhcp4_lexer.ll"
3320{
3321 switch(driver.ctx_) {
3326 default:
3327 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-client-update", driver.loc_);
3328 }
3329}
3330 YY_BREAK
3331case 70:
3333#line 769 "dhcp4_lexer.ll"
3334{
3335 switch(driver.ctx_) {
3340 default:
3341 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3342 }
3343}
3344 YY_BREAK
3345case 71:
3347#line 780 "dhcp4_lexer.ll"
3348{
3349 switch(driver.ctx_) {
3354 default:
3355 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-generated-prefix", driver.loc_);
3356 }
3357}
3358 YY_BREAK
3359case 72:
3361#line 791 "dhcp4_lexer.ll"
3362{
3363 switch(driver.ctx_) {
3368 default:
3369 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
3370 }
3371}
3372 YY_BREAK
3373case 73:
3375#line 802 "dhcp4_lexer.ll"
3376{
3377 switch(driver.ctx_) {
3382 default:
3383 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-update-on-renew", driver.loc_);
3384 }
3385}
3386 YY_BREAK
3387case 74:
3389#line 813 "dhcp4_lexer.ll"
3390{
3391 switch(driver.ctx_) {
3396 default:
3397 return isc::dhcp::Dhcp4Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
3398 }
3399}
3400 YY_BREAK
3401case 75:
3403#line 824 "dhcp4_lexer.ll"
3404{
3405 switch(driver.ctx_) {
3408 return isc::dhcp::Dhcp4Parser::make_SUBNET4(driver.loc_);
3409 default:
3410 return isc::dhcp::Dhcp4Parser::make_STRING("subnet4", driver.loc_);
3411 }
3412}
3413 YY_BREAK
3414case 76:
3416#line 834 "dhcp4_lexer.ll"
3417{
3418 switch(driver.ctx_) {
3423 default:
3424 return isc::dhcp::Dhcp4Parser::make_STRING("store-extended-info", driver.loc_);
3425 }
3426}
3427 YY_BREAK
3428case 77:
3430#line 845 "dhcp4_lexer.ll"
3431{
3432 switch (driver.ctx_) {
3435 default:
3436 return isc::dhcp::Dhcp4Parser::make_STRING("shared-networks", driver.loc_);
3437 }
3438}
3439 YY_BREAK
3440case 78:
3442#line 854 "dhcp4_lexer.ll"
3443{
3444 switch(driver.ctx_) {
3447 return isc::dhcp::Dhcp4Parser::make_OPTION_DEF(driver.loc_);
3448 default:
3449 return isc::dhcp::Dhcp4Parser::make_STRING("option-def", driver.loc_);
3450 }
3451}
3452 YY_BREAK
3453case 79:
3455#line 864 "dhcp4_lexer.ll"
3456{
3457 switch(driver.ctx_) {
3464 return isc::dhcp::Dhcp4Parser::make_OPTION_DATA(driver.loc_);
3465 default:
3466 return isc::dhcp::Dhcp4Parser::make_STRING("option-data", driver.loc_);
3467 }
3468}
3469 YY_BREAK
3470case 80:
3472#line 878 "dhcp4_lexer.ll"
3473{
3474 switch(driver.ctx_) {
3483 return isc::dhcp::Dhcp4Parser::make_NAME(driver.loc_);
3484 default:
3485 return isc::dhcp::Dhcp4Parser::make_STRING("name", driver.loc_);
3486 }
3487}
3488 YY_BREAK
3489case 81:
3491#line 894 "dhcp4_lexer.ll"
3492{
3493 switch(driver.ctx_) {
3495 return isc::dhcp::Dhcp4Parser::make_DATA(driver.loc_);
3496 default:
3497 return isc::dhcp::Dhcp4Parser::make_STRING("data", driver.loc_);
3498 }
3499}
3500 YY_BREAK
3501case 82:
3503#line 903 "dhcp4_lexer.ll"
3504{
3505 switch(driver.ctx_) {
3507 return isc::dhcp::Dhcp4Parser::make_ALWAYS_SEND(driver.loc_);
3508 default:
3509 return isc::dhcp::Dhcp4Parser::make_STRING("always-send", driver.loc_);
3510 }
3511}
3512 YY_BREAK
3513case 83:
3515#line 912 "dhcp4_lexer.ll"
3516{
3517 switch(driver.ctx_) {
3519 return isc::dhcp::Dhcp4Parser::make_POOLS(driver.loc_);
3520 default:
3521 return isc::dhcp::Dhcp4Parser::make_STRING("pools", driver.loc_);
3522 }
3523}
3524 YY_BREAK
3525case 84:
3527#line 921 "dhcp4_lexer.ll"
3528{
3529 switch(driver.ctx_) {
3531 return isc::dhcp::Dhcp4Parser::make_POOL(driver.loc_);
3532 default:
3533 return isc::dhcp::Dhcp4Parser::make_STRING("pool", driver.loc_);
3534 }
3535}
3536 YY_BREAK
3537case 85:
3539#line 930 "dhcp4_lexer.ll"
3540{
3541 switch(driver.ctx_) {
3557 default:
3558 return isc::dhcp::Dhcp4Parser::make_STRING("user-context", driver.loc_);
3559 }
3560}
3561 YY_BREAK
3562case 86:
3564#line 952 "dhcp4_lexer.ll"
3565{
3566 switch(driver.ctx_) {
3581 return isc::dhcp::Dhcp4Parser::make_COMMENT(driver.loc_);
3582 default:
3583 return isc::dhcp::Dhcp4Parser::make_STRING("comment", driver.loc_);
3584 }
3585}
3586 YY_BREAK
3587case 87:
3589#line 974 "dhcp4_lexer.ll"
3590{
3591 switch(driver.ctx_) {
3593 return isc::dhcp::Dhcp4Parser::make_SUBNET(driver.loc_);
3594 default:
3595 return isc::dhcp::Dhcp4Parser::make_STRING("subnet", driver.loc_);
3596 }
3597}
3598 YY_BREAK
3599case 88:
3601#line 983 "dhcp4_lexer.ll"
3602{
3603 switch(driver.ctx_) {
3606 return isc::dhcp::Dhcp4Parser::make_INTERFACE(driver.loc_);
3607 default:
3608 return isc::dhcp::Dhcp4Parser::make_STRING("interface", driver.loc_);
3609 }
3610}
3611 YY_BREAK
3612case 89:
3614#line 993 "dhcp4_lexer.ll"
3615{
3616 switch(driver.ctx_) {
3618 return isc::dhcp::Dhcp4Parser::make_ID(driver.loc_);
3619 default:
3620 return isc::dhcp::Dhcp4Parser::make_STRING("id", driver.loc_);
3621 }
3622}
3623 YY_BREAK
3624case 90:
3626#line 1002 "dhcp4_lexer.ll"
3627{
3628 switch(driver.ctx_) {
3633 default:
3634 return isc::dhcp::Dhcp4Parser::make_STRING("reservation-mode", driver.loc_);
3635 }
3636}
3637 YY_BREAK
3638case 91:
3640#line 1013 "dhcp4_lexer.ll"
3641{
3642 switch(driver.ctx_) {
3644 return isc::dhcp::Dhcp4Parser::make_DISABLED(driver.loc_);
3645 default:
3646 return isc::dhcp::Dhcp4Parser::make_STRING("disabled", driver.loc_);
3647 }
3648}
3649 YY_BREAK
3650case 92:
3652#line 1022 "dhcp4_lexer.ll"
3653{
3654 switch(driver.ctx_) {
3656 return isc::dhcp::Dhcp4Parser::make_DISABLED(driver.loc_);
3657 default:
3658 return isc::dhcp::Dhcp4Parser::make_STRING("off", driver.loc_);
3659 }
3660}
3661 YY_BREAK
3662case 93:
3664#line 1031 "dhcp4_lexer.ll"
3665{
3666 switch(driver.ctx_) {
3668 return isc::dhcp::Dhcp4Parser::make_OUT_OF_POOL(driver.loc_);
3669 default:
3670 return isc::dhcp::Dhcp4Parser::make_STRING("out-of-pool", driver.loc_);
3671 }
3672}
3673 YY_BREAK
3674case 94:
3676#line 1040 "dhcp4_lexer.ll"
3677{
3678 switch(driver.ctx_) {
3680 return isc::dhcp::Dhcp4Parser::make_GLOBAL(driver.loc_);
3681 default:
3682 return isc::dhcp::Dhcp4Parser::make_STRING("global", driver.loc_);
3683 }
3684}
3685 YY_BREAK
3686case 95:
3688#line 1049 "dhcp4_lexer.ll"
3689{
3690 switch(driver.ctx_) {
3692 return isc::dhcp::Dhcp4Parser::make_ALL(driver.loc_);
3693 default:
3694 return isc::dhcp::Dhcp4Parser::make_STRING("all", driver.loc_);
3695 }
3696}
3697 YY_BREAK
3698case 96:
3700#line 1058 "dhcp4_lexer.ll"
3701{
3702 switch(driver.ctx_) {
3707 default:
3708 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-global", driver.loc_);
3709 }
3710}
3711 YY_BREAK
3712case 97:
3714#line 1069 "dhcp4_lexer.ll"
3715{
3716 switch(driver.ctx_) {
3721 default:
3722 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-in-subnet", driver.loc_);
3723 }
3724}
3725 YY_BREAK
3726case 98:
3728#line 1080 "dhcp4_lexer.ll"
3729{
3730 switch(driver.ctx_) {
3735 default:
3736 return isc::dhcp::Dhcp4Parser::make_STRING("reservations-out-of-pool", driver.loc_);
3737 }
3738}
3739 YY_BREAK
3740case 99:
3742#line 1091 "dhcp4_lexer.ll"
3743{
3744 switch(driver.ctx_) {
3747 return isc::dhcp::Dhcp4Parser::make_CODE(driver.loc_);
3748 default:
3749 return isc::dhcp::Dhcp4Parser::make_STRING("code", driver.loc_);
3750 }
3751}
3752 YY_BREAK
3753case 100:
3755#line 1101 "dhcp4_lexer.ll"
3756{
3757 switch(driver.ctx_) {
3760 default:
3761 return isc::dhcp::Dhcp4Parser::make_STRING("host-reservation-identifiers", driver.loc_);
3762 }
3763}
3764 YY_BREAK
3765case 101:
3767#line 1110 "dhcp4_lexer.ll"
3768{
3769 switch(driver.ctx_) {
3774 default:
3775 return isc::dhcp::Dhcp4Parser::make_STRING("calculate-tee-times", driver.loc_);
3776 }
3777}
3778 YY_BREAK
3779case 102:
3781#line 1121 "dhcp4_lexer.ll"
3782{
3783 switch(driver.ctx_) {
3787 return isc::dhcp::Dhcp4Parser::make_T1_PERCENT(driver.loc_);
3788 default:
3789 return isc::dhcp::Dhcp4Parser::make_STRING("t1-percent", driver.loc_);
3790 }
3791}
3792 YY_BREAK
3793case 103:
3795#line 1132 "dhcp4_lexer.ll"
3796{
3797 switch(driver.ctx_) {
3801 return isc::dhcp::Dhcp4Parser::make_T2_PERCENT(driver.loc_);
3802 default:
3803 return isc::dhcp::Dhcp4Parser::make_STRING("t2-percent", driver.loc_);
3804 }
3805}
3806 YY_BREAK
3807case 104:
3809#line 1143 "dhcp4_lexer.ll"
3810{
3811 switch(driver.ctx_) {
3816 default:
3817 return isc::dhcp::Dhcp4Parser::make_STRING("cache-threshold", driver.loc_);
3818 }
3819}
3820 YY_BREAK
3821case 105:
3823#line 1154 "dhcp4_lexer.ll"
3824{
3825 switch(driver.ctx_) {
3830 default:
3831 return isc::dhcp::Dhcp4Parser::make_STRING("cache-max-age", driver.loc_);
3832 }
3833}
3834 YY_BREAK
3835case 106:
3837#line 1166 "dhcp4_lexer.ll"
3838{
3839 switch(driver.ctx_) {
3841 return isc::dhcp::Dhcp4Parser::make_LOGGERS(driver.loc_);
3842 default:
3843 return isc::dhcp::Dhcp4Parser::make_STRING("loggers", driver.loc_);
3844 }
3845}
3846 YY_BREAK
3847case 107:
3849#line 1175 "dhcp4_lexer.ll"
3850{
3851 switch(driver.ctx_) {
3854 default:
3855 return isc::dhcp::Dhcp4Parser::make_STRING("output_options", driver.loc_);
3856 }
3857}
3858 YY_BREAK
3859case 108:
3861#line 1184 "dhcp4_lexer.ll"
3862{
3863 switch(driver.ctx_) {
3865 return isc::dhcp::Dhcp4Parser::make_OUTPUT(driver.loc_);
3866 default:
3867 return isc::dhcp::Dhcp4Parser::make_STRING("output", driver.loc_);
3868 }
3869}
3870 YY_BREAK
3871case 109:
3873#line 1193 "dhcp4_lexer.ll"
3874{
3875 switch(driver.ctx_) {
3877 return isc::dhcp::Dhcp4Parser::make_DEBUGLEVEL(driver.loc_);
3878 default:
3879 return isc::dhcp::Dhcp4Parser::make_STRING("debuglevel", driver.loc_);
3880 }
3881}
3882 YY_BREAK
3883case 110:
3885#line 1202 "dhcp4_lexer.ll"
3886{
3887 switch(driver.ctx_) {
3889 return isc::dhcp::Dhcp4Parser::make_FLUSH(driver.loc_);
3890 default:
3891 return isc::dhcp::Dhcp4Parser::make_STRING("flush", driver.loc_);
3892 }
3893}
3894 YY_BREAK
3895case 111:
3897#line 1211 "dhcp4_lexer.ll"
3898{
3899 switch(driver.ctx_) {
3901 return isc::dhcp::Dhcp4Parser::make_MAXSIZE(driver.loc_);
3902 default:
3903 return isc::dhcp::Dhcp4Parser::make_STRING("maxsize", driver.loc_);
3904 }
3905}
3906 YY_BREAK
3907case 112:
3909#line 1220 "dhcp4_lexer.ll"
3910{
3911 switch(driver.ctx_) {
3913 return isc::dhcp::Dhcp4Parser::make_MAXVER(driver.loc_);
3914 default:
3915 return isc::dhcp::Dhcp4Parser::make_STRING("maxver", driver.loc_);
3916 }
3917}
3918 YY_BREAK
3919case 113:
3921#line 1229 "dhcp4_lexer.ll"
3922{
3923 switch(driver.ctx_) {
3925 return isc::dhcp::Dhcp4Parser::make_PATTERN(driver.loc_);
3926 default:
3927 return isc::dhcp::Dhcp4Parser::make_STRING("pattern", driver.loc_);
3928 }
3929}
3930 YY_BREAK
3931case 114:
3933#line 1238 "dhcp4_lexer.ll"
3934{
3935 switch(driver.ctx_) {
3937 return isc::dhcp::Dhcp4Parser::make_SEVERITY(driver.loc_);
3938 default:
3939 return isc::dhcp::Dhcp4Parser::make_STRING("severity", driver.loc_);
3940 }
3941}
3942 YY_BREAK
3943case 115:
3945#line 1247 "dhcp4_lexer.ll"
3946{
3947 switch(driver.ctx_) {
3951 default:
3952 return isc::dhcp::Dhcp4Parser::make_STRING("client-classes", driver.loc_);
3953 }
3954}
3955 YY_BREAK
3956case 116:
3958#line 1257 "dhcp4_lexer.ll"
3959{
3960 switch(driver.ctx_) {
3965 default:
3966 return isc::dhcp::Dhcp4Parser::make_STRING("require-client-classes", driver.loc_);
3967 }
3968}
3969 YY_BREAK
3970case 117:
3972#line 1268 "dhcp4_lexer.ll"
3973{
3974 switch(driver.ctx_) {
3980 default:
3981 return isc::dhcp::Dhcp4Parser::make_STRING("client-class", driver.loc_);
3982 }
3983}
3984 YY_BREAK
3985case 118:
3987#line 1280 "dhcp4_lexer.ll"
3988{
3989 switch(driver.ctx_) {
3991 return isc::dhcp::Dhcp4Parser::make_TEST(driver.loc_);
3992 default:
3993 return isc::dhcp::Dhcp4Parser::make_STRING("test", driver.loc_);
3994 }
3995}
3996 YY_BREAK
3997case 119:
3999#line 1289 "dhcp4_lexer.ll"
4000{
4001 switch(driver.ctx_) {
4004 default:
4005 return isc::dhcp::Dhcp4Parser::make_STRING("only-if-required", driver.loc_);
4006 }
4007}
4008 YY_BREAK
4009case 120:
4011#line 1298 "dhcp4_lexer.ll"
4012{
4013 switch(driver.ctx_) {
4017 default:
4018 return isc::dhcp::Dhcp4Parser::make_STRING("reservations", driver.loc_);
4019 }
4020}
4021 YY_BREAK
4022case 121:
4024#line 1308 "dhcp4_lexer.ll"
4025{
4026 switch(driver.ctx_) {
4029 return isc::dhcp::Dhcp4Parser::make_DUID(driver.loc_);
4030 default:
4031 return isc::dhcp::Dhcp4Parser::make_STRING("duid", driver.loc_);
4032 }
4033}
4034 YY_BREAK
4035case 122:
4037#line 1318 "dhcp4_lexer.ll"
4038{
4039 switch(driver.ctx_) {
4042 return isc::dhcp::Dhcp4Parser::make_HW_ADDRESS(driver.loc_);
4043 default:
4044 return isc::dhcp::Dhcp4Parser::make_STRING("hw-address", driver.loc_);
4045 }
4046}
4047 YY_BREAK
4048case 123:
4050#line 1328 "dhcp4_lexer.ll"
4051{
4052 switch(driver.ctx_) {
4055 return isc::dhcp::Dhcp4Parser::make_CLIENT_ID(driver.loc_);
4056 default:
4057 return isc::dhcp::Dhcp4Parser::make_STRING("client-id", driver.loc_);
4058 }
4059}
4060 YY_BREAK
4061case 124:
4063#line 1338 "dhcp4_lexer.ll"
4064{
4065 switch(driver.ctx_) {
4068 return isc::dhcp::Dhcp4Parser::make_CIRCUIT_ID(driver.loc_);
4069 default:
4070 return isc::dhcp::Dhcp4Parser::make_STRING("circuit-id", driver.loc_);
4071 }
4072}
4073 YY_BREAK
4074case 125:
4076#line 1348 "dhcp4_lexer.ll"
4077{
4078 switch(driver.ctx_) {
4081 return isc::dhcp::Dhcp4Parser::make_FLEX_ID(driver.loc_);
4082 default:
4083 return isc::dhcp::Dhcp4Parser::make_STRING("flex-id", driver.loc_);
4084 }
4085}
4086 YY_BREAK
4087case 126:
4089#line 1358 "dhcp4_lexer.ll"
4090{
4091 switch(driver.ctx_) {
4093 return isc::dhcp::Dhcp4Parser::make_HOSTNAME(driver.loc_);
4094 default:
4095 return isc::dhcp::Dhcp4Parser::make_STRING("hostname", driver.loc_);
4096 }
4097}
4098 YY_BREAK
4099case 127:
4101#line 1367 "dhcp4_lexer.ll"
4102{
4103 switch(driver.ctx_) {
4106 return isc::dhcp::Dhcp4Parser::make_SPACE(driver.loc_);
4107 default:
4108 return isc::dhcp::Dhcp4Parser::make_STRING("space", driver.loc_);
4109 }
4110}
4111 YY_BREAK
4112case 128:
4114#line 1377 "dhcp4_lexer.ll"
4115{
4116 switch(driver.ctx_) {
4118 return isc::dhcp::Dhcp4Parser::make_CSV_FORMAT(driver.loc_);
4119 default:
4120 return isc::dhcp::Dhcp4Parser::make_STRING("csv-format", driver.loc_);
4121 }
4122}
4123 YY_BREAK
4124case 129:
4126#line 1386 "dhcp4_lexer.ll"
4127{
4128 switch(driver.ctx_) {
4131 default:
4132 return isc::dhcp::Dhcp4Parser::make_STRING("record-types", driver.loc_);
4133 }
4134}
4135 YY_BREAK
4136case 130:
4138#line 1395 "dhcp4_lexer.ll"
4139{
4140 switch(driver.ctx_) {
4142 return isc::dhcp::Dhcp4Parser::make_ENCAPSULATE(driver.loc_);
4143 default:
4144 return isc::dhcp::Dhcp4Parser::make_STRING("encapsulate", driver.loc_);
4145 }
4146}
4147 YY_BREAK
4148case 131:
4150#line 1404 "dhcp4_lexer.ll"
4151{
4152 switch(driver.ctx_) {
4154 return isc::dhcp::Dhcp4Parser::make_ARRAY(driver.loc_);
4155 default:
4156 return isc::dhcp::Dhcp4Parser::make_STRING("array", driver.loc_);
4157 }
4158}
4159 YY_BREAK
4160case 132:
4162#line 1413 "dhcp4_lexer.ll"
4163{
4164 switch(driver.ctx_) {
4167 return isc::dhcp::Dhcp4Parser::make_RELAY(driver.loc_);
4168 default:
4169 return isc::dhcp::Dhcp4Parser::make_STRING("relay", driver.loc_);
4170 }
4171}
4172 YY_BREAK
4173case 133:
4175#line 1423 "dhcp4_lexer.ll"
4176{
4177 switch(driver.ctx_) {
4180 return isc::dhcp::Dhcp4Parser::make_IP_ADDRESS(driver.loc_);
4181 default:
4182 return isc::dhcp::Dhcp4Parser::make_STRING("ip-address", driver.loc_);
4183 }
4184}
4185 YY_BREAK
4186case 134:
4188#line 1433 "dhcp4_lexer.ll"
4189{
4190 switch(driver.ctx_) {
4193 default:
4194 return isc::dhcp::Dhcp4Parser::make_STRING("ip-addresses", driver.loc_);
4195 }
4196}
4197 YY_BREAK
4198case 135:
4200#line 1442 "dhcp4_lexer.ll"
4201{
4202 switch(driver.ctx_) {
4205 default:
4206 return isc::dhcp::Dhcp4Parser::make_STRING("hooks-libraries", driver.loc_);
4207 }
4208}
4209 YY_BREAK
4210case 136:
4212#line 1452 "dhcp4_lexer.ll"
4213{
4214 switch(driver.ctx_) {
4216 return isc::dhcp::Dhcp4Parser::make_PARAMETERS(driver.loc_);
4217 default:
4218 return isc::dhcp::Dhcp4Parser::make_STRING("parameters", driver.loc_);
4219 }
4220}
4221 YY_BREAK
4222case 137:
4224#line 1461 "dhcp4_lexer.ll"
4225{
4226 switch(driver.ctx_) {
4228 return isc::dhcp::Dhcp4Parser::make_LIBRARY(driver.loc_);
4229 default:
4230 return isc::dhcp::Dhcp4Parser::make_STRING("library", driver.loc_);
4231 }
4232}
4233 YY_BREAK
4234case 138:
4236#line 1470 "dhcp4_lexer.ll"
4237{
4238 switch(driver.ctx_) {
4241 default:
4242 return isc::dhcp::Dhcp4Parser::make_STRING("expired-leases-processing", driver.loc_);
4243 }
4244}
4245 YY_BREAK
4246case 139:
4248#line 1479 "dhcp4_lexer.ll"
4249{
4250 switch(driver.ctx_) {
4253 default:
4254 return isc::dhcp::Dhcp4Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
4255 }
4256}
4257 YY_BREAK
4258case 140:
4260#line 1488 "dhcp4_lexer.ll"
4261{
4262 switch(driver.ctx_) {
4265 default:
4266 return isc::dhcp::Dhcp4Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
4267 }
4268}
4269 YY_BREAK
4270case 141:
4272#line 1497 "dhcp4_lexer.ll"
4273{
4274 switch(driver.ctx_) {
4277 default:
4278 return isc::dhcp::Dhcp4Parser::make_STRING("hold-reclaimed-time", driver.loc_);
4279 }
4280}
4281 YY_BREAK
4282case 142:
4284#line 1506 "dhcp4_lexer.ll"
4285{
4286 switch(driver.ctx_) {
4289 default:
4290 return isc::dhcp::Dhcp4Parser::make_STRING("max-reclaim-leases", driver.loc_);
4291 }
4292}
4293 YY_BREAK
4294case 143:
4296#line 1515 "dhcp4_lexer.ll"
4297{
4298 switch(driver.ctx_) {
4301 default:
4302 return isc::dhcp::Dhcp4Parser::make_STRING("max-reclaim-time", driver.loc_);
4303 }
4304}
4305 YY_BREAK
4306case 144:
4308#line 1524 "dhcp4_lexer.ll"
4309{
4310 switch(driver.ctx_) {
4313 default:
4314 return isc::dhcp::Dhcp4Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
4315 }
4316}
4317 YY_BREAK
4318case 145:
4320#line 1533 "dhcp4_lexer.ll"
4321{
4322 switch(driver.ctx_) {
4325 default:
4326 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp4o6-port", driver.loc_);
4327 }
4328}
4329 YY_BREAK
4330case 146:
4332#line 1542 "dhcp4_lexer.ll"
4333{
4334 switch(driver.ctx_) {
4337 default:
4338 return isc::dhcp::Dhcp4Parser::make_STRING("multi-threading", driver.loc_);
4339 }
4340}
4341 YY_BREAK
4342case 147:
4344#line 1551 "dhcp4_lexer.ll"
4345{
4346 switch(driver.ctx_) {
4349 default:
4350 return isc::dhcp::Dhcp4Parser::make_STRING("enable-multi-threading", driver.loc_);
4351 }
4352}
4353 YY_BREAK
4354case 148:
4356#line 1560 "dhcp4_lexer.ll"
4357{
4358 switch(driver.ctx_) {
4361 default:
4362 return isc::dhcp::Dhcp4Parser::make_STRING("thread-pool-size", driver.loc_);
4363 }
4364}
4365 YY_BREAK
4366case 149:
4368#line 1569 "dhcp4_lexer.ll"
4369{
4370 switch(driver.ctx_) {
4373 default:
4374 return isc::dhcp::Dhcp4Parser::make_STRING("packet-queue-size", driver.loc_);
4375 }
4376}
4377 YY_BREAK
4378case 150:
4380#line 1578 "dhcp4_lexer.ll"
4381{
4382 switch(driver.ctx_) {
4385 default:
4386 return isc::dhcp::Dhcp4Parser::make_STRING("control-socket", driver.loc_);
4387 }
4388}
4389 YY_BREAK
4390case 151:
4392#line 1587 "dhcp4_lexer.ll"
4393{
4394 switch(driver.ctx_) {
4396 return isc::dhcp::Dhcp4Parser::make_SOCKET_TYPE(driver.loc_);
4397 default:
4398 return isc::dhcp::Dhcp4Parser::make_STRING("socket-type", driver.loc_);
4399 }
4400}
4401 YY_BREAK
4402case 152:
4404#line 1596 "dhcp4_lexer.ll"
4405{
4406 switch(driver.ctx_) {
4408 return isc::dhcp::Dhcp4Parser::make_SOCKET_NAME(driver.loc_);
4409 default:
4410 return isc::dhcp::Dhcp4Parser::make_STRING("socket-name", driver.loc_);
4411 }
4412}
4413 YY_BREAK
4414case 153:
4416#line 1605 "dhcp4_lexer.ll"
4417{
4418 switch(driver.ctx_) {
4421 default:
4422 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-queue-control", driver.loc_);
4423 }
4424}
4425 YY_BREAK
4426case 154:
4428#line 1614 "dhcp4_lexer.ll"
4429{
4430 switch(driver.ctx_) {
4433 default:
4434 return isc::dhcp::Dhcp4Parser::make_STRING("enable-queue", driver.loc_);
4435 }
4436}
4437 YY_BREAK
4438case 155:
4440#line 1623 "dhcp4_lexer.ll"
4441{
4442 switch(driver.ctx_) {
4444 return isc::dhcp::Dhcp4Parser::make_QUEUE_TYPE(driver.loc_);
4445 default:
4446 return isc::dhcp::Dhcp4Parser::make_STRING("queue-type", driver.loc_);
4447 }
4448}
4449 YY_BREAK
4450case 156:
4452#line 1632 "dhcp4_lexer.ll"
4453{
4454 switch(driver.ctx_) {
4456 return isc::dhcp::Dhcp4Parser::make_CAPACITY(driver.loc_);
4457 default:
4458 return isc::dhcp::Dhcp4Parser::make_STRING("capacity", driver.loc_);
4459 }
4460}
4461 YY_BREAK
4462case 157:
4464#line 1641 "dhcp4_lexer.ll"
4465{
4466 switch(driver.ctx_) {
4468 return isc::dhcp::Dhcp4Parser::make_DHCP_DDNS(driver.loc_);
4469 default:
4470 return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-ddns", driver.loc_);
4471 }
4472}
4473 YY_BREAK
4474case 158:
4476#line 1650 "dhcp4_lexer.ll"
4477{
4478 switch(driver.ctx_) {
4481 default:
4482 return isc::dhcp::Dhcp4Parser::make_STRING("enable-updates", driver.loc_);
4483 }
4484}
4485 YY_BREAK
4486case 159:
4488#line 1659 "dhcp4_lexer.ll"
4489{
4490 switch(driver.ctx_) {
4493 default:
4494 return isc::dhcp::Dhcp4Parser::make_STRING("qualifying-suffix", driver.loc_);
4495 }
4496}
4497 YY_BREAK
4498case 160:
4500#line 1668 "dhcp4_lexer.ll"
4501{
4502 switch(driver.ctx_) {
4504 return isc::dhcp::Dhcp4Parser::make_SERVER_IP(driver.loc_);
4505 default:
4506 return isc::dhcp::Dhcp4Parser::make_STRING("server-ip", driver.loc_);
4507 }
4508}
4509 YY_BREAK
4510case 161:
4512#line 1677 "dhcp4_lexer.ll"
4513{
4514 switch(driver.ctx_) {
4516 return isc::dhcp::Dhcp4Parser::make_SERVER_PORT(driver.loc_);
4517 default:
4518 return isc::dhcp::Dhcp4Parser::make_STRING("server-port", driver.loc_);
4519 }
4520}
4521 YY_BREAK
4522case 162:
4524#line 1686 "dhcp4_lexer.ll"
4525{
4526 switch(driver.ctx_) {
4528 return isc::dhcp::Dhcp4Parser::make_SENDER_IP(driver.loc_);
4529 default:
4530 return isc::dhcp::Dhcp4Parser::make_STRING("sender-ip", driver.loc_);
4531 }
4532}
4533 YY_BREAK
4534case 163:
4536#line 1695 "dhcp4_lexer.ll"
4537{
4538 switch(driver.ctx_) {
4540 return isc::dhcp::Dhcp4Parser::make_SENDER_PORT(driver.loc_);
4541 default:
4542 return isc::dhcp::Dhcp4Parser::make_STRING("sender-port", driver.loc_);
4543 }
4544}
4545 YY_BREAK
4546case 164:
4548#line 1704 "dhcp4_lexer.ll"
4549{
4550 switch(driver.ctx_) {
4553 default:
4554 return isc::dhcp::Dhcp4Parser::make_STRING("max-queue-size", driver.loc_);
4555 }
4556}
4557 YY_BREAK
4558case 165:
4560#line 1713 "dhcp4_lexer.ll"
4561{
4562 switch(driver.ctx_) {
4565 default:
4566 return isc::dhcp::Dhcp4Parser::make_STRING("ncr-protocol", driver.loc_);
4567 }
4568}
4569 YY_BREAK
4570case 166:
4572#line 1722 "dhcp4_lexer.ll"
4573{
4574 switch(driver.ctx_) {
4576 return isc::dhcp::Dhcp4Parser::make_NCR_FORMAT(driver.loc_);
4577 default:
4578 return isc::dhcp::Dhcp4Parser::make_STRING("ncr-format", driver.loc_);
4579 }
4580}
4581 YY_BREAK
4582case 167:
4584#line 1731 "dhcp4_lexer.ll"
4585{
4586 switch(driver.ctx_) {
4589 default:
4590 return isc::dhcp::Dhcp4Parser::make_STRING("override-no-update", driver.loc_);
4591 }
4592}
4593 YY_BREAK
4594case 168:
4596#line 1740 "dhcp4_lexer.ll"
4597{
4598 switch(driver.ctx_) {
4601 default:
4602 return isc::dhcp::Dhcp4Parser::make_STRING("override-client-update", driver.loc_);
4603 }
4604}
4605 YY_BREAK
4606case 169:
4608#line 1749 "dhcp4_lexer.ll"
4609{
4610 switch(driver.ctx_) {
4613 default:
4614 return isc::dhcp::Dhcp4Parser::make_STRING("replace-client-name", driver.loc_);
4615 }
4616}
4617 YY_BREAK
4618case 170:
4620#line 1758 "dhcp4_lexer.ll"
4621{
4622 switch(driver.ctx_) {
4625 default:
4626 return isc::dhcp::Dhcp4Parser::make_STRING("generated-prefix", driver.loc_);
4627 }
4628}
4629 YY_BREAK
4630case 171:
4632#line 1767 "dhcp4_lexer.ll"
4633{
4634 switch(driver.ctx_) {
4640 default:
4641 return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-set", driver.loc_);
4642 }
4643}
4644 YY_BREAK
4645case 172:
4647#line 1779 "dhcp4_lexer.ll"
4648{
4649 switch(driver.ctx_) {
4655 default:
4656 return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-replacement", driver.loc_);
4657 }
4658}
4659 YY_BREAK
4660case 173:
4662#line 1791 "dhcp4_lexer.ll"
4663{
4664 /* dhcp-ddns value keywords are case insensitive */
4665 if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
4666 return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_);
4667 }
4668 std::string tmp(yytext+1);
4669 tmp.resize(tmp.size() - 1);
4670 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4671}
4672 YY_BREAK
4673case 174:
4675#line 1801 "dhcp4_lexer.ll"
4676{
4677 /* dhcp-ddns value keywords are case insensitive */
4678 if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
4679 return isc::dhcp::Dhcp4Parser::make_TCP(driver.loc_);
4680 }
4681 std::string tmp(yytext+1);
4682 tmp.resize(tmp.size() - 1);
4683 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4684}
4685 YY_BREAK
4686case 175:
4688#line 1811 "dhcp4_lexer.ll"
4689{
4690 /* dhcp-ddns value keywords are case insensitive */
4691 if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
4692 return isc::dhcp::Dhcp4Parser::make_JSON(driver.loc_);
4693 }
4694 std::string tmp(yytext+1);
4695 tmp.resize(tmp.size() - 1);
4696 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4697}
4698 YY_BREAK
4699case 176:
4701#line 1821 "dhcp4_lexer.ll"
4702{
4703 /* dhcp-ddns value keywords are case insensitive */
4706 }
4707 std::string tmp(yytext+1);
4708 tmp.resize(tmp.size() - 1);
4709 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4710}
4711 YY_BREAK
4712case 177:
4714#line 1831 "dhcp4_lexer.ll"
4715{
4716 /* dhcp-ddns value keywords are case insensitive */
4719 }
4720 std::string tmp(yytext+1);
4721 tmp.resize(tmp.size() - 1);
4722 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4723}
4724 YY_BREAK
4725case 178:
4727#line 1841 "dhcp4_lexer.ll"
4728{
4729 /* dhcp-ddns value keywords are case insensitive */
4731 return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
4732 }
4733 std::string tmp(yytext+1);
4734 tmp.resize(tmp.size() - 1);
4735 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4736}
4737 YY_BREAK
4738case 179:
4740#line 1851 "dhcp4_lexer.ll"
4741{
4742 /* dhcp-ddns value keywords are case insensitive */
4744 return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
4745 }
4746 std::string tmp(yytext+1);
4747 tmp.resize(tmp.size() - 1);
4748 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4749}
4750 YY_BREAK
4751case 180:
4753#line 1861 "dhcp4_lexer.ll"
4754{
4755 /* dhcp-ddns value keywords are case insensitive */
4757 return isc::dhcp::Dhcp4Parser::make_ALWAYS(driver.loc_);
4758 }
4759 std::string tmp(yytext+1);
4760 tmp.resize(tmp.size() - 1);
4761 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4762}
4763 YY_BREAK
4764case 181:
4766#line 1871 "dhcp4_lexer.ll"
4767{
4768 /* dhcp-ddns value keywords are case insensitive */
4771 }
4772 std::string tmp(yytext+1);
4773 tmp.resize(tmp.size() - 1);
4774 return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4775}
4776 YY_BREAK
4777case 182:
4779#line 1881 "dhcp4_lexer.ll"
4780{
4781 switch(driver.ctx_) {
4784 default:
4785 return isc::dhcp::Dhcp4Parser::make_STRING("4o6-interface", driver.loc_);
4786 }
4787}
4788 YY_BREAK
4789case 183:
4791#line 1890 "dhcp4_lexer.ll"
4792{
4793 switch(driver.ctx_) {
4796 default:
4797 return isc::dhcp::Dhcp4Parser::make_STRING("4o6-interface-id", driver.loc_);
4798 }
4799}
4800 YY_BREAK
4801case 184:
4803#line 1899 "dhcp4_lexer.ll"
4804{
4805 switch(driver.ctx_) {
4808 default:
4809 return isc::dhcp::Dhcp4Parser::make_STRING("4o6-subnet", driver.loc_);
4810 }
4811}
4812 YY_BREAK
4813case 185:
4815#line 1908 "dhcp4_lexer.ll"
4816{
4817 switch(driver.ctx_) {
4820 default:
4821 return isc::dhcp::Dhcp4Parser::make_STRING("echo-client-id", driver.loc_);
4822 }
4823}
4824 YY_BREAK
4825case 186:
4827#line 1917 "dhcp4_lexer.ll"
4828{
4829 switch(driver.ctx_) {
4834 default:
4835 return isc::dhcp::Dhcp4Parser::make_STRING("match-client-id", driver.loc_);
4836 }
4837}
4838 YY_BREAK
4839case 187:
4841#line 1928 "dhcp4_lexer.ll"
4842{
4843 switch(driver.ctx_) {
4848 default:
4849 return isc::dhcp::Dhcp4Parser::make_STRING("authoritative", driver.loc_);
4850 }
4851}
4852 YY_BREAK
4853case 188:
4855#line 1939 "dhcp4_lexer.ll"
4856{
4857 switch(driver.ctx_) {
4863 return isc::dhcp::Dhcp4Parser::make_NEXT_SERVER(driver.loc_);
4864 default:
4865 return isc::dhcp::Dhcp4Parser::make_STRING("next-server", driver.loc_);
4866 }
4867}
4868 YY_BREAK
4869case 189:
4871#line 1952 "dhcp4_lexer.ll"
4872{
4873 switch(driver.ctx_) {
4880 default:
4881 return isc::dhcp::Dhcp4Parser::make_STRING("server-hostname", driver.loc_);
4882 }
4883}
4884 YY_BREAK
4885case 190:
4887#line 1965 "dhcp4_lexer.ll"
4888{
4889 switch(driver.ctx_) {
4896 default:
4897 return isc::dhcp::Dhcp4Parser::make_STRING("boot-file-name", driver.loc_);
4898 }
4899}
4900 YY_BREAK
4901case 191:
4903#line 1978 "dhcp4_lexer.ll"
4904{
4905 switch(driver.ctx_) {
4908 default:
4909 return isc::dhcp::Dhcp4Parser::make_STRING("ip-reservations-unique", driver.loc_);
4910 }
4911}
4912 YY_BREAK
4913case 192:
4915#line 1987 "dhcp4_lexer.ll"
4916{
4917 switch(driver.ctx_) {
4920 default:
4921 return isc::dhcp::Dhcp4Parser::make_STRING("compatibility", driver.loc_);
4922 }
4923}
4924 YY_BREAK
4925case 193:
4927#line 1996 "dhcp4_lexer.ll"
4928{
4929 switch(driver.ctx_) {
4932 default:
4933 return isc::dhcp::Dhcp4Parser::make_STRING("lenient-option-parsing", driver.loc_);
4934 }
4935}
4936 YY_BREAK
4937case 194:
4939#line 2005 "dhcp4_lexer.ll"
4940{
4941 /* A string has been matched. It contains the actual string and single quotes.
4942 We need to get those quotes out of the way and just use its content, e.g.
4943 for 'foo' we should get foo */
4944 std::string raw(yytext+1);
4945 size_t len = raw.size() - 1;
4946 raw.resize(len);
4947 std::string decoded;
4948 decoded.reserve(len);
4949 for (size_t pos = 0; pos < len; ++pos) {
4950 int b = 0;
4951 char c = raw[pos];
4952 switch (c) {
4953 case '"':
4954 /* impossible condition */
4955 driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
4956 break;
4957 case '\\':
4958 ++pos;
4959 if (pos >= len) {
4960 /* impossible condition */
4961 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
4962 }
4963 c = raw[pos];
4964 switch (c) {
4965 case '"':
4966 case '\\':
4967 case '/':
4968 decoded.push_back(c);
4969 break;
4970 case 'b':
4971 decoded.push_back('\b');
4972 break;
4973 case 'f':
4974 decoded.push_back('\f');
4975 break;
4976 case 'n':
4977 decoded.push_back('\n');
4978 break;
4979 case 'r':
4980 decoded.push_back('\r');
4981 break;
4982 case 't':
4983 decoded.push_back('\t');
4984 break;
4985 case 'u':
4986 /* support only \u0000 to \u00ff */
4987 ++pos;
4988 if (pos + 4 > len) {
4989 /* impossible condition */
4990 driver.error(driver.loc_,
4991 "Overflow unicode escape in \"" + raw + "\"");
4992 }
4993 if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
4994 driver.error(driver.loc_,
4995 "Unsupported unicode escape in \"" + raw + "\"",
4996 pos + 1);
4997 }
4998 pos += 2;
4999 c = raw[pos];
5000 if ((c >= '0') && (c <= '9')) {
5001 b = (c - '0') << 4;
5002 } else if ((c >= 'A') && (c <= 'F')) {
5003 b = (c - 'A' + 10) << 4;
5004 } else if ((c >= 'a') && (c <= 'f')) {
5005 b = (c - 'a' + 10) << 4;
5006 } else {
5007 /* impossible condition */
5008 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5009 }
5010 pos++;
5011 c = raw[pos];
5012 if ((c >= '0') && (c <= '9')) {
5013 b |= c - '0';
5014 } else if ((c >= 'A') && (c <= 'F')) {
5015 b |= c - 'A' + 10;
5016 } else if ((c >= 'a') && (c <= 'f')) {
5017 b |= c - 'a' + 10;
5018 } else {
5019 /* impossible condition */
5020 driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5021 }
5022 decoded.push_back(static_cast<char>(b & 0xff));
5023 break;
5024 default:
5025 /* impossible condition */
5026 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5027 }
5028 break;
5029 default:
5030 if ((c >= 0) && (c < 0x20)) {
5031 /* impossible condition */
5032 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5033 }
5034 decoded.push_back(c);
5035 }
5036 }
5037
5038 return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_);
5039}
5040 YY_BREAK
5041case 195:
5042/* rule 195 can match eol */
5044#line 2106 "dhcp4_lexer.ll"
5045{
5046 /* Bad string with a forbidden control character inside */
5047 std::string raw(yytext+1);
5048 size_t len = raw.size() - 1;
5049 size_t pos = 0;
5050 for (; pos < len; ++pos) {
5051 char c = raw[pos];
5052 if ((c >= 0) && (c < 0x20)) {
5053 break;
5054 }
5055 }
5056 driver.error(driver.loc_,
5057 "Invalid control in " + std::string(yytext),
5058 pos + 1);
5059}
5060 YY_BREAK
5061case 196:
5062/* rule 196 can match eol */
5064#line 2122 "dhcp4_lexer.ll"
5065{
5066 /* Bad string with a bad escape inside */
5067 std::string raw(yytext+1);
5068 size_t len = raw.size() - 1;
5069 size_t pos = 0;
5070 bool found = false;
5071 for (; pos < len; ++pos) {
5072 if (found) {
5073 break;
5074 }
5075 char c = raw[pos];
5076 if (c == '\\') {
5077 ++pos;
5078 c = raw[pos];
5079 switch (c) {
5080 case '"':
5081 case '\\':
5082 case '/':
5083 case 'b':
5084 case 'f':
5085 case 'n':
5086 case 'r':
5087 case 't':
5088 break;
5089 case 'u':
5090 if ((pos + 4 > len) ||
5091 !std::isxdigit(raw[pos + 1]) ||
5092 !std::isxdigit(raw[pos + 2]) ||
5093 !std::isxdigit(raw[pos + 3]) ||
5094 !std::isxdigit(raw[pos + 4])) {
5095 found = true;
5096 }
5097 break;
5098 default:
5099 found = true;
5100 break;
5101 }
5102 }
5103 }
5104 /* The rule stops on the first " including on \" so add ... in this case */
5105 std::string trailer = "";
5106 if (raw[len - 1] == '\\') {
5107 trailer = "...";
5108 }
5109 driver.error(driver.loc_,
5110 "Bad escape in " + std::string(yytext) + trailer,
5111 pos);
5112}
5113 YY_BREAK
5114case 197:
5116#line 2171 "dhcp4_lexer.ll"
5117{
5118 /* Bad string with an open escape at the end */
5119 std::string raw(yytext+1);
5120 driver.error(driver.loc_,
5121 "Overflow escape in " + std::string(yytext),
5122 raw.size() + 1);
5123}
5124 YY_BREAK
5125case 198:
5127#line 2179 "dhcp4_lexer.ll"
5128{
5129 /* Bad string with an open unicode escape at the end */
5130 std::string raw(yytext+1);
5131 size_t pos = raw.size() - 1;
5132 for (; pos > 0; --pos) {
5133 char c = raw[pos];
5134 if (c == 'u') {
5135 break;
5136 }
5137 }
5138 driver.error(driver.loc_,
5139 "Overflow unicode escape in " + std::string(yytext),
5140 pos + 1);
5141}
5142 YY_BREAK
5143case 199:
5145#line 2194 "dhcp4_lexer.ll"
5146{ return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
5147 YY_BREAK
5148case 200:
5150#line 2195 "dhcp4_lexer.ll"
5151{ return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
5152 YY_BREAK
5153case 201:
5155#line 2196 "dhcp4_lexer.ll"
5156{ return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
5157 YY_BREAK
5158case 202:
5160#line 2197 "dhcp4_lexer.ll"
5161{ return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
5162 YY_BREAK
5163case 203:
5165#line 2198 "dhcp4_lexer.ll"
5166{ return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
5167 YY_BREAK
5168case 204:
5170#line 2199 "dhcp4_lexer.ll"
5171{ return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
5172 YY_BREAK
5173case 205:
5175#line 2201 "dhcp4_lexer.ll"
5176{
5177 /* An integer was found. */
5178 std::string tmp(yytext);
5179 int64_t integer = 0;
5180 try {
5181 /* In substring we want to use negative values (e.g. -1).
5182 In enterprise-id we need to use values up to 0xffffffff.
5183 To cover both of those use cases, we need at least
5184 int64_t. */
5185 integer = boost::lexical_cast<int64_t>(tmp);
5186 } catch (const boost::bad_lexical_cast &) {
5187 driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5188 }
5189
5190 /* The parser needs the string form as double conversion is no lossless */
5191 return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_);
5192}
5193 YY_BREAK
5194case 206:
5196#line 2219 "dhcp4_lexer.ll"
5197{
5198 /* A floating point was found. */
5199 std::string tmp(yytext);
5200 double fp = 0.0;
5201 try {
5202 fp = boost::lexical_cast<double>(tmp);
5203 } catch (const boost::bad_lexical_cast &) {
5204 driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
5205 }
5206
5207 return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_);
5208}
5209 YY_BREAK
5210case 207:
5212#line 2232 "dhcp4_lexer.ll"
5213{
5214 string tmp(yytext);
5215 return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
5216}
5217 YY_BREAK
5218case 208:
5220#line 2237 "dhcp4_lexer.ll"
5221{
5222 return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
5223}
5224 YY_BREAK
5225case 209:
5227#line 2241 "dhcp4_lexer.ll"
5228driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
5229 YY_BREAK
5230case 210:
5232#line 2243 "dhcp4_lexer.ll"
5233driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
5234 YY_BREAK
5235case 211:
5237#line 2245 "dhcp4_lexer.ll"
5238driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
5239 YY_BREAK
5240case 212:
5242#line 2247 "dhcp4_lexer.ll"
5243driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
5244 YY_BREAK
5245case YY_STATE_EOF(INITIAL):
5246#line 2249 "dhcp4_lexer.ll"
5247{
5248 if (driver.states_.empty()) {
5249 return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
5250 }
5251 driver.loc_ = driver.locs_.back();
5252 driver.locs_.pop_back();
5253 driver.file_ = driver.files_.back();
5254 driver.files_.pop_back();
5255 if (driver.sfile_) {
5256 fclose(driver.sfile_);
5257 driver.sfile_ = 0;
5258 }
5259 if (!driver.sfiles_.empty()) {
5260 driver.sfile_ = driver.sfiles_.back();
5261 driver.sfiles_.pop_back();
5262 }
5263 parser4__delete_buffer(YY_CURRENT_BUFFER);
5264 parser4__switch_to_buffer(driver.states_.back());
5265 driver.states_.pop_back();
5266
5267 BEGIN(DIR_EXIT);
5268}
5269 YY_BREAK
5270case 213:
5272#line 2272 "dhcp4_lexer.ll"
5273ECHO;
5274 YY_BREAK
5275#line 5275 "dhcp4_lexer.cc"
5276
5277 case YY_END_OF_BUFFER:
5278 {
5279 /* Amount of text matched not including the EOB char. */
5280 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5281
5282 /* Undo the effects of YY_DO_BEFORE_ACTION. */
5283 *yy_cp = (yy_hold_char);
5285
5286 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5287 {
5288 /* We're scanning a new file or input source. It's
5289 * possible that this happened because the user
5290 * just pointed yyin at a new source and called
5291 * yylex(). If so, then we have to assure
5292 * consistency between YY_CURRENT_BUFFER and our
5293 * globals. Here is the right place to do so, because
5294 * this is the first action (other than possibly a
5295 * back-up) that will match for the new input source.
5296 */
5297 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5298/* %if-c-only */
5299 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
5300/* %endif */
5301/* %if-c++-only */
5302/* %endif */
5303 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5304 }
5305
5306 /* Note that here we test for yy_c_buf_p "<=" to the position
5307 * of the first EOB in the buffer, since yy_c_buf_p will
5308 * already have been incremented past the NUL character
5309 * (since all states make transitions on EOB to the
5310 * end-of-buffer state). Contrast this with the test
5311 * in input().
5312 */
5313 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5314 { /* This was really a NUL. */
5315 yy_state_type yy_next_state;
5316
5317 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5318
5319 yy_current_state = yy_get_previous_state( );
5320
5321 /* Okay, we're now positioned to make the NUL
5322 * transition. We couldn't have
5323 * yy_get_previous_state() go ahead and do it
5324 * for us because it doesn't know how to deal
5325 * with the possibility of jamming (and we don't
5326 * want to build jamming into it because then it
5327 * will run more slowly).
5328 */
5329
5330 yy_next_state = yy_try_NUL_trans( yy_current_state );
5331
5333
5334 if ( yy_next_state )
5335 {
5336 /* Consume the NUL. */
5337 yy_cp = ++(yy_c_buf_p);
5338 yy_current_state = yy_next_state;
5339 goto yy_match;
5340 }
5341
5342 else
5343 {
5344/* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
5345 yy_cp = (yy_last_accepting_cpos);
5346 yy_current_state = (yy_last_accepting_state);
5347 goto yy_find_action;
5348 }
5349 }
5350
5351 else switch ( yy_get_next_buffer( ) )
5352 {
5354 {
5355 (yy_did_buffer_switch_on_eof) = 0;
5356
5357 if ( yywrap( ) )
5358 {
5359 /* Note: because we've taken care in
5360 * yy_get_next_buffer() to have set up
5361 * yytext, we can now set up
5362 * yy_c_buf_p so that if some total
5363 * hoser (like flex itself) wants to
5364 * call the scanner after we return the
5365 * YY_NULL, it'll still work - another
5366 * YY_NULL will get returned.
5367 */
5368 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5369
5371 goto do_action;
5372 }
5373
5374 else
5375 {
5376 if ( ! (yy_did_buffer_switch_on_eof) )
5378 }
5379 break;
5380 }
5381
5383 (yy_c_buf_p) =
5384 (yytext_ptr) + yy_amount_of_matched_text;
5385
5386 yy_current_state = yy_get_previous_state( );
5387
5388 yy_cp = (yy_c_buf_p);
5390 goto yy_match;
5391
5392 case EOB_ACT_LAST_MATCH:
5393 (yy_c_buf_p) =
5394 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5395
5396 yy_current_state = yy_get_previous_state( );
5397
5398 yy_cp = (yy_c_buf_p);
5400 goto yy_find_action;
5401 }
5402 break;
5403 }
5404
5405 default:
5407 "fatal flex scanner internal error--no action found" );
5408 } /* end of action switch */
5409 } /* end of scanning one token */
5410 } /* end of user's declarations */
5411} /* end of yylex */
5412/* %ok-for-header */
5413
5414/* %if-c++-only */
5415/* %not-for-header */
5416/* %ok-for-header */
5417
5418/* %endif */
5419
5420/* yy_get_next_buffer - try to read in a new buffer
5421 *
5422 * Returns a code representing an action:
5423 * EOB_ACT_LAST_MATCH -
5424 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5425 * EOB_ACT_END_OF_FILE - end of file
5426 */
5427/* %if-c-only */
5428static int yy_get_next_buffer (void)
5429/* %endif */
5430/* %if-c++-only */
5431/* %endif */
5432{
5433 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5434 char *source = (yytext_ptr);
5435 int number_to_move, i;
5436 int ret_val;
5437
5438 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
5440 "fatal flex scanner internal error--end of buffer missed" );
5441
5442 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
5443 { /* Don't try to fill the buffer, so this is an EOF. */
5444 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
5445 {
5446 /* We matched a single character, the EOB, so
5447 * treat this as a final EOF.
5448 */
5449 return EOB_ACT_END_OF_FILE;
5450 }
5451
5452 else
5453 {
5454 /* We matched some text prior to the EOB, first
5455 * process it.
5456 */
5457 return EOB_ACT_LAST_MATCH;
5458 }
5459 }
5460
5461 /* Try to read more data. */
5462
5463 /* First move last chars to start of buffer. */
5464 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
5465
5466 for ( i = 0; i < number_to_move; ++i )
5467 *(dest++) = *(source++);
5468
5469 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
5470 /* don't do the read, it's not guaranteed to return an EOF,
5471 * just force an EOF
5472 */
5473 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
5474
5475 else
5476 {
5477 int num_to_read =
5478 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
5479
5480 while ( num_to_read <= 0 )
5481 { /* Not enough room in the buffer - grow it. */
5482
5483 /* just a shorter name for the current buffer */
5485
5486 int yy_c_buf_p_offset =
5487 (int) ((yy_c_buf_p) - b->yy_ch_buf);
5488
5489 if ( b->yy_is_our_buffer )
5490 {
5491 int new_size = b->yy_buf_size * 2;
5492
5493 if ( new_size <= 0 )
5494 b->yy_buf_size += b->yy_buf_size / 8;
5495 else
5496 b->yy_buf_size *= 2;
5497
5498 b->yy_ch_buf = (char *)
5499 /* Include room in for 2 EOB chars. */
5500 yyrealloc( (void *) b->yy_ch_buf,
5501 (yy_size_t) (b->yy_buf_size + 2) );
5502 }
5503 else
5504 /* Can't grow it, we don't own it. */
5505 b->yy_ch_buf = NULL;
5506
5507 if ( ! b->yy_ch_buf )
5509 "fatal error - scanner input buffer overflow" );
5510
5511 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
5512
5513 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
5514 number_to_move - 1;
5515
5516 }
5517
5518 if ( num_to_read > YY_READ_BUF_SIZE )
5519 num_to_read = YY_READ_BUF_SIZE;
5520
5521 /* Read in more data. */
5522 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
5523 (yy_n_chars), num_to_read );
5524
5525 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5526 }
5527
5528 if ( (yy_n_chars) == 0 )
5529 {
5530 if ( number_to_move == YY_MORE_ADJ )
5531 {
5532 ret_val = EOB_ACT_END_OF_FILE;
5533 yyrestart( yyin );
5534 }
5535
5536 else
5537 {
5538 ret_val = EOB_ACT_LAST_MATCH;
5539 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
5541 }
5542 }
5543
5544 else
5545 ret_val = EOB_ACT_CONTINUE_SCAN;
5546
5547 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
5548 /* Extend the array by 50%, plus the number we really need. */
5549 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
5550 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
5551 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
5552 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
5553 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
5554 /* "- 2" to take care of EOB's */
5555 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
5556 }
5557
5558 (yy_n_chars) += number_to_move;
5559 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
5560 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
5561
5562 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
5563
5564 return ret_val;
5565}
5566
5567/* yy_get_previous_state - get the state just before the EOB char was reached */
5568
5569/* %if-c-only */
5570/* %not-for-header */
5571 static yy_state_type yy_get_previous_state (void)
5572/* %endif */
5573/* %if-c++-only */
5574/* %endif */
5575{
5576 yy_state_type yy_current_state;
5577 char *yy_cp;
5578
5579/* %% [15.0] code to get the start state into yy_current_state goes here */
5580 yy_current_state = (yy_start);
5581
5582 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
5583 {
5584/* %% [16.0] code to find the next state goes here */
5585 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
5586 if ( yy_accept[yy_current_state] )
5587 {
5588 (yy_last_accepting_state) = yy_current_state;
5589 (yy_last_accepting_cpos) = yy_cp;
5590 }
5591 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5592 {
5593 yy_current_state = (int) yy_def[yy_current_state];
5594 if ( yy_current_state >= 2007 )
5595 yy_c = yy_meta[yy_c];
5596 }
5597 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5598 }
5599
5600 return yy_current_state;
5601}
5602
5603/* yy_try_NUL_trans - try to make a transition on the NUL character
5604 *
5605 * synopsis
5606 * next_state = yy_try_NUL_trans( current_state );
5607 */
5608/* %if-c-only */
5609 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
5610/* %endif */
5611/* %if-c++-only */
5612/* %endif */
5613{
5614 int yy_is_jam;
5615 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
5616 char *yy_cp = (yy_c_buf_p);
5617
5618 YY_CHAR yy_c = 1;
5619 if ( yy_accept[yy_current_state] )
5620 {
5621 (yy_last_accepting_state) = yy_current_state;
5622 (yy_last_accepting_cpos) = yy_cp;
5623 }
5624 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5625 {
5626 yy_current_state = (int) yy_def[yy_current_state];
5627 if ( yy_current_state >= 2007 )
5628 yy_c = yy_meta[yy_c];
5629 }
5630 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5631 yy_is_jam = (yy_current_state == 2006);
5632
5633 return yy_is_jam ? 0 : yy_current_state;
5634}
5635
5636#ifndef YY_NO_UNPUT
5637/* %if-c-only */
5638
5639/* %endif */
5640#endif
5641
5642/* %if-c-only */
5643#ifndef YY_NO_INPUT
5644#ifdef __cplusplus
5645 static int yyinput (void)
5646#else
5647 static int input (void)
5648#endif
5649
5650/* %endif */
5651/* %if-c++-only */
5652/* %endif */
5653{
5654 int c;
5655
5656 *(yy_c_buf_p) = (yy_hold_char);
5657
5658 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
5659 {
5660 /* yy_c_buf_p now points to the character we want to return.
5661 * If this occurs *before* the EOB characters, then it's a
5662 * valid NUL; if not, then we've hit the end of the buffer.
5663 */
5664 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5665 /* This was really a NUL. */
5666 *(yy_c_buf_p) = '\0';
5667
5668 else
5669 { /* need more input */
5670 int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
5671 ++(yy_c_buf_p);
5672
5673 switch ( yy_get_next_buffer( ) )
5674 {
5675 case EOB_ACT_LAST_MATCH:
5676 /* This happens because yy_g_n_b()
5677 * sees that we've accumulated a
5678 * token and flags that we need to
5679 * try matching the token before
5680 * proceeding. But for input(),
5681 * there's no matching to consider.
5682 * So convert the EOB_ACT_LAST_MATCH
5683 * to EOB_ACT_END_OF_FILE.
5684 */
5685
5686 /* Reset buffer status. */
5687 yyrestart( yyin );
5688
5689 /*FALLTHROUGH*/
5690
5692 {
5693 if ( yywrap( ) )
5694 return 0;
5695
5696 if ( ! (yy_did_buffer_switch_on_eof) )
5698#ifdef __cplusplus
5699 return yyinput();
5700#else
5701 return input();
5702#endif
5703 }
5704
5706 (yy_c_buf_p) = (yytext_ptr) + offset;
5707 break;
5708 }
5709 }
5710 }
5711
5712 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
5713 *(yy_c_buf_p) = '\0'; /* preserve yytext */
5714 (yy_hold_char) = *++(yy_c_buf_p);
5715
5716/* %% [19.0] update BOL and yylineno */
5717
5718 return c;
5719}
5720/* %if-c-only */
5721#endif /* ifndef YY_NO_INPUT */
5722/* %endif */
5723
5729/* %if-c-only */
5730 void yyrestart (FILE * input_file )
5731/* %endif */
5732/* %if-c++-only */
5733/* %endif */
5734{
5735
5736 if ( ! YY_CURRENT_BUFFER ){
5740 }
5741
5742 yy_init_buffer( YY_CURRENT_BUFFER, input_file );
5744}
5745
5746/* %if-c++-only */
5747/* %endif */
5748
5753/* %if-c-only */
5755/* %endif */
5756/* %if-c++-only */
5757/* %endif */
5758{
5759
5760 /* TODO. We should be able to replace this entire function body
5761 * with
5762 * yypop_buffer_state();
5763 * yypush_buffer_state(new_buffer);
5764 */
5766 if ( YY_CURRENT_BUFFER == new_buffer )
5767 return;
5768
5769 if ( YY_CURRENT_BUFFER )
5770 {
5771 /* Flush out information for old buffer. */
5772 *(yy_c_buf_p) = (yy_hold_char);
5773 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
5774 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5775 }
5776
5777 YY_CURRENT_BUFFER_LVALUE = new_buffer;
5779
5780 /* We don't actually know whether we did this switch during
5781 * EOF (yywrap()) processing, but the only time this flag
5782 * is looked at is after yywrap() is called, so it's safe
5783 * to go ahead and always set it.
5784 */
5785 (yy_did_buffer_switch_on_eof) = 1;
5786}
5787
5788/* %if-c-only */
5789static void yy_load_buffer_state (void)
5790/* %endif */
5791/* %if-c++-only */
5792/* %endif */
5793{
5794 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5795 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
5796/* %if-c-only */
5797 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
5798/* %endif */
5799/* %if-c++-only */
5800/* %endif */
5801 (yy_hold_char) = *(yy_c_buf_p);
5802}
5803
5810/* %if-c-only */
5811 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
5812/* %endif */
5813/* %if-c++-only */
5814/* %endif */
5815{
5817
5818 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
5819 if ( ! b )
5820 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5821
5822 b->yy_buf_size = size;
5823
5824 /* yy_ch_buf has to be 2 characters longer than the size given because
5825 * we need to put in 2 end-of-buffer characters.
5826 */
5827 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
5828 if ( ! b->yy_ch_buf )
5829 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5830
5831 b->yy_is_our_buffer = 1;
5832
5833 yy_init_buffer( b, file );
5834
5835 return b;
5836}
5837
5838/* %if-c++-only */
5839/* %endif */
5840
5845/* %if-c-only */
5847/* %endif */
5848/* %if-c++-only */
5849/* %endif */
5850{
5851
5852 if ( ! b )
5853 return;
5854
5855 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
5857
5858 if ( b->yy_is_our_buffer )
5859 yyfree( (void *) b->yy_ch_buf );
5860
5861 yyfree( (void *) b );
5862}
5863
5864/* Initializes or reinitializes a buffer.
5865 * This function is sometimes called more than once on the same buffer,
5866 * such as during a yyrestart() or at EOF.
5867 */
5868/* %if-c-only */
5869 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
5870/* %endif */
5871/* %if-c++-only */
5872/* %endif */
5873
5874{
5875 int oerrno = errno;
5876
5877 yy_flush_buffer( b );
5878
5879/* %if-c-only */
5880 b->yy_input_file = file;
5881/* %endif */
5882/* %if-c++-only */
5883/* %endif */
5884 b->yy_fill_buffer = 1;
5885
5886 /* If b is the current buffer, then yy_init_buffer was _probably_
5887 * called from yyrestart() or through yy_get_next_buffer.
5888 * In that case, we don't want to reset the lineno or column.
5889 */
5890 if (b != YY_CURRENT_BUFFER){
5891 b->yy_bs_lineno = 1;
5892 b->yy_bs_column = 0;
5893 }
5894
5895/* %if-c-only */
5896
5897 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
5898
5899/* %endif */
5900/* %if-c++-only */
5901/* %endif */
5902 errno = oerrno;
5903}
5904
5909/* %if-c-only */
5911/* %endif */
5912/* %if-c++-only */
5913/* %endif */
5914{
5915 if ( ! b )
5916 return;
5917
5918 b->yy_n_chars = 0;
5919
5920 /* We always need two end-of-buffer characters. The first causes
5921 * a transition to the end-of-buffer state. The second causes
5922 * a jam in that state.
5923 */
5926
5927 b->yy_buf_pos = &b->yy_ch_buf[0];
5928
5929 b->yy_at_bol = 1;
5931
5932 if ( b == YY_CURRENT_BUFFER )
5934}
5935
5936/* %if-c-or-c++ */
5943/* %if-c-only */
5945/* %endif */
5946/* %if-c++-only */
5947/* %endif */
5948{
5949 if (new_buffer == NULL)
5950 return;
5951
5953
5954 /* This block is copied from yy_switch_to_buffer. */
5955 if ( YY_CURRENT_BUFFER )
5956 {
5957 /* Flush out information for old buffer. */
5958 *(yy_c_buf_p) = (yy_hold_char);
5959 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
5960 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5961 }
5962
5963 /* Only push if top exists. Otherwise, replace top. */
5965 (yy_buffer_stack_top)++;
5966 YY_CURRENT_BUFFER_LVALUE = new_buffer;
5967
5968 /* copied from yy_switch_to_buffer. */
5970 (yy_did_buffer_switch_on_eof) = 1;
5971}
5972/* %endif */
5973
5974/* %if-c-or-c++ */
5979/* %if-c-only */
5980void yypop_buffer_state (void)
5981/* %endif */
5982/* %if-c++-only */
5983/* %endif */
5984{
5985 if (!YY_CURRENT_BUFFER)
5986 return;
5987
5990 if ((yy_buffer_stack_top) > 0)
5991 --(yy_buffer_stack_top);
5992
5993 if (YY_CURRENT_BUFFER) {
5995 (yy_did_buffer_switch_on_eof) = 1;
5996 }
5997}
5998/* %endif */
5999
6000/* %if-c-or-c++ */
6001/* Allocates the stack if it does not exist.
6002 * Guarantees space for at least one push.
6003 */
6004/* %if-c-only */
6005static void yyensure_buffer_stack (void)
6006/* %endif */
6007/* %if-c++-only */
6008/* %endif */
6009{
6010 yy_size_t num_to_alloc;
6011
6012 if (!(yy_buffer_stack)) {
6013
6014 /* First allocation is just for 2 elements, since we don't know if this
6015 * scanner will even need a stack. We use 2 instead of 1 to avoid an
6016 * immediate realloc on the next call.
6017 */
6018 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
6019 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
6020 (num_to_alloc * sizeof(struct yy_buffer_state*)
6021 );
6022 if ( ! (yy_buffer_stack) )
6023 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6024
6025 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
6026
6027 (yy_buffer_stack_max) = num_to_alloc;
6028 (yy_buffer_stack_top) = 0;
6029 return;
6030 }
6031
6032 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
6033
6034 /* Increase the buffer to prepare for a possible push. */
6035 yy_size_t grow_size = 8 /* arbitrary grow size */;
6036
6037 num_to_alloc = (yy_buffer_stack_max) + grow_size;
6038 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
6039 ((yy_buffer_stack),
6040 num_to_alloc * sizeof(struct yy_buffer_state*)
6041 );
6042 if ( ! (yy_buffer_stack) )
6043 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
6044
6045 /* zero only the new slots.*/
6046 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
6047 (yy_buffer_stack_max) = num_to_alloc;
6048 }
6049}
6050/* %endif */
6051
6052/* %if-c-only */
6060{
6062
6063 if ( size < 2 ||
6064 base[size-2] != YY_END_OF_BUFFER_CHAR ||
6065 base[size-1] != YY_END_OF_BUFFER_CHAR )
6066 /* They forgot to leave room for the EOB's. */
6067 return NULL;
6068
6069 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6070 if ( ! b )
6071 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
6072
6073 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
6074 b->yy_buf_pos = b->yy_ch_buf = base;
6075 b->yy_is_our_buffer = 0;
6076 b->yy_input_file = NULL;
6077 b->yy_n_chars = b->yy_buf_size;
6078 b->yy_is_interactive = 0;
6079 b->yy_at_bol = 1;
6080 b->yy_fill_buffer = 0;
6082
6084
6085 return b;
6086}
6087/* %endif */
6088
6089/* %if-c-only */
6098YY_BUFFER_STATE yy_scan_string (const char * yystr )
6099{
6100
6101 return yy_scan_bytes( yystr, (int) strlen(yystr) );
6102}
6103/* %endif */
6104
6105/* %if-c-only */
6113YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
6114{
6116 char *buf;
6117 yy_size_t n;
6118 int i;
6119
6120 /* Get memory for full buffer, including space for trailing EOB's. */
6121 n = (yy_size_t) (_yybytes_len + 2);
6122 buf = (char *) yyalloc( n );
6123 if ( ! buf )
6124 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
6125
6126 for ( i = 0; i < _yybytes_len; ++i )
6127 buf[i] = yybytes[i];
6128
6129 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
6130
6131 b = yy_scan_buffer( buf, n );
6132 if ( ! b )
6133 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
6134
6135 /* It's okay to grow etc. this buffer, and we should throw it
6136 * away when we're done.
6137 */
6138 b->yy_is_our_buffer = 1;
6139
6140 return b;
6141}
6142/* %endif */
6143
6144#ifndef YY_EXIT_FAILURE
6145#define YY_EXIT_FAILURE 2
6146#endif
6147
6148/* %if-c-only */
6149static void yynoreturn yy_fatal_error (const char* msg )
6150{
6151 fprintf( stderr, "%s\n", msg );
6152 exit( YY_EXIT_FAILURE );
6153}
6154/* %endif */
6155/* %if-c++-only */
6156/* %endif */
6157
6158/* Redefine yyless() so it works in section 3 code. */
6159
6160#undef yyless
6161#define yyless(n) \
6162 do \
6163 { \
6164 /* Undo effects of setting up yytext. */ \
6165 int yyless_macro_arg = (n); \
6166 YY_LESS_LINENO(yyless_macro_arg);\
6167 yytext[yyleng] = (yy_hold_char); \
6168 (yy_c_buf_p) = yytext + yyless_macro_arg; \
6169 (yy_hold_char) = *(yy_c_buf_p); \
6170 *(yy_c_buf_p) = '\0'; \
6171 yyleng = yyless_macro_arg; \
6172 } \
6173 while ( 0 )
6174
6175/* Accessor methods (get/set functions) to struct members. */
6176
6177/* %if-c-only */
6178/* %if-reentrant */
6179/* %endif */
6180
6184int yyget_lineno (void)
6185{
6186
6187 return yylineno;
6188}
6189
6193FILE *yyget_in (void)
6194{
6195 return yyin;
6196}
6197
6201FILE *yyget_out (void)
6202{
6203 return yyout;
6204}
6205
6209int yyget_leng (void)
6210{
6211 return yyleng;
6212}
6213
6218char *yyget_text (void)
6219{
6220 return yytext;
6221}
6222
6223/* %if-reentrant */
6224/* %endif */
6225
6230void yyset_lineno (int _line_number )
6231{
6232
6233 yylineno = _line_number;
6234}
6235
6242void yyset_in (FILE * _in_str )
6243{
6244 yyin = _in_str ;
6245}
6246
6247void yyset_out (FILE * _out_str )
6248{
6249 yyout = _out_str ;
6250}
6251
6252int yyget_debug (void)
6253{
6254 return yy_flex_debug;
6255}
6256
6257void yyset_debug (int _bdebug )
6258{
6259 yy_flex_debug = _bdebug ;
6260}
6261
6262/* %endif */
6263
6264/* %if-reentrant */
6265/* %if-bison-bridge */
6266/* %endif */
6267/* %endif if-c-only */
6268
6269/* %if-c-only */
6270static int yy_init_globals (void)
6271{
6272 /* Initialization is the same as for the non-reentrant scanner.
6273 * This function is called from yylex_destroy(), so don't allocate here.
6274 */
6275
6276 (yy_buffer_stack) = NULL;
6277 (yy_buffer_stack_top) = 0;
6278 (yy_buffer_stack_max) = 0;
6279 (yy_c_buf_p) = NULL;
6280 (yy_init) = 0;
6281 (yy_start) = 0;
6282
6283/* Defined in main.c */
6284#ifdef YY_STDINIT
6285 yyin = stdin;
6286 yyout = stdout;
6287#else
6288 yyin = NULL;
6289 yyout = NULL;
6290#endif
6291
6292 /* For future reference: Set errno on error, since we are called by
6293 * yylex_init()
6294 */
6295 return 0;
6296}
6297/* %endif */
6298
6299/* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
6300/* yylex_destroy is for both reentrant and non-reentrant scanners. */
6301int yylex_destroy (void)
6302{
6303
6304 /* Pop the buffer stack, destroying each element. */
6305 while(YY_CURRENT_BUFFER){
6309 }
6310
6311 /* Destroy the stack itself. */
6312 yyfree((yy_buffer_stack) );
6313 (yy_buffer_stack) = NULL;
6314
6315 /* Reset the globals. This is important in a non-reentrant scanner so the next time
6316 * yylex() is called, initialization will occur. */
6317 yy_init_globals( );
6318
6319/* %if-reentrant */
6320/* %endif */
6321 return 0;
6322}
6323/* %endif */
6324
6325/*
6326 * Internal utility routines.
6327 */
6328
6329#ifndef yytext_ptr
6330static void yy_flex_strncpy (char* s1, const char * s2, int n )
6331{
6332
6333 int i;
6334 for ( i = 0; i < n; ++i )
6335 s1[i] = s2[i];
6336}
6337#endif
6338
6339#ifdef YY_NEED_STRLEN
6340static int yy_flex_strlen (const char * s )
6341{
6342 int n;
6343 for ( n = 0; s[n]; ++n )
6344 ;
6345
6346 return n;
6347}
6348#endif
6349
6350void *yyalloc (yy_size_t size )
6351{
6352 return malloc(size);
6353}
6354
6355void *yyrealloc (void * ptr, yy_size_t size )
6356{
6357
6358 /* The cast to (char *) in the following accommodates both
6359 * implementations that use char* generic pointers, and those
6360 * that use void* generic pointers. It works with the latter
6361 * because both ANSI C and C++ allow castless assignment from
6362 * any pointer type to void*, and deal with argument conversions
6363 * as though doing an assignment.
6364 */
6365 return realloc(ptr, size);
6366}
6367
6368void yyfree (void * ptr )
6369{
6370 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
6371}
6372
6373/* %if-tables-serialization definitions */
6374/* %define-yytables The name for this specific scanner's tables. */
6375#define YYTABLES_NAME "yytables"
6376/* %endif */
6377
6378/* %ok-for-header */
6379
6380#line 2272 "dhcp4_lexer.ll"
6381
6382
6383using namespace isc::dhcp;
6384
6385void
6386Parser4Context::scanStringBegin(const std::string& str, ParserType parser_type)
6387{
6388 start_token_flag = true;
6389 start_token_value = parser_type;
6390
6391 file_ = "<string>";
6392 sfile_ = 0;
6393 loc_.initialize(&file_);
6394 yy_flex_debug = trace_scanning_;
6395 YY_BUFFER_STATE buffer;
6396 buffer = parser4__scan_bytes(str.c_str(), str.size());
6397 if (!buffer) {
6398 fatal("cannot scan string");
6399 /* fatal() throws an exception so this can't be reached */
6400 }
6401}
6402
6403void
6405 const std::string& filename,
6406 ParserType parser_type)
6407{
6408 start_token_flag = true;
6409 start_token_value = parser_type;
6410
6411 file_ = filename;
6412 sfile_ = f;
6413 loc_.initialize(&file_);
6414 yy_flex_debug = trace_scanning_;
6415 YY_BUFFER_STATE buffer;
6416
6417 /* See dhcp4_lexer.cc header for available definitions */
6418 buffer = parser4__create_buffer(f, 65536 /*buffer size*/);
6419 if (!buffer) {
6420 fatal("cannot scan file " + filename);
6421 }
6422 parser4__switch_to_buffer(buffer);
6423}
6424
6425void
6427 if (sfile_)
6428 fclose(sfile_);
6429 sfile_ = 0;
6430 static_cast<void>(parser4_lex_destroy());
6431 /* Close files */
6432 while (!sfiles_.empty()) {
6433 FILE* f = sfiles_.back();
6434 if (f) {
6435 fclose(f);
6436 }
6437 sfiles_.pop_back();
6438 }
6439 /* Delete states */
6440 while (!states_.empty()) {
6441 parser4__delete_buffer(states_.back());
6442 states_.pop_back();
6443 }
6444}
6445
6446void
6447Parser4Context::includeFile(const std::string& filename) {
6448 if (states_.size() > 10) {
6449 fatal("Too many nested include.");
6450 }
6451
6452 FILE* f = fopen(filename.c_str(), "r");
6453 if (!f) {
6454 fatal("Can't open include file " + filename);
6455 }
6456 if (sfile_) {
6457 sfiles_.push_back(sfile_);
6458 }
6459 sfile_ = f;
6460 states_.push_back(YY_CURRENT_BUFFER);
6461 YY_BUFFER_STATE buffer;
6462 buffer = parser4__create_buffer(f, 65536 /*buffer size*/);
6463 if (!buffer) {
6464 fatal( "Can't scan include file " + filename);
6465 }
6466 parser4__switch_to_buffer(buffer);
6467 files_.push_back(file_);
6468 file_ = filename;
6469 locs_.push_back(loc_);
6470 loc_.initialize(&file_);
6471
6472 BEGIN(INITIAL);
6473}
6474
6475namespace {
6477class Dummy {
6478 /* cppcheck-suppress unusedPrivateFunction */
6479 void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
6480};
6481}
6482#endif /* !__clang_analyzer__ */
6483
unsigned char flex_uint8_t
Definition: agent_lexer.cc:335
short int flex_int16_t
Definition: agent_lexer.cc:333
int flex_int32_t
Definition: agent_lexer.cc:334
int yy_state_type
Definition: agent_lexer.cc:660
flex_uint8_t YY_CHAR
Definition: agent_lexer.cc:656
size_t yy_size_t
Definition: agent_lexer.cc:451
Evaluation error exception raised when trying to parse.
static symbol_type make_SOCKET_NAME(const location_type &l)
static symbol_type make_KEYSPACE(const location_type &l)
static symbol_type make_PERSIST(const location_type &l)
static symbol_type make_FLUSH_RECLAIMED_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_SUBNET_4O6_INTERFACE_ID(const location_type &l)
static symbol_type make_SUB_INTERFACES4(const location_type &l)
static symbol_type make_END(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_COUNT(const location_type &l)
static symbol_type make_IP_RESERVATIONS_UNIQUE(const location_type &l)
static symbol_type make_CONTROL_SOCKET(const location_type &l)
static symbol_type make_THREAD_POOL_SIZE(const location_type &l)
static symbol_type make_GENERATED_PREFIX(const location_type &l)
static symbol_type make_SUB_OPTION_DATA(const location_type &l)
static symbol_type make_NAME(const location_type &l)
static symbol_type make_MATCH_CLIENT_ID(const location_type &l)
static symbol_type make_SERIAL_CONSISTENCY(const location_type &l)
static symbol_type make_MAX_RECLAIM_LEASES(const location_type &l)
static symbol_type make_STORE_EXTENDED_INFO(const location_type &l)
static symbol_type make_OVERRIDE_CLIENT_UPDATE(const location_type &l)
static symbol_type make_LFC_INTERVAL(const location_type &l)
static symbol_type make_HOLD_RECLAIMED_TIME(const location_type &l)
static symbol_type make_MEMFILE(const location_type &l)
static symbol_type make_CONNECT_TIMEOUT(const location_type &l)
static symbol_type make_OPTION_DEF(const location_type &l)
static symbol_type make_NULL_TYPE(const location_type &l)
static symbol_type make_OUTPUT_OPTIONS(const location_type &l)
static symbol_type make_ALL(const location_type &l)
static symbol_type make_SENDER_PORT(const location_type &l)
static symbol_type make_CACHE_MAX_AGE(const location_type &l)
static symbol_type make_NCR_PROTOCOL(const location_type &l)
static symbol_type make_CALCULATE_TEE_TIMES(const location_type &l)
static symbol_type make_RE_DETECT(const location_type &l)
static symbol_type make_RELAY(const location_type &l)
static symbol_type make_MAX_VALID_LIFETIME(const location_type &l)
static symbol_type make_SERVER_HOSTNAME(const location_type &l)
static symbol_type make_CQL(const location_type &l)
static symbol_type make_TEST(const location_type &l)
static symbol_type make_RECONNECT_WAIT_TIME(const location_type &l)
static symbol_type make_DHCP_MULTI_THREADING(const location_type &l)
static symbol_type make_ARRAY(const location_type &l)
static symbol_type make_SOCKET_TYPE(const location_type &l)
static symbol_type make_SPACE(const location_type &l)
static symbol_type make_HW_ADDRESS(const location_type &l)
static symbol_type make_MAX_RECLAIM_TIME(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_REPLACEMENT(const location_type &l)
static symbol_type make_VALID_LIFETIME(const location_type &l)
static symbol_type make_MAXVER(const location_type &l)
static symbol_type make_BOOLEAN(const bool &v, const location_type &l)
static symbol_type make_INTERFACE(const location_type &l)
static symbol_type make_REBIND_TIMER(const location_type &l)
static symbol_type make_BOOT_FILE_NAME(const location_type &l)
static symbol_type make_SEVERITY(const location_type &l)
static symbol_type make_RESERVATIONS_IN_SUBNET(const location_type &l)
static symbol_type make_IP_ADDRESSES(const location_type &l)
static symbol_type make_DDNS_UPDATE_ON_RENEW(const location_type &l)
static symbol_type make_CONTACT_POINTS(const location_type &l)
static symbol_type make_INTERFACES_CONFIG(const location_type &l)
static symbol_type make_UDP(const location_type &l)
static symbol_type make_TCP(const location_type &l)
static symbol_type make_SUBNET4(const location_type &l)
static symbol_type make_COLON(const location_type &l)
static symbol_type make_SERVE_RETRY_CONTINUE(const location_type &l)
static symbol_type make_HOSTS_DATABASES(const location_type &l)
static symbol_type make_SUB_DHCP_DDNS(const location_type &l)
static symbol_type make_DDNS_SEND_UPDATES(const location_type &l)
static symbol_type make_CONSISTENCY(const location_type &l)
static symbol_type make_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_LENIENT_OPTION_PARSING(const location_type &l)
static symbol_type make_MIN_VALID_LIFETIME(const location_type &l)
static symbol_type make_DDNS_QUALIFYING_SUFFIX(const location_type &l)
static symbol_type make_DECLINE_PROBATION_PERIOD(const location_type &l)
static symbol_type make_IP_ADDRESS(const location_type &l)
static symbol_type make_SUB_HOOKS_LIBRARY(const location_type &l)
static symbol_type make_ENABLE_QUEUE(const location_type &l)
static symbol_type make_SUBNET(const location_type &l)
static symbol_type make_FLOAT(const double &v, const location_type &l)
static symbol_type make_HOSTNAME(const location_type &l)
static symbol_type make_DDNS_REPLACE_CLIENT_NAME(const location_type &l)
static symbol_type make_SUB_RESERVATION(const location_type &l)
static symbol_type make_SUB_OPTION_DEFS(const location_type &l)
static symbol_type make_OPTION_DATA(const location_type &l)
static symbol_type make_POSTGRESQL(const location_type &l)
static symbol_type make_LOGGERS(const location_type &l)
static symbol_type make_MYSQL(const location_type &l)
static symbol_type make_UNWARNED_RECLAIM_CYCLES(const location_type &l)
static symbol_type make_LEASE_CHECKS(const location_type &l)
static symbol_type make_USER(const location_type &l)
static symbol_type make_GLOBAL(const location_type &l)
static symbol_type make_SERVER_IP(const location_type &l)
static symbol_type make_OUT_OF_POOL(const location_type &l)
static symbol_type make_HOSTS_DATABASE(const location_type &l)
static symbol_type make_QUEUE_TYPE(const location_type &l)
static symbol_type make_T1_PERCENT(const location_type &l)
static symbol_type make_RECLAIM_TIMER_WAIT_TIME(const location_type &l)
static symbol_type make_STOP_RETRY_EXIT(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_NO_UPDATE(const location_type &l)
static symbol_type make_ALWAYS_SEND(const location_type &l)
static symbol_type make_ECHO_CLIENT_ID(const location_type &l)
static symbol_type make_POOL(const location_type &l)
static symbol_type make_DATA(const location_type &l)
static symbol_type make_ENABLE_MULTI_THREADING(const location_type &l)
static symbol_type make_CSV_FORMAT(const location_type &l)
static symbol_type make_SERVER_PORT(const location_type &l)
static symbol_type make_SUB_SUBNET4(const location_type &l)
static symbol_type make_WHEN_NOT_PRESENT(const location_type &l)
static symbol_type make_LIBRARY(const location_type &l)
static symbol_type make_TCP_KEEPALIVE(const location_type &l)
static symbol_type make_ON_FAIL(const location_type &l)
static symbol_type make_JSON(const location_type &l)
static symbol_type make_LCURLY_BRACKET(const location_type &l)
static symbol_type make_RECORD_TYPES(const location_type &l)
static symbol_type make_INTEGER(const int64_t &v, const location_type &l)
static symbol_type make_DUID(const location_type &l)
static symbol_type make_PARAMETERS(const location_type &l)
static symbol_type make_SUBNET_4O6_INTERFACE(const location_type &l)
static symbol_type make_DHCP4(const location_type &l)
static symbol_type make_CAPACITY(const location_type &l)
static symbol_type make_STRING(const std::string &v, const location_type &l)
static symbol_type make_SUB_OPTION_DEF(const location_type &l)
static symbol_type make_TYPE(const location_type &l)
static symbol_type make_ONLY_IF_REQUIRED(const location_type &l)
static symbol_type make_PASSWORD(const location_type &l)
static symbol_type make_CONFIG_DATABASES(const location_type &l)
static symbol_type make_AUTHORITATIVE(const location_type &l)
static symbol_type make_HOST_RESERVATION_IDENTIFIERS(const location_type &l)
static symbol_type make_RESERVATION_MODE(const location_type &l)
static symbol_type make_MAX_ROW_ERRORS(const location_type &l)
static symbol_type make_INTERFACES(const location_type &l)
static symbol_type make_T2_PERCENT(const location_type &l)
static symbol_type make_READONLY(const location_type &l)
static symbol_type make_DDNS_USE_CONFLICT_RESOLUTION(const location_type &l)
static symbol_type make_LSQUARE_BRACKET(const location_type &l)
static symbol_type make_ENABLE_UPDATES(const location_type &l)
static symbol_type make_SERVER_TAG(const location_type &l)
static symbol_type make_DEBUGLEVEL(const location_type &l)
static symbol_type make_DHCP_QUEUE_CONTROL(const location_type &l)
static symbol_type make_TCP_NODELAY(const location_type &l)
static symbol_type make_MAXSIZE(const location_type &l)
static symbol_type make_PORT(const location_type &l)
static symbol_type make_FLEX_ID(const location_type &l)
static symbol_type make_CLIENT_CLASS(const location_type &l)
static symbol_type make_NEXT_SERVER(const location_type &l)
static symbol_type make_SANITY_CHECKS(const location_type &l)
static symbol_type make_EXPIRED_LEASES_PROCESSING(const location_type &l)
static symbol_type make_RAW(const location_type &l)
static symbol_type make_OUTBOUND_INTERFACE(const location_type &l)
static symbol_type make_REPLACE_CLIENT_NAME(const location_type &l)
static symbol_type make_RESERVATIONS_OUT_OF_POOL(const location_type &l)
static symbol_type make_ID(const location_type &l)
static symbol_type make_PATTERN(const location_type &l)
static symbol_type make_SUB_POOL4(const location_type &l)
static symbol_type make_NEVER(const location_type &l)
static symbol_type make_TOPLEVEL_JSON(const location_type &l)
static symbol_type make_RESERVATIONS_GLOBAL(const location_type &l)
static symbol_type make_RCURLY_BRACKET(const location_type &l)
static symbol_type make_COMMENT(const location_type &l)
static symbol_type make_RESERVATIONS(const location_type &l)
static symbol_type make_HOOKS_LIBRARIES(const location_type &l)
static symbol_type make_HOSTNAME_CHAR_SET(const location_type &l)
static symbol_type make_REQUEST_TIMEOUT(const location_type &l)
static symbol_type make_MAX_QUEUE_SIZE(const location_type &l)
static symbol_type make_SERVE_RETRY_EXIT(const location_type &l)
static symbol_type make_COMPATIBILITY(const location_type &l)
static symbol_type make_POOLS(const location_type &l)
static symbol_type make_DHCP_DDNS(const location_type &l)
static symbol_type make_ALWAYS(const location_type &l)
static symbol_type make_CLIENT_ID(const location_type &l)
static symbol_type make_SUB_CONFIG_CONTROL(const location_type &l)
static symbol_type make_TOPLEVEL_DHCP4(const location_type &l)
static symbol_type make_MAX_RECONNECT_TRIES(const location_type &l)
static symbol_type make_FLUSH(const location_type &l)
static symbol_type make_HOST(const location_type &l)
static symbol_type make_WHEN_PRESENT(const location_type &l)
static symbol_type make_SENDER_IP(const location_type &l)
static symbol_type make_DHCP_SOCKET_TYPE(const location_type &l)
static symbol_type make_CONFIG_CONTROL(const location_type &l)
static symbol_type make_CONFIG_FETCH_WAIT_TIME(const location_type &l)
static symbol_type make_DHCP4O6_PORT(const location_type &l)
static symbol_type make_QUALIFYING_SUFFIX(const location_type &l)
static symbol_type make_CODE(const location_type &l)
static symbol_type make_SHARED_NETWORKS(const location_type &l)
static symbol_type make_DDNS_GENERATED_PREFIX(const location_type &l)
static symbol_type make_USER_CONTEXT(const location_type &l)
static symbol_type make_NCR_FORMAT(const location_type &l)
static symbol_type make_DISABLED(const location_type &l)
static symbol_type make_REQUIRE_CLIENT_CLASSES(const location_type &l)
static symbol_type make_COMMA(const location_type &l)
static symbol_type make_SUB_DHCP4(const location_type &l)
static symbol_type make_SUBNET_4O6_SUBNET(const location_type &l)
static symbol_type make_OUTPUT(const location_type &l)
static symbol_type make_RSQUARE_BRACKET(const location_type &l)
static symbol_type make_RENEW_TIMER(const location_type &l)
static symbol_type make_DDNS_OVERRIDE_CLIENT_UPDATE(const location_type &l)
static symbol_type make_CLIENT_CLASSES(const location_type &l)
static symbol_type make_ENCAPSULATE(const location_type &l)
static symbol_type make_STATISTIC_DEFAULT_SAMPLE_AGE(const location_type &l)
static symbol_type make_CIRCUIT_ID(const location_type &l)
static symbol_type make_CACHE_THRESHOLD(const location_type &l)
static symbol_type make_PARKED_PACKET_LIMIT(const location_type &l)
static symbol_type make_PACKET_QUEUE_SIZE(const location_type &l)
static symbol_type make_LEASE_DATABASE(const location_type &l)
void scanFileBegin(FILE *f, const std::string &filename, ParserType type)
Method called before scanning starts on a file.
std::vector< std::string > files_
File name stack.
void scanEnd()
Method called after the last tokens are scanned.
std::vector< FILE * > sfiles_
sFile (aka FILE) stack
std::string file_
File name.
@ SUBNET4
Used while parsing Dhcp4/Subnet4 structures.
@ DATABASE_TYPE
Used while parsing Dhcp4/*-database/type.
@ POOLS
Used while parsing Dhcp4/subnet4/pools structures.
@ CLIENT_CLASSES
Used while parsing Dhcp4/client-classes structures.
@ RESERVATIONS
Used while parsing Dhcp4/reservations structures.
@ HOSTS_DATABASE
Used while parsing Dhcp4/hosts-database[s] structures.
@ NCR_PROTOCOL
Used while parsing Dhcp4/dhcp-ddns/ncr-protocol.
@ LOGGERS
Used while parsing Dhcp4/loggers structures.
@ DATABASE_ON_FAIL
Used while parsing Dhcp4/*-database/on-fail.
@ NCR_FORMAT
Used while parsing Dhcp4/dhcp-ddns/ncr-format.
@ COMPATIBILITY
Used while parsing compatibility parameters.
@ CONFIG
Used while parsing content of Dhcp4.
@ OUTPUT_OPTIONS
Used while parsing Dhcp4/loggers/output_options structures.
@ RESERVATION_MODE
Used while parsing Dhcp4/reservation-mode.
@ CONTROL_SOCKET
Used while parsing Dhcp4/control-socket structures.
@ DHCP_DDNS
Used while parsing Dhcp4/dhcp-ddns.
@ OPTION_DATA
Used while parsing Dhcp4/option-data, Dhcp4/subnet4/option-data or anywhere option-data is present (c...
@ DHCP_MULTI_THREADING
Used while parsing Dhcp4/multi-threading structures.
@ LEASE_DATABASE
Used while parsing Dhcp4/lease-database structures.
@ SHARED_NETWORK
Used while parsing shared-networks structures.
@ EXPIRED_LEASES_PROCESSING
Used while parsing Dhcp4/expired-leases-processing.
@ CONFIG_CONTROL
Used while parsing Dhcp4/config-control.
@ INTERFACES_CONFIG
Used while parsing Dhcp4/interfaces structures.
@ HOST_RESERVATION_IDENTIFIERS
Used while parsing Dhcp4/host-reservation-identifiers.
@ OPTION_DEF
Used while parsing Dhcp4/option-def structures.
@ CONFIG_DATABASE
Used while parsing config-control/config-databases.
@ HOOKS_LIBRARIES
Used while parsing Dhcp4/hooks-libraries.
@ DHCP_QUEUE_CONTROL
Used while parsing Dhcp4/dhcp-queue-control structures.
@ REPLACE_CLIENT_NAME
Used while parsing Dhcp4/dhcp-ddns/replace-client-name.
@ RELAY
Used while parsing Dhcp4/subnet4relay structures.
@ DHCP_SOCKET_TYPE
Used while parsing Dhcp4/interfaces/dhcp-socket-type structures.
ParserType
Defines currently supported scopes.
static void fatal(const std::string &what)
Fatal error handler.
FILE * sfile_
sFile (aka FILE)
std::vector< struct yy_buffer_state * > states_
Lexer state stack.
isc::dhcp::location loc_
Location of the current token.
void includeFile(const std::string &filename)
Divert input to an include file.
std::vector< isc::dhcp::location > locs_
Location stack.
#define yy_load_buffer_state
Definition: dhcp4_lexer.cc:19
#define YY_NEW_FILE
Definition: dhcp4_lexer.cc:424
#define yyset_extra
Definition: dhcp4_lexer.cc:176
#define yytext
Definition: dhcp4_lexer.cc:31
unsigned char flex_uint8_t
Definition: dhcp4_lexer.cc:335
#define yyset_lineno
Definition: dhcp4_lexer.cc:224
#define COMMENT
#define yyrestart
Definition: dhcp4_lexer.cc:30
#define yyset_debug
Definition: dhcp4_lexer.cc:164
#define YY_EXTRA_TYPE
#define DIR_INCLUDE
short int flex_int16_t
Definition: dhcp4_lexer.cc:333
#define yy_flex_debug
Definition: dhcp4_lexer.cc:24
unsigned int flex_uint32_t
Definition: dhcp4_lexer.cc:337
#define yy_scan_bytes
Definition: dhcp4_lexer.cc:16
#define YY_BREAK
#define yynoreturn
Definition: dhcp4_lexer.cc:388
#define yyget_debug
Definition: dhcp4_lexer.cc:158
int yy_act
#define yypush_buffer_state
Definition: dhcp4_lexer.cc:21
#define yyget_in
Get the input stream.
Definition: dhcp4_lexer.cc:182
struct yy_buffer_state * YY_BUFFER_STATE
Definition: dhcp4_lexer.cc:446
#define yyfree
Definition: dhcp4_lexer.cc:35
#define yyout
Definition: dhcp4_lexer.cc:29
#define YY_BUFFER_NEW
Definition: dhcp4_lexer.cc:539
#define yylex
Definition: dhcp4_lexer.cc:27
#define YY_RESTORE_YY_MORE_OFFSET
#define yyget_leng
Get the length of the current token.
Definition: dhcp4_lexer.cc:206
#define yywrap
#define yyget_out
Get the output stream.
Definition: dhcp4_lexer.cc:194
#define YY_BUFFER_NORMAL
Definition: dhcp4_lexer.cc:540
char * yy_cp
#define yyensure_buffer_stack
Definition: dhcp4_lexer.cc:23
#define yy_scan_buffer
Definition: dhcp4_lexer.cc:14
#define YY_MORE_ADJ
#define YY_RULE_SETUP
#define yy_scan_string
Definition: dhcp4_lexer.cc:15
#define DIR_EXIT
#define yytext_ptr
Definition: dhcp4_lexer.cc:669
signed char flex_int8_t
Definition: dhcp4_lexer.cc:332
#define EOB_ACT_END_OF_FILE
Definition: dhcp4_lexer.cc:465
#define yyalloc
Definition: dhcp4_lexer.cc:33
#define YY_CURRENT_BUFFER_LVALUE
Definition: dhcp4_lexer.cc:581
int flex_int32_t
Definition: dhcp4_lexer.cc:334
#define yylex_destroy
Definition: dhcp4_lexer.cc:152
#define YY_START
Definition: dhcp4_lexer.cc:419
#define yyget_text
Get the current token.
Definition: dhcp4_lexer.cc:212
#define yy_switch_to_buffer
Definition: dhcp4_lexer.cc:20
int yy_state_type
Definition: dhcp4_lexer.cc:660
#define YY_CURRENT_BUFFER
Definition: dhcp4_lexer.cc:575
#define yy_init_buffer
Definition: dhcp4_lexer.cc:17
#define INITIAL
#define yyget_extra
Definition: dhcp4_lexer.cc:170
char * yy_bp
#define yyin
Definition: dhcp4_lexer.cc:25
#define YY_READ_BUF_SIZE
#define YY_INPUT(buf, result, max_size)
#define ECHO
#define yy_flush_buffer
Definition: dhcp4_lexer.cc:18
#define yyrealloc
Definition: dhcp4_lexer.cc:34
#define YY_END_OF_BUFFER
Definition: dhcp4_lexer.cc:695
#define YY_STATE_EOF(state)
Definition: dhcp4_lexer.cc:422
#define BEGIN
Definition: dhcp4_lexer.cc:414
#define YY_END_OF_BUFFER_CHAR
Definition: dhcp4_lexer.cc:425
#define YY_FATAL_ERROR(msg)
unsigned short int flex_uint16_t
Definition: dhcp4_lexer.cc:336
#define yypop_buffer_state
Removes and deletes the top of the stack, if present.
Definition: dhcp4_lexer.cc:22
#define yy_create_buffer
Definition: dhcp4_lexer.cc:12
flex_uint8_t YY_CHAR
Definition: dhcp4_lexer.cc:656
#define YY_DO_BEFORE_ACTION
Definition: dhcp4_lexer.cc:685
#define yy_delete_buffer
Definition: dhcp4_lexer.cc:13
#define EOB_ACT_LAST_MATCH
Definition: dhcp4_lexer.cc:466
size_t yy_size_t
Definition: dhcp4_lexer.cc:451
#define YY_BUFFER_EOF_PENDING
Definition: dhcp4_lexer.cc:551
#define yylineno
Definition: dhcp4_lexer.cc:28
#define yyset_out
Definition: dhcp4_lexer.cc:200
#define EOB_ACT_CONTINUE_SCAN
Definition: dhcp4_lexer.cc:464
#define yyget_lineno
Get the current line number.
Definition: dhcp4_lexer.cc:218
#define YY_DECL
#define YY_BUF_SIZE
Definition: dhcp4_lexer.cc:436
#define YY_EXIT_FAILURE
#define YY_SC_TO_UI(c)
Definition: dhcp4_lexer.cc:400
#define DIR_ENTER
#define yyleng
Definition: dhcp4_lexer.cc:26
#define yyset_in
Definition: dhcp4_lexer.cc:188
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
int yy_bs_column
The column count.
Definition: agent_lexer.cc:530
FILE * yy_input_file
Definition: agent_lexer.cc:491
int yy_bs_lineno
The line count.
Definition: agent_lexer.cc:529
flex_int32_t yy_verify
Definition: agent_lexer.cc:700
flex_int32_t yy_nxt
Definition: agent_lexer.cc:701