Merge in fixes for deprecated bits in behavior.
[m6w6/libmemcached] / libmemcached / options / scanner.cc
1 #line 2 "libmemcached/options/scanner.cc"
2 #line 22 "libmemcached/options/scanner.l"
3
4 #pragma GCC diagnostic ignored "-Wold-style-cast"
5 #pragma GCC diagnostic ignored "-Wunused-parameter"
6
7 #include <libmemcached/options/context.h>
8 #include <libmemcached/options/parser.h>
9 #include <libmemcached/options/string.h>
10 #include <libmemcached/options/symbol.h>
11
12 #define YY_EXTRA_TYPE Context*
13
14
15
16
17 #line 18 "libmemcached/options/scanner.cc"
18
19 #define YY_INT_ALIGNED short int
20
21 /* A lexical scanner generated by flex */
22
23 /* %not-for-header */
24
25 /* %if-c-only */
26 /* %if-not-reentrant */
27 /* %endif */
28 /* %endif */
29 /* %ok-for-header */
30
31 #define FLEX_SCANNER
32 #define YY_FLEX_MAJOR_VERSION 2
33 #define YY_FLEX_MINOR_VERSION 5
34 #define YY_FLEX_SUBMINOR_VERSION 35
35 #if YY_FLEX_SUBMINOR_VERSION > 0
36 #define FLEX_BETA
37 #endif
38
39 /* %if-c++-only */
40 /* %endif */
41
42 /* %if-c-only */
43
44 /* %endif */
45
46 /* %if-c-only */
47
48 /* %endif */
49
50 /* First, we deal with platform-specific or compiler-specific issues. */
51
52 /* begin standard C headers. */
53 /* %if-c-only */
54 #include <stdio.h>
55 #include <string.h>
56 #include <errno.h>
57 #include <stdlib.h>
58 /* %endif */
59
60 /* %if-tables-serialization */
61 /* %endif */
62 /* end standard C headers. */
63
64 /* %if-c-or-c++ */
65 /* flex integer type definitions */
66
67 #ifndef FLEXINT_H
68 #define FLEXINT_H
69
70 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
71
72 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
73
74 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
75 * if you want the limit (max/min) macros for int types.
76 */
77 #ifndef __STDC_LIMIT_MACROS
78 #define __STDC_LIMIT_MACROS 1
79 #endif
80
81 #include <inttypes.h>
82 typedef int8_t flex_int8_t;
83 typedef uint8_t flex_uint8_t;
84 typedef int16_t flex_int16_t;
85 typedef uint16_t flex_uint16_t;
86 typedef int32_t flex_int32_t;
87 typedef uint32_t flex_uint32_t;
88 #else
89 typedef signed char flex_int8_t;
90 typedef short int flex_int16_t;
91 typedef int flex_int32_t;
92 typedef unsigned char flex_uint8_t;
93 typedef unsigned short int flex_uint16_t;
94 typedef unsigned int flex_uint32_t;
95 #endif /* ! C99 */
96
97 /* Limits of integral types. */
98 #ifndef INT8_MIN
99 #define INT8_MIN (-128)
100 #endif
101 #ifndef INT16_MIN
102 #define INT16_MIN (-32767-1)
103 #endif
104 #ifndef INT32_MIN
105 #define INT32_MIN (-2147483647-1)
106 #endif
107 #ifndef INT8_MAX
108 #define INT8_MAX (127)
109 #endif
110 #ifndef INT16_MAX
111 #define INT16_MAX (32767)
112 #endif
113 #ifndef INT32_MAX
114 #define INT32_MAX (2147483647)
115 #endif
116 #ifndef UINT8_MAX
117 #define UINT8_MAX (255U)
118 #endif
119 #ifndef UINT16_MAX
120 #define UINT16_MAX (65535U)
121 #endif
122 #ifndef UINT32_MAX
123 #define UINT32_MAX (4294967295U)
124 #endif
125
126 #endif /* ! FLEXINT_H */
127
128 /* %endif */
129
130 /* %if-c++-only */
131 /* %endif */
132
133 #ifdef __cplusplus
134
135 /* The "const" storage-class-modifier is valid. */
136 #define YY_USE_CONST
137
138 #else /* ! __cplusplus */
139
140 /* C99 requires __STDC__ to be defined as 1. */
141 #if defined (__STDC__)
142
143 #define YY_USE_CONST
144
145 #endif /* defined (__STDC__) */
146 #endif /* ! __cplusplus */
147
148 #ifdef YY_USE_CONST
149 #define yyconst const
150 #else
151 #define yyconst
152 #endif
153
154 /* %not-for-header */
155
156 /* Returned upon end-of-file. */
157 #define YY_NULL 0
158 /* %ok-for-header */
159
160 /* %not-for-header */
161
162 /* Promotes a possibly negative, possibly signed char to an unsigned
163 * integer for use as an array index. If the signed char is negative,
164 * we want to instead treat it as an 8-bit unsigned char, hence the
165 * double cast.
166 */
167 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
168 /* %ok-for-header */
169
170 /* %if-reentrant */
171
172 /* An opaque pointer. */
173 #ifndef YY_TYPEDEF_YY_SCANNER_T
174 #define YY_TYPEDEF_YY_SCANNER_T
175 typedef void* yyscan_t;
176 #endif
177
178 /* For convenience, these vars (plus the bison vars far below)
179 are macros in the reentrant scanner. */
180 #define yyin yyg->yyin_r
181 #define yyout yyg->yyout_r
182 #define yyextra yyg->yyextra_r
183 #define yyleng yyg->yyleng_r
184 #define yytext yyg->yytext_r
185 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
186 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
187 #define yy_flex_debug yyg->yy_flex_debug_r
188
189 /* %endif */
190
191 /* %if-not-reentrant */
192 /* %endif */
193
194 /* Enter a start condition. This macro really ought to take a parameter,
195 * but we do it the disgusting crufty way forced on us by the ()-less
196 * definition of BEGIN.
197 */
198 #define BEGIN yyg->yy_start = 1 + 2 *
199
200 /* Translate the current start state into a value that can be later handed
201 * to BEGIN to return to the state. The YYSTATE alias is for lex
202 * compatibility.
203 */
204 #define YY_START ((yyg->yy_start - 1) / 2)
205 #define YYSTATE YY_START
206
207 /* Action number for EOF rule of a given start state. */
208 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
209
210 /* Special action meaning "start processing a new file". */
211 #define YY_NEW_FILE config_restart(yyin ,yyscanner )
212
213 #define YY_END_OF_BUFFER_CHAR 0
214
215 /* Size of default input buffer. */
216 #ifndef YY_BUF_SIZE
217 #define YY_BUF_SIZE 16384
218 #endif
219
220 /* The state buf must be large enough to hold one state per character in the main buffer.
221 */
222 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
223
224 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
225 #define YY_TYPEDEF_YY_BUFFER_STATE
226 typedef struct yy_buffer_state *YY_BUFFER_STATE;
227 #endif
228
229 /* %if-not-reentrant */
230 /* %endif */
231
232 /* %if-c-only */
233 /* %if-not-reentrant */
234 /* %endif */
235 /* %endif */
236
237 #define EOB_ACT_CONTINUE_SCAN 0
238 #define EOB_ACT_END_OF_FILE 1
239 #define EOB_ACT_LAST_MATCH 2
240
241 #define YY_LESS_LINENO(n)
242
243 /* Return all but the first "n" matched characters back to the input stream. */
244 #define yyless(n) \
245 do \
246 { \
247 /* Undo effects of setting up yytext. */ \
248 int yyless_macro_arg = (n); \
249 YY_LESS_LINENO(yyless_macro_arg);\
250 *yy_cp = yyg->yy_hold_char; \
251 YY_RESTORE_YY_MORE_OFFSET \
252 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
253 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
254 } \
255 while ( 0 )
256
257 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
258
259 #ifndef YY_TYPEDEF_YY_SIZE_T
260 #define YY_TYPEDEF_YY_SIZE_T
261 typedef size_t yy_size_t;
262 #endif
263
264 #ifndef YY_STRUCT_YY_BUFFER_STATE
265 #define YY_STRUCT_YY_BUFFER_STATE
266 struct yy_buffer_state
267 {
268 /* %if-c-only */
269 FILE *yy_input_file;
270 /* %endif */
271
272 /* %if-c++-only */
273 /* %endif */
274
275 char *yy_ch_buf; /* input buffer */
276 char *yy_buf_pos; /* current position in input buffer */
277
278 /* Size of input buffer in bytes, not including room for EOB
279 * characters.
280 */
281 yy_size_t yy_buf_size;
282
283 /* Number of characters read into yy_ch_buf, not including EOB
284 * characters.
285 */
286 int yy_n_chars;
287
288 /* Whether we "own" the buffer - i.e., we know we created it,
289 * and can realloc() it to grow it, and should free() it to
290 * delete it.
291 */
292 int yy_is_our_buffer;
293
294 /* Whether this is an "interactive" input source; if so, and
295 * if we're using stdio for input, then we want to use getc()
296 * instead of fread(), to make sure we stop fetching input after
297 * each newline.
298 */
299 int yy_is_interactive;
300
301 /* Whether we're considered to be at the beginning of a line.
302 * If so, '^' rules will be active on the next match, otherwise
303 * not.
304 */
305 int yy_at_bol;
306
307 int yy_bs_lineno; /**< The line count. */
308 int yy_bs_column; /**< The column count. */
309
310 /* Whether to try to fill the input buffer when we reach the
311 * end of it.
312 */
313 int yy_fill_buffer;
314
315 int yy_buffer_status;
316
317 #define YY_BUFFER_NEW 0
318 #define YY_BUFFER_NORMAL 1
319 /* When an EOF's been seen but there's still some text to process
320 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
321 * shouldn't try reading from the input source any more. We might
322 * still have a bunch of tokens to match, though, because of
323 * possible backing-up.
324 *
325 * When we actually see the EOF, we change the status to "new"
326 * (via config_restart()), so that the user can continue scanning by
327 * just pointing yyin at a new input file.
328 */
329 #define YY_BUFFER_EOF_PENDING 2
330
331 };
332 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
333
334 /* %if-c-only Standard (non-C++) definition */
335 /* %not-for-header */
336
337 /* %if-not-reentrant */
338 /* %endif */
339 /* %ok-for-header */
340
341 /* %endif */
342
343 /* We provide macros for accessing buffer states in case in the
344 * future we want to put the buffer states in a more general
345 * "scanner state".
346 *
347 * Returns the top of the stack, or NULL.
348 */
349 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
350 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
351 : NULL)
352
353 /* Same as previous macro, but useful when we know that the buffer stack is not
354 * NULL or when we need an lvalue. For internal use only.
355 */
356 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
357
358 /* %if-c-only Standard (non-C++) definition */
359
360 /* %if-not-reentrant */
361 /* %not-for-header */
362
363 /* %ok-for-header */
364
365 /* %endif */
366
367 void config_restart (FILE *input_file ,yyscan_t yyscanner );
368 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
369 YY_BUFFER_STATE config__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
370 void config__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
371 void config__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
372 void config_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
373 void config_pop_buffer_state (yyscan_t yyscanner );
374
375 static void config_ensure_buffer_stack (yyscan_t yyscanner );
376 static void config__load_buffer_state (yyscan_t yyscanner );
377 static void config__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
378
379 #define YY_FLUSH_BUFFER config__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
380
381 YY_BUFFER_STATE config__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
382 YY_BUFFER_STATE config__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
383 YY_BUFFER_STATE config__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
384
385 /* %endif */
386
387 void *config_alloc (yy_size_t ,yyscan_t yyscanner );
388 void *config_realloc (void *,yy_size_t ,yyscan_t yyscanner );
389 void config_free (void * ,yyscan_t yyscanner );
390
391 #define yy_new_buffer config__create_buffer
392
393 #define yy_set_interactive(is_interactive) \
394 { \
395 if ( ! YY_CURRENT_BUFFER ){ \
396 config_ensure_buffer_stack (yyscanner); \
397 YY_CURRENT_BUFFER_LVALUE = \
398 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
399 } \
400 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
401 }
402
403 #define yy_set_bol(at_bol) \
404 { \
405 if ( ! YY_CURRENT_BUFFER ){\
406 config_ensure_buffer_stack (yyscanner); \
407 YY_CURRENT_BUFFER_LVALUE = \
408 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
409 } \
410 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
411 }
412
413 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
414
415 /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
416 /* Begin user sect3 */
417
418 #define config_wrap(n) 1
419 #define YY_SKIP_YYWRAP
420
421 #define FLEX_DEBUG
422
423 typedef unsigned char YY_CHAR;
424
425 typedef int yy_state_type;
426
427 #define yytext_ptr yytext_r
428
429 /* %if-c-only Standard (non-C++) definition */
430
431 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
432 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
433 static int yy_get_next_buffer (yyscan_t yyscanner );
434 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
435
436 /* %endif */
437
438 /* Done after the current pattern has been matched and before the
439 * corresponding action - sets up yytext.
440 */
441 #define YY_DO_BEFORE_ACTION \
442 yyg->yytext_ptr = yy_bp; \
443 /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
444 yyleng = (size_t) (yy_cp - yy_bp); \
445 yyg->yy_hold_char = *yy_cp; \
446 *yy_cp = '\0'; \
447 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
448 yyg->yy_c_buf_p = yy_cp;
449
450 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
451 #define YY_NUM_RULES 94
452 #define YY_END_OF_BUFFER 95
453 /* This struct is not used in this scanner,
454 but its presence is necessary. */
455 struct yy_trans_info
456 {
457 flex_int32_t yy_verify;
458 flex_int32_t yy_nxt;
459 };
460 static yyconst flex_int16_t yy_accept[791] =
461 { 0,
462 0, 0, 95, 93, 3, 3, 1, 93, 93, 2,
463 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
464 91, 91, 93, 0, 92, 74, 0, 2, 91, 0,
465 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
466 91, 91, 91, 91, 91, 91, 91, 91, 0, 4,
467 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
468 74, 74, 74, 74, 74, 0, 0, 0, 2, 87,
469 0, 91, 79, 91, 70, 91, 91, 91, 91, 91,
470 91, 78, 91, 91, 91, 91, 91, 91, 74, 74,
471 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
472
473 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
474 88, 88, 0, 0, 0, 2, 91, 91, 91, 91,
475 91, 91, 91, 91, 91, 91, 91, 91, 91, 72,
476 74, 74, 74, 74, 74, 74, 0, 0, 74, 74,
477 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
478 74, 74, 74, 74, 0, 0, 91, 68, 71, 73,
479 91, 0, 84, 91, 91, 91, 91, 91, 67, 91,
480 74, 74, 74, 74, 74, 74, 74, 0, 0, 0,
481 0, 0, 0, 74, 74, 74, 74, 74, 74, 0,
482 0, 74, 74, 0, 0, 74, 74, 74, 0, 0,
483
484 0, 74, 0, 74, 0, 0, 91, 0, 0, 0,
485 91, 91, 76, 85, 77, 91, 0, 0, 74, 74,
486 74, 74, 74, 0, 20, 0, 0, 0, 0, 0,
487 0, 0, 74, 74, 74, 0, 0, 74, 74, 0,
488 0, 74, 74, 0, 0, 74, 0, 0, 74, 0,
489 0, 0, 0, 0, 0, 0, 0, 74, 90, 0,
490 91, 0, 0, 82, 80, 66, 86, 69, 0, 0,
491 74, 74, 74, 74, 74, 0, 0, 0, 0, 0,
492 0, 0, 0, 74, 74, 74, 0, 0, 74, 74,
493 0, 0, 0, 0, 74, 0, 0, 74, 0, 0,
494
495 74, 0, 0, 0, 0, 0, 0, 0, 0, 74,
496 90, 89, 91, 83, 81, 0, 0, 0, 0, 0,
497 0, 74, 74, 74, 0, 0, 0, 0, 0, 0,
498 0, 0, 0, 0, 31, 0, 0, 0, 0, 0,
499 0, 74, 0, 0, 0, 0, 0, 5, 74, 0,
500 0, 0, 0, 0, 0, 0, 74, 0, 0, 0,
501 0, 63, 0, 0, 62, 0, 0, 90, 91, 0,
502 0, 0, 0, 0, 0, 74, 0, 0, 74, 0,
503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
504 0, 0, 0, 0, 0, 74, 0, 0, 0, 0,
505
506 0, 6, 0, 0, 0, 0, 0, 0, 0, 0,
507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
508 0, 75, 0, 0, 0, 0, 0, 0, 74, 0,
509 0, 74, 0, 0, 0, 0, 0, 0, 0, 0,
510 0, 0, 0, 0, 0, 0, 0, 0, 74, 0,
511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
513 0, 61, 60, 0, 0, 0, 0, 0, 0, 0,
514 0, 0, 0, 0, 0, 74, 0, 0, 0, 0,
515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
516
517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
518 0, 0, 0, 0, 0, 0, 51, 50, 0, 0,
519 0, 0, 0, 0, 0, 0, 8, 7, 0, 0,
520 0, 0, 0, 0, 0, 0, 0, 0, 74, 0,
521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
522 0, 0, 0, 64, 65, 0, 0, 0, 0, 0,
523 0, 0, 0, 0, 0, 0, 0, 0, 0, 53,
524 52, 0, 0, 55, 0, 0, 54, 0, 0, 0,
525 0, 0, 0, 0, 0, 0, 0, 74, 0, 0,
526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
527
528 0, 0, 0, 0, 39, 38, 0, 0, 0, 0,
529 45, 44, 0, 0, 0, 0, 0, 59, 0, 58,
530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
531 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
532 0, 0, 0, 35, 34, 0, 0, 0, 0, 0,
533 0, 0, 0, 0, 0, 57, 56, 0, 0, 0,
534 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
536 0, 41, 40, 0, 0, 0, 0, 0, 0, 0,
537 0, 12, 11, 14, 13, 16, 15, 0, 0, 0,
538
539 0, 0, 0, 0, 0, 0, 0, 30, 29, 0,
540 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
541 9, 18, 17, 0, 0, 0, 26, 0, 0, 25,
542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
543 0, 0, 0, 0, 28, 0, 27, 0, 0, 0,
544 0, 0, 0, 47, 49, 46, 48, 0, 0, 0,
545 0, 0, 0, 0, 0, 0, 0, 0, 0, 24,
546 23, 33, 32, 0, 0, 0, 0, 22, 21, 0,
547 0, 0, 0, 0, 0, 43, 42, 37, 36, 0
548 } ;
549
550 static yyconst flex_int32_t yy_ec[256] =
551 { 0,
552 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
553 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
554 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
555 1, 4, 1, 5, 6, 1, 1, 1, 1, 1,
556 1, 1, 1, 7, 8, 9, 1, 10, 11, 12,
557 13, 14, 15, 16, 10, 10, 10, 17, 1, 1,
558 18, 1, 1, 1, 19, 20, 21, 22, 23, 24,
559 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
560 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
561 1, 1, 1, 1, 45, 1, 46, 47, 48, 49,
562
563 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
564 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
565 70, 71, 1, 1, 1, 1, 1, 1, 1, 1,
566 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
567 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
568 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
569 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
570 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
571 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
572 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
573
574 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
575 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
576 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
577 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
578 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
579 1, 1, 1, 1, 1
580 } ;
581
582 static yyconst flex_int32_t yy_meta[72] =
583 { 0,
584 1, 1, 2, 1, 1, 1, 1, 1, 3, 3,
585 3, 3, 3, 3, 3, 3, 1, 1, 3, 3,
586 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
587 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
588 3, 3, 3, 3, 1, 3, 3, 3, 3, 3,
589 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
590 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
591 3
592 } ;
593
594 static yyconst flex_int16_t yy_base[797] =
595 { 0,
596 0, 957, 959, 2145, 2145, 2145, 2145, 942, 903, 63,
597 71, 79, 73, 65, 81, 66, 72, 114, 112, 130,
598 123, 119, 900, 897, 896, 184, 247, 255, 121, 263,
599 129, 263, 264, 269, 265, 271, 273, 275, 320, 322,
600 327, 331, 332, 333, 340, 371, 380, 381, 894, 2145,
601 429, 77, 379, 125, 133, 183, 250, 268, 345, 376,
602 441, 447, 272, 257, 290, 412, 489, 505, 514, 2145,
603 522, 522, 421, 524, 528, 529, 533, 562, 577, 582,
604 587, 511, 597, 588, 632, 636, 638, 644, 314, 330,
605 351, 378, 378, 382, 463, 394, 504, 517, 519, 528,
606
607 521, 514, 518, 565, 580, 637, 573, 574, 588, 581,
608 699, 707, 716, 724, 732, 741, 741, 742, 743, 747,
609 643, 755, 754, 792, 794, 796, 804, 805, 825, 814,
610 623, 645, 642, 741, 632, 649, 840, 852, 743, 746,
611 765, 769, 812, 817, 464, 813, 813, 465, 844, 840,
612 845, 466, 876, 855, 904, 913, 913, 915, 919, 920,
613 921, 94, 925, 969, 957, 975, 970, 979, 990, 992,
614 564, 868, 884, 906, 912, 904, 996, 898, 920, 907,
615 902, 972, 960, 969, 979, 996, 753, 1004, 1001, 998,
616 1005, 1001, 1022, 1009, 1010, 1026, 778, 1018, 1025, 1027,
617
618 1021, 956, 1023, 1040, 1083, 1091, 1052, 105, 883, 880,
619 1091, 1092, 1099, 1101, 1103, 1109, 1088, 1090, 1078, 1086,
620 1098, 1109, 1104, 1092, 2145, 1102, 1106, 1104, 1128, 1127,
621 1124, 1143, 1156, 1146, 1141, 1140, 1141, 1139, 1151, 1156,
622 1157, 1065, 1149, 1159, 1160, 1150, 1163, 1164, 1155, 1170,
623 1163, 1174, 1165, 1177, 1178, 1179, 1185, 1176, 1226, 1238,
624 1238, 881, 878, 2145, 2145, 1227, 1239, 1240, 1203, 1204,
625 1074, 1221, 1223, 1226, 1245, 1240, 1241, 1246, 883, 882,
626 1247, 844, 841, 1237, 1234, 1270, 1252, 1253, 1273, 1256,
627 1253, 1254, 1248, 1255, 1301, 1274, 1277, 1306, 1283, 1284,
628
629 1283, 1299, 1301, 1302, 1304, 1293, 1309, 1310, 1296, 1316,
630 1357, 2145, 1343, 2145, 2145, 1308, 1313, 1303, 1325, 1326,
631 1341, 1342, 1337, 1341, 1343, 1345, 1347, 1351, 1346, 1351,
632 1356, 1350, 1351, 1352, 0, 1361, 1362, 1365, 1366, 1369,
633 1370, 1356, 1378, 1386, 1386, 1389, 1405, 2145, 827, 1406,
634 1408, 1409, 1397, 1401, 1398, 1402, 1433, 1408, 1421, 1411,
635 1423, 2145, 1409, 1410, 2145, 1420, 1421, 1470, 1471, 1442,
636 1446, 1432, 1434, 1466, 1468, 1469, 1455, 1458, 1460, 1473,
637 1474, 836, 1465, 1483, 789, 1467, 1486, 1483, 1485, 1486,
638 1487, 1489, 1490, 1491, 1492, 1494, 1488, 1489, 1493, 1512,
639
640 1526, 2145, 1527, 1514, 1517, 1529, 1530, 1531, 1532, 1518,
641 1519, 1537, 1538, 1541, 1531, 1544, 1532, 1545, 1546, 1543,
642 1544, 1579, 1537, 1538, 1545, 1564, 1564, 1565, 1561, 1574,
643 1577, 1580, 825, 771, 1567, 1586, 1572, 1570, 1590, 1576,
644 1589, 1590, 776, 737, 1585, 1586, 1577, 1578, 1614, 1584,
645 1586, 1606, 1607, 1606, 1622, 1612, 1614, 1633, 1623, 1637,
646 1629, 1625, 1626, 1645, 1646, 1636, 1645, 1649, 1639, 1648,
647 1652, 2145, 2145, 1629, 1630, 721, 718, 1636, 1637, 1638,
648 1640, 1659, 1660, 1655, 1656, 1670, 1671, 1673, 1689, 1685,
649 1689, 1696, 1692, 1694, 1693, 1694, 1684, 1685, 1683, 1684,
650
651 672, 669, 1688, 1689, 1688, 1689, 1695, 1696, 1701, 1703,
652 1699, 1700, 1700, 1719, 1717, 1737, 2145, 2145, 1724, 1725,
653 1736, 1736, 1726, 1743, 1741, 1729, 2145, 2145, 1747, 1748,
654 1742, 1743, 1754, 1755, 1752, 1753, 1758, 1759, 1751, 1749,
655 1751, 1753, 1769, 1758, 1757, 1788, 1777, 1789, 1790, 1794,
656 1797, 1785, 1786, 2145, 2145, 1802, 1803, 666, 664, 1788,
657 1789, 1790, 1791, 634, 623, 624, 623, 581, 561, 2145,
658 2145, 1791, 1809, 2145, 1793, 1811, 2145, 1802, 1803, 1816,
659 1818, 1804, 1808, 1816, 1818, 1816, 1832, 585, 1844, 1846,
660 1847, 1833, 1843, 1854, 1840, 1848, 1842, 1843, 1848, 1849,
661
662 559, 550, 1850, 1851, 2145, 2145, 1848, 1849, 1852, 1853,
663 2145, 2145, 1853, 1854, 1856, 1858, 1876, 2145, 1877, 2145,
664 1865, 1866, 1886, 1888, 1885, 1886, 1902, 1905, 1892, 1893,
665 2145, 1909, 1910, 1899, 1915, 1918, 1902, 1918, 1921, 1918,
666 1919, 1913, 1914, 2145, 2145, 1915, 1917, 534, 525, 1926,
667 1930, 1927, 1929, 1930, 1946, 2145, 2145, 1937, 1939, 1948,
668 1949, 1945, 1948, 524, 494, 1948, 1949, 1961, 1962, 1959,
669 1965, 1956, 1962, 1968, 1959, 1974, 1975, 1971, 1972, 1974,
670 1976, 2145, 2145, 445, 407, 1963, 1964, 1966, 1967, 1990,
671 1992, 2145, 2145, 2145, 2145, 2145, 2145, 412, 411, 1989,
672
673 1990, 2014, 383, 2007, 2020, 359, 2011, 2145, 2145, 2020,
674 2021, 2022, 2023, 2015, 2016, 2024, 2025, 2026, 2027, 2145,
675 2145, 2145, 2145, 326, 316, 2015, 2145, 333, 2016, 2145,
676 327, 2034, 2036, 2038, 2042, 2035, 2037, 323, 301, 299,
677 266, 2036, 2052, 2054, 2145, 2056, 2145, 2049, 2050, 193,
678 146, 2059, 2062, 2145, 2145, 2145, 2145, 2071, 2072, 170,
679 153, 152, 151, 2060, 2061, 2071, 2072, 2057, 2058, 2145,
680 2145, 2145, 2145, 2079, 2080, 2066, 2067, 2145, 2145, 2087,
681 2088, 150, 149, 2087, 2089, 2145, 2145, 2145, 2145, 2145,
682 2138, 119, 2141, 117, 116, 108
683
684 } ;
685
686 static yyconst flex_int16_t yy_def[797] =
687 { 0,
688 790, 1, 790, 790, 790, 790, 790, 791, 790, 792,
689 792, 792, 12, 12, 12, 12, 12, 12, 12, 12,
690 12, 12, 793, 791, 791, 790, 794, 792, 12, 794,
691 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
692 12, 12, 12, 12, 12, 12, 12, 12, 793, 790,
693 26, 51, 51, 51, 51, 51, 51, 51, 51, 51,
694 51, 51, 51, 51, 51, 795, 796, 795, 792, 790,
695 796, 12, 12, 12, 12, 12, 12, 12, 12, 12,
696 12, 12, 12, 12, 12, 12, 12, 12, 51, 51,
697 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
698
699 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
700 796, 795, 796, 796, 796, 792, 12, 12, 12, 12,
701 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
702 51, 51, 51, 51, 51, 51, 790, 790, 51, 51,
703 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
704 51, 51, 51, 51, 796, 796, 12, 12, 12, 12,
705 12, 790, 12, 12, 12, 12, 12, 12, 12, 12,
706 51, 51, 51, 51, 51, 51, 51, 790, 790, 790,
707 790, 790, 790, 51, 51, 51, 51, 51, 51, 790,
708 790, 51, 51, 790, 790, 51, 51, 51, 790, 790,
709
710 790, 51, 790, 51, 796, 796, 12, 790, 790, 790,
711 12, 12, 12, 12, 12, 12, 790, 790, 51, 51,
712 51, 51, 51, 790, 790, 790, 790, 790, 790, 790,
713 790, 790, 51, 51, 51, 790, 790, 51, 51, 790,
714 790, 51, 51, 790, 790, 51, 790, 790, 51, 790,
715 790, 790, 790, 790, 790, 790, 790, 51, 796, 796,
716 12, 790, 790, 790, 790, 12, 12, 12, 790, 790,
717 51, 51, 51, 51, 51, 790, 790, 790, 790, 790,
718 790, 790, 790, 51, 51, 51, 790, 790, 51, 51,
719 790, 790, 790, 790, 51, 790, 790, 51, 790, 790,
720
721 51, 790, 790, 790, 790, 790, 790, 790, 790, 51,
722 796, 790, 12, 790, 790, 790, 790, 790, 790, 790,
723 790, 51, 51, 51, 790, 790, 790, 790, 790, 790,
724 790, 790, 790, 790, 51, 790, 790, 790, 790, 790,
725 790, 51, 790, 790, 790, 790, 790, 790, 51, 790,
726 790, 790, 790, 790, 790, 790, 51, 790, 790, 790,
727 790, 790, 790, 790, 790, 790, 790, 796, 12, 790,
728 790, 790, 790, 790, 790, 51, 790, 790, 51, 790,
729 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
730 790, 790, 790, 790, 790, 51, 790, 790, 790, 790,
731
732 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
733 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
734 790, 12, 790, 790, 790, 790, 790, 790, 51, 790,
735 790, 51, 790, 790, 790, 790, 790, 790, 790, 790,
736 790, 790, 790, 790, 790, 790, 790, 790, 51, 790,
737 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
738 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
739 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
740 790, 790, 790, 790, 790, 51, 790, 790, 790, 790,
741 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
742
743 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
744 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
745 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
746 790, 790, 790, 790, 790, 790, 790, 790, 51, 790,
747 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
748 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
749 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
750 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
751 790, 790, 790, 790, 790, 790, 790, 51, 790, 790,
752 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
753
754 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
755 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
756 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
757 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
758 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
759 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
760 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
761 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
762 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
763 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
764
765 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
766 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
767 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
768 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
769 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
770 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
771 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
772 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
773 790, 790, 790, 790, 790, 790, 790, 790, 790, 0,
774 790, 790, 790, 790, 790, 790
775
776 } ;
777
778 static yyconst flex_int16_t yy_nxt[2217] =
779 { 0,
780 4, 5, 6, 7, 8, 4, 7, 9, 4, 10,
781 10, 10, 10, 10, 10, 10, 4, 7, 11, 11,
782 12, 13, 14, 15, 11, 16, 17, 18, 11, 11,
783 19, 11, 11, 11, 11, 20, 21, 22, 11, 11,
784 11, 11, 11, 11, 4, 11, 11, 12, 13, 14,
785 15, 11, 16, 17, 18, 11, 11, 19, 11, 11,
786 11, 11, 20, 21, 22, 11, 11, 11, 11, 11,
787 11, 27, 28, 28, 28, 28, 28, 28, 28, 30,
788 31, 31, 31, 31, 31, 31, 31, 30, 31, 31,
789 31, 31, 31, 31, 31, 34, 35, 29, 29, 37,
790
791 36, 29, 39, 40, 29, 29, 209, 29, 29, 210,
792 115, 32, 38, 29, 33, 89, 29, 262, 112, 68,
793 263, 29, 34, 35, 29, 29, 37, 36, 29, 39,
794 40, 29, 29, 42, 29, 29, 41, 70, 32, 38,
795 29, 33, 89, 29, 43, 47, 29, 29, 45, 29,
796 44, 29, 46, 29, 48, 29, 29, 92, 29, 93,
797 42, 29, 29, 41, 29, 29, 787, 786, 773, 772,
798 771, 43, 47, 29, 29, 45, 29, 44, 29, 46,
799 29, 48, 29, 29, 92, 29, 93, 770, 29, 29,
800 765, 29, 29, 51, 51, 51, 51, 51, 51, 51,
801
802 764, 94, 52, 53, 54, 55, 51, 51, 51, 56,
803 57, 51, 58, 51, 51, 59, 51, 60, 51, 61,
804 62, 63, 64, 65, 51, 51, 51, 51, 94, 52,
805 53, 54, 55, 51, 51, 51, 56, 57, 51, 58,
806 51, 51, 59, 51, 60, 51, 61, 62, 63, 64,
807 65, 51, 51, 51, 51, 66, 67, 67, 67, 67,
808 67, 67, 67, 27, 69, 69, 69, 69, 69, 69,
809 69, 66, 71, 71, 71, 71, 71, 71, 71, 70,
810 70, 70, 95, 757, 73, 70, 75, 70, 74, 70,
811 96, 70, 108, 109, 72, 29, 29, 29, 29, 29,
812
813 29, 29, 77, 29, 29, 29, 76, 29, 29, 95,
814 29, 73, 110, 75, 78, 74, 756, 96, 755, 108,
815 109, 72, 29, 29, 29, 29, 29, 29, 29, 77,
816 29, 29, 29, 76, 29, 29, 70, 29, 70, 110,
817 754, 78, 80, 70, 747, 82, 79, 70, 70, 70,
818 745, 131, 29, 83, 29, 29, 70, 29, 81, 29,
819 743, 132, 29, 29, 29, 29, 29, 29, 84, 80,
820 742, 85, 29, 79, 133, 29, 730, 97, 131, 29,
821 83, 29, 29, 98, 29, 81, 29, 70, 132, 29,
822 29, 29, 29, 29, 29, 84, 70, 70, 85, 29,
823
824 727, 133, 29, 29, 97, 90, 29, 86, 99, 134,
825 98, 100, 29, 29, 135, 87, 29, 91, 136, 88,
826 66, 111, 111, 111, 111, 111, 111, 111, 723, 722,
827 29, 139, 90, 29, 86, 99, 134, 70, 100, 29,
828 29, 135, 87, 29, 91, 136, 88, 51, 51, 51,
829 51, 715, 714, 29, 51, 51, 29, 51, 139, 101,
830 51, 102, 51, 103, 51, 51, 51, 51, 51, 104,
831 137, 190, 194, 199, 51, 51, 51, 51, 105, 106,
832 29, 51, 51, 29, 51, 107, 101, 51, 102, 51,
833 103, 51, 51, 51, 51, 51, 104, 113, 114, 114,
834
835 114, 114, 114, 114, 114, 105, 106, 138, 191, 195,
836 200, 697, 107, 66, 111, 111, 111, 111, 111, 111,
837 111, 70, 27, 116, 116, 116, 116, 116, 116, 116,
838 71, 71, 71, 71, 71, 71, 71, 71, 70, 140,
839 70, 696, 683, 29, 70, 70, 29, 141, 142, 70,
840 143, 682, 144, 145, 29, 146, 29, 29, 117, 29,
841 29, 119, 118, 29, 29, 29, 140, 645, 29, 120,
842 29, 217, 121, 29, 141, 142, 644, 143, 70, 144,
843 145, 29, 146, 29, 29, 117, 29, 29, 119, 118,
844 29, 29, 29, 70, 29, 29, 120, 29, 70, 122,
845
846 147, 148, 631, 70, 70, 616, 151, 152, 218, 29,
847 153, 123, 29, 70, 29, 124, 154, 29, 126, 29,
848 29, 29, 29, 29, 29, 615, 122, 147, 148, 29,
849 614, 613, 29, 151, 152, 125, 29, 153, 123, 29,
850 612, 29, 124, 154, 29, 126, 29, 29, 70, 29,
851 29, 611, 70, 127, 70, 171, 29, 149, 128, 29,
852 70, 161, 125, 172, 29, 173, 130, 29, 29, 176,
853 29, 29, 150, 29, 177, 29, 29, 129, 29, 29,
854 127, 606, 171, 605, 149, 128, 555, 162, 161, 554,
855 172, 29, 173, 130, 29, 29, 176, 29, 29, 150,
856
857 29, 177, 29, 29, 129, 29, 29, 71, 71, 71,
858 71, 71, 71, 71, 71, 66, 111, 111, 111, 111,
859 111, 111, 111, 70, 71, 155, 155, 155, 155, 155,
860 155, 155, 113, 156, 156, 156, 156, 156, 156, 156,
861 71, 71, 71, 71, 71, 71, 71, 71, 70, 30,
862 116, 116, 116, 116, 116, 116, 116, 70, 70, 70,
863 236, 184, 530, 70, 174, 529, 158, 157, 185, 160,
864 70, 70, 175, 29, 29, 29, 29, 29, 159, 29,
865 163, 498, 29, 497, 186, 247, 29, 29, 184, 29,
866 29, 174, 164, 158, 157, 185, 160, 237, 187, 175,
867
868 29, 29, 29, 29, 29, 159, 29, 163, 70, 29,
869 70, 186, 70, 29, 29, 488, 29, 29, 165, 164,
870 70, 70, 248, 166, 29, 187, 29, 29, 29, 29,
871 70, 29, 487, 438, 167, 188, 168, 29, 189, 29,
872 29, 70, 169, 435, 402, 165, 29, 170, 192, 29,
873 166, 29, 193, 29, 29, 29, 29, 29, 29, 178,
874 29, 167, 188, 168, 29, 189, 29, 29, 179, 169,
875 180, 181, 196, 29, 170, 192, 29, 197, 198, 193,
876 182, 204, 183, 201, 29, 332, 178, 29, 331, 329,
877 328, 315, 314, 265, 264, 179, 50, 180, 181, 196,
878
879 25, 25, 50, 219, 197, 198, 220, 182, 204, 183,
880 26, 202, 205, 206, 206, 206, 206, 206, 206, 206,
881 203, 113, 71, 71, 71, 71, 71, 71, 71, 70,
882 219, 70, 221, 220, 222, 70, 70, 70, 202, 223,
883 227, 70, 228, 229, 230, 29, 25, 29, 29, 207,
884 29, 29, 29, 29, 29, 29, 29, 29, 790, 221,
885 29, 222, 23, 255, 790, 208, 223, 227, 790, 228,
886 229, 230, 29, 70, 29, 29, 207, 29, 29, 29,
887 29, 29, 29, 29, 29, 70, 70, 29, 212, 29,
888 211, 70, 29, 213, 231, 70, 232, 790, 790, 233,
889
890 256, 29, 29, 224, 29, 214, 70, 29, 70, 215,
891 29, 29, 234, 225, 29, 212, 29, 211, 235, 29,
892 213, 231, 29, 232, 29, 29, 233, 216, 29, 29,
893 238, 29, 214, 239, 29, 240, 215, 29, 29, 234,
894 226, 29, 241, 242, 243, 235, 244, 245, 246, 29,
895 249, 29, 29, 250, 216, 252, 251, 238, 253, 254,
896 239, 257, 240, 258, 790, 790, 790, 790, 70, 241,
897 242, 243, 293, 244, 245, 246, 790, 249, 790, 790,
898 250, 318, 252, 251, 29, 253, 254, 29, 257, 261,
899 258, 71, 259, 259, 259, 259, 259, 259, 259, 205,
900
901 260, 260, 260, 260, 260, 260, 260, 70, 70, 294,
902 269, 29, 270, 266, 29, 70, 261, 70, 319, 70,
903 271, 272, 273, 29, 29, 70, 29, 29, 267, 274,
904 275, 29, 276, 29, 29, 29, 29, 269, 29, 270,
905 266, 29, 277, 278, 29, 268, 279, 271, 272, 273,
906 29, 29, 280, 29, 29, 267, 274, 275, 29, 276,
907 29, 29, 29, 29, 281, 29, 282, 283, 29, 277,
908 278, 29, 268, 279, 284, 285, 286, 287, 288, 280,
909 289, 290, 291, 292, 295, 296, 297, 298, 299, 300,
910 301, 281, 302, 282, 283, 303, 304, 305, 306, 307,
911
912 308, 284, 285, 286, 287, 288, 309, 289, 290, 291,
913 292, 295, 296, 297, 298, 299, 300, 301, 310, 302,
914 790, 790, 303, 304, 305, 306, 307, 308, 320, 790,
915 316, 317, 790, 309, 71, 311, 311, 311, 311, 311,
916 311, 311, 312, 70, 333, 310, 205, 71, 71, 71,
917 71, 71, 71, 71, 70, 70, 70, 316, 317, 29,
918 313, 322, 29, 323, 324, 321, 325, 326, 327, 330,
919 29, 29, 29, 29, 29, 29, 335, 336, 338, 339,
920 340, 334, 342, 343, 344, 345, 29, 313, 322, 29,
921 323, 324, 346, 325, 326, 327, 330, 29, 29, 29,
922
923 29, 29, 29, 335, 351, 338, 339, 352, 347, 342,
924 343, 344, 345, 353, 337, 355, 356, 341, 348, 346,
925 357, 358, 359, 366, 360, 361, 362, 363, 364, 365,
926 370, 351, 790, 790, 352, 371, 372, 349, 790, 790,
927 790, 790, 355, 356, 377, 350, 790, 357, 358, 359,
928 354, 360, 361, 362, 363, 364, 365, 370, 373, 70,
929 367, 374, 371, 372, 349, 71, 368, 368, 368, 368,
930 368, 368, 368, 312, 369, 29, 375, 376, 29, 379,
931 380, 378, 381, 382, 383, 373, 384, 385, 374, 386,
932 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
933
934 397, 369, 29, 375, 376, 29, 379, 380, 398, 381,
935 382, 383, 399, 384, 385, 400, 386, 387, 388, 389,
936 390, 391, 392, 393, 394, 395, 396, 397, 401, 403,
937 404, 405, 406, 407, 410, 398, 408, 409, 411, 399,
938 412, 414, 400, 415, 416, 417, 418, 419, 420, 421,
939 790, 790, 790, 790, 790, 401, 403, 404, 405, 406,
940 407, 410, 423, 408, 409, 411, 424, 425, 414, 426,
941 415, 416, 417, 418, 419, 420, 421, 413, 71, 71,
942 71, 71, 71, 71, 71, 71, 312, 70, 427, 423,
943 428, 429, 430, 424, 425, 431, 426, 432, 433, 434,
944
945 436, 437, 439, 29, 440, 441, 29, 442, 422, 443,
946 444, 445, 446, 447, 448, 427, 449, 428, 429, 430,
947 450, 451, 431, 452, 432, 433, 434, 436, 437, 439,
948 29, 440, 441, 29, 442, 422, 443, 444, 445, 446,
949 447, 448, 453, 449, 454, 455, 456, 450, 451, 457,
950 452, 458, 459, 460, 461, 462, 463, 464, 465, 466,
951 468, 471, 469, 472, 473, 474, 475, 467, 482, 453,
952 470, 454, 455, 456, 476, 477, 457, 478, 458, 459,
953 460, 461, 462, 463, 464, 465, 466, 468, 471, 469,
954 472, 473, 474, 475, 467, 70, 479, 470, 480, 481,
955
956 484, 476, 477, 485, 478, 483, 486, 489, 490, 491,
957 492, 29, 493, 494, 29, 495, 496, 499, 500, 501,
958 502, 503, 505, 479, 506, 480, 481, 484, 507, 508,
959 485, 790, 509, 486, 489, 490, 491, 492, 29, 493,
960 494, 29, 495, 496, 499, 500, 501, 502, 510, 505,
961 511, 506, 512, 513, 514, 507, 508, 515, 504, 509,
962 516, 517, 518, 519, 520, 521, 522, 523, 524, 525,
963 526, 527, 528, 531, 532, 510, 533, 511, 534, 512,
964 513, 514, 535, 536, 515, 537, 538, 516, 517, 518,
965 519, 520, 521, 522, 523, 524, 525, 526, 527, 528,
966
967 531, 532, 539, 533, 540, 534, 541, 542, 543, 535,
968 536, 544, 537, 538, 545, 546, 547, 548, 549, 550,
969 551, 552, 553, 556, 557, 558, 559, 560, 561, 539,
970 562, 540, 563, 541, 542, 543, 564, 565, 544, 566,
971 567, 545, 546, 547, 548, 549, 550, 551, 552, 553,
972 556, 557, 558, 559, 560, 561, 568, 562, 569, 563,
973 570, 571, 572, 564, 565, 573, 566, 567, 574, 575,
974 576, 577, 578, 579, 580, 581, 582, 583, 584, 585,
975 586, 587, 588, 568, 589, 569, 590, 570, 571, 572,
976 591, 592, 573, 593, 594, 574, 575, 576, 577, 578,
977
978 579, 580, 581, 582, 583, 584, 585, 586, 587, 588,
979 595, 589, 596, 590, 597, 598, 599, 591, 592, 600,
980 593, 594, 601, 602, 603, 604, 607, 608, 609, 610,
981 617, 618, 619, 620, 621, 622, 623, 595, 624, 596,
982 625, 597, 598, 599, 626, 627, 600, 628, 629, 601,
983 602, 603, 604, 607, 608, 609, 610, 617, 618, 619,
984 620, 621, 622, 623, 630, 624, 632, 625, 633, 634,
985 635, 626, 627, 636, 628, 629, 637, 638, 639, 640,
986 641, 642, 643, 646, 647, 648, 649, 650, 651, 652,
987 653, 630, 654, 632, 655, 633, 634, 635, 656, 657,
988
989 636, 658, 659, 637, 638, 639, 640, 641, 642, 643,
990 646, 647, 648, 649, 650, 651, 652, 653, 660, 654,
991 661, 655, 662, 663, 664, 656, 657, 665, 658, 659,
992 666, 667, 668, 669, 670, 671, 672, 673, 674, 675,
993 676, 677, 678, 679, 680, 660, 681, 661, 684, 662,
994 663, 664, 685, 686, 665, 687, 688, 666, 667, 668,
995 669, 670, 671, 672, 673, 674, 675, 676, 677, 678,
996 679, 680, 689, 681, 690, 684, 691, 692, 693, 685,
997 686, 694, 687, 688, 695, 698, 699, 700, 701, 702,
998 703, 704, 705, 706, 707, 708, 709, 710, 711, 689,
999
1000 712, 690, 713, 691, 692, 693, 716, 717, 694, 718,
1001 719, 695, 698, 699, 700, 701, 702, 703, 704, 705,
1002 706, 707, 708, 709, 710, 711, 720, 712, 721, 713,
1003 724, 725, 726, 716, 717, 728, 718, 719, 729, 731,
1004 732, 733, 734, 735, 736, 737, 738, 739, 740, 741,
1005 744, 746, 748, 720, 749, 721, 750, 724, 725, 726,
1006 751, 752, 728, 753, 758, 729, 731, 732, 733, 734,
1007 735, 736, 737, 738, 739, 740, 741, 744, 746, 748,
1008 759, 749, 760, 750, 761, 762, 763, 751, 752, 766,
1009 753, 758, 767, 768, 769, 774, 775, 776, 777, 778,
1010
1011 779, 780, 781, 782, 783, 784, 785, 759, 788, 760,
1012 789, 761, 762, 763, 790, 790, 766, 790, 790, 767,
1013 768, 769, 774, 775, 776, 777, 778, 779, 780, 781,
1014 782, 783, 784, 785, 790, 788, 790, 789, 24, 790,
1015 24, 49, 49, 49, 3, 790, 790, 790, 790, 790,
1016 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1017 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1018 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1019 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1020 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1021
1022 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1023 790, 790, 790, 790, 790, 790
1024 } ;
1025
1026 static yyconst flex_int16_t yy_chk[2217] =
1027 { 0,
1028 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1029 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1030 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1031 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1032 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1033 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1034 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1035 1, 10, 10, 10, 10, 10, 10, 10, 10, 11,
1036 11, 11, 11, 11, 11, 11, 11, 12, 12, 12,
1037 12, 12, 12, 12, 12, 13, 14, 14, 16, 15,
1038
1039 14, 16, 16, 17, 17, 13, 162, 17, 13, 162,
1040 796, 12, 15, 15, 12, 52, 15, 208, 795, 794,
1041 208, 792, 13, 14, 14, 16, 15, 14, 16, 16,
1042 17, 17, 13, 19, 17, 13, 18, 29, 12, 15,
1043 15, 12, 52, 15, 19, 21, 18, 19, 20, 18,
1044 19, 22, 20, 29, 22, 21, 29, 54, 21, 55,
1045 19, 31, 20, 18, 31, 20, 783, 782, 763, 762,
1046 761, 19, 21, 18, 19, 20, 18, 19, 22, 20,
1047 29, 22, 21, 29, 54, 21, 55, 760, 31, 20,
1048 751, 31, 20, 26, 26, 26, 26, 26, 26, 26,
1049
1050 750, 56, 26, 26, 26, 26, 26, 26, 26, 26,
1051 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
1052 26, 26, 26, 26, 26, 26, 26, 26, 56, 26,
1053 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
1054 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
1055 26, 26, 26, 26, 26, 27, 27, 27, 27, 27,
1056 27, 27, 27, 28, 28, 28, 28, 28, 28, 28,
1057 28, 30, 30, 30, 30, 30, 30, 30, 30, 32,
1058 33, 35, 57, 741, 33, 34, 35, 36, 34, 37,
1059 58, 38, 63, 64, 32, 32, 33, 35, 32, 33,
1060
1061 35, 34, 37, 36, 34, 37, 36, 38, 37, 57,
1062 38, 33, 65, 35, 38, 34, 740, 58, 739, 63,
1063 64, 32, 32, 33, 35, 32, 33, 35, 34, 37,
1064 36, 34, 37, 36, 38, 37, 39, 38, 40, 65,
1065 738, 38, 40, 41, 731, 42, 39, 42, 43, 44,
1066 728, 89, 39, 43, 40, 39, 45, 40, 41, 41,
1067 725, 90, 41, 42, 43, 44, 42, 43, 44, 40,
1068 724, 45, 45, 39, 91, 45, 706, 59, 89, 39,
1069 43, 40, 39, 59, 40, 41, 41, 46, 90, 41,
1070 42, 43, 44, 42, 43, 44, 47, 48, 45, 45,
1071
1072 703, 91, 45, 46, 59, 53, 46, 46, 60, 92,
1073 59, 60, 47, 48, 93, 47, 48, 53, 94, 48,
1074 66, 66, 66, 66, 66, 66, 66, 66, 699, 698,
1075 46, 96, 53, 46, 46, 60, 92, 73, 60, 47,
1076 48, 93, 47, 48, 53, 94, 48, 51, 51, 51,
1077 51, 685, 684, 73, 51, 51, 73, 51, 96, 61,
1078 51, 61, 51, 61, 51, 51, 51, 51, 51, 62,
1079 95, 145, 148, 152, 51, 51, 51, 51, 62, 62,
1080 73, 51, 51, 73, 51, 62, 61, 51, 61, 51,
1081 61, 51, 51, 51, 51, 51, 62, 67, 67, 67,
1082
1083 67, 67, 67, 67, 67, 62, 62, 95, 145, 148,
1084 152, 665, 62, 68, 68, 68, 68, 68, 68, 68,
1085 68, 68, 69, 69, 69, 69, 69, 69, 69, 69,
1086 71, 71, 71, 71, 71, 71, 71, 71, 72, 97,
1087 74, 664, 649, 82, 75, 76, 82, 98, 99, 77,
1088 100, 648, 101, 102, 72, 103, 74, 72, 72, 74,
1089 75, 76, 74, 75, 76, 77, 97, 602, 77, 77,
1090 82, 171, 78, 82, 98, 99, 601, 100, 78, 101,
1091 102, 72, 103, 74, 72, 72, 74, 75, 76, 74,
1092 75, 76, 77, 79, 78, 77, 77, 78, 80, 79,
1093
1094 104, 105, 588, 81, 84, 569, 107, 108, 171, 79,
1095 109, 80, 79, 83, 80, 81, 110, 80, 84, 81,
1096 84, 78, 81, 84, 78, 568, 79, 104, 105, 83,
1097 567, 566, 83, 107, 108, 83, 79, 109, 80, 79,
1098 565, 80, 81, 110, 80, 84, 81, 84, 85, 81,
1099 84, 564, 86, 85, 87, 131, 83, 106, 86, 83,
1100 88, 121, 83, 132, 85, 133, 88, 85, 86, 135,
1101 87, 86, 106, 87, 136, 121, 88, 87, 121, 88,
1102 85, 559, 131, 558, 106, 86, 502, 121, 121, 501,
1103 132, 85, 133, 88, 85, 86, 135, 87, 86, 106,
1104
1105 87, 136, 121, 88, 87, 121, 88, 111, 111, 111,
1106 111, 111, 111, 111, 111, 112, 112, 112, 112, 112,
1107 112, 112, 112, 112, 113, 113, 113, 113, 113, 113,
1108 113, 113, 114, 114, 114, 114, 114, 114, 114, 114,
1109 115, 115, 115, 115, 115, 115, 115, 115, 115, 116,
1110 116, 116, 116, 116, 116, 116, 116, 117, 118, 119,
1111 187, 139, 477, 120, 134, 476, 118, 117, 140, 120,
1112 123, 122, 134, 117, 118, 119, 117, 118, 119, 120,
1113 122, 444, 120, 443, 141, 197, 123, 122, 139, 123,
1114 122, 134, 123, 118, 117, 140, 120, 187, 142, 134,
1115
1116 117, 118, 119, 117, 118, 119, 120, 122, 124, 120,
1117 125, 141, 126, 123, 122, 434, 123, 122, 124, 123,
1118 127, 128, 197, 125, 124, 142, 125, 124, 126, 125,
1119 130, 126, 433, 385, 126, 143, 127, 128, 144, 127,
1120 128, 129, 128, 382, 349, 124, 130, 129, 146, 130,
1121 125, 124, 147, 125, 124, 126, 125, 129, 126, 137,
1122 129, 126, 143, 127, 128, 144, 127, 128, 137, 128,
1123 137, 138, 149, 130, 129, 146, 130, 150, 151, 147,
1124 138, 154, 138, 153, 129, 283, 137, 129, 282, 280,
1125 279, 263, 262, 210, 209, 137, 49, 137, 138, 149,
1126
1127 25, 24, 23, 172, 150, 151, 173, 138, 154, 138,
1128 9, 153, 155, 155, 155, 155, 155, 155, 155, 155,
1129 153, 156, 156, 156, 156, 156, 156, 156, 156, 157,
1130 172, 158, 174, 173, 175, 159, 160, 161, 153, 176,
1131 178, 163, 179, 180, 181, 157, 8, 158, 157, 157,
1132 158, 159, 160, 161, 159, 160, 161, 163, 3, 174,
1133 163, 175, 2, 202, 0, 161, 176, 178, 0, 179,
1134 180, 181, 157, 165, 158, 157, 157, 158, 159, 160,
1135 161, 159, 160, 161, 163, 164, 167, 163, 165, 165,
1136 164, 166, 165, 166, 182, 168, 183, 0, 0, 184,
1137
1138 202, 164, 167, 177, 164, 167, 169, 166, 170, 168,
1139 166, 168, 185, 177, 168, 165, 165, 164, 186, 165,
1140 166, 182, 169, 183, 170, 169, 184, 170, 164, 167,
1141 188, 164, 167, 189, 166, 190, 168, 166, 168, 185,
1142 177, 168, 191, 192, 193, 186, 194, 195, 196, 169,
1143 198, 170, 169, 199, 170, 200, 199, 188, 200, 201,
1144 189, 203, 190, 204, 0, 0, 0, 0, 207, 191,
1145 192, 193, 242, 194, 195, 196, 0, 198, 0, 0,
1146 199, 271, 200, 199, 207, 200, 201, 207, 203, 207,
1147 204, 205, 205, 205, 205, 205, 205, 205, 205, 206,
1148
1149 206, 206, 206, 206, 206, 206, 206, 211, 212, 242,
1150 217, 207, 218, 211, 207, 213, 207, 214, 271, 215,
1151 219, 220, 221, 211, 212, 216, 211, 212, 212, 222,
1152 223, 213, 224, 214, 213, 215, 214, 217, 215, 218,
1153 211, 216, 226, 227, 216, 216, 228, 219, 220, 221,
1154 211, 212, 229, 211, 212, 212, 222, 223, 213, 224,
1155 214, 213, 215, 214, 230, 215, 231, 232, 216, 226,
1156 227, 216, 216, 228, 233, 234, 235, 236, 237, 229,
1157 238, 239, 240, 241, 243, 244, 245, 246, 247, 248,
1158 249, 230, 250, 231, 232, 251, 252, 253, 254, 255,
1159
1160 256, 233, 234, 235, 236, 237, 257, 238, 239, 240,
1161 241, 243, 244, 245, 246, 247, 248, 249, 258, 250,
1162 0, 0, 251, 252, 253, 254, 255, 256, 272, 0,
1163 269, 270, 0, 257, 259, 259, 259, 259, 259, 259,
1164 259, 259, 259, 266, 284, 258, 260, 260, 260, 260,
1165 260, 260, 260, 260, 261, 267, 268, 269, 270, 266,
1166 261, 273, 266, 274, 275, 272, 276, 277, 278, 281,
1167 261, 267, 268, 261, 267, 268, 285, 286, 287, 288,
1168 289, 284, 290, 291, 292, 293, 266, 261, 273, 266,
1169 274, 275, 294, 276, 277, 278, 281, 261, 267, 268,
1170
1171 261, 267, 268, 285, 296, 287, 288, 297, 295, 290,
1172 291, 292, 293, 298, 286, 299, 300, 289, 295, 294,
1173 301, 302, 303, 310, 304, 305, 306, 307, 308, 309,
1174 316, 296, 0, 0, 297, 317, 318, 295, 0, 0,
1175 0, 0, 299, 300, 323, 295, 0, 301, 302, 303,
1176 298, 304, 305, 306, 307, 308, 309, 316, 319, 313,
1177 310, 320, 317, 318, 295, 311, 311, 311, 311, 311,
1178 311, 311, 311, 311, 313, 313, 321, 322, 313, 324,
1179 325, 323, 326, 327, 328, 319, 329, 330, 320, 331,
1180 332, 333, 334, 336, 337, 338, 339, 340, 341, 342,
1181
1182 343, 313, 313, 321, 322, 313, 324, 325, 344, 326,
1183 327, 328, 345, 329, 330, 346, 331, 332, 333, 334,
1184 336, 337, 338, 339, 340, 341, 342, 343, 347, 350,
1185 351, 352, 353, 353, 355, 344, 354, 354, 356, 345,
1186 357, 358, 346, 359, 360, 361, 363, 364, 366, 367,
1187 0, 0, 0, 0, 0, 347, 350, 351, 352, 353,
1188 353, 355, 370, 354, 354, 356, 371, 372, 358, 373,
1189 359, 360, 361, 363, 364, 366, 367, 357, 368, 368,
1190 368, 368, 368, 368, 368, 368, 368, 369, 374, 370,
1191 375, 376, 377, 371, 372, 378, 373, 379, 380, 381,
1192
1193 383, 384, 386, 369, 387, 388, 369, 389, 369, 390,
1194 391, 392, 393, 394, 395, 374, 396, 375, 376, 377,
1195 397, 398, 378, 399, 379, 380, 381, 383, 384, 386,
1196 369, 387, 388, 369, 389, 369, 390, 391, 392, 393,
1197 394, 395, 400, 396, 401, 403, 404, 397, 398, 405,
1198 399, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1199 415, 417, 416, 418, 419, 420, 421, 414, 429, 400,
1200 416, 401, 403, 404, 423, 424, 405, 425, 406, 407,
1201 408, 409, 410, 411, 412, 413, 414, 415, 417, 416,
1202 418, 419, 420, 421, 414, 422, 426, 416, 427, 428,
1203
1204 430, 423, 424, 431, 425, 429, 432, 435, 436, 437,
1205 438, 422, 439, 440, 422, 441, 442, 445, 446, 447,
1206 448, 449, 450, 426, 451, 427, 428, 430, 452, 453,
1207 431, 0, 454, 432, 435, 436, 437, 438, 422, 439,
1208 440, 422, 441, 442, 445, 446, 447, 448, 455, 450,
1209 456, 451, 457, 458, 459, 452, 453, 460, 449, 454,
1210 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
1211 471, 474, 475, 478, 479, 455, 480, 456, 481, 457,
1212 458, 459, 482, 483, 460, 484, 485, 461, 462, 463,
1213 464, 465, 466, 467, 468, 469, 470, 471, 474, 475,
1214
1215 478, 479, 486, 480, 487, 481, 488, 489, 490, 482,
1216 483, 491, 484, 485, 492, 493, 494, 495, 496, 497,
1217 498, 499, 500, 503, 504, 505, 506, 507, 508, 486,
1218 509, 487, 510, 488, 489, 490, 511, 512, 491, 513,
1219 514, 492, 493, 494, 495, 496, 497, 498, 499, 500,
1220 503, 504, 505, 506, 507, 508, 515, 509, 516, 510,
1221 519, 520, 521, 511, 512, 522, 513, 514, 523, 524,
1222 525, 526, 529, 530, 531, 532, 533, 534, 535, 536,
1223 537, 538, 539, 515, 540, 516, 541, 519, 520, 521,
1224 542, 543, 522, 544, 545, 523, 524, 525, 526, 529,
1225
1226 530, 531, 532, 533, 534, 535, 536, 537, 538, 539,
1227 546, 540, 547, 541, 548, 549, 550, 542, 543, 551,
1228 544, 545, 552, 553, 556, 557, 560, 561, 562, 563,
1229 572, 573, 575, 576, 578, 579, 580, 546, 581, 547,
1230 582, 548, 549, 550, 583, 584, 551, 585, 586, 552,
1231 553, 556, 557, 560, 561, 562, 563, 572, 573, 575,
1232 576, 578, 579, 580, 587, 581, 589, 582, 590, 591,
1233 592, 583, 584, 593, 585, 586, 594, 595, 596, 597,
1234 598, 599, 600, 603, 604, 607, 608, 609, 610, 613,
1235 614, 587, 615, 589, 616, 590, 591, 592, 617, 619,
1236
1237 593, 621, 622, 594, 595, 596, 597, 598, 599, 600,
1238 603, 604, 607, 608, 609, 610, 613, 614, 623, 615,
1239 624, 616, 625, 626, 627, 617, 619, 628, 621, 622,
1240 629, 630, 632, 633, 634, 635, 636, 637, 638, 639,
1241 640, 641, 642, 643, 646, 623, 647, 624, 650, 625,
1242 626, 627, 651, 652, 628, 653, 654, 629, 630, 632,
1243 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
1244 643, 646, 655, 647, 658, 650, 659, 660, 661, 651,
1245 652, 662, 653, 654, 663, 666, 667, 668, 669, 670,
1246 671, 672, 673, 674, 675, 676, 677, 678, 679, 655,
1247
1248 680, 658, 681, 659, 660, 661, 686, 687, 662, 688,
1249 689, 663, 666, 667, 668, 669, 670, 671, 672, 673,
1250 674, 675, 676, 677, 678, 679, 690, 680, 691, 681,
1251 700, 701, 702, 686, 687, 704, 688, 689, 705, 707,
1252 710, 711, 712, 713, 714, 715, 716, 717, 718, 719,
1253 726, 729, 732, 690, 733, 691, 734, 700, 701, 702,
1254 735, 736, 704, 737, 742, 705, 707, 710, 711, 712,
1255 713, 714, 715, 716, 717, 718, 719, 726, 729, 732,
1256 743, 733, 744, 734, 746, 748, 749, 735, 736, 752,
1257 737, 742, 753, 758, 759, 764, 765, 766, 767, 768,
1258
1259 769, 774, 775, 776, 777, 780, 781, 743, 784, 744,
1260 785, 746, 748, 749, 0, 0, 752, 0, 0, 753,
1261 758, 759, 764, 765, 766, 767, 768, 769, 774, 775,
1262 776, 777, 780, 781, 0, 784, 0, 785, 791, 0,
1263 791, 793, 793, 793, 790, 790, 790, 790, 790, 790,
1264 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1265 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1266 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1267 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1268 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1269
1270 790, 790, 790, 790, 790, 790, 790, 790, 790, 790,
1271 790, 790, 790, 790, 790, 790
1272 } ;
1273
1274 static yyconst flex_int16_t yy_rule_linenum[94] =
1275 { 0,
1276 76, 79, 81, 83, 87, 88, 90, 91, 92, 93,
1277 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
1278 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1279 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1280 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1281 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1282 144, 145, 146, 148, 149, 151, 152, 153, 154, 155,
1283 156, 158, 159, 162, 167, 168, 169, 171, 172, 173,
1284 174, 175, 176, 177, 178, 179, 181, 187, 193, 199,
1285 205, 211, 217
1286
1287 } ;
1288
1289 /* The intent behind this definition is that it'll catch
1290 * any uses of REJECT which flex missed.
1291 */
1292 #define REJECT reject_used_but_not_detected
1293 #define yymore() yymore_used_but_not_detected
1294 #define YY_MORE_ADJ 0
1295 #define YY_RESTORE_YY_MORE_OFFSET
1296 #line 1 "libmemcached/options/scanner.l"
1297 /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
1298 *
1299 * Libmemcached Scanner and Parser
1300 *
1301 * Copyright (C) 2011 DataDifferental, http://datadifferential.com
1302 *
1303 * This program is free software: you can redistribute it and/or modify
1304 * it under the terms of the GNU Affero General Public License as
1305 * published by the Free Software Foundation, either version 3 of the
1306 * License, or (at your option) any later version.
1307 *
1308 * This program is distributed in the hope that it will be useful,
1309 * but WITHOUT ANY WARRANTY; without even the implied warranty of
1310 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1311 * GNU Affero General Public License for more details.
1312 *
1313 * You should have received a copy of the GNU Affero General Public License
1314 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1315 */
1316
1317 #line 37 "libmemcached/options/scanner.l"
1318 #include <cstdlib>
1319 #include <cstring>
1320
1321 #define PARAM config_get_extra(yyscanner)
1322
1323 #define get_lex_chars(buffer, result, max_size, context) \
1324 { \
1325 if (context->pos >= context->length) \
1326 { \
1327 result= YY_NULL; \
1328 } \
1329 else \
1330 { \
1331 result= context->length - context->pos; \
1332 result > max_size ? result = max_size : 0; \
1333 memcpy(buffer, context->buf + context->pos, result); \
1334 context->pos += result; \
1335 } \
1336 }
1337
1338
1339 #define YY_INPUT(buffer, result, max_size) get_lex_chars(buffer, result, max_size, PARAM)
1340
1341 #line 1342 "libmemcached/options/scanner.cc"
1342
1343 #define INITIAL 0
1344
1345 #ifndef YY_NO_UNISTD_H
1346 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1347 * down here because we want the user's section 1 to have been scanned first.
1348 * The user has a chance to override it with an option.
1349 */
1350 /* %if-c-only */
1351 #include <unistd.h>
1352 /* %endif */
1353 /* %if-c++-only */
1354 /* %endif */
1355 #endif
1356
1357 #ifndef YY_EXTRA_TYPE
1358 #define YY_EXTRA_TYPE void *
1359 #endif
1360
1361 /* %if-c-only Reentrant structure and macros (non-C++). */
1362 /* %if-reentrant */
1363
1364 /* Holds the entire state of the reentrant scanner. */
1365 struct yyguts_t
1366 {
1367
1368 /* User-defined. Not touched by flex. */
1369 YY_EXTRA_TYPE yyextra_r;
1370
1371 /* The rest are the same as the globals declared in the non-reentrant scanner. */
1372 FILE *yyin_r, *yyout_r;
1373 size_t yy_buffer_stack_top; /**< index of top of stack. */
1374 size_t yy_buffer_stack_max; /**< capacity of stack. */
1375 YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
1376 char yy_hold_char;
1377 int yy_n_chars;
1378 int yyleng_r;
1379 char *yy_c_buf_p;
1380 int yy_init;
1381 int yy_start;
1382 int yy_did_buffer_switch_on_eof;
1383 int yy_start_stack_ptr;
1384 int yy_start_stack_depth;
1385 int *yy_start_stack;
1386 yy_state_type yy_last_accepting_state;
1387 char* yy_last_accepting_cpos;
1388
1389 int yylineno_r;
1390 int yy_flex_debug_r;
1391
1392 char *yytext_r;
1393 int yy_more_flag;
1394 int yy_more_len;
1395
1396 YYSTYPE * yylval_r;
1397
1398 }; /* end struct yyguts_t */
1399
1400 /* %if-c-only */
1401
1402 static int yy_init_globals (yyscan_t yyscanner );
1403
1404 /* %endif */
1405
1406 /* %if-reentrant */
1407
1408 /* This must go here because YYSTYPE and YYLTYPE are included
1409 * from bison output in section 1.*/
1410 # define yylval yyg->yylval_r
1411
1412 int config_lex_init (yyscan_t* scanner);
1413
1414 int config_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
1415
1416 /* %endif */
1417
1418 /* %endif End reentrant structures and macros. */
1419
1420 /* Accessor methods to globals.
1421 These are made visible to non-reentrant scanners for convenience. */
1422
1423 int config_lex_destroy (yyscan_t yyscanner );
1424
1425 int config_get_debug (yyscan_t yyscanner );
1426
1427 void config_set_debug (int debug_flag ,yyscan_t yyscanner );
1428
1429 YY_EXTRA_TYPE config_get_extra (yyscan_t yyscanner );
1430
1431 void config_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
1432
1433 FILE *config_get_in (yyscan_t yyscanner );
1434
1435 void config_set_in (FILE * in_str ,yyscan_t yyscanner );
1436
1437 FILE *config_get_out (yyscan_t yyscanner );
1438
1439 void config_set_out (FILE * out_str ,yyscan_t yyscanner );
1440
1441 int config_get_leng (yyscan_t yyscanner );
1442
1443 char *config_get_text (yyscan_t yyscanner );
1444
1445 int config_get_lineno (yyscan_t yyscanner );
1446
1447 void config_set_lineno (int line_number ,yyscan_t yyscanner );
1448
1449 int config_get_column (yyscan_t yyscanner );
1450
1451 void config_set_column (int column_no ,yyscan_t yyscanner );
1452
1453 /* %if-bison-bridge */
1454
1455 YYSTYPE * config_get_lval (yyscan_t yyscanner );
1456
1457 void config_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
1458
1459 /* %endif */
1460
1461 /* Macros after this point can all be overridden by user definitions in
1462 * section 1.
1463 */
1464
1465 #ifndef YY_SKIP_YYWRAP
1466 #ifdef __cplusplus
1467 extern "C" int config_wrap (yyscan_t yyscanner );
1468 #else
1469 extern int config_wrap (yyscan_t yyscanner );
1470 #endif
1471 #endif
1472
1473 /* %not-for-header */
1474
1475 /* %ok-for-header */
1476
1477 /* %endif */
1478
1479 #ifndef yytext_ptr
1480 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
1481 #endif
1482
1483 #ifdef YY_NEED_STRLEN
1484 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
1485 #endif
1486
1487 #ifndef YY_NO_INPUT
1488 /* %if-c-only Standard (non-C++) definition */
1489 /* %not-for-header */
1490
1491 #ifdef __cplusplus
1492 static int yyinput (yyscan_t yyscanner );
1493 #else
1494 static int input (yyscan_t yyscanner );
1495 #endif
1496 /* %ok-for-header */
1497
1498 /* %endif */
1499 #endif
1500
1501 /* %if-c-only */
1502
1503 /* %endif */
1504
1505 /* Amount of stuff to slurp up with each read. */
1506 #ifndef YY_READ_BUF_SIZE
1507 #define YY_READ_BUF_SIZE 8192
1508 #endif
1509
1510 /* Copy whatever the last rule matched to the standard output. */
1511 #ifndef ECHO
1512 /* %if-c-only Standard (non-C++) definition */
1513 /* This used to be an fputs(), but since the string might contain NUL's,
1514 * we now use fwrite().
1515 */
1516 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1517 /* %endif */
1518 /* %if-c++-only C++ definition */
1519 /* %endif */
1520 #endif
1521
1522 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1523 * is returned in "result".
1524 */
1525 #ifndef YY_INPUT
1526 #define YY_INPUT(buf,result,max_size) \
1527 /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
1528 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1529 { \
1530 int c = '*'; \
1531 unsigned n; \
1532 for ( n = 0; n < max_size && \
1533 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1534 buf[n] = (char) c; \
1535 if ( c == '\n' ) \
1536 buf[n++] = (char) c; \
1537 if ( c == EOF && ferror( yyin ) ) \
1538 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1539 result = n; \
1540 } \
1541 else \
1542 { \
1543 errno=0; \
1544 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1545 { \
1546 if( errno != EINTR) \
1547 { \
1548 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1549 break; \
1550 } \
1551 errno=0; \
1552 clearerr(yyin); \
1553 } \
1554 }\
1555 \
1556 /* %if-c++-only C++ definition \ */\
1557 /* %endif */
1558
1559 #endif
1560
1561 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1562 * we don't want an extra ';' after the "return" because that will cause
1563 * some compilers to complain about unreachable statements.
1564 */
1565 #ifndef yyterminate
1566 #define yyterminate() return YY_NULL
1567 #endif
1568
1569 /* Number of entries by which start-condition stack grows. */
1570 #ifndef YY_START_STACK_INCR
1571 #define YY_START_STACK_INCR 25
1572 #endif
1573
1574 /* Report a fatal error. */
1575 #ifndef YY_FATAL_ERROR
1576 /* %if-c-only */
1577 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1578 /* %endif */
1579 /* %if-c++-only */
1580 /* %endif */
1581 #endif
1582
1583 /* %if-tables-serialization structures and prototypes */
1584 /* %not-for-header */
1585
1586 /* %ok-for-header */
1587
1588 /* %not-for-header */
1589
1590 /* %tables-yydmap generated elements */
1591 /* %endif */
1592 /* end tables serialization structures and prototypes */
1593
1594 /* %ok-for-header */
1595
1596 /* Default declaration of generated scanner - a define so the user can
1597 * easily add parameters.
1598 */
1599 #ifndef YY_DECL
1600 #define YY_DECL_IS_OURS 1
1601 /* %if-c-only Standard (non-C++) definition */
1602
1603 extern int config_lex \
1604 (YYSTYPE * yylval_param ,yyscan_t yyscanner);
1605
1606 #define YY_DECL int config_lex \
1607 (YYSTYPE * yylval_param , yyscan_t yyscanner)
1608 /* %endif */
1609 /* %if-c++-only C++ definition */
1610 /* %endif */
1611 #endif /* !YY_DECL */
1612
1613 /* Code executed at the beginning of each rule, after yytext and yyleng
1614 * have been set up.
1615 */
1616 #ifndef YY_USER_ACTION
1617 #define YY_USER_ACTION
1618 #endif
1619
1620 /* Code executed at the end of each rule. */
1621 #ifndef YY_BREAK
1622 #define YY_BREAK break;
1623 #endif
1624
1625 /* %% [6.0] YY_RULE_SETUP definition goes here */
1626 #define YY_RULE_SETUP \
1627 if ( yyleng > 0 ) \
1628 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1629 (yytext[yyleng - 1] == '\n'); \
1630 YY_USER_ACTION
1631
1632 /* %not-for-header */
1633
1634 /** The main scanner function which does all the work.
1635 */
1636 YY_DECL
1637 {
1638 register yy_state_type yy_current_state;
1639 register char *yy_cp, *yy_bp;
1640 register int yy_act;
1641 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1642
1643 /* %% [7.0] user's declarations go here */
1644 #line 73 "libmemcached/options/scanner.l"
1645
1646
1647
1648 #line 1649 "libmemcached/options/scanner.cc"
1649
1650 yylval = yylval_param;
1651
1652 if ( !yyg->yy_init )
1653 {
1654 yyg->yy_init = 1;
1655
1656 #ifdef YY_USER_INIT
1657 YY_USER_INIT;
1658 #endif
1659
1660 if ( ! yyg->yy_start )
1661 yyg->yy_start = 1; /* first start state */
1662
1663 if ( ! yyin )
1664 /* %if-c-only */
1665 yyin = stdin;
1666 /* %endif */
1667 /* %if-c++-only */
1668 /* %endif */
1669
1670 if ( ! yyout )
1671 /* %if-c-only */
1672 yyout = stdout;
1673 /* %endif */
1674 /* %if-c++-only */
1675 /* %endif */
1676
1677 if ( ! YY_CURRENT_BUFFER ) {
1678 config_ensure_buffer_stack (yyscanner);
1679 YY_CURRENT_BUFFER_LVALUE =
1680 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
1681 }
1682
1683 config__load_buffer_state(yyscanner );
1684 }
1685
1686 while ( 1 ) /* loops until end-of-file is reached */
1687 {
1688 /* %% [8.0] yymore()-related code goes here */
1689 yy_cp = yyg->yy_c_buf_p;
1690
1691 /* Support of yytext. */
1692 *yy_cp = yyg->yy_hold_char;
1693
1694 /* yy_bp points to the position in yy_ch_buf of the start of
1695 * the current run.
1696 */
1697 yy_bp = yy_cp;
1698
1699 /* %% [9.0] code to set up and find next match goes here */
1700 yy_current_state = yyg->yy_start;
1701 yy_current_state += YY_AT_BOL();
1702 yy_match:
1703 do
1704 {
1705 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1706 if ( yy_accept[yy_current_state] )
1707 {
1708 yyg->yy_last_accepting_state = yy_current_state;
1709 yyg->yy_last_accepting_cpos = yy_cp;
1710 }
1711 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1712 {
1713 yy_current_state = (int) yy_def[yy_current_state];
1714 if ( yy_current_state >= 791 )
1715 yy_c = yy_meta[(unsigned int) yy_c];
1716 }
1717 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1718 ++yy_cp;
1719 }
1720 while ( yy_base[yy_current_state] != 2145 );
1721
1722 yy_find_action:
1723 /* %% [10.0] code to find the action number goes here */
1724 yy_act = yy_accept[yy_current_state];
1725 if ( yy_act == 0 )
1726 { /* have to back up */
1727 yy_cp = yyg->yy_last_accepting_cpos;
1728 yy_current_state = yyg->yy_last_accepting_state;
1729 yy_act = yy_accept[yy_current_state];
1730 }
1731
1732 YY_DO_BEFORE_ACTION;
1733
1734 /* %% [11.0] code for yylineno update goes here */
1735
1736 do_action: /* This label is used only to access EOF actions. */
1737
1738 /* %% [12.0] debug code goes here */
1739 if ( yy_flex_debug )
1740 {
1741 if ( yy_act == 0 )
1742 fprintf( stderr, "--scanner backing up\n" );
1743 else if ( yy_act < 94 )
1744 fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
1745 (long)yy_rule_linenum[yy_act], yytext );
1746 else if ( yy_act == 94 )
1747 fprintf( stderr, "--accepting default rule (\"%s\")\n",
1748 yytext );
1749 else if ( yy_act == 95 )
1750 fprintf( stderr, "--(end of buffer or a NUL)\n" );
1751 else
1752 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
1753 }
1754
1755 switch ( yy_act )
1756 { /* beginning of action switch */
1757 /* %% [13.0] actions go here */
1758 case 0: /* must back up */
1759 /* undo the effects of YY_DO_BEFORE_ACTION */
1760 *yy_cp = yyg->yy_hold_char;
1761 yy_cp = yyg->yy_last_accepting_cpos;
1762 yy_current_state = yyg->yy_last_accepting_state;
1763 goto yy_find_action;
1764
1765 case 1:
1766 YY_RULE_SETUP
1767 #line 76 "libmemcached/options/scanner.l"
1768 { return yytext[0];}
1769 YY_BREAK
1770 case 2:
1771 YY_RULE_SETUP
1772 #line 79 "libmemcached/options/scanner.l"
1773 { yylval->number = atoi(yytext); return (NUMBER); }
1774 YY_BREAK
1775 case 3:
1776 /* rule 3 can match eol */
1777 YY_RULE_SETUP
1778 #line 81 "libmemcached/options/scanner.l"
1779 ; /* skip whitespace */
1780 YY_BREAK
1781 case 4:
1782 *yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
1783 yyg->yy_c_buf_p = yy_cp -= 1;
1784 YY_DO_BEFORE_ACTION; /* set up yytext again */
1785 YY_RULE_SETUP
1786 #line 83 "libmemcached/options/scanner.l"
1787 {
1788 return COMMENT;
1789 }
1790 YY_BREAK
1791 case 5:
1792 YY_RULE_SETUP
1793 #line 87 "libmemcached/options/scanner.l"
1794 { yyextra->begin= yytext; return SERVER; }
1795 YY_BREAK
1796 case 6:
1797 YY_RULE_SETUP
1798 #line 88 "libmemcached/options/scanner.l"
1799 { yyextra->begin= yytext; return SERVERS_OPTION; }
1800 YY_BREAK
1801 case 7:
1802 YY_RULE_SETUP
1803 #line 90 "libmemcached/options/scanner.l"
1804 { yyextra->begin= yytext; return VERIFY_KEY; }
1805 YY_BREAK
1806 case 8:
1807 YY_RULE_SETUP
1808 #line 91 "libmemcached/options/scanner.l"
1809 { yyextra->begin= yytext; return VERIFY_KEY; }
1810 YY_BREAK
1811 case 9:
1812 YY_RULE_SETUP
1813 #line 92 "libmemcached/options/scanner.l"
1814 { yyextra->begin= yytext; return AUTO_EJECT_HOSTS; }
1815 YY_BREAK
1816 case 10:
1817 YY_RULE_SETUP
1818 #line 93 "libmemcached/options/scanner.l"
1819 { yyextra->begin= yytext; return AUTO_EJECT_HOSTS; }
1820 YY_BREAK
1821 case 11:
1822 YY_RULE_SETUP
1823 #line 94 "libmemcached/options/scanner.l"
1824 { yyextra->begin= yytext; return BINARY_PROTOCOL; }
1825 YY_BREAK
1826 case 12:
1827 YY_RULE_SETUP
1828 #line 95 "libmemcached/options/scanner.l"
1829 { yyextra->begin= yytext; return BINARY_PROTOCOL; }
1830 YY_BREAK
1831 case 13:
1832 YY_RULE_SETUP
1833 #line 96 "libmemcached/options/scanner.l"
1834 { yyextra->begin= yytext; return BUFFER_REQUESTS; }
1835 YY_BREAK
1836 case 14:
1837 YY_RULE_SETUP
1838 #line 97 "libmemcached/options/scanner.l"
1839 { yyextra->begin= yytext; return BUFFER_REQUESTS; }
1840 YY_BREAK
1841 case 15:
1842 YY_RULE_SETUP
1843 #line 98 "libmemcached/options/scanner.l"
1844 { yyextra->begin= yytext; return CONFIGURE_FILE; }
1845 YY_BREAK
1846 case 16:
1847 YY_RULE_SETUP
1848 #line 99 "libmemcached/options/scanner.l"
1849 { yyextra->begin= yytext; return CONFIGURE_FILE; }
1850 YY_BREAK
1851 case 17:
1852 YY_RULE_SETUP
1853 #line 100 "libmemcached/options/scanner.l"
1854 { yyextra->begin= yytext; return CONNECT_TIMEOUT; }
1855 YY_BREAK
1856 case 18:
1857 YY_RULE_SETUP
1858 #line 101 "libmemcached/options/scanner.l"
1859 { yyextra->begin= yytext; return CONNECT_TIMEOUT; }
1860 YY_BREAK
1861 case 19:
1862 YY_RULE_SETUP
1863 #line 102 "libmemcached/options/scanner.l"
1864 { yyextra->begin= yytext; return DISTRIBUTION; }
1865 YY_BREAK
1866 case 20:
1867 YY_RULE_SETUP
1868 #line 103 "libmemcached/options/scanner.l"
1869 { yyextra->begin= yytext; return HASH; }
1870 YY_BREAK
1871 case 21:
1872 YY_RULE_SETUP
1873 #line 104 "libmemcached/options/scanner.l"
1874 { yyextra->begin= yytext; return HASH_WITH_PREFIX_KEY; }
1875 YY_BREAK
1876 case 22:
1877 YY_RULE_SETUP
1878 #line 105 "libmemcached/options/scanner.l"
1879 { yyextra->begin= yytext; return HASH_WITH_PREFIX_KEY; }
1880 YY_BREAK
1881 case 23:
1882 YY_RULE_SETUP
1883 #line 106 "libmemcached/options/scanner.l"
1884 { yyextra->begin= yytext; return IO_BYTES_WATERMARK; }
1885 YY_BREAK
1886 case 24:
1887 YY_RULE_SETUP
1888 #line 107 "libmemcached/options/scanner.l"
1889 { yyextra->begin= yytext; return IO_BYTES_WATERMARK; }
1890 YY_BREAK
1891 case 25:
1892 YY_RULE_SETUP
1893 #line 108 "libmemcached/options/scanner.l"
1894 { yyextra->begin= yytext; return IO_KEY_PREFETCH; }
1895 YY_BREAK
1896 case 26:
1897 YY_RULE_SETUP
1898 #line 109 "libmemcached/options/scanner.l"
1899 { yyextra->begin= yytext; return IO_KEY_PREFETCH; }
1900 YY_BREAK
1901 case 27:
1902 YY_RULE_SETUP
1903 #line 110 "libmemcached/options/scanner.l"
1904 { yyextra->begin= yytext; return IO_MSG_WATERMARK; }
1905 YY_BREAK
1906 case 28:
1907 YY_RULE_SETUP
1908 #line 111 "libmemcached/options/scanner.l"
1909 { yyextra->begin= yytext; return IO_MSG_WATERMARK; }
1910 YY_BREAK
1911 case 29:
1912 YY_RULE_SETUP
1913 #line 112 "libmemcached/options/scanner.l"
1914 { yyextra->begin= yytext; return KETAMA_WEIGHTED; }
1915 YY_BREAK
1916 case 30:
1917 YY_RULE_SETUP
1918 #line 113 "libmemcached/options/scanner.l"
1919 { yyextra->begin= yytext; return KETAMA_WEIGHTED; }
1920 YY_BREAK
1921 case 31:
1922 YY_RULE_SETUP
1923 #line 114 "libmemcached/options/scanner.l"
1924 { yyextra->begin= yytext; return NOREPLY; }
1925 YY_BREAK
1926 case 32:
1927 YY_RULE_SETUP
1928 #line 115 "libmemcached/options/scanner.l"
1929 { yyextra->begin= yytext; return NUMBER_OF_REPLICAS; }
1930 YY_BREAK
1931 case 33:
1932 YY_RULE_SETUP
1933 #line 116 "libmemcached/options/scanner.l"
1934 { yyextra->begin= yytext; return NUMBER_OF_REPLICAS; }
1935 YY_BREAK
1936 case 34:
1937 YY_RULE_SETUP
1938 #line 117 "libmemcached/options/scanner.l"
1939 { yyextra->begin= yytext; return POLL_TIMEOUT; }
1940 YY_BREAK
1941 case 35:
1942 YY_RULE_SETUP
1943 #line 118 "libmemcached/options/scanner.l"
1944 { yyextra->begin= yytext; return POLL_TIMEOUT; }
1945 YY_BREAK
1946 case 36:
1947 YY_RULE_SETUP
1948 #line 119 "libmemcached/options/scanner.l"
1949 { yyextra->begin= yytext; return RANDOMIZE_REPLICA_READ; }
1950 YY_BREAK
1951 case 37:
1952 YY_RULE_SETUP
1953 #line 120 "libmemcached/options/scanner.l"
1954 { yyextra->begin= yytext; return RANDOMIZE_REPLICA_READ; }
1955 YY_BREAK
1956 case 38:
1957 YY_RULE_SETUP
1958 #line 121 "libmemcached/options/scanner.l"
1959 { yyextra->begin= yytext; return RCV_TIMEOUT; }
1960 YY_BREAK
1961 case 39:
1962 YY_RULE_SETUP
1963 #line 122 "libmemcached/options/scanner.l"
1964 { yyextra->begin= yytext; return RCV_TIMEOUT; }
1965 YY_BREAK
1966 case 40:
1967 YY_RULE_SETUP
1968 #line 123 "libmemcached/options/scanner.l"
1969 { yyextra->begin= yytext; return RETRY_TIMEOUT; }
1970 YY_BREAK
1971 case 41:
1972 YY_RULE_SETUP
1973 #line 124 "libmemcached/options/scanner.l"
1974 { yyextra->begin= yytext; return RETRY_TIMEOUT; }
1975 YY_BREAK
1976 case 42:
1977 YY_RULE_SETUP
1978 #line 125 "libmemcached/options/scanner.l"
1979 { yyextra->begin= yytext; return SERVER_FAILURE_LIMIT; }
1980 YY_BREAK
1981 case 43:
1982 YY_RULE_SETUP
1983 #line 126 "libmemcached/options/scanner.l"
1984 { yyextra->begin= yytext; return SERVER_FAILURE_LIMIT; }
1985 YY_BREAK
1986 case 44:
1987 YY_RULE_SETUP
1988 #line 127 "libmemcached/options/scanner.l"
1989 { yyextra->begin= yytext; return SND_TIMEOUT; }
1990 YY_BREAK
1991 case 45:
1992 YY_RULE_SETUP
1993 #line 128 "libmemcached/options/scanner.l"
1994 { yyextra->begin= yytext; return SND_TIMEOUT; }
1995 YY_BREAK
1996 case 46:
1997 YY_RULE_SETUP
1998 #line 129 "libmemcached/options/scanner.l"
1999 { yyextra->begin= yytext; return SOCKET_RECV_SIZE; }
2000 YY_BREAK
2001 case 47:
2002 YY_RULE_SETUP
2003 #line 130 "libmemcached/options/scanner.l"
2004 { yyextra->begin= yytext; return SOCKET_RECV_SIZE; }
2005 YY_BREAK
2006 case 48:
2007 YY_RULE_SETUP
2008 #line 131 "libmemcached/options/scanner.l"
2009 { yyextra->begin= yytext; return SOCKET_SEND_SIZE; }
2010 YY_BREAK
2011 case 49:
2012 YY_RULE_SETUP
2013 #line 132 "libmemcached/options/scanner.l"
2014 { yyextra->begin= yytext; return SOCKET_SEND_SIZE; }
2015 YY_BREAK
2016 case 50:
2017 YY_RULE_SETUP
2018 #line 133 "libmemcached/options/scanner.l"
2019 { yyextra->begin= yytext; return SORT_HOSTS; }
2020 YY_BREAK
2021 case 51:
2022 YY_RULE_SETUP
2023 #line 134 "libmemcached/options/scanner.l"
2024 { yyextra->begin= yytext; return SORT_HOSTS; }
2025 YY_BREAK
2026 case 52:
2027 YY_RULE_SETUP
2028 #line 135 "libmemcached/options/scanner.l"
2029 { yyextra->begin= yytext; return SUPPORT_CAS; }
2030 YY_BREAK
2031 case 53:
2032 YY_RULE_SETUP
2033 #line 136 "libmemcached/options/scanner.l"
2034 { yyextra->begin= yytext; return SUPPORT_CAS; }
2035 YY_BREAK
2036 case 54:
2037 YY_RULE_SETUP
2038 #line 137 "libmemcached/options/scanner.l"
2039 { yyextra->begin= yytext; return _TCP_NODELAY; }
2040 YY_BREAK
2041 case 55:
2042 YY_RULE_SETUP
2043 #line 138 "libmemcached/options/scanner.l"
2044 { yyextra->begin= yytext; return _TCP_NODELAY; }
2045 YY_BREAK
2046 case 56:
2047 YY_RULE_SETUP
2048 #line 139 "libmemcached/options/scanner.l"
2049 { yyextra->begin= yytext; return _TCP_KEEPALIVE; }
2050 YY_BREAK
2051 case 57:
2052 YY_RULE_SETUP
2053 #line 140 "libmemcached/options/scanner.l"
2054 { yyextra->begin= yytext; return _TCP_KEEPALIVE; }
2055 YY_BREAK
2056 case 58:
2057 YY_RULE_SETUP
2058 #line 141 "libmemcached/options/scanner.l"
2059 { yyextra->begin= yytext; return _TCP_KEEPIDLE; }
2060 YY_BREAK
2061 case 59:
2062 YY_RULE_SETUP
2063 #line 142 "libmemcached/options/scanner.l"
2064 { yyextra->begin= yytext; return _TCP_KEEPIDLE; }
2065 YY_BREAK
2066 case 60:
2067 YY_RULE_SETUP
2068 #line 143 "libmemcached/options/scanner.l"
2069 { yyextra->begin= yytext; return USER_DATA; }
2070 YY_BREAK
2071 case 61:
2072 YY_RULE_SETUP
2073 #line 144 "libmemcached/options/scanner.l"
2074 { yyextra->begin= yytext; return USER_DATA; }
2075 YY_BREAK
2076 case 62:
2077 YY_RULE_SETUP
2078 #line 145 "libmemcached/options/scanner.l"
2079 { yyextra->begin= yytext; return USE_UDP; }
2080 YY_BREAK
2081 case 63:
2082 YY_RULE_SETUP
2083 #line 146 "libmemcached/options/scanner.l"
2084 { yyextra->begin= yytext; return USE_UDP; }
2085 YY_BREAK
2086 case 64:
2087 YY_RULE_SETUP
2088 #line 148 "libmemcached/options/scanner.l"
2089 { yyextra->begin= yytext; return PREFIX_KEY; }
2090 YY_BREAK
2091 case 65:
2092 YY_RULE_SETUP
2093 #line 149 "libmemcached/options/scanner.l"
2094 { yyextra->begin= yytext; return PREFIX_KEY; }
2095 YY_BREAK
2096 case 66:
2097 YY_RULE_SETUP
2098 #line 151 "libmemcached/options/scanner.l"
2099 { yyextra->begin= yytext; return INCLUDE; }
2100 YY_BREAK
2101 case 67:
2102 YY_RULE_SETUP
2103 #line 152 "libmemcached/options/scanner.l"
2104 { yyextra->begin= yytext; return RESET; }
2105 YY_BREAK
2106 case 68:
2107 YY_RULE_SETUP
2108 #line 153 "libmemcached/options/scanner.l"
2109 { yyextra->begin= yytext; return PARSER_DEBUG; }
2110 YY_BREAK
2111 case 69:
2112 YY_RULE_SETUP
2113 #line 154 "libmemcached/options/scanner.l"
2114 { yyextra->begin= yytext; return SERVERS; }
2115 YY_BREAK
2116 case 70:
2117 YY_RULE_SETUP
2118 #line 155 "libmemcached/options/scanner.l"
2119 { yyextra->begin= yytext; return END; }
2120 YY_BREAK
2121 case 71:
2122 YY_RULE_SETUP
2123 #line 156 "libmemcached/options/scanner.l"
2124 { yyextra->begin= yytext; return ERROR; }
2125 YY_BREAK
2126 case 72:
2127 YY_RULE_SETUP
2128 #line 158 "libmemcached/options/scanner.l"
2129 { return TRUE; }
2130 YY_BREAK
2131 case 73:
2132 YY_RULE_SETUP
2133 #line 159 "libmemcached/options/scanner.l"
2134 { return FALSE; }
2135 YY_BREAK
2136 case 74:
2137 YY_RULE_SETUP
2138 #line 162 "libmemcached/options/scanner.l"
2139 {
2140 yyextra->begin= yytext;
2141 return UNKNOWN_OPTION;
2142 }
2143 YY_BREAK
2144 case 75:
2145 YY_RULE_SETUP
2146 #line 167 "libmemcached/options/scanner.l"
2147 { return CONSISTENT; }
2148 YY_BREAK
2149 case 76:
2150 YY_RULE_SETUP
2151 #line 168 "libmemcached/options/scanner.l"
2152 { return MODULA; }
2153 YY_BREAK
2154 case 77:
2155 YY_RULE_SETUP
2156 #line 169 "libmemcached/options/scanner.l"
2157 { return RANDOM; }
2158 YY_BREAK
2159 case 78:
2160 YY_RULE_SETUP
2161 #line 171 "libmemcached/options/scanner.l"
2162 { return MD5; }
2163 YY_BREAK
2164 case 79:
2165 YY_RULE_SETUP
2166 #line 172 "libmemcached/options/scanner.l"
2167 { return CRC; }
2168 YY_BREAK
2169 case 80:
2170 YY_RULE_SETUP
2171 #line 173 "libmemcached/options/scanner.l"
2172 { return FNV1_64; }
2173 YY_BREAK
2174 case 81:
2175 YY_RULE_SETUP
2176 #line 174 "libmemcached/options/scanner.l"
2177 { return FNV1A_64; }
2178 YY_BREAK
2179 case 82:
2180 YY_RULE_SETUP
2181 #line 175 "libmemcached/options/scanner.l"
2182 { return FNV1_32; }
2183 YY_BREAK
2184 case 83:
2185 YY_RULE_SETUP
2186 #line 176 "libmemcached/options/scanner.l"
2187 { return FNV1A_32; }
2188 YY_BREAK
2189 case 84:
2190 YY_RULE_SETUP
2191 #line 177 "libmemcached/options/scanner.l"
2192 { return HSIEH; }
2193 YY_BREAK
2194 case 85:
2195 YY_RULE_SETUP
2196 #line 178 "libmemcached/options/scanner.l"
2197 { return MURMUR; }
2198 YY_BREAK
2199 case 86:
2200 YY_RULE_SETUP
2201 #line 179 "libmemcached/options/scanner.l"
2202 { return JENKINS; }
2203 YY_BREAK
2204 case 87:
2205 YY_RULE_SETUP
2206 #line 181 "libmemcached/options/scanner.l"
2207 {
2208 yylval->string.c_str = yytext;
2209 yylval->string.length = yyleng;
2210 return HOSTNAME_WITH_PORT;
2211 }
2212 YY_BREAK
2213 case 88:
2214 YY_RULE_SETUP
2215 #line 187 "libmemcached/options/scanner.l"
2216 {
2217 yylval->string.c_str = yytext;
2218 yylval->string.length = yyleng;
2219 return HOSTNAME;
2220 }
2221 YY_BREAK
2222 case 89:
2223 YY_RULE_SETUP
2224 #line 193 "libmemcached/options/scanner.l"
2225 {
2226 yylval->string.c_str = yytext;
2227 yylval->string.length = yyleng;
2228 return IPADDRESS_WITH_PORT;
2229 }
2230 YY_BREAK
2231 case 90:
2232 YY_RULE_SETUP
2233 #line 199 "libmemcached/options/scanner.l"
2234 {
2235 yylval->string.c_str = yytext;
2236 yylval->string.length = yyleng;
2237 return IPADDRESS;
2238 }
2239 YY_BREAK
2240 case 91:
2241 YY_RULE_SETUP
2242 #line 205 "libmemcached/options/scanner.l"
2243 {
2244 yylval->string.c_str = yytext;
2245 yylval->string.length = yyleng;
2246 return STRING;
2247 }
2248 YY_BREAK
2249 case 92:
2250 YY_RULE_SETUP
2251 #line 211 "libmemcached/options/scanner.l"
2252 {
2253 yylval->string.c_str = yytext;
2254 yylval->string.length = yyleng;
2255 return QUOTED_STRING;
2256 }
2257 YY_BREAK
2258 case 93:
2259 YY_RULE_SETUP
2260 #line 217 "libmemcached/options/scanner.l"
2261 {
2262 yyextra->begin= yytext;
2263 return UNKNOWN;
2264 }
2265 YY_BREAK
2266 case 94:
2267 YY_RULE_SETUP
2268 #line 222 "libmemcached/options/scanner.l"
2269 ECHO;
2270 YY_BREAK
2271 #line 2272 "libmemcached/options/scanner.cc"
2272 case YY_STATE_EOF(INITIAL):
2273 yyterminate();
2274
2275 case YY_END_OF_BUFFER:
2276 {
2277 /* Amount of text matched not including the EOB char. */
2278 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
2279
2280 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2281 *yy_cp = yyg->yy_hold_char;
2282 YY_RESTORE_YY_MORE_OFFSET
2283
2284 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2285 {
2286 /* We're scanning a new file or input source. It's
2287 * possible that this happened because the user
2288 * just pointed yyin at a new source and called
2289 * config_lex(). If so, then we have to assure
2290 * consistency between YY_CURRENT_BUFFER and our
2291 * globals. Here is the right place to do so, because
2292 * this is the first action (other than possibly a
2293 * back-up) that will match for the new input source.
2294 */
2295 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2296 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2297 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2298 }
2299
2300 /* Note that here we test for yy_c_buf_p "<=" to the position
2301 * of the first EOB in the buffer, since yy_c_buf_p will
2302 * already have been incremented past the NUL character
2303 * (since all states make transitions on EOB to the
2304 * end-of-buffer state). Contrast this with the test
2305 * in input().
2306 */
2307 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2308 { /* This was really a NUL. */
2309 yy_state_type yy_next_state;
2310
2311 yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
2312
2313 yy_current_state = yy_get_previous_state( yyscanner );
2314
2315 /* Okay, we're now positioned to make the NUL
2316 * transition. We couldn't have
2317 * yy_get_previous_state() go ahead and do it
2318 * for us because it doesn't know how to deal
2319 * with the possibility of jamming (and we don't
2320 * want to build jamming into it because then it
2321 * will run more slowly).
2322 */
2323
2324 yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
2325
2326 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2327
2328 if ( yy_next_state )
2329 {
2330 /* Consume the NUL. */
2331 yy_cp = ++yyg->yy_c_buf_p;
2332 yy_current_state = yy_next_state;
2333 goto yy_match;
2334 }
2335
2336 else
2337 {
2338 /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
2339 yy_cp = yyg->yy_c_buf_p;
2340 goto yy_find_action;
2341 }
2342 }
2343
2344 else switch ( yy_get_next_buffer( yyscanner ) )
2345 {
2346 case EOB_ACT_END_OF_FILE:
2347 {
2348 yyg->yy_did_buffer_switch_on_eof = 0;
2349
2350 if ( config_wrap(yyscanner ) )
2351 {
2352 /* Note: because we've taken care in
2353 * yy_get_next_buffer() to have set up
2354 * yytext, we can now set up
2355 * yy_c_buf_p so that if some total
2356 * hoser (like flex itself) wants to
2357 * call the scanner after we return the
2358 * YY_NULL, it'll still work - another
2359 * YY_NULL will get returned.
2360 */
2361 yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
2362
2363 yy_act = YY_STATE_EOF(YY_START);
2364 goto do_action;
2365 }
2366
2367 else
2368 {
2369 if ( ! yyg->yy_did_buffer_switch_on_eof )
2370 YY_NEW_FILE;
2371 }
2372 break;
2373 }
2374
2375 case EOB_ACT_CONTINUE_SCAN:
2376 yyg->yy_c_buf_p =
2377 yyg->yytext_ptr + yy_amount_of_matched_text;
2378
2379 yy_current_state = yy_get_previous_state( yyscanner );
2380
2381 yy_cp = yyg->yy_c_buf_p;
2382 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2383 goto yy_match;
2384
2385 case EOB_ACT_LAST_MATCH:
2386 yyg->yy_c_buf_p =
2387 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
2388
2389 yy_current_state = yy_get_previous_state( yyscanner );
2390
2391 yy_cp = yyg->yy_c_buf_p;
2392 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2393 goto yy_find_action;
2394 }
2395 break;
2396 }
2397
2398 default:
2399 YY_FATAL_ERROR(
2400 "fatal flex scanner internal error--no action found" );
2401 } /* end of action switch */
2402 } /* end of scanning one token */
2403 } /* end of config_lex */
2404 /* %ok-for-header */
2405
2406 /* %if-c++-only */
2407 /* %not-for-header */
2408
2409 /* %ok-for-header */
2410
2411 /* %endif */
2412
2413 /* yy_get_next_buffer - try to read in a new buffer
2414 *
2415 * Returns a code representing an action:
2416 * EOB_ACT_LAST_MATCH -
2417 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2418 * EOB_ACT_END_OF_FILE - end of file
2419 */
2420 /* %if-c-only */
2421 static int yy_get_next_buffer (yyscan_t yyscanner)
2422 /* %endif */
2423 /* %if-c++-only */
2424 /* %endif */
2425 {
2426 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2427 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2428 register char *source = yyg->yytext_ptr;
2429 register int number_to_move, i;
2430 int ret_val;
2431
2432 if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
2433 YY_FATAL_ERROR(
2434 "fatal flex scanner internal error--end of buffer missed" );
2435
2436 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2437 { /* Don't try to fill the buffer, so this is an EOF. */
2438 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
2439 {
2440 /* We matched a single character, the EOB, so
2441 * treat this as a final EOF.
2442 */
2443 return EOB_ACT_END_OF_FILE;
2444 }
2445
2446 else
2447 {
2448 /* We matched some text prior to the EOB, first
2449 * process it.
2450 */
2451 return EOB_ACT_LAST_MATCH;
2452 }
2453 }
2454
2455 /* Try to read more data. */
2456
2457 /* First move last chars to start of buffer. */
2458 number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
2459
2460 for ( i = 0; i < number_to_move; ++i )
2461 *(dest++) = *(source++);
2462
2463 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2464 /* don't do the read, it's not guaranteed to return an EOF,
2465 * just force an EOF
2466 */
2467 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
2468
2469 else
2470 {
2471 int num_to_read =
2472 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2473
2474 while ( num_to_read <= 0 )
2475 { /* Not enough room in the buffer - grow it. */
2476
2477 /* just a shorter name for the current buffer */
2478 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2479
2480 int yy_c_buf_p_offset =
2481 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
2482
2483 if ( b->yy_is_our_buffer )
2484 {
2485 int new_size = b->yy_buf_size * 2;
2486
2487 if ( new_size <= 0 )
2488 b->yy_buf_size += b->yy_buf_size / 8;
2489 else
2490 b->yy_buf_size *= 2;
2491
2492 b->yy_ch_buf = (char *)
2493 /* Include room in for 2 EOB chars. */
2494 config_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
2495 }
2496 else
2497 /* Can't grow it, we don't own it. */
2498 b->yy_ch_buf = 0;
2499
2500 if ( ! b->yy_ch_buf )
2501 YY_FATAL_ERROR(
2502 "fatal error - scanner input buffer overflow" );
2503
2504 yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2505
2506 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2507 number_to_move - 1;
2508
2509 }
2510
2511 if ( num_to_read > YY_READ_BUF_SIZE )
2512 num_to_read = YY_READ_BUF_SIZE;
2513
2514 /* Read in more data. */
2515 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2516 yyg->yy_n_chars, (size_t) num_to_read );
2517
2518 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2519 }
2520
2521 if ( yyg->yy_n_chars == 0 )
2522 {
2523 if ( number_to_move == YY_MORE_ADJ )
2524 {
2525 ret_val = EOB_ACT_END_OF_FILE;
2526 config_restart(yyin ,yyscanner);
2527 }
2528
2529 else
2530 {
2531 ret_val = EOB_ACT_LAST_MATCH;
2532 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2533 YY_BUFFER_EOF_PENDING;
2534 }
2535 }
2536
2537 else
2538 ret_val = EOB_ACT_CONTINUE_SCAN;
2539
2540 if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2541 /* Extend the array by 50%, plus the number we really need. */
2542 yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
2543 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) config_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
2544 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2545 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2546 }
2547
2548 yyg->yy_n_chars += number_to_move;
2549 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2550 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2551
2552 yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2553
2554 return ret_val;
2555 }
2556
2557 /* yy_get_previous_state - get the state just before the EOB char was reached */
2558
2559 /* %if-c-only */
2560 /* %not-for-header */
2561
2562 static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
2563 /* %endif */
2564 /* %if-c++-only */
2565 /* %endif */
2566 {
2567 register yy_state_type yy_current_state;
2568 register char *yy_cp;
2569 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2570
2571 /* %% [15.0] code to get the start state into yy_current_state goes here */
2572 yy_current_state = yyg->yy_start;
2573 yy_current_state += YY_AT_BOL();
2574
2575 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
2576 {
2577 /* %% [16.0] code to find the next state goes here */
2578 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2579 if ( yy_accept[yy_current_state] )
2580 {
2581 yyg->yy_last_accepting_state = yy_current_state;
2582 yyg->yy_last_accepting_cpos = yy_cp;
2583 }
2584 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2585 {
2586 yy_current_state = (int) yy_def[yy_current_state];
2587 if ( yy_current_state >= 791 )
2588 yy_c = yy_meta[(unsigned int) yy_c];
2589 }
2590 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2591 }
2592
2593 return yy_current_state;
2594 }
2595
2596 /* yy_try_NUL_trans - try to make a transition on the NUL character
2597 *
2598 * synopsis
2599 * next_state = yy_try_NUL_trans( current_state );
2600 */
2601 /* %if-c-only */
2602 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
2603 /* %endif */
2604 /* %if-c++-only */
2605 /* %endif */
2606 {
2607 register int yy_is_jam;
2608 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
2609 /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
2610 register char *yy_cp = yyg->yy_c_buf_p;
2611
2612 register YY_CHAR yy_c = 1;
2613 if ( yy_accept[yy_current_state] )
2614 {
2615 yyg->yy_last_accepting_state = yy_current_state;
2616 yyg->yy_last_accepting_cpos = yy_cp;
2617 }
2618 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2619 {
2620 yy_current_state = (int) yy_def[yy_current_state];
2621 if ( yy_current_state >= 791 )
2622 yy_c = yy_meta[(unsigned int) yy_c];
2623 }
2624 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2625 yy_is_jam = (yy_current_state == 790);
2626
2627 return yy_is_jam ? 0 : yy_current_state;
2628 }
2629
2630 /* %if-c-only */
2631
2632 /* %endif */
2633
2634 /* %if-c-only */
2635 #ifndef YY_NO_INPUT
2636 #ifdef __cplusplus
2637 static int yyinput (yyscan_t yyscanner)
2638 #else
2639 static int input (yyscan_t yyscanner)
2640 #endif
2641
2642 /* %endif */
2643 /* %if-c++-only */
2644 /* %endif */
2645 {
2646 int c;
2647 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2648
2649 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2650
2651 if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2652 {
2653 /* yy_c_buf_p now points to the character we want to return.
2654 * If this occurs *before* the EOB characters, then it's a
2655 * valid NUL; if not, then we've hit the end of the buffer.
2656 */
2657 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2658 /* This was really a NUL. */
2659 *yyg->yy_c_buf_p = '\0';
2660
2661 else
2662 { /* need more input */
2663 int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
2664 ++yyg->yy_c_buf_p;
2665
2666 switch ( yy_get_next_buffer( yyscanner ) )
2667 {
2668 case EOB_ACT_LAST_MATCH:
2669 /* This happens because yy_g_n_b()
2670 * sees that we've accumulated a
2671 * token and flags that we need to
2672 * try matching the token before
2673 * proceeding. But for input(),
2674 * there's no matching to consider.
2675 * So convert the EOB_ACT_LAST_MATCH
2676 * to EOB_ACT_END_OF_FILE.
2677 */
2678
2679 /* Reset buffer status. */
2680 config_restart(yyin ,yyscanner);
2681
2682 /*FALLTHROUGH*/
2683
2684 case EOB_ACT_END_OF_FILE:
2685 {
2686 if ( config_wrap(yyscanner ) )
2687 return EOF;
2688
2689 if ( ! yyg->yy_did_buffer_switch_on_eof )
2690 YY_NEW_FILE;
2691 #ifdef __cplusplus
2692 return yyinput(yyscanner);
2693 #else
2694 return input(yyscanner);
2695 #endif
2696 }
2697
2698 case EOB_ACT_CONTINUE_SCAN:
2699 yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
2700 break;
2701 }
2702 }
2703 }
2704
2705 c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
2706 *yyg->yy_c_buf_p = '\0'; /* preserve yytext */
2707 yyg->yy_hold_char = *++yyg->yy_c_buf_p;
2708
2709 /* %% [19.0] update BOL and yylineno */
2710 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
2711
2712 return c;
2713 }
2714 /* %if-c-only */
2715 #endif /* ifndef YY_NO_INPUT */
2716 /* %endif */
2717
2718 /** Immediately switch to a different input stream.
2719 * @param input_file A readable stream.
2720 * @param yyscanner The scanner object.
2721 * @note This function does not reset the start condition to @c INITIAL .
2722 */
2723 /* %if-c-only */
2724 void config_restart (FILE * input_file , yyscan_t yyscanner)
2725 /* %endif */
2726 /* %if-c++-only */
2727 /* %endif */
2728 {
2729 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2730
2731 if ( ! YY_CURRENT_BUFFER ){
2732 config_ensure_buffer_stack (yyscanner);
2733 YY_CURRENT_BUFFER_LVALUE =
2734 config__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
2735 }
2736
2737 config__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
2738 config__load_buffer_state(yyscanner );
2739 }
2740
2741 /** Switch to a different input buffer.
2742 * @param new_buffer The new input buffer.
2743 * @param yyscanner The scanner object.
2744 */
2745 /* %if-c-only */
2746 void config__switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2747 /* %endif */
2748 /* %if-c++-only */
2749 /* %endif */
2750 {
2751 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2752
2753 /* TODO. We should be able to replace this entire function body
2754 * with
2755 * config_pop_buffer_state();
2756 * config_push_buffer_state(new_buffer);
2757 */
2758 config_ensure_buffer_stack (yyscanner);
2759 if ( YY_CURRENT_BUFFER == new_buffer )
2760 return;
2761
2762 if ( YY_CURRENT_BUFFER )
2763 {
2764 /* Flush out information for old buffer. */
2765 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2766 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2767 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2768 }
2769
2770 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2771 config__load_buffer_state(yyscanner );
2772
2773 /* We don't actually know whether we did this switch during
2774 * EOF (config_wrap()) processing, but the only time this flag
2775 * is looked at is after config_wrap() is called, so it's safe
2776 * to go ahead and always set it.
2777 */
2778 yyg->yy_did_buffer_switch_on_eof = 1;
2779 }
2780
2781 /* %if-c-only */
2782 static void config__load_buffer_state (yyscan_t yyscanner)
2783 /* %endif */
2784 /* %if-c++-only */
2785 /* %endif */
2786 {
2787 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2788 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2789 yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2790 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2791 yyg->yy_hold_char = *yyg->yy_c_buf_p;
2792 }
2793
2794 /** Allocate and initialize an input buffer state.
2795 * @param file A readable stream.
2796 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2797 * @param yyscanner The scanner object.
2798 * @return the allocated buffer state.
2799 */
2800 /* %if-c-only */
2801 YY_BUFFER_STATE config__create_buffer (FILE * file, int size , yyscan_t yyscanner)
2802 /* %endif */
2803 /* %if-c++-only */
2804 /* %endif */
2805 {
2806 YY_BUFFER_STATE b;
2807
2808 b = (YY_BUFFER_STATE) config_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2809 if ( ! b )
2810 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2811
2812 b->yy_buf_size = size;
2813
2814 /* yy_ch_buf has to be 2 characters longer than the size given because
2815 * we need to put in 2 end-of-buffer characters.
2816 */
2817 b->yy_ch_buf = (char *) config_alloc(b->yy_buf_size + 2 ,yyscanner );
2818 if ( ! b->yy_ch_buf )
2819 YY_FATAL_ERROR( "out of dynamic memory in config__create_buffer()" );
2820
2821 b->yy_is_our_buffer = 1;
2822
2823 config__init_buffer(b,file ,yyscanner);
2824
2825 return b;
2826 }
2827
2828 /** Destroy the buffer.
2829 * @param b a buffer created with config__create_buffer()
2830 * @param yyscanner The scanner object.
2831 */
2832 /* %if-c-only */
2833 void config__delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2834 /* %endif */
2835 /* %if-c++-only */
2836 /* %endif */
2837 {
2838 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2839
2840 if ( ! b )
2841 return;
2842
2843 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2844 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2845
2846 if ( b->yy_is_our_buffer )
2847 config_free((void *) b->yy_ch_buf ,yyscanner );
2848
2849 config_free((void *) b ,yyscanner );
2850 }
2851
2852 /* %if-c-only */
2853
2854 #ifndef __cplusplus
2855 extern int isatty (int );
2856 #endif /* __cplusplus */
2857
2858 /* %endif */
2859
2860 /* %if-c++-only */
2861 /* %endif */
2862
2863 /* Initializes or reinitializes a buffer.
2864 * This function is sometimes called more than once on the same buffer,
2865 * such as during a config_restart() or at EOF.
2866 */
2867 /* %if-c-only */
2868 static void config__init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
2869 /* %endif */
2870 /* %if-c++-only */
2871 /* %endif */
2872
2873 {
2874 int oerrno = errno;
2875 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2876
2877 config__flush_buffer(b ,yyscanner);
2878
2879 b->yy_input_file = file;
2880 b->yy_fill_buffer = 1;
2881
2882 /* If b is the current buffer, then config__init_buffer was _probably_
2883 * called from config_restart() or through yy_get_next_buffer.
2884 * In that case, we don't want to reset the lineno or column.
2885 */
2886 if (b != YY_CURRENT_BUFFER){
2887 b->yy_bs_lineno = 1;
2888 b->yy_bs_column = 0;
2889 }
2890
2891 /* %if-c-only */
2892
2893 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2894
2895 /* %endif */
2896 /* %if-c++-only */
2897 /* %endif */
2898 errno = oerrno;
2899 }
2900
2901 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2902 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2903 * @param yyscanner The scanner object.
2904 */
2905 /* %if-c-only */
2906 void config__flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2907 /* %endif */
2908 /* %if-c++-only */
2909 /* %endif */
2910 {
2911 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2912 if ( ! b )
2913 return;
2914
2915 b->yy_n_chars = 0;
2916
2917 /* We always need two end-of-buffer characters. The first causes
2918 * a transition to the end-of-buffer state. The second causes
2919 * a jam in that state.
2920 */
2921 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2922 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2923
2924 b->yy_buf_pos = &b->yy_ch_buf[0];
2925
2926 b->yy_at_bol = 1;
2927 b->yy_buffer_status = YY_BUFFER_NEW;
2928
2929 if ( b == YY_CURRENT_BUFFER )
2930 config__load_buffer_state(yyscanner );
2931 }
2932
2933 /* %if-c-or-c++ */
2934 /** Pushes the new state onto the stack. The new state becomes
2935 * the current state. This function will allocate the stack
2936 * if necessary.
2937 * @param new_buffer The new state.
2938 * @param yyscanner The scanner object.
2939 */
2940 /* %if-c-only */
2941 void config_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2942 /* %endif */
2943 /* %if-c++-only */
2944 /* %endif */
2945 {
2946 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2947 if (new_buffer == NULL)
2948 return;
2949
2950 config_ensure_buffer_stack(yyscanner);
2951
2952 /* This block is copied from config__switch_to_buffer. */
2953 if ( YY_CURRENT_BUFFER )
2954 {
2955 /* Flush out information for old buffer. */
2956 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2957 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2958 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2959 }
2960
2961 /* Only push if top exists. Otherwise, replace top. */
2962 if (YY_CURRENT_BUFFER)
2963 yyg->yy_buffer_stack_top++;
2964 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2965
2966 /* copied from config__switch_to_buffer. */
2967 config__load_buffer_state(yyscanner );
2968 yyg->yy_did_buffer_switch_on_eof = 1;
2969 }
2970 /* %endif */
2971
2972 /* %if-c-or-c++ */
2973 /** Removes and deletes the top of the stack, if present.
2974 * The next element becomes the new top.
2975 * @param yyscanner The scanner object.
2976 */
2977 /* %if-c-only */
2978 void config_pop_buffer_state (yyscan_t yyscanner)
2979 /* %endif */
2980 /* %if-c++-only */
2981 /* %endif */
2982 {
2983 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2984 if (!YY_CURRENT_BUFFER)
2985 return;
2986
2987 config__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
2988 YY_CURRENT_BUFFER_LVALUE = NULL;
2989 if (yyg->yy_buffer_stack_top > 0)
2990 --yyg->yy_buffer_stack_top;
2991
2992 if (YY_CURRENT_BUFFER) {
2993 config__load_buffer_state(yyscanner );
2994 yyg->yy_did_buffer_switch_on_eof = 1;
2995 }
2996 }
2997 /* %endif */
2998
2999 /* %if-c-or-c++ */
3000 /* Allocates the stack if it does not exist.
3001 * Guarantees space for at least one push.
3002 */
3003 /* %if-c-only */
3004 static void config_ensure_buffer_stack (yyscan_t yyscanner)
3005 /* %endif */
3006 /* %if-c++-only */
3007 /* %endif */
3008 {
3009 int num_to_alloc;
3010 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3011
3012 if (!yyg->yy_buffer_stack) {
3013
3014 /* First allocation is just for 2 elements, since we don't know if this
3015 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3016 * immediate realloc on the next call.
3017 */
3018 num_to_alloc = 1;
3019 yyg->yy_buffer_stack = (struct yy_buffer_state**)config_alloc
3020 (num_to_alloc * sizeof(struct yy_buffer_state*)
3021 , yyscanner);
3022 if ( ! yyg->yy_buffer_stack )
3023 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
3024
3025 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3026
3027 yyg->yy_buffer_stack_max = num_to_alloc;
3028 yyg->yy_buffer_stack_top = 0;
3029 return;
3030 }
3031
3032 if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
3033
3034 /* Increase the buffer to prepare for a possible push. */
3035 int grow_size = 8 /* arbitrary grow size */;
3036
3037 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
3038 yyg->yy_buffer_stack = (struct yy_buffer_state**)config_realloc
3039 (yyg->yy_buffer_stack,
3040 num_to_alloc * sizeof(struct yy_buffer_state*)
3041 , yyscanner);
3042 if ( ! yyg->yy_buffer_stack )
3043 YY_FATAL_ERROR( "out of dynamic memory in config_ensure_buffer_stack()" );
3044
3045 /* zero only the new slots.*/
3046 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
3047 yyg->yy_buffer_stack_max = num_to_alloc;
3048 }
3049 }
3050 /* %endif */
3051
3052 /* %if-c-only */
3053 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3054 * @param base the character buffer
3055 * @param size the size in bytes of the character buffer
3056 * @param yyscanner The scanner object.
3057 * @return the newly allocated buffer state object.
3058 */
3059 YY_BUFFER_STATE config__scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
3060 {
3061 YY_BUFFER_STATE b;
3062
3063 if ( size < 2 ||
3064 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3065 base[size-1] != YY_END_OF_BUFFER_CHAR )
3066 /* They forgot to leave room for the EOB's. */
3067 return 0;
3068
3069 b = (YY_BUFFER_STATE) config_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
3070 if ( ! b )
3071 YY_FATAL_ERROR( "out of dynamic memory in config__scan_buffer()" );
3072
3073 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3074 b->yy_buf_pos = b->yy_ch_buf = base;
3075 b->yy_is_our_buffer = 0;
3076 b->yy_input_file = 0;
3077 b->yy_n_chars = b->yy_buf_size;
3078 b->yy_is_interactive = 0;
3079 b->yy_at_bol = 1;
3080 b->yy_fill_buffer = 0;
3081 b->yy_buffer_status = YY_BUFFER_NEW;
3082
3083 config__switch_to_buffer(b ,yyscanner );
3084
3085 return b;
3086 }
3087 /* %endif */
3088
3089 /* %if-c-only */
3090 /** Setup the input buffer state to scan a string. The next call to config_lex() will
3091 * scan from a @e copy of @a str.
3092 * @param yystr a NUL-terminated string to scan
3093 * @param yyscanner The scanner object.
3094 * @return the newly allocated buffer state object.
3095 * @note If you want to scan bytes that may contain NUL values, then use
3096 * config__scan_bytes() instead.
3097 */
3098 YY_BUFFER_STATE config__scan_string (yyconst char * yystr , yyscan_t yyscanner)
3099 {
3100
3101 return config__scan_bytes(yystr,strlen(yystr) ,yyscanner);
3102 }
3103 /* %endif */
3104
3105 /* %if-c-only */
3106 /** Setup the input buffer state to scan the given bytes. The next call to config_lex() will
3107 * scan from a @e copy of @a bytes.
3108 * @param bytes the byte buffer to scan
3109 * @param len the number of bytes in the buffer pointed to by @a bytes.
3110 * @param yyscanner The scanner object.
3111 * @return the newly allocated buffer state object.
3112 */
3113 YY_BUFFER_STATE config__scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner)
3114 {
3115 YY_BUFFER_STATE b;
3116 char *buf;
3117 yy_size_t n;
3118 int i;
3119
3120 /* Get memory for full buffer, including space for trailing EOB's. */
3121 n = _yybytes_len + 2;
3122 buf = (char *) config_alloc(n ,yyscanner );
3123 if ( ! buf )
3124 YY_FATAL_ERROR( "out of dynamic memory in config__scan_bytes()" );
3125
3126 for ( i = 0; i < _yybytes_len; ++i )
3127 buf[i] = yybytes[i];
3128
3129 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3130
3131 b = config__scan_buffer(buf,n ,yyscanner);
3132 if ( ! b )
3133 YY_FATAL_ERROR( "bad buffer in config__scan_bytes()" );
3134
3135 /* It's okay to grow etc. this buffer, and we should throw it
3136 * away when we're done.
3137 */
3138 b->yy_is_our_buffer = 1;
3139
3140 return b;
3141 }
3142 /* %endif */
3143
3144 #ifndef YY_EXIT_FAILURE
3145 #define YY_EXIT_FAILURE 2
3146 #endif
3147
3148 /* %if-c-only */
3149 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
3150 {
3151 (void) fprintf( stderr, "%s\n", msg );
3152 exit( YY_EXIT_FAILURE );
3153 }
3154 /* %endif */
3155 /* %if-c++-only */
3156 /* %endif */
3157
3158 /* Redefine yyless() so it works in section 3 code. */
3159
3160 #undef yyless
3161 #define yyless(n) \
3162 do \
3163 { \
3164 /* Undo effects of setting up yytext. */ \
3165 int yyless_macro_arg = (n); \
3166 YY_LESS_LINENO(yyless_macro_arg);\
3167 yytext[yyleng] = yyg->yy_hold_char; \
3168 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
3169 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
3170 *yyg->yy_c_buf_p = '\0'; \
3171 yyleng = yyless_macro_arg; \
3172 } \
3173 while ( 0 )
3174
3175 /* Accessor methods (get/set functions) to struct members. */
3176
3177 /* %if-c-only */
3178 /* %if-reentrant */
3179
3180 /** Get the user-defined data for this scanner.
3181 * @param yyscanner The scanner object.
3182 */
3183 YY_EXTRA_TYPE config_get_extra (yyscan_t yyscanner)
3184 {
3185 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3186 return yyextra;
3187 }
3188
3189 /* %endif */
3190
3191 /** Get the current line number.
3192 * @param yyscanner The scanner object.
3193 */
3194 int config_get_lineno (yyscan_t yyscanner)
3195 {
3196 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3197
3198 if (! YY_CURRENT_BUFFER)
3199 return 0;
3200
3201 return yylineno;
3202 }
3203
3204 /** Get the current column number.
3205 * @param yyscanner The scanner object.
3206 */
3207 int config_get_column (yyscan_t yyscanner)
3208 {
3209 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3210
3211 if (! YY_CURRENT_BUFFER)
3212 return 0;
3213
3214 return yycolumn;
3215 }
3216
3217 /** Get the input stream.
3218 * @param yyscanner The scanner object.
3219 */
3220 FILE *config_get_in (yyscan_t yyscanner)
3221 {
3222 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3223 return yyin;
3224 }
3225
3226 /** Get the output stream.
3227 * @param yyscanner The scanner object.
3228 */
3229 FILE *config_get_out (yyscan_t yyscanner)
3230 {
3231 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3232 return yyout;
3233 }
3234
3235 /** Get the length of the current token.
3236 * @param yyscanner The scanner object.
3237 */
3238 int config_get_leng (yyscan_t yyscanner)
3239 {
3240 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3241 return yyleng;
3242 }
3243
3244 /** Get the current token.
3245 * @param yyscanner The scanner object.
3246 */
3247
3248 char *config_get_text (yyscan_t yyscanner)
3249 {
3250 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3251 return yytext;
3252 }
3253
3254 /* %if-reentrant */
3255
3256 /** Set the user-defined data. This data is never touched by the scanner.
3257 * @param user_defined The data to be associated with this scanner.
3258 * @param yyscanner The scanner object.
3259 */
3260 void config_set_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
3261 {
3262 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3263 yyextra = user_defined ;
3264 }
3265
3266 /* %endif */
3267
3268 /** Set the current line number.
3269 * @param line_number
3270 * @param yyscanner The scanner object.
3271 */
3272 void config_set_lineno (int line_number , yyscan_t yyscanner)
3273 {
3274 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3275
3276 /* lineno is only valid if an input buffer exists. */
3277 if (! YY_CURRENT_BUFFER )
3278 yy_fatal_error( "config_set_lineno called with no buffer" , yyscanner);
3279
3280 yylineno = line_number;
3281 }
3282
3283 /** Set the current column.
3284 * @param line_number
3285 * @param yyscanner The scanner object.
3286 */
3287 void config_set_column (int column_no , yyscan_t yyscanner)
3288 {
3289 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3290
3291 /* column is only valid if an input buffer exists. */
3292 if (! YY_CURRENT_BUFFER )
3293 yy_fatal_error( "config_set_column called with no buffer" , yyscanner);
3294
3295 yycolumn = column_no;
3296 }
3297
3298 /** Set the input stream. This does not discard the current
3299 * input buffer.
3300 * @param in_str A readable stream.
3301 * @param yyscanner The scanner object.
3302 * @see config__switch_to_buffer
3303 */
3304 void config_set_in (FILE * in_str , yyscan_t yyscanner)
3305 {
3306 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3307 yyin = in_str ;
3308 }
3309
3310 void config_set_out (FILE * out_str , yyscan_t yyscanner)
3311 {
3312 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3313 yyout = out_str ;
3314 }
3315
3316 int config_get_debug (yyscan_t yyscanner)
3317 {
3318 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3319 return yy_flex_debug;
3320 }
3321
3322 void config_set_debug (int bdebug , yyscan_t yyscanner)
3323 {
3324 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3325 yy_flex_debug = bdebug ;
3326 }
3327
3328 /* %endif */
3329
3330 /* %if-reentrant */
3331 /* Accessor methods for yylval and yylloc */
3332
3333 /* %if-bison-bridge */
3334
3335 YYSTYPE * config_get_lval (yyscan_t yyscanner)
3336 {
3337 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3338 return yylval;
3339 }
3340
3341 void config_set_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
3342 {
3343 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3344 yylval = yylval_param;
3345 }
3346
3347 /* %endif */
3348
3349 /* User-visible API */
3350
3351 /* config_lex_init is special because it creates the scanner itself, so it is
3352 * the ONLY reentrant function that doesn't take the scanner as the last argument.
3353 * That's why we explicitly handle the declaration, instead of using our macros.
3354 */
3355
3356 int config_lex_init(yyscan_t* ptr_yy_globals)
3357
3358 {
3359 if (ptr_yy_globals == NULL){
3360 errno = EINVAL;
3361 return 1;
3362 }
3363
3364 *ptr_yy_globals = (yyscan_t) config_alloc ( sizeof( struct yyguts_t ), NULL );
3365
3366 if (*ptr_yy_globals == NULL){
3367 errno = ENOMEM;
3368 return 1;
3369 }
3370
3371 /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
3372 memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3373
3374 return yy_init_globals ( *ptr_yy_globals );
3375 }
3376
3377 /* config_lex_init_extra has the same functionality as config_lex_init, but follows the
3378 * convention of taking the scanner as the last argument. Note however, that
3379 * this is a *pointer* to a scanner, as it will be allocated by this call (and
3380 * is the reason, too, why this function also must handle its own declaration).
3381 * The user defined value in the first argument will be available to config_alloc in
3382 * the yyextra field.
3383 */
3384
3385 int config_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
3386
3387 {
3388 struct yyguts_t dummy_yyguts;
3389
3390 config_set_extra (yy_user_defined, &dummy_yyguts);
3391
3392 if (ptr_yy_globals == NULL){
3393 errno = EINVAL;
3394 return 1;
3395 }
3396
3397 *ptr_yy_globals = (yyscan_t) config_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
3398
3399 if (*ptr_yy_globals == NULL){
3400 errno = ENOMEM;
3401 return 1;
3402 }
3403
3404 /* By setting to 0xAA, we expose bugs in
3405 yy_init_globals. Leave at 0x00 for releases. */
3406 memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3407
3408 config_set_extra (yy_user_defined, *ptr_yy_globals);
3409
3410 return yy_init_globals ( *ptr_yy_globals );
3411 }
3412
3413 /* %endif if-c-only */
3414
3415 /* %if-c-only */
3416 static int yy_init_globals (yyscan_t yyscanner)
3417 {
3418 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3419 /* Initialization is the same as for the non-reentrant scanner.
3420 * This function is called from config_lex_destroy(), so don't allocate here.
3421 */
3422
3423 yyg->yy_buffer_stack = 0;
3424 yyg->yy_buffer_stack_top = 0;
3425 yyg->yy_buffer_stack_max = 0;
3426 yyg->yy_c_buf_p = (char *) 0;
3427 yyg->yy_init = 0;
3428 yyg->yy_start = 0;
3429
3430 yyg->yy_start_stack_ptr = 0;
3431 yyg->yy_start_stack_depth = 0;
3432 yyg->yy_start_stack = NULL;
3433
3434 /* Defined in main.c */
3435 #ifdef YY_STDINIT
3436 yyin = stdin;
3437 yyout = stdout;
3438 #else
3439 yyin = (FILE *) 0;
3440 yyout = (FILE *) 0;
3441 #endif
3442
3443 /* For future reference: Set errno on error, since we are called by
3444 * config_lex_init()
3445 */
3446 return 0;
3447 }
3448 /* %endif */
3449
3450 /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
3451 /* config_lex_destroy is for both reentrant and non-reentrant scanners. */
3452 int config_lex_destroy (yyscan_t yyscanner)
3453 {
3454 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3455
3456 /* Pop the buffer stack, destroying each element. */
3457 while(YY_CURRENT_BUFFER){
3458 config__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
3459 YY_CURRENT_BUFFER_LVALUE = NULL;
3460 config_pop_buffer_state(yyscanner);
3461 }
3462
3463 /* Destroy the stack itself. */
3464 config_free(yyg->yy_buffer_stack ,yyscanner);
3465 yyg->yy_buffer_stack = NULL;
3466
3467 /* Destroy the start condition stack. */
3468 config_free(yyg->yy_start_stack ,yyscanner );
3469 yyg->yy_start_stack = NULL;
3470
3471 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3472 * config_lex() is called, initialization will occur. */
3473 yy_init_globals( yyscanner);
3474
3475 /* %if-reentrant */
3476 /* Destroy the main struct (reentrant only). */
3477 config_free ( yyscanner , yyscanner );
3478 yyscanner = NULL;
3479 /* %endif */
3480 return 0;
3481 }
3482 /* %endif */
3483
3484 /*
3485 * Internal utility routines.
3486 */
3487
3488 #ifndef yytext_ptr
3489 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
3490 {
3491 register int i;
3492 for ( i = 0; i < n; ++i )
3493 s1[i] = s2[i];
3494 }
3495 #endif
3496
3497 #ifdef YY_NEED_STRLEN
3498 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
3499 {
3500 register int n;
3501 for ( n = 0; s[n]; ++n )
3502 ;
3503
3504 return n;
3505 }
3506 #endif
3507
3508 void *config_alloc (yy_size_t size , yyscan_t yyscanner)
3509 {
3510 return (void *) malloc( size );
3511 }
3512
3513 void *config_realloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
3514 {
3515 /* The cast to (char *) in the following accommodates both
3516 * implementations that use char* generic pointers, and those
3517 * that use void* generic pointers. It works with the latter
3518 * because both ANSI C and C++ allow castless assignment from
3519 * any pointer type to void*, and deal with argument conversions
3520 * as though doing an assignment.
3521 */
3522 return (void *) realloc( (char *) ptr, size );
3523 }
3524
3525 void config_free (void * ptr , yyscan_t yyscanner)
3526 {
3527 free( (char *) ptr ); /* see config_realloc() for (char *) cast */
3528 }
3529
3530 /* %if-tables-serialization definitions */
3531 /* %define-yytables The name for this specific scanner's tables. */
3532 #define YYTABLES_NAME "yytables"
3533 /* %endif */
3534
3535 /* %ok-for-header */
3536
3537 #line 222 "libmemcached/options/scanner.l"
3538
3539
3540
3541 void Context::init_scanner()
3542 {
3543 config_lex_init(&scanner);
3544 config_set_extra(this,scanner);
3545 }
3546
3547 void Context::destroy_scanner()
3548 {
3549 config_lex_destroy(scanner);
3550 }
3551
3552