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