1 #line 2 "libmemcached/options/scanner.cc"
2 #line 22 "libmemcached/options/scanner.l"
4 #pragma GCC diagnostic ignored "-Wold-style-cast"
5 #pragma GCC diagnostic ignored "-Wunused-parameter"
6 #pragma GCC diagnostic ignored "-fpermissive"
8 #include <libmemcached/options/context.h>
9 #include <libmemcached/options/parser.h>
10 #include <libmemcached/options/string.h>
11 #include <libmemcached/options/symbol.h>
13 #define YY_EXTRA_TYPE Context*
18 #line 19 "libmemcached/options/scanner.cc"
20 #define YY_INT_ALIGNED short int
22 /* A lexical scanner generated by flex */
27 /* %if-not-reentrant */
33 #define YY_FLEX_MAJOR_VERSION 2
34 #define YY_FLEX_MINOR_VERSION 5
35 #define YY_FLEX_SUBMINOR_VERSION 35
36 #if YY_FLEX_SUBMINOR_VERSION > 0
51 /* First, we deal with platform-specific or compiler-specific issues. */
53 /* begin standard C headers. */
61 /* %if-tables-serialization */
63 /* end standard C headers. */
66 /* flex integer type definitions */
71 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
73 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
75 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
76 * if you want the limit (max/min) macros for int types.
78 #ifndef __STDC_LIMIT_MACROS
79 #define __STDC_LIMIT_MACROS 1
83 typedef int8_t flex_int8_t
;
84 typedef uint8_t flex_uint8_t
;
85 typedef int16_t flex_int16_t
;
86 typedef uint16_t flex_uint16_t
;
87 typedef int32_t flex_int32_t
;
88 typedef uint32_t flex_uint32_t
;
90 typedef signed char flex_int8_t
;
91 typedef short int flex_int16_t
;
92 typedef int flex_int32_t
;
93 typedef unsigned char flex_uint8_t
;
94 typedef unsigned short int flex_uint16_t
;
95 typedef unsigned int flex_uint32_t
;
98 /* Limits of integral types. */
100 #define INT8_MIN (-128)
103 #define INT16_MIN (-32767-1)
106 #define INT32_MIN (-2147483647-1)
109 #define INT8_MAX (127)
112 #define INT16_MAX (32767)
115 #define INT32_MAX (2147483647)
118 #define UINT8_MAX (255U)
121 #define UINT16_MAX (65535U)
124 #define UINT32_MAX (4294967295U)
127 #endif /* ! FLEXINT_H */
136 /* The "const" storage-class-modifier is valid. */
139 #else /* ! __cplusplus */
141 /* C99 requires __STDC__ to be defined as 1. */
142 #if defined (__STDC__)
146 #endif /* defined (__STDC__) */
147 #endif /* ! __cplusplus */
150 #define yyconst const
155 /* %not-for-header */
157 /* Returned upon end-of-file. */
161 /* %not-for-header */
163 /* Promotes a possibly negative, possibly signed char to an unsigned
164 * integer for use as an array index. If the signed char is negative,
165 * we want to instead treat it as an 8-bit unsigned char, hence the
168 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
173 /* An opaque pointer. */
174 #ifndef YY_TYPEDEF_YY_SCANNER_T
175 #define YY_TYPEDEF_YY_SCANNER_T
176 typedef void* yyscan_t
;
179 /* For convenience, these vars (plus the bison vars far below)
180 are macros in the reentrant scanner. */
181 #define yyin yyg->yyin_r
182 #define yyout yyg->yyout_r
183 #define yyextra yyg->yyextra_r
184 #define yyleng yyg->yyleng_r
185 #define yytext yyg->yytext_r
186 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
187 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
188 #define yy_flex_debug yyg->yy_flex_debug_r
192 /* %if-not-reentrant */
195 /* Enter a start condition. This macro really ought to take a parameter,
196 * but we do it the disgusting crufty way forced on us by the ()-less
197 * definition of BEGIN.
199 #define BEGIN yyg->yy_start = 1 + 2 *
201 /* Translate the current start state into a value that can be later handed
202 * to BEGIN to return to the state. The YYSTATE alias is for lex
205 #define YY_START ((yyg->yy_start - 1) / 2)
206 #define YYSTATE YY_START
208 /* Action number for EOF rule of a given start state. */
209 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
211 /* Special action meaning "start processing a new file". */
212 #define YY_NEW_FILE config_restart(yyin ,yyscanner )
214 #define YY_END_OF_BUFFER_CHAR 0
216 /* Size of default input buffer. */
218 #define YY_BUF_SIZE 16384
221 /* The state buf must be large enough to hold one state per character in the main buffer.
223 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
225 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
226 #define YY_TYPEDEF_YY_BUFFER_STATE
227 typedef struct yy_buffer_state
*YY_BUFFER_STATE
;
230 /* %if-not-reentrant */
234 /* %if-not-reentrant */
238 #define EOB_ACT_CONTINUE_SCAN 0
239 #define EOB_ACT_END_OF_FILE 1
240 #define EOB_ACT_LAST_MATCH 2
242 #define YY_LESS_LINENO(n)
244 /* Return all but the first "n" matched characters back to the input stream. */
248 /* Undo effects of setting up yytext. */ \
249 int yyless_macro_arg = (n); \
250 YY_LESS_LINENO(yyless_macro_arg);\
251 *yy_cp = yyg->yy_hold_char; \
252 YY_RESTORE_YY_MORE_OFFSET \
253 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
254 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
258 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
260 #ifndef YY_TYPEDEF_YY_SIZE_T
261 #define YY_TYPEDEF_YY_SIZE_T
262 typedef size_t yy_size_t
;
265 #ifndef YY_STRUCT_YY_BUFFER_STATE
266 #define YY_STRUCT_YY_BUFFER_STATE
267 struct yy_buffer_state
276 char *yy_ch_buf
; /* input buffer */
277 char *yy_buf_pos
; /* current position in input buffer */
279 /* Size of input buffer in bytes, not including room for EOB
282 yy_size_t yy_buf_size
;
284 /* Number of characters read into yy_ch_buf, not including EOB
289 /* Whether we "own" the buffer - i.e., we know we created it,
290 * and can realloc() it to grow it, and should free() it to
293 int yy_is_our_buffer
;
295 /* Whether this is an "interactive" input source; if so, and
296 * if we're using stdio for input, then we want to use getc()
297 * instead of fread(), to make sure we stop fetching input after
300 int yy_is_interactive
;
302 /* Whether we're considered to be at the beginning of a line.
303 * If so, '^' rules will be active on the next match, otherwise
308 int yy_bs_lineno
; /**< The line count. */
309 int yy_bs_column
; /**< The column count. */
311 /* Whether to try to fill the input buffer when we reach the
316 int yy_buffer_status
;
318 #define YY_BUFFER_NEW 0
319 #define YY_BUFFER_NORMAL 1
320 /* When an EOF's been seen but there's still some text to process
321 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
322 * shouldn't try reading from the input source any more. We might
323 * still have a bunch of tokens to match, though, because of
324 * possible backing-up.
326 * When we actually see the EOF, we change the status to "new"
327 * (via config_restart()), so that the user can continue scanning by
328 * just pointing yyin at a new input file.
330 #define YY_BUFFER_EOF_PENDING 2
333 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
335 /* %if-c-only Standard (non-C++) definition */
336 /* %not-for-header */
338 /* %if-not-reentrant */
344 /* We provide macros for accessing buffer states in case in the
345 * future we want to put the buffer states in a more general
348 * Returns the top of the stack, or NULL.
350 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
351 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
354 /* Same as previous macro, but useful when we know that the buffer stack is not
355 * NULL or when we need an lvalue. For internal use only.
357 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
359 /* %if-c-only Standard (non-C++) definition */
361 /* %if-not-reentrant */
362 /* %not-for-header */
368 void config_restart (FILE *input_file
,yyscan_t yyscanner
);
369 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
370 YY_BUFFER_STATE
config__create_buffer (FILE *file
,int size
,yyscan_t yyscanner
);
371 void config__delete_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
372 void config__flush_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
373 void config_push_buffer_state (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
374 void config_pop_buffer_state (yyscan_t yyscanner
);
376 static void config_ensure_buffer_stack (yyscan_t yyscanner
);
377 static void config__load_buffer_state (yyscan_t yyscanner
);
378 static void config__init_buffer (YY_BUFFER_STATE b
,FILE *file
,yyscan_t yyscanner
);
380 #define YY_FLUSH_BUFFER config__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
382 YY_BUFFER_STATE
config__scan_buffer (char *base
,yy_size_t size
,yyscan_t yyscanner
);
383 YY_BUFFER_STATE
config__scan_string (yyconst
char *yy_str
,yyscan_t yyscanner
);
384 YY_BUFFER_STATE
config__scan_bytes (yyconst
char *bytes
,int len
,yyscan_t yyscanner
);
388 void *config_alloc (yy_size_t
,yyscan_t yyscanner
);
389 void *config_realloc (void *,yy_size_t
,yyscan_t yyscanner
);
390 void config_free (void * ,yyscan_t yyscanner
);
392 #define yy_new_buffer config__create_buffer
394 #define yy_set_interactive(is_interactive) \
396 if ( ! YY_CURRENT_BUFFER ){ \
397 config_ensure_buffer_stack (yyscanner); \
398 YY_CURRENT_BUFFER_LVALUE = \
399 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
401 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
404 #define yy_set_bol(at_bol) \
406 if ( ! YY_CURRENT_BUFFER ){\
407 config_ensure_buffer_stack (yyscanner); \
408 YY_CURRENT_BUFFER_LVALUE = \
409 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
411 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
414 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
416 /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
417 /* Begin user sect3 */
419 #define config_wrap(n) 1
420 #define YY_SKIP_YYWRAP
424 typedef unsigned char YY_CHAR
;
426 typedef int yy_state_type
;
428 #define yytext_ptr yytext_r
430 /* %if-c-only Standard (non-C++) definition */
432 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
);
433 static yy_state_type
yy_try_NUL_trans (yy_state_type current_state
,yyscan_t yyscanner
);
434 static int yy_get_next_buffer (yyscan_t yyscanner
);
435 static void yy_fatal_error (yyconst
char msg
[] ,yyscan_t yyscanner
);
439 /* Done after the current pattern has been matched and before the
440 * corresponding action - sets up yytext.
442 #define YY_DO_BEFORE_ACTION \
443 yyg->yytext_ptr = yy_bp; \
444 /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
445 yyleng = (size_t) (yy_cp - yy_bp); \
446 yyg->yy_hold_char = *yy_cp; \
448 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
449 yyg->yy_c_buf_p = yy_cp;
451 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
452 #define YY_NUM_RULES 96
453 #define YY_END_OF_BUFFER 97
454 /* This struct is not used in this scanner,
455 but its presence is necessary. */
458 flex_int32_t yy_verify
;
461 static yyconst flex_int16_t yy_accept
[811] =
463 0, 0, 97, 95, 3, 3, 1, 95, 95, 2,
464 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
465 93, 93, 95, 0, 94, 76, 0, 2, 93, 0,
466 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
467 93, 93, 93, 93, 93, 93, 93, 93, 0, 4,
468 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
469 76, 76, 76, 76, 76, 0, 0, 0, 2, 89,
470 0, 93, 81, 93, 72, 93, 93, 93, 93, 93,
471 93, 80, 93, 93, 93, 93, 93, 93, 76, 76,
472 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
474 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
475 76, 90, 90, 0, 0, 0, 2, 93, 93, 93,
476 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
477 74, 76, 76, 76, 76, 76, 76, 76, 0, 0,
478 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
479 76, 76, 76, 76, 76, 76, 0, 0, 93, 70,
480 73, 75, 93, 0, 86, 93, 93, 93, 93, 93,
481 69, 93, 76, 76, 76, 76, 76, 76, 76, 76,
482 0, 0, 0, 0, 0, 0, 76, 76, 76, 76,
483 76, 76, 0, 0, 76, 76, 0, 0, 76, 76,
485 76, 0, 0, 0, 76, 0, 76, 0, 0, 93,
486 0, 0, 0, 93, 93, 78, 87, 79, 93, 0,
487 0, 76, 76, 76, 76, 76, 76, 0, 22, 0,
488 0, 0, 0, 0, 0, 0, 76, 76, 76, 0,
489 0, 76, 76, 0, 0, 76, 76, 0, 0, 76,
490 0, 0, 76, 0, 0, 0, 0, 0, 0, 0,
491 0, 76, 92, 0, 93, 0, 0, 84, 82, 68,
492 88, 71, 0, 0, 76, 76, 0, 0, 76, 76,
493 76, 0, 0, 0, 0, 0, 0, 0, 0, 76,
494 76, 76, 0, 0, 76, 76, 0, 0, 0, 0,
496 76, 0, 0, 76, 0, 0, 76, 0, 0, 0,
497 0, 0, 0, 0, 0, 76, 92, 91, 93, 85,
498 83, 0, 0, 0, 0, 0, 0, 0, 0, 76,
499 76, 76, 0, 0, 0, 0, 0, 0, 0, 0,
500 0, 0, 33, 0, 0, 0, 0, 0, 0, 76,
501 0, 0, 0, 0, 0, 5, 76, 0, 0, 0,
502 0, 0, 0, 0, 76, 0, 0, 0, 0, 65,
503 0, 0, 64, 0, 0, 92, 93, 0, 0, 0,
504 0, 0, 0, 0, 0, 76, 0, 0, 76, 0,
505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
507 0, 0, 0, 0, 0, 76, 0, 0, 0, 0,
508 0, 6, 0, 0, 0, 0, 0, 0, 0, 0,
509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
510 0, 77, 0, 0, 0, 0, 0, 0, 0, 0,
511 76, 0, 0, 76, 0, 0, 0, 0, 0, 0,
512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
513 76, 0, 0, 0, 0, 0, 0, 0, 0, 0,
514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
515 0, 0, 0, 63, 62, 0, 0, 0, 0, 0,
516 0, 0, 0, 0, 0, 0, 0, 0, 0, 76,
518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
521 53, 52, 0, 0, 0, 0, 0, 0, 0, 0,
522 8, 7, 0, 0, 0, 0, 0, 0, 0, 0,
523 0, 0, 0, 0, 76, 0, 0, 0, 0, 0,
524 0, 0, 0, 0, 0, 0, 0, 0, 0, 66,
525 67, 0, 0, 0, 0, 0, 0, 0, 0, 0,
526 0, 0, 0, 0, 0, 55, 54, 0, 0, 57,
527 0, 0, 56, 0, 0, 0, 0, 0, 0, 0,
529 0, 0, 0, 0, 0, 76, 0, 0, 0, 0,
530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
531 0, 0, 41, 40, 0, 0, 0, 0, 47, 46,
532 0, 0, 0, 0, 0, 61, 0, 60, 0, 0,
533 0, 0, 0, 0, 16, 15, 0, 0, 0, 0,
534 21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
535 0, 0, 0, 37, 36, 0, 0, 0, 0, 0,
536 0, 0, 0, 0, 0, 59, 58, 0, 0, 0,
537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
540 0, 43, 42, 0, 0, 0, 0, 0, 0, 0,
541 0, 12, 11, 14, 13, 18, 17, 0, 0, 0,
542 0, 0, 0, 0, 0, 0, 0, 32, 31, 0,
543 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
544 9, 20, 19, 0, 0, 0, 28, 0, 0, 27,
545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
546 0, 0, 0, 0, 30, 0, 29, 0, 0, 0,
547 0, 0, 0, 49, 51, 48, 50, 0, 0, 0,
548 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,
549 25, 35, 34, 0, 0, 0, 0, 24, 23, 0,
551 0, 0, 0, 0, 0, 45, 44, 39, 38, 0
554 static yyconst flex_int32_t yy_ec
[256] =
556 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
557 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
558 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
559 1, 4, 1, 5, 6, 1, 1, 1, 1, 1,
560 1, 1, 1, 7, 8, 9, 1, 10, 11, 12,
561 13, 14, 15, 16, 10, 10, 10, 17, 1, 1,
562 18, 1, 1, 1, 19, 20, 21, 22, 23, 24,
563 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
564 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
565 1, 1, 1, 1, 45, 1, 46, 47, 48, 49,
567 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
568 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
569 70, 71, 1, 1, 1, 1, 1, 1, 1, 1,
570 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
571 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
572 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
573 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
574 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
575 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
576 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
578 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
579 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
580 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
581 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
582 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
586 static yyconst flex_int32_t yy_meta
[72] =
588 1, 1, 2, 1, 1, 1, 1, 1, 3, 3,
589 3, 3, 3, 3, 3, 3, 1, 1, 3, 3,
590 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
591 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
592 3, 3, 3, 3, 1, 3, 3, 3, 3, 3,
593 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
594 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
598 static yyconst flex_int16_t yy_base
[817] =
600 0, 949, 919, 2202, 2202, 2202, 2202, 906, 902, 63,
601 71, 79, 73, 65, 81, 66, 72, 114, 112, 130,
602 123, 119, 906, 900, 898, 184, 247, 255, 121, 263,
603 129, 263, 264, 269, 265, 271, 273, 275, 320, 322,
604 327, 331, 332, 333, 340, 371, 380, 381, 899, 2202,
605 429, 77, 379, 382, 131, 141, 169, 260, 345, 258,
606 441, 447, 272, 276, 329, 489, 505, 513, 522, 2202,
607 530, 530, 421, 532, 536, 537, 541, 570, 585, 590,
608 595, 376, 605, 596, 640, 644, 646, 652, 324, 343,
609 386, 398, 393, 389, 395, 463, 510, 516, 524, 526,
611 534, 527, 521, 524, 528, 587, 589, 581, 582, 596,
612 603, 707, 715, 724, 732, 740, 749, 749, 750, 751,
613 755, 645, 763, 762, 800, 802, 804, 812, 813, 833,
614 822, 627, 651, 648, 648, 749, 645, 658, 848, 860,
615 751, 754, 773, 777, 820, 825, 464, 821, 821, 465,
616 852, 848, 853, 466, 884, 863, 912, 921, 921, 923,
617 927, 928, 929, 94, 933, 977, 965, 983, 978, 987,
618 998, 1000, 572, 876, 892, 918, 916, 925, 913, 1004,
619 908, 929, 916, 960, 982, 971, 990, 993, 1016, 761,
620 1015, 1011, 1013, 1014, 1010, 1032, 1018, 1019, 1036, 786,
622 1029, 1035, 1036, 1031, 964, 1033, 1049, 1092, 1100, 1060,
623 105, 889, 886, 1101, 1102, 1100, 1109, 1110, 1111, 1099,
624 1106, 1087, 1095, 1132, 1107, 1120, 1125, 1112, 2202, 1113,
625 1117, 1124, 1151, 1140, 1140, 1159, 1166, 1156, 1151, 1150,
626 1151, 1148, 1160, 1165, 1166, 1187, 1160, 1170, 1171, 1161,
627 1174, 1175, 1166, 1181, 1173, 1184, 1175, 1187, 1199, 1200,
628 1208, 1194, 1229, 1256, 1256, 887, 884, 2202, 2202, 1241,
629 1242, 1263, 1226, 1227, 1239, 1242, 1226, 1231, 1224, 1238,
630 1265, 1259, 1264, 1270, 889, 886, 1271, 808, 807, 1252,
631 1252, 1290, 1273, 1280, 1300, 1282, 1279, 1280, 1276, 1277,
633 1321, 1286, 1293, 1317, 1295, 1297, 1294, 1310, 1318, 1320,
634 1324, 1313, 1329, 1330, 1316, 1323, 1377, 2202, 1346, 2202,
635 2202, 1330, 1331, 1322, 1335, 1335, 1336, 1351, 1362, 1361,
636 1356, 1361, 1364, 1365, 1367, 1373, 1367, 1373, 1378, 1372,
637 1373, 1374, 0, 1383, 1384, 1387, 1388, 1391, 1392, 1379,
638 1402, 1403, 1401, 1405, 1409, 2202, 824, 1412, 1415, 1426,
639 1420, 1425, 1414, 1417, 1450, 1430, 1443, 1433, 1446, 2202,
640 1432, 1433, 2202, 1443, 1444, 1492, 1493, 1464, 1465, 1451,
641 1454, 1469, 1488, 1482, 1483, 1495, 1482, 1483, 1484, 1497,
642 1498, 833, 1489, 1508, 779, 1492, 1511, 1509, 1510, 1510,
644 1511, 1513, 1514, 1516, 1517, 1518, 1511, 1513, 1534, 1538,
645 1551, 2202, 1553, 1541, 1542, 1553, 1554, 1555, 1556, 1542,
646 1543, 1561, 1562, 1566, 1554, 1567, 1557, 1569, 1570, 1567,
647 1568, 1602, 1557, 1560, 1567, 1590, 1589, 1591, 1599, 1600,
648 1622, 1604, 1605, 1606, 784, 745, 1593, 1613, 1599, 1598,
649 1618, 1604, 1616, 1617, 766, 726, 1612, 1613, 1604, 1605,
650 1632, 1610, 1613, 1631, 1634, 1651, 1653, 1643, 1644, 1664,
651 1654, 1666, 1656, 1652, 1653, 1672, 1673, 1663, 1672, 1676,
652 1666, 1675, 1679, 2202, 2202, 1656, 1657, 669, 653, 1663,
653 1664, 1664, 1665, 1667, 1669, 1687, 1708, 1703, 1705, 1704,
655 1705, 1706, 1722, 1718, 1720, 1725, 1721, 1723, 1722, 1723,
656 1713, 1714, 1712, 1713, 678, 677, 1717, 1718, 1717, 1718,
657 1724, 1725, 1730, 1732, 1727, 1748, 1748, 1768, 1751, 1771,
658 2202, 2202, 1757, 1758, 1769, 1767, 1755, 1772, 1770, 1758,
659 2202, 2202, 1776, 1777, 1771, 1772, 1783, 1784, 1774, 1775,
660 1783, 1784, 1789, 1791, 1784, 1783, 1804, 1804, 1821, 1809,
661 1809, 1825, 1813, 1824, 1825, 1829, 1830, 1816, 1817, 2202,
662 2202, 1833, 1834, 675, 674, 1819, 1820, 1821, 1822, 631,
663 622, 626, 606, 566, 540, 2202, 2202, 1822, 1840, 2202,
664 1824, 1842, 2202, 1833, 1835, 1849, 1852, 1857, 1859, 1861,
666 1862, 1871, 1872, 1870, 1871, 558, 1882, 1883, 1884, 1870,
667 1878, 1887, 1873, 1881, 1875, 1876, 1881, 1882, 542, 533,
668 1883, 1884, 2202, 2202, 1881, 1882, 1886, 1888, 2202, 2202,
669 1890, 1911, 1913, 1915, 1930, 2202, 1932, 2202, 1919, 1920,
670 1925, 1926, 1922, 1923, 2202, 2202, 1939, 1940, 1925, 1926,
671 2202, 1942, 1943, 1932, 1948, 1951, 1935, 1951, 1954, 1951,
672 1953, 1948, 1951, 2202, 2202, 1972, 1974, 532, 494, 1983,
673 1984, 1982, 1983, 1984, 1985, 2202, 2202, 1975, 1976, 1985,
674 1986, 1980, 1981, 412, 411, 1981, 1982, 1994, 1995, 1992,
675 1998, 1989, 1995, 2001, 1992, 2008, 2010, 2008, 2029, 2031,
677 2033, 2202, 2202, 419, 379, 2017, 2019, 2020, 2021, 2029,
678 2030, 2202, 2202, 2202, 2202, 2202, 2202, 405, 404, 2026,
679 2027, 2051, 403, 2042, 2053, 359, 2044, 2202, 2202, 2053,
680 2054, 2055, 2056, 2048, 2049, 2057, 2058, 2059, 2061, 2202,
681 2202, 2202, 2202, 326, 316, 2050, 2202, 333, 2053, 2202,
682 327, 2091, 2093, 2095, 2096, 2090, 2091, 323, 301, 299,
683 266, 2090, 2091, 2092, 2202, 2093, 2202, 2086, 2087, 193,
684 146, 2094, 2095, 2202, 2202, 2202, 2202, 2104, 2105, 170,
685 153, 152, 151, 2093, 2094, 2104, 2105, 2090, 2091, 2202,
686 2202, 2202, 2202, 2112, 2113, 2100, 2102, 2202, 2202, 2124,
688 2145, 150, 149, 2144, 2146, 2202, 2202, 2202, 2202, 2202,
689 2195, 119, 2198, 117, 116, 108
692 static yyconst flex_int16_t yy_def
[817] =
694 810, 1, 810, 810, 810, 810, 810, 811, 810, 812,
695 812, 812, 12, 12, 12, 12, 12, 12, 12, 12,
696 12, 12, 813, 811, 811, 810, 814, 812, 12, 814,
697 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
698 12, 12, 12, 12, 12, 12, 12, 12, 813, 810,
699 26, 51, 51, 51, 51, 51, 51, 51, 51, 51,
700 51, 51, 51, 51, 51, 815, 816, 815, 812, 810,
701 816, 12, 12, 12, 12, 12, 12, 12, 12, 12,
702 12, 12, 12, 12, 12, 12, 12, 12, 51, 51,
703 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
705 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
706 51, 816, 815, 816, 816, 816, 812, 12, 12, 12,
707 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
708 12, 51, 51, 51, 51, 51, 51, 51, 810, 810,
709 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
710 51, 51, 51, 51, 51, 51, 816, 816, 12, 12,
711 12, 12, 12, 810, 12, 12, 12, 12, 12, 12,
712 12, 12, 51, 51, 51, 51, 51, 51, 51, 51,
713 810, 810, 810, 810, 810, 810, 51, 51, 51, 51,
714 51, 51, 810, 810, 51, 51, 810, 810, 51, 51,
716 51, 810, 810, 810, 51, 810, 51, 816, 816, 12,
717 810, 810, 810, 12, 12, 12, 12, 12, 12, 810,
718 810, 51, 51, 51, 51, 51, 51, 810, 810, 810,
719 810, 810, 810, 810, 810, 810, 51, 51, 51, 810,
720 810, 51, 51, 810, 810, 51, 51, 810, 810, 51,
721 810, 810, 51, 810, 810, 810, 810, 810, 810, 810,
722 810, 51, 816, 816, 12, 810, 810, 810, 810, 12,
723 12, 12, 810, 810, 51, 51, 810, 810, 51, 51,
724 51, 810, 810, 810, 810, 810, 810, 810, 810, 51,
725 51, 51, 810, 810, 51, 51, 810, 810, 810, 810,
727 51, 810, 810, 51, 810, 810, 51, 810, 810, 810,
728 810, 810, 810, 810, 810, 51, 816, 810, 12, 810,
729 810, 810, 810, 810, 810, 810, 810, 810, 810, 51,
730 51, 51, 810, 810, 810, 810, 810, 810, 810, 810,
731 810, 810, 51, 810, 810, 810, 810, 810, 810, 51,
732 810, 810, 810, 810, 810, 810, 51, 810, 810, 810,
733 810, 810, 810, 810, 51, 810, 810, 810, 810, 810,
734 810, 810, 810, 810, 810, 816, 12, 810, 810, 810,
735 810, 810, 810, 810, 810, 51, 810, 810, 51, 810,
736 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
738 810, 810, 810, 810, 810, 51, 810, 810, 810, 810,
739 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
740 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
741 810, 12, 810, 810, 810, 810, 810, 810, 810, 810,
742 51, 810, 810, 51, 810, 810, 810, 810, 810, 810,
743 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
744 51, 810, 810, 810, 810, 810, 810, 810, 810, 810,
745 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
746 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
747 810, 810, 810, 810, 810, 810, 810, 810, 810, 51,
749 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
750 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
751 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
752 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
753 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
754 810, 810, 810, 810, 51, 810, 810, 810, 810, 810,
755 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
756 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
757 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
758 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
760 810, 810, 810, 810, 810, 51, 810, 810, 810, 810,
761 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
762 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
763 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
764 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
765 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
766 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
767 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
768 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
769 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
771 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
772 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
773 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
774 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
775 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
776 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
777 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
778 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
779 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
780 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
782 810, 810, 810, 810, 810, 810, 810, 810, 810, 0,
783 810, 810, 810, 810, 810, 810
786 static yyconst flex_int16_t yy_nxt
[2274] =
788 4, 5, 6, 7, 8, 4, 7, 9, 4, 10,
789 10, 10, 10, 10, 10, 10, 4, 7, 11, 11,
790 12, 13, 14, 15, 11, 16, 17, 18, 11, 11,
791 19, 11, 11, 11, 11, 20, 21, 22, 11, 11,
792 11, 11, 11, 11, 4, 11, 11, 12, 13, 14,
793 15, 11, 16, 17, 18, 11, 11, 19, 11, 11,
794 11, 11, 20, 21, 22, 11, 11, 11, 11, 11,
795 11, 27, 28, 28, 28, 28, 28, 28, 28, 30,
796 31, 31, 31, 31, 31, 31, 31, 30, 31, 31,
797 31, 31, 31, 31, 31, 34, 35, 29, 29, 37,
799 36, 29, 39, 40, 29, 29, 212, 29, 29, 213,
800 116, 32, 38, 29, 33, 89, 29, 266, 113, 68,
801 267, 29, 34, 35, 29, 29, 37, 36, 29, 39,
802 40, 29, 29, 42, 29, 29, 41, 70, 32, 38,
803 29, 33, 89, 29, 43, 47, 29, 29, 45, 29,
804 44, 29, 46, 29, 48, 29, 29, 94, 29, 95,
805 42, 29, 29, 41, 29, 29, 807, 806, 793, 792,
806 791, 43, 47, 29, 29, 45, 29, 44, 29, 46,
807 29, 48, 29, 29, 94, 29, 95, 790, 29, 29,
808 785, 29, 29, 51, 51, 51, 51, 51, 51, 51,
810 784, 96, 52, 53, 54, 55, 51, 51, 51, 56,
811 57, 51, 58, 51, 51, 59, 51, 60, 51, 61,
812 62, 63, 64, 65, 51, 51, 51, 51, 96, 52,
813 53, 54, 55, 51, 51, 51, 56, 57, 51, 58,
814 51, 51, 59, 51, 60, 51, 61, 62, 63, 64,
815 65, 51, 51, 51, 51, 66, 67, 67, 67, 67,
816 67, 67, 67, 27, 69, 69, 69, 69, 69, 69,
817 69, 66, 71, 71, 71, 71, 71, 71, 71, 70,
818 70, 70, 97, 777, 73, 70, 75, 70, 74, 70,
819 100, 70, 109, 101, 72, 29, 29, 29, 29, 29,
821 29, 29, 77, 29, 29, 29, 76, 29, 29, 97,
822 29, 73, 110, 75, 78, 74, 776, 100, 775, 109,
823 101, 72, 29, 29, 29, 29, 29, 29, 29, 77,
824 29, 29, 29, 76, 29, 29, 70, 29, 70, 110,
825 774, 78, 80, 70, 767, 82, 79, 70, 70, 70,
826 765, 111, 29, 83, 29, 29, 70, 29, 81, 29,
827 763, 132, 29, 29, 29, 29, 29, 29, 84, 80,
828 762, 85, 29, 79, 133, 29, 750, 98, 111, 29,
829 83, 29, 29, 99, 29, 81, 29, 70, 132, 29,
830 29, 29, 29, 29, 29, 84, 70, 70, 85, 29,
832 92, 133, 29, 29, 98, 90, 29, 86, 29, 134,
833 99, 29, 29, 29, 93, 87, 29, 91, 135, 88,
834 747, 743, 742, 735, 136, 137, 734, 92, 717, 716,
835 29, 138, 90, 29, 86, 29, 134, 70, 29, 29,
836 29, 93, 87, 29, 91, 135, 88, 51, 51, 51,
837 51, 136, 137, 29, 51, 51, 29, 51, 138, 102,
838 51, 103, 51, 104, 51, 51, 51, 51, 51, 105,
839 139, 193, 197, 202, 51, 51, 51, 51, 106, 107,
840 29, 51, 51, 29, 51, 108, 102, 51, 103, 51,
841 104, 51, 51, 51, 51, 51, 105, 66, 112, 112,
843 112, 112, 112, 112, 112, 106, 107, 140, 194, 198,
844 203, 703, 108, 114, 115, 115, 115, 115, 115, 115,
845 115, 66, 112, 112, 112, 112, 112, 112, 112, 70,
846 27, 117, 117, 117, 117, 117, 117, 117, 71, 71,
847 71, 71, 71, 71, 71, 71, 70, 141, 70, 702,
848 665, 142, 70, 70, 143, 144, 145, 70, 146, 664,
849 147, 148, 29, 149, 29, 29, 118, 29, 29, 120,
850 119, 29, 29, 29, 141, 651, 29, 121, 142, 220,
851 122, 143, 144, 145, 634, 146, 70, 147, 148, 29,
852 149, 29, 29, 118, 29, 29, 120, 119, 29, 29,
854 29, 70, 29, 29, 121, 29, 70, 123, 150, 151,
855 633, 70, 70, 632, 153, 154, 221, 29, 155, 124,
856 29, 70, 29, 125, 152, 29, 127, 29, 29, 29,
857 29, 29, 29, 631, 123, 150, 151, 29, 156, 630,
858 29, 153, 154, 126, 29, 155, 124, 29, 629, 29,
859 125, 152, 29, 127, 29, 29, 70, 29, 29, 173,
860 70, 128, 70, 163, 29, 156, 129, 29, 70, 174,
861 126, 175, 29, 176, 131, 29, 29, 29, 29, 29,
862 29, 29, 179, 180, 29, 130, 173, 29, 128, 164,
863 163, 624, 623, 129, 571, 570, 174, 544, 175, 29,
865 176, 131, 29, 29, 29, 29, 29, 29, 29, 179,
866 180, 29, 130, 543, 29, 71, 71, 71, 71, 71,
867 71, 71, 71, 66, 112, 112, 112, 112, 112, 112,
868 112, 70, 71, 157, 157, 157, 157, 157, 157, 157,
869 114, 158, 158, 158, 158, 158, 158, 158, 71, 71,
870 71, 71, 71, 71, 71, 71, 70, 30, 117, 117,
871 117, 117, 117, 117, 117, 70, 70, 70, 240, 187,
872 512, 70, 177, 511, 160, 159, 188, 162, 70, 70,
873 178, 29, 29, 29, 29, 29, 161, 29, 165, 502,
874 29, 501, 189, 251, 29, 29, 187, 29, 29, 177,
876 166, 160, 159, 188, 162, 241, 190, 178, 29, 29,
877 29, 29, 29, 161, 29, 165, 70, 29, 70, 189,
878 70, 29, 29, 450, 29, 29, 167, 166, 70, 70,
879 252, 168, 29, 190, 29, 29, 29, 29, 70, 29,
880 447, 412, 169, 191, 170, 29, 192, 29, 29, 70,
881 171, 340, 339, 167, 29, 172, 195, 29, 168, 29,
882 196, 29, 29, 29, 29, 29, 29, 181, 29, 169,
883 191, 170, 29, 192, 29, 29, 182, 171, 183, 184,
884 199, 29, 172, 195, 29, 200, 201, 196, 185, 207,
885 186, 204, 29, 337, 181, 29, 336, 321, 320, 269,
887 268, 50, 25, 182, 25, 183, 184, 199, 50, 26,
888 25, 222, 200, 201, 223, 185, 207, 186, 810, 205,
889 208, 209, 209, 209, 209, 209, 209, 209, 206, 114,
890 71, 71, 71, 71, 71, 71, 71, 70, 222, 70,
891 224, 223, 225, 70, 70, 70, 205, 226, 227, 70,
892 231, 232, 233, 29, 23, 29, 29, 210, 29, 29,
893 29, 29, 29, 29, 29, 29, 810, 224, 29, 225,
894 810, 259, 810, 211, 226, 227, 810, 231, 232, 233,
895 29, 70, 29, 29, 210, 29, 29, 29, 29, 29,
896 29, 29, 29, 70, 70, 29, 215, 29, 214, 70,
898 29, 216, 234, 70, 235, 810, 810, 236, 260, 29,
899 29, 228, 29, 217, 70, 29, 70, 218, 29, 29,
900 237, 229, 29, 215, 29, 214, 238, 29, 216, 234,
901 29, 235, 29, 29, 236, 219, 29, 29, 239, 29,
902 217, 242, 29, 243, 218, 29, 29, 237, 230, 29,
903 244, 245, 246, 238, 247, 248, 249, 29, 250, 29,
904 29, 253, 219, 254, 256, 239, 255, 257, 242, 258,
905 243, 261, 262, 810, 810, 810, 70, 244, 245, 246,
906 810, 247, 248, 249, 810, 250, 810, 810, 253, 810,
907 254, 256, 29, 255, 257, 29, 258, 265, 261, 262,
909 71, 263, 263, 263, 263, 263, 263, 263, 208, 264,
910 264, 264, 264, 264, 264, 264, 70, 70, 70, 29,
911 810, 273, 29, 270, 265, 70, 70, 70, 274, 275,
912 276, 279, 29, 29, 29, 29, 29, 29, 271, 277,
913 280, 29, 29, 29, 29, 29, 29, 272, 273, 810,
914 270, 281, 282, 283, 284, 274, 275, 276, 279, 29,
915 29, 29, 29, 29, 29, 271, 285, 280, 29, 29,
916 29, 29, 29, 29, 272, 286, 278, 287, 281, 282,
917 283, 284, 288, 289, 290, 291, 292, 293, 294, 295,
918 296, 297, 298, 285, 299, 301, 302, 303, 304, 305,
920 306, 307, 286, 308, 287, 309, 310, 311, 312, 288,
921 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
922 313, 314, 301, 302, 303, 304, 305, 306, 307, 315,
923 308, 300, 309, 310, 311, 312, 316, 71, 317, 317,
924 317, 317, 317, 317, 317, 318, 324, 313, 314, 326,
925 810, 810, 810, 322, 323, 328, 315, 70, 70, 341,
926 329, 810, 330, 316, 208, 71, 71, 71, 71, 71,
927 71, 71, 70, 29, 29, 331, 29, 29, 319, 70,
928 322, 323, 328, 325, 332, 333, 327, 329, 29, 330,
929 334, 29, 335, 338, 343, 29, 342, 344, 29, 346,
931 29, 29, 331, 29, 29, 319, 347, 348, 350, 351,
932 352, 332, 333, 353, 354, 29, 359, 334, 29, 335,
933 338, 343, 29, 360, 361, 29, 346, 363, 355, 364,
934 374, 365, 366, 347, 345, 350, 351, 352, 356, 367,
935 353, 354, 368, 359, 349, 369, 370, 371, 372, 373,
936 360, 810, 378, 379, 363, 380, 364, 357, 365, 366,
937 810, 362, 70, 387, 810, 358, 367, 375, 381, 368,
938 382, 383, 369, 370, 371, 372, 373, 377, 29, 378,
939 379, 29, 380, 384, 357, 71, 376, 376, 376, 376,
940 376, 376, 376, 318, 385, 381, 386, 382, 383, 389,
942 388, 390, 391, 392, 377, 29, 393, 394, 29, 395,
943 384, 396, 397, 398, 399, 400, 401, 402, 403, 404,
944 405, 385, 406, 386, 407, 408, 389, 409, 390, 391,
945 392, 410, 411, 393, 394, 413, 395, 414, 396, 397,
946 398, 399, 400, 401, 402, 403, 404, 405, 415, 406,
947 420, 407, 408, 421, 409, 416, 417, 422, 410, 411,
948 418, 419, 413, 424, 414, 425, 426, 810, 427, 428,
949 429, 430, 431, 810, 810, 415, 810, 420, 810, 810,
950 421, 810, 416, 417, 433, 434, 435, 418, 419, 436,
951 424, 437, 425, 426, 423, 427, 428, 429, 430, 431,
953 71, 71, 71, 71, 71, 71, 71, 71, 318, 70,
954 438, 433, 434, 435, 439, 440, 436, 441, 437, 442,
955 443, 444, 445, 446, 448, 29, 449, 451, 29, 452,
956 432, 453, 454, 455, 456, 457, 458, 438, 459, 460,
957 461, 439, 440, 462, 441, 463, 442, 443, 444, 445,
958 446, 448, 29, 449, 451, 29, 452, 432, 453, 454,
959 455, 456, 457, 458, 464, 459, 460, 461, 465, 466,
960 462, 467, 463, 468, 469, 470, 471, 472, 473, 474,
961 475, 476, 477, 480, 478, 481, 483, 484, 485, 486,
962 487, 464, 479, 482, 488, 465, 466, 489, 467, 490,
964 468, 469, 470, 471, 472, 473, 474, 475, 476, 477,
965 480, 478, 481, 483, 484, 485, 486, 487, 70, 479,
966 482, 488, 491, 492, 489, 493, 490, 494, 495, 496,
967 498, 499, 500, 503, 29, 504, 505, 29, 506, 517,
968 507, 508, 509, 510, 513, 514, 515, 516, 519, 491,
969 492, 520, 493, 521, 494, 495, 522, 498, 499, 500,
970 503, 29, 504, 505, 29, 506, 497, 507, 508, 509,
971 510, 513, 514, 515, 516, 519, 518, 523, 520, 524,
972 521, 525, 526, 522, 527, 528, 529, 530, 531, 532,
973 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,
975 545, 546, 547, 548, 523, 549, 524, 550, 525, 526,
976 551, 527, 528, 529, 530, 531, 532, 533, 534, 535,
977 536, 537, 538, 539, 540, 541, 542, 545, 546, 547,
978 548, 552, 549, 553, 550, 554, 555, 551, 556, 557,
979 558, 559, 560, 561, 562, 563, 564, 565, 566, 567,
980 568, 569, 572, 573, 574, 575, 576, 577, 552, 578,
981 553, 579, 554, 555, 580, 556, 557, 558, 559, 560,
982 561, 562, 563, 564, 565, 566, 567, 568, 569, 572,
983 573, 574, 575, 576, 577, 581, 578, 582, 579, 583,
984 584, 580, 585, 586, 587, 588, 589, 590, 591, 592,
986 593, 594, 595, 596, 597, 598, 599, 600, 601, 602,
987 603, 604, 581, 605, 582, 606, 583, 584, 607, 585,
988 586, 587, 588, 589, 590, 591, 592, 593, 594, 595,
989 596, 597, 598, 599, 600, 601, 602, 603, 604, 608,
990 605, 609, 606, 610, 611, 607, 612, 613, 614, 615,
991 616, 617, 618, 619, 620, 621, 622, 625, 626, 627,
992 628, 635, 636, 637, 638, 639, 608, 640, 609, 641,
993 610, 611, 642, 612, 613, 614, 615, 616, 617, 618,
994 619, 620, 621, 622, 625, 626, 627, 628, 635, 636,
995 637, 638, 639, 643, 640, 644, 641, 645, 646, 642,
997 647, 648, 649, 650, 652, 653, 654, 655, 656, 657,
998 658, 659, 660, 661, 662, 663, 666, 667, 668, 669,
999 643, 670, 644, 671, 645, 646, 672, 647, 648, 649,
1000 650, 652, 653, 654, 655, 656, 657, 658, 659, 660,
1001 661, 662, 663, 666, 667, 668, 669, 673, 670, 674,
1002 671, 675, 676, 672, 677, 678, 679, 680, 681, 682,
1003 683, 684, 685, 686, 687, 688, 689, 690, 691, 692,
1004 693, 694, 695, 696, 673, 697, 674, 698, 675, 676,
1005 699, 677, 678, 679, 680, 681, 682, 683, 684, 685,
1006 686, 687, 688, 689, 690, 691, 692, 693, 694, 695,
1008 696, 700, 697, 701, 698, 704, 705, 699, 706, 707,
1009 708, 709, 710, 711, 712, 713, 714, 715, 718, 719,
1010 720, 721, 722, 723, 724, 725, 726, 727, 700, 728,
1011 701, 729, 704, 705, 730, 706, 707, 708, 709, 710,
1012 711, 712, 713, 714, 715, 718, 719, 720, 721, 722,
1013 723, 724, 725, 726, 727, 731, 728, 732, 729, 733,
1014 736, 730, 737, 738, 739, 740, 741, 744, 745, 746,
1015 748, 749, 751, 752, 753, 754, 755, 756, 757, 758,
1016 759, 760, 731, 761, 732, 764, 733, 736, 766, 737,
1017 738, 739, 740, 741, 744, 745, 746, 748, 749, 751,
1019 752, 753, 754, 755, 756, 757, 758, 759, 760, 768,
1020 761, 769, 764, 770, 771, 766, 772, 773, 778, 779,
1021 780, 781, 782, 783, 786, 787, 788, 789, 794, 795,
1022 796, 797, 798, 799, 800, 801, 768, 802, 769, 803,
1023 770, 771, 804, 772, 773, 778, 779, 780, 781, 782,
1024 783, 786, 787, 788, 789, 794, 795, 796, 797, 798,
1025 799, 800, 801, 805, 802, 808, 803, 809, 810, 804,
1026 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1027 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1028 805, 810, 808, 810, 809, 24, 810, 24, 49, 49,
1030 49, 3, 810, 810, 810, 810, 810, 810, 810, 810,
1031 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1032 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1033 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1034 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1035 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1036 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1040 static yyconst flex_int16_t yy_chk
[2274] =
1042 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1043 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1044 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1045 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1046 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1047 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1048 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1049 1, 10, 10, 10, 10, 10, 10, 10, 10, 11,
1050 11, 11, 11, 11, 11, 11, 11, 12, 12, 12,
1051 12, 12, 12, 12, 12, 13, 14, 14, 16, 15,
1053 14, 16, 16, 17, 17, 13, 164, 17, 13, 164,
1054 816, 12, 15, 15, 12, 52, 15, 211, 815, 814,
1055 211, 812, 13, 14, 14, 16, 15, 14, 16, 16,
1056 17, 17, 13, 19, 17, 13, 18, 29, 12, 15,
1057 15, 12, 52, 15, 19, 21, 18, 19, 20, 18,
1058 19, 22, 20, 29, 22, 21, 29, 55, 21, 56,
1059 19, 31, 20, 18, 31, 20, 803, 802, 783, 782,
1060 781, 19, 21, 18, 19, 20, 18, 19, 22, 20,
1061 29, 22, 21, 29, 55, 21, 56, 780, 31, 20,
1062 771, 31, 20, 26, 26, 26, 26, 26, 26, 26,
1064 770, 57, 26, 26, 26, 26, 26, 26, 26, 26,
1065 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
1066 26, 26, 26, 26, 26, 26, 26, 26, 57, 26,
1067 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
1068 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
1069 26, 26, 26, 26, 26, 27, 27, 27, 27, 27,
1070 27, 27, 27, 28, 28, 28, 28, 28, 28, 28,
1071 28, 30, 30, 30, 30, 30, 30, 30, 30, 32,
1072 33, 35, 58, 761, 33, 34, 35, 36, 34, 37,
1073 60, 38, 63, 60, 32, 32, 33, 35, 32, 33,
1075 35, 34, 37, 36, 34, 37, 36, 38, 37, 58,
1076 38, 33, 64, 35, 38, 34, 760, 60, 759, 63,
1077 60, 32, 32, 33, 35, 32, 33, 35, 34, 37,
1078 36, 34, 37, 36, 38, 37, 39, 38, 40, 64,
1079 758, 38, 40, 41, 751, 42, 39, 42, 43, 44,
1080 748, 65, 39, 43, 40, 39, 45, 40, 41, 41,
1081 745, 89, 41, 42, 43, 44, 42, 43, 44, 40,
1082 744, 45, 45, 39, 90, 45, 726, 59, 65, 39,
1083 43, 40, 39, 59, 40, 41, 41, 46, 89, 41,
1084 42, 43, 44, 42, 43, 44, 47, 48, 45, 45,
1086 54, 90, 45, 46, 59, 53, 46, 46, 82, 91,
1087 59, 82, 47, 48, 54, 47, 48, 53, 92, 48,
1088 723, 719, 718, 705, 93, 94, 704, 54, 685, 684,
1089 46, 95, 53, 46, 46, 82, 91, 73, 82, 47,
1090 48, 54, 47, 48, 53, 92, 48, 51, 51, 51,
1091 51, 93, 94, 73, 51, 51, 73, 51, 95, 61,
1092 51, 61, 51, 61, 51, 51, 51, 51, 51, 62,
1093 96, 147, 150, 154, 51, 51, 51, 51, 62, 62,
1094 73, 51, 51, 73, 51, 62, 61, 51, 61, 51,
1095 61, 51, 51, 51, 51, 51, 62, 66, 66, 66,
1097 66, 66, 66, 66, 66, 62, 62, 96, 147, 150,
1098 154, 669, 62, 67, 67, 67, 67, 67, 67, 67,
1099 67, 68, 68, 68, 68, 68, 68, 68, 68, 68,
1100 69, 69, 69, 69, 69, 69, 69, 69, 71, 71,
1101 71, 71, 71, 71, 71, 71, 72, 97, 74, 668,
1102 620, 98, 75, 76, 99, 100, 101, 77, 102, 619,
1103 103, 104, 72, 105, 74, 72, 72, 74, 75, 76,
1104 74, 75, 76, 77, 97, 606, 77, 77, 98, 173,
1105 78, 99, 100, 101, 585, 102, 78, 103, 104, 72,
1106 105, 74, 72, 72, 74, 75, 76, 74, 75, 76,
1108 77, 79, 78, 77, 77, 78, 80, 79, 106, 107,
1109 584, 81, 84, 583, 108, 109, 173, 79, 110, 80,
1110 79, 83, 80, 81, 107, 80, 84, 81, 84, 78,
1111 81, 84, 78, 582, 79, 106, 107, 83, 111, 581,
1112 83, 108, 109, 83, 79, 110, 80, 79, 580, 80,
1113 81, 107, 80, 84, 81, 84, 85, 81, 84, 132,
1114 86, 85, 87, 122, 83, 111, 86, 83, 88, 133,
1115 83, 134, 85, 135, 88, 85, 86, 122, 87, 86,
1116 122, 87, 137, 138, 88, 87, 132, 88, 85, 122,
1117 122, 575, 574, 86, 516, 515, 133, 489, 134, 85,
1119 135, 88, 85, 86, 122, 87, 86, 122, 87, 137,
1120 138, 88, 87, 488, 88, 112, 112, 112, 112, 112,
1121 112, 112, 112, 113, 113, 113, 113, 113, 113, 113,
1122 113, 113, 114, 114, 114, 114, 114, 114, 114, 114,
1123 115, 115, 115, 115, 115, 115, 115, 115, 116, 116,
1124 116, 116, 116, 116, 116, 116, 116, 117, 117, 117,
1125 117, 117, 117, 117, 117, 118, 119, 120, 190, 141,
1126 456, 121, 136, 455, 119, 118, 142, 121, 124, 123,
1127 136, 118, 119, 120, 118, 119, 120, 121, 123, 446,
1128 121, 445, 143, 200, 124, 123, 141, 124, 123, 136,
1130 124, 119, 118, 142, 121, 190, 144, 136, 118, 119,
1131 120, 118, 119, 120, 121, 123, 125, 121, 126, 143,
1132 127, 124, 123, 395, 124, 123, 125, 124, 128, 129,
1133 200, 126, 125, 144, 126, 125, 127, 126, 131, 127,
1134 392, 357, 127, 145, 128, 129, 146, 128, 129, 130,
1135 129, 289, 288, 125, 131, 130, 148, 131, 126, 125,
1136 149, 126, 125, 127, 126, 130, 127, 139, 130, 127,
1137 145, 128, 129, 146, 128, 129, 139, 129, 139, 140,
1138 151, 131, 130, 148, 131, 152, 153, 149, 140, 156,
1139 140, 155, 130, 286, 139, 130, 285, 267, 266, 213,
1141 212, 49, 25, 139, 24, 139, 140, 151, 23, 9,
1142 8, 174, 152, 153, 175, 140, 156, 140, 3, 155,
1143 157, 157, 157, 157, 157, 157, 157, 157, 155, 158,
1144 158, 158, 158, 158, 158, 158, 158, 159, 174, 160,
1145 176, 175, 177, 161, 162, 163, 155, 178, 179, 165,
1146 181, 182, 183, 159, 2, 160, 159, 159, 160, 161,
1147 162, 163, 161, 162, 163, 165, 0, 176, 165, 177,
1148 0, 205, 0, 163, 178, 179, 0, 181, 182, 183,
1149 159, 167, 160, 159, 159, 160, 161, 162, 163, 161,
1150 162, 163, 165, 166, 169, 165, 167, 167, 166, 168,
1152 167, 168, 184, 170, 185, 0, 0, 186, 205, 166,
1153 169, 180, 166, 169, 171, 168, 172, 170, 168, 170,
1154 187, 180, 170, 167, 167, 166, 188, 167, 168, 184,
1155 171, 185, 172, 171, 186, 172, 166, 169, 189, 166,
1156 169, 191, 168, 192, 170, 168, 170, 187, 180, 170,
1157 193, 194, 195, 188, 196, 197, 198, 171, 199, 172,
1158 171, 201, 172, 202, 203, 189, 202, 203, 191, 204,
1159 192, 206, 207, 0, 0, 0, 210, 193, 194, 195,
1160 0, 196, 197, 198, 0, 199, 0, 0, 201, 0,
1161 202, 203, 210, 202, 203, 210, 204, 210, 206, 207,
1163 208, 208, 208, 208, 208, 208, 208, 208, 209, 209,
1164 209, 209, 209, 209, 209, 209, 216, 214, 215, 210,
1165 0, 220, 210, 214, 210, 217, 218, 219, 221, 222,
1166 223, 225, 216, 214, 215, 216, 214, 215, 215, 224,
1167 226, 217, 218, 219, 217, 218, 219, 219, 220, 0,
1168 214, 227, 228, 230, 231, 221, 222, 223, 225, 216,
1169 214, 215, 216, 214, 215, 215, 232, 226, 217, 218,
1170 219, 217, 218, 219, 219, 233, 224, 234, 227, 228,
1171 230, 231, 235, 236, 237, 238, 239, 240, 241, 242,
1172 243, 244, 245, 232, 246, 247, 248, 249, 250, 251,
1174 252, 253, 233, 254, 234, 255, 256, 257, 258, 235,
1175 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1176 259, 260, 247, 248, 249, 250, 251, 252, 253, 261,
1177 254, 246, 255, 256, 257, 258, 262, 263, 263, 263,
1178 263, 263, 263, 263, 263, 263, 275, 259, 260, 276,
1179 0, 0, 0, 273, 274, 277, 261, 270, 271, 290,
1180 278, 0, 279, 262, 264, 264, 264, 264, 264, 264,
1181 264, 264, 265, 270, 271, 280, 270, 271, 265, 272,
1182 273, 274, 277, 275, 281, 282, 276, 278, 265, 279,
1183 283, 265, 284, 287, 291, 272, 290, 292, 272, 293,
1185 270, 271, 280, 270, 271, 265, 294, 295, 296, 297,
1186 298, 281, 282, 299, 300, 265, 302, 283, 265, 284,
1187 287, 291, 272, 303, 304, 272, 293, 305, 301, 306,
1188 316, 307, 308, 294, 292, 296, 297, 298, 301, 309,
1189 299, 300, 310, 302, 295, 311, 312, 313, 314, 315,
1190 303, 0, 322, 323, 305, 324, 306, 301, 307, 308,
1191 0, 304, 319, 331, 0, 301, 309, 316, 325, 310,
1192 326, 327, 311, 312, 313, 314, 315, 319, 319, 322,
1193 323, 319, 324, 328, 301, 317, 317, 317, 317, 317,
1194 317, 317, 317, 317, 329, 325, 330, 326, 327, 332,
1196 331, 333, 334, 335, 319, 319, 336, 337, 319, 338,
1197 328, 339, 340, 341, 342, 344, 345, 346, 347, 348,
1198 349, 329, 350, 330, 351, 352, 332, 353, 333, 334,
1199 335, 354, 355, 336, 337, 358, 338, 359, 339, 340,
1200 341, 342, 344, 345, 346, 347, 348, 349, 360, 350,
1201 363, 351, 352, 364, 353, 361, 361, 365, 354, 355,
1202 362, 362, 358, 366, 359, 367, 368, 0, 369, 371,
1203 372, 374, 375, 0, 0, 360, 0, 363, 0, 0,
1204 364, 0, 361, 361, 378, 379, 380, 362, 362, 381,
1205 366, 382, 367, 368, 365, 369, 371, 372, 374, 375,
1207 376, 376, 376, 376, 376, 376, 376, 376, 376, 377,
1208 383, 378, 379, 380, 384, 385, 381, 386, 382, 387,
1209 388, 389, 390, 391, 393, 377, 394, 396, 377, 397,
1210 377, 398, 399, 400, 401, 402, 403, 383, 404, 405,
1211 406, 384, 385, 407, 386, 408, 387, 388, 389, 390,
1212 391, 393, 377, 394, 396, 377, 397, 377, 398, 399,
1213 400, 401, 402, 403, 409, 404, 405, 406, 410, 411,
1214 407, 413, 408, 414, 415, 416, 417, 418, 419, 420,
1215 421, 422, 423, 425, 424, 426, 427, 428, 429, 430,
1216 431, 409, 424, 426, 433, 410, 411, 434, 413, 435,
1218 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
1219 425, 424, 426, 427, 428, 429, 430, 431, 432, 424,
1220 426, 433, 436, 437, 434, 438, 435, 439, 440, 441,
1221 442, 443, 444, 447, 432, 448, 449, 432, 450, 461,
1222 451, 452, 453, 454, 457, 458, 459, 460, 462, 436,
1223 437, 463, 438, 464, 439, 440, 465, 442, 443, 444,
1224 447, 432, 448, 449, 432, 450, 441, 451, 452, 453,
1225 454, 457, 458, 459, 460, 462, 461, 466, 463, 467,
1226 464, 468, 469, 465, 470, 471, 472, 473, 474, 475,
1227 476, 477, 478, 479, 480, 481, 482, 483, 486, 487,
1229 490, 491, 492, 493, 466, 494, 467, 495, 468, 469,
1230 496, 470, 471, 472, 473, 474, 475, 476, 477, 478,
1231 479, 480, 481, 482, 483, 486, 487, 490, 491, 492,
1232 493, 497, 494, 498, 495, 499, 500, 496, 501, 502,
1233 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
1234 513, 514, 517, 518, 519, 520, 521, 522, 497, 523,
1235 498, 524, 499, 500, 525, 501, 502, 503, 504, 505,
1236 506, 507, 508, 509, 510, 511, 512, 513, 514, 517,
1237 518, 519, 520, 521, 522, 526, 523, 527, 524, 528,
1238 529, 525, 530, 533, 534, 535, 536, 537, 538, 539,
1240 540, 543, 544, 545, 546, 547, 548, 549, 550, 551,
1241 552, 553, 526, 554, 527, 555, 528, 529, 556, 530,
1242 533, 534, 535, 536, 537, 538, 539, 540, 543, 544,
1243 545, 546, 547, 548, 549, 550, 551, 552, 553, 557,
1244 554, 558, 555, 559, 560, 556, 561, 562, 563, 564,
1245 565, 566, 567, 568, 569, 572, 573, 576, 577, 578,
1246 579, 588, 589, 591, 592, 594, 557, 595, 558, 596,
1247 559, 560, 597, 561, 562, 563, 564, 565, 566, 567,
1248 568, 569, 572, 573, 576, 577, 578, 579, 588, 589,
1249 591, 592, 594, 598, 595, 599, 596, 600, 601, 597,
1251 602, 603, 604, 605, 607, 608, 609, 610, 611, 612,
1252 613, 614, 615, 616, 617, 618, 621, 622, 625, 626,
1253 598, 627, 599, 628, 600, 601, 631, 602, 603, 604,
1254 605, 607, 608, 609, 610, 611, 612, 613, 614, 615,
1255 616, 617, 618, 621, 622, 625, 626, 632, 627, 633,
1256 628, 634, 635, 631, 637, 639, 640, 641, 642, 643,
1257 644, 647, 648, 649, 650, 652, 653, 654, 655, 656,
1258 657, 658, 659, 660, 632, 661, 633, 662, 634, 635,
1259 663, 637, 639, 640, 641, 642, 643, 644, 647, 648,
1260 649, 650, 652, 653, 654, 655, 656, 657, 658, 659,
1262 660, 666, 661, 667, 662, 670, 671, 663, 672, 673,
1263 674, 675, 678, 679, 680, 681, 682, 683, 686, 687,
1264 688, 689, 690, 691, 692, 693, 694, 695, 666, 696,
1265 667, 697, 670, 671, 698, 672, 673, 674, 675, 678,
1266 679, 680, 681, 682, 683, 686, 687, 688, 689, 690,
1267 691, 692, 693, 694, 695, 699, 696, 700, 697, 701,
1268 706, 698, 707, 708, 709, 710, 711, 720, 721, 722,
1269 724, 725, 727, 730, 731, 732, 733, 734, 735, 736,
1270 737, 738, 699, 739, 700, 746, 701, 706, 749, 707,
1271 708, 709, 710, 711, 720, 721, 722, 724, 725, 727,
1273 730, 731, 732, 733, 734, 735, 736, 737, 738, 752,
1274 739, 753, 746, 754, 755, 749, 756, 757, 762, 763,
1275 764, 766, 768, 769, 772, 773, 778, 779, 784, 785,
1276 786, 787, 788, 789, 794, 795, 752, 796, 753, 797,
1277 754, 755, 800, 756, 757, 762, 763, 764, 766, 768,
1278 769, 772, 773, 778, 779, 784, 785, 786, 787, 788,
1279 789, 794, 795, 801, 796, 804, 797, 805, 0, 800,
1280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1282 801, 0, 804, 0, 805, 811, 0, 811, 813, 813,
1284 813, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1285 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1286 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1287 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1288 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1289 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1290 810, 810, 810, 810, 810, 810, 810, 810, 810, 810,
1294 static yyconst flex_int16_t yy_rule_linenum
[96] =
1296 77, 80, 82, 84, 88, 89, 91, 92, 93, 94,
1297 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1298 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1299 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1300 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1301 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1302 145, 146, 147, 148, 149, 151, 152, 154, 155, 156,
1303 157, 158, 159, 161, 162, 165, 170, 171, 172, 174,
1304 175, 176, 177, 178, 179, 180, 181, 182, 184, 190,
1305 196, 202, 208, 214, 220
1309 /* The intent behind this definition is that it'll catch
1310 * any uses of REJECT which flex missed.
1312 #define REJECT reject_used_but_not_detected
1313 #define yymore() yymore_used_but_not_detected
1314 #define YY_MORE_ADJ 0
1315 #define YY_RESTORE_YY_MORE_OFFSET
1316 #line 1 "libmemcached/options/scanner.l"
1317 /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
1319 * Libmemcached Scanner and Parser
1321 * Copyright (C) 2011 DataDifferental, http://datadifferential.com
1323 * This program is free software: you can redistribute it and/or modify
1324 * it under the terms of the GNU Affero General Public License as
1325 * published by the Free Software Foundation, either version 3 of the
1326 * License, or (at your option) any later version.
1328 * This program is distributed in the hope that it will be useful,
1329 * but WITHOUT ANY WARRANTY; without even the implied warranty of
1330 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1331 * GNU Affero General Public License for more details.
1333 * You should have received a copy of the GNU Affero General Public License
1334 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1337 #line 38 "libmemcached/options/scanner.l"
1341 #define PARAM config_get_extra(yyscanner)
1343 static void get_lex_chars(char* buffer
, int& result
, int max_size
, Context
*context
)
1345 if (context
->pos
>= context
->length
)
1351 result
= context
->length
- context
->pos
;
1352 result
> (int)max_size
? result
= max_size
: 0;
1353 memcpy(buffer
, context
->buf
+ context
->pos
, result
);
1354 context
->pos
+= result
;
1359 #define YY_INPUT(buffer, result, max_size) get_lex_chars(buffer, result, max_size, PARAM)
1361 #line 1362 "libmemcached/options/scanner.cc"
1365 #ifndef YY_NO_UNISTD_H
1366 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1367 * down here because we want the user's section 1 to have been scanned first.
1368 * The user has a chance to override it with an option.
1377 #ifndef YY_EXTRA_TYPE
1378 #define YY_EXTRA_TYPE void *
1381 /* %if-c-only Reentrant structure and macros (non-C++). */
1384 /* Holds the entire state of the reentrant scanner. */
1388 /* User-defined. Not touched by flex. */
1389 YY_EXTRA_TYPE yyextra_r
;
1391 /* The rest are the same as the globals declared in the non-reentrant scanner. */
1392 FILE *yyin_r
, *yyout_r
;
1393 size_t yy_buffer_stack_top
; /**< index of top of stack. */
1394 size_t yy_buffer_stack_max
; /**< capacity of stack. */
1395 YY_BUFFER_STATE
* yy_buffer_stack
; /**< Stack as an array. */
1402 int yy_did_buffer_switch_on_eof
;
1403 int yy_start_stack_ptr
;
1404 int yy_start_stack_depth
;
1405 int *yy_start_stack
;
1406 yy_state_type yy_last_accepting_state
;
1407 char* yy_last_accepting_cpos
;
1410 int yy_flex_debug_r
;
1418 }; /* end struct yyguts_t */
1422 static int yy_init_globals (yyscan_t yyscanner
);
1428 /* This must go here because YYSTYPE and YYLTYPE are included
1429 * from bison output in section 1.*/
1430 # define yylval yyg->yylval_r
1432 int config_lex_init (yyscan_t
* scanner
);
1434 int config_lex_init_extra (YY_EXTRA_TYPE user_defined
,yyscan_t
* scanner
);
1438 /* %endif End reentrant structures and macros. */
1440 /* Accessor methods to globals.
1441 These are made visible to non-reentrant scanners for convenience. */
1443 int config_lex_destroy (yyscan_t yyscanner
);
1445 int config_get_debug (yyscan_t yyscanner
);
1447 void config_set_debug (int debug_flag
,yyscan_t yyscanner
);
1449 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
);
1451 void config_set_extra (YY_EXTRA_TYPE user_defined
,yyscan_t yyscanner
);
1453 FILE *config_get_in (yyscan_t yyscanner
);
1455 void config_set_in (FILE * in_str
,yyscan_t yyscanner
);
1457 FILE *config_get_out (yyscan_t yyscanner
);
1459 void config_set_out (FILE * out_str
,yyscan_t yyscanner
);
1461 int config_get_leng (yyscan_t yyscanner
);
1463 char *config_get_text (yyscan_t yyscanner
);
1465 int config_get_lineno (yyscan_t yyscanner
);
1467 void config_set_lineno (int line_number
,yyscan_t yyscanner
);
1469 int config_get_column (yyscan_t yyscanner
);
1471 void config_set_column (int column_no
,yyscan_t yyscanner
);
1473 /* %if-bison-bridge */
1475 YYSTYPE
* config_get_lval (yyscan_t yyscanner
);
1477 void config_set_lval (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1481 /* Macros after this point can all be overridden by user definitions in
1485 #ifndef YY_SKIP_YYWRAP
1487 extern "C" int config_wrap (yyscan_t yyscanner
);
1489 extern int config_wrap (yyscan_t yyscanner
);
1493 /* %not-for-header */
1495 /* %ok-for-header */
1500 static void yy_flex_strncpy (char *,yyconst
char *,int ,yyscan_t yyscanner
);
1503 #ifdef YY_NEED_STRLEN
1504 static int yy_flex_strlen (yyconst
char * ,yyscan_t yyscanner
);
1508 /* %if-c-only Standard (non-C++) definition */
1509 /* %not-for-header */
1512 static int yyinput (yyscan_t yyscanner
);
1514 static int input (yyscan_t yyscanner
);
1516 /* %ok-for-header */
1525 /* Amount of stuff to slurp up with each read. */
1526 #ifndef YY_READ_BUF_SIZE
1527 #define YY_READ_BUF_SIZE 8192
1530 /* Copy whatever the last rule matched to the standard output. */
1532 /* %if-c-only Standard (non-C++) definition */
1533 /* This used to be an fputs(), but since the string might contain NUL's,
1534 * we now use fwrite().
1536 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1538 /* %if-c++-only C++ definition */
1542 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1543 * is returned in "result".
1546 #define YY_INPUT(buf,result,max_size) \
1547 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
1548 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1552 for ( n = 0; n < max_size && \
1553 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1554 buf[n] = (char) c; \
1556 buf[n++] = (char) c; \
1557 if ( c == EOF && ferror( yyin ) ) \
1558 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1564 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1566 if( errno != EINTR) \
1568 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1576 /* %if-c++-only C++ definition \ */\
1581 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1582 * we don't want an extra ';' after the "return" because that will cause
1583 * some compilers to complain about unreachable statements.
1586 #define yyterminate() return YY_NULL
1589 /* Number of entries by which start-condition stack grows. */
1590 #ifndef YY_START_STACK_INCR
1591 #define YY_START_STACK_INCR 25
1594 /* Report a fatal error. */
1595 #ifndef YY_FATAL_ERROR
1597 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1603 /* %if-tables-serialization structures and prototypes */
1604 /* %not-for-header */
1606 /* %ok-for-header */
1608 /* %not-for-header */
1610 /* %tables-yydmap generated elements */
1612 /* end tables serialization structures and prototypes */
1614 /* %ok-for-header */
1616 /* Default declaration of generated scanner - a define so the user can
1617 * easily add parameters.
1620 #define YY_DECL_IS_OURS 1
1621 /* %if-c-only Standard (non-C++) definition */
1623 extern int config_lex \
1624 (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1626 #define YY_DECL int config_lex \
1627 (YYSTYPE * yylval_param , yyscan_t yyscanner)
1629 /* %if-c++-only C++ definition */
1631 #endif /* !YY_DECL */
1633 /* Code executed at the beginning of each rule, after yytext and yyleng
1636 #ifndef YY_USER_ACTION
1637 #define YY_USER_ACTION
1640 /* Code executed at the end of each rule. */
1642 #define YY_BREAK break;
1645 /* %% [6.0] YY_RULE_SETUP definition goes here */
1646 #define YY_RULE_SETUP \
1648 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1649 (yytext[yyleng - 1] == '\n'); \
1652 /* %not-for-header */
1654 /** The main scanner function which does all the work.
1658 register yy_state_type yy_current_state
;
1659 register char *yy_cp
, *yy_bp
;
1660 register int yy_act
;
1661 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
1663 /* %% [7.0] user's declarations go here */
1664 #line 74 "libmemcached/options/scanner.l"
1668 #line 1669 "libmemcached/options/scanner.cc"
1670 yylval
= yylval_param
;
1672 if ( !yyg
->yy_init
)
1680 if ( ! yyg
->yy_start
)
1681 yyg
->yy_start
= 1; /* first start state */
1697 if ( ! YY_CURRENT_BUFFER
) {
1698 config_ensure_buffer_stack (yyscanner
);
1699 YY_CURRENT_BUFFER_LVALUE
=
1700 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
1703 config__load_buffer_state(yyscanner
);
1706 while ( 1 ) /* loops until end-of-file is reached */
1708 /* %% [8.0] yymore()-related code goes here */
1709 yy_cp
= yyg
->yy_c_buf_p
;
1711 /* Support of yytext. */
1712 *yy_cp
= yyg
->yy_hold_char
;
1714 /* yy_bp points to the position in yy_ch_buf of the start of
1719 /* %% [9.0] code to set up and find next match goes here */
1720 yy_current_state
= yyg
->yy_start
;
1721 yy_current_state
+= YY_AT_BOL();
1725 register YY_CHAR yy_c
= yy_ec
[YY_SC_TO_UI(*yy_cp
)];
1726 if ( yy_accept
[yy_current_state
] )
1728 yyg
->yy_last_accepting_state
= yy_current_state
;
1729 yyg
->yy_last_accepting_cpos
= yy_cp
;
1731 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
1733 yy_current_state
= (int) yy_def
[yy_current_state
];
1734 if ( yy_current_state
>= 811 )
1735 yy_c
= yy_meta
[(unsigned int) yy_c
];
1737 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
1740 while ( yy_base
[yy_current_state
] != 2202 );
1743 /* %% [10.0] code to find the action number goes here */
1744 yy_act
= yy_accept
[yy_current_state
];
1746 { /* have to back up */
1747 yy_cp
= yyg
->yy_last_accepting_cpos
;
1748 yy_current_state
= yyg
->yy_last_accepting_state
;
1749 yy_act
= yy_accept
[yy_current_state
];
1752 YY_DO_BEFORE_ACTION
;
1754 /* %% [11.0] code for yylineno update goes here */
1756 do_action
: /* This label is used only to access EOF actions. */
1758 /* %% [12.0] debug code goes here */
1759 if ( yy_flex_debug
)
1762 fprintf( stderr
, "--scanner backing up\n" );
1763 else if ( yy_act
< 96 )
1764 fprintf( stderr
, "--accepting rule at line %ld (\"%s\")\n",
1765 (long)yy_rule_linenum
[yy_act
], yytext
);
1766 else if ( yy_act
== 96 )
1767 fprintf( stderr
, "--accepting default rule (\"%s\")\n",
1769 else if ( yy_act
== 97 )
1770 fprintf( stderr
, "--(end of buffer or a NUL)\n" );
1772 fprintf( stderr
, "--EOF (start condition %d)\n", YY_START
);
1776 { /* beginning of action switch */
1777 /* %% [13.0] actions go here */
1778 case 0: /* must back up */
1779 /* undo the effects of YY_DO_BEFORE_ACTION */
1780 *yy_cp
= yyg
->yy_hold_char
;
1781 yy_cp
= yyg
->yy_last_accepting_cpos
;
1782 yy_current_state
= yyg
->yy_last_accepting_state
;
1783 goto yy_find_action
;
1787 #line 77 "libmemcached/options/scanner.l"
1788 { return yytext
[0];}
1792 #line 80 "libmemcached/options/scanner.l"
1793 { yylval
->number
= atoi(yytext
); return (NUMBER
); }
1796 /* rule 3 can match eol */
1798 #line 82 "libmemcached/options/scanner.l"
1799 ; /* skip whitespace */
1802 *yy_cp
= yyg
->yy_hold_char
; /* undo effects of setting up yytext */
1803 yyg
->yy_c_buf_p
= yy_cp
-= 1;
1804 YY_DO_BEFORE_ACTION
; /* set up yytext again */
1806 #line 84 "libmemcached/options/scanner.l"
1813 #line 88 "libmemcached/options/scanner.l"
1814 { yyextra
->begin
= yytext
; return SERVER
; }
1818 #line 89 "libmemcached/options/scanner.l"
1819 { yyextra
->begin
= yytext
; return SERVERS_OPTION
; }
1823 #line 91 "libmemcached/options/scanner.l"
1824 { yyextra
->begin
= yytext
; return VERIFY_KEY
; }
1828 #line 92 "libmemcached/options/scanner.l"
1829 { yyextra
->begin
= yytext
; return VERIFY_KEY
; }
1833 #line 93 "libmemcached/options/scanner.l"
1834 { yyextra
->begin
= yytext
; return AUTO_EJECT_HOSTS
; }
1838 #line 94 "libmemcached/options/scanner.l"
1839 { yyextra
->begin
= yytext
; return AUTO_EJECT_HOSTS
; }
1843 #line 95 "libmemcached/options/scanner.l"
1844 { yyextra
->begin
= yytext
; return BINARY_PROTOCOL
; }
1848 #line 96 "libmemcached/options/scanner.l"
1849 { yyextra
->begin
= yytext
; return BINARY_PROTOCOL
; }
1853 #line 97 "libmemcached/options/scanner.l"
1854 { yyextra
->begin
= yytext
; return BUFFER_REQUESTS
; }
1858 #line 98 "libmemcached/options/scanner.l"
1859 { yyextra
->begin
= yytext
; return BUFFER_REQUESTS
; }
1863 #line 99 "libmemcached/options/scanner.l"
1864 { yyextra
->begin
= yytext
; return CACHE_LOOKUPS
; }
1868 #line 100 "libmemcached/options/scanner.l"
1869 { yyextra
->begin
= yytext
; return CACHE_LOOKUPS
; }
1873 #line 101 "libmemcached/options/scanner.l"
1874 { yyextra
->begin
= yytext
; return CONFIGURE_FILE
; }
1878 #line 102 "libmemcached/options/scanner.l"
1879 { yyextra
->begin
= yytext
; return CONFIGURE_FILE
; }
1883 #line 103 "libmemcached/options/scanner.l"
1884 { yyextra
->begin
= yytext
; return CONNECT_TIMEOUT
; }
1888 #line 104 "libmemcached/options/scanner.l"
1889 { yyextra
->begin
= yytext
; return CONNECT_TIMEOUT
; }
1893 #line 105 "libmemcached/options/scanner.l"
1894 { yyextra
->begin
= yytext
; return DISTRIBUTION
; }
1898 #line 106 "libmemcached/options/scanner.l"
1899 { yyextra
->begin
= yytext
; return HASH
; }
1903 #line 107 "libmemcached/options/scanner.l"
1904 { yyextra
->begin
= yytext
; return HASH_WITH_PREFIX_KEY
; }
1908 #line 108 "libmemcached/options/scanner.l"
1909 { yyextra
->begin
= yytext
; return HASH_WITH_PREFIX_KEY
; }
1913 #line 109 "libmemcached/options/scanner.l"
1914 { yyextra
->begin
= yytext
; return IO_BYTES_WATERMARK
; }
1918 #line 110 "libmemcached/options/scanner.l"
1919 { yyextra
->begin
= yytext
; return IO_BYTES_WATERMARK
; }
1923 #line 111 "libmemcached/options/scanner.l"
1924 { yyextra
->begin
= yytext
; return IO_KEY_PREFETCH
; }
1928 #line 112 "libmemcached/options/scanner.l"
1929 { yyextra
->begin
= yytext
; return IO_KEY_PREFETCH
; }
1933 #line 113 "libmemcached/options/scanner.l"
1934 { yyextra
->begin
= yytext
; return IO_MSG_WATERMARK
; }
1938 #line 114 "libmemcached/options/scanner.l"
1939 { yyextra
->begin
= yytext
; return IO_MSG_WATERMARK
; }
1943 #line 115 "libmemcached/options/scanner.l"
1944 { yyextra
->begin
= yytext
; return KETAMA_WEIGHTED
; }
1948 #line 116 "libmemcached/options/scanner.l"
1949 { yyextra
->begin
= yytext
; return KETAMA_WEIGHTED
; }
1953 #line 117 "libmemcached/options/scanner.l"
1954 { yyextra
->begin
= yytext
; return NOREPLY
; }
1958 #line 118 "libmemcached/options/scanner.l"
1959 { yyextra
->begin
= yytext
; return NUMBER_OF_REPLICAS
; }
1963 #line 119 "libmemcached/options/scanner.l"
1964 { yyextra
->begin
= yytext
; return NUMBER_OF_REPLICAS
; }
1968 #line 120 "libmemcached/options/scanner.l"
1969 { yyextra
->begin
= yytext
; return POLL_TIMEOUT
; }
1973 #line 121 "libmemcached/options/scanner.l"
1974 { yyextra
->begin
= yytext
; return POLL_TIMEOUT
; }
1978 #line 122 "libmemcached/options/scanner.l"
1979 { yyextra
->begin
= yytext
; return RANDOMIZE_REPLICA_READ
; }
1983 #line 123 "libmemcached/options/scanner.l"
1984 { yyextra
->begin
= yytext
; return RANDOMIZE_REPLICA_READ
; }
1988 #line 124 "libmemcached/options/scanner.l"
1989 { yyextra
->begin
= yytext
; return RCV_TIMEOUT
; }
1993 #line 125 "libmemcached/options/scanner.l"
1994 { yyextra
->begin
= yytext
; return RCV_TIMEOUT
; }
1998 #line 126 "libmemcached/options/scanner.l"
1999 { yyextra
->begin
= yytext
; return RETRY_TIMEOUT
; }
2003 #line 127 "libmemcached/options/scanner.l"
2004 { yyextra
->begin
= yytext
; return RETRY_TIMEOUT
; }
2008 #line 128 "libmemcached/options/scanner.l"
2009 { yyextra
->begin
= yytext
; return SERVER_FAILURE_LIMIT
; }
2013 #line 129 "libmemcached/options/scanner.l"
2014 { yyextra
->begin
= yytext
; return SERVER_FAILURE_LIMIT
; }
2018 #line 130 "libmemcached/options/scanner.l"
2019 { yyextra
->begin
= yytext
; return SND_TIMEOUT
; }
2023 #line 131 "libmemcached/options/scanner.l"
2024 { yyextra
->begin
= yytext
; return SND_TIMEOUT
; }
2028 #line 132 "libmemcached/options/scanner.l"
2029 { yyextra
->begin
= yytext
; return SOCKET_RECV_SIZE
; }
2033 #line 133 "libmemcached/options/scanner.l"
2034 { yyextra
->begin
= yytext
; return SOCKET_RECV_SIZE
; }
2038 #line 134 "libmemcached/options/scanner.l"
2039 { yyextra
->begin
= yytext
; return SOCKET_SEND_SIZE
; }
2043 #line 135 "libmemcached/options/scanner.l"
2044 { yyextra
->begin
= yytext
; return SOCKET_SEND_SIZE
; }
2048 #line 136 "libmemcached/options/scanner.l"
2049 { yyextra
->begin
= yytext
; return SORT_HOSTS
; }
2053 #line 137 "libmemcached/options/scanner.l"
2054 { yyextra
->begin
= yytext
; return SORT_HOSTS
; }
2058 #line 138 "libmemcached/options/scanner.l"
2059 { yyextra
->begin
= yytext
; return SUPPORT_CAS
; }
2063 #line 139 "libmemcached/options/scanner.l"
2064 { yyextra
->begin
= yytext
; return SUPPORT_CAS
; }
2068 #line 140 "libmemcached/options/scanner.l"
2069 { yyextra
->begin
= yytext
; return _TCP_NODELAY
; }
2073 #line 141 "libmemcached/options/scanner.l"
2074 { yyextra
->begin
= yytext
; return _TCP_NODELAY
; }
2078 #line 142 "libmemcached/options/scanner.l"
2079 { yyextra
->begin
= yytext
; return _TCP_KEEPALIVE
; }
2083 #line 143 "libmemcached/options/scanner.l"
2084 { yyextra
->begin
= yytext
; return _TCP_KEEPALIVE
; }
2088 #line 144 "libmemcached/options/scanner.l"
2089 { yyextra
->begin
= yytext
; return _TCP_KEEPIDLE
; }
2093 #line 145 "libmemcached/options/scanner.l"
2094 { yyextra
->begin
= yytext
; return _TCP_KEEPIDLE
; }
2098 #line 146 "libmemcached/options/scanner.l"
2099 { yyextra
->begin
= yytext
; return USER_DATA
; }
2103 #line 147 "libmemcached/options/scanner.l"
2104 { yyextra
->begin
= yytext
; return USER_DATA
; }
2108 #line 148 "libmemcached/options/scanner.l"
2109 { yyextra
->begin
= yytext
; return USE_UDP
; }
2113 #line 149 "libmemcached/options/scanner.l"
2114 { yyextra
->begin
= yytext
; return USE_UDP
; }
2118 #line 151 "libmemcached/options/scanner.l"
2119 { yyextra
->begin
= yytext
; return PREFIX_KEY
; }
2123 #line 152 "libmemcached/options/scanner.l"
2124 { yyextra
->begin
= yytext
; return PREFIX_KEY
; }
2128 #line 154 "libmemcached/options/scanner.l"
2129 { yyextra
->begin
= yytext
; return INCLUDE
; }
2133 #line 155 "libmemcached/options/scanner.l"
2134 { yyextra
->begin
= yytext
; return RESET
; }
2138 #line 156 "libmemcached/options/scanner.l"
2139 { yyextra
->begin
= yytext
; return PARSER_DEBUG
; }
2143 #line 157 "libmemcached/options/scanner.l"
2144 { yyextra
->begin
= yytext
; return SERVERS
; }
2148 #line 158 "libmemcached/options/scanner.l"
2149 { yyextra
->begin
= yytext
; return END
; }
2153 #line 159 "libmemcached/options/scanner.l"
2154 { yyextra
->begin
= yytext
; return ERROR
; }
2158 #line 161 "libmemcached/options/scanner.l"
2163 #line 162 "libmemcached/options/scanner.l"
2168 #line 165 "libmemcached/options/scanner.l"
2170 yyextra
->begin
= yytext
;
2171 return UNKNOWN_OPTION
;
2176 #line 170 "libmemcached/options/scanner.l"
2177 { return CONSISTENT
; }
2181 #line 171 "libmemcached/options/scanner.l"
2186 #line 172 "libmemcached/options/scanner.l"
2191 #line 174 "libmemcached/options/scanner.l"
2196 #line 175 "libmemcached/options/scanner.l"
2201 #line 176 "libmemcached/options/scanner.l"
2206 #line 177 "libmemcached/options/scanner.l"
2207 { return FNV1A_64
; }
2211 #line 178 "libmemcached/options/scanner.l"
2216 #line 179 "libmemcached/options/scanner.l"
2217 { return FNV1A_32
; }
2221 #line 180 "libmemcached/options/scanner.l"
2226 #line 181 "libmemcached/options/scanner.l"
2231 #line 182 "libmemcached/options/scanner.l"
2236 #line 184 "libmemcached/options/scanner.l"
2238 yylval
->string
.c_str
= yytext
;
2239 yylval
->string
.length
= yyleng
;
2240 return HOSTNAME_WITH_PORT
;
2245 #line 190 "libmemcached/options/scanner.l"
2247 yylval
->string
.c_str
= yytext
;
2248 yylval
->string
.length
= yyleng
;
2254 #line 196 "libmemcached/options/scanner.l"
2256 yylval
->string
.c_str
= yytext
;
2257 yylval
->string
.length
= yyleng
;
2258 return IPADDRESS_WITH_PORT
;
2263 #line 202 "libmemcached/options/scanner.l"
2265 yylval
->string
.c_str
= yytext
;
2266 yylval
->string
.length
= yyleng
;
2272 #line 208 "libmemcached/options/scanner.l"
2274 yylval
->string
.c_str
= yytext
;
2275 yylval
->string
.length
= yyleng
;
2281 #line 214 "libmemcached/options/scanner.l"
2283 yylval
->string
.c_str
= yytext
;
2284 yylval
->string
.length
= yyleng
;
2285 return QUOTED_STRING
;
2290 #line 220 "libmemcached/options/scanner.l"
2292 yyextra
->begin
= yytext
;
2298 #line 225 "libmemcached/options/scanner.l"
2301 #line 2302 "libmemcached/options/scanner.cc"
2302 case YY_STATE_EOF(INITIAL
):
2305 case YY_END_OF_BUFFER
:
2307 /* Amount of text matched not including the EOB char. */
2308 int yy_amount_of_matched_text
= (int) (yy_cp
- yyg
->yytext_ptr
) - 1;
2310 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2311 *yy_cp
= yyg
->yy_hold_char
;
2312 YY_RESTORE_YY_MORE_OFFSET
2314 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_NEW
)
2316 /* We're scanning a new file or input source. It's
2317 * possible that this happened because the user
2318 * just pointed yyin at a new source and called
2319 * config_lex(). If so, then we have to assure
2320 * consistency between YY_CURRENT_BUFFER and our
2321 * globals. Here is the right place to do so, because
2322 * this is the first action (other than possibly a
2323 * back-up) that will match for the new input source.
2325 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
2326 YY_CURRENT_BUFFER_LVALUE
->yy_input_file
= yyin
;
2327 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
= YY_BUFFER_NORMAL
;
2330 /* Note that here we test for yy_c_buf_p "<=" to the position
2331 * of the first EOB in the buffer, since yy_c_buf_p will
2332 * already have been incremented past the NUL character
2333 * (since all states make transitions on EOB to the
2334 * end-of-buffer state). Contrast this with the test
2337 if ( yyg
->yy_c_buf_p
<= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
2338 { /* This was really a NUL. */
2339 yy_state_type yy_next_state
;
2341 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
2343 yy_current_state
= yy_get_previous_state( yyscanner
);
2345 /* Okay, we're now positioned to make the NUL
2346 * transition. We couldn't have
2347 * yy_get_previous_state() go ahead and do it
2348 * for us because it doesn't know how to deal
2349 * with the possibility of jamming (and we don't
2350 * want to build jamming into it because then it
2351 * will run more slowly).
2354 yy_next_state
= yy_try_NUL_trans( yy_current_state
, yyscanner
);
2356 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2358 if ( yy_next_state
)
2360 /* Consume the NUL. */
2361 yy_cp
= ++yyg
->yy_c_buf_p
;
2362 yy_current_state
= yy_next_state
;
2368 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
2369 yy_cp
= yyg
->yy_c_buf_p
;
2370 goto yy_find_action
;
2374 else switch ( yy_get_next_buffer( yyscanner
) )
2376 case EOB_ACT_END_OF_FILE
:
2378 yyg
->yy_did_buffer_switch_on_eof
= 0;
2380 if ( config_wrap(yyscanner
) )
2382 /* Note: because we've taken care in
2383 * yy_get_next_buffer() to have set up
2384 * yytext, we can now set up
2385 * yy_c_buf_p so that if some total
2386 * hoser (like flex itself) wants to
2387 * call the scanner after we return the
2388 * YY_NULL, it'll still work - another
2389 * YY_NULL will get returned.
2391 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2393 yy_act
= YY_STATE_EOF(YY_START
);
2399 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
2405 case EOB_ACT_CONTINUE_SCAN
:
2407 yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
2409 yy_current_state
= yy_get_previous_state( yyscanner
);
2411 yy_cp
= yyg
->yy_c_buf_p
;
2412 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2415 case EOB_ACT_LAST_MATCH
:
2417 &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
];
2419 yy_current_state
= yy_get_previous_state( yyscanner
);
2421 yy_cp
= yyg
->yy_c_buf_p
;
2422 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2423 goto yy_find_action
;
2430 "fatal flex scanner internal error--no action found" );
2431 } /* end of action switch */
2432 } /* end of scanning one token */
2433 } /* end of config_lex */
2434 /* %ok-for-header */
2437 /* %not-for-header */
2439 /* %ok-for-header */
2443 /* yy_get_next_buffer - try to read in a new buffer
2445 * Returns a code representing an action:
2446 * EOB_ACT_LAST_MATCH -
2447 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2448 * EOB_ACT_END_OF_FILE - end of file
2451 static int yy_get_next_buffer (yyscan_t yyscanner
)
2456 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2457 register char *dest
= YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
;
2458 register char *source
= yyg
->yytext_ptr
;
2459 register int number_to_move
, i
;
2462 if ( yyg
->yy_c_buf_p
> &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] )
2464 "fatal flex scanner internal error--end of buffer missed" );
2466 if ( YY_CURRENT_BUFFER_LVALUE
->yy_fill_buffer
== 0 )
2467 { /* Don't try to fill the buffer, so this is an EOF. */
2468 if ( yyg
->yy_c_buf_p
- yyg
->yytext_ptr
- YY_MORE_ADJ
== 1 )
2470 /* We matched a single character, the EOB, so
2471 * treat this as a final EOF.
2473 return EOB_ACT_END_OF_FILE
;
2478 /* We matched some text prior to the EOB, first
2481 return EOB_ACT_LAST_MATCH
;
2485 /* Try to read more data. */
2487 /* First move last chars to start of buffer. */
2488 number_to_move
= (int) (yyg
->yy_c_buf_p
- yyg
->yytext_ptr
) - 1;
2490 for ( i
= 0; i
< number_to_move
; ++i
)
2491 *(dest
++) = *(source
++);
2493 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_EOF_PENDING
)
2494 /* don't do the read, it's not guaranteed to return an EOF,
2497 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
= 0;
2502 YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
- number_to_move
- 1;
2504 while ( num_to_read
<= 0 )
2505 { /* Not enough room in the buffer - grow it. */
2507 /* just a shorter name for the current buffer */
2508 YY_BUFFER_STATE b
= YY_CURRENT_BUFFER
;
2510 int yy_c_buf_p_offset
=
2511 (int) (yyg
->yy_c_buf_p
- b
->yy_ch_buf
);
2513 if ( b
->yy_is_our_buffer
)
2515 int new_size
= b
->yy_buf_size
* 2;
2517 if ( new_size
<= 0 )
2518 b
->yy_buf_size
+= b
->yy_buf_size
/ 8;
2520 b
->yy_buf_size
*= 2;
2522 b
->yy_ch_buf
= (char *)
2523 /* Include room in for 2 EOB chars. */
2524 config_realloc((void *) b
->yy_ch_buf
,b
->yy_buf_size
+ 2 ,yyscanner
);
2527 /* Can't grow it, we don't own it. */
2530 if ( ! b
->yy_ch_buf
)
2532 "fatal error - scanner input buffer overflow" );
2534 yyg
->yy_c_buf_p
= &b
->yy_ch_buf
[yy_c_buf_p_offset
];
2536 num_to_read
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
-
2541 if ( num_to_read
> YY_READ_BUF_SIZE
)
2542 num_to_read
= YY_READ_BUF_SIZE
;
2544 /* Read in more data. */
2545 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[number_to_move
]),
2546 yyg
->yy_n_chars
, (size_t) num_to_read
);
2548 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2551 if ( yyg
->yy_n_chars
== 0 )
2553 if ( number_to_move
== YY_MORE_ADJ
)
2555 ret_val
= EOB_ACT_END_OF_FILE
;
2556 config_restart(yyin
,yyscanner
);
2561 ret_val
= EOB_ACT_LAST_MATCH
;
2562 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
=
2563 YY_BUFFER_EOF_PENDING
;
2568 ret_val
= EOB_ACT_CONTINUE_SCAN
;
2570 if ((yy_size_t
) (yyg
->yy_n_chars
+ number_to_move
) > YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
) {
2571 /* Extend the array by 50%, plus the number we really need. */
2572 yy_size_t new_size
= yyg
->yy_n_chars
+ number_to_move
+ (yyg
->yy_n_chars
>> 1);
2573 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
= (char *) config_realloc((void *) YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
,new_size
,yyscanner
);
2574 if ( ! YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
)
2575 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2578 yyg
->yy_n_chars
+= number_to_move
;
2579 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] = YY_END_OF_BUFFER_CHAR
;
2580 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] = YY_END_OF_BUFFER_CHAR
;
2582 yyg
->yytext_ptr
= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[0];
2587 /* yy_get_previous_state - get the state just before the EOB char was reached */
2590 /* %not-for-header */
2592 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
)
2597 register yy_state_type yy_current_state
;
2598 register char *yy_cp
;
2599 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2601 /* %% [15.0] code to get the start state into yy_current_state goes here */
2602 yy_current_state
= yyg
->yy_start
;
2603 yy_current_state
+= YY_AT_BOL();
2605 for ( yy_cp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
; yy_cp
< yyg
->yy_c_buf_p
; ++yy_cp
)
2607 /* %% [16.0] code to find the next state goes here */
2608 register YY_CHAR yy_c
= (*yy_cp
? yy_ec
[YY_SC_TO_UI(*yy_cp
)] : 1);
2609 if ( yy_accept
[yy_current_state
] )
2611 yyg
->yy_last_accepting_state
= yy_current_state
;
2612 yyg
->yy_last_accepting_cpos
= yy_cp
;
2614 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2616 yy_current_state
= (int) yy_def
[yy_current_state
];
2617 if ( yy_current_state
>= 811 )
2618 yy_c
= yy_meta
[(unsigned int) yy_c
];
2620 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2623 return yy_current_state
;
2626 /* yy_try_NUL_trans - try to make a transition on the NUL character
2629 * next_state = yy_try_NUL_trans( current_state );
2632 static yy_state_type
yy_try_NUL_trans (yy_state_type yy_current_state
, yyscan_t yyscanner
)
2637 register int yy_is_jam
;
2638 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
; /* This var may be unused depending upon options. */
2639 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
2640 register char *yy_cp
= yyg
->yy_c_buf_p
;
2642 register YY_CHAR yy_c
= 1;
2643 if ( yy_accept
[yy_current_state
] )
2645 yyg
->yy_last_accepting_state
= yy_current_state
;
2646 yyg
->yy_last_accepting_cpos
= yy_cp
;
2648 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2650 yy_current_state
= (int) yy_def
[yy_current_state
];
2651 if ( yy_current_state
>= 811 )
2652 yy_c
= yy_meta
[(unsigned int) yy_c
];
2654 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2655 yy_is_jam
= (yy_current_state
== 810);
2657 return yy_is_jam
? 0 : yy_current_state
;
2667 static int yyinput (yyscan_t yyscanner
)
2669 static int input (yyscan_t yyscanner
)
2677 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2679 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2681 if ( *yyg
->yy_c_buf_p
== YY_END_OF_BUFFER_CHAR
)
2683 /* yy_c_buf_p now points to the character we want to return.
2684 * If this occurs *before* the EOB characters, then it's a
2685 * valid NUL; if not, then we've hit the end of the buffer.
2687 if ( yyg
->yy_c_buf_p
< &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
2688 /* This was really a NUL. */
2689 *yyg
->yy_c_buf_p
= '\0';
2692 { /* need more input */
2693 int offset
= yyg
->yy_c_buf_p
- yyg
->yytext_ptr
;
2696 switch ( yy_get_next_buffer( yyscanner
) )
2698 case EOB_ACT_LAST_MATCH
:
2699 /* This happens because yy_g_n_b()
2700 * sees that we've accumulated a
2701 * token and flags that we need to
2702 * try matching the token before
2703 * proceeding. But for input(),
2704 * there's no matching to consider.
2705 * So convert the EOB_ACT_LAST_MATCH
2706 * to EOB_ACT_END_OF_FILE.
2709 /* Reset buffer status. */
2710 config_restart(yyin
,yyscanner
);
2714 case EOB_ACT_END_OF_FILE
:
2716 if ( config_wrap(yyscanner
) )
2719 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
2722 return yyinput(yyscanner
);
2724 return input(yyscanner
);
2728 case EOB_ACT_CONTINUE_SCAN
:
2729 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ offset
;
2735 c
= *(unsigned char *) yyg
->yy_c_buf_p
; /* cast for 8-bit char's */
2736 *yyg
->yy_c_buf_p
= '\0'; /* preserve yytext */
2737 yyg
->yy_hold_char
= *++yyg
->yy_c_buf_p
;
2739 /* %% [19.0] update BOL and yylineno */
2740 YY_CURRENT_BUFFER_LVALUE
->yy_at_bol
= (c
== '\n');
2745 #endif /* ifndef YY_NO_INPUT */
2748 /** Immediately switch to a different input stream.
2749 * @param input_file A readable stream.
2750 * @param yyscanner The scanner object.
2751 * @note This function does not reset the start condition to @c INITIAL .
2754 void config_restart (FILE * input_file
, yyscan_t yyscanner
)
2759 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2761 if ( ! YY_CURRENT_BUFFER
){
2762 config_ensure_buffer_stack (yyscanner
);
2763 YY_CURRENT_BUFFER_LVALUE
=
2764 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
2767 config__init_buffer(YY_CURRENT_BUFFER
,input_file
,yyscanner
);
2768 config__load_buffer_state(yyscanner
);
2771 /** Switch to a different input buffer.
2772 * @param new_buffer The new input buffer.
2773 * @param yyscanner The scanner object.
2776 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
2781 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2783 /* TODO. We should be able to replace this entire function body
2785 * config_pop_buffer_state();
2786 * config_push_buffer_state(new_buffer);
2788 config_ensure_buffer_stack (yyscanner
);
2789 if ( YY_CURRENT_BUFFER
== new_buffer
)
2792 if ( YY_CURRENT_BUFFER
)
2794 /* Flush out information for old buffer. */
2795 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2796 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
2797 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2800 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
2801 config__load_buffer_state(yyscanner
);
2803 /* We don't actually know whether we did this switch during
2804 * EOF (config_wrap()) processing, but the only time this flag
2805 * is looked at is after config_wrap() is called, so it's safe
2806 * to go ahead and always set it.
2808 yyg
->yy_did_buffer_switch_on_eof
= 1;
2812 static void config__load_buffer_state (yyscan_t yyscanner
)
2817 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2818 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
2819 yyg
->yytext_ptr
= yyg
->yy_c_buf_p
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
;
2820 yyin
= YY_CURRENT_BUFFER_LVALUE
->yy_input_file
;
2821 yyg
->yy_hold_char
= *yyg
->yy_c_buf_p
;
2824 /** Allocate and initialize an input buffer state.
2825 * @param file A readable stream.
2826 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2827 * @param yyscanner The scanner object.
2828 * @return the allocated buffer state.
2831 YY_BUFFER_STATE
config__create_buffer (FILE * file
, int size
, yyscan_t yyscanner
)
2838 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
2840 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2842 b
->yy_buf_size
= size
;
2844 /* yy_ch_buf has to be 2 characters longer than the size given because
2845 * we need to put in 2 end-of-buffer characters.
2847 b
->yy_ch_buf
= (char *) config_alloc(b
->yy_buf_size
+ 2 ,yyscanner
);
2848 if ( ! b
->yy_ch_buf
)
2849 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2851 b
->yy_is_our_buffer
= 1;
2853 config__init_buffer(b
,file
,yyscanner
);
2858 /** Destroy the buffer.
2859 * @param b a buffer created with config__create_buffer()
2860 * @param yyscanner The scanner object.
2863 void config__delete_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2868 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2873 if ( b
== YY_CURRENT_BUFFER
) /* Not sure if we should pop here. */
2874 YY_CURRENT_BUFFER_LVALUE
= (YY_BUFFER_STATE
) 0;
2876 if ( b
->yy_is_our_buffer
)
2877 config_free((void *) b
->yy_ch_buf
,yyscanner
);
2879 config_free((void *) b
,yyscanner
);
2885 extern int isatty (int );
2886 #endif /* __cplusplus */
2893 /* Initializes or reinitializes a buffer.
2894 * This function is sometimes called more than once on the same buffer,
2895 * such as during a config_restart() or at EOF.
2898 static void config__init_buffer (YY_BUFFER_STATE b
, FILE * file
, yyscan_t yyscanner
)
2905 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2907 config__flush_buffer(b
,yyscanner
);
2909 b
->yy_input_file
= file
;
2910 b
->yy_fill_buffer
= 1;
2912 /* If b is the current buffer, then config__init_buffer was _probably_
2913 * called from config_restart() or through yy_get_next_buffer.
2914 * In that case, we don't want to reset the lineno or column.
2916 if (b
!= YY_CURRENT_BUFFER
){
2917 b
->yy_bs_lineno
= 1;
2918 b
->yy_bs_column
= 0;
2923 b
->yy_is_interactive
= file
? (isatty( fileno(file
) ) > 0) : 0;
2931 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2932 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2933 * @param yyscanner The scanner object.
2936 void config__flush_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2941 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2947 /* We always need two end-of-buffer characters. The first causes
2948 * a transition to the end-of-buffer state. The second causes
2949 * a jam in that state.
2951 b
->yy_ch_buf
[0] = YY_END_OF_BUFFER_CHAR
;
2952 b
->yy_ch_buf
[1] = YY_END_OF_BUFFER_CHAR
;
2954 b
->yy_buf_pos
= &b
->yy_ch_buf
[0];
2957 b
->yy_buffer_status
= YY_BUFFER_NEW
;
2959 if ( b
== YY_CURRENT_BUFFER
)
2960 config__load_buffer_state(yyscanner
);
2964 /** Pushes the new state onto the stack. The new state becomes
2965 * the current state. This function will allocate the stack
2967 * @param new_buffer The new state.
2968 * @param yyscanner The scanner object.
2971 void config_push_buffer_state (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
2976 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2977 if (new_buffer
== NULL
)
2980 config_ensure_buffer_stack(yyscanner
);
2982 /* This block is copied from config__switch_to_buffer. */
2983 if ( YY_CURRENT_BUFFER
)
2985 /* Flush out information for old buffer. */
2986 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2987 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
2988 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2991 /* Only push if top exists. Otherwise, replace top. */
2992 if (YY_CURRENT_BUFFER
)
2993 yyg
->yy_buffer_stack_top
++;
2994 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
2996 /* copied from config__switch_to_buffer. */
2997 config__load_buffer_state(yyscanner
);
2998 yyg
->yy_did_buffer_switch_on_eof
= 1;
3003 /** Removes and deletes the top of the stack, if present.
3004 * The next element becomes the new top.
3005 * @param yyscanner The scanner object.
3008 void config_pop_buffer_state (yyscan_t yyscanner
)
3013 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3014 if (!YY_CURRENT_BUFFER
)
3017 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
3018 YY_CURRENT_BUFFER_LVALUE
= NULL
;
3019 if (yyg
->yy_buffer_stack_top
> 0)
3020 --yyg
->yy_buffer_stack_top
;
3022 if (YY_CURRENT_BUFFER
) {
3023 config__load_buffer_state(yyscanner
);
3024 yyg
->yy_did_buffer_switch_on_eof
= 1;
3030 /* Allocates the stack if it does not exist.
3031 * Guarantees space for at least one push.
3034 static void config_ensure_buffer_stack (yyscan_t yyscanner
)
3040 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3042 if (!yyg
->yy_buffer_stack
) {
3044 /* First allocation is just for 2 elements, since we don't know if this
3045 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3046 * immediate realloc on the next call.
3049 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_alloc
3050 (num_to_alloc
* sizeof(struct yy_buffer_state
*)
3052 if ( ! yyg
->yy_buffer_stack
)
3053 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
3055 memset(yyg
->yy_buffer_stack
, 0, num_to_alloc
* sizeof(struct yy_buffer_state
*));
3057 yyg
->yy_buffer_stack_max
= num_to_alloc
;
3058 yyg
->yy_buffer_stack_top
= 0;
3062 if (yyg
->yy_buffer_stack_top
>= (yyg
->yy_buffer_stack_max
) - 1){
3064 /* Increase the buffer to prepare for a possible push. */
3065 int grow_size
= 8 /* arbitrary grow size */;
3067 num_to_alloc
= yyg
->yy_buffer_stack_max
+ grow_size
;
3068 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_realloc
3069 (yyg
->yy_buffer_stack
,
3070 num_to_alloc
* sizeof(struct yy_buffer_state
*)
3072 if ( ! yyg
->yy_buffer_stack
)
3073 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
3075 /* zero only the new slots.*/
3076 memset(yyg
->yy_buffer_stack
+ yyg
->yy_buffer_stack_max
, 0, grow_size
* sizeof(struct yy_buffer_state
*));
3077 yyg
->yy_buffer_stack_max
= num_to_alloc
;
3083 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3084 * @param base the character buffer
3085 * @param size the size in bytes of the character buffer
3086 * @param yyscanner The scanner object.
3087 * @return the newly allocated buffer state object.
3089 YY_BUFFER_STATE
config__scan_buffer (char * base
, yy_size_t size
, yyscan_t yyscanner
)
3094 base
[size
-2] != YY_END_OF_BUFFER_CHAR
||
3095 base
[size
-1] != YY_END_OF_BUFFER_CHAR
)
3096 /* They forgot to leave room for the EOB's. */
3099 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
3101 YY_FATAL_ERROR( "out of dynamic memory in config__scan_buffer()" );
3103 b
->yy_buf_size
= size
- 2; /* "- 2" to take care of EOB's */
3104 b
->yy_buf_pos
= b
->yy_ch_buf
= base
;
3105 b
->yy_is_our_buffer
= 0;
3106 b
->yy_input_file
= 0;
3107 b
->yy_n_chars
= b
->yy_buf_size
;
3108 b
->yy_is_interactive
= 0;
3110 b
->yy_fill_buffer
= 0;
3111 b
->yy_buffer_status
= YY_BUFFER_NEW
;
3113 config__switch_to_buffer(b
,yyscanner
);
3120 /** Setup the input buffer state to scan a string. The next call to config_lex() will
3121 * scan from a @e copy of @a str.
3122 * @param yystr a NUL-terminated string to scan
3123 * @param yyscanner The scanner object.
3124 * @return the newly allocated buffer state object.
3125 * @note If you want to scan bytes that may contain NUL values, then use
3126 * config__scan_bytes() instead.
3128 YY_BUFFER_STATE
config__scan_string (yyconst
char * yystr
, yyscan_t yyscanner
)
3131 return config__scan_bytes(yystr
,strlen(yystr
) ,yyscanner
);
3136 /** Setup the input buffer state to scan the given bytes. The next call to config_lex() will
3137 * scan from a @e copy of @a bytes.
3138 * @param bytes the byte buffer to scan
3139 * @param len the number of bytes in the buffer pointed to by @a bytes.
3140 * @param yyscanner The scanner object.
3141 * @return the newly allocated buffer state object.
3143 YY_BUFFER_STATE
config__scan_bytes (yyconst
char * yybytes
, int _yybytes_len
, yyscan_t yyscanner
)
3150 /* Get memory for full buffer, including space for trailing EOB's. */
3151 n
= _yybytes_len
+ 2;
3152 buf
= (char *) config_alloc(n
,yyscanner
);
3154 YY_FATAL_ERROR( "out of dynamic memory in config__scan_bytes()" );
3156 for ( i
= 0; i
< _yybytes_len
; ++i
)
3157 buf
[i
] = yybytes
[i
];
3159 buf
[_yybytes_len
] = buf
[_yybytes_len
+1] = YY_END_OF_BUFFER_CHAR
;
3161 b
= config__scan_buffer(buf
,n
,yyscanner
);
3163 YY_FATAL_ERROR( "bad buffer in config__scan_bytes()" );
3165 /* It's okay to grow etc. this buffer, and we should throw it
3166 * away when we're done.
3168 b
->yy_is_our_buffer
= 1;
3174 #ifndef YY_EXIT_FAILURE
3175 #define YY_EXIT_FAILURE 2
3179 static void yy_fatal_error (yyconst
char* msg
, yyscan_t yyscanner
)
3181 (void) fprintf( stderr
, "%s\n", msg
);
3182 exit( YY_EXIT_FAILURE
);
3188 /* Redefine yyless() so it works in section 3 code. */
3194 /* Undo effects of setting up yytext. */ \
3195 int yyless_macro_arg = (n); \
3196 YY_LESS_LINENO(yyless_macro_arg);\
3197 yytext[yyleng] = yyg->yy_hold_char; \
3198 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
3199 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
3200 *yyg->yy_c_buf_p = '\0'; \
3201 yyleng = yyless_macro_arg; \
3205 /* Accessor methods (get/set functions) to struct members. */
3210 /** Get the user-defined data for this scanner.
3211 * @param yyscanner The scanner object.
3213 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
)
3215 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3221 /** Get the current line number.
3222 * @param yyscanner The scanner object.
3224 int config_get_lineno (yyscan_t yyscanner
)
3226 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3228 if (! YY_CURRENT_BUFFER
)
3234 /** Get the current column number.
3235 * @param yyscanner The scanner object.
3237 int config_get_column (yyscan_t yyscanner
)
3239 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3241 if (! YY_CURRENT_BUFFER
)
3247 /** Get the input stream.
3248 * @param yyscanner The scanner object.
3250 FILE *config_get_in (yyscan_t yyscanner
)
3252 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3256 /** Get the output stream.
3257 * @param yyscanner The scanner object.
3259 FILE *config_get_out (yyscan_t yyscanner
)
3261 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3265 /** Get the length of the current token.
3266 * @param yyscanner The scanner object.
3268 int config_get_leng (yyscan_t yyscanner
)
3270 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3274 /** Get the current token.
3275 * @param yyscanner The scanner object.
3278 char *config_get_text (yyscan_t yyscanner
)
3280 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3286 /** Set the user-defined data. This data is never touched by the scanner.
3287 * @param user_defined The data to be associated with this scanner.
3288 * @param yyscanner The scanner object.
3290 void config_set_extra (YY_EXTRA_TYPE user_defined
, yyscan_t yyscanner
)
3292 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3293 yyextra
= user_defined
;
3298 /** Set the current line number.
3299 * @param line_number
3300 * @param yyscanner The scanner object.
3302 void config_set_lineno (int line_number
, yyscan_t yyscanner
)
3304 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3306 /* lineno is only valid if an input buffer exists. */
3307 if (! YY_CURRENT_BUFFER
)
3308 yy_fatal_error( "config_set_lineno called with no buffer" , yyscanner
);
3310 yylineno
= line_number
;
3313 /** Set the current column.
3314 * @param line_number
3315 * @param yyscanner The scanner object.
3317 void config_set_column (int column_no
, yyscan_t yyscanner
)
3319 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3321 /* column is only valid if an input buffer exists. */
3322 if (! YY_CURRENT_BUFFER
)
3323 yy_fatal_error( "config_set_column called with no buffer" , yyscanner
);
3325 yycolumn
= column_no
;
3328 /** Set the input stream. This does not discard the current
3330 * @param in_str A readable stream.
3331 * @param yyscanner The scanner object.
3332 * @see config__switch_to_buffer
3334 void config_set_in (FILE * in_str
, yyscan_t yyscanner
)
3336 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3340 void config_set_out (FILE * out_str
, yyscan_t yyscanner
)
3342 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3346 int config_get_debug (yyscan_t yyscanner
)
3348 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3349 return yy_flex_debug
;
3352 void config_set_debug (int bdebug
, yyscan_t yyscanner
)
3354 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3355 yy_flex_debug
= bdebug
;
3361 /* Accessor methods for yylval and yylloc */
3363 /* %if-bison-bridge */
3365 YYSTYPE
* config_get_lval (yyscan_t yyscanner
)
3367 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3371 void config_set_lval (YYSTYPE
* yylval_param
, yyscan_t yyscanner
)
3373 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3374 yylval
= yylval_param
;
3379 /* User-visible API */
3381 /* config_lex_init is special because it creates the scanner itself, so it is
3382 * the ONLY reentrant function that doesn't take the scanner as the last argument.
3383 * That's why we explicitly handle the declaration, instead of using our macros.
3386 int config_lex_init(yyscan_t
* ptr_yy_globals
)
3389 if (ptr_yy_globals
== NULL
){
3394 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), NULL
);
3396 if (*ptr_yy_globals
== NULL
){
3401 /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
3402 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
3404 return yy_init_globals ( *ptr_yy_globals
);
3407 /* config_lex_init_extra has the same functionality as config_lex_init, but follows the
3408 * convention of taking the scanner as the last argument. Note however, that
3409 * this is a *pointer* to a scanner, as it will be allocated by this call (and
3410 * is the reason, too, why this function also must handle its own declaration).
3411 * The user defined value in the first argument will be available to config_alloc in
3412 * the yyextra field.
3415 int config_lex_init_extra(YY_EXTRA_TYPE yy_user_defined
,yyscan_t
* ptr_yy_globals
)
3418 struct yyguts_t dummy_yyguts
;
3420 config_set_extra (yy_user_defined
, &dummy_yyguts
);
3422 if (ptr_yy_globals
== NULL
){
3427 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), &dummy_yyguts
);
3429 if (*ptr_yy_globals
== NULL
){
3434 /* By setting to 0xAA, we expose bugs in
3435 yy_init_globals. Leave at 0x00 for releases. */
3436 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
3438 config_set_extra (yy_user_defined
, *ptr_yy_globals
);
3440 return yy_init_globals ( *ptr_yy_globals
);
3443 /* %endif if-c-only */
3446 static int yy_init_globals (yyscan_t yyscanner
)
3448 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3449 /* Initialization is the same as for the non-reentrant scanner.
3450 * This function is called from config_lex_destroy(), so don't allocate here.
3453 yyg
->yy_buffer_stack
= 0;
3454 yyg
->yy_buffer_stack_top
= 0;
3455 yyg
->yy_buffer_stack_max
= 0;
3456 yyg
->yy_c_buf_p
= (char *) 0;
3460 yyg
->yy_start_stack_ptr
= 0;
3461 yyg
->yy_start_stack_depth
= 0;
3462 yyg
->yy_start_stack
= NULL
;
3464 /* Defined in main.c */
3473 /* For future reference: Set errno on error, since we are called by
3480 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
3481 /* config_lex_destroy is for both reentrant and non-reentrant scanners. */
3482 int config_lex_destroy (yyscan_t yyscanner
)
3484 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3486 /* Pop the buffer stack, destroying each element. */
3487 while(YY_CURRENT_BUFFER
){
3488 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
3489 YY_CURRENT_BUFFER_LVALUE
= NULL
;
3490 config_pop_buffer_state(yyscanner
);
3493 /* Destroy the stack itself. */
3494 config_free(yyg
->yy_buffer_stack
,yyscanner
);
3495 yyg
->yy_buffer_stack
= NULL
;
3497 /* Destroy the start condition stack. */
3498 config_free(yyg
->yy_start_stack
,yyscanner
);
3499 yyg
->yy_start_stack
= NULL
;
3501 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3502 * config_lex() is called, initialization will occur. */
3503 yy_init_globals( yyscanner
);
3506 /* Destroy the main struct (reentrant only). */
3507 config_free ( yyscanner
, yyscanner
);
3515 * Internal utility routines.
3519 static void yy_flex_strncpy (char* s1
, yyconst
char * s2
, int n
, yyscan_t yyscanner
)
3522 for ( i
= 0; i
< n
; ++i
)
3527 #ifdef YY_NEED_STRLEN
3528 static int yy_flex_strlen (yyconst
char * s
, yyscan_t yyscanner
)
3531 for ( n
= 0; s
[n
]; ++n
)
3538 void *config_alloc (yy_size_t size
, yyscan_t yyscanner
)
3540 return (void *) malloc( size
);
3543 void *config_realloc (void * ptr
, yy_size_t size
, yyscan_t yyscanner
)
3545 /* The cast to (char *) in the following accommodates both
3546 * implementations that use char* generic pointers, and those
3547 * that use void* generic pointers. It works with the latter
3548 * because both ANSI C and C++ allow castless assignment from
3549 * any pointer type to void*, and deal with argument conversions
3550 * as though doing an assignment.
3552 return (void *) realloc( (char *) ptr
, size
);
3555 void config_free (void * ptr
, yyscan_t yyscanner
)
3557 free( (char *) ptr
); /* see config_realloc() for (char *) cast */
3560 /* %if-tables-serialization definitions */
3561 /* %define-yytables The name for this specific scanner's tables. */
3562 #define YYTABLES_NAME "yytables"
3565 /* %ok-for-header */
3567 #line 225 "libmemcached/options/scanner.l"
3571 void Context::init_scanner()
3573 config_lex_init(&scanner
);
3574 config_set_extra(this,scanner
);
3577 void Context::destroy_scanner()
3579 config_lex_destroy(scanner
);