Kea  2.3.7
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>
325 typedef int8_t flex_int8_t;
326 typedef uint8_t flex_uint8_t;
327 typedef int16_t flex_int16_t;
328 typedef uint16_t flex_uint16_t;
329 typedef int32_t flex_int32_t;
330 typedef uint32_t flex_uint32_t;
331 #else
332 typedef signed char flex_int8_t;
333 typedef short int flex_int16_t;
334 typedef int flex_int32_t;
335 typedef unsigned char flex_uint8_t;
336 typedef unsigned short int flex_uint16_t;
337 typedef 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
451 typedef size_t yy_size_t;
452 #endif
453 
454 /* %if-not-reentrant */
455 extern int yyleng;
456 /* %endif */
457 
458 /* %if-c-only */
459 /* %if-not-reentrant */
460 extern 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
488 struct 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  */
514  int yy_is_our_buffer;
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  */
521  int yy_is_interactive;
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 
537  int yy_buffer_status;
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. */
561 static size_t yy_buffer_stack_top = 0;
562 static size_t yy_buffer_stack_max = 0;
563 static 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. */
588 static char yy_hold_char;
589 static int yy_n_chars; /* number of characters read into yy_ch_buf */
590 int yyleng;
591 
592 /* Points to current character in buffer. */
593 static char *yy_c_buf_p = NULL;
594 static int yy_init = 0; /* whether we need to initialize */
595 static 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  */
600 static int yy_did_buffer_switch_on_eof;
601 /* %ok-for-header */
602 
603 /* %endif */
604 
605 void yyrestart ( FILE *input_file );
606 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
607 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
610 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
611 void yypop_buffer_state ( void );
612 
613 static void yyensure_buffer_stack ( void );
614 static void yy_load_buffer_state ( void );
615 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
616 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
617 
618 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
619 YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
620 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
621 
622 /* %endif */
623 
624 void *yyalloc ( yy_size_t );
625 void *yyrealloc ( void *, yy_size_t );
626 void 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 
658 FILE *yyin = NULL, *yyout = NULL;
659 
660 typedef int yy_state_type;
661 
662 extern int yylineno;
663 int yylineno = 1;
664 
665 extern 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 
675 static yy_state_type yy_get_previous_state ( void );
676 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
677 static int yy_get_next_buffer ( void );
678 static 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 226
695 #define YY_END_OF_BUFFER 227
696 /* This struct is not used in this scanner,
697  but its presence is necessary. */
698 struct yy_trans_info
699  {
702  };
703 static const flex_int16_t yy_accept[2239] =
704  { 0,
705  219, 219, 0, 0, 0, 0, 0, 0, 0, 0,
706  227, 225, 10, 11, 225, 1, 219, 216, 219, 219,
707  225, 218, 217, 225, 225, 225, 225, 225, 212, 213,
708  225, 225, 225, 214, 215, 5, 5, 5, 225, 225,
709  225, 10, 11, 0, 0, 207, 0, 0, 0, 0,
710  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
711  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
712  0, 0, 0, 0, 0, 0, 0, 0, 1, 219,
713  219, 0, 218, 219, 3, 2, 6, 0, 219, 0,
714  0, 0, 0, 0, 0, 4, 0, 0, 9, 0,
715 
716  208, 0, 0, 0, 0, 0, 0, 0, 0, 0,
717  0, 0, 0, 210, 0, 0, 0, 0, 0, 0,
718  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
719  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
721  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
722  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
723  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
724  0, 0, 0, 0, 0, 0, 0, 2, 0, 0,
725  0, 0, 0, 0, 0, 8, 0, 0, 0, 0,
726 
727  0, 0, 0, 0, 0, 0, 0, 209, 211, 0,
728  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
729  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
730  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
731  0, 0, 0, 0, 0, 0, 0, 0, 95, 0,
732  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
733  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
734  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
735  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
736  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
737 
738  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
739  0, 0, 0, 0, 0, 0, 0, 0, 0, 224,
740  222, 0, 221, 220, 0, 0, 0, 0, 0, 0,
741  0, 181, 0, 180, 0, 0, 101, 0, 0, 0,
742  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
743  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
744  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
745  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
746  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
747  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
748 
749  98, 0, 0, 0, 0, 0, 0, 0, 0, 0,
750  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
751  18, 0, 0, 0, 0, 0, 0, 0, 0, 0,
752  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
753  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
754  0, 19, 0, 0, 0, 0, 0, 223, 220, 0,
755  0, 0, 0, 0, 0, 182, 0, 184, 0, 0,
756  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
757  0, 0, 105, 0, 0, 0, 0, 0, 0, 86,
758  0, 0, 0, 0, 0, 0, 128, 0, 0, 0,
759 
760  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
761  41, 0, 0, 0, 0, 0, 0, 0, 0, 0,
762  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
763  0, 0, 0, 0, 0, 85, 0, 0, 0, 0,
764  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
765  0, 0, 0, 0, 90, 0, 42, 0, 0, 0,
766  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
767  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
768  0, 0, 0, 0, 0, 0, 0, 0, 0, 124,
769  0, 0, 35, 0, 0, 39, 0, 0, 0, 0,
770 
771  0, 0, 0, 12, 186, 185, 0, 0, 0, 0,
772  138, 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, 0, 0,
775  0, 0, 0, 0, 0, 0, 0, 0, 116, 0,
776  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
777  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
778  0, 0, 0, 0, 0, 0, 0, 0, 37, 0,
779  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
780  0, 0, 0, 0, 0, 0, 0, 89, 0, 0,
781 
782  0, 0, 0, 0, 0, 0, 0, 0, 139, 0,
783  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
784  0, 0, 134, 0, 0, 0, 0, 0, 0, 0,
785  0, 0, 0, 0, 0, 0, 0, 0, 7, 0,
786  0, 187, 0, 0, 0, 0, 0, 0, 0, 0,
787  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
788  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
789  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
790  0, 0, 0, 0, 0, 0, 0, 100, 0, 0,
791  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
792 
793  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
794  0, 118, 0, 0, 0, 0, 0, 0, 0, 0,
795  0, 0, 0, 0, 0, 114, 0, 0, 0, 0,
796  0, 0, 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  93, 0, 0, 0, 0, 0, 0, 0, 0, 0,
800  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
801  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
802  92, 0, 0, 0, 0, 0, 0, 0, 0, 0,
803 
804  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
805  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
806  0, 0, 132, 0, 0, 0, 0, 0, 0, 0,
807  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
808  0, 144, 112, 0, 0, 0, 0, 0, 0, 117,
809  36, 0, 0, 0, 0, 0, 0, 0, 50, 0,
810  0, 0, 0, 0, 0, 0, 0, 0, 0, 119,
811  43, 0, 0, 0, 0, 0, 0, 0, 0, 0,
812  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
813  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
814 
815  0, 0, 80, 0, 0, 0, 0, 0, 0, 0,
816  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
817  0, 0, 0, 0, 0, 163, 0, 0, 0, 0,
818  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
819  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
820  0, 0, 97, 0, 0, 0, 0, 0, 0, 0,
821  0, 0, 0, 0, 0, 0, 0, 133, 0, 0,
822  0, 0, 0, 0, 0, 0, 58, 0, 0, 0,
823  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
824  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
825 
826  0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
827  34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
828  0, 0, 0, 0, 0, 0, 0, 0, 0, 120,
829  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
830  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
831  0, 68, 0, 0, 0, 0, 0, 0, 57, 0,
832  0, 0, 130, 0, 0, 0, 0, 0, 0, 0,
833  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
834  164, 0, 0, 0, 0, 0, 0, 0, 0, 0,
835  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
836 
837  0, 0, 0, 94, 0, 0, 0, 0, 0, 0,
838  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
839  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
840  0, 0, 0, 0, 0, 0, 0, 0, 24, 0,
841  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
842  169, 0, 0, 0, 167, 0, 0, 0, 0, 0,
843  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
844  0, 0, 0, 0, 0, 0, 191, 0, 0, 0,
845  0, 0, 0, 0, 0, 0, 131, 0, 0, 0,
846  0, 0, 0, 0, 135, 0, 0, 0, 0, 0,
847 
848  0, 0, 0, 115, 0, 0, 0, 0, 0, 0,
849  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
850  0, 0, 0, 0, 129, 0, 0, 23, 0, 140,
851  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
852  0, 0, 0, 0, 173, 0, 88, 0, 0, 0,
853  0, 83, 0, 0, 0, 0, 0, 0, 143, 0,
854  38, 0, 162, 0, 0, 0, 0, 0, 0, 0,
855  0, 0, 0, 0, 0, 0, 0, 0, 66, 0,
856  0, 0, 0, 0, 0, 0, 108, 109, 0, 0,
857  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
858 
859  87, 0, 0, 0, 0, 0, 59, 0, 0, 0,
860  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
861  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
862  0, 137, 0, 0, 0, 0, 0, 0, 0, 0,
863  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
864  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
865  195, 0, 0, 84, 99, 0, 0, 0, 0, 0,
866  0, 0, 0, 0, 0, 0, 0, 63, 0, 0,
867  0, 0, 0, 0, 170, 0, 0, 168, 0, 0,
868  159, 158, 0, 0, 0, 0, 0, 0, 0, 0,
869 
870  22, 0, 0, 0, 0, 0, 183, 0, 0, 0,
871  0, 0, 123, 0, 0, 0, 0, 0, 0, 0,
872  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
873  0, 152, 0, 0, 0, 161, 0, 0, 0, 0,
874  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
875  141, 0, 15, 0, 0, 44, 0, 0, 0, 0,
876  0, 0, 0, 0, 0, 172, 0, 0, 0, 0,
877  0, 0, 0, 0, 0, 46, 64, 0, 0, 136,
878  0, 0, 0, 127, 0, 0, 0, 0, 0, 0,
879  0, 0, 0, 0, 0, 0, 0, 0, 56, 0,
880 
881  91, 0, 0, 189, 0, 0, 194, 0, 111, 0,
882  0, 0, 201, 0, 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, 0, 0,
885  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
886  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
887  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
888  0, 0, 0, 0, 0, 0, 0, 14, 0, 0,
889  0, 0, 0, 0, 0, 0, 0, 125, 0, 0,
890  0, 47, 0, 0, 197, 0, 0, 121, 31, 0,
891 
892  0, 0, 157, 0, 0, 0, 0, 0, 0, 0,
893  0, 0, 0, 0, 0, 0, 192, 0, 165, 0,
894  0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
895  0, 0, 0, 0, 0, 28, 0, 0, 171, 0,
896  0, 0, 55, 0, 0, 0, 206, 0, 0, 113,
897  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
898  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
899  0, 0, 0, 0, 0, 0, 60, 0, 0, 110,
900  0, 0, 0, 45, 0, 0, 0, 0, 0, 0,
901  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
902 
903  0, 0, 0, 0, 142, 0, 0, 0, 30, 0,
904  0, 0, 0, 0, 193, 0, 0, 0, 0, 0,
905  153, 0, 0, 0, 0, 0, 0, 0, 0, 0,
906  0, 0, 0, 0, 0, 0, 0, 21, 0, 0,
907  196, 0, 82, 0, 51, 0, 0, 0, 0, 190,
908  188, 0, 32, 0, 0, 0, 0, 0, 0, 0,
909  79, 0, 0, 0, 0, 17, 0, 0, 0, 0,
910  0, 0, 177, 0, 0, 0, 0, 0, 0, 0,
911  0, 0, 0, 150, 0, 0, 0, 126, 0, 0,
912  0, 0, 0, 0, 0, 0, 0, 0, 96, 0,
913 
914  0, 0, 0, 0, 52, 0, 0, 0, 0, 48,
915  155, 0, 0, 0, 0, 0, 0, 0, 0, 71,
916  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
917  0, 0, 0, 178, 0, 0, 13, 0, 0, 0,
918  0, 0, 0, 0, 0, 0, 156, 0, 166, 0,
919  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
920  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
921  0, 0, 0, 160, 0, 0, 0, 0, 0, 0,
922  0, 0, 0, 0, 0, 0, 0, 149, 0, 62,
923  61, 20, 0, 174, 0, 0, 0, 0, 0, 0,
924 
925  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
926  107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
927  0, 0, 0, 0, 0, 0, 148, 0, 0, 0,
928  0, 0, 0, 54, 0, 67, 0, 49, 176, 0,
929  102, 0, 0, 0, 0, 0, 0, 0, 0, 81,
930  0, 0, 0, 0, 0, 0, 0, 77, 0, 0,
931  0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
932  0, 0, 0, 0, 0, 0, 0, 0, 53, 0,
933  0, 0, 0, 0, 0, 75, 0, 0, 0, 0,
934  0, 0, 0, 0, 205, 0, 0, 0, 0, 0,
935 
936  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
937  0, 0, 0, 0, 33, 0, 0, 76, 0, 0,
938  0, 0, 154, 0, 0, 0, 0, 0, 0, 199,
939  202, 175, 0, 122, 103, 0, 0, 0, 0, 0,
940  0, 0, 0, 72, 0, 0, 0, 0, 0, 0,
941  0, 0, 0, 0, 146, 0, 0, 0, 0, 0,
942  0, 151, 0, 74, 0, 65, 0, 0, 0, 0,
943  0, 0, 0, 0, 104, 0, 0, 0, 0, 0,
944  0, 0, 145, 0, 0, 179, 0, 204, 200, 0,
945  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
946 
947  0, 0, 0, 0, 0, 73, 0, 0, 0, 0,
948  0, 27, 25, 0, 0, 0, 78, 0, 0, 106,
949  0, 0, 70, 0, 0, 0, 203, 0, 0, 0,
950  0, 0, 69, 0, 147, 26, 198, 0
951  } ;
952 
953 static const YY_CHAR yy_ec[256] =
954  { 0,
955  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
956  1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
957  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
958  1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
959  5, 8, 9, 10, 11, 12, 13, 14, 15, 16,
960  14, 17, 14, 18, 14, 14, 14, 19, 5, 20,
961  5, 21, 22, 5, 23, 24, 25, 26, 27, 28,
962  5, 29, 5, 30, 5, 31, 5, 32, 33, 34,
963  5, 35, 36, 37, 38, 39, 40, 5, 41, 5,
964  42, 43, 44, 5, 45, 5, 46, 47, 48, 49,
965 
966  50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
967  60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
968  70, 71, 72, 5, 73, 5, 5, 5, 5, 5,
969  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
970  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
971  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
972  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
973  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
974  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
975  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
976 
977  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
978  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
979  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
980  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
981  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
982  5, 5, 5, 5, 5
983  } ;
984 
985 static const YY_CHAR yy_meta[74] =
986  { 0,
987  1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
988  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
989  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
990  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
991  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
992  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
993  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
994  1, 1, 1
995  } ;
996 
997 static const flex_int16_t yy_base[2247] =
998  { 0,
999  0, 72, 21, 31, 43, 51, 54, 60, 91, 99,
1000  2629, 2630, 34, 2625, 145, 0, 207, 2630, 214, 221,
1001  13, 228, 2630, 2605, 118, 25, 2, 6, 2630, 2630,
1002  73, 11, 17, 2630, 2630, 2630, 104, 2613, 2566, 0,
1003  2603, 108, 2620, 24, 262, 2630, 2562, 67, 2568, 84,
1004  75, 88, 224, 91, 89, 290, 220, 2560, 206, 285,
1005  236, 204, 197, 60, 291, 2569, 247, 308, 315, 214,
1006  286, 2552, 212, 320, 344, 318, 2571, 335, 0, 385,
1007  401, 415, 422, 427, 2630, 0, 2630, 441, 446, 236,
1008  314, 238, 326, 353, 309, 2630, 2568, 2609, 2630, 263,
1009 
1010  2630, 440, 2596, 308, 2565, 364, 10, 329, 359, 384,
1011  391, 241, 2606, 0, 501, 408, 2548, 2545, 2549, 418,
1012  2545, 80, 2553, 422, 2539, 2540, 2545, 78, 2555, 2538,
1013  2547, 2537, 2546, 341, 343, 340, 2539, 2537, 410, 2585,
1014  2589, 2535, 2528, 2581, 2521, 174, 2542, 2542, 2536, 340,
1015  2529, 2527, 2528, 2520, 2525, 2519, 429, 2530, 412, 2515,
1016  2514, 2528, 425, 2514, 422, 447, 2508, 497, 436, 471,
1017  2529, 2526, 2527, 432, 2525, 2560, 2559, 450, 446, 2506,
1018  471, 2507, 478, 2499, 2516, 2508, 2510, 0, 477, 483,
1019  473, 496, 489, 515, 2506, 2630, 2551, 530, 2500, 499,
1020 
1021  523, 530, 2554, 535, 2553, 532, 2552, 2630, 2630, 578,
1022  441, 543, 2511, 2503, 2490, 2501, 2505, 2506, 2486, 2497,
1023  2501, 2498, 2497, 475, 516, 2535, 2499, 2480, 2477, 2485,
1024  2480, 2494, 2490, 2481, 2477, 2489, 2489, 2477, 2479, 2482,
1025  2462, 2466, 2479, 2481, 2478, 2470, 2460, 2478, 2630, 2463,
1026  2472, 523, 2510, 2456, 2465, 2507, 2454, 2464, 2467, 510,
1027  2463, 2502, 2447, 2449, 2460, 2498, 557, 2443, 562, 2456,
1028  2436, 2451, 561, 2441, 2447, 527, 2438, 2436, 2436, 2442,
1029  2433, 2432, 2439, 2429, 2488, 2444, 2443, 2437, 530, 2444,
1030  2439, 2431, 2421, 2436, 2435, 2430, 2434, 2415, 2431, 2417,
1031 
1032  2423, 2430, 2412, 536, 2417, 2414, 2413, 603, 2412, 2407,
1033  2421, 571, 2420, 2463, 2422, 560, 2413, 2401, 561, 2630,
1034  2630, 583, 2630, 2630, 2399, 566, 461, 2447, 586, 2457,
1035  580, 2630, 2456, 2630, 2450, 630, 2630, 2412, 590, 2389,
1036  2398, 2446, 2406, 2389, 2406, 2442, 2402, 2385, 2391, 2443,
1037  2398, 2401, 2392, 2395, 2381, 2392, 2436, 2430, 2388, 2385,
1038  621, 2391, 2431, 2366, 2424, 2377, 2372, 2366, 2368, 2371,
1039  2418, 2375, 2364, 2380, 2414, 2360, 628, 2374, 2359, 2358,
1040  2371, 2369, 2367, 2367, 2366, 2361, 2368, 2363, 2359, 599,
1041  2357, 2360, 2355, 2341, 2353, 2349, 2399, 589, 602, 2393,
1042 
1043  2630, 2340, 2356, 2390, 2340, 2339, 2338, 2331, 2333, 2345,
1044  2336, 2343, 2324, 2341, 2336, 610, 2383, 2336, 2333, 2336,
1045  2630, 2335, 559, 2325, 2337, 600, 2312, 2313, 2334, 2325,
1046  2315, 2366, 2311, 2325, 614, 2311, 2323, 2322, 2321, 2316,
1047  2358, 2318, 2317, 2316, 2315, 2298, 2306, 2356, 2315, 2295,
1048  2353, 2630, 2295, 2294, 661, 2307, 2305, 2630, 2630, 2305,
1049  2294, 2286, 605, 2345, 2344, 2630, 2343, 2630, 639, 687,
1050  2302, 606, 2341, 2283, 2294, 2333, 2286, 2288, 2290, 2277,
1051  2285, 2273, 2630, 2278, 2271, 2283, 2286, 2273, 2272, 2630,
1052  631, 2274, 2271, 626, 2269, 2271, 2630, 2316, 2278, 2275,
1053 
1054  2260, 2274, 2272, 2272, 2266, 678, 2273, 2261, 2254, 2305,
1055  2630, 2252, 2268, 2302, 2263, 2261, 2259, 2260, 2244, 2253,
1056  2295, 2246, 2245, 2240, 2239, 2290, 2234, 649, 2253, 2227,
1057  2234, 2239, 2249, 2283, 2287, 2630, 2232, 2228, 710, 2226,
1058  2278, 2234, 2233, 2227, 2234, 2218, 2218, 2228, 2216, 2230,
1059  2230, 2218, 2214, 2212, 2630, 2269, 2630, 2211, 2222, 2261,
1060  2206, 2205, 2210, 2219, 2213, 2207, 2216, 2258, 2252, 2214,
1061  2198, 2193, 2213, 2188, 2194, 589, 2208, 2201, 2205, 2188,
1062  2246, 2187, 2187, 2238, 2183, 2184, 2183, 2181, 2198, 2630,
1063  2194, 2231, 2630, 2182, 2180, 2630, 2191, 2227, 2226, 2186,
1064 
1065  2170, 2187, 2227, 2630, 2630, 2630, 684, 683, 2167, 713,
1066  2630, 2177, 2176, 662, 2183, 2163, 2173, 2215, 2160, 2213,
1067  2158, 2168, 2210, 2155, 2162, 2155, 2167, 2149, 2149, 2164,
1068  2163, 2147, 621, 2161, 2160, 2160, 2142, 2147, 2188, 2155,
1069  2152, 2146, 2191, 2135, 2150, 2150, 2148, 2148, 2630, 2133,
1070  2130, 2188, 2143, 2135, 2141, 2132, 2140, 2125, 2176, 2140,
1071  2122, 2134, 2126, 530, 2117, 2116, 2110, 2115, 2130, 2127,
1072  2128, 2107, 2117, 2123, 2166, 2121, 2113, 2104, 2630, 2105,
1073  2107, 2102, 2115, 2107, 2106, 2111, 2150, 2149, 2100, 16,
1074  2109, 2146, 2091, 2144, 2091, 2094, 2087, 2630, 2101, 2080,
1075 
1076  2084, 2098, 2093, 2089, 2134, 2086, 2093, 2131, 2630, 2076,
1077  2090, 2089, 2092, 2073, 2125, 2124, 2071, 2122, 2082, 2062,
1078  20, 242, 2630, 209, 239, 322, 722, 363, 379, 472,
1079  552, 607, 603, 601, 620, 646, 650, 643, 2630, 672,
1080  664, 2630, 688, 699, 669, 666, 666, 675, 694, 688,
1081  677, 673, 688, 690, 737, 702, 745, 705, 706, 747,
1082  748, 702, 702, 712, 717, 703, 706, 709, 718, 718,
1083  702, 759, 712, 722, 725, 763, 726, 719, 723, 720,
1084  722, 769, 770, 734, 778, 735, 737, 2630, 740, 735,
1085  726, 741, 746, 743, 745, 747, 746, 734, 748, 746,
1086 
1087  754, 790, 752, 797, 798, 748, 740, 750, 798, 757,
1088  806, 2630, 807, 760, 762, 758, 752, 768, 756, 766,
1089  815, 811, 774, 763, 776, 2630, 766, 777, 766, 779,
1090  769, 782, 826, 827, 770, 781, 766, 789, 780, 769,
1091  775, 830, 794, 778, 790, 834, 835, 782, 837, 801,
1092  796, 801, 799, 843, 785, 797, 800, 804, 796, 793,
1093  2630, 857, 816, 817, 805, 819, 809, 812, 823, 808,
1094  815, 821, 822, 814, 828, 868, 844, 818, 832, 837,
1095  834, 816, 823, 837, 882, 839, 836, 837, 835, 844,
1096  2630, 840, 835, 850, 847, 833, 835, 854, 851, 839,
1097 
1098  846, 847, 856, 895, 861, 898, 860, 850, 848, 847,
1099  858, 854, 910, 857, 868, 853, 854, 860, 876, 872,
1100  867, 914, 2630, 878, 878, 871, 882, 880, 925, 867,
1101  869, 881, 889, 887, 874, 872, 934, 891, 877, 883,
1102  881, 2630, 2630, 891, 896, 901, 889, 899, 901, 2630,
1103  2630, 902, 889, 907, 894, 896, 889, 906, 2630, 895,
1104  913, 900, 950, 901, 953, 899, 903, 921, 962, 2630,
1105  2630, 907, 911, 910, 907, 923, 968, 921, 911, 912,
1106  908, 921, 932, 933, 928, 929, 931, 924, 926, 922,
1107  928, 928, 930, 945, 928, 987, 944, 949, 926, 949,
1108 
1109  935, 934, 2630, 941, 942, 991, 992, 944, 957, 995,
1110  953, 943, 958, 952, 960, 947, 979, 987, 1009, 957,
1111  952, 1007, 1008, 970, 1010, 2630, 1016, 959, 975, 979,
1112  1020, 970, 969, 964, 965, 977, 972, 968, 971, 972,
1113  982, 992, 1028, 980, 977, 995, 987, 982, 1040, 997,
1114  998, 989, 2630, 1003, 992, 995, 1003, 1005, 990, 1002,
1115  1007, 1004, 1002, 1049, 1015, 999, 1000, 2630, 1016, 1019,
1116  1002, 1019, 1014, 1063, 1006, 1025, 2630, 1024, 1027, 1013,
1117  1008, 1026, 1066, 1024, 1020, 1017, 1070, 1071, 1033, 1019,
1118  1037, 1037, 1037, 1038, 1039, 1025, 1040, 1032, 1039, 1029,
1119 
1120  1047, 1046, 1033, 1050, 2630, 1042, 1048, 1051, 1096, 1043,
1121  2630, 1046, 1051, 1096, 1047, 1059, 1053, 1054, 1052, 1054,
1122  1064, 1109, 1053, 1054, 1054, 1113, 1057, 1069, 1062, 2630,
1123  1058, 1066, 1064, 1115, 1058, 1079, 1065, 1066, 1067, 1068,
1124  1074, 1082, 1073, 1078, 1088, 1089, 1090, 1095, 1136, 1108,
1125  1113, 2630, 1095, 1092, 1088, 1102, 1085, 1085, 2630, 1086,
1126  1146, 1089, 2630, 1100, 1090, 1110, 1109, 1100, 1111, 1154,
1127  1115, 1108, 1112, 1116, 1099, 1116, 1117, 1108, 1163, 1110,
1128  2630, 1162, 1109, 1112, 1130, 1112, 1113, 1113, 1134, 1131,
1129  1119, 1137, 1125, 1139, 1125, 1133, 1142, 1122, 1137, 1144,
1130 
1131  1186, 1132, 1183, 2630, 1189, 1190, 1132, 1142, 1152, 1136,
1132  1156, 1144, 1140, 1147, 1156, 1144, 1151, 1152, 1164, 1205,
1133  1152, 1207, 1151, 1150, 1154, 1171, 1212, 1162, 1161, 1167,
1134  1165, 1163, 1158, 1219, 1170, 1221, 1217, 1223, 2630, 1164,
1135  1181, 1174, 1165, 1184, 1172, 1182, 1183, 1179, 1192, 1193,
1136  2630, 1177, 1173, 1179, 2630, 1180, 1240, 1199, 1180, 1199,
1137  1200, 1202, 1241, 1194, 1248, 1249, 1202, 1207, 1201, 1199,
1138  1210, 1209, 1193, 1198, 1204, 1217, 2630, 1239, 1230, 1262,
1139  1202, 1224, 1219, 1219, 1223, 1268, 2630, 1211, 1211, 1214,
1140  1231, 1226, 1230, 1225, 2630, 1217, 1234, 1214, 1235, 1225,
1141 
1142  1224, 1277, 1231, 2630, 1244, 1244, 1282, 1229, 1239, 1286,
1143  1244, 1249, 1235, 1295, 1238, 1239, 1253, 1251, 1243, 1249,
1144  1245, 1263, 1264, 1265, 2630, 1301, 1256, 2630, 1266, 2630,
1145  1251, 1262, 1253, 1272, 1265, 1263, 1256, 1268, 1312, 1276,
1146  1265, 1272, 1273, 1279, 2630, 1272, 2630, 1324, 1277, 1266,
1147  1327, 2630, 1328, 1270, 1276, 1283, 1327, 1289, 2630, 1290,
1148  2630, 1277, 2630, 1277, 1280, 1294, 1299, 1282, 1341, 1298,
1149  1299, 1339, 1291, 1296, 1347, 1343, 1296, 1350, 2630, 1301,
1150  1298, 1353, 1354, 1311, 1312, 1314, 2630, 2630, 1306, 1301,
1151  1355, 1304, 1320, 1363, 1305, 1317, 1306, 1323, 1338, 1369,
1152 
1153  2630, 1326, 1319, 1328, 1319, 1330, 2630, 1375, 1312, 1323,
1154  1338, 1374, 1326, 1337, 1338, 1339, 1336, 1380, 1343, 1345,
1155  1334, 1344, 1350, 1337, 1333, 1393, 1389, 1347, 1393, 1399,
1156  1356, 2630, 1342, 1358, 1349, 1352, 1361, 1362, 1359, 1349,
1157  1352, 1352, 1353, 1364, 1359, 1414, 1361, 1416, 1359, 1364,
1158  1420, 1416, 1357, 1372, 1365, 1368, 1381, 1382, 1380, 1429,
1159  2630, 1378, 1384, 2630, 2630, 1389, 1381, 1391, 1376, 1432,
1160  1379, 1379, 1440, 1441, 1385, 1395, 1444, 2630, 1392, 1393,
1161  1395, 1448, 1389, 1392, 2630, 1410, 1411, 2630, 1411, 1399,
1162  2630, 2630, 1412, 1395, 1415, 1416, 1402, 1404, 1463, 1413,
1163 
1164  2630, 1465, 1414, 1408, 1468, 1448, 2630, 1470, 1427, 1472,
1165  1423, 1470, 2630, 1418, 1477, 1427, 1421, 1418, 1421, 1423,
1166  1440, 1479, 1432, 1444, 1447, 1444, 1436, 1439, 1432, 1440,
1167  1430, 2630, 1438, 1453, 1438, 2630, 1440, 1494, 1442, 1496,
1168  1458, 1458, 1461, 1461, 1458, 1502, 1464, 1465, 1457, 1458,
1169  2630, 1459, 2630, 1469, 1461, 2630, 1467, 1472, 1473, 1470,
1170  1514, 1462, 1477, 1478, 1470, 2630, 1480, 1468, 1469, 1469,
1171  1475, 1474, 1472, 1526, 1487, 2630, 2630, 1528, 1475, 2630,
1172  1476, 1477, 1483, 2630, 1492, 1486, 1541, 1488, 1481, 1493,
1173  1488, 1498, 1509, 1502, 1508, 1498, 1553, 1506, 2630, 1515,
1174 
1175  2630, 1512, 1557, 2630, 1510, 1533, 2630, 1560, 2630, 1518,
1176  1503, 1563, 2630, 1564, 1521, 1526, 1508, 1568, 1564, 1528,
1177  1525, 1521, 1514, 1521, 1570, 1528, 1529, 1519, 1524, 1536,
1178  1582, 1536, 1584, 1534, 1582, 1546, 1546, 1542, 1586, 1534,
1179  1539, 1537, 1596, 1540, 1548, 1554, 1542, 1601, 1597, 1560,
1180  1604, 1565, 1554, 1548, 1608, 1550, 1551, 1565, 1612, 1569,
1181  1569, 1615, 1557, 1574, 1570, 1568, 1575, 1559, 1617, 1618,
1182  1619, 1582, 1575, 1574, 1574, 1569, 1587, 2630, 1578, 1584,
1183  1589, 1576, 1577, 1576, 1578, 1633, 1579, 2630, 1575, 1593,
1184  1642, 2630, 1600, 1613, 2630, 1645, 1598, 2630, 2630, 1589,
1185 
1186  1600, 1649, 2630, 1595, 1600, 1598, 1648, 1607, 1612, 1598,
1187  1601, 1617, 1606, 1604, 1618, 1605, 2630, 1607, 2630, 1625,
1188  1611, 1620, 1663, 1606, 1611, 1671, 1620, 1630, 1631, 2630,
1189  1676, 1616, 1673, 1631, 1675, 2630, 1626, 1682, 2630, 1625,
1190  1640, 1628, 2630, 1638, 1639, 1688, 2630, 1646, 1650, 2630,
1191  1686, 1652, 1628, 1646, 1647, 1656, 1638, 1645, 1657, 1656,
1192  1647, 1697, 1649, 1645, 1705, 1647, 1648, 1708, 1704, 1710,
1193  1660, 1712, 1665, 1655, 1671, 1664, 2630, 1717, 1718, 2630,
1194  1667, 1720, 1662, 2630, 1665, 1675, 1719, 1667, 1682, 1669,
1195  1728, 1685, 1671, 1678, 1678, 1733, 1690, 1691, 1678, 1680,
1196 
1197  1694, 1680, 1740, 1693, 2630, 1737, 1688, 1685, 2630, 1701,
1198  1688, 1701, 1688, 1709, 2630, 1706, 1751, 1704, 1701, 1702,
1199  2630, 1755, 1714, 1697, 1699, 1715, 1708, 1698, 1714, 1715,
1200  1724, 1714, 1766, 1726, 1710, 1719, 1765, 2630, 1723, 1772,
1201  2630, 1721, 2630, 1715, 2630, 1722, 1776, 1777, 1774, 2630,
1202  2630, 1736, 2630, 1776, 1738, 1739, 1724, 1725, 1733, 1787,
1203  2630, 1735, 1784, 1785, 1740, 2630, 1735, 1753, 1735, 1741,
1204  1754, 1749, 2630, 1746, 1751, 1749, 1801, 1745, 1759, 1804,
1205  1752, 1749, 1749, 2630, 1764, 1765, 1766, 2630, 1767, 1757,
1206  1769, 1814, 1767, 1816, 1758, 1766, 1767, 1780, 2630, 1781,
1207 
1208  1762, 1763, 1770, 1772, 2630, 1786, 1783, 1823, 1784, 2630,
1209  2630, 1788, 1773, 1773, 1788, 1781, 1780, 1791, 1778, 2630,
1210  1794, 1782, 1785, 1841, 1781, 1800, 1839, 1803, 1796, 1795,
1211  1804, 1806, 1810, 2630, 1846, 1801, 2630, 1805, 1796, 1855,
1212  1798, 1857, 1858, 1859, 1817, 1861, 2630, 1803, 2630, 1858,
1213  1820, 1821, 1808, 1816, 1827, 1814, 1825, 1811, 1809, 1817,
1214  1816, 1821, 1813, 1878, 1831, 1832, 1822, 1839, 1838, 1879,
1215  1823, 1842, 1843, 2630, 1848, 1841, 1880, 1847, 1834, 1849,
1216  1894, 1851, 1854, 1849, 1854, 1843, 1852, 2630, 1901, 2630,
1217  2630, 2630, 1862, 2630, 1903, 1845, 1905, 1906, 1849, 1908,
1218 
1219  1856, 1905, 1906, 1868, 1908, 1854, 1858, 1876, 1917, 1876,
1220  2630, 1867, 1857, 1916, 1882, 1875, 1871, 1925, 1868, 1870,
1221  1869, 1876, 1919, 1873, 1932, 1876, 2630, 1881, 1891, 1893,
1222  1895, 1878, 1886, 2630, 1881, 2630, 1893, 2630, 2630, 1898,
1223  2630, 1899, 1899, 1890, 1946, 1890, 1900, 1885, 1898, 2630,
1224  1900, 1908, 1953, 1894, 1896, 1893, 1917, 2630, 1904, 1911,
1225  1912, 1915, 1962, 1905, 2630, 1959, 1906, 1914, 1923, 1909,
1226  1925, 1924, 1927, 1920, 1915, 1915, 1927, 1922, 2630, 1933,
1227  1921, 1974, 1925, 1937, 1982, 2630, 1928, 1940, 1985, 1934,
1228  1936, 1934, 1935, 1990, 2630, 1943, 1930, 1945, 1950, 1942,
1229 
1230  1948, 1997, 1998, 1999, 1956, 2001, 2002, 1946, 1950, 1946,
1231  1962, 1945, 1957, 1951, 2630, 1967, 2011, 2630, 1968, 1953,
1232  1971, 1962, 2630, 1963, 1977, 1973, 1966, 1961, 1967, 2630,
1233  2630, 2630, 2022, 2630, 2630, 1965, 1973, 1968, 2021, 1987,
1234  1984, 2029, 1990, 2630, 2031, 1973, 2033, 1976, 1989, 1988,
1235  1989, 1979, 1991, 1987, 2630, 1982, 2042, 1995, 2004, 1997,
1236  2041, 2630, 1988, 2630, 2000, 2630, 2044, 2050, 1992, 2008,
1237  2053, 2009, 2055, 2056, 2630, 2013, 2007, 2000, 2020, 2017,
1238  2009, 2013, 2630, 2060, 2009, 2630, 2019, 2630, 2630, 2010,
1239  2018, 2065, 2025, 2018, 2073, 2021, 2021, 2017, 2019, 2034,
1240 
1241  2079, 2080, 2022, 2038, 2023, 2630, 2084, 2031, 2038, 2087,
1242  2031, 2630, 2630, 2041, 2090, 2038, 2630, 2042, 2041, 2630,
1243  2094, 2043, 2630, 2037, 2037, 2054, 2630, 2055, 2100, 2046,
1244  2102, 2103, 2630, 2104, 2630, 2630, 2630, 2630, 2110, 2113,
1245  2116, 2117, 2119, 2122, 2125, 2128
1246  } ;
1247 
1248 static const flex_int16_t yy_def[2247] =
1249  { 0,
1250  2239, 2239, 2240, 2240, 2239, 2239, 2239, 2239, 2239, 2239,
1251  2238, 2238, 2238, 2238, 2238, 2241, 2238, 2238, 2238, 2238,
1252  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
1253  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2242,
1254  2238, 2238, 2238, 2243, 15, 2238, 45, 45, 45, 45,
1255  45, 45, 45, 45, 45, 2244, 45, 45, 45, 45,
1256  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1257  45, 45, 45, 45, 45, 45, 45, 45, 2241, 2238,
1258  2238, 2238, 2238, 2238, 2238, 2245, 2238, 2238, 2238, 2238,
1259  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2242, 2238, 2243,
1260 
1261  2238, 2238, 45, 45, 45, 45, 45, 45, 45, 45,
1262  45, 45, 2246, 45, 2244, 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, 45, 45,
1265  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1266  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1267  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1268  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1269  45, 45, 45, 45, 45, 45, 45, 2245, 2238, 2238,
1270  2238, 2238, 2238, 2238, 2238, 2238, 45, 45, 45, 45,
1271 
1272  45, 45, 45, 45, 45, 45, 2246, 2238, 2238, 115,
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, 45, 45, 45,
1276  45, 45, 45, 45, 45, 45, 45, 45, 2238, 45,
1277  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1278  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1279  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1280  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1281  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1282 
1283  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1284  45, 45, 45, 45, 45, 45, 45, 45, 2238, 2238,
1285  2238, 2238, 2238, 2238, 2238, 45, 45, 45, 45, 45,
1286  45, 2238, 45, 2238, 45, 115, 2238, 45, 45, 45,
1287  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1288  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1289  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1290  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1291  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1292  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1293 
1294  2238, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1295  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1296  2238, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1297  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1298  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1299  45, 2238, 45, 45, 45, 45, 45, 2238, 2238, 2238,
1300  45, 45, 45, 45, 45, 2238, 45, 2238, 45, 115,
1301  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1302  45, 45, 2238, 45, 45, 45, 45, 45, 45, 2238,
1303  45, 45, 45, 45, 45, 45, 2238, 45, 45, 45,
1304 
1305  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1306  2238, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1307  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1308  45, 45, 45, 45, 45, 2238, 45, 45, 45, 45,
1309  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1310  45, 45, 45, 45, 2238, 45, 2238, 45, 45, 45,
1311  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1312  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1313  45, 45, 45, 45, 45, 45, 45, 45, 45, 2238,
1314  45, 45, 2238, 45, 45, 2238, 45, 45, 45, 2238,
1315 
1316  45, 45, 45, 2238, 2238, 2238, 45, 45, 45, 45,
1317  2238, 45, 45, 45, 45, 45, 45, 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, 2238, 45,
1321  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1322  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1323  45, 45, 45, 45, 45, 45, 45, 45, 2238, 45,
1324  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1325  45, 45, 45, 45, 45, 45, 45, 2238, 45, 45,
1326 
1327  45, 45, 45, 45, 45, 45, 45, 45, 2238, 45,
1328  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1329  45, 45, 2238, 45, 45, 45, 45, 45, 45, 45,
1330  45, 45, 45, 45, 45, 45, 45, 45, 2238, 45,
1331  45, 2238, 45, 45, 45, 45, 45, 45, 45, 45,
1332  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1333  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1334  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1335  45, 45, 45, 45, 45, 45, 45, 2238, 45, 45,
1336  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1337 
1338  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1339  45, 2238, 45, 45, 45, 45, 45, 45, 45, 45,
1340  45, 45, 45, 45, 45, 2238, 45, 45, 45, 45,
1341  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1342  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1343  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1344  2238, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1345  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1346  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1347  2238, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1348 
1349  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1350  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1351  45, 45, 2238, 45, 45, 45, 45, 45, 45, 45,
1352  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1353  45, 2238, 2238, 45, 45, 45, 45, 45, 45, 2238,
1354  2238, 45, 45, 45, 45, 45, 45, 45, 2238, 45,
1355  45, 45, 45, 45, 45, 45, 45, 45, 45, 2238,
1356  2238, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1357  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1358  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1359 
1360  45, 45, 2238, 45, 45, 45, 45, 45, 45, 45,
1361  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1362  45, 45, 45, 45, 45, 2238, 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, 45,
1365  45, 45, 2238, 45, 45, 45, 45, 45, 45, 45,
1366  45, 45, 45, 45, 45, 45, 45, 2238, 45, 45,
1367  45, 45, 45, 45, 45, 45, 2238, 45, 45, 45,
1368  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1369  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1370 
1371  45, 45, 45, 45, 2238, 45, 45, 45, 45, 45,
1372  2238, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1373  45, 45, 45, 45, 45, 45, 45, 45, 45, 2238,
1374  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1375  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1376  45, 2238, 45, 45, 45, 45, 45, 45, 2238, 45,
1377  45, 45, 2238, 45, 45, 45, 45, 45, 45, 45,
1378  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1379  2238, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1380  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1381 
1382  45, 45, 45, 2238, 45, 45, 45, 45, 45, 45,
1383  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1384  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1385  45, 45, 45, 45, 45, 45, 45, 45, 2238, 45,
1386  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1387  2238, 45, 45, 45, 2238, 45, 45, 45, 45, 45,
1388  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1389  45, 45, 45, 45, 45, 45, 2238, 45, 45, 45,
1390  45, 45, 45, 45, 45, 45, 2238, 45, 45, 45,
1391  45, 45, 45, 45, 2238, 45, 45, 45, 45, 45,
1392 
1393  45, 45, 45, 2238, 45, 45, 45, 45, 45, 45,
1394  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1395  45, 45, 45, 45, 2238, 45, 45, 2238, 45, 2238,
1396  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1397  45, 45, 45, 45, 2238, 45, 2238, 45, 45, 45,
1398  45, 2238, 45, 45, 45, 45, 45, 45, 2238, 45,
1399  2238, 45, 2238, 45, 45, 45, 45, 45, 45, 45,
1400  45, 45, 45, 45, 45, 45, 45, 45, 2238, 45,
1401  45, 45, 45, 45, 45, 45, 2238, 2238, 45, 45,
1402  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1403 
1404  2238, 45, 45, 45, 45, 45, 2238, 45, 45, 45,
1405  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1406  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1407  45, 2238, 45, 45, 45, 45, 45, 45, 45, 45,
1408  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1409  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1410  2238, 45, 45, 2238, 2238, 45, 45, 45, 45, 45,
1411  45, 45, 45, 45, 45, 45, 45, 2238, 45, 45,
1412  45, 45, 45, 45, 2238, 45, 45, 2238, 45, 45,
1413  2238, 2238, 45, 45, 45, 45, 45, 45, 45, 45,
1414 
1415  2238, 45, 45, 45, 45, 45, 2238, 45, 45, 45,
1416  45, 45, 2238, 45, 45, 45, 45, 45, 45, 45,
1417  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1418  45, 2238, 45, 45, 45, 2238, 45, 45, 45, 45,
1419  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1420  2238, 45, 2238, 45, 45, 2238, 45, 45, 45, 45,
1421  45, 45, 45, 45, 45, 2238, 45, 45, 45, 45,
1422  45, 45, 45, 45, 45, 2238, 2238, 45, 45, 2238,
1423  45, 45, 45, 2238, 45, 45, 45, 45, 45, 45,
1424  45, 45, 45, 45, 45, 45, 45, 45, 2238, 45,
1425 
1426  2238, 45, 45, 2238, 45, 45, 2238, 45, 2238, 45,
1427  45, 45, 2238, 45, 45, 45, 45, 45, 45, 45,
1428  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1429  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1430  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1431  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1432  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1433  45, 45, 45, 45, 45, 45, 45, 2238, 45, 45,
1434  45, 45, 45, 45, 45, 45, 45, 2238, 45, 45,
1435  45, 2238, 45, 45, 2238, 45, 45, 2238, 2238, 45,
1436 
1437  45, 45, 2238, 45, 45, 45, 45, 45, 45, 45,
1438  45, 45, 45, 45, 45, 45, 2238, 45, 2238, 45,
1439  45, 45, 45, 45, 45, 45, 45, 45, 45, 2238,
1440  45, 45, 45, 45, 45, 2238, 45, 45, 2238, 45,
1441  45, 45, 2238, 45, 45, 45, 2238, 45, 45, 2238,
1442  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1443  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1444  45, 45, 45, 45, 45, 45, 2238, 45, 45, 2238,
1445  45, 45, 45, 2238, 45, 45, 45, 45, 45, 45,
1446  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1447 
1448  45, 45, 45, 45, 2238, 45, 45, 45, 2238, 45,
1449  45, 45, 45, 45, 2238, 45, 45, 45, 45, 45,
1450  2238, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1451  45, 45, 45, 45, 45, 45, 45, 2238, 45, 45,
1452  2238, 45, 2238, 45, 2238, 45, 45, 45, 45, 2238,
1453  2238, 45, 2238, 45, 45, 45, 45, 45, 45, 45,
1454  2238, 45, 45, 45, 45, 2238, 45, 45, 45, 45,
1455  45, 45, 2238, 45, 45, 45, 45, 45, 45, 45,
1456  45, 45, 45, 2238, 45, 45, 45, 2238, 45, 45,
1457  45, 45, 45, 45, 45, 45, 45, 45, 2238, 45,
1458 
1459  45, 45, 45, 45, 2238, 45, 45, 45, 45, 2238,
1460  2238, 45, 45, 45, 45, 45, 45, 45, 45, 2238,
1461  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1462  45, 45, 45, 2238, 45, 45, 2238, 45, 45, 45,
1463  45, 45, 45, 45, 45, 45, 2238, 45, 2238, 45,
1464  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1465  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1466  45, 45, 45, 2238, 45, 45, 45, 45, 45, 45,
1467  45, 45, 45, 45, 45, 45, 45, 2238, 45, 2238,
1468  2238, 2238, 45, 2238, 45, 45, 45, 45, 45, 45,
1469 
1470  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1471  2238, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1472  45, 45, 45, 45, 45, 45, 2238, 45, 45, 45,
1473  45, 45, 45, 2238, 45, 2238, 45, 2238, 2238, 45,
1474  2238, 45, 45, 45, 45, 45, 45, 45, 45, 2238,
1475  45, 45, 45, 45, 45, 45, 45, 2238, 45, 45,
1476  45, 45, 45, 45, 2238, 45, 45, 45, 45, 45,
1477  45, 45, 45, 45, 45, 45, 45, 45, 2238, 45,
1478  45, 45, 45, 45, 45, 2238, 45, 45, 45, 45,
1479  45, 45, 45, 45, 2238, 45, 45, 45, 45, 45,
1480 
1481  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1482  45, 45, 45, 45, 2238, 45, 45, 2238, 45, 45,
1483  45, 45, 2238, 45, 45, 45, 45, 45, 45, 2238,
1484  2238, 2238, 45, 2238, 2238, 45, 45, 45, 45, 45,
1485  45, 45, 45, 2238, 45, 45, 45, 45, 45, 45,
1486  45, 45, 45, 45, 2238, 45, 45, 45, 45, 45,
1487  45, 2238, 45, 2238, 45, 2238, 45, 45, 45, 45,
1488  45, 45, 45, 45, 2238, 45, 45, 45, 45, 45,
1489  45, 45, 2238, 45, 45, 2238, 45, 2238, 2238, 45,
1490  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1491 
1492  45, 45, 45, 45, 45, 2238, 45, 45, 45, 45,
1493  45, 2238, 2238, 45, 45, 45, 2238, 45, 45, 2238,
1494  45, 45, 2238, 45, 45, 45, 2238, 45, 45, 45,
1495  45, 45, 2238, 45, 2238, 2238, 2238, 0, 2238, 2238,
1496  2238, 2238, 2238, 2238, 2238, 2238
1497  } ;
1498 
1499 static const flex_int16_t yy_nxt[2704] =
1500  { 0,
1501  2238, 13, 14, 13, 2238, 15, 16, 2238, 17, 18,
1502  19, 20, 21, 22, 22, 22, 22, 22, 23, 24,
1503  85, 826, 37, 14, 37, 86, 25, 26, 38, 101,
1504  856, 27, 37, 14, 37, 42, 28, 42, 38, 91,
1505  92, 29, 201, 30, 13, 14, 13, 90, 91, 25,
1506  31, 92, 13, 14, 13, 13, 14, 13, 32, 40,
1507  827, 13, 14, 13, 33, 40, 102, 91, 92, 201,
1508  90, 34, 35, 13, 14, 13, 94, 15, 16, 95,
1509  17, 18, 19, 20, 21, 22, 22, 22, 22, 22,
1510  23, 24, 13, 14, 13, 90, 39, 104, 25, 26,
1511 
1512  13, 14, 13, 27, 39, 42, 106, 42, 28, 42,
1513  107, 42, 41, 29, 108, 30, 111, 112, 93, 139,
1514  41, 25, 31, 104, 229, 230, 88, 140, 88, 106,
1515  32, 89, 89, 89, 89, 89, 33, 108, 107, 111,
1516  220, 112, 221, 34, 35, 44, 44, 44, 45, 45,
1517  46, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1518  45, 47, 45, 45, 45, 45, 45, 48, 45, 45,
1519  49, 45, 50, 45, 51, 45, 52, 45, 45, 45,
1520  45, 53, 54, 45, 55, 45, 45, 56, 45, 45,
1521  57, 58, 59, 60, 61, 62, 63, 64, 65, 51,
1522 
1523  66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
1524  76, 77, 78, 45, 45, 45, 45, 45, 80, 254,
1525  81, 81, 81, 81, 81, 80, 106, 83, 83, 83,
1526  83, 83, 255, 82, 84, 84, 84, 84, 84, 80,
1527  82, 83, 83, 83, 83, 83, 137, 82, 109, 106,
1528  104, 120, 857, 138, 82, 121, 82, 167, 110, 122,
1529  136, 168, 123, 82, 158, 124, 189, 206, 101, 125,
1530  82, 109, 159, 858, 160, 191, 116, 82, 45, 161,
1531  162, 132, 117, 133, 45, 118, 110, 45, 859, 45,
1532  206, 45, 189, 45, 134, 114, 146, 147, 45, 45,
1533 
1534  148, 45, 45, 191, 135, 102, 149, 45, 45, 45,
1535  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1536  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1537  126, 163, 45, 127, 128, 164, 45, 129, 130, 141,
1538  45, 108, 142, 111, 190, 165, 191, 198, 45, 143,
1539  131, 144, 45, 150, 45, 115, 189, 151, 176, 177,
1540  155, 152, 156, 112, 157, 169, 183, 202, 109, 170,
1541  190, 860, 171, 153, 194, 198, 184, 154, 110, 172,
1542  173, 185, 192, 190, 174, 175, 236, 112, 237, 241,
1543  238, 178, 203, 179, 200, 202, 180, 187, 84, 84,
1544 
1545  84, 84, 84, 239, 259, 242, 181, 240, 260, 193,
1546  863, 82, 80, 182, 81, 81, 81, 81, 81, 203,
1547  200, 204, 270, 88, 205, 88, 864, 82, 89, 89,
1548  89, 89, 89, 80, 82, 83, 83, 83, 83, 83,
1549  84, 84, 84, 84, 84, 100, 337, 198, 82, 204,
1550  82, 205, 100, 82, 89, 89, 89, 89, 89, 89,
1551  89, 89, 89, 89, 211, 216, 245, 202, 271, 246,
1552  223, 82, 275, 247, 217, 212, 82, 303, 218, 224,
1553  225, 280, 100, 203, 281, 282, 100, 276, 277, 278,
1554  100, 304, 283, 295, 296, 267, 284, 268, 100, 321,
1555 
1556  338, 463, 100, 309, 100, 100, 209, 286, 204, 310,
1557  308, 205, 319, 320, 210, 210, 210, 210, 210, 320,
1558  390, 865, 321, 210, 210, 210, 210, 210, 210, 297,
1559  463, 319, 351, 298, 329, 352, 312, 299, 314, 320,
1560  319, 321, 287, 288, 289, 323, 210, 210, 210, 210,
1561  210, 210, 327, 290, 330, 291, 331, 292, 293, 322,
1562  294, 333, 329, 335, 324, 327, 353, 401, 381, 562,
1563  454, 406, 411, 391, 354, 327, 392, 800, 801, 331,
1564  355, 330, 412, 331, 333, 382, 425, 458, 339, 426,
1565  335, 336, 336, 336, 336, 336, 441, 333, 442, 717,
1566 
1567  336, 336, 336, 336, 336, 336, 399, 407, 332, 458,
1568  458, 402, 465, 446, 467, 555, 866, 867, 563, 461,
1569  333, 408, 455, 336, 336, 336, 336, 336, 336, 462,
1570  463, 494, 459, 511, 450, 465, 467, 495, 512, 537,
1571  603, 603, 467, 470, 470, 470, 470, 470, 868, 538,
1572  869, 718, 470, 470, 470, 470, 470, 470, 566, 472,
1573  527, 528, 567, 576, 539, 529, 596, 577, 603, 610,
1574  607, 597, 608, 556, 636, 470, 470, 470, 470, 470,
1575  470, 769, 627, 649, 770, 870, 513, 637, 650, 638,
1576  628, 514, 629, 630, 631, 632, 633, 607, 671, 608,
1577 
1578  45, 45, 45, 45, 45, 871, 872, 873, 672, 45,
1579  45, 45, 45, 45, 45, 606, 743, 744, 742, 749,
1580  682, 874, 875, 746, 876, 877, 750, 861, 878, 879,
1581  880, 881, 45, 45, 45, 45, 45, 45, 862, 882,
1582  883, 884, 885, 743, 886, 744, 887, 888, 877, 889,
1583  891, 892, 876, 893, 894, 890, 895, 896, 897, 898,
1584  899, 900, 901, 902, 903, 904, 905, 906, 907, 908,
1585  909, 910, 911, 912, 913, 914, 915, 916, 919, 920,
1586  921, 917, 922, 923, 924, 918, 925, 926, 927, 928,
1587  929, 930, 931, 932, 934, 935, 936, 937, 938, 939,
1588 
1589  940, 941, 942, 943, 944, 945, 946, 933, 948, 947,
1590  949, 950, 951, 952, 953, 954, 955, 956, 957, 958,
1591  959, 960, 961, 962, 963, 964, 965, 966, 967, 968,
1592  969, 970, 971, 972, 973, 974, 975, 976, 977, 978,
1593  979, 980, 981, 982, 983, 984, 985, 986, 987, 988,
1594  990, 991, 992, 995, 996, 997, 989, 1000, 998, 993,
1595  1001, 1002, 1003, 994, 999, 1004, 1005, 1006, 1007, 1008,
1596  1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018,
1597  1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028,
1598  1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038,
1599 
1600  1039, 1040, 1041, 1042, 1043, 1044, 1045, 1018, 1046, 1047,
1601  1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057,
1602  1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067,
1603  1068, 1070, 1071, 1072, 1073, 1069, 1074, 1075, 1076, 1077,
1604  1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087,
1605  1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1098,
1606  1099, 1100, 1097, 1101, 1102, 1103, 1104, 1105, 1106, 1107,
1607  1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
1608  1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127,
1609  1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137,
1610 
1611  1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147,
1612  1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157,
1613  1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167,
1614  1168, 1169, 1170, 1171, 1172, 1173, 1151, 1174, 1175, 1150,
1615  1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185,
1616  1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195,
1617  1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1206,
1618  1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216,
1619  1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226,
1620  1227, 1228, 1229, 1230, 1231, 1233, 1234, 1235, 1236, 1237,
1621 
1622  1238, 1239, 1240, 1241, 1242, 1232, 1243, 1244, 1245, 1246,
1623  1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256,
1624  1257, 1258, 1259, 1260, 1261, 1262, 1205, 1263, 1264, 1265,
1625  1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275,
1626  1276, 1277, 1278, 1280, 1279, 1281, 1282, 1283, 1284, 1285,
1627  1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295,
1628  1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305,
1629  1278, 1279, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313,
1630  1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323,
1631  1324, 1325, 1326, 1327, 1328, 1330, 1332, 1333, 1334, 1329,
1632 
1633  1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344,
1634  1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354,
1635  1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364,
1636  1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1331,
1637  1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383,
1638  1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393,
1639  1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403,
1640  1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413,
1641  1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1399, 1422,
1642  1423, 1424, 1425, 1426, 1400, 1427, 1428, 1429, 1430, 1431,
1643 
1644  1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441,
1645  1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451,
1646  1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461,
1647  1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471,
1648  1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481,
1649  1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492,
1650  1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502,
1651  1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512,
1652  1513, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523,
1653  1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533,
1654 
1655  1534, 1506, 1482, 1535, 1536, 1537, 1538, 1539, 1540, 1541,
1656  1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551,
1657  1552, 1553, 1554, 1555, 1514, 1556, 1557, 1558, 1559, 1561,
1658  1562, 1563, 1564, 1565, 1566, 1567, 1560, 1568, 1569, 1570,
1659  1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580,
1660  1581, 1582, 1583, 1584, 1586, 1587, 1590, 1588, 1585, 1589,
1661  1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600,
1662  1601, 1602, 1603, 1604, 1606, 1607, 1608, 1609, 1605, 1610,
1663  1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620,
1664  1621, 1622, 1623, 1624, 1625, 1626, 1627, 1606, 1628, 1629,
1665 
1666  1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639,
1667  1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649,
1668  1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659,
1669  1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669,
1670  1670, 1671, 1672, 1673, 1677, 1674, 1678, 1679, 1675, 1680,
1671  1681, 1676, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689,
1672  1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699,
1673  1700, 1701, 1702, 1703, 1704, 1705, 1707, 1708, 1709, 1710,
1674  1711, 1712, 1713, 1714, 1715, 1716, 1706, 1717, 1718, 1719,
1675  1720, 1694, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728,
1676 
1677  1729, 1730, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739,
1678  1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749,
1679  1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759,
1680  1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769,
1681  1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779,
1682  1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1731,
1683  1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798,
1684  1799, 1800, 1801, 1802, 1803, 1804, 1805, 1779, 1806, 1807,
1685  1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817,
1686  1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827,
1687 
1688  1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837,
1689  1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847,
1690  1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857,
1691  1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867,
1692  1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877,
1693  1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887,
1694  1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897,
1695  1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1908,
1696  1909, 1910, 1911, 1907, 1912, 1913, 1914, 1915, 1916, 1917,
1697  1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927,
1698 
1699  1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937,
1700  1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947,
1701  1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957,
1702  1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967,
1703  1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977,
1704  1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987,
1705  1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
1706  1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008,
1707  2009, 2007, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017,
1708  2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027,
1709 
1710  2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037,
1711  2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047,
1712  2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057,
1713  2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067,
1714  2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077,
1715  2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087,
1716  2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097,
1717  2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107,
1718  2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117,
1719  2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127,
1720 
1721  2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137,
1722  2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147,
1723  2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157,
1724  2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167,
1725  2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177,
1726  2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187,
1727  2188, 2189, 2190, 2191, 2192, 2193, 2195, 2194, 2196, 2197,
1728  2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207,
1729  2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217,
1730  2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227,
1731 
1732  2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237,
1733  12, 12, 12, 36, 36, 36, 79, 98, 79, 100,
1734  100, 100, 113, 113, 113, 188, 855, 188, 207, 207,
1735  207, 854, 853, 852, 851, 850, 849, 848, 847, 846,
1736  845, 844, 843, 842, 841, 840, 839, 838, 837, 836,
1737  835, 834, 833, 832, 831, 830, 829, 828, 825, 824,
1738  823, 822, 821, 820, 819, 818, 817, 816, 815, 814,
1739  813, 812, 811, 810, 809, 808, 807, 806, 805, 804,
1740  803, 802, 799, 798, 797, 796, 795, 794, 793, 792,
1741  791, 790, 789, 788, 787, 786, 785, 784, 783, 782,
1742 
1743  781, 780, 779, 778, 777, 776, 775, 774, 773, 772,
1744  771, 768, 767, 766, 765, 764, 763, 762, 761, 760,
1745  759, 758, 757, 756, 755, 754, 753, 752, 751, 748,
1746  747, 745, 742, 741, 740, 739, 738, 737, 736, 735,
1747  734, 733, 732, 731, 730, 729, 728, 727, 726, 725,
1748  724, 723, 722, 721, 720, 719, 716, 715, 714, 713,
1749  712, 711, 710, 709, 708, 707, 706, 705, 704, 703,
1750  702, 701, 700, 699, 698, 697, 696, 695, 694, 693,
1751  692, 691, 690, 689, 688, 687, 686, 685, 684, 683,
1752  681, 680, 679, 678, 677, 676, 675, 674, 673, 670,
1753 
1754  669, 668, 667, 666, 665, 664, 663, 662, 661, 660,
1755  659, 658, 657, 656, 655, 654, 653, 652, 651, 648,
1756  647, 646, 645, 644, 643, 642, 641, 640, 639, 635,
1757  634, 626, 625, 624, 623, 622, 621, 620, 619, 618,
1758  617, 616, 615, 614, 613, 612, 611, 609, 606, 605,
1759  604, 602, 601, 600, 599, 598, 595, 594, 593, 592,
1760  591, 590, 589, 588, 587, 586, 585, 584, 583, 582,
1761  581, 580, 579, 578, 575, 574, 573, 572, 571, 570,
1762  569, 568, 565, 564, 561, 560, 559, 558, 557, 554,
1763  553, 552, 551, 550, 549, 548, 547, 546, 545, 544,
1764 
1765  543, 542, 541, 540, 536, 535, 534, 533, 532, 531,
1766  530, 526, 525, 524, 523, 522, 521, 520, 519, 518,
1767  517, 516, 515, 510, 509, 508, 507, 506, 505, 504,
1768  503, 502, 501, 500, 499, 498, 497, 496, 493, 492,
1769  491, 490, 489, 488, 487, 486, 485, 484, 483, 482,
1770  481, 480, 479, 478, 477, 476, 475, 474, 473, 471,
1771  469, 468, 466, 464, 460, 457, 456, 453, 452, 451,
1772  449, 448, 447, 445, 444, 443, 440, 439, 438, 437,
1773  436, 435, 434, 433, 432, 431, 430, 429, 428, 427,
1774  424, 423, 422, 421, 420, 419, 418, 417, 416, 415,
1775 
1776  414, 413, 410, 409, 405, 404, 403, 400, 398, 397,
1777  396, 395, 394, 393, 389, 388, 387, 386, 385, 384,
1778  383, 380, 379, 378, 377, 376, 375, 374, 373, 372,
1779  371, 370, 369, 368, 367, 366, 365, 364, 363, 362,
1780  361, 360, 359, 358, 357, 356, 350, 349, 348, 347,
1781  346, 345, 344, 343, 342, 341, 340, 208, 334, 332,
1782  328, 326, 325, 318, 317, 316, 315, 313, 311, 307,
1783  306, 305, 302, 301, 300, 285, 279, 274, 273, 272,
1784  269, 266, 265, 264, 263, 262, 261, 258, 257, 256,
1785  253, 252, 251, 250, 249, 248, 244, 243, 235, 234,
1786 
1787  233, 232, 231, 228, 227, 226, 222, 219, 215, 214,
1788  213, 208, 199, 197, 196, 195, 186, 166, 145, 119,
1789  105, 103, 43, 99, 97, 96, 87, 43, 2238, 11,
1790  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
1791  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
1792  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
1793  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
1794  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
1795  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
1796  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
1797 
1798  2238, 2238, 2238
1799  } ;
1800 
1801 static const flex_int16_t yy_chk[2704] =
1802  { 0,
1803  0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
1804  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1805  21, 690, 3, 3, 3, 21, 1, 1, 3, 44,
1806  721, 1, 4, 4, 4, 13, 1, 13, 4, 27,
1807  28, 1, 107, 1, 5, 5, 5, 26, 32, 1,
1808  1, 33, 6, 6, 6, 7, 7, 7, 1, 7,
1809  690, 8, 8, 8, 1, 8, 44, 27, 28, 107,
1810  26, 1, 1, 2, 2, 2, 32, 2, 2, 33,
1811  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1812  2, 2, 9, 9, 9, 31, 5, 48, 2, 2,
1813 
1814  10, 10, 10, 2, 6, 37, 50, 37, 2, 42,
1815  51, 42, 9, 2, 52, 2, 54, 55, 31, 64,
1816  10, 2, 2, 48, 128, 128, 25, 64, 25, 50,
1817  2, 25, 25, 25, 25, 25, 2, 52, 51, 54,
1818  122, 55, 122, 2, 2, 15, 15, 15, 15, 15,
1819  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1820  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1821  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1822  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1823  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1824 
1825  15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
1826  15, 15, 15, 15, 15, 15, 15, 15, 17, 146,
1827  17, 17, 17, 17, 17, 19, 62, 19, 19, 19,
1828  19, 19, 146, 17, 20, 20, 20, 20, 20, 22,
1829  19, 22, 22, 22, 22, 22, 63, 20, 53, 62,
1830  57, 59, 722, 63, 22, 59, 17, 73, 53, 59,
1831  62, 73, 59, 19, 70, 59, 90, 112, 100, 59,
1832  20, 53, 70, 724, 70, 92, 57, 22, 45, 70,
1833  70, 61, 57, 61, 45, 57, 53, 45, 725, 45,
1834  112, 45, 90, 45, 61, 56, 67, 67, 45, 45,
1835 
1836  67, 45, 56, 92, 61, 100, 67, 45, 45, 45,
1837  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1838  45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1839  60, 71, 56, 60, 60, 71, 56, 60, 60, 65,
1840  56, 69, 65, 76, 91, 71, 95, 104, 56, 65,
1841  60, 65, 56, 68, 56, 56, 93, 68, 75, 75,
1842  69, 68, 69, 78, 69, 74, 76, 108, 75, 74,
1843  91, 726, 74, 68, 95, 104, 76, 68, 75, 74,
1844  74, 76, 93, 94, 74, 74, 134, 78, 134, 136,
1845  135, 75, 109, 75, 106, 108, 75, 78, 80, 80,
1846 
1847  80, 80, 80, 135, 150, 136, 75, 135, 150, 94,
1848  728, 80, 81, 75, 81, 81, 81, 81, 81, 109,
1849  106, 110, 159, 82, 111, 82, 729, 81, 82, 82,
1850  82, 82, 82, 83, 80, 83, 83, 83, 83, 83,
1851  84, 84, 84, 84, 84, 102, 211, 116, 83, 110,
1852  81, 111, 102, 84, 88, 88, 88, 88, 88, 89,
1853  89, 89, 89, 89, 116, 120, 139, 157, 159, 139,
1854  124, 83, 163, 139, 120, 116, 84, 174, 120, 124,
1855  124, 165, 102, 178, 165, 165, 102, 163, 163, 163,
1856  102, 174, 166, 169, 169, 157, 166, 157, 102, 191,
1857 
1858  211, 327, 102, 179, 102, 102, 115, 168, 181, 179,
1859  178, 183, 189, 190, 115, 115, 115, 115, 115, 193,
1860  260, 730, 191, 115, 115, 115, 115, 115, 115, 170,
1861  327, 192, 224, 170, 200, 224, 181, 170, 183, 190,
1862  189, 194, 168, 168, 168, 193, 115, 115, 115, 115,
1863  115, 115, 198, 168, 201, 168, 202, 168, 168, 192,
1864  168, 204, 200, 206, 194, 212, 225, 269, 252, 423,
1865  316, 273, 276, 260, 225, 198, 260, 664, 664, 202,
1866  225, 201, 276, 267, 204, 252, 289, 319, 212, 289,
1867  206, 210, 210, 210, 210, 210, 304, 312, 304, 576,
1868 
1869  210, 210, 210, 210, 210, 210, 267, 273, 308, 322,
1870  319, 269, 329, 308, 331, 416, 731, 732, 423, 326,
1871  312, 273, 316, 210, 210, 210, 210, 210, 210, 326,
1872  339, 361, 322, 377, 312, 329, 399, 361, 377, 398,
1873  463, 472, 331, 336, 336, 336, 336, 336, 733, 398,
1874  734, 576, 336, 336, 336, 336, 336, 336, 426, 339,
1875  390, 390, 426, 435, 399, 390, 455, 435, 463, 472,
1876  469, 455, 469, 416, 494, 336, 336, 336, 336, 336,
1877  336, 633, 491, 506, 633, 735, 377, 494, 506, 494,
1878  491, 377, 491, 491, 491, 491, 491, 469, 528, 469,
1879 
1880  470, 470, 470, 470, 470, 736, 737, 738, 528, 470,
1881  470, 470, 470, 470, 470, 539, 607, 608, 610, 614,
1882  539, 740, 741, 610, 743, 744, 614, 727, 745, 746,
1883  747, 748, 470, 470, 470, 470, 470, 470, 727, 749,
1884  750, 751, 752, 607, 753, 608, 754, 755, 744, 756,
1885  757, 758, 743, 759, 759, 756, 759, 760, 761, 762,
1886  763, 764, 765, 766, 767, 768, 769, 770, 771, 772,
1887  773, 774, 775, 776, 777, 778, 779, 780, 781, 782,
1888  783, 780, 784, 785, 786, 780, 787, 789, 790, 791,
1889  792, 793, 794, 795, 796, 797, 798, 799, 800, 801,
1890 
1891  802, 803, 804, 805, 806, 807, 808, 795, 809, 808,
1892  810, 811, 813, 814, 815, 816, 817, 818, 819, 820,
1893  821, 822, 823, 824, 825, 827, 828, 829, 830, 831,
1894  832, 833, 834, 835, 836, 837, 838, 839, 840, 841,
1895  842, 843, 844, 845, 846, 847, 848, 849, 850, 851,
1896  852, 853, 853, 854, 855, 856, 851, 858, 857, 853,
1897  859, 860, 862, 853, 857, 863, 864, 865, 866, 867,
1898  868, 869, 870, 871, 872, 873, 874, 875, 876, 877,
1899  878, 879, 880, 881, 882, 883, 884, 885, 886, 887,
1900  888, 889, 890, 892, 893, 894, 895, 896, 897, 898,
1901 
1902  899, 900, 901, 902, 903, 904, 905, 877, 906, 907,
1903  908, 909, 910, 911, 912, 913, 914, 915, 916, 917,
1904  918, 919, 920, 921, 922, 924, 925, 926, 927, 928,
1905  929, 930, 931, 932, 933, 929, 934, 935, 936, 937,
1906  938, 939, 940, 941, 944, 945, 946, 947, 948, 949,
1907  952, 953, 954, 955, 956, 957, 958, 960, 961, 962,
1908  963, 964, 961, 965, 966, 967, 968, 969, 972, 973,
1909  974, 975, 976, 977, 978, 979, 980, 981, 982, 983,
1910  984, 985, 986, 987, 988, 989, 990, 991, 992, 993,
1911  994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1004,
1912 
1913  1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014,
1914  1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024,
1915  1025, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035,
1916  1036, 1037, 1038, 1039, 1040, 1041, 1018, 1042, 1043, 1017,
1917  1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1054,
1918  1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064,
1919  1065, 1066, 1067, 1069, 1070, 1071, 1072, 1073, 1074, 1075,
1920  1076, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
1921  1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096,
1922  1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1106, 1107,
1923 
1924  1108, 1109, 1110, 1112, 1113, 1101, 1114, 1115, 1116, 1117,
1925  1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127,
1926  1128, 1129, 1131, 1132, 1133, 1134, 1074, 1135, 1136, 1137,
1927  1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147,
1928  1148, 1149, 1150, 1153, 1151, 1154, 1155, 1156, 1157, 1158,
1929  1160, 1161, 1162, 1164, 1165, 1166, 1167, 1168, 1169, 1170,
1930  1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180,
1931  1150, 1151, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189,
1932  1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199,
1933  1200, 1201, 1202, 1203, 1205, 1206, 1207, 1208, 1209, 1205,
1934 
1935  1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219,
1936  1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229,
1937  1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1240,
1938  1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1206,
1939  1250, 1252, 1253, 1254, 1256, 1257, 1258, 1259, 1260, 1261,
1940  1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271,
1941  1272, 1273, 1274, 1275, 1276, 1278, 1279, 1280, 1281, 1282,
1942  1283, 1284, 1285, 1286, 1288, 1289, 1290, 1291, 1292, 1293,
1943  1294, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1278, 1303,
1944  1305, 1306, 1307, 1308, 1279, 1309, 1310, 1311, 1312, 1313,
1945 
1946  1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323,
1947  1324, 1326, 1327, 1329, 1331, 1332, 1333, 1334, 1335, 1336,
1948  1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1346, 1348,
1949  1349, 1350, 1351, 1353, 1354, 1355, 1356, 1357, 1358, 1360,
1950  1362, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372,
1951  1373, 1374, 1375, 1376, 1377, 1378, 1380, 1381, 1382, 1383,
1952  1384, 1385, 1386, 1389, 1390, 1391, 1392, 1393, 1394, 1395,
1953  1396, 1397, 1398, 1399, 1400, 1402, 1403, 1404, 1405, 1406,
1954  1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417,
1955  1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427,
1956 
1957  1428, 1399, 1372, 1429, 1430, 1431, 1433, 1434, 1435, 1436,
1958  1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446,
1959  1447, 1448, 1449, 1450, 1408, 1451, 1452, 1453, 1454, 1455,
1960  1456, 1457, 1458, 1459, 1460, 1462, 1454, 1463, 1466, 1467,
1961  1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477,
1962  1479, 1480, 1481, 1482, 1483, 1484, 1487, 1486, 1482, 1486,
1963  1489, 1490, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500,
1964  1502, 1503, 1504, 1505, 1506, 1508, 1509, 1510, 1505, 1511,
1965  1512, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522,
1966  1523, 1524, 1525, 1526, 1527, 1528, 1529, 1506, 1530, 1531,
1967 
1968  1533, 1534, 1535, 1537, 1538, 1539, 1540, 1541, 1542, 1543,
1969  1544, 1545, 1546, 1547, 1548, 1549, 1550, 1552, 1554, 1555,
1970  1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1567,
1971  1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1578, 1579,
1972  1581, 1582, 1583, 1585, 1586, 1585, 1587, 1588, 1585, 1589,
1973  1590, 1585, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598,
1974  1600, 1602, 1603, 1605, 1606, 1608, 1610, 1611, 1612, 1614,
1975  1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624,
1976  1625, 1626, 1627, 1628, 1629, 1630, 1620, 1631, 1632, 1633,
1977  1634, 1606, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642,
1978 
1979  1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651,
1980  1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661,
1981  1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671,
1982  1672, 1673, 1674, 1675, 1676, 1677, 1679, 1680, 1681, 1682,
1983  1683, 1684, 1685, 1686, 1687, 1689, 1690, 1691, 1693, 1694,
1984  1696, 1697, 1700, 1701, 1702, 1704, 1705, 1706, 1707, 1643,
1985  1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1718,
1986  1720, 1721, 1722, 1723, 1724, 1725, 1726, 1694, 1727, 1728,
1987  1729, 1731, 1732, 1733, 1734, 1735, 1737, 1738, 1740, 1741,
1988  1742, 1744, 1745, 1746, 1748, 1749, 1751, 1752, 1753, 1754,
1989 
1990  1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764,
1991  1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774,
1992  1775, 1776, 1778, 1779, 1781, 1782, 1783, 1785, 1786, 1787,
1993  1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797,
1994  1798, 1799, 1800, 1801, 1802, 1803, 1804, 1806, 1807, 1808,
1995  1810, 1811, 1812, 1813, 1814, 1816, 1817, 1818, 1819, 1820,
1996  1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831,
1997  1832, 1833, 1834, 1835, 1836, 1837, 1839, 1840, 1842, 1844,
1998  1846, 1847, 1848, 1842, 1849, 1852, 1854, 1855, 1856, 1857,
1999  1858, 1859, 1860, 1862, 1863, 1864, 1865, 1867, 1868, 1869,
2000 
2001  1870, 1871, 1872, 1874, 1875, 1876, 1877, 1878, 1879, 1880,
2002  1881, 1882, 1883, 1885, 1886, 1887, 1889, 1890, 1891, 1892,
2003  1893, 1894, 1895, 1896, 1897, 1898, 1900, 1901, 1902, 1903,
2004  1904, 1906, 1907, 1908, 1909, 1912, 1913, 1914, 1915, 1916,
2005  1917, 1918, 1919, 1921, 1922, 1923, 1924, 1925, 1926, 1927,
2006  1928, 1929, 1930, 1931, 1932, 1933, 1935, 1936, 1938, 1939,
2007  1940, 1941, 1942, 1943, 1944, 1945, 1946, 1948, 1950, 1951,
2008  1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961,
2009  1962, 1960, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970,
2010  1971, 1972, 1973, 1975, 1976, 1977, 1978, 1979, 1980, 1981,
2011 
2012  1982, 1983, 1984, 1985, 1986, 1987, 1989, 1993, 1995, 1996,
2013  1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
2014  2007, 2008, 2009, 2010, 2012, 2013, 2014, 2015, 2016, 2017,
2015  2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2028,
2016  2029, 2030, 2031, 2032, 2033, 2035, 2037, 2040, 2042, 2043,
2017  2044, 2045, 2046, 2047, 2048, 2049, 2051, 2052, 2053, 2054,
2018  2055, 2056, 2057, 2059, 2060, 2061, 2062, 2063, 2064, 2066,
2019  2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076,
2020  2077, 2078, 2080, 2081, 2082, 2083, 2084, 2085, 2087, 2088,
2021  2089, 2090, 2091, 2092, 2093, 2094, 2096, 2097, 2098, 2099,
2022 
2023  2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109,
2024  2110, 2111, 2112, 2113, 2114, 2116, 2117, 2119, 2120, 2121,
2025  2122, 2124, 2125, 2126, 2127, 2128, 2129, 2133, 2136, 2137,
2026  2138, 2139, 2140, 2141, 2142, 2143, 2145, 2146, 2147, 2148,
2027  2149, 2150, 2151, 2152, 2153, 2154, 2156, 2157, 2158, 2159,
2028  2160, 2161, 2163, 2165, 2167, 2168, 2169, 2170, 2171, 2172,
2029  2173, 2174, 2176, 2177, 2178, 2179, 2180, 2179, 2181, 2182,
2030  2184, 2185, 2187, 2190, 2191, 2192, 2193, 2194, 2195, 2196,
2031  2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2207,
2032  2208, 2209, 2210, 2211, 2214, 2215, 2216, 2218, 2219, 2221,
2033 
2034  2222, 2224, 2225, 2226, 2228, 2229, 2230, 2231, 2232, 2234,
2035  2239, 2239, 2239, 2240, 2240, 2240, 2241, 2242, 2241, 2243,
2036  2243, 2243, 2244, 2244, 2244, 2245, 720, 2245, 2246, 2246,
2037  2246, 719, 718, 717, 716, 715, 714, 713, 712, 711,
2038  710, 708, 707, 706, 705, 704, 703, 702, 701, 700,
2039  699, 697, 696, 695, 694, 693, 692, 691, 689, 688,
2040  687, 686, 685, 684, 683, 682, 681, 680, 678, 677,
2041  676, 675, 674, 673, 672, 671, 670, 669, 668, 667,
2042  666, 665, 663, 662, 661, 660, 659, 658, 657, 656,
2043  655, 654, 653, 652, 651, 650, 648, 647, 646, 645,
2044 
2045  644, 643, 642, 641, 640, 639, 638, 637, 636, 635,
2046  634, 632, 631, 630, 629, 628, 627, 626, 625, 624,
2047  623, 622, 621, 620, 619, 618, 617, 616, 615, 613,
2048  612, 609, 603, 602, 601, 600, 599, 598, 597, 595,
2049  594, 592, 591, 589, 588, 587, 586, 585, 584, 583,
2050  582, 581, 580, 579, 578, 577, 575, 574, 573, 572,
2051  571, 570, 569, 568, 567, 566, 565, 564, 563, 562,
2052  561, 560, 559, 558, 556, 554, 553, 552, 551, 550,
2053  549, 548, 547, 546, 545, 544, 543, 542, 541, 540,
2054  538, 537, 535, 534, 533, 532, 531, 530, 529, 527,
2055 
2056  526, 525, 524, 523, 522, 521, 520, 519, 518, 517,
2057  516, 515, 514, 513, 512, 510, 509, 508, 507, 505,
2058  504, 503, 502, 501, 500, 499, 498, 496, 495, 493,
2059  492, 489, 488, 487, 486, 485, 484, 482, 481, 480,
2060  479, 478, 477, 476, 475, 474, 473, 471, 467, 465,
2061  464, 462, 461, 460, 457, 456, 454, 453, 451, 450,
2062  449, 448, 447, 446, 445, 444, 443, 442, 441, 440,
2063  439, 438, 437, 436, 434, 433, 432, 431, 430, 429,
2064  428, 427, 425, 424, 422, 420, 419, 418, 417, 415,
2065  414, 413, 412, 411, 410, 409, 408, 407, 406, 405,
2066 
2067  404, 403, 402, 400, 397, 396, 395, 394, 393, 392,
2068  391, 389, 388, 387, 386, 385, 384, 383, 382, 381,
2069  380, 379, 378, 376, 375, 374, 373, 372, 371, 370,
2070  369, 368, 367, 366, 365, 364, 363, 362, 360, 359,
2071  358, 357, 356, 355, 354, 353, 352, 351, 350, 349,
2072  348, 347, 346, 345, 344, 343, 342, 341, 340, 338,
2073  335, 333, 330, 328, 325, 318, 317, 315, 314, 313,
2074  311, 310, 309, 307, 306, 305, 303, 302, 301, 300,
2075  299, 298, 297, 296, 295, 294, 293, 292, 291, 290,
2076  288, 287, 286, 285, 284, 283, 282, 281, 280, 279,
2077 
2078  278, 277, 275, 274, 272, 271, 270, 268, 266, 265,
2079  264, 263, 262, 261, 259, 258, 257, 256, 255, 254,
2080  253, 251, 250, 248, 247, 246, 245, 244, 243, 242,
2081  241, 240, 239, 238, 237, 236, 235, 234, 233, 232,
2082  231, 230, 229, 228, 227, 226, 223, 222, 221, 220,
2083  219, 218, 217, 216, 215, 214, 213, 207, 205, 203,
2084  199, 197, 195, 187, 186, 185, 184, 182, 180, 177,
2085  176, 175, 173, 172, 171, 167, 164, 162, 161, 160,
2086  158, 156, 155, 154, 153, 152, 151, 149, 148, 147,
2087  145, 144, 143, 142, 141, 140, 138, 137, 133, 132,
2088 
2089  131, 130, 129, 127, 126, 125, 123, 121, 119, 118,
2090  117, 113, 105, 103, 98, 97, 77, 72, 66, 58,
2091  49, 47, 43, 41, 39, 38, 24, 14, 11, 2238,
2092  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
2093  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
2094  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
2095  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
2096  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
2097  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
2098  2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
2099 
2100  2238, 2238, 2238
2101  } ;
2102 
2103 static yy_state_type yy_last_accepting_state;
2104 static char *yy_last_accepting_cpos;
2105 
2106 extern int yy_flex_debug;
2108 
2109 static const flex_int16_t yy_rule_linenum[226] =
2110  { 0,
2111  146, 148, 150, 155, 156, 161, 162, 163, 175, 178,
2112  183, 190, 199, 208, 217, 226, 235, 244, 253, 263,
2113  272, 281, 290, 299, 308, 317, 326, 335, 344, 353,
2114  362, 371, 380, 389, 398, 410, 419, 428, 437, 448,
2115  459, 470, 481, 492, 503, 514, 525, 536, 547, 558,
2116  569, 578, 587, 596, 607, 616, 627, 638, 649, 660,
2117  672, 684, 696, 707, 718, 727, 736, 745, 756, 765,
2118  774, 785, 796, 807, 818, 829, 840, 851, 862, 873,
2119  883, 894, 903, 913, 927, 943, 952, 961, 970, 979,
2120  988, 1010, 1032, 1041, 1051, 1060, 1071, 1080, 1089, 1098,
2121 
2122  1107, 1116, 1127, 1138, 1149, 1159, 1168, 1179, 1190, 1201,
2123  1212, 1224, 1233, 1242, 1251, 1260, 1269, 1278, 1287, 1296,
2124  1305, 1315, 1326, 1338, 1347, 1356, 1365, 1375, 1385, 1395,
2125  1405, 1415, 1425, 1434, 1444, 1453, 1462, 1471, 1480, 1490,
2126  1500, 1509, 1519, 1528, 1537, 1546, 1555, 1564, 1573, 1582,
2127  1591, 1600, 1609, 1618, 1627, 1636, 1645, 1654, 1663, 1672,
2128  1681, 1690, 1699, 1708, 1717, 1726, 1735, 1744, 1753, 1762,
2129  1771, 1780, 1789, 1798, 1807, 1816, 1825, 1834, 1846, 1858,
2130  1868, 1878, 1888, 1898, 1908, 1918, 1928, 1938, 1948, 1957,
2131  1966, 1975, 1984, 1995, 2006, 2019, 2032, 2045, 2054, 2063,
2132 
2133  2072, 2081, 2090, 2099, 2108, 2117, 2129, 2230, 2246, 2295,
2134  2303, 2318, 2319, 2320, 2321, 2322, 2323, 2325, 2343, 2356,
2135  2361, 2365, 2367, 2369, 2371
2136  } ;
2137 
2138 /* The intent behind this definition is that it'll catch
2139  * any uses of REJECT which flex missed.
2140  */
2141 #define REJECT reject_used_but_not_detected
2142 #define yymore() yymore_used_but_not_detected
2143 #define YY_MORE_ADJ 0
2144 #define YY_RESTORE_YY_MORE_OFFSET
2145 char *yytext;
2146 #line 1 "dhcp4_lexer.ll"
2147 /* Copyright (C) 2016-2023 Internet Systems Consortium, Inc. ("ISC")
2148 
2149  This Source Code Form is subject to the terms of the Mozilla Public
2150  License, v. 2.0. If a copy of the MPL was not distributed with this
2151  file, You can obtain one at http://mozilla.org/MPL/2.0/. */
2152 #line 8 "dhcp4_lexer.ll"
2153 
2154 /* Generated files do not make clang static analyser so happy */
2155 #ifndef __clang_analyzer__
2156 
2157 #include <cctype>
2158 #include <cerrno>
2159 #include <climits>
2160 #include <cstdlib>
2161 #include <string>
2162 #include <dhcp4/parser_context.h>
2163 #include <asiolink/io_address.h>
2164 #include <boost/lexical_cast.hpp>
2165 #include <exceptions/exceptions.h>
2166 
2167 /* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
2168 
2169 /* Work around an incompatibility in flex (at least versions
2170  2.5.31 through 2.5.33): it generates code that does
2171  not conform to C89. See Debian bug 333231
2172  <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
2173 # undef yywrap
2174 # define yywrap() 1
2175 
2176 namespace {
2177 
2178 bool start_token_flag = false;
2179 
2180 isc::dhcp::Parser4Context::ParserType start_token_value;
2181 unsigned int comment_start_line = 0;
2182 
2183 using namespace isc::dhcp;
2184 
2185 };
2186 
2187 /* To avoid the call to exit... oops! */
2188 #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
2189 #line 2189 "dhcp4_lexer.cc"
2190 /* noyywrap disables automatic rewinding for the next file to parse. Since we
2191  always parse only a single string, there's no need to do any wraps. And
2192  using yywrap requires linking with -lfl, which provides the default yywrap
2193  implementation that always returns 1 anyway. */
2194 /* nounput simplifies the lexer, by removing support for putting a character
2195  back into the input stream. We never use such capability anyway. */
2196 /* batch means that we'll never use the generated lexer interactively. */
2197 /* avoid to get static global variables to remain with C++. */
2198 /* in last resort %option reentrant */
2199 /* Enables debug mode. To see the debug messages, one needs to also set
2200  yy_flex_debug to 1, then the debug messages will be printed on stderr. */
2201 /* I have no idea what this option does, except it was specified in the bison
2202  examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
2203  be on the safe side and keep it. */
2204 #define YY_NO_INPUT 1
2205 
2206 /* These are not token expressions yet, just convenience expressions that
2207  can be used during actual token definitions. Note some can match
2208  incorrect inputs (e.g., IP addresses) which must be checked. */
2209 /* for errors */
2210 #line 95 "dhcp4_lexer.ll"
2211 /* This code run each time a pattern is matched. It updates the location
2212  by moving it ahead by yyleng bytes. yyleng specifies the length of the
2213  currently matched token. */
2214 #define YY_USER_ACTION driver.loc_.columns(yyleng);
2215 #line 2215 "dhcp4_lexer.cc"
2216 #line 2216 "dhcp4_lexer.cc"
2217 
2218 #define INITIAL 0
2219 #define COMMENT 1
2220 #define DIR_ENTER 2
2221 #define DIR_INCLUDE 3
2222 #define DIR_EXIT 4
2223 
2224 #ifndef YY_NO_UNISTD_H
2225 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2226  * down here because we want the user's section 1 to have been scanned first.
2227  * The user has a chance to override it with an option.
2228  */
2229 /* %if-c-only */
2230 #include <unistd.h>
2231 /* %endif */
2232 /* %if-c++-only */
2233 /* %endif */
2234 #endif
2235 
2236 #ifndef YY_EXTRA_TYPE
2237 #define YY_EXTRA_TYPE void *
2238 #endif
2239 
2240 /* %if-c-only Reentrant structure and macros (non-C++). */
2241 /* %if-reentrant */
2242 /* %if-c-only */
2243 
2244 static int yy_init_globals ( void );
2245 
2246 /* %endif */
2247 /* %if-reentrant */
2248 /* %endif */
2249 /* %endif End reentrant structures and macros. */
2250 
2251 /* Accessor methods to globals.
2252  These are made visible to non-reentrant scanners for convenience. */
2253 
2254 int yylex_destroy ( void );
2255 
2256 int yyget_debug ( void );
2257 
2258 void yyset_debug ( int debug_flag );
2259 
2260 YY_EXTRA_TYPE yyget_extra ( void );
2261 
2262 void yyset_extra ( YY_EXTRA_TYPE user_defined );
2263 
2264 FILE *yyget_in ( void );
2265 
2266 void yyset_in ( FILE * _in_str );
2267 
2268 FILE *yyget_out ( void );
2269 
2270 void yyset_out ( FILE * _out_str );
2271 
2272  int yyget_leng ( void );
2273 
2274 char *yyget_text ( void );
2275 
2276 int yyget_lineno ( void );
2277 
2278 void yyset_lineno ( int _line_number );
2279 
2280 /* %if-bison-bridge */
2281 /* %endif */
2282 
2283 /* Macros after this point can all be overridden by user definitions in
2284  * section 1.
2285  */
2286 
2287 #ifndef YY_SKIP_YYWRAP
2288 #ifdef __cplusplus
2289 extern "C" int yywrap ( void );
2290 #else
2291 extern int yywrap ( void );
2292 #endif
2293 #endif
2294 
2295 /* %not-for-header */
2296 #ifndef YY_NO_UNPUT
2297 
2298 #endif
2299 /* %ok-for-header */
2300 
2301 /* %endif */
2302 
2303 #ifndef yytext_ptr
2304 static void yy_flex_strncpy ( char *, const char *, int );
2305 #endif
2306 
2307 #ifdef YY_NEED_STRLEN
2308 static int yy_flex_strlen ( const char * );
2309 #endif
2310 
2311 #ifndef YY_NO_INPUT
2312 /* %if-c-only Standard (non-C++) definition */
2313 /* %not-for-header */
2314 #ifdef __cplusplus
2315 static int yyinput ( void );
2316 #else
2317 static int input ( void );
2318 #endif
2319 /* %ok-for-header */
2320 
2321 /* %endif */
2322 #endif
2323 
2324 /* %if-c-only */
2325 
2326 /* %endif */
2327 
2328 /* Amount of stuff to slurp up with each read. */
2329 #ifndef YY_READ_BUF_SIZE
2330 #ifdef __ia64__
2331 /* On IA-64, the buffer size is 16k, not 8k */
2332 #define YY_READ_BUF_SIZE 16384
2333 #else
2334 #define YY_READ_BUF_SIZE 8192
2335 #endif /* __ia64__ */
2336 #endif
2337 
2338 /* Copy whatever the last rule matched to the standard output. */
2339 #ifndef ECHO
2340 /* %if-c-only Standard (non-C++) definition */
2341 /* This used to be an fputs(), but since the string might contain NUL's,
2342  * we now use fwrite().
2343  */
2344 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2345 /* %endif */
2346 /* %if-c++-only C++ definition */
2347 /* %endif */
2348 #endif
2349 
2350 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2351  * is returned in "result".
2352  */
2353 #ifndef YY_INPUT
2354 #define YY_INPUT(buf,result,max_size) \
2355 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
2356  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2357  { \
2358  int c = '*'; \
2359  int n; \
2360  for ( n = 0; n < max_size && \
2361  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2362  buf[n] = (char) c; \
2363  if ( c == '\n' ) \
2364  buf[n++] = (char) c; \
2365  if ( c == EOF && ferror( yyin ) ) \
2366  YY_FATAL_ERROR( "input in flex scanner failed" ); \
2367  result = n; \
2368  } \
2369  else \
2370  { \
2371  errno=0; \
2372  while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2373  { \
2374  if( errno != EINTR) \
2375  { \
2376  YY_FATAL_ERROR( "input in flex scanner failed" ); \
2377  break; \
2378  } \
2379  errno=0; \
2380  clearerr(yyin); \
2381  } \
2382  }\
2383 \
2384 /* %if-c++-only C++ definition \ */\
2385 /* %endif */
2386 
2387 #endif
2388 
2389 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2390  * we don't want an extra ';' after the "return" because that will cause
2391  * some compilers to complain about unreachable statements.
2392  */
2393 #ifndef yyterminate
2394 #define yyterminate() return YY_NULL
2395 #endif
2396 
2397 /* Number of entries by which start-condition stack grows. */
2398 #ifndef YY_START_STACK_INCR
2399 #define YY_START_STACK_INCR 25
2400 #endif
2401 
2402 /* Report a fatal error. */
2403 #ifndef YY_FATAL_ERROR
2404 /* %if-c-only */
2405 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2406 /* %endif */
2407 /* %if-c++-only */
2408 /* %endif */
2409 #endif
2410 
2411 /* %if-tables-serialization structures and prototypes */
2412 /* %not-for-header */
2413 /* %ok-for-header */
2414 
2415 /* %not-for-header */
2416 /* %tables-yydmap generated elements */
2417 /* %endif */
2418 /* end tables serialization structures and prototypes */
2419 
2420 /* %ok-for-header */
2421 
2422 /* Default declaration of generated scanner - a define so the user can
2423  * easily add parameters.
2424  */
2425 #ifndef YY_DECL
2426 #define YY_DECL_IS_OURS 1
2427 /* %if-c-only Standard (non-C++) definition */
2428 
2429 extern int yylex (void);
2430 
2431 #define YY_DECL int yylex (void)
2432 /* %endif */
2433 /* %if-c++-only C++ definition */
2434 /* %endif */
2435 #endif /* !YY_DECL */
2436 
2437 /* Code executed at the beginning of each rule, after yytext and yyleng
2438  * have been set up.
2439  */
2440 #ifndef YY_USER_ACTION
2441 #define YY_USER_ACTION
2442 #endif
2443 
2444 /* Code executed at the end of each rule. */
2445 #ifndef YY_BREAK
2446 #define YY_BREAK /*LINTED*/break;
2447 #endif
2448 
2449 /* %% [6.0] YY_RULE_SETUP definition goes here */
2450 #define YY_RULE_SETUP \
2451  YY_USER_ACTION
2452 
2453 /* %not-for-header */
2457 {
2458  yy_state_type yy_current_state;
2459  char *yy_cp, *yy_bp;
2460  int yy_act;
2461 
2462  if ( !(yy_init) )
2463  {
2464  (yy_init) = 1;
2465 
2466 #ifdef YY_USER_INIT
2467  YY_USER_INIT;
2468 #endif
2469 
2470  if ( ! (yy_start) )
2471  (yy_start) = 1; /* first start state */
2472 
2473  if ( ! yyin )
2474 /* %if-c-only */
2475  yyin = stdin;
2476 /* %endif */
2477 /* %if-c++-only */
2478 /* %endif */
2479 
2480  if ( ! yyout )
2481 /* %if-c-only */
2482  yyout = stdout;
2483 /* %endif */
2484 /* %if-c++-only */
2485 /* %endif */
2486 
2487  if ( ! YY_CURRENT_BUFFER ) {
2491  }
2492 
2494  }
2495 
2496  {
2497 /* %% [7.0] user's declarations go here */
2498 #line 101 "dhcp4_lexer.ll"
2499 
2500 
2501 
2502 #line 105 "dhcp4_lexer.ll"
2503  /* This part of the code is copied over to the verbatim to the top
2504  of the generated yylex function. Explanation:
2505  http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
2506 
2507  /* Code run each time yylex is called. */
2508  driver.loc_.step();
2509 
2510  if (start_token_flag) {
2511  start_token_flag = false;
2512  switch (start_token_value) {
2513  case Parser4Context::PARSER_JSON:
2514  default:
2515  return isc::dhcp::Dhcp4Parser::make_TOPLEVEL_JSON(driver.loc_);
2516  case Parser4Context::PARSER_DHCP4:
2517  return isc::dhcp::Dhcp4Parser::make_TOPLEVEL_DHCP4(driver.loc_);
2518  case Parser4Context::SUBPARSER_DHCP4:
2519  return isc::dhcp::Dhcp4Parser::make_SUB_DHCP4(driver.loc_);
2520  case Parser4Context::PARSER_INTERFACES:
2522  case Parser4Context::PARSER_SUBNET4:
2523  return isc::dhcp::Dhcp4Parser::make_SUB_SUBNET4(driver.loc_);
2524  case Parser4Context::PARSER_POOL4:
2525  return isc::dhcp::Dhcp4Parser::make_SUB_POOL4(driver.loc_);
2526  case Parser4Context::PARSER_HOST_RESERVATION:
2528  case Parser4Context::PARSER_OPTION_DEFS:
2530  case Parser4Context::PARSER_OPTION_DEF:
2531  return isc::dhcp::Dhcp4Parser::make_SUB_OPTION_DEF(driver.loc_);
2532  case Parser4Context::PARSER_OPTION_DATA:
2534  case Parser4Context::PARSER_HOOKS_LIBRARY:
2536  case Parser4Context::PARSER_DHCP_DDNS:
2537  return isc::dhcp::Dhcp4Parser::make_SUB_DHCP_DDNS(driver.loc_);
2538  case Parser4Context::PARSER_CONFIG_CONTROL:
2540  }
2541  }
2542 
2543 
2544 #line 2544 "dhcp4_lexer.cc"
2545 
2546  while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
2547  {
2548 /* %% [8.0] yymore()-related code goes here */
2549  yy_cp = (yy_c_buf_p);
2550 
2551  /* Support of yytext. */
2552  *yy_cp = (yy_hold_char);
2553 
2554  /* yy_bp points to the position in yy_ch_buf of the start of
2555  * the current run.
2556  */
2557  yy_bp = yy_cp;
2558 
2559 /* %% [9.0] code to set up and find next match goes here */
2560  yy_current_state = (yy_start);
2561 yy_match:
2562  do
2563  {
2564  YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2565  if ( yy_accept[yy_current_state] )
2566  {
2567  (yy_last_accepting_state) = yy_current_state;
2568  (yy_last_accepting_cpos) = yy_cp;
2569  }
2570  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2571  {
2572  yy_current_state = (int) yy_def[yy_current_state];
2573  if ( yy_current_state >= 2239 )
2574  yy_c = yy_meta[yy_c];
2575  }
2576  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2577  ++yy_cp;
2578  }
2579  while ( yy_current_state != 2238 );
2580  yy_cp = (yy_last_accepting_cpos);
2581  yy_current_state = (yy_last_accepting_state);
2582 
2583 yy_find_action:
2584 /* %% [10.0] code to find the action number goes here */
2585  yy_act = yy_accept[yy_current_state];
2586 
2588 
2589 /* %% [11.0] code for yylineno update goes here */
2590 
2591 do_action: /* This label is used only to access EOF actions. */
2592 
2593 /* %% [12.0] debug code goes here */
2594  if ( yy_flex_debug )
2595  {
2596  if ( yy_act == 0 )
2597  fprintf( stderr, "--scanner backing up\n" );
2598  else if ( yy_act < 226 )
2599  fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
2600  (long)yy_rule_linenum[yy_act], yytext );
2601  else if ( yy_act == 226 )
2602  fprintf( stderr, "--accepting default rule (\"%s\")\n",
2603  yytext );
2604  else if ( yy_act == 227 )
2605  fprintf( stderr, "--(end of buffer or a NUL)\n" );
2606  else
2607  fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2608  }
2609 
2610  switch ( yy_act )
2611  { /* beginning of action switch */
2612 /* %% [13.0] actions go here */
2613  case 0: /* must back up */
2614  /* undo the effects of YY_DO_BEFORE_ACTION */
2615  *yy_cp = (yy_hold_char);
2616  yy_cp = (yy_last_accepting_cpos);
2617  yy_current_state = (yy_last_accepting_state);
2618  goto yy_find_action;
2619 
2620 case 1:
2622 #line 146 "dhcp4_lexer.ll"
2623 ;
2624  YY_BREAK
2625 case 2:
2627 #line 148 "dhcp4_lexer.ll"
2628 ;
2629  YY_BREAK
2630 case 3:
2632 #line 150 "dhcp4_lexer.ll"
2633 {
2634  BEGIN(COMMENT);
2635  comment_start_line = driver.loc_.end.line;;
2636 }
2637  YY_BREAK
2638 case 4:
2640 #line 155 "dhcp4_lexer.ll"
2641 BEGIN(INITIAL);
2642  YY_BREAK
2643 case 5:
2645 #line 156 "dhcp4_lexer.ll"
2646 ;
2647  YY_BREAK
2648 case YY_STATE_EOF(COMMENT):
2649 #line 157 "dhcp4_lexer.ll"
2650 {
2651  isc_throw(Dhcp4ParseError, "Comment not closed. (/* in line " << comment_start_line);
2652 }
2653  YY_BREAK
2654 case 6:
2656 #line 161 "dhcp4_lexer.ll"
2657 BEGIN(DIR_ENTER);
2658  YY_BREAK
2659 case 7:
2661 #line 162 "dhcp4_lexer.ll"
2663  YY_BREAK
2664 case 8:
2666 #line 163 "dhcp4_lexer.ll"
2667 {
2668  /* Include directive. */
2669 
2670  /* Extract the filename. */
2671  std::string tmp(yytext+1);
2672  tmp.resize(tmp.size() - 1);
2673 
2674  driver.includeFile(tmp);
2675 }
2676  YY_BREAK
2677 case YY_STATE_EOF(DIR_ENTER):
2679 case YY_STATE_EOF(DIR_EXIT):
2680 #line 172 "dhcp4_lexer.ll"
2681 {
2682  isc_throw(Dhcp4ParseError, "Directive not closed.");
2683 }
2684  YY_BREAK
2685 case 9:
2687 #line 175 "dhcp4_lexer.ll"
2688 BEGIN(INITIAL);
2689  YY_BREAK
2690 case 10:
2692 #line 178 "dhcp4_lexer.ll"
2693 {
2694  /* Ok, we found a with space. Let's ignore it and update loc variable. */
2695  driver.loc_.step();
2696 }
2697  YY_BREAK
2698 case 11:
2699 /* rule 11 can match eol */
2701 #line 183 "dhcp4_lexer.ll"
2702 {
2703  /* Newline found. Let's update the location and continue. */
2704  driver.loc_.lines(yyleng);
2705  driver.loc_.step();
2706 }
2707  YY_BREAK
2708 case 12:
2710 #line 190 "dhcp4_lexer.ll"
2711 {
2712  switch(driver.ctx_) {
2714  return isc::dhcp::Dhcp4Parser::make_DHCP4(driver.loc_);
2715  default:
2716  return isc::dhcp::Dhcp4Parser::make_STRING("Dhcp4", driver.loc_);
2717  }
2718 }
2719  YY_BREAK
2720 case 13:
2722 #line 199 "dhcp4_lexer.ll"
2723 {
2724  switch(driver.ctx_) {
2727  default:
2728  return isc::dhcp::Dhcp4Parser::make_STRING("interfaces-config", driver.loc_);
2729  }
2730 }
2731  YY_BREAK
2732 case 14:
2734 #line 208 "dhcp4_lexer.ll"
2735 {
2736  switch(driver.ctx_) {
2738  return isc::dhcp::Dhcp4Parser::make_SANITY_CHECKS(driver.loc_);
2739  default:
2740  return isc::dhcp::Dhcp4Parser::make_STRING("sanity-checks", driver.loc_);
2741  }
2742 }
2743  YY_BREAK
2744 case 15:
2746 #line 217 "dhcp4_lexer.ll"
2747 {
2748  switch(driver.ctx_) {
2750  return isc::dhcp::Dhcp4Parser::make_LEASE_CHECKS(driver.loc_);
2751  default:
2752  return isc::dhcp::Dhcp4Parser::make_STRING("lease-checks", driver.loc_);
2753  }
2754 }
2755  YY_BREAK
2756 case 16:
2758 #line 226 "dhcp4_lexer.ll"
2759 {
2760  switch(driver.ctx_) {
2763  default:
2764  return isc::dhcp::Dhcp4Parser::make_STRING("extended-info-checks", driver.loc_);
2765  }
2766 }
2767  YY_BREAK
2768 case 17:
2770 #line 235 "dhcp4_lexer.ll"
2771 {
2772  switch(driver.ctx_) {
2775  default:
2776  return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-socket-type", driver.loc_);
2777  }
2778 }
2779  YY_BREAK
2780 case 18:
2782 #line 244 "dhcp4_lexer.ll"
2783 {
2784  switch(driver.ctx_) {
2786  return isc::dhcp::Dhcp4Parser::make_RAW(driver.loc_);
2787  default:
2788  return isc::dhcp::Dhcp4Parser::make_STRING("raw", driver.loc_);
2789  }
2790 }
2791  YY_BREAK
2792 case 19:
2794 #line 253 "dhcp4_lexer.ll"
2795 {
2796  switch(driver.ctx_) {
2799  return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_);
2800  default:
2801  return isc::dhcp::Dhcp4Parser::make_STRING("udp", driver.loc_);
2802  }
2803 }
2804  YY_BREAK
2805 case 20:
2807 #line 263 "dhcp4_lexer.ll"
2808 {
2809  switch(driver.ctx_) {
2810  case Parser4Context::INTERFACES_CONFIG:
2812  default:
2813  return isc::dhcp::Dhcp4Parser::make_STRING("outbound-interface", driver.loc_);
2814  }
2815 }
2816  YY_BREAK
2817 case 21:
2819 #line 272 "dhcp4_lexer.ll"
2820 {
2821  switch(driver.ctx_) {
2822  case Parser4Context::OUTBOUND_INTERFACE:
2823  return Dhcp4Parser::make_SAME_AS_INBOUND(driver.loc_);
2824  default:
2825  return Dhcp4Parser::make_STRING("same-as-inbound", driver.loc_);
2826  }
2827 }
2828  YY_BREAK
2829 case 22:
2831 #line 281 "dhcp4_lexer.ll"
2832 {
2833  switch(driver.ctx_) {
2834  case Parser4Context::OUTBOUND_INTERFACE:
2835  return Dhcp4Parser::make_USE_ROUTING(driver.loc_);
2836  default:
2837  return Dhcp4Parser::make_STRING("use-routing", driver.loc_);
2838  }
2839 }
2840  YY_BREAK
2841 case 23:
2843 #line 290 "dhcp4_lexer.ll"
2844 {
2845  switch(driver.ctx_) {
2847  return isc::dhcp::Dhcp4Parser::make_INTERFACES(driver.loc_);
2848  default:
2849  return isc::dhcp::Dhcp4Parser::make_STRING("interfaces", driver.loc_);
2850  }
2851 }
2852  YY_BREAK
2853 case 24:
2855 #line 299 "dhcp4_lexer.ll"
2856 {
2857  switch(driver.ctx_) {
2859  return isc::dhcp::Dhcp4Parser::make_RE_DETECT(driver.loc_);
2860  default:
2861  return isc::dhcp::Dhcp4Parser::make_STRING("re-detect", driver.loc_);
2862  }
2863 }
2864  YY_BREAK
2865 case 25:
2867 #line 308 "dhcp4_lexer.ll"
2868 {
2869  switch(driver.ctx_) {
2872  default:
2873  return isc::dhcp::Dhcp4Parser::make_STRING("service-sockets-require-all", driver.loc_);
2874  }
2875 }
2876  YY_BREAK
2877 case 26:
2879 #line 317 "dhcp4_lexer.ll"
2880 {
2881  switch(driver.ctx_) {
2884  default:
2885  return isc::dhcp::Dhcp4Parser::make_STRING("service-sockets-retry-wait-time", driver.loc_);
2886  }
2887 }
2888  YY_BREAK
2889 case 27:
2891 #line 326 "dhcp4_lexer.ll"
2892 {
2893  switch(driver.ctx_) {
2896  default:
2897  return isc::dhcp::Dhcp4Parser::make_STRING("service-sockets-max-retries", driver.loc_);
2898  }
2899 }
2900  YY_BREAK
2901 case 28:
2903 #line 335 "dhcp4_lexer.ll"
2904 {
2905  switch(driver.ctx_) {
2907  return isc::dhcp::Dhcp4Parser::make_LEASE_DATABASE(driver.loc_);
2908  default:
2909  return isc::dhcp::Dhcp4Parser::make_STRING("lease-database", driver.loc_);
2910  }
2911 }
2912  YY_BREAK
2913 case 29:
2915 #line 344 "dhcp4_lexer.ll"
2916 {
2917  switch(driver.ctx_) {
2919  return isc::dhcp::Dhcp4Parser::make_HOSTS_DATABASE(driver.loc_);
2920  default:
2921  return isc::dhcp::Dhcp4Parser::make_STRING("hosts-database", driver.loc_);
2922  }
2923 }
2924  YY_BREAK
2925 case 30:
2927 #line 353 "dhcp4_lexer.ll"
2928 {
2929  switch(driver.ctx_) {
2932  default:
2933  return isc::dhcp::Dhcp4Parser::make_STRING("hosts-databases", driver.loc_);
2934  }
2935 }
2936  YY_BREAK
2937 case 31:
2939 #line 362 "dhcp4_lexer.ll"
2940 {
2941  switch(driver.ctx_) {
2943  return isc::dhcp::Dhcp4Parser::make_CONFIG_CONTROL(driver.loc_);
2944  default:
2945  return isc::dhcp::Dhcp4Parser::make_STRING("config-control", driver.loc_);
2946  }
2947 }
2948  YY_BREAK
2949 case 32:
2951 #line 371 "dhcp4_lexer.ll"
2952 {
2953  switch(driver.ctx_) {
2956  default:
2957  return isc::dhcp::Dhcp4Parser::make_STRING("config-databases", driver.loc_);
2958  }
2959 }
2960  YY_BREAK
2961 case 33:
2963 #line 380 "dhcp4_lexer.ll"
2964 {
2965  switch(driver.ctx_) {
2968  default:
2969  return isc::dhcp::Dhcp4Parser::make_STRING("config-fetch-wait-time", driver.loc_);
2970  }
2971 }
2972  YY_BREAK
2973 case 34:
2975 #line 389 "dhcp4_lexer.ll"
2976 {
2977  switch(driver.ctx_) {
2979  return isc::dhcp::Dhcp4Parser::make_READONLY(driver.loc_);
2980  default:
2981  return isc::dhcp::Dhcp4Parser::make_STRING("readonly", driver.loc_);
2982  }
2983 }
2984  YY_BREAK
2985 case 35:
2987 #line 398 "dhcp4_lexer.ll"
2988 {
2989  switch(driver.ctx_) {
2994  return isc::dhcp::Dhcp4Parser::make_TYPE(driver.loc_);
2995  default:
2996  return isc::dhcp::Dhcp4Parser::make_STRING("type", driver.loc_);
2997  }
2998 }
2999  YY_BREAK
3000 case 36:
3002 #line 410 "dhcp4_lexer.ll"
3003 {
3004  switch(driver.ctx_) {
3006  return isc::dhcp::Dhcp4Parser::make_MEMFILE(driver.loc_);
3007  default:
3008  return isc::dhcp::Dhcp4Parser::make_STRING("memfile", driver.loc_);
3009  }
3010 }
3011  YY_BREAK
3012 case 37:
3014 #line 419 "dhcp4_lexer.ll"
3015 {
3016  switch(driver.ctx_) {
3018  return isc::dhcp::Dhcp4Parser::make_MYSQL(driver.loc_);
3019  default:
3020  return isc::dhcp::Dhcp4Parser::make_STRING("mysql", driver.loc_);
3021  }
3022 }
3023  YY_BREAK
3024 case 38:
3026 #line 428 "dhcp4_lexer.ll"
3027 {
3028  switch(driver.ctx_) {
3030  return isc::dhcp::Dhcp4Parser::make_POSTGRESQL(driver.loc_);
3031  default:
3032  return isc::dhcp::Dhcp4Parser::make_STRING("postgresql", driver.loc_);
3033  }
3034 }
3035  YY_BREAK
3036 case 39:
3038 #line 437 "dhcp4_lexer.ll"
3039 {
3040  switch(driver.ctx_) {
3044  return isc::dhcp::Dhcp4Parser::make_USER(driver.loc_);
3045  default:
3046  return isc::dhcp::Dhcp4Parser::make_STRING("user", driver.loc_);
3047  }
3048 }
3049  YY_BREAK
3050 case 40:
3052 #line 448 "dhcp4_lexer.ll"
3053 {
3054  switch(driver.ctx_) {
3058  return isc::dhcp::Dhcp4Parser::make_PASSWORD(driver.loc_);
3059  default:
3060  return isc::dhcp::Dhcp4Parser::make_STRING("password", driver.loc_);
3061  }
3062 }
3063  YY_BREAK
3064 case 41:
3066 #line 459 "dhcp4_lexer.ll"
3067 {
3068  switch(driver.ctx_) {
3072  return isc::dhcp::Dhcp4Parser::make_HOST(driver.loc_);
3073  default:
3074  return isc::dhcp::Dhcp4Parser::make_STRING("host", driver.loc_);
3075  }
3076 }
3077  YY_BREAK
3078 case 42:
3080 #line 470 "dhcp4_lexer.ll"
3081 {
3082  switch(driver.ctx_) {
3086  return isc::dhcp::Dhcp4Parser::make_PORT(driver.loc_);
3087  default:
3088  return isc::dhcp::Dhcp4Parser::make_STRING("port", driver.loc_);
3089  }
3090 }
3091  YY_BREAK
3092 case 43:
3094 #line 481 "dhcp4_lexer.ll"
3095 {
3096  switch(driver.ctx_) {
3100  return isc::dhcp::Dhcp4Parser::make_PERSIST(driver.loc_);
3101  default:
3102  return isc::dhcp::Dhcp4Parser::make_STRING("persist", driver.loc_);
3103  }
3104 }
3105  YY_BREAK
3106 case 44:
3108 #line 492 "dhcp4_lexer.ll"
3109 {
3110  switch(driver.ctx_) {
3114  return isc::dhcp::Dhcp4Parser::make_LFC_INTERVAL(driver.loc_);
3115  default:
3116  return isc::dhcp::Dhcp4Parser::make_STRING("lfc-interval", driver.loc_);
3117  }
3118 }
3119  YY_BREAK
3120 case 45:
3122 #line 503 "dhcp4_lexer.ll"
3123 {
3124  switch(driver.ctx_) {
3129  default:
3130  return isc::dhcp::Dhcp4Parser::make_STRING("connect-timeout", driver.loc_);
3131  }
3132 }
3133  YY_BREAK
3134 case 46:
3136 #line 514 "dhcp4_lexer.ll"
3137 {
3138  switch(driver.ctx_) {
3142  return isc::dhcp::Dhcp4Parser::make_READ_TIMEOUT(driver.loc_);
3143  default:
3144  return isc::dhcp::Dhcp4Parser::make_STRING("read-timeout", driver.loc_);
3145  }
3146 }
3147  YY_BREAK
3148 case 47:
3150 #line 525 "dhcp4_lexer.ll"
3151 {
3152  switch(driver.ctx_) {
3156  return isc::dhcp::Dhcp4Parser::make_WRITE_TIMEOUT(driver.loc_);
3157  default:
3158  return isc::dhcp::Dhcp4Parser::make_STRING("write-timeout", driver.loc_);
3159  }
3160 }
3161  YY_BREAK
3162 case 48:
3164 #line 536 "dhcp4_lexer.ll"
3165 {
3166  switch(driver.ctx_) {
3171  default:
3172  return isc::dhcp::Dhcp4Parser::make_STRING("tcp-user-timeout", driver.loc_);
3173  }
3174 }
3175  YY_BREAK
3176 case 49:
3178 #line 547 "dhcp4_lexer.ll"
3179 {
3180  switch(driver.ctx_) {
3185  default:
3186  return isc::dhcp::Dhcp4Parser::make_STRING("reconnect-wait-time", driver.loc_);
3187  }
3188 }
3189  YY_BREAK
3190 case 50:
3192 #line 558 "dhcp4_lexer.ll"
3193 {
3194  switch(driver.ctx_) {
3198  return isc::dhcp::Dhcp4Parser::make_ON_FAIL(driver.loc_);
3199  default:
3200  return isc::dhcp::Dhcp4Parser::make_STRING("on-fail", driver.loc_);
3201  }
3202 }
3203  YY_BREAK
3204 case 51:
3206 #line 569 "dhcp4_lexer.ll"
3207 {
3208  switch(driver.ctx_) {
3211  default:
3212  return isc::dhcp::Dhcp4Parser::make_STRING("stop-retry-exit", driver.loc_);
3213  }
3214 }
3215  YY_BREAK
3216 case 52:
3218 #line 578 "dhcp4_lexer.ll"
3219 {
3220  switch(driver.ctx_) {
3223  default:
3224  return isc::dhcp::Dhcp4Parser::make_STRING("serve-retry-exit", driver.loc_);
3225  }
3226 }
3227  YY_BREAK
3228 case 53:
3230 #line 587 "dhcp4_lexer.ll"
3231 {
3232  switch(driver.ctx_) {
3235  default:
3236  return isc::dhcp::Dhcp4Parser::make_STRING("serve-retry-continue", driver.loc_);
3237  }
3238 }
3239  YY_BREAK
3240 case 54:
3242 #line 596 "dhcp4_lexer.ll"
3243 {
3244  switch(driver.ctx_) {
3249  default:
3250  return isc::dhcp::Dhcp4Parser::make_STRING("max-reconnect-tries", driver.loc_);
3251  }
3252 }
3253  YY_BREAK
3254 case 55:
3256 #line 607 "dhcp4_lexer.ll"
3257 {
3258  switch(driver.ctx_) {
3260  return isc::dhcp::Dhcp4Parser::make_MAX_ROW_ERRORS(driver.loc_);
3261  default:
3262  return isc::dhcp::Dhcp4Parser::make_STRING("max-row-errors", driver.loc_);
3263  }
3264 }
3265  YY_BREAK
3266 case 56:
3268 #line 616 "dhcp4_lexer.ll"
3269 {
3270  switch(driver.ctx_) {
3274  return isc::dhcp::Dhcp4Parser::make_TRUST_ANCHOR(driver.loc_);
3275  default:
3276  return isc::dhcp::Dhcp4Parser::make_STRING("trust-anchor", driver.loc_);
3277  }
3278 }
3279  YY_BREAK
3280 case 57:
3282 #line 627 "dhcp4_lexer.ll"
3283 {
3284  switch(driver.ctx_) {
3288  return isc::dhcp::Dhcp4Parser::make_CERT_FILE(driver.loc_);
3289  default:
3290  return isc::dhcp::Dhcp4Parser::make_STRING("cert-file", driver.loc_);
3291  }
3292 }
3293  YY_BREAK
3294 case 58:
3296 #line 638 "dhcp4_lexer.ll"
3297 {
3298  switch(driver.ctx_) {
3302  return isc::dhcp::Dhcp4Parser::make_KEY_FILE(driver.loc_);
3303  default:
3304  return isc::dhcp::Dhcp4Parser::make_STRING("key-file", driver.loc_);
3305  }
3306 }
3307  YY_BREAK
3308 case 59:
3310 #line 649 "dhcp4_lexer.ll"
3311 {
3312  switch(driver.ctx_) {
3316  return isc::dhcp::Dhcp4Parser::make_CIPHER_LIST(driver.loc_);
3317  default:
3318  return isc::dhcp::Dhcp4Parser::make_STRING("cipher-list", driver.loc_);
3319  }
3320 }
3321  YY_BREAK
3322 case 60:
3324 #line 660 "dhcp4_lexer.ll"
3325 {
3326  switch(driver.ctx_) {
3331  return isc::dhcp::Dhcp4Parser::make_VALID_LIFETIME(driver.loc_);
3332  default:
3333  return isc::dhcp::Dhcp4Parser::make_STRING("valid-lifetime", driver.loc_);
3334  }
3335 }
3336  YY_BREAK
3337 case 61:
3339 #line 672 "dhcp4_lexer.ll"
3340 {
3341  switch(driver.ctx_) {
3347  default:
3348  return isc::dhcp::Dhcp4Parser::make_STRING("min-valid-lifetime", driver.loc_);
3349  }
3350 }
3351  YY_BREAK
3352 case 62:
3354 #line 684 "dhcp4_lexer.ll"
3355 {
3356  switch(driver.ctx_) {
3362  default:
3363  return isc::dhcp::Dhcp4Parser::make_STRING("max-valid-lifetime", driver.loc_);
3364  }
3365 }
3366  YY_BREAK
3367 case 63:
3369 #line 696 "dhcp4_lexer.ll"
3370 {
3371  switch(driver.ctx_) {
3375  return isc::dhcp::Dhcp4Parser::make_RENEW_TIMER(driver.loc_);
3376  default:
3377  return isc::dhcp::Dhcp4Parser::make_STRING("renew-timer", driver.loc_);
3378  }
3379 }
3380  YY_BREAK
3381 case 64:
3383 #line 707 "dhcp4_lexer.ll"
3384 {
3385  switch(driver.ctx_) {
3389  return isc::dhcp::Dhcp4Parser::make_REBIND_TIMER(driver.loc_);
3390  default:
3391  return isc::dhcp::Dhcp4Parser::make_STRING("rebind-timer", driver.loc_);
3392  }
3393 }
3394  YY_BREAK
3395 case 65:
3397 #line 718 "dhcp4_lexer.ll"
3398 {
3399  switch(driver.ctx_) {
3402  default:
3403  return isc::dhcp::Dhcp4Parser::make_STRING("decline-probation-period", driver.loc_);
3404  }
3405 }
3406  YY_BREAK
3407 case 66:
3409 #line 727 "dhcp4_lexer.ll"
3410 {
3411  switch(driver.ctx_) {
3413  return isc::dhcp::Dhcp4Parser::make_SERVER_TAG(driver.loc_);
3414  default:
3415  return isc::dhcp::Dhcp4Parser::make_STRING("server-tag", driver.loc_);
3416  }
3417 }
3418  YY_BREAK
3419 case 67:
3421 #line 736 "dhcp4_lexer.ll"
3422 {
3423  switch(driver.ctx_) {
3426  default:
3427  return isc::dhcp::Dhcp4Parser::make_STRING("parked-packet-limit", driver.loc_);
3428  }
3429 }
3430  YY_BREAK
3431 case 68:
3433 #line 745 "dhcp4_lexer.ll"
3434 {
3435  switch(driver.ctx_) {
3439  return isc::dhcp::Dhcp4Parser::make_ALLOCATOR(driver.loc_);
3440  default:
3441  return isc::dhcp::Dhcp4Parser::make_STRING("allocator", driver.loc_);
3442  }
3443 }
3444  YY_BREAK
3445 case 69:
3447 #line 756 "dhcp4_lexer.ll"
3448 {
3449  switch(driver.ctx_) {
3452  default:
3453  return isc::dhcp::Dhcp4Parser::make_STRING("statistic-default-sample-count", driver.loc_);
3454  }
3455 }
3456  YY_BREAK
3457 case 70:
3459 #line 765 "dhcp4_lexer.ll"
3460 {
3461  switch(driver.ctx_) {
3464  default:
3465  return isc::dhcp::Dhcp4Parser::make_STRING("statistic-default-sample-age", driver.loc_);
3466  }
3467 }
3468  YY_BREAK
3469 case 71:
3471 #line 774 "dhcp4_lexer.ll"
3472 {
3473  switch(driver.ctx_) {
3478  default:
3479  return isc::dhcp::Dhcp4Parser::make_STRING("ddns-send-updates", driver.loc_);
3480  }
3481 }
3482  YY_BREAK
3483 case 72:
3485 #line 785 "dhcp4_lexer.ll"
3486 {
3487  switch(driver.ctx_) {
3492  default:
3493  return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-no-update", driver.loc_);
3494  }
3495 }
3496  YY_BREAK
3497 case 73:
3499 #line 796 "dhcp4_lexer.ll"
3500 {
3501  switch(driver.ctx_) {
3506  default:
3507  return isc::dhcp::Dhcp4Parser::make_STRING("ddns-override-client-update", driver.loc_);
3508  }
3509 }
3510  YY_BREAK
3511 case 74:
3513 #line 807 "dhcp4_lexer.ll"
3514 {
3515  switch(driver.ctx_) {
3520  default:
3521  return isc::dhcp::Dhcp4Parser::make_STRING("ddns-replace-client-name", driver.loc_);
3522  }
3523 }
3524  YY_BREAK
3525 case 75:
3527 #line 818 "dhcp4_lexer.ll"
3528 {
3529  switch(driver.ctx_) {
3534  default:
3535  return isc::dhcp::Dhcp4Parser::make_STRING("ddns-generated-prefix", driver.loc_);
3536  }
3537 }
3538  YY_BREAK
3539 case 76:
3541 #line 829 "dhcp4_lexer.ll"
3542 {
3543  switch(driver.ctx_) {
3548  default:
3549  return isc::dhcp::Dhcp4Parser::make_STRING("ddns-qualifying-suffix", driver.loc_);
3550  }
3551 }
3552  YY_BREAK
3553 case 77:
3555 #line 840 "dhcp4_lexer.ll"
3556 {
3557  switch(driver.ctx_) {
3562  default:
3563  return isc::dhcp::Dhcp4Parser::make_STRING("ddns-update-on-renew", driver.loc_);
3564  }
3565 }
3566  YY_BREAK
3567 case 78:
3569 #line 851 "dhcp4_lexer.ll"
3570 {
3571  switch(driver.ctx_) {
3576  default:
3577  return isc::dhcp::Dhcp4Parser::make_STRING("ddns-use-conflict-resolution", driver.loc_);
3578  }
3579 }
3580  YY_BREAK
3581 case 79:
3583 #line 862 "dhcp4_lexer.ll"
3584 {
3585  switch(driver.ctx_) {
3590  default:
3591  return isc::dhcp::Dhcp4Parser::make_STRING("ddns-ttl-percent", driver.loc_);
3592  }
3593 }
3594  YY_BREAK
3595 case 80:
3597 #line 873 "dhcp4_lexer.ll"
3598 {
3599  switch(driver.ctx_) {
3602  return isc::dhcp::Dhcp4Parser::make_SUBNET4(driver.loc_);
3603  default:
3604  return isc::dhcp::Dhcp4Parser::make_STRING("subnet4", driver.loc_);
3605  }
3606 }
3607  YY_BREAK
3608 case 81:
3610 #line 883 "dhcp4_lexer.ll"
3611 {
3612  switch(driver.ctx_) {
3617  default:
3618  return isc::dhcp::Dhcp4Parser::make_STRING("store-extended-info", driver.loc_);
3619  }
3620 }
3621  YY_BREAK
3622 case 82:
3624 #line 894 "dhcp4_lexer.ll"
3625 {
3626  switch (driver.ctx_) {
3629  default:
3630  return isc::dhcp::Dhcp4Parser::make_STRING("shared-networks", driver.loc_);
3631  }
3632 }
3633  YY_BREAK
3634 case 83:
3636 #line 903 "dhcp4_lexer.ll"
3637 {
3638  switch(driver.ctx_) {
3641  return isc::dhcp::Dhcp4Parser::make_OPTION_DEF(driver.loc_);
3642  default:
3643  return isc::dhcp::Dhcp4Parser::make_STRING("option-def", driver.loc_);
3644  }
3645 }
3646  YY_BREAK
3647 case 84:
3649 #line 913 "dhcp4_lexer.ll"
3650 {
3651  switch(driver.ctx_) {
3658  return isc::dhcp::Dhcp4Parser::make_OPTION_DATA(driver.loc_);
3659  default:
3660  return isc::dhcp::Dhcp4Parser::make_STRING("option-data", driver.loc_);
3661  }
3662 }
3663  YY_BREAK
3664 case 85:
3666 #line 927 "dhcp4_lexer.ll"
3667 {
3668  switch(driver.ctx_) {
3677  return isc::dhcp::Dhcp4Parser::make_NAME(driver.loc_);
3678  default:
3679  return isc::dhcp::Dhcp4Parser::make_STRING("name", driver.loc_);
3680  }
3681 }
3682  YY_BREAK
3683 case 86:
3685 #line 943 "dhcp4_lexer.ll"
3686 {
3687  switch(driver.ctx_) {
3689  return isc::dhcp::Dhcp4Parser::make_DATA(driver.loc_);
3690  default:
3691  return isc::dhcp::Dhcp4Parser::make_STRING("data", driver.loc_);
3692  }
3693 }
3694  YY_BREAK
3695 case 87:
3697 #line 952 "dhcp4_lexer.ll"
3698 {
3699  switch(driver.ctx_) {
3701  return isc::dhcp::Dhcp4Parser::make_ALWAYS_SEND(driver.loc_);
3702  default:
3703  return isc::dhcp::Dhcp4Parser::make_STRING("always-send", driver.loc_);
3704  }
3705 }
3706  YY_BREAK
3707 case 88:
3709 #line 961 "dhcp4_lexer.ll"
3710 {
3711  switch(driver.ctx_) {
3713  return isc::dhcp::Dhcp4Parser::make_NEVER_SEND(driver.loc_);
3714  default:
3715  return isc::dhcp::Dhcp4Parser::make_STRING("never-send", driver.loc_);
3716  }
3717 }
3718  YY_BREAK
3719 case 89:
3721 #line 970 "dhcp4_lexer.ll"
3722 {
3723  switch(driver.ctx_) {
3725  return isc::dhcp::Dhcp4Parser::make_POOLS(driver.loc_);
3726  default:
3727  return isc::dhcp::Dhcp4Parser::make_STRING("pools", driver.loc_);
3728  }
3729 }
3730  YY_BREAK
3731 case 90:
3733 #line 979 "dhcp4_lexer.ll"
3734 {
3735  switch(driver.ctx_) {
3737  return isc::dhcp::Dhcp4Parser::make_POOL(driver.loc_);
3738  default:
3739  return isc::dhcp::Dhcp4Parser::make_STRING("pool", driver.loc_);
3740  }
3741 }
3742  YY_BREAK
3743 case 91:
3745 #line 988 "dhcp4_lexer.ll"
3746 {
3747  switch(driver.ctx_) {
3762  return isc::dhcp::Dhcp4Parser::make_USER_CONTEXT(driver.loc_);
3763  default:
3764  return isc::dhcp::Dhcp4Parser::make_STRING("user-context", driver.loc_);
3765  }
3766 }
3767  YY_BREAK
3768 case 92:
3770 #line 1010 "dhcp4_lexer.ll"
3771 {
3772  switch(driver.ctx_) {
3787  return isc::dhcp::Dhcp4Parser::make_COMMENT(driver.loc_);
3788  default:
3789  return isc::dhcp::Dhcp4Parser::make_STRING("comment", driver.loc_);
3790  }
3791 }
3792  YY_BREAK
3793 case 93:
3795 #line 1032 "dhcp4_lexer.ll"
3796 {
3797  switch(driver.ctx_) {
3799  return isc::dhcp::Dhcp4Parser::make_SUBNET(driver.loc_);
3800  default:
3801  return isc::dhcp::Dhcp4Parser::make_STRING("subnet", driver.loc_);
3802  }
3803 }
3804  YY_BREAK
3805 case 94:
3807 #line 1041 "dhcp4_lexer.ll"
3808 {
3809  switch(driver.ctx_) {
3812  return isc::dhcp::Dhcp4Parser::make_INTERFACE(driver.loc_);
3813  default:
3814  return isc::dhcp::Dhcp4Parser::make_STRING("interface", driver.loc_);
3815  }
3816 }
3817  YY_BREAK
3818 case 95:
3820 #line 1051 "dhcp4_lexer.ll"
3821 {
3822  switch(driver.ctx_) {
3824  return isc::dhcp::Dhcp4Parser::make_ID(driver.loc_);
3825  default:
3826  return isc::dhcp::Dhcp4Parser::make_STRING("id", driver.loc_);
3827  }
3828 }
3829  YY_BREAK
3830 case 96:
3832 #line 1060 "dhcp4_lexer.ll"
3833 {
3834  switch(driver.ctx_) {
3839  default:
3840  return isc::dhcp::Dhcp4Parser::make_STRING("reservation-mode", driver.loc_);
3841  }
3842 }
3843  YY_BREAK
3844 case 97:
3846 #line 1071 "dhcp4_lexer.ll"
3847 {
3848  switch(driver.ctx_) {
3850  return isc::dhcp::Dhcp4Parser::make_DISABLED(driver.loc_);
3851  default:
3852  return isc::dhcp::Dhcp4Parser::make_STRING("disabled", driver.loc_);
3853  }
3854 }
3855  YY_BREAK
3856 case 98:
3858 #line 1080 "dhcp4_lexer.ll"
3859 {
3860  switch(driver.ctx_) {
3862  return isc::dhcp::Dhcp4Parser::make_DISABLED(driver.loc_);
3863  default:
3864  return isc::dhcp::Dhcp4Parser::make_STRING("off", driver.loc_);
3865  }
3866 }
3867  YY_BREAK
3868 case 99:
3870 #line 1089 "dhcp4_lexer.ll"
3871 {
3872  switch(driver.ctx_) {
3874  return isc::dhcp::Dhcp4Parser::make_OUT_OF_POOL(driver.loc_);
3875  default:
3876  return isc::dhcp::Dhcp4Parser::make_STRING("out-of-pool", driver.loc_);
3877  }
3878 }
3879  YY_BREAK
3880 case 100:
3882 #line 1098 "dhcp4_lexer.ll"
3883 {
3884  switch(driver.ctx_) {
3886  return isc::dhcp::Dhcp4Parser::make_GLOBAL(driver.loc_);
3887  default:
3888  return isc::dhcp::Dhcp4Parser::make_STRING("global", driver.loc_);
3889  }
3890 }
3891  YY_BREAK
3892 case 101:
3894 #line 1107 "dhcp4_lexer.ll"
3895 {
3896  switch(driver.ctx_) {
3898  return isc::dhcp::Dhcp4Parser::make_ALL(driver.loc_);
3899  default:
3900  return isc::dhcp::Dhcp4Parser::make_STRING("all", driver.loc_);
3901  }
3902 }
3903  YY_BREAK
3904 case 102:
3906 #line 1116 "dhcp4_lexer.ll"
3907 {
3908  switch(driver.ctx_) {
3913  default:
3914  return isc::dhcp::Dhcp4Parser::make_STRING("reservations-global", driver.loc_);
3915  }
3916 }
3917  YY_BREAK
3918 case 103:
3920 #line 1127 "dhcp4_lexer.ll"
3921 {
3922  switch(driver.ctx_) {
3927  default:
3928  return isc::dhcp::Dhcp4Parser::make_STRING("reservations-in-subnet", driver.loc_);
3929  }
3930 }
3931  YY_BREAK
3932 case 104:
3934 #line 1138 "dhcp4_lexer.ll"
3935 {
3936  switch(driver.ctx_) {
3941  default:
3942  return isc::dhcp::Dhcp4Parser::make_STRING("reservations-out-of-pool", driver.loc_);
3943  }
3944 }
3945  YY_BREAK
3946 case 105:
3948 #line 1149 "dhcp4_lexer.ll"
3949 {
3950  switch(driver.ctx_) {
3953  return isc::dhcp::Dhcp4Parser::make_CODE(driver.loc_);
3954  default:
3955  return isc::dhcp::Dhcp4Parser::make_STRING("code", driver.loc_);
3956  }
3957 }
3958  YY_BREAK
3959 case 106:
3961 #line 1159 "dhcp4_lexer.ll"
3962 {
3963  switch(driver.ctx_) {
3966  default:
3967  return isc::dhcp::Dhcp4Parser::make_STRING("host-reservation-identifiers", driver.loc_);
3968  }
3969 }
3970  YY_BREAK
3971 case 107:
3973 #line 1168 "dhcp4_lexer.ll"
3974 {
3975  switch(driver.ctx_) {
3980  default:
3981  return isc::dhcp::Dhcp4Parser::make_STRING("calculate-tee-times", driver.loc_);
3982  }
3983 }
3984  YY_BREAK
3985 case 108:
3987 #line 1179 "dhcp4_lexer.ll"
3988 {
3989  switch(driver.ctx_) {
3993  return isc::dhcp::Dhcp4Parser::make_T1_PERCENT(driver.loc_);
3994  default:
3995  return isc::dhcp::Dhcp4Parser::make_STRING("t1-percent", driver.loc_);
3996  }
3997 }
3998  YY_BREAK
3999 case 109:
4001 #line 1190 "dhcp4_lexer.ll"
4002 {
4003  switch(driver.ctx_) {
4007  return isc::dhcp::Dhcp4Parser::make_T2_PERCENT(driver.loc_);
4008  default:
4009  return isc::dhcp::Dhcp4Parser::make_STRING("t2-percent", driver.loc_);
4010  }
4011 }
4012  YY_BREAK
4013 case 110:
4015 #line 1201 "dhcp4_lexer.ll"
4016 {
4017  switch(driver.ctx_) {
4022  default:
4023  return isc::dhcp::Dhcp4Parser::make_STRING("cache-threshold", driver.loc_);
4024  }
4025 }
4026  YY_BREAK
4027 case 111:
4029 #line 1212 "dhcp4_lexer.ll"
4030 {
4031  switch(driver.ctx_) {
4035  return isc::dhcp::Dhcp4Parser::make_CACHE_MAX_AGE(driver.loc_);
4036  default:
4037  return isc::dhcp::Dhcp4Parser::make_STRING("cache-max-age", driver.loc_);
4038  }
4039 }
4040  YY_BREAK
4041 case 112:
4043 #line 1224 "dhcp4_lexer.ll"
4044 {
4045  switch(driver.ctx_) {
4047  return isc::dhcp::Dhcp4Parser::make_LOGGERS(driver.loc_);
4048  default:
4049  return isc::dhcp::Dhcp4Parser::make_STRING("loggers", driver.loc_);
4050  }
4051 }
4052  YY_BREAK
4053 case 113:
4055 #line 1233 "dhcp4_lexer.ll"
4056 {
4057  switch(driver.ctx_) {
4059  return isc::dhcp::Dhcp4Parser::make_OUTPUT_OPTIONS(driver.loc_);
4060  default:
4061  return isc::dhcp::Dhcp4Parser::make_STRING("output_options", driver.loc_);
4062  }
4063 }
4064  YY_BREAK
4065 case 114:
4067 #line 1242 "dhcp4_lexer.ll"
4068 {
4069  switch(driver.ctx_) {
4071  return isc::dhcp::Dhcp4Parser::make_OUTPUT(driver.loc_);
4072  default:
4073  return isc::dhcp::Dhcp4Parser::make_STRING("output", driver.loc_);
4074  }
4075 }
4076  YY_BREAK
4077 case 115:
4079 #line 1251 "dhcp4_lexer.ll"
4080 {
4081  switch(driver.ctx_) {
4083  return isc::dhcp::Dhcp4Parser::make_DEBUGLEVEL(driver.loc_);
4084  default:
4085  return isc::dhcp::Dhcp4Parser::make_STRING("debuglevel", driver.loc_);
4086  }
4087 }
4088  YY_BREAK
4089 case 116:
4091 #line 1260 "dhcp4_lexer.ll"
4092 {
4093  switch(driver.ctx_) {
4095  return isc::dhcp::Dhcp4Parser::make_FLUSH(driver.loc_);
4096  default:
4097  return isc::dhcp::Dhcp4Parser::make_STRING("flush", driver.loc_);
4098  }
4099 }
4100  YY_BREAK
4101 case 117:
4103 #line 1269 "dhcp4_lexer.ll"
4104 {
4105  switch(driver.ctx_) {
4107  return isc::dhcp::Dhcp4Parser::make_MAXSIZE(driver.loc_);
4108  default:
4109  return isc::dhcp::Dhcp4Parser::make_STRING("maxsize", driver.loc_);
4110  }
4111 }
4112  YY_BREAK
4113 case 118:
4115 #line 1278 "dhcp4_lexer.ll"
4116 {
4117  switch(driver.ctx_) {
4119  return isc::dhcp::Dhcp4Parser::make_MAXVER(driver.loc_);
4120  default:
4121  return isc::dhcp::Dhcp4Parser::make_STRING("maxver", driver.loc_);
4122  }
4123 }
4124  YY_BREAK
4125 case 119:
4127 #line 1287 "dhcp4_lexer.ll"
4128 {
4129  switch(driver.ctx_) {
4131  return isc::dhcp::Dhcp4Parser::make_PATTERN(driver.loc_);
4132  default:
4133  return isc::dhcp::Dhcp4Parser::make_STRING("pattern", driver.loc_);
4134  }
4135 }
4136  YY_BREAK
4137 case 120:
4139 #line 1296 "dhcp4_lexer.ll"
4140 {
4141  switch(driver.ctx_) {
4143  return isc::dhcp::Dhcp4Parser::make_SEVERITY(driver.loc_);
4144  default:
4145  return isc::dhcp::Dhcp4Parser::make_STRING("severity", driver.loc_);
4146  }
4147 }
4148  YY_BREAK
4149 case 121:
4151 #line 1305 "dhcp4_lexer.ll"
4152 {
4153  switch(driver.ctx_) {
4156  return isc::dhcp::Dhcp4Parser::make_CLIENT_CLASSES(driver.loc_);
4157  default:
4158  return isc::dhcp::Dhcp4Parser::make_STRING("client-classes", driver.loc_);
4159  }
4160 }
4161  YY_BREAK
4162 case 122:
4164 #line 1315 "dhcp4_lexer.ll"
4165 {
4166  switch(driver.ctx_) {
4171  default:
4172  return isc::dhcp::Dhcp4Parser::make_STRING("require-client-classes", driver.loc_);
4173  }
4174 }
4175  YY_BREAK
4176 case 123:
4178 #line 1326 "dhcp4_lexer.ll"
4179 {
4180  switch(driver.ctx_) {
4185  return isc::dhcp::Dhcp4Parser::make_CLIENT_CLASS(driver.loc_);
4186  default:
4187  return isc::dhcp::Dhcp4Parser::make_STRING("client-class", driver.loc_);
4188  }
4189 }
4190  YY_BREAK
4191 case 124:
4193 #line 1338 "dhcp4_lexer.ll"
4194 {
4195  switch(driver.ctx_) {
4197  return isc::dhcp::Dhcp4Parser::make_TEST(driver.loc_);
4198  default:
4199  return isc::dhcp::Dhcp4Parser::make_STRING("test", driver.loc_);
4200  }
4201 }
4202  YY_BREAK
4203 case 125:
4205 #line 1347 "dhcp4_lexer.ll"
4206 {
4207  switch(driver.ctx_) {
4209  return isc::dhcp::Dhcp4Parser::make_TEMPLATE_TEST(driver.loc_);
4210  default:
4211  return isc::dhcp::Dhcp4Parser::make_STRING("template-test", driver.loc_);
4212  }
4213 }
4214  YY_BREAK
4215 case 126:
4217 #line 1356 "dhcp4_lexer.ll"
4218 {
4219  switch(driver.ctx_) {
4222  default:
4223  return isc::dhcp::Dhcp4Parser::make_STRING("only-if-required", driver.loc_);
4224  }
4225 }
4226  YY_BREAK
4227 case 127:
4229 #line 1365 "dhcp4_lexer.ll"
4230 {
4231  switch(driver.ctx_) {
4234  return isc::dhcp::Dhcp4Parser::make_RESERVATIONS(driver.loc_);
4235  default:
4236  return isc::dhcp::Dhcp4Parser::make_STRING("reservations", driver.loc_);
4237  }
4238 }
4239  YY_BREAK
4240 case 128:
4242 #line 1375 "dhcp4_lexer.ll"
4243 {
4244  switch(driver.ctx_) {
4247  return isc::dhcp::Dhcp4Parser::make_DUID(driver.loc_);
4248  default:
4249  return isc::dhcp::Dhcp4Parser::make_STRING("duid", driver.loc_);
4250  }
4251 }
4252  YY_BREAK
4253 case 129:
4255 #line 1385 "dhcp4_lexer.ll"
4256 {
4257  switch(driver.ctx_) {
4260  return isc::dhcp::Dhcp4Parser::make_HW_ADDRESS(driver.loc_);
4261  default:
4262  return isc::dhcp::Dhcp4Parser::make_STRING("hw-address", driver.loc_);
4263  }
4264 }
4265  YY_BREAK
4266 case 130:
4268 #line 1395 "dhcp4_lexer.ll"
4269 {
4270  switch(driver.ctx_) {
4273  return isc::dhcp::Dhcp4Parser::make_CLIENT_ID(driver.loc_);
4274  default:
4275  return isc::dhcp::Dhcp4Parser::make_STRING("client-id", driver.loc_);
4276  }
4277 }
4278  YY_BREAK
4279 case 131:
4281 #line 1405 "dhcp4_lexer.ll"
4282 {
4283  switch(driver.ctx_) {
4286  return isc::dhcp::Dhcp4Parser::make_CIRCUIT_ID(driver.loc_);
4287  default:
4288  return isc::dhcp::Dhcp4Parser::make_STRING("circuit-id", driver.loc_);
4289  }
4290 }
4291  YY_BREAK
4292 case 132:
4294 #line 1415 "dhcp4_lexer.ll"
4295 {
4296  switch(driver.ctx_) {
4299  return isc::dhcp::Dhcp4Parser::make_FLEX_ID(driver.loc_);
4300  default:
4301  return isc::dhcp::Dhcp4Parser::make_STRING("flex-id", driver.loc_);
4302  }
4303 }
4304  YY_BREAK
4305 case 133:
4307 #line 1425 "dhcp4_lexer.ll"
4308 {
4309  switch(driver.ctx_) {
4311  return isc::dhcp::Dhcp4Parser::make_HOSTNAME(driver.loc_);
4312  default:
4313  return isc::dhcp::Dhcp4Parser::make_STRING("hostname", driver.loc_);
4314  }
4315 }
4316  YY_BREAK
4317 case 134:
4319 #line 1434 "dhcp4_lexer.ll"
4320 {
4321  switch(driver.ctx_) {
4324  return isc::dhcp::Dhcp4Parser::make_SPACE(driver.loc_);
4325  default:
4326  return isc::dhcp::Dhcp4Parser::make_STRING("space", driver.loc_);
4327  }
4328 }
4329  YY_BREAK
4330 case 135:
4332 #line 1444 "dhcp4_lexer.ll"
4333 {
4334  switch(driver.ctx_) {
4336  return isc::dhcp::Dhcp4Parser::make_CSV_FORMAT(driver.loc_);
4337  default:
4338  return isc::dhcp::Dhcp4Parser::make_STRING("csv-format", driver.loc_);
4339  }
4340 }
4341  YY_BREAK
4342 case 136:
4344 #line 1453 "dhcp4_lexer.ll"
4345 {
4346  switch(driver.ctx_) {
4348  return isc::dhcp::Dhcp4Parser::make_RECORD_TYPES(driver.loc_);
4349  default:
4350  return isc::dhcp::Dhcp4Parser::make_STRING("record-types", driver.loc_);
4351  }
4352 }
4353  YY_BREAK
4354 case 137:
4356 #line 1462 "dhcp4_lexer.ll"
4357 {
4358  switch(driver.ctx_) {
4360  return isc::dhcp::Dhcp4Parser::make_ENCAPSULATE(driver.loc_);
4361  default:
4362  return isc::dhcp::Dhcp4Parser::make_STRING("encapsulate", driver.loc_);
4363  }
4364 }
4365  YY_BREAK
4366 case 138:
4368 #line 1471 "dhcp4_lexer.ll"
4369 {
4370  switch(driver.ctx_) {
4372  return isc::dhcp::Dhcp4Parser::make_ARRAY(driver.loc_);
4373  default:
4374  return isc::dhcp::Dhcp4Parser::make_STRING("array", driver.loc_);
4375  }
4376 }
4377  YY_BREAK
4378 case 139:
4380 #line 1480 "dhcp4_lexer.ll"
4381 {
4382  switch(driver.ctx_) {
4385  return isc::dhcp::Dhcp4Parser::make_RELAY(driver.loc_);
4386  default:
4387  return isc::dhcp::Dhcp4Parser::make_STRING("relay", driver.loc_);
4388  }
4389 }
4390  YY_BREAK
4391 case 140:
4393 #line 1490 "dhcp4_lexer.ll"
4394 {
4395  switch(driver.ctx_) {
4398  return isc::dhcp::Dhcp4Parser::make_IP_ADDRESS(driver.loc_);
4399  default:
4400  return isc::dhcp::Dhcp4Parser::make_STRING("ip-address", driver.loc_);
4401  }
4402 }
4403  YY_BREAK
4404 case 141:
4406 #line 1500 "dhcp4_lexer.ll"
4407 {
4408  switch(driver.ctx_) {
4410  return isc::dhcp::Dhcp4Parser::make_IP_ADDRESSES(driver.loc_);
4411  default:
4412  return isc::dhcp::Dhcp4Parser::make_STRING("ip-addresses", driver.loc_);
4413  }
4414 }
4415  YY_BREAK
4416 case 142:
4418 #line 1509 "dhcp4_lexer.ll"
4419 {
4420  switch(driver.ctx_) {
4423  default:
4424  return isc::dhcp::Dhcp4Parser::make_STRING("hooks-libraries", driver.loc_);
4425  }
4426 }
4427  YY_BREAK
4428 case 143:
4430 #line 1519 "dhcp4_lexer.ll"
4431 {
4432  switch(driver.ctx_) {
4434  return isc::dhcp::Dhcp4Parser::make_PARAMETERS(driver.loc_);
4435  default:
4436  return isc::dhcp::Dhcp4Parser::make_STRING("parameters", driver.loc_);
4437  }
4438 }
4439  YY_BREAK
4440 case 144:
4442 #line 1528 "dhcp4_lexer.ll"
4443 {
4444  switch(driver.ctx_) {
4446  return isc::dhcp::Dhcp4Parser::make_LIBRARY(driver.loc_);
4447  default:
4448  return isc::dhcp::Dhcp4Parser::make_STRING("library", driver.loc_);
4449  }
4450 }
4451  YY_BREAK
4452 case 145:
4454 #line 1537 "dhcp4_lexer.ll"
4455 {
4456  switch(driver.ctx_) {
4459  default:
4460  return isc::dhcp::Dhcp4Parser::make_STRING("expired-leases-processing", driver.loc_);
4461  }
4462 }
4463  YY_BREAK
4464 case 146:
4466 #line 1546 "dhcp4_lexer.ll"
4467 {
4468  switch(driver.ctx_) {
4471  default:
4472  return isc::dhcp::Dhcp4Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
4473  }
4474 }
4475  YY_BREAK
4476 case 147:
4478 #line 1555 "dhcp4_lexer.ll"
4479 {
4480  switch(driver.ctx_) {
4483  default:
4484  return isc::dhcp::Dhcp4Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
4485  }
4486 }
4487  YY_BREAK
4488 case 148:
4490 #line 1564 "dhcp4_lexer.ll"
4491 {
4492  switch(driver.ctx_) {
4495  default:
4496  return isc::dhcp::Dhcp4Parser::make_STRING("hold-reclaimed-time", driver.loc_);
4497  }
4498 }
4499  YY_BREAK
4500 case 149:
4502 #line 1573 "dhcp4_lexer.ll"
4503 {
4504  switch(driver.ctx_) {
4507  default:
4508  return isc::dhcp::Dhcp4Parser::make_STRING("max-reclaim-leases", driver.loc_);
4509  }
4510 }
4511  YY_BREAK
4512 case 150:
4514 #line 1582 "dhcp4_lexer.ll"
4515 {
4516  switch(driver.ctx_) {
4519  default:
4520  return isc::dhcp::Dhcp4Parser::make_STRING("max-reclaim-time", driver.loc_);
4521  }
4522 }
4523  YY_BREAK
4524 case 151:
4526 #line 1591 "dhcp4_lexer.ll"
4527 {
4528  switch(driver.ctx_) {
4531  default:
4532  return isc::dhcp::Dhcp4Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
4533  }
4534 }
4535  YY_BREAK
4536 case 152:
4538 #line 1600 "dhcp4_lexer.ll"
4539 {
4540  switch(driver.ctx_) {
4542  return isc::dhcp::Dhcp4Parser::make_DHCP4O6_PORT(driver.loc_);
4543  default:
4544  return isc::dhcp::Dhcp4Parser::make_STRING("dhcp4o6-port", driver.loc_);
4545  }
4546 }
4547  YY_BREAK
4548 case 153:
4550 #line 1609 "dhcp4_lexer.ll"
4551 {
4552  switch(driver.ctx_) {
4555  default:
4556  return isc::dhcp::Dhcp4Parser::make_STRING("multi-threading", driver.loc_);
4557  }
4558 }
4559  YY_BREAK
4560 case 154:
4562 #line 1618 "dhcp4_lexer.ll"
4563 {
4564  switch(driver.ctx_) {
4567  default:
4568  return isc::dhcp::Dhcp4Parser::make_STRING("enable-multi-threading", driver.loc_);
4569  }
4570 }
4571  YY_BREAK
4572 case 155:
4574 #line 1627 "dhcp4_lexer.ll"
4575 {
4576  switch(driver.ctx_) {
4579  default:
4580  return isc::dhcp::Dhcp4Parser::make_STRING("thread-pool-size", driver.loc_);
4581  }
4582 }
4583  YY_BREAK
4584 case 156:
4586 #line 1636 "dhcp4_lexer.ll"
4587 {
4588  switch(driver.ctx_) {
4591  default:
4592  return isc::dhcp::Dhcp4Parser::make_STRING("packet-queue-size", driver.loc_);
4593  }
4594 }
4595  YY_BREAK
4596 case 157:
4598 #line 1645 "dhcp4_lexer.ll"
4599 {
4600  switch(driver.ctx_) {
4602  return isc::dhcp::Dhcp4Parser::make_CONTROL_SOCKET(driver.loc_);
4603  default:
4604  return isc::dhcp::Dhcp4Parser::make_STRING("control-socket", driver.loc_);
4605  }
4606 }
4607  YY_BREAK
4608 case 158:
4610 #line 1654 "dhcp4_lexer.ll"
4611 {
4612  switch(driver.ctx_) {
4614  return isc::dhcp::Dhcp4Parser::make_SOCKET_TYPE(driver.loc_);
4615  default:
4616  return isc::dhcp::Dhcp4Parser::make_STRING("socket-type", driver.loc_);
4617  }
4618 }
4619  YY_BREAK
4620 case 159:
4622 #line 1663 "dhcp4_lexer.ll"
4623 {
4624  switch(driver.ctx_) {
4626  return isc::dhcp::Dhcp4Parser::make_SOCKET_NAME(driver.loc_);
4627  default:
4628  return isc::dhcp::Dhcp4Parser::make_STRING("socket-name", driver.loc_);
4629  }
4630 }
4631  YY_BREAK
4632 case 160:
4634 #line 1672 "dhcp4_lexer.ll"
4635 {
4636  switch(driver.ctx_) {
4639  default:
4640  return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-queue-control", driver.loc_);
4641  }
4642 }
4643  YY_BREAK
4644 case 161:
4646 #line 1681 "dhcp4_lexer.ll"
4647 {
4648  switch(driver.ctx_) {
4650  return isc::dhcp::Dhcp4Parser::make_ENABLE_QUEUE(driver.loc_);
4651  default:
4652  return isc::dhcp::Dhcp4Parser::make_STRING("enable-queue", driver.loc_);
4653  }
4654 }
4655  YY_BREAK
4656 case 162:
4658 #line 1690 "dhcp4_lexer.ll"
4659 {
4660  switch(driver.ctx_) {
4662  return isc::dhcp::Dhcp4Parser::make_QUEUE_TYPE(driver.loc_);
4663  default:
4664  return isc::dhcp::Dhcp4Parser::make_STRING("queue-type", driver.loc_);
4665  }
4666 }
4667  YY_BREAK
4668 case 163:
4670 #line 1699 "dhcp4_lexer.ll"
4671 {
4672  switch(driver.ctx_) {
4674  return isc::dhcp::Dhcp4Parser::make_CAPACITY(driver.loc_);
4675  default:
4676  return isc::dhcp::Dhcp4Parser::make_STRING("capacity", driver.loc_);
4677  }
4678 }
4679  YY_BREAK
4680 case 164:
4682 #line 1708 "dhcp4_lexer.ll"
4683 {
4684  switch(driver.ctx_) {
4686  return isc::dhcp::Dhcp4Parser::make_DHCP_DDNS(driver.loc_);
4687  default:
4688  return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-ddns", driver.loc_);
4689  }
4690 }
4691  YY_BREAK
4692 case 165:
4694 #line 1717 "dhcp4_lexer.ll"
4695 {
4696  switch(driver.ctx_) {
4698  return isc::dhcp::Dhcp4Parser::make_ENABLE_UPDATES(driver.loc_);
4699  default:
4700  return isc::dhcp::Dhcp4Parser::make_STRING("enable-updates", driver.loc_);
4701  }
4702 }
4703  YY_BREAK
4704 case 166:
4706 #line 1726 "dhcp4_lexer.ll"
4707 {
4708  switch(driver.ctx_) {
4711  default:
4712  return isc::dhcp::Dhcp4Parser::make_STRING("qualifying-suffix", driver.loc_);
4713  }
4714 }
4715  YY_BREAK
4716 case 167:
4718 #line 1735 "dhcp4_lexer.ll"
4719 {
4720  switch(driver.ctx_) {
4722  return isc::dhcp::Dhcp4Parser::make_SERVER_IP(driver.loc_);
4723  default:
4724  return isc::dhcp::Dhcp4Parser::make_STRING("server-ip", driver.loc_);
4725  }
4726 }
4727  YY_BREAK
4728 case 168:
4730 #line 1744 "dhcp4_lexer.ll"
4731 {
4732  switch(driver.ctx_) {
4734  return isc::dhcp::Dhcp4Parser::make_SERVER_PORT(driver.loc_);
4735  default:
4736  return isc::dhcp::Dhcp4Parser::make_STRING("server-port", driver.loc_);
4737  }
4738 }
4739  YY_BREAK
4740 case 169:
4742 #line 1753 "dhcp4_lexer.ll"
4743 {
4744  switch(driver.ctx_) {
4746  return isc::dhcp::Dhcp4Parser::make_SENDER_IP(driver.loc_);
4747  default:
4748  return isc::dhcp::Dhcp4Parser::make_STRING("sender-ip", driver.loc_);
4749  }
4750 }
4751  YY_BREAK
4752 case 170:
4754 #line 1762 "dhcp4_lexer.ll"
4755 {
4756  switch(driver.ctx_) {
4758  return isc::dhcp::Dhcp4Parser::make_SENDER_PORT(driver.loc_);
4759  default:
4760  return isc::dhcp::Dhcp4Parser::make_STRING("sender-port", driver.loc_);
4761  }
4762 }
4763  YY_BREAK
4764 case 171:
4766 #line 1771 "dhcp4_lexer.ll"
4767 {
4768  switch(driver.ctx_) {
4770  return isc::dhcp::Dhcp4Parser::make_MAX_QUEUE_SIZE(driver.loc_);
4771  default:
4772  return isc::dhcp::Dhcp4Parser::make_STRING("max-queue-size", driver.loc_);
4773  }
4774 }
4775  YY_BREAK
4776 case 172:
4778 #line 1780 "dhcp4_lexer.ll"
4779 {
4780  switch(driver.ctx_) {
4782  return isc::dhcp::Dhcp4Parser::make_NCR_PROTOCOL(driver.loc_);
4783  default:
4784  return isc::dhcp::Dhcp4Parser::make_STRING("ncr-protocol", driver.loc_);
4785  }
4786 }
4787  YY_BREAK
4788 case 173:
4790 #line 1789 "dhcp4_lexer.ll"
4791 {
4792  switch(driver.ctx_) {
4794  return isc::dhcp::Dhcp4Parser::make_NCR_FORMAT(driver.loc_);
4795  default:
4796  return isc::dhcp::Dhcp4Parser::make_STRING("ncr-format", driver.loc_);
4797  }
4798 }
4799  YY_BREAK
4800 case 174:
4802 #line 1798 "dhcp4_lexer.ll"
4803 {
4804  switch(driver.ctx_) {
4807  default:
4808  return isc::dhcp::Dhcp4Parser::make_STRING("override-no-update", driver.loc_);
4809  }
4810 }
4811  YY_BREAK
4812 case 175:
4814 #line 1807 "dhcp4_lexer.ll"
4815 {
4816  switch(driver.ctx_) {
4819  default:
4820  return isc::dhcp::Dhcp4Parser::make_STRING("override-client-update", driver.loc_);
4821  }
4822 }
4823  YY_BREAK
4824 case 176:
4826 #line 1816 "dhcp4_lexer.ll"
4827 {
4828  switch(driver.ctx_) {
4831  default:
4832  return isc::dhcp::Dhcp4Parser::make_STRING("replace-client-name", driver.loc_);
4833  }
4834 }
4835  YY_BREAK
4836 case 177:
4838 #line 1825 "dhcp4_lexer.ll"
4839 {
4840  switch(driver.ctx_) {
4843  default:
4844  return isc::dhcp::Dhcp4Parser::make_STRING("generated-prefix", driver.loc_);
4845  }
4846 }
4847  YY_BREAK
4848 case 178:
4850 #line 1834 "dhcp4_lexer.ll"
4851 {
4852  switch(driver.ctx_) {
4858  default:
4859  return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-set", driver.loc_);
4860  }
4861 }
4862  YY_BREAK
4863 case 179:
4865 #line 1846 "dhcp4_lexer.ll"
4866 {
4867  switch(driver.ctx_) {
4873  default:
4874  return isc::dhcp::Dhcp4Parser::make_STRING("hostname-char-replacement", driver.loc_);
4875  }
4876 }
4877  YY_BREAK
4878 case 180:
4880 #line 1858 "dhcp4_lexer.ll"
4881 {
4882  /* dhcp-ddns value keywords are case insensitive */
4883  if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
4884  return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_);
4885  }
4886  std::string tmp(yytext+1);
4887  tmp.resize(tmp.size() - 1);
4888  return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4889 }
4890  YY_BREAK
4891 case 181:
4893 #line 1868 "dhcp4_lexer.ll"
4894 {
4895  /* dhcp-ddns value keywords are case insensitive */
4896  if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
4897  return isc::dhcp::Dhcp4Parser::make_TCP(driver.loc_);
4898  }
4899  std::string tmp(yytext+1);
4900  tmp.resize(tmp.size() - 1);
4901  return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4902 }
4903  YY_BREAK
4904 case 182:
4906 #line 1878 "dhcp4_lexer.ll"
4907 {
4908  /* dhcp-ddns value keywords are case insensitive */
4909  if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
4910  return isc::dhcp::Dhcp4Parser::make_JSON(driver.loc_);
4911  }
4912  std::string tmp(yytext+1);
4913  tmp.resize(tmp.size() - 1);
4914  return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4915 }
4916  YY_BREAK
4917 case 183:
4919 #line 1888 "dhcp4_lexer.ll"
4920 {
4921  /* dhcp-ddns value keywords are case insensitive */
4923  return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_);
4924  }
4925  std::string tmp(yytext+1);
4926  tmp.resize(tmp.size() - 1);
4927  return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4928 }
4929  YY_BREAK
4930 case 184:
4932 #line 1898 "dhcp4_lexer.ll"
4933 {
4934  /* dhcp-ddns value keywords are case insensitive */
4936  return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_);
4937  }
4938  std::string tmp(yytext+1);
4939  tmp.resize(tmp.size() - 1);
4940  return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4941 }
4942  YY_BREAK
4943 case 185:
4945 #line 1908 "dhcp4_lexer.ll"
4946 {
4947  /* dhcp-ddns value keywords are case insensitive */
4949  return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
4950  }
4951  std::string tmp(yytext+1);
4952  tmp.resize(tmp.size() - 1);
4953  return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4954 }
4955  YY_BREAK
4956 case 186:
4958 #line 1918 "dhcp4_lexer.ll"
4959 {
4960  /* dhcp-ddns value keywords are case insensitive */
4962  return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
4963  }
4964  std::string tmp(yytext+1);
4965  tmp.resize(tmp.size() - 1);
4966  return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4967 }
4968  YY_BREAK
4969 case 187:
4971 #line 1928 "dhcp4_lexer.ll"
4972 {
4973  /* dhcp-ddns value keywords are case insensitive */
4975  return isc::dhcp::Dhcp4Parser::make_ALWAYS(driver.loc_);
4976  }
4977  std::string tmp(yytext+1);
4978  tmp.resize(tmp.size() - 1);
4979  return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4980 }
4981  YY_BREAK
4982 case 188:
4984 #line 1938 "dhcp4_lexer.ll"
4985 {
4986  /* dhcp-ddns value keywords are case insensitive */
4989  }
4990  std::string tmp(yytext+1);
4991  tmp.resize(tmp.size() - 1);
4992  return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
4993 }
4994  YY_BREAK
4995 case 189:
4997 #line 1948 "dhcp4_lexer.ll"
4998 {
4999  switch(driver.ctx_) {
5002  default:
5003  return isc::dhcp::Dhcp4Parser::make_STRING("4o6-interface", driver.loc_);
5004  }
5005 }
5006  YY_BREAK
5007 case 190:
5009 #line 1957 "dhcp4_lexer.ll"
5010 {
5011  switch(driver.ctx_) {
5014  default:
5015  return isc::dhcp::Dhcp4Parser::make_STRING("4o6-interface-id", driver.loc_);
5016  }
5017 }
5018  YY_BREAK
5019 case 191:
5021 #line 1966 "dhcp4_lexer.ll"
5022 {
5023  switch(driver.ctx_) {
5026  default:
5027  return isc::dhcp::Dhcp4Parser::make_STRING("4o6-subnet", driver.loc_);
5028  }
5029 }
5030  YY_BREAK
5031 case 192:
5033 #line 1975 "dhcp4_lexer.ll"
5034 {
5035  switch(driver.ctx_) {
5037  return isc::dhcp::Dhcp4Parser::make_ECHO_CLIENT_ID(driver.loc_);
5038  default:
5039  return isc::dhcp::Dhcp4Parser::make_STRING("echo-client-id", driver.loc_);
5040  }
5041 }
5042  YY_BREAK
5043 case 193:
5045 #line 1984 "dhcp4_lexer.ll"
5046 {
5047  switch(driver.ctx_) {
5052  default:
5053  return isc::dhcp::Dhcp4Parser::make_STRING("match-client-id", driver.loc_);
5054  }
5055 }
5056  YY_BREAK
5057 case 194:
5059 #line 1995 "dhcp4_lexer.ll"
5060 {
5061  switch(driver.ctx_) {
5065  return isc::dhcp::Dhcp4Parser::make_AUTHORITATIVE(driver.loc_);
5066  default:
5067  return isc::dhcp::Dhcp4Parser::make_STRING("authoritative", driver.loc_);
5068  }
5069 }
5070  YY_BREAK
5071 case 195:
5073 #line 2006 "dhcp4_lexer.ll"
5074 {
5075  switch(driver.ctx_) {
5081  return isc::dhcp::Dhcp4Parser::make_NEXT_SERVER(driver.loc_);
5082  default:
5083  return isc::dhcp::Dhcp4Parser::make_STRING("next-server", driver.loc_);
5084  }
5085 }
5086  YY_BREAK
5087 case 196:
5089 #line 2019 "dhcp4_lexer.ll"
5090 {
5091  switch(driver.ctx_) {
5098  default:
5099  return isc::dhcp::Dhcp4Parser::make_STRING("server-hostname", driver.loc_);
5100  }
5101 }
5102  YY_BREAK
5103 case 197:
5105 #line 2032 "dhcp4_lexer.ll"
5106 {
5107  switch(driver.ctx_) {
5113  return isc::dhcp::Dhcp4Parser::make_BOOT_FILE_NAME(driver.loc_);
5114  default:
5115  return isc::dhcp::Dhcp4Parser::make_STRING("boot-file-name", driver.loc_);
5116  }
5117 }
5118  YY_BREAK
5119 case 198:
5121 #line 2045 "dhcp4_lexer.ll"
5122 {
5123  switch(driver.ctx_) {
5126  default:
5127  return isc::dhcp::Dhcp4Parser::make_STRING("early-global-reservations-lookup", driver.loc_);
5128  }
5129 }
5130  YY_BREAK
5131 case 199:
5133 #line 2054 "dhcp4_lexer.ll"
5134 {
5135  switch(driver.ctx_) {
5138  default:
5139  return isc::dhcp::Dhcp4Parser::make_STRING("ip-reservations-unique", driver.loc_);
5140  }
5141 }
5142  YY_BREAK
5143 case 200:
5145 #line 2063 "dhcp4_lexer.ll"
5146 {
5147  switch(driver.ctx_) {
5150  default:
5151  return isc::dhcp::Dhcp4Parser::make_STRING("reservations-lookup-first", driver.loc_);
5152  }
5153 }
5154  YY_BREAK
5155 case 201:
5157 #line 2072 "dhcp4_lexer.ll"
5158 {
5159  switch(driver.ctx_) {
5161  return isc::dhcp::Dhcp4Parser::make_COMPATIBILITY(driver.loc_);
5162  default:
5163  return isc::dhcp::Dhcp4Parser::make_STRING("compatibility", driver.loc_);
5164  }
5165 }
5166  YY_BREAK
5167 case 202:
5169 #line 2081 "dhcp4_lexer.ll"
5170 {
5171  switch(driver.ctx_) {
5174  default:
5175  return isc::dhcp::Dhcp4Parser::make_STRING("lenient-option-parsing", driver.loc_);
5176  }
5177 }
5178  YY_BREAK
5179 case 203:
5181 #line 2090 "dhcp4_lexer.ll"
5182 {
5183  switch(driver.ctx_) {
5186  default:
5187  return isc::dhcp::Dhcp4Parser::make_STRING("ignore-dhcp-server-identifier", driver.loc_);
5188  }
5189 }
5190  YY_BREAK
5191 case 204:
5193 #line 2099 "dhcp4_lexer.ll"
5194 {
5195  switch(driver.ctx_) {
5198  default:
5199  return isc::dhcp::Dhcp4Parser::make_STRING("ignore-rai-link-selection", driver.loc_);
5200  }
5201 }
5202  YY_BREAK
5203 case 205:
5205 #line 2108 "dhcp4_lexer.ll"
5206 {
5207  switch(driver.ctx_) {
5210  default:
5211  return isc::dhcp::Dhcp4Parser::make_STRING("exclude-first-last-24", driver.loc_);
5212  }
5213 }
5214  YY_BREAK
5215 case 206:
5217 #line 2117 "dhcp4_lexer.ll"
5218 {
5219  switch(driver.ctx_) {
5224  return isc::dhcp::Dhcp4Parser::make_OFFER_LFT(driver.loc_);
5225  default:
5226  return isc::dhcp::Dhcp4Parser::make_STRING("offer-lifetime", driver.loc_);
5227  }
5228 }
5229  YY_BREAK
5230 case 207:
5232 #line 2129 "dhcp4_lexer.ll"
5233 {
5234  /* A string has been matched. It contains the actual string and single quotes.
5235  We need to get those quotes out of the way and just use its content, e.g.
5236  for 'foo' we should get foo */
5237  std::string raw(yytext+1);
5238  size_t len = raw.size() - 1;
5239  raw.resize(len);
5240  std::string decoded;
5241  decoded.reserve(len);
5242  for (size_t pos = 0; pos < len; ++pos) {
5243  int b = 0;
5244  char c = raw[pos];
5245  switch (c) {
5246  case '"':
5247  /* impossible condition */
5248  driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
5249  break;
5250  case '\\':
5251  ++pos;
5252  if (pos >= len) {
5253  /* impossible condition */
5254  driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
5255  }
5256  c = raw[pos];
5257  switch (c) {
5258  case '"':
5259  case '\\':
5260  case '/':
5261  decoded.push_back(c);
5262  break;
5263  case 'b':
5264  decoded.push_back('\b');
5265  break;
5266  case 'f':
5267  decoded.push_back('\f');
5268  break;
5269  case 'n':
5270  decoded.push_back('\n');
5271  break;
5272  case 'r':
5273  decoded.push_back('\r');
5274  break;
5275  case 't':
5276  decoded.push_back('\t');
5277  break;
5278  case 'u':
5279  /* support only \u0000 to \u00ff */
5280  ++pos;
5281  if (pos + 4 > len) {
5282  /* impossible condition */
5283  driver.error(driver.loc_,
5284  "Overflow unicode escape in \"" + raw + "\"");
5285  }
5286  if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
5287  driver.error(driver.loc_,
5288  "Unsupported unicode escape in \"" + raw + "\"",
5289  pos + 1);
5290  }
5291  pos += 2;
5292  c = raw[pos];
5293  if ((c >= '0') && (c <= '9')) {
5294  b = (c - '0') << 4;
5295  } else if ((c >= 'A') && (c <= 'F')) {
5296  b = (c - 'A' + 10) << 4;
5297  } else if ((c >= 'a') && (c <= 'f')) {
5298  b = (c - 'a' + 10) << 4;
5299  } else {
5300  /* impossible condition */
5301  driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5302  }
5303  pos++;
5304  c = raw[pos];
5305  if ((c >= '0') && (c <= '9')) {
5306  b |= c - '0';
5307  } else if ((c >= 'A') && (c <= 'F')) {
5308  b |= c - 'A' + 10;
5309  } else if ((c >= 'a') && (c <= 'f')) {
5310  b |= c - 'a' + 10;
5311  } else {
5312  /* impossible condition */
5313  driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
5314  }
5315  decoded.push_back(static_cast<char>(b & 0xff));
5316  break;
5317  default:
5318  /* impossible condition */
5319  driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
5320  }
5321  break;
5322  default:
5323  if ((c >= 0) && (c < 0x20)) {
5324  /* impossible condition */
5325  driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
5326  }
5327  decoded.push_back(c);
5328  }
5329  }
5330 
5331  return isc::dhcp::Dhcp4Parser::make_STRING(decoded, driver.loc_);
5332 }
5333  YY_BREAK
5334 case 208:
5335 /* rule 208 can match eol */
5337 #line 2230 "dhcp4_lexer.ll"
5338 {
5339  /* Bad string with a forbidden control character inside */
5340  std::string raw(yytext+1);
5341  size_t len = raw.size() - 1;
5342  size_t pos = 0;
5343  for (; pos < len; ++pos) {
5344  char c = raw[pos];
5345  if ((c >= 0) && (c < 0x20)) {
5346  break;
5347  }
5348  }
5349  driver.error(driver.loc_,
5350  "Invalid control in " + std::string(yytext),
5351  pos + 1);
5352 }
5353  YY_BREAK
5354 case 209:
5355 /* rule 209 can match eol */
5357 #line 2246 "dhcp4_lexer.ll"
5358 {
5359  /* Bad string with a bad escape inside */
5360  std::string raw(yytext+1);
5361  size_t len = raw.size() - 1;
5362  size_t pos = 0;
5363  bool found = false;
5364  for (; pos < len; ++pos) {
5365  if (found) {
5366  break;
5367  }
5368  char c = raw[pos];
5369  if (c == '\\') {
5370  ++pos;
5371  c = raw[pos];
5372  switch (c) {
5373  case '"':
5374  case '\\':
5375  case '/':
5376  case 'b':
5377  case 'f':
5378  case 'n':
5379  case 'r':
5380  case 't':
5381  break;
5382  case 'u':
5383  if ((pos + 4 > len) ||
5384  !std::isxdigit(raw[pos + 1]) ||
5385  !std::isxdigit(raw[pos + 2]) ||
5386  !std::isxdigit(raw[pos + 3]) ||
5387  !std::isxdigit(raw[pos + 4])) {
5388  found = true;
5389  }
5390  break;
5391  default:
5392  found = true;
5393  break;
5394  }
5395  }
5396  }
5397  /* The rule stops on the first " including on \" so add ... in this case */
5398  std::string trailer = "";
5399  if (raw[len - 1] == '\\') {
5400  trailer = "...";
5401  }
5402  driver.error(driver.loc_,
5403  "Bad escape in " + std::string(yytext) + trailer,
5404  pos);
5405 }
5406  YY_BREAK
5407 case 210:
5409 #line 2295 "dhcp4_lexer.ll"
5410 {
5411  /* Bad string with an open escape at the end */
5412  std::string raw(yytext+1);
5413  driver.error(driver.loc_,
5414  "Overflow escape in " + std::string(yytext),
5415  raw.size() + 1);
5416 }
5417  YY_BREAK
5418 case 211:
5420 #line 2303 "dhcp4_lexer.ll"
5421 {
5422  /* Bad string with an open unicode escape at the end */
5423  std::string raw(yytext+1);
5424  size_t pos = raw.size() - 1;
5425  for (; pos > 0; --pos) {
5426  char c = raw[pos];
5427  if (c == 'u') {
5428  break;
5429  }
5430  }
5431  driver.error(driver.loc_,
5432  "Overflow unicode escape in " + std::string(yytext),
5433  pos + 1);
5434 }
5435  YY_BREAK
5436 case 212:
5438 #line 2318 "dhcp4_lexer.ll"
5439 { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
5440  YY_BREAK
5441 case 213:
5443 #line 2319 "dhcp4_lexer.ll"
5444 { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
5445  YY_BREAK
5446 case 214:
5448 #line 2320 "dhcp4_lexer.ll"
5449 { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
5450  YY_BREAK
5451 case 215:
5453 #line 2321 "dhcp4_lexer.ll"
5454 { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
5455  YY_BREAK
5456 case 216:
5458 #line 2322 "dhcp4_lexer.ll"
5459 { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
5460  YY_BREAK
5461 case 217:
5463 #line 2323 "dhcp4_lexer.ll"
5464 { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
5465  YY_BREAK
5466 case 218:
5468 #line 2325 "dhcp4_lexer.ll"
5469 {
5470  /* An integer was found. */
5471  std::string tmp(yytext);
5472  int64_t integer = 0;
5473  try {
5474  /* In substring we want to use negative values (e.g. -1).
5475  In enterprise-id we need to use values up to 0xffffffff.
5476  To cover both of those use cases, we need at least
5477  int64_t. */
5478  integer = boost::lexical_cast<int64_t>(tmp);
5479  } catch (const boost::bad_lexical_cast &) {
5480  driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
5481  }
5482 
5483  /* The parser needs the string form as double conversion is no lossless */
5484  return isc::dhcp::Dhcp4Parser::make_INTEGER(integer, driver.loc_);
5485 }
5486  YY_BREAK
5487 case 219:
5489 #line 2343 "dhcp4_lexer.ll"
5490 {
5491  /* A floating point was found. */
5492  std::string tmp(yytext);
5493  double fp = 0.0;
5494  try {
5495  fp = boost::lexical_cast<double>(tmp);
5496  } catch (const boost::bad_lexical_cast &) {
5497  driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
5498  }
5499 
5500  return isc::dhcp::Dhcp4Parser::make_FLOAT(fp, driver.loc_);
5501 }
5502  YY_BREAK
5503 case 220:
5505 #line 2356 "dhcp4_lexer.ll"
5506 {
5507  string tmp(yytext);
5508  return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
5509 }
5510  YY_BREAK
5511 case 221:
5513 #line 2361 "dhcp4_lexer.ll"
5514 {
5515  return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
5516 }
5517  YY_BREAK
5518 case 222:
5520 #line 2365 "dhcp4_lexer.ll"
5521 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
5522  YY_BREAK
5523 case 223:
5525 #line 2367 "dhcp4_lexer.ll"
5526 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
5527  YY_BREAK
5528 case 224:
5530 #line 2369 "dhcp4_lexer.ll"
5531 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
5532  YY_BREAK
5533 case 225:
5535 #line 2371 "dhcp4_lexer.ll"
5536 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
5537  YY_BREAK
5538 case YY_STATE_EOF(INITIAL):
5539 #line 2373 "dhcp4_lexer.ll"
5540 {
5541  if (driver.states_.empty()) {
5542  return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
5543  }
5544  driver.loc_ = driver.locs_.back();
5545  driver.locs_.pop_back();
5546  driver.file_ = driver.files_.back();
5547  driver.files_.pop_back();
5548  if (driver.sfile_) {
5549  fclose(driver.sfile_);
5550  driver.sfile_ = 0;
5551  }
5552  if (!driver.sfiles_.empty()) {
5553  driver.sfile_ = driver.sfiles_.back();
5554  driver.sfiles_.pop_back();
5555  }
5556  parser4__delete_buffer(YY_CURRENT_BUFFER);
5557  parser4__switch_to_buffer(driver.states_.back());
5558  driver.states_.pop_back();
5559 
5560  BEGIN(DIR_EXIT);
5561 }
5562  YY_BREAK
5563 case 226:
5565 #line 2396 "dhcp4_lexer.ll"
5566 ECHO;
5567  YY_BREAK
5568 #line 5568 "dhcp4_lexer.cc"
5569 
5570  case YY_END_OF_BUFFER:
5571  {
5572  /* Amount of text matched not including the EOB char. */
5573  int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
5574 
5575  /* Undo the effects of YY_DO_BEFORE_ACTION. */
5576  *yy_cp = (yy_hold_char);
5578 
5579  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
5580  {
5581  /* We're scanning a new file or input source. It's
5582  * possible that this happened because the user
5583  * just pointed yyin at a new source and called
5584  * yylex(). If so, then we have to assure
5585  * consistency between YY_CURRENT_BUFFER and our
5586  * globals. Here is the right place to do so, because
5587  * this is the first action (other than possibly a
5588  * back-up) that will match for the new input source.
5589  */
5590  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
5591 /* %if-c-only */
5592  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
5593 /* %endif */
5594 /* %if-c++-only */
5595 /* %endif */
5596  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
5597  }
5598 
5599  /* Note that here we test for yy_c_buf_p "<=" to the position
5600  * of the first EOB in the buffer, since yy_c_buf_p will
5601  * already have been incremented past the NUL character
5602  * (since all states make transitions on EOB to the
5603  * end-of-buffer state). Contrast this with the test
5604  * in input().
5605  */
5606  if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5607  { /* This was really a NUL. */
5608  yy_state_type yy_next_state;
5609 
5610  (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
5611 
5612  yy_current_state = yy_get_previous_state( );
5613 
5614  /* Okay, we're now positioned to make the NUL
5615  * transition. We couldn't have
5616  * yy_get_previous_state() go ahead and do it
5617  * for us because it doesn't know how to deal
5618  * with the possibility of jamming (and we don't
5619  * want to build jamming into it because then it
5620  * will run more slowly).
5621  */
5622 
5623  yy_next_state = yy_try_NUL_trans( yy_current_state );
5624 
5626 
5627  if ( yy_next_state )
5628  {
5629  /* Consume the NUL. */
5630  yy_cp = ++(yy_c_buf_p);
5631  yy_current_state = yy_next_state;
5632  goto yy_match;
5633  }
5634 
5635  else
5636  {
5637 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
5638  yy_cp = (yy_last_accepting_cpos);
5639  yy_current_state = (yy_last_accepting_state);
5640  goto yy_find_action;
5641  }
5642  }
5643 
5644  else switch ( yy_get_next_buffer( ) )
5645  {
5646  case EOB_ACT_END_OF_FILE:
5647  {
5648  (yy_did_buffer_switch_on_eof) = 0;
5649 
5650  if ( yywrap( ) )
5651  {
5652  /* Note: because we've taken care in
5653  * yy_get_next_buffer() to have set up
5654  * yytext, we can now set up
5655  * yy_c_buf_p so that if some total
5656  * hoser (like flex itself) wants to
5657  * call the scanner after we return the
5658  * YY_NULL, it'll still work - another
5659  * YY_NULL will get returned.
5660  */
5661  (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
5662 
5664  goto do_action;
5665  }
5666 
5667  else
5668  {
5669  if ( ! (yy_did_buffer_switch_on_eof) )
5670  YY_NEW_FILE;
5671  }
5672  break;
5673  }
5674 
5675  case EOB_ACT_CONTINUE_SCAN:
5676  (yy_c_buf_p) =
5677  (yytext_ptr) + yy_amount_of_matched_text;
5678 
5679  yy_current_state = yy_get_previous_state( );
5680 
5681  yy_cp = (yy_c_buf_p);
5683  goto yy_match;
5684 
5685  case EOB_ACT_LAST_MATCH:
5686  (yy_c_buf_p) =
5687  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
5688 
5689  yy_current_state = yy_get_previous_state( );
5690 
5691  yy_cp = (yy_c_buf_p);
5693  goto yy_find_action;
5694  }
5695  break;
5696  }
5697 
5698  default:
5700  "fatal flex scanner internal error--no action found" );
5701  } /* end of action switch */
5702  } /* end of scanning one token */
5703  } /* end of user's declarations */
5704 } /* end of yylex */
5705 /* %ok-for-header */
5706 
5707 /* %if-c++-only */
5708 /* %not-for-header */
5709 /* %ok-for-header */
5710 
5711 /* %endif */
5712 
5713 /* yy_get_next_buffer - try to read in a new buffer
5714  *
5715  * Returns a code representing an action:
5716  * EOB_ACT_LAST_MATCH -
5717  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
5718  * EOB_ACT_END_OF_FILE - end of file
5719  */
5720 /* %if-c-only */
5721 static int yy_get_next_buffer (void)
5722 /* %endif */
5723 /* %if-c++-only */
5724 /* %endif */
5725 {
5726  char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
5727  char *source = (yytext_ptr);
5728  int number_to_move, i;
5729  int ret_val;
5730 
5731  if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
5733  "fatal flex scanner internal error--end of buffer missed" );
5734 
5735  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
5736  { /* Don't try to fill the buffer, so this is an EOF. */
5737  if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
5738  {
5739  /* We matched a single character, the EOB, so
5740  * treat this as a final EOF.
5741  */
5742  return EOB_ACT_END_OF_FILE;
5743  }
5744 
5745  else
5746  {
5747  /* We matched some text prior to the EOB, first
5748  * process it.
5749  */
5750  return EOB_ACT_LAST_MATCH;
5751  }
5752  }
5753 
5754  /* Try to read more data. */
5755 
5756  /* First move last chars to start of buffer. */
5757  number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
5758 
5759  for ( i = 0; i < number_to_move; ++i )
5760  *(dest++) = *(source++);
5761 
5762  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
5763  /* don't do the read, it's not guaranteed to return an EOF,
5764  * just force an EOF
5765  */
5766  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
5767 
5768  else
5769  {
5770  int num_to_read =
5771  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
5772 
5773  while ( num_to_read <= 0 )
5774  { /* Not enough room in the buffer - grow it. */
5775 
5776  /* just a shorter name for the current buffer */
5778 
5779  int yy_c_buf_p_offset =
5780  (int) ((yy_c_buf_p) - b->yy_ch_buf);
5781 
5782  if ( b->yy_is_our_buffer )
5783  {
5784  int new_size = b->yy_buf_size * 2;
5785 
5786  if ( new_size <= 0 )
5787  b->yy_buf_size += b->yy_buf_size / 8;
5788  else
5789  b->yy_buf_size *= 2;
5790 
5791  b->yy_ch_buf = (char *)
5792  /* Include room in for 2 EOB chars. */
5793  yyrealloc( (void *) b->yy_ch_buf,
5794  (yy_size_t) (b->yy_buf_size + 2) );
5795  }
5796  else
5797  /* Can't grow it, we don't own it. */
5798  b->yy_ch_buf = NULL;
5799 
5800  if ( ! b->yy_ch_buf )
5802  "fatal error - scanner input buffer overflow" );
5803 
5804  (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
5805 
5806  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
5807  number_to_move - 1;
5808 
5809  }
5810 
5811  if ( num_to_read > YY_READ_BUF_SIZE )
5812  num_to_read = YY_READ_BUF_SIZE;
5813 
5814  /* Read in more data. */
5815  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
5816  (yy_n_chars), num_to_read );
5817 
5818  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
5819  }
5820 
5821  if ( (yy_n_chars) == 0 )
5822  {
5823  if ( number_to_move == YY_MORE_ADJ )
5824  {
5825  ret_val = EOB_ACT_END_OF_FILE;
5826  yyrestart( yyin );
5827  }
5828 
5829  else
5830  {
5831  ret_val = EOB_ACT_LAST_MATCH;
5832  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
5834  }
5835  }
5836 
5837  else
5838  ret_val = EOB_ACT_CONTINUE_SCAN;
5839 
5840  if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
5841  /* Extend the array by 50%, plus the number we really need. */
5842  int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
5843  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
5844  (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
5845  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
5846  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
5847  /* "- 2" to take care of EOB's */
5848  YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
5849  }
5850 
5851  (yy_n_chars) += number_to_move;
5852  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
5853  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
5854 
5855  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
5856 
5857  return ret_val;
5858 }
5859 
5860 /* yy_get_previous_state - get the state just before the EOB char was reached */
5861 
5862 /* %if-c-only */
5863 /* %not-for-header */
5864  static yy_state_type yy_get_previous_state (void)
5865 /* %endif */
5866 /* %if-c++-only */
5867 /* %endif */
5868 {
5869  yy_state_type yy_current_state;
5870  char *yy_cp;
5871 
5872 /* %% [15.0] code to get the start state into yy_current_state goes here */
5873  yy_current_state = (yy_start);
5874 
5875  for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
5876  {
5877 /* %% [16.0] code to find the next state goes here */
5878  YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
5879  if ( yy_accept[yy_current_state] )
5880  {
5881  (yy_last_accepting_state) = yy_current_state;
5882  (yy_last_accepting_cpos) = yy_cp;
5883  }
5884  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5885  {
5886  yy_current_state = (int) yy_def[yy_current_state];
5887  if ( yy_current_state >= 2239 )
5888  yy_c = yy_meta[yy_c];
5889  }
5890  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5891  }
5892 
5893  return yy_current_state;
5894 }
5895 
5896 /* yy_try_NUL_trans - try to make a transition on the NUL character
5897  *
5898  * synopsis
5899  * next_state = yy_try_NUL_trans( current_state );
5900  */
5901 /* %if-c-only */
5902  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
5903 /* %endif */
5904 /* %if-c++-only */
5905 /* %endif */
5906 {
5907  int yy_is_jam;
5908  /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
5909  char *yy_cp = (yy_c_buf_p);
5910 
5911  YY_CHAR yy_c = 1;
5912  if ( yy_accept[yy_current_state] )
5913  {
5914  (yy_last_accepting_state) = yy_current_state;
5915  (yy_last_accepting_cpos) = yy_cp;
5916  }
5917  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
5918  {
5919  yy_current_state = (int) yy_def[yy_current_state];
5920  if ( yy_current_state >= 2239 )
5921  yy_c = yy_meta[yy_c];
5922  }
5923  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
5924  yy_is_jam = (yy_current_state == 2238);
5925 
5926  return yy_is_jam ? 0 : yy_current_state;
5927 }
5928 
5929 #ifndef YY_NO_UNPUT
5930 /* %if-c-only */
5931 
5932 /* %endif */
5933 #endif
5934 
5935 /* %if-c-only */
5936 #ifndef YY_NO_INPUT
5937 #ifdef __cplusplus
5938  static int yyinput (void)
5939 #else
5940  static int input (void)
5941 #endif
5942 
5943 /* %endif */
5944 /* %if-c++-only */
5945 /* %endif */
5946 {
5947  int c;
5948 
5949  *(yy_c_buf_p) = (yy_hold_char);
5950 
5951  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
5952  {
5953  /* yy_c_buf_p now points to the character we want to return.
5954  * If this occurs *before* the EOB characters, then it's a
5955  * valid NUL; if not, then we've hit the end of the buffer.
5956  */
5957  if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
5958  /* This was really a NUL. */
5959  *(yy_c_buf_p) = '\0';
5960 
5961  else
5962  { /* need more input */
5963  int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
5964  ++(yy_c_buf_p);
5965 
5966  switch ( yy_get_next_buffer( ) )
5967  {
5968  case EOB_ACT_LAST_MATCH:
5969  /* This happens because yy_g_n_b()
5970  * sees that we've accumulated a
5971  * token and flags that we need to
5972  * try matching the token before
5973  * proceeding. But for input(),
5974  * there's no matching to consider.
5975  * So convert the EOB_ACT_LAST_MATCH
5976  * to EOB_ACT_END_OF_FILE.
5977  */
5978 
5979  /* Reset buffer status. */
5980  yyrestart( yyin );
5981 
5982  /*FALLTHROUGH*/
5983 
5984  case EOB_ACT_END_OF_FILE:
5985  {
5986  if ( yywrap( ) )
5987  return 0;
5988 
5989  if ( ! (yy_did_buffer_switch_on_eof) )
5990  YY_NEW_FILE;
5991 #ifdef __cplusplus
5992  return yyinput();
5993 #else
5994  return input();
5995 #endif
5996  }
5997 
5998  case EOB_ACT_CONTINUE_SCAN:
5999  (yy_c_buf_p) = (yytext_ptr) + offset;
6000  break;
6001  }
6002  }
6003  }
6004 
6005  c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
6006  *(yy_c_buf_p) = '\0'; /* preserve yytext */
6007  (yy_hold_char) = *++(yy_c_buf_p);
6008 
6009 /* %% [19.0] update BOL and yylineno */
6010 
6011  return c;
6012 }
6013 /* %if-c-only */
6014 #endif /* ifndef YY_NO_INPUT */
6015 /* %endif */
6016 
6022 /* %if-c-only */
6023  void yyrestart (FILE * input_file )
6024 /* %endif */
6025 /* %if-c++-only */
6026 /* %endif */
6027 {
6028 
6029  if ( ! YY_CURRENT_BUFFER ){
6033  }
6034 
6035  yy_init_buffer( YY_CURRENT_BUFFER, input_file );
6037 }
6038 
6039 /* %if-c++-only */
6040 /* %endif */
6041 
6046 /* %if-c-only */
6048 /* %endif */
6049 /* %if-c++-only */
6050 /* %endif */
6051 {
6052 
6053  /* TODO. We should be able to replace this entire function body
6054  * with
6055  * yypop_buffer_state();
6056  * yypush_buffer_state(new_buffer);
6057  */
6059  if ( YY_CURRENT_BUFFER == new_buffer )
6060  return;
6061 
6062  if ( YY_CURRENT_BUFFER )
6063  {
6064  /* Flush out information for old buffer. */
6065  *(yy_c_buf_p) = (yy_hold_char);
6066  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
6067  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
6068  }
6069 
6070  YY_CURRENT_BUFFER_LVALUE = new_buffer;
6072 
6073  /* We don't actually know whether we did this switch during
6074  * EOF (yywrap()) processing, but the only time this flag
6075  * is looked at is after yywrap() is called, so it's safe
6076  * to go ahead and always set it.
6077  */
6078  (yy_did_buffer_switch_on_eof) = 1;
6079 }
6080 
6081 /* %if-c-only */
6082 static void yy_load_buffer_state (void)
6083 /* %endif */
6084 /* %if-c++-only */
6085 /* %endif */
6086 {
6087  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
6088  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
6089 /* %if-c-only */
6090  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
6091 /* %endif */
6092 /* %if-c++-only */
6093 /* %endif */
6094  (yy_hold_char) = *(yy_c_buf_p);
6095 }
6096 
6103 /* %if-c-only */
6104  YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
6105 /* %endif */
6106 /* %if-c++-only */
6107 /* %endif */
6108 {
6109  YY_BUFFER_STATE b;
6110 
6111  b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
6112  if ( ! b )
6113  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6114 
6115  b->yy_buf_size = size;
6116 
6117  /* yy_ch_buf has to be 2 characters longer than the size given because
6118  * we need to put in 2 end-of-buffer characters.
6119  */
6120  b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
6121  if ( ! b->yy_ch_buf )
6122  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
6123 
6124  b->yy_is_our_buffer = 1;
6125 
6126  yy_init_buffer( b, file );
6127 
6128  return b;
6129 }
6130 
6131 /* %if-c++-only */
6132 /* %endif */
6133 
6138 /* %if-c-only */
6140 /* %endif */
6141 /* %if-c++-only */
6142 /* %endif */
6143 {
6144 
6145  if ( ! b )
6146  return;
6147 
6148  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
6150 
6151  if ( b->yy_is_our_buffer )
6152  yyfree( (void *) b->yy_ch_buf );
6153 
6154  yyfree( (void *) b );
6155 }
6156 
6157 /* Initializes or reinitializes a buffer.
6158  * This function is sometimes called more than once on the same buffer,
6159  * such as during a yyrestart() or at EOF.
6160  */
6161 /* %if-c-only */
6162  static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
6163 /* %endif */
6164 /* %if-c++-only */
6165 /* %endif */
6166 
6167 {
6168  int oerrno = errno;
6169 
6170  yy_flush_buffer( b );
6171 
6172 /* %if-c-only */
6173  b->yy_input_file = file;
6174 /* %endif */
6175 /* %if-c++-only */
6176 /* %endif */
6177  b->yy_fill_buffer = 1;
6178 
6179  /* If b is the current buffer, then yy_init_buffer was _probably_
6180  * called from yyrestart() or through yy_get_next_buffer.
6181  * In that case, we don't want to reset the lineno or column.
6182  */
6183  if (b != YY_CURRENT_BUFFER){
6184  b->yy_bs_lineno = 1;
6185  b->yy_bs_column = 0;
6186  }
6187 
6188 /* %if-c-only */
6189 
6190  b->