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