~y-maris/libmemcached/libmemcached

« back to all changes in this revision

Viewing changes to libmemcached/csl/scanner.cc

  • Committer: Continuous Integration
  • Date: 2012-11-26 10:58:31 UTC
  • mfrom: (1080.1.6 libmemcached-1.2)
  • Revision ID: ci@tangent.org-20121126105831-4bnsokmlh631slsx
Merge lp:~tangent-org/libmemcached/1.2-build Build: jenkins-Libmemcached-1.2-4

Show diffs side-by-side

added added

removed removed

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