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 90
452 #define YY_END_OF_BUFFER 91
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
[769] =
462 0, 0, 91, 89, 5, 5, 1, 89, 89, 89,
463 2, 89, 89, 89, 89, 89, 89, 89, 89, 89,
464 89, 89, 89, 89, 89, 0, 88, 73, 0, 0,
465 0, 2, 3, 0, 0, 0, 0, 0, 0, 0,
466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
467 0, 6, 73, 73, 73, 73, 73, 73, 73, 73,
468 73, 73, 73, 73, 73, 73, 4, 87, 87, 2,
469 3, 87, 78, 87, 69, 87, 87, 87, 87, 87,
470 87, 77, 87, 87, 87, 87, 87, 87, 73, 73,
471 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
473 73, 73, 73, 73, 73, 73, 73, 73, 73, 4,
474 0, 87, 2, 3, 87, 87, 87, 87, 87, 87,
475 87, 87, 87, 87, 87, 87, 87, 71, 73, 73,
476 73, 73, 73, 73, 0, 0, 73, 73, 73, 73,
477 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
478 73, 4, 87, 87, 3, 87, 67, 70, 72, 87,
479 0, 83, 87, 87, 87, 87, 87, 66, 87, 73,
480 73, 73, 73, 73, 73, 73, 0, 0, 0, 0,
481 0, 0, 73, 73, 73, 73, 73, 0, 0, 73,
482 73, 0, 0, 73, 73, 73, 0, 0, 0, 73,
484 0, 73, 4, 0, 87, 3, 87, 0, 87, 87,
485 87, 87, 75, 84, 76, 87, 0, 0, 73, 73,
486 73, 73, 73, 0, 21, 0, 0, 0, 0, 0,
487 0, 0, 73, 73, 0, 0, 73, 73, 0, 0,
488 73, 73, 0, 0, 73, 0, 0, 73, 0, 0,
489 0, 0, 0, 0, 0, 0, 73, 4, 86, 87,
490 87, 87, 87, 81, 79, 65, 85, 68, 0, 0,
491 73, 73, 73, 73, 73, 0, 0, 0, 0, 0,
492 0, 0, 0, 73, 73, 0, 0, 73, 73, 0,
493 0, 0, 0, 73, 0, 0, 73, 0, 0, 73,
495 0, 0, 0, 0, 0, 0, 0, 0, 73, 86,
496 87, 82, 80, 0, 0, 0, 0, 0, 0, 73,
497 73, 73, 0, 0, 0, 0, 0, 0, 0, 0,
498 30, 0, 0, 0, 0, 0, 0, 73, 0, 0,
499 0, 0, 0, 7, 0, 0, 0, 0, 0, 0,
500 0, 73, 0, 0, 0, 0, 62, 0, 0, 61,
501 0, 0, 86, 87, 0, 0, 0, 0, 0, 0,
502 73, 0, 0, 73, 0, 0, 0, 0, 0, 0,
503 0, 0, 0, 0, 0, 0, 0, 0, 73, 0,
504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
507 0, 0, 0, 74, 0, 0, 0, 0, 0, 0,
508 73, 0, 0, 73, 0, 0, 0, 0, 0, 0,
509 0, 0, 0, 0, 0, 0, 0, 0, 73, 0,
510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
512 0, 60, 59, 0, 0, 0, 0, 0, 0, 0,
513 0, 0, 0, 0, 0, 73, 0, 0, 0, 0,
514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
517 0, 0, 0, 0, 50, 49, 0, 0, 0, 0,
518 0, 0, 0, 0, 9, 8, 0, 0, 0, 0,
519 0, 0, 0, 0, 0, 0, 73, 0, 0, 0,
520 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
521 64, 0, 0, 0, 0, 0, 0, 0, 0, 0,
522 0, 0, 0, 0, 0, 52, 51, 0, 0, 54,
523 0, 0, 53, 0, 0, 0, 0, 0, 0, 0,
524 0, 0, 0, 73, 0, 0, 0, 0, 0, 0,
525 0, 0, 0, 0, 0, 0, 0, 0, 38, 37,
526 0, 0, 0, 0, 44, 43, 0, 0, 0, 0,
528 0, 58, 0, 57, 0, 0, 0, 0, 0, 0,
529 0, 0, 0, 0, 20, 0, 0, 0, 0, 0,
530 0, 0, 0, 0, 0, 34, 33, 0, 0, 0,
531 0, 0, 0, 0, 0, 0, 0, 56, 55, 0,
532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
534 0, 40, 39, 0, 0, 0, 0, 0, 0, 0,
535 0, 13, 12, 15, 14, 17, 16, 0, 0, 0,
536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
537 0, 0, 0, 0, 0, 0, 0, 11, 10, 19,
539 18, 0, 0, 0, 27, 0, 0, 26, 0, 0,
540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
541 0, 0, 29, 0, 28, 0, 0, 0, 0, 0,
542 0, 46, 48, 45, 47, 0, 0, 0, 0, 0,
543 0, 0, 0, 0, 0, 0, 0, 25, 24, 32,
544 31, 0, 0, 0, 0, 23, 22, 0, 0, 0,
545 0, 0, 0, 42, 41, 36, 35, 0
548 static yyconst flex_int32_t yy_ec
[256] =
550 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
551 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
552 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
553 1, 4, 1, 5, 6, 1, 1, 1, 1, 1,
554 1, 1, 1, 7, 8, 9, 10, 11, 12, 13,
555 14, 15, 16, 17, 11, 11, 11, 18, 1, 1,
556 19, 1, 20, 1, 21, 22, 23, 24, 25, 26,
557 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
558 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
559 1, 1, 1, 1, 47, 1, 48, 49, 50, 51,
561 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
562 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
563 72, 73, 1, 1, 1, 1, 1, 1, 1, 1,
564 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
565 1, 1, 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,
572 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
573 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
574 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
575 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
576 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
580 static yyconst flex_int32_t yy_meta
[74] =
582 1, 1, 2, 1, 3, 1, 1, 3, 3, 1,
583 3, 3, 3, 3, 3, 3, 3, 1, 1, 1,
584 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
585 3, 3, 3, 3, 3, 3, 3, 3, 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, 3, 3, 3, 3, 3, 3,
592 static yyconst flex_int16_t yy_base
[773] =
594 0, 798, 802, 2094, 2094, 2094, 2094, 778, 760, 726,
595 65, 72, 0, 55, 50, 57, 71, 55, 62, 72,
596 74, 78, 75, 63, 733, 716, 701, 132, 195, 103,
597 208, 251, 215, 235, 228, 230, 237, 245, 265, 281,
598 286, 294, 296, 311, 313, 327, 343, 354, 361, 370,
599 702, 2094, 418, 63, 305, 71, 78, 89, 78, 246,
600 291, 362, 361, 91, 113, 189, 419, 398, 483, 526,
601 490, 416, 467, 503, 508, 510, 515, 517, 543, 551,
602 558, 570, 577, 579, 591, 622, 599, 624, 209, 224,
603 254, 277, 274, 306, 210, 311, 321, 323, 342, 337,
605 346, 349, 353, 376, 571, 401, 407, 419, 412, 639,
606 672, 715, 758, 646, 635, 687, 670, 693, 695, 748,
607 739, 704, 750, 776, 702, 782, 791, 784, 416, 432,
608 436, 567, 469, 519, 779, 793, 524, 531, 533, 544,
609 642, 292, 629, 628, 372, 641, 685, 702, 401, 780,
610 721, 843, 856, 827, 864, 877, 879, 884, 886, 891,
611 893, 900, 906, 912, 914, 920, 936, 943, 955, 485,
612 741, 769, 769, 788, 776, 800, 818, 887, 888, 904,
613 925, 916, 929, 943, 626, 941, 936, 932, 934, 933,
614 954, 940, 941, 959, 707, 951, 957, 969, 946, 714,
616 948, 968, 1020, 1033, 1076, 2094, 1054, 1052, 1059, 1068,
617 1070, 1095, 1100, 1102, 1111, 1120, 987, 999, 980, 988,
618 1001, 1006, 1014, 1028, 2094, 1043, 1057, 1067, 1087, 1078,
619 1081, 1100, 1098, 1095, 1095, 1096, 1093, 1105, 1114, 1115,
620 731, 1108, 1119, 1121, 1111, 1124, 1127, 1118, 1141, 1133,
621 1144, 1137, 1150, 1152, 1156, 1157, 1139, 2094, 1207, 1180,
622 1189, 1197, 1220, 1225, 1234, 1240, 1242, 1247, 1160, 1174,
623 803, 889, 1172, 1186, 1210, 1208, 1209, 1221, 682, 657,
624 1232, 601, 590, 1213, 1011, 1232, 1234, 1252, 1237, 1235,
625 1236, 1230, 1231, 1267, 1241, 1243, 1269, 1243, 1244, 1240,
627 1257, 1259, 1266, 1268, 1264, 1281, 1283, 1272, 1303, 1346,
628 1331, 1317, 1325, 1290, 1292, 1284, 1285, 1303, 1305, 1308,
629 1305, 1308, 1313, 1316, 1328, 1333, 1328, 1335, 1339, 1334,
630 0, 1344, 1346, 1349, 1351, 1354, 1355, 1341, 1363, 1364,
631 1361, 1362, 1369, 2094, 1371, 1374, 1375, 1381, 1390, 1364,
632 1366, 1402, 1371, 1396, 1387, 1400, 2094, 1391, 1393, 2094,
633 1404, 1405, 1432, 1434, 1415, 1421, 1407, 1413, 1428, 1432,
634 1434, 1421, 1424, 1426, 1439, 1440, 627, 1431, 1449, 578,
635 1435, 1454, 1450, 1451, 1457, 1458, 1460, 1462, 1464, 1455,
636 1457, 1465, 1466, 1484, 1485, 1472, 1473, 1486, 1488, 1490,
638 1493, 1480, 1481, 1499, 1500, 1507, 1492, 1508, 1495, 1509,
639 1510, 1514, 1516, 1562, 1506, 1512, 1518, 1524, 1523, 1524,
640 1535, 1533, 1536, 1540, 615, 575, 1529, 1549, 1535, 1533,
641 1552, 1538, 611, 567, 1546, 1548, 1539, 1540, 1582, 1550,
642 1552, 1569, 1570, 1568, 1569, 1559, 1565, 1584, 1579, 1591,
643 1581, 1577, 1578, 1598, 1602, 1594, 1604, 1609, 1599, 1608,
644 1614, 2094, 2094, 1591, 1592, 566, 564, 1598, 1599, 1604,
645 1606, 1622, 1623, 1618, 1619, 1619, 1620, 1624, 1640, 1641,
646 1643, 1648, 1644, 1646, 1635, 1639, 1639, 1641, 587, 584,
647 1646, 1647, 1646, 1649, 1655, 1656, 1660, 1661, 1659, 1661,
649 1660, 1679, 1663, 1682, 2094, 2094, 1669, 1671, 1685, 1683,
650 1676, 1693, 1691, 1679, 2094, 2094, 1697, 1699, 1696, 1699,
651 1711, 1713, 1710, 1711, 1718, 1719, 1711, 1708, 1709, 1713,
652 1730, 1718, 1717, 1734, 1722, 1737, 1739, 1728, 1729, 2094,
653 2094, 1750, 1751, 583, 572, 1736, 1737, 1738, 1740, 558,
654 550, 553, 550, 499, 486, 2094, 2094, 1743, 1763, 2094,
655 1748, 1767, 2094, 1758, 1759, 1774, 1775, 1760, 1761, 1769,
656 1775, 1774, 1775, 509, 1786, 1788, 1789, 1776, 1785, 1797,
657 1783, 1796, 1794, 1795, 508, 502, 1796, 1797, 2094, 2094,
658 1795, 1799, 1804, 1806, 2094, 2094, 1807, 1808, 1809, 1812,
660 1827, 2094, 1828, 2094, 1815, 1816, 1826, 1828, 1824, 1825,
661 1842, 1843, 1829, 1831, 2094, 1850, 1851, 1845, 1861, 1864,
662 1848, 1864, 1868, 1861, 1864, 2094, 2094, 1866, 1868, 491,
663 471, 1876, 1877, 1876, 1877, 1878, 1879, 2094, 2094, 1869,
664 1875, 1885, 1886, 1880, 1882, 446, 442, 1882, 1884, 1897,
665 1901, 1898, 1909, 1900, 1906, 1912, 1903, 1914, 1918, 1921,
666 1923, 2094, 2094, 441, 381, 1908, 1909, 1910, 1913, 1921,
667 1922, 2094, 2094, 2094, 2094, 2094, 2094, 386, 378, 1918,
668 1919, 1948, 365, 1940, 1951, 349, 1942, 1952, 1953, 1955,
669 1957, 1952, 1953, 1966, 1967, 1968, 1969, 2094, 2094, 2094,
671 2094, 300, 284, 1957, 2094, 306, 1959, 2094, 290, 1980,
672 1983, 1985, 1987, 1980, 1981, 287, 274, 253, 252, 1982,
673 1983, 1984, 2094, 1985, 2094, 1978, 1984, 240, 200, 1992,
674 1993, 2094, 2094, 2094, 2094, 2002, 2004, 215, 196, 132,
675 120, 1992, 1994, 2005, 2009, 1994, 2000, 2094, 2094, 2094,
676 2094, 2021, 2022, 2008, 2009, 2094, 2094, 2030, 2034, 119,
677 116, 2034, 2036, 2094, 2094, 2094, 2094, 2094, 2087, 126,
681 static yyconst flex_int16_t yy_def
[773] =
683 768, 1, 768, 768, 768, 768, 768, 769, 768, 768,
684 770, 768, 770, 770, 770, 770, 770, 770, 770, 770,
685 770, 770, 770, 770, 771, 769, 769, 768, 768, 772,
686 772, 772, 768, 772, 772, 772, 772, 772, 772, 772,
687 772, 772, 772, 772, 772, 772, 772, 772, 772, 772,
688 771, 768, 28, 53, 53, 53, 53, 53, 53, 53,
689 53, 53, 53, 53, 53, 53, 768, 772, 772, 772,
690 768, 772, 772, 772, 772, 772, 772, 772, 772, 772,
691 772, 772, 772, 772, 772, 772, 772, 772, 53, 53,
692 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
694 53, 53, 53, 53, 53, 53, 53, 53, 53, 768,
695 772, 772, 772, 768, 772, 772, 772, 772, 772, 772,
696 772, 772, 772, 772, 772, 772, 772, 772, 53, 53,
697 53, 53, 53, 53, 768, 768, 53, 53, 53, 53,
698 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
699 53, 768, 772, 772, 768, 772, 772, 772, 772, 772,
700 772, 772, 772, 772, 772, 772, 772, 772, 772, 53,
701 53, 53, 53, 53, 53, 53, 768, 768, 768, 768,
702 768, 768, 53, 53, 53, 53, 53, 768, 768, 53,
703 53, 768, 768, 53, 53, 53, 768, 768, 768, 53,
705 768, 53, 768, 772, 772, 768, 772, 772, 772, 772,
706 772, 772, 772, 772, 772, 772, 768, 768, 53, 53,
707 53, 53, 53, 768, 768, 768, 768, 768, 768, 768,
708 768, 768, 53, 53, 768, 768, 53, 53, 768, 768,
709 53, 53, 768, 768, 53, 768, 768, 53, 768, 768,
710 768, 768, 768, 768, 768, 768, 53, 768, 772, 772,
711 772, 772, 772, 772, 772, 772, 772, 772, 768, 768,
712 53, 53, 53, 53, 53, 768, 768, 768, 768, 768,
713 768, 768, 768, 53, 53, 768, 768, 53, 53, 768,
714 768, 768, 768, 53, 768, 768, 53, 768, 768, 53,
716 768, 768, 768, 768, 768, 768, 768, 768, 53, 772,
717 772, 772, 772, 768, 768, 768, 768, 768, 768, 53,
718 53, 53, 768, 768, 768, 768, 768, 768, 768, 768,
719 53, 768, 768, 768, 768, 768, 768, 53, 768, 768,
720 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
721 768, 53, 768, 768, 768, 768, 768, 768, 768, 768,
722 768, 768, 772, 772, 768, 768, 768, 768, 768, 768,
723 53, 768, 768, 53, 768, 768, 768, 768, 768, 768,
724 768, 768, 768, 768, 768, 768, 768, 768, 53, 768,
725 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
727 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
728 768, 768, 768, 772, 768, 768, 768, 768, 768, 768,
729 53, 768, 768, 53, 768, 768, 768, 768, 768, 768,
730 768, 768, 768, 768, 768, 768, 768, 768, 53, 768,
731 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
732 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
733 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
734 768, 768, 768, 768, 768, 53, 768, 768, 768, 768,
735 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
736 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
738 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
739 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
740 768, 768, 768, 768, 768, 768, 53, 768, 768, 768,
741 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
742 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
743 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
744 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
745 768, 768, 768, 53, 768, 768, 768, 768, 768, 768,
746 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
747 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
749 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
750 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
751 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
752 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
753 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
754 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
755 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
756 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
757 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
758 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
760 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
761 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
762 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
763 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
764 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
765 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
766 768, 768, 768, 768, 768, 768, 768, 0, 768, 768,
770 static yyconst flex_int16_t yy_nxt
[2168] =
772 4, 5, 6, 7, 8, 4, 7, 9, 4, 10,
773 11, 11, 11, 11, 11, 11, 11, 12, 7, 4,
774 13, 13, 14, 15, 16, 17, 13, 18, 19, 20,
775 13, 13, 21, 13, 13, 13, 13, 22, 23, 24,
776 13, 13, 13, 13, 13, 13, 4, 13, 13, 14,
777 15, 16, 17, 13, 18, 19, 20, 13, 13, 21,
778 13, 13, 13, 13, 22, 23, 24, 13, 13, 13,
779 13, 13, 13, 31, 36, 32, 32, 32, 32, 32,
780 32, 32, 33, 33, 33, 33, 33, 33, 33, 34,
781 37, 39, 35, 41, 38, 42, 43, 44, 47, 49,
783 50, 36, 48, 89, 40, 92, 93, 30, 45, 94,
784 30, 30, 95, 107, 46, 68, 34, 37, 39, 35,
785 41, 38, 42, 43, 44, 47, 49, 50, 30, 48,
786 89, 40, 92, 93, 765, 45, 94, 764, 751, 95,
787 107, 46, 53, 53, 53, 53, 53, 53, 53, 30,
788 750, 108, 54, 55, 56, 57, 53, 53, 53, 58,
789 59, 53, 53, 53, 53, 60, 53, 61, 53, 62,
790 63, 64, 65, 66, 53, 53, 53, 53, 108, 54,
791 55, 56, 57, 53, 53, 53, 58, 59, 53, 53,
792 53, 53, 60, 53, 61, 53, 62, 63, 64, 65,
794 66, 53, 53, 53, 53, 67, 67, 67, 67, 67,
795 67, 67, 30, 109, 749, 30, 30, 135, 69, 69,
796 69, 69, 69, 69, 69, 71, 71, 71, 71, 71,
797 71, 71, 30, 748, 30, 30, 30, 30, 30, 30,
798 109, 30, 30, 30, 30, 30, 743, 742, 129, 30,
799 73, 74, 30, 30, 30, 30, 136, 130, 30, 31,
800 75, 70, 70, 70, 70, 70, 70, 70, 72, 30,
801 735, 734, 30, 30, 30, 129, 30, 73, 74, 131,
802 96, 30, 76, 30, 130, 30, 97, 75, 30, 30,
803 30, 30, 733, 30, 30, 72, 77, 30, 30, 188,
805 30, 30, 30, 30, 30, 732, 131, 96, 725, 76,
806 132, 30, 133, 97, 79, 30, 80, 30, 30, 30,
807 30, 30, 78, 77, 723, 98, 82, 30, 99, 81,
808 721, 30, 30, 90, 30, 30, 83, 132, 189, 133,
809 30, 79, 30, 80, 134, 91, 720, 30, 137, 78,
810 30, 30, 98, 138, 139, 99, 81, 30, 30, 30,
811 90, 30, 30, 83, 84, 30, 140, 708, 30, 30,
812 141, 134, 91, 30, 30, 137, 85, 30, 30, 192,
813 138, 139, 100, 705, 101, 103, 102, 142, 143, 30,
814 144, 84, 86, 140, 104, 105, 701, 141, 87, 145,
816 30, 106, 30, 85, 700, 30, 30, 30, 197, 100,
817 88, 101, 103, 102, 142, 143, 30, 144, 193, 86,
818 30, 104, 105, 30, 30, 87, 145, 693, 106, 110,
819 110, 110, 110, 110, 110, 110, 148, 88, 53, 53,
820 53, 53, 149, 150, 30, 53, 53, 198, 692, 151,
821 170, 53, 171, 53, 115, 53, 53, 53, 53, 53,
822 677, 172, 30, 148, 676, 53, 53, 53, 53, 149,
823 150, 30, 53, 53, 30, 30, 151, 170, 53, 171,
824 53, 115, 53, 53, 53, 53, 53, 30, 172, 663,
825 30, 111, 217, 112, 112, 112, 112, 112, 112, 112,
827 114, 114, 114, 114, 114, 114, 114, 30, 175, 662,
828 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
829 627, 30, 30, 30, 30, 30, 626, 615, 119, 30,
830 30, 218, 600, 30, 31, 175, 113, 113, 113, 113,
831 113, 113, 113, 116, 117, 599, 176, 30, 183, 30,
832 30, 30, 184, 118, 30, 30, 30, 598, 30, 30,
833 597, 30, 30, 30, 185, 30, 30, 120, 596, 186,
834 116, 117, 30, 176, 30, 183, 595, 30, 30, 184,
835 118, 30, 121, 30, 30, 30, 30, 30, 122, 30,
836 590, 185, 173, 146, 120, 30, 186, 30, 30, 30,
838 174, 589, 541, 30, 30, 540, 30, 30, 147, 121,
839 518, 124, 517, 486, 125, 122, 30, 123, 485, 173,
840 146, 478, 477, 30, 430, 30, 30, 174, 30, 30,
841 30, 30, 30, 235, 427, 147, 330, 30, 124, 30,
842 127, 125, 30, 30, 123, 30, 126, 329, 128, 152,
843 152, 152, 152, 152, 152, 152, 155, 155, 155, 155,
844 155, 155, 155, 156, 327, 187, 190, 127, 30, 191,
845 30, 194, 236, 126, 30, 128, 30, 30, 30, 30,
846 30, 30, 153, 153, 153, 153, 153, 153, 153, 326,
847 156, 30, 187, 190, 30, 30, 191, 30, 194, 30,
849 30, 30, 30, 30, 52, 27, 30, 158, 30, 30,
850 30, 30, 30, 157, 246, 160, 30, 159, 30, 30,
851 27, 254, 30, 111, 195, 154, 154, 154, 154, 154,
852 154, 154, 164, 30, 158, 52, 167, 196, 292, 30,
853 157, 161, 160, 30, 159, 29, 30, 30, 30, 202,
854 30, 195, 30, 247, 30, 30, 30, 30, 30, 164,
855 255, 30, 30, 167, 196, 30, 30, 28, 113, 113,
856 113, 113, 113, 113, 113, 162, 202, 293, 219, 163,
857 30, 165, 27, 30, 30, 30, 30, 199, 30, 30,
858 30, 30, 30, 220, 30, 30, 30, 221, 30, 30,
860 177, 768, 162, 25, 30, 219, 163, 224, 165, 178,
861 316, 179, 222, 223, 180, 169, 166, 200, 225, 768,
862 220, 168, 30, 181, 221, 182, 201, 177, 30, 768,
863 30, 30, 768, 768, 30, 111, 178, 30, 179, 222,
864 223, 180, 169, 166, 200, 768, 226, 768, 168, 317,
865 181, 768, 182, 203, 203, 203, 203, 203, 203, 203,
866 30, 768, 227, 30, 204, 768, 205, 205, 205, 205,
867 205, 205, 205, 30, 206, 206, 206, 206, 206, 206,
868 206, 30, 768, 30, 30, 30, 30, 30, 30, 227,
869 30, 30, 30, 30, 30, 30, 318, 30, 30, 30,
871 30, 30, 30, 768, 30, 768, 209, 30, 30, 210,
872 30, 228, 768, 30, 30, 207, 30, 768, 30, 30,
873 30, 30, 30, 30, 30, 30, 229, 30, 30, 211,
874 30, 768, 30, 768, 213, 319, 768, 208, 228, 30,
875 30, 768, 207, 30, 30, 212, 30, 30, 230, 231,
876 30, 30, 30, 229, 232, 768, 211, 214, 30, 30,
877 30, 213, 30, 30, 233, 768, 30, 234, 215, 237,
878 238, 239, 212, 240, 768, 230, 231, 241, 242, 243,
879 244, 232, 30, 245, 214, 248, 253, 249, 256, 30,
880 250, 233, 216, 257, 234, 215, 237, 238, 239, 251,
882 240, 30, 252, 768, 241, 242, 243, 244, 768, 768,
883 245, 269, 248, 253, 249, 256, 768, 250, 332, 216,
884 257, 768, 768, 270, 271, 272, 251, 273, 274, 252,
885 258, 258, 258, 258, 258, 258, 258, 30, 269, 768,
886 30, 30, 275, 259, 259, 259, 259, 259, 259, 259,
887 270, 271, 272, 768, 273, 274, 30, 333, 30, 30,
888 30, 30, 30, 30, 768, 262, 30, 30, 263, 275,
889 276, 264, 30, 768, 30, 30, 30, 30, 30, 30,
890 30, 768, 265, 30, 204, 277, 260, 260, 260, 260,
891 260, 260, 260, 261, 266, 768, 278, 276, 30, 30,
893 30, 768, 30, 30, 30, 30, 30, 30, 30, 30,
894 30, 279, 277, 280, 30, 30, 30, 281, 30, 30,
895 261, 266, 30, 278, 30, 282, 283, 30, 30, 284,
896 768, 768, 285, 267, 286, 287, 288, 289, 279, 768,
897 280, 30, 290, 291, 281, 294, 30, 295, 30, 296,
898 297, 298, 282, 283, 299, 300, 284, 30, 268, 285,
899 267, 286, 287, 288, 289, 301, 30, 302, 303, 290,
900 291, 304, 294, 305, 295, 306, 296, 297, 298, 307,
901 308, 299, 300, 309, 30, 268, 768, 30, 204, 314,
902 768, 768, 301, 30, 302, 303, 30, 30, 304, 768,
904 305, 30, 306, 315, 30, 30, 307, 308, 768, 312,
905 309, 30, 320, 311, 30, 30, 314, 310, 310, 310,
906 310, 310, 310, 310, 30, 321, 30, 30, 30, 30,
907 315, 322, 30, 30, 313, 30, 323, 324, 30, 320,
908 311, 30, 30, 30, 30, 325, 30, 30, 30, 30,
909 30, 30, 321, 30, 30, 30, 328, 331, 322, 336,
910 334, 768, 335, 323, 324, 338, 30, 339, 340, 341,
911 342, 30, 325, 346, 343, 347, 348, 350, 351, 352,
912 30, 353, 354, 328, 331, 344, 30, 334, 30, 335,
913 355, 356, 338, 30, 339, 340, 341, 342, 337, 357,
915 346, 358, 347, 359, 350, 351, 352, 360, 353, 354,
916 361, 768, 372, 345, 365, 349, 366, 355, 356, 367,
917 368, 30, 768, 768, 30, 30, 357, 768, 358, 30,
918 359, 768, 30, 30, 360, 30, 768, 768, 30, 30,
919 369, 365, 370, 366, 768, 371, 367, 368, 374, 362,
920 30, 373, 375, 30, 30, 376, 363, 363, 363, 363,
921 363, 363, 363, 30, 364, 768, 377, 369, 378, 370,
922 379, 30, 371, 380, 381, 374, 382, 30, 383, 375,
923 384, 385, 376, 386, 387, 388, 389, 390, 391, 392,
924 393, 364, 30, 377, 394, 378, 395, 379, 396, 397,
926 380, 381, 402, 382, 403, 383, 406, 384, 385, 404,
927 386, 387, 388, 389, 390, 391, 392, 393, 398, 399,
928 407, 394, 408, 395, 409, 396, 397, 400, 401, 402,
929 410, 403, 411, 406, 412, 413, 30, 415, 30, 30,
930 30, 30, 30, 416, 417, 398, 399, 407, 405, 408,
931 418, 409, 419, 768, 400, 401, 420, 410, 421, 411,
932 422, 412, 413, 423, 415, 424, 425, 426, 428, 429,
933 416, 417, 431, 414, 432, 433, 434, 418, 30, 419,
934 30, 435, 436, 420, 437, 421, 438, 422, 439, 440,
935 423, 441, 424, 425, 426, 428, 429, 442, 443, 431,
937 414, 432, 433, 434, 444, 445, 446, 447, 435, 436,
938 448, 437, 449, 438, 450, 439, 440, 451, 441, 452,
939 453, 454, 455, 458, 442, 443, 461, 456, 459, 462,
940 463, 444, 445, 446, 447, 457, 460, 448, 464, 449,
941 465, 450, 472, 768, 451, 466, 452, 453, 454, 455,
942 458, 467, 468, 461, 456, 459, 462, 463, 469, 470,
943 471, 474, 457, 460, 475, 464, 30, 465, 476, 30,
944 30, 479, 466, 480, 481, 482, 483, 484, 467, 468,
945 487, 473, 488, 489, 490, 469, 470, 471, 474, 491,
946 493, 475, 494, 495, 496, 476, 497, 498, 479, 499,
948 480, 481, 482, 483, 484, 500, 501, 487, 30, 488,
949 489, 490, 502, 503, 504, 505, 506, 493, 507, 494,
950 495, 496, 508, 497, 498, 509, 499, 510, 492, 511,
951 512, 513, 500, 501, 514, 515, 516, 519, 520, 502,
952 503, 504, 505, 506, 521, 507, 522, 523, 524, 508,
953 525, 526, 509, 527, 510, 528, 511, 512, 513, 529,
954 530, 514, 515, 516, 519, 520, 531, 532, 533, 534,
955 535, 521, 536, 522, 523, 524, 537, 525, 526, 538,
956 527, 539, 528, 542, 543, 544, 529, 530, 545, 546,
957 547, 548, 549, 531, 532, 533, 534, 535, 550, 536,
959 551, 552, 553, 537, 554, 555, 538, 556, 539, 557,
960 542, 543, 544, 558, 559, 545, 546, 547, 548, 549,
961 560, 561, 562, 563, 564, 550, 565, 551, 552, 553,
962 566, 554, 555, 567, 556, 568, 557, 569, 570, 571,
963 558, 559, 572, 573, 574, 575, 576, 560, 561, 562,
964 563, 564, 577, 565, 578, 579, 580, 566, 581, 582,
965 567, 583, 568, 584, 569, 570, 571, 585, 586, 572,
966 573, 574, 575, 576, 587, 588, 591, 592, 593, 577,
967 594, 578, 579, 580, 601, 581, 582, 602, 583, 603,
968 584, 604, 605, 606, 585, 586, 607, 608, 609, 610,
970 611, 587, 588, 591, 592, 593, 612, 594, 613, 614,
971 616, 601, 617, 618, 602, 619, 603, 620, 604, 605,
972 606, 621, 622, 607, 608, 609, 610, 611, 623, 624,
973 625, 628, 629, 612, 630, 613, 614, 616, 631, 617,
974 618, 632, 619, 633, 620, 634, 635, 636, 621, 622,
975 637, 638, 639, 640, 641, 623, 624, 625, 628, 629,
976 642, 630, 643, 644, 645, 631, 646, 647, 632, 648,
977 633, 649, 634, 635, 636, 650, 651, 637, 638, 639,
978 640, 641, 652, 653, 654, 655, 656, 642, 657, 643,
979 644, 645, 658, 646, 647, 659, 648, 660, 649, 661,
981 664, 665, 650, 651, 666, 667, 668, 669, 670, 652,
982 653, 654, 655, 656, 671, 657, 672, 673, 674, 658,
983 675, 678, 659, 679, 660, 680, 661, 664, 665, 681,
984 682, 666, 667, 668, 669, 670, 683, 684, 685, 686,
985 687, 671, 688, 672, 673, 674, 689, 675, 678, 690,
986 679, 691, 680, 694, 695, 696, 681, 682, 697, 698,
987 699, 702, 703, 683, 684, 685, 686, 687, 704, 688,
988 706, 707, 709, 689, 710, 711, 690, 712, 691, 713,
989 694, 695, 696, 714, 715, 697, 698, 699, 702, 703,
990 716, 717, 718, 719, 722, 704, 724, 706, 707, 709,
992 726, 710, 711, 727, 712, 728, 713, 729, 730, 731,
993 714, 715, 736, 737, 738, 739, 740, 716, 717, 718,
994 719, 722, 741, 724, 744, 745, 746, 726, 747, 752,
995 727, 753, 728, 754, 729, 730, 731, 755, 756, 736,
996 737, 738, 739, 740, 757, 758, 759, 760, 761, 741,
997 762, 744, 745, 746, 763, 747, 752, 766, 753, 767,
998 754, 768, 768, 768, 755, 756, 768, 768, 768, 768,
999 768, 757, 758, 759, 760, 761, 768, 762, 768, 768,
1000 768, 763, 768, 768, 766, 768, 767, 26, 768, 26,
1001 51, 51, 51, 3, 768, 768, 768, 768, 768, 768,
1003 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1004 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1005 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1006 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1007 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1008 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1009 768, 768, 768, 768, 768, 768, 768
1012 static yyconst flex_int16_t yy_chk
[2168] =
1014 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1015 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1016 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1017 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1018 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1019 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1020 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1021 1, 1, 1, 11, 15, 11, 11, 11, 11, 11,
1022 11, 11, 12, 12, 12, 12, 12, 12, 12, 14,
1023 16, 17, 14, 18, 16, 19, 20, 21, 22, 23,
1025 24, 15, 22, 54, 17, 56, 57, 30, 21, 58,
1026 30, 30, 59, 64, 21, 772, 14, 16, 17, 14,
1027 18, 16, 19, 20, 21, 22, 23, 24, 770, 22,
1028 54, 17, 56, 57, 761, 21, 58, 760, 741, 59,
1029 64, 21, 28, 28, 28, 28, 28, 28, 28, 30,
1030 740, 65, 28, 28, 28, 28, 28, 28, 28, 28,
1031 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1032 28, 28, 28, 28, 28, 28, 28, 28, 65, 28,
1033 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1034 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
1036 28, 28, 28, 28, 28, 29, 29, 29, 29, 29,
1037 29, 29, 31, 66, 739, 31, 31, 95, 31, 31,
1038 31, 31, 31, 31, 31, 33, 33, 33, 33, 33,
1039 33, 33, 35, 738, 36, 35, 35, 36, 36, 34,
1040 66, 37, 34, 34, 37, 37, 729, 728, 89, 38,
1041 35, 36, 38, 38, 31, 32, 95, 90, 32, 32,
1042 37, 32, 32, 32, 32, 32, 32, 32, 34, 39,
1043 719, 718, 39, 39, 35, 89, 36, 35, 36, 91,
1044 60, 34, 38, 37, 90, 40, 60, 37, 40, 40,
1045 41, 38, 717, 41, 41, 34, 39, 32, 42, 142,
1047 43, 42, 42, 43, 43, 716, 91, 60, 709, 38,
1048 92, 39, 93, 60, 41, 44, 42, 45, 44, 44,
1049 45, 45, 40, 39, 706, 61, 44, 40, 61, 43,
1050 703, 46, 41, 55, 46, 46, 45, 92, 142, 93,
1051 42, 41, 43, 42, 94, 55, 702, 47, 96, 40,
1052 47, 47, 61, 97, 98, 61, 43, 44, 48, 45,
1053 55, 48, 48, 45, 46, 49, 99, 686, 49, 49,
1054 100, 94, 55, 46, 50, 96, 47, 50, 50, 145,
1055 97, 98, 62, 683, 62, 63, 62, 101, 102, 47,
1056 103, 46, 48, 99, 63, 63, 679, 100, 49, 104,
1058 48, 63, 68, 47, 678, 68, 68, 49, 149, 62,
1059 50, 62, 63, 62, 101, 102, 50, 103, 145, 48,
1060 72, 63, 63, 72, 72, 49, 104, 665, 63, 67,
1061 67, 67, 67, 67, 67, 67, 106, 50, 53, 53,
1062 53, 53, 107, 108, 68, 53, 53, 149, 664, 109,
1063 129, 53, 130, 53, 72, 53, 53, 53, 53, 53,
1064 647, 131, 72, 106, 646, 53, 53, 53, 53, 107,
1065 108, 73, 53, 53, 73, 73, 109, 129, 53, 130,
1066 53, 72, 53, 53, 53, 53, 53, 69, 131, 631,
1067 69, 69, 170, 69, 69, 69, 69, 69, 69, 69,
1069 71, 71, 71, 71, 71, 71, 71, 74, 133, 630,
1070 74, 74, 75, 73, 76, 75, 75, 76, 76, 77,
1071 586, 78, 77, 77, 78, 78, 585, 574, 78, 69,
1072 70, 170, 555, 70, 70, 133, 70, 70, 70, 70,
1073 70, 70, 70, 74, 76, 554, 134, 79, 137, 74,
1074 79, 79, 138, 77, 75, 80, 76, 553, 80, 80,
1075 552, 77, 81, 78, 139, 81, 81, 79, 551, 140,
1076 74, 76, 70, 134, 82, 137, 550, 82, 82, 138,
1077 77, 83, 80, 84, 83, 83, 84, 84, 81, 79,
1078 545, 139, 132, 105, 79, 85, 140, 80, 85, 85,
1080 132, 544, 490, 87, 81, 489, 87, 87, 105, 80,
1081 467, 84, 466, 434, 85, 81, 82, 83, 433, 132,
1082 105, 426, 425, 83, 380, 84, 86, 132, 88, 86,
1083 86, 88, 88, 185, 377, 105, 283, 85, 84, 115,
1084 87, 85, 115, 115, 83, 87, 86, 282, 88, 110,
1085 110, 110, 110, 110, 110, 110, 114, 114, 114, 114,
1086 114, 114, 114, 115, 280, 141, 143, 87, 86, 144,
1087 88, 146, 185, 86, 117, 88, 111, 117, 117, 111,
1088 111, 115, 111, 111, 111, 111, 111, 111, 111, 279,
1089 115, 116, 141, 143, 116, 116, 144, 118, 146, 119,
1091 118, 118, 119, 119, 51, 27, 125, 117, 122, 125,
1092 125, 122, 122, 116, 195, 119, 117, 118, 111, 112,
1093 26, 200, 112, 112, 147, 112, 112, 112, 112, 112,
1094 112, 112, 122, 116, 117, 25, 125, 148, 241, 118,
1095 116, 119, 119, 121, 118, 10, 121, 121, 125, 151,
1096 122, 147, 120, 195, 123, 120, 120, 123, 123, 122,
1097 200, 112, 113, 125, 148, 113, 113, 9, 113, 113,
1098 113, 113, 113, 113, 113, 120, 151, 241, 171, 121,
1099 124, 123, 8, 124, 124, 121, 126, 150, 128, 126,
1100 126, 128, 128, 172, 120, 127, 123, 173, 127, 127,
1102 135, 3, 120, 2, 113, 171, 121, 176, 123, 135,
1103 271, 135, 174, 175, 136, 127, 124, 150, 176, 0,
1104 172, 126, 124, 136, 173, 136, 150, 135, 126, 0,
1105 128, 154, 0, 0, 154, 154, 135, 127, 135, 174,
1106 175, 136, 127, 124, 150, 0, 176, 0, 126, 271,
1107 136, 0, 136, 152, 152, 152, 152, 152, 152, 152,
1108 153, 0, 177, 153, 153, 0, 153, 153, 153, 153,
1109 153, 153, 153, 154, 155, 155, 155, 155, 155, 155,
1110 155, 156, 0, 157, 156, 156, 157, 157, 158, 177,
1111 159, 158, 158, 159, 159, 160, 272, 161, 160, 160,
1113 161, 161, 153, 0, 162, 0, 161, 162, 162, 161,
1114 163, 178, 0, 163, 163, 156, 164, 0, 165, 164,
1115 164, 165, 165, 156, 166, 157, 179, 166, 166, 163,
1116 158, 0, 159, 0, 165, 272, 0, 160, 178, 161,
1117 167, 0, 156, 167, 167, 164, 162, 168, 180, 181,
1118 168, 168, 163, 179, 182, 0, 163, 166, 164, 169,
1119 165, 165, 169, 169, 183, 0, 166, 184, 167, 186,
1120 187, 188, 164, 189, 0, 180, 181, 190, 191, 192,
1121 193, 182, 167, 194, 166, 196, 199, 197, 201, 168,
1122 197, 183, 169, 202, 184, 167, 186, 187, 188, 198,
1124 189, 169, 198, 0, 190, 191, 192, 193, 0, 0,
1125 194, 217, 196, 199, 197, 201, 0, 197, 285, 169,
1126 202, 0, 0, 218, 219, 220, 198, 221, 222, 198,
1127 203, 203, 203, 203, 203, 203, 203, 204, 217, 0,
1128 204, 204, 223, 204, 204, 204, 204, 204, 204, 204,
1129 218, 219, 220, 0, 221, 222, 208, 285, 207, 208,
1130 208, 207, 207, 209, 0, 208, 209, 209, 208, 223,
1131 224, 209, 210, 0, 211, 210, 210, 211, 211, 204,
1132 205, 0, 210, 205, 205, 226, 205, 205, 205, 205,
1133 205, 205, 205, 207, 211, 0, 227, 224, 208, 212,
1135 207, 0, 212, 212, 213, 209, 214, 213, 213, 214,
1136 214, 228, 226, 229, 210, 215, 211, 230, 215, 215,
1137 207, 211, 205, 227, 216, 231, 232, 216, 216, 233,
1138 0, 0, 234, 212, 235, 236, 237, 238, 228, 0,
1139 229, 212, 239, 240, 230, 242, 213, 243, 214, 244,
1140 245, 246, 231, 232, 247, 248, 233, 215, 216, 234,
1141 212, 235, 236, 237, 238, 249, 216, 250, 251, 239,
1142 240, 252, 242, 253, 243, 254, 244, 245, 246, 255,
1143 256, 247, 248, 257, 260, 216, 0, 260, 260, 269,
1144 0, 0, 249, 261, 250, 251, 261, 261, 252, 0,
1146 253, 262, 254, 270, 262, 262, 255, 256, 0, 262,
1147 257, 259, 273, 261, 259, 259, 269, 259, 259, 259,
1148 259, 259, 259, 259, 263, 274, 260, 263, 263, 264,
1149 270, 275, 264, 264, 263, 261, 276, 277, 265, 273,
1150 261, 265, 265, 262, 266, 278, 267, 266, 266, 267,
1151 267, 268, 274, 259, 268, 268, 281, 284, 275, 288,
1152 286, 0, 287, 276, 277, 289, 263, 290, 291, 292,
1153 293, 264, 278, 295, 294, 296, 297, 298, 299, 300,
1154 265, 301, 302, 281, 284, 294, 266, 286, 267, 287,
1155 303, 304, 289, 268, 290, 291, 292, 293, 288, 305,
1157 295, 306, 296, 307, 298, 299, 300, 308, 301, 302,
1158 309, 0, 321, 294, 314, 297, 315, 303, 304, 316,
1159 317, 312, 0, 0, 312, 312, 305, 0, 306, 313,
1160 307, 0, 313, 313, 308, 311, 0, 0, 311, 311,
1161 318, 314, 319, 315, 0, 320, 316, 317, 322, 309,
1162 310, 321, 323, 310, 310, 324, 310, 310, 310, 310,
1163 310, 310, 310, 312, 311, 0, 325, 318, 326, 319,
1164 327, 313, 320, 328, 329, 322, 330, 311, 332, 323,
1165 333, 334, 324, 335, 336, 337, 338, 339, 340, 341,
1166 342, 311, 310, 325, 343, 326, 345, 327, 346, 347,
1168 328, 329, 350, 330, 351, 332, 353, 333, 334, 352,
1169 335, 336, 337, 338, 339, 340, 341, 342, 348, 348,
1170 354, 343, 355, 345, 356, 346, 347, 349, 349, 350,
1171 358, 351, 359, 353, 361, 362, 363, 365, 364, 363,
1172 363, 364, 364, 366, 367, 348, 348, 354, 352, 355,
1173 368, 356, 369, 0, 349, 349, 370, 358, 371, 359,
1174 372, 361, 362, 373, 365, 374, 375, 376, 378, 379,
1175 366, 367, 381, 364, 382, 383, 384, 368, 363, 369,
1176 364, 385, 386, 370, 387, 371, 388, 372, 389, 390,
1177 373, 391, 374, 375, 376, 378, 379, 392, 393, 381,
1179 364, 382, 383, 384, 394, 395, 396, 397, 385, 386,
1180 398, 387, 399, 388, 400, 389, 390, 401, 391, 402,
1181 403, 404, 405, 407, 392, 393, 409, 406, 408, 410,
1182 411, 394, 395, 396, 397, 406, 408, 398, 412, 399,
1183 413, 400, 421, 0, 401, 415, 402, 403, 404, 405,
1184 407, 416, 417, 409, 406, 408, 410, 411, 418, 419,
1185 420, 422, 406, 408, 423, 412, 414, 413, 424, 414,
1186 414, 427, 415, 428, 429, 430, 431, 432, 416, 417,
1187 435, 421, 436, 437, 438, 418, 419, 420, 422, 439,
1188 440, 423, 441, 442, 443, 424, 444, 445, 427, 446,
1190 428, 429, 430, 431, 432, 447, 448, 435, 414, 436,
1191 437, 438, 449, 450, 451, 452, 453, 440, 454, 441,
1192 442, 443, 455, 444, 445, 456, 446, 457, 439, 458,
1193 459, 460, 447, 448, 461, 464, 465, 468, 469, 449,
1194 450, 451, 452, 453, 470, 454, 471, 472, 473, 455,
1195 474, 475, 456, 476, 457, 477, 458, 459, 460, 478,
1196 479, 461, 464, 465, 468, 469, 480, 481, 482, 483,
1197 484, 470, 485, 471, 472, 473, 486, 474, 475, 487,
1198 476, 488, 477, 491, 492, 493, 478, 479, 494, 495,
1199 496, 497, 498, 480, 481, 482, 483, 484, 499, 485,
1201 500, 501, 502, 486, 503, 504, 487, 507, 488, 508,
1202 491, 492, 493, 509, 510, 494, 495, 496, 497, 498,
1203 511, 512, 513, 514, 517, 499, 518, 500, 501, 502,
1204 519, 503, 504, 520, 507, 521, 508, 522, 523, 524,
1205 509, 510, 525, 526, 527, 528, 529, 511, 512, 513,
1206 514, 517, 530, 518, 531, 532, 533, 519, 534, 535,
1207 520, 536, 521, 537, 522, 523, 524, 538, 539, 525,
1208 526, 527, 528, 529, 542, 543, 546, 547, 548, 530,
1209 549, 531, 532, 533, 558, 534, 535, 559, 536, 561,
1210 537, 562, 564, 565, 538, 539, 566, 567, 568, 569,
1212 570, 542, 543, 546, 547, 548, 571, 549, 572, 573,
1213 575, 558, 576, 577, 559, 578, 561, 579, 562, 564,
1214 565, 580, 581, 566, 567, 568, 569, 570, 582, 583,
1215 584, 587, 588, 571, 591, 572, 573, 575, 592, 576,
1216 577, 593, 578, 594, 579, 597, 598, 599, 580, 581,
1217 600, 601, 603, 605, 606, 582, 583, 584, 587, 588,
1218 607, 591, 608, 609, 610, 592, 611, 612, 593, 613,
1219 594, 614, 597, 598, 599, 616, 617, 600, 601, 603,
1220 605, 606, 618, 619, 620, 621, 622, 607, 623, 608,
1221 609, 610, 624, 611, 612, 625, 613, 628, 614, 629,
1223 632, 633, 616, 617, 634, 635, 636, 637, 640, 618,
1224 619, 620, 621, 622, 641, 623, 642, 643, 644, 624,
1225 645, 648, 625, 649, 628, 650, 629, 632, 633, 651,
1226 652, 634, 635, 636, 637, 640, 653, 654, 655, 656,
1227 657, 641, 658, 642, 643, 644, 659, 645, 648, 660,
1228 649, 661, 650, 666, 667, 668, 651, 652, 669, 670,
1229 671, 680, 681, 653, 654, 655, 656, 657, 682, 658,
1230 684, 685, 687, 659, 688, 689, 660, 690, 661, 691,
1231 666, 667, 668, 692, 693, 669, 670, 671, 680, 681,
1232 694, 695, 696, 697, 704, 682, 707, 684, 685, 687,
1234 710, 688, 689, 711, 690, 712, 691, 713, 714, 715,
1235 692, 693, 720, 721, 722, 724, 726, 694, 695, 696,
1236 697, 704, 727, 707, 730, 731, 736, 710, 737, 742,
1237 711, 743, 712, 744, 713, 714, 715, 745, 746, 720,
1238 721, 722, 724, 726, 747, 752, 753, 754, 755, 727,
1239 758, 730, 731, 736, 759, 737, 742, 762, 743, 763,
1240 744, 0, 0, 0, 745, 746, 0, 0, 0, 0,
1241 0, 747, 752, 753, 754, 755, 0, 758, 0, 0,
1242 0, 759, 0, 0, 762, 0, 763, 769, 0, 769,
1243 771, 771, 771, 768, 768, 768, 768, 768, 768, 768,
1245 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1246 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1247 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1248 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1249 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1250 768, 768, 768, 768, 768, 768, 768, 768, 768, 768,
1251 768, 768, 768, 768, 768, 768, 768
1254 static yyconst flex_int16_t yy_rule_linenum
[90] =
1256 76, 78, 80, 82, 84, 87, 91, 93, 94, 95,
1257 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1258 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
1259 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
1260 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1261 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1262 146, 147, 149, 150, 152, 153, 154, 155, 156, 157,
1263 159, 160, 163, 168, 169, 170, 172, 173, 174, 175,
1264 176, 177, 178, 179, 180, 182, 191, 209, 215
1267 /* The intent behind this definition is that it'll catch
1268 * any uses of REJECT which flex missed.
1270 #define REJECT reject_used_but_not_detected
1271 #define yymore() yymore_used_but_not_detected
1272 #define YY_MORE_ADJ 0
1273 #define YY_RESTORE_YY_MORE_OFFSET
1274 #line 1 "libmemcached/options/scanner.l"
1275 /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
1277 * Libmemcached Scanner and Parser
1279 * Copyright (C) 2011 DataDifferental, http://datadifferential.com
1281 * This program is free software: you can redistribute it and/or modify
1282 * it under the terms of the GNU Affero General Public License as
1283 * published by the Free Software Foundation, either version 3 of the
1284 * License, or (at your option) any later version.
1286 * This program is distributed in the hope that it will be useful,
1287 * but WITHOUT ANY WARRANTY; without even the implied warranty of
1288 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1289 * GNU Affero General Public License for more details.
1291 * You should have received a copy of the GNU Affero General Public License
1292 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1295 #line 37 "libmemcached/options/scanner.l"
1299 #define PARAM config_get_extra(yyscanner)
1301 #define get_lex_chars(buffer, result, max_size, context) \
1303 if (context->pos >= context->length) \
1309 result= context->length - context->pos; \
1310 result > max_size ? result = max_size : 0; \
1311 memcpy(buffer, context->buf + context->pos, result); \
1312 context->pos += result; \
1317 #define YY_INPUT(buffer, result, max_size) get_lex_chars(buffer, result, max_size, PARAM)
1319 #line 1320 "libmemcached/options/scanner.cc"
1323 #ifndef YY_NO_UNISTD_H
1324 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1325 * down here because we want the user's section 1 to have been scanned first.
1326 * The user has a chance to override it with an option.
1335 #ifndef YY_EXTRA_TYPE
1336 #define YY_EXTRA_TYPE void *
1339 /* %if-c-only Reentrant structure and macros (non-C++). */
1342 /* Holds the entire state of the reentrant scanner. */
1346 /* User-defined. Not touched by flex. */
1347 YY_EXTRA_TYPE yyextra_r
;
1349 /* The rest are the same as the globals declared in the non-reentrant scanner. */
1350 FILE *yyin_r
, *yyout_r
;
1351 size_t yy_buffer_stack_top
; /**< index of top of stack. */
1352 size_t yy_buffer_stack_max
; /**< capacity of stack. */
1353 YY_BUFFER_STATE
* yy_buffer_stack
; /**< Stack as an array. */
1360 int yy_did_buffer_switch_on_eof
;
1361 int yy_start_stack_ptr
;
1362 int yy_start_stack_depth
;
1363 int *yy_start_stack
;
1364 yy_state_type yy_last_accepting_state
;
1365 char* yy_last_accepting_cpos
;
1368 int yy_flex_debug_r
;
1376 }; /* end struct yyguts_t */
1380 static int yy_init_globals (yyscan_t yyscanner
);
1386 /* This must go here because YYSTYPE and YYLTYPE are included
1387 * from bison output in section 1.*/
1388 # define yylval yyg->yylval_r
1390 int config_lex_init (yyscan_t
* scanner
);
1392 int config_lex_init_extra (YY_EXTRA_TYPE user_defined
,yyscan_t
* scanner
);
1396 /* %endif End reentrant structures and macros. */
1398 /* Accessor methods to globals.
1399 These are made visible to non-reentrant scanners for convenience. */
1401 int config_lex_destroy (yyscan_t yyscanner
);
1403 int config_get_debug (yyscan_t yyscanner
);
1405 void config_set_debug (int debug_flag
,yyscan_t yyscanner
);
1407 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
);
1409 void config_set_extra (YY_EXTRA_TYPE user_defined
,yyscan_t yyscanner
);
1411 FILE *config_get_in (yyscan_t yyscanner
);
1413 void config_set_in (FILE * in_str
,yyscan_t yyscanner
);
1415 FILE *config_get_out (yyscan_t yyscanner
);
1417 void config_set_out (FILE * out_str
,yyscan_t yyscanner
);
1419 int config_get_leng (yyscan_t yyscanner
);
1421 char *config_get_text (yyscan_t yyscanner
);
1423 int config_get_lineno (yyscan_t yyscanner
);
1425 void config_set_lineno (int line_number
,yyscan_t yyscanner
);
1427 int config_get_column (yyscan_t yyscanner
);
1429 void config_set_column (int column_no
,yyscan_t yyscanner
);
1431 /* %if-bison-bridge */
1433 YYSTYPE
* config_get_lval (yyscan_t yyscanner
);
1435 void config_set_lval (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1439 /* Macros after this point can all be overridden by user definitions in
1443 #ifndef YY_SKIP_YYWRAP
1445 extern "C" int config_wrap (yyscan_t yyscanner
);
1447 extern int config_wrap (yyscan_t yyscanner
);
1451 /* %not-for-header */
1453 /* %ok-for-header */
1458 static void yy_flex_strncpy (char *,yyconst
char *,int ,yyscan_t yyscanner
);
1461 #ifdef YY_NEED_STRLEN
1462 static int yy_flex_strlen (yyconst
char * ,yyscan_t yyscanner
);
1466 /* %if-c-only Standard (non-C++) definition */
1467 /* %not-for-header */
1470 static int yyinput (yyscan_t yyscanner
);
1472 static int input (yyscan_t yyscanner
);
1474 /* %ok-for-header */
1483 /* Amount of stuff to slurp up with each read. */
1484 #ifndef YY_READ_BUF_SIZE
1485 #define YY_READ_BUF_SIZE 8192
1488 /* Copy whatever the last rule matched to the standard output. */
1490 /* %if-c-only Standard (non-C++) definition */
1491 /* This used to be an fputs(), but since the string might contain NUL's,
1492 * we now use fwrite().
1494 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1496 /* %if-c++-only C++ definition */
1500 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1501 * is returned in "result".
1504 #define YY_INPUT(buf,result,max_size) \
1505 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
1506 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1510 for ( n = 0; n < max_size && \
1511 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1512 buf[n] = (char) c; \
1514 buf[n++] = (char) c; \
1515 if ( c == EOF && ferror( yyin ) ) \
1516 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1522 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1524 if( errno != EINTR) \
1526 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1534 /* %if-c++-only C++ definition \ */\
1539 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1540 * we don't want an extra ';' after the "return" because that will cause
1541 * some compilers to complain about unreachable statements.
1544 #define yyterminate() return YY_NULL
1547 /* Number of entries by which start-condition stack grows. */
1548 #ifndef YY_START_STACK_INCR
1549 #define YY_START_STACK_INCR 25
1552 /* Report a fatal error. */
1553 #ifndef YY_FATAL_ERROR
1555 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1561 /* %if-tables-serialization structures and prototypes */
1562 /* %not-for-header */
1564 /* %ok-for-header */
1566 /* %not-for-header */
1568 /* %tables-yydmap generated elements */
1570 /* end tables serialization structures and prototypes */
1572 /* %ok-for-header */
1574 /* Default declaration of generated scanner - a define so the user can
1575 * easily add parameters.
1578 #define YY_DECL_IS_OURS 1
1579 /* %if-c-only Standard (non-C++) definition */
1581 extern int config_lex \
1582 (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1584 #define YY_DECL int config_lex \
1585 (YYSTYPE * yylval_param , yyscan_t yyscanner)
1587 /* %if-c++-only C++ definition */
1589 #endif /* !YY_DECL */
1591 /* Code executed at the beginning of each rule, after yytext and yyleng
1594 #ifndef YY_USER_ACTION
1595 #define YY_USER_ACTION
1598 /* Code executed at the end of each rule. */
1600 #define YY_BREAK break;
1603 /* %% [6.0] YY_RULE_SETUP definition goes here */
1604 #define YY_RULE_SETUP \
1606 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1607 (yytext[yyleng - 1] == '\n'); \
1610 /* %not-for-header */
1612 /** The main scanner function which does all the work.
1616 register yy_state_type yy_current_state
;
1617 register char *yy_cp
, *yy_bp
;
1618 register int yy_act
;
1619 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
1621 /* %% [7.0] user's declarations go here */
1622 #line 73 "libmemcached/options/scanner.l"
1626 #line 1627 "libmemcached/options/scanner.cc"
1628 yylval
= yylval_param
;
1630 if ( !yyg
->yy_init
)
1638 if ( ! yyg
->yy_start
)
1639 yyg
->yy_start
= 1; /* first start state */
1655 if ( ! YY_CURRENT_BUFFER
) {
1656 config_ensure_buffer_stack (yyscanner
);
1657 YY_CURRENT_BUFFER_LVALUE
=
1658 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
1661 config__load_buffer_state(yyscanner
);
1664 while ( 1 ) /* loops until end-of-file is reached */
1666 /* %% [8.0] yymore()-related code goes here */
1667 yy_cp
= yyg
->yy_c_buf_p
;
1669 /* Support of yytext. */
1670 *yy_cp
= yyg
->yy_hold_char
;
1672 /* yy_bp points to the position in yy_ch_buf of the start of
1677 /* %% [9.0] code to set up and find next match goes here */
1678 yy_current_state
= yyg
->yy_start
;
1679 yy_current_state
+= YY_AT_BOL();
1683 register YY_CHAR yy_c
= yy_ec
[YY_SC_TO_UI(*yy_cp
)];
1684 if ( yy_accept
[yy_current_state
] )
1686 yyg
->yy_last_accepting_state
= yy_current_state
;
1687 yyg
->yy_last_accepting_cpos
= yy_cp
;
1689 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
1691 yy_current_state
= (int) yy_def
[yy_current_state
];
1692 if ( yy_current_state
>= 769 )
1693 yy_c
= yy_meta
[(unsigned int) yy_c
];
1695 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
1698 while ( yy_base
[yy_current_state
] != 2094 );
1701 /* %% [10.0] code to find the action number goes here */
1702 yy_act
= yy_accept
[yy_current_state
];
1704 { /* have to back up */
1705 yy_cp
= yyg
->yy_last_accepting_cpos
;
1706 yy_current_state
= yyg
->yy_last_accepting_state
;
1707 yy_act
= yy_accept
[yy_current_state
];
1710 YY_DO_BEFORE_ACTION
;
1712 /* %% [11.0] code for yylineno update goes here */
1714 do_action
: /* This label is used only to access EOF actions. */
1716 /* %% [12.0] debug code goes here */
1717 if ( yy_flex_debug
)
1720 fprintf( stderr
, "--scanner backing up\n" );
1721 else if ( yy_act
< 90 )
1722 fprintf( stderr
, "--accepting rule at line %ld (\"%s\")\n",
1723 (long)yy_rule_linenum
[yy_act
], yytext
);
1724 else if ( yy_act
== 90 )
1725 fprintf( stderr
, "--accepting default rule (\"%s\")\n",
1727 else if ( yy_act
== 91 )
1728 fprintf( stderr
, "--(end of buffer or a NUL)\n" );
1730 fprintf( stderr
, "--EOF (start condition %d)\n", YY_START
);
1734 { /* beginning of action switch */
1735 /* %% [13.0] actions go here */
1736 case 0: /* must back up */
1737 /* undo the effects of YY_DO_BEFORE_ACTION */
1738 *yy_cp
= yyg
->yy_hold_char
;
1739 yy_cp
= yyg
->yy_last_accepting_cpos
;
1740 yy_current_state
= yyg
->yy_last_accepting_state
;
1741 goto yy_find_action
;
1745 #line 76 "libmemcached/options/scanner.l"
1746 { return yytext
[0];}
1750 #line 78 "libmemcached/options/scanner.l"
1751 { yylval
->number
= atoi(yytext
); return (NUMBER
); }
1755 #line 80 "libmemcached/options/scanner.l"
1756 { yylval
->server
.port
= atoi(yytext
+1); return PORT
; }
1760 #line 82 "libmemcached/options/scanner.l"
1761 { yylval
->server
.weight
= atoi(yytext
+2); return WEIGHT_START
; }
1764 /* rule 5 can match eol */
1766 #line 84 "libmemcached/options/scanner.l"
1767 ; /* skip whitespace */
1770 *yy_cp
= yyg
->yy_hold_char
; /* undo effects of setting up yytext */
1771 yyg
->yy_c_buf_p
= yy_cp
-= 1;
1772 YY_DO_BEFORE_ACTION
; /* set up yytext again */
1774 #line 87 "libmemcached/options/scanner.l"
1781 #line 91 "libmemcached/options/scanner.l"
1782 { yyextra
->begin
= yytext
; yyextra
->set_server(); return SERVER
; }
1786 #line 93 "libmemcached/options/scanner.l"
1787 { yyextra
->begin
= yytext
; return VERIFY_KEY
; }
1791 #line 94 "libmemcached/options/scanner.l"
1792 { yyextra
->begin
= yytext
; return VERIFY_KEY
; }
1796 #line 95 "libmemcached/options/scanner.l"
1797 { yyextra
->begin
= yytext
; return AUTO_EJECT_HOSTS
; }
1801 #line 96 "libmemcached/options/scanner.l"
1802 { yyextra
->begin
= yytext
; return AUTO_EJECT_HOSTS
; }
1806 #line 97 "libmemcached/options/scanner.l"
1807 { yyextra
->begin
= yytext
; return BINARY_PROTOCOL
; }
1811 #line 98 "libmemcached/options/scanner.l"
1812 { yyextra
->begin
= yytext
; return BINARY_PROTOCOL
; }
1816 #line 99 "libmemcached/options/scanner.l"
1817 { yyextra
->begin
= yytext
; return BUFFER_REQUESTS
; }
1821 #line 100 "libmemcached/options/scanner.l"
1822 { yyextra
->begin
= yytext
; return BUFFER_REQUESTS
; }
1826 #line 101 "libmemcached/options/scanner.l"
1827 { yyextra
->begin
= yytext
; return CONFIGURE_FILE
; }
1831 #line 102 "libmemcached/options/scanner.l"
1832 { yyextra
->begin
= yytext
; return CONFIGURE_FILE
; }
1836 #line 103 "libmemcached/options/scanner.l"
1837 { yyextra
->begin
= yytext
; return CONNECT_TIMEOUT
; }
1841 #line 104 "libmemcached/options/scanner.l"
1842 { yyextra
->begin
= yytext
; return CONNECT_TIMEOUT
; }
1846 #line 105 "libmemcached/options/scanner.l"
1847 { yyextra
->begin
= yytext
; return DISTRIBUTION
; }
1851 #line 106 "libmemcached/options/scanner.l"
1852 { yyextra
->begin
= yytext
; return HASH
; }
1856 #line 107 "libmemcached/options/scanner.l"
1857 { yyextra
->begin
= yytext
; return HASH_WITH_PREFIX_KEY
; }
1861 #line 108 "libmemcached/options/scanner.l"
1862 { yyextra
->begin
= yytext
; return HASH_WITH_PREFIX_KEY
; }
1866 #line 109 "libmemcached/options/scanner.l"
1867 { yyextra
->begin
= yytext
; return IO_BYTES_WATERMARK
; }
1871 #line 110 "libmemcached/options/scanner.l"
1872 { yyextra
->begin
= yytext
; return IO_BYTES_WATERMARK
; }
1876 #line 111 "libmemcached/options/scanner.l"
1877 { yyextra
->begin
= yytext
; return IO_KEY_PREFETCH
; }
1881 #line 112 "libmemcached/options/scanner.l"
1882 { yyextra
->begin
= yytext
; return IO_KEY_PREFETCH
; }
1886 #line 113 "libmemcached/options/scanner.l"
1887 { yyextra
->begin
= yytext
; return IO_MSG_WATERMARK
; }
1891 #line 114 "libmemcached/options/scanner.l"
1892 { yyextra
->begin
= yytext
; return IO_MSG_WATERMARK
; }
1896 #line 115 "libmemcached/options/scanner.l"
1897 { yyextra
->begin
= yytext
; return NOREPLY
; }
1901 #line 116 "libmemcached/options/scanner.l"
1902 { yyextra
->begin
= yytext
; return NUMBER_OF_REPLICAS
; }
1906 #line 117 "libmemcached/options/scanner.l"
1907 { yyextra
->begin
= yytext
; return NUMBER_OF_REPLICAS
; }
1911 #line 118 "libmemcached/options/scanner.l"
1912 { yyextra
->begin
= yytext
; return POLL_TIMEOUT
; }
1916 #line 119 "libmemcached/options/scanner.l"
1917 { yyextra
->begin
= yytext
; return POLL_TIMEOUT
; }
1921 #line 120 "libmemcached/options/scanner.l"
1922 { yyextra
->begin
= yytext
; return RANDOMIZE_REPLICA_READ
; }
1926 #line 121 "libmemcached/options/scanner.l"
1927 { yyextra
->begin
= yytext
; return RANDOMIZE_REPLICA_READ
; }
1931 #line 122 "libmemcached/options/scanner.l"
1932 { yyextra
->begin
= yytext
; return RCV_TIMEOUT
; }
1936 #line 123 "libmemcached/options/scanner.l"
1937 { yyextra
->begin
= yytext
; return RCV_TIMEOUT
; }
1941 #line 124 "libmemcached/options/scanner.l"
1942 { yyextra
->begin
= yytext
; return RETRY_TIMEOUT
; }
1946 #line 125 "libmemcached/options/scanner.l"
1947 { yyextra
->begin
= yytext
; return RETRY_TIMEOUT
; }
1951 #line 126 "libmemcached/options/scanner.l"
1952 { yyextra
->begin
= yytext
; return SERVER_FAILURE_LIMIT
; }
1956 #line 127 "libmemcached/options/scanner.l"
1957 { yyextra
->begin
= yytext
; return SERVER_FAILURE_LIMIT
; }
1961 #line 128 "libmemcached/options/scanner.l"
1962 { yyextra
->begin
= yytext
; return SND_TIMEOUT
; }
1966 #line 129 "libmemcached/options/scanner.l"
1967 { yyextra
->begin
= yytext
; return SND_TIMEOUT
; }
1971 #line 130 "libmemcached/options/scanner.l"
1972 { yyextra
->begin
= yytext
; return SOCKET_RECV_SIZE
; }
1976 #line 131 "libmemcached/options/scanner.l"
1977 { yyextra
->begin
= yytext
; return SOCKET_RECV_SIZE
; }
1981 #line 132 "libmemcached/options/scanner.l"
1982 { yyextra
->begin
= yytext
; return SOCKET_SEND_SIZE
; }
1986 #line 133 "libmemcached/options/scanner.l"
1987 { yyextra
->begin
= yytext
; return SOCKET_SEND_SIZE
; }
1991 #line 134 "libmemcached/options/scanner.l"
1992 { yyextra
->begin
= yytext
; return SORT_HOSTS
; }
1996 #line 135 "libmemcached/options/scanner.l"
1997 { yyextra
->begin
= yytext
; return SORT_HOSTS
; }
2001 #line 136 "libmemcached/options/scanner.l"
2002 { yyextra
->begin
= yytext
; return SUPPORT_CAS
; }
2006 #line 137 "libmemcached/options/scanner.l"
2007 { yyextra
->begin
= yytext
; return SUPPORT_CAS
; }
2011 #line 138 "libmemcached/options/scanner.l"
2012 { yyextra
->begin
= yytext
; return _TCP_NODELAY
; }
2016 #line 139 "libmemcached/options/scanner.l"
2017 { yyextra
->begin
= yytext
; return _TCP_NODELAY
; }
2021 #line 140 "libmemcached/options/scanner.l"
2022 { yyextra
->begin
= yytext
; return _TCP_KEEPALIVE
; }
2026 #line 141 "libmemcached/options/scanner.l"
2027 { yyextra
->begin
= yytext
; return _TCP_KEEPALIVE
; }
2031 #line 142 "libmemcached/options/scanner.l"
2032 { yyextra
->begin
= yytext
; return _TCP_KEEPIDLE
; }
2036 #line 143 "libmemcached/options/scanner.l"
2037 { yyextra
->begin
= yytext
; return _TCP_KEEPIDLE
; }
2041 #line 144 "libmemcached/options/scanner.l"
2042 { yyextra
->begin
= yytext
; return USER_DATA
; }
2046 #line 145 "libmemcached/options/scanner.l"
2047 { yyextra
->begin
= yytext
; return USER_DATA
; }
2051 #line 146 "libmemcached/options/scanner.l"
2052 { yyextra
->begin
= yytext
; return USE_UDP
; }
2056 #line 147 "libmemcached/options/scanner.l"
2057 { yyextra
->begin
= yytext
; return USE_UDP
; }
2061 #line 149 "libmemcached/options/scanner.l"
2062 { yyextra
->begin
= yytext
; return PREFIX_KEY
; }
2066 #line 150 "libmemcached/options/scanner.l"
2067 { yyextra
->begin
= yytext
; return PREFIX_KEY
; }
2071 #line 152 "libmemcached/options/scanner.l"
2072 { yyextra
->begin
= yytext
; return INCLUDE
; }
2076 #line 153 "libmemcached/options/scanner.l"
2077 { yyextra
->begin
= yytext
; return RESET
; }
2081 #line 154 "libmemcached/options/scanner.l"
2082 { yyextra
->begin
= yytext
; return PARSER_DEBUG
; }
2086 #line 155 "libmemcached/options/scanner.l"
2087 { yyextra
->begin
= yytext
; return SERVERS
; }
2091 #line 156 "libmemcached/options/scanner.l"
2092 { yyextra
->begin
= yytext
; return END
; }
2096 #line 157 "libmemcached/options/scanner.l"
2097 { yyextra
->begin
= yytext
; return ERROR
; }
2101 #line 159 "libmemcached/options/scanner.l"
2106 #line 160 "libmemcached/options/scanner.l"
2111 #line 163 "libmemcached/options/scanner.l"
2113 yyextra
->begin
= yytext
;
2114 return UNKNOWN_OPTION
;
2119 #line 168 "libmemcached/options/scanner.l"
2120 { return CONSISTENT
; }
2124 #line 169 "libmemcached/options/scanner.l"
2129 #line 170 "libmemcached/options/scanner.l"
2134 #line 172 "libmemcached/options/scanner.l"
2139 #line 173 "libmemcached/options/scanner.l"
2144 #line 174 "libmemcached/options/scanner.l"
2149 #line 175 "libmemcached/options/scanner.l"
2150 { return FNV1A_64
; }
2154 #line 176 "libmemcached/options/scanner.l"
2159 #line 177 "libmemcached/options/scanner.l"
2160 { return FNV1A_32
; }
2164 #line 178 "libmemcached/options/scanner.l"
2169 #line 179 "libmemcached/options/scanner.l"
2174 #line 180 "libmemcached/options/scanner.l"
2179 #line 182 "libmemcached/options/scanner.l"
2181 yylval
->server
.port
= MEMCACHED_DEFAULT_PORT
;
2182 yylval
->server
.weight
= 1;
2183 yylval
->server
.c_str
= yyextra
->set_hostname(yytext
, yyleng
);
2184 if (yylval
->server
.c_str
)
2185 yylval
->server
.length
= yyleng
;
2191 #line 191 "libmemcached/options/scanner.l"
2193 if (yyextra
->is_server())
2195 yylval
->server
.port
= MEMCACHED_DEFAULT_PORT
;
2196 yylval
->server
.weight
= 1;
2197 yylval
->server
.c_str
= yyextra
->set_hostname(yytext
, yyleng
);
2198 if (yylval
->server
.c_str
)
2199 yylval
->server
.length
= yyleng
;
2204 yylval
->string
.c_str
= yytext
;
2205 yylval
->string
.length
= yyleng
;
2212 #line 209 "libmemcached/options/scanner.l"
2214 yylval
->string
.c_str
= yytext
;
2215 yylval
->string
.length
= yyleng
;
2216 return QUOTED_STRING
;
2221 #line 215 "libmemcached/options/scanner.l"
2223 yyextra
->begin
= yytext
;
2229 #line 220 "libmemcached/options/scanner.l"
2232 #line 2233 "libmemcached/options/scanner.cc"
2233 case YY_STATE_EOF(INITIAL
):
2236 case YY_END_OF_BUFFER
:
2238 /* Amount of text matched not including the EOB char. */
2239 int yy_amount_of_matched_text
= (int) (yy_cp
- yyg
->yytext_ptr
) - 1;
2241 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2242 *yy_cp
= yyg
->yy_hold_char
;
2243 YY_RESTORE_YY_MORE_OFFSET
2245 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_NEW
)
2247 /* We're scanning a new file or input source. It's
2248 * possible that this happened because the user
2249 * just pointed yyin at a new source and called
2250 * config_lex(). If so, then we have to assure
2251 * consistency between YY_CURRENT_BUFFER and our
2252 * globals. Here is the right place to do so, because
2253 * this is the first action (other than possibly a
2254 * back-up) that will match for the new input source.
2256 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
2257 YY_CURRENT_BUFFER_LVALUE
->yy_input_file
= yyin
;
2258 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
= YY_BUFFER_NORMAL
;
2261 /* Note that here we test for yy_c_buf_p "<=" to the position
2262 * of the first EOB in the buffer, since yy_c_buf_p will
2263 * already have been incremented past the NUL character
2264 * (since all states make transitions on EOB to the
2265 * end-of-buffer state). Contrast this with the test
2268 if ( yyg
->yy_c_buf_p
<= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
2269 { /* This was really a NUL. */
2270 yy_state_type yy_next_state
;
2272 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
2274 yy_current_state
= yy_get_previous_state( yyscanner
);
2276 /* Okay, we're now positioned to make the NUL
2277 * transition. We couldn't have
2278 * yy_get_previous_state() go ahead and do it
2279 * for us because it doesn't know how to deal
2280 * with the possibility of jamming (and we don't
2281 * want to build jamming into it because then it
2282 * will run more slowly).
2285 yy_next_state
= yy_try_NUL_trans( yy_current_state
, yyscanner
);
2287 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2289 if ( yy_next_state
)
2291 /* Consume the NUL. */
2292 yy_cp
= ++yyg
->yy_c_buf_p
;
2293 yy_current_state
= yy_next_state
;
2299 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
2300 yy_cp
= yyg
->yy_c_buf_p
;
2301 goto yy_find_action
;
2305 else switch ( yy_get_next_buffer( yyscanner
) )
2307 case EOB_ACT_END_OF_FILE
:
2309 yyg
->yy_did_buffer_switch_on_eof
= 0;
2311 if ( config_wrap(yyscanner
) )
2313 /* Note: because we've taken care in
2314 * yy_get_next_buffer() to have set up
2315 * yytext, we can now set up
2316 * yy_c_buf_p so that if some total
2317 * hoser (like flex itself) wants to
2318 * call the scanner after we return the
2319 * YY_NULL, it'll still work - another
2320 * YY_NULL will get returned.
2322 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2324 yy_act
= YY_STATE_EOF(YY_START
);
2330 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
2336 case EOB_ACT_CONTINUE_SCAN
:
2338 yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
2340 yy_current_state
= yy_get_previous_state( yyscanner
);
2342 yy_cp
= yyg
->yy_c_buf_p
;
2343 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2346 case EOB_ACT_LAST_MATCH
:
2348 &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
];
2350 yy_current_state
= yy_get_previous_state( yyscanner
);
2352 yy_cp
= yyg
->yy_c_buf_p
;
2353 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2354 goto yy_find_action
;
2361 "fatal flex scanner internal error--no action found" );
2362 } /* end of action switch */
2363 } /* end of scanning one token */
2364 } /* end of config_lex */
2365 /* %ok-for-header */
2368 /* %not-for-header */
2370 /* %ok-for-header */
2374 /* yy_get_next_buffer - try to read in a new buffer
2376 * Returns a code representing an action:
2377 * EOB_ACT_LAST_MATCH -
2378 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2379 * EOB_ACT_END_OF_FILE - end of file
2382 static int yy_get_next_buffer (yyscan_t yyscanner
)
2387 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2388 register char *dest
= YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
;
2389 register char *source
= yyg
->yytext_ptr
;
2390 register int number_to_move
, i
;
2393 if ( yyg
->yy_c_buf_p
> &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] )
2395 "fatal flex scanner internal error--end of buffer missed" );
2397 if ( YY_CURRENT_BUFFER_LVALUE
->yy_fill_buffer
== 0 )
2398 { /* Don't try to fill the buffer, so this is an EOF. */
2399 if ( yyg
->yy_c_buf_p
- yyg
->yytext_ptr
- YY_MORE_ADJ
== 1 )
2401 /* We matched a single character, the EOB, so
2402 * treat this as a final EOF.
2404 return EOB_ACT_END_OF_FILE
;
2409 /* We matched some text prior to the EOB, first
2412 return EOB_ACT_LAST_MATCH
;
2416 /* Try to read more data. */
2418 /* First move last chars to start of buffer. */
2419 number_to_move
= (int) (yyg
->yy_c_buf_p
- yyg
->yytext_ptr
) - 1;
2421 for ( i
= 0; i
< number_to_move
; ++i
)
2422 *(dest
++) = *(source
++);
2424 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_EOF_PENDING
)
2425 /* don't do the read, it's not guaranteed to return an EOF,
2428 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
= 0;
2433 YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
- number_to_move
- 1;
2435 while ( num_to_read
<= 0 )
2436 { /* Not enough room in the buffer - grow it. */
2438 /* just a shorter name for the current buffer */
2439 YY_BUFFER_STATE b
= YY_CURRENT_BUFFER
;
2441 int yy_c_buf_p_offset
=
2442 (int) (yyg
->yy_c_buf_p
- b
->yy_ch_buf
);
2444 if ( b
->yy_is_our_buffer
)
2446 int new_size
= b
->yy_buf_size
* 2;
2448 if ( new_size
<= 0 )
2449 b
->yy_buf_size
+= b
->yy_buf_size
/ 8;
2451 b
->yy_buf_size
*= 2;
2453 b
->yy_ch_buf
= (char *)
2454 /* Include room in for 2 EOB chars. */
2455 config_realloc((void *) b
->yy_ch_buf
,b
->yy_buf_size
+ 2 ,yyscanner
);
2458 /* Can't grow it, we don't own it. */
2461 if ( ! b
->yy_ch_buf
)
2463 "fatal error - scanner input buffer overflow" );
2465 yyg
->yy_c_buf_p
= &b
->yy_ch_buf
[yy_c_buf_p_offset
];
2467 num_to_read
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
-
2472 if ( num_to_read
> YY_READ_BUF_SIZE
)
2473 num_to_read
= YY_READ_BUF_SIZE
;
2475 /* Read in more data. */
2476 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[number_to_move
]),
2477 yyg
->yy_n_chars
, (size_t) num_to_read
);
2479 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2482 if ( yyg
->yy_n_chars
== 0 )
2484 if ( number_to_move
== YY_MORE_ADJ
)
2486 ret_val
= EOB_ACT_END_OF_FILE
;
2487 config_restart(yyin
,yyscanner
);
2492 ret_val
= EOB_ACT_LAST_MATCH
;
2493 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
=
2494 YY_BUFFER_EOF_PENDING
;
2499 ret_val
= EOB_ACT_CONTINUE_SCAN
;
2501 if ((yy_size_t
) (yyg
->yy_n_chars
+ number_to_move
) > YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
) {
2502 /* Extend the array by 50%, plus the number we really need. */
2503 yy_size_t new_size
= yyg
->yy_n_chars
+ number_to_move
+ (yyg
->yy_n_chars
>> 1);
2504 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
= (char *) config_realloc((void *) YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
,new_size
,yyscanner
);
2505 if ( ! YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
)
2506 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2509 yyg
->yy_n_chars
+= number_to_move
;
2510 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] = YY_END_OF_BUFFER_CHAR
;
2511 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] = YY_END_OF_BUFFER_CHAR
;
2513 yyg
->yytext_ptr
= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[0];
2518 /* yy_get_previous_state - get the state just before the EOB char was reached */
2521 /* %not-for-header */
2523 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
)
2528 register yy_state_type yy_current_state
;
2529 register char *yy_cp
;
2530 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2532 /* %% [15.0] code to get the start state into yy_current_state goes here */
2533 yy_current_state
= yyg
->yy_start
;
2534 yy_current_state
+= YY_AT_BOL();
2536 for ( yy_cp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
; yy_cp
< yyg
->yy_c_buf_p
; ++yy_cp
)
2538 /* %% [16.0] code to find the next state goes here */
2539 register YY_CHAR yy_c
= (*yy_cp
? yy_ec
[YY_SC_TO_UI(*yy_cp
)] : 1);
2540 if ( yy_accept
[yy_current_state
] )
2542 yyg
->yy_last_accepting_state
= yy_current_state
;
2543 yyg
->yy_last_accepting_cpos
= yy_cp
;
2545 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2547 yy_current_state
= (int) yy_def
[yy_current_state
];
2548 if ( yy_current_state
>= 769 )
2549 yy_c
= yy_meta
[(unsigned int) yy_c
];
2551 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2554 return yy_current_state
;
2557 /* yy_try_NUL_trans - try to make a transition on the NUL character
2560 * next_state = yy_try_NUL_trans( current_state );
2563 static yy_state_type
yy_try_NUL_trans (yy_state_type yy_current_state
, yyscan_t yyscanner
)
2568 register int yy_is_jam
;
2569 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
; /* This var may be unused depending upon options. */
2570 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
2571 register char *yy_cp
= yyg
->yy_c_buf_p
;
2573 register YY_CHAR yy_c
= 1;
2574 if ( yy_accept
[yy_current_state
] )
2576 yyg
->yy_last_accepting_state
= yy_current_state
;
2577 yyg
->yy_last_accepting_cpos
= yy_cp
;
2579 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2581 yy_current_state
= (int) yy_def
[yy_current_state
];
2582 if ( yy_current_state
>= 769 )
2583 yy_c
= yy_meta
[(unsigned int) yy_c
];
2585 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2586 yy_is_jam
= (yy_current_state
== 768);
2588 return yy_is_jam
? 0 : yy_current_state
;
2598 static int yyinput (yyscan_t yyscanner
)
2600 static int input (yyscan_t yyscanner
)
2608 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2610 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2612 if ( *yyg
->yy_c_buf_p
== YY_END_OF_BUFFER_CHAR
)
2614 /* yy_c_buf_p now points to the character we want to return.
2615 * If this occurs *before* the EOB characters, then it's a
2616 * valid NUL; if not, then we've hit the end of the buffer.
2618 if ( yyg
->yy_c_buf_p
< &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
2619 /* This was really a NUL. */
2620 *yyg
->yy_c_buf_p
= '\0';
2623 { /* need more input */
2624 int offset
= yyg
->yy_c_buf_p
- yyg
->yytext_ptr
;
2627 switch ( yy_get_next_buffer( yyscanner
) )
2629 case EOB_ACT_LAST_MATCH
:
2630 /* This happens because yy_g_n_b()
2631 * sees that we've accumulated a
2632 * token and flags that we need to
2633 * try matching the token before
2634 * proceeding. But for input(),
2635 * there's no matching to consider.
2636 * So convert the EOB_ACT_LAST_MATCH
2637 * to EOB_ACT_END_OF_FILE.
2640 /* Reset buffer status. */
2641 config_restart(yyin
,yyscanner
);
2645 case EOB_ACT_END_OF_FILE
:
2647 if ( config_wrap(yyscanner
) )
2650 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
2653 return yyinput(yyscanner
);
2655 return input(yyscanner
);
2659 case EOB_ACT_CONTINUE_SCAN
:
2660 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ offset
;
2666 c
= *(unsigned char *) yyg
->yy_c_buf_p
; /* cast for 8-bit char's */
2667 *yyg
->yy_c_buf_p
= '\0'; /* preserve yytext */
2668 yyg
->yy_hold_char
= *++yyg
->yy_c_buf_p
;
2670 /* %% [19.0] update BOL and yylineno */
2671 YY_CURRENT_BUFFER_LVALUE
->yy_at_bol
= (c
== '\n');
2676 #endif /* ifndef YY_NO_INPUT */
2679 /** Immediately switch to a different input stream.
2680 * @param input_file A readable stream.
2681 * @param yyscanner The scanner object.
2682 * @note This function does not reset the start condition to @c INITIAL .
2685 void config_restart (FILE * input_file
, yyscan_t yyscanner
)
2690 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2692 if ( ! YY_CURRENT_BUFFER
){
2693 config_ensure_buffer_stack (yyscanner
);
2694 YY_CURRENT_BUFFER_LVALUE
=
2695 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
2698 config__init_buffer(YY_CURRENT_BUFFER
,input_file
,yyscanner
);
2699 config__load_buffer_state(yyscanner
);
2702 /** Switch to a different input buffer.
2703 * @param new_buffer The new input buffer.
2704 * @param yyscanner The scanner object.
2707 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
2712 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2714 /* TODO. We should be able to replace this entire function body
2716 * config_pop_buffer_state();
2717 * config_push_buffer_state(new_buffer);
2719 config_ensure_buffer_stack (yyscanner
);
2720 if ( YY_CURRENT_BUFFER
== new_buffer
)
2723 if ( YY_CURRENT_BUFFER
)
2725 /* Flush out information for old buffer. */
2726 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2727 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
2728 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2731 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
2732 config__load_buffer_state(yyscanner
);
2734 /* We don't actually know whether we did this switch during
2735 * EOF (config_wrap()) processing, but the only time this flag
2736 * is looked at is after config_wrap() is called, so it's safe
2737 * to go ahead and always set it.
2739 yyg
->yy_did_buffer_switch_on_eof
= 1;
2743 static void config__load_buffer_state (yyscan_t yyscanner
)
2748 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2749 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
2750 yyg
->yytext_ptr
= yyg
->yy_c_buf_p
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
;
2751 yyin
= YY_CURRENT_BUFFER_LVALUE
->yy_input_file
;
2752 yyg
->yy_hold_char
= *yyg
->yy_c_buf_p
;
2755 /** Allocate and initialize an input buffer state.
2756 * @param file A readable stream.
2757 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2758 * @param yyscanner The scanner object.
2759 * @return the allocated buffer state.
2762 YY_BUFFER_STATE
config__create_buffer (FILE * file
, int size
, yyscan_t yyscanner
)
2769 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
2771 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2773 b
->yy_buf_size
= size
;
2775 /* yy_ch_buf has to be 2 characters longer than the size given because
2776 * we need to put in 2 end-of-buffer characters.
2778 b
->yy_ch_buf
= (char *) config_alloc(b
->yy_buf_size
+ 2 ,yyscanner
);
2779 if ( ! b
->yy_ch_buf
)
2780 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2782 b
->yy_is_our_buffer
= 1;
2784 config__init_buffer(b
,file
,yyscanner
);
2789 /** Destroy the buffer.
2790 * @param b a buffer created with config__create_buffer()
2791 * @param yyscanner The scanner object.
2794 void config__delete_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2799 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2804 if ( b
== YY_CURRENT_BUFFER
) /* Not sure if we should pop here. */
2805 YY_CURRENT_BUFFER_LVALUE
= (YY_BUFFER_STATE
) 0;
2807 if ( b
->yy_is_our_buffer
)
2808 config_free((void *) b
->yy_ch_buf
,yyscanner
);
2810 config_free((void *) b
,yyscanner
);
2816 extern int isatty (int );
2817 #endif /* __cplusplus */
2824 /* Initializes or reinitializes a buffer.
2825 * This function is sometimes called more than once on the same buffer,
2826 * such as during a config_restart() or at EOF.
2829 static void config__init_buffer (YY_BUFFER_STATE b
, FILE * file
, yyscan_t yyscanner
)
2836 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2838 config__flush_buffer(b
,yyscanner
);
2840 b
->yy_input_file
= file
;
2841 b
->yy_fill_buffer
= 1;
2843 /* If b is the current buffer, then config__init_buffer was _probably_
2844 * called from config_restart() or through yy_get_next_buffer.
2845 * In that case, we don't want to reset the lineno or column.
2847 if (b
!= YY_CURRENT_BUFFER
){
2848 b
->yy_bs_lineno
= 1;
2849 b
->yy_bs_column
= 0;
2854 b
->yy_is_interactive
= file
? (isatty( fileno(file
) ) > 0) : 0;
2862 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2863 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2864 * @param yyscanner The scanner object.
2867 void config__flush_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2872 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2878 /* We always need two end-of-buffer characters. The first causes
2879 * a transition to the end-of-buffer state. The second causes
2880 * a jam in that state.
2882 b
->yy_ch_buf
[0] = YY_END_OF_BUFFER_CHAR
;
2883 b
->yy_ch_buf
[1] = YY_END_OF_BUFFER_CHAR
;
2885 b
->yy_buf_pos
= &b
->yy_ch_buf
[0];
2888 b
->yy_buffer_status
= YY_BUFFER_NEW
;
2890 if ( b
== YY_CURRENT_BUFFER
)
2891 config__load_buffer_state(yyscanner
);
2895 /** Pushes the new state onto the stack. The new state becomes
2896 * the current state. This function will allocate the stack
2898 * @param new_buffer The new state.
2899 * @param yyscanner The scanner object.
2902 void config_push_buffer_state (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
2907 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2908 if (new_buffer
== NULL
)
2911 config_ensure_buffer_stack(yyscanner
);
2913 /* This block is copied from config__switch_to_buffer. */
2914 if ( YY_CURRENT_BUFFER
)
2916 /* Flush out information for old buffer. */
2917 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2918 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
2919 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2922 /* Only push if top exists. Otherwise, replace top. */
2923 if (YY_CURRENT_BUFFER
)
2924 yyg
->yy_buffer_stack_top
++;
2925 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
2927 /* copied from config__switch_to_buffer. */
2928 config__load_buffer_state(yyscanner
);
2929 yyg
->yy_did_buffer_switch_on_eof
= 1;
2934 /** Removes and deletes the top of the stack, if present.
2935 * The next element becomes the new top.
2936 * @param yyscanner The scanner object.
2939 void config_pop_buffer_state (yyscan_t yyscanner
)
2944 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2945 if (!YY_CURRENT_BUFFER
)
2948 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
2949 YY_CURRENT_BUFFER_LVALUE
= NULL
;
2950 if (yyg
->yy_buffer_stack_top
> 0)
2951 --yyg
->yy_buffer_stack_top
;
2953 if (YY_CURRENT_BUFFER
) {
2954 config__load_buffer_state(yyscanner
);
2955 yyg
->yy_did_buffer_switch_on_eof
= 1;
2961 /* Allocates the stack if it does not exist.
2962 * Guarantees space for at least one push.
2965 static void config_ensure_buffer_stack (yyscan_t yyscanner
)
2971 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2973 if (!yyg
->yy_buffer_stack
) {
2975 /* First allocation is just for 2 elements, since we don't know if this
2976 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2977 * immediate realloc on the next call.
2980 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_alloc
2981 (num_to_alloc
* sizeof(struct yy_buffer_state
*)
2983 if ( ! yyg
->yy_buffer_stack
)
2984 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
2986 memset(yyg
->yy_buffer_stack
, 0, num_to_alloc
* sizeof(struct yy_buffer_state
*));
2988 yyg
->yy_buffer_stack_max
= num_to_alloc
;
2989 yyg
->yy_buffer_stack_top
= 0;
2993 if (yyg
->yy_buffer_stack_top
>= (yyg
->yy_buffer_stack_max
) - 1){
2995 /* Increase the buffer to prepare for a possible push. */
2996 int grow_size
= 8 /* arbitrary grow size */;
2998 num_to_alloc
= yyg
->yy_buffer_stack_max
+ grow_size
;
2999 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_realloc
3000 (yyg
->yy_buffer_stack
,
3001 num_to_alloc
* sizeof(struct yy_buffer_state
*)
3003 if ( ! yyg
->yy_buffer_stack
)
3004 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
3006 /* zero only the new slots.*/
3007 memset(yyg
->yy_buffer_stack
+ yyg
->yy_buffer_stack_max
, 0, grow_size
* sizeof(struct yy_buffer_state
*));
3008 yyg
->yy_buffer_stack_max
= num_to_alloc
;
3014 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3015 * @param base the character buffer
3016 * @param size the size in bytes of the character buffer
3017 * @param yyscanner The scanner object.
3018 * @return the newly allocated buffer state object.
3020 YY_BUFFER_STATE
config__scan_buffer (char * base
, yy_size_t size
, yyscan_t yyscanner
)
3025 base
[size
-2] != YY_END_OF_BUFFER_CHAR
||
3026 base
[size
-1] != YY_END_OF_BUFFER_CHAR
)
3027 /* They forgot to leave room for the EOB's. */
3030 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
3032 YY_FATAL_ERROR( "out of dynamic memory in config__scan_buffer()" );
3034 b
->yy_buf_size
= size
- 2; /* "- 2" to take care of EOB's */
3035 b
->yy_buf_pos
= b
->yy_ch_buf
= base
;
3036 b
->yy_is_our_buffer
= 0;
3037 b
->yy_input_file
= 0;
3038 b
->yy_n_chars
= b
->yy_buf_size
;
3039 b
->yy_is_interactive
= 0;
3041 b
->yy_fill_buffer
= 0;
3042 b
->yy_buffer_status
= YY_BUFFER_NEW
;
3044 config__switch_to_buffer(b
,yyscanner
);
3051 /** Setup the input buffer state to scan a string. The next call to config_lex() will
3052 * scan from a @e copy of @a str.
3053 * @param yystr a NUL-terminated string to scan
3054 * @param yyscanner The scanner object.
3055 * @return the newly allocated buffer state object.
3056 * @note If you want to scan bytes that may contain NUL values, then use
3057 * config__scan_bytes() instead.
3059 YY_BUFFER_STATE
config__scan_string (yyconst
char * yystr
, yyscan_t yyscanner
)
3062 return config__scan_bytes(yystr
,strlen(yystr
) ,yyscanner
);
3067 /** Setup the input buffer state to scan the given bytes. The next call to config_lex() will
3068 * scan from a @e copy of @a bytes.
3069 * @param bytes the byte buffer to scan
3070 * @param len the number of bytes in the buffer pointed to by @a bytes.
3071 * @param yyscanner The scanner object.
3072 * @return the newly allocated buffer state object.
3074 YY_BUFFER_STATE
config__scan_bytes (yyconst
char * yybytes
, int _yybytes_len
, yyscan_t yyscanner
)
3081 /* Get memory for full buffer, including space for trailing EOB's. */
3082 n
= _yybytes_len
+ 2;
3083 buf
= (char *) config_alloc(n
,yyscanner
);
3085 YY_FATAL_ERROR( "out of dynamic memory in config__scan_bytes()" );
3087 for ( i
= 0; i
< _yybytes_len
; ++i
)
3088 buf
[i
] = yybytes
[i
];
3090 buf
[_yybytes_len
] = buf
[_yybytes_len
+1] = YY_END_OF_BUFFER_CHAR
;
3092 b
= config__scan_buffer(buf
,n
,yyscanner
);
3094 YY_FATAL_ERROR( "bad buffer in config__scan_bytes()" );
3096 /* It's okay to grow etc. this buffer, and we should throw it
3097 * away when we're done.
3099 b
->yy_is_our_buffer
= 1;
3105 #ifndef YY_EXIT_FAILURE
3106 #define YY_EXIT_FAILURE 2
3110 static void yy_fatal_error (yyconst
char* msg
, yyscan_t yyscanner
)
3112 (void) fprintf( stderr
, "%s\n", msg
);
3113 exit( YY_EXIT_FAILURE
);
3119 /* Redefine yyless() so it works in section 3 code. */
3125 /* Undo effects of setting up yytext. */ \
3126 int yyless_macro_arg = (n); \
3127 YY_LESS_LINENO(yyless_macro_arg);\
3128 yytext[yyleng] = yyg->yy_hold_char; \
3129 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
3130 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
3131 *yyg->yy_c_buf_p = '\0'; \
3132 yyleng = yyless_macro_arg; \
3136 /* Accessor methods (get/set functions) to struct members. */
3141 /** Get the user-defined data for this scanner.
3142 * @param yyscanner The scanner object.
3144 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
)
3146 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3152 /** Get the current line number.
3153 * @param yyscanner The scanner object.
3155 int config_get_lineno (yyscan_t yyscanner
)
3157 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3159 if (! YY_CURRENT_BUFFER
)
3165 /** Get the current column number.
3166 * @param yyscanner The scanner object.
3168 int config_get_column (yyscan_t yyscanner
)
3170 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3172 if (! YY_CURRENT_BUFFER
)
3178 /** Get the input stream.
3179 * @param yyscanner The scanner object.
3181 FILE *config_get_in (yyscan_t yyscanner
)
3183 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3187 /** Get the output stream.
3188 * @param yyscanner The scanner object.
3190 FILE *config_get_out (yyscan_t yyscanner
)
3192 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3196 /** Get the length of the current token.
3197 * @param yyscanner The scanner object.
3199 int config_get_leng (yyscan_t yyscanner
)
3201 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3205 /** Get the current token.
3206 * @param yyscanner The scanner object.
3209 char *config_get_text (yyscan_t yyscanner
)
3211 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3217 /** Set the user-defined data. This data is never touched by the scanner.
3218 * @param user_defined The data to be associated with this scanner.
3219 * @param yyscanner The scanner object.
3221 void config_set_extra (YY_EXTRA_TYPE user_defined
, yyscan_t yyscanner
)
3223 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3224 yyextra
= user_defined
;
3229 /** Set the current line number.
3230 * @param line_number
3231 * @param yyscanner The scanner object.
3233 void config_set_lineno (int line_number
, yyscan_t yyscanner
)
3235 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3237 /* lineno is only valid if an input buffer exists. */
3238 if (! YY_CURRENT_BUFFER
)
3239 yy_fatal_error( "config_set_lineno called with no buffer" , yyscanner
);
3241 yylineno
= line_number
;
3244 /** Set the current column.
3245 * @param line_number
3246 * @param yyscanner The scanner object.
3248 void config_set_column (int column_no
, yyscan_t yyscanner
)
3250 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3252 /* column is only valid if an input buffer exists. */
3253 if (! YY_CURRENT_BUFFER
)
3254 yy_fatal_error( "config_set_column called with no buffer" , yyscanner
);
3256 yycolumn
= column_no
;
3259 /** Set the input stream. This does not discard the current
3261 * @param in_str A readable stream.
3262 * @param yyscanner The scanner object.
3263 * @see config__switch_to_buffer
3265 void config_set_in (FILE * in_str
, yyscan_t yyscanner
)
3267 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3271 void config_set_out (FILE * out_str
, yyscan_t yyscanner
)
3273 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3277 int config_get_debug (yyscan_t yyscanner
)
3279 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3280 return yy_flex_debug
;
3283 void config_set_debug (int bdebug
, yyscan_t yyscanner
)
3285 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3286 yy_flex_debug
= bdebug
;
3292 /* Accessor methods for yylval and yylloc */
3294 /* %if-bison-bridge */
3296 YYSTYPE
* config_get_lval (yyscan_t yyscanner
)
3298 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3302 void config_set_lval (YYSTYPE
* yylval_param
, yyscan_t yyscanner
)
3304 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3305 yylval
= yylval_param
;
3310 /* User-visible API */
3312 /* config_lex_init is special because it creates the scanner itself, so it is
3313 * the ONLY reentrant function that doesn't take the scanner as the last argument.
3314 * That's why we explicitly handle the declaration, instead of using our macros.
3317 int config_lex_init(yyscan_t
* ptr_yy_globals
)
3320 if (ptr_yy_globals
== NULL
){
3325 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), NULL
);
3327 if (*ptr_yy_globals
== NULL
){
3332 /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
3333 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
3335 return yy_init_globals ( *ptr_yy_globals
);
3338 /* config_lex_init_extra has the same functionality as config_lex_init, but follows the
3339 * convention of taking the scanner as the last argument. Note however, that
3340 * this is a *pointer* to a scanner, as it will be allocated by this call (and
3341 * is the reason, too, why this function also must handle its own declaration).
3342 * The user defined value in the first argument will be available to config_alloc in
3343 * the yyextra field.
3346 int config_lex_init_extra(YY_EXTRA_TYPE yy_user_defined
,yyscan_t
* ptr_yy_globals
)
3349 struct yyguts_t dummy_yyguts
;
3351 config_set_extra (yy_user_defined
, &dummy_yyguts
);
3353 if (ptr_yy_globals
== NULL
){
3358 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), &dummy_yyguts
);
3360 if (*ptr_yy_globals
== NULL
){
3365 /* By setting to 0xAA, we expose bugs in
3366 yy_init_globals. Leave at 0x00 for releases. */
3367 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
3369 config_set_extra (yy_user_defined
, *ptr_yy_globals
);
3371 return yy_init_globals ( *ptr_yy_globals
);
3374 /* %endif if-c-only */
3377 static int yy_init_globals (yyscan_t yyscanner
)
3379 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3380 /* Initialization is the same as for the non-reentrant scanner.
3381 * This function is called from config_lex_destroy(), so don't allocate here.
3384 yyg
->yy_buffer_stack
= 0;
3385 yyg
->yy_buffer_stack_top
= 0;
3386 yyg
->yy_buffer_stack_max
= 0;
3387 yyg
->yy_c_buf_p
= (char *) 0;
3391 yyg
->yy_start_stack_ptr
= 0;
3392 yyg
->yy_start_stack_depth
= 0;
3393 yyg
->yy_start_stack
= NULL
;
3395 /* Defined in main.c */
3404 /* For future reference: Set errno on error, since we are called by
3411 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
3412 /* config_lex_destroy is for both reentrant and non-reentrant scanners. */
3413 int config_lex_destroy (yyscan_t yyscanner
)
3415 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3417 /* Pop the buffer stack, destroying each element. */
3418 while(YY_CURRENT_BUFFER
){
3419 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
3420 YY_CURRENT_BUFFER_LVALUE
= NULL
;
3421 config_pop_buffer_state(yyscanner
);
3424 /* Destroy the stack itself. */
3425 config_free(yyg
->yy_buffer_stack
,yyscanner
);
3426 yyg
->yy_buffer_stack
= NULL
;
3428 /* Destroy the start condition stack. */
3429 config_free(yyg
->yy_start_stack
,yyscanner
);
3430 yyg
->yy_start_stack
= NULL
;
3432 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3433 * config_lex() is called, initialization will occur. */
3434 yy_init_globals( yyscanner
);
3437 /* Destroy the main struct (reentrant only). */
3438 config_free ( yyscanner
, yyscanner
);
3446 * Internal utility routines.
3450 static void yy_flex_strncpy (char* s1
, yyconst
char * s2
, int n
, yyscan_t yyscanner
)
3453 for ( i
= 0; i
< n
; ++i
)
3458 #ifdef YY_NEED_STRLEN
3459 static int yy_flex_strlen (yyconst
char * s
, yyscan_t yyscanner
)
3462 for ( n
= 0; s
[n
]; ++n
)
3469 void *config_alloc (yy_size_t size
, yyscan_t yyscanner
)
3471 return (void *) malloc( size
);
3474 void *config_realloc (void * ptr
, yy_size_t size
, yyscan_t yyscanner
)
3476 /* The cast to (char *) in the following accommodates both
3477 * implementations that use char* generic pointers, and those
3478 * that use void* generic pointers. It works with the latter
3479 * because both ANSI C and C++ allow castless assignment from
3480 * any pointer type to void*, and deal with argument conversions
3481 * as though doing an assignment.
3483 return (void *) realloc( (char *) ptr
, size
);
3486 void config_free (void * ptr
, yyscan_t yyscanner
)
3488 free( (char *) ptr
); /* see config_realloc() for (char *) cast */
3491 /* %if-tables-serialization definitions */
3492 /* %define-yytables The name for this specific scanner's tables. */
3493 #define YYTABLES_NAME "yytables"
3496 /* %ok-for-header */
3498 #line 220 "libmemcached/options/scanner.l"
3502 void Context::init_scanner()
3504 config_lex_init(&scanner
);
3505 config_set_extra(this,scanner
);
3508 void Context::destroy_scanner()
3510 config_lex_destroy(scanner
);