1 #line 2 "libmemcached/csl/scanner.cc"
2 #line 22 "libmemcached/csl/scanner.l"
4 #include <libmemcached/csl/common.h>
5 #include <libmemcached/csl/context.h>
6 #include <libmemcached/csl/parser.h>
7 #include <libmemcached/csl/symbol.h>
9 #ifndef __INTEL_COMPILER
10 #pragma GCC diagnostic ignored "-Wold-style-cast"
11 #pragma GCC diagnostic ignored "-Wsign-compare"
12 #pragma GCC diagnostic ignored "-Wunused-parameter"
17 #define YY_EXTRA_TYPE Context*
22 #line 23 "libmemcached/csl/scanner.cc"
24 #define YY_INT_ALIGNED short int
26 /* A lexical scanner generated by flex */
31 /* %if-not-reentrant */
37 #define YY_FLEX_MAJOR_VERSION 2
38 #define YY_FLEX_MINOR_VERSION 5
39 #define YY_FLEX_SUBMINOR_VERSION 35
40 #if YY_FLEX_SUBMINOR_VERSION > 0
55 /* First, we deal with platform-specific or compiler-specific issues. */
57 /* begin standard C headers. */
65 /* %if-tables-serialization */
67 /* end standard C headers. */
70 /* flex integer type definitions */
75 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
77 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
79 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
80 * if you want the limit (max/min) macros for int types.
82 #ifndef __STDC_LIMIT_MACROS
83 #define __STDC_LIMIT_MACROS 1
87 typedef int8_t flex_int8_t
;
88 typedef uint8_t flex_uint8_t
;
89 typedef int16_t flex_int16_t
;
90 typedef uint16_t flex_uint16_t
;
91 typedef int32_t flex_int32_t
;
92 typedef uint32_t flex_uint32_t
;
94 typedef signed char flex_int8_t
;
95 typedef short int flex_int16_t
;
96 typedef int flex_int32_t
;
97 typedef unsigned char flex_uint8_t
;
98 typedef unsigned short int flex_uint16_t
;
99 typedef unsigned int flex_uint32_t
;
102 /* Limits of integral types. */
104 #define INT8_MIN (-128)
107 #define INT16_MIN (-32767-1)
110 #define INT32_MIN (-2147483647-1)
113 #define INT8_MAX (127)
116 #define INT16_MAX (32767)
119 #define INT32_MAX (2147483647)
122 #define UINT8_MAX (255U)
125 #define UINT16_MAX (65535U)
128 #define UINT32_MAX (4294967295U)
131 #endif /* ! FLEXINT_H */
140 /* The "const" storage-class-modifier is valid. */
143 #else /* ! __cplusplus */
145 /* C99 requires __STDC__ to be defined as 1. */
146 #if defined (__STDC__)
150 #endif /* defined (__STDC__) */
151 #endif /* ! __cplusplus */
154 #define yyconst const
159 /* %not-for-header */
161 /* Returned upon end-of-file. */
165 /* %not-for-header */
167 /* Promotes a possibly negative, possibly signed char to an unsigned
168 * integer for use as an array index. If the signed char is negative,
169 * we want to instead treat it as an 8-bit unsigned char, hence the
172 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
177 /* An opaque pointer. */
178 #ifndef YY_TYPEDEF_YY_SCANNER_T
179 #define YY_TYPEDEF_YY_SCANNER_T
180 typedef void* yyscan_t
;
183 /* For convenience, these vars (plus the bison vars far below)
184 are macros in the reentrant scanner. */
185 #define yyin yyg->yyin_r
186 #define yyout yyg->yyout_r
187 #define yyextra yyg->yyextra_r
188 #define yyleng yyg->yyleng_r
189 #define yytext yyg->yytext_r
190 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
191 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
192 #define yy_flex_debug yyg->yy_flex_debug_r
196 /* %if-not-reentrant */
199 /* Enter a start condition. This macro really ought to take a parameter,
200 * but we do it the disgusting crufty way forced on us by the ()-less
201 * definition of BEGIN.
203 #define BEGIN yyg->yy_start = 1 + 2 *
205 /* Translate the current start state into a value that can be later handed
206 * to BEGIN to return to the state. The YYSTATE alias is for lex
209 #define YY_START ((yyg->yy_start - 1) / 2)
210 #define YYSTATE YY_START
212 /* Action number for EOF rule of a given start state. */
213 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
215 /* Special action meaning "start processing a new file". */
216 #define YY_NEW_FILE config_restart(yyin ,yyscanner )
218 #define YY_END_OF_BUFFER_CHAR 0
220 /* Size of default input buffer. */
222 #define YY_BUF_SIZE 16384
225 /* The state buf must be large enough to hold one state per character in the main buffer.
227 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
229 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
230 #define YY_TYPEDEF_YY_BUFFER_STATE
231 typedef struct yy_buffer_state
*YY_BUFFER_STATE
;
234 /* %if-not-reentrant */
238 /* %if-not-reentrant */
242 #define EOB_ACT_CONTINUE_SCAN 0
243 #define EOB_ACT_END_OF_FILE 1
244 #define EOB_ACT_LAST_MATCH 2
246 #define YY_LESS_LINENO(n)
248 /* Return all but the first "n" matched characters back to the input stream. */
252 /* Undo effects of setting up yytext. */ \
253 int yyless_macro_arg = (n); \
254 YY_LESS_LINENO(yyless_macro_arg);\
255 *yy_cp = yyg->yy_hold_char; \
256 YY_RESTORE_YY_MORE_OFFSET \
257 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
258 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
262 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
264 #ifndef YY_TYPEDEF_YY_SIZE_T
265 #define YY_TYPEDEF_YY_SIZE_T
266 typedef size_t yy_size_t
;
269 #ifndef YY_STRUCT_YY_BUFFER_STATE
270 #define YY_STRUCT_YY_BUFFER_STATE
271 struct yy_buffer_state
280 char *yy_ch_buf
; /* input buffer */
281 char *yy_buf_pos
; /* current position in input buffer */
283 /* Size of input buffer in bytes, not including room for EOB
286 yy_size_t yy_buf_size
;
288 /* Number of characters read into yy_ch_buf, not including EOB
293 /* Whether we "own" the buffer - i.e., we know we created it,
294 * and can realloc() it to grow it, and should free() it to
297 int yy_is_our_buffer
;
299 /* Whether this is an "interactive" input source; if so, and
300 * if we're using stdio for input, then we want to use getc()
301 * instead of fread(), to make sure we stop fetching input after
304 int yy_is_interactive
;
306 /* Whether we're considered to be at the beginning of a line.
307 * If so, '^' rules will be active on the next match, otherwise
312 int yy_bs_lineno
; /**< The line count. */
313 int yy_bs_column
; /**< The column count. */
315 /* Whether to try to fill the input buffer when we reach the
320 int yy_buffer_status
;
322 #define YY_BUFFER_NEW 0
323 #define YY_BUFFER_NORMAL 1
324 /* When an EOF's been seen but there's still some text to process
325 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
326 * shouldn't try reading from the input source any more. We might
327 * still have a bunch of tokens to match, though, because of
328 * possible backing-up.
330 * When we actually see the EOF, we change the status to "new"
331 * (via config_restart()), so that the user can continue scanning by
332 * just pointing yyin at a new input file.
334 #define YY_BUFFER_EOF_PENDING 2
337 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
339 /* %if-c-only Standard (non-C++) definition */
340 /* %not-for-header */
342 /* %if-not-reentrant */
348 /* We provide macros for accessing buffer states in case in the
349 * future we want to put the buffer states in a more general
352 * Returns the top of the stack, or NULL.
354 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
355 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
358 /* Same as previous macro, but useful when we know that the buffer stack is not
359 * NULL or when we need an lvalue. For internal use only.
361 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
363 /* %if-c-only Standard (non-C++) definition */
365 /* %if-not-reentrant */
366 /* %not-for-header */
372 void config_restart (FILE *input_file
,yyscan_t yyscanner
);
373 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
374 YY_BUFFER_STATE
config__create_buffer (FILE *file
,int size
,yyscan_t yyscanner
);
375 void config__delete_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
376 void config__flush_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
377 void config_push_buffer_state (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
378 void config_pop_buffer_state (yyscan_t yyscanner
);
380 static void config_ensure_buffer_stack (yyscan_t yyscanner
);
381 static void config__load_buffer_state (yyscan_t yyscanner
);
382 static void config__init_buffer (YY_BUFFER_STATE b
,FILE *file
,yyscan_t yyscanner
);
384 #define YY_FLUSH_BUFFER config__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
386 YY_BUFFER_STATE
config__scan_buffer (char *base
,yy_size_t size
,yyscan_t yyscanner
);
387 YY_BUFFER_STATE
config__scan_string (yyconst
char *yy_str
,yyscan_t yyscanner
);
388 YY_BUFFER_STATE
config__scan_bytes (yyconst
char *bytes
,int len
,yyscan_t yyscanner
);
392 void *config_alloc (yy_size_t
,yyscan_t yyscanner
);
393 void *config_realloc (void *,yy_size_t
,yyscan_t yyscanner
);
394 void config_free (void * ,yyscan_t yyscanner
);
396 #define yy_new_buffer config__create_buffer
398 #define yy_set_interactive(is_interactive) \
400 if ( ! YY_CURRENT_BUFFER ){ \
401 config_ensure_buffer_stack (yyscanner); \
402 YY_CURRENT_BUFFER_LVALUE = \
403 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
405 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
408 #define yy_set_bol(at_bol) \
410 if ( ! YY_CURRENT_BUFFER ){\
411 config_ensure_buffer_stack (yyscanner); \
412 YY_CURRENT_BUFFER_LVALUE = \
413 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
415 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
418 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
420 /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
421 /* Begin user sect3 */
423 #define config_wrap(n) 1
424 #define YY_SKIP_YYWRAP
428 typedef unsigned char YY_CHAR
;
430 typedef int yy_state_type
;
432 #define yytext_ptr yytext_r
434 /* %if-c-only Standard (non-C++) definition */
436 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
);
437 static yy_state_type
yy_try_NUL_trans (yy_state_type current_state
,yyscan_t yyscanner
);
438 static int yy_get_next_buffer (yyscan_t yyscanner
);
439 static void yy_fatal_error (yyconst
char msg
[] ,yyscan_t yyscanner
);
443 /* Done after the current pattern has been matched and before the
444 * corresponding action - sets up yytext.
446 #define YY_DO_BEFORE_ACTION \
447 yyg->yytext_ptr = yy_bp; \
448 /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
449 yyleng = (size_t) (yy_cp - yy_bp); \
450 yyg->yy_hold_char = *yy_cp; \
452 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
453 yyg->yy_c_buf_p = yy_cp;
455 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
456 #define YY_NUM_RULES 65
457 #define YY_END_OF_BUFFER 66
458 /* This struct is not used in this scanner,
459 but its presence is necessary. */
462 flex_int32_t yy_verify
;
465 static yyconst flex_int16_t yy_accept
[521] =
467 0, 0, 66, 64, 5, 5, 1, 64, 64, 64,
468 2, 64, 64, 64, 64, 64, 64, 64, 64, 64,
469 64, 64, 64, 64, 64, 64, 0, 63, 0, 48,
470 0, 0, 0, 2, 3, 0, 0, 0, 0, 0,
471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
472 0, 0, 0, 0, 6, 48, 48, 48, 48, 48,
473 48, 48, 48, 48, 48, 48, 48, 48, 4, 62,
474 62, 2, 3, 62, 53, 62, 44, 62, 62, 62,
475 62, 62, 62, 63, 0, 62, 52, 62, 62, 62,
476 62, 62, 62, 48, 48, 48, 48, 48, 48, 48,
478 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
479 48, 48, 48, 4, 0, 62, 2, 3, 62, 62,
480 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,
481 62, 46, 48, 48, 48, 48, 48, 0, 48, 48,
482 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
483 48, 48, 48, 48, 48, 4, 62, 62, 3, 62,
484 42, 45, 47, 62, 0, 58, 62, 62, 62, 62,
485 62, 41, 62, 48, 48, 48, 48, 48, 48, 0,
486 0, 0, 48, 48, 48, 48, 48, 48, 0, 48,
487 48, 48, 0, 48, 48, 48, 0, 0, 48, 48,
489 4, 0, 62, 3, 62, 0, 62, 62, 62, 62,
490 50, 59, 51, 62, 48, 48, 48, 48, 48, 0,
491 15, 0, 0, 0, 48, 48, 48, 0, 0, 48,
492 0, 48, 48, 48, 0, 48, 0, 48, 0, 0,
493 0, 0, 48, 4, 61, 62, 62, 62, 62, 56,
494 54, 40, 60, 43, 48, 48, 48, 48, 48, 0,
495 0, 0, 0, 48, 48, 48, 0, 0, 48, 0,
496 48, 0, 48, 0, 48, 0, 48, 0, 0, 0,
497 0, 48, 61, 62, 57, 55, 0, 0, 48, 48,
498 48, 0, 0, 0, 0, 48, 19, 0, 0, 0,
500 0, 48, 0, 0, 0, 7, 0, 0, 8, 0,
501 48, 0, 0, 34, 0, 0, 61, 62, 0, 0,
502 48, 0, 48, 0, 0, 0, 0, 48, 0, 0,
503 0, 0, 48, 0, 0, 0, 0, 0, 0, 0,
504 0, 0, 0, 0, 0, 49, 0, 0, 48, 0,
505 48, 0, 0, 0, 0, 48, 0, 0, 38, 37,
506 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,
507 0, 0, 35, 0, 0, 0, 0, 0, 48, 0,
508 0, 0, 0, 39, 0, 0, 0, 0, 0, 0,
509 0, 0, 0, 29, 0, 0, 0, 0, 36, 0,
511 0, 0, 0, 48, 0, 0, 0, 0, 0, 0,
512 0, 0, 0, 0, 0, 0, 0, 30, 0, 0,
513 33, 0, 0, 0, 0, 48, 0, 0, 0, 0,
514 0, 0, 0, 23, 0, 0, 26, 0, 0, 0,
515 32, 0, 0, 0, 0, 13, 0, 0, 0, 0,
516 0, 21, 0, 0, 0, 0, 0, 31, 0, 0,
517 0, 0, 0, 0, 0, 0, 0, 0, 0, 25,
518 0, 0, 9, 10, 11, 0, 0, 0, 0, 0,
519 0, 0, 0, 0, 0, 12, 0, 0, 17, 0,
520 0, 0, 0, 0, 0, 0, 0, 18, 0, 0,
522 0, 27, 28, 0, 0, 0, 0, 0, 14, 16,
523 20, 0, 0, 0, 0, 0, 0, 22, 24, 0
526 static yyconst flex_int32_t yy_ec
[256] =
528 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
529 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
530 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
531 1, 4, 1, 5, 6, 1, 1, 1, 1, 1,
532 1, 1, 1, 7, 8, 9, 10, 11, 12, 13,
533 14, 15, 16, 17, 11, 11, 11, 18, 1, 1,
534 19, 1, 20, 1, 21, 22, 23, 24, 25, 26,
535 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
536 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
537 1, 47, 1, 1, 48, 1, 49, 50, 51, 52,
539 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
540 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
541 73, 74, 1, 1, 1, 1, 1, 1, 1, 1,
542 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
543 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
544 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
545 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
546 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
547 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
548 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
550 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
551 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
552 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
553 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
554 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
558 static yyconst flex_int32_t yy_meta
[75] =
560 1, 1, 1, 1, 2, 1, 1, 2, 2, 1,
561 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
562 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
563 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
564 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
565 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
566 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
570 static yyconst flex_int16_t yy_base
[526] =
572 0, 622, 626, 1711, 1711, 1711, 1711, 70, 617, 597,
573 67, 74, 0, 57, 52, 59, 73, 57, 64, 74,
574 610, 77, 79, 77, 65, 609, 101, 1711, 606, 138,
575 202, 215, 217, 230, 237, 250, 252, 259, 265, 277,
576 282, 287, 297, 271, 315, 377, 323, 342, 350, 359,
577 364, 396, 401, 591, 1711, 449, 242, 73, 80, 89,
578 76, 378, 78, 397, 398, 91, 76, 91, 441, 328,
579 515, 528, 481, 499, 421, 541, 543, 548, 553, 559,
580 565, 576, 590, 595, 649, 0, 597, 622, 614, 624,
581 656, 632, 674, 85, 131, 124, 230, 249, 572, 260,
583 272, 285, 403, 300, 319, 375, 336, 376, 650, 381,
584 401, 415, 436, 717, 730, 743, 756, 768, 781, 787,
585 789, 797, 803, 808, 825, 810, 838, 852, 854, 863,
586 870, 702, 454, 455, 651, 442, 456, 656, 461, 534,
587 538, 533, 537, 562, 571, 581, 628, 642, 570, 655,
588 650, 656, 569, 687, 664, 893, 921, 872, 928, 907,
589 879, 942, 944, 949, 951, 958, 967, 973, 975, 980,
590 993, 995, 1000, 660, 683, 720, 750, 755, 126, 755,
591 795, 786, 787, 805, 860, 567, 564, 856, 856, 855,
592 941, 969, 971, 987, 547, 981, 996, 976, 546, 999,
594 1048, 1062, 1075, 1711, 1088, 1090, 1024, 1097, 1106, 1112,
595 1117, 1124, 1132, 1134, 1012, 1043, 1089, 1095, 1090, 1081,
596 1711, 1087, 1085, 1107, 1099, 1116, 1111, 1110, 1120, 1124,
597 1132, 1139, 527, 1128, 1138, 1128, 1141, 1132, 1146, 1139,
598 1151, 1159, 1139, 1711, 1205, 1182, 1199, 1218, 1220, 1228,
599 1233, 1235, 1240, 1246, 526, 517, 1165, 1192, 1217, 1217,
600 1225, 514, 513, 1235, 1212, 472, 1229, 1240, 1230, 1229,
601 471, 1223, 457, 1231, 258, 1230, 1230, 1246, 1248, 1237,
602 1254, 456, 1297, 1310, 1312, 1317, 1243, 1257, 1258, 451,
603 1263, 1287, 1289, 1293, 1288, 1310, 0, 1299, 1302, 1292,
605 1304, 1293, 1315, 1315, 1313, 1711, 1318, 1308, 1711, 1309,
606 406, 1313, 1325, 1711, 1311, 1321, 1376, 1378, 1316, 1348,
607 1363, 1349, 1351, 1364, 403, 1355, 1373, 1370, 1371, 1374,
608 373, 372, 1375, 1367, 1382, 1371, 1370, 1381, 1382, 1368,
609 1386, 1418, 1378, 1391, 1388, 1406, 1394, 1405, 367, 1414,
610 1415, 362, 1402, 1423, 1409, 346, 352, 1415, 1711, 1711,
611 348, 1410, 1423, 1428, 1414, 1433, 1424, 1420, 1439, 1429,
612 1438, 1442, 1711, 1419, 1425, 1425, 1442, 1436, 1439, 1448,
613 1464, 1469, 1473, 1711, 1461, 1459, 1463, 1463, 1472, 1470,
614 1466, 1465, 1484, 1711, 1470, 1482, 1480, 1469, 1711, 1480,
616 1491, 1488, 1493, 1485, 1499, 1481, 1497, 1486, 1500, 1490,
617 1513, 334, 1516, 1510, 333, 340, 336, 1711, 1512, 1530,
618 1711, 1533, 1518, 1527, 1525, 322, 1528, 1537, 1523, 1531,
619 1529, 321, 1531, 1711, 1544, 1530, 1711, 1532, 1533, 1548,
620 1711, 1539, 1535, 1551, 1536, 1711, 1553, 1542, 1558, 1565,
621 1562, 1711, 1565, 319, 289, 1578, 1581, 1711, 1579, 1573,
622 285, 1573, 1576, 1583, 1589, 1580, 1590, 1591, 1582, 1711,
623 1577, 1578, 1711, 1711, 1711, 282, 1590, 1606, 253, 1597,
624 1606, 1607, 1606, 1607, 1608, 1711, 1613, 1598, 1711, 243,
625 1616, 1621, 1612, 237, 221, 1630, 1632, 1711, 1627, 229,
627 1625, 1711, 1711, 1643, 217, 208, 1631, 1646, 1711, 1711,
628 1711, 1647, 1635, 1653, 1636, 1652, 202, 1711, 1711, 1711,
629 1704, 154, 1706, 131, 1708
632 static yyconst flex_int16_t yy_def
[526] =
634 520, 1, 520, 520, 520, 520, 520, 521, 520, 520,
635 522, 520, 522, 522, 522, 522, 522, 522, 522, 522,
636 522, 522, 522, 522, 522, 523, 521, 520, 521, 520,
637 520, 524, 524, 524, 520, 524, 524, 524, 524, 524,
638 524, 524, 524, 524, 524, 525, 524, 524, 524, 524,
639 524, 524, 524, 523, 520, 30, 56, 56, 56, 56,
640 56, 56, 56, 56, 56, 56, 56, 56, 520, 524,
641 524, 524, 520, 524, 524, 524, 524, 524, 524, 524,
642 524, 524, 524, 524, 525, 85, 524, 524, 524, 524,
643 524, 524, 524, 56, 56, 56, 56, 56, 56, 56,
645 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
646 56, 56, 56, 520, 524, 524, 524, 520, 524, 524,
647 524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
648 524, 524, 56, 56, 56, 56, 56, 520, 56, 56,
649 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
650 56, 56, 56, 56, 56, 520, 524, 524, 520, 524,
651 524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
652 524, 524, 524, 56, 56, 56, 56, 56, 56, 520,
653 520, 520, 56, 56, 56, 56, 56, 56, 520, 56,
654 56, 56, 520, 56, 56, 56, 520, 520, 56, 56,
656 520, 524, 524, 520, 524, 524, 524, 524, 524, 524,
657 524, 524, 524, 524, 56, 56, 56, 56, 56, 520,
658 520, 520, 520, 520, 56, 56, 56, 520, 520, 56,
659 520, 56, 56, 56, 520, 56, 520, 56, 520, 520,
660 520, 520, 56, 520, 524, 524, 524, 524, 524, 524,
661 524, 524, 524, 524, 56, 56, 56, 56, 56, 520,
662 520, 520, 520, 56, 56, 56, 520, 520, 56, 520,
663 56, 520, 56, 520, 56, 520, 56, 520, 520, 520,
664 520, 56, 524, 524, 524, 524, 520, 520, 56, 56,
665 56, 520, 520, 520, 520, 56, 56, 520, 520, 520,
667 520, 56, 520, 520, 520, 520, 520, 520, 520, 520,
668 56, 520, 520, 520, 520, 520, 524, 524, 520, 520,
669 56, 520, 56, 520, 520, 520, 520, 56, 520, 520,
670 520, 520, 56, 520, 520, 520, 520, 520, 520, 520,
671 520, 520, 520, 520, 520, 524, 520, 520, 56, 520,
672 56, 520, 520, 520, 520, 56, 520, 520, 520, 520,
673 56, 520, 520, 520, 520, 520, 520, 520, 520, 520,
674 520, 520, 520, 520, 520, 520, 520, 520, 56, 520,
675 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
676 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
678 520, 520, 520, 56, 520, 520, 520, 520, 520, 520,
679 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
680 520, 520, 520, 520, 520, 56, 520, 520, 520, 520,
681 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
682 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
683 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
684 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
685 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
686 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
687 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
689 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
690 520, 520, 520, 520, 520, 520, 520, 520, 520, 0,
691 520, 520, 520, 520, 520
694 static yyconst flex_int16_t yy_nxt
[1786] =
696 4, 5, 6, 7, 8, 4, 7, 9, 4, 10,
697 11, 11, 11, 11, 11, 11, 11, 12, 7, 4,
698 13, 13, 14, 15, 16, 17, 13, 18, 19, 20,
699 13, 21, 22, 13, 13, 13, 13, 23, 24, 25,
700 13, 13, 13, 13, 13, 13, 4, 4, 13, 13,
701 14, 15, 16, 17, 13, 18, 19, 20, 13, 21,
702 22, 13, 13, 13, 13, 23, 24, 25, 13, 13,
703 13, 13, 13, 13, 28, 33, 38, 34, 34, 34,
704 34, 34, 34, 34, 35, 35, 35, 35, 35, 35,
705 35, 36, 39, 41, 37, 43, 40, 44, 45, 50,
707 47, 52, 53, 51, 38, 28, 42, 96, 97, 98,
708 99, 48, 103, 111, 112, 113, 29, 49, 133, 36,
709 39, 41, 37, 43, 40, 44, 45, 50, 47, 52,
710 53, 51, 70, 220, 42, 96, 97, 98, 99, 48,
711 103, 111, 112, 113, 221, 49, 133, 29, 56, 56,
712 56, 56, 56, 56, 56, 32, 134, 135, 56, 57,
713 58, 59, 56, 56, 56, 60, 61, 56, 56, 56,
714 56, 62, 56, 63, 56, 64, 65, 66, 67, 68,
715 56, 56, 56, 56, 134, 135, 56, 57, 58, 59,
716 56, 56, 56, 60, 61, 56, 56, 56, 56, 62,
718 56, 63, 56, 64, 65, 66, 67, 68, 56, 56,
719 56, 56, 69, 69, 69, 69, 69, 69, 69, 32,
720 519, 32, 32, 32, 32, 32, 511, 71, 71, 71,
721 71, 71, 71, 71, 32, 510, 507, 32, 33, 503,
722 72, 72, 72, 72, 72, 72, 72, 73, 73, 73,
723 73, 73, 73, 73, 32, 502, 32, 32, 32, 32,
724 32, 498, 32, 32, 32, 308, 32, 32, 136, 32,
725 94, 489, 32, 32, 75, 32, 309, 32, 32, 32,
726 76, 32, 95, 74, 32, 32, 32, 137, 77, 32,
727 32, 32, 139, 82, 32, 32, 136, 32, 94, 32,
729 486, 32, 75, 475, 32, 32, 32, 470, 76, 140,
730 95, 74, 32, 79, 78, 137, 77, 141, 32, 32,
731 139, 82, 32, 32, 32, 81, 469, 32, 80, 32,
732 32, 32, 32, 144, 32, 32, 32, 140, 87, 452,
733 446, 79, 78, 439, 32, 141, 32, 438, 83, 32,
734 32, 437, 434, 81, 32, 387, 80, 32, 32, 385,
735 145, 144, 32, 32, 384, 88, 32, 32, 32, 380,
736 32, 32, 32, 148, 377, 32, 83, 27, 27, 27,
737 27, 84, 27, 27, 85, 85, 27, 89, 145, 32,
738 360, 359, 90, 88, 27, 27, 27, 32, 100, 149,
740 32, 148, 91, 32, 32, 32, 32, 146, 32, 32,
741 353, 32, 101, 341, 147, 89, 152, 104, 102, 105,
742 90, 106, 107, 29, 85, 32, 100, 149, 32, 32,
743 91, 108, 109, 92, 142, 146, 153, 143, 110, 154,
744 101, 93, 147, 32, 152, 104, 102, 105, 32, 106,
745 107, 114, 114, 114, 114, 114, 114, 114, 322, 108,
746 109, 92, 142, 316, 153, 143, 110, 154, 32, 93,
747 56, 56, 56, 155, 174, 306, 56, 56, 304, 298,
748 175, 178, 56, 179, 56, 183, 56, 56, 56, 56,
749 56, 118, 118, 118, 118, 118, 118, 118, 56, 56,
751 56, 155, 174, 32, 56, 56, 32, 32, 175, 178,
752 56, 179, 56, 183, 56, 56, 56, 56, 56, 32,
753 295, 294, 32, 115, 288, 116, 116, 116, 116, 116,
754 116, 116, 32, 287, 272, 32, 33, 119, 117, 117,
755 117, 117, 117, 117, 117, 32, 32, 32, 32, 32,
756 32, 32, 32, 242, 237, 32, 32, 32, 184, 185,
757 32, 32, 32, 32, 186, 119, 32, 32, 187, 32,
758 123, 229, 32, 32, 228, 32, 197, 193, 189, 138,
759 32, 120, 121, 32, 32, 188, 184, 185, 32, 124,
760 32, 122, 186, 55, 32, 32, 187, 32, 32, 32,
762 32, 32, 32, 32, 32, 32, 32, 125, 520, 120,
763 121, 55, 32, 188, 46, 190, 31, 124, 32, 122,
764 126, 32, 32, 32, 30, 520, 32, 26, 32, 32,
765 32, 32, 32, 520, 520, 125, 32, 32, 520, 32,
766 32, 520, 32, 190, 32, 520, 128, 129, 126, 27,
767 27, 27, 27, 84, 27, 27, 85, 85, 27, 520,
768 32, 32, 127, 32, 32, 191, 27, 27, 27, 32,
769 520, 32, 150, 131, 128, 129, 176, 180, 32, 32,
770 130, 32, 32, 192, 177, 194, 181, 151, 182, 195,
771 127, 196, 200, 191, 198, 29, 85, 215, 132, 520,
773 150, 131, 520, 32, 176, 180, 32, 216, 130, 32,
774 32, 192, 177, 194, 181, 151, 182, 195, 520, 196,
775 200, 32, 520, 520, 199, 215, 132, 156, 156, 156,
776 156, 156, 156, 156, 32, 216, 520, 32, 32, 520,
777 157, 157, 157, 157, 157, 157, 157, 32, 217, 32,
778 32, 115, 199, 158, 158, 158, 158, 158, 158, 158,
779 32, 520, 520, 32, 32, 520, 117, 117, 117, 117,
780 117, 117, 117, 520, 218, 520, 217, 32, 159, 159,
781 159, 159, 159, 159, 159, 32, 520, 520, 32, 32,
782 32, 32, 219, 32, 32, 32, 32, 32, 520, 222,
784 520, 32, 218, 32, 32, 32, 520, 32, 520, 160,
785 32, 32, 32, 161, 32, 32, 32, 32, 32, 223,
786 219, 163, 520, 164, 224, 225, 162, 222, 32, 32,
787 520, 520, 32, 32, 32, 166, 32, 160, 168, 520,
788 226, 161, 32, 520, 32, 32, 32, 223, 520, 163,
789 165, 164, 224, 225, 162, 32, 32, 32, 32, 32,
790 32, 32, 32, 166, 520, 167, 168, 32, 226, 169,
791 32, 32, 32, 520, 32, 520, 32, 32, 32, 32,
792 115, 520, 520, 32, 227, 32, 32, 32, 171, 520,
793 230, 520, 170, 167, 173, 231, 232, 169, 520, 32,
795 520, 32, 172, 201, 201, 201, 201, 201, 201, 201,
796 32, 32, 227, 520, 32, 32, 171, 32, 230, 32,
797 170, 520, 173, 231, 232, 32, 32, 520, 32, 202,
798 172, 203, 203, 203, 203, 203, 203, 203, 204, 204,
799 204, 204, 204, 204, 204, 205, 32, 520, 32, 32,
800 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
801 520, 520, 32, 520, 207, 32, 32, 208, 32, 520,
802 520, 32, 520, 205, 32, 32, 520, 32, 520, 32,
803 32, 32, 32, 32, 32, 233, 520, 32, 32, 32,
804 209, 32, 520, 234, 520, 211, 206, 32, 32, 32,
806 32, 32, 32, 32, 32, 32, 210, 32, 32, 520,
807 235, 236, 520, 233, 32, 238, 241, 212, 209, 520,
808 32, 234, 32, 211, 243, 213, 239, 32, 32, 240,
809 520, 32, 32, 520, 210, 520, 250, 214, 235, 236,
810 32, 520, 32, 238, 241, 212, 520, 32, 520, 520,
811 520, 520, 243, 213, 239, 520, 255, 240, 244, 244,
812 244, 244, 244, 244, 244, 214, 32, 520, 520, 32,
813 32, 32, 245, 245, 245, 245, 245, 245, 245, 32,
814 256, 520, 32, 202, 255, 246, 246, 246, 246, 246,
815 246, 246, 32, 520, 32, 32, 32, 32, 32, 520,
817 520, 32, 520, 248, 32, 32, 249, 520, 256, 32,
818 32, 251, 520, 32, 32, 257, 32, 258, 259, 32,
819 32, 32, 32, 260, 32, 32, 261, 247, 32, 262,
820 252, 32, 32, 263, 264, 32, 32, 32, 32, 32,
821 32, 32, 32, 257, 32, 258, 259, 265, 266, 267,
822 253, 260, 268, 32, 261, 247, 269, 262, 252, 32,
823 270, 263, 264, 271, 32, 273, 274, 275, 276, 277,
824 278, 32, 254, 279, 280, 265, 266, 267, 253, 32,
825 268, 32, 281, 282, 269, 520, 32, 520, 270, 32,
826 202, 271, 520, 273, 274, 275, 276, 277, 278, 520,
828 254, 279, 280, 32, 520, 289, 32, 32, 520, 32,
829 281, 282, 32, 32, 520, 283, 283, 283, 283, 283,
830 283, 283, 32, 284, 32, 32, 32, 32, 32, 32,
831 285, 290, 32, 289, 286, 32, 32, 32, 291, 32,
832 32, 32, 32, 32, 32, 292, 32, 32, 32, 293,
833 32, 284, 32, 32, 32, 296, 297, 299, 302, 290,
834 300, 303, 305, 307, 310, 32, 291, 32, 301, 311,
835 312, 313, 314, 292, 315, 32, 520, 293, 319, 520,
836 32, 520, 32, 296, 297, 299, 302, 32, 300, 303,
837 305, 307, 310, 32, 320, 321, 301, 311, 312, 313,
839 314, 32, 315, 323, 32, 32, 319, 317, 317, 317,
840 317, 317, 317, 317, 32, 520, 32, 32, 32, 32,
841 32, 32, 320, 321, 32, 32, 324, 325, 326, 520,
842 327, 323, 328, 329, 330, 331, 520, 332, 333, 334,
843 335, 336, 337, 318, 32, 338, 339, 340, 342, 343,
844 344, 345, 520, 347, 324, 325, 326, 32, 327, 32,
845 328, 329, 330, 331, 32, 332, 333, 334, 335, 336,
846 337, 318, 348, 338, 339, 340, 342, 343, 344, 345,
847 32, 347, 32, 32, 32, 32, 32, 349, 350, 520,
848 351, 352, 354, 355, 356, 520, 357, 520, 358, 361,
850 348, 362, 363, 364, 365, 366, 367, 368, 369, 372,
851 32, 373, 374, 32, 32, 349, 350, 346, 351, 352,
852 354, 355, 356, 32, 357, 32, 358, 361, 375, 362,
853 363, 364, 365, 366, 367, 368, 369, 372, 370, 373,
854 374, 376, 378, 379, 381, 346, 371, 382, 383, 386,
855 388, 389, 390, 32, 391, 392, 375, 393, 394, 395,
856 396, 397, 398, 399, 400, 401, 370, 402, 403, 376,
857 378, 379, 381, 404, 371, 382, 383, 386, 388, 389,
858 390, 405, 391, 392, 406, 393, 394, 395, 396, 397,
859 398, 399, 400, 401, 407, 402, 403, 408, 409, 410,
861 411, 404, 412, 413, 414, 415, 416, 417, 418, 405,
862 419, 420, 406, 421, 422, 423, 424, 425, 426, 427,
863 428, 429, 407, 430, 431, 408, 409, 410, 411, 432,
864 412, 413, 414, 415, 416, 417, 418, 433, 419, 420,
865 435, 421, 422, 423, 424, 425, 426, 427, 428, 429,
866 436, 430, 431, 440, 441, 442, 443, 432, 444, 445,
867 447, 448, 449, 450, 451, 433, 453, 454, 435, 455,
868 456, 457, 458, 459, 460, 461, 462, 463, 436, 464,
869 465, 440, 441, 442, 443, 466, 444, 445, 447, 448,
870 449, 450, 451, 467, 453, 454, 468, 455, 456, 457,
872 458, 459, 460, 461, 462, 463, 471, 464, 465, 472,
873 473, 474, 476, 466, 477, 478, 479, 480, 481, 482,
874 483, 467, 484, 485, 468, 487, 488, 490, 491, 492,
875 493, 494, 495, 496, 471, 497, 499, 472, 473, 474,
876 476, 500, 477, 478, 479, 480, 481, 482, 483, 501,
877 484, 485, 504, 487, 488, 490, 491, 492, 493, 494,
878 495, 496, 505, 497, 499, 506, 508, 509, 512, 500,
879 513, 514, 515, 516, 517, 518, 520, 501, 520, 520,
880 504, 520, 520, 520, 520, 520, 520, 520, 520, 520,
881 505, 520, 520, 506, 508, 509, 512, 520, 513, 514,
883 515, 516, 517, 518, 27, 27, 54, 54, 86, 86,
884 3, 520, 520, 520, 520, 520, 520, 520, 520, 520,
885 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
886 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
887 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
888 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
889 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
890 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
891 520, 520, 520, 520, 520
894 static yyconst flex_int16_t yy_chk
[1786] =
896 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
897 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
898 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
899 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
900 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
901 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
902 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
903 1, 1, 1, 1, 8, 11, 15, 11, 11, 11,
904 11, 11, 11, 11, 12, 12, 12, 12, 12, 12,
905 12, 14, 16, 17, 14, 18, 16, 19, 20, 23,
907 22, 24, 25, 23, 15, 27, 17, 58, 59, 60,
908 61, 22, 63, 66, 67, 68, 8, 22, 94, 14,
909 16, 17, 14, 18, 16, 19, 20, 23, 22, 24,
910 25, 23, 524, 179, 17, 58, 59, 60, 61, 22,
911 63, 66, 67, 68, 179, 22, 94, 27, 30, 30,
912 30, 30, 30, 30, 30, 522, 95, 96, 30, 30,
913 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
914 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
915 30, 30, 30, 30, 95, 96, 30, 30, 30, 30,
916 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
918 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
919 30, 30, 31, 31, 31, 31, 31, 31, 31, 32,
920 517, 33, 32, 32, 33, 33, 506, 33, 33, 33,
921 33, 33, 33, 33, 34, 505, 500, 34, 34, 495,
922 34, 34, 34, 34, 34, 34, 34, 35, 35, 35,
923 35, 35, 35, 35, 36, 494, 37, 36, 36, 37,
924 37, 490, 32, 38, 33, 275, 38, 38, 97, 39,
925 57, 479, 39, 39, 37, 44, 275, 34, 44, 44,
926 38, 40, 57, 36, 40, 40, 41, 98, 39, 41,
927 41, 42, 100, 44, 42, 42, 97, 36, 57, 37,
929 476, 43, 37, 461, 43, 43, 38, 455, 38, 101,
930 57, 36, 39, 41, 40, 98, 39, 102, 44, 45,
931 100, 44, 45, 45, 40, 43, 454, 47, 42, 41,
932 47, 47, 70, 104, 42, 70, 70, 101, 47, 432,
933 426, 41, 40, 417, 43, 102, 48, 416, 45, 48,
934 48, 415, 412, 43, 49, 361, 42, 49, 49, 357,
935 105, 104, 45, 50, 356, 48, 50, 50, 51, 352,
936 47, 51, 51, 107, 349, 70, 45, 46, 46, 46,
937 46, 46, 46, 46, 46, 46, 46, 49, 105, 48,
938 332, 331, 50, 48, 46, 46, 46, 49, 62, 108,
940 52, 107, 51, 52, 52, 53, 50, 106, 53, 53,
941 325, 51, 62, 311, 106, 49, 110, 64, 62, 64,
942 50, 64, 65, 46, 46, 75, 62, 108, 75, 75,
943 51, 65, 65, 52, 103, 106, 111, 103, 65, 112,
944 62, 53, 106, 52, 110, 64, 62, 64, 53, 64,
945 65, 69, 69, 69, 69, 69, 69, 69, 290, 65,
946 65, 52, 103, 282, 111, 103, 65, 112, 75, 53,
947 56, 56, 56, 113, 133, 273, 56, 56, 271, 266,
948 134, 136, 56, 137, 56, 139, 56, 56, 56, 56,
949 56, 73, 73, 73, 73, 73, 73, 73, 56, 56,
951 56, 113, 133, 74, 56, 56, 74, 74, 134, 136,
952 56, 137, 56, 139, 56, 56, 56, 56, 56, 71,
953 263, 262, 71, 71, 256, 71, 71, 71, 71, 71,
954 71, 71, 72, 255, 233, 72, 72, 74, 72, 72,
955 72, 72, 72, 72, 72, 76, 74, 77, 76, 76,
956 77, 77, 78, 199, 195, 78, 78, 79, 140, 141,
957 79, 79, 71, 80, 142, 74, 80, 80, 143, 81,
958 80, 187, 81, 81, 186, 72, 153, 149, 145, 99,
959 82, 76, 78, 82, 82, 144, 140, 141, 76, 81,
960 77, 79, 142, 54, 83, 78, 143, 83, 83, 84,
962 79, 87, 84, 84, 87, 87, 80, 82, 29, 76,
963 78, 26, 81, 144, 21, 146, 10, 81, 89, 79,
964 83, 89, 89, 82, 9, 3, 88, 2, 90, 88,
965 88, 90, 90, 0, 0, 82, 92, 83, 0, 92,
966 92, 0, 84, 146, 87, 0, 89, 90, 83, 85,
967 85, 85, 85, 85, 85, 85, 85, 85, 85, 0,
968 91, 89, 88, 91, 91, 147, 85, 85, 85, 88,
969 0, 90, 109, 92, 89, 90, 135, 138, 93, 92,
970 91, 93, 93, 148, 135, 150, 138, 109, 138, 151,
971 88, 152, 155, 147, 154, 85, 85, 174, 93, 0,
973 109, 92, 0, 91, 135, 138, 132, 175, 91, 132,
974 132, 148, 135, 150, 138, 109, 138, 151, 0, 152,
975 155, 93, 0, 0, 154, 174, 93, 114, 114, 114,
976 114, 114, 114, 114, 115, 175, 0, 115, 115, 0,
977 115, 115, 115, 115, 115, 115, 115, 116, 176, 132,
978 116, 116, 154, 116, 116, 116, 116, 116, 116, 116,
979 117, 0, 0, 117, 117, 0, 117, 117, 117, 117,
980 117, 117, 117, 0, 177, 0, 176, 115, 118, 118,
981 118, 118, 118, 118, 118, 119, 0, 0, 119, 119,
982 116, 120, 178, 121, 120, 120, 121, 121, 0, 180,
984 0, 122, 177, 117, 122, 122, 0, 123, 0, 119,
985 123, 123, 124, 120, 126, 124, 124, 126, 126, 181,
986 178, 122, 0, 123, 182, 183, 121, 180, 119, 125,
987 0, 0, 125, 125, 120, 124, 121, 119, 126, 0,
988 184, 120, 127, 0, 122, 127, 127, 181, 0, 122,
989 123, 123, 182, 183, 121, 124, 128, 126, 129, 128,
990 128, 129, 129, 124, 0, 125, 126, 130, 184, 127,
991 130, 130, 125, 0, 131, 0, 158, 131, 131, 158,
992 158, 0, 0, 161, 185, 127, 161, 161, 129, 0,
993 188, 0, 128, 125, 131, 189, 190, 127, 0, 128,
995 0, 129, 130, 156, 156, 156, 156, 156, 156, 156,
996 130, 160, 185, 0, 160, 160, 129, 131, 188, 158,
997 128, 0, 131, 189, 190, 157, 161, 0, 157, 157,
998 130, 157, 157, 157, 157, 157, 157, 157, 159, 159,
999 159, 159, 159, 159, 159, 160, 162, 0, 163, 162,
1000 162, 163, 163, 164, 160, 165, 164, 164, 165, 165,
1001 0, 0, 166, 0, 165, 166, 166, 165, 157, 0,
1002 0, 167, 0, 160, 167, 167, 0, 168, 0, 169,
1003 168, 168, 169, 169, 170, 191, 0, 170, 170, 162,
1004 167, 163, 0, 192, 0, 169, 164, 171, 165, 172,
1006 171, 171, 172, 172, 173, 166, 168, 173, 173, 0,
1007 193, 194, 0, 191, 167, 196, 198, 170, 167, 0,
1008 168, 192, 169, 169, 200, 171, 197, 170, 207, 197,
1009 0, 207, 207, 0, 168, 0, 207, 173, 193, 194,
1010 171, 0, 172, 196, 198, 170, 0, 173, 0, 0,
1011 0, 0, 200, 171, 197, 0, 215, 197, 201, 201,
1012 201, 201, 201, 201, 201, 173, 202, 0, 0, 202,
1013 202, 207, 202, 202, 202, 202, 202, 202, 202, 203,
1014 216, 0, 203, 203, 215, 203, 203, 203, 203, 203,
1015 203, 203, 205, 0, 206, 205, 205, 206, 206, 0,
1017 0, 208, 0, 206, 208, 208, 206, 0, 216, 202,
1018 209, 208, 0, 209, 209, 217, 210, 218, 219, 210,
1019 210, 211, 203, 220, 211, 211, 222, 205, 212, 223,
1020 209, 212, 212, 224, 225, 205, 213, 206, 214, 213,
1021 213, 214, 214, 217, 208, 218, 219, 226, 227, 228,
1022 210, 220, 229, 209, 222, 205, 230, 223, 209, 210,
1023 231, 224, 225, 232, 211, 234, 235, 236, 237, 238,
1024 239, 212, 214, 240, 241, 226, 227, 228, 210, 213,
1025 229, 214, 242, 243, 230, 0, 246, 0, 231, 246,
1026 246, 232, 0, 234, 235, 236, 237, 238, 239, 0,
1028 214, 240, 241, 247, 0, 257, 247, 247, 0, 245,
1029 242, 243, 245, 245, 0, 245, 245, 245, 245, 245,
1030 245, 245, 248, 247, 249, 248, 248, 249, 249, 246,
1031 248, 258, 250, 257, 249, 250, 250, 251, 259, 252,
1032 251, 251, 252, 252, 253, 260, 247, 253, 253, 261,
1033 254, 247, 245, 254, 254, 264, 265, 267, 269, 258,
1034 268, 270, 272, 274, 276, 248, 259, 249, 268, 277,
1035 278, 279, 280, 260, 281, 250, 0, 261, 287, 0,
1036 251, 0, 252, 264, 265, 267, 269, 253, 268, 270,
1037 272, 274, 276, 254, 288, 289, 268, 277, 278, 279,
1039 280, 283, 281, 291, 283, 283, 287, 283, 283, 283,
1040 283, 283, 283, 283, 284, 0, 285, 284, 284, 285,
1041 285, 286, 288, 289, 286, 286, 292, 293, 294, 0,
1042 295, 291, 296, 298, 299, 300, 0, 301, 302, 303,
1043 304, 305, 307, 284, 283, 308, 308, 310, 312, 313,
1044 315, 316, 0, 319, 292, 293, 294, 284, 295, 285,
1045 296, 298, 299, 300, 286, 301, 302, 303, 304, 305,
1046 307, 284, 320, 308, 308, 310, 312, 313, 315, 316,
1047 317, 319, 318, 317, 317, 318, 318, 321, 322, 0,
1048 323, 324, 326, 327, 328, 0, 329, 0, 330, 333,
1050 320, 334, 335, 336, 337, 338, 339, 340, 341, 343,
1051 346, 344, 345, 346, 346, 321, 322, 318, 323, 324,
1052 326, 327, 328, 317, 329, 318, 330, 333, 347, 334,
1053 335, 336, 337, 338, 339, 340, 341, 343, 342, 344,
1054 345, 348, 350, 351, 353, 318, 342, 354, 355, 358,
1055 362, 363, 364, 346, 365, 366, 347, 367, 368, 369,
1056 370, 371, 372, 374, 375, 376, 342, 377, 378, 348,
1057 350, 351, 353, 379, 342, 354, 355, 358, 362, 363,
1058 364, 380, 365, 366, 381, 367, 368, 369, 370, 371,
1059 372, 374, 375, 376, 382, 377, 378, 383, 385, 386,
1061 387, 379, 388, 389, 390, 391, 392, 393, 395, 380,
1062 396, 397, 381, 398, 400, 401, 402, 403, 404, 405,
1063 406, 407, 382, 408, 409, 383, 385, 386, 387, 410,
1064 388, 389, 390, 391, 392, 393, 395, 411, 396, 397,
1065 413, 398, 400, 401, 402, 403, 404, 405, 406, 407,
1066 414, 408, 409, 419, 420, 422, 423, 410, 424, 425,
1067 427, 428, 429, 430, 431, 411, 433, 435, 413, 436,
1068 438, 439, 440, 442, 443, 444, 445, 447, 414, 448,
1069 449, 419, 420, 422, 423, 450, 424, 425, 427, 428,
1070 429, 430, 431, 451, 433, 435, 453, 436, 438, 439,
1072 440, 442, 443, 444, 445, 447, 456, 448, 449, 457,
1073 459, 460, 462, 450, 463, 464, 465, 466, 467, 468,
1074 469, 451, 471, 472, 453, 477, 478, 480, 481, 482,
1075 483, 484, 485, 487, 456, 488, 491, 457, 459, 460,
1076 462, 492, 463, 464, 465, 466, 467, 468, 469, 493,
1077 471, 472, 496, 477, 478, 480, 481, 482, 483, 484,
1078 485, 487, 497, 488, 491, 499, 501, 504, 507, 492,
1079 508, 512, 513, 514, 515, 516, 0, 493, 0, 0,
1080 496, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1081 497, 0, 0, 499, 501, 504, 507, 0, 508, 512,
1083 513, 514, 515, 516, 521, 521, 523, 523, 525, 525,
1084 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
1085 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
1086 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
1087 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
1088 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
1089 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
1090 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
1091 520, 520, 520, 520, 520
1094 static yyconst flex_int16_t yy_rule_linenum
[65] =
1096 81, 83, 85, 87, 89, 92, 96, 98, 100, 101,
1097 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1098 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1099 122, 123, 124, 125, 126, 127, 129, 130, 132, 134,
1100 135, 136, 137, 138, 139, 141, 142, 145, 150, 151,
1101 152, 154, 155, 156, 157, 158, 159, 160, 161, 162,
1105 /* The intent behind this definition is that it'll catch
1106 * any uses of REJECT which flex missed.
1108 #define REJECT reject_used_but_not_detected
1109 #define yymore() yymore_used_but_not_detected
1110 #define YY_MORE_ADJ 0
1111 #define YY_RESTORE_YY_MORE_OFFSET
1112 #line 1 "libmemcached/csl/scanner.l"
1113 /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
1115 * Configure Scripting Language
1117 * Copyright (C) 2011 DataDifferental, http://datadifferential.com
1119 * This program is free software: you can redistribute it and/or modify
1120 * it under the terms of the GNU Affero General Public License as
1121 * published by the Free Software Foundation, either version 3 of the
1122 * License, or (at your option) any later version.
1124 * This program is distributed in the hope that it will be useful,
1125 * but WITHOUT ANY WARRANTY; without even the implied warranty of
1126 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1127 * GNU Affero General Public License for more details.
1129 * You should have received a copy of the GNU Affero General Public License
1130 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1133 #line 42 "libmemcached/csl/scanner.l"
1137 #define PARAM config_get_extra(yyscanner)
1139 #define get_lex_chars(buffer, result, max_size, context) \
1141 if (context->pos >= context->length) \
1147 result= (int)(context->length - context->pos); \
1148 (size_t)result > (size_t)max_size ? result= max_size : 0; \
1149 memcpy(buffer, context->buf + context->pos, result); \
1150 context->pos += result; \
1155 #define YY_INPUT(buffer, result, max_size) get_lex_chars(buffer, result, max_size, PARAM)
1157 #line 1158 "libmemcached/csl/scanner.cc"
1161 #ifndef YY_NO_UNISTD_H
1162 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1163 * down here because we want the user's section 1 to have been scanned first.
1164 * The user has a chance to override it with an option.
1173 #ifndef YY_EXTRA_TYPE
1174 #define YY_EXTRA_TYPE void *
1177 /* %if-c-only Reentrant structure and macros (non-C++). */
1180 /* Holds the entire state of the reentrant scanner. */
1184 /* User-defined. Not touched by flex. */
1185 YY_EXTRA_TYPE yyextra_r
;
1187 /* The rest are the same as the globals declared in the non-reentrant scanner. */
1188 FILE *yyin_r
, *yyout_r
;
1189 size_t yy_buffer_stack_top
; /**< index of top of stack. */
1190 size_t yy_buffer_stack_max
; /**< capacity of stack. */
1191 YY_BUFFER_STATE
* yy_buffer_stack
; /**< Stack as an array. */
1198 int yy_did_buffer_switch_on_eof
;
1199 int yy_start_stack_ptr
;
1200 int yy_start_stack_depth
;
1201 int *yy_start_stack
;
1202 yy_state_type yy_last_accepting_state
;
1203 char* yy_last_accepting_cpos
;
1206 int yy_flex_debug_r
;
1214 }; /* end struct yyguts_t */
1218 static int yy_init_globals (yyscan_t yyscanner
);
1224 /* This must go here because YYSTYPE and YYLTYPE are included
1225 * from bison output in section 1.*/
1226 # define yylval yyg->yylval_r
1228 int config_lex_init (yyscan_t
* scanner
);
1230 int config_lex_init_extra (YY_EXTRA_TYPE user_defined
,yyscan_t
* scanner
);
1234 /* %endif End reentrant structures and macros. */
1236 /* Accessor methods to globals.
1237 These are made visible to non-reentrant scanners for convenience. */
1239 int config_lex_destroy (yyscan_t yyscanner
);
1241 int config_get_debug (yyscan_t yyscanner
);
1243 void config_set_debug (int debug_flag
,yyscan_t yyscanner
);
1245 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
);
1247 void config_set_extra (YY_EXTRA_TYPE user_defined
,yyscan_t yyscanner
);
1249 FILE *config_get_in (yyscan_t yyscanner
);
1251 void config_set_in (FILE * in_str
,yyscan_t yyscanner
);
1253 FILE *config_get_out (yyscan_t yyscanner
);
1255 void config_set_out (FILE * out_str
,yyscan_t yyscanner
);
1257 int config_get_leng (yyscan_t yyscanner
);
1259 char *config_get_text (yyscan_t yyscanner
);
1261 int config_get_lineno (yyscan_t yyscanner
);
1263 void config_set_lineno (int line_number
,yyscan_t yyscanner
);
1265 int config_get_column (yyscan_t yyscanner
);
1267 void config_set_column (int column_no
,yyscan_t yyscanner
);
1269 /* %if-bison-bridge */
1271 YYSTYPE
* config_get_lval (yyscan_t yyscanner
);
1273 void config_set_lval (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1277 /* Macros after this point can all be overridden by user definitions in
1281 #ifndef YY_SKIP_YYWRAP
1283 extern "C" int config_wrap (yyscan_t yyscanner
);
1285 extern int config_wrap (yyscan_t yyscanner
);
1289 /* %not-for-header */
1291 /* %ok-for-header */
1296 static void yy_flex_strncpy (char *,yyconst
char *,int ,yyscan_t yyscanner
);
1299 #ifdef YY_NEED_STRLEN
1300 static int yy_flex_strlen (yyconst
char * ,yyscan_t yyscanner
);
1304 /* %if-c-only Standard (non-C++) definition */
1305 /* %not-for-header */
1308 static int yyinput (yyscan_t yyscanner
);
1310 static int input (yyscan_t yyscanner
);
1312 /* %ok-for-header */
1321 /* Amount of stuff to slurp up with each read. */
1322 #ifndef YY_READ_BUF_SIZE
1323 #define YY_READ_BUF_SIZE 8192
1326 /* Copy whatever the last rule matched to the standard output. */
1328 /* %if-c-only Standard (non-C++) definition */
1329 /* This used to be an fputs(), but since the string might contain NUL's,
1330 * we now use fwrite().
1332 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1334 /* %if-c++-only C++ definition */
1338 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1339 * is returned in "result".
1342 #define YY_INPUT(buf,result,max_size) \
1343 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
1344 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1348 for ( n = 0; n < max_size && \
1349 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1350 buf[n] = (char) c; \
1352 buf[n++] = (char) c; \
1353 if ( c == EOF && ferror( yyin ) ) \
1354 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1360 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1362 if( errno != EINTR) \
1364 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1372 /* %if-c++-only C++ definition \ */\
1377 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1378 * we don't want an extra ';' after the "return" because that will cause
1379 * some compilers to complain about unreachable statements.
1382 #define yyterminate() return YY_NULL
1385 /* Number of entries by which start-condition stack grows. */
1386 #ifndef YY_START_STACK_INCR
1387 #define YY_START_STACK_INCR 25
1390 /* Report a fatal error. */
1391 #ifndef YY_FATAL_ERROR
1393 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1399 /* %if-tables-serialization structures and prototypes */
1400 /* %not-for-header */
1402 /* %ok-for-header */
1404 /* %not-for-header */
1406 /* %tables-yydmap generated elements */
1408 /* end tables serialization structures and prototypes */
1410 /* %ok-for-header */
1412 /* Default declaration of generated scanner - a define so the user can
1413 * easily add parameters.
1416 #define YY_DECL_IS_OURS 1
1417 /* %if-c-only Standard (non-C++) definition */
1419 extern int config_lex \
1420 (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1422 #define YY_DECL int config_lex \
1423 (YYSTYPE * yylval_param , yyscan_t yyscanner)
1425 /* %if-c++-only C++ definition */
1427 #endif /* !YY_DECL */
1429 /* Code executed at the beginning of each rule, after yytext and yyleng
1432 #ifndef YY_USER_ACTION
1433 #define YY_USER_ACTION
1436 /* Code executed at the end of each rule. */
1438 #define YY_BREAK break;
1441 /* %% [6.0] YY_RULE_SETUP definition goes here */
1442 #define YY_RULE_SETUP \
1444 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1445 (yytext[yyleng - 1] == '\n'); \
1448 /* %not-for-header */
1450 /** The main scanner function which does all the work.
1454 register yy_state_type yy_current_state
;
1455 register char *yy_cp
, *yy_bp
;
1456 register int yy_act
;
1457 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
1459 /* %% [7.0] user's declarations go here */
1460 #line 78 "libmemcached/csl/scanner.l"
1464 #line 1465 "libmemcached/csl/scanner.cc"
1466 yylval
= yylval_param
;
1468 if ( !yyg
->yy_init
)
1476 if ( ! yyg
->yy_start
)
1477 yyg
->yy_start
= 1; /* first start state */
1493 if ( ! YY_CURRENT_BUFFER
) {
1494 config_ensure_buffer_stack (yyscanner
);
1495 YY_CURRENT_BUFFER_LVALUE
=
1496 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
1499 config__load_buffer_state(yyscanner
);
1502 while ( 1 ) /* loops until end-of-file is reached */
1504 /* %% [8.0] yymore()-related code goes here */
1505 yy_cp
= yyg
->yy_c_buf_p
;
1507 /* Support of yytext. */
1508 *yy_cp
= yyg
->yy_hold_char
;
1510 /* yy_bp points to the position in yy_ch_buf of the start of
1515 /* %% [9.0] code to set up and find next match goes here */
1516 yy_current_state
= yyg
->yy_start
;
1517 yy_current_state
+= YY_AT_BOL();
1521 register YY_CHAR yy_c
= yy_ec
[YY_SC_TO_UI(*yy_cp
)];
1522 if ( yy_accept
[yy_current_state
] )
1524 yyg
->yy_last_accepting_state
= yy_current_state
;
1525 yyg
->yy_last_accepting_cpos
= yy_cp
;
1527 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
1529 yy_current_state
= (int) yy_def
[yy_current_state
];
1530 if ( yy_current_state
>= 521 )
1531 yy_c
= yy_meta
[(unsigned int) yy_c
];
1533 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
1536 while ( yy_base
[yy_current_state
] != 1711 );
1539 /* %% [10.0] code to find the action number goes here */
1540 yy_act
= yy_accept
[yy_current_state
];
1542 { /* have to back up */
1543 yy_cp
= yyg
->yy_last_accepting_cpos
;
1544 yy_current_state
= yyg
->yy_last_accepting_state
;
1545 yy_act
= yy_accept
[yy_current_state
];
1548 YY_DO_BEFORE_ACTION
;
1550 /* %% [11.0] code for yylineno update goes here */
1552 do_action
: /* This label is used only to access EOF actions. */
1554 /* %% [12.0] debug code goes here */
1555 if ( yy_flex_debug
)
1558 fprintf( stderr
, "--scanner backing up\n" );
1559 else if ( yy_act
< 65 )
1560 fprintf( stderr
, "--accepting rule at line %ld (\"%s\")\n",
1561 (long)yy_rule_linenum
[yy_act
], yytext
);
1562 else if ( yy_act
== 65 )
1563 fprintf( stderr
, "--accepting default rule (\"%s\")\n",
1565 else if ( yy_act
== 66 )
1566 fprintf( stderr
, "--(end of buffer or a NUL)\n" );
1568 fprintf( stderr
, "--EOF (start condition %d)\n", YY_START
);
1572 { /* beginning of action switch */
1573 /* %% [13.0] actions go here */
1574 case 0: /* must back up */
1575 /* undo the effects of YY_DO_BEFORE_ACTION */
1576 *yy_cp
= yyg
->yy_hold_char
;
1577 yy_cp
= yyg
->yy_last_accepting_cpos
;
1578 yy_current_state
= yyg
->yy_last_accepting_state
;
1579 goto yy_find_action
;
1583 #line 81 "libmemcached/csl/scanner.l"
1584 { return yytext
[0];}
1588 #line 83 "libmemcached/csl/scanner.l"
1589 { yylval
->number
= atoi(yytext
); return (NUMBER
); }
1593 #line 85 "libmemcached/csl/scanner.l"
1594 { yylval
->number
= atoi(yytext
+1); return PORT
; }
1598 #line 87 "libmemcached/csl/scanner.l"
1599 { yylval
->number
= atoi(yytext
+2); return WEIGHT_START
; }
1602 /* rule 5 can match eol */
1604 #line 89 "libmemcached/csl/scanner.l"
1605 ; /* skip whitespace */
1608 *yy_cp
= yyg
->yy_hold_char
; /* undo effects of setting up yytext */
1609 yyg
->yy_c_buf_p
= yy_cp
-= 1;
1610 YY_DO_BEFORE_ACTION
; /* set up yytext again */
1612 #line 92 "libmemcached/csl/scanner.l"
1619 #line 96 "libmemcached/csl/scanner.l"
1620 { yyextra
->begin
= yytext
; yyextra
->set_server(); return yyextra
->previous_token
= SERVER
; }
1624 #line 98 "libmemcached/csl/scanner.l"
1625 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SOCKET
; }
1629 #line 100 "libmemcached/csl/scanner.l"
1630 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= BINARY_PROTOCOL
; }
1634 #line 101 "libmemcached/csl/scanner.l"
1635 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= BUFFER_REQUESTS
; }
1639 #line 102 "libmemcached/csl/scanner.l"
1640 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= CONFIGURE_FILE
; }
1644 #line 103 "libmemcached/csl/scanner.l"
1645 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= CONNECT_TIMEOUT
; }
1649 #line 104 "libmemcached/csl/scanner.l"
1650 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= DISTRIBUTION
; }
1654 #line 105 "libmemcached/csl/scanner.l"
1655 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= HASH_WITH_NAMESPACE
; }
1659 #line 106 "libmemcached/csl/scanner.l"
1660 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= HASH
; }
1664 #line 107 "libmemcached/csl/scanner.l"
1665 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= IO_BYTES_WATERMARK
; }
1669 #line 108 "libmemcached/csl/scanner.l"
1670 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= IO_KEY_PREFETCH
; }
1674 #line 109 "libmemcached/csl/scanner.l"
1675 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= IO_MSG_WATERMARK
; }
1679 #line 110 "libmemcached/csl/scanner.l"
1680 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= NOREPLY
; }
1684 #line 111 "libmemcached/csl/scanner.l"
1685 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= NUMBER_OF_REPLICAS
; }
1689 #line 112 "libmemcached/csl/scanner.l"
1690 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= POLL_TIMEOUT
; }
1694 #line 113 "libmemcached/csl/scanner.l"
1695 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= RANDOMIZE_REPLICA_READ
; }
1699 #line 114 "libmemcached/csl/scanner.l"
1700 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= RCV_TIMEOUT
; }
1704 #line 115 "libmemcached/csl/scanner.l"
1705 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= REMOVE_FAILED_SERVERS
; }
1709 #line 116 "libmemcached/csl/scanner.l"
1710 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= RETRY_TIMEOUT
; }
1714 #line 117 "libmemcached/csl/scanner.l"
1715 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SND_TIMEOUT
; }
1719 #line 118 "libmemcached/csl/scanner.l"
1720 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SOCKET_RECV_SIZE
; }
1724 #line 119 "libmemcached/csl/scanner.l"
1725 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SOCKET_SEND_SIZE
; }
1729 #line 120 "libmemcached/csl/scanner.l"
1730 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SORT_HOSTS
; }
1734 #line 121 "libmemcached/csl/scanner.l"
1735 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SUPPORT_CAS
; }
1739 #line 122 "libmemcached/csl/scanner.l"
1740 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= _TCP_KEEPALIVE
; }
1744 #line 123 "libmemcached/csl/scanner.l"
1745 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= _TCP_KEEPIDLE
; }
1749 #line 124 "libmemcached/csl/scanner.l"
1750 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= _TCP_NODELAY
; }
1754 #line 125 "libmemcached/csl/scanner.l"
1755 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= USE_UDP
; }
1759 #line 126 "libmemcached/csl/scanner.l"
1760 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= USER_DATA
; }
1764 #line 127 "libmemcached/csl/scanner.l"
1765 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= VERIFY_KEY
; }
1769 #line 129 "libmemcached/csl/scanner.l"
1770 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= POOL_MIN
; }
1774 #line 130 "libmemcached/csl/scanner.l"
1775 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= POOL_MAX
; }
1779 #line 132 "libmemcached/csl/scanner.l"
1780 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= NAMESPACE
; }
1784 #line 134 "libmemcached/csl/scanner.l"
1785 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= INCLUDE
; }
1789 #line 135 "libmemcached/csl/scanner.l"
1790 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= RESET
; }
1794 #line 136 "libmemcached/csl/scanner.l"
1795 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= PARSER_DEBUG
; }
1799 #line 137 "libmemcached/csl/scanner.l"
1800 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SERVERS
; }
1804 #line 138 "libmemcached/csl/scanner.l"
1805 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= END
; }
1809 #line 139 "libmemcached/csl/scanner.l"
1810 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= ERROR
; }
1814 #line 141 "libmemcached/csl/scanner.l"
1815 { return yyextra
->previous_token
= TRUE
; }
1819 #line 142 "libmemcached/csl/scanner.l"
1820 { return yyextra
->previous_token
= FALSE
; }
1824 #line 145 "libmemcached/csl/scanner.l"
1826 yyextra
->begin
= yytext
;
1827 return UNKNOWN_OPTION
;
1832 #line 150 "libmemcached/csl/scanner.l"
1833 { return CONSISTENT
; }
1837 #line 151 "libmemcached/csl/scanner.l"
1842 #line 152 "libmemcached/csl/scanner.l"
1847 #line 154 "libmemcached/csl/scanner.l"
1852 #line 155 "libmemcached/csl/scanner.l"
1857 #line 156 "libmemcached/csl/scanner.l"
1862 #line 157 "libmemcached/csl/scanner.l"
1863 { return FNV1A_64
; }
1867 #line 158 "libmemcached/csl/scanner.l"
1872 #line 159 "libmemcached/csl/scanner.l"
1873 { return FNV1A_32
; }
1877 #line 160 "libmemcached/csl/scanner.l"
1882 #line 161 "libmemcached/csl/scanner.l"
1887 #line 162 "libmemcached/csl/scanner.l"
1892 #line 164 "libmemcached/csl/scanner.l"
1894 yylval
->server
.port
= MEMCACHED_DEFAULT_PORT
;
1895 yylval
->server
.weight
= 1;
1896 yylval
->server
.c_str
= yyextra
->set_hostname(yytext
, yyleng
);
1897 if (yylval
->server
.c_str
)
1898 yylval
->server
.size
= yyleng
;
1904 #line 173 "libmemcached/csl/scanner.l"
1906 if (yyextra
->is_server())
1908 yylval
->server
.port
= MEMCACHED_DEFAULT_PORT
;
1909 yylval
->server
.weight
= 1;
1910 yylval
->server
.c_str
= yyextra
->set_hostname(yytext
, yyleng
);
1911 if (yylval
->server
.c_str
)
1912 yylval
->server
.size
= yyleng
;
1917 yylval
->string
.c_str
= yytext
;
1918 yylval
->string
.size
= yyleng
;
1924 /* rule 63 can match eol */
1926 #line 191 "libmemcached/csl/scanner.l"
1928 config_get_text(yyscanner
)[yyleng
-1]= 0;
1929 yylval
->string
.c_str
= yytext
+1;
1930 yylval
->string
.size
= yyleng
-2;
1931 return QUOTED_STRING
;
1936 #line 198 "libmemcached/csl/scanner.l"
1938 yyextra
->begin
= yytext
;
1944 #line 203 "libmemcached/csl/scanner.l"
1947 #line 1948 "libmemcached/csl/scanner.cc"
1948 case YY_STATE_EOF(INITIAL
):
1951 case YY_END_OF_BUFFER
:
1953 /* Amount of text matched not including the EOB char. */
1954 int yy_amount_of_matched_text
= (int) (yy_cp
- yyg
->yytext_ptr
) - 1;
1956 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1957 *yy_cp
= yyg
->yy_hold_char
;
1958 YY_RESTORE_YY_MORE_OFFSET
1960 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_NEW
)
1962 /* We're scanning a new file or input source. It's
1963 * possible that this happened because the user
1964 * just pointed yyin at a new source and called
1965 * config_lex(). If so, then we have to assure
1966 * consistency between YY_CURRENT_BUFFER and our
1967 * globals. Here is the right place to do so, because
1968 * this is the first action (other than possibly a
1969 * back-up) that will match for the new input source.
1971 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
1972 YY_CURRENT_BUFFER_LVALUE
->yy_input_file
= yyin
;
1973 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
= YY_BUFFER_NORMAL
;
1976 /* Note that here we test for yy_c_buf_p "<=" to the position
1977 * of the first EOB in the buffer, since yy_c_buf_p will
1978 * already have been incremented past the NUL character
1979 * (since all states make transitions on EOB to the
1980 * end-of-buffer state). Contrast this with the test
1983 if ( yyg
->yy_c_buf_p
<= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
1984 { /* This was really a NUL. */
1985 yy_state_type yy_next_state
;
1987 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
1989 yy_current_state
= yy_get_previous_state( yyscanner
);
1991 /* Okay, we're now positioned to make the NUL
1992 * transition. We couldn't have
1993 * yy_get_previous_state() go ahead and do it
1994 * for us because it doesn't know how to deal
1995 * with the possibility of jamming (and we don't
1996 * want to build jamming into it because then it
1997 * will run more slowly).
2000 yy_next_state
= yy_try_NUL_trans( yy_current_state
, yyscanner
);
2002 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2004 if ( yy_next_state
)
2006 /* Consume the NUL. */
2007 yy_cp
= ++yyg
->yy_c_buf_p
;
2008 yy_current_state
= yy_next_state
;
2014 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
2015 yy_cp
= yyg
->yy_c_buf_p
;
2016 goto yy_find_action
;
2020 else switch ( yy_get_next_buffer( yyscanner
) )
2022 case EOB_ACT_END_OF_FILE
:
2024 yyg
->yy_did_buffer_switch_on_eof
= 0;
2026 if ( config_wrap(yyscanner
) )
2028 /* Note: because we've taken care in
2029 * yy_get_next_buffer() to have set up
2030 * yytext, we can now set up
2031 * yy_c_buf_p so that if some total
2032 * hoser (like flex itself) wants to
2033 * call the scanner after we return the
2034 * YY_NULL, it'll still work - another
2035 * YY_NULL will get returned.
2037 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2039 yy_act
= YY_STATE_EOF(YY_START
);
2045 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
2051 case EOB_ACT_CONTINUE_SCAN
:
2053 yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
2055 yy_current_state
= yy_get_previous_state( yyscanner
);
2057 yy_cp
= yyg
->yy_c_buf_p
;
2058 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2061 case EOB_ACT_LAST_MATCH
:
2063 &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
];
2065 yy_current_state
= yy_get_previous_state( yyscanner
);
2067 yy_cp
= yyg
->yy_c_buf_p
;
2068 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2069 goto yy_find_action
;
2076 "fatal flex scanner internal error--no action found" );
2077 } /* end of action switch */
2078 } /* end of scanning one token */
2079 } /* end of config_lex */
2080 /* %ok-for-header */
2083 /* %not-for-header */
2085 /* %ok-for-header */
2089 /* yy_get_next_buffer - try to read in a new buffer
2091 * Returns a code representing an action:
2092 * EOB_ACT_LAST_MATCH -
2093 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2094 * EOB_ACT_END_OF_FILE - end of file
2097 static int yy_get_next_buffer (yyscan_t yyscanner
)
2102 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2103 register char *dest
= YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
;
2104 register char *source
= yyg
->yytext_ptr
;
2105 register int number_to_move
, i
;
2108 if ( yyg
->yy_c_buf_p
> &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] )
2110 "fatal flex scanner internal error--end of buffer missed" );
2112 if ( YY_CURRENT_BUFFER_LVALUE
->yy_fill_buffer
== 0 )
2113 { /* Don't try to fill the buffer, so this is an EOF. */
2114 if ( yyg
->yy_c_buf_p
- yyg
->yytext_ptr
- YY_MORE_ADJ
== 1 )
2116 /* We matched a single character, the EOB, so
2117 * treat this as a final EOF.
2119 return EOB_ACT_END_OF_FILE
;
2124 /* We matched some text prior to the EOB, first
2127 return EOB_ACT_LAST_MATCH
;
2131 /* Try to read more data. */
2133 /* First move last chars to start of buffer. */
2134 number_to_move
= (int) (yyg
->yy_c_buf_p
- yyg
->yytext_ptr
) - 1;
2136 for ( i
= 0; i
< number_to_move
; ++i
)
2137 *(dest
++) = *(source
++);
2139 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_EOF_PENDING
)
2140 /* don't do the read, it's not guaranteed to return an EOF,
2143 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
= 0;
2148 YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
- number_to_move
- 1;
2150 while ( num_to_read
<= 0 )
2151 { /* Not enough room in the buffer - grow it. */
2153 /* just a shorter name for the current buffer */
2154 YY_BUFFER_STATE b
= YY_CURRENT_BUFFER
;
2156 int yy_c_buf_p_offset
=
2157 (int) (yyg
->yy_c_buf_p
- b
->yy_ch_buf
);
2159 if ( b
->yy_is_our_buffer
)
2161 int new_size
= b
->yy_buf_size
* 2;
2163 if ( new_size
<= 0 )
2164 b
->yy_buf_size
+= b
->yy_buf_size
/ 8;
2166 b
->yy_buf_size
*= 2;
2168 b
->yy_ch_buf
= (char *)
2169 /* Include room in for 2 EOB chars. */
2170 config_realloc((void *) b
->yy_ch_buf
,b
->yy_buf_size
+ 2 ,yyscanner
);
2173 /* Can't grow it, we don't own it. */
2176 if ( ! b
->yy_ch_buf
)
2178 "fatal error - scanner input buffer overflow" );
2180 yyg
->yy_c_buf_p
= &b
->yy_ch_buf
[yy_c_buf_p_offset
];
2182 num_to_read
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
-
2187 if ( num_to_read
> YY_READ_BUF_SIZE
)
2188 num_to_read
= YY_READ_BUF_SIZE
;
2190 /* Read in more data. */
2191 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[number_to_move
]),
2192 yyg
->yy_n_chars
, (size_t) num_to_read
);
2194 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2197 if ( yyg
->yy_n_chars
== 0 )
2199 if ( number_to_move
== YY_MORE_ADJ
)
2201 ret_val
= EOB_ACT_END_OF_FILE
;
2202 config_restart(yyin
,yyscanner
);
2207 ret_val
= EOB_ACT_LAST_MATCH
;
2208 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
=
2209 YY_BUFFER_EOF_PENDING
;
2214 ret_val
= EOB_ACT_CONTINUE_SCAN
;
2216 if ((yy_size_t
) (yyg
->yy_n_chars
+ number_to_move
) > YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
) {
2217 /* Extend the array by 50%, plus the number we really need. */
2218 yy_size_t new_size
= yyg
->yy_n_chars
+ number_to_move
+ (yyg
->yy_n_chars
>> 1);
2219 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
= (char *) config_realloc((void *) YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
,new_size
,yyscanner
);
2220 if ( ! YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
)
2221 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2224 yyg
->yy_n_chars
+= number_to_move
;
2225 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] = YY_END_OF_BUFFER_CHAR
;
2226 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] = YY_END_OF_BUFFER_CHAR
;
2228 yyg
->yytext_ptr
= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[0];
2233 /* yy_get_previous_state - get the state just before the EOB char was reached */
2236 /* %not-for-header */
2238 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
)
2243 register yy_state_type yy_current_state
;
2244 register char *yy_cp
;
2245 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2247 /* %% [15.0] code to get the start state into yy_current_state goes here */
2248 yy_current_state
= yyg
->yy_start
;
2249 yy_current_state
+= YY_AT_BOL();
2251 for ( yy_cp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
; yy_cp
< yyg
->yy_c_buf_p
; ++yy_cp
)
2253 /* %% [16.0] code to find the next state goes here */
2254 register YY_CHAR yy_c
= (*yy_cp
? yy_ec
[YY_SC_TO_UI(*yy_cp
)] : 1);
2255 if ( yy_accept
[yy_current_state
] )
2257 yyg
->yy_last_accepting_state
= yy_current_state
;
2258 yyg
->yy_last_accepting_cpos
= yy_cp
;
2260 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2262 yy_current_state
= (int) yy_def
[yy_current_state
];
2263 if ( yy_current_state
>= 521 )
2264 yy_c
= yy_meta
[(unsigned int) yy_c
];
2266 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2269 return yy_current_state
;
2272 /* yy_try_NUL_trans - try to make a transition on the NUL character
2275 * next_state = yy_try_NUL_trans( current_state );
2278 static yy_state_type
yy_try_NUL_trans (yy_state_type yy_current_state
, yyscan_t yyscanner
)
2283 register int yy_is_jam
;
2284 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
; /* This var may be unused depending upon options. */
2285 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
2286 register char *yy_cp
= yyg
->yy_c_buf_p
;
2288 register YY_CHAR yy_c
= 1;
2289 if ( yy_accept
[yy_current_state
] )
2291 yyg
->yy_last_accepting_state
= yy_current_state
;
2292 yyg
->yy_last_accepting_cpos
= yy_cp
;
2294 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2296 yy_current_state
= (int) yy_def
[yy_current_state
];
2297 if ( yy_current_state
>= 521 )
2298 yy_c
= yy_meta
[(unsigned int) yy_c
];
2300 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2301 yy_is_jam
= (yy_current_state
== 520);
2303 return yy_is_jam
? 0 : yy_current_state
;
2313 static int yyinput (yyscan_t yyscanner
)
2315 static int input (yyscan_t yyscanner
)
2323 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2325 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2327 if ( *yyg
->yy_c_buf_p
== YY_END_OF_BUFFER_CHAR
)
2329 /* yy_c_buf_p now points to the character we want to return.
2330 * If this occurs *before* the EOB characters, then it's a
2331 * valid NUL; if not, then we've hit the end of the buffer.
2333 if ( yyg
->yy_c_buf_p
< &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
2334 /* This was really a NUL. */
2335 *yyg
->yy_c_buf_p
= '\0';
2338 { /* need more input */
2339 int offset
= yyg
->yy_c_buf_p
- yyg
->yytext_ptr
;
2342 switch ( yy_get_next_buffer( yyscanner
) )
2344 case EOB_ACT_LAST_MATCH
:
2345 /* This happens because yy_g_n_b()
2346 * sees that we've accumulated a
2347 * token and flags that we need to
2348 * try matching the token before
2349 * proceeding. But for input(),
2350 * there's no matching to consider.
2351 * So convert the EOB_ACT_LAST_MATCH
2352 * to EOB_ACT_END_OF_FILE.
2355 /* Reset buffer status. */
2356 config_restart(yyin
,yyscanner
);
2360 case EOB_ACT_END_OF_FILE
:
2362 if ( config_wrap(yyscanner
) )
2365 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
2368 return yyinput(yyscanner
);
2370 return input(yyscanner
);
2374 case EOB_ACT_CONTINUE_SCAN
:
2375 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ offset
;
2381 c
= *(unsigned char *) yyg
->yy_c_buf_p
; /* cast for 8-bit char's */
2382 *yyg
->yy_c_buf_p
= '\0'; /* preserve yytext */
2383 yyg
->yy_hold_char
= *++yyg
->yy_c_buf_p
;
2385 /* %% [19.0] update BOL and yylineno */
2386 YY_CURRENT_BUFFER_LVALUE
->yy_at_bol
= (c
== '\n');
2391 #endif /* ifndef YY_NO_INPUT */
2394 /** Immediately switch to a different input stream.
2395 * @param input_file A readable stream.
2396 * @param yyscanner The scanner object.
2397 * @note This function does not reset the start condition to @c INITIAL .
2400 void config_restart (FILE * input_file
, yyscan_t yyscanner
)
2405 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2407 if ( ! YY_CURRENT_BUFFER
){
2408 config_ensure_buffer_stack (yyscanner
);
2409 YY_CURRENT_BUFFER_LVALUE
=
2410 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
2413 config__init_buffer(YY_CURRENT_BUFFER
,input_file
,yyscanner
);
2414 config__load_buffer_state(yyscanner
);
2417 /** Switch to a different input buffer.
2418 * @param new_buffer The new input buffer.
2419 * @param yyscanner The scanner object.
2422 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
2427 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2429 /* TODO. We should be able to replace this entire function body
2431 * config_pop_buffer_state();
2432 * config_push_buffer_state(new_buffer);
2434 config_ensure_buffer_stack (yyscanner
);
2435 if ( YY_CURRENT_BUFFER
== new_buffer
)
2438 if ( YY_CURRENT_BUFFER
)
2440 /* Flush out information for old buffer. */
2441 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2442 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
2443 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2446 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
2447 config__load_buffer_state(yyscanner
);
2449 /* We don't actually know whether we did this switch during
2450 * EOF (config_wrap()) processing, but the only time this flag
2451 * is looked at is after config_wrap() is called, so it's safe
2452 * to go ahead and always set it.
2454 yyg
->yy_did_buffer_switch_on_eof
= 1;
2458 static void config__load_buffer_state (yyscan_t yyscanner
)
2463 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2464 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
2465 yyg
->yytext_ptr
= yyg
->yy_c_buf_p
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
;
2466 yyin
= YY_CURRENT_BUFFER_LVALUE
->yy_input_file
;
2467 yyg
->yy_hold_char
= *yyg
->yy_c_buf_p
;
2470 /** Allocate and initialize an input buffer state.
2471 * @param file A readable stream.
2472 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2473 * @param yyscanner The scanner object.
2474 * @return the allocated buffer state.
2477 YY_BUFFER_STATE
config__create_buffer (FILE * file
, int size
, yyscan_t yyscanner
)
2484 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
2486 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2488 b
->yy_buf_size
= size
;
2490 /* yy_ch_buf has to be 2 characters longer than the size given because
2491 * we need to put in 2 end-of-buffer characters.
2493 b
->yy_ch_buf
= (char *) config_alloc(b
->yy_buf_size
+ 2 ,yyscanner
);
2494 if ( ! b
->yy_ch_buf
)
2495 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2497 b
->yy_is_our_buffer
= 1;
2499 config__init_buffer(b
,file
,yyscanner
);
2504 /** Destroy the buffer.
2505 * @param b a buffer created with config__create_buffer()
2506 * @param yyscanner The scanner object.
2509 void config__delete_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2514 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2519 if ( b
== YY_CURRENT_BUFFER
) /* Not sure if we should pop here. */
2520 YY_CURRENT_BUFFER_LVALUE
= (YY_BUFFER_STATE
) 0;
2522 if ( b
->yy_is_our_buffer
)
2523 config_free((void *) b
->yy_ch_buf
,yyscanner
);
2525 config_free((void *) b
,yyscanner
);
2531 extern int isatty (int );
2532 #endif /* __cplusplus */
2539 /* Initializes or reinitializes a buffer.
2540 * This function is sometimes called more than once on the same buffer,
2541 * such as during a config_restart() or at EOF.
2544 static void config__init_buffer (YY_BUFFER_STATE b
, FILE * file
, yyscan_t yyscanner
)
2551 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2553 config__flush_buffer(b
,yyscanner
);
2555 b
->yy_input_file
= file
;
2556 b
->yy_fill_buffer
= 1;
2558 /* If b is the current buffer, then config__init_buffer was _probably_
2559 * called from config_restart() or through yy_get_next_buffer.
2560 * In that case, we don't want to reset the lineno or column.
2562 if (b
!= YY_CURRENT_BUFFER
){
2563 b
->yy_bs_lineno
= 1;
2564 b
->yy_bs_column
= 0;
2569 b
->yy_is_interactive
= file
? (isatty( fileno(file
) ) > 0) : 0;
2577 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2578 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2579 * @param yyscanner The scanner object.
2582 void config__flush_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2587 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2593 /* We always need two end-of-buffer characters. The first causes
2594 * a transition to the end-of-buffer state. The second causes
2595 * a jam in that state.
2597 b
->yy_ch_buf
[0] = YY_END_OF_BUFFER_CHAR
;
2598 b
->yy_ch_buf
[1] = YY_END_OF_BUFFER_CHAR
;
2600 b
->yy_buf_pos
= &b
->yy_ch_buf
[0];
2603 b
->yy_buffer_status
= YY_BUFFER_NEW
;
2605 if ( b
== YY_CURRENT_BUFFER
)
2606 config__load_buffer_state(yyscanner
);
2610 /** Pushes the new state onto the stack. The new state becomes
2611 * the current state. This function will allocate the stack
2613 * @param new_buffer The new state.
2614 * @param yyscanner The scanner object.
2617 void config_push_buffer_state (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
2622 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2623 if (new_buffer
== NULL
)
2626 config_ensure_buffer_stack(yyscanner
);
2628 /* This block is copied from config__switch_to_buffer. */
2629 if ( YY_CURRENT_BUFFER
)
2631 /* Flush out information for old buffer. */
2632 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2633 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
2634 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2637 /* Only push if top exists. Otherwise, replace top. */
2638 if (YY_CURRENT_BUFFER
)
2639 yyg
->yy_buffer_stack_top
++;
2640 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
2642 /* copied from config__switch_to_buffer. */
2643 config__load_buffer_state(yyscanner
);
2644 yyg
->yy_did_buffer_switch_on_eof
= 1;
2649 /** Removes and deletes the top of the stack, if present.
2650 * The next element becomes the new top.
2651 * @param yyscanner The scanner object.
2654 void config_pop_buffer_state (yyscan_t yyscanner
)
2659 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2660 if (!YY_CURRENT_BUFFER
)
2663 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
2664 YY_CURRENT_BUFFER_LVALUE
= NULL
;
2665 if (yyg
->yy_buffer_stack_top
> 0)
2666 --yyg
->yy_buffer_stack_top
;
2668 if (YY_CURRENT_BUFFER
) {
2669 config__load_buffer_state(yyscanner
);
2670 yyg
->yy_did_buffer_switch_on_eof
= 1;
2676 /* Allocates the stack if it does not exist.
2677 * Guarantees space for at least one push.
2680 static void config_ensure_buffer_stack (yyscan_t yyscanner
)
2686 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2688 if (!yyg
->yy_buffer_stack
) {
2690 /* First allocation is just for 2 elements, since we don't know if this
2691 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2692 * immediate realloc on the next call.
2695 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_alloc
2696 (num_to_alloc
* sizeof(struct yy_buffer_state
*)
2698 if ( ! yyg
->yy_buffer_stack
)
2699 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
2701 memset(yyg
->yy_buffer_stack
, 0, num_to_alloc
* sizeof(struct yy_buffer_state
*));
2703 yyg
->yy_buffer_stack_max
= num_to_alloc
;
2704 yyg
->yy_buffer_stack_top
= 0;
2708 if (yyg
->yy_buffer_stack_top
>= (yyg
->yy_buffer_stack_max
) - 1){
2710 /* Increase the buffer to prepare for a possible push. */
2711 int grow_size
= 8 /* arbitrary grow size */;
2713 num_to_alloc
= yyg
->yy_buffer_stack_max
+ grow_size
;
2714 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_realloc
2715 (yyg
->yy_buffer_stack
,
2716 num_to_alloc
* sizeof(struct yy_buffer_state
*)
2718 if ( ! yyg
->yy_buffer_stack
)
2719 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
2721 /* zero only the new slots.*/
2722 memset(yyg
->yy_buffer_stack
+ yyg
->yy_buffer_stack_max
, 0, grow_size
* sizeof(struct yy_buffer_state
*));
2723 yyg
->yy_buffer_stack_max
= num_to_alloc
;
2729 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2730 * @param base the character buffer
2731 * @param size the size in bytes of the character buffer
2732 * @param yyscanner The scanner object.
2733 * @return the newly allocated buffer state object.
2735 YY_BUFFER_STATE
config__scan_buffer (char * base
, yy_size_t size
, yyscan_t yyscanner
)
2740 base
[size
-2] != YY_END_OF_BUFFER_CHAR
||
2741 base
[size
-1] != YY_END_OF_BUFFER_CHAR
)
2742 /* They forgot to leave room for the EOB's. */
2745 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
2747 YY_FATAL_ERROR( "out of dynamic memory in config__scan_buffer()" );
2749 b
->yy_buf_size
= size
- 2; /* "- 2" to take care of EOB's */
2750 b
->yy_buf_pos
= b
->yy_ch_buf
= base
;
2751 b
->yy_is_our_buffer
= 0;
2752 b
->yy_input_file
= 0;
2753 b
->yy_n_chars
= b
->yy_buf_size
;
2754 b
->yy_is_interactive
= 0;
2756 b
->yy_fill_buffer
= 0;
2757 b
->yy_buffer_status
= YY_BUFFER_NEW
;
2759 config__switch_to_buffer(b
,yyscanner
);
2766 /** Setup the input buffer state to scan a string. The next call to config_lex() will
2767 * scan from a @e copy of @a str.
2768 * @param yystr a NUL-terminated string to scan
2769 * @param yyscanner The scanner object.
2770 * @return the newly allocated buffer state object.
2771 * @note If you want to scan bytes that may contain NUL values, then use
2772 * config__scan_bytes() instead.
2774 YY_BUFFER_STATE
config__scan_string (yyconst
char * yystr
, yyscan_t yyscanner
)
2777 return config__scan_bytes(yystr
,strlen(yystr
) ,yyscanner
);
2782 /** Setup the input buffer state to scan the given bytes. The next call to config_lex() will
2783 * scan from a @e copy of @a bytes.
2784 * @param bytes the byte buffer to scan
2785 * @param len the number of bytes in the buffer pointed to by @a bytes.
2786 * @param yyscanner The scanner object.
2787 * @return the newly allocated buffer state object.
2789 YY_BUFFER_STATE
config__scan_bytes (yyconst
char * yybytes
, int _yybytes_len
, yyscan_t yyscanner
)
2796 /* Get memory for full buffer, including space for trailing EOB's. */
2797 n
= _yybytes_len
+ 2;
2798 buf
= (char *) config_alloc(n
,yyscanner
);
2800 YY_FATAL_ERROR( "out of dynamic memory in config__scan_bytes()" );
2802 for ( i
= 0; i
< _yybytes_len
; ++i
)
2803 buf
[i
] = yybytes
[i
];
2805 buf
[_yybytes_len
] = buf
[_yybytes_len
+1] = YY_END_OF_BUFFER_CHAR
;
2807 b
= config__scan_buffer(buf
,n
,yyscanner
);
2809 YY_FATAL_ERROR( "bad buffer in config__scan_bytes()" );
2811 /* It's okay to grow etc. this buffer, and we should throw it
2812 * away when we're done.
2814 b
->yy_is_our_buffer
= 1;
2820 #ifndef YY_EXIT_FAILURE
2821 #define YY_EXIT_FAILURE 2
2825 static void yy_fatal_error (yyconst
char* msg
, yyscan_t yyscanner
)
2827 (void) fprintf( stderr
, "%s\n", msg
);
2828 exit( YY_EXIT_FAILURE
);
2834 /* Redefine yyless() so it works in section 3 code. */
2840 /* Undo effects of setting up yytext. */ \
2841 int yyless_macro_arg = (n); \
2842 YY_LESS_LINENO(yyless_macro_arg);\
2843 yytext[yyleng] = yyg->yy_hold_char; \
2844 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2845 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2846 *yyg->yy_c_buf_p = '\0'; \
2847 yyleng = yyless_macro_arg; \
2851 /* Accessor methods (get/set functions) to struct members. */
2856 /** Get the user-defined data for this scanner.
2857 * @param yyscanner The scanner object.
2859 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
)
2861 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2867 /** Get the current line number.
2868 * @param yyscanner The scanner object.
2870 int config_get_lineno (yyscan_t yyscanner
)
2872 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2874 if (! YY_CURRENT_BUFFER
)
2880 /** Get the current column number.
2881 * @param yyscanner The scanner object.
2883 int config_get_column (yyscan_t yyscanner
)
2885 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2887 if (! YY_CURRENT_BUFFER
)
2893 /** Get the input stream.
2894 * @param yyscanner The scanner object.
2896 FILE *config_get_in (yyscan_t yyscanner
)
2898 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2902 /** Get the output stream.
2903 * @param yyscanner The scanner object.
2905 FILE *config_get_out (yyscan_t yyscanner
)
2907 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2911 /** Get the length of the current token.
2912 * @param yyscanner The scanner object.
2914 int config_get_leng (yyscan_t yyscanner
)
2916 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2920 /** Get the current token.
2921 * @param yyscanner The scanner object.
2924 char *config_get_text (yyscan_t yyscanner
)
2926 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2932 /** Set the user-defined data. This data is never touched by the scanner.
2933 * @param user_defined The data to be associated with this scanner.
2934 * @param yyscanner The scanner object.
2936 void config_set_extra (YY_EXTRA_TYPE user_defined
, yyscan_t yyscanner
)
2938 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2939 yyextra
= user_defined
;
2944 /** Set the current line number.
2945 * @param line_number
2946 * @param yyscanner The scanner object.
2948 void config_set_lineno (int line_number
, yyscan_t yyscanner
)
2950 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2952 /* lineno is only valid if an input buffer exists. */
2953 if (! YY_CURRENT_BUFFER
)
2954 yy_fatal_error( "config_set_lineno called with no buffer" , yyscanner
);
2956 yylineno
= line_number
;
2959 /** Set the current column.
2960 * @param line_number
2961 * @param yyscanner The scanner object.
2963 void config_set_column (int column_no
, yyscan_t yyscanner
)
2965 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2967 /* column is only valid if an input buffer exists. */
2968 if (! YY_CURRENT_BUFFER
)
2969 yy_fatal_error( "config_set_column called with no buffer" , yyscanner
);
2971 yycolumn
= column_no
;
2974 /** Set the input stream. This does not discard the current
2976 * @param in_str A readable stream.
2977 * @param yyscanner The scanner object.
2978 * @see config__switch_to_buffer
2980 void config_set_in (FILE * in_str
, yyscan_t yyscanner
)
2982 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2986 void config_set_out (FILE * out_str
, yyscan_t yyscanner
)
2988 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2992 int config_get_debug (yyscan_t yyscanner
)
2994 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2995 return yy_flex_debug
;
2998 void config_set_debug (int bdebug
, yyscan_t yyscanner
)
3000 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3001 yy_flex_debug
= bdebug
;
3007 /* Accessor methods for yylval and yylloc */
3009 /* %if-bison-bridge */
3011 YYSTYPE
* config_get_lval (yyscan_t yyscanner
)
3013 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3017 void config_set_lval (YYSTYPE
* yylval_param
, yyscan_t yyscanner
)
3019 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3020 yylval
= yylval_param
;
3025 /* User-visible API */
3027 /* config_lex_init is special because it creates the scanner itself, so it is
3028 * the ONLY reentrant function that doesn't take the scanner as the last argument.
3029 * That's why we explicitly handle the declaration, instead of using our macros.
3032 int config_lex_init(yyscan_t
* ptr_yy_globals
)
3035 if (ptr_yy_globals
== NULL
){
3040 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), NULL
);
3042 if (*ptr_yy_globals
== NULL
){
3047 /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
3048 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
3050 return yy_init_globals ( *ptr_yy_globals
);
3053 /* config_lex_init_extra has the same functionality as config_lex_init, but follows the
3054 * convention of taking the scanner as the last argument. Note however, that
3055 * this is a *pointer* to a scanner, as it will be allocated by this call (and
3056 * is the reason, too, why this function also must handle its own declaration).
3057 * The user defined value in the first argument will be available to config_alloc in
3058 * the yyextra field.
3061 int config_lex_init_extra(YY_EXTRA_TYPE yy_user_defined
,yyscan_t
* ptr_yy_globals
)
3064 struct yyguts_t dummy_yyguts
;
3066 config_set_extra (yy_user_defined
, &dummy_yyguts
);
3068 if (ptr_yy_globals
== NULL
){
3073 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), &dummy_yyguts
);
3075 if (*ptr_yy_globals
== NULL
){
3080 /* By setting to 0xAA, we expose bugs in
3081 yy_init_globals. Leave at 0x00 for releases. */
3082 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
3084 config_set_extra (yy_user_defined
, *ptr_yy_globals
);
3086 return yy_init_globals ( *ptr_yy_globals
);
3089 /* %endif if-c-only */
3092 static int yy_init_globals (yyscan_t yyscanner
)
3094 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3095 /* Initialization is the same as for the non-reentrant scanner.
3096 * This function is called from config_lex_destroy(), so don't allocate here.
3099 yyg
->yy_buffer_stack
= 0;
3100 yyg
->yy_buffer_stack_top
= 0;
3101 yyg
->yy_buffer_stack_max
= 0;
3102 yyg
->yy_c_buf_p
= (char *) 0;
3106 yyg
->yy_start_stack_ptr
= 0;
3107 yyg
->yy_start_stack_depth
= 0;
3108 yyg
->yy_start_stack
= NULL
;
3110 /* Defined in main.c */
3119 /* For future reference: Set errno on error, since we are called by
3126 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
3127 /* config_lex_destroy is for both reentrant and non-reentrant scanners. */
3128 int config_lex_destroy (yyscan_t yyscanner
)
3130 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3132 /* Pop the buffer stack, destroying each element. */
3133 while(YY_CURRENT_BUFFER
){
3134 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
3135 YY_CURRENT_BUFFER_LVALUE
= NULL
;
3136 config_pop_buffer_state(yyscanner
);
3139 /* Destroy the stack itself. */
3140 config_free(yyg
->yy_buffer_stack
,yyscanner
);
3141 yyg
->yy_buffer_stack
= NULL
;
3143 /* Destroy the start condition stack. */
3144 config_free(yyg
->yy_start_stack
,yyscanner
);
3145 yyg
->yy_start_stack
= NULL
;
3147 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3148 * config_lex() is called, initialization will occur. */
3149 yy_init_globals( yyscanner
);
3152 /* Destroy the main struct (reentrant only). */
3153 config_free ( yyscanner
, yyscanner
);
3161 * Internal utility routines.
3165 static void yy_flex_strncpy (char* s1
, yyconst
char * s2
, int n
, yyscan_t yyscanner
)
3168 for ( i
= 0; i
< n
; ++i
)
3173 #ifdef YY_NEED_STRLEN
3174 static int yy_flex_strlen (yyconst
char * s
, yyscan_t yyscanner
)
3177 for ( n
= 0; s
[n
]; ++n
)
3184 void *config_alloc (yy_size_t size
, yyscan_t yyscanner
)
3186 return (void *) malloc( size
);
3189 void *config_realloc (void * ptr
, yy_size_t size
, yyscan_t yyscanner
)
3191 /* The cast to (char *) in the following accommodates both
3192 * implementations that use char* generic pointers, and those
3193 * that use void* generic pointers. It works with the latter
3194 * because both ANSI C and C++ allow castless assignment from
3195 * any pointer type to void*, and deal with argument conversions
3196 * as though doing an assignment.
3198 return (void *) realloc( (char *) ptr
, size
);
3201 void config_free (void * ptr
, yyscan_t yyscanner
)
3203 free( (char *) ptr
); /* see config_realloc() for (char *) cast */
3206 /* %if-tables-serialization definitions */
3207 /* %define-yytables The name for this specific scanner's tables. */
3208 #define YYTABLES_NAME "yytables"
3211 /* %ok-for-header */
3213 #line 203 "libmemcached/csl/scanner.l"
3217 void Context::init_scanner()
3219 config_lex_init(&scanner
);
3220 config_set_extra(this,scanner
);
3223 void Context::destroy_scanner()
3225 config_lex_destroy(scanner
);