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"
14 #pragma GCC diagnostic ignored "-Wunused-result"
15 #pragma GCC diagnostic ignored "-Wmissing-noreturn"
19 #pragma GCC diagnostic ignored "-Wshorten-64-to-32"
22 #ifndef __INTEL_COMPILER
24 #pragma GCC diagnostic ignored "-Wlogical-op"
28 #define YY_EXTRA_TYPE Context*
33 #line 34 "libmemcached/csl/scanner.cc"
35 #define YY_INT_ALIGNED short int
37 /* A lexical scanner generated by flex */
40 #define YY_FLEX_MAJOR_VERSION 2
41 #define YY_FLEX_MINOR_VERSION 5
42 #define YY_FLEX_SUBMINOR_VERSION 35
43 #if YY_FLEX_SUBMINOR_VERSION > 0
47 /* First, we deal with platform-specific or compiler-specific issues. */
49 /* begin standard C headers. */
55 /* end standard C headers. */
57 /* flex integer type definitions */
62 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
64 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
66 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
67 * if you want the limit (max/min) macros for int types.
69 #ifndef __STDC_LIMIT_MACROS
70 #define __STDC_LIMIT_MACROS 1
74 typedef int8_t flex_int8_t
;
75 typedef uint8_t flex_uint8_t
;
76 typedef int16_t flex_int16_t
;
77 typedef uint16_t flex_uint16_t
;
78 typedef int32_t flex_int32_t
;
79 typedef uint32_t flex_uint32_t
;
81 typedef signed char flex_int8_t
;
82 typedef short int flex_int16_t
;
83 typedef int flex_int32_t
;
84 typedef unsigned char flex_uint8_t
;
85 typedef unsigned short int flex_uint16_t
;
86 typedef unsigned int flex_uint32_t
;
89 /* Limits of integral types. */
91 #define INT8_MIN (-128)
94 #define INT16_MIN (-32767-1)
97 #define INT32_MIN (-2147483647-1)
100 #define INT8_MAX (127)
103 #define INT16_MAX (32767)
106 #define INT32_MAX (2147483647)
109 #define UINT8_MAX (255U)
112 #define UINT16_MAX (65535U)
115 #define UINT32_MAX (4294967295U)
118 #endif /* ! FLEXINT_H */
122 /* The "const" storage-class-modifier is valid. */
125 #else /* ! __cplusplus */
127 /* C99 requires __STDC__ to be defined as 1. */
128 #if defined (__STDC__)
132 #endif /* defined (__STDC__) */
133 #endif /* ! __cplusplus */
136 #define yyconst const
141 /* Returned upon end-of-file. */
144 /* Promotes a possibly negative, possibly signed char to an unsigned
145 * integer for use as an array index. If the signed char is negative,
146 * we want to instead treat it as an 8-bit unsigned char, hence the
149 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
151 /* An opaque pointer. */
152 #ifndef YY_TYPEDEF_YY_SCANNER_T
153 #define YY_TYPEDEF_YY_SCANNER_T
154 typedef void* yyscan_t
;
157 /* For convenience, these vars (plus the bison vars far below)
158 are macros in the reentrant scanner. */
159 #define yyin yyg->yyin_r
160 #define yyout yyg->yyout_r
161 #define yyextra yyg->yyextra_r
162 #define yyleng yyg->yyleng_r
163 #define yytext yyg->yytext_r
164 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
165 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
166 #define yy_flex_debug yyg->yy_flex_debug_r
168 /* Enter a start condition. This macro really ought to take a parameter,
169 * but we do it the disgusting crufty way forced on us by the ()-less
170 * definition of BEGIN.
172 #define BEGIN yyg->yy_start = 1 + 2 *
174 /* Translate the current start state into a value that can be later handed
175 * to BEGIN to return to the state. The YYSTATE alias is for lex
178 #define YY_START ((yyg->yy_start - 1) / 2)
179 #define YYSTATE YY_START
181 /* Action number for EOF rule of a given start state. */
182 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
184 /* Special action meaning "start processing a new file". */
185 #define YY_NEW_FILE config_restart(yyin ,yyscanner )
187 #define YY_END_OF_BUFFER_CHAR 0
189 /* Size of default input buffer. */
191 #define YY_BUF_SIZE 16384
194 /* The state buf must be large enough to hold one state per character in the main buffer.
196 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
198 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
199 #define YY_TYPEDEF_YY_BUFFER_STATE
200 typedef struct yy_buffer_state
*YY_BUFFER_STATE
;
203 #define EOB_ACT_CONTINUE_SCAN 0
204 #define EOB_ACT_END_OF_FILE 1
205 #define EOB_ACT_LAST_MATCH 2
207 #define YY_LESS_LINENO(n)
209 /* Return all but the first "n" matched characters back to the input stream. */
213 /* Undo effects of setting up yytext. */ \
214 int yyless_macro_arg = (n); \
215 YY_LESS_LINENO(yyless_macro_arg);\
216 *yy_cp = yyg->yy_hold_char; \
217 YY_RESTORE_YY_MORE_OFFSET \
218 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
219 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
223 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
225 #ifndef YY_TYPEDEF_YY_SIZE_T
226 #define YY_TYPEDEF_YY_SIZE_T
227 typedef size_t yy_size_t
;
230 #ifndef YY_STRUCT_YY_BUFFER_STATE
231 #define YY_STRUCT_YY_BUFFER_STATE
232 struct yy_buffer_state
236 char *yy_ch_buf
; /* input buffer */
237 char *yy_buf_pos
; /* current position in input buffer */
239 /* Size of input buffer in bytes, not including room for EOB
242 yy_size_t yy_buf_size
;
244 /* Number of characters read into yy_ch_buf, not including EOB
249 /* Whether we "own" the buffer - i.e., we know we created it,
250 * and can realloc() it to grow it, and should free() it to
253 int yy_is_our_buffer
;
255 /* Whether this is an "interactive" input source; if so, and
256 * if we're using stdio for input, then we want to use getc()
257 * instead of fread(), to make sure we stop fetching input after
260 int yy_is_interactive
;
262 /* Whether we're considered to be at the beginning of a line.
263 * If so, '^' rules will be active on the next match, otherwise
268 int yy_bs_lineno
; /**< The line count. */
269 int yy_bs_column
; /**< The column count. */
271 /* Whether to try to fill the input buffer when we reach the
276 int yy_buffer_status
;
278 #define YY_BUFFER_NEW 0
279 #define YY_BUFFER_NORMAL 1
280 /* When an EOF's been seen but there's still some text to process
281 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
282 * shouldn't try reading from the input source any more. We might
283 * still have a bunch of tokens to match, though, because of
284 * possible backing-up.
286 * When we actually see the EOF, we change the status to "new"
287 * (via config_restart()), so that the user can continue scanning by
288 * just pointing yyin at a new input file.
290 #define YY_BUFFER_EOF_PENDING 2
293 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
295 /* We provide macros for accessing buffer states in case in the
296 * future we want to put the buffer states in a more general
299 * Returns the top of the stack, or NULL.
301 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
302 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
305 /* Same as previous macro, but useful when we know that the buffer stack is not
306 * NULL or when we need an lvalue. For internal use only.
308 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
310 void config_restart (FILE *input_file
,yyscan_t yyscanner
);
311 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
312 YY_BUFFER_STATE
config__create_buffer (FILE *file
,int size
,yyscan_t yyscanner
);
313 void config__delete_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
314 void config__flush_buffer (YY_BUFFER_STATE b
,yyscan_t yyscanner
);
315 void config_push_buffer_state (YY_BUFFER_STATE new_buffer
,yyscan_t yyscanner
);
316 void config_pop_buffer_state (yyscan_t yyscanner
);
318 static void config_ensure_buffer_stack (yyscan_t yyscanner
);
319 static void config__load_buffer_state (yyscan_t yyscanner
);
320 static void config__init_buffer (YY_BUFFER_STATE b
,FILE *file
,yyscan_t yyscanner
);
322 #define YY_FLUSH_BUFFER config__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
324 YY_BUFFER_STATE
config__scan_buffer (char *base
,yy_size_t size
,yyscan_t yyscanner
);
325 YY_BUFFER_STATE
config__scan_string (yyconst
char *yy_str
,yyscan_t yyscanner
);
326 YY_BUFFER_STATE
config__scan_bytes (yyconst
char *bytes
,int len
,yyscan_t yyscanner
);
328 void *config_alloc (yy_size_t
,yyscan_t yyscanner
);
329 void *config_realloc (void *,yy_size_t
,yyscan_t yyscanner
);
330 void config_free (void * ,yyscan_t yyscanner
);
332 #define yy_new_buffer config__create_buffer
334 #define yy_set_interactive(is_interactive) \
336 if ( ! YY_CURRENT_BUFFER ){ \
337 config_ensure_buffer_stack (yyscanner); \
338 YY_CURRENT_BUFFER_LVALUE = \
339 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
341 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
344 #define yy_set_bol(at_bol) \
346 if ( ! YY_CURRENT_BUFFER ){\
347 config_ensure_buffer_stack (yyscanner); \
348 YY_CURRENT_BUFFER_LVALUE = \
349 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
351 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
354 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
356 /* Begin user sect3 */
358 #define config_wrap(n) 1
359 #define YY_SKIP_YYWRAP
361 typedef unsigned char YY_CHAR
;
363 typedef int yy_state_type
;
365 #define yytext_ptr yytext_r
367 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
);
368 static yy_state_type
yy_try_NUL_trans (yy_state_type current_state
,yyscan_t yyscanner
);
369 static int yy_get_next_buffer (yyscan_t yyscanner
);
370 static void yy_fatal_error (yyconst
char msg
[] ,yyscan_t yyscanner
);
372 /* Done after the current pattern has been matched and before the
373 * corresponding action - sets up yytext.
375 #define YY_DO_BEFORE_ACTION \
376 yyg->yytext_ptr = yy_bp; \
377 yyleng = (size_t) (yy_cp - yy_bp); \
378 yyg->yy_hold_char = *yy_cp; \
380 yyg->yy_c_buf_p = yy_cp;
382 #define YY_NUM_RULES 66
383 #define YY_END_OF_BUFFER 67
384 /* This struct is not used in this scanner,
385 but its presence is necessary. */
388 flex_int32_t yy_verify
;
391 static yyconst flex_int16_t yy_accept
[534] =
393 0, 0, 67, 65, 5, 5, 1, 65, 65, 65,
394 2, 65, 65, 65, 65, 65, 65, 65, 65, 65,
395 65, 65, 65, 65, 65, 65, 0, 64, 0, 49,
396 0, 0, 0, 2, 3, 0, 0, 0, 0, 0,
397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
398 0, 0, 0, 0, 6, 49, 49, 49, 49, 49,
399 49, 49, 49, 49, 49, 49, 49, 49, 49, 4,
400 63, 63, 2, 3, 63, 54, 63, 45, 63, 63,
401 63, 63, 63, 63, 64, 0, 63, 53, 63, 63,
402 63, 63, 63, 63, 49, 49, 49, 49, 49, 49,
404 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
405 49, 49, 49, 49, 49, 4, 0, 63, 2, 3,
406 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
407 63, 63, 63, 47, 49, 49, 49, 49, 49, 49,
408 0, 49, 49, 49, 49, 49, 49, 49, 49, 49,
409 49, 49, 49, 49, 49, 49, 49, 49, 4, 63,
410 63, 3, 63, 43, 46, 48, 63, 0, 59, 63,
411 63, 63, 63, 63, 42, 63, 49, 49, 49, 49,
412 49, 49, 49, 0, 0, 0, 49, 49, 49, 49,
413 49, 49, 0, 49, 49, 49, 0, 49, 49, 49,
415 0, 0, 49, 49, 4, 0, 63, 3, 63, 0,
416 63, 63, 63, 63, 51, 60, 52, 63, 49, 49,
417 49, 49, 49, 49, 0, 15, 0, 0, 0, 49,
418 49, 49, 0, 0, 49, 0, 49, 49, 49, 0,
419 49, 0, 49, 0, 0, 0, 0, 49, 4, 62,
420 63, 63, 63, 63, 57, 55, 41, 61, 44, 49,
421 49, 49, 49, 49, 0, 0, 0, 0, 0, 49,
422 49, 49, 0, 0, 49, 0, 49, 0, 49, 0,
423 49, 0, 49, 0, 0, 0, 0, 49, 62, 63,
424 58, 56, 0, 0, 49, 49, 49, 0, 0, 0,
426 0, 0, 49, 19, 0, 0, 0, 0, 49, 0,
427 0, 0, 7, 0, 0, 8, 0, 49, 0, 0,
428 34, 0, 0, 62, 63, 0, 0, 49, 0, 49,
429 0, 0, 0, 0, 0, 49, 0, 0, 0, 0,
430 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
431 0, 0, 0, 50, 0, 0, 49, 0, 49, 0,
432 0, 0, 0, 0, 49, 0, 0, 38, 37, 49,
433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
434 0, 35, 0, 0, 0, 0, 0, 49, 0, 0,
435 0, 0, 0, 39, 0, 0, 0, 0, 0, 0,
437 0, 0, 0, 29, 0, 0, 0, 0, 36, 0,
438 0, 0, 0, 49, 0, 0, 0, 0, 0, 0,
439 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
440 0, 33, 0, 0, 0, 0, 49, 0, 0, 0,
441 0, 0, 0, 0, 0, 23, 0, 0, 26, 0,
442 0, 0, 32, 0, 0, 0, 0, 13, 40, 0,
443 0, 0, 0, 0, 21, 0, 0, 0, 0, 0,
444 31, 0, 0, 0, 0, 0, 0, 0, 0, 0,
445 0, 0, 25, 0, 0, 9, 10, 11, 0, 0,
446 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
448 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
449 18, 0, 0, 0, 27, 28, 0, 0, 0, 0,
450 0, 14, 16, 20, 0, 0, 0, 0, 0, 0,
454 static yyconst flex_int32_t yy_ec
[256] =
456 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
457 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
458 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
459 1, 4, 1, 5, 6, 1, 1, 1, 1, 1,
460 1, 1, 1, 7, 8, 9, 10, 11, 12, 13,
461 14, 15, 16, 17, 11, 11, 11, 18, 1, 1,
462 19, 1, 20, 1, 21, 22, 23, 24, 25, 26,
463 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
464 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
465 1, 47, 1, 1, 48, 1, 49, 50, 51, 52,
467 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
468 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
469 73, 74, 1, 1, 1, 1, 1, 1, 1, 1,
470 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
471 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
472 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
473 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
474 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
475 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
476 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
478 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
479 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
480 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
481 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
482 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
486 static yyconst flex_int32_t yy_meta
[75] =
488 1, 1, 1, 1, 2, 1, 1, 2, 2, 1,
489 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
490 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
491 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
492 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
493 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
494 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
498 static yyconst flex_int16_t yy_base
[539] =
500 0, 628, 628, 1740, 1740, 1740, 1740, 70, 618, 605,
501 67, 74, 0, 57, 52, 59, 73, 57, 64, 74,
502 612, 77, 79, 77, 65, 612, 101, 1740, 609, 138,
503 202, 215, 217, 230, 237, 250, 252, 259, 265, 277,
504 282, 287, 297, 271, 315, 377, 323, 342, 350, 359,
505 364, 396, 401, 606, 1740, 449, 242, 73, 80, 85,
506 90, 78, 378, 79, 397, 398, 92, 77, 94, 441,
507 328, 515, 528, 481, 499, 421, 541, 543, 548, 553,
508 559, 565, 576, 590, 595, 649, 0, 597, 622, 614,
509 624, 656, 632, 674, 123, 132, 235, 249, 253, 271,
511 586, 285, 296, 328, 403, 340, 358, 375, 379, 413,
512 650, 404, 438, 456, 444, 717, 730, 743, 756, 768,
513 781, 787, 789, 797, 803, 808, 825, 810, 838, 852,
514 854, 863, 870, 702, 463, 460, 651, 519, 537, 537,
515 656, 544, 561, 594, 634, 652, 662, 572, 655, 654,
516 651, 571, 664, 658, 672, 570, 711, 696, 893, 921,
517 872, 928, 907, 879, 942, 944, 949, 951, 958, 967,
518 973, 975, 980, 993, 995, 1000, 737, 768, 771, 795,
519 787, 798, 126, 796, 860, 852, 857, 861, 961, 569,
520 567, 959, 971, 970, 971, 992, 985, 1002, 564, 994,
522 999, 990, 547, 1006, 1056, 1069, 1082, 1740, 1095, 1097,
523 1107, 1113, 1124, 1118, 1131, 1133, 1139, 1145, 989, 998,
524 1010, 1024, 1022, 546, 1066, 1740, 1084, 1086, 1107, 1110,
525 1126, 1122, 1124, 1134, 1135, 1140, 1145, 527, 1133, 1144,
526 1135, 1148, 1140, 1155, 1147, 1159, 1165, 1145, 1740, 1211,
527 1224, 1226, 1232, 1234, 1239, 1245, 1247, 1252, 1257, 526,
528 517, 1161, 1196, 1236, 1221, 1239, 1244, 514, 513, 1249,
529 1226, 472, 1244, 1254, 1247, 1245, 471, 1241, 457, 1251,
530 258, 1250, 1248, 1264, 1266, 1256, 1273, 456, 1316, 1329,
531 1331, 1336, 1271, 1276, 1277, 451, 1278, 1298, 1286, 1307,
533 1312, 1307, 1329, 0, 1318, 1322, 1313, 1324, 1313, 1335,
534 1335, 1333, 1740, 1340, 1328, 1740, 1329, 406, 1333, 1345,
535 1740, 1331, 1341, 1396, 1398, 1344, 1367, 1377, 1368, 1369,
536 1373, 1384, 403, 1375, 1393, 1390, 1391, 1394, 373, 372,
537 1396, 1387, 1402, 1391, 1390, 1401, 1402, 1388, 1406, 1438,
538 1400, 1412, 1409, 1460, 1400, 1411, 367, 1429, 1435, 1431,
539 362, 1428, 1447, 1433, 346, 352, 1439, 1740, 1740, 348,
540 1434, 1448, 1453, 1438, 1458, 1448, 1444, 1463, 1453, 1464,
541 1468, 1740, 1445, 1451, 1452, 1468, 1463, 1462, 1475, 1480,
542 1494, 1494, 1498, 1740, 1488, 1486, 1490, 1489, 1498, 1496,
544 1493, 1492, 1511, 1740, 1497, 1508, 1506, 1494, 1740, 1505,
545 1516, 1515, 1520, 1512, 1512, 1528, 1510, 1527, 1515, 1535,
546 1530, 1546, 334, 1551, 1538, 333, 340, 336, 1740, 1540,
547 1558, 1740, 1561, 1546, 1554, 1552, 322, 1555, 1557, 1566,
548 1552, 1560, 1558, 321, 1559, 1740, 1572, 1557, 1740, 1561,
549 1562, 1577, 1740, 1568, 1565, 1581, 1567, 1740, 1740, 1584,
550 1578, 1603, 1606, 1600, 1740, 1603, 319, 289, 1609, 1610,
551 1740, 1608, 1602, 285, 1602, 1604, 1612, 1618, 1609, 1619,
552 1620, 1611, 1740, 1605, 1606, 1740, 1740, 1740, 282, 1617,
553 1635, 253, 1626, 1635, 1636, 1636, 1637, 1639, 1740, 1644,
555 1634, 1740, 243, 1661, 1662, 1650, 237, 221, 1668, 1663,
556 1740, 1656, 229, 1654, 1740, 1740, 1672, 217, 208, 1660,
557 1674, 1740, 1740, 1740, 1676, 1664, 1682, 1665, 1681, 202,
558 1740, 1740, 1740, 1733, 154, 1735, 131, 1737
561 static yyconst flex_int16_t yy_def
[539] =
563 533, 1, 533, 533, 533, 533, 533, 534, 533, 533,
564 535, 533, 535, 535, 535, 535, 535, 535, 535, 535,
565 535, 535, 535, 535, 535, 536, 534, 533, 534, 533,
566 533, 537, 537, 537, 533, 537, 537, 537, 537, 537,
567 537, 537, 537, 537, 537, 538, 537, 537, 537, 537,
568 537, 537, 537, 536, 533, 30, 56, 56, 56, 56,
569 56, 56, 56, 56, 56, 56, 56, 56, 56, 533,
570 537, 537, 537, 533, 537, 537, 537, 537, 537, 537,
571 537, 537, 537, 537, 537, 538, 86, 537, 537, 537,
572 537, 537, 537, 537, 56, 56, 56, 56, 56, 56,
574 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
575 56, 56, 56, 56, 56, 533, 537, 537, 537, 533,
576 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
577 537, 537, 537, 537, 56, 56, 56, 56, 56, 56,
578 533, 56, 56, 56, 56, 56, 56, 56, 56, 56,
579 56, 56, 56, 56, 56, 56, 56, 56, 533, 537,
580 537, 533, 537, 537, 537, 537, 537, 537, 537, 537,
581 537, 537, 537, 537, 537, 537, 56, 56, 56, 56,
582 56, 56, 56, 533, 533, 533, 56, 56, 56, 56,
583 56, 56, 533, 56, 56, 56, 533, 56, 56, 56,
585 533, 533, 56, 56, 533, 537, 537, 533, 537, 537,
586 537, 537, 537, 537, 537, 537, 537, 537, 56, 56,
587 56, 56, 56, 56, 533, 533, 533, 533, 533, 56,
588 56, 56, 533, 533, 56, 533, 56, 56, 56, 533,
589 56, 533, 56, 533, 533, 533, 533, 56, 533, 537,
590 537, 537, 537, 537, 537, 537, 537, 537, 537, 56,
591 56, 56, 56, 56, 533, 533, 533, 533, 533, 56,
592 56, 56, 533, 533, 56, 533, 56, 533, 56, 533,
593 56, 533, 56, 533, 533, 533, 533, 56, 537, 537,
594 537, 537, 533, 533, 56, 56, 56, 533, 533, 533,
596 533, 533, 56, 56, 533, 533, 533, 533, 56, 533,
597 533, 533, 533, 533, 533, 533, 533, 56, 533, 533,
598 533, 533, 533, 537, 537, 533, 533, 56, 533, 56,
599 533, 533, 533, 533, 533, 56, 533, 533, 533, 533,
600 56, 533, 533, 533, 533, 533, 533, 533, 533, 533,
601 533, 533, 533, 537, 533, 533, 56, 533, 56, 533,
602 533, 533, 533, 533, 56, 533, 533, 533, 533, 56,
603 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
604 533, 533, 533, 533, 533, 533, 533, 56, 533, 533,
605 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
607 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
608 533, 533, 533, 56, 533, 533, 533, 533, 533, 533,
609 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
610 533, 533, 533, 533, 533, 533, 56, 533, 533, 533,
611 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
612 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
613 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
614 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
615 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
616 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
618 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
619 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
620 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
621 533, 533, 0, 533, 533, 533, 533, 533
624 static yyconst flex_int16_t yy_nxt
[1815] =
626 4, 5, 6, 7, 8, 4, 7, 9, 4, 10,
627 11, 11, 11, 11, 11, 11, 11, 12, 7, 4,
628 13, 13, 14, 15, 16, 17, 13, 18, 19, 20,
629 13, 21, 22, 13, 13, 13, 13, 23, 24, 25,
630 13, 13, 13, 13, 13, 13, 4, 4, 13, 13,
631 14, 15, 16, 17, 13, 18, 19, 20, 13, 21,
632 22, 13, 13, 13, 13, 23, 24, 25, 13, 13,
633 13, 13, 13, 13, 28, 33, 38, 34, 34, 34,
634 34, 34, 34, 34, 35, 35, 35, 35, 35, 35,
635 35, 36, 39, 41, 37, 43, 40, 44, 45, 50,
637 47, 52, 53, 51, 38, 28, 42, 97, 98, 99,
638 100, 48, 101, 105, 113, 114, 29, 49, 115, 36,
639 39, 41, 37, 43, 40, 44, 45, 50, 47, 52,
640 53, 51, 71, 225, 42, 97, 98, 99, 100, 48,
641 101, 105, 113, 114, 226, 49, 115, 29, 56, 56,
642 56, 56, 56, 56, 56, 32, 135, 136, 56, 57,
643 58, 59, 56, 60, 56, 61, 62, 56, 56, 56,
644 56, 63, 56, 64, 56, 65, 66, 67, 68, 69,
645 56, 56, 56, 56, 135, 136, 56, 57, 58, 59,
646 56, 60, 56, 61, 62, 56, 56, 56, 56, 63,
648 56, 64, 56, 65, 66, 67, 68, 69, 56, 56,
649 56, 56, 70, 70, 70, 70, 70, 70, 70, 32,
650 532, 32, 32, 32, 32, 32, 524, 72, 72, 72,
651 72, 72, 72, 72, 32, 523, 520, 32, 33, 516,
652 73, 73, 73, 73, 73, 73, 73, 74, 74, 74,
653 74, 74, 74, 74, 32, 515, 32, 32, 32, 32,
654 32, 511, 32, 32, 32, 315, 32, 32, 137, 32,
655 95, 502, 32, 32, 76, 32, 316, 32, 32, 32,
656 77, 32, 96, 75, 32, 32, 32, 138, 78, 32,
657 32, 32, 139, 83, 32, 32, 137, 32, 95, 32,
659 499, 32, 76, 488, 32, 32, 32, 483, 77, 140,
660 96, 75, 32, 80, 79, 138, 78, 142, 32, 32,
661 139, 83, 32, 32, 32, 82, 482, 32, 81, 32,
662 32, 32, 32, 143, 32, 32, 32, 140, 88, 465,
663 458, 80, 79, 451, 32, 142, 32, 450, 84, 32,
664 32, 449, 446, 82, 32, 397, 81, 32, 32, 395,
665 144, 143, 32, 32, 394, 89, 32, 32, 32, 390,
666 32, 32, 32, 147, 386, 32, 84, 27, 27, 27,
667 27, 85, 27, 27, 86, 86, 27, 90, 144, 32,
668 369, 368, 91, 89, 27, 27, 27, 32, 102, 148,
670 32, 147, 92, 32, 32, 32, 32, 149, 32, 32,
671 362, 32, 103, 349, 150, 90, 151, 106, 104, 107,
672 91, 108, 109, 29, 86, 32, 102, 148, 32, 32,
673 92, 110, 111, 93, 145, 149, 152, 146, 112, 155,
674 103, 94, 150, 32, 151, 106, 104, 107, 32, 108,
675 109, 116, 116, 116, 116, 116, 116, 116, 329, 110,
676 111, 93, 145, 323, 152, 146, 112, 155, 32, 94,
677 56, 56, 56, 156, 56, 313, 56, 56, 311, 305,
678 157, 158, 56, 177, 56, 178, 56, 56, 56, 56,
679 56, 120, 120, 120, 120, 120, 120, 120, 56, 56,
681 56, 156, 56, 32, 56, 56, 32, 32, 157, 158,
682 56, 177, 56, 178, 56, 56, 56, 56, 56, 32,
683 302, 301, 32, 117, 294, 118, 118, 118, 118, 118,
684 118, 118, 32, 293, 278, 32, 33, 121, 119, 119,
685 119, 119, 119, 119, 119, 32, 32, 32, 32, 32,
686 32, 32, 32, 265, 247, 32, 32, 32, 181, 182,
687 32, 32, 32, 32, 183, 121, 32, 32, 187, 32,
688 125, 242, 32, 32, 234, 32, 233, 201, 197, 193,
689 32, 122, 123, 32, 32, 188, 181, 182, 32, 126,
690 32, 124, 183, 141, 32, 32, 187, 32, 32, 32,
692 32, 32, 32, 32, 32, 32, 32, 127, 55, 122,
693 123, 533, 32, 188, 55, 189, 46, 126, 32, 124,
694 128, 32, 32, 32, 31, 30, 32, 533, 32, 32,
695 32, 32, 32, 26, 533, 127, 32, 32, 533, 32,
696 32, 533, 32, 189, 32, 533, 130, 131, 128, 27,
697 27, 27, 27, 85, 27, 27, 86, 86, 27, 533,
698 32, 32, 129, 32, 32, 190, 27, 27, 27, 32,
699 533, 32, 153, 133, 130, 131, 179, 184, 32, 32,
700 132, 32, 32, 191, 180, 192, 185, 154, 186, 194,
701 129, 195, 196, 190, 198, 29, 86, 199, 134, 533,
703 153, 133, 533, 32, 179, 184, 32, 200, 132, 32,
704 32, 191, 180, 192, 185, 154, 186, 194, 202, 195,
705 196, 32, 198, 533, 204, 199, 134, 159, 159, 159,
706 159, 159, 159, 159, 32, 200, 533, 32, 32, 533,
707 160, 160, 160, 160, 160, 160, 160, 32, 203, 32,
708 32, 117, 204, 161, 161, 161, 161, 161, 161, 161,
709 32, 533, 533, 32, 32, 533, 119, 119, 119, 119,
710 119, 119, 119, 533, 219, 533, 203, 32, 162, 162,
711 162, 162, 162, 162, 162, 32, 533, 533, 32, 32,
712 32, 32, 220, 32, 32, 32, 32, 32, 533, 221,
714 533, 32, 219, 32, 32, 32, 533, 32, 533, 163,
715 32, 32, 32, 164, 32, 32, 32, 32, 32, 222,
716 220, 166, 533, 167, 223, 224, 165, 221, 32, 32,
717 533, 533, 32, 32, 32, 169, 32, 163, 171, 533,
718 227, 164, 32, 533, 32, 32, 32, 222, 533, 166,
719 168, 167, 223, 224, 165, 32, 32, 32, 32, 32,
720 32, 32, 32, 169, 533, 170, 171, 32, 227, 172,
721 32, 32, 32, 533, 32, 533, 32, 32, 32, 32,
722 117, 533, 533, 32, 228, 32, 32, 32, 174, 533,
723 229, 533, 173, 170, 176, 230, 231, 172, 533, 32,
725 533, 32, 175, 205, 205, 205, 205, 205, 205, 205,
726 32, 32, 228, 533, 32, 32, 174, 32, 229, 32,
727 173, 533, 176, 230, 231, 32, 32, 533, 32, 206,
728 175, 207, 207, 207, 207, 207, 207, 207, 208, 208,
729 208, 208, 208, 208, 208, 209, 32, 533, 32, 32,
730 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
731 533, 533, 32, 533, 211, 32, 32, 212, 32, 533,
732 533, 32, 533, 209, 32, 32, 533, 32, 533, 32,
733 32, 32, 32, 32, 32, 232, 533, 32, 32, 32,
734 213, 32, 533, 235, 533, 215, 210, 32, 32, 32,
736 32, 32, 32, 32, 32, 32, 214, 32, 32, 533,
737 236, 237, 533, 232, 32, 238, 239, 216, 213, 533,
738 32, 235, 32, 215, 240, 217, 241, 32, 243, 244,
739 246, 248, 245, 260, 214, 261, 262, 218, 236, 237,
740 32, 533, 32, 238, 239, 216, 263, 32, 533, 533,
741 264, 533, 240, 217, 241, 533, 243, 244, 246, 248,
742 245, 260, 533, 261, 262, 218, 249, 249, 249, 249,
743 249, 249, 249, 32, 263, 533, 32, 32, 264, 250,
744 250, 250, 250, 250, 250, 250, 32, 533, 533, 32,
745 206, 533, 251, 251, 251, 251, 251, 251, 251, 32,
747 533, 32, 32, 32, 32, 32, 533, 533, 266, 533,
748 253, 32, 533, 254, 32, 32, 32, 32, 533, 255,
749 32, 32, 32, 267, 533, 32, 32, 256, 32, 32,
750 268, 32, 32, 269, 252, 32, 266, 32, 32, 32,
751 32, 32, 32, 32, 32, 270, 32, 32, 257, 32,
752 533, 267, 32, 32, 32, 533, 258, 271, 268, 272,
753 32, 269, 252, 273, 533, 32, 274, 275, 276, 277,
754 279, 32, 280, 270, 281, 282, 257, 283, 32, 284,
755 32, 285, 286, 259, 258, 271, 32, 272, 287, 288,
756 533, 273, 32, 533, 274, 275, 276, 277, 279, 533,
758 280, 295, 281, 282, 533, 283, 533, 284, 533, 285,
759 286, 259, 533, 533, 533, 32, 287, 288, 32, 32,
760 533, 289, 289, 289, 289, 289, 289, 289, 32, 295,
761 32, 32, 206, 32, 32, 296, 32, 533, 32, 32,
762 32, 32, 32, 32, 291, 533, 32, 32, 292, 32,
763 290, 32, 32, 32, 32, 32, 32, 297, 32, 32,
764 32, 32, 298, 296, 32, 32, 533, 299, 300, 303,
765 304, 32, 306, 32, 307, 309, 533, 310, 290, 32,
766 312, 32, 308, 314, 317, 297, 32, 318, 319, 320,
767 298, 321, 32, 322, 32, 299, 300, 303, 304, 32,
769 306, 533, 307, 309, 32, 310, 326, 533, 312, 533,
770 308, 314, 317, 327, 328, 318, 319, 320, 330, 321,
771 32, 322, 331, 32, 32, 332, 324, 324, 324, 324,
772 324, 324, 324, 32, 326, 32, 32, 32, 32, 32,
773 32, 327, 328, 32, 32, 333, 330, 334, 533, 335,
774 331, 336, 337, 332, 338, 533, 339, 340, 341, 342,
775 343, 344, 325, 32, 345, 346, 347, 348, 350, 351,
776 352, 353, 533, 333, 533, 334, 32, 335, 32, 336,
777 337, 355, 338, 32, 339, 340, 341, 342, 343, 344,
778 325, 356, 345, 346, 347, 348, 350, 351, 352, 353,
780 32, 357, 32, 32, 32, 32, 32, 358, 359, 355,
781 360, 361, 363, 364, 365, 533, 366, 533, 367, 356,
782 370, 371, 372, 373, 374, 375, 376, 377, 378, 357,
783 533, 381, 382, 383, 384, 358, 359, 354, 360, 361,
784 363, 364, 365, 32, 366, 32, 367, 385, 370, 371,
785 372, 373, 374, 375, 376, 377, 378, 387, 379, 381,
786 382, 383, 384, 388, 32, 354, 380, 32, 32, 389,
787 391, 392, 393, 396, 398, 385, 399, 400, 401, 533,
788 402, 403, 404, 405, 406, 387, 379, 407, 408, 409,
789 410, 388, 411, 412, 380, 413, 414, 389, 391, 392,
791 393, 396, 398, 415, 399, 400, 401, 32, 402, 403,
792 404, 405, 406, 416, 417, 407, 408, 409, 410, 418,
793 411, 412, 419, 413, 414, 420, 421, 422, 423, 424,
794 425, 415, 426, 427, 428, 429, 430, 431, 432, 433,
795 434, 416, 417, 435, 436, 437, 438, 418, 439, 440,
796 419, 441, 442, 420, 421, 422, 423, 424, 425, 443,
797 426, 427, 428, 429, 430, 431, 432, 433, 434, 444,
798 445, 435, 436, 437, 438, 447, 439, 440, 448, 441,
799 442, 452, 453, 454, 455, 456, 457, 443, 459, 460,
800 461, 462, 463, 464, 466, 467, 468, 444, 445, 469,
802 470, 471, 472, 447, 473, 474, 448, 475, 476, 452,
803 453, 454, 455, 456, 457, 477, 459, 460, 461, 462,
804 463, 464, 466, 467, 468, 478, 479, 469, 470, 471,
805 472, 480, 473, 474, 481, 475, 476, 484, 485, 486,
806 487, 489, 490, 477, 491, 492, 493, 494, 495, 496,
807 497, 498, 500, 478, 479, 501, 503, 504, 505, 480,
808 506, 507, 481, 508, 509, 484, 485, 486, 487, 489,
809 490, 510, 491, 492, 493, 494, 495, 496, 497, 498,
810 500, 512, 513, 501, 503, 504, 505, 514, 506, 507,
811 517, 508, 509, 518, 519, 521, 522, 525, 526, 510,
813 527, 528, 529, 530, 531, 533, 533, 533, 533, 512,
814 513, 533, 533, 533, 533, 514, 533, 533, 517, 533,
815 533, 518, 519, 521, 522, 525, 526, 533, 527, 528,
816 529, 530, 531, 27, 27, 54, 54, 87, 87, 3,
817 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
818 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
819 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
820 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
821 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
822 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
824 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
828 static yyconst flex_int16_t yy_chk
[1815] =
830 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
831 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
832 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
833 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
834 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
835 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
836 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
837 1, 1, 1, 1, 8, 11, 15, 11, 11, 11,
838 11, 11, 11, 11, 12, 12, 12, 12, 12, 12,
839 12, 14, 16, 17, 14, 18, 16, 19, 20, 23,
841 22, 24, 25, 23, 15, 27, 17, 58, 59, 60,
842 61, 22, 62, 64, 67, 68, 8, 22, 69, 14,
843 16, 17, 14, 18, 16, 19, 20, 23, 22, 24,
844 25, 23, 537, 183, 17, 58, 59, 60, 61, 22,
845 62, 64, 67, 68, 183, 22, 69, 27, 30, 30,
846 30, 30, 30, 30, 30, 535, 95, 96, 30, 30,
847 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
848 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
849 30, 30, 30, 30, 95, 96, 30, 30, 30, 30,
850 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
852 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
853 30, 30, 31, 31, 31, 31, 31, 31, 31, 32,
854 530, 33, 32, 32, 33, 33, 519, 33, 33, 33,
855 33, 33, 33, 33, 34, 518, 513, 34, 34, 508,
856 34, 34, 34, 34, 34, 34, 34, 35, 35, 35,
857 35, 35, 35, 35, 36, 507, 37, 36, 36, 37,
858 37, 503, 32, 38, 33, 281, 38, 38, 97, 39,
859 57, 492, 39, 39, 37, 44, 281, 34, 44, 44,
860 38, 40, 57, 36, 40, 40, 41, 98, 39, 41,
861 41, 42, 99, 44, 42, 42, 97, 36, 57, 37,
863 489, 43, 37, 474, 43, 43, 38, 468, 38, 100,
864 57, 36, 39, 41, 40, 98, 39, 102, 44, 45,
865 99, 44, 45, 45, 40, 43, 467, 47, 42, 41,
866 47, 47, 71, 103, 42, 71, 71, 100, 47, 444,
867 437, 41, 40, 428, 43, 102, 48, 427, 45, 48,
868 48, 426, 423, 43, 49, 370, 42, 49, 49, 366,
869 104, 103, 45, 50, 365, 48, 50, 50, 51, 361,
870 47, 51, 51, 106, 357, 71, 45, 46, 46, 46,
871 46, 46, 46, 46, 46, 46, 46, 49, 104, 48,
872 340, 339, 50, 48, 46, 46, 46, 49, 63, 107,
874 52, 106, 51, 52, 52, 53, 50, 108, 53, 53,
875 333, 51, 63, 318, 108, 49, 109, 65, 63, 65,
876 50, 65, 66, 46, 46, 76, 63, 107, 76, 76,
877 51, 66, 66, 52, 105, 108, 110, 105, 66, 112,
878 63, 53, 108, 52, 109, 65, 63, 65, 53, 65,
879 66, 70, 70, 70, 70, 70, 70, 70, 296, 66,
880 66, 52, 105, 288, 110, 105, 66, 112, 76, 53,
881 56, 56, 56, 113, 56, 279, 56, 56, 277, 272,
882 114, 115, 56, 135, 56, 136, 56, 56, 56, 56,
883 56, 74, 74, 74, 74, 74, 74, 74, 56, 56,
885 56, 113, 56, 75, 56, 56, 75, 75, 114, 115,
886 56, 135, 56, 136, 56, 56, 56, 56, 56, 72,
887 269, 268, 72, 72, 261, 72, 72, 72, 72, 72,
888 72, 72, 73, 260, 238, 73, 73, 75, 73, 73,
889 73, 73, 73, 73, 73, 77, 75, 78, 77, 77,
890 78, 78, 79, 224, 203, 79, 79, 80, 138, 139,
891 80, 80, 72, 81, 140, 75, 81, 81, 142, 82,
892 81, 199, 82, 82, 191, 73, 190, 156, 152, 148,
893 83, 77, 79, 83, 83, 143, 138, 139, 77, 82,
894 78, 80, 140, 101, 84, 79, 142, 84, 84, 85,
896 80, 88, 85, 85, 88, 88, 81, 83, 54, 77,
897 79, 29, 82, 143, 26, 144, 21, 82, 90, 80,
898 84, 90, 90, 83, 10, 9, 89, 3, 91, 89,
899 89, 91, 91, 2, 0, 83, 93, 84, 0, 93,
900 93, 0, 85, 144, 88, 0, 90, 91, 84, 86,
901 86, 86, 86, 86, 86, 86, 86, 86, 86, 0,
902 92, 90, 89, 92, 92, 145, 86, 86, 86, 89,
903 0, 91, 111, 93, 90, 91, 137, 141, 94, 93,
904 92, 94, 94, 146, 137, 147, 141, 111, 141, 149,
905 89, 150, 151, 145, 153, 86, 86, 154, 94, 0,
907 111, 93, 0, 92, 137, 141, 134, 155, 92, 134,
908 134, 146, 137, 147, 141, 111, 141, 149, 157, 150,
909 151, 94, 153, 0, 158, 154, 94, 116, 116, 116,
910 116, 116, 116, 116, 117, 155, 0, 117, 117, 0,
911 117, 117, 117, 117, 117, 117, 117, 118, 157, 134,
912 118, 118, 158, 118, 118, 118, 118, 118, 118, 118,
913 119, 0, 0, 119, 119, 0, 119, 119, 119, 119,
914 119, 119, 119, 0, 177, 0, 157, 117, 120, 120,
915 120, 120, 120, 120, 120, 121, 0, 0, 121, 121,
916 118, 122, 178, 123, 122, 122, 123, 123, 0, 179,
918 0, 124, 177, 119, 124, 124, 0, 125, 0, 121,
919 125, 125, 126, 122, 128, 126, 126, 128, 128, 180,
920 178, 124, 0, 125, 181, 182, 123, 179, 121, 127,
921 0, 0, 127, 127, 122, 126, 123, 121, 128, 0,
922 184, 122, 129, 0, 124, 129, 129, 180, 0, 124,
923 125, 125, 181, 182, 123, 126, 130, 128, 131, 130,
924 130, 131, 131, 126, 0, 127, 128, 132, 184, 129,
925 132, 132, 127, 0, 133, 0, 161, 133, 133, 161,
926 161, 0, 0, 164, 185, 129, 164, 164, 131, 0,
927 186, 0, 130, 127, 133, 187, 188, 129, 0, 130,
929 0, 131, 132, 159, 159, 159, 159, 159, 159, 159,
930 132, 163, 185, 0, 163, 163, 131, 133, 186, 161,
931 130, 0, 133, 187, 188, 160, 164, 0, 160, 160,
932 132, 160, 160, 160, 160, 160, 160, 160, 162, 162,
933 162, 162, 162, 162, 162, 163, 165, 0, 166, 165,
934 165, 166, 166, 167, 163, 168, 167, 167, 168, 168,
935 0, 0, 169, 0, 168, 169, 169, 168, 160, 0,
936 0, 170, 0, 163, 170, 170, 0, 171, 0, 172,
937 171, 171, 172, 172, 173, 189, 0, 173, 173, 165,
938 170, 166, 0, 192, 0, 172, 167, 174, 168, 175,
940 174, 174, 175, 175, 176, 169, 171, 176, 176, 0,
941 193, 194, 0, 189, 170, 195, 196, 173, 170, 0,
942 171, 192, 172, 172, 197, 174, 198, 173, 200, 201,
943 202, 204, 201, 219, 171, 220, 221, 176, 193, 194,
944 174, 0, 175, 195, 196, 173, 222, 176, 0, 0,
945 223, 0, 197, 174, 198, 0, 200, 201, 202, 204,
946 201, 219, 0, 220, 221, 176, 205, 205, 205, 205,
947 205, 205, 205, 206, 222, 0, 206, 206, 223, 206,
948 206, 206, 206, 206, 206, 206, 207, 0, 0, 207,
949 207, 0, 207, 207, 207, 207, 207, 207, 207, 209,
951 0, 210, 209, 209, 210, 210, 0, 0, 225, 0,
952 210, 211, 0, 210, 211, 211, 206, 212, 0, 211,
953 212, 212, 214, 227, 0, 214, 214, 212, 213, 207,
954 228, 213, 213, 229, 209, 215, 225, 216, 215, 215,
955 216, 216, 209, 217, 210, 230, 217, 217, 213, 218,
956 0, 227, 218, 218, 211, 0, 214, 231, 228, 232,
957 212, 229, 209, 233, 0, 214, 234, 235, 236, 237,
958 239, 213, 240, 230, 241, 242, 213, 243, 215, 244,
959 216, 245, 246, 218, 214, 231, 217, 232, 247, 248,
960 0, 233, 218, 0, 234, 235, 236, 237, 239, 0,
962 240, 262, 241, 242, 0, 243, 0, 244, 0, 245,
963 246, 218, 0, 0, 0, 250, 247, 248, 250, 250,
964 0, 250, 250, 250, 250, 250, 250, 250, 251, 262,
965 252, 251, 251, 252, 252, 263, 253, 0, 254, 253,
966 253, 254, 254, 255, 253, 0, 255, 255, 254, 256,
967 252, 257, 256, 256, 257, 257, 258, 264, 250, 258,
968 258, 259, 265, 263, 259, 259, 0, 266, 267, 270,
969 271, 251, 273, 252, 274, 275, 0, 276, 252, 253,
970 278, 254, 274, 280, 282, 264, 255, 283, 284, 285,
971 265, 286, 256, 287, 257, 266, 267, 270, 271, 258,
973 273, 0, 274, 275, 259, 276, 293, 0, 278, 0,
974 274, 280, 282, 294, 295, 283, 284, 285, 297, 286,
975 289, 287, 298, 289, 289, 299, 289, 289, 289, 289,
976 289, 289, 289, 290, 293, 291, 290, 290, 291, 291,
977 292, 294, 295, 292, 292, 300, 297, 301, 0, 302,
978 298, 303, 305, 299, 306, 0, 307, 308, 309, 310,
979 311, 312, 290, 289, 314, 315, 315, 317, 319, 320,
980 322, 323, 0, 300, 0, 301, 290, 302, 291, 303,
981 305, 326, 306, 292, 307, 308, 309, 310, 311, 312,
982 290, 327, 314, 315, 315, 317, 319, 320, 322, 323,
984 324, 328, 325, 324, 324, 325, 325, 329, 330, 326,
985 331, 332, 334, 335, 336, 0, 337, 0, 338, 327,
986 341, 342, 343, 344, 345, 346, 347, 348, 349, 328,
987 0, 351, 352, 353, 355, 329, 330, 325, 331, 332,
988 334, 335, 336, 324, 337, 325, 338, 356, 341, 342,
989 343, 344, 345, 346, 347, 348, 349, 358, 350, 351,
990 352, 353, 355, 359, 354, 325, 350, 354, 354, 360,
991 362, 363, 364, 367, 371, 356, 372, 373, 374, 0,
992 375, 376, 377, 378, 379, 358, 350, 380, 381, 383,
993 384, 359, 385, 386, 350, 387, 388, 360, 362, 363,
995 364, 367, 371, 389, 372, 373, 374, 354, 375, 376,
996 377, 378, 379, 390, 391, 380, 381, 383, 384, 392,
997 385, 386, 393, 387, 388, 395, 396, 397, 398, 399,
998 400, 389, 401, 402, 403, 405, 406, 407, 408, 410,
999 411, 390, 391, 412, 413, 414, 415, 392, 416, 417,
1000 393, 418, 419, 395, 396, 397, 398, 399, 400, 420,
1001 401, 402, 403, 405, 406, 407, 408, 410, 411, 421,
1002 422, 412, 413, 414, 415, 424, 416, 417, 425, 418,
1003 419, 430, 431, 433, 434, 435, 436, 420, 438, 439,
1004 440, 441, 442, 443, 445, 447, 448, 421, 422, 450,
1006 451, 452, 454, 424, 455, 456, 425, 457, 460, 430,
1007 431, 433, 434, 435, 436, 461, 438, 439, 440, 441,
1008 442, 443, 445, 447, 448, 462, 463, 450, 451, 452,
1009 454, 464, 455, 456, 466, 457, 460, 469, 470, 472,
1010 473, 475, 476, 461, 477, 478, 479, 480, 481, 482,
1011 484, 485, 490, 462, 463, 491, 493, 494, 495, 464,
1012 496, 497, 466, 498, 500, 469, 470, 472, 473, 475,
1013 476, 501, 477, 478, 479, 480, 481, 482, 484, 485,
1014 490, 504, 505, 491, 493, 494, 495, 506, 496, 497,
1015 509, 498, 500, 510, 512, 514, 517, 520, 521, 501,
1017 525, 526, 527, 528, 529, 0, 0, 0, 0, 504,
1018 505, 0, 0, 0, 0, 506, 0, 0, 509, 0,
1019 0, 510, 512, 514, 517, 520, 521, 0, 525, 526,
1020 527, 528, 529, 534, 534, 536, 536, 538, 538, 533,
1021 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
1022 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
1023 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
1024 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
1025 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
1026 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
1028 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
1032 /* The intent behind this definition is that it'll catch
1033 * any uses of REJECT which flex missed.
1035 #define REJECT reject_used_but_not_detected
1036 #define yymore() yymore_used_but_not_detected
1037 #define YY_MORE_ADJ 0
1038 #define YY_RESTORE_YY_MORE_OFFSET
1039 #line 1 "libmemcached/csl/scanner.l"
1040 /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
1042 * Libmemcached library
1044 * Copyright (C) 2012 Data Differential, http://datadifferential.com/
1046 * Redistribution and use in source and binary forms, with or without
1047 * modification, are permitted provided that the following conditions are
1050 * * Redistributions of source code must retain the above copyright
1051 * notice, this list of conditions and the following disclaimer.
1053 * * Redistributions in binary form must reproduce the above
1054 * copyright notice, this list of conditions and the following disclaimer
1055 * in the documentation and/or other materials provided with the
1058 * * The names of its contributors may not be used to endorse or
1059 * promote products derived from this software without specific prior
1060 * written permission.
1062 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1063 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1064 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1065 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1066 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1067 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1068 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1069 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1070 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1071 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1072 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1076 #line 70 "libmemcached/csl/scanner.l"
1080 #define PARAM config_get_extra(yyscanner)
1082 #define get_lex_chars(buffer, result, max_size, context) \
1084 if (context->pos >= context->length) \
1090 result= (int)(context->length - context->pos); \
1091 (size_t)result > (size_t)max_size ? result= max_size : 0; \
1092 memcpy(buffer, context->buf + context->pos, result); \
1093 context->pos += result; \
1097 #define YY_FATAL_ERROR(msg) \
1102 #define YY_INPUT(buffer, result, max_size) get_lex_chars(buffer, result, max_size, PARAM)
1104 #define YY_NO_INPUT 1
1105 #line 1106 "libmemcached/csl/scanner.cc"
1109 #ifndef YY_NO_UNISTD_H
1110 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1111 * down here because we want the user's section 1 to have been scanned first.
1112 * The user has a chance to override it with an option.
1117 #ifndef YY_EXTRA_TYPE
1118 #define YY_EXTRA_TYPE void *
1121 /* Holds the entire state of the reentrant scanner. */
1125 /* User-defined. Not touched by flex. */
1126 YY_EXTRA_TYPE yyextra_r
;
1128 /* The rest are the same as the globals declared in the non-reentrant scanner. */
1129 FILE *yyin_r
, *yyout_r
;
1130 size_t yy_buffer_stack_top
; /**< index of top of stack. */
1131 size_t yy_buffer_stack_max
; /**< capacity of stack. */
1132 YY_BUFFER_STATE
* yy_buffer_stack
; /**< Stack as an array. */
1139 int yy_did_buffer_switch_on_eof
;
1140 int yy_start_stack_ptr
;
1141 int yy_start_stack_depth
;
1142 int *yy_start_stack
;
1143 yy_state_type yy_last_accepting_state
;
1144 char* yy_last_accepting_cpos
;
1147 int yy_flex_debug_r
;
1155 }; /* end struct yyguts_t */
1157 static int yy_init_globals (yyscan_t yyscanner
);
1159 /* This must go here because YYSTYPE and YYLTYPE are included
1160 * from bison output in section 1.*/
1161 # define yylval yyg->yylval_r
1163 int config_lex_init (yyscan_t
* scanner
);
1165 int config_lex_init_extra (YY_EXTRA_TYPE user_defined
,yyscan_t
* scanner
);
1167 /* Accessor methods to globals.
1168 These are made visible to non-reentrant scanners for convenience. */
1170 int config_lex_destroy (yyscan_t yyscanner
);
1172 int config_get_debug (yyscan_t yyscanner
);
1174 void config_set_debug (int debug_flag
,yyscan_t yyscanner
);
1176 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
);
1178 void config_set_extra (YY_EXTRA_TYPE user_defined
,yyscan_t yyscanner
);
1180 FILE *config_get_in (yyscan_t yyscanner
);
1182 void config_set_in (FILE * in_str
,yyscan_t yyscanner
);
1184 FILE *config_get_out (yyscan_t yyscanner
);
1186 void config_set_out (FILE * out_str
,yyscan_t yyscanner
);
1188 int config_get_leng (yyscan_t yyscanner
);
1190 char *config_get_text (yyscan_t yyscanner
);
1192 int config_get_lineno (yyscan_t yyscanner
);
1194 void config_set_lineno (int line_number
,yyscan_t yyscanner
);
1196 int config_get_column (yyscan_t yyscanner
);
1198 void config_set_column (int column_no
,yyscan_t yyscanner
);
1200 YYSTYPE
* config_get_lval (yyscan_t yyscanner
);
1202 void config_set_lval (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1204 /* Macros after this point can all be overridden by user definitions in
1208 #ifndef YY_SKIP_YYWRAP
1210 extern "C" int config_wrap (yyscan_t yyscanner
);
1212 extern int config_wrap (yyscan_t yyscanner
);
1217 static void yy_flex_strncpy (char *,yyconst
char *,int ,yyscan_t yyscanner
);
1220 #ifdef YY_NEED_STRLEN
1221 static int yy_flex_strlen (yyconst
char * ,yyscan_t yyscanner
);
1227 static int yyinput (yyscan_t yyscanner
);
1229 static int input (yyscan_t yyscanner
);
1234 /* Amount of stuff to slurp up with each read. */
1235 #ifndef YY_READ_BUF_SIZE
1236 #define YY_READ_BUF_SIZE 8192
1239 /* Copy whatever the last rule matched to the standard output. */
1241 /* This used to be an fputs(), but since the string might contain NUL's,
1242 * we now use fwrite().
1244 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1247 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1248 * is returned in "result".
1251 #define YY_INPUT(buf,result,max_size) \
1252 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1256 for ( n = 0; n < max_size && \
1257 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1258 buf[n] = (char) c; \
1260 buf[n++] = (char) c; \
1261 if ( c == EOF && ferror( yyin ) ) \
1262 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1268 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1270 if( errno != EINTR) \
1272 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1283 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1284 * we don't want an extra ';' after the "return" because that will cause
1285 * some compilers to complain about unreachable statements.
1288 #define yyterminate() return YY_NULL
1291 /* Number of entries by which start-condition stack grows. */
1292 #ifndef YY_START_STACK_INCR
1293 #define YY_START_STACK_INCR 25
1296 /* Report a fatal error. */
1297 #ifndef YY_FATAL_ERROR
1298 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1301 /* end tables serialization structures and prototypes */
1303 /* Default declaration of generated scanner - a define so the user can
1304 * easily add parameters.
1307 #define YY_DECL_IS_OURS 1
1309 extern int config_lex \
1310 (YYSTYPE
* yylval_param
,yyscan_t yyscanner
);
1312 #define YY_DECL int config_lex \
1313 (YYSTYPE * yylval_param , yyscan_t yyscanner)
1314 #endif /* !YY_DECL */
1316 /* Code executed at the beginning of each rule, after yytext and yyleng
1319 #ifndef YY_USER_ACTION
1320 #define YY_USER_ACTION
1323 /* Code executed at the end of each rule. */
1325 #define YY_BREAK break;
1328 #define YY_RULE_SETUP \
1330 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1331 (yytext[yyleng - 1] == '\n'); \
1334 /** The main scanner function which does all the work.
1338 register yy_state_type yy_current_state
;
1339 register char *yy_cp
, *yy_bp
;
1340 register int yy_act
;
1341 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
1343 #line 112 "libmemcached/csl/scanner.l"
1347 #line 1348 "libmemcached/csl/scanner.cc"
1349 yylval
= yylval_param
;
1351 if ( !yyg
->yy_init
)
1359 if ( ! yyg
->yy_start
)
1360 yyg
->yy_start
= 1; /* first start state */
1368 if ( ! YY_CURRENT_BUFFER
) {
1369 config_ensure_buffer_stack (yyscanner
);
1370 YY_CURRENT_BUFFER_LVALUE
=
1371 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
1374 config__load_buffer_state(yyscanner
);
1377 while ( 1 ) /* loops until end-of-file is reached */
1379 yy_cp
= yyg
->yy_c_buf_p
;
1381 /* Support of yytext. */
1382 *yy_cp
= yyg
->yy_hold_char
;
1384 /* yy_bp points to the position in yy_ch_buf of the start of
1389 yy_current_state
= yyg
->yy_start
;
1390 yy_current_state
+= YY_AT_BOL();
1394 register YY_CHAR yy_c
= yy_ec
[YY_SC_TO_UI(*yy_cp
)];
1395 if ( yy_accept
[yy_current_state
] )
1397 yyg
->yy_last_accepting_state
= yy_current_state
;
1398 yyg
->yy_last_accepting_cpos
= yy_cp
;
1400 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
1402 yy_current_state
= (int) yy_def
[yy_current_state
];
1403 if ( yy_current_state
>= 534 )
1404 yy_c
= yy_meta
[(unsigned int) yy_c
];
1406 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
1409 while ( yy_current_state
!= 533 );
1410 yy_cp
= yyg
->yy_last_accepting_cpos
;
1411 yy_current_state
= yyg
->yy_last_accepting_state
;
1414 yy_act
= yy_accept
[yy_current_state
];
1416 YY_DO_BEFORE_ACTION
;
1418 do_action
: /* This label is used only to access EOF actions. */
1421 { /* beginning of action switch */
1422 case 0: /* must back up */
1423 /* undo the effects of YY_DO_BEFORE_ACTION */
1424 *yy_cp
= yyg
->yy_hold_char
;
1425 yy_cp
= yyg
->yy_last_accepting_cpos
;
1426 yy_current_state
= yyg
->yy_last_accepting_state
;
1427 goto yy_find_action
;
1431 #line 115 "libmemcached/csl/scanner.l"
1432 { return yytext
[0];}
1436 #line 117 "libmemcached/csl/scanner.l"
1437 { yylval
->number
= atoi(yytext
); return (NUMBER
); }
1441 #line 119 "libmemcached/csl/scanner.l"
1442 { yylval
->number
= atoi(yytext
+1); return PORT
; }
1446 #line 121 "libmemcached/csl/scanner.l"
1447 { yylval
->number
= atoi(yytext
+2); return WEIGHT_START
; }
1450 /* rule 5 can match eol */
1452 #line 123 "libmemcached/csl/scanner.l"
1453 ; /* skip whitespace */
1456 *yy_cp
= yyg
->yy_hold_char
; /* undo effects of setting up yytext */
1457 yyg
->yy_c_buf_p
= yy_cp
-= 1;
1458 YY_DO_BEFORE_ACTION
; /* set up yytext again */
1460 #line 126 "libmemcached/csl/scanner.l"
1467 #line 130 "libmemcached/csl/scanner.l"
1468 { yyextra
->begin
= yytext
; yyextra
->set_server(); return yyextra
->previous_token
= SERVER
; }
1472 #line 132 "libmemcached/csl/scanner.l"
1473 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SOCKET
; }
1477 #line 134 "libmemcached/csl/scanner.l"
1478 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= BINARY_PROTOCOL
; }
1482 #line 135 "libmemcached/csl/scanner.l"
1483 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= BUFFER_REQUESTS
; }
1487 #line 136 "libmemcached/csl/scanner.l"
1488 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= CONFIGURE_FILE
; }
1492 #line 137 "libmemcached/csl/scanner.l"
1493 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= CONNECT_TIMEOUT
; }
1497 #line 138 "libmemcached/csl/scanner.l"
1498 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= DISTRIBUTION
; }
1502 #line 139 "libmemcached/csl/scanner.l"
1503 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= HASH_WITH_NAMESPACE
; }
1507 #line 140 "libmemcached/csl/scanner.l"
1508 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= HASH
; }
1512 #line 141 "libmemcached/csl/scanner.l"
1513 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= IO_BYTES_WATERMARK
; }
1517 #line 142 "libmemcached/csl/scanner.l"
1518 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= IO_KEY_PREFETCH
; }
1522 #line 143 "libmemcached/csl/scanner.l"
1523 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= IO_MSG_WATERMARK
; }
1527 #line 144 "libmemcached/csl/scanner.l"
1528 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= NOREPLY
; }
1532 #line 145 "libmemcached/csl/scanner.l"
1533 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= NUMBER_OF_REPLICAS
; }
1537 #line 146 "libmemcached/csl/scanner.l"
1538 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= POLL_TIMEOUT
; }
1542 #line 147 "libmemcached/csl/scanner.l"
1543 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= RANDOMIZE_REPLICA_READ
; }
1547 #line 148 "libmemcached/csl/scanner.l"
1548 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= RCV_TIMEOUT
; }
1552 #line 149 "libmemcached/csl/scanner.l"
1553 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= REMOVE_FAILED_SERVERS
; }
1557 #line 150 "libmemcached/csl/scanner.l"
1558 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= RETRY_TIMEOUT
; }
1562 #line 151 "libmemcached/csl/scanner.l"
1563 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SND_TIMEOUT
; }
1567 #line 152 "libmemcached/csl/scanner.l"
1568 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SOCKET_RECV_SIZE
; }
1572 #line 153 "libmemcached/csl/scanner.l"
1573 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SOCKET_SEND_SIZE
; }
1577 #line 154 "libmemcached/csl/scanner.l"
1578 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SORT_HOSTS
; }
1582 #line 155 "libmemcached/csl/scanner.l"
1583 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SUPPORT_CAS
; }
1587 #line 156 "libmemcached/csl/scanner.l"
1588 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= _TCP_KEEPALIVE
; }
1592 #line 157 "libmemcached/csl/scanner.l"
1593 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= _TCP_KEEPIDLE
; }
1597 #line 158 "libmemcached/csl/scanner.l"
1598 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= _TCP_NODELAY
; }
1602 #line 159 "libmemcached/csl/scanner.l"
1603 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= USE_UDP
; }
1607 #line 160 "libmemcached/csl/scanner.l"
1608 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= USER_DATA
; }
1612 #line 161 "libmemcached/csl/scanner.l"
1613 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= VERIFY_KEY
; }
1617 #line 163 "libmemcached/csl/scanner.l"
1618 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= POOL_MIN
; }
1622 #line 164 "libmemcached/csl/scanner.l"
1623 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= POOL_MAX
; }
1627 #line 166 "libmemcached/csl/scanner.l"
1628 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= NAMESPACE
; }
1632 #line 168 "libmemcached/csl/scanner.l"
1633 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= FETCH_VERSION
; }
1637 #line 170 "libmemcached/csl/scanner.l"
1638 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= INCLUDE
; }
1642 #line 171 "libmemcached/csl/scanner.l"
1643 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= RESET
; }
1647 #line 172 "libmemcached/csl/scanner.l"
1648 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= PARSER_DEBUG
; }
1652 #line 173 "libmemcached/csl/scanner.l"
1653 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= SERVERS
; }
1657 #line 174 "libmemcached/csl/scanner.l"
1658 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= END
; }
1662 #line 175 "libmemcached/csl/scanner.l"
1663 { yyextra
->begin
= yytext
; return yyextra
->previous_token
= ERROR
; }
1667 #line 177 "libmemcached/csl/scanner.l"
1668 { return yyextra
->previous_token
= TRUE
; }
1672 #line 178 "libmemcached/csl/scanner.l"
1673 { return yyextra
->previous_token
= FALSE
; }
1677 #line 181 "libmemcached/csl/scanner.l"
1679 yyextra
->begin
= yytext
;
1680 return UNKNOWN_OPTION
;
1685 #line 186 "libmemcached/csl/scanner.l"
1686 { return CONSISTENT
; }
1690 #line 187 "libmemcached/csl/scanner.l"
1695 #line 188 "libmemcached/csl/scanner.l"
1700 #line 190 "libmemcached/csl/scanner.l"
1705 #line 191 "libmemcached/csl/scanner.l"
1710 #line 192 "libmemcached/csl/scanner.l"
1715 #line 193 "libmemcached/csl/scanner.l"
1716 { return FNV1A_64
; }
1720 #line 194 "libmemcached/csl/scanner.l"
1725 #line 195 "libmemcached/csl/scanner.l"
1726 { return FNV1A_32
; }
1730 #line 196 "libmemcached/csl/scanner.l"
1735 #line 197 "libmemcached/csl/scanner.l"
1740 #line 198 "libmemcached/csl/scanner.l"
1745 #line 200 "libmemcached/csl/scanner.l"
1747 yyextra
->hostname(yytext
, yyleng
, yylval
->server
);
1753 #line 205 "libmemcached/csl/scanner.l"
1755 if (yyextra
->is_server())
1757 yyextra
->hostname(yytext
, yyleng
, yylval
->server
);
1762 yyextra
->string_buffer(yytext
, yyleng
, yylval
->string
);
1768 /* rule 64 can match eol */
1770 #line 218 "libmemcached/csl/scanner.l"
1772 config_get_text(yyscanner
)[yyleng
-1]= 0;
1773 yyextra
->string_buffer(yytext
+1, yyleng
-2, yylval
->string
);
1774 return QUOTED_STRING
;
1779 #line 224 "libmemcached/csl/scanner.l"
1781 yyextra
->begin
= yytext
;
1787 #line 229 "libmemcached/csl/scanner.l"
1790 #line 1791 "libmemcached/csl/scanner.cc"
1791 case YY_STATE_EOF(INITIAL
):
1794 case YY_END_OF_BUFFER
:
1796 /* Amount of text matched not including the EOB char. */
1797 int yy_amount_of_matched_text
= (int) (yy_cp
- yyg
->yytext_ptr
) - 1;
1799 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1800 *yy_cp
= yyg
->yy_hold_char
;
1801 YY_RESTORE_YY_MORE_OFFSET
1803 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_NEW
)
1805 /* We're scanning a new file or input source. It's
1806 * possible that this happened because the user
1807 * just pointed yyin at a new source and called
1808 * config_lex(). If so, then we have to assure
1809 * consistency between YY_CURRENT_BUFFER and our
1810 * globals. Here is the right place to do so, because
1811 * this is the first action (other than possibly a
1812 * back-up) that will match for the new input source.
1814 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
1815 YY_CURRENT_BUFFER_LVALUE
->yy_input_file
= yyin
;
1816 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
= YY_BUFFER_NORMAL
;
1819 /* Note that here we test for yy_c_buf_p "<=" to the position
1820 * of the first EOB in the buffer, since yy_c_buf_p will
1821 * already have been incremented past the NUL character
1822 * (since all states make transitions on EOB to the
1823 * end-of-buffer state). Contrast this with the test
1826 if ( yyg
->yy_c_buf_p
<= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
1827 { /* This was really a NUL. */
1828 yy_state_type yy_next_state
;
1830 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
1832 yy_current_state
= yy_get_previous_state( yyscanner
);
1834 /* Okay, we're now positioned to make the NUL
1835 * transition. We couldn't have
1836 * yy_get_previous_state() go ahead and do it
1837 * for us because it doesn't know how to deal
1838 * with the possibility of jamming (and we don't
1839 * want to build jamming into it because then it
1840 * will run more slowly).
1843 yy_next_state
= yy_try_NUL_trans( yy_current_state
, yyscanner
);
1845 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
1847 if ( yy_next_state
)
1849 /* Consume the NUL. */
1850 yy_cp
= ++yyg
->yy_c_buf_p
;
1851 yy_current_state
= yy_next_state
;
1857 yy_cp
= yyg
->yy_last_accepting_cpos
;
1858 yy_current_state
= yyg
->yy_last_accepting_state
;
1859 goto yy_find_action
;
1863 else switch ( yy_get_next_buffer( yyscanner
) )
1865 case EOB_ACT_END_OF_FILE
:
1867 yyg
->yy_did_buffer_switch_on_eof
= 0;
1869 if ( config_wrap(yyscanner
) )
1871 /* Note: because we've taken care in
1872 * yy_get_next_buffer() to have set up
1873 * yytext, we can now set up
1874 * yy_c_buf_p so that if some total
1875 * hoser (like flex itself) wants to
1876 * call the scanner after we return the
1877 * YY_NULL, it'll still work - another
1878 * YY_NULL will get returned.
1880 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
1882 yy_act
= YY_STATE_EOF(YY_START
);
1888 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
1894 case EOB_ACT_CONTINUE_SCAN
:
1896 yyg
->yytext_ptr
+ yy_amount_of_matched_text
;
1898 yy_current_state
= yy_get_previous_state( yyscanner
);
1900 yy_cp
= yyg
->yy_c_buf_p
;
1901 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
1904 case EOB_ACT_LAST_MATCH
:
1906 &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
];
1908 yy_current_state
= yy_get_previous_state( yyscanner
);
1910 yy_cp
= yyg
->yy_c_buf_p
;
1911 yy_bp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
;
1912 goto yy_find_action
;
1919 "fatal flex scanner internal error--no action found" );
1920 } /* end of action switch */
1921 } /* end of scanning one token */
1922 } /* end of config_lex */
1924 /* yy_get_next_buffer - try to read in a new buffer
1926 * Returns a code representing an action:
1927 * EOB_ACT_LAST_MATCH -
1928 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1929 * EOB_ACT_END_OF_FILE - end of file
1931 static int yy_get_next_buffer (yyscan_t yyscanner
)
1933 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
1934 register char *dest
= YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
;
1935 register char *source
= yyg
->yytext_ptr
;
1936 register int number_to_move
, i
;
1939 if ( yyg
->yy_c_buf_p
> &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] )
1941 "fatal flex scanner internal error--end of buffer missed" );
1943 if ( YY_CURRENT_BUFFER_LVALUE
->yy_fill_buffer
== 0 )
1944 { /* Don't try to fill the buffer, so this is an EOF. */
1945 if ( yyg
->yy_c_buf_p
- yyg
->yytext_ptr
- YY_MORE_ADJ
== 1 )
1947 /* We matched a single character, the EOB, so
1948 * treat this as a final EOF.
1950 return EOB_ACT_END_OF_FILE
;
1955 /* We matched some text prior to the EOB, first
1958 return EOB_ACT_LAST_MATCH
;
1962 /* Try to read more data. */
1964 /* First move last chars to start of buffer. */
1965 number_to_move
= (int) (yyg
->yy_c_buf_p
- yyg
->yytext_ptr
) - 1;
1967 for ( i
= 0; i
< number_to_move
; ++i
)
1968 *(dest
++) = *(source
++);
1970 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_EOF_PENDING
)
1971 /* don't do the read, it's not guaranteed to return an EOF,
1974 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
= 0;
1979 YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
- number_to_move
- 1;
1981 while ( num_to_read
<= 0 )
1982 { /* Not enough room in the buffer - grow it. */
1984 /* just a shorter name for the current buffer */
1985 YY_BUFFER_STATE b
= YY_CURRENT_BUFFER
;
1987 int yy_c_buf_p_offset
=
1988 (int) (yyg
->yy_c_buf_p
- b
->yy_ch_buf
);
1990 if ( b
->yy_is_our_buffer
)
1992 int new_size
= b
->yy_buf_size
* 2;
1994 if ( new_size
<= 0 )
1995 b
->yy_buf_size
+= b
->yy_buf_size
/ 8;
1997 b
->yy_buf_size
*= 2;
1999 b
->yy_ch_buf
= (char *)
2000 /* Include room in for 2 EOB chars. */
2001 config_realloc((void *) b
->yy_ch_buf
,b
->yy_buf_size
+ 2 ,yyscanner
);
2004 /* Can't grow it, we don't own it. */
2007 if ( ! b
->yy_ch_buf
)
2009 "fatal error - scanner input buffer overflow" );
2011 yyg
->yy_c_buf_p
= &b
->yy_ch_buf
[yy_c_buf_p_offset
];
2013 num_to_read
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
-
2018 if ( num_to_read
> YY_READ_BUF_SIZE
)
2019 num_to_read
= YY_READ_BUF_SIZE
;
2021 /* Read in more data. */
2022 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[number_to_move
]),
2023 yyg
->yy_n_chars
, (size_t) num_to_read
);
2025 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2028 if ( yyg
->yy_n_chars
== 0 )
2030 if ( number_to_move
== YY_MORE_ADJ
)
2032 ret_val
= EOB_ACT_END_OF_FILE
;
2033 config_restart(yyin
,yyscanner
);
2038 ret_val
= EOB_ACT_LAST_MATCH
;
2039 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
=
2040 YY_BUFFER_EOF_PENDING
;
2045 ret_val
= EOB_ACT_CONTINUE_SCAN
;
2047 if ((yy_size_t
) (yyg
->yy_n_chars
+ number_to_move
) > YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
) {
2048 /* Extend the array by 50%, plus the number we really need. */
2049 yy_size_t new_size
= yyg
->yy_n_chars
+ number_to_move
+ (yyg
->yy_n_chars
>> 1);
2050 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
= (char *) config_realloc((void *) YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
,new_size
,yyscanner
);
2051 if ( ! YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
)
2052 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2055 yyg
->yy_n_chars
+= number_to_move
;
2056 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] = YY_END_OF_BUFFER_CHAR
;
2057 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
+ 1] = YY_END_OF_BUFFER_CHAR
;
2059 yyg
->yytext_ptr
= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[0];
2064 /* yy_get_previous_state - get the state just before the EOB char was reached */
2066 static yy_state_type
yy_get_previous_state (yyscan_t yyscanner
)
2068 register yy_state_type yy_current_state
;
2069 register char *yy_cp
;
2070 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2072 yy_current_state
= yyg
->yy_start
;
2073 yy_current_state
+= YY_AT_BOL();
2075 for ( yy_cp
= yyg
->yytext_ptr
+ YY_MORE_ADJ
; yy_cp
< yyg
->yy_c_buf_p
; ++yy_cp
)
2077 register YY_CHAR yy_c
= (*yy_cp
? yy_ec
[YY_SC_TO_UI(*yy_cp
)] : 1);
2078 if ( yy_accept
[yy_current_state
] )
2080 yyg
->yy_last_accepting_state
= yy_current_state
;
2081 yyg
->yy_last_accepting_cpos
= yy_cp
;
2083 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2085 yy_current_state
= (int) yy_def
[yy_current_state
];
2086 if ( yy_current_state
>= 534 )
2087 yy_c
= yy_meta
[(unsigned int) yy_c
];
2089 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2092 return yy_current_state
;
2095 /* yy_try_NUL_trans - try to make a transition on the NUL character
2098 * next_state = yy_try_NUL_trans( current_state );
2100 static yy_state_type
yy_try_NUL_trans (yy_state_type yy_current_state
, yyscan_t yyscanner
)
2102 register int yy_is_jam
;
2103 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
; /* This var may be unused depending upon options. */
2104 register char *yy_cp
= yyg
->yy_c_buf_p
;
2106 register YY_CHAR yy_c
= 1;
2107 if ( yy_accept
[yy_current_state
] )
2109 yyg
->yy_last_accepting_state
= yy_current_state
;
2110 yyg
->yy_last_accepting_cpos
= yy_cp
;
2112 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2114 yy_current_state
= (int) yy_def
[yy_current_state
];
2115 if ( yy_current_state
>= 534 )
2116 yy_c
= yy_meta
[(unsigned int) yy_c
];
2118 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + (unsigned int) yy_c
];
2119 yy_is_jam
= (yy_current_state
== 533);
2121 return yy_is_jam
? 0 : yy_current_state
;
2126 static int yyinput (yyscan_t yyscanner
)
2128 static int input (yyscan_t yyscanner
)
2133 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2135 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2137 if ( *yyg
->yy_c_buf_p
== YY_END_OF_BUFFER_CHAR
)
2139 /* yy_c_buf_p now points to the character we want to return.
2140 * If this occurs *before* the EOB characters, then it's a
2141 * valid NUL; if not, then we've hit the end of the buffer.
2143 if ( yyg
->yy_c_buf_p
< &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[yyg
->yy_n_chars
] )
2144 /* This was really a NUL. */
2145 *yyg
->yy_c_buf_p
= '\0';
2148 { /* need more input */
2149 int offset
= yyg
->yy_c_buf_p
- yyg
->yytext_ptr
;
2152 switch ( yy_get_next_buffer( yyscanner
) )
2154 case EOB_ACT_LAST_MATCH
:
2155 /* This happens because yy_g_n_b()
2156 * sees that we've accumulated a
2157 * token and flags that we need to
2158 * try matching the token before
2159 * proceeding. But for input(),
2160 * there's no matching to consider.
2161 * So convert the EOB_ACT_LAST_MATCH
2162 * to EOB_ACT_END_OF_FILE.
2165 /* Reset buffer status. */
2166 config_restart(yyin
,yyscanner
);
2170 case EOB_ACT_END_OF_FILE
:
2172 if ( config_wrap(yyscanner
) )
2175 if ( ! yyg
->yy_did_buffer_switch_on_eof
)
2178 return yyinput(yyscanner
);
2180 return input(yyscanner
);
2184 case EOB_ACT_CONTINUE_SCAN
:
2185 yyg
->yy_c_buf_p
= yyg
->yytext_ptr
+ offset
;
2191 c
= *(unsigned char *) yyg
->yy_c_buf_p
; /* cast for 8-bit char's */
2192 *yyg
->yy_c_buf_p
= '\0'; /* preserve yytext */
2193 yyg
->yy_hold_char
= *++yyg
->yy_c_buf_p
;
2195 YY_CURRENT_BUFFER_LVALUE
->yy_at_bol
= (c
== '\n');
2199 #endif /* ifndef YY_NO_INPUT */
2201 /** Immediately switch to a different input stream.
2202 * @param input_file A readable stream.
2203 * @param yyscanner The scanner object.
2204 * @note This function does not reset the start condition to @c INITIAL .
2206 void config_restart (FILE * input_file
, yyscan_t yyscanner
)
2208 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2210 if ( ! YY_CURRENT_BUFFER
){
2211 config_ensure_buffer_stack (yyscanner
);
2212 YY_CURRENT_BUFFER_LVALUE
=
2213 config__create_buffer(yyin
,YY_BUF_SIZE
,yyscanner
);
2216 config__init_buffer(YY_CURRENT_BUFFER
,input_file
,yyscanner
);
2217 config__load_buffer_state(yyscanner
);
2220 /** Switch to a different input buffer.
2221 * @param new_buffer The new input buffer.
2222 * @param yyscanner The scanner object.
2224 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
2226 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2228 /* TODO. We should be able to replace this entire function body
2230 * config_pop_buffer_state();
2231 * config_push_buffer_state(new_buffer);
2233 config_ensure_buffer_stack (yyscanner
);
2234 if ( YY_CURRENT_BUFFER
== new_buffer
)
2237 if ( YY_CURRENT_BUFFER
)
2239 /* Flush out information for old buffer. */
2240 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2241 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
2242 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2245 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
2246 config__load_buffer_state(yyscanner
);
2248 /* We don't actually know whether we did this switch during
2249 * EOF (config_wrap()) processing, but the only time this flag
2250 * is looked at is after config_wrap() is called, so it's safe
2251 * to go ahead and always set it.
2253 yyg
->yy_did_buffer_switch_on_eof
= 1;
2256 static void config__load_buffer_state (yyscan_t yyscanner
)
2258 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2259 yyg
->yy_n_chars
= YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
2260 yyg
->yytext_ptr
= yyg
->yy_c_buf_p
= YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
;
2261 yyin
= YY_CURRENT_BUFFER_LVALUE
->yy_input_file
;
2262 yyg
->yy_hold_char
= *yyg
->yy_c_buf_p
;
2265 /** Allocate and initialize an input buffer state.
2266 * @param file A readable stream.
2267 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2268 * @param yyscanner The scanner object.
2269 * @return the allocated buffer state.
2271 YY_BUFFER_STATE
config__create_buffer (FILE * file
, int size
, yyscan_t yyscanner
)
2275 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
2277 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2279 b
->yy_buf_size
= size
;
2281 /* yy_ch_buf has to be 2 characters longer than the size given because
2282 * we need to put in 2 end-of-buffer characters.
2284 b
->yy_ch_buf
= (char *) config_alloc(b
->yy_buf_size
+ 2 ,yyscanner
);
2285 if ( ! b
->yy_ch_buf
)
2286 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2288 b
->yy_is_our_buffer
= 1;
2290 config__init_buffer(b
,file
,yyscanner
);
2295 /** Destroy the buffer.
2296 * @param b a buffer created with config__create_buffer()
2297 * @param yyscanner The scanner object.
2299 void config__delete_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2301 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2306 if ( b
== YY_CURRENT_BUFFER
) /* Not sure if we should pop here. */
2307 YY_CURRENT_BUFFER_LVALUE
= (YY_BUFFER_STATE
) 0;
2309 if ( b
->yy_is_our_buffer
)
2310 config_free((void *) b
->yy_ch_buf
,yyscanner
);
2312 config_free((void *) b
,yyscanner
);
2315 /* Initializes or reinitializes a buffer.
2316 * This function is sometimes called more than once on the same buffer,
2317 * such as during a config_restart() or at EOF.
2319 static void config__init_buffer (YY_BUFFER_STATE b
, FILE * file
, yyscan_t yyscanner
)
2323 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2325 config__flush_buffer(b
,yyscanner
);
2327 b
->yy_input_file
= file
;
2328 b
->yy_fill_buffer
= 1;
2330 /* If b is the current buffer, then config__init_buffer was _probably_
2331 * called from config_restart() or through yy_get_next_buffer.
2332 * In that case, we don't want to reset the lineno or column.
2334 if (b
!= YY_CURRENT_BUFFER
){
2335 b
->yy_bs_lineno
= 1;
2336 b
->yy_bs_column
= 0;
2339 b
->yy_is_interactive
= 0;
2344 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2345 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2346 * @param yyscanner The scanner object.
2348 void config__flush_buffer (YY_BUFFER_STATE b
, yyscan_t yyscanner
)
2350 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2356 /* We always need two end-of-buffer characters. The first causes
2357 * a transition to the end-of-buffer state. The second causes
2358 * a jam in that state.
2360 b
->yy_ch_buf
[0] = YY_END_OF_BUFFER_CHAR
;
2361 b
->yy_ch_buf
[1] = YY_END_OF_BUFFER_CHAR
;
2363 b
->yy_buf_pos
= &b
->yy_ch_buf
[0];
2366 b
->yy_buffer_status
= YY_BUFFER_NEW
;
2368 if ( b
== YY_CURRENT_BUFFER
)
2369 config__load_buffer_state(yyscanner
);
2372 /** Pushes the new state onto the stack. The new state becomes
2373 * the current state. This function will allocate the stack
2375 * @param new_buffer The new state.
2376 * @param yyscanner The scanner object.
2378 void config_push_buffer_state (YY_BUFFER_STATE new_buffer
, yyscan_t yyscanner
)
2380 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2381 if (new_buffer
== NULL
)
2384 config_ensure_buffer_stack(yyscanner
);
2386 /* This block is copied from config__switch_to_buffer. */
2387 if ( YY_CURRENT_BUFFER
)
2389 /* Flush out information for old buffer. */
2390 *yyg
->yy_c_buf_p
= yyg
->yy_hold_char
;
2391 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= yyg
->yy_c_buf_p
;
2392 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= yyg
->yy_n_chars
;
2395 /* Only push if top exists. Otherwise, replace top. */
2396 if (YY_CURRENT_BUFFER
)
2397 yyg
->yy_buffer_stack_top
++;
2398 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
2400 /* copied from config__switch_to_buffer. */
2401 config__load_buffer_state(yyscanner
);
2402 yyg
->yy_did_buffer_switch_on_eof
= 1;
2405 /** Removes and deletes the top of the stack, if present.
2406 * The next element becomes the new top.
2407 * @param yyscanner The scanner object.
2409 void config_pop_buffer_state (yyscan_t yyscanner
)
2411 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2412 if (!YY_CURRENT_BUFFER
)
2415 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
2416 YY_CURRENT_BUFFER_LVALUE
= NULL
;
2417 if (yyg
->yy_buffer_stack_top
> 0)
2418 --yyg
->yy_buffer_stack_top
;
2420 if (YY_CURRENT_BUFFER
) {
2421 config__load_buffer_state(yyscanner
);
2422 yyg
->yy_did_buffer_switch_on_eof
= 1;
2426 /* Allocates the stack if it does not exist.
2427 * Guarantees space for at least one push.
2429 static void config_ensure_buffer_stack (yyscan_t yyscanner
)
2432 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2434 if (!yyg
->yy_buffer_stack
) {
2436 /* First allocation is just for 2 elements, since we don't know if this
2437 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2438 * immediate realloc on the next call.
2441 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_alloc
2442 (num_to_alloc
* sizeof(struct yy_buffer_state
*)
2444 if ( ! yyg
->yy_buffer_stack
)
2445 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
2447 memset(yyg
->yy_buffer_stack
, 0, num_to_alloc
* sizeof(struct yy_buffer_state
*));
2449 yyg
->yy_buffer_stack_max
= num_to_alloc
;
2450 yyg
->yy_buffer_stack_top
= 0;
2454 if (yyg
->yy_buffer_stack_top
>= (yyg
->yy_buffer_stack_max
) - 1){
2456 /* Increase the buffer to prepare for a possible push. */
2457 int grow_size
= 8 /* arbitrary grow size */;
2459 num_to_alloc
= yyg
->yy_buffer_stack_max
+ grow_size
;
2460 yyg
->yy_buffer_stack
= (struct yy_buffer_state
**)config_realloc
2461 (yyg
->yy_buffer_stack
,
2462 num_to_alloc
* sizeof(struct yy_buffer_state
*)
2464 if ( ! yyg
->yy_buffer_stack
)
2465 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
2467 /* zero only the new slots.*/
2468 memset(yyg
->yy_buffer_stack
+ yyg
->yy_buffer_stack_max
, 0, grow_size
* sizeof(struct yy_buffer_state
*));
2469 yyg
->yy_buffer_stack_max
= num_to_alloc
;
2473 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2474 * @param base the character buffer
2475 * @param size the size in bytes of the character buffer
2476 * @param yyscanner The scanner object.
2477 * @return the newly allocated buffer state object.
2479 YY_BUFFER_STATE
config__scan_buffer (char * base
, yy_size_t size
, yyscan_t yyscanner
)
2484 base
[size
-2] != YY_END_OF_BUFFER_CHAR
||
2485 base
[size
-1] != YY_END_OF_BUFFER_CHAR
)
2486 /* They forgot to leave room for the EOB's. */
2489 b
= (YY_BUFFER_STATE
) config_alloc(sizeof( struct yy_buffer_state
) ,yyscanner
);
2491 YY_FATAL_ERROR( "out of dynamic memory in config__scan_buffer()" );
2493 b
->yy_buf_size
= size
- 2; /* "- 2" to take care of EOB's */
2494 b
->yy_buf_pos
= b
->yy_ch_buf
= base
;
2495 b
->yy_is_our_buffer
= 0;
2496 b
->yy_input_file
= 0;
2497 b
->yy_n_chars
= b
->yy_buf_size
;
2498 b
->yy_is_interactive
= 0;
2500 b
->yy_fill_buffer
= 0;
2501 b
->yy_buffer_status
= YY_BUFFER_NEW
;
2503 config__switch_to_buffer(b
,yyscanner
);
2508 /** Setup the input buffer state to scan a string. The next call to config_lex() will
2509 * scan from a @e copy of @a str.
2510 * @param yystr a NUL-terminated string to scan
2511 * @param yyscanner The scanner object.
2512 * @return the newly allocated buffer state object.
2513 * @note If you want to scan bytes that may contain NUL values, then use
2514 * config__scan_bytes() instead.
2516 YY_BUFFER_STATE
config__scan_string (yyconst
char * yystr
, yyscan_t yyscanner
)
2519 return config__scan_bytes(yystr
,strlen(yystr
) ,yyscanner
);
2522 /** Setup the input buffer state to scan the given bytes. The next call to config_lex() will
2523 * scan from a @e copy of @a bytes.
2524 * @param bytes the byte buffer to scan
2525 * @param len the number of bytes in the buffer pointed to by @a bytes.
2526 * @param yyscanner The scanner object.
2527 * @return the newly allocated buffer state object.
2529 YY_BUFFER_STATE
config__scan_bytes (yyconst
char * yybytes
, int _yybytes_len
, yyscan_t yyscanner
)
2536 /* Get memory for full buffer, including space for trailing EOB's. */
2537 n
= _yybytes_len
+ 2;
2538 buf
= (char *) config_alloc(n
,yyscanner
);
2540 YY_FATAL_ERROR( "out of dynamic memory in config__scan_bytes()" );
2542 for ( i
= 0; i
< _yybytes_len
; ++i
)
2543 buf
[i
] = yybytes
[i
];
2545 buf
[_yybytes_len
] = buf
[_yybytes_len
+1] = YY_END_OF_BUFFER_CHAR
;
2547 b
= config__scan_buffer(buf
,n
,yyscanner
);
2549 YY_FATAL_ERROR( "bad buffer in config__scan_bytes()" );
2551 /* It's okay to grow etc. this buffer, and we should throw it
2552 * away when we're done.
2554 b
->yy_is_our_buffer
= 1;
2559 #ifndef YY_EXIT_FAILURE
2560 #define YY_EXIT_FAILURE 2
2563 static void yy_fatal_error (yyconst
char* msg
, yyscan_t yyscanner
)
2565 (void) fprintf( stderr
, "%s\n", msg
);
2566 exit( YY_EXIT_FAILURE
);
2569 /* Redefine yyless() so it works in section 3 code. */
2575 /* Undo effects of setting up yytext. */ \
2576 int yyless_macro_arg = (n); \
2577 YY_LESS_LINENO(yyless_macro_arg);\
2578 yytext[yyleng] = yyg->yy_hold_char; \
2579 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2580 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2581 *yyg->yy_c_buf_p = '\0'; \
2582 yyleng = yyless_macro_arg; \
2586 /* Accessor methods (get/set functions) to struct members. */
2588 /** Get the user-defined data for this scanner.
2589 * @param yyscanner The scanner object.
2591 YY_EXTRA_TYPE
config_get_extra (yyscan_t yyscanner
)
2593 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2597 /** Get the current line number.
2598 * @param yyscanner The scanner object.
2600 int config_get_lineno (yyscan_t yyscanner
)
2602 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2604 if (! YY_CURRENT_BUFFER
)
2610 /** Get the current column number.
2611 * @param yyscanner The scanner object.
2613 int config_get_column (yyscan_t yyscanner
)
2615 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2617 if (! YY_CURRENT_BUFFER
)
2623 /** Get the input stream.
2624 * @param yyscanner The scanner object.
2626 FILE *config_get_in (yyscan_t yyscanner
)
2628 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2632 /** Get the output stream.
2633 * @param yyscanner The scanner object.
2635 FILE *config_get_out (yyscan_t yyscanner
)
2637 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2641 /** Get the length of the current token.
2642 * @param yyscanner The scanner object.
2644 int config_get_leng (yyscan_t yyscanner
)
2646 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2650 /** Get the current token.
2651 * @param yyscanner The scanner object.
2654 char *config_get_text (yyscan_t yyscanner
)
2656 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2660 /** Set the user-defined data. This data is never touched by the scanner.
2661 * @param user_defined The data to be associated with this scanner.
2662 * @param yyscanner The scanner object.
2664 void config_set_extra (YY_EXTRA_TYPE user_defined
, yyscan_t yyscanner
)
2666 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2667 yyextra
= user_defined
;
2670 /** Set the current line number.
2671 * @param line_number
2672 * @param yyscanner The scanner object.
2674 void config_set_lineno (int line_number
, yyscan_t yyscanner
)
2676 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2678 /* lineno is only valid if an input buffer exists. */
2679 if (! YY_CURRENT_BUFFER
)
2680 yy_fatal_error( "config_set_lineno called with no buffer" , yyscanner
);
2682 yylineno
= line_number
;
2685 /** Set the current column.
2686 * @param line_number
2687 * @param yyscanner The scanner object.
2689 void config_set_column (int column_no
, yyscan_t yyscanner
)
2691 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2693 /* column is only valid if an input buffer exists. */
2694 if (! YY_CURRENT_BUFFER
)
2695 yy_fatal_error( "config_set_column called with no buffer" , yyscanner
);
2697 yycolumn
= column_no
;
2700 /** Set the input stream. This does not discard the current
2702 * @param in_str A readable stream.
2703 * @param yyscanner The scanner object.
2704 * @see config__switch_to_buffer
2706 void config_set_in (FILE * in_str
, yyscan_t yyscanner
)
2708 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2712 void config_set_out (FILE * out_str
, yyscan_t yyscanner
)
2714 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2718 int config_get_debug (yyscan_t yyscanner
)
2720 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2721 return yy_flex_debug
;
2724 void config_set_debug (int bdebug
, yyscan_t yyscanner
)
2726 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2727 yy_flex_debug
= bdebug
;
2730 /* Accessor methods for yylval and yylloc */
2732 YYSTYPE
* config_get_lval (yyscan_t yyscanner
)
2734 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2738 void config_set_lval (YYSTYPE
* yylval_param
, yyscan_t yyscanner
)
2740 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2741 yylval
= yylval_param
;
2744 /* User-visible API */
2746 /* config_lex_init is special because it creates the scanner itself, so it is
2747 * the ONLY reentrant function that doesn't take the scanner as the last argument.
2748 * That's why we explicitly handle the declaration, instead of using our macros.
2751 int config_lex_init(yyscan_t
* ptr_yy_globals
)
2754 if (ptr_yy_globals
== NULL
){
2759 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), NULL
);
2761 if (*ptr_yy_globals
== NULL
){
2766 /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
2767 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
2769 return yy_init_globals ( *ptr_yy_globals
);
2772 /* config_lex_init_extra has the same functionality as config_lex_init, but follows the
2773 * convention of taking the scanner as the last argument. Note however, that
2774 * this is a *pointer* to a scanner, as it will be allocated by this call (and
2775 * is the reason, too, why this function also must handle its own declaration).
2776 * The user defined value in the first argument will be available to config_alloc in
2777 * the yyextra field.
2780 int config_lex_init_extra(YY_EXTRA_TYPE yy_user_defined
,yyscan_t
* ptr_yy_globals
)
2783 struct yyguts_t dummy_yyguts
;
2785 config_set_extra (yy_user_defined
, &dummy_yyguts
);
2787 if (ptr_yy_globals
== NULL
){
2792 *ptr_yy_globals
= (yyscan_t
) config_alloc ( sizeof( struct yyguts_t
), &dummy_yyguts
);
2794 if (*ptr_yy_globals
== NULL
){
2799 /* By setting to 0xAA, we expose bugs in
2800 yy_init_globals. Leave at 0x00 for releases. */
2801 memset(*ptr_yy_globals
,0x00,sizeof(struct yyguts_t
));
2803 config_set_extra (yy_user_defined
, *ptr_yy_globals
);
2805 return yy_init_globals ( *ptr_yy_globals
);
2808 static int yy_init_globals (yyscan_t yyscanner
)
2810 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2811 /* Initialization is the same as for the non-reentrant scanner.
2812 * This function is called from config_lex_destroy(), so don't allocate here.
2815 yyg
->yy_buffer_stack
= 0;
2816 yyg
->yy_buffer_stack_top
= 0;
2817 yyg
->yy_buffer_stack_max
= 0;
2818 yyg
->yy_c_buf_p
= (char *) 0;
2822 yyg
->yy_start_stack_ptr
= 0;
2823 yyg
->yy_start_stack_depth
= 0;
2824 yyg
->yy_start_stack
= NULL
;
2826 /* Defined in main.c */
2835 /* For future reference: Set errno on error, since we are called by
2841 /* config_lex_destroy is for both reentrant and non-reentrant scanners. */
2842 int config_lex_destroy (yyscan_t yyscanner
)
2844 struct yyguts_t
* yyg
= (struct yyguts_t
*)yyscanner
;
2846 /* Pop the buffer stack, destroying each element. */
2847 while(YY_CURRENT_BUFFER
){
2848 config__delete_buffer(YY_CURRENT_BUFFER
,yyscanner
);
2849 YY_CURRENT_BUFFER_LVALUE
= NULL
;
2850 config_pop_buffer_state(yyscanner
);
2853 /* Destroy the stack itself. */
2854 config_free(yyg
->yy_buffer_stack
,yyscanner
);
2855 yyg
->yy_buffer_stack
= NULL
;
2857 /* Destroy the start condition stack. */
2858 config_free(yyg
->yy_start_stack
,yyscanner
);
2859 yyg
->yy_start_stack
= NULL
;
2861 /* Reset the globals. This is important in a non-reentrant scanner so the next time
2862 * config_lex() is called, initialization will occur. */
2863 yy_init_globals( yyscanner
);
2865 /* Destroy the main struct (reentrant only). */
2866 config_free ( yyscanner
, yyscanner
);
2872 * Internal utility routines.
2876 static void yy_flex_strncpy (char* s1
, yyconst
char * s2
, int n
, yyscan_t yyscanner
)
2879 for ( i
= 0; i
< n
; ++i
)
2884 #ifdef YY_NEED_STRLEN
2885 static int yy_flex_strlen (yyconst
char * s
, yyscan_t yyscanner
)
2888 for ( n
= 0; s
[n
]; ++n
)
2895 void *config_alloc (yy_size_t size
, yyscan_t yyscanner
)
2897 return (void *) malloc( size
);
2900 void *config_realloc (void * ptr
, yy_size_t size
, yyscan_t yyscanner
)
2902 /* The cast to (char *) in the following accommodates both
2903 * implementations that use char* generic pointers, and those
2904 * that use void* generic pointers. It works with the latter
2905 * because both ANSI C and C++ allow castless assignment from
2906 * any pointer type to void*, and deal with argument conversions
2907 * as though doing an assignment.
2909 return (void *) realloc( (char *) ptr
, size
);
2912 void config_free (void * ptr
, yyscan_t yyscanner
)
2914 free( (char *) ptr
); /* see config_realloc() for (char *) cast */
2917 #define YYTABLES_NAME "yytables"
2919 #line 229 "libmemcached/csl/scanner.l"
2923 void Context::init_scanner()
2925 config_lex_init(&scanner
);
2926 config_set_extra(this,scanner
);
2929 void Context::destroy_scanner()
2931 (void)yy_fatal_error
; // Removes warning about unused yy_fatal_error()
2932 config_lex_destroy(scanner
);