1 #line 2 "libmemcached/options/scanner.cc"
2 #line 22 "libmemcached/options/scanner.l"
4 #pragma GCC diagnostic ignored "-Wold-style-cast"
5 #pragma GCC diagnostic ignored "-Wunused-parameter"
7 #include <libmemcached/options/context.h>
8 #include <libmemcached/options/parser.h>
9 #include <libmemcached/options/string.h>
10 #include <libmemcached/options/symbol.h>
12 #define YY_EXTRA_TYPE Context*
17 #line 18 "libmemcached/options/scanner.cc"
19 #define YY_INT_ALIGNED short int
21 /* A lexical scanner generated by flex */
26 /* %if-not-reentrant */
32 #define YY_FLEX_MAJOR_VERSION 2
33 #define YY_FLEX_MINOR_VERSION 5
34 #define YY_FLEX_SUBMINOR_VERSION 35
35 #if YY_FLEX_SUBMINOR_VERSION > 0
50 /* First, we deal with platform-specific or compiler-specific issues. */
52 /* begin standard C headers. */
60 /* %if-tables-serialization */
62 /* end standard C headers. */
65 /* flex integer type definitions */
70 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
72 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
74 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
75 * if you want the limit (max/min) macros for int types.
77 #ifndef __STDC_LIMIT_MACROS
78 #define __STDC_LIMIT_MACROS 1
82 typedef int8_t flex_int8_t
;
83 typedef uint8_t flex_uint8_t
;
84 typedef int16_t flex_int16_t
;
85 typedef uint16_t flex_uint16_t
;
86 typedef int32_t flex_int32_t
;
87 typedef uint32_t flex_uint32_t
;
89 typedef signed char flex_int8_t
;
90 typedef short int flex_int16_t
;
91 typedef int flex_int32_t
;
92 typedef unsigned char flex_uint8_t
;
93 typedef unsigned short int flex_uint16_t
;
94 typedef unsigned int flex_uint32_t
;
97 /* Limits of integral types. */
99 #define INT8_MIN (-128)
102 #define INT16_MIN (-32767-1)
105 #define INT32_MIN (-2147483647-1)
108 #define INT8_MAX (127)
111 #define INT16_MAX (32767)
114 #define INT32_MAX (2147483647)
117 #define UINT8_MAX (255U)
120 #define UINT16_MAX (65535U)
123 #define UINT32_MAX (4294967295U)
126 #endif /* ! FLEXINT_H */
135 /* The "const" storage-class-modifier is valid. */
138 #else /* ! __cplusplus */
140 /* C99 requires __STDC__ to be defined as 1. */
141 #if defined (__STDC__)
145 #endif /* defined (__STDC__) */
146 #endif /* ! __cplusplus */
149 #define yyconst const
154 /* %not-for-header */
156 /* Returned upon end-of-file. */
160 /* %not-for-header */
162 /* Promotes a possibly negative, possibly signed char to an unsigned
163 * integer for use as an array index. If the signed char is negative,
164 * we want to instead treat it as an 8-bit unsigned char, hence the
167 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
172 /* An opaque pointer. */
173 #ifndef YY_TYPEDEF_YY_SCANNER_T
174 #define YY_TYPEDEF_YY_SCANNER_T
175 typedef void* yyscan_t
;
178 /* For convenience, these vars (plus the bison vars far below)
179 are macros in the reentrant scanner. */
180 #define yyin yyg->yyin_r
181 #define yyout yyg->yyout_r
182 #define yyextra yyg->yyextra_r
183 #define yyleng yyg->yyleng_r
184 #define yytext yyg->yytext_r
185 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
186 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
187 #define yy_flex_debug yyg->yy_flex_debug_r
191 /* %if-not-reentrant */
194 /* Enter a start condition. This macro really ought to take a parameter,
195 * but we do it the disgusting crufty way forced on us by the ()-less
196 * definition of BEGIN.
198 #define BEGIN yyg->yy_start = 1 + 2 *
200 /* Translate the current start state into a value that can be later handed
201 * to BEGIN to return to the state. The YYSTATE alias is for lex
204 #define YY_START ((yyg->yy_start - 1) / 2)
205 #define YYSTATE YY_START
207 /* Action number for EOF rule of a given start state. */
208 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
210 /* Special action meaning "start processing a new file". */
211 #define YY_NEW_FILE config_restart(yyin ,yyscanner )
213 #define YY_END_OF_BUFFER_CHAR 0
215 /* Size of default input buffer. */
217 #define YY_BUF_SIZE 16384
220 /* The state buf must be large enough to hold one state per character in the main buffer.
222 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
224 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
225 #define YY_TYPEDEF_YY_BUFFER_STATE
226 typedef struct yy_buffer_state
*YY_BUFFER_STATE
;
229 #ifndef YY_TYPEDEF_YY_SIZE_T
230 #define YY_TYPEDEF_YY_SIZE_T
231 typedef size_t yy_size_t
;
234 /* %if-not-reentrant */
238 /* %if-not-reentrant */
242 #define EOB_ACT_CONTINUE_SCAN 0
243 #define EOB_ACT_END_OF_FILE 1
244 #define EOB_ACT_LAST_MATCH 2
246 #define YY_LESS_LINENO(n)
248 /* Return all but the first "n" matched characters back to the input stream. */
252 /* Undo effects of setting up yytext. */ \
253 int yyless_macro_arg = (n); \
254 YY_LESS_LINENO(yyless_macro_arg);\
255 *yy_cp = yyg->yy_hold_char; \
256 YY_RESTORE_YY_MORE_OFFSET \
257 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
258 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
262 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
264 #ifndef YY_STRUCT_YY_BUFFER_STATE
265 #define YY_STRUCT_YY_BUFFER_STATE
266 struct yy_buffer_state
275 char *yy_ch_buf
; /* input buffer */
276 char *yy_buf_pos
; /* current position in input buffer */
278 /* Size of input buffer in bytes, not including room for EOB
281 yy_size_t yy_buf_size
;
283 /* Number of characters read into yy_ch_buf, not including EOB
286 yy_size_t yy_n_chars
;
288 /* Whether we "own" the buffer - i.e., we know we created it,
289 * and can realloc() it to grow it, and should free() it to
292 int yy_is_our_buffer
;
294 /* Whether this is an "interactive" input source; if so, and
295 * if we're using stdio for input, then we want to use getc()
296 * instead of fread(), to make sure we stop fetching input after
299 int yy_is_interactive
;
301 /* Whether we're considered to be at the beginning of a line.
302 * If so, '^' rules will be active on the next match, otherwise
307 int yy_bs_lineno
; /**< The line count. */
308 int yy_bs_column
; /**< The column count. */
310 /* Whether to try to fill the input buffer when we reach the
315 int yy_buffer_status
;
317 #define YY_BUFFER_NEW 0
318 #define YY_BUFFER_NORMAL 1
319 /* When an EOF's been seen but there's still some text to process
320 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
321 * shouldn't try reading from the input source any more. We might
322 * still have a bunch of tokens to match, though, because of
323 * possible backing-up.
325 * When we actually see the EOF, we change the status to "new"
326 * (via config_restart()), so that the user can continue scanning by
327 * just pointing yyin at a new input file.
329 #define YY_BUFFER_EOF_PENDING 2
332 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
334 /* %if-c-only Standard (non-C++) definition */
335 /* %not-for-header */
337 /* %if-not-reentrant */
343 /* We provide macros for accessing buffer states in case in the
344 * future we want to put the buffer states in a more general
347 * Returns the top of the stack, or NULL.
349 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
350 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
353 /* Same as previous macro, but useful when we know that the buffer stack is not
354 * NULL or when we need an lvalue. For internal use only.
356 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
358 /* %if-c-only Standard (non-C++) definition */
360 /* %if-not-reentrant */
361 /* %not-for-header */
367 void config_restart (FILE *input_file
,yyscan_t yyscanner
);
368 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
369 YY_BUFFER_STATE
config__create_buffer (FILE *file
,int size
,yyscan_t yyscanner
);
370 void config__delete_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
371 void config__flush_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
372 void config_push_buffer_state (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
373 void config_pop_buffer_state (yyscan_t yyscanner
);
375 static void config_ensure_buffer_stack (yyscan_t yyscanner
);
376 static void config__load_buffer_state (yyscan_t yyscanner
);
377 static void config__init_buffer (YY_BUFFER_STATE b
,FILE *file
,yyscan_t yyscanner
);
379 #define YY_FLUSH_BUFFER config__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
381 YY_BUFFER_STATE
config__scan_buffer (char *base
,yy_size_t size
,yyscan_t yyscanner
);
382 YY_BUFFER_STATE
config__scan_string (yyconst
char *yy_str
,yyscan_t yyscanner
);
383 YY_BUFFER_STATE
config__scan_bytes (yyconst
char *bytes
,yy_size_t len
,yyscan_t yyscanner
);
387 void *config_alloc (yy_size_t
,yyscan_t yyscanner
);
388 void *config_realloc (void *,yy_size_t
,yyscan_t yyscanner
);
389 void config_free (void * ,yyscan_t yyscanner
);
391 #define yy_new_buffer config__create_buffer
393 #define yy_set_interactive(is_interactive) \
395 if ( ! YY_CURRENT_BUFFER ){ \
396 config_ensure_buffer_stack (yyscanner); \
397 YY_CURRENT_BUFFER_LVALUE = \
398 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
400 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
403 #define yy_set_bol(at_bol) \
405 if ( ! YY_CURRENT_BUFFER ){\
406 config_ensure_buffer_stack (yyscanner); \
407 YY_CURRENT_BUFFER_LVALUE = \
408 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
410 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
413 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
415 /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
416 /* Begin user sect3 */
418 #define config_wrap(n) 1
419 #define YY_SKIP_YYWRAP
423 typedef unsigned char YY_CHAR
;
425 typedef int yy_state_type
;
427 #define yytext_ptr yytext_r
429 /* %if-c-only Standard (non-C++) definition */
431 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
);
432 static yy_state_type
yy_try_NUL_trans (yy_state_type current_state
,yyscan_t yyscanner
);
433 static int yy_get_next_buffer (yyscan_t yyscanner
);
434 static void yy_fatal_error (yyconst
char msg
[] ,yyscan_t yyscanner
);
438 /* Done after the current pattern has been matched and before the
439 * corresponding action - sets up yytext.
441 #define YY_DO_BEFORE_ACTION \
442 yyg->yytext_ptr = yy_bp; \
443 /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
444 yyleng = (size_t) (yy_cp - yy_bp); \
445 yyg->yy_hold_char = *yy_cp; \
447 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
448 yyg->yy_c_buf_p = yy_cp;
450 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
451 #define YY_NUM_RULES 96
452 #define YY_END_OF_BUFFER 97
453 /* This struct is not used in this scanner,
454 but its presence is necessary. */
457 flex_int32_t yy_verify
;
460 static yyconst flex_int16_t yy_accept
[811] =
462 0, 0, 97, 95, 3, 3, 1, 95, 95, 2,
463 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
464 93, 93, 95, 0, 94, 76, 0, 2, 93, 0,
465 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
466 93, 93, 93, 93, 93, 93, 93, 93, 0, 4,
467 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
468 76, 76, 76, 76, 76, 0, 0, 0, 2, 89,
469 0, 93, 81, 93, 72, 93, 93, 93, 93, 93,
470 93, 80, 93, 93, 93, 93, 93, 93, 76, 76,
471 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
473 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
474 76, 90, 90, 0, 0, 0, 2, 93, 93, 93,
475 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
476 74, 76, 76, 76, 76, 76, 76, 76, 0, 0,
477 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
478 76, 76, 76, 76, 76, 76, 0, 0, 93, 70,
479 73, 75, 93, 0, 86, 93, 93, 93, 93, 93,
480 69, 93, 76, 76, 76, 76, 76, 76, 76, 76,
481 0, 0, 0, 0, 0, 0, 76, 76, 76, 76,
482 76, 76, 0, 0, 76, 76, 0, 0, 76, 76,
484 76, 0, 0, 0, 76, 0, 76, 0, 0, 93,
485 0, 0, 0, 93, 93, 78, 87, 79, 93, 0,
486 0, 76, 76, 76, 76, 76, 76, 0, 22, 0,
487 0, 0, 0, 0, 0, 0, 76, 76, 76, 0,
488 0, 76, 76, 0, 0, 76, 76, 0, 0, 76,
489 0, 0, 76, 0, 0, 0, 0, 0, 0, 0,
490 0, 76, 92, 0, 93, 0, 0, 84, 82, 68,
491 88, 71, 0, 0, 76, 76, 0, 0, 76, 76,
492 76, 0, 0, 0, 0, 0, 0, 0, 0, 76,
493 76, 76, 0, 0, 76, 76, 0, 0, 0, 0,
495 76, 0, 0, 76, 0, 0, 76, 0, 0, 0,
496 0, 0, 0, 0, 0, 76, 92, 91, 93, 85,
497 83, 0, 0, 0, 0, 0, 0, 0, 0, 76,
498 76, 76, 0, 0, 0, 0, 0, 0, 0, 0,
499 0, 0, 33, 0, 0, 0, 0, 0, 0, 76,
500 0, 0, 0, 0, 0, 5, 76, 0, 0, 0,
501 0, 0, 0, 0, 76, 0, 0, 0, 0, 65,
502 0, 0, 64, 0, 0, 92, 93, 0, 0, 0,
503 0, 0, 0, 0, 0, 76, 0, 0, 76, 0,
504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
506 0, 0, 0, 0, 0, 76, 0, 0, 0, 0,
507 0, 6, 0, 0, 0, 0, 0, 0, 0, 0,
508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
509 0, 77, 0, 0, 0, 0, 0, 0, 0, 0,
510 76, 0, 0, 76, 0, 0, 0, 0, 0, 0,
511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
512 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
514 0, 0, 0, 63, 62, 0, 0, 0, 0, 0,
515 0, 0, 0, 0, 0, 0, 0, 0, 0, 76,
517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
520 53, 52, 0, 0, 0, 0, 0, 0, 0, 0,
521 8, 7, 0, 0, 0, 0, 0, 0, 0, 0,
522 0, 0, 0, 0, 76, 0, 0, 0, 0, 0,
523 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,
524 67, 0, 0, 0, 0, 0, 0, 0, 0, 0,
525 0, 0, 0, 0, 0, 55, 54, 0, 0, 57,
526 0, 0, 56, 0, 0, 0, 0, 0, 0, 0,
528 0, 0, 0, 0, 0, 76, 0, 0, 0, 0,
529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
530 0, 0, 41, 40, 0, 0, 0, 0, 47, 46,
531 0, 0, 0, 0, 0, 61, 0, 60, 0, 0,
532 0, 0, 0, 0, 16, 15, 0, 0, 0, 0,
533 21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
534 0, 0, 0, 37, 36, 0, 0, 0, 0, 0,
535 0, 0, 0, 0, 0, 59, 58, 0, 0, 0,
536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
539 0, 43, 42, 0, 0, 0, 0, 0, 0, 0,
540 0, 12, 11, 14, 13, 18, 17, 0, 0, 0,
541 0, 0, 0, 0, 0, 0, 0, 32, 31, 0,
542 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
543 9, 20, 19, 0, 0, 0, 28, 0, 0, 27,
544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
545 0, 0, 0, 0, 30, 0, 29, 0, 0, 0,
546 0, 0, 0, 49, 51, 48, 50, 0, 0, 0,
547 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,
548 25, 35, 34, 0, 0, 0, 0, 24, 23, 0,
550 0, 0, 0, 0, 0, 45, 44, 39, 38, 0
553 static yyconst flex_int32_t yy_ec
[256] =
555 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
556 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
557 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
558 1, 4, 1, 5, 6, 1, 1, 1, 1, 1,
559 1, 1, 1, 7, 8, 9, 1, 10, 11, 12,
560 13, 14, 15, 16, 10, 10, 10, 17, 1, 1,
561 18, 1, 1, 1, 19, 20, 21, 22, 23, 24,
562 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
563 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
564 1, 1, 1, 1, 45, 1, 46, 47, 48, 49,
566 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
567 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
568 70, 71, 1, 1, 1, 1, 1, 1, 1, 1,
569 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
570 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
571 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
572 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
573 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
574 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
575 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
577 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
578 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
579 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
580 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
581 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
585 static yyconst flex_int32_t yy_meta
[72] =
587 1, 1, 2, 1, 1, 1, 1, 1, 3, 3,
588 3, 3, 3, 3, 3, 3, 1, 1, 3, 3,
589 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
590 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
591 3, 3, 3, 3, 1, 3, 3, 3, 3, 3,
592 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
593 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
597 static yyconst flex_int16_t yy_base
[817] =
599 0, 949, 919, 2202, 2202, 2202, 2202, 906, 902, 63,
600 71, 79, 73, 65, 81, 66, 72, 114, 112, 130,
601 123, 119, 906, 900, 898, 184, 247, 255, 121, 263,
602 129, 263, 264, 269, 265, 271, 273, 275, 320, 322,
603 327, 331, 332, 333, 340, 371, 380, 381, 899, 2202,
604 429, 77, 379, 382, 131, 141, 169, 260, 345, 258,
605 441, 447, 272, 276, 329, 489, 505, 513, 522, 2202,
606 530, 530, 421, 532, 536, 537, 541, 570, 585, 590,
607 595, 376, 605, 596, 640, 644, 646, 652, 324, 343,
608 386, 398, 393, 389, 395, 463, 510, 516, 524, 526,
610 534, 527, 521, 524, 528, 587, 589, 581, 582, 596,
611 603, 707, 715, 724, 732, 740, 749, 749, 750, 751,
612 755, 645, 763, 762, 800, 802, 804, 812, 813, 833,
613 822, 627, 651, 648, 648, 749, 645, 658, 848, 860,
614 751, 754, 773, 777, 820, 825, 464, 821, 821, 465,
615 852, 848, 853, 466, 884, 863, 912, 921, 921, 923,
616 927, 928, 929, 94, 933, 977, 965, 983, 978, 987,
617 998, 1000, 572, 876, 892, 918, 916, 925, 913, 1004,
618 908, 929, 916, 960, 982, 971, 990, 993, 1016, 761,
619 1015, 1011, 1013, 1014, 1010, 1032, 1018, 1019, 1036, 786,
621 1029, 1035, 1036, 1031, 964, 1033, 1049, 1092, 1100, 1060,
622 105, 889, 886, 1101, 1102, 1100, 1109, 1110, 1111, 1099,
623 1106, 1087, 1095, 1132, 1107, 1120, 1125, 1112, 2202, 1113,
624 1117, 1124, 1151, 1140, 1140, 1159, 1166, 1156, 1151, 1150,
625 1151, 1148, 1160, 1165, 1166, 1187, 1160, 1170, 1171, 1161,
626 1174, 1175, 1166, 1181, 1173, 1184, 1175, 1187, 1199, 1200,
627 1208, 1194, 1229, 1256, 1256, 887, 884, 2202, 2202, 1241,
628 1242, 1263, 1226, 1227, 1239, 1242, 1226, 1231, 1224, 1238,
629 1265, 1259, 1264, 1270, 889, 886, 1271, 808, 807, 1252,
630 1252, 1290, 1273, 1280, 1300, 1282, 1279, 1280, 1276, 1277,
632 1321, 1286, 1293, 1317, 1295, 1297, 1294, 1310, 1318, 1320,
633 1324, 1313, 1329, 1330, 1316, 1323, 1377, 2202, 1346, 2202,
634 2202, 1330, 1331, 1322, 1335, 1335, 1336, 1351, 1362, 1361,
635 1356, 1361, 1364, 1365, 1367, 1373, 1367, 1373, 1378, 1372,
636 1373, 1374, 0, 1383, 1384, 1387, 1388, 1391, 1392, 1379,
637 1402, 1403, 1401, 1405, 1409, 2202, 824, 1412, 1415, 1426,
638 1420, 1425, 1414, 1417, 1450, 1430, 1443, 1433, 1446, 2202,
639 1432, 1433, 2202, 1443, 1444, 1492, 1493, 1464, 1465, 1451,
640 1454, 1469, 1488, 1482, 1483, 1495, 1482, 1483, 1484, 1497,
641 1498, 833, 1489, 1508, 779, 1492, 1511, 1509, 1510, 1510,
643 1511, 1513, 1514, 1516, 1517, 1518, 1511, 1513, 1534, 1538,
644 1551, 2202, 1553, 1541, 1542, 1553, 1554, 1555, 1556, 1542,
645 1543, 1561, 1562, 1566, 1554, 1567, 1557, 1569, 1570, 1567,
646 1568, 1602, 1557, 1560, 1567, 1590, 1589, 1591, 1599, 1600,
647 1622, 1604, 1605, 1606, 784, 745, 1593, 1613, 1599, 1598,
648 1618, 1604, 1616, 1617, 766, 726, 1612, 1613, 1604, 1605,
649 1632, 1610, 1613, 1631, 1634, 1651, 1653, 1643, 1644, 1664,
650 1654, 1666, 1656, 1652, 1653, 1672, 1673, 1663, 1672, 1676,
651 1666, 1675, 1679, 2202, 2202, 1656, 1657, 669, 653, 1663,
652 1664, 1664, 1665, 1667, 1669, 1687, 1708, 1703, 1705, 1704,
654 1705, 1706, 1722, 1718, 1720, 1725, 1721, 1723, 1722, 1723,
655 1713, 1714, 1712, 1713, 678, 677, 1717, 1718, 1717, 1718,
656 1724, 1725, 1730, 1732, 1727, 1748, 1748, 1768, 1751, 1771,
657 2202, 2202, 1757, 1758, 1769, 1767, 1755, 1772, 1770, 1758,
658 2202, 2202, 1776, 1777, 1771, 1772, 1783, 1784, 1774, 1775,
659 1783, 1784, 1789, 1791, 1784, 1783, 1804, 1804, 1821, 1809,
660 1809, 1825, 1813, 1824, 1825, 1829, 1830, 1816, 1817, 2202,
661 2202, 1833, 1834, 675, 674, 1819, 1820, 1821, 1822, 631,
662 622, 626, 606, 566, 540, 2202, 2202, 1822, 1840, 2202,
663 1824, 1842, 2202, 1833, 1835, 1849, 1852, 1857, 1859, 1861,
665 1862, 1871, 1872, 1870, 1871, 558, 1882, 1883, 1884, 1870,
666 1878, 1887, 1873, 1881, 1875, 1876, 1881, 1882, 542, 533,
667 1883, 1884, 2202, 2202, 1881, 1882, 1886, 1888, 2202, 2202,
668 1890, 1911, 1913, 1915, 1930, 2202, 1932, 2202, 1919, 1920,
669 1925, 1926, 1922, 1923, 2202, 2202, 1939, 1940, 1925, 1926,
670 2202, 1942, 1943, 1932, 1948, 1951, 1935, 1951, 1954, 1951,
671 1953, 1948, 1951, 2202, 2202, 1972, 1974, 532, 494, 1983,
672 1984, 1982, 1983, 1984, 1985, 2202, 2202, 1975, 1976, 1985,
673 1986, 1980, 1981, 412, 411, 1981, 1982, 1994, 1995, 1992,
674 1998, 1989, 1995, 2001, 1992, 2008, 2010, 2008, 2029, 2031,
676 2033, 2202, 2202, 419, 379, 2017, 2019, 2020, 2021, 2029,
677 2030, 2202, 2202, 2202, 2202, 2202, 2202, 405, 404, 2026,
678 2027, 2051, 403, 2042, 2053, 359, 2044, 2202, 2202, 2053,
679 2054, 2055, 2056, 2048, 2049, 2057, 2058, 2059, 2061, 2202,
680 2202, 2202, 2202, 326, 316, 2050, 2202, 333, 2053, 2202,
681 327, 2091, 2093, 2095, 2096, 2090, 2091, 323, 301, 299,
682 266, 2090, 2091, 2092, 2202, 2093, 2202, 2086, 2087, 193,
683 146, 2094, 2095, 2202, 2202, 2202, 2202, 2104, 2105, 170,
684 153, 152, 151, 2093, 2094, 2104, 2105, 2090, 2091, 2202,
685 2202, 2202, 2202, 2112, 2113, 2100, 2102, 2202, 2202, 2124,
687 2145, 150, 149, 2144, 2146, 2202, 2202, 2202, 2202, 2202,
688 2195, 119, 2198, 117, 116, 108
691 static yyconst flex_int16_t yy_def
[817] =
693 810, 1, 810, 810, 810, 810, 810, 811, 810, 812,
694 812, 812, 12, 12, 12, 12, 12, 12, 12, 12,
695 12, 12, 813, 811, 811, 810, 814, 812, 12, 814,
696 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
697 12, 12, 12, 12, 12, 12, 12, 12, 813, 810,
698 26, 51, 51, 51, 51, 51, 51, 51, 51, 51,
699 51, 51, 51, 51, 51, 815, 816, 815, 812, 810,
700 816, 12, 12, 12, 12, 12, 12, 12, 12, 12,
701 12, 12, 12, 12, 12, 12, 12, 12, 51, 51,
702 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
704 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
705 51, 816, 815, 816, 816, 816, 812, 12, 12, 12,
706 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
707 12, 51, 51, 51, 51, 51, 51, 51, 810, 810,
708 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
709 51, 51, 51, 51, 51, 51, 816, 816, 12, 12,
710 12, 12, 12, 810, 12, 12, 12, 12, 12, 12,
711 12, 12, 51, 51, 51, 51, 51, 51, 51, 51,
712 810, 810, 810, 810, 810, 810, 51, 51, 51, 51,
713 51, 51, 810, 810, 51, 51, 810, 810, 51, 51,
715 51, 810, 810, 810, 51, 810, 51, 816, 816, 12,
716 810, 810, 810, 12, 12, 12, 12, 12, 12, 810,
717 810, 51, 51, 51, 51, 51, 51, 810, 810, 810,
718 810, 810, 810, 810, 810, 810, 51, 51, 51, 810,
719 810, 51, 51, 810, 810, 51, 51, 810, 810, 51,
720 810, 810, 51, 810, 810, 810, 810, 810, 810, 810,
721 810, 51, 816, 816, 12, 810, 810, 810, 810, 12,
722 12, 12, 810, 810, 51, 51, 810, 810, 51, 51,
723 51, 810, 810, 810, 810, 810, 810, 810, 810, 51,
724 51, 51, 810, 810, 51, 51, 810, 810, 810, 810,
726 51, 810, 810, 51, 810, 810, 51, 810, 810, 810,
727 810, 810, 810, 810, 810, 51, 816, 810, 12, 810,
728 810, 810, 810, 810, 810, 810, 810, 810, 810, 51,
729 51, 51, 810, 810, 810, 810, 810, 810, 810, 810,
730 810, 810, 51, 810, 810, 810, 810, 810, 810, 51,
731 810, 810, 810, 810, 810, 810, 51, 810, 810, 810,
732 810, 810, 810, 810, 51, 810, 810, 810, 810, 810,
733 810, 810, 810, 810, 810, 816, 12, 810, 810, 810,
734 810, 810, 810, 810, 810, 51, 810, 810, 51, 810,
735 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
737 810, 810, 810, 810, 810, 51, 810, 810, 810, 810,
738 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
739 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
740 810, 12, 810, 810, 810, 810, 810, 810, 810, 810,
741 51, 810, 810, 51, 810, 810, 810, 810, 810, 810,
742 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
743 51, 810, 810, 810, 810, 810, 810, 810, 810, 810,
744 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
745 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
746 810, 810, 810, 810, 810, 810, 810, 810, 810, 51,
748 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
749 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
750 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
751 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
752 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
753 810, 810, 810, 810, 51, 810, 810, 810, 810, 810,
754 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
755 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
756 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
757 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
759 810, 810, 810, 810, 810, 51, 810, 810, 810, 810,
760 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
761 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
762 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
763 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
764 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
765 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
766 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
767 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
768 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
770 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
771 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
772 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
773 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
774 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
775 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
776 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
777 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
778 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
779 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
781 810, 810, 810, 810, 810, 810, 810, 810, 810, 0,
782 810, 810, 810, 810, 810, 810
785 static yyconst flex_int16_t yy_nxt
[2274] =
787 4, 5, 6, 7, 8, 4, 7, 9, 4, 10,
788 10, 10, 10, 10, 10, 10, 4, 7, 11, 11,
789 12, 13, 14, 15, 11, 16, 17, 18, 11, 11,
790 19, 11, 11, 11, 11, 20, 21, 22, 11, 11,
791 11, 11, 11, 11, 4, 11, 11, 12, 13, 14,
792 15, 11, 16, 17, 18, 11, 11, 19, 11, 11,
793 11, 11, 20, 21, 22, 11, 11, 11, 11, 11,
794 11, 27, 28, 28, 28, 28, 28, 28, 28, 30,
795 31, 31, 31, 31, 31, 31, 31, 30, 31, 31,
796 31, 31, 31, 31, 31, 34, 35, 29, 29, 37,
798 36, 29, 39, 40, 29, 29, 212, 29, 29, 213,
799 116, 32, 38, 29, 33, 89, 29, 266, 113, 68,
800 267, 29, 34, 35, 29, 29, 37, 36, 29, 39,
801 40, 29, 29, 42, 29, 29, 41, 70, 32, 38,
802 29, 33, 89, 29, 43, 47, 29, 29, 45, 29,
803 44, 29, 46, 29, 48, 29, 29, 94, 29, 95,
804 42, 29, 29, 41, 29, 29, 807, 806, 793, 792,
805 791, 43, 47, 29, 29, 45, 29, 44, 29, 46,
806 29, 48, 29, 29, 94, 29, 95, 790, 29, 29,
807 785, 29, 29, 51, 51, 51, 51, 51, 51, 51,
809 784, 96, 52, 53, 54, 55, 51, 51, 51, 56,
810 57, 51, 58, 51, 51, 59, 51, 60, 51, 61,
811 62, 63, 64, 65, 51, 51, 51, 51, 96, 52,
812 53, 54, 55, 51, 51, 51, 56, 57, 51, 58,
813 51, 51, 59, 51, 60, 51, 61, 62, 63, 64,
814 65, 51, 51, 51, 51, 66, 67, 67, 67, 67,
815 67, 67, 67, 27, 69, 69, 69, 69, 69, 69,
816 69, 66, 71, 71, 71, 71, 71, 71, 71, 70,
817 70, 70, 97, 777, 73, 70, 75, 70, 74, 70,
818 100, 70, 109, 101, 72, 29, 29, 29, 29, 29,
820 29, 29, 77, 29, 29, 29, 76, 29, 29, 97,
821 29, 73, 110, 75, 78, 74, 776, 100, 775, 109,
822 101, 72, 29, 29, 29, 29, 29, 29, 29, 77,
823 29, 29, 29, 76, 29, 29, 70, 29, 70, 110,
824 774, 78, 80, 70, 767, 82, 79, 70, 70, 70,
825 765, 111, 29, 83, 29, 29, 70, 29, 81, 29,
826 763, 132, 29, 29, 29, 29, 29, 29, 84, 80,
827 762, 85, 29, 79, 133, 29, 750, 98, 111, 29,
828 83, 29, 29, 99, 29, 81, 29, 70, 132, 29,
829 29, 29, 29, 29, 29, 84, 70, 70, 85, 29,
831 92, 133, 29, 29, 98, 90, 29, 86, 29, 134,
832 99, 29, 29, 29, 93, 87, 29, 91, 135, 88,
833 747, 743, 742, 735, 136, 137, 734, 92, 717, 716,
834 29, 138, 90, 29, 86, 29, 134, 70, 29, 29,
835 29, 93, 87, 29, 91, 135, 88, 51, 51, 51,
836 51, 136, 137, 29, 51, 51, 29, 51, 138, 102,
837 51, 103, 51, 104, 51, 51, 51, 51, 51, 105,
838 139, 193, 197, 202, 51, 51, 51, 51, 106, 107,
839 29, 51, 51, 29, 51, 108, 102, 51, 103, 51,
840 104, 51, 51, 51, 51, 51, 105, 66, 112, 112,
842 112, 112, 112, 112, 112, 106, 107, 140, 194, 198,
843 203, 703, 108, 114, 115, 115, 115, 115, 115, 115,
844 115, 66, 112, 112, 112, 112, 112, 112, 112, 70,
845 27, 117, 117, 117, 117, 117, 117, 117, 71, 71,
846 71, 71, 71, 71, 71, 71, 70, 141, 70, 702,
847 665, 142, 70, 70, 143, 144, 145, 70, 146, 664,
848 147, 148, 29, 149, 29, 29, 118, 29, 29, 120,
849 119, 29, 29, 29, 141, 651, 29, 121, 142, 220,
850 122, 143, 144, 145, 634, 146, 70, 147, 148, 29,
851 149, 29, 29, 118, 29, 29, 120, 119, 29, 29,
853 29, 70, 29, 29, 121, 29, 70, 123, 150, 151,
854 633, 70, 70, 632, 153, 154, 221, 29, 155, 124,
855 29, 70, 29, 125, 152, 29, 127, 29, 29, 29,
856 29, 29, 29, 631, 123, 150, 151, 29, 156, 630,
857 29, 153, 154, 126, 29, 155, 124, 29, 629, 29,
858 125, 152, 29, 127, 29, 29, 70, 29, 29, 173,
859 70, 128, 70, 163, 29, 156, 129, 29, 70, 174,
860 126, 175, 29, 176, 131, 29, 29, 29, 29, 29,
861 29, 29, 179, 180, 29, 130, 173, 29, 128, 164,
862 163, 624, 623, 129, 571, 570, 174, 544, 175, 29,
864 176, 131, 29, 29, 29, 29, 29, 29, 29, 179,
865 180, 29, 130, 543, 29, 71, 71, 71, 71, 71,
866 71, 71, 71, 66, 112, 112, 112, 112, 112, 112,
867 112, 70, 71, 157, 157, 157, 157, 157, 157, 157,
868 114, 158, 158, 158, 158, 158, 158, 158, 71, 71,
869 71, 71, 71, 71, 71, 71, 70, 30, 117, 117,
870 117, 117, 117, 117, 117, 70, 70, 70, 240, 187,
871 512, 70, 177, 511, 160, 159, 188, 162, 70, 70,
872 178, 29, 29, 29, 29, 29, 161, 29, 165, 502,
873 29, 501, 189, 251, 29, 29, 187, 29, 29, 177,
875 166, 160, 159, 188, 162, 241, 190, 178, 29, 29,
876 29, 29, 29, 161, 29, 165, 70, 29, 70, 189,
877 70, 29, 29, 450, 29, 29, 167, 166, 70, 70,
878 252, 168, 29, 190, 29, 29, 29, 29, 70, 29,
879 447, 412, 169, 191, 170, 29, 192, 29, 29, 70,
880 171, 340, 339, 167, 29, 172, 195, 29, 168, 29,
881 196, 29, 29, 29, 29, 29, 29, 181, 29, 169,
882 191, 170, 29, 192, 29, 29, 182, 171, 183, 184,
883 199, 29, 172, 195, 29, 200, 201, 196, 185, 207,
884 186, 204, 29, 337, 181, 29, 336, 321, 320, 269,
886 268, 50, 25, 182, 25, 183, 184, 199, 50, 26,
887 25, 222, 200, 201, 223, 185, 207, 186, 810, 205,
888 208, 209, 209, 209, 209, 209, 209, 209, 206, 114,
889 71, 71, 71, 71, 71, 71, 71, 70, 222, 70,
890 224, 223, 225, 70, 70, 70, 205, 226, 227, 70,
891 231, 232, 233, 29, 23, 29, 29, 210, 29, 29,
892 29, 29, 29, 29, 29, 29, 810, 224, 29, 225,
893 810, 259, 810, 211, 226, 227, 810, 231, 232, 233,
894 29, 70, 29, 29, 210, 29, 29, 29, 29, 29,
895 29, 29, 29, 70, 70, 29, 215, 29, 214, 70,
897 29, 216, 234, 70, 235, 810, 810, 236, 260, 29,
898 29, 228, 29, 217, 70, 29, 70, 218, 29, 29,
899 237, 229, 29, 215, 29, 214, 238, 29, 216, 234,
900 29, 235, 29, 29, 236, 219, 29, 29, 239, 29,
901 217, 242, 29, 243, 218, 29, 29, 237, 230, 29,
902 244, 245, 246, 238, 247, 248, 249, 29, 250, 29,
903 29, 253, 219, 254, 256, 239, 255, 257, 242, 258,
904 243, 261, 262, 810, 810, 810, 70, 244, 245, 246,
905 810, 247, 248, 249, 810, 250, 810, 810, 253, 810,
906 254, 256, 29, 255, 257, 29, 258, 265, 261, 262,
908 71, 263, 263, 263, 263, 263, 263, 263, 208, 264,
909 264, 264, 264, 264, 264, 264, 70, 70, 70, 29,
910 810, 273, 29, 270, 265, 70, 70, 70, 274, 275,
911 276, 279, 29, 29, 29, 29, 29, 29, 271, 277,
912 280, 29, 29, 29, 29, 29, 29, 272, 273, 810,
913 270, 281, 282, 283, 284, 274, 275, 276, 279, 29,
914 29, 29, 29, 29, 29, 271, 285, 280, 29, 29,
915 29, 29, 29, 29, 272, 286, 278, 287, 281, 282,
916 283, 284, 288, 289, 290, 291, 292, 293, 294, 295,
917 296, 297, 298, 285, 299, 301, 302, 303, 304, 305,
919 306, 307, 286, 308, 287, 309, 310, 311, 312, 288,
920 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
921 313, 314, 301, 302, 303, 304, 305, 306, 307, 315,
922 308, 300, 309, 310, 311, 312, 316, 71, 317, 317,
923 317, 317, 317, 317, 317, 318, 324, 313, 314, 326,
924 810, 810, 810, 322, 323, 328, 315, 70, 70, 341,
925 329, 810, 330, 316, 208, 71, 71, 71, 71, 71,
926 71, 71, 70, 29, 29, 331, 29, 29, 319, 70,
927 322, 323, 328, 325, 332, 333, 327, 329, 29, 330,
928 334, 29, 335, 338, 343, 29, 342, 344, 29, 346,
930 29, 29, 331, 29, 29, 319, 347, 348, 350, 351,
931 352, 332, 333, 353, 354, 29, 359, 334, 29, 335,
932 338, 343, 29, 360, 361, 29, 346, 363, 355, 364,
933 374, 365, 366, 347, 345, 350, 351, 352, 356, 367,
934 353, 354, 368, 359, 349, 369, 370, 371, 372, 373,
935 360, 810, 378, 379, 363, 380, 364, 357, 365, 366,
936 810, 362, 70, 387, 810, 358, 367, 375, 381, 368,
937 382, 383, 369, 370, 371, 372, 373, 377, 29, 378,
938 379, 29, 380, 384, 357, 71, 376, 376, 376, 376,
939 376, 376, 376, 318, 385, 381, 386, 382, 383, 389,
941 388, 390, 391, 392, 377, 29, 393, 394, 29, 395,
942 384, 396, 397, 398, 399, 400, 401, 402, 403, 404,
943 405, 385, 406, 386, 407, 408, 389, 409, 390, 391,
944 392, 410, 411, 393, 394, 413, 395, 414, 396, 397,
945 398, 399, 400, 401, 402, 403, 404, 405, 415, 406,
946 420, 407, 408, 421, 409, 416, 417, 422, 410, 411,
947 418, 419, 413, 424, 414, 425, 426, 810, 427, 428,
948 429, 430, 431, 810, 810, 415, 810, 420, 810, 810,
949 421, 810, 416, 417, 433, 434, 435, 418, 419, 436,
950 424, 437, 425, 426, 423, 427, 428, 429, 430, 431,
952 71, 71, 71, 71, 71, 71, 71, 71, 318, 70,
953 438, 433, 434, 435, 439, 440, 436, 441, 437, 442,
954 443, 444, 445, 446, 448, 29, 449, 451, 29, 452,
955 432, 453, 454, 455, 456, 457, 458, 438, 459, 460,
956 461, 439, 440, 462, 441, 463, 442, 443, 444, 445,
957 446, 448, 29, 449, 451, 29, 452, 432, 453, 454,
958 455, 456, 457, 458, 464, 459, 460, 461, 465, 466,
959 462, 467, 463, 468, 469, 470, 471, 472, 473, 474,
960 475, 476, 477, 480, 478, 481, 483, 484, 485, 486,
961 487, 464, 479, 482, 488, 465, 466, 489, 467, 490,
963 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
964 480, 478, 481, 483, 484, 485, 486, 487, 70, 479,
965 482, 488, 491, 492, 489, 493, 490, 494, 495, 496,
966 498, 499, 500, 503, 29, 504, 505, 29, 506, 517,
967 507, 508, 509, 510, 513, 514, 515, 516, 519, 491,
968 492, 520, 493, 521, 494, 495, 522, 498, 499, 500,
969 503, 29, 504, 505, 29, 506, 497, 507, 508, 509,
970 510, 513, 514, 515, 516, 519, 518, 523, 520, 524,
971 521, 525, 526, 522, 527, 528, 529, 530, 531, 532,
972 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,
974 545, 546, 547, 548, 523, 549, 524, 550, 525, 526,
975 551, 527, 528, 529, 530, 531, 532, 533, 534, 535,
976 536, 537, 538, 539, 540, 541, 542, 545, 546, 547,
977 548, 552, 549, 553, 550, 554, 555, 551, 556, 557,
978 558, 559, 560, 561, 562, 563, 564, 565, 566, 567,
979 568, 569, 572, 573, 574, 575, 576, 577, 552, 578,
980 553, 579, 554, 555, 580, 556, 557, 558, 559, 560,
981 561, 562, 563, 564, 565, 566, 567, 568, 569, 572,
982 573, 574, 575, 576, 577, 581, 578, 582, 579, 583,
983 584, 580, 585, 586, 587, 588, 589, 590, 591, 592,
985 593, 594, 595, 596, 597, 598, 599, 600, 601, 602,
986 603, 604, 581, 605, 582, 606, 583, 584, 607, 585,
987 586, 587, 588, 589, 590, 591, 592, 593, 594, 595,
988 596, 597, 598, 599, 600, 601, 602, 603, 604, 608,
989 605, 609, 606, 610, 611, 607, 612, 613, 614, 615,
990 616, 617, 618, 619, 620, 621, 622, 625, 626, 627,
991 628, 635, 636, 637, 638, 639, 608, 640, 609, 641,
992 610, 611, 642, 612, 613, 614, 615, 616, 617, 618,
993 619, 620, 621, 622, 625, 626, 627, 628, 635, 636,
994 637, 638, 639, 643, 640, 644, 641, 645, 646, 642,
996 647, 648, 649, 650, 652, 653, 654, 655, 656, 657,
997 658, 659, 660, 661, 662, 663, 666, 667, 668, 669,
998 643, 670, 644, 671, 645, 646, 672, 647, 648, 649,
999 650, 652, 653, 654, 655, 656, 657, 658, 659, 660,
1000 661, 662, 663, 666, 667, 668, 669, 673, 670, 674,
1001 671, 675, 676, 672, 677, 678, 679, 680, 681, 682,
1002 683, 684, 685, 686, 687, 688, 689, 690, 691, 692,
1003 693, 694, 695, 696, 673, 697, 674, 698, 675, 676,
1004 699, 677, 678, 679, 680, 681, 682, 683, 684, 685,
1005 686, 687, 688, 689, 690, 691, 692, 693, 694, 695,
1007 696, 700, 697, 701, 698, 704, 705, 699, 706, 707,
1008 708, 709, 710, 711, 712, 713, 714, 715, 718, 719,
1009 720, 721, 722, 723, 724, 725, 726, 727, 700, 728,
1010 701, 729, 704, 705, 730, 706, 707, 708, 709, 710,
1011 711, 712, 713, 714, 715, 718, 719, 720, 721, 722,
1012 723, 724, 725, 726, 727, 731, 728, 732, 729, 733,
1013 736, 730, 737, 738, 739, 740, 741, 744, 745, 746,
1014 748, 749, 751, 752, 753, 754, 755, 756, 757, 758,
1015 759, 760, 731, 761, 732, 764, 733, 736, 766, 737,
1016 738, 739, 740, 741, 744, 745, 746, 748, 749, 751,
1018 752, 753, 754, 755, 756, 757, 758, 759, 760, 768,
1019 761, 769, 764, 770, 771, 766, 772, 773, 778, 779,
1020 780, 781, 782, 783, 786, 787, 788, 789, 794, 795,
1021 796, 797, 798, 799, 800, 801, 768, 802, 769, 803,
1022 770, 771, 804, 772, 773, 778, 779, 780, 781, 782,
1023 783, 786, 787, 788, 789, 794, 795, 796, 797, 798,
1024 799, 800, 801, 805, 802, 808, 803, 809, 810, 804,
1025 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1026 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1027 805, 810, 808, 810, 809, 24, 810, 24, 49, 49,
1029 49, 3, 810, 810, 810, 810, 810, 810, 810, 810,
1030 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1031 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1032 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1033 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1034 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1035 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1039 static yyconst flex_int16_t yy_chk
[2274] =
1041 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1042 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1043 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1044 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1045 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1046 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1047 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1048 1, 10, 10, 10, 10, 10, 10, 10, 10, 11,
1049 11, 11, 11, 11, 11, 11, 11, 12, 12, 12,
1050 12, 12, 12, 12, 12, 13, 14, 14, 16, 15,
1052 14, 16, 16, 17, 17, 13, 164, 17, 13, 164,
1053 816, 12, 15, 15, 12, 52, 15, 211, 815, 814,
1054 211, 812, 13, 14, 14, 16, 15, 14, 16, 16,
1055 17, 17, 13, 19, 17, 13, 18, 29, 12, 15,
1056 15, 12, 52, 15, 19, 21, 18, 19, 20, 18,
1057 19, 22, 20, 29, 22, 21, 29, 55, 21, 56,
1058 19, 31, 20, 18, 31, 20, 803, 802, 783, 782,
1059 781, 19, 21, 18, 19, 20, 18, 19, 22, 20,
1060 29, 22, 21, 29, 55, 21, 56, 780, 31, 20,
1061 771, 31, 20, 26, 26, 26, 26, 26, 26, 26,
1063 770, 57, 26, 26, 26, 26, 26, 26, 26, 26,
1064 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
1065 26, 26, 26, 26, 26, 26, 26, 26, 57, 26,
1066 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
1067 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
1068 26, 26, 26, 26, 26, 27, 27, 27, 27, 27,
1069 27, 27, 27, 28, 28, 28, 28, 28, 28, 28,
1070 28, 30, 30, 30, 30, 30, 30, 30, 30, 32,
1071 33, 35, 58, 761, 33, 34, 35, 36, 34, 37,
1072 60, 38, 63, 60, 32, 32, 33, 35, 32, 33,
1074 35, 34, 37, 36, 34, 37, 36, 38, 37, 58,
1075 38, 33, 64, 35, 38, 34, 760, 60, 759, 63,
1076 60, 32, 32, 33, 35, 32, 33, 35, 34, 37,
1077 36, 34, 37, 36, 38, 37, 39, 38, 40, 64,
1078 758, 38, 40, 41, 751, 42, 39, 42, 43, 44,
1079 748, 65, 39, 43, 40, 39, 45, 40, 41, 41,
1080 745, 89, 41, 42, 43, 44, 42, 43, 44, 40,
1081 744, 45, 45, 39, 90, 45, 726, 59, 65, 39,
1082 43, 40, 39, 59, 40, 41, 41, 46, 89, 41,
1083 42, 43, 44, 42, 43, 44, 47, 48, 45, 45,
1085 54, 90, 45, 46, 59, 53, 46, 46, 82, 91,
1086 59, 82, 47, 48, 54, 47, 48, 53, 92, 48,
1087 723, 719, 718, 705, 93, 94, 704, 54, 685, 684,
1088 46, 95, 53, 46, 46, 82, 91, 73, 82, 47,
1089 48, 54, 47, 48, 53, 92, 48, 51, 51, 51,
1090 51, 93, 94, 73, 51, 51, 73, 51, 95, 61,
1091 51, 61, 51, 61, 51, 51, 51, 51, 51, 62,
1092 96, 147, 150, 154, 51, 51, 51, 51, 62, 62,
1093 73, 51, 51, 73, 51, 62, 61, 51, 61, 51,
1094 61, 51, 51, 51, 51, 51, 62, 66, 66, 66,
1096 66, 66, 66, 66, 66, 62, 62, 96, 147, 150,
1097 154, 669, 62, 67, 67, 67, 67, 67, 67, 67,
1098 67, 68, 68, 68, 68, 68, 68, 68, 68, 68,
1099 69, 69, 69, 69, 69, 69, 69, 69, 71, 71,
1100 71, 71, 71, 71, 71, 71, 72, 97, 74, 668,
1101 620, 98, 75, 76, 99, 100, 101, 77, 102, 619,
1102 103, 104, 72, 105, 74, 72, 72, 74, 75, 76,
1103 74, 75, 76, 77, 97, 606, 77, 77, 98, 173,
1104 78, 99, 100, 101, 585, 102, 78, 103, 104, 72,
1105 105, 74, 72, 72, 74, 75, 76, 74, 75, 76,
1107 77, 79, 78, 77, 77, 78, 80, 79, 106, 107,
1108 584, 81, 84, 583, 108, 109, 173, 79, 110, 80,
1109 79, 83, 80, 81, 107, 80, 84, 81, 84, 78,
1110 81, 84, 78, 582, 79, 106, 107, 83, 111, 581,
1111 83, 108, 109, 83, 79, 110, 80, 79, 580, 80,
1112 81, 107, 80, 84, 81, 84, 85, 81, 84, 132,
1113 86, 85, 87, 122, 83, 111, 86, 83, 88, 133,
1114 83, 134, 85, 135, 88, 85, 86, 122, 87, 86,
1115 122, 87, 137, 138, 88, 87, 132, 88, 85, 122,
1116 122, 575, 574, 86, 516, 515, 133, 489, 134, 85,
1118 135, 88, 85, 86, 122, 87, 86, 122, 87, 137,
1119 138, 88, 87, 488, 88, 112, 112, 112, 112, 112,
1120 112, 112, 112, 113, 113, 113, 113, 113, 113, 113,
1121 113, 113, 114, 114, 114, 114, 114, 114, 114, 114,
1122 115, 115, 115, 115, 115, 115, 115, 115, 116, 116,
1123 116, 116, 116, 116, 116, 116, 116, 117, 117, 117,
1124 117, 117, 117, 117, 117, 118, 119, 120, 190, 141,
1125 456, 121, 136, 455, 119, 118, 142, 121, 124, 123,
1126 136, 118, 119, 120, 118, 119, 120, 121, 123, 446,
1127 121, 445, 143, 200, 124, 123, 141, 124, 123, 136,
1129 124, 119, 118, 142, 121, 190, 144, 136, 118, 119,
1130 120, 118, 119, 120, 121, 123, 125, 121, 126, 143,
1131 127, 124, 123, 395, 124, 123, 125, 124, 128, 129,
1132 200, 126, 125, 144, 126, 125, 127, 126, 131, 127,
1133 392, 357, 127, 145, 128, 129, 146, 128, 129, 130,
1134 129, 289, 288, 125, 131, 130, 148, 131, 126, 125,
1135 149, 126, 125, 127, 126, 130, 127, 139, 130, 127,
1136 145, 128, 129, 146, 128, 129, 139, 129, 139, 140,
1137 151, 131, 130, 148, 131, 152, 153, 149, 140, 156,
1138 140, 155, 130, 286, 139, 130, 285, 267, 266, 213,
1140 212, 49, 25, 139, 24, 139, 140, 151, 23, 9,
1141 8, 174, 152, 153, 175, 140, 156, 140, 3, 155,
1142 157, 157, 157, 157, 157, 157, 157, 157, 155, 158,
1143 158, 158, 158, 158, 158, 158, 158, 159, 174, 160,
1144 176, 175, 177, 161, 162, 163, 155, 178, 179, 165,
1145 181, 182, 183, 159, 2, 160, 159, 159, 160, 161,
1146 162, 163, 161, 162, 163, 165, 0, 176, 165, 177,
1147 0, 205, 0, 163, 178, 179, 0, 181, 182, 183,
1148 159, 167, 160, 159, 159, 160, 161, 162, 163, 161,
1149 162, 163, 165, 166, 169, 165, 167, 167, 166, 168,
1151 167, 168, 184, 170, 185, 0, 0, 186, 205, 166,
1152 169, 180, 166, 169, 171, 168, 172, 170, 168, 170,
1153 187, 180, 170, 167, 167, 166, 188, 167, 168, 184,
1154 171, 185, 172, 171, 186, 172, 166, 169, 189, 166,
1155 169, 191, 168, 192, 170, 168, 170, 187, 180, 170,
1156 193, 194, 195, 188, 196, 197, 198, 171, 199, 172,
1157 171, 201, 172, 202, 203, 189, 202, 203, 191, 204,
1158 192, 206, 207, 0, 0, 0, 210, 193, 194, 195,
1159 0, 196, 197, 198, 0, 199, 0, 0, 201, 0,
1160 202, 203, 210, 202, 203, 210, 204, 210, 206, 207,
1162 208, 208, 208, 208, 208, 208, 208, 208, 209, 209,
1163 209, 209, 209, 209, 209, 209, 216, 214, 215, 210,
1164 0, 220, 210, 214, 210, 217, 218, 219, 221, 222,
1165 223, 225, 216, 214, 215, 216, 214, 215, 215, 224,
1166 226, 217, 218, 219, 217, 218, 219, 219, 220, 0,
1167 214, 227, 228, 230, 231, 221, 222, 223, 225, 216,
1168 214, 215, 216, 214, 215, 215, 232, 226, 217, 218,
1169 219, 217, 218, 219, 219, 233, 224, 234, 227, 228,
1170 230, 231, 235, 236, 237, 238, 239, 240, 241, 242,
1171 243, 244, 245, 232, 246, 247, 248, 249, 250, 251,
1173 252, 253, 233, 254, 234, 255, 256, 257, 258, 235,
1174 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1175 259, 260, 247, 248, 249, 250, 251, 252, 253, 261,
1176 254, 246, 255, 256, 257, 258, 262, 263, 263, 263,
1177 263, 263, 263, 263, 263, 263, 275, 259, 260, 276,
1178 0, 0, 0, 273, 274, 277, 261, 270, 271, 290,
1179 278, 0, 279, 262, 264, 264, 264, 264, 264, 264,
1180 264, 264, 265, 270, 271, 280, 270, 271, 265, 272,
1181 273, 274, 277, 275, 281, 282, 276, 278, 265, 279,
1182 283, 265, 284, 287, 291, 272, 290, 292, 272, 293,
1184 270, 271, 280, 270, 271, 265, 294, 295, 296, 297,
1185 298, 281, 282, 299, 300, 265, 302, 283, 265, 284,
1186 287, 291, 272, 303, 304, 272, 293, 305, 301, 306,
1187 316, 307, 308, 294, 292, 296, 297, 298, 301, 309,
1188 299, 300, 310, 302, 295, 311, 312, 313, 314, 315,
1189 303, 0, 322, 323, 305, 324, 306, 301, 307, 308,
1190 0, 304, 319, 331, 0, 301, 309, 316, 325, 310,
1191 326, 327, 311, 312, 313, 314, 315, 319, 319, 322,
1192 323, 319, 324, 328, 301, 317, 317, 317, 317, 317,
1193 317, 317, 317, 317, 329, 325, 330, 326, 327, 332,
1195 331, 333, 334, 335, 319, 319, 336, 337, 319, 338,
1196 328, 339, 340, 341, 342, 344, 345, 346, 347, 348,
1197 349, 329, 350, 330, 351, 352, 332, 353, 333, 334,
1198 335, 354, 355, 336, 337, 358, 338, 359, 339, 340,
1199 341, 342, 344, 345, 346, 347, 348, 349, 360, 350,
1200 363, 351, 352, 364, 353, 361, 361, 365, 354, 355,
1201 362, 362, 358, 366, 359, 367, 368, 0, 369, 371,
1202 372, 374, 375, 0, 0, 360, 0, 363, 0, 0,
1203 364, 0, 361, 361, 378, 379, 380, 362, 362, 381,
1204 366, 382, 367, 368, 365, 369, 371, 372, 374, 375,
1206 376, 376, 376, 376, 376, 376, 376, 376, 376, 377,
1207 383, 378, 379, 380, 384, 385, 381, 386, 382, 387,
1208 388, 389, 390, 391, 393, 377, 394, 396, 377, 397,
1209 377, 398, 399, 400, 401, 402, 403, 383, 404, 405,
1210 406, 384, 385, 407, 386, 408, 387, 388, 389, 390,
1211 391, 393, 377, 394, 396, 377, 397, 377, 398, 399,
1212 400, 401, 402, 403, 409, 404, 405, 406, 410, 411,
1213 407, 413, 408, 414, 415, 416, 417, 418, 419, 420,
1214 421, 422, 423, 425, 424, 426, 427, 428, 429, 430,
1215 431, 409, 424, 426, 433, 410, 411, 434, 413, 435,
1217 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
1218 425, 424, 426, 427, 428, 429, 430, 431, 432, 424,
1219 426, 433, 436, 437, 434, 438, 435, 439, 440, 441,
1220 442, 443, 444, 447, 432, 448, 449, 432, 450, 461,
1221 451, 452, 453, 454, 457, 458, 459, 460, 462, 436,
1222 437, 463, 438, 464, 439, 440, 465, 442, 443, 444,
1223 447, 432, 448, 449, 432, 450, 441, 451, 452, 453,
1224 454, 457, 458, 459, 460, 462, 461, 466, 463, 467,
1225 464, 468, 469, 465, 470, 471, 472, 473, 474, 475,
1226 476, 477, 478, 479, 480, 481, 482, 483, 486, 487,
1228 490, 491, 492, 493, 466, 494, 467, 495, 468, 469,
1229 496, 470, 471, 472, 473, 474, 475, 476, 477, 478,
1230 479, 480, 481, 482, 483, 486, 487, 490, 491, 492,
1231 493, 497, 494, 498, 495, 499, 500, 496, 501, 502,
1232 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
1233 513, 514, 517, 518, 519, 520, 521, 522, 497, 523,
1234 498, 524, 499, 500, 525, 501, 502, 503, 504, 505,
1235 506, 507, 508, 509, 510, 511, 512, 513, 514, 517,
1236 518, 519, 520, 521, 522, 526, 523, 527, 524, 528,
1237 529, 525, 530, 533, 534, 535, 536, 537, 538, 539,
1239 540, 543, 544, 545, 546, 547, 548, 549, 550, 551,
1240 552, 553, 526, 554, 527, 555, 528, 529, 556, 530,
1241 533, 534, 535, 536, 537, 538, 539, 540, 543, 544,
1242 545, 546, 547, 548, 549, 550, 551, 552, 553, 557,
1243 554, 558, 555, 559, 560, 556, 561, 562, 563, 564,
1244 565, 566, 567, 568, 569, 572, 573, 576, 577, 578,
1245 579, 588, 589, 591, 592, 594, 557, 595, 558, 596,
1246 559, 560, 597, 561, 562, 563, 564, 565, 566, 567,
1247 568, 569, 572, 573, 576, 577, 578, 579, 588, 589,
1248 591, 592, 594, 598, 595, 599, 596, 600, 601, 597,
1250 602, 603, 604, 605, 607, 608, 609, 610, 611, 612,
1251 613, 614, 615, 616, 617, 618, 621, 622, 625, 626,
1252 598, 627, 599, 628, 600, 601, 631, 602, 603, 604,
1253 605, 607, 608, 609, 610, 611, 612, 613, 614, 615,
1254 616, 617, 618, 621, 622, 625, 626, 632, 627, 633,
1255 628, 634, 635, 631, 637, 639, 640, 641, 642, 643,
1256 644, 647, 648, 649, 650, 652, 653, 654, 655, 656,
1257 657, 658, 659, 660, 632, 661, 633, 662, 634, 635,
1258 663, 637, 639, 640, 641, 642, 643, 644, 647, 648,
1259 649, 650, 652, 653, 654, 655, 656, 657, 658, 659,
1261 660, 666, 661, 667, 662, 670, 671, 663, 672, 673,
1262 674, 675, 678, 679, 680, 681, 682, 683, 686, 687,
1263 688, 689, 690, 691, 692, 693, 694, 695, 666, 696,
1264 667, 697, 670, 671, 698, 672, 673, 674, 675, 678,
1265 679, 680, 681, 682, 683, 686, 687, 688, 689, 690,
1266 691, 692, 693, 694, 695, 699, 696, 700, 697, 701,
1267 706, 698, 707, 708, 709, 710, 711, 720, 721, 722,
1268 724, 725, 727, 730, 731, 732, 733, 734, 735, 736,
1269 737, 738, 699, 739, 700, 746, 701, 706, 749, 707,
1270 708, 709, 710, 711, 720, 721, 722, 724, 725, 727,
1272 730, 731, 732, 733, 734, 735, 736, 737, 738, 752,
1273 739, 753, 746, 754, 755, 749, 756, 757, 762, 763,
1274 764, 766, 768, 769, 772, 773, 778, 779, 784, 785,
1275 786, 787, 788, 789, 794, 795, 752, 796, 753, 797,
1276 754, 755, 800, 756, 757, 762, 763, 764, 766, 768,
1277 769, 772, 773, 778, 779, 784, 785, 786, 787, 788,
1278 789, 794, 795, 801, 796, 804, 797, 805, 0, 800,
1279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1281 801, 0, 804, 0, 805, 811, 0, 811, 813, 813,
1283 813, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1284 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1285 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1286 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1287 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1288 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1289 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1293 static yyconst flex_int16_t yy_rule_linenum
[96] =
1295 76, 79, 81, 83, 87, 88, 90, 91, 92, 93,
1296 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1297 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1298 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1299 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1300 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1301 144, 145, 146, 147, 148, 150, 151, 153, 154, 155,
1302 156, 157, 158, 160, 161, 164, 169, 170, 171, 173,
1303 174, 175, 176, 177, 178, 179, 180, 181, 183, 189,
1304 195, 201, 207, 213, 219
1308 /* The intent behind this definition is that it'll catch
1309 * any uses of REJECT which flex missed.
1311 #define REJECT reject_used_but_not_detected
1312 #define yymore() yymore_used_but_not_detected
1313 #define YY_MORE_ADJ 0
1314 #define YY_RESTORE_YY_MORE_OFFSET
1315 #line 1 "libmemcached/options/scanner.l"
1316 /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
1318 * Libmemcached Scanner and Parser
1320 * Copyright (C) 2011 DataDifferental, http://datadifferential.com
1322 * This program is free software: you can redistribute it and/or modify
1323 * it under the terms of the GNU Affero General Public License as
1324 * published by the Free Software Foundation, either version 3 of the
1325 * License, or (at your option) any later version.
1327 * This program is distributed in the hope that it will be useful,
1328 * but WITHOUT ANY WARRANTY; without even the implied warranty of
1329 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1330 * GNU Affero General Public License for more details.
1332 * You should have received a copy of the GNU Affero General Public License
1333 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1336 #line 37 "libmemcached/options/scanner.l"
1340 #define PARAM config_get_extra(yyscanner)
1342 #define get_lex_chars(buffer, result, max_size, context) \
1344 if (context->pos >= context->length) \
1350 result= context->length - context->pos; \
1351 result > max_size ? result = max_size : 0; \
1352 memcpy(buffer, context->buf + context->pos, result); \
1353 context->pos += result; \
1358 #define YY_INPUT(buffer, result, max_size) get_lex_chars(buffer, result, max_size, PARAM)
1360 #line 1361 "libmemcached/options/scanner.cc"
1364 #ifndef YY_NO_UNISTD_H
1365 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1366 * down here because we want the user's section 1 to have been scanned first.
1367 * The user has a chance to override it with an option.
1376 #ifndef YY_EXTRA_TYPE
1377 #define YY_EXTRA_TYPE void *
1380 /* %if-c-only Reentrant structure and macros (non-C++). */
1383 /* Holds the entire state of the reentrant scanner. */
1387 /* User-defined. Not touched by flex. */
1388 YY_EXTRA_TYPE yyextra_r
;
1390 /* The rest are the same as the globals declared in the non-reentrant scanner. */
1391 FILE *yyin_r
, *yyout_r
;
1392 size_t yy_buffer_stack_top
; /**< index of top of stack. */
1393 size_t yy_buffer_stack_max
; /**< capacity of stack. */
1394 YY_BUFFER_STATE
* yy_buffer_stack
; /**< Stack as an array. */
1396 yy_size_t yy_n_chars
;
1401 int yy_did_buffer_switch_on_eof
;
1402 int yy_start_stack_ptr
;
1403 int yy_start_stack_depth
;
1404 int *yy_start_stack
;
1405 yy_state_type yy_last_accepting_state
;
1406 char* yy_last_accepting_cpos
;
1409 int yy_flex_debug_r
;
1417 }; /* end struct yyguts_t */
1421 static int yy_init_globals (yyscan_t yyscanner
);
1427 /* This must go here because YYSTYPE and YYLTYPE are included
1428 * from bison output in section 1.*/
1429 # define yylval yyg->yylval_r
1431 int config_lex_init (yyscan_t
* scanner
);
1433 int config_lex_init_extra (YY_EXTRA_TYPE user_defined
,yyscan_t
* scanner
);
1437 /* %endif End reentrant structures and macros. */
1439 /* Accessor methods to globals.
1440 These are made visible to non-reentrant scanners for convenience. */
1442 int config_lex_destroy (yyscan_t yyscanner
);
1444 int config_get_debug (yyscan_t yyscanner
);
1446 void config_set_debug (int debug_flag
,yyscan_t yyscanner
);
1448 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
);
1450 void config_set_extra (YY_EXTRA_TYPE user_defined
,yyscan_t yyscanner
);
1452 FILE *config_get_in (yyscan_t yyscanner
);
1454 void config_set_in (FILE * in_str
,yyscan_t yyscanner
);
1456 FILE *config_get_out (yyscan_t yyscanner
);
1458 void config_set_out (FILE * out_str
,yyscan_t yyscanner
);
1460 yy_size_t
config_get_leng (yyscan_t yyscanner
);
1462 char *config_get_text (yyscan_t yyscanner
);
1464 int config_get_lineno (yyscan_t yyscanner
);
1466 void config_set_lineno (int line_number
,yyscan_t yyscanner
);
1468 /* %if-bison-bridge */
1470 YYSTYPE
* config_get_lval (yyscan_t yyscanner
);
1472 void config_set_lval (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1476 /* Macros after this point can all be overridden by user definitions in
1480 #ifndef YY_SKIP_YYWRAP
1482 extern "C" int config_wrap (yyscan_t yyscanner
);
1484 extern int config_wrap (yyscan_t yyscanner
);
1488 /* %not-for-header */
1490 /* %ok-for-header */
1495 static void yy_flex_strncpy (char *,yyconst
char *,int ,yyscan_t yyscanner
);
1498 #ifdef YY_NEED_STRLEN
1499 static int yy_flex_strlen (yyconst
char * ,yyscan_t yyscanner
);
1503 /* %if-c-only Standard (non-C++) definition */
1504 /* %not-for-header */
1507 static int yyinput (yyscan_t yyscanner
);
1509 static int input (yyscan_t yyscanner
);
1511 /* %ok-for-header */
1520 /* Amount of stuff to slurp up with each read. */
1521 #ifndef YY_READ_BUF_SIZE
1522 #define YY_READ_BUF_SIZE 8192
1525 /* Copy whatever the last rule matched to the standard output. */
1527 /* %if-c-only Standard (non-C++) definition */
1528 /* This used to be an fputs(), but since the string might contain NUL's,
1529 * we now use fwrite().
1531 #define ECHO fwrite( yytext, yyleng, 1, yyout )
1533 /* %if-c++-only C++ definition */
1537 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1538 * is returned in "result".
1541 #define YY_INPUT(buf,result,max_size) \
1542 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
1543 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1547 for ( n = 0; n < max_size && \
1548 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1549 buf[n] = (char) c; \
1551 buf[n++] = (char) c; \
1552 if ( c == EOF && ferror( yyin ) ) \
1553 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1559 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1561 if( errno != EINTR) \
1563 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1571 /* %if-c++-only C++ definition \ */\
1576 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1577 * we don't want an extra ';' after the "return" because that will cause
1578 * some compilers to complain about unreachable statements.
1581 #define yyterminate() return YY_NULL
1584 /* Number of entries by which start-condition stack grows. */
1585 #ifndef YY_START_STACK_INCR
1586 #define YY_START_STACK_INCR 25
1589 /* Report a fatal error. */
1590 #ifndef YY_FATAL_ERROR
1592 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1598 /* %if-tables-serialization structures and prototypes */
1599 /* %not-for-header */
1601 /* %ok-for-header */
1603 /* %not-for-header */
1605 /* %tables-yydmap generated elements */
1607 /* end tables serialization structures and prototypes */
1609 /* %ok-for-header */
1611 /* Default declaration of generated scanner - a define so the user can
1612 * easily add parameters.
1615 #define YY_DECL_IS_OURS 1
1616 /* %if-c-only Standard (non-C++) definition */
1618 extern int config_lex \
1619 (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1621 #define YY_DECL int config_lex \
1622 (YYSTYPE * yylval_param , yyscan_t yyscanner)
1624 /* %if-c++-only C++ definition */
1626 #endif /* !YY_DECL */
1628 /* Code executed at the beginning of each rule, after yytext and yyleng
1631 #ifndef YY_USER_ACTION
1632 #define YY_USER_ACTION
1635 /* Code executed at the end of each rule. */
1637 #define YY_BREAK break;
1640 /* %% [6.0] YY_RULE_SETUP definition goes here */
1641 #define YY_RULE_SETUP \
1643 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1644 (yytext[yyleng - 1] == '\n'); \
1647 /* %not-for-header */
1649 /** The main scanner function which does all the work.
1653 register yy_state_type yy_current_state
;
1654 register char *yy_cp
, *yy_bp
;
1655 register int yy_act
;
1656 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
1658 /* %% [7.0] user's declarations go here */
1659 #line 73 "libmemcached/options/scanner.l"
1663 #line 1664 "libmemcached/options/scanner.cc"
1665 yylval
= yylval_param
;
1667 if ( !yyg
->yy_init
)
1675 if ( ! yyg
->yy_start
)
1676 yyg
->yy_start
= 1; /* first start state */
1692 if ( ! YY_CURRENT_BUFFER
) {
1693 config_ensure_buffer_stack (yyscanner
);
1694 YY_CURRENT_BUFFER_LVALUE
=
1695 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
1698 config__load_buffer_state(yyscanner
);
1701 while ( 1 ) /* loops until end-of-file is reached */
1703 /* %% [8.0] yymore()-related code goes here */
1704 yy_cp
= yyg
->yy_c_buf_p
;
1706 /* Support of yytext. */
1707 *yy_cp
= yyg
->yy_hold_char
;
1709 /* yy_bp points to the position in yy_ch_buf of the start of
1714 /* %% [9.0] code to set up and find next match goes here */
1715 yy_current_state
= yyg
->yy_start
;
1716 yy_current_state
+= YY_AT_BOL();
1720 register YY_CHAR yy_c
= yy_ec
[YY_SC_TO_UI(*yy_cp
)];
1721 if ( yy_accept
[yy_current_state
] )
1723 yyg
->yy_last_accepting_state
= yy_current_state
;
1724 yyg
->yy_last_accepting_cpos
= yy_cp
;
1726 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
1728 yy_current_state
= (int) yy_def
[yy_current_state
];
1729 if ( yy_current_state
>= 811 )
1730 yy_c
= yy_meta
[(unsigned int) yy_c
];
1732 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
1735 while ( yy_base
[yy_current_state
] != 2202 );
1738 /* %% [10.0] code to find the action number goes here */
1739 yy_act
= yy_accept
[yy_current_state
];
1741 { /* have to back up */
1742 yy_cp
= yyg
->yy_last_accepting_cpos
;
1743 yy_current_state
= yyg
->yy_last_accepting_state
;
1744 yy_act
= yy_accept
[yy_current_state
];
1747 YY_DO_BEFORE_ACTION
;
1749 /* %% [11.0] code for yylineno update goes here */
1751 do_action
: /* This label is used only to access EOF actions. */
1753 /* %% [12.0] debug code goes here */
1754 if ( yy_flex_debug
)
1757 fprintf( stderr
, "--scanner backing up\n" );
1758 else if ( yy_act
< 96 )
1759 fprintf( stderr
, "--accepting rule at line %ld (\"%s\")\n",
1760 (long)yy_rule_linenum
[yy_act
], yytext
);
1761 else if ( yy_act
== 96 )
1762 fprintf( stderr
, "--accepting default rule (\"%s\")\n",
1764 else if ( yy_act
== 97 )
1765 fprintf( stderr
, "--(end of buffer or a NUL)\n" );
1767 fprintf( stderr
, "--EOF (start condition %d)\n", YY_START
);
1771 { /* beginning of action switch */
1772 /* %% [13.0] actions go here */
1773 case 0: /* must back up */
1774 /* undo the effects of YY_DO_BEFORE_ACTION */
1775 *yy_cp
= yyg
->yy_hold_char
;
1776 yy_cp
= yyg
->yy_last_accepting_cpos
;
1777 yy_current_state
= yyg
->yy_last_accepting_state
;
1778 goto yy_find_action
;
1782 #line 76 "libmemcached/options/scanner.l"
1783 { return yytext
[0];}
1787 #line 79 "libmemcached/options/scanner.l"
1788 { yylval
->number
= atoi(yytext
); return (NUMBER
); }
1791 /* rule 3 can match eol */
1793 #line 81 "libmemcached/options/scanner.l"
1794 ; /* skip whitespace */
1797 *yy_cp
= yyg
->yy_hold_char
; /* undo effects of setting up yytext */
1798 yyg
->yy_c_buf_p
= yy_cp
-= 1;
1799 YY_DO_BEFORE_ACTION
; /* set up yytext again */
1801 #line 83 "libmemcached/options/scanner.l"
1808 #line 87 "libmemcached/options/scanner.l"
1809 { yyextra
->begin
= yytext
; return SERVER
; }
1813 #line 88 "libmemcached/options/scanner.l"
1814 { yyextra
->begin
= yytext
; return SERVERS_OPTION
; }
1818 #line 90 "libmemcached/options/scanner.l"
1819 { yyextra
->begin
= yytext
; return VERIFY_KEY
; }
1823 #line 91 "libmemcached/options/scanner.l"
1824 { yyextra
->begin
= yytext
; return VERIFY_KEY
; }
1828 #line 92 "libmemcached/options/scanner.l"
1829 { yyextra
->begin
= yytext
; return AUTO_EJECT_HOSTS
; }
1833 #line 93 "libmemcached/options/scanner.l"
1834 { yyextra
->begin
= yytext
; return AUTO_EJECT_HOSTS
; }
1838 #line 94 "libmemcached/options/scanner.l"
1839 { yyextra
->begin
= yytext
; return BINARY_PROTOCOL
; }
1843 #line 95 "libmemcached/options/scanner.l"
1844 { yyextra
->begin
= yytext
; return BINARY_PROTOCOL
; }
1848 #line 96 "libmemcached/options/scanner.l"
1849 { yyextra
->begin
= yytext
; return BUFFER_REQUESTS
; }
1853 #line 97 "libmemcached/options/scanner.l"
1854 { yyextra
->begin
= yytext
; return BUFFER_REQUESTS
; }
1858 #line 98 "libmemcached/options/scanner.l"
1859 { yyextra
->begin
= yytext
; return CACHE_LOOKUPS
; }
1863 #line 99 "libmemcached/options/scanner.l"
1864 { yyextra
->begin
= yytext
; return CACHE_LOOKUPS
; }
1868 #line 100 "libmemcached/options/scanner.l"
1869 { yyextra
->begin
= yytext
; return CONFIGURE_FILE
; }
1873 #line 101 "libmemcached/options/scanner.l"
1874 { yyextra
->begin
= yytext
; return CONFIGURE_FILE
; }
1878 #line 102 "libmemcached/options/scanner.l"
1879 { yyextra
->begin
= yytext
; return CONNECT_TIMEOUT
; }
1883 #line 103 "libmemcached/options/scanner.l"
1884 { yyextra
->begin
= yytext
; return CONNECT_TIMEOUT
; }
1888 #line 104 "libmemcached/options/scanner.l"
1889 { yyextra
->begin
= yytext
; return DISTRIBUTION
; }
1893 #line 105 "libmemcached/options/scanner.l"
1894 { yyextra
->begin
= yytext
; return HASH
; }
1898 #line 106 "libmemcached/options/scanner.l"
1899 { yyextra
->begin
= yytext
; return HASH_WITH_PREFIX_KEY
; }
1903 #line 107 "libmemcached/options/scanner.l"
1904 { yyextra
->begin
= yytext
; return HASH_WITH_PREFIX_KEY
; }
1908 #line 108 "libmemcached/options/scanner.l"
1909 { yyextra
->begin
= yytext
; return IO_BYTES_WATERMARK
; }
1913 #line 109 "libmemcached/options/scanner.l"
1914 { yyextra
->begin
= yytext
; return IO_BYTES_WATERMARK
; }
1918 #line 110 "libmemcached/options/scanner.l"
1919 { yyextra
->begin
= yytext
; return IO_KEY_PREFETCH
; }
1923 #line 111 "libmemcached/options/scanner.l"
1924 { yyextra
->begin
= yytext
; return IO_KEY_PREFETCH
; }
1928 #line 112 "libmemcached/options/scanner.l"
1929 { yyextra
->begin
= yytext
; return IO_MSG_WATERMARK
; }
1933 #line 113 "libmemcached/options/scanner.l"
1934 { yyextra
->begin
= yytext
; return IO_MSG_WATERMARK
; }
1938 #line 114 "libmemcached/options/scanner.l"
1939 { yyextra
->begin
= yytext
; return KETAMA_WEIGHTED
; }
1943 #line 115 "libmemcached/options/scanner.l"
1944 { yyextra
->begin
= yytext
; return KETAMA_WEIGHTED
; }
1948 #line 116 "libmemcached/options/scanner.l"
1949 { yyextra
->begin
= yytext
; return NOREPLY
; }
1953 #line 117 "libmemcached/options/scanner.l"
1954 { yyextra
->begin
= yytext
; return NUMBER_OF_REPLICAS
; }
1958 #line 118 "libmemcached/options/scanner.l"
1959 { yyextra
->begin
= yytext
; return NUMBER_OF_REPLICAS
; }
1963 #line 119 "libmemcached/options/scanner.l"
1964 { yyextra
->begin
= yytext
; return POLL_TIMEOUT
; }
1968 #line 120 "libmemcached/options/scanner.l"
1969 { yyextra
->begin
= yytext
; return POLL_TIMEOUT
; }
1973 #line 121 "libmemcached/options/scanner.l"
1974 { yyextra
->begin
= yytext
; return RANDOMIZE_REPLICA_READ
; }
1978 #line 122 "libmemcached/options/scanner.l"
1979 { yyextra
->begin
= yytext
; return RANDOMIZE_REPLICA_READ
; }
1983 #line 123 "libmemcached/options/scanner.l"
1984 { yyextra
->begin
= yytext
; return RCV_TIMEOUT
; }
1988 #line 124 "libmemcached/options/scanner.l"
1989 { yyextra
->begin
= yytext
; return RCV_TIMEOUT
; }
1993 #line 125 "libmemcached/options/scanner.l"
1994 { yyextra
->begin
= yytext
; return RETRY_TIMEOUT
; }
1998 #line 126 "libmemcached/options/scanner.l"
1999 { yyextra
->begin
= yytext
; return RETRY_TIMEOUT
; }
2003 #line 127 "libmemcached/options/scanner.l"
2004 { yyextra
->begin
= yytext
; return SERVER_FAILURE_LIMIT
; }
2008 #line 128 "libmemcached/options/scanner.l"
2009 { yyextra
->begin
= yytext
; return SERVER_FAILURE_LIMIT
; }
2013 #line 129 "libmemcached/options/scanner.l"
2014 { yyextra
->begin
= yytext
; return SND_TIMEOUT
; }
2018 #line 130 "libmemcached/options/scanner.l"
2019 { yyextra
->begin
= yytext
; return SND_TIMEOUT
; }
2023 #line 131 "libmemcached/options/scanner.l"
2024 { yyextra
->begin
= yytext
; return SOCKET_RECV_SIZE
; }
2028 #line 132 "libmemcached/options/scanner.l"
2029 { yyextra
->begin
= yytext
; return SOCKET_RECV_SIZE
; }
2033 #line 133 "libmemcached/options/scanner.l"
2034 { yyextra
->begin
= yytext
; return SOCKET_SEND_SIZE
; }
2038 #line 134 "libmemcached/options/scanner.l"
2039 { yyextra
->begin
= yytext
; return SOCKET_SEND_SIZE
; }
2043 #line 135 "libmemcached/options/scanner.l"
2044 { yyextra
->begin
= yytext
; return SORT_HOSTS
; }
2048 #line 136 "libmemcached/options/scanner.l"
2049 { yyextra
->begin
= yytext
; return SORT_HOSTS
; }
2053 #line 137 "libmemcached/options/scanner.l"
2054 { yyextra
->begin
= yytext
; return SUPPORT_CAS
; }
2058 #line 138 "libmemcached/options/scanner.l"
2059 { yyextra
->begin
= yytext
; return SUPPORT_CAS
; }
2063 #line 139 "libmemcached/options/scanner.l"
2064 { yyextra
->begin
= yytext
; return _TCP_NODELAY
; }
2068 #line 140 "libmemcached/options/scanner.l"
2069 { yyextra
->begin
= yytext
; return _TCP_NODELAY
; }
2073 #line 141 "libmemcached/options/scanner.l"
2074 { yyextra
->begin
= yytext
; return _TCP_KEEPALIVE
; }
2078 #line 142 "libmemcached/options/scanner.l"
2079 { yyextra
->begin
= yytext
; return _TCP_KEEPALIVE
; }
2083 #line 143 "libmemcached/options/scanner.l"
2084 { yyextra
->begin
= yytext
; return _TCP_KEEPIDLE
; }
2088 #line 144 "libmemcached/options/scanner.l"
2089 { yyextra
->begin
= yytext
; return _TCP_KEEPIDLE
; }
2093 #line 145 "libmemcached/options/scanner.l"
2094 { yyextra
->begin
= yytext
; return USER_DATA
; }
2098 #line 146 "libmemcached/options/scanner.l"
2099 { yyextra
->begin
= yytext
; return USER_DATA
; }
2103 #line 147 "libmemcached/options/scanner.l"
2104 { yyextra
->begin
= yytext
; return USE_UDP
; }
2108 #line 148 "libmemcached/options/scanner.l"
2109 { yyextra
->begin
= yytext
; return USE_UDP
; }
2113 #line 150 "libmemcached/options/scanner.l"
2114 { yyextra
->begin
= yytext
; return PREFIX_KEY
; }
2118 #line 151 "libmemcached/options/scanner.l"
2119 { yyextra
->begin
= yytext
; return PREFIX_KEY
; }
2123 #line 153 "libmemcached/options/scanner.l"
2124 { yyextra
->begin
= yytext
; return INCLUDE
; }
2128 #line 154 "libmemcached/options/scanner.l"
2129 { yyextra
->begin
= yytext
; return RESET
; }
2133 #line 155 "libmemcached/options/scanner.l"
2134 { yyextra
->begin
= yytext
; return PARSER_DEBUG
; }
2138 #line 156 "libmemcached/options/scanner.l"
2139 { yyextra
->begin
= yytext
; return SERVERS
; }
2143 #line 157 "libmemcached/options/scanner.l"
2144 { yyextra
->begin
= yytext
; return END
; }
2148 #line 158 "libmemcached/options/scanner.l"
2149 { yyextra
->begin
= yytext
; return ERROR
; }
2153 #line 160 "libmemcached/options/scanner.l"
2158 #line 161 "libmemcached/options/scanner.l"
2163 #line 164 "libmemcached/options/scanner.l"
2165 yyextra
->begin
= yytext
;
2166 return UNKNOWN_OPTION
;
2171 #line 169 "libmemcached/options/scanner.l"
2172 { return CONSISTENT
; }
2176 #line 170 "libmemcached/options/scanner.l"
2181 #line 171 "libmemcached/options/scanner.l"
2186 #line 173 "libmemcached/options/scanner.l"
2191 #line 174 "libmemcached/options/scanner.l"
2196 #line 175 "libmemcached/options/scanner.l"
2201 #line 176 "libmemcached/options/scanner.l"
2202 { return FNV1A_64
; }
2206 #line 177 "libmemcached/options/scanner.l"
2211 #line 178 "libmemcached/options/scanner.l"
2212 { return FNV1A_32
; }
2216 #line 179 "libmemcached/options/scanner.l"
2221 #line 180 "libmemcached/options/scanner.l"
2226 #line 181 "libmemcached/options/scanner.l"
2231 #line 183 "libmemcached/options/scanner.l"
2233 yylval
->string
.c_str
= yytext
;
2234 yylval
->string
.length
= yyleng
;
2235 return HOSTNAME_WITH_PORT
;
2240 #line 189 "libmemcached/options/scanner.l"
2242 yylval
->string
.c_str
= yytext
;
2243 yylval
->string
.length
= yyleng
;
2249 #line 195 "libmemcached/options/scanner.l"
2251 yylval
->string
.c_str
= yytext
;
2252 yylval
->string
.length
= yyleng
;
2253 return IPADDRESS_WITH_PORT
;
2258 #line 201 "libmemcached/options/scanner.l"
2260 yylval
->string
.c_str
= yytext
;
2261 yylval
->string
.length
= yyleng
;
2267 #line 207 "libmemcached/options/scanner.l"
2269 yylval
->string
.c_str
= yytext
;
2270 yylval
->string
.length
= yyleng
;
2276 #line 213 "libmemcached/options/scanner.l"
2278 yylval
->string
.c_str
= yytext
;
2279 yylval
->string
.length
= yyleng
;
2280 return QUOTED_STRING
;
2285 #line 219 "libmemcached/options/scanner.l"
2287 yyextra
->begin
= yytext
;
2293 #line 224 "libmemcached/options/scanner.l"
2296 #line 2297 "libmemcached/options/scanner.cc"
2297 case YY_STATE_EOF(INITIAL
):
2300 case YY_END_OF_BUFFER
:
2302 /* Amount of text matched not including the EOB char. */
2303 int yy_amount_of_matched_text
= (int) (yy_cp
- yyg
->yytext_ptr
) - 1;
2305 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2306 *yy_cp
= yyg
->yy_hold_char
;
2307 YY_RESTORE_YY_MORE_OFFSET
2309 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_NEW
)
2311 /* We're scanning a new file or input source. It's
2312 * possible that this happened because the user
2313 * just pointed yyin at a new source and called
2314 * config_lex(). If so, then we have to assure
2315 * consistency between YY_CURRENT_BUFFER and our
2316 * globals. Here is the right place to do so, because
2317 * this is the first action (other than possibly a
2318 * back-up) that will match for the new input source.
2320 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
2321 YY_CURRENT_BUFFER_LVALUE
->yy_input_file
= yyin
;
2322 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
= YY_BUFFER_NORMAL
;
2325 /* Note that here we test for yy_c_buf_p "<=" to the position
2326 * of the first EOB in the buffer, since yy_c_buf_p will
2327 * already have been incremented past the NUL character
2328 * (since all states make transitions on EOB to the
2329 * end-of-buffer state). Contrast this with the test
2332 if ( yyg
->yy_c_buf_p
<= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
2333 { /* This was really a NUL. */
2334 yy_state_type yy_next_state
;
2336 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
2338 yy_current_state
= yy_get_previous_state( yyscanner
);
2340 /* Okay, we're now positioned to make the NUL
2341 * transition. We couldn't have
2342 * yy_get_previous_state() go ahead and do it
2343 * for us because it doesn't know how to deal
2344 * with the possibility of jamming (and we don't
2345 * want to build jamming into it because then it
2346 * will run more slowly).
2349 yy_next_state
= yy_try_NUL_trans( yy_current_state
, yyscanner
);
2351 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2353 if ( yy_next_state
)
2355 /* Consume the NUL. */
2356 yy_cp
= ++yyg
->yy_c_buf_p
;
2357 yy_current_state
= yy_next_state
;
2363 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
2364 yy_cp
= yyg
->yy_c_buf_p
;
2365 goto yy_find_action
;
2369 else switch ( yy_get_next_buffer( yyscanner
) )
2371 case EOB_ACT_END_OF_FILE
:
2373 yyg
->yy_did_buffer_switch_on_eof
= 0;
2375 if ( config_wrap(yyscanner
) )
2377 /* Note: because we've taken care in
2378 * yy_get_next_buffer() to have set up
2379 * yytext, we can now set up
2380 * yy_c_buf_p so that if some total
2381 * hoser (like flex itself) wants to
2382 * call the scanner after we return the
2383 * YY_NULL, it'll still work - another
2384 * YY_NULL will get returned.
2386 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2388 yy_act
= YY_STATE_EOF(YY_START
);
2394 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
2400 case EOB_ACT_CONTINUE_SCAN
:
2402 yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
2404 yy_current_state
= yy_get_previous_state( yyscanner
);
2406 yy_cp
= yyg
->yy_c_buf_p
;
2407 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2410 case EOB_ACT_LAST_MATCH
:
2412 &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
];
2414 yy_current_state
= yy_get_previous_state( yyscanner
);
2416 yy_cp
= yyg
->yy_c_buf_p
;
2417 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2418 goto yy_find_action
;
2425 "fatal flex scanner internal error--no action found" );
2426 } /* end of action switch */
2427 } /* end of scanning one token */
2428 } /* end of config_lex */
2429 /* %ok-for-header */
2432 /* %not-for-header */
2434 /* %ok-for-header */
2438 /* yy_get_next_buffer - try to read in a new buffer
2440 * Returns a code representing an action:
2441 * EOB_ACT_LAST_MATCH -
2442 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2443 * EOB_ACT_END_OF_FILE - end of file
2446 static int yy_get_next_buffer (yyscan_t yyscanner
)
2451 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2452 register char *dest
= YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
;
2453 register char *source
= yyg
->yytext_ptr
;
2454 register int number_to_move
, i
;
2457 if ( yyg
->yy_c_buf_p
> &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] )
2459 "fatal flex scanner internal error--end of buffer missed" );
2461 if ( YY_CURRENT_BUFFER_LVALUE
->yy_fill_buffer
== 0 )
2462 { /* Don't try to fill the buffer, so this is an EOF. */
2463 if ( yyg
->yy_c_buf_p
- yyg
->yytext_ptr
- YY_MORE_ADJ
== 1 )
2465 /* We matched a single character, the EOB, so
2466 * treat this as a final EOF.
2468 return EOB_ACT_END_OF_FILE
;
2473 /* We matched some text prior to the EOB, first
2476 return EOB_ACT_LAST_MATCH
;
2480 /* Try to read more data. */
2482 /* First move last chars to start of buffer. */
2483 number_to_move
= (int) (yyg
->yy_c_buf_p
- yyg
->yytext_ptr
) - 1;
2485 for ( i
= 0; i
< number_to_move
; ++i
)
2486 *(dest
++) = *(source
++);
2488 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_EOF_PENDING
)
2489 /* don't do the read, it's not guaranteed to return an EOF,
2492 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
= 0;
2496 yy_size_t num_to_read
=
2497 YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
- number_to_move
- 1;
2499 while ( num_to_read
<= 0 )
2500 { /* Not enough room in the buffer - grow it. */
2502 /* just a shorter name for the current buffer */
2503 YY_BUFFER_STATE b
= YY_CURRENT_BUFFER
;
2505 int yy_c_buf_p_offset
=
2506 (int) (yyg
->yy_c_buf_p
- b
->yy_ch_buf
);
2508 if ( b
->yy_is_our_buffer
)
2510 yy_size_t new_size
= b
->yy_buf_size
* 2;
2512 if ( new_size
<= 0 )
2513 b
->yy_buf_size
+= b
->yy_buf_size
/ 8;
2515 b
->yy_buf_size
*= 2;
2517 b
->yy_ch_buf
= (char *)
2518 /* Include room in for 2 EOB chars. */
2519 config_realloc((void *) b
->yy_ch_buf
,b
->yy_buf_size
+ 2 ,yyscanner
);
2522 /* Can't grow it, we don't own it. */
2525 if ( ! b
->yy_ch_buf
)
2527 "fatal error - scanner input buffer overflow" );
2529 yyg
->yy_c_buf_p
= &b
->yy_ch_buf
[yy_c_buf_p_offset
];
2531 num_to_read
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
-
2536 if ( num_to_read
> YY_READ_BUF_SIZE
)
2537 num_to_read
= YY_READ_BUF_SIZE
;
2539 /* Read in more data. */
2540 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[number_to_move
]),
2541 yyg
->yy_n_chars
, num_to_read
);
2543 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2546 if ( yyg
->yy_n_chars
== 0 )
2548 if ( number_to_move
== YY_MORE_ADJ
)
2550 ret_val
= EOB_ACT_END_OF_FILE
;
2551 config_restart(yyin
,yyscanner
);
2556 ret_val
= EOB_ACT_LAST_MATCH
;
2557 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
=
2558 YY_BUFFER_EOF_PENDING
;
2563 ret_val
= EOB_ACT_CONTINUE_SCAN
;
2565 if ((yy_size_t
) (yyg
->yy_n_chars
+ number_to_move
) > YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
) {
2566 /* Extend the array by 50%, plus the number we really need. */
2567 yy_size_t new_size
= yyg
->yy_n_chars
+ number_to_move
+ (yyg
->yy_n_chars
>> 1);
2568 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
= (char *) config_realloc((void *) YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
,new_size
,yyscanner
);
2569 if ( ! YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
)
2570 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2573 yyg
->yy_n_chars
+= number_to_move
;
2574 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] = YY_END_OF_BUFFER_CHAR
;
2575 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] = YY_END_OF_BUFFER_CHAR
;
2577 yyg
->yytext_ptr
= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[0];
2582 /* yy_get_previous_state - get the state just before the EOB char was reached */
2585 /* %not-for-header */
2587 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
)
2592 register yy_state_type yy_current_state
;
2593 register char *yy_cp
;
2594 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2596 /* %% [15.0] code to get the start state into yy_current_state goes here */
2597 yy_current_state
= yyg
->yy_start
;
2598 yy_current_state
+= YY_AT_BOL();
2600 for ( yy_cp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
; yy_cp
< yyg
->yy_c_buf_p
; ++yy_cp
)
2602 /* %% [16.0] code to find the next state goes here */
2603 register YY_CHAR yy_c
= (*yy_cp
? yy_ec
[YY_SC_TO_UI(*yy_cp
)] : 1);
2604 if ( yy_accept
[yy_current_state
] )
2606 yyg
->yy_last_accepting_state
= yy_current_state
;
2607 yyg
->yy_last_accepting_cpos
= yy_cp
;
2609 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2611 yy_current_state
= (int) yy_def
[yy_current_state
];
2612 if ( yy_current_state
>= 811 )
2613 yy_c
= yy_meta
[(unsigned int) yy_c
];
2615 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2618 return yy_current_state
;
2621 /* yy_try_NUL_trans - try to make a transition on the NUL character
2624 * next_state = yy_try_NUL_trans( current_state );
2627 static yy_state_type
yy_try_NUL_trans (yy_state_type yy_current_state
, yyscan_t yyscanner
)
2632 register int yy_is_jam
;
2633 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
; /* This var may be unused depending upon options. */
2634 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
2635 register char *yy_cp
= yyg
->yy_c_buf_p
;
2637 register YY_CHAR yy_c
= 1;
2638 if ( yy_accept
[yy_current_state
] )
2640 yyg
->yy_last_accepting_state
= yy_current_state
;
2641 yyg
->yy_last_accepting_cpos
= yy_cp
;
2643 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2645 yy_current_state
= (int) yy_def
[yy_current_state
];
2646 if ( yy_current_state
>= 811 )
2647 yy_c
= yy_meta
[(unsigned int) yy_c
];
2649 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2650 yy_is_jam
= (yy_current_state
== 810);
2652 return yy_is_jam
? 0 : yy_current_state
;
2662 static int yyinput (yyscan_t yyscanner
)
2664 static int input (yyscan_t yyscanner
)
2672 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2674 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2676 if ( *yyg
->yy_c_buf_p
== YY_END_OF_BUFFER_CHAR
)
2678 /* yy_c_buf_p now points to the character we want to return.
2679 * If this occurs *before* the EOB characters, then it's a
2680 * valid NUL; if not, then we've hit the end of the buffer.
2682 if ( yyg
->yy_c_buf_p
< &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
2683 /* This was really a NUL. */
2684 *yyg
->yy_c_buf_p
= '\0';
2687 { /* need more input */
2688 yy_size_t offset
= yyg
->yy_c_buf_p
- yyg
->yytext_ptr
;
2691 switch ( yy_get_next_buffer( yyscanner
) )
2693 case EOB_ACT_LAST_MATCH
:
2694 /* This happens because yy_g_n_b()
2695 * sees that we've accumulated a
2696 * token and flags that we need to
2697 * try matching the token before
2698 * proceeding. But for input(),
2699 * there's no matching to consider.
2700 * So convert the EOB_ACT_LAST_MATCH
2701 * to EOB_ACT_END_OF_FILE.
2704 /* Reset buffer status. */
2705 config_restart(yyin
,yyscanner
);
2709 case EOB_ACT_END_OF_FILE
:
2711 if ( config_wrap(yyscanner
) )
2714 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
2717 return yyinput(yyscanner
);
2719 return input(yyscanner
);
2723 case EOB_ACT_CONTINUE_SCAN
:
2724 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ offset
;
2730 c
= *(unsigned char *) yyg
->yy_c_buf_p
; /* cast for 8-bit char's */
2731 *yyg
->yy_c_buf_p
= '\0'; /* preserve yytext */
2732 yyg
->yy_hold_char
= *++yyg
->yy_c_buf_p
;
2734 /* %% [19.0] update BOL and yylineno */
2735 YY_CURRENT_BUFFER_LVALUE
->yy_at_bol
= (c
== '\n');
2740 #endif /* ifndef YY_NO_INPUT */
2743 /** Immediately switch to a different input stream.
2744 * @param input_file A readable stream.
2745 * @param yyscanner The scanner object.
2746 * @note This function does not reset the start condition to @c INITIAL .
2749 void config_restart (FILE * input_file
, yyscan_t yyscanner
)
2754 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2756 if ( ! YY_CURRENT_BUFFER
){
2757 config_ensure_buffer_stack (yyscanner
);
2758 YY_CURRENT_BUFFER_LVALUE
=
2759 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
2762 config__init_buffer(YY_CURRENT_BUFFER
,input_file
,yyscanner
);
2763 config__load_buffer_state(yyscanner
);
2766 /** Switch to a different input buffer.
2767 * @param new_buffer The new input buffer.
2768 * @param yyscanner The scanner object.
2771 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
2776 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2778 /* TODO. We should be able to replace this entire function body
2780 * config_pop_buffer_state();
2781 * config_push_buffer_state(new_buffer);
2783 config_ensure_buffer_stack (yyscanner
);
2784 if ( YY_CURRENT_BUFFER
== new_buffer
)
2787 if ( YY_CURRENT_BUFFER
)
2789 /* Flush out information for old buffer. */
2790 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2791 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
2792 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2795 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
2796 config__load_buffer_state(yyscanner
);
2798 /* We don't actually know whether we did this switch during
2799 * EOF (config_wrap()) processing, but the only time this flag
2800 * is looked at is after config_wrap() is called, so it's safe
2801 * to go ahead and always set it.
2803 yyg
->yy_did_buffer_switch_on_eof
= 1;
2807 static void config__load_buffer_state (yyscan_t yyscanner
)
2812 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2813 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
2814 yyg
->yytext_ptr
= yyg
->yy_c_buf_p
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
;
2815 yyin
= YY_CURRENT_BUFFER_LVALUE
->yy_input_file
;
2816 yyg
->yy_hold_char
= *yyg
->yy_c_buf_p
;
2819 /** Allocate and initialize an input buffer state.
2820 * @param file A readable stream.
2821 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2822 * @param yyscanner The scanner object.
2823 * @return the allocated buffer state.
2826 YY_BUFFER_STATE
config__create_buffer (FILE * file
, int size
, yyscan_t yyscanner
)
2833 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
2835 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2837 b
->yy_buf_size
= size
;
2839 /* yy_ch_buf has to be 2 characters longer than the size given because
2840 * we need to put in 2 end-of-buffer characters.
2842 b
->yy_ch_buf
= (char *) config_alloc(b
->yy_buf_size
+ 2 ,yyscanner
);
2843 if ( ! b
->yy_ch_buf
)
2844 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2846 b
->yy_is_our_buffer
= 1;
2848 config__init_buffer(b
,file
,yyscanner
);
2853 /** Destroy the buffer.
2854 * @param b a buffer created with config__create_buffer()
2855 * @param yyscanner The scanner object.
2858 void config__delete_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2863 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2868 if ( b
== YY_CURRENT_BUFFER
) /* Not sure if we should pop here. */
2869 YY_CURRENT_BUFFER_LVALUE
= (YY_BUFFER_STATE
) 0;
2871 if ( b
->yy_is_our_buffer
)
2872 config_free((void *) b
->yy_ch_buf
,yyscanner
);
2874 config_free((void *) b
,yyscanner
);
2880 extern int isatty (int );
2881 #endif /* __cplusplus */
2888 /* Initializes or reinitializes a buffer.
2889 * This function is sometimes called more than once on the same buffer,
2890 * such as during a config_restart() or at EOF.
2893 static void config__init_buffer (YY_BUFFER_STATE b
, FILE * file
, yyscan_t yyscanner
)
2900 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2902 config__flush_buffer(b
,yyscanner
);
2904 b
->yy_input_file
= file
;
2905 b
->yy_fill_buffer
= 1;
2907 /* If b is the current buffer, then config__init_buffer was _probably_
2908 * called from config_restart() or through yy_get_next_buffer.
2909 * In that case, we don't want to reset the lineno or column.
2911 if (b
!= YY_CURRENT_BUFFER
){
2912 b
->yy_bs_lineno
= 1;
2913 b
->yy_bs_column
= 0;
2918 b
->yy_is_interactive
= file
? (isatty( fileno(file
) ) > 0) : 0;
2926 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2927 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2928 * @param yyscanner The scanner object.
2931 void config__flush_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2936 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2942 /* We always need two end-of-buffer characters. The first causes
2943 * a transition to the end-of-buffer state. The second causes
2944 * a jam in that state.
2946 b
->yy_ch_buf
[0] = YY_END_OF_BUFFER_CHAR
;
2947 b
->yy_ch_buf
[1] = YY_END_OF_BUFFER_CHAR
;
2949 b
->yy_buf_pos
= &b
->yy_ch_buf
[0];
2952 b
->yy_buffer_status
= YY_BUFFER_NEW
;
2954 if ( b
== YY_CURRENT_BUFFER
)
2955 config__load_buffer_state(yyscanner
);
2959 /** Pushes the new state onto the stack. The new state becomes
2960 * the current state. This function will allocate the stack
2962 * @param new_buffer The new state.
2963 * @param yyscanner The scanner object.
2966 void config_push_buffer_state (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
2971 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2972 if (new_buffer
== NULL
)
2975 config_ensure_buffer_stack(yyscanner
);
2977 /* This block is copied from config__switch_to_buffer. */
2978 if ( YY_CURRENT_BUFFER
)
2980 /* Flush out information for old buffer. */
2981 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2982 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
2983 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2986 /* Only push if top exists. Otherwise, replace top. */
2987 if (YY_CURRENT_BUFFER
)
2988 yyg
->yy_buffer_stack_top
++;
2989 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
2991 /* copied from config__switch_to_buffer. */
2992 config__load_buffer_state(yyscanner
);
2993 yyg
->yy_did_buffer_switch_on_eof
= 1;
2998 /** Removes and deletes the top of the stack, if present.
2999 * The next element becomes the new top.
3000 * @param yyscanner The scanner object.
3003 void config_pop_buffer_state (yyscan_t yyscanner
)
3008 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3009 if (!YY_CURRENT_BUFFER
)
3012 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
3013 YY_CURRENT_BUFFER_LVALUE
= NULL
;
3014 if (yyg
->yy_buffer_stack_top
> 0)
3015 --yyg
->yy_buffer_stack_top
;
3017 if (YY_CURRENT_BUFFER
) {
3018 config__load_buffer_state(yyscanner
);
3019 yyg
->yy_did_buffer_switch_on_eof
= 1;
3025 /* Allocates the stack if it does not exist.
3026 * Guarantees space for at least one push.
3029 static void config_ensure_buffer_stack (yyscan_t yyscanner
)
3034 yy_size_t num_to_alloc
;
3035 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3037 if (!yyg
->yy_buffer_stack
) {
3039 /* First allocation is just for 2 elements, since we don't know if this
3040 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3041 * immediate realloc on the next call.
3044 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_alloc
3045 (num_to_alloc
* sizeof(struct yy_buffer_state
*)
3047 if ( ! yyg
->yy_buffer_stack
)
3048 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
3050 memset(yyg
->yy_buffer_stack
, 0, num_to_alloc
* sizeof(struct yy_buffer_state
*));
3052 yyg
->yy_buffer_stack_max
= num_to_alloc
;
3053 yyg
->yy_buffer_stack_top
= 0;
3057 if (yyg
->yy_buffer_stack_top
>= (yyg
->yy_buffer_stack_max
) - 1){
3059 /* Increase the buffer to prepare for a possible push. */
3060 int grow_size
= 8 /* arbitrary grow size */;
3062 num_to_alloc
= yyg
->yy_buffer_stack_max
+ grow_size
;
3063 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_realloc
3064 (yyg
->yy_buffer_stack
,
3065 num_to_alloc
* sizeof(struct yy_buffer_state
*)
3067 if ( ! yyg
->yy_buffer_stack
)
3068 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
3070 /* zero only the new slots.*/
3071 memset(yyg
->yy_buffer_stack
+ yyg
->yy_buffer_stack_max
, 0, grow_size
* sizeof(struct yy_buffer_state
*));
3072 yyg
->yy_buffer_stack_max
= num_to_alloc
;
3078 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3079 * @param base the character buffer
3080 * @param size the size in bytes of the character buffer
3081 * @param yyscanner The scanner object.
3082 * @return the newly allocated buffer state object.
3084 YY_BUFFER_STATE
config__scan_buffer (char * base
, yy_size_t size
, yyscan_t yyscanner
)
3089 base
[size
-2] != YY_END_OF_BUFFER_CHAR
||
3090 base
[size
-1] != YY_END_OF_BUFFER_CHAR
)
3091 /* They forgot to leave room for the EOB's. */
3094 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
3096 YY_FATAL_ERROR( "out of dynamic memory in config__scan_buffer()" );
3098 b
->yy_buf_size
= size
- 2; /* "- 2" to take care of EOB's */
3099 b
->yy_buf_pos
= b
->yy_ch_buf
= base
;
3100 b
->yy_is_our_buffer
= 0;
3101 b
->yy_input_file
= 0;
3102 b
->yy_n_chars
= b
->yy_buf_size
;
3103 b
->yy_is_interactive
= 0;
3105 b
->yy_fill_buffer
= 0;
3106 b
->yy_buffer_status
= YY_BUFFER_NEW
;
3108 config__switch_to_buffer(b
,yyscanner
);
3115 /** Setup the input buffer state to scan a string. The next call to config_lex() will
3116 * scan from a @e copy of @a str.
3117 * @param yystr a NUL-terminated string to scan
3118 * @param yyscanner The scanner object.
3119 * @return the newly allocated buffer state object.
3120 * @note If you want to scan bytes that may contain NUL values, then use
3121 * config__scan_bytes() instead.
3123 YY_BUFFER_STATE
config__scan_string (yyconst
char * yystr
, yyscan_t yyscanner
)
3126 return config__scan_bytes(yystr
,strlen(yystr
) ,yyscanner
);
3131 /** Setup the input buffer state to scan the given bytes. The next call to config_lex() will
3132 * scan from a @e copy of @a bytes.
3133 * @param bytes the byte buffer to scan
3134 * @param len the number of bytes in the buffer pointed to by @a bytes.
3135 * @param yyscanner The scanner object.
3136 * @return the newly allocated buffer state object.
3138 YY_BUFFER_STATE
config__scan_bytes (yyconst
char * yybytes
, yy_size_t _yybytes_len
, yyscan_t yyscanner
)
3144 /* Get memory for full buffer, including space for trailing EOB's. */
3145 n
= _yybytes_len
+ 2;
3146 buf
= (char *) config_alloc(n
,yyscanner
);
3148 YY_FATAL_ERROR( "out of dynamic memory in config__scan_bytes()" );
3150 for ( i
= 0; i
< _yybytes_len
; ++i
)
3151 buf
[i
] = yybytes
[i
];
3153 buf
[_yybytes_len
] = buf
[_yybytes_len
+1] = YY_END_OF_BUFFER_CHAR
;
3155 b
= config__scan_buffer(buf
,n
,yyscanner
);
3157 YY_FATAL_ERROR( "bad buffer in config__scan_bytes()" );
3159 /* It's okay to grow etc. this buffer, and we should throw it
3160 * away when we're done.
3162 b
->yy_is_our_buffer
= 1;
3168 #ifndef YY_EXIT_FAILURE
3169 #define YY_EXIT_FAILURE 2
3173 static void yy_fatal_error (yyconst
char* msg
, yyscan_t yyscanner
)
3175 (void) fprintf( stderr
, "%s\n", msg
);
3176 exit( YY_EXIT_FAILURE
);
3182 /* Redefine yyless() so it works in section 3 code. */
3188 /* Undo effects of setting up yytext. */ \
3189 int yyless_macro_arg = (n); \
3190 YY_LESS_LINENO(yyless_macro_arg);\
3191 yytext[yyleng] = yyg->yy_hold_char; \
3192 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
3193 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
3194 *yyg->yy_c_buf_p = '\0'; \
3195 yyleng = yyless_macro_arg; \
3199 /* Accessor methods (get/set functions) to struct members. */
3204 /** Get the user-defined data for this scanner.
3205 * @param yyscanner The scanner object.
3207 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
)
3209 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3215 /** Get the current line number.
3216 * @param yyscanner The scanner object.
3218 int config_get_lineno (yyscan_t yyscanner
)
3220 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3222 if (! YY_CURRENT_BUFFER
)
3228 /** Get the current column number.
3229 * @param yyscanner The scanner object.
3231 int config_get_column (yyscan_t yyscanner
)
3233 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3235 if (! YY_CURRENT_BUFFER
)
3241 /** Get the input stream.
3242 * @param yyscanner The scanner object.
3244 FILE *config_get_in (yyscan_t yyscanner
)
3246 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3250 /** Get the output stream.
3251 * @param yyscanner The scanner object.
3253 FILE *config_get_out (yyscan_t yyscanner
)
3255 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3259 /** Get the length of the current token.
3260 * @param yyscanner The scanner object.
3262 yy_size_t
config_get_leng (yyscan_t yyscanner
)
3264 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3268 /** Get the current token.
3269 * @param yyscanner The scanner object.
3272 char *config_get_text (yyscan_t yyscanner
)
3274 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3280 /** Set the user-defined data. This data is never touched by the scanner.
3281 * @param user_defined The data to be associated with this scanner.
3282 * @param yyscanner The scanner object.
3284 void config_set_extra (YY_EXTRA_TYPE user_defined
, yyscan_t yyscanner
)
3286 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3287 yyextra
= user_defined
;
3292 /** Set the current line number.
3293 * @param line_number
3294 * @param yyscanner The scanner object.
3296 void config_set_lineno (int line_number
, yyscan_t yyscanner
)
3298 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3300 /* lineno is only valid if an input buffer exists. */
3301 if (! YY_CURRENT_BUFFER
)
3302 yy_fatal_error( "config_set_lineno called with no buffer" , yyscanner
);
3304 yylineno
= line_number
;
3307 /** Set the current column.
3308 * @param line_number
3309 * @param yyscanner The scanner object.
3311 void config_set_column (int column_no
, yyscan_t yyscanner
)
3313 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3315 /* column is only valid if an input buffer exists. */
3316 if (! YY_CURRENT_BUFFER
)
3317 yy_fatal_error( "config_set_column called with no buffer" , yyscanner
);
3319 yycolumn
= column_no
;
3322 /** Set the input stream. This does not discard the current
3324 * @param in_str A readable stream.
3325 * @param yyscanner The scanner object.
3326 * @see config__switch_to_buffer
3328 void config_set_in (FILE * in_str
, yyscan_t yyscanner
)
3330 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3334 void config_set_out (FILE * out_str
, yyscan_t yyscanner
)
3336 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3340 int config_get_debug (yyscan_t yyscanner
)
3342 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3343 return yy_flex_debug
;
3346 void config_set_debug (int bdebug
, yyscan_t yyscanner
)
3348 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3349 yy_flex_debug
= bdebug
;
3355 /* Accessor methods for yylval and yylloc */
3357 /* %if-bison-bridge */
3359 YYSTYPE
* config_get_lval (yyscan_t yyscanner
)
3361 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3365 void config_set_lval (YYSTYPE
* yylval_param
, yyscan_t yyscanner
)
3367 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3368 yylval
= yylval_param
;
3373 /* User-visible API */
3375 /* config_lex_init is special because it creates the scanner itself, so it is
3376 * the ONLY reentrant function that doesn't take the scanner as the last argument.
3377 * That's why we explicitly handle the declaration, instead of using our macros.
3380 int config_lex_init(yyscan_t
* ptr_yy_globals
)
3383 if (ptr_yy_globals
== NULL
){
3388 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), NULL
);
3390 if (*ptr_yy_globals
== NULL
){
3395 /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
3396 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
3398 return yy_init_globals ( *ptr_yy_globals
);
3401 /* config_lex_init_extra has the same functionality as config_lex_init, but follows the
3402 * convention of taking the scanner as the last argument. Note however, that
3403 * this is a *pointer* to a scanner, as it will be allocated by this call (and
3404 * is the reason, too, why this function also must handle its own declaration).
3405 * The user defined value in the first argument will be available to config_alloc in
3406 * the yyextra field.
3409 int config_lex_init_extra(YY_EXTRA_TYPE yy_user_defined
,yyscan_t
* ptr_yy_globals
)
3412 struct yyguts_t dummy_yyguts
;
3414 config_set_extra (yy_user_defined
, &dummy_yyguts
);
3416 if (ptr_yy_globals
== NULL
){
3421 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), &dummy_yyguts
);
3423 if (*ptr_yy_globals
== NULL
){
3428 /* By setting to 0xAA, we expose bugs in
3429 yy_init_globals. Leave at 0x00 for releases. */
3430 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
3432 config_set_extra (yy_user_defined
, *ptr_yy_globals
);
3434 return yy_init_globals ( *ptr_yy_globals
);
3437 /* %endif if-c-only */
3440 static int yy_init_globals (yyscan_t yyscanner
)
3442 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3443 /* Initialization is the same as for the non-reentrant scanner.
3444 * This function is called from config_lex_destroy(), so don't allocate here.
3447 yyg
->yy_buffer_stack
= 0;
3448 yyg
->yy_buffer_stack_top
= 0;
3449 yyg
->yy_buffer_stack_max
= 0;
3450 yyg
->yy_c_buf_p
= (char *) 0;
3454 yyg
->yy_start_stack_ptr
= 0;
3455 yyg
->yy_start_stack_depth
= 0;
3456 yyg
->yy_start_stack
= NULL
;
3458 /* Defined in main.c */
3467 /* For future reference: Set errno on error, since we are called by
3474 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
3475 /* config_lex_destroy is for both reentrant and non-reentrant scanners. */
3476 int config_lex_destroy (yyscan_t yyscanner
)
3478 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3480 /* Pop the buffer stack, destroying each element. */
3481 while(YY_CURRENT_BUFFER
){
3482 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
3483 YY_CURRENT_BUFFER_LVALUE
= NULL
;
3484 config_pop_buffer_state(yyscanner
);
3487 /* Destroy the stack itself. */
3488 config_free(yyg
->yy_buffer_stack
,yyscanner
);
3489 yyg
->yy_buffer_stack
= NULL
;
3491 /* Destroy the start condition stack. */
3492 config_free(yyg
->yy_start_stack
,yyscanner
);
3493 yyg
->yy_start_stack
= NULL
;
3495 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3496 * config_lex() is called, initialization will occur. */
3497 yy_init_globals( yyscanner
);
3500 /* Destroy the main struct (reentrant only). */
3501 config_free ( yyscanner
, yyscanner
);
3509 * Internal utility routines.
3513 static void yy_flex_strncpy (char* s1
, yyconst
char * s2
, int n
, yyscan_t yyscanner
)
3516 for ( i
= 0; i
< n
; ++i
)
3521 #ifdef YY_NEED_STRLEN
3522 static int yy_flex_strlen (yyconst
char * s
, yyscan_t yyscanner
)
3525 for ( n
= 0; s
[n
]; ++n
)
3532 void *config_alloc (yy_size_t size
, yyscan_t yyscanner
)
3534 return (void *) malloc( size
);
3537 void *config_realloc (void * ptr
, yy_size_t size
, yyscan_t yyscanner
)
3539 /* The cast to (char *) in the following accommodates both
3540 * implementations that use char* generic pointers, and those
3541 * that use void* generic pointers. It works with the latter
3542 * because both ANSI C and C++ allow castless assignment from
3543 * any pointer type to void*, and deal with argument conversions
3544 * as though doing an assignment.
3546 return (void *) realloc( (char *) ptr
, size
);
3549 void config_free (void * ptr
, yyscan_t yyscanner
)
3551 free( (char *) ptr
); /* see config_realloc() for (char *) cast */
3554 /* %if-tables-serialization definitions */
3555 /* %define-yytables The name for this specific scanner's tables. */
3556 #define YYTABLES_NAME "yytables"
3559 /* %ok-for-header */
3561 #line 224 "libmemcached/options/scanner.l"
3565 void Context::init_scanner()
3567 config_lex_init(&scanner
);
3568 config_set_extra(this,scanner
);
3571 void Context::destroy_scanner()
3573 config_lex_destroy(scanner
);