1 #line 2 "libmemcached/options/scanner.cc"
2 #line 22 "libmemcached/options/scanner.l"
4 #pragma GCC diagnostic ignored "-Wold-style-cast"
5 #pragma GCC diagnostic ignored "-Wunused-parameter"
7 #include <libmemcached/options/context.h>
8 #include <libmemcached/options/parser.h>
9 #include <libmemcached/options/string.h>
10 #include <libmemcached/options/symbol.h>
12 #define YY_EXTRA_TYPE Context*
17 #line 18 "libmemcached/options/scanner.cc"
19 #define YY_INT_ALIGNED short int
21 /* A lexical scanner generated by flex */
26 /* %if-not-reentrant */
32 #define YY_FLEX_MAJOR_VERSION 2
33 #define YY_FLEX_MINOR_VERSION 5
34 #define YY_FLEX_SUBMINOR_VERSION 35
35 #if YY_FLEX_SUBMINOR_VERSION > 0
50 /* First, we deal with platform-specific or compiler-specific issues. */
52 /* begin standard C headers. */
60 /* %if-tables-serialization */
62 /* end standard C headers. */
65 /* flex integer type definitions */
70 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
72 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
74 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
75 * if you want the limit (max/min) macros for int types.
77 #ifndef __STDC_LIMIT_MACROS
78 #define __STDC_LIMIT_MACROS 1
82 typedef int8_t flex_int8_t
;
83 typedef uint8_t flex_uint8_t
;
84 typedef int16_t flex_int16_t
;
85 typedef uint16_t flex_uint16_t
;
86 typedef int32_t flex_int32_t
;
87 typedef uint32_t flex_uint32_t
;
89 typedef signed char flex_int8_t
;
90 typedef short int flex_int16_t
;
91 typedef int flex_int32_t
;
92 typedef unsigned char flex_uint8_t
;
93 typedef unsigned short int flex_uint16_t
;
94 typedef unsigned int flex_uint32_t
;
97 /* Limits of integral types. */
99 #define INT8_MIN (-128)
102 #define INT16_MIN (-32767-1)
105 #define INT32_MIN (-2147483647-1)
108 #define INT8_MAX (127)
111 #define INT16_MAX (32767)
114 #define INT32_MAX (2147483647)
117 #define UINT8_MAX (255U)
120 #define UINT16_MAX (65535U)
123 #define UINT32_MAX (4294967295U)
126 #endif /* ! FLEXINT_H */
135 /* The "const" storage-class-modifier is valid. */
138 #else /* ! __cplusplus */
140 /* C99 requires __STDC__ to be defined as 1. */
141 #if defined (__STDC__)
145 #endif /* defined (__STDC__) */
146 #endif /* ! __cplusplus */
149 #define yyconst const
154 /* %not-for-header */
156 /* Returned upon end-of-file. */
160 /* %not-for-header */
162 /* Promotes a possibly negative, possibly signed char to an unsigned
163 * integer for use as an array index. If the signed char is negative,
164 * we want to instead treat it as an 8-bit unsigned char, hence the
167 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
172 /* An opaque pointer. */
173 #ifndef YY_TYPEDEF_YY_SCANNER_T
174 #define YY_TYPEDEF_YY_SCANNER_T
175 typedef void* yyscan_t
;
178 /* For convenience, these vars (plus the bison vars far below)
179 are macros in the reentrant scanner. */
180 #define yyin yyg->yyin_r
181 #define yyout yyg->yyout_r
182 #define yyextra yyg->yyextra_r
183 #define yyleng yyg->yyleng_r
184 #define yytext yyg->yytext_r
185 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
186 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
187 #define yy_flex_debug yyg->yy_flex_debug_r
191 /* %if-not-reentrant */
194 /* Enter a start condition. This macro really ought to take a parameter,
195 * but we do it the disgusting crufty way forced on us by the ()-less
196 * definition of BEGIN.
198 #define BEGIN yyg->yy_start = 1 + 2 *
200 /* Translate the current start state into a value that can be later handed
201 * to BEGIN to return to the state. The YYSTATE alias is for lex
204 #define YY_START ((yyg->yy_start - 1) / 2)
205 #define YYSTATE YY_START
207 /* Action number for EOF rule of a given start state. */
208 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
210 /* Special action meaning "start processing a new file". */
211 #define YY_NEW_FILE config_restart(yyin ,yyscanner )
213 #define YY_END_OF_BUFFER_CHAR 0
215 /* Size of default input buffer. */
217 #define YY_BUF_SIZE 16384
220 /* The state buf must be large enough to hold one state per character in the main buffer.
222 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
224 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
225 #define YY_TYPEDEF_YY_BUFFER_STATE
226 typedef struct yy_buffer_state
*YY_BUFFER_STATE
;
229 /* %if-not-reentrant */
233 /* %if-not-reentrant */
237 #define EOB_ACT_CONTINUE_SCAN 0
238 #define EOB_ACT_END_OF_FILE 1
239 #define EOB_ACT_LAST_MATCH 2
241 #define YY_LESS_LINENO(n)
243 /* Return all but the first "n" matched characters back to the input stream. */
247 /* Undo effects of setting up yytext. */ \
248 int yyless_macro_arg = (n); \
249 YY_LESS_LINENO(yyless_macro_arg);\
250 *yy_cp = yyg->yy_hold_char; \
251 YY_RESTORE_YY_MORE_OFFSET \
252 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
253 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
257 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
259 #ifndef YY_TYPEDEF_YY_SIZE_T
260 #define YY_TYPEDEF_YY_SIZE_T
261 typedef size_t yy_size_t
;
264 #ifndef YY_STRUCT_YY_BUFFER_STATE
265 #define YY_STRUCT_YY_BUFFER_STATE
266 struct yy_buffer_state
275 char *yy_ch_buf
; /* input buffer */
276 char *yy_buf_pos
; /* current position in input buffer */
278 /* Size of input buffer in bytes, not including room for EOB
281 yy_size_t yy_buf_size
;
283 /* Number of characters read into yy_ch_buf, not including EOB
288 /* Whether we "own" the buffer - i.e., we know we created it,
289 * and can realloc() it to grow it, and should free() it to
292 int yy_is_our_buffer
;
294 /* Whether this is an "interactive" input source; if so, and
295 * if we're using stdio for input, then we want to use getc()
296 * instead of fread(), to make sure we stop fetching input after
299 int yy_is_interactive
;
301 /* Whether we're considered to be at the beginning of a line.
302 * If so, '^' rules will be active on the next match, otherwise
307 int yy_bs_lineno
; /**< The line count. */
308 int yy_bs_column
; /**< The column count. */
310 /* Whether to try to fill the input buffer when we reach the
315 int yy_buffer_status
;
317 #define YY_BUFFER_NEW 0
318 #define YY_BUFFER_NORMAL 1
319 /* When an EOF's been seen but there's still some text to process
320 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
321 * shouldn't try reading from the input source any more. We might
322 * still have a bunch of tokens to match, though, because of
323 * possible backing-up.
325 * When we actually see the EOF, we change the status to "new"
326 * (via config_restart()), so that the user can continue scanning by
327 * just pointing yyin at a new input file.
329 #define YY_BUFFER_EOF_PENDING 2
332 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
334 /* %if-c-only Standard (non-C++) definition */
335 /* %not-for-header */
337 /* %if-not-reentrant */
343 /* We provide macros for accessing buffer states in case in the
344 * future we want to put the buffer states in a more general
347 * Returns the top of the stack, or NULL.
349 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
350 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
353 /* Same as previous macro, but useful when we know that the buffer stack is not
354 * NULL or when we need an lvalue. For internal use only.
356 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
358 /* %if-c-only Standard (non-C++) definition */
360 /* %if-not-reentrant */
361 /* %not-for-header */
367 void config_restart (FILE *input_file
,yyscan_t yyscanner
);
368 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
369 YY_BUFFER_STATE
config__create_buffer (FILE *file
,int size
,yyscan_t yyscanner
);
370 void config__delete_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
371 void config__flush_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
372 void config_push_buffer_state (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
373 void config_pop_buffer_state (yyscan_t yyscanner
);
375 static void config_ensure_buffer_stack (yyscan_t yyscanner
);
376 static void config__load_buffer_state (yyscan_t yyscanner
);
377 static void config__init_buffer (YY_BUFFER_STATE b
,FILE *file
,yyscan_t yyscanner
);
379 #define YY_FLUSH_BUFFER config__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
381 YY_BUFFER_STATE
config__scan_buffer (char *base
,yy_size_t size
,yyscan_t yyscanner
);
382 YY_BUFFER_STATE
config__scan_string (yyconst
char *yy_str
,yyscan_t yyscanner
);
383 YY_BUFFER_STATE
config__scan_bytes (yyconst
char *bytes
,int len
,yyscan_t yyscanner
);
387 void *config_alloc (yy_size_t
,yyscan_t yyscanner
);
388 void *config_realloc (void *,yy_size_t
,yyscan_t yyscanner
);
389 void config_free (void * ,yyscan_t yyscanner
);
391 #define yy_new_buffer config__create_buffer
393 #define yy_set_interactive(is_interactive) \
395 if ( ! YY_CURRENT_BUFFER ){ \
396 config_ensure_buffer_stack (yyscanner); \
397 YY_CURRENT_BUFFER_LVALUE = \
398 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
400 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
403 #define yy_set_bol(at_bol) \
405 if ( ! YY_CURRENT_BUFFER ){\
406 config_ensure_buffer_stack (yyscanner); \
407 YY_CURRENT_BUFFER_LVALUE = \
408 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
410 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
413 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
415 /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
416 /* Begin user sect3 */
418 #define config_wrap(n) 1
419 #define YY_SKIP_YYWRAP
423 typedef unsigned char YY_CHAR
;
425 typedef int yy_state_type
;
427 #define yytext_ptr yytext_r
429 /* %if-c-only Standard (non-C++) definition */
431 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
);
432 static yy_state_type
yy_try_NUL_trans (yy_state_type current_state
,yyscan_t yyscanner
);
433 static int yy_get_next_buffer (yyscan_t yyscanner
);
434 static void yy_fatal_error (yyconst
char msg
[] ,yyscan_t yyscanner
);
438 /* Done after the current pattern has been matched and before the
439 * corresponding action - sets up yytext.
441 #define YY_DO_BEFORE_ACTION \
442 yyg->yytext_ptr = yy_bp; \
443 /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
444 yyleng = (size_t) (yy_cp - yy_bp); \
445 yyg->yy_hold_char = *yy_cp; \
447 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
448 yyg->yy_c_buf_p = yy_cp;
450 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
451 #define YY_NUM_RULES 94
452 #define YY_END_OF_BUFFER 95
453 /* This struct is not used in this scanner,
454 but its presence is necessary. */
457 flex_int32_t yy_verify
;
460 static yyconst flex_int16_t yy_accept
[791] =
462 0, 0, 95, 93, 3, 3, 1, 93, 93, 2,
463 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
464 91, 91, 93, 0, 92, 74, 0, 2, 91, 0,
465 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
466 91, 91, 91, 91, 91, 91, 91, 91, 0, 4,
467 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
468 74, 74, 74, 74, 74, 0, 0, 0, 2, 87,
469 0, 91, 79, 91, 70, 91, 91, 91, 91, 91,
470 91, 78, 91, 91, 91, 91, 91, 91, 74, 74,
471 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
473 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
474 88, 88, 0, 0, 0, 2, 91, 91, 91, 91,
475 91, 91, 91, 91, 91, 91, 91, 91, 91, 72,
476 74, 74, 74, 74, 74, 74, 0, 0, 74, 74,
477 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
478 74, 74, 74, 74, 0, 0, 91, 68, 71, 73,
479 91, 0, 84, 91, 91, 91, 91, 91, 67, 91,
480 74, 74, 74, 74, 74, 74, 74, 0, 0, 0,
481 0, 0, 0, 74, 74, 74, 74, 74, 74, 0,
482 0, 74, 74, 0, 0, 74, 74, 74, 0, 0,
484 0, 74, 0, 74, 0, 0, 91, 0, 0, 0,
485 91, 91, 76, 85, 77, 91, 0, 0, 74, 74,
486 74, 74, 74, 0, 20, 0, 0, 0, 0, 0,
487 0, 0, 74, 74, 74, 0, 0, 74, 74, 0,
488 0, 74, 74, 0, 0, 74, 0, 0, 74, 0,
489 0, 0, 0, 0, 0, 0, 0, 74, 90, 0,
490 91, 0, 0, 82, 80, 66, 86, 69, 0, 0,
491 74, 74, 74, 74, 74, 0, 0, 0, 0, 0,
492 0, 0, 0, 74, 74, 74, 0, 0, 74, 74,
493 0, 0, 0, 0, 74, 0, 0, 74, 0, 0,
495 74, 0, 0, 0, 0, 0, 0, 0, 0, 74,
496 90, 89, 91, 83, 81, 0, 0, 0, 0, 0,
497 0, 74, 74, 74, 0, 0, 0, 0, 0, 0,
498 0, 0, 0, 0, 31, 0, 0, 0, 0, 0,
499 0, 74, 0, 0, 0, 0, 0, 5, 74, 0,
500 0, 0, 0, 0, 0, 0, 74, 0, 0, 0,
501 0, 63, 0, 0, 62, 0, 0, 90, 91, 0,
502 0, 0, 0, 0, 0, 74, 0, 0, 74, 0,
503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
504 0, 0, 0, 0, 0, 74, 0, 0, 0, 0,
506 0, 6, 0, 0, 0, 0, 0, 0, 0, 0,
507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
508 0, 75, 0, 0, 0, 0, 0, 0, 74, 0,
509 0, 74, 0, 0, 0, 0, 0, 0, 0, 0,
510 0, 0, 0, 0, 0, 0, 0, 0, 74, 0,
511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
513 0, 61, 60, 0, 0, 0, 0, 0, 0, 0,
514 0, 0, 0, 0, 0, 74, 0, 0, 0, 0,
515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
518 0, 0, 0, 0, 0, 0, 51, 50, 0, 0,
519 0, 0, 0, 0, 0, 0, 8, 7, 0, 0,
520 0, 0, 0, 0, 0, 0, 0, 0, 74, 0,
521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
522 0, 0, 0, 64, 65, 0, 0, 0, 0, 0,
523 0, 0, 0, 0, 0, 0, 0, 0, 0, 53,
524 52, 0, 0, 55, 0, 0, 54, 0, 0, 0,
525 0, 0, 0, 0, 0, 0, 0, 74, 0, 0,
526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
528 0, 0, 0, 0, 39, 38, 0, 0, 0, 0,
529 45, 44, 0, 0, 0, 0, 0, 59, 0, 58,
530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
531 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
532 0, 0, 0, 35, 34, 0, 0, 0, 0, 0,
533 0, 0, 0, 0, 0, 57, 56, 0, 0, 0,
534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
536 0, 41, 40, 0, 0, 0, 0, 0, 0, 0,
537 0, 12, 11, 14, 13, 16, 15, 0, 0, 0,
539 0, 0, 0, 0, 0, 0, 0, 30, 29, 0,
540 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
541 9, 18, 17, 0, 0, 0, 26, 0, 0, 25,
542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
543 0, 0, 0, 0, 28, 0, 27, 0, 0, 0,
544 0, 0, 0, 47, 49, 46, 48, 0, 0, 0,
545 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
546 23, 33, 32, 0, 0, 0, 0, 22, 21, 0,
547 0, 0, 0, 0, 0, 43, 42, 37, 36, 0
550 static yyconst flex_int32_t yy_ec
[256] =
552 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
553 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
554 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
555 1, 4, 1, 5, 6, 1, 1, 1, 1, 1,
556 1, 1, 1, 7, 8, 9, 1, 10, 11, 12,
557 13, 14, 15, 16, 10, 10, 10, 17, 1, 1,
558 18, 1, 1, 1, 19, 20, 21, 22, 23, 24,
559 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
560 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
561 1, 1, 1, 1, 45, 1, 46, 47, 48, 49,
563 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
564 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
565 70, 71, 1, 1, 1, 1, 1, 1, 1, 1,
566 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
567 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
568 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
569 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
570 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
571 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
572 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
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,
582 static yyconst flex_int32_t yy_meta
[72] =
584 1, 1, 2, 1, 1, 1, 1, 1, 3, 3,
585 3, 3, 3, 3, 3, 3, 1, 1, 3, 3,
586 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
587 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
588 3, 3, 3, 3, 1, 3, 3, 3, 3, 3,
589 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
590 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
594 static yyconst flex_int16_t yy_base
[797] =
596 0, 957, 959, 2145, 2145, 2145, 2145, 942, 903, 63,
597 71, 79, 73, 65, 81, 66, 72, 114, 112, 130,
598 123, 119, 900, 897, 896, 184, 247, 255, 121, 263,
599 129, 263, 264, 269, 265, 271, 273, 275, 320, 322,
600 327, 331, 332, 333, 340, 371, 380, 381, 894, 2145,
601 429, 77, 379, 125, 133, 183, 250, 268, 345, 376,
602 441, 447, 272, 257, 290, 412, 489, 505, 514, 2145,
603 522, 522, 421, 524, 528, 529, 533, 562, 577, 582,
604 587, 511, 597, 588, 632, 636, 638, 644, 314, 330,
605 351, 378, 378, 382, 463, 394, 504, 517, 519, 528,
607 521, 514, 518, 565, 580, 637, 573, 574, 588, 581,
608 699, 707, 716, 724, 732, 741, 741, 742, 743, 747,
609 643, 755, 754, 792, 794, 796, 804, 805, 825, 814,
610 623, 645, 642, 741, 632, 649, 840, 852, 743, 746,
611 765, 769, 812, 817, 464, 813, 813, 465, 844, 840,
612 845, 466, 876, 855, 904, 913, 913, 915, 919, 920,
613 921, 94, 925, 969, 957, 975, 970, 979, 990, 992,
614 564, 868, 884, 906, 912, 904, 996, 898, 920, 907,
615 902, 972, 960, 969, 979, 996, 753, 1004, 1001, 998,
616 1005, 1001, 1022, 1009, 1010, 1026, 778, 1018, 1025, 1027,
618 1021, 956, 1023, 1040, 1083, 1091, 1052, 105, 883, 880,
619 1091, 1092, 1099, 1101, 1103, 1109, 1088, 1090, 1078, 1086,
620 1098, 1109, 1104, 1092, 2145, 1102, 1106, 1104, 1128, 1127,
621 1124, 1143, 1156, 1146, 1141, 1140, 1141, 1139, 1151, 1156,
622 1157, 1065, 1149, 1159, 1160, 1150, 1163, 1164, 1155, 1170,
623 1163, 1174, 1165, 1177, 1178, 1179, 1185, 1176, 1226, 1238,
624 1238, 881, 878, 2145, 2145, 1227, 1239, 1240, 1203, 1204,
625 1074, 1221, 1223, 1226, 1245, 1240, 1241, 1246, 883, 882,
626 1247, 844, 841, 1237, 1234, 1270, 1252, 1253, 1273, 1256,
627 1253, 1254, 1248, 1255, 1301, 1274, 1277, 1306, 1283, 1284,
629 1283, 1299, 1301, 1302, 1304, 1293, 1309, 1310, 1296, 1316,
630 1357, 2145, 1343, 2145, 2145, 1308, 1313, 1303, 1325, 1326,
631 1341, 1342, 1337, 1341, 1343, 1345, 1347, 1351, 1346, 1351,
632 1356, 1350, 1351, 1352, 0, 1361, 1362, 1365, 1366, 1369,
633 1370, 1356, 1378, 1386, 1386, 1389, 1405, 2145, 827, 1406,
634 1408, 1409, 1397, 1401, 1398, 1402, 1433, 1408, 1421, 1411,
635 1423, 2145, 1409, 1410, 2145, 1420, 1421, 1470, 1471, 1442,
636 1446, 1432, 1434, 1466, 1468, 1469, 1455, 1458, 1460, 1473,
637 1474, 836, 1465, 1483, 789, 1467, 1486, 1483, 1485, 1486,
638 1487, 1489, 1490, 1491, 1492, 1494, 1488, 1489, 1493, 1512,
640 1526, 2145, 1527, 1514, 1517, 1529, 1530, 1531, 1532, 1518,
641 1519, 1537, 1538, 1541, 1531, 1544, 1532, 1545, 1546, 1543,
642 1544, 1579, 1537, 1538, 1545, 1564, 1564, 1565, 1561, 1574,
643 1577, 1580, 825, 771, 1567, 1586, 1572, 1570, 1590, 1576,
644 1589, 1590, 776, 737, 1585, 1586, 1577, 1578, 1614, 1584,
645 1586, 1606, 1607, 1606, 1622, 1612, 1614, 1633, 1623, 1637,
646 1629, 1625, 1626, 1645, 1646, 1636, 1645, 1649, 1639, 1648,
647 1652, 2145, 2145, 1629, 1630, 721, 718, 1636, 1637, 1638,
648 1640, 1659, 1660, 1655, 1656, 1670, 1671, 1673, 1689, 1685,
649 1689, 1696, 1692, 1694, 1693, 1694, 1684, 1685, 1683, 1684,
651 672, 669, 1688, 1689, 1688, 1689, 1695, 1696, 1701, 1703,
652 1699, 1700, 1700, 1719, 1717, 1737, 2145, 2145, 1724, 1725,
653 1736, 1736, 1726, 1743, 1741, 1729, 2145, 2145, 1747, 1748,
654 1742, 1743, 1754, 1755, 1752, 1753, 1758, 1759, 1751, 1749,
655 1751, 1753, 1769, 1758, 1757, 1788, 1777, 1789, 1790, 1794,
656 1797, 1785, 1786, 2145, 2145, 1802, 1803, 666, 664, 1788,
657 1789, 1790, 1791, 634, 623, 624, 623, 581, 561, 2145,
658 2145, 1791, 1809, 2145, 1793, 1811, 2145, 1802, 1803, 1816,
659 1818, 1804, 1808, 1816, 1818, 1816, 1832, 585, 1844, 1846,
660 1847, 1833, 1843, 1854, 1840, 1848, 1842, 1843, 1848, 1849,
662 559, 550, 1850, 1851, 2145, 2145, 1848, 1849, 1852, 1853,
663 2145, 2145, 1853, 1854, 1856, 1858, 1876, 2145, 1877, 2145,
664 1865, 1866, 1886, 1888, 1885, 1886, 1902, 1905, 1892, 1893,
665 2145, 1909, 1910, 1899, 1915, 1918, 1902, 1918, 1921, 1918,
666 1919, 1913, 1914, 2145, 2145, 1915, 1917, 534, 525, 1926,
667 1930, 1927, 1929, 1930, 1946, 2145, 2145, 1937, 1939, 1948,
668 1949, 1945, 1948, 524, 494, 1948, 1949, 1961, 1962, 1959,
669 1965, 1956, 1962, 1968, 1959, 1974, 1975, 1971, 1972, 1974,
670 1976, 2145, 2145, 445, 407, 1963, 1964, 1966, 1967, 1990,
671 1992, 2145, 2145, 2145, 2145, 2145, 2145, 412, 411, 1989,
673 1990, 2014, 383, 2007, 2020, 359, 2011, 2145, 2145, 2020,
674 2021, 2022, 2023, 2015, 2016, 2024, 2025, 2026, 2027, 2145,
675 2145, 2145, 2145, 326, 316, 2015, 2145, 333, 2016, 2145,
676 327, 2034, 2036, 2038, 2042, 2035, 2037, 323, 301, 299,
677 266, 2036, 2052, 2054, 2145, 2056, 2145, 2049, 2050, 193,
678 146, 2059, 2062, 2145, 2145, 2145, 2145, 2071, 2072, 170,
679 153, 152, 151, 2060, 2061, 2071, 2072, 2057, 2058, 2145,
680 2145, 2145, 2145, 2079, 2080, 2066, 2067, 2145, 2145, 2087,
681 2088, 150, 149, 2087, 2089, 2145, 2145, 2145, 2145, 2145,
682 2138, 119, 2141, 117, 116, 108
686 static yyconst flex_int16_t yy_def
[797] =
688 790, 1, 790, 790, 790, 790, 790, 791, 790, 792,
689 792, 792, 12, 12, 12, 12, 12, 12, 12, 12,
690 12, 12, 793, 791, 791, 790, 794, 792, 12, 794,
691 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
692 12, 12, 12, 12, 12, 12, 12, 12, 793, 790,
693 26, 51, 51, 51, 51, 51, 51, 51, 51, 51,
694 51, 51, 51, 51, 51, 795, 796, 795, 792, 790,
695 796, 12, 12, 12, 12, 12, 12, 12, 12, 12,
696 12, 12, 12, 12, 12, 12, 12, 12, 51, 51,
697 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
699 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
700 796, 795, 796, 796, 796, 792, 12, 12, 12, 12,
701 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
702 51, 51, 51, 51, 51, 51, 790, 790, 51, 51,
703 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
704 51, 51, 51, 51, 796, 796, 12, 12, 12, 12,
705 12, 790, 12, 12, 12, 12, 12, 12, 12, 12,
706 51, 51, 51, 51, 51, 51, 51, 790, 790, 790,
707 790, 790, 790, 51, 51, 51, 51, 51, 51, 790,
708 790, 51, 51, 790, 790, 51, 51, 51, 790, 790,
710 790, 51, 790, 51, 796, 796, 12, 790, 790, 790,
711 12, 12, 12, 12, 12, 12, 790, 790, 51, 51,
712 51, 51, 51, 790, 790, 790, 790, 790, 790, 790,
713 790, 790, 51, 51, 51, 790, 790, 51, 51, 790,
714 790, 51, 51, 790, 790, 51, 790, 790, 51, 790,
715 790, 790, 790, 790, 790, 790, 790, 51, 796, 796,
716 12, 790, 790, 790, 790, 12, 12, 12, 790, 790,
717 51, 51, 51, 51, 51, 790, 790, 790, 790, 790,
718 790, 790, 790, 51, 51, 51, 790, 790, 51, 51,
719 790, 790, 790, 790, 51, 790, 790, 51, 790, 790,
721 51, 790, 790, 790, 790, 790, 790, 790, 790, 51,
722 796, 790, 12, 790, 790, 790, 790, 790, 790, 790,
723 790, 51, 51, 51, 790, 790, 790, 790, 790, 790,
724 790, 790, 790, 790, 51, 790, 790, 790, 790, 790,
725 790, 51, 790, 790, 790, 790, 790, 790, 51, 790,
726 790, 790, 790, 790, 790, 790, 51, 790, 790, 790,
727 790, 790, 790, 790, 790, 790, 790, 796, 12, 790,
728 790, 790, 790, 790, 790, 51, 790, 790, 51, 790,
729 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
730 790, 790, 790, 790, 790, 51, 790, 790, 790, 790,
732 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
733 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
734 790, 12, 790, 790, 790, 790, 790, 790, 51, 790,
735 790, 51, 790, 790, 790, 790, 790, 790, 790, 790,
736 790, 790, 790, 790, 790, 790, 790, 790, 51, 790,
737 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
738 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
739 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
740 790, 790, 790, 790, 790, 51, 790, 790, 790, 790,
741 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
743 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
744 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
745 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
746 790, 790, 790, 790, 790, 790, 790, 790, 51, 790,
747 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
748 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
749 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
750 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
751 790, 790, 790, 790, 790, 790, 790, 51, 790, 790,
752 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
754 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
755 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
756 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
757 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
758 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
759 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
760 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
761 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
762 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
763 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
765 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
766 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
767 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
768 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
769 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
770 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
771 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
772 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
773 790, 790, 790, 790, 790, 790, 790, 790, 790, 0,
774 790, 790, 790, 790, 790, 790
778 static yyconst flex_int16_t yy_nxt
[2217] =
780 4, 5, 6, 7, 8, 4, 7, 9, 4, 10,
781 10, 10, 10, 10, 10, 10, 4, 7, 11, 11,
782 12, 13, 14, 15, 11, 16, 17, 18, 11, 11,
783 19, 11, 11, 11, 11, 20, 21, 22, 11, 11,
784 11, 11, 11, 11, 4, 11, 11, 12, 13, 14,
785 15, 11, 16, 17, 18, 11, 11, 19, 11, 11,
786 11, 11, 20, 21, 22, 11, 11, 11, 11, 11,
787 11, 27, 28, 28, 28, 28, 28, 28, 28, 30,
788 31, 31, 31, 31, 31, 31, 31, 30, 31, 31,
789 31, 31, 31, 31, 31, 34, 35, 29, 29, 37,
791 36, 29, 39, 40, 29, 29, 209, 29, 29, 210,
792 115, 32, 38, 29, 33, 89, 29, 262, 112, 68,
793 263, 29, 34, 35, 29, 29, 37, 36, 29, 39,
794 40, 29, 29, 42, 29, 29, 41, 70, 32, 38,
795 29, 33, 89, 29, 43, 47, 29, 29, 45, 29,
796 44, 29, 46, 29, 48, 29, 29, 92, 29, 93,
797 42, 29, 29, 41, 29, 29, 787, 786, 773, 772,
798 771, 43, 47, 29, 29, 45, 29, 44, 29, 46,
799 29, 48, 29, 29, 92, 29, 93, 770, 29, 29,
800 765, 29, 29, 51, 51, 51, 51, 51, 51, 51,
802 764, 94, 52, 53, 54, 55, 51, 51, 51, 56,
803 57, 51, 58, 51, 51, 59, 51, 60, 51, 61,
804 62, 63, 64, 65, 51, 51, 51, 51, 94, 52,
805 53, 54, 55, 51, 51, 51, 56, 57, 51, 58,
806 51, 51, 59, 51, 60, 51, 61, 62, 63, 64,
807 65, 51, 51, 51, 51, 66, 67, 67, 67, 67,
808 67, 67, 67, 27, 69, 69, 69, 69, 69, 69,
809 69, 66, 71, 71, 71, 71, 71, 71, 71, 70,
810 70, 70, 95, 757, 73, 70, 75, 70, 74, 70,
811 96, 70, 108, 109, 72, 29, 29, 29, 29, 29,
813 29, 29, 77, 29, 29, 29, 76, 29, 29, 95,
814 29, 73, 110, 75, 78, 74, 756, 96, 755, 108,
815 109, 72, 29, 29, 29, 29, 29, 29, 29, 77,
816 29, 29, 29, 76, 29, 29, 70, 29, 70, 110,
817 754, 78, 80, 70, 747, 82, 79, 70, 70, 70,
818 745, 131, 29, 83, 29, 29, 70, 29, 81, 29,
819 743, 132, 29, 29, 29, 29, 29, 29, 84, 80,
820 742, 85, 29, 79, 133, 29, 730, 97, 131, 29,
821 83, 29, 29, 98, 29, 81, 29, 70, 132, 29,
822 29, 29, 29, 29, 29, 84, 70, 70, 85, 29,
824 727, 133, 29, 29, 97, 90, 29, 86, 99, 134,
825 98, 100, 29, 29, 135, 87, 29, 91, 136, 88,
826 66, 111, 111, 111, 111, 111, 111, 111, 723, 722,
827 29, 139, 90, 29, 86, 99, 134, 70, 100, 29,
828 29, 135, 87, 29, 91, 136, 88, 51, 51, 51,
829 51, 715, 714, 29, 51, 51, 29, 51, 139, 101,
830 51, 102, 51, 103, 51, 51, 51, 51, 51, 104,
831 137, 190, 194, 199, 51, 51, 51, 51, 105, 106,
832 29, 51, 51, 29, 51, 107, 101, 51, 102, 51,
833 103, 51, 51, 51, 51, 51, 104, 113, 114, 114,
835 114, 114, 114, 114, 114, 105, 106, 138, 191, 195,
836 200, 697, 107, 66, 111, 111, 111, 111, 111, 111,
837 111, 70, 27, 116, 116, 116, 116, 116, 116, 116,
838 71, 71, 71, 71, 71, 71, 71, 71, 70, 140,
839 70, 696, 683, 29, 70, 70, 29, 141, 142, 70,
840 143, 682, 144, 145, 29, 146, 29, 29, 117, 29,
841 29, 119, 118, 29, 29, 29, 140, 645, 29, 120,
842 29, 217, 121, 29, 141, 142, 644, 143, 70, 144,
843 145, 29, 146, 29, 29, 117, 29, 29, 119, 118,
844 29, 29, 29, 70, 29, 29, 120, 29, 70, 122,
846 147, 148, 631, 70, 70, 616, 151, 152, 218, 29,
847 153, 123, 29, 70, 29, 124, 154, 29, 126, 29,
848 29, 29, 29, 29, 29, 615, 122, 147, 148, 29,
849 614, 613, 29, 151, 152, 125, 29, 153, 123, 29,
850 612, 29, 124, 154, 29, 126, 29, 29, 70, 29,
851 29, 611, 70, 127, 70, 171, 29, 149, 128, 29,
852 70, 161, 125, 172, 29, 173, 130, 29, 29, 176,
853 29, 29, 150, 29, 177, 29, 29, 129, 29, 29,
854 127, 606, 171, 605, 149, 128, 555, 162, 161, 554,
855 172, 29, 173, 130, 29, 29, 176, 29, 29, 150,
857 29, 177, 29, 29, 129, 29, 29, 71, 71, 71,
858 71, 71, 71, 71, 71, 66, 111, 111, 111, 111,
859 111, 111, 111, 70, 71, 155, 155, 155, 155, 155,
860 155, 155, 113, 156, 156, 156, 156, 156, 156, 156,
861 71, 71, 71, 71, 71, 71, 71, 71, 70, 30,
862 116, 116, 116, 116, 116, 116, 116, 70, 70, 70,
863 236, 184, 530, 70, 174, 529, 158, 157, 185, 160,
864 70, 70, 175, 29, 29, 29, 29, 29, 159, 29,
865 163, 498, 29, 497, 186, 247, 29, 29, 184, 29,
866 29, 174, 164, 158, 157, 185, 160, 237, 187, 175,
868 29, 29, 29, 29, 29, 159, 29, 163, 70, 29,
869 70, 186, 70, 29, 29, 488, 29, 29, 165, 164,
870 70, 70, 248, 166, 29, 187, 29, 29, 29, 29,
871 70, 29, 487, 438, 167, 188, 168, 29, 189, 29,
872 29, 70, 169, 435, 402, 165, 29, 170, 192, 29,
873 166, 29, 193, 29, 29, 29, 29, 29, 29, 178,
874 29, 167, 188, 168, 29, 189, 29, 29, 179, 169,
875 180, 181, 196, 29, 170, 192, 29, 197, 198, 193,
876 182, 204, 183, 201, 29, 332, 178, 29, 331, 329,
877 328, 315, 314, 265, 264, 179, 50, 180, 181, 196,
879 25, 25, 50, 219, 197, 198, 220, 182, 204, 183,
880 26, 202, 205, 206, 206, 206, 206, 206, 206, 206,
881 203, 113, 71, 71, 71, 71, 71, 71, 71, 70,
882 219, 70, 221, 220, 222, 70, 70, 70, 202, 223,
883 227, 70, 228, 229, 230, 29, 25, 29, 29, 207,
884 29, 29, 29, 29, 29, 29, 29, 29, 790, 221,
885 29, 222, 23, 255, 790, 208, 223, 227, 790, 228,
886 229, 230, 29, 70, 29, 29, 207, 29, 29, 29,
887 29, 29, 29, 29, 29, 70, 70, 29, 212, 29,
888 211, 70, 29, 213, 231, 70, 232, 790, 790, 233,
890 256, 29, 29, 224, 29, 214, 70, 29, 70, 215,
891 29, 29, 234, 225, 29, 212, 29, 211, 235, 29,
892 213, 231, 29, 232, 29, 29, 233, 216, 29, 29,
893 238, 29, 214, 239, 29, 240, 215, 29, 29, 234,
894 226, 29, 241, 242, 243, 235, 244, 245, 246, 29,
895 249, 29, 29, 250, 216, 252, 251, 238, 253, 254,
896 239, 257, 240, 258, 790, 790, 790, 790, 70, 241,
897 242, 243, 293, 244, 245, 246, 790, 249, 790, 790,
898 250, 318, 252, 251, 29, 253, 254, 29, 257, 261,
899 258, 71, 259, 259, 259, 259, 259, 259, 259, 205,
901 260, 260, 260, 260, 260, 260, 260, 70, 70, 294,
902 269, 29, 270, 266, 29, 70, 261, 70, 319, 70,
903 271, 272, 273, 29, 29, 70, 29, 29, 267, 274,
904 275, 29, 276, 29, 29, 29, 29, 269, 29, 270,
905 266, 29, 277, 278, 29, 268, 279, 271, 272, 273,
906 29, 29, 280, 29, 29, 267, 274, 275, 29, 276,
907 29, 29, 29, 29, 281, 29, 282, 283, 29, 277,
908 278, 29, 268, 279, 284, 285, 286, 287, 288, 280,
909 289, 290, 291, 292, 295, 296, 297, 298, 299, 300,
910 301, 281, 302, 282, 283, 303, 304, 305, 306, 307,
912 308, 284, 285, 286, 287, 288, 309, 289, 290, 291,
913 292, 295, 296, 297, 298, 299, 300, 301, 310, 302,
914 790, 790, 303, 304, 305, 306, 307, 308, 320, 790,
915 316, 317, 790, 309, 71, 311, 311, 311, 311, 311,
916 311, 311, 312, 70, 333, 310, 205, 71, 71, 71,
917 71, 71, 71, 71, 70, 70, 70, 316, 317, 29,
918 313, 322, 29, 323, 324, 321, 325, 326, 327, 330,
919 29, 29, 29, 29, 29, 29, 335, 336, 338, 339,
920 340, 334, 342, 343, 344, 345, 29, 313, 322, 29,
921 323, 324, 346, 325, 326, 327, 330, 29, 29, 29,
923 29, 29, 29, 335, 351, 338, 339, 352, 347, 342,
924 343, 344, 345, 353, 337, 355, 356, 341, 348, 346,
925 357, 358, 359, 366, 360, 361, 362, 363, 364, 365,
926 370, 351, 790, 790, 352, 371, 372, 349, 790, 790,
927 790, 790, 355, 356, 377, 350, 790, 357, 358, 359,
928 354, 360, 361, 362, 363, 364, 365, 370, 373, 70,
929 367, 374, 371, 372, 349, 71, 368, 368, 368, 368,
930 368, 368, 368, 312, 369, 29, 375, 376, 29, 379,
931 380, 378, 381, 382, 383, 373, 384, 385, 374, 386,
932 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
934 397, 369, 29, 375, 376, 29, 379, 380, 398, 381,
935 382, 383, 399, 384, 385, 400, 386, 387, 388, 389,
936 390, 391, 392, 393, 394, 395, 396, 397, 401, 403,
937 404, 405, 406, 407, 410, 398, 408, 409, 411, 399,
938 412, 414, 400, 415, 416, 417, 418, 419, 420, 421,
939 790, 790, 790, 790, 790, 401, 403, 404, 405, 406,
940 407, 410, 423, 408, 409, 411, 424, 425, 414, 426,
941 415, 416, 417, 418, 419, 420, 421, 413, 71, 71,
942 71, 71, 71, 71, 71, 71, 312, 70, 427, 423,
943 428, 429, 430, 424, 425, 431, 426, 432, 433, 434,
945 436, 437, 439, 29, 440, 441, 29, 442, 422, 443,
946 444, 445, 446, 447, 448, 427, 449, 428, 429, 430,
947 450, 451, 431, 452, 432, 433, 434, 436, 437, 439,
948 29, 440, 441, 29, 442, 422, 443, 444, 445, 446,
949 447, 448, 453, 449, 454, 455, 456, 450, 451, 457,
950 452, 458, 459, 460, 461, 462, 463, 464, 465, 466,
951 468, 471, 469, 472, 473, 474, 475, 467, 482, 453,
952 470, 454, 455, 456, 476, 477, 457, 478, 458, 459,
953 460, 461, 462, 463, 464, 465, 466, 468, 471, 469,
954 472, 473, 474, 475, 467, 70, 479, 470, 480, 481,
956 484, 476, 477, 485, 478, 483, 486, 489, 490, 491,
957 492, 29, 493, 494, 29, 495, 496, 499, 500, 501,
958 502, 503, 505, 479, 506, 480, 481, 484, 507, 508,
959 485, 790, 509, 486, 489, 490, 491, 492, 29, 493,
960 494, 29, 495, 496, 499, 500, 501, 502, 510, 505,
961 511, 506, 512, 513, 514, 507, 508, 515, 504, 509,
962 516, 517, 518, 519, 520, 521, 522, 523, 524, 525,
963 526, 527, 528, 531, 532, 510, 533, 511, 534, 512,
964 513, 514, 535, 536, 515, 537, 538, 516, 517, 518,
965 519, 520, 521, 522, 523, 524, 525, 526, 527, 528,
967 531, 532, 539, 533, 540, 534, 541, 542, 543, 535,
968 536, 544, 537, 538, 545, 546, 547, 548, 549, 550,
969 551, 552, 553, 556, 557, 558, 559, 560, 561, 539,
970 562, 540, 563, 541, 542, 543, 564, 565, 544, 566,
971 567, 545, 546, 547, 548, 549, 550, 551, 552, 553,
972 556, 557, 558, 559, 560, 561, 568, 562, 569, 563,
973 570, 571, 572, 564, 565, 573, 566, 567, 574, 575,
974 576, 577, 578, 579, 580, 581, 582, 583, 584, 585,
975 586, 587, 588, 568, 589, 569, 590, 570, 571, 572,
976 591, 592, 573, 593, 594, 574, 575, 576, 577, 578,
978 579, 580, 581, 582, 583, 584, 585, 586, 587, 588,
979 595, 589, 596, 590, 597, 598, 599, 591, 592, 600,
980 593, 594, 601, 602, 603, 604, 607, 608, 609, 610,
981 617, 618, 619, 620, 621, 622, 623, 595, 624, 596,
982 625, 597, 598, 599, 626, 627, 600, 628, 629, 601,
983 602, 603, 604, 607, 608, 609, 610, 617, 618, 619,
984 620, 621, 622, 623, 630, 624, 632, 625, 633, 634,
985 635, 626, 627, 636, 628, 629, 637, 638, 639, 640,
986 641, 642, 643, 646, 647, 648, 649, 650, 651, 652,
987 653, 630, 654, 632, 655, 633, 634, 635, 656, 657,
989 636, 658, 659, 637, 638, 639, 640, 641, 642, 643,
990 646, 647, 648, 649, 650, 651, 652, 653, 660, 654,
991 661, 655, 662, 663, 664, 656, 657, 665, 658, 659,
992 666, 667, 668, 669, 670, 671, 672, 673, 674, 675,
993 676, 677, 678, 679, 680, 660, 681, 661, 684, 662,
994 663, 664, 685, 686, 665, 687, 688, 666, 667, 668,
995 669, 670, 671, 672, 673, 674, 675, 676, 677, 678,
996 679, 680, 689, 681, 690, 684, 691, 692, 693, 685,
997 686, 694, 687, 688, 695, 698, 699, 700, 701, 702,
998 703, 704, 705, 706, 707, 708, 709, 710, 711, 689,
1000 712, 690, 713, 691, 692, 693, 716, 717, 694, 718,
1001 719, 695, 698, 699, 700, 701, 702, 703, 704, 705,
1002 706, 707, 708, 709, 710, 711, 720, 712, 721, 713,
1003 724, 725, 726, 716, 717, 728, 718, 719, 729, 731,
1004 732, 733, 734, 735, 736, 737, 738, 739, 740, 741,
1005 744, 746, 748, 720, 749, 721, 750, 724, 725, 726,
1006 751, 752, 728, 753, 758, 729, 731, 732, 733, 734,
1007 735, 736, 737, 738, 739, 740, 741, 744, 746, 748,
1008 759, 749, 760, 750, 761, 762, 763, 751, 752, 766,
1009 753, 758, 767, 768, 769, 774, 775, 776, 777, 778,
1011 779, 780, 781, 782, 783, 784, 785, 759, 788, 760,
1012 789, 761, 762, 763, 790, 790, 766, 790, 790, 767,
1013 768, 769, 774, 775, 776, 777, 778, 779, 780, 781,
1014 782, 783, 784, 785, 790, 788, 790, 789, 24, 790,
1015 24, 49, 49, 49, 3, 790, 790, 790, 790, 790,
1016 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1017 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1018 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1019 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1020 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1022 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1023 790, 790, 790, 790, 790, 790
1026 static yyconst flex_int16_t yy_chk
[2217] =
1028 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1029 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1030 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1031 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1032 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1033 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1034 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1035 1, 10, 10, 10, 10, 10, 10, 10, 10, 11,
1036 11, 11, 11, 11, 11, 11, 11, 12, 12, 12,
1037 12, 12, 12, 12, 12, 13, 14, 14, 16, 15,
1039 14, 16, 16, 17, 17, 13, 162, 17, 13, 162,
1040 796, 12, 15, 15, 12, 52, 15, 208, 795, 794,
1041 208, 792, 13, 14, 14, 16, 15, 14, 16, 16,
1042 17, 17, 13, 19, 17, 13, 18, 29, 12, 15,
1043 15, 12, 52, 15, 19, 21, 18, 19, 20, 18,
1044 19, 22, 20, 29, 22, 21, 29, 54, 21, 55,
1045 19, 31, 20, 18, 31, 20, 783, 782, 763, 762,
1046 761, 19, 21, 18, 19, 20, 18, 19, 22, 20,
1047 29, 22, 21, 29, 54, 21, 55, 760, 31, 20,
1048 751, 31, 20, 26, 26, 26, 26, 26, 26, 26,
1050 750, 56, 26, 26, 26, 26, 26, 26, 26, 26,
1051 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
1052 26, 26, 26, 26, 26, 26, 26, 26, 56, 26,
1053 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
1054 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
1055 26, 26, 26, 26, 26, 27, 27, 27, 27, 27,
1056 27, 27, 27, 28, 28, 28, 28, 28, 28, 28,
1057 28, 30, 30, 30, 30, 30, 30, 30, 30, 32,
1058 33, 35, 57, 741, 33, 34, 35, 36, 34, 37,
1059 58, 38, 63, 64, 32, 32, 33, 35, 32, 33,
1061 35, 34, 37, 36, 34, 37, 36, 38, 37, 57,
1062 38, 33, 65, 35, 38, 34, 740, 58, 739, 63,
1063 64, 32, 32, 33, 35, 32, 33, 35, 34, 37,
1064 36, 34, 37, 36, 38, 37, 39, 38, 40, 65,
1065 738, 38, 40, 41, 731, 42, 39, 42, 43, 44,
1066 728, 89, 39, 43, 40, 39, 45, 40, 41, 41,
1067 725, 90, 41, 42, 43, 44, 42, 43, 44, 40,
1068 724, 45, 45, 39, 91, 45, 706, 59, 89, 39,
1069 43, 40, 39, 59, 40, 41, 41, 46, 90, 41,
1070 42, 43, 44, 42, 43, 44, 47, 48, 45, 45,
1072 703, 91, 45, 46, 59, 53, 46, 46, 60, 92,
1073 59, 60, 47, 48, 93, 47, 48, 53, 94, 48,
1074 66, 66, 66, 66, 66, 66, 66, 66, 699, 698,
1075 46, 96, 53, 46, 46, 60, 92, 73, 60, 47,
1076 48, 93, 47, 48, 53, 94, 48, 51, 51, 51,
1077 51, 685, 684, 73, 51, 51, 73, 51, 96, 61,
1078 51, 61, 51, 61, 51, 51, 51, 51, 51, 62,
1079 95, 145, 148, 152, 51, 51, 51, 51, 62, 62,
1080 73, 51, 51, 73, 51, 62, 61, 51, 61, 51,
1081 61, 51, 51, 51, 51, 51, 62, 67, 67, 67,
1083 67, 67, 67, 67, 67, 62, 62, 95, 145, 148,
1084 152, 665, 62, 68, 68, 68, 68, 68, 68, 68,
1085 68, 68, 69, 69, 69, 69, 69, 69, 69, 69,
1086 71, 71, 71, 71, 71, 71, 71, 71, 72, 97,
1087 74, 664, 649, 82, 75, 76, 82, 98, 99, 77,
1088 100, 648, 101, 102, 72, 103, 74, 72, 72, 74,
1089 75, 76, 74, 75, 76, 77, 97, 602, 77, 77,
1090 82, 171, 78, 82, 98, 99, 601, 100, 78, 101,
1091 102, 72, 103, 74, 72, 72, 74, 75, 76, 74,
1092 75, 76, 77, 79, 78, 77, 77, 78, 80, 79,
1094 104, 105, 588, 81, 84, 569, 107, 108, 171, 79,
1095 109, 80, 79, 83, 80, 81, 110, 80, 84, 81,
1096 84, 78, 81, 84, 78, 568, 79, 104, 105, 83,
1097 567, 566, 83, 107, 108, 83, 79, 109, 80, 79,
1098 565, 80, 81, 110, 80, 84, 81, 84, 85, 81,
1099 84, 564, 86, 85, 87, 131, 83, 106, 86, 83,
1100 88, 121, 83, 132, 85, 133, 88, 85, 86, 135,
1101 87, 86, 106, 87, 136, 121, 88, 87, 121, 88,
1102 85, 559, 131, 558, 106, 86, 502, 121, 121, 501,
1103 132, 85, 133, 88, 85, 86, 135, 87, 86, 106,
1105 87, 136, 121, 88, 87, 121, 88, 111, 111, 111,
1106 111, 111, 111, 111, 111, 112, 112, 112, 112, 112,
1107 112, 112, 112, 112, 113, 113, 113, 113, 113, 113,
1108 113, 113, 114, 114, 114, 114, 114, 114, 114, 114,
1109 115, 115, 115, 115, 115, 115, 115, 115, 115, 116,
1110 116, 116, 116, 116, 116, 116, 116, 117, 118, 119,
1111 187, 139, 477, 120, 134, 476, 118, 117, 140, 120,
1112 123, 122, 134, 117, 118, 119, 117, 118, 119, 120,
1113 122, 444, 120, 443, 141, 197, 123, 122, 139, 123,
1114 122, 134, 123, 118, 117, 140, 120, 187, 142, 134,
1116 117, 118, 119, 117, 118, 119, 120, 122, 124, 120,
1117 125, 141, 126, 123, 122, 434, 123, 122, 124, 123,
1118 127, 128, 197, 125, 124, 142, 125, 124, 126, 125,
1119 130, 126, 433, 385, 126, 143, 127, 128, 144, 127,
1120 128, 129, 128, 382, 349, 124, 130, 129, 146, 130,
1121 125, 124, 147, 125, 124, 126, 125, 129, 126, 137,
1122 129, 126, 143, 127, 128, 144, 127, 128, 137, 128,
1123 137, 138, 149, 130, 129, 146, 130, 150, 151, 147,
1124 138, 154, 138, 153, 129, 283, 137, 129, 282, 280,
1125 279, 263, 262, 210, 209, 137, 49, 137, 138, 149,
1127 25, 24, 23, 172, 150, 151, 173, 138, 154, 138,
1128 9, 153, 155, 155, 155, 155, 155, 155, 155, 155,
1129 153, 156, 156, 156, 156, 156, 156, 156, 156, 157,
1130 172, 158, 174, 173, 175, 159, 160, 161, 153, 176,
1131 178, 163, 179, 180, 181, 157, 8, 158, 157, 157,
1132 158, 159, 160, 161, 159, 160, 161, 163, 3, 174,
1133 163, 175, 2, 202, 0, 161, 176, 178, 0, 179,
1134 180, 181, 157, 165, 158, 157, 157, 158, 159, 160,
1135 161, 159, 160, 161, 163, 164, 167, 163, 165, 165,
1136 164, 166, 165, 166, 182, 168, 183, 0, 0, 184,
1138 202, 164, 167, 177, 164, 167, 169, 166, 170, 168,
1139 166, 168, 185, 177, 168, 165, 165, 164, 186, 165,
1140 166, 182, 169, 183, 170, 169, 184, 170, 164, 167,
1141 188, 164, 167, 189, 166, 190, 168, 166, 168, 185,
1142 177, 168, 191, 192, 193, 186, 194, 195, 196, 169,
1143 198, 170, 169, 199, 170, 200, 199, 188, 200, 201,
1144 189, 203, 190, 204, 0, 0, 0, 0, 207, 191,
1145 192, 193, 242, 194, 195, 196, 0, 198, 0, 0,
1146 199, 271, 200, 199, 207, 200, 201, 207, 203, 207,
1147 204, 205, 205, 205, 205, 205, 205, 205, 205, 206,
1149 206, 206, 206, 206, 206, 206, 206, 211, 212, 242,
1150 217, 207, 218, 211, 207, 213, 207, 214, 271, 215,
1151 219, 220, 221, 211, 212, 216, 211, 212, 212, 222,
1152 223, 213, 224, 214, 213, 215, 214, 217, 215, 218,
1153 211, 216, 226, 227, 216, 216, 228, 219, 220, 221,
1154 211, 212, 229, 211, 212, 212, 222, 223, 213, 224,
1155 214, 213, 215, 214, 230, 215, 231, 232, 216, 226,
1156 227, 216, 216, 228, 233, 234, 235, 236, 237, 229,
1157 238, 239, 240, 241, 243, 244, 245, 246, 247, 248,
1158 249, 230, 250, 231, 232, 251, 252, 253, 254, 255,
1160 256, 233, 234, 235, 236, 237, 257, 238, 239, 240,
1161 241, 243, 244, 245, 246, 247, 248, 249, 258, 250,
1162 0, 0, 251, 252, 253, 254, 255, 256, 272, 0,
1163 269, 270, 0, 257, 259, 259, 259, 259, 259, 259,
1164 259, 259, 259, 266, 284, 258, 260, 260, 260, 260,
1165 260, 260, 260, 260, 261, 267, 268, 269, 270, 266,
1166 261, 273, 266, 274, 275, 272, 276, 277, 278, 281,
1167 261, 267, 268, 261, 267, 268, 285, 286, 287, 288,
1168 289, 284, 290, 291, 292, 293, 266, 261, 273, 266,
1169 274, 275, 294, 276, 277, 278, 281, 261, 267, 268,
1171 261, 267, 268, 285, 296, 287, 288, 297, 295, 290,
1172 291, 292, 293, 298, 286, 299, 300, 289, 295, 294,
1173 301, 302, 303, 310, 304, 305, 306, 307, 308, 309,
1174 316, 296, 0, 0, 297, 317, 318, 295, 0, 0,
1175 0, 0, 299, 300, 323, 295, 0, 301, 302, 303,
1176 298, 304, 305, 306, 307, 308, 309, 316, 319, 313,
1177 310, 320, 317, 318, 295, 311, 311, 311, 311, 311,
1178 311, 311, 311, 311, 313, 313, 321, 322, 313, 324,
1179 325, 323, 326, 327, 328, 319, 329, 330, 320, 331,
1180 332, 333, 334, 336, 337, 338, 339, 340, 341, 342,
1182 343, 313, 313, 321, 322, 313, 324, 325, 344, 326,
1183 327, 328, 345, 329, 330, 346, 331, 332, 333, 334,
1184 336, 337, 338, 339, 340, 341, 342, 343, 347, 350,
1185 351, 352, 353, 353, 355, 344, 354, 354, 356, 345,
1186 357, 358, 346, 359, 360, 361, 363, 364, 366, 367,
1187 0, 0, 0, 0, 0, 347, 350, 351, 352, 353,
1188 353, 355, 370, 354, 354, 356, 371, 372, 358, 373,
1189 359, 360, 361, 363, 364, 366, 367, 357, 368, 368,
1190 368, 368, 368, 368, 368, 368, 368, 369, 374, 370,
1191 375, 376, 377, 371, 372, 378, 373, 379, 380, 381,
1193 383, 384, 386, 369, 387, 388, 369, 389, 369, 390,
1194 391, 392, 393, 394, 395, 374, 396, 375, 376, 377,
1195 397, 398, 378, 399, 379, 380, 381, 383, 384, 386,
1196 369, 387, 388, 369, 389, 369, 390, 391, 392, 393,
1197 394, 395, 400, 396, 401, 403, 404, 397, 398, 405,
1198 399, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1199 415, 417, 416, 418, 419, 420, 421, 414, 429, 400,
1200 416, 401, 403, 404, 423, 424, 405, 425, 406, 407,
1201 408, 409, 410, 411, 412, 413, 414, 415, 417, 416,
1202 418, 419, 420, 421, 414, 422, 426, 416, 427, 428,
1204 430, 423, 424, 431, 425, 429, 432, 435, 436, 437,
1205 438, 422, 439, 440, 422, 441, 442, 445, 446, 447,
1206 448, 449, 450, 426, 451, 427, 428, 430, 452, 453,
1207 431, 0, 454, 432, 435, 436, 437, 438, 422, 439,
1208 440, 422, 441, 442, 445, 446, 447, 448, 455, 450,
1209 456, 451, 457, 458, 459, 452, 453, 460, 449, 454,
1210 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
1211 471, 474, 475, 478, 479, 455, 480, 456, 481, 457,
1212 458, 459, 482, 483, 460, 484, 485, 461, 462, 463,
1213 464, 465, 466, 467, 468, 469, 470, 471, 474, 475,
1215 478, 479, 486, 480, 487, 481, 488, 489, 490, 482,
1216 483, 491, 484, 485, 492, 493, 494, 495, 496, 497,
1217 498, 499, 500, 503, 504, 505, 506, 507, 508, 486,
1218 509, 487, 510, 488, 489, 490, 511, 512, 491, 513,
1219 514, 492, 493, 494, 495, 496, 497, 498, 499, 500,
1220 503, 504, 505, 506, 507, 508, 515, 509, 516, 510,
1221 519, 520, 521, 511, 512, 522, 513, 514, 523, 524,
1222 525, 526, 529, 530, 531, 532, 533, 534, 535, 536,
1223 537, 538, 539, 515, 540, 516, 541, 519, 520, 521,
1224 542, 543, 522, 544, 545, 523, 524, 525, 526, 529,
1226 530, 531, 532, 533, 534, 535, 536, 537, 538, 539,
1227 546, 540, 547, 541, 548, 549, 550, 542, 543, 551,
1228 544, 545, 552, 553, 556, 557, 560, 561, 562, 563,
1229 572, 573, 575, 576, 578, 579, 580, 546, 581, 547,
1230 582, 548, 549, 550, 583, 584, 551, 585, 586, 552,
1231 553, 556, 557, 560, 561, 562, 563, 572, 573, 575,
1232 576, 578, 579, 580, 587, 581, 589, 582, 590, 591,
1233 592, 583, 584, 593, 585, 586, 594, 595, 596, 597,
1234 598, 599, 600, 603, 604, 607, 608, 609, 610, 613,
1235 614, 587, 615, 589, 616, 590, 591, 592, 617, 619,
1237 593, 621, 622, 594, 595, 596, 597, 598, 599, 600,
1238 603, 604, 607, 608, 609, 610, 613, 614, 623, 615,
1239 624, 616, 625, 626, 627, 617, 619, 628, 621, 622,
1240 629, 630, 632, 633, 634, 635, 636, 637, 638, 639,
1241 640, 641, 642, 643, 646, 623, 647, 624, 650, 625,
1242 626, 627, 651, 652, 628, 653, 654, 629, 630, 632,
1243 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
1244 643, 646, 655, 647, 658, 650, 659, 660, 661, 651,
1245 652, 662, 653, 654, 663, 666, 667, 668, 669, 670,
1246 671, 672, 673, 674, 675, 676, 677, 678, 679, 655,
1248 680, 658, 681, 659, 660, 661, 686, 687, 662, 688,
1249 689, 663, 666, 667, 668, 669, 670, 671, 672, 673,
1250 674, 675, 676, 677, 678, 679, 690, 680, 691, 681,
1251 700, 701, 702, 686, 687, 704, 688, 689, 705, 707,
1252 710, 711, 712, 713, 714, 715, 716, 717, 718, 719,
1253 726, 729, 732, 690, 733, 691, 734, 700, 701, 702,
1254 735, 736, 704, 737, 742, 705, 707, 710, 711, 712,
1255 713, 714, 715, 716, 717, 718, 719, 726, 729, 732,
1256 743, 733, 744, 734, 746, 748, 749, 735, 736, 752,
1257 737, 742, 753, 758, 759, 764, 765, 766, 767, 768,
1259 769, 774, 775, 776, 777, 780, 781, 743, 784, 744,
1260 785, 746, 748, 749, 0, 0, 752, 0, 0, 753,
1261 758, 759, 764, 765, 766, 767, 768, 769, 774, 775,
1262 776, 777, 780, 781, 0, 784, 0, 785, 791, 0,
1263 791, 793, 793, 793, 790, 790, 790, 790, 790, 790,
1264 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1265 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1266 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1267 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1268 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1270 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1271 790, 790, 790, 790, 790, 790
1274 static yyconst flex_int16_t yy_rule_linenum
[94] =
1276 76, 79, 81, 83, 87, 88, 90, 91, 92, 93,
1277 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1278 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1279 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1280 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1281 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1282 144, 145, 146, 148, 149, 151, 152, 153, 154, 155,
1283 156, 158, 159, 162, 167, 168, 169, 171, 172, 173,
1284 174, 175, 176, 177, 178, 179, 181, 187, 193, 199,
1289 /* The intent behind this definition is that it'll catch
1290 * any uses of REJECT which flex missed.
1292 #define REJECT reject_used_but_not_detected
1293 #define yymore() yymore_used_but_not_detected
1294 #define YY_MORE_ADJ 0
1295 #define YY_RESTORE_YY_MORE_OFFSET
1296 #line 1 "libmemcached/options/scanner.l"
1297 /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
1299 * Libmemcached Scanner and Parser
1301 * Copyright (C) 2011 DataDifferental, http://datadifferential.com
1303 * This program is free software: you can redistribute it and/or modify
1304 * it under the terms of the GNU Affero General Public License as
1305 * published by the Free Software Foundation, either version 3 of the
1306 * License, or (at your option) any later version.
1308 * This program is distributed in the hope that it will be useful,
1309 * but WITHOUT ANY WARRANTY; without even the implied warranty of
1310 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1311 * GNU Affero General Public License for more details.
1313 * You should have received a copy of the GNU Affero General Public License
1314 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1317 #line 37 "libmemcached/options/scanner.l"
1321 #define PARAM config_get_extra(yyscanner)
1323 #define get_lex_chars(buffer, result, max_size, context) \
1325 if (context->pos >= context->length) \
1331 result= context->length - context->pos; \
1332 result > max_size ? result = max_size : 0; \
1333 memcpy(buffer, context->buf + context->pos, result); \
1334 context->pos += result; \
1339 #define YY_INPUT(buffer, result, max_size) get_lex_chars(buffer, result, max_size, PARAM)
1341 #line 1342 "libmemcached/options/scanner.cc"
1345 #ifndef YY_NO_UNISTD_H
1346 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1347 * down here because we want the user's section 1 to have been scanned first.
1348 * The user has a chance to override it with an option.
1357 #ifndef YY_EXTRA_TYPE
1358 #define YY_EXTRA_TYPE void *
1361 /* %if-c-only Reentrant structure and macros (non-C++). */
1364 /* Holds the entire state of the reentrant scanner. */
1368 /* User-defined. Not touched by flex. */
1369 YY_EXTRA_TYPE yyextra_r
;
1371 /* The rest are the same as the globals declared in the non-reentrant scanner. */
1372 FILE *yyin_r
, *yyout_r
;
1373 size_t yy_buffer_stack_top
; /**< index of top of stack. */
1374 size_t yy_buffer_stack_max
; /**< capacity of stack. */
1375 YY_BUFFER_STATE
* yy_buffer_stack
; /**< Stack as an array. */
1382 int yy_did_buffer_switch_on_eof
;
1383 int yy_start_stack_ptr
;
1384 int yy_start_stack_depth
;
1385 int *yy_start_stack
;
1386 yy_state_type yy_last_accepting_state
;
1387 char* yy_last_accepting_cpos
;
1390 int yy_flex_debug_r
;
1398 }; /* end struct yyguts_t */
1402 static int yy_init_globals (yyscan_t yyscanner
);
1408 /* This must go here because YYSTYPE and YYLTYPE are included
1409 * from bison output in section 1.*/
1410 # define yylval yyg->yylval_r
1412 int config_lex_init (yyscan_t
* scanner
);
1414 int config_lex_init_extra (YY_EXTRA_TYPE user_defined
,yyscan_t
* scanner
);
1418 /* %endif End reentrant structures and macros. */
1420 /* Accessor methods to globals.
1421 These are made visible to non-reentrant scanners for convenience. */
1423 int config_lex_destroy (yyscan_t yyscanner
);
1425 int config_get_debug (yyscan_t yyscanner
);
1427 void config_set_debug (int debug_flag
,yyscan_t yyscanner
);
1429 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
);
1431 void config_set_extra (YY_EXTRA_TYPE user_defined
,yyscan_t yyscanner
);
1433 FILE *config_get_in (yyscan_t yyscanner
);
1435 void config_set_in (FILE * in_str
,yyscan_t yyscanner
);
1437 FILE *config_get_out (yyscan_t yyscanner
);
1439 void config_set_out (FILE * out_str
,yyscan_t yyscanner
);
1441 int config_get_leng (yyscan_t yyscanner
);
1443 char *config_get_text (yyscan_t yyscanner
);
1445 int config_get_lineno (yyscan_t yyscanner
);
1447 void config_set_lineno (int line_number
,yyscan_t yyscanner
);
1449 int config_get_column (yyscan_t yyscanner
);
1451 void config_set_column (int column_no
,yyscan_t yyscanner
);
1453 /* %if-bison-bridge */
1455 YYSTYPE
* config_get_lval (yyscan_t yyscanner
);
1457 void config_set_lval (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1461 /* Macros after this point can all be overridden by user definitions in
1465 #ifndef YY_SKIP_YYWRAP
1467 extern "C" int config_wrap (yyscan_t yyscanner
);
1469 extern int config_wrap (yyscan_t yyscanner
);
1473 /* %not-for-header */
1475 /* %ok-for-header */
1480 static void yy_flex_strncpy (char *,yyconst
char *,int ,yyscan_t yyscanner
);
1483 #ifdef YY_NEED_STRLEN
1484 static int yy_flex_strlen (yyconst
char * ,yyscan_t yyscanner
);
1488 /* %if-c-only Standard (non-C++) definition */
1489 /* %not-for-header */
1492 static int yyinput (yyscan_t yyscanner
);
1494 static int input (yyscan_t yyscanner
);
1496 /* %ok-for-header */
1505 /* Amount of stuff to slurp up with each read. */
1506 #ifndef YY_READ_BUF_SIZE
1507 #define YY_READ_BUF_SIZE 8192
1510 /* Copy whatever the last rule matched to the standard output. */
1512 /* %if-c-only Standard (non-C++) definition */
1513 /* This used to be an fputs(), but since the string might contain NUL's,
1514 * we now use fwrite().
1516 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1518 /* %if-c++-only C++ definition */
1522 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1523 * is returned in "result".
1526 #define YY_INPUT(buf,result,max_size) \
1527 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
1528 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1532 for ( n = 0; n < max_size && \
1533 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1534 buf[n] = (char) c; \
1536 buf[n++] = (char) c; \
1537 if ( c == EOF && ferror( yyin ) ) \
1538 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1544 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1546 if( errno != EINTR) \
1548 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1556 /* %if-c++-only C++ definition \ */\
1561 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1562 * we don't want an extra ';' after the "return" because that will cause
1563 * some compilers to complain about unreachable statements.
1566 #define yyterminate() return YY_NULL
1569 /* Number of entries by which start-condition stack grows. */
1570 #ifndef YY_START_STACK_INCR
1571 #define YY_START_STACK_INCR 25
1574 /* Report a fatal error. */
1575 #ifndef YY_FATAL_ERROR
1577 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1583 /* %if-tables-serialization structures and prototypes */
1584 /* %not-for-header */
1586 /* %ok-for-header */
1588 /* %not-for-header */
1590 /* %tables-yydmap generated elements */
1592 /* end tables serialization structures and prototypes */
1594 /* %ok-for-header */
1596 /* Default declaration of generated scanner - a define so the user can
1597 * easily add parameters.
1600 #define YY_DECL_IS_OURS 1
1601 /* %if-c-only Standard (non-C++) definition */
1603 extern int config_lex \
1604 (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1606 #define YY_DECL int config_lex \
1607 (YYSTYPE * yylval_param , yyscan_t yyscanner)
1609 /* %if-c++-only C++ definition */
1611 #endif /* !YY_DECL */
1613 /* Code executed at the beginning of each rule, after yytext and yyleng
1616 #ifndef YY_USER_ACTION
1617 #define YY_USER_ACTION
1620 /* Code executed at the end of each rule. */
1622 #define YY_BREAK break;
1625 /* %% [6.0] YY_RULE_SETUP definition goes here */
1626 #define YY_RULE_SETUP \
1628 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1629 (yytext[yyleng - 1] == '\n'); \
1632 /* %not-for-header */
1634 /** The main scanner function which does all the work.
1638 register yy_state_type yy_current_state
;
1639 register char *yy_cp
, *yy_bp
;
1640 register int yy_act
;
1641 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
1643 /* %% [7.0] user's declarations go here */
1644 #line 73 "libmemcached/options/scanner.l"
1648 #line 1649 "libmemcached/options/scanner.cc"
1650 yylval
= yylval_param
;
1652 if ( !yyg
->yy_init
)
1660 if ( ! yyg
->yy_start
)
1661 yyg
->yy_start
= 1; /* first start state */
1677 if ( ! YY_CURRENT_BUFFER
) {
1678 config_ensure_buffer_stack (yyscanner
);
1679 YY_CURRENT_BUFFER_LVALUE
=
1680 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
1683 config__load_buffer_state(yyscanner
);
1686 while ( 1 ) /* loops until end-of-file is reached */
1688 /* %% [8.0] yymore()-related code goes here */
1689 yy_cp
= yyg
->yy_c_buf_p
;
1691 /* Support of yytext. */
1692 *yy_cp
= yyg
->yy_hold_char
;
1694 /* yy_bp points to the position in yy_ch_buf of the start of
1699 /* %% [9.0] code to set up and find next match goes here */
1700 yy_current_state
= yyg
->yy_start
;
1701 yy_current_state
+= YY_AT_BOL();
1705 register YY_CHAR yy_c
= yy_ec
[YY_SC_TO_UI(*yy_cp
)];
1706 if ( yy_accept
[yy_current_state
] )
1708 yyg
->yy_last_accepting_state
= yy_current_state
;
1709 yyg
->yy_last_accepting_cpos
= yy_cp
;
1711 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
1713 yy_current_state
= (int) yy_def
[yy_current_state
];
1714 if ( yy_current_state
>= 791 )
1715 yy_c
= yy_meta
[(unsigned int) yy_c
];
1717 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
1720 while ( yy_base
[yy_current_state
] != 2145 );
1723 /* %% [10.0] code to find the action number goes here */
1724 yy_act
= yy_accept
[yy_current_state
];
1726 { /* have to back up */
1727 yy_cp
= yyg
->yy_last_accepting_cpos
;
1728 yy_current_state
= yyg
->yy_last_accepting_state
;
1729 yy_act
= yy_accept
[yy_current_state
];
1732 YY_DO_BEFORE_ACTION
;
1734 /* %% [11.0] code for yylineno update goes here */
1736 do_action
: /* This label is used only to access EOF actions. */
1738 /* %% [12.0] debug code goes here */
1739 if ( yy_flex_debug
)
1742 fprintf( stderr
, "--scanner backing up\n" );
1743 else if ( yy_act
< 94 )
1744 fprintf( stderr
, "--accepting rule at line %ld (\"%s\")\n",
1745 (long)yy_rule_linenum
[yy_act
], yytext
);
1746 else if ( yy_act
== 94 )
1747 fprintf( stderr
, "--accepting default rule (\"%s\")\n",
1749 else if ( yy_act
== 95 )
1750 fprintf( stderr
, "--(end of buffer or a NUL)\n" );
1752 fprintf( stderr
, "--EOF (start condition %d)\n", YY_START
);
1756 { /* beginning of action switch */
1757 /* %% [13.0] actions go here */
1758 case 0: /* must back up */
1759 /* undo the effects of YY_DO_BEFORE_ACTION */
1760 *yy_cp
= yyg
->yy_hold_char
;
1761 yy_cp
= yyg
->yy_last_accepting_cpos
;
1762 yy_current_state
= yyg
->yy_last_accepting_state
;
1763 goto yy_find_action
;
1767 #line 76 "libmemcached/options/scanner.l"
1768 { return yytext
[0];}
1772 #line 79 "libmemcached/options/scanner.l"
1773 { yylval
->number
= atoi(yytext
); return (NUMBER
); }
1776 /* rule 3 can match eol */
1778 #line 81 "libmemcached/options/scanner.l"
1779 ; /* skip whitespace */
1782 *yy_cp
= yyg
->yy_hold_char
; /* undo effects of setting up yytext */
1783 yyg
->yy_c_buf_p
= yy_cp
-= 1;
1784 YY_DO_BEFORE_ACTION
; /* set up yytext again */
1786 #line 83 "libmemcached/options/scanner.l"
1793 #line 87 "libmemcached/options/scanner.l"
1794 { yyextra
->begin
= yytext
; return SERVER
; }
1798 #line 88 "libmemcached/options/scanner.l"
1799 { yyextra
->begin
= yytext
; return SERVERS_OPTION
; }
1803 #line 90 "libmemcached/options/scanner.l"
1804 { yyextra
->begin
= yytext
; return VERIFY_KEY
; }
1808 #line 91 "libmemcached/options/scanner.l"
1809 { yyextra
->begin
= yytext
; return VERIFY_KEY
; }
1813 #line 92 "libmemcached/options/scanner.l"
1814 { yyextra
->begin
= yytext
; return AUTO_EJECT_HOSTS
; }
1818 #line 93 "libmemcached/options/scanner.l"
1819 { yyextra
->begin
= yytext
; return AUTO_EJECT_HOSTS
; }
1823 #line 94 "libmemcached/options/scanner.l"
1824 { yyextra
->begin
= yytext
; return BINARY_PROTOCOL
; }
1828 #line 95 "libmemcached/options/scanner.l"
1829 { yyextra
->begin
= yytext
; return BINARY_PROTOCOL
; }
1833 #line 96 "libmemcached/options/scanner.l"
1834 { yyextra
->begin
= yytext
; return BUFFER_REQUESTS
; }
1838 #line 97 "libmemcached/options/scanner.l"
1839 { yyextra
->begin
= yytext
; return BUFFER_REQUESTS
; }
1843 #line 98 "libmemcached/options/scanner.l"
1844 { yyextra
->begin
= yytext
; return CONFIGURE_FILE
; }
1848 #line 99 "libmemcached/options/scanner.l"
1849 { yyextra
->begin
= yytext
; return CONFIGURE_FILE
; }
1853 #line 100 "libmemcached/options/scanner.l"
1854 { yyextra
->begin
= yytext
; return CONNECT_TIMEOUT
; }
1858 #line 101 "libmemcached/options/scanner.l"
1859 { yyextra
->begin
= yytext
; return CONNECT_TIMEOUT
; }
1863 #line 102 "libmemcached/options/scanner.l"
1864 { yyextra
->begin
= yytext
; return DISTRIBUTION
; }
1868 #line 103 "libmemcached/options/scanner.l"
1869 { yyextra
->begin
= yytext
; return HASH
; }
1873 #line 104 "libmemcached/options/scanner.l"
1874 { yyextra
->begin
= yytext
; return HASH_WITH_PREFIX_KEY
; }
1878 #line 105 "libmemcached/options/scanner.l"
1879 { yyextra
->begin
= yytext
; return HASH_WITH_PREFIX_KEY
; }
1883 #line 106 "libmemcached/options/scanner.l"
1884 { yyextra
->begin
= yytext
; return IO_BYTES_WATERMARK
; }
1888 #line 107 "libmemcached/options/scanner.l"
1889 { yyextra
->begin
= yytext
; return IO_BYTES_WATERMARK
; }
1893 #line 108 "libmemcached/options/scanner.l"
1894 { yyextra
->begin
= yytext
; return IO_KEY_PREFETCH
; }
1898 #line 109 "libmemcached/options/scanner.l"
1899 { yyextra
->begin
= yytext
; return IO_KEY_PREFETCH
; }
1903 #line 110 "libmemcached/options/scanner.l"
1904 { yyextra
->begin
= yytext
; return IO_MSG_WATERMARK
; }
1908 #line 111 "libmemcached/options/scanner.l"
1909 { yyextra
->begin
= yytext
; return IO_MSG_WATERMARK
; }
1913 #line 112 "libmemcached/options/scanner.l"
1914 { yyextra
->begin
= yytext
; return KETAMA_WEIGHTED
; }
1918 #line 113 "libmemcached/options/scanner.l"
1919 { yyextra
->begin
= yytext
; return KETAMA_WEIGHTED
; }
1923 #line 114 "libmemcached/options/scanner.l"
1924 { yyextra
->begin
= yytext
; return NOREPLY
; }
1928 #line 115 "libmemcached/options/scanner.l"
1929 { yyextra
->begin
= yytext
; return NUMBER_OF_REPLICAS
; }
1933 #line 116 "libmemcached/options/scanner.l"
1934 { yyextra
->begin
= yytext
; return NUMBER_OF_REPLICAS
; }
1938 #line 117 "libmemcached/options/scanner.l"
1939 { yyextra
->begin
= yytext
; return POLL_TIMEOUT
; }
1943 #line 118 "libmemcached/options/scanner.l"
1944 { yyextra
->begin
= yytext
; return POLL_TIMEOUT
; }
1948 #line 119 "libmemcached/options/scanner.l"
1949 { yyextra
->begin
= yytext
; return RANDOMIZE_REPLICA_READ
; }
1953 #line 120 "libmemcached/options/scanner.l"
1954 { yyextra
->begin
= yytext
; return RANDOMIZE_REPLICA_READ
; }
1958 #line 121 "libmemcached/options/scanner.l"
1959 { yyextra
->begin
= yytext
; return RCV_TIMEOUT
; }
1963 #line 122 "libmemcached/options/scanner.l"
1964 { yyextra
->begin
= yytext
; return RCV_TIMEOUT
; }
1968 #line 123 "libmemcached/options/scanner.l"
1969 { yyextra
->begin
= yytext
; return RETRY_TIMEOUT
; }
1973 #line 124 "libmemcached/options/scanner.l"
1974 { yyextra
->begin
= yytext
; return RETRY_TIMEOUT
; }
1978 #line 125 "libmemcached/options/scanner.l"
1979 { yyextra
->begin
= yytext
; return SERVER_FAILURE_LIMIT
; }
1983 #line 126 "libmemcached/options/scanner.l"
1984 { yyextra
->begin
= yytext
; return SERVER_FAILURE_LIMIT
; }
1988 #line 127 "libmemcached/options/scanner.l"
1989 { yyextra
->begin
= yytext
; return SND_TIMEOUT
; }
1993 #line 128 "libmemcached/options/scanner.l"
1994 { yyextra
->begin
= yytext
; return SND_TIMEOUT
; }
1998 #line 129 "libmemcached/options/scanner.l"
1999 { yyextra
->begin
= yytext
; return SOCKET_RECV_SIZE
; }
2003 #line 130 "libmemcached/options/scanner.l"
2004 { yyextra
->begin
= yytext
; return SOCKET_RECV_SIZE
; }
2008 #line 131 "libmemcached/options/scanner.l"
2009 { yyextra
->begin
= yytext
; return SOCKET_SEND_SIZE
; }
2013 #line 132 "libmemcached/options/scanner.l"
2014 { yyextra
->begin
= yytext
; return SOCKET_SEND_SIZE
; }
2018 #line 133 "libmemcached/options/scanner.l"
2019 { yyextra
->begin
= yytext
; return SORT_HOSTS
; }
2023 #line 134 "libmemcached/options/scanner.l"
2024 { yyextra
->begin
= yytext
; return SORT_HOSTS
; }
2028 #line 135 "libmemcached/options/scanner.l"
2029 { yyextra
->begin
= yytext
; return SUPPORT_CAS
; }
2033 #line 136 "libmemcached/options/scanner.l"
2034 { yyextra
->begin
= yytext
; return SUPPORT_CAS
; }
2038 #line 137 "libmemcached/options/scanner.l"
2039 { yyextra
->begin
= yytext
; return _TCP_NODELAY
; }
2043 #line 138 "libmemcached/options/scanner.l"
2044 { yyextra
->begin
= yytext
; return _TCP_NODELAY
; }
2048 #line 139 "libmemcached/options/scanner.l"
2049 { yyextra
->begin
= yytext
; return _TCP_KEEPALIVE
; }
2053 #line 140 "libmemcached/options/scanner.l"
2054 { yyextra
->begin
= yytext
; return _TCP_KEEPALIVE
; }
2058 #line 141 "libmemcached/options/scanner.l"
2059 { yyextra
->begin
= yytext
; return _TCP_KEEPIDLE
; }
2063 #line 142 "libmemcached/options/scanner.l"
2064 { yyextra
->begin
= yytext
; return _TCP_KEEPIDLE
; }
2068 #line 143 "libmemcached/options/scanner.l"
2069 { yyextra
->begin
= yytext
; return USER_DATA
; }
2073 #line 144 "libmemcached/options/scanner.l"
2074 { yyextra
->begin
= yytext
; return USER_DATA
; }
2078 #line 145 "libmemcached/options/scanner.l"
2079 { yyextra
->begin
= yytext
; return USE_UDP
; }
2083 #line 146 "libmemcached/options/scanner.l"
2084 { yyextra
->begin
= yytext
; return USE_UDP
; }
2088 #line 148 "libmemcached/options/scanner.l"
2089 { yyextra
->begin
= yytext
; return PREFIX_KEY
; }
2093 #line 149 "libmemcached/options/scanner.l"
2094 { yyextra
->begin
= yytext
; return PREFIX_KEY
; }
2098 #line 151 "libmemcached/options/scanner.l"
2099 { yyextra
->begin
= yytext
; return INCLUDE
; }
2103 #line 152 "libmemcached/options/scanner.l"
2104 { yyextra
->begin
= yytext
; return RESET
; }
2108 #line 153 "libmemcached/options/scanner.l"
2109 { yyextra
->begin
= yytext
; return PARSER_DEBUG
; }
2113 #line 154 "libmemcached/options/scanner.l"
2114 { yyextra
->begin
= yytext
; return SERVERS
; }
2118 #line 155 "libmemcached/options/scanner.l"
2119 { yyextra
->begin
= yytext
; return END
; }
2123 #line 156 "libmemcached/options/scanner.l"
2124 { yyextra
->begin
= yytext
; return ERROR
; }
2128 #line 158 "libmemcached/options/scanner.l"
2133 #line 159 "libmemcached/options/scanner.l"
2138 #line 162 "libmemcached/options/scanner.l"
2140 yyextra
->begin
= yytext
;
2141 return UNKNOWN_OPTION
;
2146 #line 167 "libmemcached/options/scanner.l"
2147 { return CONSISTENT
; }
2151 #line 168 "libmemcached/options/scanner.l"
2156 #line 169 "libmemcached/options/scanner.l"
2161 #line 171 "libmemcached/options/scanner.l"
2166 #line 172 "libmemcached/options/scanner.l"
2171 #line 173 "libmemcached/options/scanner.l"
2176 #line 174 "libmemcached/options/scanner.l"
2177 { return FNV1A_64
; }
2181 #line 175 "libmemcached/options/scanner.l"
2186 #line 176 "libmemcached/options/scanner.l"
2187 { return FNV1A_32
; }
2191 #line 177 "libmemcached/options/scanner.l"
2196 #line 178 "libmemcached/options/scanner.l"
2201 #line 179 "libmemcached/options/scanner.l"
2206 #line 181 "libmemcached/options/scanner.l"
2208 yylval
->string
.c_str
= yytext
;
2209 yylval
->string
.length
= yyleng
;
2210 return HOSTNAME_WITH_PORT
;
2215 #line 187 "libmemcached/options/scanner.l"
2217 yylval
->string
.c_str
= yytext
;
2218 yylval
->string
.length
= yyleng
;
2224 #line 193 "libmemcached/options/scanner.l"
2226 yylval
->string
.c_str
= yytext
;
2227 yylval
->string
.length
= yyleng
;
2228 return IPADDRESS_WITH_PORT
;
2233 #line 199 "libmemcached/options/scanner.l"
2235 yylval
->string
.c_str
= yytext
;
2236 yylval
->string
.length
= yyleng
;
2242 #line 205 "libmemcached/options/scanner.l"
2244 yylval
->string
.c_str
= yytext
;
2245 yylval
->string
.length
= yyleng
;
2251 #line 211 "libmemcached/options/scanner.l"
2253 yylval
->string
.c_str
= yytext
;
2254 yylval
->string
.length
= yyleng
;
2255 return QUOTED_STRING
;
2260 #line 217 "libmemcached/options/scanner.l"
2262 yyextra
->begin
= yytext
;
2268 #line 222 "libmemcached/options/scanner.l"
2271 #line 2272 "libmemcached/options/scanner.cc"
2272 case YY_STATE_EOF(INITIAL
):
2275 case YY_END_OF_BUFFER
:
2277 /* Amount of text matched not including the EOB char. */
2278 int yy_amount_of_matched_text
= (int) (yy_cp
- yyg
->yytext_ptr
) - 1;
2280 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2281 *yy_cp
= yyg
->yy_hold_char
;
2282 YY_RESTORE_YY_MORE_OFFSET
2284 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_NEW
)
2286 /* We're scanning a new file or input source. It's
2287 * possible that this happened because the user
2288 * just pointed yyin at a new source and called
2289 * config_lex(). If so, then we have to assure
2290 * consistency between YY_CURRENT_BUFFER and our
2291 * globals. Here is the right place to do so, because
2292 * this is the first action (other than possibly a
2293 * back-up) that will match for the new input source.
2295 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
2296 YY_CURRENT_BUFFER_LVALUE
->yy_input_file
= yyin
;
2297 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
= YY_BUFFER_NORMAL
;
2300 /* Note that here we test for yy_c_buf_p "<=" to the position
2301 * of the first EOB in the buffer, since yy_c_buf_p will
2302 * already have been incremented past the NUL character
2303 * (since all states make transitions on EOB to the
2304 * end-of-buffer state). Contrast this with the test
2307 if ( yyg
->yy_c_buf_p
<= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
2308 { /* This was really a NUL. */
2309 yy_state_type yy_next_state
;
2311 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
2313 yy_current_state
= yy_get_previous_state( yyscanner
);
2315 /* Okay, we're now positioned to make the NUL
2316 * transition. We couldn't have
2317 * yy_get_previous_state() go ahead and do it
2318 * for us because it doesn't know how to deal
2319 * with the possibility of jamming (and we don't
2320 * want to build jamming into it because then it
2321 * will run more slowly).
2324 yy_next_state
= yy_try_NUL_trans( yy_current_state
, yyscanner
);
2326 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2328 if ( yy_next_state
)
2330 /* Consume the NUL. */
2331 yy_cp
= ++yyg
->yy_c_buf_p
;
2332 yy_current_state
= yy_next_state
;
2338 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
2339 yy_cp
= yyg
->yy_c_buf_p
;
2340 goto yy_find_action
;
2344 else switch ( yy_get_next_buffer( yyscanner
) )
2346 case EOB_ACT_END_OF_FILE
:
2348 yyg
->yy_did_buffer_switch_on_eof
= 0;
2350 if ( config_wrap(yyscanner
) )
2352 /* Note: because we've taken care in
2353 * yy_get_next_buffer() to have set up
2354 * yytext, we can now set up
2355 * yy_c_buf_p so that if some total
2356 * hoser (like flex itself) wants to
2357 * call the scanner after we return the
2358 * YY_NULL, it'll still work - another
2359 * YY_NULL will get returned.
2361 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2363 yy_act
= YY_STATE_EOF(YY_START
);
2369 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
2375 case EOB_ACT_CONTINUE_SCAN
:
2377 yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
2379 yy_current_state
= yy_get_previous_state( yyscanner
);
2381 yy_cp
= yyg
->yy_c_buf_p
;
2382 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2385 case EOB_ACT_LAST_MATCH
:
2387 &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
];
2389 yy_current_state
= yy_get_previous_state( yyscanner
);
2391 yy_cp
= yyg
->yy_c_buf_p
;
2392 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2393 goto yy_find_action
;
2400 "fatal flex scanner internal error--no action found" );
2401 } /* end of action switch */
2402 } /* end of scanning one token */
2403 } /* end of config_lex */
2404 /* %ok-for-header */
2407 /* %not-for-header */
2409 /* %ok-for-header */
2413 /* yy_get_next_buffer - try to read in a new buffer
2415 * Returns a code representing an action:
2416 * EOB_ACT_LAST_MATCH -
2417 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2418 * EOB_ACT_END_OF_FILE - end of file
2421 static int yy_get_next_buffer (yyscan_t yyscanner
)
2426 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2427 register char *dest
= YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
;
2428 register char *source
= yyg
->yytext_ptr
;
2429 register int number_to_move
, i
;
2432 if ( yyg
->yy_c_buf_p
> &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] )
2434 "fatal flex scanner internal error--end of buffer missed" );
2436 if ( YY_CURRENT_BUFFER_LVALUE
->yy_fill_buffer
== 0 )
2437 { /* Don't try to fill the buffer, so this is an EOF. */
2438 if ( yyg
->yy_c_buf_p
- yyg
->yytext_ptr
- YY_MORE_ADJ
== 1 )
2440 /* We matched a single character, the EOB, so
2441 * treat this as a final EOF.
2443 return EOB_ACT_END_OF_FILE
;
2448 /* We matched some text prior to the EOB, first
2451 return EOB_ACT_LAST_MATCH
;
2455 /* Try to read more data. */
2457 /* First move last chars to start of buffer. */
2458 number_to_move
= (int) (yyg
->yy_c_buf_p
- yyg
->yytext_ptr
) - 1;
2460 for ( i
= 0; i
< number_to_move
; ++i
)
2461 *(dest
++) = *(source
++);
2463 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_EOF_PENDING
)
2464 /* don't do the read, it's not guaranteed to return an EOF,
2467 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
= 0;
2472 YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
- number_to_move
- 1;
2474 while ( num_to_read
<= 0 )
2475 { /* Not enough room in the buffer - grow it. */
2477 /* just a shorter name for the current buffer */
2478 YY_BUFFER_STATE b
= YY_CURRENT_BUFFER
;
2480 int yy_c_buf_p_offset
=
2481 (int) (yyg
->yy_c_buf_p
- b
->yy_ch_buf
);
2483 if ( b
->yy_is_our_buffer
)
2485 int new_size
= b
->yy_buf_size
* 2;
2487 if ( new_size
<= 0 )
2488 b
->yy_buf_size
+= b
->yy_buf_size
/ 8;
2490 b
->yy_buf_size
*= 2;
2492 b
->yy_ch_buf
= (char *)
2493 /* Include room in for 2 EOB chars. */
2494 config_realloc((void *) b
->yy_ch_buf
,b
->yy_buf_size
+ 2 ,yyscanner
);
2497 /* Can't grow it, we don't own it. */
2500 if ( ! b
->yy_ch_buf
)
2502 "fatal error - scanner input buffer overflow" );
2504 yyg
->yy_c_buf_p
= &b
->yy_ch_buf
[yy_c_buf_p_offset
];
2506 num_to_read
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
-
2511 if ( num_to_read
> YY_READ_BUF_SIZE
)
2512 num_to_read
= YY_READ_BUF_SIZE
;
2514 /* Read in more data. */
2515 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[number_to_move
]),
2516 yyg
->yy_n_chars
, (size_t) num_to_read
);
2518 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2521 if ( yyg
->yy_n_chars
== 0 )
2523 if ( number_to_move
== YY_MORE_ADJ
)
2525 ret_val
= EOB_ACT_END_OF_FILE
;
2526 config_restart(yyin
,yyscanner
);
2531 ret_val
= EOB_ACT_LAST_MATCH
;
2532 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
=
2533 YY_BUFFER_EOF_PENDING
;
2538 ret_val
= EOB_ACT_CONTINUE_SCAN
;
2540 if ((yy_size_t
) (yyg
->yy_n_chars
+ number_to_move
) > YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
) {
2541 /* Extend the array by 50%, plus the number we really need. */
2542 yy_size_t new_size
= yyg
->yy_n_chars
+ number_to_move
+ (yyg
->yy_n_chars
>> 1);
2543 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
= (char *) config_realloc((void *) YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
,new_size
,yyscanner
);
2544 if ( ! YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
)
2545 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2548 yyg
->yy_n_chars
+= number_to_move
;
2549 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] = YY_END_OF_BUFFER_CHAR
;
2550 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] = YY_END_OF_BUFFER_CHAR
;
2552 yyg
->yytext_ptr
= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[0];
2557 /* yy_get_previous_state - get the state just before the EOB char was reached */
2560 /* %not-for-header */
2562 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
)
2567 register yy_state_type yy_current_state
;
2568 register char *yy_cp
;
2569 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2571 /* %% [15.0] code to get the start state into yy_current_state goes here */
2572 yy_current_state
= yyg
->yy_start
;
2573 yy_current_state
+= YY_AT_BOL();
2575 for ( yy_cp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
; yy_cp
< yyg
->yy_c_buf_p
; ++yy_cp
)
2577 /* %% [16.0] code to find the next state goes here */
2578 register YY_CHAR yy_c
= (*yy_cp
? yy_ec
[YY_SC_TO_UI(*yy_cp
)] : 1);
2579 if ( yy_accept
[yy_current_state
] )
2581 yyg
->yy_last_accepting_state
= yy_current_state
;
2582 yyg
->yy_last_accepting_cpos
= yy_cp
;
2584 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2586 yy_current_state
= (int) yy_def
[yy_current_state
];
2587 if ( yy_current_state
>= 791 )
2588 yy_c
= yy_meta
[(unsigned int) yy_c
];
2590 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2593 return yy_current_state
;
2596 /* yy_try_NUL_trans - try to make a transition on the NUL character
2599 * next_state = yy_try_NUL_trans( current_state );
2602 static yy_state_type
yy_try_NUL_trans (yy_state_type yy_current_state
, yyscan_t yyscanner
)
2607 register int yy_is_jam
;
2608 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
; /* This var may be unused depending upon options. */
2609 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
2610 register char *yy_cp
= yyg
->yy_c_buf_p
;
2612 register YY_CHAR yy_c
= 1;
2613 if ( yy_accept
[yy_current_state
] )
2615 yyg
->yy_last_accepting_state
= yy_current_state
;
2616 yyg
->yy_last_accepting_cpos
= yy_cp
;
2618 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2620 yy_current_state
= (int) yy_def
[yy_current_state
];
2621 if ( yy_current_state
>= 791 )
2622 yy_c
= yy_meta
[(unsigned int) yy_c
];
2624 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2625 yy_is_jam
= (yy_current_state
== 790);
2627 return yy_is_jam
? 0 : yy_current_state
;
2637 static int yyinput (yyscan_t yyscanner
)
2639 static int input (yyscan_t yyscanner
)
2647 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2649 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2651 if ( *yyg
->yy_c_buf_p
== YY_END_OF_BUFFER_CHAR
)
2653 /* yy_c_buf_p now points to the character we want to return.
2654 * If this occurs *before* the EOB characters, then it's a
2655 * valid NUL; if not, then we've hit the end of the buffer.
2657 if ( yyg
->yy_c_buf_p
< &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
2658 /* This was really a NUL. */
2659 *yyg
->yy_c_buf_p
= '\0';
2662 { /* need more input */
2663 int offset
= yyg
->yy_c_buf_p
- yyg
->yytext_ptr
;
2666 switch ( yy_get_next_buffer( yyscanner
) )
2668 case EOB_ACT_LAST_MATCH
:
2669 /* This happens because yy_g_n_b()
2670 * sees that we've accumulated a
2671 * token and flags that we need to
2672 * try matching the token before
2673 * proceeding. But for input(),
2674 * there's no matching to consider.
2675 * So convert the EOB_ACT_LAST_MATCH
2676 * to EOB_ACT_END_OF_FILE.
2679 /* Reset buffer status. */
2680 config_restart(yyin
,yyscanner
);
2684 case EOB_ACT_END_OF_FILE
:
2686 if ( config_wrap(yyscanner
) )
2689 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
2692 return yyinput(yyscanner
);
2694 return input(yyscanner
);
2698 case EOB_ACT_CONTINUE_SCAN
:
2699 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ offset
;
2705 c
= *(unsigned char *) yyg
->yy_c_buf_p
; /* cast for 8-bit char's */
2706 *yyg
->yy_c_buf_p
= '\0'; /* preserve yytext */
2707 yyg
->yy_hold_char
= *++yyg
->yy_c_buf_p
;
2709 /* %% [19.0] update BOL and yylineno */
2710 YY_CURRENT_BUFFER_LVALUE
->yy_at_bol
= (c
== '\n');
2715 #endif /* ifndef YY_NO_INPUT */
2718 /** Immediately switch to a different input stream.
2719 * @param input_file A readable stream.
2720 * @param yyscanner The scanner object.
2721 * @note This function does not reset the start condition to @c INITIAL .
2724 void config_restart (FILE * input_file
, yyscan_t yyscanner
)
2729 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2731 if ( ! YY_CURRENT_BUFFER
){
2732 config_ensure_buffer_stack (yyscanner
);
2733 YY_CURRENT_BUFFER_LVALUE
=
2734 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
2737 config__init_buffer(YY_CURRENT_BUFFER
,input_file
,yyscanner
);
2738 config__load_buffer_state(yyscanner
);
2741 /** Switch to a different input buffer.
2742 * @param new_buffer The new input buffer.
2743 * @param yyscanner The scanner object.
2746 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
2751 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2753 /* TODO. We should be able to replace this entire function body
2755 * config_pop_buffer_state();
2756 * config_push_buffer_state(new_buffer);
2758 config_ensure_buffer_stack (yyscanner
);
2759 if ( YY_CURRENT_BUFFER
== new_buffer
)
2762 if ( YY_CURRENT_BUFFER
)
2764 /* Flush out information for old buffer. */
2765 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2766 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
2767 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2770 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
2771 config__load_buffer_state(yyscanner
);
2773 /* We don't actually know whether we did this switch during
2774 * EOF (config_wrap()) processing, but the only time this flag
2775 * is looked at is after config_wrap() is called, so it's safe
2776 * to go ahead and always set it.
2778 yyg
->yy_did_buffer_switch_on_eof
= 1;
2782 static void config__load_buffer_state (yyscan_t yyscanner
)
2787 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2788 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
2789 yyg
->yytext_ptr
= yyg
->yy_c_buf_p
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
;
2790 yyin
= YY_CURRENT_BUFFER_LVALUE
->yy_input_file
;
2791 yyg
->yy_hold_char
= *yyg
->yy_c_buf_p
;
2794 /** Allocate and initialize an input buffer state.
2795 * @param file A readable stream.
2796 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2797 * @param yyscanner The scanner object.
2798 * @return the allocated buffer state.
2801 YY_BUFFER_STATE
config__create_buffer (FILE * file
, int size
, yyscan_t yyscanner
)
2808 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
2810 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2812 b
->yy_buf_size
= size
;
2814 /* yy_ch_buf has to be 2 characters longer than the size given because
2815 * we need to put in 2 end-of-buffer characters.
2817 b
->yy_ch_buf
= (char *) config_alloc(b
->yy_buf_size
+ 2 ,yyscanner
);
2818 if ( ! b
->yy_ch_buf
)
2819 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2821 b
->yy_is_our_buffer
= 1;
2823 config__init_buffer(b
,file
,yyscanner
);
2828 /** Destroy the buffer.
2829 * @param b a buffer created with config__create_buffer()
2830 * @param yyscanner The scanner object.
2833 void config__delete_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2838 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2843 if ( b
== YY_CURRENT_BUFFER
) /* Not sure if we should pop here. */
2844 YY_CURRENT_BUFFER_LVALUE
= (YY_BUFFER_STATE
) 0;
2846 if ( b
->yy_is_our_buffer
)
2847 config_free((void *) b
->yy_ch_buf
,yyscanner
);
2849 config_free((void *) b
,yyscanner
);
2855 extern int isatty (int );
2856 #endif /* __cplusplus */
2863 /* Initializes or reinitializes a buffer.
2864 * This function is sometimes called more than once on the same buffer,
2865 * such as during a config_restart() or at EOF.
2868 static void config__init_buffer (YY_BUFFER_STATE b
, FILE * file
, yyscan_t yyscanner
)
2875 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2877 config__flush_buffer(b
,yyscanner
);
2879 b
->yy_input_file
= file
;
2880 b
->yy_fill_buffer
= 1;
2882 /* If b is the current buffer, then config__init_buffer was _probably_
2883 * called from config_restart() or through yy_get_next_buffer.
2884 * In that case, we don't want to reset the lineno or column.
2886 if (b
!= YY_CURRENT_BUFFER
){
2887 b
->yy_bs_lineno
= 1;
2888 b
->yy_bs_column
= 0;
2893 b
->yy_is_interactive
= file
? (isatty( fileno(file
) ) > 0) : 0;
2901 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2902 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2903 * @param yyscanner The scanner object.
2906 void config__flush_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2911 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2917 /* We always need two end-of-buffer characters. The first causes
2918 * a transition to the end-of-buffer state. The second causes
2919 * a jam in that state.
2921 b
->yy_ch_buf
[0] = YY_END_OF_BUFFER_CHAR
;
2922 b
->yy_ch_buf
[1] = YY_END_OF_BUFFER_CHAR
;
2924 b
->yy_buf_pos
= &b
->yy_ch_buf
[0];
2927 b
->yy_buffer_status
= YY_BUFFER_NEW
;
2929 if ( b
== YY_CURRENT_BUFFER
)
2930 config__load_buffer_state(yyscanner
);
2934 /** Pushes the new state onto the stack. The new state becomes
2935 * the current state. This function will allocate the stack
2937 * @param new_buffer The new state.
2938 * @param yyscanner The scanner object.
2941 void config_push_buffer_state (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
2946 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2947 if (new_buffer
== NULL
)
2950 config_ensure_buffer_stack(yyscanner
);
2952 /* This block is copied from config__switch_to_buffer. */
2953 if ( YY_CURRENT_BUFFER
)
2955 /* Flush out information for old buffer. */
2956 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2957 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
2958 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2961 /* Only push if top exists. Otherwise, replace top. */
2962 if (YY_CURRENT_BUFFER
)
2963 yyg
->yy_buffer_stack_top
++;
2964 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
2966 /* copied from config__switch_to_buffer. */
2967 config__load_buffer_state(yyscanner
);
2968 yyg
->yy_did_buffer_switch_on_eof
= 1;
2973 /** Removes and deletes the top of the stack, if present.
2974 * The next element becomes the new top.
2975 * @param yyscanner The scanner object.
2978 void config_pop_buffer_state (yyscan_t yyscanner
)
2983 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2984 if (!YY_CURRENT_BUFFER
)
2987 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
2988 YY_CURRENT_BUFFER_LVALUE
= NULL
;
2989 if (yyg
->yy_buffer_stack_top
> 0)
2990 --yyg
->yy_buffer_stack_top
;
2992 if (YY_CURRENT_BUFFER
) {
2993 config__load_buffer_state(yyscanner
);
2994 yyg
->yy_did_buffer_switch_on_eof
= 1;
3000 /* Allocates the stack if it does not exist.
3001 * Guarantees space for at least one push.
3004 static void config_ensure_buffer_stack (yyscan_t yyscanner
)
3010 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3012 if (!yyg
->yy_buffer_stack
) {
3014 /* First allocation is just for 2 elements, since we don't know if this
3015 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3016 * immediate realloc on the next call.
3019 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_alloc
3020 (num_to_alloc
* sizeof(struct yy_buffer_state
*)
3022 if ( ! yyg
->yy_buffer_stack
)
3023 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
3025 memset(yyg
->yy_buffer_stack
, 0, num_to_alloc
* sizeof(struct yy_buffer_state
*));
3027 yyg
->yy_buffer_stack_max
= num_to_alloc
;
3028 yyg
->yy_buffer_stack_top
= 0;
3032 if (yyg
->yy_buffer_stack_top
>= (yyg
->yy_buffer_stack_max
) - 1){
3034 /* Increase the buffer to prepare for a possible push. */
3035 int grow_size
= 8 /* arbitrary grow size */;
3037 num_to_alloc
= yyg
->yy_buffer_stack_max
+ grow_size
;
3038 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_realloc
3039 (yyg
->yy_buffer_stack
,
3040 num_to_alloc
* sizeof(struct yy_buffer_state
*)
3042 if ( ! yyg
->yy_buffer_stack
)
3043 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
3045 /* zero only the new slots.*/
3046 memset(yyg
->yy_buffer_stack
+ yyg
->yy_buffer_stack_max
, 0, grow_size
* sizeof(struct yy_buffer_state
*));
3047 yyg
->yy_buffer_stack_max
= num_to_alloc
;
3053 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3054 * @param base the character buffer
3055 * @param size the size in bytes of the character buffer
3056 * @param yyscanner The scanner object.
3057 * @return the newly allocated buffer state object.
3059 YY_BUFFER_STATE
config__scan_buffer (char * base
, yy_size_t size
, yyscan_t yyscanner
)
3064 base
[size
-2] != YY_END_OF_BUFFER_CHAR
||
3065 base
[size
-1] != YY_END_OF_BUFFER_CHAR
)
3066 /* They forgot to leave room for the EOB's. */
3069 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
3071 YY_FATAL_ERROR( "out of dynamic memory in config__scan_buffer()" );
3073 b
->yy_buf_size
= size
- 2; /* "- 2" to take care of EOB's */
3074 b
->yy_buf_pos
= b
->yy_ch_buf
= base
;
3075 b
->yy_is_our_buffer
= 0;
3076 b
->yy_input_file
= 0;
3077 b
->yy_n_chars
= b
->yy_buf_size
;
3078 b
->yy_is_interactive
= 0;
3080 b
->yy_fill_buffer
= 0;
3081 b
->yy_buffer_status
= YY_BUFFER_NEW
;
3083 config__switch_to_buffer(b
,yyscanner
);
3090 /** Setup the input buffer state to scan a string. The next call to config_lex() will
3091 * scan from a @e copy of @a str.
3092 * @param yystr a NUL-terminated string to scan
3093 * @param yyscanner The scanner object.
3094 * @return the newly allocated buffer state object.
3095 * @note If you want to scan bytes that may contain NUL values, then use
3096 * config__scan_bytes() instead.
3098 YY_BUFFER_STATE
config__scan_string (yyconst
char * yystr
, yyscan_t yyscanner
)
3101 return config__scan_bytes(yystr
,strlen(yystr
) ,yyscanner
);
3106 /** Setup the input buffer state to scan the given bytes. The next call to config_lex() will
3107 * scan from a @e copy of @a bytes.
3108 * @param bytes the byte buffer to scan
3109 * @param len the number of bytes in the buffer pointed to by @a bytes.
3110 * @param yyscanner The scanner object.
3111 * @return the newly allocated buffer state object.
3113 YY_BUFFER_STATE
config__scan_bytes (yyconst
char * yybytes
, int _yybytes_len
, yyscan_t yyscanner
)
3120 /* Get memory for full buffer, including space for trailing EOB's. */
3121 n
= _yybytes_len
+ 2;
3122 buf
= (char *) config_alloc(n
,yyscanner
);
3124 YY_FATAL_ERROR( "out of dynamic memory in config__scan_bytes()" );
3126 for ( i
= 0; i
< _yybytes_len
; ++i
)
3127 buf
[i
] = yybytes
[i
];
3129 buf
[_yybytes_len
] = buf
[_yybytes_len
+1] = YY_END_OF_BUFFER_CHAR
;
3131 b
= config__scan_buffer(buf
,n
,yyscanner
);
3133 YY_FATAL_ERROR( "bad buffer in config__scan_bytes()" );
3135 /* It's okay to grow etc. this buffer, and we should throw it
3136 * away when we're done.
3138 b
->yy_is_our_buffer
= 1;
3144 #ifndef YY_EXIT_FAILURE
3145 #define YY_EXIT_FAILURE 2
3149 static void yy_fatal_error (yyconst
char* msg
, yyscan_t yyscanner
)
3151 (void) fprintf( stderr
, "%s\n", msg
);
3152 exit( YY_EXIT_FAILURE
);
3158 /* Redefine yyless() so it works in section 3 code. */
3164 /* Undo effects of setting up yytext. */ \
3165 int yyless_macro_arg = (n); \
3166 YY_LESS_LINENO(yyless_macro_arg);\
3167 yytext[yyleng] = yyg->yy_hold_char; \
3168 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
3169 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
3170 *yyg->yy_c_buf_p = '\0'; \
3171 yyleng = yyless_macro_arg; \
3175 /* Accessor methods (get/set functions) to struct members. */
3180 /** Get the user-defined data for this scanner.
3181 * @param yyscanner The scanner object.
3183 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
)
3185 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3191 /** Get the current line number.
3192 * @param yyscanner The scanner object.
3194 int config_get_lineno (yyscan_t yyscanner
)
3196 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3198 if (! YY_CURRENT_BUFFER
)
3204 /** Get the current column number.
3205 * @param yyscanner The scanner object.
3207 int config_get_column (yyscan_t yyscanner
)
3209 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3211 if (! YY_CURRENT_BUFFER
)
3217 /** Get the input stream.
3218 * @param yyscanner The scanner object.
3220 FILE *config_get_in (yyscan_t yyscanner
)
3222 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3226 /** Get the output stream.
3227 * @param yyscanner The scanner object.
3229 FILE *config_get_out (yyscan_t yyscanner
)
3231 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3235 /** Get the length of the current token.
3236 * @param yyscanner The scanner object.
3238 int config_get_leng (yyscan_t yyscanner
)
3240 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3244 /** Get the current token.
3245 * @param yyscanner The scanner object.
3248 char *config_get_text (yyscan_t yyscanner
)
3250 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3256 /** Set the user-defined data. This data is never touched by the scanner.
3257 * @param user_defined The data to be associated with this scanner.
3258 * @param yyscanner The scanner object.
3260 void config_set_extra (YY_EXTRA_TYPE user_defined
, yyscan_t yyscanner
)
3262 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3263 yyextra
= user_defined
;
3268 /** Set the current line number.
3269 * @param line_number
3270 * @param yyscanner The scanner object.
3272 void config_set_lineno (int line_number
, yyscan_t yyscanner
)
3274 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3276 /* lineno is only valid if an input buffer exists. */
3277 if (! YY_CURRENT_BUFFER
)
3278 yy_fatal_error( "config_set_lineno called with no buffer" , yyscanner
);
3280 yylineno
= line_number
;
3283 /** Set the current column.
3284 * @param line_number
3285 * @param yyscanner The scanner object.
3287 void config_set_column (int column_no
, yyscan_t yyscanner
)
3289 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3291 /* column is only valid if an input buffer exists. */
3292 if (! YY_CURRENT_BUFFER
)
3293 yy_fatal_error( "config_set_column called with no buffer" , yyscanner
);
3295 yycolumn
= column_no
;
3298 /** Set the input stream. This does not discard the current
3300 * @param in_str A readable stream.
3301 * @param yyscanner The scanner object.
3302 * @see config__switch_to_buffer
3304 void config_set_in (FILE * in_str
, yyscan_t yyscanner
)
3306 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3310 void config_set_out (FILE * out_str
, yyscan_t yyscanner
)
3312 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3316 int config_get_debug (yyscan_t yyscanner
)
3318 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3319 return yy_flex_debug
;
3322 void config_set_debug (int bdebug
, yyscan_t yyscanner
)
3324 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3325 yy_flex_debug
= bdebug
;
3331 /* Accessor methods for yylval and yylloc */
3333 /* %if-bison-bridge */
3335 YYSTYPE
* config_get_lval (yyscan_t yyscanner
)
3337 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3341 void config_set_lval (YYSTYPE
* yylval_param
, yyscan_t yyscanner
)
3343 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3344 yylval
= yylval_param
;
3349 /* User-visible API */
3351 /* config_lex_init is special because it creates the scanner itself, so it is
3352 * the ONLY reentrant function that doesn't take the scanner as the last argument.
3353 * That's why we explicitly handle the declaration, instead of using our macros.
3356 int config_lex_init(yyscan_t
* ptr_yy_globals
)
3359 if (ptr_yy_globals
== NULL
){
3364 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), NULL
);
3366 if (*ptr_yy_globals
== NULL
){
3371 /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
3372 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
3374 return yy_init_globals ( *ptr_yy_globals
);
3377 /* config_lex_init_extra has the same functionality as config_lex_init, but follows the
3378 * convention of taking the scanner as the last argument. Note however, that
3379 * this is a *pointer* to a scanner, as it will be allocated by this call (and
3380 * is the reason, too, why this function also must handle its own declaration).
3381 * The user defined value in the first argument will be available to config_alloc in
3382 * the yyextra field.
3385 int config_lex_init_extra(YY_EXTRA_TYPE yy_user_defined
,yyscan_t
* ptr_yy_globals
)
3388 struct yyguts_t dummy_yyguts
;
3390 config_set_extra (yy_user_defined
, &dummy_yyguts
);
3392 if (ptr_yy_globals
== NULL
){
3397 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), &dummy_yyguts
);
3399 if (*ptr_yy_globals
== NULL
){
3404 /* By setting to 0xAA, we expose bugs in
3405 yy_init_globals. Leave at 0x00 for releases. */
3406 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
3408 config_set_extra (yy_user_defined
, *ptr_yy_globals
);
3410 return yy_init_globals ( *ptr_yy_globals
);
3413 /* %endif if-c-only */
3416 static int yy_init_globals (yyscan_t yyscanner
)
3418 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3419 /* Initialization is the same as for the non-reentrant scanner.
3420 * This function is called from config_lex_destroy(), so don't allocate here.
3423 yyg
->yy_buffer_stack
= 0;
3424 yyg
->yy_buffer_stack_top
= 0;
3425 yyg
->yy_buffer_stack_max
= 0;
3426 yyg
->yy_c_buf_p
= (char *) 0;
3430 yyg
->yy_start_stack_ptr
= 0;
3431 yyg
->yy_start_stack_depth
= 0;
3432 yyg
->yy_start_stack
= NULL
;
3434 /* Defined in main.c */
3443 /* For future reference: Set errno on error, since we are called by
3450 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
3451 /* config_lex_destroy is for both reentrant and non-reentrant scanners. */
3452 int config_lex_destroy (yyscan_t yyscanner
)
3454 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3456 /* Pop the buffer stack, destroying each element. */
3457 while(YY_CURRENT_BUFFER
){
3458 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
3459 YY_CURRENT_BUFFER_LVALUE
= NULL
;
3460 config_pop_buffer_state(yyscanner
);
3463 /* Destroy the stack itself. */
3464 config_free(yyg
->yy_buffer_stack
,yyscanner
);
3465 yyg
->yy_buffer_stack
= NULL
;
3467 /* Destroy the start condition stack. */
3468 config_free(yyg
->yy_start_stack
,yyscanner
);
3469 yyg
->yy_start_stack
= NULL
;
3471 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3472 * config_lex() is called, initialization will occur. */
3473 yy_init_globals( yyscanner
);
3476 /* Destroy the main struct (reentrant only). */
3477 config_free ( yyscanner
, yyscanner
);
3485 * Internal utility routines.
3489 static void yy_flex_strncpy (char* s1
, yyconst
char * s2
, int n
, yyscan_t yyscanner
)
3492 for ( i
= 0; i
< n
; ++i
)
3497 #ifdef YY_NEED_STRLEN
3498 static int yy_flex_strlen (yyconst
char * s
, yyscan_t yyscanner
)
3501 for ( n
= 0; s
[n
]; ++n
)
3508 void *config_alloc (yy_size_t size
, yyscan_t yyscanner
)
3510 return (void *) malloc( size
);
3513 void *config_realloc (void * ptr
, yy_size_t size
, yyscan_t yyscanner
)
3515 /* The cast to (char *) in the following accommodates both
3516 * implementations that use char* generic pointers, and those
3517 * that use void* generic pointers. It works with the latter
3518 * because both ANSI C and C++ allow castless assignment from
3519 * any pointer type to void*, and deal with argument conversions
3520 * as though doing an assignment.
3522 return (void *) realloc( (char *) ptr
, size
);
3525 void config_free (void * ptr
, yyscan_t yyscanner
)
3527 free( (char *) ptr
); /* see config_realloc() for (char *) cast */
3530 /* %if-tables-serialization definitions */
3531 /* %define-yytables The name for this specific scanner's tables. */
3532 #define YYTABLES_NAME "yytables"
3535 /* %ok-for-header */
3537 #line 222 "libmemcached/options/scanner.l"
3541 void Context::init_scanner()
3543 config_lex_init(&scanner
);
3544 config_set_extra(this,scanner
);
3547 void Context::destroy_scanner()
3549 config_lex_destroy(scanner
);