Drizzled Public API Documentation

pars0lex.c
00001 #include "univ.i"
00002 #line 2 "plugin/innobase/pars/pars0lex.c"
00003 
00004 #line 4 "plugin/innobase/pars/pars0lex.c"
00005 
00006 #define  YY_INT_ALIGNED short int
00007 
00008 /* A lexical scanner generated by flex */
00009 
00010 #define FLEX_SCANNER
00011 #define YY_FLEX_MAJOR_VERSION 2
00012 #define YY_FLEX_MINOR_VERSION 5
00013 #define YY_FLEX_SUBMINOR_VERSION 35
00014 #if YY_FLEX_SUBMINOR_VERSION > 0
00015 #define FLEX_BETA
00016 #endif
00017 
00018 /* First, we deal with  platform-specific or compiler-specific issues. */
00019 
00020 /* begin standard C headers. */
00021 #include <stdio.h>
00022 #include <string.h>
00023 #include <errno.h>
00024 #include <stdlib.h>
00025 
00026 /* end standard C headers. */
00027 
00028 /* flex integer type definitions */
00029 
00030 #ifndef FLEXINT_H
00031 #define FLEXINT_H
00032 
00033 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
00034 
00035 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
00036 
00037 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
00038  * if you want the limit (max/min) macros for int types. 
00039  */
00040 #ifndef __STDC_LIMIT_MACROS
00041 #define __STDC_LIMIT_MACROS 1
00042 #endif
00043 
00044 #include <inttypes.h>
00045 typedef int8_t flex_int8_t;
00046 typedef uint8_t flex_uint8_t;
00047 typedef int16_t flex_int16_t;
00048 typedef uint16_t flex_uint16_t;
00049 typedef int32_t flex_int32_t;
00050 typedef uint32_t flex_uint32_t;
00051 #else
00052 typedef signed char flex_int8_t;
00053 typedef short int flex_int16_t;
00054 typedef int flex_int32_t;
00055 typedef unsigned char flex_uint8_t; 
00056 typedef unsigned short int flex_uint16_t;
00057 typedef unsigned int flex_uint32_t;
00058 
00059 /* Limits of integral types. */
00060 #ifndef INT8_MIN
00061 #define INT8_MIN               (-128)
00062 #endif
00063 #ifndef INT16_MIN
00064 #define INT16_MIN              (-32767-1)
00065 #endif
00066 #ifndef INT32_MIN
00067 #define INT32_MIN              (-2147483647-1)
00068 #endif
00069 #ifndef INT8_MAX
00070 #define INT8_MAX               (127)
00071 #endif
00072 #ifndef INT16_MAX
00073 #define INT16_MAX              (32767)
00074 #endif
00075 #ifndef INT32_MAX
00076 #define INT32_MAX              (2147483647)
00077 #endif
00078 #ifndef UINT8_MAX
00079 #define UINT8_MAX              (255U)
00080 #endif
00081 #ifndef UINT16_MAX
00082 #define UINT16_MAX             (65535U)
00083 #endif
00084 #ifndef UINT32_MAX
00085 #define UINT32_MAX             (4294967295U)
00086 #endif
00087 
00088 #endif /* ! C99 */
00089 
00090 #endif /* ! FLEXINT_H */
00091 
00092 #ifdef __cplusplus
00093 
00094 /* The "const" storage-class-modifier is valid. */
00095 #define YY_USE_CONST
00096 
00097 #else /* ! __cplusplus */
00098 
00099 /* C99 requires __STDC__ to be defined as 1. */
00100 #if defined (__STDC__)
00101 
00102 #define YY_USE_CONST
00103 
00104 #endif  /* defined (__STDC__) */
00105 #endif  /* ! __cplusplus */
00106 
00107 #ifdef YY_USE_CONST
00108 #define yyconst const
00109 #else
00110 #define yyconst
00111 #endif
00112 
00113 /* Returned upon end-of-file. */
00114 #define YY_NULL 0
00115 
00116 /* Promotes a possibly negative, possibly signed char to an unsigned
00117  * integer for use as an array index.  If the signed char is negative,
00118  * we want to instead treat it as an 8-bit unsigned char, hence the
00119  * double cast.
00120  */
00121 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00122 
00123 /* Enter a start condition.  This macro really ought to take a parameter,
00124  * but we do it the disgusting crufty way forced on us by the ()-less
00125  * definition of BEGIN.
00126  */
00127 #define BEGIN (yy_start) = 1 + 2 *
00128 
00129 /* Translate the current start state into a value that can be later handed
00130  * to BEGIN to return to the state.  The YYSTATE alias is for lex
00131  * compatibility.
00132  */
00133 #define YY_START (((yy_start) - 1) / 2)
00134 #define YYSTATE YY_START
00135 
00136 /* Action number for EOF rule of a given start state. */
00137 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00138 
00139 /* Special action meaning "start processing a new file". */
00140 #define YY_NEW_FILE yyrestart(yyin  )
00141 
00142 #define YY_END_OF_BUFFER_CHAR 0
00143 
00144 /* Size of default input buffer. */
00145 #ifndef YY_BUF_SIZE
00146 #ifdef __ia64__
00147 /* On IA-64, the buffer size is 16k, not 8k.
00148  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
00149  * Ditto for the __ia64__ case accordingly.
00150  */
00151 #define YY_BUF_SIZE 32768
00152 #else
00153 #define YY_BUF_SIZE 16384
00154 #endif /* __ia64__ */
00155 #endif
00156 
00157 /* The state buf must be large enough to hold one state per character in the main buffer.
00158  */
00159 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
00160 
00161 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00162 #define YY_TYPEDEF_YY_BUFFER_STATE
00163 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00164 #endif
00165 
00166 static int yyleng;
00167 
00168 static FILE *yyin, *yyout;
00169 
00170 #define EOB_ACT_CONTINUE_SCAN 0
00171 #define EOB_ACT_END_OF_FILE 1
00172 #define EOB_ACT_LAST_MATCH 2
00173 
00174     #define YY_LESS_LINENO(n)
00175     
00176 /* Return all but the first "n" matched characters back to the input stream. */
00177 #define yyless(n) \
00178   do \
00179     { \
00180     /* Undo effects of setting up yytext. */ \
00181         int yyless_macro_arg = (n); \
00182         YY_LESS_LINENO(yyless_macro_arg);\
00183     *yy_cp = (yy_hold_char); \
00184     YY_RESTORE_YY_MORE_OFFSET \
00185     (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00186     YY_DO_BEFORE_ACTION; /* set up yytext again */ \
00187     } \
00188   while ( 0 )
00189 
00190 #define unput(c) yyunput( c, (yytext_ptr)  )
00191 
00192 #ifndef YY_TYPEDEF_YY_SIZE_T
00193 #define YY_TYPEDEF_YY_SIZE_T
00194 typedef size_t yy_size_t;
00195 #endif
00196 
00197 #ifndef YY_STRUCT_YY_BUFFER_STATE
00198 #define YY_STRUCT_YY_BUFFER_STATE
00199 struct yy_buffer_state
00200   {
00201   FILE *yy_input_file;
00202 
00203   char *yy_ch_buf;    /* input buffer */
00204   char *yy_buf_pos;   /* current position in input buffer */
00205 
00206   /* Size of input buffer in bytes, not including room for EOB
00207    * characters.
00208    */
00209   yy_size_t yy_buf_size;
00210 
00211   /* Number of characters read into yy_ch_buf, not including EOB
00212    * characters.
00213    */
00214   int yy_n_chars;
00215 
00216   /* Whether we "own" the buffer - i.e., we know we created it,
00217    * and can realloc() it to grow it, and should free() it to
00218    * delete it.
00219    */
00220   int yy_is_our_buffer;
00221 
00222   /* Whether this is an "interactive" input source; if so, and
00223    * if we're using stdio for input, then we want to use getc()
00224    * instead of fread(), to make sure we stop fetching input after
00225    * each newline.
00226    */
00227   int yy_is_interactive;
00228 
00229   /* Whether we're considered to be at the beginning of a line.
00230    * If so, '^' rules will be active on the next match, otherwise
00231    * not.
00232    */
00233   int yy_at_bol;
00234 
00235     int yy_bs_lineno; 
00236     int yy_bs_column; 
00238   /* Whether to try to fill the input buffer when we reach the
00239    * end of it.
00240    */
00241   int yy_fill_buffer;
00242 
00243   int yy_buffer_status;
00244 
00245 #define YY_BUFFER_NEW 0
00246 #define YY_BUFFER_NORMAL 1
00247   /* When an EOF's been seen but there's still some text to process
00248    * then we mark the buffer as YY_EOF_PENDING, to indicate that we
00249    * shouldn't try reading from the input source any more.  We might
00250    * still have a bunch of tokens to match, though, because of
00251    * possible backing-up.
00252    *
00253    * When we actually see the EOF, we change the status to "new"
00254    * (via yyrestart()), so that the user can continue scanning by
00255    * just pointing yyin at a new input file.
00256    */
00257 #define YY_BUFFER_EOF_PENDING 2
00258 
00259   };
00260 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
00261 
00262 /* Stack of input buffers. */
00263 static size_t yy_buffer_stack_top = 0; 
00264 static size_t yy_buffer_stack_max = 0; 
00265 static YY_BUFFER_STATE * yy_buffer_stack = 0; 
00267 /* We provide macros for accessing buffer states in case in the
00268  * future we want to put the buffer states in a more general
00269  * "scanner state".
00270  *
00271  * Returns the top of the stack, or NULL.
00272  */
00273 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
00274                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
00275                           : NULL)
00276 
00277 /* Same as previous macro, but useful when we know that the buffer stack is not
00278  * NULL or when we need an lvalue. For internal use only.
00279  */
00280 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
00281 
00282 /* yy_hold_char holds the character lost when yytext is formed. */
00283 static char yy_hold_char;
00284 static int yy_n_chars;    /* number of characters read into yy_ch_buf */
00285 static int yyleng;
00286 
00287 /* Points to current character in buffer. */
00288 static char *yy_c_buf_p = (char *) 0;
00289 static int yy_init = 0;   /* whether we need to initialize */
00290 static int yy_start = 0;  /* start state number */
00291 
00292 /* Flag which is used to allow yywrap()'s to do buffer switches
00293  * instead of setting up a fresh yyin.  A bit of a hack ...
00294  */
00295 static int yy_did_buffer_switch_on_eof;
00296 
00297 static void yyrestart (FILE *input_file  );
00298 __attribute__((unused)) static void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
00299 static YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
00300 static void yy_delete_buffer (YY_BUFFER_STATE b  );
00301 static void yy_flush_buffer (YY_BUFFER_STATE b  );
00302 __attribute__((unused)) static void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
00303 __attribute__((unused)) static void yypop_buffer_state (void );
00304 
00305 static void yyensure_buffer_stack (void );
00306 static void yy_load_buffer_state (void );
00307 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
00308 
00309 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
00310 
00311 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
00312 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
00313 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
00314 
00315 static void *yyalloc (yy_size_t  );
00316 static void *yyrealloc (void *,yy_size_t  );
00317 static void yyfree (void *  );
00318 
00319 #define yy_new_buffer yy_create_buffer
00320 
00321 #define yy_set_interactive(is_interactive) \
00322   { \
00323   if ( ! YY_CURRENT_BUFFER ){ \
00324         yyensure_buffer_stack (); \
00325     YY_CURRENT_BUFFER_LVALUE =    \
00326             yy_create_buffer(yyin,YY_BUF_SIZE ); \
00327   } \
00328   YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00329   }
00330 
00331 #define yy_set_bol(at_bol) \
00332   { \
00333   if ( ! YY_CURRENT_BUFFER ){\
00334         yyensure_buffer_stack (); \
00335     YY_CURRENT_BUFFER_LVALUE =    \
00336             yy_create_buffer(yyin,YY_BUF_SIZE ); \
00337   } \
00338   YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00339   }
00340 
00341 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00342 
00343 /* Begin user sect3 */
00344 
00345 #define yywrap(n) 1
00346 #define YY_SKIP_YYWRAP
00347 
00348 typedef unsigned char YY_CHAR;
00349 
00350 static FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
00351 
00352 typedef int yy_state_type;
00353 
00354 static int yylineno;
00355 
00356 static int yylineno = 1;
00357 
00358 static char *yytext;
00359 #define yytext_ptr yytext
00360 
00361 static yy_state_type yy_get_previous_state (void );
00362 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
00363 static int yy_get_next_buffer (void );
00364 static void yy_fatal_error (yyconst char msg[]  );
00365 
00366 /* Done after the current pattern has been matched and before the
00367  * corresponding action - sets up yytext.
00368  */
00369 #define YY_DO_BEFORE_ACTION \
00370   (yytext_ptr) = yy_bp; \
00371   yyleng = (size_t) (yy_cp - yy_bp); \
00372   (yy_hold_char) = *yy_cp; \
00373   *yy_cp = '\0'; \
00374   (yy_c_buf_p) = yy_cp;
00375 
00376 #define YY_NUM_RULES 119
00377 #define YY_END_OF_BUFFER 120
00378 /* This struct is not used in this scanner,
00379    but its presence is necessary. */
00380 struct yy_trans_info
00381   {
00382   flex_int32_t yy_verify;
00383   flex_int32_t yy_nxt;
00384   };
00385 static yyconst flex_int16_t yy_accept[399] =
00386     {   0,
00387         0,    0,  114,  114,    0,    0,    0,    0,  120,  118,
00388       117,  117,    8,  118,  109,    5,   98,  104,  107,  105,
00389       102,  106,  118,  108,    1,  118,  103,  101,   99,  100,
00390       112,   92,   92,   92,   92,   92,   92,   92,   92,   92,
00391        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
00392       110,  111,  114,  115,    6,    7,    9,   10,  117,    4,
00393        93,  113,    2,    1,    3,   94,   95,   97,   96,   92,
00394        92,   92,   92,   92,   92,   44,   92,   92,   92,   92,
00395        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
00396        92,   92,   28,   17,   25,   92,   92,   92,   92,   92,
00397 
00398        54,   61,   92,   14,   92,   92,   92,   92,   92,   92,
00399        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
00400        92,   92,  114,  115,  115,  116,    6,    7,    9,   10,
00401         2,   13,   45,   92,   92,   92,   92,   92,   92,   92,
00402        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
00403        92,   27,   92,   92,   92,   41,   92,   92,   92,   92,
00404        21,   92,   92,   92,   92,   15,   92,   92,   92,   18,
00405        92,   92,   92,   92,   92,   80,   92,   92,   92,   51,
00406        92,   12,   92,   36,   92,   92,   92,   92,   92,   92,
00407        92,   92,   92,   92,   92,   92,   92,   92,   20,   24,
00408 
00409        92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
00410        46,   92,   92,   30,   92,   87,   92,   92,   39,   92,
00411        92,   92,   92,   92,   48,   92,   89,   32,   91,   92,
00412        11,   64,   92,   92,   92,   42,   92,   92,   92,   92,
00413        92,   92,   92,   92,   92,   92,   29,   92,   92,   92,
00414        92,   92,   92,   92,   92,   92,   85,   92,   26,   92,
00415        66,   92,   92,   92,   37,   92,   92,   92,   92,   92,
00416        92,   92,   31,   65,   23,   92,   57,   92,   75,   92,
00417        92,   92,   43,   92,   92,   92,   92,   92,   92,   92,
00418        92,   90,   92,   92,   56,   92,   92,   92,   92,   92,
00419 
00420        92,   92,   40,   33,   79,   19,   92,   83,   74,   55,
00421        92,   63,   92,   52,   92,   92,   92,   47,   92,   76,
00422        92,   78,   92,   92,   34,   92,   92,   92,   35,   72,
00423        92,   92,   92,   92,   58,   92,   50,   49,   92,   92,
00424        53,   62,   92,   92,   92,   22,   92,   92,   73,   81,
00425        92,   92,   77,   92,   68,   92,   92,   92,   92,   38,
00426        92,   88,   67,   92,   84,   92,   92,   92,   86,   92,
00427        59,   92,   16,   92,   70,   69,   92,   92,   82,   92,
00428        92,   92,   92,   92,   92,   92,   92,   92,   92,   71,
00429        92,   92,   92,   92,   92,   92,   60,    0
00430 
00431     } ;
00432 
00433 static yyconst flex_int32_t yy_ec[256] =
00434     {   0,
00435         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
00436         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00437         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00438         1,    2,    1,    4,    1,    5,    6,    1,    7,    8,
00439         9,   10,   11,   12,   13,   14,   15,   16,   16,   16,
00440        16,   16,   16,   16,   16,   16,   16,   17,   18,   19,
00441        20,   21,   22,    1,   23,   24,   25,   26,   27,   28,
00442        29,   30,   31,   32,   33,   34,   35,   36,   37,   38,
00443        39,   40,   41,   42,   43,   44,   45,   46,   47,   32,
00444         1,    1,    1,    1,   48,    1,   32,   32,   32,   32,
00445 
00446        32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
00447        32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
00448        32,   32,   49,    1,   50,    1,    1,    1,    1,    1,
00449         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00450         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00451         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00452         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00453         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00454         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00455         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00456 
00457         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00458         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00459         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00460         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00461         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00462         1,    1,    1,    1,    1
00463     } ;
00464 
00465 static yyconst flex_int32_t yy_meta[51] =
00466     {   0,
00467         1,    1,    1,    2,    1,    1,    3,    1,    1,    4,
00468         1,    1,    1,    1,    1,    5,    1,    1,    1,    6,
00469         1,    1,    5,    5,    5,    5,    5,    5,    5,    5,
00470         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
00471         5,    5,    5,    5,    5,    5,    5,    5,    1,    1
00472     } ;
00473 
00474 static yyconst flex_int16_t yy_base[409] =
00475     {   0,
00476         0,    0,  437,  436,  438,  437,  439,  438,  441,  448,
00477        49,   51,  448,    0,  448,  448,  448,  448,  448,  448,
00478       448,  448,  426,  429,   41,  418,  448,   38,  448,  417,
00479       448,   20,   33,   32,   46,   40,   44,    0,   54,   52,
00480       399,   48,   60,  395,   65,   67,   81,   27,  411,   75,
00481       448,  448,    0,   98,    0,  426,    0,  428,  113,    0,
00482       448,  448,  415,   54,  410,  448,  448,  448,  448,    0,
00483       403,   68,  399,  391,  389,    0,  402,   80,   84,  397,
00484       383,   96,  381,  394,  379,  393,  387,  375,  379,  375,
00485       377,  377,    0,   98,    0,  376,   97,  385,  368,  375,
00486 
00487         0,    0,  381,  381,  364,   94,  103,  379,   98,   65,
00488       381,  369,  109,  361,  377,  373,  351,   97,  372,  363,
00489       115,  356,    0,  137,  138,  448,    0,  388,    0,  390,
00490       377,    0,    0,  365,  360,  367,  365,  348,  346,  345,
00491       350,  359,  347,  359,   95,  347,  353,  354,  336,  336,
00492       123,    0,  334,  350,  351,    0,  338,  347,  344,  122,
00493       124,  341,  336,  330,  340,  338,  331,  328,  336,    0,
00494       326,  336,  334,  325,  315,  309,  322,  307,  327,    0,
00495       313,    0,  311,    0,  325,  316,  313,  131,  309,  316,
00496       323,  302,  304,  309,  309,  301,  304,  299,    0,    0,
00497 
00498       311,  295,  305,  312,  292,  291,  305,  294,  307,  287,
00499         0,  297,  279,    0,  298,    0,  295,  282,    0,  281,
00500       276,  281,  280,  290,    0,  276,    0,    0,    0,  280,
00501         0,    0,  276,  273,  287,    0,  272,  272,  270,  286,
00502       271,  283,  280,  264,  282,  277,    0,  272,  272,  258,
00503       257,  270,  256,  270,  269,  268,    0,  252,    0,  246,
00504         0,  265,  249,  248,    0,  262,  252,  247,  246,  258,
00505       248,  247,    0,    0,    0,  251,    0,  239,    0,  253,
00506       249,  235,    0,  249,  250,  233,  238,  231,  249,  231,
00507       228,    0,  229,  226,    0,  231,  243,  230,  237,  227,
00508 
00509       235,  220,    0,    0,    0,  212,  219,    0,    0,    0,
00510       216,    0,  230,    0,  231,  218,  217,    0,  213,    0,
00511       216,    0,  208,  210,    0,  209,  223,  216,    0,    0,
00512       219,  222,  204,  219,    0,  215,    0,    0,  199,  213,
00513         0,    0,  197,  196,  201,    0,  210,  195,    0,    0,
00514       201,  197,    0,  192,    0,  204,  204,  192,  202,    0,
00515       179,    0,    0,  199,    0,  183,  177,  183,    0,  174,
00516         0,  193,    0,  192,    0,    0,  183,  187,    0,  174,
00517       174,  180,  166,  189,  181,  180,  166,  151,  118,    0,
00518       130,  136,  127,  123,  119,  111,    0,  448,  167,  173,
00519 
00520       179,  152,  181,  124,  187,  193,  199,  205
00521     } ;
00522 
00523 static yyconst flex_int16_t yy_def[409] =
00524     {   0,
00525       398,    1,  399,  399,  400,  400,  401,  401,  398,  398,
00526       398,  398,  398,  402,  398,  398,  398,  398,  398,  398,
00527       398,  398,  398,  398,  398,  403,  398,  398,  398,  398,
00528       398,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00529       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00530       398,  398,  405,  406,  407,  398,  408,  398,  398,  402,
00531       398,  398,  398,  398,  403,  398,  398,  398,  398,  404,
00532       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00533       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00534       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00535 
00536       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00537       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00538       404,  404,  405,  406,  406,  398,  407,  398,  408,  398,
00539       398,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00540       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00541       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00542       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00543       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00544       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00545       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00546 
00547       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00548       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00549       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00550       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00551       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00552       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00553       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00554       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00555       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00556       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00557 
00558       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00559       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00560       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00561       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00562       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00563       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00564       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00565       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00566       404,  404,  404,  404,  404,  404,  404,  404,  404,  404,
00567       404,  404,  404,  404,  404,  404,  404,    0,  398,  398,
00568 
00569       398,  398,  398,  398,  398,  398,  398,  398
00570     } ;
00571 
00572 static yyconst flex_int16_t yy_nxt[499] =
00573     {   0,
00574        10,   11,   12,   13,   14,   15,   16,   17,   18,   19,
00575        20,   21,   22,   23,   24,   25,   26,   27,   28,   29,
00576        30,   31,   32,   33,   34,   35,   36,   37,   38,   38,
00577        39,   38,   38,   40,   41,   42,   43,   44,   38,   45,
00578        46,   47,   48,   49,   50,   38,   38,   38,   51,   52,
00579        59,   59,   59,   59,   63,   71,   64,   67,   68,   73,
00580        72,   77,  118,   74,  119,   78,   75,   63,   79,   64,
00581        88,   80,   82,   85,   81,   86,   83,   89,   96,   76,
00582        90,   93,   84,   91,   99,   87,   92,  101,   97,   94,
00583       100,  107,  133,  110,   95,  102,  111,  103,  179,  104,
00584 
00585       108,  109,  105,  115,  121,  112,  180,  125,  134,  113,
00586       116,  122,  126,  114,   59,   59,  139,  117,  141,  142,
00587       146,  163,  140,  159,  171,  173,  143,  189,   70,  147,
00588       172,  177,  183,  164,  207,  208,  148,  190,  160,  161,
00589       174,  193,  178,  184,  175,  194,  398,  125,  222,  214,
00590       224,  398,  126,  215,  248,  249,   60,  397,  396,  395,
00591       225,  394,  393,  223,  392,  391,  250,   53,   53,   53,
00592        53,   53,   53,   55,   55,   55,   55,   55,   55,   57,
00593        57,   57,   57,   57,   57,   65,   65,  123,  123,  123,
00594       390,  123,  123,  124,  124,  124,  124,  124,  124,  127,
00595 
00596       127,  389,  127,  127,  127,  129,  388,  129,  129,  129,
00597       129,  387,  386,  385,  384,  383,  382,  381,  380,  379,
00598       378,  377,  376,  375,  374,  373,  372,  371,  370,  369,
00599       368,  367,  366,  365,  364,  363,  362,  361,  360,  359,
00600       358,  357,  356,  355,  354,  353,  352,  351,  350,  349,
00601       348,  347,  346,  345,  344,  343,  342,  341,  340,  339,
00602       338,  337,  336,  335,  334,  333,  332,  331,  330,  329,
00603       328,  327,  326,  325,  324,  323,  322,  321,  320,  319,
00604       318,  317,  316,  315,  314,  313,  312,  311,  310,  309,
00605       308,  307,  306,  305,  304,  303,  302,  301,  300,  299,
00606 
00607       298,  297,  296,  295,  294,  293,  292,  291,  290,  289,
00608       288,  287,  286,  285,  284,  283,  282,  281,  280,  279,
00609       278,  277,  276,  275,  274,  273,  272,  271,  270,  269,
00610       268,  267,  266,  265,  264,  263,  262,  261,  260,  259,
00611       258,  257,  256,  255,  254,  253,  252,  251,  247,  246,
00612       245,  244,  243,  242,  241,  240,  239,  238,  237,  236,
00613       235,  234,  233,  232,  231,  230,  229,  228,  227,  226,
00614       221,  220,  219,  218,  217,  216,  213,  212,  211,  210,
00615       209,  206,  205,  204,  203,  202,  201,  200,  199,  198,
00616       197,  196,  131,  130,  128,  195,  192,  191,  188,  187,
00617 
00618       186,  185,  182,  181,  176,  170,  169,  168,  167,  166,
00619       165,  162,  158,  157,  156,  155,  154,  153,  152,  151,
00620       150,  149,  145,  144,  138,  137,  136,  135,  132,  398,
00621       131,  130,  128,  120,  106,   98,   69,   66,   62,   61,
00622       398,   58,   58,   56,   56,   54,   54,    9,  398,  398,
00623       398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
00624       398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
00625       398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
00626       398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
00627       398,  398,  398,  398,  398,  398,  398,  398
00628 
00629     } ;
00630 
00631 static yyconst flex_int16_t yy_chk[499] =
00632     {   0,
00633         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00634         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00635         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00636         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00637         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
00638        11,   11,   12,   12,   25,   32,   25,   28,   28,   33,
00639        32,   34,   48,   33,   48,   34,   33,   64,   34,   64,
00640        37,   34,   35,   36,   34,   36,   35,   37,   40,   33,
00641        37,   39,   35,   37,   42,   36,   37,   43,   40,   39,
00642        42,   45,   72,   46,   39,   43,   46,   43,  110,   43,
00643 
00644        45,   45,   43,   47,   50,   46,  110,   54,   72,   46,
00645        47,   50,   54,   46,   59,   59,   78,   47,   79,   79,
00646        82,   97,   78,   94,  106,  107,   79,  118,  404,   82,
00647       106,  109,  113,   97,  145,  145,   82,  118,   94,   94,
00648       107,  121,  109,  113,  107,  121,  124,  125,  160,  151,
00649       161,  124,  125,  151,  188,  188,  402,  396,  395,  394,
00650       161,  393,  392,  160,  391,  389,  188,  399,  399,  399,
00651       399,  399,  399,  400,  400,  400,  400,  400,  400,  401,
00652       401,  401,  401,  401,  401,  403,  403,  405,  405,  405,
00653       388,  405,  405,  406,  406,  406,  406,  406,  406,  407,
00654 
00655       407,  387,  407,  407,  407,  408,  386,  408,  408,  408,
00656       408,  385,  384,  383,  382,  381,  380,  378,  377,  374,
00657       372,  370,  368,  367,  366,  364,  361,  359,  358,  357,
00658       356,  354,  352,  351,  348,  347,  345,  344,  343,  340,
00659       339,  336,  334,  333,  332,  331,  328,  327,  326,  324,
00660       323,  321,  319,  317,  316,  315,  313,  311,  307,  306,
00661       302,  301,  300,  299,  298,  297,  296,  294,  293,  291,
00662       290,  289,  288,  287,  286,  285,  284,  282,  281,  280,
00663       278,  276,  272,  271,  270,  269,  268,  267,  266,  264,
00664       263,  262,  260,  258,  256,  255,  254,  253,  252,  251,
00665 
00666       250,  249,  248,  246,  245,  244,  243,  242,  241,  240,
00667       239,  238,  237,  235,  234,  233,  230,  226,  224,  223,
00668       222,  221,  220,  218,  217,  215,  213,  212,  210,  209,
00669       208,  207,  206,  205,  204,  203,  202,  201,  198,  197,
00670       196,  195,  194,  193,  192,  191,  190,  189,  187,  186,
00671       185,  183,  181,  179,  178,  177,  176,  175,  174,  173,
00672       172,  171,  169,  168,  167,  166,  165,  164,  163,  162,
00673       159,  158,  157,  155,  154,  153,  150,  149,  148,  147,
00674       146,  144,  143,  142,  141,  140,  139,  138,  137,  136,
00675       135,  134,  131,  130,  128,  122,  120,  119,  117,  116,
00676 
00677       115,  114,  112,  111,  108,  105,  104,  103,  100,   99,
00678        98,   96,   92,   91,   90,   89,   88,   87,   86,   85,
00679        84,   83,   81,   80,   77,   75,   74,   73,   71,   65,
00680        63,   58,   56,   49,   44,   41,   30,   26,   24,   23,
00681         9,    8,    7,    6,    5,    4,    3,  398,  398,  398,
00682       398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
00683       398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
00684       398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
00685       398,  398,  398,  398,  398,  398,  398,  398,  398,  398,
00686       398,  398,  398,  398,  398,  398,  398,  398
00687 
00688     } ;
00689 
00690 static yy_state_type yy_last_accepting_state;
00691 static char *yy_last_accepting_cpos;
00692 
00693 static int yy_flex_debug;
00694 static int yy_flex_debug = 0;
00695 
00696 /* The intent behind this definition is that it'll catch
00697  * any uses of REJECT which flex missed.
00698  */
00699 #define REJECT reject_used_but_not_detected
00700 #define yymore() yymore_used_but_not_detected
00701 #define YY_MORE_ADJ 0
00702 #define YY_RESTORE_YY_MORE_OFFSET
00703 static char *yytext;
00704 #line 1 "plugin/innobase/pars/pars0lex.l"
00705 /*****************************************************************************
00706 
00707 Copyright (C) 1997, 2009, Innobase Oy. All Rights Reserved.
00708 
00709 This program is free software; you can redistribute it and/or modify it under
00710 the terms of the GNU General Public License as published by the Free Software
00711 Foundation; version 2 of the License.
00712 
00713 This program is distributed in the hope that it will be useful, but WITHOUT
00714 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00715 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
00716 
00717 You should have received a copy of the GNU General Public License along with
00718 this program; if not, write to the Free Software Foundation, Inc., 59 Temple
00719 Place, Suite 330, Boston, MA 02110-1301 USA
00720 
00721 *****************************************************************************/
00722 /******************************************************
00723 SQL parser lexical analyzer: input file for the GNU Flex lexer generator
00724 
00725 Created 12/14/1997 Heikki Tuuri
00726 *******************************************************/
00727 #define YY_NO_INPUT 1
00728 #line 39 "plugin/innobase/pars/pars0lex.l"
00729 #define YYSTYPE que_node_t*
00730 
00731 #include "univ.i"
00732 #include "pars0pars.h"
00733 #include "pars0grm.hh"
00734 #include "pars0sym.h"
00735 #include "mem0mem.h"
00736 #include "os0proc.h"
00737 
00738 #define malloc(A) ut_malloc(A)
00739 #define free(A)   ut_free(A)
00740 #define realloc(P, A) ut_realloc(P, A)
00741 #define exit(A)   ut_error
00742 
00743 #define YY_INPUT(buf, result, max_size) pars_get_lex_chars(buf, &result, max_size)
00744 
00745 /* String buffer for removing quotes */
00746 static ulint  stringbuf_len_alloc = 0; /* Allocated length */
00747 static ulint  stringbuf_len = 0; /* Current length */
00748 static char*  stringbuf; /* Start of buffer */
00750 static
00751 void
00752 string_append(
00753 /*==========*/
00754   const char* str,  
00755   ulint   len)  
00756 {
00757   if (stringbuf == NULL) {
00758     stringbuf = malloc(1);
00759     stringbuf_len_alloc = 1;
00760   }
00761 
00762   if (stringbuf_len + len > stringbuf_len_alloc) {
00763     while (stringbuf_len + len > stringbuf_len_alloc) {
00764       stringbuf_len_alloc <<= 1;
00765     }
00766     stringbuf = realloc(stringbuf, stringbuf_len_alloc);
00767   }
00768 
00769   memcpy(stringbuf + stringbuf_len, str, len);
00770   stringbuf_len += len;
00771 }
00772 
00773 
00774 
00775 
00776 #line 776 "plugin/innobase/pars/pars0lex.c"
00777 
00778 #define INITIAL 0
00779 #define comment 1
00780 #define quoted 2
00781 #define id 3
00782 
00783 #ifndef YY_NO_UNISTD_H
00784 /* Special case for "unistd.h", since it is non-ANSI. We include it way
00785  * down here because we want the user's section 1 to have been scanned first.
00786  * The user has a chance to override it with an option.
00787  */
00788 #include <unistd.h>
00789 #endif
00790 
00791 #ifndef YY_EXTRA_TYPE
00792 #define YY_EXTRA_TYPE void *
00793 #endif
00794 
00795 static int yy_init_globals (void );
00796 
00797 /* Accessor methods to globals.
00798    These are made visible to non-reentrant scanners for convenience. */
00799 
00800 __attribute__((unused)) static int yylex_destroy (void );
00801 
00802 __attribute__((unused)) static int yyget_debug (void );
00803 
00804 __attribute__((unused)) static void yyset_debug (int debug_flag  );
00805 
00806 YY_EXTRA_TYPE yyget_extra (void );
00807 
00808 __attribute__((unused)) static void yyset_extra (YY_EXTRA_TYPE user_defined  );
00809 
00810 __attribute__((unused)) static FILE *yyget_in (void );
00811 
00812 __attribute__((unused)) static void yyset_in  (FILE * in_str  );
00813 
00814 __attribute__((unused)) static FILE *yyget_out (void );
00815 
00816 __attribute__((unused)) static void yyset_out  (FILE * out_str  );
00817 
00818 __attribute__((unused)) static int yyget_leng (void );
00819 
00820 __attribute__((unused)) static char *yyget_text (void );
00821 
00822 __attribute__((unused)) static int yyget_lineno (void );
00823 
00824 __attribute__((unused)) static void yyset_lineno (int line_number  );
00825 
00826 /* Macros after this point can all be overridden by user definitions in
00827  * section 1.
00828  */
00829 
00830 #ifndef YY_SKIP_YYWRAP
00831 #ifdef __cplusplus
00832 extern "C" int yywrap (void );
00833 #else
00834 extern int yywrap (void );
00835 #endif
00836 #endif
00837 
00838 #ifndef yytext_ptr
00839 static void yy_flex_strncpy (char *,yyconst char *,int );
00840 #endif
00841 
00842 #ifdef YY_NEED_STRLEN
00843 static int yy_flex_strlen (yyconst char * );
00844 #endif
00845 
00846 #ifndef YY_NO_INPUT
00847 
00848 #ifdef __cplusplus
00849 static int yyinput (void );
00850 #else
00851 static int input (void );
00852 #endif
00853 
00854 #endif
00855 
00856 /* Amount of stuff to slurp up with each read. */
00857 #ifndef YY_READ_BUF_SIZE
00858 #ifdef __ia64__
00859 /* On IA-64, the buffer size is 16k, not 8k */
00860 #define YY_READ_BUF_SIZE 16384
00861 #else
00862 #define YY_READ_BUF_SIZE 8192
00863 #endif /* __ia64__ */
00864 #endif
00865 
00866 /* Copy whatever the last rule matched to the standard output. */
00867 #ifndef ECHO
00868 /* This used to be an fputs(), but since the string might contain NUL's,
00869  * we now use fwrite().
00870  */
00871 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
00872 #endif
00873 
00874 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
00875  * is returned in "result".
00876  */
00877 #ifndef YY_INPUT
00878 #define YY_INPUT(buf,result,max_size) \
00879   if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
00880     { \
00881     int c = '*'; \
00882     size_t n; \
00883     for ( n = 0; n < max_size && \
00884            (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
00885       buf[n] = (char) c; \
00886     if ( c == '\n' ) \
00887       buf[n++] = (char) c; \
00888     if ( c == EOF && ferror( yyin ) ) \
00889       YY_FATAL_ERROR( "input in flex scanner failed" ); \
00890     result = n; \
00891     } \
00892   else \
00893     { \
00894     errno=0; \
00895     while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
00896       { \
00897       if( errno != EINTR) \
00898         { \
00899         YY_FATAL_ERROR( "input in flex scanner failed" ); \
00900         break; \
00901         } \
00902       errno=0; \
00903       clearerr(yyin); \
00904       } \
00905     }\
00906 \
00907 
00908 #endif
00909 
00910 /* No semi-colon after return; correct usage is to write "yyterminate();" -
00911  * we don't want an extra ';' after the "return" because that will cause
00912  * some compilers to complain about unreachable statements.
00913  */
00914 #ifndef yyterminate
00915 #define yyterminate() return YY_NULL
00916 #endif
00917 
00918 /* Number of entries by which start-condition stack grows. */
00919 #ifndef YY_START_STACK_INCR
00920 #define YY_START_STACK_INCR 25
00921 #endif
00922 
00923 /* Report a fatal error. */
00924 #ifndef YY_FATAL_ERROR
00925 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
00926 #endif
00927 
00928 /* end tables serialization structures and prototypes */
00929 
00930 /* Default declaration of generated scanner - a define so the user can
00931  * easily add parameters.
00932  */
00933 #ifndef YY_DECL
00934 #define YY_DECL_IS_OURS 1
00935 
00936 UNIV_INTERN int yylex (void);
00937 
00938 #define YY_DECL UNIV_INTERN int yylex (void)
00939 #endif /* !YY_DECL */
00940 
00941 /* Code executed at the beginning of each rule, after yytext and yyleng
00942  * have been set up.
00943  */
00944 #ifndef YY_USER_ACTION
00945 #define YY_USER_ACTION
00946 #endif
00947 
00948 /* Code executed at the end of each rule. */
00949 #ifndef YY_BREAK
00950 #define YY_BREAK break;
00951 #endif
00952 
00953 #define YY_RULE_SETUP \
00954   YY_USER_ACTION
00955 
00958 YY_DECL
00959 {
00960   register yy_state_type yy_current_state;
00961   register char *yy_cp, *yy_bp;
00962   register int yy_act;
00963     
00964 #line 93 "plugin/innobase/pars/pars0lex.l"
00965 
00966 
00967 #line 967 "plugin/innobase/pars/pars0lex.c"
00968 
00969   if ( !(yy_init) )
00970     {
00971     (yy_init) = 1;
00972 
00973 #ifdef YY_USER_INIT
00974     YY_USER_INIT;
00975 #endif
00976 
00977     if ( ! (yy_start) )
00978       (yy_start) = 1; /* first start state */
00979 
00980     if ( ! yyin )
00981       yyin = stdin;
00982 
00983     if ( ! yyout )
00984       yyout = stdout;
00985 
00986     if ( ! YY_CURRENT_BUFFER ) {
00987       yyensure_buffer_stack ();
00988       YY_CURRENT_BUFFER_LVALUE =
00989         yy_create_buffer(yyin,YY_BUF_SIZE );
00990     }
00991 
00992     yy_load_buffer_state( );
00993     }
00994 
00995   while ( 1 )   /* loops until end-of-file is reached */
00996     {
00997     yy_cp = (yy_c_buf_p);
00998 
00999     /* Support of yytext. */
01000     *yy_cp = (yy_hold_char);
01001 
01002     /* yy_bp points to the position in yy_ch_buf of the start of
01003      * the current run.
01004      */
01005     yy_bp = yy_cp;
01006 
01007     yy_current_state = (yy_start);
01008 yy_match:
01009     do
01010       {
01011       register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
01012       if ( yy_accept[yy_current_state] )
01013         {
01014         (yy_last_accepting_state) = yy_current_state;
01015         (yy_last_accepting_cpos) = yy_cp;
01016         }
01017       while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01018         {
01019         yy_current_state = (int) yy_def[yy_current_state];
01020         if ( yy_current_state >= 399 )
01021           yy_c = yy_meta[(unsigned int) yy_c];
01022         }
01023       yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01024       ++yy_cp;
01025       }
01026     while ( yy_current_state != 398 );
01027     yy_cp = (yy_last_accepting_cpos);
01028     yy_current_state = (yy_last_accepting_state);
01029 
01030 yy_find_action:
01031     yy_act = yy_accept[yy_current_state];
01032 
01033     YY_DO_BEFORE_ACTION;
01034 
01035 do_action:  /* This label is used only to access EOF actions. */
01036 
01037     switch ( yy_act )
01038   { /* beginning of action switch */
01039       case 0: /* must back up */
01040       /* undo the effects of YY_DO_BEFORE_ACTION */
01041       *yy_cp = (yy_hold_char);
01042       yy_cp = (yy_last_accepting_cpos);
01043       yy_current_state = (yy_last_accepting_state);
01044       goto yy_find_action;
01045 
01046 case 1:
01047 YY_RULE_SETUP
01048 #line 95 "plugin/innobase/pars/pars0lex.l"
01049 {
01050       yylval = sym_tab_add_int_lit(pars_sym_tab_global,
01051                 atoi(yytext));
01052       return(PARS_INT_LIT);
01053 }
01054   YY_BREAK
01055 case 2:
01056 YY_RULE_SETUP
01057 #line 101 "plugin/innobase/pars/pars0lex.l"
01058 {
01059       ut_error; /* not implemented */
01060 
01061       return(PARS_FLOAT_LIT);
01062 }
01063   YY_BREAK
01064 case 3:
01065 YY_RULE_SETUP
01066 #line 107 "plugin/innobase/pars/pars0lex.l"
01067 {
01068       ulint type;
01069 
01070       yylval = sym_tab_add_bound_lit(pars_sym_tab_global,
01071         yytext + 1, &type);
01072 
01073       return((int) type);
01074 }
01075   YY_BREAK
01076 case 4:
01077 YY_RULE_SETUP
01078 #line 116 "plugin/innobase/pars/pars0lex.l"
01079 {
01080       yylval = sym_tab_add_bound_id(pars_sym_tab_global,
01081         yytext + 1);
01082 
01083       return(PARS_ID_TOKEN);
01084 }
01085   YY_BREAK
01086 case 5:
01087 YY_RULE_SETUP
01088 #line 123 "plugin/innobase/pars/pars0lex.l"
01089 {
01090 /* Quoted character string literals are handled in an explicit
01091 start state 'quoted'.  This state is entered and the buffer for
01092 the scanned string is emptied upon encountering a starting quote.
01093 
01094 In the state 'quoted', only two actions are possible (defined below). */
01095       BEGIN(quoted);
01096       stringbuf_len = 0;
01097 }
01098   YY_BREAK
01099 case 6:
01100 /* rule 6 can match eol */
01101 YY_RULE_SETUP
01102 #line 132 "plugin/innobase/pars/pars0lex.l"
01103 {
01104       /* Got a sequence of characters other than "'":
01105       append to string buffer */
01106       string_append(yytext, yyleng);
01107 }
01108   YY_BREAK
01109 case 7:
01110 YY_RULE_SETUP
01111 #line 137 "plugin/innobase/pars/pars0lex.l"
01112 {
01113       /* Got a sequence of "'" characters:
01114       append half of them to string buffer,
01115       as "''" represents a single "'".
01116       We apply truncating division,
01117       so that "'''" will result in "'". */
01118 
01119       string_append(yytext, yyleng / 2);
01120 
01121       /* If we got an odd number of quotes, then the
01122       last quote we got is the terminating quote.
01123       At the end of the string, we return to the
01124       initial start state and report the scanned
01125       string literal. */
01126 
01127       if (yyleng % 2) {
01128         BEGIN(INITIAL);
01129         yylval = sym_tab_add_str_lit(
01130           pars_sym_tab_global,
01131           (byte*) stringbuf, stringbuf_len);
01132         return(PARS_STR_LIT);
01133       }
01134 }
01135   YY_BREAK
01136 case 8:
01137 YY_RULE_SETUP
01138 #line 161 "plugin/innobase/pars/pars0lex.l"
01139 {
01140 /* Quoted identifiers are handled in an explicit start state 'id'.
01141 This state is entered and the buffer for the scanned string is emptied
01142 upon encountering a starting quote.
01143 
01144 In the state 'id', only two actions are possible (defined below). */
01145       BEGIN(id);
01146       stringbuf_len = 0;
01147 }
01148   YY_BREAK
01149 case 9:
01150 /* rule 9 can match eol */
01151 YY_RULE_SETUP
01152 #line 170 "plugin/innobase/pars/pars0lex.l"
01153 {
01154       /* Got a sequence of characters other than '"':
01155       append to string buffer */
01156       string_append(yytext, yyleng);
01157 }
01158   YY_BREAK
01159 case 10:
01160 YY_RULE_SETUP
01161 #line 175 "plugin/innobase/pars/pars0lex.l"
01162 {
01163       /* Got a sequence of '"' characters:
01164       append half of them to string buffer,
01165       as '""' represents a single '"'.
01166       We apply truncating division,
01167       so that '"""' will result in '"'. */
01168 
01169       string_append(yytext, yyleng / 2);
01170 
01171       /* If we got an odd number of quotes, then the
01172       last quote we got is the terminating quote.
01173       At the end of the string, we return to the
01174       initial start state and report the scanned
01175       identifier. */
01176 
01177       if (yyleng % 2) {
01178         BEGIN(INITIAL);
01179         yylval = sym_tab_add_id(
01180           pars_sym_tab_global,
01181           (byte*) stringbuf, stringbuf_len);
01182 
01183         return(PARS_ID_TOKEN);
01184       }
01185 }
01186   YY_BREAK
01187 case 11:
01188 YY_RULE_SETUP
01189 #line 200 "plugin/innobase/pars/pars0lex.l"
01190 {
01191       yylval = sym_tab_add_null_lit(pars_sym_tab_global);
01192 
01193       return(PARS_NULL_LIT);
01194 }
01195   YY_BREAK
01196 case 12:
01197 YY_RULE_SETUP
01198 #line 206 "plugin/innobase/pars/pars0lex.l"
01199 {
01200       /* Implicit cursor name */
01201       yylval = sym_tab_add_str_lit(pars_sym_tab_global,
01202               (byte*) yytext, yyleng);
01203       return(PARS_SQL_TOKEN);
01204 }
01205   YY_BREAK
01206 case 13:
01207 YY_RULE_SETUP
01208 #line 213 "plugin/innobase/pars/pars0lex.l"
01209 {
01210       return(PARS_AND_TOKEN);
01211 }
01212   YY_BREAK
01213 case 14:
01214 YY_RULE_SETUP
01215 #line 217 "plugin/innobase/pars/pars0lex.l"
01216 {
01217       return(PARS_OR_TOKEN);
01218 }
01219   YY_BREAK
01220 case 15:
01221 YY_RULE_SETUP
01222 #line 221 "plugin/innobase/pars/pars0lex.l"
01223 {
01224       return(PARS_NOT_TOKEN);
01225 }
01226   YY_BREAK
01227 case 16:
01228 YY_RULE_SETUP
01229 #line 225 "plugin/innobase/pars/pars0lex.l"
01230 {
01231       return(PARS_PROCEDURE_TOKEN);
01232 }
01233   YY_BREAK
01234 case 17:
01235 YY_RULE_SETUP
01236 #line 229 "plugin/innobase/pars/pars0lex.l"
01237 {
01238       return(PARS_IN_TOKEN);
01239 }
01240   YY_BREAK
01241 case 18:
01242 YY_RULE_SETUP
01243 #line 233 "plugin/innobase/pars/pars0lex.l"
01244 {
01245       return(PARS_OUT_TOKEN);
01246 }
01247   YY_BREAK
01248 case 19:
01249 YY_RULE_SETUP
01250 #line 237 "plugin/innobase/pars/pars0lex.l"
01251 {
01252       return(PARS_BINARY_TOKEN);
01253 }
01254   YY_BREAK
01255 case 20:
01256 YY_RULE_SETUP
01257 #line 241 "plugin/innobase/pars/pars0lex.l"
01258 {
01259       return(PARS_BLOB_TOKEN);
01260 }
01261   YY_BREAK
01262 case 21:
01263 YY_RULE_SETUP
01264 #line 245 "plugin/innobase/pars/pars0lex.l"
01265 {
01266       return(PARS_INT_TOKEN);
01267 }
01268   YY_BREAK
01269 case 22:
01270 YY_RULE_SETUP
01271 #line 249 "plugin/innobase/pars/pars0lex.l"
01272 {
01273       return(PARS_INT_TOKEN);
01274 }
01275   YY_BREAK
01276 case 23:
01277 YY_RULE_SETUP
01278 #line 253 "plugin/innobase/pars/pars0lex.l"
01279 {
01280       return(PARS_FLOAT_TOKEN);
01281 }
01282   YY_BREAK
01283 case 24:
01284 YY_RULE_SETUP
01285 #line 257 "plugin/innobase/pars/pars0lex.l"
01286 {
01287       return(PARS_CHAR_TOKEN);
01288 }
01289   YY_BREAK
01290 case 25:
01291 YY_RULE_SETUP
01292 #line 261 "plugin/innobase/pars/pars0lex.l"
01293 {
01294       return(PARS_IS_TOKEN);
01295 }
01296   YY_BREAK
01297 case 26:
01298 YY_RULE_SETUP
01299 #line 265 "plugin/innobase/pars/pars0lex.l"
01300 {
01301       return(PARS_BEGIN_TOKEN);
01302 }
01303   YY_BREAK
01304 case 27:
01305 YY_RULE_SETUP
01306 #line 269 "plugin/innobase/pars/pars0lex.l"
01307 {
01308       return(PARS_END_TOKEN);
01309 }
01310   YY_BREAK
01311 case 28:
01312 YY_RULE_SETUP
01313 #line 273 "plugin/innobase/pars/pars0lex.l"
01314 {
01315       return(PARS_IF_TOKEN);
01316 }
01317   YY_BREAK
01318 case 29:
01319 YY_RULE_SETUP
01320 #line 277 "plugin/innobase/pars/pars0lex.l"
01321 {
01322       return(PARS_THEN_TOKEN);
01323 }
01324   YY_BREAK
01325 case 30:
01326 YY_RULE_SETUP
01327 #line 281 "plugin/innobase/pars/pars0lex.l"
01328 {
01329       return(PARS_ELSE_TOKEN);
01330 }
01331   YY_BREAK
01332 case 31:
01333 YY_RULE_SETUP
01334 #line 285 "plugin/innobase/pars/pars0lex.l"
01335 {
01336       return(PARS_ELSIF_TOKEN);
01337 }
01338   YY_BREAK
01339 case 32:
01340 YY_RULE_SETUP
01341 #line 289 "plugin/innobase/pars/pars0lex.l"
01342 {
01343       return(PARS_LOOP_TOKEN);
01344 }
01345   YY_BREAK
01346 case 33:
01347 YY_RULE_SETUP
01348 #line 293 "plugin/innobase/pars/pars0lex.l"
01349 {
01350       return(PARS_WHILE_TOKEN);
01351 }
01352   YY_BREAK
01353 case 34:
01354 YY_RULE_SETUP
01355 #line 297 "plugin/innobase/pars/pars0lex.l"
01356 {
01357       return(PARS_RETURN_TOKEN);
01358 }
01359   YY_BREAK
01360 case 35:
01361 YY_RULE_SETUP
01362 #line 301 "plugin/innobase/pars/pars0lex.l"
01363 {
01364       return(PARS_SELECT_TOKEN);
01365 }
01366   YY_BREAK
01367 case 36:
01368 YY_RULE_SETUP
01369 #line 305 "plugin/innobase/pars/pars0lex.l"
01370 {
01371       return(PARS_SUM_TOKEN);
01372 }
01373   YY_BREAK
01374 case 37:
01375 YY_RULE_SETUP
01376 #line 309 "plugin/innobase/pars/pars0lex.l"
01377 {
01378       return(PARS_COUNT_TOKEN);
01379 }
01380   YY_BREAK
01381 case 38:
01382 YY_RULE_SETUP
01383 #line 313 "plugin/innobase/pars/pars0lex.l"
01384 {
01385       return(PARS_DISTINCT_TOKEN);
01386 }
01387   YY_BREAK
01388 case 39:
01389 YY_RULE_SETUP
01390 #line 317 "plugin/innobase/pars/pars0lex.l"
01391 {
01392       return(PARS_FROM_TOKEN);
01393 }
01394   YY_BREAK
01395 case 40:
01396 YY_RULE_SETUP
01397 #line 321 "plugin/innobase/pars/pars0lex.l"
01398 {
01399       return(PARS_WHERE_TOKEN);
01400 }
01401   YY_BREAK
01402 case 41:
01403 YY_RULE_SETUP
01404 #line 325 "plugin/innobase/pars/pars0lex.l"
01405 {
01406       return(PARS_FOR_TOKEN);
01407 }
01408   YY_BREAK
01409 case 42:
01410 YY_RULE_SETUP
01411 #line 329 "plugin/innobase/pars/pars0lex.l"
01412 {
01413       return(PARS_READ_TOKEN);
01414 }
01415   YY_BREAK
01416 case 43:
01417 YY_RULE_SETUP
01418 #line 333 "plugin/innobase/pars/pars0lex.l"
01419 {
01420       return(PARS_ORDER_TOKEN);
01421 }
01422   YY_BREAK
01423 case 44:
01424 YY_RULE_SETUP
01425 #line 337 "plugin/innobase/pars/pars0lex.l"
01426 {
01427       return(PARS_BY_TOKEN);
01428 }
01429   YY_BREAK
01430 case 45:
01431 YY_RULE_SETUP
01432 #line 341 "plugin/innobase/pars/pars0lex.l"
01433 {
01434       return(PARS_ASC_TOKEN);
01435 }
01436   YY_BREAK
01437 case 46:
01438 YY_RULE_SETUP
01439 #line 345 "plugin/innobase/pars/pars0lex.l"
01440 {
01441       return(PARS_DESC_TOKEN);
01442 }
01443   YY_BREAK
01444 case 47:
01445 YY_RULE_SETUP
01446 #line 349 "plugin/innobase/pars/pars0lex.l"
01447 {
01448       return(PARS_INSERT_TOKEN);
01449 }
01450   YY_BREAK
01451 case 48:
01452 YY_RULE_SETUP
01453 #line 353 "plugin/innobase/pars/pars0lex.l"
01454 {
01455       return(PARS_INTO_TOKEN);
01456 }
01457   YY_BREAK
01458 case 49:
01459 YY_RULE_SETUP
01460 #line 357 "plugin/innobase/pars/pars0lex.l"
01461 {
01462       return(PARS_VALUES_TOKEN);
01463 }
01464   YY_BREAK
01465 case 50:
01466 YY_RULE_SETUP
01467 #line 361 "plugin/innobase/pars/pars0lex.l"
01468 {
01469       return(PARS_UPDATE_TOKEN);
01470 }
01471   YY_BREAK
01472 case 51:
01473 YY_RULE_SETUP
01474 #line 365 "plugin/innobase/pars/pars0lex.l"
01475 {
01476       return(PARS_SET_TOKEN);
01477 }
01478   YY_BREAK
01479 case 52:
01480 YY_RULE_SETUP
01481 #line 369 "plugin/innobase/pars/pars0lex.l"
01482 {
01483       return(PARS_DELETE_TOKEN);
01484 }
01485   YY_BREAK
01486 case 53:
01487 YY_RULE_SETUP
01488 #line 373 "plugin/innobase/pars/pars0lex.l"
01489 {
01490       return(PARS_CURRENT_TOKEN);
01491 }
01492   YY_BREAK
01493 case 54:
01494 YY_RULE_SETUP
01495 #line 377 "plugin/innobase/pars/pars0lex.l"
01496 {
01497       return(PARS_OF_TOKEN);
01498 }
01499   YY_BREAK
01500 case 55:
01501 YY_RULE_SETUP
01502 #line 381 "plugin/innobase/pars/pars0lex.l"
01503 {
01504       return(PARS_CREATE_TOKEN);
01505 }
01506   YY_BREAK
01507 case 56:
01508 YY_RULE_SETUP
01509 #line 385 "plugin/innobase/pars/pars0lex.l"
01510 {
01511       return(PARS_TABLE_TOKEN);
01512 }
01513   YY_BREAK
01514 case 57:
01515 YY_RULE_SETUP
01516 #line 389 "plugin/innobase/pars/pars0lex.l"
01517 {
01518       return(PARS_INDEX_TOKEN);
01519 }
01520   YY_BREAK
01521 case 58:
01522 YY_RULE_SETUP
01523 #line 393 "plugin/innobase/pars/pars0lex.l"
01524 {
01525       return(PARS_UNIQUE_TOKEN);
01526 }
01527   YY_BREAK
01528 case 59:
01529 YY_RULE_SETUP
01530 #line 397 "plugin/innobase/pars/pars0lex.l"
01531 {
01532       return(PARS_CLUSTERED_TOKEN);
01533 }
01534   YY_BREAK
01535 case 60:
01536 YY_RULE_SETUP
01537 #line 401 "plugin/innobase/pars/pars0lex.l"
01538 {
01539       return(PARS_DOES_NOT_FIT_IN_MEM_TOKEN);
01540 }
01541   YY_BREAK
01542 case 61:
01543 YY_RULE_SETUP
01544 #line 405 "plugin/innobase/pars/pars0lex.l"
01545 {
01546       return(PARS_ON_TOKEN);
01547 }
01548   YY_BREAK
01549 case 62:
01550 YY_RULE_SETUP
01551 #line 409 "plugin/innobase/pars/pars0lex.l"
01552 {
01553       return(PARS_DECLARE_TOKEN);
01554 }
01555   YY_BREAK
01556 case 63:
01557 YY_RULE_SETUP
01558 #line 413 "plugin/innobase/pars/pars0lex.l"
01559 {
01560       return(PARS_CURSOR_TOKEN);
01561 }
01562   YY_BREAK
01563 case 64:
01564 YY_RULE_SETUP
01565 #line 417 "plugin/innobase/pars/pars0lex.l"
01566 {
01567       return(PARS_OPEN_TOKEN);
01568 }
01569   YY_BREAK
01570 case 65:
01571 YY_RULE_SETUP
01572 #line 421 "plugin/innobase/pars/pars0lex.l"
01573 {
01574       return(PARS_FETCH_TOKEN);
01575 }
01576   YY_BREAK
01577 case 66:
01578 YY_RULE_SETUP
01579 #line 425 "plugin/innobase/pars/pars0lex.l"
01580 {
01581       return(PARS_CLOSE_TOKEN);
01582 }
01583   YY_BREAK
01584 case 67:
01585 YY_RULE_SETUP
01586 #line 429 "plugin/innobase/pars/pars0lex.l"
01587 {
01588       return(PARS_NOTFOUND_TOKEN);
01589 }
01590   YY_BREAK
01591 case 68:
01592 YY_RULE_SETUP
01593 #line 433 "plugin/innobase/pars/pars0lex.l"
01594 {
01595       return(PARS_TO_CHAR_TOKEN);
01596 }
01597   YY_BREAK
01598 case 69:
01599 YY_RULE_SETUP
01600 #line 437 "plugin/innobase/pars/pars0lex.l"
01601 {
01602       return(PARS_TO_NUMBER_TOKEN);
01603 }
01604   YY_BREAK
01605 case 70:
01606 YY_RULE_SETUP
01607 #line 441 "plugin/innobase/pars/pars0lex.l"
01608 {
01609       return(PARS_TO_BINARY_TOKEN);
01610 }
01611   YY_BREAK
01612 case 71:
01613 YY_RULE_SETUP
01614 #line 445 "plugin/innobase/pars/pars0lex.l"
01615 {
01616       return(PARS_BINARY_TO_NUMBER_TOKEN);
01617 }
01618   YY_BREAK
01619 case 72:
01620 YY_RULE_SETUP
01621 #line 449 "plugin/innobase/pars/pars0lex.l"
01622 {
01623       return(PARS_SUBSTR_TOKEN);
01624 }
01625   YY_BREAK
01626 case 73:
01627 YY_RULE_SETUP
01628 #line 453 "plugin/innobase/pars/pars0lex.l"
01629 {
01630       return(PARS_REPLSTR_TOKEN);
01631 }
01632   YY_BREAK
01633 case 74:
01634 YY_RULE_SETUP
01635 #line 457 "plugin/innobase/pars/pars0lex.l"
01636 {
01637       return(PARS_CONCAT_TOKEN);
01638 }
01639   YY_BREAK
01640 case 75:
01641 YY_RULE_SETUP
01642 #line 461 "plugin/innobase/pars/pars0lex.l"
01643 {
01644       return(PARS_INSTR_TOKEN);
01645 }
01646   YY_BREAK
01647 case 76:
01648 YY_RULE_SETUP
01649 #line 465 "plugin/innobase/pars/pars0lex.l"
01650 {
01651       return(PARS_LENGTH_TOKEN);
01652 }
01653   YY_BREAK
01654 case 77:
01655 YY_RULE_SETUP
01656 #line 469 "plugin/innobase/pars/pars0lex.l"
01657 {
01658       return(PARS_SYSDATE_TOKEN);
01659 }
01660   YY_BREAK
01661 case 78:
01662 YY_RULE_SETUP
01663 #line 473 "plugin/innobase/pars/pars0lex.l"
01664 {
01665       return(PARS_PRINTF_TOKEN);
01666 }
01667   YY_BREAK
01668 case 79:
01669 YY_RULE_SETUP
01670 #line 477 "plugin/innobase/pars/pars0lex.l"
01671 {
01672       return(PARS_ASSERT_TOKEN);
01673 }
01674   YY_BREAK
01675 case 80:
01676 YY_RULE_SETUP
01677 #line 481 "plugin/innobase/pars/pars0lex.l"
01678 {
01679       return(PARS_RND_TOKEN);
01680 }
01681   YY_BREAK
01682 case 81:
01683 YY_RULE_SETUP
01684 #line 485 "plugin/innobase/pars/pars0lex.l"
01685 {
01686       return(PARS_RND_STR_TOKEN);
01687 }
01688   YY_BREAK
01689 case 82:
01690 YY_RULE_SETUP
01691 #line 489 "plugin/innobase/pars/pars0lex.l"
01692 {
01693       return(PARS_ROW_PRINTF_TOKEN);
01694 }
01695   YY_BREAK
01696 case 83:
01697 YY_RULE_SETUP
01698 #line 493 "plugin/innobase/pars/pars0lex.l"
01699 {
01700       return(PARS_COMMIT_TOKEN);
01701 }
01702   YY_BREAK
01703 case 84:
01704 YY_RULE_SETUP
01705 #line 497 "plugin/innobase/pars/pars0lex.l"
01706 {
01707       return(PARS_ROLLBACK_TOKEN);
01708 }
01709   YY_BREAK
01710 case 85:
01711 YY_RULE_SETUP
01712 #line 501 "plugin/innobase/pars/pars0lex.l"
01713 {
01714       return(PARS_WORK_TOKEN);
01715 }
01716   YY_BREAK
01717 case 86:
01718 YY_RULE_SETUP
01719 #line 505 "plugin/innobase/pars/pars0lex.l"
01720 {
01721       return(PARS_UNSIGNED_TOKEN);
01722 }
01723   YY_BREAK
01724 case 87:
01725 YY_RULE_SETUP
01726 #line 509 "plugin/innobase/pars/pars0lex.l"
01727 {
01728       return(PARS_EXIT_TOKEN);
01729 }
01730   YY_BREAK
01731 case 88:
01732 YY_RULE_SETUP
01733 #line 513 "plugin/innobase/pars/pars0lex.l"
01734 {
01735       return(PARS_FUNCTION_TOKEN);
01736 }
01737   YY_BREAK
01738 case 89:
01739 YY_RULE_SETUP
01740 #line 517 "plugin/innobase/pars/pars0lex.l"
01741 {
01742       return(PARS_LOCK_TOKEN);
01743 }
01744   YY_BREAK
01745 case 90:
01746 YY_RULE_SETUP
01747 #line 521 "plugin/innobase/pars/pars0lex.l"
01748 {
01749       return(PARS_SHARE_TOKEN);
01750 }
01751   YY_BREAK
01752 case 91:
01753 YY_RULE_SETUP
01754 #line 525 "plugin/innobase/pars/pars0lex.l"
01755 {
01756       return(PARS_MODE_TOKEN);
01757 }
01758   YY_BREAK
01759 case 92:
01760 YY_RULE_SETUP
01761 #line 529 "plugin/innobase/pars/pars0lex.l"
01762 {
01763       yylval = sym_tab_add_id(pars_sym_tab_global,
01764               (byte*)yytext,
01765               strlen(yytext));
01766       return(PARS_ID_TOKEN);
01767 }
01768   YY_BREAK
01769 case 93:
01770 YY_RULE_SETUP
01771 #line 536 "plugin/innobase/pars/pars0lex.l"
01772 {
01773       return(PARS_DDOT_TOKEN);
01774 }
01775   YY_BREAK
01776 case 94:
01777 YY_RULE_SETUP
01778 #line 540 "plugin/innobase/pars/pars0lex.l"
01779 {
01780       return(PARS_ASSIGN_TOKEN);
01781 }
01782   YY_BREAK
01783 case 95:
01784 YY_RULE_SETUP
01785 #line 544 "plugin/innobase/pars/pars0lex.l"
01786 {
01787       return(PARS_LE_TOKEN);
01788 }
01789   YY_BREAK
01790 case 96:
01791 YY_RULE_SETUP
01792 #line 548 "plugin/innobase/pars/pars0lex.l"
01793 {
01794       return(PARS_GE_TOKEN);
01795 }
01796   YY_BREAK
01797 case 97:
01798 YY_RULE_SETUP
01799 #line 552 "plugin/innobase/pars/pars0lex.l"
01800 {
01801       return(PARS_NE_TOKEN);
01802 }
01803   YY_BREAK
01804 case 98:
01805 YY_RULE_SETUP
01806 #line 556 "plugin/innobase/pars/pars0lex.l"
01807 {
01808 
01809       return((int)(*yytext));
01810 }
01811   YY_BREAK
01812 case 99:
01813 YY_RULE_SETUP
01814 #line 561 "plugin/innobase/pars/pars0lex.l"
01815 {
01816 
01817       return((int)(*yytext));
01818 }
01819   YY_BREAK
01820 case 100:
01821 YY_RULE_SETUP
01822 #line 566 "plugin/innobase/pars/pars0lex.l"
01823 {
01824 
01825       return((int)(*yytext));
01826 }
01827   YY_BREAK
01828 case 101:
01829 YY_RULE_SETUP
01830 #line 571 "plugin/innobase/pars/pars0lex.l"
01831 {
01832 
01833       return((int)(*yytext));
01834 }
01835   YY_BREAK
01836 case 102:
01837 YY_RULE_SETUP
01838 #line 576 "plugin/innobase/pars/pars0lex.l"
01839 {
01840 
01841       return((int)(*yytext));
01842 }
01843   YY_BREAK
01844 case 103:
01845 YY_RULE_SETUP
01846 #line 581 "plugin/innobase/pars/pars0lex.l"
01847 {
01848 
01849       return((int)(*yytext));
01850 }
01851   YY_BREAK
01852 case 104:
01853 YY_RULE_SETUP
01854 #line 586 "plugin/innobase/pars/pars0lex.l"
01855 {
01856 
01857       return((int)(*yytext));
01858 }
01859   YY_BREAK
01860 case 105:
01861 YY_RULE_SETUP
01862 #line 591 "plugin/innobase/pars/pars0lex.l"
01863 {
01864 
01865       return((int)(*yytext));
01866 }
01867   YY_BREAK
01868 case 106:
01869 YY_RULE_SETUP
01870 #line 596 "plugin/innobase/pars/pars0lex.l"
01871 {
01872 
01873       return((int)(*yytext));
01874 }
01875   YY_BREAK
01876 case 107:
01877 YY_RULE_SETUP
01878 #line 601 "plugin/innobase/pars/pars0lex.l"
01879 {
01880 
01881       return((int)(*yytext));
01882 }
01883   YY_BREAK
01884 case 108:
01885 YY_RULE_SETUP
01886 #line 606 "plugin/innobase/pars/pars0lex.l"
01887 {
01888 
01889       return((int)(*yytext));
01890 }
01891   YY_BREAK
01892 case 109:
01893 YY_RULE_SETUP
01894 #line 611 "plugin/innobase/pars/pars0lex.l"
01895 {
01896 
01897       return((int)(*yytext));
01898 }
01899   YY_BREAK
01900 case 110:
01901 YY_RULE_SETUP
01902 #line 616 "plugin/innobase/pars/pars0lex.l"
01903 {
01904 
01905       return((int)(*yytext));
01906 }
01907   YY_BREAK
01908 case 111:
01909 YY_RULE_SETUP
01910 #line 621 "plugin/innobase/pars/pars0lex.l"
01911 {
01912 
01913       return((int)(*yytext));
01914 }
01915   YY_BREAK
01916 case 112:
01917 YY_RULE_SETUP
01918 #line 626 "plugin/innobase/pars/pars0lex.l"
01919 {
01920 
01921       return((int)(*yytext));
01922 }
01923   YY_BREAK
01924 case 113:
01925 YY_RULE_SETUP
01926 #line 631 "plugin/innobase/pars/pars0lex.l"
01927 BEGIN(comment); /* eat up comment */
01928   YY_BREAK
01929 case 114:
01930 /* rule 114 can match eol */
01931 YY_RULE_SETUP
01932 #line 633 "plugin/innobase/pars/pars0lex.l"
01933 
01934   YY_BREAK
01935 case 115:
01936 /* rule 115 can match eol */
01937 YY_RULE_SETUP
01938 #line 634 "plugin/innobase/pars/pars0lex.l"
01939 
01940   YY_BREAK
01941 case 116:
01942 YY_RULE_SETUP
01943 #line 635 "plugin/innobase/pars/pars0lex.l"
01944 BEGIN(INITIAL);
01945   YY_BREAK
01946 case 117:
01947 /* rule 117 can match eol */
01948 YY_RULE_SETUP
01949 #line 637 "plugin/innobase/pars/pars0lex.l"
01950 /* eat up whitespace */
01951   YY_BREAK
01952 case 118:
01953 YY_RULE_SETUP
01954 #line 640 "plugin/innobase/pars/pars0lex.l"
01955 {
01956       fprintf(stderr,"Unrecognized character: %02x\n",
01957         *yytext);
01958 
01959       ut_error;
01960 
01961       return(0);
01962 }
01963   YY_BREAK
01964 case 119:
01965 YY_RULE_SETUP
01966 #line 649 "plugin/innobase/pars/pars0lex.l"
01967 YY_FATAL_ERROR( "flex scanner jammed" );
01968   YY_BREAK
01969 #line 1969 "plugin/innobase/pars/pars0lex.c"
01970 case YY_STATE_EOF(INITIAL):
01971 case YY_STATE_EOF(comment):
01972 case YY_STATE_EOF(quoted):
01973 case YY_STATE_EOF(id):
01974   yyterminate();
01975 
01976   case YY_END_OF_BUFFER:
01977     {
01978     /* Amount of text matched not including the EOB char. */
01979     int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
01980 
01981     /* Undo the effects of YY_DO_BEFORE_ACTION. */
01982     *yy_cp = (yy_hold_char);
01983     YY_RESTORE_YY_MORE_OFFSET
01984 
01985     if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
01986       {
01987       /* We're scanning a new file or input source.  It's
01988        * possible that this happened because the user
01989        * just pointed yyin at a new source and called
01990        * yylex().  If so, then we have to assure
01991        * consistency between YY_CURRENT_BUFFER and our
01992        * globals.  Here is the right place to do so, because
01993        * this is the first action (other than possibly a
01994        * back-up) that will match for the new input source.
01995        */
01996       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01997       YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
01998       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
01999       }
02000 
02001     /* Note that here we test for yy_c_buf_p "<=" to the position
02002      * of the first EOB in the buffer, since yy_c_buf_p will
02003      * already have been incremented past the NUL character
02004      * (since all states make transitions on EOB to the
02005      * end-of-buffer state).  Contrast this with the test
02006      * in input().
02007      */
02008     if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
02009       { /* This was really a NUL. */
02010       yy_state_type yy_next_state;
02011 
02012       (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
02013 
02014       yy_current_state = yy_get_previous_state(  );
02015 
02016       /* Okay, we're now positioned to make the NUL
02017        * transition.  We couldn't have
02018        * yy_get_previous_state() go ahead and do it
02019        * for us because it doesn't know how to deal
02020        * with the possibility of jamming (and we don't
02021        * want to build jamming into it because then it
02022        * will run more slowly).
02023        */
02024 
02025       yy_next_state = yy_try_NUL_trans( yy_current_state );
02026 
02027       yy_bp = (yytext_ptr) + YY_MORE_ADJ;
02028 
02029       if ( yy_next_state )
02030         {
02031         /* Consume the NUL. */
02032         yy_cp = ++(yy_c_buf_p);
02033         yy_current_state = yy_next_state;
02034         goto yy_match;
02035         }
02036 
02037       else
02038         {
02039         yy_cp = (yy_last_accepting_cpos);
02040         yy_current_state = (yy_last_accepting_state);
02041         goto yy_find_action;
02042         }
02043       }
02044 
02045     else switch ( yy_get_next_buffer(  ) )
02046       {
02047       case EOB_ACT_END_OF_FILE:
02048         {
02049         (yy_did_buffer_switch_on_eof) = 0;
02050 
02051         if ( yywrap( ) )
02052           {
02053           /* Note: because we've taken care in
02054            * yy_get_next_buffer() to have set up
02055            * yytext, we can now set up
02056            * yy_c_buf_p so that if some total
02057            * hoser (like flex itself) wants to
02058            * call the scanner after we return the
02059            * YY_NULL, it'll still work - another
02060            * YY_NULL will get returned.
02061            */
02062           (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
02063 
02064           yy_act = YY_STATE_EOF(YY_START);
02065           goto do_action;
02066           }
02067 
02068         else
02069           {
02070           if ( ! (yy_did_buffer_switch_on_eof) )
02071             YY_NEW_FILE;
02072           }
02073         break;
02074         }
02075 
02076       case EOB_ACT_CONTINUE_SCAN:
02077         (yy_c_buf_p) =
02078           (yytext_ptr) + yy_amount_of_matched_text;
02079 
02080         yy_current_state = yy_get_previous_state(  );
02081 
02082         yy_cp = (yy_c_buf_p);
02083         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
02084         goto yy_match;
02085 
02086       case EOB_ACT_LAST_MATCH:
02087         (yy_c_buf_p) =
02088         &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
02089 
02090         yy_current_state = yy_get_previous_state(  );
02091 
02092         yy_cp = (yy_c_buf_p);
02093         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
02094         goto yy_find_action;
02095       }
02096     break;
02097     }
02098 
02099   default:
02100     YY_FATAL_ERROR(
02101       "fatal flex scanner internal error--no action found" );
02102   } /* end of action switch */
02103     } /* end of scanning one token */
02104 } /* end of yylex */
02105 
02106 /* yy_get_next_buffer - try to read in a new buffer
02107  *
02108  * Returns a code representing an action:
02109  *  EOB_ACT_LAST_MATCH -
02110  *  EOB_ACT_CONTINUE_SCAN - continue scanning from current position
02111  *  EOB_ACT_END_OF_FILE - end of file
02112  */
02113 static int yy_get_next_buffer (void)
02114 {
02115       register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
02116   register char *source = (yytext_ptr);
02117   register int number_to_move, i;
02118   int ret_val;
02119 
02120   if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
02121     YY_FATAL_ERROR(
02122     "fatal flex scanner internal error--end of buffer missed" );
02123 
02124   if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
02125     { /* Don't try to fill the buffer, so this is an EOF. */
02126     if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
02127       {
02128       /* We matched a single character, the EOB, so
02129        * treat this as a final EOF.
02130        */
02131       return EOB_ACT_END_OF_FILE;
02132       }
02133 
02134     else
02135       {
02136       /* We matched some text prior to the EOB, first
02137        * process it.
02138        */
02139       return EOB_ACT_LAST_MATCH;
02140       }
02141     }
02142 
02143   /* Try to read more data. */
02144 
02145   /* First move last chars to start of buffer. */
02146   number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
02147 
02148   for ( i = 0; i < number_to_move; ++i )
02149     *(dest++) = *(source++);
02150 
02151   if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
02152     /* don't do the read, it's not guaranteed to return an EOF,
02153      * just force an EOF
02154      */
02155     YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
02156 
02157   else
02158     {
02159       int num_to_read =
02160       YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
02161 
02162     while ( num_to_read <= 0 )
02163       { /* Not enough room in the buffer - grow it. */
02164 
02165       /* just a shorter name for the current buffer */
02166       YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
02167 
02168       int yy_c_buf_p_offset =
02169         (int) ((yy_c_buf_p) - b->yy_ch_buf);
02170 
02171       if ( b->yy_is_our_buffer )
02172         {
02173         int new_size = b->yy_buf_size * 2;
02174 
02175         if ( new_size <= 0 )
02176           b->yy_buf_size += b->yy_buf_size / 8;
02177         else
02178           b->yy_buf_size *= 2;
02179 
02180         b->yy_ch_buf = (char *)
02181           /* Include room in for 2 EOB chars. */
02182           yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
02183         }
02184       else
02185         /* Can't grow it, we don't own it. */
02186         b->yy_ch_buf = 0;
02187 
02188       if ( ! b->yy_ch_buf )
02189         YY_FATAL_ERROR(
02190         "fatal error - scanner input buffer overflow" );
02191 
02192       (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
02193 
02194       num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
02195             number_to_move - 1;
02196 
02197       }
02198 
02199     if ( num_to_read > YY_READ_BUF_SIZE )
02200       num_to_read = YY_READ_BUF_SIZE;
02201 
02202     /* Read in more data. */
02203     YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
02204       (yy_n_chars), (size_t) num_to_read );
02205 
02206     YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02207     }
02208 
02209   if ( (yy_n_chars) == 0 )
02210     {
02211     if ( number_to_move == YY_MORE_ADJ )
02212       {
02213       ret_val = EOB_ACT_END_OF_FILE;
02214       yyrestart(yyin  );
02215       }
02216 
02217     else
02218       {
02219       ret_val = EOB_ACT_LAST_MATCH;
02220       YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
02221         YY_BUFFER_EOF_PENDING;
02222       }
02223     }
02224 
02225   else
02226     ret_val = EOB_ACT_CONTINUE_SCAN;
02227 
02228   if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
02229     /* Extend the array by 50%, plus the number we really need. */
02230     yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
02231     YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
02232     if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
02233       YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
02234   }
02235 
02236   (yy_n_chars) += number_to_move;
02237   YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
02238   YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
02239 
02240   (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
02241 
02242   return ret_val;
02243 }
02244 
02245 /* yy_get_previous_state - get the state just before the EOB char was reached */
02246 
02247     static yy_state_type yy_get_previous_state (void)
02248 {
02249   register yy_state_type yy_current_state;
02250   register char *yy_cp;
02251     
02252   yy_current_state = (yy_start);
02253 
02254   for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
02255     {
02256     register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
02257     if ( yy_accept[yy_current_state] )
02258       {
02259       (yy_last_accepting_state) = yy_current_state;
02260       (yy_last_accepting_cpos) = yy_cp;
02261       }
02262     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02263       {
02264       yy_current_state = (int) yy_def[yy_current_state];
02265       if ( yy_current_state >= 399 )
02266         yy_c = yy_meta[(unsigned int) yy_c];
02267       }
02268     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02269     }
02270 
02271   return yy_current_state;
02272 }
02273 
02274 /* yy_try_NUL_trans - try to make a transition on the NUL character
02275  *
02276  * synopsis
02277  *  next_state = yy_try_NUL_trans( current_state );
02278  */
02279     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
02280 {
02281   register int yy_is_jam;
02282       register char *yy_cp = (yy_c_buf_p);
02283 
02284   register YY_CHAR yy_c = 1;
02285   if ( yy_accept[yy_current_state] )
02286     {
02287     (yy_last_accepting_state) = yy_current_state;
02288     (yy_last_accepting_cpos) = yy_cp;
02289     }
02290   while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02291     {
02292     yy_current_state = (int) yy_def[yy_current_state];
02293     if ( yy_current_state >= 399 )
02294       yy_c = yy_meta[(unsigned int) yy_c];
02295     }
02296   yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02297   yy_is_jam = (yy_current_state == 398);
02298 
02299   return yy_is_jam ? 0 : yy_current_state;
02300 }
02301 
02302 #ifndef YY_NO_INPUT
02303 #ifdef __cplusplus
02304     static int yyinput (void)
02305 #else
02306     static int input  (void)
02307 #endif
02308 
02309 {
02310   int c;
02311     
02312   *(yy_c_buf_p) = (yy_hold_char);
02313 
02314   if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
02315     {
02316     /* yy_c_buf_p now points to the character we want to return.
02317      * If this occurs *before* the EOB characters, then it's a
02318      * valid NUL; if not, then we've hit the end of the buffer.
02319      */
02320     if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
02321       /* This was really a NUL. */
02322       *(yy_c_buf_p) = '\0';
02323 
02324     else
02325       { /* need more input */
02326       int offset = (int)((yy_c_buf_p) - (yytext_ptr));
02327       ++(yy_c_buf_p);
02328 
02329       switch ( yy_get_next_buffer(  ) )
02330         {
02331         case EOB_ACT_LAST_MATCH:
02332           /* This happens because yy_g_n_b()
02333            * sees that we've accumulated a
02334            * token and flags that we need to
02335            * try matching the token before
02336            * proceeding.  But for input(),
02337            * there's no matching to consider.
02338            * So convert the EOB_ACT_LAST_MATCH
02339            * to EOB_ACT_END_OF_FILE.
02340            */
02341 
02342           /* Reset buffer status. */
02343           yyrestart(yyin );
02344 
02345           /*FALLTHROUGH*/
02346 
02347         case EOB_ACT_END_OF_FILE:
02348           {
02349           if ( yywrap( ) )
02350             return EOF;
02351 
02352           if ( ! (yy_did_buffer_switch_on_eof) )
02353             YY_NEW_FILE;
02354 #ifdef __cplusplus
02355           return yyinput();
02356 #else
02357           return input();
02358 #endif
02359           }
02360 
02361         case EOB_ACT_CONTINUE_SCAN:
02362           (yy_c_buf_p) = (yytext_ptr) + offset;
02363           break;
02364         }
02365       }
02366     }
02367 
02368   c = *(unsigned char *) (yy_c_buf_p);  /* cast for 8-bit char's */
02369   *(yy_c_buf_p) = '\0'; /* preserve yytext */
02370   (yy_hold_char) = *++(yy_c_buf_p);
02371 
02372   return c;
02373 }
02374 #endif  /* ifndef YY_NO_INPUT */
02375 
02381     static void yyrestart  (FILE * input_file )
02382 {
02383     
02384   if ( ! YY_CURRENT_BUFFER ){
02385         yyensure_buffer_stack ();
02386     YY_CURRENT_BUFFER_LVALUE =
02387             yy_create_buffer(yyin,YY_BUF_SIZE );
02388   }
02389 
02390   yy_init_buffer(YY_CURRENT_BUFFER,input_file );
02391   yy_load_buffer_state( );
02392 }
02393 
02398     __attribute__((unused)) static void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
02399 {
02400     
02401   /* TODO. We should be able to replace this entire function body
02402    * with
02403    *    yypop_buffer_state();
02404    *    yypush_buffer_state(new_buffer);
02405      */
02406   yyensure_buffer_stack ();
02407   if ( YY_CURRENT_BUFFER == new_buffer )
02408     return;
02409 
02410   if ( YY_CURRENT_BUFFER )
02411     {
02412     /* Flush out information for old buffer. */
02413     *(yy_c_buf_p) = (yy_hold_char);
02414     YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
02415     YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02416     }
02417 
02418   YY_CURRENT_BUFFER_LVALUE = new_buffer;
02419   yy_load_buffer_state( );
02420 
02421   /* We don't actually know whether we did this switch during
02422    * EOF (yywrap()) processing, but the only time this flag
02423    * is looked at is after yywrap() is called, so it's safe
02424    * to go ahead and always set it.
02425    */
02426   (yy_did_buffer_switch_on_eof) = 1;
02427 }
02428 
02429 static void yy_load_buffer_state  (void)
02430 {
02431       (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
02432   (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
02433   yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
02434   (yy_hold_char) = *(yy_c_buf_p);
02435 }
02436 
02443     static YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
02444 {
02445   YY_BUFFER_STATE b;
02446     
02447   b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
02448   if ( ! b )
02449     YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02450 
02451   b->yy_buf_size = size;
02452 
02453   /* yy_ch_buf has to be 2 characters longer than the size given because
02454    * we need to put in 2 end-of-buffer characters.
02455    */
02456   b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
02457   if ( ! b->yy_ch_buf )
02458     YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02459 
02460   b->yy_is_our_buffer = 1;
02461 
02462   yy_init_buffer(b,file );
02463 
02464   return b;
02465 }
02466 
02471     static void yy_delete_buffer (YY_BUFFER_STATE  b )
02472 {
02473     
02474   if ( ! b )
02475     return;
02476 
02477   if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
02478     YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
02479 
02480   if ( b->yy_is_our_buffer )
02481     yyfree((void *) b->yy_ch_buf  );
02482 
02483   yyfree((void *) b  );
02484 }
02485 
02486 /* Initializes or reinitializes a buffer.
02487  * This function is sometimes called more than once on the same buffer,
02488  * such as during a yyrestart() or at EOF.
02489  */
02490     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
02491 
02492 {
02493   int oerrno = errno;
02494     
02495   yy_flush_buffer(b );
02496 
02497   b->yy_input_file = file;
02498   b->yy_fill_buffer = 1;
02499 
02500     /* If b is the current buffer, then yy_init_buffer was _probably_
02501      * called from yyrestart() or through yy_get_next_buffer.
02502      * In that case, we don't want to reset the lineno or column.
02503      */
02504     if (b != YY_CURRENT_BUFFER){
02505         b->yy_bs_lineno = 1;
02506         b->yy_bs_column = 0;
02507     }
02508 
02509         b->yy_is_interactive = 0;
02510     
02511   errno = oerrno;
02512 }
02513 
02518     static void yy_flush_buffer (YY_BUFFER_STATE  b )
02519 {
02520       if ( ! b )
02521     return;
02522 
02523   b->yy_n_chars = 0;
02524 
02525   /* We always need two end-of-buffer characters.  The first causes
02526    * a transition to the end-of-buffer state.  The second causes
02527    * a jam in that state.
02528    */
02529   b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
02530   b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
02531 
02532   b->yy_buf_pos = &b->yy_ch_buf[0];
02533 
02534   b->yy_at_bol = 1;
02535   b->yy_buffer_status = YY_BUFFER_NEW;
02536 
02537   if ( b == YY_CURRENT_BUFFER )
02538     yy_load_buffer_state( );
02539 }
02540 
02547 __attribute__((unused)) static void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
02548 {
02549       if (new_buffer == NULL)
02550     return;
02551 
02552   yyensure_buffer_stack();
02553 
02554   /* This block is copied from yy_switch_to_buffer. */
02555   if ( YY_CURRENT_BUFFER )
02556     {
02557     /* Flush out information for old buffer. */
02558     *(yy_c_buf_p) = (yy_hold_char);
02559     YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
02560     YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
02561     }
02562 
02563   /* Only push if top exists. Otherwise, replace top. */
02564   if (YY_CURRENT_BUFFER)
02565     (yy_buffer_stack_top)++;
02566   YY_CURRENT_BUFFER_LVALUE = new_buffer;
02567 
02568   /* copied from yy_switch_to_buffer. */
02569   yy_load_buffer_state( );
02570   (yy_did_buffer_switch_on_eof) = 1;
02571 }
02572 
02577 __attribute__((unused)) static void yypop_buffer_state (void)
02578 {
02579       if (!YY_CURRENT_BUFFER)
02580     return;
02581 
02582   yy_delete_buffer(YY_CURRENT_BUFFER );
02583   YY_CURRENT_BUFFER_LVALUE = NULL;
02584   if ((yy_buffer_stack_top) > 0)
02585     --(yy_buffer_stack_top);
02586 
02587   if (YY_CURRENT_BUFFER) {
02588     yy_load_buffer_state( );
02589     (yy_did_buffer_switch_on_eof) = 1;
02590   }
02591 }
02592 
02593 /* Allocates the stack if it does not exist.
02594  *  Guarantees space for at least one push.
02595  */
02596 static void yyensure_buffer_stack (void)
02597 {
02598   int num_to_alloc;
02599     
02600   if (!(yy_buffer_stack)) {
02601 
02602     /* First allocation is just for 2 elements, since we don't know if this
02603      * scanner will even need a stack. We use 2 instead of 1 to avoid an
02604      * immediate realloc on the next call.
02605          */
02606     num_to_alloc = 1;
02607     (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
02608                 (num_to_alloc * sizeof(struct yy_buffer_state*)
02609                 );
02610     if ( ! (yy_buffer_stack) )
02611       YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
02612                   
02613     memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
02614         
02615     (yy_buffer_stack_max) = num_to_alloc;
02616     (yy_buffer_stack_top) = 0;
02617     return;
02618   }
02619 
02620   if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
02621 
02622     /* Increase the buffer to prepare for a possible push. */
02623     int grow_size = 8 /* arbitrary grow size */;
02624 
02625     num_to_alloc = (yy_buffer_stack_max) + grow_size;
02626     (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
02627                 ((yy_buffer_stack),
02628                 num_to_alloc * sizeof(struct yy_buffer_state*)
02629                 );
02630     if ( ! (yy_buffer_stack) )
02631       YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
02632 
02633     /* zero only the new slots.*/
02634     memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
02635     (yy_buffer_stack_max) = num_to_alloc;
02636   }
02637 }
02638 
02639 #ifndef YY_EXIT_FAILURE
02640 #define YY_EXIT_FAILURE 2
02641 #endif
02642 
02643 static void yy_fatal_error (yyconst char* msg )
02644 {
02645       (void) fprintf( stderr, "%s\n", msg );
02646   exit( YY_EXIT_FAILURE );
02647 }
02648 
02649 /* Redefine yyless() so it works in section 3 code. */
02650 
02651 #undef yyless
02652 #define yyless(n) \
02653   do \
02654     { \
02655     /* Undo effects of setting up yytext. */ \
02656         int yyless_macro_arg = (n); \
02657         YY_LESS_LINENO(yyless_macro_arg);\
02658     yytext[yyleng] = (yy_hold_char); \
02659     (yy_c_buf_p) = yytext + yyless_macro_arg; \
02660     (yy_hold_char) = *(yy_c_buf_p); \
02661     *(yy_c_buf_p) = '\0'; \
02662     yyleng = yyless_macro_arg; \
02663     } \
02664   while ( 0 )
02665 
02666 /* Accessor  methods (get/set functions) to struct members. */
02667 
02671 __attribute__((unused)) static int yyget_lineno  (void)
02672 {
02673         
02674     return yylineno;
02675 }
02676 
02680 __attribute__((unused)) static FILE *yyget_in  (void)
02681 {
02682         return yyin;
02683 }
02684 
02688 __attribute__((unused)) static FILE *yyget_out  (void)
02689 {
02690         return yyout;
02691 }
02692 
02696 __attribute__((unused)) static int yyget_leng  (void)
02697 {
02698         return yyleng;
02699 }
02700 
02705 __attribute__((unused)) static char *yyget_text  (void)
02706 {
02707         return yytext;
02708 }
02709 
02714 __attribute__((unused)) static void yyset_lineno (int  line_number )
02715 {
02716     
02717     yylineno = line_number;
02718 }
02719 
02726 __attribute__((unused)) static void yyset_in (FILE *  in_str )
02727 {
02728         yyin = in_str ;
02729 }
02730 
02731 __attribute__((unused)) static void yyset_out (FILE *  out_str )
02732 {
02733         yyout = out_str ;
02734 }
02735 
02736 __attribute__((unused)) static int yyget_debug  (void)
02737 {
02738         return yy_flex_debug;
02739 }
02740 
02741 __attribute__((unused)) static void yyset_debug (int  bdebug )
02742 {
02743         yy_flex_debug = bdebug ;
02744 }
02745 
02746 static int yy_init_globals (void)
02747 {
02748         /* Initialization is the same as for the non-reentrant scanner.
02749      * This function is called from yylex_destroy(), so don't allocate here.
02750      */
02751 
02752     (yy_buffer_stack) = 0;
02753     (yy_buffer_stack_top) = 0;
02754     (yy_buffer_stack_max) = 0;
02755     (yy_c_buf_p) = (char *) 0;
02756     (yy_init) = 0;
02757     (yy_start) = 0;
02758 
02759 /* Defined in main.c */
02760 #ifdef YY_STDINIT
02761     yyin = stdin;
02762     yyout = stdout;
02763 #else
02764     yyin = (FILE *) 0;
02765     yyout = (FILE *) 0;
02766 #endif
02767 
02768     /* For future reference: Set errno on error, since we are called by
02769      * yylex_init()
02770      */
02771     return 0;
02772 }
02773 
02774 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
02775 __attribute__((unused)) static int yylex_destroy  (void)
02776 {
02777     
02778     /* Pop the buffer stack, destroying each element. */
02779   while(YY_CURRENT_BUFFER){
02780     yy_delete_buffer(YY_CURRENT_BUFFER  );
02781     YY_CURRENT_BUFFER_LVALUE = NULL;
02782     yypop_buffer_state();
02783   }
02784 
02785   /* Destroy the stack itself. */
02786   yyfree((yy_buffer_stack) );
02787   (yy_buffer_stack) = NULL;
02788 
02789     /* Reset the globals. This is important in a non-reentrant scanner so the next time
02790      * yylex() is called, initialization will occur. */
02791     yy_init_globals( );
02792 
02793     return 0;
02794 }
02795 
02796 /*
02797  * Internal utility routines.
02798  */
02799 
02800 #ifndef yytext_ptr
02801 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
02802 {
02803   register int i;
02804   for ( i = 0; i < n; ++i )
02805     s1[i] = s2[i];
02806 }
02807 #endif
02808 
02809 #ifdef YY_NEED_STRLEN
02810 static int yy_flex_strlen (yyconst char * s )
02811 {
02812   register int n;
02813   for ( n = 0; s[n]; ++n )
02814     ;
02815 
02816   return n;
02817 }
02818 #endif
02819 
02820 static void *yyalloc (yy_size_t  size )
02821 {
02822   return (void *) malloc( size );
02823 }
02824 
02825 static void *yyrealloc  (void * ptr, yy_size_t  size )
02826 {
02827   /* The cast to (char *) in the following accommodates both
02828    * implementations that use char* generic pointers, and those
02829    * that use void* generic pointers.  It works with the latter
02830    * because both ANSI C and C++ allow castless assignment from
02831    * any pointer type to void*, and deal with argument conversions
02832    * as though doing an assignment.
02833    */
02834   return (void *) realloc( (char *) ptr, size );
02835 }
02836 
02837 static void yyfree (void * ptr )
02838 {
02839   free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
02840 }
02841 
02842 #define YYTABLES_NAME "yytables"
02843 
02844 #line 649 "plugin/innobase/pars/pars0lex.l"
02845 
02846 
02847 
02848 /* yylex_destroy() is not defined before Flex 2.5.9
02849    so we attempt to define something that should be good enough
02850    for old Flex - such as that found on CentOS 5
02851 */
02852 #if !defined(YY_FLEX_MAJOR_VERSION) || YY_FLEX_MAJOR_VERSION < 2 \
02853   || (YY_FLEX_MAJOR_VERSION == 2                                        \
02854       && (!defined(YY_FLEX_MINOR_VERSION) || YY_FLEX_MINOR_VERSION < 5  \
02855           || (YY_FLEX_MINOR_VERSION == 5                                \
02856               && (!defined(YY_FLEX_SUBMINOR_VERSION)                    \
02857                   || YY_FLEX_SUBMINOR_VERSION < 9))))
02858 # define yylex_destroy() yy_delete_buffer(YY_CURRENT_BUFFER)
02859 #endif
02860 
02861 /**********************************************************************
02862 Release any resources used by the lexer. */
02863 UNIV_INTERN
02864 void
02865 pars_lexer_close(void)
02866 /*==================*/
02867 {
02868   yylex_destroy();
02869   free(stringbuf);
02870   stringbuf = NULL;
02871   stringbuf_len_alloc = stringbuf_len = 0;
02872 }
02873