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