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"
6 #pragma GCC diagnostic ignored "-fpermissive"
8 #include <libmemcached/options/context.h>
9 #include <libmemcached/options/parser.h>
10 #include <libmemcached/options/string.h>
11 #include <libmemcached/options/symbol.h>
13 #define YY_EXTRA_TYPE Context*
18 #line 19 "libmemcached/options/scanner.cc"
20 #define YY_INT_ALIGNED short int
22 /* A lexical scanner generated by flex */
27 /* %if-not-reentrant */
33 #define YY_FLEX_MAJOR_VERSION 2
34 #define YY_FLEX_MINOR_VERSION 5
35 #define YY_FLEX_SUBMINOR_VERSION 35
36 #if YY_FLEX_SUBMINOR_VERSION > 0
51 /* First, we deal with platform-specific or compiler-specific issues. */
53 /* begin standard C headers. */
61 /* %if-tables-serialization */
63 /* end standard C headers. */
66 /* flex integer type definitions */
71 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
73 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
75 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
76 * if you want the limit (max/min) macros for int types.
78 #ifndef __STDC_LIMIT_MACROS
79 #define __STDC_LIMIT_MACROS 1
83 typedef int8_t flex_int8_t
;
84 typedef uint8_t flex_uint8_t
;
85 typedef int16_t flex_int16_t
;
86 typedef uint16_t flex_uint16_t
;
87 typedef int32_t flex_int32_t
;
88 typedef uint32_t flex_uint32_t
;
90 typedef signed char flex_int8_t
;
91 typedef short int flex_int16_t
;
92 typedef int flex_int32_t
;
93 typedef unsigned char flex_uint8_t
;
94 typedef unsigned short int flex_uint16_t
;
95 typedef unsigned int flex_uint32_t
;
98 /* Limits of integral types. */
100 #define INT8_MIN (-128)
103 #define INT16_MIN (-32767-1)
106 #define INT32_MIN (-2147483647-1)
109 #define INT8_MAX (127)
112 #define INT16_MAX (32767)
115 #define INT32_MAX (2147483647)
118 #define UINT8_MAX (255U)
121 #define UINT16_MAX (65535U)
124 #define UINT32_MAX (4294967295U)
127 #endif /* ! FLEXINT_H */
136 /* The "const" storage-class-modifier is valid. */
139 #else /* ! __cplusplus */
141 /* C99 requires __STDC__ to be defined as 1. */
142 #if defined (__STDC__)
146 #endif /* defined (__STDC__) */
147 #endif /* ! __cplusplus */
150 #define yyconst const
155 /* %not-for-header */
157 /* Returned upon end-of-file. */
161 /* %not-for-header */
163 /* Promotes a possibly negative, possibly signed char to an unsigned
164 * integer for use as an array index. If the signed char is negative,
165 * we want to instead treat it as an 8-bit unsigned char, hence the
168 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
173 /* An opaque pointer. */
174 #ifndef YY_TYPEDEF_YY_SCANNER_T
175 #define YY_TYPEDEF_YY_SCANNER_T
176 typedef void* yyscan_t
;
179 /* For convenience, these vars (plus the bison vars far below)
180 are macros in the reentrant scanner. */
181 #define yyin yyg->yyin_r
182 #define yyout yyg->yyout_r
183 #define yyextra yyg->yyextra_r
184 #define yyleng yyg->yyleng_r
185 #define yytext yyg->yytext_r
186 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
187 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
188 #define yy_flex_debug yyg->yy_flex_debug_r
192 /* %if-not-reentrant */
195 /* Enter a start condition. This macro really ought to take a parameter,
196 * but we do it the disgusting crufty way forced on us by the ()-less
197 * definition of BEGIN.
199 #define BEGIN yyg->yy_start = 1 + 2 *
201 /* Translate the current start state into a value that can be later handed
202 * to BEGIN to return to the state. The YYSTATE alias is for lex
205 #define YY_START ((yyg->yy_start - 1) / 2)
206 #define YYSTATE YY_START
208 /* Action number for EOF rule of a given start state. */
209 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
211 /* Special action meaning "start processing a new file". */
212 #define YY_NEW_FILE config_restart(yyin ,yyscanner )
214 #define YY_END_OF_BUFFER_CHAR 0
216 /* Size of default input buffer. */
218 #define YY_BUF_SIZE 16384
221 /* The state buf must be large enough to hold one state per character in the main buffer.
223 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
225 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
226 #define YY_TYPEDEF_YY_BUFFER_STATE
227 typedef struct yy_buffer_state
*YY_BUFFER_STATE
;
230 /* %if-not-reentrant */
234 /* %if-not-reentrant */
238 #define EOB_ACT_CONTINUE_SCAN 0
239 #define EOB_ACT_END_OF_FILE 1
240 #define EOB_ACT_LAST_MATCH 2
242 #define YY_LESS_LINENO(n)
244 /* Return all but the first "n" matched characters back to the input stream. */
248 /* Undo effects of setting up yytext. */ \
249 int yyless_macro_arg = (n); \
250 YY_LESS_LINENO(yyless_macro_arg);\
251 *yy_cp = yyg->yy_hold_char; \
252 YY_RESTORE_YY_MORE_OFFSET \
253 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
254 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
258 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
260 #ifndef YY_TYPEDEF_YY_SIZE_T
261 #define YY_TYPEDEF_YY_SIZE_T
262 typedef size_t yy_size_t
;
265 #ifndef YY_STRUCT_YY_BUFFER_STATE
266 #define YY_STRUCT_YY_BUFFER_STATE
267 struct yy_buffer_state
276 char *yy_ch_buf
; /* input buffer */
277 char *yy_buf_pos
; /* current position in input buffer */
279 /* Size of input buffer in bytes, not including room for EOB
282 yy_size_t yy_buf_size
;
284 /* Number of characters read into yy_ch_buf, not including EOB
289 /* Whether we "own" the buffer - i.e., we know we created it,
290 * and can realloc() it to grow it, and should free() it to
293 int yy_is_our_buffer
;
295 /* Whether this is an "interactive" input source; if so, and
296 * if we're using stdio for input, then we want to use getc()
297 * instead of fread(), to make sure we stop fetching input after
300 int yy_is_interactive
;
302 /* Whether we're considered to be at the beginning of a line.
303 * If so, '^' rules will be active on the next match, otherwise
308 int yy_bs_lineno
; /**< The line count. */
309 int yy_bs_column
; /**< The column count. */
311 /* Whether to try to fill the input buffer when we reach the
316 int yy_buffer_status
;
318 #define YY_BUFFER_NEW 0
319 #define YY_BUFFER_NORMAL 1
320 /* When an EOF's been seen but there's still some text to process
321 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
322 * shouldn't try reading from the input source any more. We might
323 * still have a bunch of tokens to match, though, because of
324 * possible backing-up.
326 * When we actually see the EOF, we change the status to "new"
327 * (via config_restart()), so that the user can continue scanning by
328 * just pointing yyin at a new input file.
330 #define YY_BUFFER_EOF_PENDING 2
333 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
335 /* %if-c-only Standard (non-C++) definition */
336 /* %not-for-header */
338 /* %if-not-reentrant */
344 /* We provide macros for accessing buffer states in case in the
345 * future we want to put the buffer states in a more general
348 * Returns the top of the stack, or NULL.
350 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
351 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
354 /* Same as previous macro, but useful when we know that the buffer stack is not
355 * NULL or when we need an lvalue. For internal use only.
357 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
359 /* %if-c-only Standard (non-C++) definition */
361 /* %if-not-reentrant */
362 /* %not-for-header */
368 void config_restart (FILE *input_file
,yyscan_t yyscanner
);
369 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
370 YY_BUFFER_STATE
config__create_buffer (FILE *file
,int size
,yyscan_t yyscanner
);
371 void config__delete_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
372 void config__flush_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
373 void config_push_buffer_state (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
374 void config_pop_buffer_state (yyscan_t yyscanner
);
376 static void config_ensure_buffer_stack (yyscan_t yyscanner
);
377 static void config__load_buffer_state (yyscan_t yyscanner
);
378 static void config__init_buffer (YY_BUFFER_STATE b
,FILE *file
,yyscan_t yyscanner
);
380 #define YY_FLUSH_BUFFER config__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
382 YY_BUFFER_STATE
config__scan_buffer (char *base
,yy_size_t size
,yyscan_t yyscanner
);
383 YY_BUFFER_STATE
config__scan_string (yyconst
char *yy_str
,yyscan_t yyscanner
);
384 YY_BUFFER_STATE
config__scan_bytes (yyconst
char *bytes
,int len
,yyscan_t yyscanner
);
388 void *config_alloc (yy_size_t
,yyscan_t yyscanner
);
389 void *config_realloc (void *,yy_size_t
,yyscan_t yyscanner
);
390 void config_free (void * ,yyscan_t yyscanner
);
392 #define yy_new_buffer config__create_buffer
394 #define yy_set_interactive(is_interactive) \
396 if ( ! YY_CURRENT_BUFFER ){ \
397 config_ensure_buffer_stack (yyscanner); \
398 YY_CURRENT_BUFFER_LVALUE = \
399 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
401 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
404 #define yy_set_bol(at_bol) \
406 if ( ! YY_CURRENT_BUFFER ){\
407 config_ensure_buffer_stack (yyscanner); \
408 YY_CURRENT_BUFFER_LVALUE = \
409 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
411 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
414 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
416 /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
417 /* Begin user sect3 */
419 #define config_wrap(n) 1
420 #define YY_SKIP_YYWRAP
424 typedef unsigned char YY_CHAR
;
426 typedef int yy_state_type
;
428 #define yytext_ptr yytext_r
430 /* %if-c-only Standard (non-C++) definition */
432 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
);
433 static yy_state_type
yy_try_NUL_trans (yy_state_type current_state
,yyscan_t yyscanner
);
434 static int yy_get_next_buffer (yyscan_t yyscanner
);
435 static void yy_fatal_error (yyconst
char msg
[] ,yyscan_t yyscanner
);
439 /* Done after the current pattern has been matched and before the
440 * corresponding action - sets up yytext.
442 #define YY_DO_BEFORE_ACTION \
443 yyg->yytext_ptr = yy_bp; \
444 /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
445 yyleng = (size_t) (yy_cp - yy_bp); \
446 yyg->yy_hold_char = *yy_cp; \
448 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
449 yyg->yy_c_buf_p = yy_cp;
451 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
452 #define YY_NUM_RULES 100
453 #define YY_END_OF_BUFFER 101
454 /* This struct is not used in this scanner,
455 but its presence is necessary. */
458 flex_int32_t yy_verify
;
461 static yyconst flex_int16_t yy_accept
[823] =
463 0, 0, 101, 99, 3, 3, 1, 99, 99, 2,
464 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
465 97, 97, 99, 0, 98, 80, 0, 2, 97, 0,
466 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
467 97, 97, 97, 97, 97, 97, 97, 97, 0, 4,
468 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
469 80, 80, 80, 80, 80, 0, 0, 0, 2, 93,
470 0, 97, 85, 97, 76, 97, 97, 97, 97, 97,
471 97, 84, 97, 97, 97, 97, 97, 97, 80, 80,
472 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
474 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
475 80, 94, 94, 0, 0, 0, 2, 97, 97, 97,
476 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
477 78, 80, 80, 80, 80, 80, 80, 80, 80, 0,
478 0, 80, 80, 80, 80, 80, 80, 80, 80, 80,
479 80, 80, 80, 80, 80, 80, 80, 0, 0, 97,
480 74, 77, 79, 97, 0, 90, 97, 97, 97, 97,
481 97, 73, 97, 80, 80, 80, 80, 80, 80, 21,
482 80, 80, 0, 0, 0, 0, 0, 0, 80, 80,
483 80, 80, 80, 80, 0, 0, 80, 80, 0, 0,
485 80, 80, 80, 0, 0, 0, 80, 0, 80, 0,
486 0, 97, 0, 0, 0, 97, 97, 82, 91, 83,
487 97, 0, 0, 80, 80, 80, 80, 80, 80, 0,
488 23, 0, 0, 0, 0, 0, 0, 0, 80, 80,
489 80, 0, 0, 80, 80, 0, 0, 80, 80, 0,
490 0, 80, 0, 0, 80, 0, 0, 0, 0, 0,
491 0, 0, 0, 80, 96, 0, 97, 0, 0, 88,
492 86, 72, 92, 75, 0, 0, 80, 80, 0, 0,
493 80, 80, 80, 0, 0, 0, 0, 0, 0, 0,
494 0, 32, 80, 80, 0, 0, 80, 80, 0, 0,
496 0, 0, 80, 0, 0, 80, 0, 0, 80, 0,
497 0, 0, 0, 0, 0, 0, 0, 80, 96, 95,
498 97, 89, 87, 0, 0, 0, 0, 0, 0, 0,
499 0, 80, 80, 80, 0, 0, 0, 0, 0, 0,
500 0, 0, 0, 0, 37, 0, 0, 0, 0, 0,
501 0, 80, 0, 0, 0, 0, 0, 5, 80, 0,
502 0, 0, 0, 0, 0, 0, 80, 0, 0, 0,
503 0, 69, 0, 0, 68, 0, 0, 96, 97, 0,
504 0, 0, 0, 0, 0, 0, 0, 80, 0, 0,
505 80, 0, 0, 0, 0, 0, 0, 0, 0, 0,
507 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,
508 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
510 0, 0, 0, 0, 0, 81, 0, 0, 0, 0,
511 0, 0, 0, 0, 80, 0, 0, 80, 0, 0,
512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
513 0, 0, 0, 0, 0, 0, 80, 0, 0, 0,
514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
515 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
516 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
518 0, 0, 0, 0, 0, 80, 0, 0, 0, 0,
519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
521 0, 0, 0, 0, 0, 0, 0, 0, 57, 56,
522 0, 0, 0, 0, 0, 0, 0, 0, 8, 7,
523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
524 0, 0, 80, 0, 0, 0, 0, 0, 0, 0,
525 0, 0, 0, 0, 0, 0, 0, 0, 0, 70,
526 71, 0, 0, 0, 0, 0, 0, 0, 0, 0,
527 0, 0, 0, 0, 0, 59, 58, 0, 0, 61,
529 0, 0, 60, 0, 0, 0, 0, 0, 0, 0,
530 0, 0, 0, 0, 0, 80, 0, 0, 0, 0,
531 0, 0, 0, 0, 34, 0, 33, 0, 0, 0,
532 0, 0, 0, 0, 45, 44, 0, 0, 0, 0,
533 51, 50, 0, 0, 0, 0, 0, 65, 0, 64,
534 0, 0, 0, 0, 0, 0, 16, 15, 0, 0,
535 0, 0, 22, 0, 0, 0, 0, 0, 0, 0,
536 0, 0, 0, 0, 0, 41, 40, 0, 0, 0,
537 0, 0, 0, 0, 0, 0, 0, 63, 62, 0,
538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
541 0, 0, 0, 47, 46, 0, 0, 0, 0, 0,
542 0, 0, 0, 12, 11, 14, 13, 18, 17, 0,
543 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
544 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
545 0, 10, 9, 20, 19, 0, 0, 0, 29, 0,
546 0, 28, 0, 0, 0, 0, 0, 0, 0, 0,
547 0, 0, 0, 0, 0, 0, 31, 0, 30, 0,
548 0, 0, 0, 0, 0, 53, 55, 52, 54, 0,
549 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
551 0, 27, 26, 39, 38, 0, 0, 0, 0, 25,
552 24, 0, 0, 0, 0, 0, 0, 49, 48, 43,
556 static yyconst flex_int32_t yy_ec
[256] =
558 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
559 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
560 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
561 1, 4, 1, 5, 6, 1, 1, 1, 1, 1,
562 1, 1, 1, 7, 8, 9, 1, 10, 11, 12,
563 13, 14, 15, 16, 10, 10, 10, 17, 1, 1,
564 18, 1, 1, 1, 19, 20, 21, 22, 23, 24,
565 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
566 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
567 1, 1, 1, 1, 45, 1, 46, 47, 48, 49,
569 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
570 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
571 70, 71, 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,
576 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,
580 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
581 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
582 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
583 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
584 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
588 static yyconst flex_int32_t yy_meta
[72] =
590 1, 1, 2, 1, 1, 1, 1, 1, 3, 3,
591 3, 3, 3, 3, 3, 3, 1, 1, 3, 3,
592 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
593 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
594 3, 3, 3, 3, 1, 3, 3, 3, 3, 3,
595 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
596 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
600 static yyconst flex_int16_t yy_base
[829] =
602 0, 977, 969, 2211, 2211, 2211, 2211, 961, 922, 63,
603 71, 79, 73, 65, 81, 66, 72, 114, 112, 130,
604 123, 119, 917, 905, 904, 184, 247, 255, 121, 263,
605 129, 263, 264, 269, 265, 271, 273, 275, 320, 322,
606 327, 331, 332, 333, 340, 371, 380, 381, 901, 2211,
607 429, 77, 379, 382, 131, 141, 169, 260, 345, 258,
608 441, 447, 272, 276, 329, 489, 505, 513, 522, 2211,
609 530, 530, 421, 532, 536, 537, 541, 570, 585, 590,
610 595, 376, 605, 596, 640, 644, 646, 652, 324, 343,
611 386, 398, 516, 388, 389, 414, 517, 520, 526, 529,
613 538, 530, 524, 571, 574, 593, 645, 582, 585, 602,
614 624, 707, 715, 724, 732, 740, 749, 749, 750, 751,
615 755, 761, 799, 757, 809, 810, 805, 814, 820, 843,
616 858, 631, 651, 648, 648, 749, 649, 645, 658, 858,
617 861, 752, 754, 772, 771, 806, 812, 463, 819, 844,
618 464, 857, 850, 861, 465, 888, 871, 925, 933, 890,
619 895, 935, 939, 940, 94, 944, 945, 957, 946, 979,
620 993, 994, 1001, 466, 866, 909, 937, 937, 947, 0,
621 950, 1013, 958, 991, 982, 979, 1000, 988, 1001, 999,
622 1012, 572, 1009, 1005, 1002, 1005, 1001, 1022, 1009, 1010,
624 1032, 856, 1033, 1044, 1048, 1029, 1061, 1039, 1057, 1074,
625 1100, 1084, 105, 888, 885, 1101, 1102, 1109, 1110, 1119,
626 1123, 1071, 1073, 1055, 1066, 1083, 1105, 1110, 1114, 1107,
627 2211, 1109, 1115, 1111, 1138, 1129, 1128, 1149, 1157, 1148,
628 1148, 1147, 1150, 1147, 1160, 1165, 1166, 1187, 1160, 1170,
629 1172, 1162, 1176, 1178, 1170, 1184, 1175, 1186, 1177, 1191,
630 1192, 1195, 1199, 1179, 1241, 1250, 1250, 885, 840, 2211,
631 2211, 1251, 1252, 1257, 1215, 1217, 1230, 1231, 1241, 1247,
632 1239, 1241, 1260, 1254, 1255, 1266, 843, 841, 1268, 803,
633 794, 1284, 1251, 1287, 1269, 1270, 1291, 1274, 1272, 1288,
635 1284, 1287, 1319, 1295, 1300, 1294, 1300, 1301, 1297, 1315,
636 1318, 1318, 1320, 1309, 1325, 1326, 1313, 1340, 1377, 2211,
637 1346, 2211, 2211, 1327, 1331, 1323, 1339, 1339, 1340, 1347,
638 1362, 1360, 1389, 1359, 1361, 1363, 1367, 1374, 1369, 1374,
639 1378, 1372, 1388, 1389, 0, 1383, 1384, 1387, 1388, 1391,
640 1392, 1380, 1404, 1409, 1406, 1409, 1425, 2211, 815, 1426,
641 1429, 1430, 1425, 1428, 1418, 1421, 1458, 1433, 1445, 1435,
642 1447, 2211, 1433, 1434, 2211, 1444, 1445, 1495, 1485, 1465,
643 1466, 1454, 1457, 1492, 1493, 1486, 1489, 1501, 1487, 1488,
644 1489, 1502, 1503, 821, 1494, 1512, 754, 1496, 1514, 1515,
646 1512, 1517, 1514, 1514, 1515, 1517, 1518, 1521, 1524, 1546,
647 1537, 1539, 1542, 1544, 1557, 2211, 1558, 1545, 1546, 1557,
648 1558, 1559, 1560, 1546, 1547, 1565, 1566, 1571, 1558, 1574,
649 1559, 1572, 1573, 1571, 1572, 1606, 1586, 1588, 1594, 1596,
650 1595, 1596, 1603, 1604, 1626, 1608, 1609, 1610, 787, 744,
651 1597, 1617, 1603, 1602, 1622, 1608, 1610, 1621, 1612, 1623,
652 771, 725, 1619, 1622, 1618, 1635, 1636, 1641, 1644, 1661,
653 1662, 1659, 1660, 1650, 1651, 1670, 1660, 1672, 1662, 1658,
654 1659, 1678, 1679, 1669, 1678, 1682, 1672, 1681, 1685, 2211,
655 2211, 1663, 1665, 724, 669, 1671, 1677, 1693, 1695, 1698,
657 1699, 1715, 1716, 1710, 1712, 1711, 1711, 1712, 1728, 1724,
658 1726, 1731, 1727, 1729, 1727, 1729, 1729, 1731, 1721, 1722,
659 1721, 1723, 680, 678, 1727, 1733, 1748, 1750, 1758, 1759,
660 1763, 1764, 1757, 1759, 1758, 1777, 1760, 1779, 2211, 2211,
661 1765, 1766, 1777, 1775, 1763, 1780, 1778, 1766, 2211, 2211,
662 1784, 1785, 1779, 1781, 1793, 1794, 1789, 1806, 1815, 1818,
663 1823, 1824, 1816, 1813, 1815, 1814, 1830, 1818, 1817, 1833,
664 1821, 677, 1832, 674, 1833, 1837, 1838, 1824, 1825, 2211,
665 2211, 1841, 1842, 672, 631, 1827, 1829, 1831, 1832, 622,
666 621, 626, 606, 566, 540, 2211, 2211, 1837, 1871, 2211,
668 1856, 1876, 2211, 1867, 1868, 1881, 1882, 1868, 1869, 1870,
669 1871, 1879, 1880, 1878, 1879, 558, 1890, 1891, 1892, 1878,
670 1886, 1895, 1881, 1889, 2211, 1884, 2211, 1886, 1891, 1897,
671 542, 533, 1914, 1916, 2211, 2211, 1915, 1916, 1919, 1920,
672 2211, 2211, 1920, 1922, 1923, 1924, 1939, 2211, 1940, 2211,
673 1927, 1928, 1933, 1934, 1930, 1931, 2211, 2211, 1947, 1948,
674 1933, 1934, 2211, 1950, 1952, 1942, 1958, 1966, 1966, 1983,
675 1988, 1985, 1986, 1980, 1981, 2211, 2211, 1983, 1984, 532,
676 494, 1992, 1993, 1990, 1991, 1992, 1993, 2211, 2211, 1983,
677 1984, 1993, 1994, 1988, 1989, 414, 412, 1989, 1990, 2003,
679 2005, 2002, 2013, 2020, 2027, 2035, 2026, 2041, 2042, 2038,
680 2040, 2041, 2042, 2211, 2211, 421, 382, 2026, 2027, 2028,
681 2029, 2037, 2038, 2211, 2211, 2211, 2211, 2211, 2211, 406,
682 405, 2034, 2035, 2059, 403, 2050, 2061, 359, 2052, 2211,
683 2211, 2061, 2063, 2065, 2066, 2063, 2080, 2089, 2092, 2093,
684 2094, 2211, 2211, 2211, 2211, 326, 316, 2082, 2211, 333,
685 2083, 2211, 327, 2102, 2103, 2104, 2105, 2098, 2099, 323,
686 301, 299, 266, 2098, 2099, 2100, 2211, 2101, 2211, 2094,
687 2095, 193, 146, 2102, 2103, 2211, 2211, 2211, 2211, 2112,
688 2113, 170, 153, 152, 151, 2102, 2104, 2114, 2120, 2121,
690 2123, 2211, 2211, 2211, 2211, 2146, 2147, 2133, 2134, 2211,
691 2211, 2154, 2156, 150, 149, 2154, 2155, 2211, 2211, 2211,
692 2211, 2211, 2204, 119, 2207, 117, 116, 108
695 static yyconst flex_int16_t yy_def
[829] =
697 822, 1, 822, 822, 822, 822, 822, 823, 822, 824,
698 824, 824, 12, 12, 12, 12, 12, 12, 12, 12,
699 12, 12, 825, 823, 823, 822, 826, 824, 12, 826,
700 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
701 12, 12, 12, 12, 12, 12, 12, 12, 825, 822,
702 26, 51, 51, 51, 51, 51, 51, 51, 51, 51,
703 51, 51, 51, 51, 51, 827, 828, 827, 824, 822,
704 828, 12, 12, 12, 12, 12, 12, 12, 12, 12,
705 12, 12, 12, 12, 12, 12, 12, 12, 51, 51,
706 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
708 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
709 51, 828, 827, 828, 828, 828, 824, 12, 12, 12,
710 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
711 12, 51, 51, 51, 51, 51, 51, 51, 51, 822,
712 822, 51, 51, 51, 51, 51, 51, 51, 51, 51,
713 51, 51, 51, 51, 51, 51, 51, 828, 828, 12,
714 12, 12, 12, 12, 822, 12, 12, 12, 12, 12,
715 12, 12, 12, 51, 51, 51, 51, 51, 51, 51,
716 51, 51, 822, 822, 822, 822, 822, 822, 51, 51,
717 51, 51, 51, 51, 822, 822, 51, 51, 822, 822,
719 51, 51, 51, 822, 822, 822, 51, 822, 51, 828,
720 828, 12, 822, 822, 822, 12, 12, 12, 12, 12,
721 12, 822, 822, 51, 51, 51, 51, 51, 51, 822,
722 822, 822, 822, 822, 822, 822, 822, 822, 51, 51,
723 51, 822, 822, 51, 51, 822, 822, 51, 51, 822,
724 822, 51, 822, 822, 51, 822, 822, 822, 822, 822,
725 822, 822, 822, 51, 828, 828, 12, 822, 822, 822,
726 822, 12, 12, 12, 822, 822, 51, 51, 822, 822,
727 51, 51, 51, 822, 822, 822, 822, 822, 822, 822,
728 822, 51, 51, 51, 822, 822, 51, 51, 822, 822,
730 822, 822, 51, 822, 822, 51, 822, 822, 51, 822,
731 822, 822, 822, 822, 822, 822, 822, 51, 828, 822,
732 12, 822, 822, 822, 822, 822, 822, 822, 822, 822,
733 822, 51, 51, 51, 822, 822, 822, 822, 822, 822,
734 822, 822, 822, 822, 51, 822, 822, 822, 822, 822,
735 822, 51, 822, 822, 822, 822, 822, 822, 51, 822,
736 822, 822, 822, 822, 822, 822, 51, 822, 822, 822,
737 822, 822, 822, 822, 822, 822, 822, 828, 12, 822,
738 822, 822, 822, 822, 822, 822, 822, 51, 822, 822,
739 51, 822, 822, 822, 822, 822, 822, 822, 822, 822,
741 822, 822, 822, 822, 822, 822, 822, 822, 822, 51,
742 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
743 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
744 822, 822, 822, 822, 822, 12, 822, 822, 822, 822,
745 822, 822, 822, 822, 51, 822, 822, 51, 822, 822,
746 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
747 822, 822, 822, 822, 822, 822, 51, 822, 822, 822,
748 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
749 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
750 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
752 822, 822, 822, 822, 822, 51, 822, 822, 822, 822,
753 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
754 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
755 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
756 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
757 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
758 822, 822, 51, 822, 822, 822, 822, 822, 822, 822,
759 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
760 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
761 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
763 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
764 822, 822, 822, 822, 822, 51, 822, 822, 822, 822,
765 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
766 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
767 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
768 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
769 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
770 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
771 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
772 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
774 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
775 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
776 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
777 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
778 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
779 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
780 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
781 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
782 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
783 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
785 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
786 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
787 822, 0, 822, 822, 822, 822, 822, 822
790 static yyconst flex_int16_t yy_nxt
[2283] =
792 4, 5, 6, 7, 8, 4, 7, 9, 4, 10,
793 10, 10, 10, 10, 10, 10, 4, 7, 11, 11,
794 12, 13, 14, 15, 11, 16, 17, 18, 11, 11,
795 19, 11, 11, 11, 11, 20, 21, 22, 11, 11,
796 11, 11, 11, 11, 4, 11, 11, 12, 13, 14,
797 15, 11, 16, 17, 18, 11, 11, 19, 11, 11,
798 11, 11, 20, 21, 22, 11, 11, 11, 11, 11,
799 11, 27, 28, 28, 28, 28, 28, 28, 28, 30,
800 31, 31, 31, 31, 31, 31, 31, 30, 31, 31,
801 31, 31, 31, 31, 31, 34, 35, 29, 29, 37,
803 36, 29, 39, 40, 29, 29, 214, 29, 29, 215,
804 116, 32, 38, 29, 33, 89, 29, 268, 113, 68,
805 269, 29, 34, 35, 29, 29, 37, 36, 29, 39,
806 40, 29, 29, 42, 29, 29, 41, 70, 32, 38,
807 29, 33, 89, 29, 43, 47, 29, 29, 45, 29,
808 44, 29, 46, 29, 48, 29, 29, 94, 29, 95,
809 42, 29, 29, 41, 29, 29, 819, 818, 805, 804,
810 803, 43, 47, 29, 29, 45, 29, 44, 29, 46,
811 29, 48, 29, 29, 94, 29, 95, 802, 29, 29,
812 797, 29, 29, 51, 51, 51, 51, 51, 51, 51,
814 796, 96, 52, 53, 54, 55, 51, 51, 51, 56,
815 57, 51, 58, 51, 51, 59, 51, 60, 51, 61,
816 62, 63, 64, 65, 51, 51, 51, 51, 96, 52,
817 53, 54, 55, 51, 51, 51, 56, 57, 51, 58,
818 51, 51, 59, 51, 60, 51, 61, 62, 63, 64,
819 65, 51, 51, 51, 51, 66, 67, 67, 67, 67,
820 67, 67, 67, 27, 69, 69, 69, 69, 69, 69,
821 69, 66, 71, 71, 71, 71, 71, 71, 71, 70,
822 70, 70, 97, 789, 73, 70, 75, 70, 74, 70,
823 100, 70, 109, 101, 72, 29, 29, 29, 29, 29,
825 29, 29, 77, 29, 29, 29, 76, 29, 29, 97,
826 29, 73, 110, 75, 78, 74, 788, 100, 787, 109,
827 101, 72, 29, 29, 29, 29, 29, 29, 29, 77,
828 29, 29, 29, 76, 29, 29, 70, 29, 70, 110,
829 786, 78, 80, 70, 779, 82, 79, 70, 70, 70,
830 777, 111, 29, 83, 29, 29, 70, 29, 81, 29,
831 775, 132, 29, 29, 29, 29, 29, 29, 84, 80,
832 774, 85, 29, 79, 133, 29, 762, 98, 111, 29,
833 83, 29, 29, 99, 29, 81, 29, 70, 132, 29,
834 29, 29, 29, 29, 29, 84, 70, 70, 85, 29,
836 92, 133, 29, 29, 98, 90, 29, 86, 29, 134,
837 99, 29, 29, 29, 93, 87, 29, 91, 135, 88,
838 759, 140, 755, 754, 138, 139, 747, 92, 746, 729,
839 29, 728, 90, 29, 86, 29, 134, 70, 29, 29,
840 29, 93, 87, 29, 91, 135, 88, 51, 51, 51,
841 51, 138, 139, 29, 51, 51, 29, 51, 141, 102,
842 51, 103, 51, 104, 51, 51, 51, 51, 51, 105,
843 195, 199, 204, 222, 51, 51, 51, 51, 106, 107,
844 29, 51, 51, 29, 51, 108, 102, 51, 103, 51,
845 104, 51, 51, 51, 51, 51, 105, 66, 112, 112,
847 112, 112, 112, 112, 112, 106, 107, 196, 200, 205,
848 223, 715, 108, 114, 115, 115, 115, 115, 115, 115,
849 115, 66, 112, 112, 112, 112, 112, 112, 112, 70,
850 27, 117, 117, 117, 117, 117, 117, 117, 71, 71,
851 71, 71, 71, 71, 71, 71, 70, 136, 70, 714,
852 677, 137, 70, 70, 142, 143, 144, 70, 145, 676,
853 146, 147, 29, 148, 29, 29, 118, 29, 29, 120,
854 119, 29, 29, 29, 136, 663, 29, 121, 137, 242,
855 122, 142, 143, 144, 646, 145, 70, 146, 147, 29,
856 148, 29, 29, 118, 29, 29, 120, 119, 29, 29,
858 29, 70, 29, 29, 121, 29, 70, 123, 149, 150,
859 645, 70, 70, 644, 151, 154, 243, 29, 155, 124,
860 29, 70, 29, 125, 156, 29, 127, 29, 29, 29,
861 29, 29, 29, 643, 123, 149, 150, 29, 642, 641,
862 29, 151, 154, 126, 29, 155, 124, 29, 636, 29,
863 125, 156, 29, 127, 29, 29, 70, 29, 29, 157,
864 70, 128, 70, 174, 29, 152, 129, 29, 70, 175,
865 126, 176, 29, 177, 131, 29, 29, 180, 29, 29,
866 153, 29, 181, 182, 29, 130, 157, 29, 128, 635,
867 174, 627, 152, 129, 625, 581, 175, 580, 176, 29,
869 177, 131, 29, 29, 180, 29, 29, 153, 29, 181,
870 182, 29, 130, 552, 29, 71, 71, 71, 71, 71,
871 71, 71, 71, 66, 112, 112, 112, 112, 112, 112,
872 112, 70, 71, 158, 158, 158, 158, 158, 158, 158,
873 114, 159, 159, 159, 159, 159, 159, 159, 71, 71,
874 71, 71, 71, 71, 71, 71, 70, 30, 117, 117,
875 117, 117, 117, 117, 117, 70, 70, 70, 551, 520,
876 189, 70, 178, 70, 161, 160, 190, 163, 519, 164,
877 179, 29, 29, 29, 29, 29, 162, 29, 508, 29,
878 29, 191, 29, 29, 507, 167, 29, 189, 454, 178,
880 192, 161, 160, 190, 163, 165, 164, 179, 29, 29,
881 29, 29, 29, 162, 29, 70, 29, 29, 191, 29,
882 29, 70, 167, 29, 166, 70, 70, 192, 451, 193,
883 70, 29, 416, 194, 29, 168, 70, 29, 342, 169,
884 29, 29, 29, 170, 29, 29, 171, 341, 339, 29,
885 338, 166, 29, 323, 197, 29, 193, 172, 29, 70,
886 194, 29, 168, 253, 29, 173, 169, 29, 29, 29,
887 170, 29, 29, 171, 70, 29, 29, 183, 29, 29,
888 186, 197, 29, 198, 172, 201, 184, 202, 185, 187,
889 29, 188, 173, 29, 203, 206, 322, 209, 271, 270,
891 254, 224, 29, 50, 183, 29, 70, 186, 25, 25,
892 198, 70, 201, 184, 202, 185, 187, 29, 188, 50,
893 29, 203, 29, 207, 209, 29, 212, 29, 224, 26,
894 29, 225, 208, 210, 211, 211, 211, 211, 211, 211,
895 211, 114, 71, 71, 71, 71, 71, 71, 71, 29,
896 207, 70, 29, 212, 29, 70, 70, 29, 225, 226,
897 70, 70, 70, 227, 218, 25, 216, 29, 822, 228,
898 29, 29, 29, 70, 29, 29, 29, 29, 29, 29,
899 29, 29, 23, 822, 213, 229, 226, 822, 217, 29,
900 227, 218, 29, 216, 29, 70, 228, 29, 29, 29,
902 233, 29, 29, 29, 29, 29, 29, 29, 29, 70,
903 70, 29, 229, 234, 219, 217, 29, 70, 235, 29,
904 230, 236, 237, 220, 238, 29, 29, 233, 29, 29,
905 231, 239, 240, 29, 241, 244, 221, 245, 29, 246,
906 234, 219, 247, 248, 249, 235, 250, 251, 236, 237,
907 220, 238, 29, 29, 252, 29, 29, 232, 239, 240,
908 29, 241, 244, 221, 245, 255, 246, 260, 261, 247,
909 248, 249, 256, 250, 251, 257, 258, 263, 822, 259,
910 264, 252, 71, 265, 265, 265, 265, 265, 265, 265,
911 279, 822, 255, 275, 260, 276, 822, 277, 822, 256,
913 70, 278, 257, 258, 263, 262, 259, 264, 210, 266,
914 266, 266, 266, 266, 266, 266, 29, 70, 70, 29,
915 275, 267, 276, 272, 277, 70, 70, 280, 278, 281,
916 282, 822, 822, 29, 29, 70, 29, 29, 273, 70,
917 283, 29, 29, 29, 29, 29, 29, 284, 267, 285,
918 272, 29, 286, 287, 29, 29, 281, 282, 29, 274,
919 29, 29, 288, 29, 29, 273, 289, 283, 29, 29,
920 290, 29, 29, 291, 284, 292, 285, 293, 29, 286,
921 287, 29, 29, 294, 295, 29, 274, 296, 297, 288,
922 298, 299, 300, 289, 301, 303, 304, 290, 305, 306,
924 291, 307, 292, 308, 293, 309, 310, 311, 312, 313,
925 294, 295, 314, 315, 296, 297, 316, 298, 299, 300,
926 317, 318, 303, 304, 822, 305, 306, 822, 307, 822,
927 308, 302, 309, 310, 311, 312, 313, 326, 328, 314,
928 315, 822, 324, 316, 325, 822, 822, 317, 318, 71,
929 319, 319, 319, 319, 319, 319, 319, 320, 210, 71,
930 71, 71, 71, 71, 71, 71, 70, 70, 70, 324,
931 330, 325, 321, 70, 327, 329, 331, 332, 333, 334,
932 335, 336, 29, 29, 29, 29, 29, 29, 337, 29,
933 340, 343, 29, 345, 346, 348, 349, 330, 350, 321,
935 352, 363, 353, 331, 332, 333, 334, 335, 336, 29,
936 29, 29, 29, 29, 29, 337, 29, 340, 354, 29,
937 345, 355, 348, 349, 356, 361, 357, 352, 344, 353,
938 362, 347, 365, 366, 367, 351, 358, 368, 364, 369,
939 370, 371, 372, 373, 374, 354, 375, 376, 355, 380,
940 822, 356, 361, 381, 822, 359, 382, 362, 822, 365,
941 366, 367, 70, 360, 368, 822, 369, 370, 371, 372,
942 373, 374, 383, 375, 384, 385, 380, 379, 29, 386,
943 381, 29, 359, 382, 377, 71, 378, 378, 378, 378,
944 378, 378, 378, 320, 387, 388, 389, 391, 392, 383,
946 393, 384, 385, 394, 379, 29, 386, 395, 29, 396,
947 397, 398, 399, 400, 402, 404, 405, 406, 407, 408,
948 409, 387, 388, 410, 391, 392, 411, 393, 401, 403,
949 394, 412, 413, 390, 395, 414, 396, 397, 398, 399,
950 400, 402, 404, 405, 406, 407, 408, 409, 415, 417,
951 410, 418, 419, 411, 424, 401, 403, 425, 412, 413,
952 420, 421, 414, 422, 423, 426, 428, 429, 430, 431,
953 432, 433, 434, 435, 822, 415, 417, 822, 418, 419,
954 822, 424, 822, 822, 425, 437, 438, 420, 421, 439,
955 422, 423, 440, 428, 429, 430, 431, 432, 433, 434,
957 435, 70, 427, 71, 71, 71, 71, 71, 71, 71,
958 71, 320, 437, 438, 441, 442, 439, 29, 443, 440,
959 29, 444, 436, 445, 446, 447, 448, 449, 450, 452,
960 453, 455, 456, 457, 458, 459, 460, 461, 462, 463,
961 464, 441, 442, 465, 29, 443, 466, 29, 444, 436,
962 445, 446, 447, 448, 449, 450, 452, 453, 455, 456,
963 457, 458, 459, 460, 461, 462, 463, 464, 467, 468,
964 465, 469, 470, 466, 471, 472, 473, 474, 475, 476,
965 477, 478, 479, 480, 481, 482, 483, 486, 489, 484,
966 490, 491, 487, 492, 493, 467, 468, 485, 469, 470,
968 488, 471, 472, 473, 474, 475, 476, 477, 478, 479,
969 480, 481, 482, 483, 486, 489, 484, 490, 491, 487,
970 492, 493, 70, 494, 485, 495, 496, 488, 497, 498,
971 499, 500, 501, 502, 504, 505, 506, 509, 29, 510,
972 511, 29, 512, 525, 513, 514, 515, 516, 517, 518,
973 494, 521, 495, 496, 522, 497, 498, 499, 500, 501,
974 523, 504, 505, 506, 509, 29, 510, 511, 29, 512,
975 503, 513, 514, 515, 516, 517, 518, 524, 521, 527,
976 526, 522, 528, 529, 530, 531, 532, 523, 533, 534,
977 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
979 545, 546, 547, 548, 524, 549, 527, 550, 553, 528,
980 529, 530, 531, 532, 554, 533, 534, 535, 536, 537,
981 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
982 548, 555, 549, 556, 550, 553, 557, 558, 559, 560,
983 561, 554, 562, 563, 564, 565, 566, 567, 568, 569,
984 570, 571, 572, 573, 574, 575, 576, 577, 555, 578,
985 556, 579, 582, 557, 558, 559, 560, 561, 583, 562,
986 563, 564, 565, 566, 567, 568, 569, 570, 571, 572,
987 573, 574, 575, 576, 577, 584, 578, 585, 579, 582,
988 586, 587, 588, 589, 590, 583, 591, 592, 593, 594,
990 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
991 605, 606, 584, 607, 585, 608, 609, 586, 587, 588,
992 589, 590, 610, 591, 592, 593, 594, 595, 596, 597,
993 598, 599, 600, 601, 602, 603, 604, 605, 606, 611,
994 607, 612, 608, 609, 613, 614, 615, 616, 617, 610,
995 618, 619, 620, 621, 622, 623, 624, 626, 628, 629,
996 630, 631, 632, 633, 634, 637, 611, 638, 612, 639,
997 640, 613, 614, 615, 616, 617, 647, 618, 619, 620,
998 621, 622, 623, 624, 626, 628, 629, 630, 631, 632,
999 633, 634, 637, 648, 638, 649, 639, 640, 650, 651,
1001 652, 653, 654, 647, 655, 656, 657, 658, 659, 660,
1002 661, 662, 664, 665, 666, 667, 668, 669, 670, 671,
1003 648, 672, 649, 673, 674, 650, 651, 652, 653, 654,
1004 675, 655, 656, 657, 658, 659, 660, 661, 662, 664,
1005 665, 666, 667, 668, 669, 670, 671, 678, 672, 679,
1006 673, 674, 680, 681, 682, 683, 684, 675, 685, 686,
1007 687, 688, 689, 690, 691, 692, 693, 694, 695, 696,
1008 697, 698, 699, 700, 678, 701, 679, 702, 703, 680,
1009 681, 682, 683, 684, 704, 685, 686, 687, 688, 689,
1010 690, 691, 692, 693, 694, 695, 696, 697, 698, 699,
1012 700, 705, 701, 706, 702, 703, 707, 708, 709, 710,
1013 711, 704, 712, 713, 716, 717, 718, 719, 720, 721,
1014 722, 723, 724, 725, 726, 727, 730, 731, 705, 732,
1015 706, 733, 734, 707, 708, 709, 710, 711, 735, 712,
1016 713, 716, 717, 718, 719, 720, 721, 722, 723, 724,
1017 725, 726, 727, 730, 731, 736, 732, 737, 733, 734,
1018 738, 739, 740, 741, 742, 735, 743, 744, 745, 748,
1019 749, 750, 751, 752, 753, 756, 757, 758, 760, 761,
1020 763, 764, 736, 765, 737, 766, 767, 738, 739, 740,
1021 741, 742, 768, 743, 744, 745, 748, 749, 750, 751,
1023 752, 753, 756, 757, 758, 760, 761, 763, 764, 769,
1024 765, 770, 766, 767, 771, 772, 773, 776, 778, 768,
1025 780, 781, 782, 783, 784, 785, 790, 791, 792, 793,
1026 794, 795, 798, 799, 800, 801, 769, 806, 770, 807,
1027 808, 771, 772, 773, 776, 778, 809, 780, 781, 782,
1028 783, 784, 785, 790, 791, 792, 793, 794, 795, 798,
1029 799, 800, 801, 810, 806, 811, 807, 808, 812, 813,
1030 814, 815, 816, 809, 817, 820, 821, 822, 822, 822,
1031 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
1032 810, 822, 811, 822, 822, 812, 813, 814, 815, 816,
1034 822, 817, 820, 821, 24, 822, 24, 49, 49, 49,
1035 3, 822, 822, 822, 822, 822, 822, 822, 822, 822,
1036 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
1037 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
1038 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
1039 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
1040 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
1041 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
1045 static yyconst flex_int16_t yy_chk
[2283] =
1047 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1048 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1049 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1050 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1051 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1052 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1053 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1054 1, 10, 10, 10, 10, 10, 10, 10, 10, 11,
1055 11, 11, 11, 11, 11, 11, 11, 12, 12, 12,
1056 12, 12, 12, 12, 12, 13, 14, 14, 16, 15,
1058 14, 16, 16, 17, 17, 13, 165, 17, 13, 165,
1059 828, 12, 15, 15, 12, 52, 15, 213, 827, 826,
1060 213, 824, 13, 14, 14, 16, 15, 14, 16, 16,
1061 17, 17, 13, 19, 17, 13, 18, 29, 12, 15,
1062 15, 12, 52, 15, 19, 21, 18, 19, 20, 18,
1063 19, 22, 20, 29, 22, 21, 29, 55, 21, 56,
1064 19, 31, 20, 18, 31, 20, 815, 814, 795, 794,
1065 793, 19, 21, 18, 19, 20, 18, 19, 22, 20,
1066 29, 22, 21, 29, 55, 21, 56, 792, 31, 20,
1067 783, 31, 20, 26, 26, 26, 26, 26, 26, 26,
1069 782, 57, 26, 26, 26, 26, 26, 26, 26, 26,
1070 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
1071 26, 26, 26, 26, 26, 26, 26, 26, 57, 26,
1072 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
1073 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
1074 26, 26, 26, 26, 26, 27, 27, 27, 27, 27,
1075 27, 27, 27, 28, 28, 28, 28, 28, 28, 28,
1076 28, 30, 30, 30, 30, 30, 30, 30, 30, 32,
1077 33, 35, 58, 773, 33, 34, 35, 36, 34, 37,
1078 60, 38, 63, 60, 32, 32, 33, 35, 32, 33,
1080 35, 34, 37, 36, 34, 37, 36, 38, 37, 58,
1081 38, 33, 64, 35, 38, 34, 772, 60, 771, 63,
1082 60, 32, 32, 33, 35, 32, 33, 35, 34, 37,
1083 36, 34, 37, 36, 38, 37, 39, 38, 40, 64,
1084 770, 38, 40, 41, 763, 42, 39, 42, 43, 44,
1085 760, 65, 39, 43, 40, 39, 45, 40, 41, 41,
1086 757, 89, 41, 42, 43, 44, 42, 43, 44, 40,
1087 756, 45, 45, 39, 90, 45, 738, 59, 65, 39,
1088 43, 40, 39, 59, 40, 41, 41, 46, 89, 41,
1089 42, 43, 44, 42, 43, 44, 47, 48, 45, 45,
1091 54, 90, 45, 46, 59, 53, 46, 46, 82, 91,
1092 59, 82, 47, 48, 54, 47, 48, 53, 92, 48,
1093 735, 96, 731, 730, 94, 95, 717, 54, 716, 697,
1094 46, 696, 53, 46, 46, 82, 91, 73, 82, 47,
1095 48, 54, 47, 48, 53, 92, 48, 51, 51, 51,
1096 51, 94, 95, 73, 51, 51, 73, 51, 96, 61,
1097 51, 61, 51, 61, 51, 51, 51, 51, 51, 62,
1098 148, 151, 155, 174, 51, 51, 51, 51, 62, 62,
1099 73, 51, 51, 73, 51, 62, 61, 51, 61, 51,
1100 61, 51, 51, 51, 51, 51, 62, 66, 66, 66,
1102 66, 66, 66, 66, 66, 62, 62, 148, 151, 155,
1103 174, 681, 62, 67, 67, 67, 67, 67, 67, 67,
1104 67, 68, 68, 68, 68, 68, 68, 68, 68, 68,
1105 69, 69, 69, 69, 69, 69, 69, 69, 71, 71,
1106 71, 71, 71, 71, 71, 71, 72, 93, 74, 680,
1107 632, 93, 75, 76, 97, 98, 99, 77, 100, 631,
1108 101, 102, 72, 103, 74, 72, 72, 74, 75, 76,
1109 74, 75, 76, 77, 93, 616, 77, 77, 93, 192,
1110 78, 97, 98, 99, 595, 100, 78, 101, 102, 72,
1111 103, 74, 72, 72, 74, 75, 76, 74, 75, 76,
1113 77, 79, 78, 77, 77, 78, 80, 79, 104, 105,
1114 594, 81, 84, 593, 106, 108, 192, 79, 109, 80,
1115 79, 83, 80, 81, 110, 80, 84, 81, 84, 78,
1116 81, 84, 78, 592, 79, 104, 105, 83, 591, 590,
1117 83, 106, 108, 83, 79, 109, 80, 79, 585, 80,
1118 81, 110, 80, 84, 81, 84, 85, 81, 84, 111,
1119 86, 85, 87, 132, 83, 107, 86, 83, 88, 133,
1120 83, 134, 85, 135, 88, 85, 86, 137, 87, 86,
1121 107, 87, 138, 139, 88, 87, 111, 88, 85, 584,
1122 132, 574, 107, 86, 572, 524, 133, 523, 134, 85,
1124 135, 88, 85, 86, 137, 87, 86, 107, 87, 138,
1125 139, 88, 87, 495, 88, 112, 112, 112, 112, 112,
1126 112, 112, 112, 113, 113, 113, 113, 113, 113, 113,
1127 113, 113, 114, 114, 114, 114, 114, 114, 114, 114,
1128 115, 115, 115, 115, 115, 115, 115, 115, 116, 116,
1129 116, 116, 116, 116, 116, 116, 116, 117, 117, 117,
1130 117, 117, 117, 117, 117, 118, 119, 120, 494, 462,
1131 142, 121, 136, 124, 119, 118, 143, 121, 461, 122,
1132 136, 118, 119, 120, 118, 119, 120, 121, 450, 124,
1133 121, 144, 124, 122, 449, 124, 122, 142, 397, 136,
1135 145, 119, 118, 143, 121, 122, 122, 136, 118, 119,
1136 120, 118, 119, 120, 121, 123, 124, 121, 144, 124,
1137 122, 127, 124, 122, 123, 125, 126, 145, 394, 146,
1138 128, 123, 359, 147, 123, 125, 129, 127, 291, 126,
1139 127, 125, 126, 127, 125, 126, 128, 290, 288, 128,
1140 287, 123, 129, 269, 149, 129, 146, 129, 123, 130,
1141 147, 123, 125, 202, 127, 130, 126, 127, 125, 126,
1142 127, 125, 126, 128, 131, 130, 128, 140, 130, 129,
1143 141, 149, 129, 150, 129, 152, 140, 153, 140, 141,
1144 131, 141, 130, 131, 154, 156, 268, 157, 215, 214,
1146 202, 175, 130, 49, 140, 130, 160, 141, 25, 24,
1147 150, 161, 152, 140, 153, 140, 141, 131, 141, 23,
1148 131, 154, 160, 156, 157, 160, 160, 161, 175, 9,
1149 161, 176, 156, 158, 158, 158, 158, 158, 158, 158,
1150 158, 159, 159, 159, 159, 159, 159, 159, 159, 160,
1151 156, 162, 160, 160, 161, 163, 164, 161, 176, 177,
1152 166, 167, 169, 178, 169, 8, 167, 162, 3, 179,
1153 162, 163, 164, 168, 163, 164, 166, 167, 169, 166,
1154 167, 169, 2, 0, 164, 181, 177, 0, 168, 168,
1155 178, 169, 168, 167, 162, 170, 179, 162, 163, 164,
1157 183, 163, 164, 166, 167, 169, 166, 167, 169, 171,
1158 172, 170, 181, 184, 170, 168, 168, 173, 185, 168,
1159 182, 186, 187, 171, 188, 171, 172, 183, 171, 172,
1160 182, 189, 190, 173, 191, 193, 173, 194, 170, 195,
1161 184, 170, 196, 197, 198, 185, 199, 200, 186, 187,
1162 171, 188, 171, 172, 201, 171, 172, 182, 189, 190,
1163 173, 191, 193, 173, 194, 203, 195, 206, 207, 196,
1164 197, 198, 204, 199, 200, 204, 205, 208, 0, 205,
1165 209, 201, 210, 210, 210, 210, 210, 210, 210, 210,
1166 226, 0, 203, 222, 206, 223, 0, 224, 0, 204,
1168 212, 225, 204, 205, 208, 207, 205, 209, 211, 211,
1169 211, 211, 211, 211, 211, 211, 212, 216, 217, 212,
1170 222, 212, 223, 216, 224, 218, 219, 226, 225, 227,
1171 228, 0, 0, 216, 217, 220, 216, 217, 217, 221,
1172 229, 218, 219, 212, 218, 219, 212, 230, 212, 232,
1173 216, 220, 233, 234, 220, 221, 227, 228, 221, 221,
1174 216, 217, 235, 216, 217, 217, 236, 229, 218, 219,
1175 237, 218, 219, 238, 230, 239, 232, 240, 220, 233,
1176 234, 220, 221, 241, 242, 221, 221, 243, 244, 235,
1177 245, 246, 247, 236, 248, 249, 250, 237, 251, 252,
1179 238, 253, 239, 254, 240, 255, 256, 257, 258, 259,
1180 241, 242, 260, 261, 243, 244, 262, 245, 246, 247,
1181 263, 264, 249, 250, 0, 251, 252, 0, 253, 0,
1182 254, 248, 255, 256, 257, 258, 259, 277, 278, 260,
1183 261, 0, 275, 262, 276, 0, 0, 263, 264, 265,
1184 265, 265, 265, 265, 265, 265, 265, 265, 266, 266,
1185 266, 266, 266, 266, 266, 266, 267, 272, 273, 275,
1186 279, 276, 267, 274, 277, 278, 280, 281, 282, 283,
1187 284, 285, 267, 272, 273, 267, 272, 273, 286, 274,
1188 289, 292, 274, 293, 294, 295, 296, 279, 297, 267,
1190 298, 306, 299, 280, 281, 282, 283, 284, 285, 267,
1191 272, 273, 267, 272, 273, 286, 274, 289, 300, 274,
1192 293, 301, 295, 296, 302, 304, 303, 298, 292, 299,
1193 305, 294, 307, 308, 309, 297, 303, 310, 306, 311,
1194 312, 313, 314, 315, 316, 300, 317, 318, 301, 324,
1195 0, 302, 304, 325, 0, 303, 326, 305, 0, 307,
1196 308, 309, 321, 303, 310, 0, 311, 312, 313, 314,
1197 315, 316, 327, 317, 328, 329, 324, 321, 321, 330,
1198 325, 321, 303, 326, 318, 319, 319, 319, 319, 319,
1199 319, 319, 319, 319, 331, 332, 333, 334, 335, 327,
1201 336, 328, 329, 337, 321, 321, 330, 338, 321, 339,
1202 340, 341, 342, 343, 344, 346, 347, 348, 349, 350,
1203 351, 331, 332, 352, 334, 335, 353, 336, 343, 344,
1204 337, 354, 355, 333, 338, 356, 339, 340, 341, 342,
1205 343, 344, 346, 347, 348, 349, 350, 351, 357, 360,
1206 352, 361, 362, 353, 365, 343, 344, 366, 354, 355,
1207 363, 363, 356, 364, 364, 367, 368, 369, 370, 371,
1208 373, 374, 376, 377, 0, 357, 360, 0, 361, 362,
1209 0, 365, 0, 0, 366, 380, 381, 363, 363, 382,
1210 364, 364, 383, 368, 369, 370, 371, 373, 374, 376,
1212 377, 379, 367, 378, 378, 378, 378, 378, 378, 378,
1213 378, 378, 380, 381, 384, 385, 382, 379, 386, 383,
1214 379, 387, 379, 388, 389, 390, 391, 392, 393, 395,
1215 396, 398, 399, 400, 401, 402, 403, 404, 405, 406,
1216 407, 384, 385, 408, 379, 386, 409, 379, 387, 379,
1217 388, 389, 390, 391, 392, 393, 395, 396, 398, 399,
1218 400, 401, 402, 403, 404, 405, 406, 407, 410, 411,
1219 408, 412, 413, 409, 414, 415, 417, 418, 419, 420,
1220 421, 422, 423, 424, 425, 426, 427, 429, 431, 428,
1221 432, 433, 430, 434, 435, 410, 411, 428, 412, 413,
1223 430, 414, 415, 417, 418, 419, 420, 421, 422, 423,
1224 424, 425, 426, 427, 429, 431, 428, 432, 433, 430,
1225 434, 435, 436, 437, 428, 438, 439, 430, 440, 441,
1226 442, 443, 444, 445, 446, 447, 448, 451, 436, 452,
1227 453, 436, 454, 467, 455, 456, 457, 458, 459, 460,
1228 437, 463, 438, 439, 464, 440, 441, 442, 443, 444,
1229 465, 446, 447, 448, 451, 436, 452, 453, 436, 454,
1230 445, 455, 456, 457, 458, 459, 460, 466, 463, 468,
1231 467, 464, 469, 470, 471, 472, 473, 465, 474, 475,
1232 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
1234 486, 487, 488, 489, 466, 492, 468, 493, 496, 469,
1235 470, 471, 472, 473, 497, 474, 475, 476, 477, 478,
1236 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
1237 489, 498, 492, 499, 493, 496, 500, 501, 502, 503,
1238 504, 497, 505, 506, 507, 508, 509, 510, 511, 512,
1239 513, 514, 515, 516, 517, 518, 519, 520, 498, 521,
1240 499, 522, 525, 500, 501, 502, 503, 504, 526, 505,
1241 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
1242 516, 517, 518, 519, 520, 527, 521, 528, 522, 525,
1243 529, 530, 531, 532, 533, 526, 534, 535, 536, 537,
1245 538, 541, 542, 543, 544, 545, 546, 547, 548, 551,
1246 552, 553, 527, 554, 528, 555, 556, 529, 530, 531,
1247 532, 533, 557, 534, 535, 536, 537, 538, 541, 542,
1248 543, 544, 545, 546, 547, 548, 551, 552, 553, 558,
1249 554, 559, 555, 556, 560, 561, 562, 563, 564, 557,
1250 565, 566, 567, 568, 569, 570, 571, 573, 575, 576,
1251 577, 578, 579, 582, 583, 586, 558, 587, 559, 588,
1252 589, 560, 561, 562, 563, 564, 598, 565, 566, 567,
1253 568, 569, 570, 571, 573, 575, 576, 577, 578, 579,
1254 582, 583, 586, 599, 587, 601, 588, 589, 602, 604,
1256 605, 606, 607, 598, 608, 609, 610, 611, 612, 613,
1257 614, 615, 617, 618, 619, 620, 621, 622, 623, 624,
1258 599, 626, 601, 628, 629, 602, 604, 605, 606, 607,
1259 630, 608, 609, 610, 611, 612, 613, 614, 615, 617,
1260 618, 619, 620, 621, 622, 623, 624, 633, 626, 634,
1261 628, 629, 637, 638, 639, 640, 643, 630, 644, 645,
1262 646, 647, 649, 651, 652, 653, 654, 655, 656, 659,
1263 660, 661, 662, 664, 633, 665, 634, 666, 667, 637,
1264 638, 639, 640, 643, 668, 644, 645, 646, 647, 649,
1265 651, 652, 653, 654, 655, 656, 659, 660, 661, 662,
1267 664, 669, 665, 670, 666, 667, 671, 672, 673, 674,
1268 675, 668, 678, 679, 682, 683, 684, 685, 686, 687,
1269 690, 691, 692, 693, 694, 695, 698, 699, 669, 700,
1270 670, 701, 702, 671, 672, 673, 674, 675, 703, 678,
1271 679, 682, 683, 684, 685, 686, 687, 690, 691, 692,
1272 693, 694, 695, 698, 699, 704, 700, 705, 701, 702,
1273 706, 707, 708, 709, 710, 703, 711, 712, 713, 718,
1274 719, 720, 721, 722, 723, 732, 733, 734, 736, 737,
1275 739, 742, 704, 743, 705, 744, 745, 706, 707, 708,
1276 709, 710, 746, 711, 712, 713, 718, 719, 720, 721,
1278 722, 723, 732, 733, 734, 736, 737, 739, 742, 747,
1279 743, 748, 744, 745, 749, 750, 751, 758, 761, 746,
1280 764, 765, 766, 767, 768, 769, 774, 775, 776, 778,
1281 780, 781, 784, 785, 790, 791, 747, 796, 748, 797,
1282 798, 749, 750, 751, 758, 761, 799, 764, 765, 766,
1283 767, 768, 769, 774, 775, 776, 778, 780, 781, 784,
1284 785, 790, 791, 800, 796, 801, 797, 798, 806, 807,
1285 808, 809, 812, 799, 813, 816, 817, 0, 0, 0,
1286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1287 800, 0, 801, 0, 0, 806, 807, 808, 809, 812,
1289 0, 813, 816, 817, 823, 0, 823, 825, 825, 825,
1290 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
1291 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
1292 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
1293 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
1294 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
1295 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
1296 822, 822, 822, 822, 822, 822, 822, 822, 822, 822,
1300 static yyconst flex_int16_t yy_rule_linenum
[100] =
1302 77, 80, 82, 84, 88, 89, 91, 92, 93, 94,
1303 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1304 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1305 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1306 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1307 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1308 145, 146, 147, 148, 149, 150, 151, 152, 153, 155,
1309 156, 158, 159, 160, 161, 162, 163, 165, 166, 169,
1310 174, 175, 176, 178, 179, 180, 181, 182, 183, 184,
1311 185, 186, 188, 194, 200, 206, 212, 218, 224
1315 /* The intent behind this definition is that it'll catch
1316 * any uses of REJECT which flex missed.
1318 #define REJECT reject_used_but_not_detected
1319 #define yymore() yymore_used_but_not_detected
1320 #define YY_MORE_ADJ 0
1321 #define YY_RESTORE_YY_MORE_OFFSET
1322 #line 1 "libmemcached/options/scanner.l"
1323 /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
1325 * Libmemcached Scanner and Parser
1327 * Copyright (C) 2011 DataDifferental, http://datadifferential.com
1329 * This program is free software: you can redistribute it and/or modify
1330 * it under the terms of the GNU Affero General Public License as
1331 * published by the Free Software Foundation, either version 3 of the
1332 * License, or (at your option) any later version.
1334 * This program is distributed in the hope that it will be useful,
1335 * but WITHOUT ANY WARRANTY; without even the implied warranty of
1336 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1337 * GNU Affero General Public License for more details.
1339 * You should have received a copy of the GNU Affero General Public License
1340 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1343 #line 38 "libmemcached/options/scanner.l"
1347 #define PARAM config_get_extra(yyscanner)
1349 static void get_lex_chars(char* buffer
, int& result
, int max_size
, Context
*context
)
1351 if (context
->pos
>= context
->length
)
1357 result
= context
->length
- context
->pos
;
1358 result
> (int)max_size
? result
= max_size
: 0;
1359 memcpy(buffer
, context
->buf
+ context
->pos
, result
);
1360 context
->pos
+= result
;
1365 #define YY_INPUT(buffer, result, max_size) get_lex_chars(buffer, result, max_size, PARAM)
1367 #line 1368 "libmemcached/options/scanner.cc"
1371 #ifndef YY_NO_UNISTD_H
1372 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1373 * down here because we want the user's section 1 to have been scanned first.
1374 * The user has a chance to override it with an option.
1383 #ifndef YY_EXTRA_TYPE
1384 #define YY_EXTRA_TYPE void *
1387 /* %if-c-only Reentrant structure and macros (non-C++). */
1390 /* Holds the entire state of the reentrant scanner. */
1394 /* User-defined. Not touched by flex. */
1395 YY_EXTRA_TYPE yyextra_r
;
1397 /* The rest are the same as the globals declared in the non-reentrant scanner. */
1398 FILE *yyin_r
, *yyout_r
;
1399 size_t yy_buffer_stack_top
; /**< index of top of stack. */
1400 size_t yy_buffer_stack_max
; /**< capacity of stack. */
1401 YY_BUFFER_STATE
* yy_buffer_stack
; /**< Stack as an array. */
1408 int yy_did_buffer_switch_on_eof
;
1409 int yy_start_stack_ptr
;
1410 int yy_start_stack_depth
;
1411 int *yy_start_stack
;
1412 yy_state_type yy_last_accepting_state
;
1413 char* yy_last_accepting_cpos
;
1416 int yy_flex_debug_r
;
1424 }; /* end struct yyguts_t */
1428 static int yy_init_globals (yyscan_t yyscanner
);
1434 /* This must go here because YYSTYPE and YYLTYPE are included
1435 * from bison output in section 1.*/
1436 # define yylval yyg->yylval_r
1438 int config_lex_init (yyscan_t
* scanner
);
1440 int config_lex_init_extra (YY_EXTRA_TYPE user_defined
,yyscan_t
* scanner
);
1444 /* %endif End reentrant structures and macros. */
1446 /* Accessor methods to globals.
1447 These are made visible to non-reentrant scanners for convenience. */
1449 int config_lex_destroy (yyscan_t yyscanner
);
1451 int config_get_debug (yyscan_t yyscanner
);
1453 void config_set_debug (int debug_flag
,yyscan_t yyscanner
);
1455 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
);
1457 void config_set_extra (YY_EXTRA_TYPE user_defined
,yyscan_t yyscanner
);
1459 FILE *config_get_in (yyscan_t yyscanner
);
1461 void config_set_in (FILE * in_str
,yyscan_t yyscanner
);
1463 FILE *config_get_out (yyscan_t yyscanner
);
1465 void config_set_out (FILE * out_str
,yyscan_t yyscanner
);
1467 int config_get_leng (yyscan_t yyscanner
);
1469 char *config_get_text (yyscan_t yyscanner
);
1471 int config_get_lineno (yyscan_t yyscanner
);
1473 void config_set_lineno (int line_number
,yyscan_t yyscanner
);
1475 int config_get_column (yyscan_t yyscanner
);
1477 void config_set_column (int column_no
,yyscan_t yyscanner
);
1479 /* %if-bison-bridge */
1481 YYSTYPE
* config_get_lval (yyscan_t yyscanner
);
1483 void config_set_lval (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1487 /* Macros after this point can all be overridden by user definitions in
1491 #ifndef YY_SKIP_YYWRAP
1493 extern "C" int config_wrap (yyscan_t yyscanner
);
1495 extern int config_wrap (yyscan_t yyscanner
);
1499 /* %not-for-header */
1501 /* %ok-for-header */
1506 static void yy_flex_strncpy (char *,yyconst
char *,int ,yyscan_t yyscanner
);
1509 #ifdef YY_NEED_STRLEN
1510 static int yy_flex_strlen (yyconst
char * ,yyscan_t yyscanner
);
1514 /* %if-c-only Standard (non-C++) definition */
1515 /* %not-for-header */
1518 static int yyinput (yyscan_t yyscanner
);
1520 static int input (yyscan_t yyscanner
);
1522 /* %ok-for-header */
1531 /* Amount of stuff to slurp up with each read. */
1532 #ifndef YY_READ_BUF_SIZE
1533 #define YY_READ_BUF_SIZE 8192
1536 /* Copy whatever the last rule matched to the standard output. */
1538 /* %if-c-only Standard (non-C++) definition */
1539 /* This used to be an fputs(), but since the string might contain NUL's,
1540 * we now use fwrite().
1542 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1544 /* %if-c++-only C++ definition */
1548 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1549 * is returned in "result".
1552 #define YY_INPUT(buf,result,max_size) \
1553 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
1554 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1558 for ( n = 0; n < max_size && \
1559 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1560 buf[n] = (char) c; \
1562 buf[n++] = (char) c; \
1563 if ( c == EOF && ferror( yyin ) ) \
1564 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1570 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1572 if( errno != EINTR) \
1574 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1582 /* %if-c++-only C++ definition \ */\
1587 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1588 * we don't want an extra ';' after the "return" because that will cause
1589 * some compilers to complain about unreachable statements.
1592 #define yyterminate() return YY_NULL
1595 /* Number of entries by which start-condition stack grows. */
1596 #ifndef YY_START_STACK_INCR
1597 #define YY_START_STACK_INCR 25
1600 /* Report a fatal error. */
1601 #ifndef YY_FATAL_ERROR
1603 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1609 /* %if-tables-serialization structures and prototypes */
1610 /* %not-for-header */
1612 /* %ok-for-header */
1614 /* %not-for-header */
1616 /* %tables-yydmap generated elements */
1618 /* end tables serialization structures and prototypes */
1620 /* %ok-for-header */
1622 /* Default declaration of generated scanner - a define so the user can
1623 * easily add parameters.
1626 #define YY_DECL_IS_OURS 1
1627 /* %if-c-only Standard (non-C++) definition */
1629 extern int config_lex \
1630 (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1632 #define YY_DECL int config_lex \
1633 (YYSTYPE * yylval_param , yyscan_t yyscanner)
1635 /* %if-c++-only C++ definition */
1637 #endif /* !YY_DECL */
1639 /* Code executed at the beginning of each rule, after yytext and yyleng
1642 #ifndef YY_USER_ACTION
1643 #define YY_USER_ACTION
1646 /* Code executed at the end of each rule. */
1648 #define YY_BREAK break;
1651 /* %% [6.0] YY_RULE_SETUP definition goes here */
1652 #define YY_RULE_SETUP \
1654 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1655 (yytext[yyleng - 1] == '\n'); \
1658 /* %not-for-header */
1660 /** The main scanner function which does all the work.
1664 register yy_state_type yy_current_state
;
1665 register char *yy_cp
, *yy_bp
;
1666 register int yy_act
;
1667 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
1669 /* %% [7.0] user's declarations go here */
1670 #line 74 "libmemcached/options/scanner.l"
1674 #line 1675 "libmemcached/options/scanner.cc"
1676 yylval
= yylval_param
;
1678 if ( !yyg
->yy_init
)
1686 if ( ! yyg
->yy_start
)
1687 yyg
->yy_start
= 1; /* first start state */
1703 if ( ! YY_CURRENT_BUFFER
) {
1704 config_ensure_buffer_stack (yyscanner
);
1705 YY_CURRENT_BUFFER_LVALUE
=
1706 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
1709 config__load_buffer_state(yyscanner
);
1712 while ( 1 ) /* loops until end-of-file is reached */
1714 /* %% [8.0] yymore()-related code goes here */
1715 yy_cp
= yyg
->yy_c_buf_p
;
1717 /* Support of yytext. */
1718 *yy_cp
= yyg
->yy_hold_char
;
1720 /* yy_bp points to the position in yy_ch_buf of the start of
1725 /* %% [9.0] code to set up and find next match goes here */
1726 yy_current_state
= yyg
->yy_start
;
1727 yy_current_state
+= YY_AT_BOL();
1731 register YY_CHAR yy_c
= yy_ec
[YY_SC_TO_UI(*yy_cp
)];
1732 if ( yy_accept
[yy_current_state
] )
1734 yyg
->yy_last_accepting_state
= yy_current_state
;
1735 yyg
->yy_last_accepting_cpos
= yy_cp
;
1737 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
1739 yy_current_state
= (int) yy_def
[yy_current_state
];
1740 if ( yy_current_state
>= 823 )
1741 yy_c
= yy_meta
[(unsigned int) yy_c
];
1743 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
1746 while ( yy_base
[yy_current_state
] != 2211 );
1749 /* %% [10.0] code to find the action number goes here */
1750 yy_act
= yy_accept
[yy_current_state
];
1752 { /* have to back up */
1753 yy_cp
= yyg
->yy_last_accepting_cpos
;
1754 yy_current_state
= yyg
->yy_last_accepting_state
;
1755 yy_act
= yy_accept
[yy_current_state
];
1758 YY_DO_BEFORE_ACTION
;
1760 /* %% [11.0] code for yylineno update goes here */
1762 do_action
: /* This label is used only to access EOF actions. */
1764 /* %% [12.0] debug code goes here */
1765 if ( yy_flex_debug
)
1768 fprintf( stderr
, "--scanner backing up\n" );
1769 else if ( yy_act
< 100 )
1770 fprintf( stderr
, "--accepting rule at line %ld (\"%s\")\n",
1771 (long)yy_rule_linenum
[yy_act
], yytext
);
1772 else if ( yy_act
== 100 )
1773 fprintf( stderr
, "--accepting default rule (\"%s\")\n",
1775 else if ( yy_act
== 101 )
1776 fprintf( stderr
, "--(end of buffer or a NUL)\n" );
1778 fprintf( stderr
, "--EOF (start condition %d)\n", YY_START
);
1782 { /* beginning of action switch */
1783 /* %% [13.0] actions go here */
1784 case 0: /* must back up */
1785 /* undo the effects of YY_DO_BEFORE_ACTION */
1786 *yy_cp
= yyg
->yy_hold_char
;
1787 yy_cp
= yyg
->yy_last_accepting_cpos
;
1788 yy_current_state
= yyg
->yy_last_accepting_state
;
1789 goto yy_find_action
;
1793 #line 77 "libmemcached/options/scanner.l"
1794 { return yytext
[0];}
1798 #line 80 "libmemcached/options/scanner.l"
1799 { yylval
->number
= atoi(yytext
); return (NUMBER
); }
1802 /* rule 3 can match eol */
1804 #line 82 "libmemcached/options/scanner.l"
1805 ; /* skip whitespace */
1808 *yy_cp
= yyg
->yy_hold_char
; /* undo effects of setting up yytext */
1809 yyg
->yy_c_buf_p
= yy_cp
-= 1;
1810 YY_DO_BEFORE_ACTION
; /* set up yytext again */
1812 #line 84 "libmemcached/options/scanner.l"
1819 #line 88 "libmemcached/options/scanner.l"
1820 { yyextra
->begin
= yytext
; return SERVER
; }
1824 #line 89 "libmemcached/options/scanner.l"
1825 { yyextra
->begin
= yytext
; return SERVERS_OPTION
; }
1829 #line 91 "libmemcached/options/scanner.l"
1830 { yyextra
->begin
= yytext
; return VERIFY_KEY
; }
1834 #line 92 "libmemcached/options/scanner.l"
1835 { yyextra
->begin
= yytext
; return VERIFY_KEY
; }
1839 #line 93 "libmemcached/options/scanner.l"
1840 { yyextra
->begin
= yytext
; return AUTO_EJECT_HOSTS
; }
1844 #line 94 "libmemcached/options/scanner.l"
1845 { yyextra
->begin
= yytext
; return AUTO_EJECT_HOSTS
; }
1849 #line 95 "libmemcached/options/scanner.l"
1850 { yyextra
->begin
= yytext
; return BINARY_PROTOCOL
; }
1854 #line 96 "libmemcached/options/scanner.l"
1855 { yyextra
->begin
= yytext
; return BINARY_PROTOCOL
; }
1859 #line 97 "libmemcached/options/scanner.l"
1860 { yyextra
->begin
= yytext
; return BUFFER_REQUESTS
; }
1864 #line 98 "libmemcached/options/scanner.l"
1865 { yyextra
->begin
= yytext
; return BUFFER_REQUESTS
; }
1869 #line 99 "libmemcached/options/scanner.l"
1870 { yyextra
->begin
= yytext
; return CACHE_LOOKUPS
; }
1874 #line 100 "libmemcached/options/scanner.l"
1875 { yyextra
->begin
= yytext
; return CACHE_LOOKUPS
; }
1879 #line 101 "libmemcached/options/scanner.l"
1880 { yyextra
->begin
= yytext
; return CONFIGURE_FILE
; }
1884 #line 102 "libmemcached/options/scanner.l"
1885 { yyextra
->begin
= yytext
; return CONFIGURE_FILE
; }
1889 #line 103 "libmemcached/options/scanner.l"
1890 { yyextra
->begin
= yytext
; return CONNECT_TIMEOUT
; }
1894 #line 104 "libmemcached/options/scanner.l"
1895 { yyextra
->begin
= yytext
; return CONNECT_TIMEOUT
; }
1899 #line 105 "libmemcached/options/scanner.l"
1900 { yyextra
->begin
= yytext
; return _CORK
; }
1904 #line 106 "libmemcached/options/scanner.l"
1905 { yyextra
->begin
= yytext
; return DISTRIBUTION
; }
1909 #line 107 "libmemcached/options/scanner.l"
1910 { yyextra
->begin
= yytext
; return HASH
; }
1914 #line 108 "libmemcached/options/scanner.l"
1915 { yyextra
->begin
= yytext
; return HASH_WITH_PREFIX_KEY
; }
1919 #line 109 "libmemcached/options/scanner.l"
1920 { yyextra
->begin
= yytext
; return HASH_WITH_PREFIX_KEY
; }
1924 #line 110 "libmemcached/options/scanner.l"
1925 { yyextra
->begin
= yytext
; return IO_BYTES_WATERMARK
; }
1929 #line 111 "libmemcached/options/scanner.l"
1930 { yyextra
->begin
= yytext
; return IO_BYTES_WATERMARK
; }
1934 #line 112 "libmemcached/options/scanner.l"
1935 { yyextra
->begin
= yytext
; return IO_KEY_PREFETCH
; }
1939 #line 113 "libmemcached/options/scanner.l"
1940 { yyextra
->begin
= yytext
; return IO_KEY_PREFETCH
; }
1944 #line 114 "libmemcached/options/scanner.l"
1945 { yyextra
->begin
= yytext
; return IO_MSG_WATERMARK
; }
1949 #line 115 "libmemcached/options/scanner.l"
1950 { yyextra
->begin
= yytext
; return IO_MSG_WATERMARK
; }
1954 #line 116 "libmemcached/options/scanner.l"
1955 { yyextra
->begin
= yytext
; return KETAMA
; }
1959 #line 117 "libmemcached/options/scanner.l"
1960 { yyextra
->begin
= yytext
; return KETAMA_HASH
; }
1964 #line 118 "libmemcached/options/scanner.l"
1965 { yyextra
->begin
= yytext
; return KETAMA_HASH
; }
1969 #line 119 "libmemcached/options/scanner.l"
1970 { yyextra
->begin
= yytext
; return KETAMA_WEIGHTED
; }
1974 #line 120 "libmemcached/options/scanner.l"
1975 { yyextra
->begin
= yytext
; return KETAMA_WEIGHTED
; }
1979 #line 121 "libmemcached/options/scanner.l"
1980 { yyextra
->begin
= yytext
; return NOREPLY
; }
1984 #line 122 "libmemcached/options/scanner.l"
1985 { yyextra
->begin
= yytext
; return NUMBER_OF_REPLICAS
; }
1989 #line 123 "libmemcached/options/scanner.l"
1990 { yyextra
->begin
= yytext
; return NUMBER_OF_REPLICAS
; }
1994 #line 124 "libmemcached/options/scanner.l"
1995 { yyextra
->begin
= yytext
; return POLL_TIMEOUT
; }
1999 #line 125 "libmemcached/options/scanner.l"
2000 { yyextra
->begin
= yytext
; return POLL_TIMEOUT
; }
2004 #line 126 "libmemcached/options/scanner.l"
2005 { yyextra
->begin
= yytext
; return RANDOMIZE_REPLICA_READ
; }
2009 #line 127 "libmemcached/options/scanner.l"
2010 { yyextra
->begin
= yytext
; return RANDOMIZE_REPLICA_READ
; }
2014 #line 128 "libmemcached/options/scanner.l"
2015 { yyextra
->begin
= yytext
; return RCV_TIMEOUT
; }
2019 #line 129 "libmemcached/options/scanner.l"
2020 { yyextra
->begin
= yytext
; return RCV_TIMEOUT
; }
2024 #line 130 "libmemcached/options/scanner.l"
2025 { yyextra
->begin
= yytext
; return RETRY_TIMEOUT
; }
2029 #line 131 "libmemcached/options/scanner.l"
2030 { yyextra
->begin
= yytext
; return RETRY_TIMEOUT
; }
2034 #line 132 "libmemcached/options/scanner.l"
2035 { yyextra
->begin
= yytext
; return SERVER_FAILURE_LIMIT
; }
2039 #line 133 "libmemcached/options/scanner.l"
2040 { yyextra
->begin
= yytext
; return SERVER_FAILURE_LIMIT
; }
2044 #line 134 "libmemcached/options/scanner.l"
2045 { yyextra
->begin
= yytext
; return SND_TIMEOUT
; }
2049 #line 135 "libmemcached/options/scanner.l"
2050 { yyextra
->begin
= yytext
; return SND_TIMEOUT
; }
2054 #line 136 "libmemcached/options/scanner.l"
2055 { yyextra
->begin
= yytext
; return SOCKET_RECV_SIZE
; }
2059 #line 137 "libmemcached/options/scanner.l"
2060 { yyextra
->begin
= yytext
; return SOCKET_RECV_SIZE
; }
2064 #line 138 "libmemcached/options/scanner.l"
2065 { yyextra
->begin
= yytext
; return SOCKET_SEND_SIZE
; }
2069 #line 139 "libmemcached/options/scanner.l"
2070 { yyextra
->begin
= yytext
; return SOCKET_SEND_SIZE
; }
2074 #line 140 "libmemcached/options/scanner.l"
2075 { yyextra
->begin
= yytext
; return SORT_HOSTS
; }
2079 #line 141 "libmemcached/options/scanner.l"
2080 { yyextra
->begin
= yytext
; return SORT_HOSTS
; }
2084 #line 142 "libmemcached/options/scanner.l"
2085 { yyextra
->begin
= yytext
; return SUPPORT_CAS
; }
2089 #line 143 "libmemcached/options/scanner.l"
2090 { yyextra
->begin
= yytext
; return SUPPORT_CAS
; }
2094 #line 144 "libmemcached/options/scanner.l"
2095 { yyextra
->begin
= yytext
; return _TCP_NODELAY
; }
2099 #line 145 "libmemcached/options/scanner.l"
2100 { yyextra
->begin
= yytext
; return _TCP_NODELAY
; }
2104 #line 146 "libmemcached/options/scanner.l"
2105 { yyextra
->begin
= yytext
; return _TCP_KEEPALIVE
; }
2109 #line 147 "libmemcached/options/scanner.l"
2110 { yyextra
->begin
= yytext
; return _TCP_KEEPALIVE
; }
2114 #line 148 "libmemcached/options/scanner.l"
2115 { yyextra
->begin
= yytext
; return _TCP_KEEPIDLE
; }
2119 #line 149 "libmemcached/options/scanner.l"
2120 { yyextra
->begin
= yytext
; return _TCP_KEEPIDLE
; }
2124 #line 150 "libmemcached/options/scanner.l"
2125 { yyextra
->begin
= yytext
; return USER_DATA
; }
2129 #line 151 "libmemcached/options/scanner.l"
2130 { yyextra
->begin
= yytext
; return USER_DATA
; }
2134 #line 152 "libmemcached/options/scanner.l"
2135 { yyextra
->begin
= yytext
; return USE_UDP
; }
2139 #line 153 "libmemcached/options/scanner.l"
2140 { yyextra
->begin
= yytext
; return USE_UDP
; }
2144 #line 155 "libmemcached/options/scanner.l"
2145 { yyextra
->begin
= yytext
; return PREFIX_KEY
; }
2149 #line 156 "libmemcached/options/scanner.l"
2150 { yyextra
->begin
= yytext
; return PREFIX_KEY
; }
2154 #line 158 "libmemcached/options/scanner.l"
2155 { yyextra
->begin
= yytext
; return INCLUDE
; }
2159 #line 159 "libmemcached/options/scanner.l"
2160 { yyextra
->begin
= yytext
; return RESET
; }
2164 #line 160 "libmemcached/options/scanner.l"
2165 { yyextra
->begin
= yytext
; return PARSER_DEBUG
; }
2169 #line 161 "libmemcached/options/scanner.l"
2170 { yyextra
->begin
= yytext
; return SERVERS
; }
2174 #line 162 "libmemcached/options/scanner.l"
2175 { yyextra
->begin
= yytext
; return END
; }
2179 #line 163 "libmemcached/options/scanner.l"
2180 { yyextra
->begin
= yytext
; return ERROR
; }
2184 #line 165 "libmemcached/options/scanner.l"
2189 #line 166 "libmemcached/options/scanner.l"
2194 #line 169 "libmemcached/options/scanner.l"
2196 yyextra
->begin
= yytext
;
2197 return UNKNOWN_OPTION
;
2202 #line 174 "libmemcached/options/scanner.l"
2203 { return CONSISTENT
; }
2207 #line 175 "libmemcached/options/scanner.l"
2212 #line 176 "libmemcached/options/scanner.l"
2217 #line 178 "libmemcached/options/scanner.l"
2222 #line 179 "libmemcached/options/scanner.l"
2227 #line 180 "libmemcached/options/scanner.l"
2232 #line 181 "libmemcached/options/scanner.l"
2233 { return FNV1A_64
; }
2237 #line 182 "libmemcached/options/scanner.l"
2242 #line 183 "libmemcached/options/scanner.l"
2243 { return FNV1A_32
; }
2247 #line 184 "libmemcached/options/scanner.l"
2252 #line 185 "libmemcached/options/scanner.l"
2257 #line 186 "libmemcached/options/scanner.l"
2262 #line 188 "libmemcached/options/scanner.l"
2264 yylval
->string
.c_str
= yytext
;
2265 yylval
->string
.length
= yyleng
;
2266 return HOSTNAME_WITH_PORT
;
2271 #line 194 "libmemcached/options/scanner.l"
2273 yylval
->string
.c_str
= yytext
;
2274 yylval
->string
.length
= yyleng
;
2280 #line 200 "libmemcached/options/scanner.l"
2282 yylval
->string
.c_str
= yytext
;
2283 yylval
->string
.length
= yyleng
;
2284 return IPADDRESS_WITH_PORT
;
2289 #line 206 "libmemcached/options/scanner.l"
2291 yylval
->string
.c_str
= yytext
;
2292 yylval
->string
.length
= yyleng
;
2298 #line 212 "libmemcached/options/scanner.l"
2300 yylval
->string
.c_str
= yytext
;
2301 yylval
->string
.length
= yyleng
;
2307 #line 218 "libmemcached/options/scanner.l"
2309 yylval
->string
.c_str
= yytext
;
2310 yylval
->string
.length
= yyleng
;
2311 return QUOTED_STRING
;
2316 #line 224 "libmemcached/options/scanner.l"
2318 yyextra
->begin
= yytext
;
2324 #line 229 "libmemcached/options/scanner.l"
2327 #line 2328 "libmemcached/options/scanner.cc"
2328 case YY_STATE_EOF(INITIAL
):
2331 case YY_END_OF_BUFFER
:
2333 /* Amount of text matched not including the EOB char. */
2334 int yy_amount_of_matched_text
= (int) (yy_cp
- yyg
->yytext_ptr
) - 1;
2336 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2337 *yy_cp
= yyg
->yy_hold_char
;
2338 YY_RESTORE_YY_MORE_OFFSET
2340 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_NEW
)
2342 /* We're scanning a new file or input source. It's
2343 * possible that this happened because the user
2344 * just pointed yyin at a new source and called
2345 * config_lex(). If so, then we have to assure
2346 * consistency between YY_CURRENT_BUFFER and our
2347 * globals. Here is the right place to do so, because
2348 * this is the first action (other than possibly a
2349 * back-up) that will match for the new input source.
2351 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
2352 YY_CURRENT_BUFFER_LVALUE
->yy_input_file
= yyin
;
2353 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
= YY_BUFFER_NORMAL
;
2356 /* Note that here we test for yy_c_buf_p "<=" to the position
2357 * of the first EOB in the buffer, since yy_c_buf_p will
2358 * already have been incremented past the NUL character
2359 * (since all states make transitions on EOB to the
2360 * end-of-buffer state). Contrast this with the test
2363 if ( yyg
->yy_c_buf_p
<= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
2364 { /* This was really a NUL. */
2365 yy_state_type yy_next_state
;
2367 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
2369 yy_current_state
= yy_get_previous_state( yyscanner
);
2371 /* Okay, we're now positioned to make the NUL
2372 * transition. We couldn't have
2373 * yy_get_previous_state() go ahead and do it
2374 * for us because it doesn't know how to deal
2375 * with the possibility of jamming (and we don't
2376 * want to build jamming into it because then it
2377 * will run more slowly).
2380 yy_next_state
= yy_try_NUL_trans( yy_current_state
, yyscanner
);
2382 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2384 if ( yy_next_state
)
2386 /* Consume the NUL. */
2387 yy_cp
= ++yyg
->yy_c_buf_p
;
2388 yy_current_state
= yy_next_state
;
2394 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
2395 yy_cp
= yyg
->yy_c_buf_p
;
2396 goto yy_find_action
;
2400 else switch ( yy_get_next_buffer( yyscanner
) )
2402 case EOB_ACT_END_OF_FILE
:
2404 yyg
->yy_did_buffer_switch_on_eof
= 0;
2406 if ( config_wrap(yyscanner
) )
2408 /* Note: because we've taken care in
2409 * yy_get_next_buffer() to have set up
2410 * yytext, we can now set up
2411 * yy_c_buf_p so that if some total
2412 * hoser (like flex itself) wants to
2413 * call the scanner after we return the
2414 * YY_NULL, it'll still work - another
2415 * YY_NULL will get returned.
2417 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2419 yy_act
= YY_STATE_EOF(YY_START
);
2425 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
2431 case EOB_ACT_CONTINUE_SCAN
:
2433 yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
2435 yy_current_state
= yy_get_previous_state( yyscanner
);
2437 yy_cp
= yyg
->yy_c_buf_p
;
2438 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2441 case EOB_ACT_LAST_MATCH
:
2443 &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
];
2445 yy_current_state
= yy_get_previous_state( yyscanner
);
2447 yy_cp
= yyg
->yy_c_buf_p
;
2448 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2449 goto yy_find_action
;
2456 "fatal flex scanner internal error--no action found" );
2457 } /* end of action switch */
2458 } /* end of scanning one token */
2459 } /* end of config_lex */
2460 /* %ok-for-header */
2463 /* %not-for-header */
2465 /* %ok-for-header */
2469 /* yy_get_next_buffer - try to read in a new buffer
2471 * Returns a code representing an action:
2472 * EOB_ACT_LAST_MATCH -
2473 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2474 * EOB_ACT_END_OF_FILE - end of file
2477 static int yy_get_next_buffer (yyscan_t yyscanner
)
2482 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2483 register char *dest
= YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
;
2484 register char *source
= yyg
->yytext_ptr
;
2485 register int number_to_move
, i
;
2488 if ( yyg
->yy_c_buf_p
> &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] )
2490 "fatal flex scanner internal error--end of buffer missed" );
2492 if ( YY_CURRENT_BUFFER_LVALUE
->yy_fill_buffer
== 0 )
2493 { /* Don't try to fill the buffer, so this is an EOF. */
2494 if ( yyg
->yy_c_buf_p
- yyg
->yytext_ptr
- YY_MORE_ADJ
== 1 )
2496 /* We matched a single character, the EOB, so
2497 * treat this as a final EOF.
2499 return EOB_ACT_END_OF_FILE
;
2504 /* We matched some text prior to the EOB, first
2507 return EOB_ACT_LAST_MATCH
;
2511 /* Try to read more data. */
2513 /* First move last chars to start of buffer. */
2514 number_to_move
= (int) (yyg
->yy_c_buf_p
- yyg
->yytext_ptr
) - 1;
2516 for ( i
= 0; i
< number_to_move
; ++i
)
2517 *(dest
++) = *(source
++);
2519 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_EOF_PENDING
)
2520 /* don't do the read, it's not guaranteed to return an EOF,
2523 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
= 0;
2528 YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
- number_to_move
- 1;
2530 while ( num_to_read
<= 0 )
2531 { /* Not enough room in the buffer - grow it. */
2533 /* just a shorter name for the current buffer */
2534 YY_BUFFER_STATE b
= YY_CURRENT_BUFFER
;
2536 int yy_c_buf_p_offset
=
2537 (int) (yyg
->yy_c_buf_p
- b
->yy_ch_buf
);
2539 if ( b
->yy_is_our_buffer
)
2541 int new_size
= b
->yy_buf_size
* 2;
2543 if ( new_size
<= 0 )
2544 b
->yy_buf_size
+= b
->yy_buf_size
/ 8;
2546 b
->yy_buf_size
*= 2;
2548 b
->yy_ch_buf
= (char *)
2549 /* Include room in for 2 EOB chars. */
2550 config_realloc((void *) b
->yy_ch_buf
,b
->yy_buf_size
+ 2 ,yyscanner
);
2553 /* Can't grow it, we don't own it. */
2556 if ( ! b
->yy_ch_buf
)
2558 "fatal error - scanner input buffer overflow" );
2560 yyg
->yy_c_buf_p
= &b
->yy_ch_buf
[yy_c_buf_p_offset
];
2562 num_to_read
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
-
2567 if ( num_to_read
> YY_READ_BUF_SIZE
)
2568 num_to_read
= YY_READ_BUF_SIZE
;
2570 /* Read in more data. */
2571 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[number_to_move
]),
2572 yyg
->yy_n_chars
, (size_t) num_to_read
);
2574 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2577 if ( yyg
->yy_n_chars
== 0 )
2579 if ( number_to_move
== YY_MORE_ADJ
)
2581 ret_val
= EOB_ACT_END_OF_FILE
;
2582 config_restart(yyin
,yyscanner
);
2587 ret_val
= EOB_ACT_LAST_MATCH
;
2588 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
=
2589 YY_BUFFER_EOF_PENDING
;
2594 ret_val
= EOB_ACT_CONTINUE_SCAN
;
2596 if ((yy_size_t
) (yyg
->yy_n_chars
+ number_to_move
) > YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
) {
2597 /* Extend the array by 50%, plus the number we really need. */
2598 yy_size_t new_size
= yyg
->yy_n_chars
+ number_to_move
+ (yyg
->yy_n_chars
>> 1);
2599 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
= (char *) config_realloc((void *) YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
,new_size
,yyscanner
);
2600 if ( ! YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
)
2601 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2604 yyg
->yy_n_chars
+= number_to_move
;
2605 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] = YY_END_OF_BUFFER_CHAR
;
2606 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] = YY_END_OF_BUFFER_CHAR
;
2608 yyg
->yytext_ptr
= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[0];
2613 /* yy_get_previous_state - get the state just before the EOB char was reached */
2616 /* %not-for-header */
2618 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
)
2623 register yy_state_type yy_current_state
;
2624 register char *yy_cp
;
2625 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2627 /* %% [15.0] code to get the start state into yy_current_state goes here */
2628 yy_current_state
= yyg
->yy_start
;
2629 yy_current_state
+= YY_AT_BOL();
2631 for ( yy_cp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
; yy_cp
< yyg
->yy_c_buf_p
; ++yy_cp
)
2633 /* %% [16.0] code to find the next state goes here */
2634 register YY_CHAR yy_c
= (*yy_cp
? yy_ec
[YY_SC_TO_UI(*yy_cp
)] : 1);
2635 if ( yy_accept
[yy_current_state
] )
2637 yyg
->yy_last_accepting_state
= yy_current_state
;
2638 yyg
->yy_last_accepting_cpos
= yy_cp
;
2640 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2642 yy_current_state
= (int) yy_def
[yy_current_state
];
2643 if ( yy_current_state
>= 823 )
2644 yy_c
= yy_meta
[(unsigned int) yy_c
];
2646 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2649 return yy_current_state
;
2652 /* yy_try_NUL_trans - try to make a transition on the NUL character
2655 * next_state = yy_try_NUL_trans( current_state );
2658 static yy_state_type
yy_try_NUL_trans (yy_state_type yy_current_state
, yyscan_t yyscanner
)
2663 register int yy_is_jam
;
2664 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
; /* This var may be unused depending upon options. */
2665 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
2666 register char *yy_cp
= yyg
->yy_c_buf_p
;
2668 register YY_CHAR yy_c
= 1;
2669 if ( yy_accept
[yy_current_state
] )
2671 yyg
->yy_last_accepting_state
= yy_current_state
;
2672 yyg
->yy_last_accepting_cpos
= yy_cp
;
2674 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2676 yy_current_state
= (int) yy_def
[yy_current_state
];
2677 if ( yy_current_state
>= 823 )
2678 yy_c
= yy_meta
[(unsigned int) yy_c
];
2680 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2681 yy_is_jam
= (yy_current_state
== 822);
2683 return yy_is_jam
? 0 : yy_current_state
;
2693 static int yyinput (yyscan_t yyscanner
)
2695 static int input (yyscan_t yyscanner
)
2703 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2705 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2707 if ( *yyg
->yy_c_buf_p
== YY_END_OF_BUFFER_CHAR
)
2709 /* yy_c_buf_p now points to the character we want to return.
2710 * If this occurs *before* the EOB characters, then it's a
2711 * valid NUL; if not, then we've hit the end of the buffer.
2713 if ( yyg
->yy_c_buf_p
< &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
2714 /* This was really a NUL. */
2715 *yyg
->yy_c_buf_p
= '\0';
2718 { /* need more input */
2719 int offset
= yyg
->yy_c_buf_p
- yyg
->yytext_ptr
;
2722 switch ( yy_get_next_buffer( yyscanner
) )
2724 case EOB_ACT_LAST_MATCH
:
2725 /* This happens because yy_g_n_b()
2726 * sees that we've accumulated a
2727 * token and flags that we need to
2728 * try matching the token before
2729 * proceeding. But for input(),
2730 * there's no matching to consider.
2731 * So convert the EOB_ACT_LAST_MATCH
2732 * to EOB_ACT_END_OF_FILE.
2735 /* Reset buffer status. */
2736 config_restart(yyin
,yyscanner
);
2740 case EOB_ACT_END_OF_FILE
:
2742 if ( config_wrap(yyscanner
) )
2745 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
2748 return yyinput(yyscanner
);
2750 return input(yyscanner
);
2754 case EOB_ACT_CONTINUE_SCAN
:
2755 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ offset
;
2761 c
= *(unsigned char *) yyg
->yy_c_buf_p
; /* cast for 8-bit char's */
2762 *yyg
->yy_c_buf_p
= '\0'; /* preserve yytext */
2763 yyg
->yy_hold_char
= *++yyg
->yy_c_buf_p
;
2765 /* %% [19.0] update BOL and yylineno */
2766 YY_CURRENT_BUFFER_LVALUE
->yy_at_bol
= (c
== '\n');
2771 #endif /* ifndef YY_NO_INPUT */
2774 /** Immediately switch to a different input stream.
2775 * @param input_file A readable stream.
2776 * @param yyscanner The scanner object.
2777 * @note This function does not reset the start condition to @c INITIAL .
2780 void config_restart (FILE * input_file
, yyscan_t yyscanner
)
2785 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2787 if ( ! YY_CURRENT_BUFFER
){
2788 config_ensure_buffer_stack (yyscanner
);
2789 YY_CURRENT_BUFFER_LVALUE
=
2790 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
2793 config__init_buffer(YY_CURRENT_BUFFER
,input_file
,yyscanner
);
2794 config__load_buffer_state(yyscanner
);
2797 /** Switch to a different input buffer.
2798 * @param new_buffer The new input buffer.
2799 * @param yyscanner The scanner object.
2802 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
2807 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2809 /* TODO. We should be able to replace this entire function body
2811 * config_pop_buffer_state();
2812 * config_push_buffer_state(new_buffer);
2814 config_ensure_buffer_stack (yyscanner
);
2815 if ( YY_CURRENT_BUFFER
== new_buffer
)
2818 if ( YY_CURRENT_BUFFER
)
2820 /* Flush out information for old buffer. */
2821 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2822 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
2823 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2826 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
2827 config__load_buffer_state(yyscanner
);
2829 /* We don't actually know whether we did this switch during
2830 * EOF (config_wrap()) processing, but the only time this flag
2831 * is looked at is after config_wrap() is called, so it's safe
2832 * to go ahead and always set it.
2834 yyg
->yy_did_buffer_switch_on_eof
= 1;
2838 static void config__load_buffer_state (yyscan_t yyscanner
)
2843 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2844 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
2845 yyg
->yytext_ptr
= yyg
->yy_c_buf_p
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
;
2846 yyin
= YY_CURRENT_BUFFER_LVALUE
->yy_input_file
;
2847 yyg
->yy_hold_char
= *yyg
->yy_c_buf_p
;
2850 /** Allocate and initialize an input buffer state.
2851 * @param file A readable stream.
2852 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2853 * @param yyscanner The scanner object.
2854 * @return the allocated buffer state.
2857 YY_BUFFER_STATE
config__create_buffer (FILE * file
, int size
, yyscan_t yyscanner
)
2864 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
2866 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2868 b
->yy_buf_size
= size
;
2870 /* yy_ch_buf has to be 2 characters longer than the size given because
2871 * we need to put in 2 end-of-buffer characters.
2873 b
->yy_ch_buf
= (char *) config_alloc(b
->yy_buf_size
+ 2 ,yyscanner
);
2874 if ( ! b
->yy_ch_buf
)
2875 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2877 b
->yy_is_our_buffer
= 1;
2879 config__init_buffer(b
,file
,yyscanner
);
2884 /** Destroy the buffer.
2885 * @param b a buffer created with config__create_buffer()
2886 * @param yyscanner The scanner object.
2889 void config__delete_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2894 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2899 if ( b
== YY_CURRENT_BUFFER
) /* Not sure if we should pop here. */
2900 YY_CURRENT_BUFFER_LVALUE
= (YY_BUFFER_STATE
) 0;
2902 if ( b
->yy_is_our_buffer
)
2903 config_free((void *) b
->yy_ch_buf
,yyscanner
);
2905 config_free((void *) b
,yyscanner
);
2911 extern int isatty (int );
2912 #endif /* __cplusplus */
2919 /* Initializes or reinitializes a buffer.
2920 * This function is sometimes called more than once on the same buffer,
2921 * such as during a config_restart() or at EOF.
2924 static void config__init_buffer (YY_BUFFER_STATE b
, FILE * file
, yyscan_t yyscanner
)
2931 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2933 config__flush_buffer(b
,yyscanner
);
2935 b
->yy_input_file
= file
;
2936 b
->yy_fill_buffer
= 1;
2938 /* If b is the current buffer, then config__init_buffer was _probably_
2939 * called from config_restart() or through yy_get_next_buffer.
2940 * In that case, we don't want to reset the lineno or column.
2942 if (b
!= YY_CURRENT_BUFFER
){
2943 b
->yy_bs_lineno
= 1;
2944 b
->yy_bs_column
= 0;
2949 b
->yy_is_interactive
= file
? (isatty( fileno(file
) ) > 0) : 0;
2957 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2958 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2959 * @param yyscanner The scanner object.
2962 void config__flush_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2967 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2973 /* We always need two end-of-buffer characters. The first causes
2974 * a transition to the end-of-buffer state. The second causes
2975 * a jam in that state.
2977 b
->yy_ch_buf
[0] = YY_END_OF_BUFFER_CHAR
;
2978 b
->yy_ch_buf
[1] = YY_END_OF_BUFFER_CHAR
;
2980 b
->yy_buf_pos
= &b
->yy_ch_buf
[0];
2983 b
->yy_buffer_status
= YY_BUFFER_NEW
;
2985 if ( b
== YY_CURRENT_BUFFER
)
2986 config__load_buffer_state(yyscanner
);
2990 /** Pushes the new state onto the stack. The new state becomes
2991 * the current state. This function will allocate the stack
2993 * @param new_buffer The new state.
2994 * @param yyscanner The scanner object.
2997 void config_push_buffer_state (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
3002 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3003 if (new_buffer
== NULL
)
3006 config_ensure_buffer_stack(yyscanner
);
3008 /* This block is copied from config__switch_to_buffer. */
3009 if ( YY_CURRENT_BUFFER
)
3011 /* Flush out information for old buffer. */
3012 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
3013 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
3014 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
3017 /* Only push if top exists. Otherwise, replace top. */
3018 if (YY_CURRENT_BUFFER
)
3019 yyg
->yy_buffer_stack_top
++;
3020 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
3022 /* copied from config__switch_to_buffer. */
3023 config__load_buffer_state(yyscanner
);
3024 yyg
->yy_did_buffer_switch_on_eof
= 1;
3029 /** Removes and deletes the top of the stack, if present.
3030 * The next element becomes the new top.
3031 * @param yyscanner The scanner object.
3034 void config_pop_buffer_state (yyscan_t yyscanner
)
3039 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3040 if (!YY_CURRENT_BUFFER
)
3043 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
3044 YY_CURRENT_BUFFER_LVALUE
= NULL
;
3045 if (yyg
->yy_buffer_stack_top
> 0)
3046 --yyg
->yy_buffer_stack_top
;
3048 if (YY_CURRENT_BUFFER
) {
3049 config__load_buffer_state(yyscanner
);
3050 yyg
->yy_did_buffer_switch_on_eof
= 1;
3056 /* Allocates the stack if it does not exist.
3057 * Guarantees space for at least one push.
3060 static void config_ensure_buffer_stack (yyscan_t yyscanner
)
3066 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3068 if (!yyg
->yy_buffer_stack
) {
3070 /* First allocation is just for 2 elements, since we don't know if this
3071 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3072 * immediate realloc on the next call.
3075 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_alloc
3076 (num_to_alloc
* sizeof(struct yy_buffer_state
*)
3078 if ( ! yyg
->yy_buffer_stack
)
3079 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
3081 memset(yyg
->yy_buffer_stack
, 0, num_to_alloc
* sizeof(struct yy_buffer_state
*));
3083 yyg
->yy_buffer_stack_max
= num_to_alloc
;
3084 yyg
->yy_buffer_stack_top
= 0;
3088 if (yyg
->yy_buffer_stack_top
>= (yyg
->yy_buffer_stack_max
) - 1){
3090 /* Increase the buffer to prepare for a possible push. */
3091 int grow_size
= 8 /* arbitrary grow size */;
3093 num_to_alloc
= yyg
->yy_buffer_stack_max
+ grow_size
;
3094 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_realloc
3095 (yyg
->yy_buffer_stack
,
3096 num_to_alloc
* sizeof(struct yy_buffer_state
*)
3098 if ( ! yyg
->yy_buffer_stack
)
3099 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
3101 /* zero only the new slots.*/
3102 memset(yyg
->yy_buffer_stack
+ yyg
->yy_buffer_stack_max
, 0, grow_size
* sizeof(struct yy_buffer_state
*));
3103 yyg
->yy_buffer_stack_max
= num_to_alloc
;
3109 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3110 * @param base the character buffer
3111 * @param size the size in bytes of the character buffer
3112 * @param yyscanner The scanner object.
3113 * @return the newly allocated buffer state object.
3115 YY_BUFFER_STATE
config__scan_buffer (char * base
, yy_size_t size
, yyscan_t yyscanner
)
3120 base
[size
-2] != YY_END_OF_BUFFER_CHAR
||
3121 base
[size
-1] != YY_END_OF_BUFFER_CHAR
)
3122 /* They forgot to leave room for the EOB's. */
3125 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
3127 YY_FATAL_ERROR( "out of dynamic memory in config__scan_buffer()" );
3129 b
->yy_buf_size
= size
- 2; /* "- 2" to take care of EOB's */
3130 b
->yy_buf_pos
= b
->yy_ch_buf
= base
;
3131 b
->yy_is_our_buffer
= 0;
3132 b
->yy_input_file
= 0;
3133 b
->yy_n_chars
= b
->yy_buf_size
;
3134 b
->yy_is_interactive
= 0;
3136 b
->yy_fill_buffer
= 0;
3137 b
->yy_buffer_status
= YY_BUFFER_NEW
;
3139 config__switch_to_buffer(b
,yyscanner
);
3146 /** Setup the input buffer state to scan a string. The next call to config_lex() will
3147 * scan from a @e copy of @a str.
3148 * @param yystr a NUL-terminated string to scan
3149 * @param yyscanner The scanner object.
3150 * @return the newly allocated buffer state object.
3151 * @note If you want to scan bytes that may contain NUL values, then use
3152 * config__scan_bytes() instead.
3154 YY_BUFFER_STATE
config__scan_string (yyconst
char * yystr
, yyscan_t yyscanner
)
3157 return config__scan_bytes(yystr
,strlen(yystr
) ,yyscanner
);
3162 /** Setup the input buffer state to scan the given bytes. The next call to config_lex() will
3163 * scan from a @e copy of @a bytes.
3164 * @param bytes the byte buffer to scan
3165 * @param len the number of bytes in the buffer pointed to by @a bytes.
3166 * @param yyscanner The scanner object.
3167 * @return the newly allocated buffer state object.
3169 YY_BUFFER_STATE
config__scan_bytes (yyconst
char * yybytes
, int _yybytes_len
, yyscan_t yyscanner
)
3176 /* Get memory for full buffer, including space for trailing EOB's. */
3177 n
= _yybytes_len
+ 2;
3178 buf
= (char *) config_alloc(n
,yyscanner
);
3180 YY_FATAL_ERROR( "out of dynamic memory in config__scan_bytes()" );
3182 for ( i
= 0; i
< _yybytes_len
; ++i
)
3183 buf
[i
] = yybytes
[i
];
3185 buf
[_yybytes_len
] = buf
[_yybytes_len
+1] = YY_END_OF_BUFFER_CHAR
;
3187 b
= config__scan_buffer(buf
,n
,yyscanner
);
3189 YY_FATAL_ERROR( "bad buffer in config__scan_bytes()" );
3191 /* It's okay to grow etc. this buffer, and we should throw it
3192 * away when we're done.
3194 b
->yy_is_our_buffer
= 1;
3200 #ifndef YY_EXIT_FAILURE
3201 #define YY_EXIT_FAILURE 2
3205 static void yy_fatal_error (yyconst
char* msg
, yyscan_t yyscanner
)
3207 (void) fprintf( stderr
, "%s\n", msg
);
3208 exit( YY_EXIT_FAILURE
);
3214 /* Redefine yyless() so it works in section 3 code. */
3220 /* Undo effects of setting up yytext. */ \
3221 int yyless_macro_arg = (n); \
3222 YY_LESS_LINENO(yyless_macro_arg);\
3223 yytext[yyleng] = yyg->yy_hold_char; \
3224 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
3225 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
3226 *yyg->yy_c_buf_p = '\0'; \
3227 yyleng = yyless_macro_arg; \
3231 /* Accessor methods (get/set functions) to struct members. */
3236 /** Get the user-defined data for this scanner.
3237 * @param yyscanner The scanner object.
3239 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
)
3241 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3247 /** Get the current line number.
3248 * @param yyscanner The scanner object.
3250 int config_get_lineno (yyscan_t yyscanner
)
3252 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3254 if (! YY_CURRENT_BUFFER
)
3260 /** Get the current column number.
3261 * @param yyscanner The scanner object.
3263 int config_get_column (yyscan_t yyscanner
)
3265 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3267 if (! YY_CURRENT_BUFFER
)
3273 /** Get the input stream.
3274 * @param yyscanner The scanner object.
3276 FILE *config_get_in (yyscan_t yyscanner
)
3278 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3282 /** Get the output stream.
3283 * @param yyscanner The scanner object.
3285 FILE *config_get_out (yyscan_t yyscanner
)
3287 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3291 /** Get the length of the current token.
3292 * @param yyscanner The scanner object.
3294 int config_get_leng (yyscan_t yyscanner
)
3296 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3300 /** Get the current token.
3301 * @param yyscanner The scanner object.
3304 char *config_get_text (yyscan_t yyscanner
)
3306 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3312 /** Set the user-defined data. This data is never touched by the scanner.
3313 * @param user_defined The data to be associated with this scanner.
3314 * @param yyscanner The scanner object.
3316 void config_set_extra (YY_EXTRA_TYPE user_defined
, yyscan_t yyscanner
)
3318 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3319 yyextra
= user_defined
;
3324 /** Set the current line number.
3325 * @param line_number
3326 * @param yyscanner The scanner object.
3328 void config_set_lineno (int line_number
, yyscan_t yyscanner
)
3330 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3332 /* lineno is only valid if an input buffer exists. */
3333 if (! YY_CURRENT_BUFFER
)
3334 yy_fatal_error( "config_set_lineno called with no buffer" , yyscanner
);
3336 yylineno
= line_number
;
3339 /** Set the current column.
3340 * @param line_number
3341 * @param yyscanner The scanner object.
3343 void config_set_column (int column_no
, yyscan_t yyscanner
)
3345 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3347 /* column is only valid if an input buffer exists. */
3348 if (! YY_CURRENT_BUFFER
)
3349 yy_fatal_error( "config_set_column called with no buffer" , yyscanner
);
3351 yycolumn
= column_no
;
3354 /** Set the input stream. This does not discard the current
3356 * @param in_str A readable stream.
3357 * @param yyscanner The scanner object.
3358 * @see config__switch_to_buffer
3360 void config_set_in (FILE * in_str
, yyscan_t yyscanner
)
3362 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3366 void config_set_out (FILE * out_str
, yyscan_t yyscanner
)
3368 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3372 int config_get_debug (yyscan_t yyscanner
)
3374 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3375 return yy_flex_debug
;
3378 void config_set_debug (int bdebug
, yyscan_t yyscanner
)
3380 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3381 yy_flex_debug
= bdebug
;
3387 /* Accessor methods for yylval and yylloc */
3389 /* %if-bison-bridge */
3391 YYSTYPE
* config_get_lval (yyscan_t yyscanner
)
3393 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3397 void config_set_lval (YYSTYPE
* yylval_param
, yyscan_t yyscanner
)
3399 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3400 yylval
= yylval_param
;
3405 /* User-visible API */
3407 /* config_lex_init is special because it creates the scanner itself, so it is
3408 * the ONLY reentrant function that doesn't take the scanner as the last argument.
3409 * That's why we explicitly handle the declaration, instead of using our macros.
3412 int config_lex_init(yyscan_t
* ptr_yy_globals
)
3415 if (ptr_yy_globals
== NULL
){
3420 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), NULL
);
3422 if (*ptr_yy_globals
== NULL
){
3427 /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
3428 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
3430 return yy_init_globals ( *ptr_yy_globals
);
3433 /* config_lex_init_extra has the same functionality as config_lex_init, but follows the
3434 * convention of taking the scanner as the last argument. Note however, that
3435 * this is a *pointer* to a scanner, as it will be allocated by this call (and
3436 * is the reason, too, why this function also must handle its own declaration).
3437 * The user defined value in the first argument will be available to config_alloc in
3438 * the yyextra field.
3441 int config_lex_init_extra(YY_EXTRA_TYPE yy_user_defined
,yyscan_t
* ptr_yy_globals
)
3444 struct yyguts_t dummy_yyguts
;
3446 config_set_extra (yy_user_defined
, &dummy_yyguts
);
3448 if (ptr_yy_globals
== NULL
){
3453 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), &dummy_yyguts
);
3455 if (*ptr_yy_globals
== NULL
){
3460 /* By setting to 0xAA, we expose bugs in
3461 yy_init_globals. Leave at 0x00 for releases. */
3462 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
3464 config_set_extra (yy_user_defined
, *ptr_yy_globals
);
3466 return yy_init_globals ( *ptr_yy_globals
);
3469 /* %endif if-c-only */
3472 static int yy_init_globals (yyscan_t yyscanner
)
3474 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3475 /* Initialization is the same as for the non-reentrant scanner.
3476 * This function is called from config_lex_destroy(), so don't allocate here.
3479 yyg
->yy_buffer_stack
= 0;
3480 yyg
->yy_buffer_stack_top
= 0;
3481 yyg
->yy_buffer_stack_max
= 0;
3482 yyg
->yy_c_buf_p
= (char *) 0;
3486 yyg
->yy_start_stack_ptr
= 0;
3487 yyg
->yy_start_stack_depth
= 0;
3488 yyg
->yy_start_stack
= NULL
;
3490 /* Defined in main.c */
3499 /* For future reference: Set errno on error, since we are called by
3506 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
3507 /* config_lex_destroy is for both reentrant and non-reentrant scanners. */
3508 int config_lex_destroy (yyscan_t yyscanner
)
3510 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3512 /* Pop the buffer stack, destroying each element. */
3513 while(YY_CURRENT_BUFFER
){
3514 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
3515 YY_CURRENT_BUFFER_LVALUE
= NULL
;
3516 config_pop_buffer_state(yyscanner
);
3519 /* Destroy the stack itself. */
3520 config_free(yyg
->yy_buffer_stack
,yyscanner
);
3521 yyg
->yy_buffer_stack
= NULL
;
3523 /* Destroy the start condition stack. */
3524 config_free(yyg
->yy_start_stack
,yyscanner
);
3525 yyg
->yy_start_stack
= NULL
;
3527 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3528 * config_lex() is called, initialization will occur. */
3529 yy_init_globals( yyscanner
);
3532 /* Destroy the main struct (reentrant only). */
3533 config_free ( yyscanner
, yyscanner
);
3541 * Internal utility routines.
3545 static void yy_flex_strncpy (char* s1
, yyconst
char * s2
, int n
, yyscan_t yyscanner
)
3548 for ( i
= 0; i
< n
; ++i
)
3553 #ifdef YY_NEED_STRLEN
3554 static int yy_flex_strlen (yyconst
char * s
, yyscan_t yyscanner
)
3557 for ( n
= 0; s
[n
]; ++n
)
3564 void *config_alloc (yy_size_t size
, yyscan_t yyscanner
)
3566 return (void *) malloc( size
);
3569 void *config_realloc (void * ptr
, yy_size_t size
, yyscan_t yyscanner
)
3571 /* The cast to (char *) in the following accommodates both
3572 * implementations that use char* generic pointers, and those
3573 * that use void* generic pointers. It works with the latter
3574 * because both ANSI C and C++ allow castless assignment from
3575 * any pointer type to void*, and deal with argument conversions
3576 * as though doing an assignment.
3578 return (void *) realloc( (char *) ptr
, size
);
3581 void config_free (void * ptr
, yyscan_t yyscanner
)
3583 free( (char *) ptr
); /* see config_realloc() for (char *) cast */
3586 /* %if-tables-serialization definitions */
3587 /* %define-yytables The name for this specific scanner's tables. */
3588 #define YYTABLES_NAME "yytables"
3591 /* %ok-for-header */
3593 #line 229 "libmemcached/options/scanner.l"
3597 void Context::init_scanner()
3599 config_lex_init(&scanner
);
3600 config_set_extra(this,scanner
);
3603 void Context::destroy_scanner()
3605 config_lex_destroy(scanner
);