~drizzle-trunk/drizzle/development

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