1 #line 2 "libmemcached/csl/scanner.cc"
2 #line 39 "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"
13 #pragma GCC diagnostic ignored "-Wmissing-declarations"
18 #define YY_EXTRA_TYPE Context*
23 #line 24 "libmemcached/csl/scanner.cc"
25 #define YY_INT_ALIGNED short int
27 /* A lexical scanner generated by flex */
32 /* %if-not-reentrant */
38 #define YY_FLEX_MAJOR_VERSION 2
39 #define YY_FLEX_MINOR_VERSION 5
40 #define YY_FLEX_SUBMINOR_VERSION 35
41 #if YY_FLEX_SUBMINOR_VERSION > 0
56 /* First, we deal with platform-specific or compiler-specific issues. */
58 /* begin standard C headers. */
66 /* %if-tables-serialization */
68 /* end standard C headers. */
71 /* flex integer type definitions */
76 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
78 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
80 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
81 * if you want the limit (max/min) macros for int types.
83 #ifndef __STDC_LIMIT_MACROS
84 #define __STDC_LIMIT_MACROS 1
88 typedef int8_t flex_int8_t
;
89 typedef uint8_t flex_uint8_t
;
90 typedef int16_t flex_int16_t
;
91 typedef uint16_t flex_uint16_t
;
92 typedef int32_t flex_int32_t
;
93 typedef uint32_t flex_uint32_t
;
95 typedef signed char flex_int8_t
;
96 typedef short int flex_int16_t
;
97 typedef int flex_int32_t
;
98 typedef unsigned char flex_uint8_t
;
99 typedef unsigned short int flex_uint16_t
;
100 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)
133 #endif /* ! FLEXINT_H */
142 /* The "const" storage-class-modifier is valid. */
145 #else /* ! __cplusplus */
147 /* C99 requires __STDC__ to be defined as 1. */
148 #if defined (__STDC__)
152 #endif /* defined (__STDC__) */
153 #endif /* ! __cplusplus */
156 #define yyconst const
161 /* %not-for-header */
163 /* Returned upon end-of-file. */
167 /* %not-for-header */
169 /* Promotes a possibly negative, possibly signed char to an unsigned
170 * integer for use as an array index. If the signed char is negative,
171 * we want to instead treat it as an 8-bit unsigned char, hence the
174 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
179 /* An opaque pointer. */
180 #ifndef YY_TYPEDEF_YY_SCANNER_T
181 #define YY_TYPEDEF_YY_SCANNER_T
182 typedef void* yyscan_t
;
185 /* For convenience, these vars (plus the bison vars far below)
186 are macros in the reentrant scanner. */
187 #define yyin yyg->yyin_r
188 #define yyout yyg->yyout_r
189 #define yyextra yyg->yyextra_r
190 #define yyleng yyg->yyleng_r
191 #define yytext yyg->yytext_r
192 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
193 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
194 #define yy_flex_debug yyg->yy_flex_debug_r
198 /* %if-not-reentrant */
201 /* Enter a start condition. This macro really ought to take a parameter,
202 * but we do it the disgusting crufty way forced on us by the ()-less
203 * definition of BEGIN.
205 #define BEGIN yyg->yy_start = 1 + 2 *
207 /* Translate the current start state into a value that can be later handed
208 * to BEGIN to return to the state. The YYSTATE alias is for lex
211 #define YY_START ((yyg->yy_start - 1) / 2)
212 #define YYSTATE YY_START
214 /* Action number for EOF rule of a given start state. */
215 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
217 /* Special action meaning "start processing a new file". */
218 #define YY_NEW_FILE config_restart(yyin ,yyscanner )
220 #define YY_END_OF_BUFFER_CHAR 0
222 /* Size of default input buffer. */
225 /* On IA-64, the buffer size is 16k, not 8k.
226 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
227 * Ditto for the __ia64__ case accordingly.
229 #define YY_BUF_SIZE 32768
231 #define YY_BUF_SIZE 16384
232 #endif /* __ia64__ */
235 /* The state buf must be large enough to hold one state per character in the main buffer.
237 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
239 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
240 #define YY_TYPEDEF_YY_BUFFER_STATE
241 typedef struct yy_buffer_state
*YY_BUFFER_STATE
;
244 /* %if-not-reentrant */
248 /* %if-not-reentrant */
252 #define EOB_ACT_CONTINUE_SCAN 0
253 #define EOB_ACT_END_OF_FILE 1
254 #define EOB_ACT_LAST_MATCH 2
256 #define YY_LESS_LINENO(n)
258 /* Return all but the first "n" matched characters back to the input stream. */
262 /* Undo effects of setting up yytext. */ \
263 int yyless_macro_arg = (n); \
264 YY_LESS_LINENO(yyless_macro_arg);\
265 *yy_cp = yyg->yy_hold_char; \
266 YY_RESTORE_YY_MORE_OFFSET \
267 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
268 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
272 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
274 #ifndef YY_TYPEDEF_YY_SIZE_T
275 #define YY_TYPEDEF_YY_SIZE_T
276 typedef size_t yy_size_t
;
279 #ifndef YY_STRUCT_YY_BUFFER_STATE
280 #define YY_STRUCT_YY_BUFFER_STATE
281 struct yy_buffer_state
290 char *yy_ch_buf
; /* input buffer */
291 char *yy_buf_pos
; /* current position in input buffer */
293 /* Size of input buffer in bytes, not including room for EOB
296 yy_size_t yy_buf_size
;
298 /* Number of characters read into yy_ch_buf, not including EOB
303 /* Whether we "own" the buffer - i.e., we know we created it,
304 * and can realloc() it to grow it, and should free() it to
307 int yy_is_our_buffer
;
309 /* Whether this is an "interactive" input source; if so, and
310 * if we're using stdio for input, then we want to use getc()
311 * instead of fread(), to make sure we stop fetching input after
314 int yy_is_interactive
;
316 /* Whether we're considered to be at the beginning of a line.
317 * If so, '^' rules will be active on the next match, otherwise
322 int yy_bs_lineno
; /**< The line count. */
323 int yy_bs_column
; /**< The column count. */
325 /* Whether to try to fill the input buffer when we reach the
330 int yy_buffer_status
;
332 #define YY_BUFFER_NEW 0
333 #define YY_BUFFER_NORMAL 1
334 /* When an EOF's been seen but there's still some text to process
335 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
336 * shouldn't try reading from the input source any more. We might
337 * still have a bunch of tokens to match, though, because of
338 * possible backing-up.
340 * When we actually see the EOF, we change the status to "new"
341 * (via config_restart()), so that the user can continue scanning by
342 * just pointing yyin at a new input file.
344 #define YY_BUFFER_EOF_PENDING 2
347 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
349 /* %if-c-only Standard (non-C++) definition */
350 /* %not-for-header */
352 /* %if-not-reentrant */
358 /* We provide macros for accessing buffer states in case in the
359 * future we want to put the buffer states in a more general
362 * Returns the top of the stack, or NULL.
364 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
365 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
368 /* Same as previous macro, but useful when we know that the buffer stack is not
369 * NULL or when we need an lvalue. For internal use only.
371 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
373 /* %if-c-only Standard (non-C++) definition */
375 /* %if-not-reentrant */
376 /* %not-for-header */
382 void config_restart (FILE *input_file
,yyscan_t yyscanner
);
383 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
384 YY_BUFFER_STATE
config__create_buffer (FILE *file
,int size
,yyscan_t yyscanner
);
385 void config__delete_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
386 void config__flush_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
387 void config_push_buffer_state (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
388 void config_pop_buffer_state (yyscan_t yyscanner
);
390 static void config_ensure_buffer_stack (yyscan_t yyscanner
);
391 static void config__load_buffer_state (yyscan_t yyscanner
);
392 static void config__init_buffer (YY_BUFFER_STATE b
,FILE *file
,yyscan_t yyscanner
);
394 #define YY_FLUSH_BUFFER config__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
396 YY_BUFFER_STATE
config__scan_buffer (char *base
,yy_size_t size
,yyscan_t yyscanner
);
397 YY_BUFFER_STATE
config__scan_string (yyconst
char *yy_str
,yyscan_t yyscanner
);
398 YY_BUFFER_STATE
config__scan_bytes (yyconst
char *bytes
,int len
,yyscan_t yyscanner
);
402 void *config_alloc (yy_size_t
,yyscan_t yyscanner
);
403 void *config_realloc (void *,yy_size_t
,yyscan_t yyscanner
);
404 void config_free (void * ,yyscan_t yyscanner
);
406 #define yy_new_buffer config__create_buffer
408 #define yy_set_interactive(is_interactive) \
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_is_interactive = is_interactive; \
418 #define yy_set_bol(at_bol) \
420 if ( ! YY_CURRENT_BUFFER ){\
421 config_ensure_buffer_stack (yyscanner); \
422 YY_CURRENT_BUFFER_LVALUE = \
423 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
425 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
428 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
430 /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
431 /* Begin user sect3 */
433 #define config_wrap(n) 1
434 #define YY_SKIP_YYWRAP
438 typedef unsigned char YY_CHAR
;
440 typedef int yy_state_type
;
442 #define yytext_ptr yytext_r
444 /* %if-c-only Standard (non-C++) definition */
446 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
);
447 static yy_state_type
yy_try_NUL_trans (yy_state_type current_state
,yyscan_t yyscanner
);
448 static int yy_get_next_buffer (yyscan_t yyscanner
);
449 static void yy_fatal_error (yyconst
char msg
[] ,yyscan_t yyscanner
);
453 /* Done after the current pattern has been matched and before the
454 * corresponding action - sets up yytext.
456 #define YY_DO_BEFORE_ACTION \
457 yyg->yytext_ptr = yy_bp; \
458 /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
459 yyleng = (size_t) (yy_cp - yy_bp); \
460 yyg->yy_hold_char = *yy_cp; \
462 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
463 yyg->yy_c_buf_p = yy_cp;
465 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
466 #define YY_NUM_RULES 66
467 #define YY_END_OF_BUFFER 67
468 /* This struct is not used in this scanner,
469 but its presence is necessary. */
472 flex_int32_t yy_verify
;
475 static yyconst flex_int16_t yy_accept
[534] =
477 0, 0, 67, 65, 5, 5, 1, 65, 65, 65,
478 2, 65, 65, 65, 65, 65, 65, 65, 65, 65,
479 65, 65, 65, 65, 65, 65, 0, 64, 0, 49,
480 0, 0, 0, 2, 3, 0, 0, 0, 0, 0,
481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
482 0, 0, 0, 0, 6, 49, 49, 49, 49, 49,
483 49, 49, 49, 49, 49, 49, 49, 49, 49, 4,
484 63, 63, 2, 3, 63, 54, 63, 45, 63, 63,
485 63, 63, 63, 63, 64, 0, 63, 53, 63, 63,
486 63, 63, 63, 63, 49, 49, 49, 49, 49, 49,
488 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
489 49, 49, 49, 49, 49, 4, 0, 63, 2, 3,
490 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
491 63, 63, 63, 47, 49, 49, 49, 49, 49, 49,
492 0, 49, 49, 49, 49, 49, 49, 49, 49, 49,
493 49, 49, 49, 49, 49, 49, 49, 49, 4, 63,
494 63, 3, 63, 43, 46, 48, 63, 0, 59, 63,
495 63, 63, 63, 63, 42, 63, 49, 49, 49, 49,
496 49, 49, 49, 0, 0, 0, 49, 49, 49, 49,
497 49, 49, 0, 49, 49, 49, 0, 49, 49, 49,
499 0, 0, 49, 49, 4, 0, 63, 3, 63, 0,
500 63, 63, 63, 63, 51, 60, 52, 63, 49, 49,
501 49, 49, 49, 49, 0, 15, 0, 0, 0, 49,
502 49, 49, 0, 0, 49, 0, 49, 49, 49, 0,
503 49, 0, 49, 0, 0, 0, 0, 49, 4, 62,
504 63, 63, 63, 63, 57, 55, 41, 61, 44, 49,
505 49, 49, 49, 49, 0, 0, 0, 0, 0, 49,
506 49, 49, 0, 0, 49, 0, 49, 0, 49, 0,
507 49, 0, 49, 0, 0, 0, 0, 49, 62, 63,
508 58, 56, 0, 0, 49, 49, 49, 0, 0, 0,
510 0, 0, 49, 19, 0, 0, 0, 0, 49, 0,
511 0, 0, 7, 0, 0, 8, 0, 49, 0, 0,
512 34, 0, 0, 62, 63, 0, 0, 49, 0, 49,
513 0, 0, 0, 0, 0, 49, 0, 0, 0, 0,
514 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
515 0, 0, 0, 50, 0, 0, 49, 0, 49, 0,
516 0, 0, 0, 0, 49, 0, 0, 38, 37, 49,
517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
518 0, 35, 0, 0, 0, 0, 0, 49, 0, 0,
519 0, 0, 0, 39, 0, 0, 0, 0, 0, 0,
521 0, 0, 0, 29, 0, 0, 0, 0, 36, 0,
522 0, 0, 0, 49, 0, 0, 0, 0, 0, 0,
523 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
524 0, 33, 0, 0, 0, 0, 49, 0, 0, 0,
525 0, 0, 0, 0, 0, 23, 0, 0, 26, 0,
526 0, 0, 32, 0, 0, 0, 0, 13, 40, 0,
527 0, 0, 0, 0, 21, 0, 0, 0, 0, 0,
528 31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
529 0, 0, 25, 0, 0, 9, 10, 11, 0, 0,
530 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
532 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
533 18, 0, 0, 0, 27, 28, 0, 0, 0, 0,
534 0, 14, 16, 20, 0, 0, 0, 0, 0, 0,
538 static yyconst flex_int32_t yy_ec
[256] =
540 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
541 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
542 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
543 1, 4, 1, 5, 6, 1, 1, 1, 1, 1,
544 1, 1, 1, 7, 8, 9, 10, 11, 12, 13,
545 14, 15, 16, 17, 11, 11, 11, 18, 1, 1,
546 19, 1, 20, 1, 21, 22, 23, 24, 25, 26,
547 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
548 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
549 1, 47, 1, 1, 48, 1, 49, 50, 51, 52,
551 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
552 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
553 73, 74, 1, 1, 1, 1, 1, 1, 1, 1,
554 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
555 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
556 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
557 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
558 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
559 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
560 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
562 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
563 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
564 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
565 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
566 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
570 static yyconst flex_int32_t yy_meta
[75] =
572 1, 1, 1, 1, 2, 1, 1, 2, 2, 1,
573 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
574 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
575 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
576 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
577 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
578 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
582 static yyconst flex_int16_t yy_base
[539] =
584 0, 628, 628, 1740, 1740, 1740, 1740, 70, 618, 605,
585 67, 74, 0, 57, 52, 59, 73, 57, 64, 74,
586 612, 77, 79, 77, 65, 612, 101, 1740, 609, 138,
587 202, 215, 217, 230, 237, 250, 252, 259, 265, 277,
588 282, 287, 297, 271, 315, 377, 323, 342, 350, 359,
589 364, 396, 401, 606, 1740, 449, 242, 73, 80, 85,
590 90, 78, 378, 79, 397, 398, 92, 77, 94, 441,
591 328, 515, 528, 481, 499, 421, 541, 543, 548, 553,
592 559, 565, 576, 590, 595, 649, 0, 597, 622, 614,
593 624, 656, 632, 674, 123, 132, 235, 249, 253, 271,
595 586, 285, 296, 328, 403, 340, 358, 375, 379, 413,
596 650, 404, 438, 456, 444, 717, 730, 743, 756, 768,
597 781, 787, 789, 797, 803, 808, 825, 810, 838, 852,
598 854, 863, 870, 702, 463, 460, 651, 519, 537, 537,
599 656, 544, 561, 594, 634, 652, 662, 572, 655, 654,
600 651, 571, 664, 658, 672, 570, 711, 696, 893, 921,
601 872, 928, 907, 879, 942, 944, 949, 951, 958, 967,
602 973, 975, 980, 993, 995, 1000, 737, 768, 771, 795,
603 787, 798, 126, 796, 860, 852, 857, 861, 961, 569,
604 567, 959, 971, 970, 971, 992, 985, 1002, 564, 994,
606 999, 990, 547, 1006, 1056, 1069, 1082, 1740, 1095, 1097,
607 1107, 1113, 1124, 1118, 1131, 1133, 1139, 1145, 989, 998,
608 1010, 1024, 1022, 546, 1066, 1740, 1084, 1086, 1107, 1110,
609 1126, 1122, 1124, 1134, 1135, 1140, 1145, 527, 1133, 1144,
610 1135, 1148, 1140, 1155, 1147, 1159, 1165, 1145, 1740, 1211,
611 1224, 1226, 1232, 1234, 1239, 1245, 1247, 1252, 1257, 526,
612 517, 1161, 1196, 1236, 1221, 1239, 1244, 514, 513, 1249,
613 1226, 472, 1244, 1254, 1247, 1245, 471, 1241, 457, 1251,
614 258, 1250, 1248, 1264, 1266, 1256, 1273, 456, 1316, 1329,
615 1331, 1336, 1271, 1276, 1277, 451, 1278, 1298, 1286, 1307,
617 1312, 1307, 1329, 0, 1318, 1322, 1313, 1324, 1313, 1335,
618 1335, 1333, 1740, 1340, 1328, 1740, 1329, 406, 1333, 1345,
619 1740, 1331, 1341, 1396, 1398, 1344, 1367, 1377, 1368, 1369,
620 1373, 1384, 403, 1375, 1393, 1390, 1391, 1394, 373, 372,
621 1396, 1387, 1402, 1391, 1390, 1401, 1402, 1388, 1406, 1438,
622 1400, 1412, 1409, 1460, 1400, 1411, 367, 1429, 1435, 1431,
623 362, 1428, 1447, 1433, 346, 352, 1439, 1740, 1740, 348,
624 1434, 1448, 1453, 1438, 1458, 1448, 1444, 1463, 1453, 1464,
625 1468, 1740, 1445, 1451, 1452, 1468, 1463, 1462, 1475, 1480,
626 1494, 1494, 1498, 1740, 1488, 1486, 1490, 1489, 1498, 1496,
628 1493, 1492, 1511, 1740, 1497, 1508, 1506, 1494, 1740, 1505,
629 1516, 1515, 1520, 1512, 1512, 1528, 1510, 1527, 1515, 1535,
630 1530, 1546, 334, 1551, 1538, 333, 340, 336, 1740, 1540,
631 1558, 1740, 1561, 1546, 1554, 1552, 322, 1555, 1557, 1566,
632 1552, 1560, 1558, 321, 1559, 1740, 1572, 1557, 1740, 1561,
633 1562, 1577, 1740, 1568, 1565, 1581, 1567, 1740, 1740, 1584,
634 1578, 1603, 1606, 1600, 1740, 1603, 319, 289, 1609, 1610,
635 1740, 1608, 1602, 285, 1602, 1604, 1612, 1618, 1609, 1619,
636 1620, 1611, 1740, 1605, 1606, 1740, 1740, 1740, 282, 1617,
637 1635, 253, 1626, 1635, 1636, 1636, 1637, 1639, 1740, 1644,
639 1634, 1740, 243, 1661, 1662, 1650, 237, 221, 1668, 1663,
640 1740, 1656, 229, 1654, 1740, 1740, 1672, 217, 208, 1660,
641 1674, 1740, 1740, 1740, 1676, 1664, 1682, 1665, 1681, 202,
642 1740, 1740, 1740, 1733, 154, 1735, 131, 1737
645 static yyconst flex_int16_t yy_def
[539] =
647 533, 1, 533, 533, 533, 533, 533, 534, 533, 533,
648 535, 533, 535, 535, 535, 535, 535, 535, 535, 535,
649 535, 535, 535, 535, 535, 536, 534, 533, 534, 533,
650 533, 537, 537, 537, 533, 537, 537, 537, 537, 537,
651 537, 537, 537, 537, 537, 538, 537, 537, 537, 537,
652 537, 537, 537, 536, 533, 30, 56, 56, 56, 56,
653 56, 56, 56, 56, 56, 56, 56, 56, 56, 533,
654 537, 537, 537, 533, 537, 537, 537, 537, 537, 537,
655 537, 537, 537, 537, 537, 538, 86, 537, 537, 537,
656 537, 537, 537, 537, 56, 56, 56, 56, 56, 56,
658 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
659 56, 56, 56, 56, 56, 533, 537, 537, 537, 533,
660 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
661 537, 537, 537, 537, 56, 56, 56, 56, 56, 56,
662 533, 56, 56, 56, 56, 56, 56, 56, 56, 56,
663 56, 56, 56, 56, 56, 56, 56, 56, 533, 537,
664 537, 533, 537, 537, 537, 537, 537, 537, 537, 537,
665 537, 537, 537, 537, 537, 537, 56, 56, 56, 56,
666 56, 56, 56, 533, 533, 533, 56, 56, 56, 56,
667 56, 56, 533, 56, 56, 56, 533, 56, 56, 56,
669 533, 533, 56, 56, 533, 537, 537, 533, 537, 537,
670 537, 537, 537, 537, 537, 537, 537, 537, 56, 56,
671 56, 56, 56, 56, 533, 533, 533, 533, 533, 56,
672 56, 56, 533, 533, 56, 533, 56, 56, 56, 533,
673 56, 533, 56, 533, 533, 533, 533, 56, 533, 537,
674 537, 537, 537, 537, 537, 537, 537, 537, 537, 56,
675 56, 56, 56, 56, 533, 533, 533, 533, 533, 56,
676 56, 56, 533, 533, 56, 533, 56, 533, 56, 533,
677 56, 533, 56, 533, 533, 533, 533, 56, 537, 537,
678 537, 537, 533, 533, 56, 56, 56, 533, 533, 533,
680 533, 533, 56, 56, 533, 533, 533, 533, 56, 533,
681 533, 533, 533, 533, 533, 533, 533, 56, 533, 533,
682 533, 533, 533, 537, 537, 533, 533, 56, 533, 56,
683 533, 533, 533, 533, 533, 56, 533, 533, 533, 533,
684 56, 533, 533, 533, 533, 533, 533, 533, 533, 533,
685 533, 533, 533, 537, 533, 533, 56, 533, 56, 533,
686 533, 533, 533, 533, 56, 533, 533, 533, 533, 56,
687 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
688 533, 533, 533, 533, 533, 533, 533, 56, 533, 533,
689 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
691 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
692 533, 533, 533, 56, 533, 533, 533, 533, 533, 533,
693 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
694 533, 533, 533, 533, 533, 533, 56, 533, 533, 533,
695 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
696 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
697 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
698 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
699 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
700 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
702 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
703 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
704 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
705 533, 533, 0, 533, 533, 533, 533, 533
708 static yyconst flex_int16_t yy_nxt
[1815] =
710 4, 5, 6, 7, 8, 4, 7, 9, 4, 10,
711 11, 11, 11, 11, 11, 11, 11, 12, 7, 4,
712 13, 13, 14, 15, 16, 17, 13, 18, 19, 20,
713 13, 21, 22, 13, 13, 13, 13, 23, 24, 25,
714 13, 13, 13, 13, 13, 13, 4, 4, 13, 13,
715 14, 15, 16, 17, 13, 18, 19, 20, 13, 21,
716 22, 13, 13, 13, 13, 23, 24, 25, 13, 13,
717 13, 13, 13, 13, 28, 33, 38, 34, 34, 34,
718 34, 34, 34, 34, 35, 35, 35, 35, 35, 35,
719 35, 36, 39, 41, 37, 43, 40, 44, 45, 50,
721 47, 52, 53, 51, 38, 28, 42, 97, 98, 99,
722 100, 48, 101, 105, 113, 114, 29, 49, 115, 36,
723 39, 41, 37, 43, 40, 44, 45, 50, 47, 52,
724 53, 51, 71, 225, 42, 97, 98, 99, 100, 48,
725 101, 105, 113, 114, 226, 49, 115, 29, 56, 56,
726 56, 56, 56, 56, 56, 32, 135, 136, 56, 57,
727 58, 59, 56, 60, 56, 61, 62, 56, 56, 56,
728 56, 63, 56, 64, 56, 65, 66, 67, 68, 69,
729 56, 56, 56, 56, 135, 136, 56, 57, 58, 59,
730 56, 60, 56, 61, 62, 56, 56, 56, 56, 63,
732 56, 64, 56, 65, 66, 67, 68, 69, 56, 56,
733 56, 56, 70, 70, 70, 70, 70, 70, 70, 32,
734 532, 32, 32, 32, 32, 32, 524, 72, 72, 72,
735 72, 72, 72, 72, 32, 523, 520, 32, 33, 516,
736 73, 73, 73, 73, 73, 73, 73, 74, 74, 74,
737 74, 74, 74, 74, 32, 515, 32, 32, 32, 32,
738 32, 511, 32, 32, 32, 315, 32, 32, 137, 32,
739 95, 502, 32, 32, 76, 32, 316, 32, 32, 32,
740 77, 32, 96, 75, 32, 32, 32, 138, 78, 32,
741 32, 32, 139, 83, 32, 32, 137, 32, 95, 32,
743 499, 32, 76, 488, 32, 32, 32, 483, 77, 140,
744 96, 75, 32, 80, 79, 138, 78, 142, 32, 32,
745 139, 83, 32, 32, 32, 82, 482, 32, 81, 32,
746 32, 32, 32, 143, 32, 32, 32, 140, 88, 465,
747 458, 80, 79, 451, 32, 142, 32, 450, 84, 32,
748 32, 449, 446, 82, 32, 397, 81, 32, 32, 395,
749 144, 143, 32, 32, 394, 89, 32, 32, 32, 390,
750 32, 32, 32, 147, 386, 32, 84, 27, 27, 27,
751 27, 85, 27, 27, 86, 86, 27, 90, 144, 32,
752 369, 368, 91, 89, 27, 27, 27, 32, 102, 148,
754 32, 147, 92, 32, 32, 32, 32, 149, 32, 32,
755 362, 32, 103, 349, 150, 90, 151, 106, 104, 107,
756 91, 108, 109, 29, 86, 32, 102, 148, 32, 32,
757 92, 110, 111, 93, 145, 149, 152, 146, 112, 155,
758 103, 94, 150, 32, 151, 106, 104, 107, 32, 108,
759 109, 116, 116, 116, 116, 116, 116, 116, 329, 110,
760 111, 93, 145, 323, 152, 146, 112, 155, 32, 94,
761 56, 56, 56, 156, 56, 313, 56, 56, 311, 305,
762 157, 158, 56, 177, 56, 178, 56, 56, 56, 56,
763 56, 120, 120, 120, 120, 120, 120, 120, 56, 56,
765 56, 156, 56, 32, 56, 56, 32, 32, 157, 158,
766 56, 177, 56, 178, 56, 56, 56, 56, 56, 32,
767 302, 301, 32, 117, 294, 118, 118, 118, 118, 118,
768 118, 118, 32, 293, 278, 32, 33, 121, 119, 119,
769 119, 119, 119, 119, 119, 32, 32, 32, 32, 32,
770 32, 32, 32, 265, 247, 32, 32, 32, 181, 182,
771 32, 32, 32, 32, 183, 121, 32, 32, 187, 32,
772 125, 242, 32, 32, 234, 32, 233, 201, 197, 193,
773 32, 122, 123, 32, 32, 188, 181, 182, 32, 126,
774 32, 124, 183, 141, 32, 32, 187, 32, 32, 32,
776 32, 32, 32, 32, 32, 32, 32, 127, 55, 122,
777 123, 533, 32, 188, 55, 189, 46, 126, 32, 124,
778 128, 32, 32, 32, 31, 30, 32, 533, 32, 32,
779 32, 32, 32, 26, 533, 127, 32, 32, 533, 32,
780 32, 533, 32, 189, 32, 533, 130, 131, 128, 27,
781 27, 27, 27, 85, 27, 27, 86, 86, 27, 533,
782 32, 32, 129, 32, 32, 190, 27, 27, 27, 32,
783 533, 32, 153, 133, 130, 131, 179, 184, 32, 32,
784 132, 32, 32, 191, 180, 192, 185, 154, 186, 194,
785 129, 195, 196, 190, 198, 29, 86, 199, 134, 533,
787 153, 133, 533, 32, 179, 184, 32, 200, 132, 32,
788 32, 191, 180, 192, 185, 154, 186, 194, 202, 195,
789 196, 32, 198, 533, 204, 199, 134, 159, 159, 159,
790 159, 159, 159, 159, 32, 200, 533, 32, 32, 533,
791 160, 160, 160, 160, 160, 160, 160, 32, 203, 32,
792 32, 117, 204, 161, 161, 161, 161, 161, 161, 161,
793 32, 533, 533, 32, 32, 533, 119, 119, 119, 119,
794 119, 119, 119, 533, 219, 533, 203, 32, 162, 162,
795 162, 162, 162, 162, 162, 32, 533, 533, 32, 32,
796 32, 32, 220, 32, 32, 32, 32, 32, 533, 221,
798 533, 32, 219, 32, 32, 32, 533, 32, 533, 163,
799 32, 32, 32, 164, 32, 32, 32, 32, 32, 222,
800 220, 166, 533, 167, 223, 224, 165, 221, 32, 32,
801 533, 533, 32, 32, 32, 169, 32, 163, 171, 533,
802 227, 164, 32, 533, 32, 32, 32, 222, 533, 166,
803 168, 167, 223, 224, 165, 32, 32, 32, 32, 32,
804 32, 32, 32, 169, 533, 170, 171, 32, 227, 172,
805 32, 32, 32, 533, 32, 533, 32, 32, 32, 32,
806 117, 533, 533, 32, 228, 32, 32, 32, 174, 533,
807 229, 533, 173, 170, 176, 230, 231, 172, 533, 32,
809 533, 32, 175, 205, 205, 205, 205, 205, 205, 205,
810 32, 32, 228, 533, 32, 32, 174, 32, 229, 32,
811 173, 533, 176, 230, 231, 32, 32, 533, 32, 206,
812 175, 207, 207, 207, 207, 207, 207, 207, 208, 208,
813 208, 208, 208, 208, 208, 209, 32, 533, 32, 32,
814 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
815 533, 533, 32, 533, 211, 32, 32, 212, 32, 533,
816 533, 32, 533, 209, 32, 32, 533, 32, 533, 32,
817 32, 32, 32, 32, 32, 232, 533, 32, 32, 32,
818 213, 32, 533, 235, 533, 215, 210, 32, 32, 32,
820 32, 32, 32, 32, 32, 32, 214, 32, 32, 533,
821 236, 237, 533, 232, 32, 238, 239, 216, 213, 533,
822 32, 235, 32, 215, 240, 217, 241, 32, 243, 244,
823 246, 248, 245, 260, 214, 261, 262, 218, 236, 237,
824 32, 533, 32, 238, 239, 216, 263, 32, 533, 533,
825 264, 533, 240, 217, 241, 533, 243, 244, 246, 248,
826 245, 260, 533, 261, 262, 218, 249, 249, 249, 249,
827 249, 249, 249, 32, 263, 533, 32, 32, 264, 250,
828 250, 250, 250, 250, 250, 250, 32, 533, 533, 32,
829 206, 533, 251, 251, 251, 251, 251, 251, 251, 32,
831 533, 32, 32, 32, 32, 32, 533, 533, 266, 533,
832 253, 32, 533, 254, 32, 32, 32, 32, 533, 255,
833 32, 32, 32, 267, 533, 32, 32, 256, 32, 32,
834 268, 32, 32, 269, 252, 32, 266, 32, 32, 32,
835 32, 32, 32, 32, 32, 270, 32, 32, 257, 32,
836 533, 267, 32, 32, 32, 533, 258, 271, 268, 272,
837 32, 269, 252, 273, 533, 32, 274, 275, 276, 277,
838 279, 32, 280, 270, 281, 282, 257, 283, 32, 284,
839 32, 285, 286, 259, 258, 271, 32, 272, 287, 288,
840 533, 273, 32, 533, 274, 275, 276, 277, 279, 533,
842 280, 295, 281, 282, 533, 283, 533, 284, 533, 285,
843 286, 259, 533, 533, 533, 32, 287, 288, 32, 32,
844 533, 289, 289, 289, 289, 289, 289, 289, 32, 295,
845 32, 32, 206, 32, 32, 296, 32, 533, 32, 32,
846 32, 32, 32, 32, 291, 533, 32, 32, 292, 32,
847 290, 32, 32, 32, 32, 32, 32, 297, 32, 32,
848 32, 32, 298, 296, 32, 32, 533, 299, 300, 303,
849 304, 32, 306, 32, 307, 309, 533, 310, 290, 32,
850 312, 32, 308, 314, 317, 297, 32, 318, 319, 320,
851 298, 321, 32, 322, 32, 299, 300, 303, 304, 32,
853 306, 533, 307, 309, 32, 310, 326, 533, 312, 533,
854 308, 314, 317, 327, 328, 318, 319, 320, 330, 321,
855 32, 322, 331, 32, 32, 332, 324, 324, 324, 324,
856 324, 324, 324, 32, 326, 32, 32, 32, 32, 32,
857 32, 327, 328, 32, 32, 333, 330, 334, 533, 335,
858 331, 336, 337, 332, 338, 533, 339, 340, 341, 342,
859 343, 344, 325, 32, 345, 346, 347, 348, 350, 351,
860 352, 353, 533, 333, 533, 334, 32, 335, 32, 336,
861 337, 355, 338, 32, 339, 340, 341, 342, 343, 344,
862 325, 356, 345, 346, 347, 348, 350, 351, 352, 353,
864 32, 357, 32, 32, 32, 32, 32, 358, 359, 355,
865 360, 361, 363, 364, 365, 533, 366, 533, 367, 356,
866 370, 371, 372, 373, 374, 375, 376, 377, 378, 357,
867 533, 381, 382, 383, 384, 358, 359, 354, 360, 361,
868 363, 364, 365, 32, 366, 32, 367, 385, 370, 371,
869 372, 373, 374, 375, 376, 377, 378, 387, 379, 381,
870 382, 383, 384, 388, 32, 354, 380, 32, 32, 389,
871 391, 392, 393, 396, 398, 385, 399, 400, 401, 533,
872 402, 403, 404, 405, 406, 387, 379, 407, 408, 409,
873 410, 388, 411, 412, 380, 413, 414, 389, 391, 392,
875 393, 396, 398, 415, 399, 400, 401, 32, 402, 403,
876 404, 405, 406, 416, 417, 407, 408, 409, 410, 418,
877 411, 412, 419, 413, 414, 420, 421, 422, 423, 424,
878 425, 415, 426, 427, 428, 429, 430, 431, 432, 433,
879 434, 416, 417, 435, 436, 437, 438, 418, 439, 440,
880 419, 441, 442, 420, 421, 422, 423, 424, 425, 443,
881 426, 427, 428, 429, 430, 431, 432, 433, 434, 444,
882 445, 435, 436, 437, 438, 447, 439, 440, 448, 441,
883 442, 452, 453, 454, 455, 456, 457, 443, 459, 460,
884 461, 462, 463, 464, 466, 467, 468, 444, 445, 469,
886 470, 471, 472, 447, 473, 474, 448, 475, 476, 452,
887 453, 454, 455, 456, 457, 477, 459, 460, 461, 462,
888 463, 464, 466, 467, 468, 478, 479, 469, 470, 471,
889 472, 480, 473, 474, 481, 475, 476, 484, 485, 486,
890 487, 489, 490, 477, 491, 492, 493, 494, 495, 496,
891 497, 498, 500, 478, 479, 501, 503, 504, 505, 480,
892 506, 507, 481, 508, 509, 484, 485, 486, 487, 489,
893 490, 510, 491, 492, 493, 494, 495, 496, 497, 498,
894 500, 512, 513, 501, 503, 504, 505, 514, 506, 507,
895 517, 508, 509, 518, 519, 521, 522, 525, 526, 510,
897 527, 528, 529, 530, 531, 533, 533, 533, 533, 512,
898 513, 533, 533, 533, 533, 514, 533, 533, 517, 533,
899 533, 518, 519, 521, 522, 525, 526, 533, 527, 528,
900 529, 530, 531, 27, 27, 54, 54, 87, 87, 3,
901 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
902 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
903 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
904 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
905 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
906 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
908 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
912 static yyconst flex_int16_t yy_chk
[1815] =
914 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
915 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
916 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
917 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
918 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
919 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
920 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
921 1, 1, 1, 1, 8, 11, 15, 11, 11, 11,
922 11, 11, 11, 11, 12, 12, 12, 12, 12, 12,
923 12, 14, 16, 17, 14, 18, 16, 19, 20, 23,
925 22, 24, 25, 23, 15, 27, 17, 58, 59, 60,
926 61, 22, 62, 64, 67, 68, 8, 22, 69, 14,
927 16, 17, 14, 18, 16, 19, 20, 23, 22, 24,
928 25, 23, 537, 183, 17, 58, 59, 60, 61, 22,
929 62, 64, 67, 68, 183, 22, 69, 27, 30, 30,
930 30, 30, 30, 30, 30, 535, 95, 96, 30, 30,
931 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
932 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
933 30, 30, 30, 30, 95, 96, 30, 30, 30, 30,
934 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
936 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
937 30, 30, 31, 31, 31, 31, 31, 31, 31, 32,
938 530, 33, 32, 32, 33, 33, 519, 33, 33, 33,
939 33, 33, 33, 33, 34, 518, 513, 34, 34, 508,
940 34, 34, 34, 34, 34, 34, 34, 35, 35, 35,
941 35, 35, 35, 35, 36, 507, 37, 36, 36, 37,
942 37, 503, 32, 38, 33, 281, 38, 38, 97, 39,
943 57, 492, 39, 39, 37, 44, 281, 34, 44, 44,
944 38, 40, 57, 36, 40, 40, 41, 98, 39, 41,
945 41, 42, 99, 44, 42, 42, 97, 36, 57, 37,
947 489, 43, 37, 474, 43, 43, 38, 468, 38, 100,
948 57, 36, 39, 41, 40, 98, 39, 102, 44, 45,
949 99, 44, 45, 45, 40, 43, 467, 47, 42, 41,
950 47, 47, 71, 103, 42, 71, 71, 100, 47, 444,
951 437, 41, 40, 428, 43, 102, 48, 427, 45, 48,
952 48, 426, 423, 43, 49, 370, 42, 49, 49, 366,
953 104, 103, 45, 50, 365, 48, 50, 50, 51, 361,
954 47, 51, 51, 106, 357, 71, 45, 46, 46, 46,
955 46, 46, 46, 46, 46, 46, 46, 49, 104, 48,
956 340, 339, 50, 48, 46, 46, 46, 49, 63, 107,
958 52, 106, 51, 52, 52, 53, 50, 108, 53, 53,
959 333, 51, 63, 318, 108, 49, 109, 65, 63, 65,
960 50, 65, 66, 46, 46, 76, 63, 107, 76, 76,
961 51, 66, 66, 52, 105, 108, 110, 105, 66, 112,
962 63, 53, 108, 52, 109, 65, 63, 65, 53, 65,
963 66, 70, 70, 70, 70, 70, 70, 70, 296, 66,
964 66, 52, 105, 288, 110, 105, 66, 112, 76, 53,
965 56, 56, 56, 113, 56, 279, 56, 56, 277, 272,
966 114, 115, 56, 135, 56, 136, 56, 56, 56, 56,
967 56, 74, 74, 74, 74, 74, 74, 74, 56, 56,
969 56, 113, 56, 75, 56, 56, 75, 75, 114, 115,
970 56, 135, 56, 136, 56, 56, 56, 56, 56, 72,
971 269, 268, 72, 72, 261, 72, 72, 72, 72, 72,
972 72, 72, 73, 260, 238, 73, 73, 75, 73, 73,
973 73, 73, 73, 73, 73, 77, 75, 78, 77, 77,
974 78, 78, 79, 224, 203, 79, 79, 80, 138, 139,
975 80, 80, 72, 81, 140, 75, 81, 81, 142, 82,
976 81, 199, 82, 82, 191, 73, 190, 156, 152, 148,
977 83, 77, 79, 83, 83, 143, 138, 139, 77, 82,
978 78, 80, 140, 101, 84, 79, 142, 84, 84, 85,
980 80, 88, 85, 85, 88, 88, 81, 83, 54, 77,
981 79, 29, 82, 143, 26, 144, 21, 82, 90, 80,
982 84, 90, 90, 83, 10, 9, 89, 3, 91, 89,
983 89, 91, 91, 2, 0, 83, 93, 84, 0, 93,
984 93, 0, 85, 144, 88, 0, 90, 91, 84, 86,
985 86, 86, 86, 86, 86, 86, 86, 86, 86, 0,
986 92, 90, 89, 92, 92, 145, 86, 86, 86, 89,
987 0, 91, 111, 93, 90, 91, 137, 141, 94, 93,
988 92, 94, 94, 146, 137, 147, 141, 111, 141, 149,
989 89, 150, 151, 145, 153, 86, 86, 154, 94, 0,
991 111, 93, 0, 92, 137, 141, 134, 155, 92, 134,
992 134, 146, 137, 147, 141, 111, 141, 149, 157, 150,
993 151, 94, 153, 0, 158, 154, 94, 116, 116, 116,
994 116, 116, 116, 116, 117, 155, 0, 117, 117, 0,
995 117, 117, 117, 117, 117, 117, 117, 118, 157, 134,
996 118, 118, 158, 118, 118, 118, 118, 118, 118, 118,
997 119, 0, 0, 119, 119, 0, 119, 119, 119, 119,
998 119, 119, 119, 0, 177, 0, 157, 117, 120, 120,
999 120, 120, 120, 120, 120, 121, 0, 0, 121, 121,
1000 118, 122, 178, 123, 122, 122, 123, 123, 0, 179,
1002 0, 124, 177, 119, 124, 124, 0, 125, 0, 121,
1003 125, 125, 126, 122, 128, 126, 126, 128, 128, 180,
1004 178, 124, 0, 125, 181, 182, 123, 179, 121, 127,
1005 0, 0, 127, 127, 122, 126, 123, 121, 128, 0,
1006 184, 122, 129, 0, 124, 129, 129, 180, 0, 124,
1007 125, 125, 181, 182, 123, 126, 130, 128, 131, 130,
1008 130, 131, 131, 126, 0, 127, 128, 132, 184, 129,
1009 132, 132, 127, 0, 133, 0, 161, 133, 133, 161,
1010 161, 0, 0, 164, 185, 129, 164, 164, 131, 0,
1011 186, 0, 130, 127, 133, 187, 188, 129, 0, 130,
1013 0, 131, 132, 159, 159, 159, 159, 159, 159, 159,
1014 132, 163, 185, 0, 163, 163, 131, 133, 186, 161,
1015 130, 0, 133, 187, 188, 160, 164, 0, 160, 160,
1016 132, 160, 160, 160, 160, 160, 160, 160, 162, 162,
1017 162, 162, 162, 162, 162, 163, 165, 0, 166, 165,
1018 165, 166, 166, 167, 163, 168, 167, 167, 168, 168,
1019 0, 0, 169, 0, 168, 169, 169, 168, 160, 0,
1020 0, 170, 0, 163, 170, 170, 0, 171, 0, 172,
1021 171, 171, 172, 172, 173, 189, 0, 173, 173, 165,
1022 170, 166, 0, 192, 0, 172, 167, 174, 168, 175,
1024 174, 174, 175, 175, 176, 169, 171, 176, 176, 0,
1025 193, 194, 0, 189, 170, 195, 196, 173, 170, 0,
1026 171, 192, 172, 172, 197, 174, 198, 173, 200, 201,
1027 202, 204, 201, 219, 171, 220, 221, 176, 193, 194,
1028 174, 0, 175, 195, 196, 173, 222, 176, 0, 0,
1029 223, 0, 197, 174, 198, 0, 200, 201, 202, 204,
1030 201, 219, 0, 220, 221, 176, 205, 205, 205, 205,
1031 205, 205, 205, 206, 222, 0, 206, 206, 223, 206,
1032 206, 206, 206, 206, 206, 206, 207, 0, 0, 207,
1033 207, 0, 207, 207, 207, 207, 207, 207, 207, 209,
1035 0, 210, 209, 209, 210, 210, 0, 0, 225, 0,
1036 210, 211, 0, 210, 211, 211, 206, 212, 0, 211,
1037 212, 212, 214, 227, 0, 214, 214, 212, 213, 207,
1038 228, 213, 213, 229, 209, 215, 225, 216, 215, 215,
1039 216, 216, 209, 217, 210, 230, 217, 217, 213, 218,
1040 0, 227, 218, 218, 211, 0, 214, 231, 228, 232,
1041 212, 229, 209, 233, 0, 214, 234, 235, 236, 237,
1042 239, 213, 240, 230, 241, 242, 213, 243, 215, 244,
1043 216, 245, 246, 218, 214, 231, 217, 232, 247, 248,
1044 0, 233, 218, 0, 234, 235, 236, 237, 239, 0,
1046 240, 262, 241, 242, 0, 243, 0, 244, 0, 245,
1047 246, 218, 0, 0, 0, 250, 247, 248, 250, 250,
1048 0, 250, 250, 250, 250, 250, 250, 250, 251, 262,
1049 252, 251, 251, 252, 252, 263, 253, 0, 254, 253,
1050 253, 254, 254, 255, 253, 0, 255, 255, 254, 256,
1051 252, 257, 256, 256, 257, 257, 258, 264, 250, 258,
1052 258, 259, 265, 263, 259, 259, 0, 266, 267, 270,
1053 271, 251, 273, 252, 274, 275, 0, 276, 252, 253,
1054 278, 254, 274, 280, 282, 264, 255, 283, 284, 285,
1055 265, 286, 256, 287, 257, 266, 267, 270, 271, 258,
1057 273, 0, 274, 275, 259, 276, 293, 0, 278, 0,
1058 274, 280, 282, 294, 295, 283, 284, 285, 297, 286,
1059 289, 287, 298, 289, 289, 299, 289, 289, 289, 289,
1060 289, 289, 289, 290, 293, 291, 290, 290, 291, 291,
1061 292, 294, 295, 292, 292, 300, 297, 301, 0, 302,
1062 298, 303, 305, 299, 306, 0, 307, 308, 309, 310,
1063 311, 312, 290, 289, 314, 315, 315, 317, 319, 320,
1064 322, 323, 0, 300, 0, 301, 290, 302, 291, 303,
1065 305, 326, 306, 292, 307, 308, 309, 310, 311, 312,
1066 290, 327, 314, 315, 315, 317, 319, 320, 322, 323,
1068 324, 328, 325, 324, 324, 325, 325, 329, 330, 326,
1069 331, 332, 334, 335, 336, 0, 337, 0, 338, 327,
1070 341, 342, 343, 344, 345, 346, 347, 348, 349, 328,
1071 0, 351, 352, 353, 355, 329, 330, 325, 331, 332,
1072 334, 335, 336, 324, 337, 325, 338, 356, 341, 342,
1073 343, 344, 345, 346, 347, 348, 349, 358, 350, 351,
1074 352, 353, 355, 359, 354, 325, 350, 354, 354, 360,
1075 362, 363, 364, 367, 371, 356, 372, 373, 374, 0,
1076 375, 376, 377, 378, 379, 358, 350, 380, 381, 383,
1077 384, 359, 385, 386, 350, 387, 388, 360, 362, 363,
1079 364, 367, 371, 389, 372, 373, 374, 354, 375, 376,
1080 377, 378, 379, 390, 391, 380, 381, 383, 384, 392,
1081 385, 386, 393, 387, 388, 395, 396, 397, 398, 399,
1082 400, 389, 401, 402, 403, 405, 406, 407, 408, 410,
1083 411, 390, 391, 412, 413, 414, 415, 392, 416, 417,
1084 393, 418, 419, 395, 396, 397, 398, 399, 400, 420,
1085 401, 402, 403, 405, 406, 407, 408, 410, 411, 421,
1086 422, 412, 413, 414, 415, 424, 416, 417, 425, 418,
1087 419, 430, 431, 433, 434, 435, 436, 420, 438, 439,
1088 440, 441, 442, 443, 445, 447, 448, 421, 422, 450,
1090 451, 452, 454, 424, 455, 456, 425, 457, 460, 430,
1091 431, 433, 434, 435, 436, 461, 438, 439, 440, 441,
1092 442, 443, 445, 447, 448, 462, 463, 450, 451, 452,
1093 454, 464, 455, 456, 466, 457, 460, 469, 470, 472,
1094 473, 475, 476, 461, 477, 478, 479, 480, 481, 482,
1095 484, 485, 490, 462, 463, 491, 493, 494, 495, 464,
1096 496, 497, 466, 498, 500, 469, 470, 472, 473, 475,
1097 476, 501, 477, 478, 479, 480, 481, 482, 484, 485,
1098 490, 504, 505, 491, 493, 494, 495, 506, 496, 497,
1099 509, 498, 500, 510, 512, 514, 517, 520, 521, 501,
1101 525, 526, 527, 528, 529, 0, 0, 0, 0, 504,
1102 505, 0, 0, 0, 0, 506, 0, 0, 509, 0,
1103 0, 510, 512, 514, 517, 520, 521, 0, 525, 526,
1104 527, 528, 529, 534, 534, 536, 536, 538, 538, 533,
1105 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
1106 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
1107 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
1108 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
1109 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
1110 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
1112 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
1116 static yyconst flex_int16_t yy_rule_linenum
[66] =
1118 99, 101, 103, 105, 107, 110, 114, 116, 118, 119,
1119 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1120 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
1121 140, 141, 142, 143, 144, 145, 147, 148, 150, 152,
1122 154, 155, 156, 157, 158, 159, 161, 162, 165, 170,
1123 171, 172, 174, 175, 176, 177, 178, 179, 180, 181,
1124 182, 184, 193, 211, 218
1127 /* The intent behind this definition is that it'll catch
1128 * any uses of REJECT which flex missed.
1130 #define REJECT reject_used_but_not_detected
1131 #define yymore() yymore_used_but_not_detected
1132 #define YY_MORE_ADJ 0
1133 #define YY_RESTORE_YY_MORE_OFFSET
1134 #line 1 "libmemcached/csl/scanner.l"
1135 /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
1137 * Libmemcached library
1139 * Copyright (C) 2012 Data Differential, http://datadifferential.com/
1141 * Redistribution and use in source and binary forms, with or without
1142 * modification, are permitted provided that the following conditions are
1145 * * Redistributions of source code must retain the above copyright
1146 * notice, this list of conditions and the following disclaimer.
1148 * * Redistributions in binary form must reproduce the above
1149 * copyright notice, this list of conditions and the following disclaimer
1150 * in the documentation and/or other materials provided with the
1153 * * The names of its contributors may not be used to endorse or
1154 * promote products derived from this software without specific prior
1155 * written permission.
1157 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1158 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1159 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1160 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1161 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1162 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1163 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1164 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1165 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1166 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1167 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1171 #line 60 "libmemcached/csl/scanner.l"
1175 #define PARAM config_get_extra(yyscanner)
1177 #define get_lex_chars(buffer, result, max_size, context) \
1179 if (context->pos >= context->length) \
1185 result= (int)(context->length - context->pos); \
1186 (size_t)result > (size_t)max_size ? result= max_size : 0; \
1187 memcpy(buffer, context->buf + context->pos, result); \
1188 context->pos += result; \
1193 #define YY_INPUT(buffer, result, max_size) get_lex_chars(buffer, result, max_size, PARAM)
1195 #line 1196 "libmemcached/csl/scanner.cc"
1199 #ifndef YY_NO_UNISTD_H
1200 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1201 * down here because we want the user's section 1 to have been scanned first.
1202 * The user has a chance to override it with an option.
1211 #ifndef YY_EXTRA_TYPE
1212 #define YY_EXTRA_TYPE void *
1215 /* %if-c-only Reentrant structure and macros (non-C++). */
1218 /* Holds the entire state of the reentrant scanner. */
1222 /* User-defined. Not touched by flex. */
1223 YY_EXTRA_TYPE yyextra_r
;
1225 /* The rest are the same as the globals declared in the non-reentrant scanner. */
1226 FILE *yyin_r
, *yyout_r
;
1227 size_t yy_buffer_stack_top
; /**< index of top of stack. */
1228 size_t yy_buffer_stack_max
; /**< capacity of stack. */
1229 YY_BUFFER_STATE
* yy_buffer_stack
; /**< Stack as an array. */
1236 int yy_did_buffer_switch_on_eof
;
1237 int yy_start_stack_ptr
;
1238 int yy_start_stack_depth
;
1239 int *yy_start_stack
;
1240 yy_state_type yy_last_accepting_state
;
1241 char* yy_last_accepting_cpos
;
1244 int yy_flex_debug_r
;
1252 }; /* end struct yyguts_t */
1256 static int yy_init_globals (yyscan_t yyscanner
);
1262 /* This must go here because YYSTYPE and YYLTYPE are included
1263 * from bison output in section 1.*/
1264 # define yylval yyg->yylval_r
1266 int config_lex_init (yyscan_t
* scanner
);
1268 int config_lex_init_extra (YY_EXTRA_TYPE user_defined
,yyscan_t
* scanner
);
1272 /* %endif End reentrant structures and macros. */
1274 /* Accessor methods to globals.
1275 These are made visible to non-reentrant scanners for convenience. */
1277 int config_lex_destroy (yyscan_t yyscanner
);
1279 int config_get_debug (yyscan_t yyscanner
);
1281 void config_set_debug (int debug_flag
,yyscan_t yyscanner
);
1283 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
);
1285 void config_set_extra (YY_EXTRA_TYPE user_defined
,yyscan_t yyscanner
);
1287 FILE *config_get_in (yyscan_t yyscanner
);
1289 void config_set_in (FILE * in_str
,yyscan_t yyscanner
);
1291 FILE *config_get_out (yyscan_t yyscanner
);
1293 void config_set_out (FILE * out_str
,yyscan_t yyscanner
);
1295 int config_get_leng (yyscan_t yyscanner
);
1297 char *config_get_text (yyscan_t yyscanner
);
1299 int config_get_lineno (yyscan_t yyscanner
);
1301 void config_set_lineno (int line_number
,yyscan_t yyscanner
);
1303 /* %if-bison-bridge */
1305 YYSTYPE
* config_get_lval (yyscan_t yyscanner
);
1307 void config_set_lval (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1311 /* Macros after this point can all be overridden by user definitions in
1315 #ifndef YY_SKIP_YYWRAP
1317 extern "C" int config_wrap (yyscan_t yyscanner
);
1319 extern int config_wrap (yyscan_t yyscanner
);
1323 /* %not-for-header */
1325 /* %ok-for-header */
1330 static void yy_flex_strncpy (char *,yyconst
char *,int ,yyscan_t yyscanner
);
1333 #ifdef YY_NEED_STRLEN
1334 static int yy_flex_strlen (yyconst
char * ,yyscan_t yyscanner
);
1338 /* %if-c-only Standard (non-C++) definition */
1339 /* %not-for-header */
1342 static int yyinput (yyscan_t yyscanner
);
1344 static int input (yyscan_t yyscanner
);
1346 /* %ok-for-header */
1355 /* Amount of stuff to slurp up with each read. */
1356 #ifndef YY_READ_BUF_SIZE
1358 /* On IA-64, the buffer size is 16k, not 8k */
1359 #define YY_READ_BUF_SIZE 16384
1361 #define YY_READ_BUF_SIZE 8192
1362 #endif /* __ia64__ */
1365 /* Copy whatever the last rule matched to the standard output. */
1367 /* %if-c-only Standard (non-C++) definition */
1368 /* This used to be an fputs(), but since the string might contain NUL's,
1369 * we now use fwrite().
1371 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1373 /* %if-c++-only C++ definition */
1377 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1378 * is returned in "result".
1381 #define YY_INPUT(buf,result,max_size) \
1382 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
1383 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1387 for ( n = 0; n < max_size && \
1388 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1389 buf[n] = (char) c; \
1391 buf[n++] = (char) c; \
1392 if ( c == EOF && ferror( yyin ) ) \
1393 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1399 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1401 if( errno != EINTR) \
1403 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1411 /* %if-c++-only C++ definition \ */\
1416 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1417 * we don't want an extra ';' after the "return" because that will cause
1418 * some compilers to complain about unreachable statements.
1421 #define yyterminate() return YY_NULL
1424 /* Number of entries by which start-condition stack grows. */
1425 #ifndef YY_START_STACK_INCR
1426 #define YY_START_STACK_INCR 25
1429 /* Report a fatal error. */
1430 #ifndef YY_FATAL_ERROR
1432 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1438 /* %if-tables-serialization structures and prototypes */
1439 /* %not-for-header */
1441 /* %ok-for-header */
1443 /* %not-for-header */
1445 /* %tables-yydmap generated elements */
1447 /* end tables serialization structures and prototypes */
1449 /* %ok-for-header */
1451 /* Default declaration of generated scanner - a define so the user can
1452 * easily add parameters.
1455 #define YY_DECL_IS_OURS 1
1456 /* %if-c-only Standard (non-C++) definition */
1458 extern int config_lex \
1459 (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1461 #define YY_DECL int config_lex \
1462 (YYSTYPE * yylval_param , yyscan_t yyscanner)
1464 /* %if-c++-only C++ definition */
1466 #endif /* !YY_DECL */
1468 /* Code executed at the beginning of each rule, after yytext and yyleng
1471 #ifndef YY_USER_ACTION
1472 #define YY_USER_ACTION
1475 /* Code executed at the end of each rule. */
1477 #define YY_BREAK break;
1480 /* %% [6.0] YY_RULE_SETUP definition goes here */
1481 #define YY_RULE_SETUP \
1483 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1484 (yytext[yyleng - 1] == '\n'); \
1487 /* %not-for-header */
1489 /** The main scanner function which does all the work.
1493 register yy_state_type yy_current_state
;
1494 register char *yy_cp
, *yy_bp
;
1495 register int yy_act
;
1496 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
1498 /* %% [7.0] user's declarations go here */
1499 #line 96 "libmemcached/csl/scanner.l"
1503 #line 1504 "libmemcached/csl/scanner.cc"
1505 yylval
= yylval_param
;
1507 if ( !yyg
->yy_init
)
1515 if ( ! yyg
->yy_start
)
1516 yyg
->yy_start
= 1; /* first start state */
1532 if ( ! YY_CURRENT_BUFFER
) {
1533 config_ensure_buffer_stack (yyscanner
);
1534 YY_CURRENT_BUFFER_LVALUE
=
1535 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
1538 config__load_buffer_state(yyscanner
);
1541 while ( 1 ) /* loops until end-of-file is reached */
1543 /* %% [8.0] yymore()-related code goes here */
1544 yy_cp
= yyg
->yy_c_buf_p
;
1546 /* Support of yytext. */
1547 *yy_cp
= yyg
->yy_hold_char
;
1549 /* yy_bp points to the position in yy_ch_buf of the start of
1554 /* %% [9.0] code to set up and find next match goes here */
1555 yy_current_state
= yyg
->yy_start
;
1556 yy_current_state
+= YY_AT_BOL();
1560 register YY_CHAR yy_c
= yy_ec
[YY_SC_TO_UI(*yy_cp
)];
1561 if ( yy_accept
[yy_current_state
] )
1563 yyg
->yy_last_accepting_state
= yy_current_state
;
1564 yyg
->yy_last_accepting_cpos
= yy_cp
;
1566 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
1568 yy_current_state
= (int) yy_def
[yy_current_state
];
1569 if ( yy_current_state
>= 534 )
1570 yy_c
= yy_meta
[(unsigned int) yy_c
];
1572 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
1575 while ( yy_base
[yy_current_state
] != 1740 );
1578 /* %% [10.0] code to find the action number goes here */
1579 yy_act
= yy_accept
[yy_current_state
];
1581 { /* have to back up */
1582 yy_cp
= yyg
->yy_last_accepting_cpos
;
1583 yy_current_state
= yyg
->yy_last_accepting_state
;
1584 yy_act
= yy_accept
[yy_current_state
];
1587 YY_DO_BEFORE_ACTION
;
1589 /* %% [11.0] code for yylineno update goes here */
1591 do_action
: /* This label is used only to access EOF actions. */
1593 /* %% [12.0] debug code goes here */
1594 if ( yy_flex_debug
)
1597 fprintf( stderr
, "--scanner backing up\n" );
1598 else if ( yy_act
< 66 )
1599 fprintf( stderr
, "--accepting rule at line %ld (\"%s\")\n",
1600 (long)yy_rule_linenum
[yy_act
], yytext
);
1601 else if ( yy_act
== 66 )
1602 fprintf( stderr
, "--accepting default rule (\"%s\")\n",
1604 else if ( yy_act
== 67 )
1605 fprintf( stderr
, "--(end of buffer or a NUL)\n" );
1607 fprintf( stderr
, "--EOF (start condition %d)\n", YY_START
);
1611 { /* beginning of action switch */
1612 /* %% [13.0] actions go here */
1613 case 0: /* must back up */
1614 /* undo the effects of YY_DO_BEFORE_ACTION */
1615 *yy_cp
= yyg
->yy_hold_char
;
1616 yy_cp
= yyg
->yy_last_accepting_cpos
;
1617 yy_current_state
= yyg
->yy_last_accepting_state
;
1618 goto yy_find_action
;
1622 #line 99 "libmemcached/csl/scanner.l"
1623 { return yytext
[0];}
1627 #line 101 "libmemcached/csl/scanner.l"
1628 { yylval
->number
= atoi(yytext
); return (NUMBER
); }
1632 #line 103 "libmemcached/csl/scanner.l"
1633 { yylval
->number
= atoi(yytext
+1); return PORT
; }
1637 #line 105 "libmemcached/csl/scanner.l"
1638 { yylval
->number
= atoi(yytext
+2); return WEIGHT_START
; }
1641 /* rule 5 can match eol */
1643 #line 107 "libmemcached/csl/scanner.l"
1644 ; /* skip whitespace */
1647 *yy_cp
= yyg
->yy_hold_char
; /* undo effects of setting up yytext */
1648 yyg
->yy_c_buf_p
= yy_cp
-= 1;
1649 YY_DO_BEFORE_ACTION
; /* set up yytext again */
1651 #line 110 "libmemcached/csl/scanner.l"
1658 #line 114 "libmemcached/csl/scanner.l"
1659 { yyextra
->begin
= yytext
; yyextra
->set_server(); return yyextra
->previous_token
= SERVER
; }
1663 #line 116 "libmemcached/csl/scanner.l"
1664 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SOCKET
; }
1668 #line 118 "libmemcached/csl/scanner.l"
1669 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= BINARY_PROTOCOL
; }
1673 #line 119 "libmemcached/csl/scanner.l"
1674 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= BUFFER_REQUESTS
; }
1678 #line 120 "libmemcached/csl/scanner.l"
1679 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= CONFIGURE_FILE
; }
1683 #line 121 "libmemcached/csl/scanner.l"
1684 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= CONNECT_TIMEOUT
; }
1688 #line 122 "libmemcached/csl/scanner.l"
1689 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= DISTRIBUTION
; }
1693 #line 123 "libmemcached/csl/scanner.l"
1694 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= HASH_WITH_NAMESPACE
; }
1698 #line 124 "libmemcached/csl/scanner.l"
1699 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= HASH
; }
1703 #line 125 "libmemcached/csl/scanner.l"
1704 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= IO_BYTES_WATERMARK
; }
1708 #line 126 "libmemcached/csl/scanner.l"
1709 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= IO_KEY_PREFETCH
; }
1713 #line 127 "libmemcached/csl/scanner.l"
1714 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= IO_MSG_WATERMARK
; }
1718 #line 128 "libmemcached/csl/scanner.l"
1719 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= NOREPLY
; }
1723 #line 129 "libmemcached/csl/scanner.l"
1724 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= NUMBER_OF_REPLICAS
; }
1728 #line 130 "libmemcached/csl/scanner.l"
1729 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= POLL_TIMEOUT
; }
1733 #line 131 "libmemcached/csl/scanner.l"
1734 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= RANDOMIZE_REPLICA_READ
; }
1738 #line 132 "libmemcached/csl/scanner.l"
1739 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= RCV_TIMEOUT
; }
1743 #line 133 "libmemcached/csl/scanner.l"
1744 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= REMOVE_FAILED_SERVERS
; }
1748 #line 134 "libmemcached/csl/scanner.l"
1749 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= RETRY_TIMEOUT
; }
1753 #line 135 "libmemcached/csl/scanner.l"
1754 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SND_TIMEOUT
; }
1758 #line 136 "libmemcached/csl/scanner.l"
1759 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SOCKET_RECV_SIZE
; }
1763 #line 137 "libmemcached/csl/scanner.l"
1764 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SOCKET_SEND_SIZE
; }
1768 #line 138 "libmemcached/csl/scanner.l"
1769 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SORT_HOSTS
; }
1773 #line 139 "libmemcached/csl/scanner.l"
1774 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SUPPORT_CAS
; }
1778 #line 140 "libmemcached/csl/scanner.l"
1779 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= _TCP_KEEPALIVE
; }
1783 #line 141 "libmemcached/csl/scanner.l"
1784 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= _TCP_KEEPIDLE
; }
1788 #line 142 "libmemcached/csl/scanner.l"
1789 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= _TCP_NODELAY
; }
1793 #line 143 "libmemcached/csl/scanner.l"
1794 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= USE_UDP
; }
1798 #line 144 "libmemcached/csl/scanner.l"
1799 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= USER_DATA
; }
1803 #line 145 "libmemcached/csl/scanner.l"
1804 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= VERIFY_KEY
; }
1808 #line 147 "libmemcached/csl/scanner.l"
1809 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= POOL_MIN
; }
1813 #line 148 "libmemcached/csl/scanner.l"
1814 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= POOL_MAX
; }
1818 #line 150 "libmemcached/csl/scanner.l"
1819 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= NAMESPACE
; }
1823 #line 152 "libmemcached/csl/scanner.l"
1824 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= FETCH_VERSION
; }
1828 #line 154 "libmemcached/csl/scanner.l"
1829 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= INCLUDE
; }
1833 #line 155 "libmemcached/csl/scanner.l"
1834 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= RESET
; }
1838 #line 156 "libmemcached/csl/scanner.l"
1839 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= PARSER_DEBUG
; }
1843 #line 157 "libmemcached/csl/scanner.l"
1844 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SERVERS
; }
1848 #line 158 "libmemcached/csl/scanner.l"
1849 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= END
; }
1853 #line 159 "libmemcached/csl/scanner.l"
1854 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= ERROR
; }
1858 #line 161 "libmemcached/csl/scanner.l"
1859 { return yyextra
->previous_token
= TRUE
; }
1863 #line 162 "libmemcached/csl/scanner.l"
1864 { return yyextra
->previous_token
= FALSE
; }
1868 #line 165 "libmemcached/csl/scanner.l"
1870 yyextra
->begin
= yytext
;
1871 return UNKNOWN_OPTION
;
1876 #line 170 "libmemcached/csl/scanner.l"
1877 { return CONSISTENT
; }
1881 #line 171 "libmemcached/csl/scanner.l"
1886 #line 172 "libmemcached/csl/scanner.l"
1891 #line 174 "libmemcached/csl/scanner.l"
1896 #line 175 "libmemcached/csl/scanner.l"
1901 #line 176 "libmemcached/csl/scanner.l"
1906 #line 177 "libmemcached/csl/scanner.l"
1907 { return FNV1A_64
; }
1911 #line 178 "libmemcached/csl/scanner.l"
1916 #line 179 "libmemcached/csl/scanner.l"
1917 { return FNV1A_32
; }
1921 #line 180 "libmemcached/csl/scanner.l"
1926 #line 181 "libmemcached/csl/scanner.l"
1931 #line 182 "libmemcached/csl/scanner.l"
1936 #line 184 "libmemcached/csl/scanner.l"
1938 yylval
->server
.port
= MEMCACHED_DEFAULT_PORT
;
1939 yylval
->server
.weight
= 1;
1940 yylval
->server
.c_str
= yyextra
->set_hostname(yytext
, yyleng
);
1941 if (yylval
->server
.c_str
)
1942 yylval
->server
.size
= yyleng
;
1948 #line 193 "libmemcached/csl/scanner.l"
1950 if (yyextra
->is_server())
1952 yylval
->server
.port
= MEMCACHED_DEFAULT_PORT
;
1953 yylval
->server
.weight
= 1;
1954 yylval
->server
.c_str
= yyextra
->set_hostname(yytext
, yyleng
);
1955 if (yylval
->server
.c_str
)
1956 yylval
->server
.size
= yyleng
;
1961 yylval
->string
.c_str
= yytext
;
1962 yylval
->string
.size
= yyleng
;
1968 /* rule 64 can match eol */
1970 #line 211 "libmemcached/csl/scanner.l"
1972 config_get_text(yyscanner
)[yyleng
-1]= 0;
1973 yylval
->string
.c_str
= yytext
+1;
1974 yylval
->string
.size
= yyleng
-2;
1975 return QUOTED_STRING
;
1980 #line 218 "libmemcached/csl/scanner.l"
1982 yyextra
->begin
= yytext
;
1988 #line 223 "libmemcached/csl/scanner.l"
1991 #line 1992 "libmemcached/csl/scanner.cc"
1992 case YY_STATE_EOF(INITIAL
):
1995 case YY_END_OF_BUFFER
:
1997 /* Amount of text matched not including the EOB char. */
1998 int yy_amount_of_matched_text
= (int) (yy_cp
- yyg
->yytext_ptr
) - 1;
2000 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2001 *yy_cp
= yyg
->yy_hold_char
;
2002 YY_RESTORE_YY_MORE_OFFSET
2004 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_NEW
)
2006 /* We're scanning a new file or input source. It's
2007 * possible that this happened because the user
2008 * just pointed yyin at a new source and called
2009 * config_lex(). If so, then we have to assure
2010 * consistency between YY_CURRENT_BUFFER and our
2011 * globals. Here is the right place to do so, because
2012 * this is the first action (other than possibly a
2013 * back-up) that will match for the new input source.
2015 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
2016 YY_CURRENT_BUFFER_LVALUE
->yy_input_file
= yyin
;
2017 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
= YY_BUFFER_NORMAL
;
2020 /* Note that here we test for yy_c_buf_p "<=" to the position
2021 * of the first EOB in the buffer, since yy_c_buf_p will
2022 * already have been incremented past the NUL character
2023 * (since all states make transitions on EOB to the
2024 * end-of-buffer state). Contrast this with the test
2027 if ( yyg
->yy_c_buf_p
<= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
2028 { /* This was really a NUL. */
2029 yy_state_type yy_next_state
;
2031 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
2033 yy_current_state
= yy_get_previous_state( yyscanner
);
2035 /* Okay, we're now positioned to make the NUL
2036 * transition. We couldn't have
2037 * yy_get_previous_state() go ahead and do it
2038 * for us because it doesn't know how to deal
2039 * with the possibility of jamming (and we don't
2040 * want to build jamming into it because then it
2041 * will run more slowly).
2044 yy_next_state
= yy_try_NUL_trans( yy_current_state
, yyscanner
);
2046 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2048 if ( yy_next_state
)
2050 /* Consume the NUL. */
2051 yy_cp
= ++yyg
->yy_c_buf_p
;
2052 yy_current_state
= yy_next_state
;
2058 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
2059 yy_cp
= yyg
->yy_c_buf_p
;
2060 goto yy_find_action
;
2064 else switch ( yy_get_next_buffer( yyscanner
) )
2066 case EOB_ACT_END_OF_FILE
:
2068 yyg
->yy_did_buffer_switch_on_eof
= 0;
2070 if ( config_wrap(yyscanner
) )
2072 /* Note: because we've taken care in
2073 * yy_get_next_buffer() to have set up
2074 * yytext, we can now set up
2075 * yy_c_buf_p so that if some total
2076 * hoser (like flex itself) wants to
2077 * call the scanner after we return the
2078 * YY_NULL, it'll still work - another
2079 * YY_NULL will get returned.
2081 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2083 yy_act
= YY_STATE_EOF(YY_START
);
2089 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
2095 case EOB_ACT_CONTINUE_SCAN
:
2097 yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
2099 yy_current_state
= yy_get_previous_state( yyscanner
);
2101 yy_cp
= yyg
->yy_c_buf_p
;
2102 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2105 case EOB_ACT_LAST_MATCH
:
2107 &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
];
2109 yy_current_state
= yy_get_previous_state( yyscanner
);
2111 yy_cp
= yyg
->yy_c_buf_p
;
2112 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
2113 goto yy_find_action
;
2120 "fatal flex scanner internal error--no action found" );
2121 } /* end of action switch */
2122 } /* end of scanning one token */
2123 } /* end of config_lex */
2124 /* %ok-for-header */
2127 /* %not-for-header */
2129 /* %ok-for-header */
2133 /* yy_get_next_buffer - try to read in a new buffer
2135 * Returns a code representing an action:
2136 * EOB_ACT_LAST_MATCH -
2137 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2138 * EOB_ACT_END_OF_FILE - end of file
2141 static int yy_get_next_buffer (yyscan_t yyscanner
)
2146 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2147 register char *dest
= YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
;
2148 register char *source
= yyg
->yytext_ptr
;
2149 register int number_to_move
, i
;
2152 if ( yyg
->yy_c_buf_p
> &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] )
2154 "fatal flex scanner internal error--end of buffer missed" );
2156 if ( YY_CURRENT_BUFFER_LVALUE
->yy_fill_buffer
== 0 )
2157 { /* Don't try to fill the buffer, so this is an EOF. */
2158 if ( yyg
->yy_c_buf_p
- yyg
->yytext_ptr
- YY_MORE_ADJ
== 1 )
2160 /* We matched a single character, the EOB, so
2161 * treat this as a final EOF.
2163 return EOB_ACT_END_OF_FILE
;
2168 /* We matched some text prior to the EOB, first
2171 return EOB_ACT_LAST_MATCH
;
2175 /* Try to read more data. */
2177 /* First move last chars to start of buffer. */
2178 number_to_move
= (int) (yyg
->yy_c_buf_p
- yyg
->yytext_ptr
) - 1;
2180 for ( i
= 0; i
< number_to_move
; ++i
)
2181 *(dest
++) = *(source
++);
2183 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_EOF_PENDING
)
2184 /* don't do the read, it's not guaranteed to return an EOF,
2187 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
= 0;
2192 YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
- number_to_move
- 1;
2194 while ( num_to_read
<= 0 )
2195 { /* Not enough room in the buffer - grow it. */
2197 /* just a shorter name for the current buffer */
2198 YY_BUFFER_STATE b
= YY_CURRENT_BUFFER
;
2200 int yy_c_buf_p_offset
=
2201 (int) (yyg
->yy_c_buf_p
- b
->yy_ch_buf
);
2203 if ( b
->yy_is_our_buffer
)
2205 int new_size
= b
->yy_buf_size
* 2;
2207 if ( new_size
<= 0 )
2208 b
->yy_buf_size
+= b
->yy_buf_size
/ 8;
2210 b
->yy_buf_size
*= 2;
2212 b
->yy_ch_buf
= (char *)
2213 /* Include room in for 2 EOB chars. */
2214 config_realloc((void *) b
->yy_ch_buf
,b
->yy_buf_size
+ 2 ,yyscanner
);
2217 /* Can't grow it, we don't own it. */
2220 if ( ! b
->yy_ch_buf
)
2222 "fatal error - scanner input buffer overflow" );
2224 yyg
->yy_c_buf_p
= &b
->yy_ch_buf
[yy_c_buf_p_offset
];
2226 num_to_read
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
-
2231 if ( num_to_read
> YY_READ_BUF_SIZE
)
2232 num_to_read
= YY_READ_BUF_SIZE
;
2234 /* Read in more data. */
2235 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[number_to_move
]),
2236 yyg
->yy_n_chars
, (size_t) num_to_read
);
2238 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2241 if ( yyg
->yy_n_chars
== 0 )
2243 if ( number_to_move
== YY_MORE_ADJ
)
2245 ret_val
= EOB_ACT_END_OF_FILE
;
2246 config_restart(yyin
,yyscanner
);
2251 ret_val
= EOB_ACT_LAST_MATCH
;
2252 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
=
2253 YY_BUFFER_EOF_PENDING
;
2258 ret_val
= EOB_ACT_CONTINUE_SCAN
;
2260 if ((yy_size_t
) (yyg
->yy_n_chars
+ number_to_move
) > YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
) {
2261 /* Extend the array by 50%, plus the number we really need. */
2262 yy_size_t new_size
= yyg
->yy_n_chars
+ number_to_move
+ (yyg
->yy_n_chars
>> 1);
2263 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
= (char *) config_realloc((void *) YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
,new_size
,yyscanner
);
2264 if ( ! YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
)
2265 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2268 yyg
->yy_n_chars
+= number_to_move
;
2269 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] = YY_END_OF_BUFFER_CHAR
;
2270 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] = YY_END_OF_BUFFER_CHAR
;
2272 yyg
->yytext_ptr
= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[0];
2277 /* yy_get_previous_state - get the state just before the EOB char was reached */
2280 /* %not-for-header */
2282 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
)
2287 register yy_state_type yy_current_state
;
2288 register char *yy_cp
;
2289 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2291 /* %% [15.0] code to get the start state into yy_current_state goes here */
2292 yy_current_state
= yyg
->yy_start
;
2293 yy_current_state
+= YY_AT_BOL();
2295 for ( yy_cp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
; yy_cp
< yyg
->yy_c_buf_p
; ++yy_cp
)
2297 /* %% [16.0] code to find the next state goes here */
2298 register YY_CHAR yy_c
= (*yy_cp
? yy_ec
[YY_SC_TO_UI(*yy_cp
)] : 1);
2299 if ( yy_accept
[yy_current_state
] )
2301 yyg
->yy_last_accepting_state
= yy_current_state
;
2302 yyg
->yy_last_accepting_cpos
= yy_cp
;
2304 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2306 yy_current_state
= (int) yy_def
[yy_current_state
];
2307 if ( yy_current_state
>= 534 )
2308 yy_c
= yy_meta
[(unsigned int) yy_c
];
2310 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2313 return yy_current_state
;
2316 /* yy_try_NUL_trans - try to make a transition on the NUL character
2319 * next_state = yy_try_NUL_trans( current_state );
2322 static yy_state_type
yy_try_NUL_trans (yy_state_type yy_current_state
, yyscan_t yyscanner
)
2327 register int yy_is_jam
;
2328 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
; /* This var may be unused depending upon options. */
2329 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
2330 register char *yy_cp
= yyg
->yy_c_buf_p
;
2332 register YY_CHAR yy_c
= 1;
2333 if ( yy_accept
[yy_current_state
] )
2335 yyg
->yy_last_accepting_state
= yy_current_state
;
2336 yyg
->yy_last_accepting_cpos
= yy_cp
;
2338 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2340 yy_current_state
= (int) yy_def
[yy_current_state
];
2341 if ( yy_current_state
>= 534 )
2342 yy_c
= yy_meta
[(unsigned int) yy_c
];
2344 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2345 yy_is_jam
= (yy_current_state
== 533);
2347 return yy_is_jam
? 0 : yy_current_state
;
2357 static int yyinput (yyscan_t yyscanner
)
2359 static int input (yyscan_t yyscanner
)
2367 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2369 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2371 if ( *yyg
->yy_c_buf_p
== YY_END_OF_BUFFER_CHAR
)
2373 /* yy_c_buf_p now points to the character we want to return.
2374 * If this occurs *before* the EOB characters, then it's a
2375 * valid NUL; if not, then we've hit the end of the buffer.
2377 if ( yyg
->yy_c_buf_p
< &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
2378 /* This was really a NUL. */
2379 *yyg
->yy_c_buf_p
= '\0';
2382 { /* need more input */
2383 int offset
= yyg
->yy_c_buf_p
- yyg
->yytext_ptr
;
2386 switch ( yy_get_next_buffer( yyscanner
) )
2388 case EOB_ACT_LAST_MATCH
:
2389 /* This happens because yy_g_n_b()
2390 * sees that we've accumulated a
2391 * token and flags that we need to
2392 * try matching the token before
2393 * proceeding. But for input(),
2394 * there's no matching to consider.
2395 * So convert the EOB_ACT_LAST_MATCH
2396 * to EOB_ACT_END_OF_FILE.
2399 /* Reset buffer status. */
2400 config_restart(yyin
,yyscanner
);
2404 case EOB_ACT_END_OF_FILE
:
2406 if ( config_wrap(yyscanner
) )
2409 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
2412 return yyinput(yyscanner
);
2414 return input(yyscanner
);
2418 case EOB_ACT_CONTINUE_SCAN
:
2419 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ offset
;
2425 c
= *(unsigned char *) yyg
->yy_c_buf_p
; /* cast for 8-bit char's */
2426 *yyg
->yy_c_buf_p
= '\0'; /* preserve yytext */
2427 yyg
->yy_hold_char
= *++yyg
->yy_c_buf_p
;
2429 /* %% [19.0] update BOL and yylineno */
2430 YY_CURRENT_BUFFER_LVALUE
->yy_at_bol
= (c
== '\n');
2435 #endif /* ifndef YY_NO_INPUT */
2438 /** Immediately switch to a different input stream.
2439 * @param input_file A readable stream.
2440 * @param yyscanner The scanner object.
2441 * @note This function does not reset the start condition to @c INITIAL .
2444 void config_restart (FILE * input_file
, yyscan_t yyscanner
)
2449 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2451 if ( ! YY_CURRENT_BUFFER
){
2452 config_ensure_buffer_stack (yyscanner
);
2453 YY_CURRENT_BUFFER_LVALUE
=
2454 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
2457 config__init_buffer(YY_CURRENT_BUFFER
,input_file
,yyscanner
);
2458 config__load_buffer_state(yyscanner
);
2461 /** Switch to a different input buffer.
2462 * @param new_buffer The new input buffer.
2463 * @param yyscanner The scanner object.
2466 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
2471 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2473 /* TODO. We should be able to replace this entire function body
2475 * config_pop_buffer_state();
2476 * config_push_buffer_state(new_buffer);
2478 config_ensure_buffer_stack (yyscanner
);
2479 if ( YY_CURRENT_BUFFER
== new_buffer
)
2482 if ( YY_CURRENT_BUFFER
)
2484 /* Flush out information for old buffer. */
2485 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2486 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
2487 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2490 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
2491 config__load_buffer_state(yyscanner
);
2493 /* We don't actually know whether we did this switch during
2494 * EOF (config_wrap()) processing, but the only time this flag
2495 * is looked at is after config_wrap() is called, so it's safe
2496 * to go ahead and always set it.
2498 yyg
->yy_did_buffer_switch_on_eof
= 1;
2502 static void config__load_buffer_state (yyscan_t yyscanner
)
2507 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2508 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
2509 yyg
->yytext_ptr
= yyg
->yy_c_buf_p
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
;
2510 yyin
= YY_CURRENT_BUFFER_LVALUE
->yy_input_file
;
2511 yyg
->yy_hold_char
= *yyg
->yy_c_buf_p
;
2514 /** Allocate and initialize an input buffer state.
2515 * @param file A readable stream.
2516 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2517 * @param yyscanner The scanner object.
2518 * @return the allocated buffer state.
2521 YY_BUFFER_STATE
config__create_buffer (FILE * file
, int size
, yyscan_t yyscanner
)
2528 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
2530 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2532 b
->yy_buf_size
= size
;
2534 /* yy_ch_buf has to be 2 characters longer than the size given because
2535 * we need to put in 2 end-of-buffer characters.
2537 b
->yy_ch_buf
= (char *) config_alloc(b
->yy_buf_size
+ 2 ,yyscanner
);
2538 if ( ! b
->yy_ch_buf
)
2539 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2541 b
->yy_is_our_buffer
= 1;
2543 config__init_buffer(b
,file
,yyscanner
);
2548 /** Destroy the buffer.
2549 * @param b a buffer created with config__create_buffer()
2550 * @param yyscanner The scanner object.
2553 void config__delete_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2558 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2563 if ( b
== YY_CURRENT_BUFFER
) /* Not sure if we should pop here. */
2564 YY_CURRENT_BUFFER_LVALUE
= (YY_BUFFER_STATE
) 0;
2566 if ( b
->yy_is_our_buffer
)
2567 config_free((void *) b
->yy_ch_buf
,yyscanner
);
2569 config_free((void *) b
,yyscanner
);
2575 extern int isatty (int );
2576 #endif /* __cplusplus */
2583 /* Initializes or reinitializes a buffer.
2584 * This function is sometimes called more than once on the same buffer,
2585 * such as during a config_restart() or at EOF.
2588 static void config__init_buffer (YY_BUFFER_STATE b
, FILE * file
, yyscan_t yyscanner
)
2595 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2597 config__flush_buffer(b
,yyscanner
);
2599 b
->yy_input_file
= file
;
2600 b
->yy_fill_buffer
= 1;
2602 /* If b is the current buffer, then config__init_buffer was _probably_
2603 * called from config_restart() or through yy_get_next_buffer.
2604 * In that case, we don't want to reset the lineno or column.
2606 if (b
!= YY_CURRENT_BUFFER
){
2607 b
->yy_bs_lineno
= 1;
2608 b
->yy_bs_column
= 0;
2613 b
->yy_is_interactive
= file
? (isatty( fileno(file
) ) > 0) : 0;
2621 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2622 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2623 * @param yyscanner The scanner object.
2626 void config__flush_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2631 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2637 /* We always need two end-of-buffer characters. The first causes
2638 * a transition to the end-of-buffer state. The second causes
2639 * a jam in that state.
2641 b
->yy_ch_buf
[0] = YY_END_OF_BUFFER_CHAR
;
2642 b
->yy_ch_buf
[1] = YY_END_OF_BUFFER_CHAR
;
2644 b
->yy_buf_pos
= &b
->yy_ch_buf
[0];
2647 b
->yy_buffer_status
= YY_BUFFER_NEW
;
2649 if ( b
== YY_CURRENT_BUFFER
)
2650 config__load_buffer_state(yyscanner
);
2654 /** Pushes the new state onto the stack. The new state becomes
2655 * the current state. This function will allocate the stack
2657 * @param new_buffer The new state.
2658 * @param yyscanner The scanner object.
2661 void config_push_buffer_state (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
2666 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2667 if (new_buffer
== NULL
)
2670 config_ensure_buffer_stack(yyscanner
);
2672 /* This block is copied from config__switch_to_buffer. */
2673 if ( YY_CURRENT_BUFFER
)
2675 /* Flush out information for old buffer. */
2676 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2677 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
2678 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2681 /* Only push if top exists. Otherwise, replace top. */
2682 if (YY_CURRENT_BUFFER
)
2683 yyg
->yy_buffer_stack_top
++;
2684 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
2686 /* copied from config__switch_to_buffer. */
2687 config__load_buffer_state(yyscanner
);
2688 yyg
->yy_did_buffer_switch_on_eof
= 1;
2693 /** Removes and deletes the top of the stack, if present.
2694 * The next element becomes the new top.
2695 * @param yyscanner The scanner object.
2698 void config_pop_buffer_state (yyscan_t yyscanner
)
2703 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2704 if (!YY_CURRENT_BUFFER
)
2707 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
2708 YY_CURRENT_BUFFER_LVALUE
= NULL
;
2709 if (yyg
->yy_buffer_stack_top
> 0)
2710 --yyg
->yy_buffer_stack_top
;
2712 if (YY_CURRENT_BUFFER
) {
2713 config__load_buffer_state(yyscanner
);
2714 yyg
->yy_did_buffer_switch_on_eof
= 1;
2720 /* Allocates the stack if it does not exist.
2721 * Guarantees space for at least one push.
2724 static void config_ensure_buffer_stack (yyscan_t yyscanner
)
2730 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2732 if (!yyg
->yy_buffer_stack
) {
2734 /* First allocation is just for 2 elements, since we don't know if this
2735 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2736 * immediate realloc on the next call.
2739 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_alloc
2740 (num_to_alloc
* sizeof(struct yy_buffer_state
*)
2742 if ( ! yyg
->yy_buffer_stack
)
2743 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
2745 memset(yyg
->yy_buffer_stack
, 0, num_to_alloc
* sizeof(struct yy_buffer_state
*));
2747 yyg
->yy_buffer_stack_max
= num_to_alloc
;
2748 yyg
->yy_buffer_stack_top
= 0;
2752 if (yyg
->yy_buffer_stack_top
>= (yyg
->yy_buffer_stack_max
) - 1){
2754 /* Increase the buffer to prepare for a possible push. */
2755 int grow_size
= 8 /* arbitrary grow size */;
2757 num_to_alloc
= yyg
->yy_buffer_stack_max
+ grow_size
;
2758 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_realloc
2759 (yyg
->yy_buffer_stack
,
2760 num_to_alloc
* sizeof(struct yy_buffer_state
*)
2762 if ( ! yyg
->yy_buffer_stack
)
2763 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
2765 /* zero only the new slots.*/
2766 memset(yyg
->yy_buffer_stack
+ yyg
->yy_buffer_stack_max
, 0, grow_size
* sizeof(struct yy_buffer_state
*));
2767 yyg
->yy_buffer_stack_max
= num_to_alloc
;
2773 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2774 * @param base the character buffer
2775 * @param size the size in bytes of the character buffer
2776 * @param yyscanner The scanner object.
2777 * @return the newly allocated buffer state object.
2779 YY_BUFFER_STATE
config__scan_buffer (char * base
, yy_size_t size
, yyscan_t yyscanner
)
2784 base
[size
-2] != YY_END_OF_BUFFER_CHAR
||
2785 base
[size
-1] != YY_END_OF_BUFFER_CHAR
)
2786 /* They forgot to leave room for the EOB's. */
2789 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
2791 YY_FATAL_ERROR( "out of dynamic memory in config__scan_buffer()" );
2793 b
->yy_buf_size
= size
- 2; /* "- 2" to take care of EOB's */
2794 b
->yy_buf_pos
= b
->yy_ch_buf
= base
;
2795 b
->yy_is_our_buffer
= 0;
2796 b
->yy_input_file
= 0;
2797 b
->yy_n_chars
= b
->yy_buf_size
;
2798 b
->yy_is_interactive
= 0;
2800 b
->yy_fill_buffer
= 0;
2801 b
->yy_buffer_status
= YY_BUFFER_NEW
;
2803 config__switch_to_buffer(b
,yyscanner
);
2810 /** Setup the input buffer state to scan a string. The next call to config_lex() will
2811 * scan from a @e copy of @a str.
2812 * @param yystr a NUL-terminated string to scan
2813 * @param yyscanner The scanner object.
2814 * @return the newly allocated buffer state object.
2815 * @note If you want to scan bytes that may contain NUL values, then use
2816 * config__scan_bytes() instead.
2818 YY_BUFFER_STATE
config__scan_string (yyconst
char * yystr
, yyscan_t yyscanner
)
2821 return config__scan_bytes(yystr
,strlen(yystr
) ,yyscanner
);
2826 /** Setup the input buffer state to scan the given bytes. The next call to config_lex() will
2827 * scan from a @e copy of @a bytes.
2828 * @param yybytes the byte buffer to scan
2829 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2830 * @param yyscanner The scanner object.
2831 * @return the newly allocated buffer state object.
2833 YY_BUFFER_STATE
config__scan_bytes (yyconst
char * yybytes
, int _yybytes_len
, yyscan_t yyscanner
)
2840 /* Get memory for full buffer, including space for trailing EOB's. */
2841 n
= _yybytes_len
+ 2;
2842 buf
= (char *) config_alloc(n
,yyscanner
);
2844 YY_FATAL_ERROR( "out of dynamic memory in config__scan_bytes()" );
2846 for ( i
= 0; i
< _yybytes_len
; ++i
)
2847 buf
[i
] = yybytes
[i
];
2849 buf
[_yybytes_len
] = buf
[_yybytes_len
+1] = YY_END_OF_BUFFER_CHAR
;
2851 b
= config__scan_buffer(buf
,n
,yyscanner
);
2853 YY_FATAL_ERROR( "bad buffer in config__scan_bytes()" );
2855 /* It's okay to grow etc. this buffer, and we should throw it
2856 * away when we're done.
2858 b
->yy_is_our_buffer
= 1;
2864 #ifndef YY_EXIT_FAILURE
2865 #define YY_EXIT_FAILURE 2
2869 static void yy_fatal_error (yyconst
char* msg
, yyscan_t yyscanner
)
2871 (void) fprintf( stderr
, "%s\n", msg
);
2872 exit( YY_EXIT_FAILURE
);
2878 /* Redefine yyless() so it works in section 3 code. */
2884 /* Undo effects of setting up yytext. */ \
2885 int yyless_macro_arg = (n); \
2886 YY_LESS_LINENO(yyless_macro_arg);\
2887 yytext[yyleng] = yyg->yy_hold_char; \
2888 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2889 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2890 *yyg->yy_c_buf_p = '\0'; \
2891 yyleng = yyless_macro_arg; \
2895 /* Accessor methods (get/set functions) to struct members. */
2900 /** Get the user-defined data for this scanner.
2901 * @param yyscanner The scanner object.
2903 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
)
2905 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2911 /** Get the current line number.
2912 * @param yyscanner The scanner object.
2914 int config_get_lineno (yyscan_t yyscanner
)
2916 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2918 if (! YY_CURRENT_BUFFER
)
2924 /** Get the current column number.
2925 * @param yyscanner The scanner object.
2927 int config_get_column (yyscan_t yyscanner
)
2929 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2931 if (! YY_CURRENT_BUFFER
)
2937 /** Get the input stream.
2938 * @param yyscanner The scanner object.
2940 FILE *config_get_in (yyscan_t yyscanner
)
2942 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2946 /** Get the output stream.
2947 * @param yyscanner The scanner object.
2949 FILE *config_get_out (yyscan_t yyscanner
)
2951 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2955 /** Get the length of the current token.
2956 * @param yyscanner The scanner object.
2958 int config_get_leng (yyscan_t yyscanner
)
2960 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2964 /** Get the current token.
2965 * @param yyscanner The scanner object.
2968 char *config_get_text (yyscan_t yyscanner
)
2970 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2976 /** Set the user-defined data. This data is never touched by the scanner.
2977 * @param user_defined The data to be associated with this scanner.
2978 * @param yyscanner The scanner object.
2980 void config_set_extra (YY_EXTRA_TYPE user_defined
, yyscan_t yyscanner
)
2982 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2983 yyextra
= user_defined
;
2988 /** Set the current line number.
2989 * @param line_number
2990 * @param yyscanner The scanner object.
2992 void config_set_lineno (int line_number
, yyscan_t yyscanner
)
2994 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2996 /* lineno is only valid if an input buffer exists. */
2997 if (! YY_CURRENT_BUFFER
)
2998 yy_fatal_error( "config_set_lineno called with no buffer" , yyscanner
);
3000 yylineno
= line_number
;
3003 /** Set the current column.
3004 * @param line_number
3005 * @param yyscanner The scanner object.
3007 void config_set_column (int column_no
, yyscan_t yyscanner
)
3009 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3011 /* column is only valid if an input buffer exists. */
3012 if (! YY_CURRENT_BUFFER
)
3013 yy_fatal_error( "config_set_column called with no buffer" , yyscanner
);
3015 yycolumn
= column_no
;
3018 /** Set the input stream. This does not discard the current
3020 * @param in_str A readable stream.
3021 * @param yyscanner The scanner object.
3022 * @see config__switch_to_buffer
3024 void config_set_in (FILE * in_str
, yyscan_t yyscanner
)
3026 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3030 void config_set_out (FILE * out_str
, yyscan_t yyscanner
)
3032 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3036 int config_get_debug (yyscan_t yyscanner
)
3038 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3039 return yy_flex_debug
;
3042 void config_set_debug (int bdebug
, yyscan_t yyscanner
)
3044 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3045 yy_flex_debug
= bdebug
;
3051 /* Accessor methods for yylval and yylloc */
3053 /* %if-bison-bridge */
3055 YYSTYPE
* config_get_lval (yyscan_t yyscanner
)
3057 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3061 void config_set_lval (YYSTYPE
* yylval_param
, yyscan_t yyscanner
)
3063 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3064 yylval
= yylval_param
;
3069 /* User-visible API */
3071 /* config_lex_init is special because it creates the scanner itself, so it is
3072 * the ONLY reentrant function that doesn't take the scanner as the last argument.
3073 * That's why we explicitly handle the declaration, instead of using our macros.
3076 int config_lex_init(yyscan_t
* ptr_yy_globals
)
3079 if (ptr_yy_globals
== NULL
){
3084 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), NULL
);
3086 if (*ptr_yy_globals
== NULL
){
3091 /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
3092 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
3094 return yy_init_globals ( *ptr_yy_globals
);
3097 /* config_lex_init_extra has the same functionality as config_lex_init, but follows the
3098 * convention of taking the scanner as the last argument. Note however, that
3099 * this is a *pointer* to a scanner, as it will be allocated by this call (and
3100 * is the reason, too, why this function also must handle its own declaration).
3101 * The user defined value in the first argument will be available to config_alloc in
3102 * the yyextra field.
3105 int config_lex_init_extra(YY_EXTRA_TYPE yy_user_defined
,yyscan_t
* ptr_yy_globals
)
3108 struct yyguts_t dummy_yyguts
;
3110 config_set_extra (yy_user_defined
, &dummy_yyguts
);
3112 if (ptr_yy_globals
== NULL
){
3117 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), &dummy_yyguts
);
3119 if (*ptr_yy_globals
== NULL
){
3124 /* By setting to 0xAA, we expose bugs in
3125 yy_init_globals. Leave at 0x00 for releases. */
3126 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
3128 config_set_extra (yy_user_defined
, *ptr_yy_globals
);
3130 return yy_init_globals ( *ptr_yy_globals
);
3133 /* %endif if-c-only */
3136 static int yy_init_globals (yyscan_t yyscanner
)
3138 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3139 /* Initialization is the same as for the non-reentrant scanner.
3140 * This function is called from config_lex_destroy(), so don't allocate here.
3143 yyg
->yy_buffer_stack
= 0;
3144 yyg
->yy_buffer_stack_top
= 0;
3145 yyg
->yy_buffer_stack_max
= 0;
3146 yyg
->yy_c_buf_p
= (char *) 0;
3150 yyg
->yy_start_stack_ptr
= 0;
3151 yyg
->yy_start_stack_depth
= 0;
3152 yyg
->yy_start_stack
= NULL
;
3154 /* Defined in main.c */
3163 /* For future reference: Set errno on error, since we are called by
3170 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
3171 /* config_lex_destroy is for both reentrant and non-reentrant scanners. */
3172 int config_lex_destroy (yyscan_t yyscanner
)
3174 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
3176 /* Pop the buffer stack, destroying each element. */
3177 while(YY_CURRENT_BUFFER
){
3178 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
3179 YY_CURRENT_BUFFER_LVALUE
= NULL
;
3180 config_pop_buffer_state(yyscanner
);
3183 /* Destroy the stack itself. */
3184 config_free(yyg
->yy_buffer_stack
,yyscanner
);
3185 yyg
->yy_buffer_stack
= NULL
;
3187 /* Destroy the start condition stack. */
3188 config_free(yyg
->yy_start_stack
,yyscanner
);
3189 yyg
->yy_start_stack
= NULL
;
3191 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3192 * config_lex() is called, initialization will occur. */
3193 yy_init_globals( yyscanner
);
3196 /* Destroy the main struct (reentrant only). */
3197 config_free ( yyscanner
, yyscanner
);
3205 * Internal utility routines.
3209 static void yy_flex_strncpy (char* s1
, yyconst
char * s2
, int n
, yyscan_t yyscanner
)
3212 for ( i
= 0; i
< n
; ++i
)
3217 #ifdef YY_NEED_STRLEN
3218 static int yy_flex_strlen (yyconst
char * s
, yyscan_t yyscanner
)
3221 for ( n
= 0; s
[n
]; ++n
)
3228 void *config_alloc (yy_size_t size
, yyscan_t yyscanner
)
3230 return (void *) malloc( size
);
3233 void *config_realloc (void * ptr
, yy_size_t size
, yyscan_t yyscanner
)
3235 /* The cast to (char *) in the following accommodates both
3236 * implementations that use char* generic pointers, and those
3237 * that use void* generic pointers. It works with the latter
3238 * because both ANSI C and C++ allow castless assignment from
3239 * any pointer type to void*, and deal with argument conversions
3240 * as though doing an assignment.
3242 return (void *) realloc( (char *) ptr
, size
);
3245 void config_free (void * ptr
, yyscan_t yyscanner
)
3247 free( (char *) ptr
); /* see config_realloc() for (char *) cast */
3250 /* %if-tables-serialization definitions */
3251 /* %define-yytables The name for this specific scanner's tables. */
3252 #define YYTABLES_NAME "yytables"
3255 /* %ok-for-header */
3257 #line 223 "libmemcached/csl/scanner.l"
3261 void Context::init_scanner()
3263 config_lex_init(&scanner
);
3264 config_set_extra(this,scanner
);
3267 void Context::destroy_scanner()
3269 config_lex_destroy(scanner
);