~drizzle-trunk/drizzle/development

520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1
/* A Bison parser, made by GNU Bison 2.0.  */
1 by brian
clean slate
2
3
/* Skeleton parser for Yacc-like parsing with Bison,
4
   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
5
6
   This program is free software; you can redistribute it and/or modify
7
   it under the terms of the GNU General Public License as published by
8
   the Free Software Foundation; either version 2, or (at your option)
9
   any later version.
10
11
   This program is distributed in the hope that it will be useful,
12
   but WITHOUT ANY WARRANTY; without even the implied warranty of
13
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
   GNU General Public License for more details.
15
16
   You should have received a copy of the GNU General Public License
17
   along with this program; if not, write to the Free Software
18
   Foundation, Inc., 59 Temple Place - Suite 330,
19
   Boston, MA 02111-1307, USA.  */
20
21
/* As a special exception, when this file is copied by Bison into a
22
   Bison output file, you may use that output file without restriction.
23
   This special exception was added by the Free Software Foundation
24
   in version 1.24 of Bison.  */
25
26
/* Written by Richard Stallman by simplifying the original so called
27
   ``semantic'' parser.  */
28
29
/* All symbols defined below should begin with yy or YY, to avoid
30
   infringing on user name space.  This should be done even for local
31
   variables, as they might otherwise be expanded by user macros.
32
   There are some unavoidable exceptions within include files to
33
   define necessary library symbols; they are noted "INFRINGES ON
34
   USER NAME SPACE" below.  */
35
36
/* Identify Bison output.  */
37
#define YYBISON 1
38
39
/* Skeleton name.  */
40
#define YYSKELETON_NAME "yacc.c"
41
42
/* Pure parsers.  */
43
#define YYPURE 0
44
45
/* Using locations.  */
46
#define YYLSP_NEEDED 0
47
48
49
50
/* Tokens.  */
51
#ifndef YYTOKENTYPE
52
# define YYTOKENTYPE
53
   /* Put the tokens into the symbol table, so that GDB and other debuggers
54
      know about them.  */
55
   enum yytokentype {
56
     PARS_INT_LIT = 258,
57
     PARS_FLOAT_LIT = 259,
58
     PARS_STR_LIT = 260,
59
     PARS_FIXBINARY_LIT = 261,
60
     PARS_BLOB_LIT = 262,
61
     PARS_NULL_LIT = 263,
62
     PARS_ID_TOKEN = 264,
63
     PARS_AND_TOKEN = 265,
64
     PARS_OR_TOKEN = 266,
65
     PARS_NOT_TOKEN = 267,
66
     PARS_GE_TOKEN = 268,
67
     PARS_LE_TOKEN = 269,
68
     PARS_NE_TOKEN = 270,
69
     PARS_PROCEDURE_TOKEN = 271,
70
     PARS_IN_TOKEN = 272,
71
     PARS_OUT_TOKEN = 273,
72
     PARS_BINARY_TOKEN = 274,
73
     PARS_BLOB_TOKEN = 275,
74
     PARS_INT_TOKEN = 276,
75
     PARS_INTEGER_TOKEN = 277,
76
     PARS_FLOAT_TOKEN = 278,
77
     PARS_CHAR_TOKEN = 279,
78
     PARS_IS_TOKEN = 280,
79
     PARS_BEGIN_TOKEN = 281,
80
     PARS_END_TOKEN = 282,
81
     PARS_IF_TOKEN = 283,
82
     PARS_THEN_TOKEN = 284,
83
     PARS_ELSE_TOKEN = 285,
84
     PARS_ELSIF_TOKEN = 286,
85
     PARS_LOOP_TOKEN = 287,
86
     PARS_WHILE_TOKEN = 288,
87
     PARS_RETURN_TOKEN = 289,
88
     PARS_SELECT_TOKEN = 290,
89
     PARS_SUM_TOKEN = 291,
90
     PARS_COUNT_TOKEN = 292,
91
     PARS_DISTINCT_TOKEN = 293,
92
     PARS_FROM_TOKEN = 294,
93
     PARS_WHERE_TOKEN = 295,
94
     PARS_FOR_TOKEN = 296,
95
     PARS_DDOT_TOKEN = 297,
96
     PARS_READ_TOKEN = 298,
97
     PARS_ORDER_TOKEN = 299,
98
     PARS_BY_TOKEN = 300,
99
     PARS_ASC_TOKEN = 301,
100
     PARS_DESC_TOKEN = 302,
101
     PARS_INSERT_TOKEN = 303,
102
     PARS_INTO_TOKEN = 304,
103
     PARS_VALUES_TOKEN = 305,
104
     PARS_UPDATE_TOKEN = 306,
105
     PARS_SET_TOKEN = 307,
106
     PARS_DELETE_TOKEN = 308,
107
     PARS_CURRENT_TOKEN = 309,
108
     PARS_OF_TOKEN = 310,
109
     PARS_CREATE_TOKEN = 311,
110
     PARS_TABLE_TOKEN = 312,
111
     PARS_INDEX_TOKEN = 313,
112
     PARS_UNIQUE_TOKEN = 314,
113
     PARS_CLUSTERED_TOKEN = 315,
114
     PARS_DOES_NOT_FIT_IN_MEM_TOKEN = 316,
115
     PARS_ON_TOKEN = 317,
116
     PARS_ASSIGN_TOKEN = 318,
117
     PARS_DECLARE_TOKEN = 319,
118
     PARS_CURSOR_TOKEN = 320,
119
     PARS_SQL_TOKEN = 321,
120
     PARS_OPEN_TOKEN = 322,
121
     PARS_FETCH_TOKEN = 323,
122
     PARS_CLOSE_TOKEN = 324,
123
     PARS_NOTFOUND_TOKEN = 325,
124
     PARS_TO_CHAR_TOKEN = 326,
125
     PARS_TO_NUMBER_TOKEN = 327,
126
     PARS_TO_BINARY_TOKEN = 328,
127
     PARS_BINARY_TO_NUMBER_TOKEN = 329,
128
     PARS_SUBSTR_TOKEN = 330,
129
     PARS_REPLSTR_TOKEN = 331,
130
     PARS_CONCAT_TOKEN = 332,
131
     PARS_INSTR_TOKEN = 333,
132
     PARS_LENGTH_TOKEN = 334,
133
     PARS_SYSDATE_TOKEN = 335,
134
     PARS_PRINTF_TOKEN = 336,
135
     PARS_ASSERT_TOKEN = 337,
136
     PARS_RND_TOKEN = 338,
137
     PARS_RND_STR_TOKEN = 339,
138
     PARS_ROW_PRINTF_TOKEN = 340,
139
     PARS_COMMIT_TOKEN = 341,
140
     PARS_ROLLBACK_TOKEN = 342,
141
     PARS_WORK_TOKEN = 343,
142
     PARS_UNSIGNED_TOKEN = 344,
143
     PARS_EXIT_TOKEN = 345,
144
     PARS_FUNCTION_TOKEN = 346,
145
     PARS_LOCK_TOKEN = 347,
146
     PARS_SHARE_TOKEN = 348,
147
     PARS_MODE_TOKEN = 349,
148
     NEG = 350
149
   };
150
#endif
151
#define PARS_INT_LIT 258
152
#define PARS_FLOAT_LIT 259
153
#define PARS_STR_LIT 260
154
#define PARS_FIXBINARY_LIT 261
155
#define PARS_BLOB_LIT 262
156
#define PARS_NULL_LIT 263
157
#define PARS_ID_TOKEN 264
158
#define PARS_AND_TOKEN 265
159
#define PARS_OR_TOKEN 266
160
#define PARS_NOT_TOKEN 267
161
#define PARS_GE_TOKEN 268
162
#define PARS_LE_TOKEN 269
163
#define PARS_NE_TOKEN 270
164
#define PARS_PROCEDURE_TOKEN 271
165
#define PARS_IN_TOKEN 272
166
#define PARS_OUT_TOKEN 273
167
#define PARS_BINARY_TOKEN 274
168
#define PARS_BLOB_TOKEN 275
169
#define PARS_INT_TOKEN 276
170
#define PARS_INTEGER_TOKEN 277
171
#define PARS_FLOAT_TOKEN 278
172
#define PARS_CHAR_TOKEN 279
173
#define PARS_IS_TOKEN 280
174
#define PARS_BEGIN_TOKEN 281
175
#define PARS_END_TOKEN 282
176
#define PARS_IF_TOKEN 283
177
#define PARS_THEN_TOKEN 284
178
#define PARS_ELSE_TOKEN 285
179
#define PARS_ELSIF_TOKEN 286
180
#define PARS_LOOP_TOKEN 287
181
#define PARS_WHILE_TOKEN 288
182
#define PARS_RETURN_TOKEN 289
183
#define PARS_SELECT_TOKEN 290
184
#define PARS_SUM_TOKEN 291
185
#define PARS_COUNT_TOKEN 292
186
#define PARS_DISTINCT_TOKEN 293
187
#define PARS_FROM_TOKEN 294
188
#define PARS_WHERE_TOKEN 295
189
#define PARS_FOR_TOKEN 296
190
#define PARS_DDOT_TOKEN 297
191
#define PARS_READ_TOKEN 298
192
#define PARS_ORDER_TOKEN 299
193
#define PARS_BY_TOKEN 300
194
#define PARS_ASC_TOKEN 301
195
#define PARS_DESC_TOKEN 302
196
#define PARS_INSERT_TOKEN 303
197
#define PARS_INTO_TOKEN 304
198
#define PARS_VALUES_TOKEN 305
199
#define PARS_UPDATE_TOKEN 306
200
#define PARS_SET_TOKEN 307
201
#define PARS_DELETE_TOKEN 308
202
#define PARS_CURRENT_TOKEN 309
203
#define PARS_OF_TOKEN 310
204
#define PARS_CREATE_TOKEN 311
205
#define PARS_TABLE_TOKEN 312
206
#define PARS_INDEX_TOKEN 313
207
#define PARS_UNIQUE_TOKEN 314
208
#define PARS_CLUSTERED_TOKEN 315
209
#define PARS_DOES_NOT_FIT_IN_MEM_TOKEN 316
210
#define PARS_ON_TOKEN 317
211
#define PARS_ASSIGN_TOKEN 318
212
#define PARS_DECLARE_TOKEN 319
213
#define PARS_CURSOR_TOKEN 320
214
#define PARS_SQL_TOKEN 321
215
#define PARS_OPEN_TOKEN 322
216
#define PARS_FETCH_TOKEN 323
217
#define PARS_CLOSE_TOKEN 324
218
#define PARS_NOTFOUND_TOKEN 325
219
#define PARS_TO_CHAR_TOKEN 326
220
#define PARS_TO_NUMBER_TOKEN 327
221
#define PARS_TO_BINARY_TOKEN 328
222
#define PARS_BINARY_TO_NUMBER_TOKEN 329
223
#define PARS_SUBSTR_TOKEN 330
224
#define PARS_REPLSTR_TOKEN 331
225
#define PARS_CONCAT_TOKEN 332
226
#define PARS_INSTR_TOKEN 333
227
#define PARS_LENGTH_TOKEN 334
228
#define PARS_SYSDATE_TOKEN 335
229
#define PARS_PRINTF_TOKEN 336
230
#define PARS_ASSERT_TOKEN 337
231
#define PARS_RND_TOKEN 338
232
#define PARS_RND_STR_TOKEN 339
233
#define PARS_ROW_PRINTF_TOKEN 340
234
#define PARS_COMMIT_TOKEN 341
235
#define PARS_ROLLBACK_TOKEN 342
236
#define PARS_WORK_TOKEN 343
237
#define PARS_UNSIGNED_TOKEN 344
238
#define PARS_EXIT_TOKEN 345
239
#define PARS_FUNCTION_TOKEN 346
240
#define PARS_LOCK_TOKEN 347
241
#define PARS_SHARE_TOKEN 348
242
#define PARS_MODE_TOKEN 349
243
#define NEG 350
244
245
246
247
248
/* Copy the first part of user declarations.  */
249
#line 13 "pars0grm.y"
250
251
/* The value of the semantic attribute is a pointer to a query tree node
252
que_node_t */
253
254
#include "univ.i"
255
#include <math.h>				/* Can't be before univ.i */
256
#include "pars0pars.h"
257
#include "mem0mem.h"
258
#include "que0types.h"
259
#include "que0que.h"
260
#include "row0sel.h"
261
262
#define YYSTYPE que_node_t*
263
264
/* #define __STDC__ */
265
266
int
267
yylex(void);
268
269
270
/* Enabling traces.  */
271
#ifndef YYDEBUG
272
# define YYDEBUG 0
273
#endif
274
275
/* Enabling verbose error messages.  */
276
#ifdef YYERROR_VERBOSE
277
# undef YYERROR_VERBOSE
278
# define YYERROR_VERBOSE 1
279
#else
280
# define YYERROR_VERBOSE 0
281
#endif
282
283
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
284
typedef int YYSTYPE;
285
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
286
# define YYSTYPE_IS_DECLARED 1
287
# define YYSTYPE_IS_TRIVIAL 1
288
#endif
289
290
291
292
/* Copy the second part of user declarations.  */
293
294
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
295
/* Line 213 of yacc.c.  */
296
#line 297 "pars0grm.c"
1 by brian
clean slate
297
298
#if ! defined (yyoverflow) || YYERROR_VERBOSE
299
300
# ifndef YYFREE
301
#  define YYFREE free
302
# endif
303
# ifndef YYMALLOC
304
#  define YYMALLOC malloc
305
# endif
306
307
/* The parser invokes alloca or malloc; define the necessary symbols.  */
308
309
# ifdef YYSTACK_USE_ALLOCA
310
#  if YYSTACK_USE_ALLOCA
311
#   ifdef __GNUC__
312
#    define YYSTACK_ALLOC __builtin_alloca
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
313
#   else
314
#    define YYSTACK_ALLOC alloca
1 by brian
clean slate
315
#   endif
316
#  endif
317
# endif
318
319
# ifdef YYSTACK_ALLOC
320
   /* Pacify GCC's `empty if-body' warning. */
321
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
322
# else
323
#  if defined (__STDC__) || defined (__cplusplus)
324
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
325
#   define YYSIZE_T size_t
326
#  endif
327
#  define YYSTACK_ALLOC YYMALLOC
328
#  define YYSTACK_FREE YYFREE
329
# endif
330
#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
331
332
333
#if (! defined (yyoverflow) \
334
     && (! defined (__cplusplus) \
335
	 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
336
337
/* A type that is properly aligned for any stack member.  */
338
union yyalloc
339
{
340
  short int yyss;
341
  YYSTYPE yyvs;
342
  };
343
344
/* The size of the maximum gap between one aligned stack and the next.  */
345
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
346
347
/* The size of an array large to enough to hold all stacks, each with
348
   N elements.  */
349
# define YYSTACK_BYTES(N) \
350
     ((N) * (sizeof (short int) + sizeof (YYSTYPE))			\
351
      + YYSTACK_GAP_MAXIMUM)
352
353
/* Copy COUNT objects from FROM to TO.  The source and destination do
354
   not overlap.  */
355
# ifndef YYCOPY
356
#  if defined (__GNUC__) && 1 < __GNUC__
357
#   define YYCOPY(To, From, Count) \
358
      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
359
#  else
360
#   define YYCOPY(To, From, Count)		\
361
      do					\
362
	{					\
363
	  register YYSIZE_T yyi;		\
364
	  for (yyi = 0; yyi < (Count); yyi++)	\
365
	    (To)[yyi] = (From)[yyi];		\
366
	}					\
367
      while (0)
368
#  endif
369
# endif
370
371
/* Relocate STACK from its old location to the new one.  The
372
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
373
   elements in the stack, and YYPTR gives the new location of the
374
   stack.  Advance YYPTR to a properly aligned location for the next
375
   stack.  */
376
# define YYSTACK_RELOCATE(Stack)					\
377
    do									\
378
      {									\
379
	YYSIZE_T yynewbytes;						\
380
	YYCOPY (&yyptr->Stack, Stack, yysize);				\
381
	Stack = &yyptr->Stack;						\
382
	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
383
	yyptr += yynewbytes / sizeof (*yyptr);				\
384
      }									\
385
    while (0)
386
387
#endif
388
389
#if defined (__STDC__) || defined (__cplusplus)
390
   typedef signed char yysigned_char;
391
#else
392
   typedef short int yysigned_char;
393
#endif
394
395
/* YYFINAL -- State number of the termination state. */
396
#define YYFINAL  5
397
/* YYLAST -- Last index in YYTABLE.  */
398
#define YYLAST   752
399
400
/* YYNTOKENS -- Number of terminals. */
401
#define YYNTOKENS  111
402
/* YYNNTS -- Number of nonterminals. */
403
#define YYNNTS  70
404
/* YYNRULES -- Number of rules. */
405
#define YYNRULES  175
406
/* YYNRULES -- Number of states. */
407
#define YYNSTATES  339
408
409
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
410
#define YYUNDEFTOK  2
411
#define YYMAXUTOK   350
412
413
#define YYTRANSLATE(YYX) 						\
414
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
415
416
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
417
static const unsigned char yytranslate[] =
418
{
419
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
420
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
421
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
422
       2,     2,     2,     2,     2,     2,     2,   103,     2,     2,
423
     105,   106,   100,    99,   108,    98,     2,   101,     2,     2,
424
       2,     2,     2,     2,     2,     2,     2,     2,     2,   104,
425
      96,    95,    97,   107,     2,     2,     2,     2,     2,     2,
426
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
427
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
428
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
429
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
430
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
431
       2,     2,     2,   109,     2,   110,     2,     2,     2,     2,
432
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
433
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
434
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
435
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
436
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
437
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
438
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
439
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
440
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
441
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
442
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
443
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
444
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
445
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
446
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
447
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
448
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
449
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
450
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
451
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
452
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
453
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
454
     102
455
};
456
457
#if YYDEBUG
458
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
459
   YYRHS.  */
460
static const unsigned short int yyprhs[] =
461
{
462
       0,     0,     3,     6,     8,    11,    14,    17,    20,    23,
463
      26,    29,    32,    35,    38,    41,    44,    47,    50,    53,
464
      56,    59,    62,    65,    68,    71,    73,    76,    78,    83,
465
      85,    87,    89,    91,    93,    95,    97,   101,   105,   109,
466
     113,   116,   120,   124,   128,   132,   136,   140,   144,   148,
467
     152,   155,   159,   163,   165,   167,   169,   171,   173,   175,
468
     177,   179,   181,   183,   185,   186,   188,   192,   199,   204,
469
     206,   208,   210,   214,   216,   220,   221,   223,   227,   228,
470
     230,   234,   236,   241,   247,   252,   253,   255,   259,   261,
471
     265,   267,   268,   271,   272,   275,   276,   281,   282,   284,
472
     286,   287,   292,   301,   305,   311,   314,   318,   320,   324,
473
     329,   334,   337,   340,   344,   347,   350,   353,   357,   362,
474
     364,   367,   368,   371,   373,   381,   388,   399,   401,   403,
475
     406,   409,   414,   419,   425,   427,   431,   432,   436,   437,
476
     439,   440,   443,   444,   446,   454,   456,   460,   461,   463,
477
     464,   466,   477,   480,   483,   485,   487,   489,   491,   493,
478
     497,   501,   502,   504,   508,   512,   513,   515,   518,   525,
479
     530,   532,   534,   535,   537,   540
480
};
481
482
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
483
static const short int yyrhs[] =
484
{
485
     112,     0,    -1,   180,   104,    -1,   118,    -1,   119,   104,
486
      -1,   151,   104,    -1,   152,   104,    -1,   153,   104,    -1,
487
     150,   104,    -1,   154,   104,    -1,   146,   104,    -1,   133,
488
     104,    -1,   135,   104,    -1,   145,   104,    -1,   143,   104,
489
      -1,   144,   104,    -1,   140,   104,    -1,   141,   104,    -1,
490
     155,   104,    -1,   157,   104,    -1,   156,   104,    -1,   169,
491
     104,    -1,   170,   104,    -1,   164,   104,    -1,   168,   104,
492
      -1,   113,    -1,   114,   113,    -1,     9,    -1,   116,   105,
493
     124,   106,    -1,     3,    -1,     4,    -1,     5,    -1,     6,
494
      -1,     7,    -1,     8,    -1,    66,    -1,   115,    99,   115,
495
      -1,   115,    98,   115,    -1,   115,   100,   115,    -1,   115,
496
     101,   115,    -1,    98,   115,    -1,   105,   115,   106,    -1,
497
     115,    95,   115,    -1,   115,    96,   115,    -1,   115,    97,
498
     115,    -1,   115,    13,   115,    -1,   115,    14,   115,    -1,
499
     115,    15,   115,    -1,   115,    10,   115,    -1,   115,    11,
500
     115,    -1,    12,   115,    -1,     9,   103,    70,    -1,    66,
501
     103,    70,    -1,    71,    -1,    72,    -1,    73,    -1,    74,
502
      -1,    75,    -1,    77,    -1,    78,    -1,    79,    -1,    80,
503
      -1,    83,    -1,    84,    -1,    -1,   107,    -1,   117,   108,
504
     107,    -1,   109,     9,   105,   117,   106,   110,    -1,   120,
505
     105,   124,   106,    -1,    76,    -1,    81,    -1,    82,    -1,
506
       9,   105,   106,    -1,     9,    -1,   122,   108,     9,    -1,
507
      -1,     9,    -1,   123,   108,     9,    -1,    -1,   115,    -1,
508
     124,   108,   115,    -1,   115,    -1,    37,   105,   100,   106,
509
      -1,    37,   105,    38,     9,   106,    -1,    36,   105,   115,
510
     106,    -1,    -1,   125,    -1,   126,   108,   125,    -1,   100,
511
      -1,   126,    49,   123,    -1,   126,    -1,    -1,    40,   115,
512
      -1,    -1,    41,    51,    -1,    -1,    92,    17,    93,    94,
513
      -1,    -1,    46,    -1,    47,    -1,    -1,    44,    45,     9,
514
     131,    -1,    35,   127,    39,   122,   128,   129,   130,   132,
515
      -1,    48,    49,     9,    -1,   134,    50,   105,   124,   106,
516
      -1,   134,   133,    -1,     9,    95,   115,    -1,   136,    -1,
517
     137,   108,   136,    -1,    40,    54,    55,     9,    -1,    51,
518
       9,    52,   137,    -1,   139,   128,    -1,   139,   138,    -1,
519
      53,    39,     9,    -1,   142,   128,    -1,   142,   138,    -1,
520
      85,   133,    -1,     9,    63,   115,    -1,    31,   115,    29,
521
     114,    -1,   147,    -1,   148,   147,    -1,    -1,    30,   114,
522
      -1,   148,    -1,    28,   115,    29,   114,   149,    27,    28,
523
      -1,    33,   115,    32,   114,    27,    32,    -1,    41,     9,
524
      17,   115,    42,   115,    32,   114,    27,    32,    -1,    90,
525
      -1,    34,    -1,    67,     9,    -1,    69,     9,    -1,    68,
526
       9,    49,   123,    -1,    68,     9,    49,   121,    -1,     9,
527
     171,   160,   161,   162,    -1,   158,    -1,   159,   108,   158,
528
      -1,    -1,   105,     3,   106,    -1,    -1,    89,    -1,    -1,
529
      12,     8,    -1,    -1,    61,    -1,    56,    57,     9,   105,
530
     159,   106,   163,    -1,     9,    -1,   165,   108,     9,    -1,
531
      -1,    59,    -1,    -1,    60,    -1,    56,   166,   167,    58,
532
       9,    62,     9,   105,   165,   106,    -1,    86,    88,    -1,
533
      87,    88,    -1,    21,    -1,    22,    -1,    24,    -1,    19,
534
      -1,    20,    -1,     9,    17,   171,    -1,     9,    18,   171,
535
      -1,    -1,   172,    -1,   173,   108,   172,    -1,     9,   171,
536
     104,    -1,    -1,   174,    -1,   175,   174,    -1,    64,    65,
537
       9,    25,   133,   104,    -1,    64,    91,     9,   104,    -1,
538
     176,    -1,   177,    -1,    -1,   178,    -1,   179,   178,    -1,
539
      16,     9,   105,   173,   106,    25,   175,   179,    26,   114,
540
      27,    -1
541
};
542
543
/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
544
static const unsigned short int yyrline[] =
545
{
546
       0,   138,   138,   141,   142,   143,   144,   145,   146,   147,
547
     148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
548
     158,   159,   160,   161,   162,   166,   167,   172,   173,   175,
549
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
550
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
551
     196,   197,   199,   204,   205,   206,   207,   209,   210,   211,
552
     212,   213,   214,   215,   218,   220,   221,   225,   230,   235,
553
     236,   237,   241,   245,   246,   251,   252,   253,   258,   259,
554
     260,   264,   265,   270,   276,   283,   284,   285,   290,   292,
555
     294,   298,   299,   303,   304,   309,   310,   315,   316,   317,
556
     321,   322,   327,   337,   342,   344,   349,   353,   354,   359,
557
     365,   372,   377,   382,   388,   393,   398,   403,   408,   414,
558
     415,   420,   421,   423,   427,   434,   440,   448,   452,   456,
559
     462,   468,   470,   475,   480,   481,   486,   487,   492,   493,
560
     499,   500,   506,   507,   513,   519,   520,   525,   526,   530,
561
     531,   535,   543,   548,   553,   554,   555,   556,   557,   561,
562
     564,   570,   571,   572,   577,   581,   583,   584,   588,   594,
563
     599,   600,   603,   605,   606,   610
564
};
565
#endif
566
567
#if YYDEBUG || YYERROR_VERBOSE
568
/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
569
   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
570
static const char *const yytname[] =
571
{
572
  "$end", "error", "$undefined", "PARS_INT_LIT", "PARS_FLOAT_LIT",
573
  "PARS_STR_LIT", "PARS_FIXBINARY_LIT", "PARS_BLOB_LIT", "PARS_NULL_LIT",
574
  "PARS_ID_TOKEN", "PARS_AND_TOKEN", "PARS_OR_TOKEN", "PARS_NOT_TOKEN",
575
  "PARS_GE_TOKEN", "PARS_LE_TOKEN", "PARS_NE_TOKEN",
576
  "PARS_PROCEDURE_TOKEN", "PARS_IN_TOKEN", "PARS_OUT_TOKEN",
577
  "PARS_BINARY_TOKEN", "PARS_BLOB_TOKEN", "PARS_INT_TOKEN",
578
  "PARS_INTEGER_TOKEN", "PARS_FLOAT_TOKEN", "PARS_CHAR_TOKEN",
579
  "PARS_IS_TOKEN", "PARS_BEGIN_TOKEN", "PARS_END_TOKEN", "PARS_IF_TOKEN",
580
  "PARS_THEN_TOKEN", "PARS_ELSE_TOKEN", "PARS_ELSIF_TOKEN",
581
  "PARS_LOOP_TOKEN", "PARS_WHILE_TOKEN", "PARS_RETURN_TOKEN",
582
  "PARS_SELECT_TOKEN", "PARS_SUM_TOKEN", "PARS_COUNT_TOKEN",
583
  "PARS_DISTINCT_TOKEN", "PARS_FROM_TOKEN", "PARS_WHERE_TOKEN",
584
  "PARS_FOR_TOKEN", "PARS_DDOT_TOKEN", "PARS_READ_TOKEN",
585
  "PARS_ORDER_TOKEN", "PARS_BY_TOKEN", "PARS_ASC_TOKEN", "PARS_DESC_TOKEN",
586
  "PARS_INSERT_TOKEN", "PARS_INTO_TOKEN", "PARS_VALUES_TOKEN",
587
  "PARS_UPDATE_TOKEN", "PARS_SET_TOKEN", "PARS_DELETE_TOKEN",
588
  "PARS_CURRENT_TOKEN", "PARS_OF_TOKEN", "PARS_CREATE_TOKEN",
589
  "PARS_TABLE_TOKEN", "PARS_INDEX_TOKEN", "PARS_UNIQUE_TOKEN",
590
  "PARS_CLUSTERED_TOKEN", "PARS_DOES_NOT_FIT_IN_MEM_TOKEN",
591
  "PARS_ON_TOKEN", "PARS_ASSIGN_TOKEN", "PARS_DECLARE_TOKEN",
592
  "PARS_CURSOR_TOKEN", "PARS_SQL_TOKEN", "PARS_OPEN_TOKEN",
593
  "PARS_FETCH_TOKEN", "PARS_CLOSE_TOKEN", "PARS_NOTFOUND_TOKEN",
594
  "PARS_TO_CHAR_TOKEN", "PARS_TO_NUMBER_TOKEN", "PARS_TO_BINARY_TOKEN",
595
  "PARS_BINARY_TO_NUMBER_TOKEN", "PARS_SUBSTR_TOKEN", "PARS_REPLSTR_TOKEN",
596
  "PARS_CONCAT_TOKEN", "PARS_INSTR_TOKEN", "PARS_LENGTH_TOKEN",
597
  "PARS_SYSDATE_TOKEN", "PARS_PRINTF_TOKEN", "PARS_ASSERT_TOKEN",
598
  "PARS_RND_TOKEN", "PARS_RND_STR_TOKEN", "PARS_ROW_PRINTF_TOKEN",
599
  "PARS_COMMIT_TOKEN", "PARS_ROLLBACK_TOKEN", "PARS_WORK_TOKEN",
600
  "PARS_UNSIGNED_TOKEN", "PARS_EXIT_TOKEN", "PARS_FUNCTION_TOKEN",
601
  "PARS_LOCK_TOKEN", "PARS_SHARE_TOKEN", "PARS_MODE_TOKEN", "'='", "'<'",
602
  "'>'", "'-'", "'+'", "'*'", "'/'", "NEG", "'%'", "';'", "'('", "')'",
603
  "'?'", "','", "'{'", "'}'", "$accept", "top_statement", "statement",
604
  "statement_list", "exp", "function_name", "question_mark_list",
605
  "stored_procedure_call", "predefined_procedure_call",
606
  "predefined_procedure_name", "user_function_call", "table_list",
607
  "variable_list", "exp_list", "select_item", "select_item_list",
608
  "select_list", "search_condition", "for_update_clause",
609
  "lock_shared_clause", "order_direction", "order_by_clause",
610
  "select_statement", "insert_statement_start", "insert_statement",
611
  "column_assignment", "column_assignment_list", "cursor_positioned",
612
  "update_statement_start", "update_statement_searched",
613
  "update_statement_positioned", "delete_statement_start",
614
  "delete_statement_searched", "delete_statement_positioned",
615
  "row_printf_statement", "assignment_statement", "elsif_element",
616
  "elsif_list", "else_part", "if_statement", "while_statement",
617
  "for_statement", "exit_statement", "return_statement",
618
  "open_cursor_statement", "close_cursor_statement", "fetch_statement",
619
  "column_def", "column_def_list", "opt_column_len", "opt_unsigned",
620
  "opt_not_null", "not_fit_in_memory", "create_table", "column_list",
621
  "unique_def", "clustered_def", "create_index", "commit_statement",
622
  "rollback_statement", "type_name", "parameter_declaration",
623
  "parameter_declaration_list", "variable_declaration",
624
  "variable_declaration_list", "cursor_declaration",
625
  "function_declaration", "declaration", "declaration_list",
626
  "procedure_definition", 0
627
};
628
#endif
629
630
# ifdef YYPRINT
631
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
632
   token YYLEX-NUM.  */
633
static const unsigned short int yytoknum[] =
634
{
635
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
636
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
637
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
638
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
639
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
640
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
641
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
642
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
643
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
644
     345,   346,   347,   348,   349,    61,    60,    62,    45,    43,
645
      42,    47,   350,    37,    59,    40,    41,    63,    44,   123,
646
     125
647
};
648
# endif
649
650
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
651
static const unsigned char yyr1[] =
652
{
653
       0,   111,   112,   113,   113,   113,   113,   113,   113,   113,
654
     113,   113,   113,   113,   113,   113,   113,   113,   113,   113,
655
     113,   113,   113,   113,   113,   114,   114,   115,   115,   115,
656
     115,   115,   115,   115,   115,   115,   115,   115,   115,   115,
657
     115,   115,   115,   115,   115,   115,   115,   115,   115,   115,
658
     115,   115,   115,   116,   116,   116,   116,   116,   116,   116,
659
     116,   116,   116,   116,   117,   117,   117,   118,   119,   120,
660
     120,   120,   121,   122,   122,   123,   123,   123,   124,   124,
661
     124,   125,   125,   125,   125,   126,   126,   126,   127,   127,
662
     127,   128,   128,   129,   129,   130,   130,   131,   131,   131,
663
     132,   132,   133,   134,   135,   135,   136,   137,   137,   138,
664
     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
665
     148,   149,   149,   149,   150,   151,   152,   153,   154,   155,
666
     156,   157,   157,   158,   159,   159,   160,   160,   161,   161,
667
     162,   162,   163,   163,   164,   165,   165,   166,   166,   167,
668
     167,   168,   169,   170,   171,   171,   171,   171,   171,   172,
669
     172,   173,   173,   173,   174,   175,   175,   175,   176,   177,
670
     178,   178,   179,   179,   179,   180
671
};
672
673
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
674
static const unsigned char yyr2[] =
675
{
676
       0,     2,     2,     1,     2,     2,     2,     2,     2,     2,
677
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
678
       2,     2,     2,     2,     2,     1,     2,     1,     4,     1,
679
       1,     1,     1,     1,     1,     1,     3,     3,     3,     3,
680
       2,     3,     3,     3,     3,     3,     3,     3,     3,     3,
681
       2,     3,     3,     1,     1,     1,     1,     1,     1,     1,
682
       1,     1,     1,     1,     0,     1,     3,     6,     4,     1,
683
       1,     1,     3,     1,     3,     0,     1,     3,     0,     1,
684
       3,     1,     4,     5,     4,     0,     1,     3,     1,     3,
685
       1,     0,     2,     0,     2,     0,     4,     0,     1,     1,
686
       0,     4,     8,     3,     5,     2,     3,     1,     3,     4,
687
       4,     2,     2,     3,     2,     2,     2,     3,     4,     1,
688
       2,     0,     2,     1,     7,     6,    10,     1,     1,     2,
689
       2,     4,     4,     5,     1,     3,     0,     3,     0,     1,
690
       0,     2,     0,     1,     7,     1,     3,     0,     1,     0,
691
       1,    10,     2,     2,     1,     1,     1,     1,     1,     3,
692
       3,     0,     1,     3,     3,     0,     1,     2,     6,     4,
693
       1,     1,     0,     1,     2,    11
694
};
695
696
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
697
   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
698
   means the default is an error.  */
699
static const unsigned char yydefact[] =
700
{
701
       0,     0,     0,     0,     0,     1,     2,   161,     0,   162,
702
       0,     0,     0,     0,     0,   157,   158,   154,   155,   156,
703
     159,   160,   165,   163,     0,   166,   172,     0,     0,   167,
704
     170,   171,   173,     0,   164,     0,     0,     0,   174,     0,
705
       0,     0,     0,     0,   128,    85,     0,     0,     0,     0,
706
     147,     0,     0,     0,    69,    70,    71,     0,     0,     0,
707
     127,     0,    25,     0,     3,     0,     0,     0,     0,     0,
708
      91,     0,     0,    91,     0,     0,     0,     0,     0,     0,
709
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
710
       0,   169,     0,    29,    30,    31,    32,    33,    34,    27,
711
       0,    35,    53,    54,    55,    56,    57,    58,    59,    60,
712
      61,    62,    63,     0,     0,     0,     0,     0,     0,     0,
713
      88,    81,    86,    90,     0,     0,     0,     0,     0,     0,
714
     148,   149,   129,     0,   130,   116,   152,   153,     0,   175,
715
      26,     4,    78,    11,     0,   105,    12,     0,   111,   112,
716
      16,    17,   114,   115,    14,    15,    13,    10,     8,     5,
717
       6,     7,     9,    18,    20,    19,    23,    24,    21,    22,
718
       0,   117,     0,    50,     0,    40,     0,     0,     0,     0,
719
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
720
      78,     0,     0,     0,    75,     0,     0,     0,   103,     0,
721
     113,     0,   150,     0,    75,    64,    79,     0,    78,     0,
722
      92,   168,    51,    52,    41,    48,    49,    45,    46,    47,
723
     121,    42,    43,    44,    37,    36,    38,    39,     0,     0,
724
       0,     0,     0,    76,    89,    87,    73,    91,     0,     0,
725
     107,   110,     0,     0,    76,   132,   131,    65,     0,    68,
726
       0,     0,     0,     0,     0,   119,   123,     0,    28,     0,
727
      84,     0,    82,     0,     0,     0,    93,     0,     0,     0,
728
       0,   134,     0,     0,     0,     0,     0,    80,   104,   109,
729
     122,     0,   120,     0,   125,    83,    77,    74,     0,    95,
730
       0,   106,   108,   136,   142,     0,     0,    72,    67,    66,
731
       0,   124,    94,     0,   100,     0,     0,   138,   143,   144,
732
     135,     0,   118,     0,     0,   102,     0,     0,   139,   140,
733
       0,     0,     0,     0,   137,     0,   133,   145,     0,    96,
734
      97,   126,   141,   151,     0,    98,    99,   101,   146
735
};
736
737
/* YYDEFGOTO[NTERM-NUM]. */
738
static const short int yydefgoto[] =
739
{
740
      -1,     2,    62,    63,   206,   116,   248,    64,    65,    66,
741
     245,   237,   234,   207,   122,   123,   124,   148,   289,   304,
742
     337,   315,    67,    68,    69,   240,   241,   149,    70,    71,
743
      72,    73,    74,    75,    76,    77,   255,   256,   257,    78,
744
      79,    80,    81,    82,    83,    84,    85,   271,   272,   307,
745
     319,   326,   309,    86,   328,   131,   203,    87,    88,    89,
746
      20,     9,    10,    25,    26,    30,    31,    32,    33,     3
747
};
748
749
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
750
   STATE-NUM.  */
751
#define YYPACT_NINF -177
752
static const short int yypact[] =
753
{
754
      28,    38,    54,   -46,   -29,  -177,  -177,    56,    50,  -177,
755
     -75,     8,     8,    46,    56,  -177,  -177,  -177,  -177,  -177,
756
    -177,  -177,    63,  -177,     8,  -177,     2,   -26,   -51,  -177,
757
    -177,  -177,  -177,   -13,  -177,    71,    72,   587,  -177,    57,
758
     -21,    26,   272,   272,  -177,    13,    91,    55,    96,    67,
759
     -22,    99,   100,   103,  -177,  -177,  -177,    75,    29,    35,
760
    -177,   116,  -177,   396,  -177,    22,    23,    27,    -9,    30,
761
      87,    31,    32,    87,    47,    49,    52,    58,    59,    60,
762
      61,    62,    65,    66,    74,    77,    78,    86,    89,   102,
763
      75,  -177,   272,  -177,  -177,  -177,  -177,  -177,  -177,    39,
764
     272,    51,  -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,
765
    -177,  -177,  -177,   272,   272,   361,    25,   489,    45,    90,
766
    -177,   651,  -177,   -39,    93,   142,   124,   108,   152,   170,
767
    -177,   131,  -177,   143,  -177,  -177,  -177,  -177,    98,  -177,
768
    -177,  -177,   272,  -177,   110,  -177,  -177,   256,  -177,  -177,
769
    -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,
770
    -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,
771
     112,   651,   137,   101,   147,   204,    88,   272,   272,   272,
772
     272,   272,   587,   272,   272,   272,   272,   272,   272,   272,
773
     272,   587,   272,   -30,   211,   168,   212,   272,  -177,   213,
774
    -177,   118,  -177,   167,   217,   122,   651,   -63,   272,   175,
775
     651,  -177,  -177,  -177,  -177,   101,   101,    21,    21,   651,
776
     332,    21,    21,    21,    -6,    -6,   204,   204,   -60,   460,
777
     198,   222,   126,  -177,   125,  -177,  -177,   -33,   584,   140,
778
    -177,   128,   228,   229,   139,  -177,   125,  -177,   -53,  -177,
779
     272,   -49,   240,   587,   272,  -177,   224,   226,  -177,   225,
780
    -177,   150,  -177,   258,   272,   260,   230,   272,   272,   213,
781
       8,  -177,   -45,   208,   166,   164,   176,   651,  -177,  -177,
782
     587,   631,  -177,   254,  -177,  -177,  -177,  -177,   234,   194,
783
     638,   651,  -177,   182,   227,   228,   280,  -177,  -177,  -177,
784
     587,  -177,  -177,   273,   247,   587,   289,   214,  -177,  -177,
785
    -177,   195,   587,   209,   261,  -177,   524,   199,  -177,   295,
786
     292,   215,   299,   279,  -177,   304,  -177,  -177,   -44,  -177,
787
      -8,  -177,  -177,  -177,   305,  -177,  -177,  -177,  -177
788
};
789
790
/* YYPGOTO[NTERM-NUM].  */
791
static const short int yypgoto[] =
792
{
793
    -177,  -177,   -62,  -176,   -40,  -177,  -177,  -177,  -177,  -177,
794
    -177,  -177,   109,  -166,   120,  -177,  -177,   -69,  -177,  -177,
795
    -177,  -177,   -34,  -177,  -177,    48,  -177,   243,  -177,  -177,
796
    -177,  -177,  -177,  -177,  -177,  -177,    64,  -177,  -177,  -177,
797
    -177,  -177,  -177,  -177,  -177,  -177,  -177,    24,  -177,  -177,
798
    -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,  -177,
799
     -12,   307,  -177,   297,  -177,  -177,  -177,   285,  -177,  -177
800
};
801
802
/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
803
   positive, shift that token.  If negative, reduce the rule which
804
   number is the opposite.  If zero, do what YYDEFACT says.
805
   If YYTABLE_NINF, syntax error.  */
806
#define YYTABLE_NINF -1
807
static const unsigned short int yytable[] =
808
{
809
      21,   140,   115,   117,   152,   121,   220,   264,   231,   181,
810
     194,    24,    27,    37,    35,   229,    93,    94,    95,    96,
811
      97,    98,    99,   135,   228,   100,    45,    15,    16,    17,
812
      18,    13,    19,    14,   145,   129,   181,   130,   335,   336,
813
      36,   144,   251,   249,     1,   250,   258,     4,   250,   118,
814
     119,    28,   171,   275,     5,   276,   170,   278,     6,   250,
815
     173,   294,   333,   295,   334,     8,    28,    11,    12,   195,
816
     232,    22,    24,   175,   176,   265,     7,   280,    34,   101,
817
      39,    40,    90,    91,   102,   103,   104,   105,   106,    92,
818
     107,   108,   109,   110,   188,   189,   111,   112,   177,   178,
819
     125,   179,   180,   181,   126,   127,   128,   210,   132,   133,
820
      45,   113,   134,   120,   179,   180,   181,   136,   114,   186,
821
     187,   188,   189,   137,   312,   138,   141,   147,   142,   316,
822
     190,   143,   196,   198,   146,   150,   151,   215,   216,   217,
823
     218,   219,   172,   221,   222,   223,   224,   225,   226,   227,
824
     192,   154,   230,   155,   174,   121,   156,   238,   140,   197,
825
     199,   200,   157,   158,   159,   160,   161,   140,   266,   162,
826
     163,    93,    94,    95,    96,    97,    98,    99,   164,   201,
827
     100,   165,   166,   183,   184,   185,   186,   187,   188,   189,
828
     167,   202,   204,   168,   214,   193,   183,   184,   185,   186,
829
     187,   188,   189,   205,   118,   119,   169,   212,   177,   178,
830
     277,   179,   180,   181,   281,   208,   211,   213,   140,   181,
831
     233,   236,   239,   242,   210,   243,   244,   290,   291,   247,
832
     252,   261,   262,   263,   101,   268,   269,   270,   273,   102,
833
     103,   104,   105,   106,   274,   107,   108,   109,   110,   279,
834
     140,   111,   112,   283,   140,   254,   285,   284,   293,    93,
835
      94,    95,    96,    97,    98,    99,   113,   286,   100,   287,
836
     296,   288,   297,   114,   298,    93,    94,    95,    96,    97,
837
      98,    99,   301,   299,   100,   302,   303,   306,   308,   311,
838
     313,   314,   317,   183,   184,   185,   186,   187,   188,   189,
839
     320,   327,   321,   318,   260,   324,   322,   325,   330,   329,
840
     209,   331,   332,   246,   338,   235,   153,   292,    38,   310,
841
     282,    23,   101,    29,     0,     0,     0,   102,   103,   104,
842
     105,   106,     0,   107,   108,   109,   110,     0,   101,   111,
843
     112,    41,     0,   102,   103,   104,   105,   106,     0,   107,
844
     108,   109,   110,     0,   113,   111,   112,     0,     0,     0,
845
      42,   114,   253,   254,     0,    43,    44,    45,     0,     0,
846
     113,   177,   178,    46,   179,   180,   181,   114,     0,     0,
847
      47,     0,     0,    48,     0,    49,     0,     0,    50,     0,
848
     182,     0,     0,     0,     0,     0,     0,     0,     0,    51,
849
      52,    53,     0,     0,     0,    41,     0,     0,    54,     0,
850
       0,     0,     0,    55,    56,     0,     0,    57,    58,    59,
851
       0,     0,    60,   139,    42,     0,     0,     0,     0,    43,
852
      44,    45,     0,     0,     0,     0,     0,    46,     0,     0,
853
       0,    61,     0,     0,    47,     0,     0,    48,     0,    49,
854
       0,     0,    50,     0,     0,     0,   183,   184,   185,   186,
855
     187,   188,   189,    51,    52,    53,     0,     0,     0,    41,
856
       0,     0,    54,     0,     0,     0,     0,    55,    56,     0,
857
       0,    57,    58,    59,     0,     0,    60,   259,    42,     0,
858
       0,     0,     0,    43,    44,    45,     0,     0,     0,   177,
859
     178,    46,   179,   180,   181,    61,     0,     0,    47,     0,
860
       0,    48,     0,    49,     0,     0,    50,     0,     0,     0,
861
       0,   191,     0,     0,     0,     0,     0,    51,    52,    53,
862
       0,     0,     0,    41,     0,     0,    54,     0,     0,     0,
863
       0,    55,    56,     0,     0,    57,    58,    59,     0,     0,
864
      60,   323,    42,     0,     0,     0,     0,    43,    44,    45,
865
       0,     0,     0,     0,     0,    46,     0,     0,     0,    61,
866
       0,     0,    47,     0,     0,    48,     0,    49,     0,     0,
867
      50,     0,     0,     0,   183,   184,   185,   186,   187,   188,
868
     189,    51,    52,    53,   177,   178,    41,   179,   180,   181,
869
      54,     0,     0,     0,     0,    55,    56,     0,     0,    57,
870
      58,    59,     0,     0,    60,    42,     0,     0,     0,     0,
871
      43,    44,    45,     0,     0,     0,   267,     0,    46,     0,
872
       0,     0,     0,    61,     0,    47,     0,     0,    48,     0,
873
      49,   177,   178,    50,   179,   180,   181,     0,   177,   178,
874
       0,   179,   180,   181,    51,    52,    53,     0,     0,     0,
875
     300,   177,   178,    54,   179,   180,   181,     0,    55,    56,
876
     305,     0,    57,    58,    59,     0,     0,    60,     0,   183,
877
     184,   185,   186,   187,   188,   189,     0,     0,     0,     0,
878
       0,     0,     0,     0,     0,     0,    61,     0,     0,     0,
879
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
880
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
881
       0,     0,     0,     0,     0,     0,   183,   184,   185,   186,
882
     187,   188,   189,   183,   184,   185,   186,   187,   188,   189,
883
       0,     0,     0,     0,     0,     0,   183,   184,   185,   186,
884
     187,   188,   189
885
};
886
887
static const short int yycheck[] =
888
{
889
      12,    63,    42,    43,    73,    45,   182,    40,    38,    15,
890
      49,     9,    24,    26,    65,   191,     3,     4,     5,     6,
891
       7,     8,     9,    57,   190,    12,    35,    19,    20,    21,
892
      22,   106,    24,   108,    68,    57,    15,    59,    46,    47,
893
      91,    50,   208,   106,    16,   108,   106,     9,   108,    36,
894
      37,    64,    92,   106,     0,   108,    90,   106,   104,   108,
895
     100,   106,   106,   108,   108,     9,    64,    17,    18,   108,
896
     100,    25,     9,   113,   114,   108,   105,   253,   104,    66,
897
       9,     9,    25,   104,    71,    72,    73,    74,    75,    63,
898
      77,    78,    79,    80,   100,   101,    83,    84,    10,    11,
899
       9,    13,    14,    15,    49,     9,    39,   147,     9,     9,
900
      35,    98,     9,   100,    13,    14,    15,    88,   105,    98,
901
      99,   100,   101,    88,   300,     9,   104,    40,   105,   305,
902
     105,   104,    39,     9,   104,   104,   104,   177,   178,   179,
903
     180,   181,   103,   183,   184,   185,   186,   187,   188,   189,
904
     105,   104,   192,   104,   103,   195,   104,   197,   220,    17,
905
      52,     9,   104,   104,   104,   104,   104,   229,   237,   104,
906
     104,     3,     4,     5,     6,     7,     8,     9,   104,     9,
907
      12,   104,   104,    95,    96,    97,    98,    99,   100,   101,
908
     104,    60,    49,   104,   106,   105,    95,    96,    97,    98,
909
      99,   100,   101,   105,    36,    37,   104,    70,    10,    11,
910
     250,    13,    14,    15,   254,   105,   104,    70,   280,    15,
911
       9,     9,     9,   105,   264,    58,     9,   267,   268,   107,
912
      55,     9,   106,   108,    66,    95,   108,     9,     9,    71,
913
      72,    73,    74,    75,   105,    77,    78,    79,    80,     9,
914
     312,    83,    84,    27,   316,    31,   106,    32,   270,     3,
915
       4,     5,     6,     7,     8,     9,    98,     9,    12,     9,
916
      62,    41,   106,   105,   110,     3,     4,     5,     6,     7,
917
       8,     9,    28,   107,    12,    51,    92,   105,    61,     9,
918
      17,    44,     3,    95,    96,    97,    98,    99,   100,   101,
919
     105,     9,    93,    89,   106,   106,    45,    12,     9,    94,
920
      54,    32,     8,   204,     9,   195,    73,   269,    33,   295,
921
     256,    14,    66,    26,    -1,    -1,    -1,    71,    72,    73,
922
      74,    75,    -1,    77,    78,    79,    80,    -1,    66,    83,
923
      84,     9,    -1,    71,    72,    73,    74,    75,    -1,    77,
924
      78,    79,    80,    -1,    98,    83,    84,    -1,    -1,    -1,
925
      28,   105,    30,    31,    -1,    33,    34,    35,    -1,    -1,
926
      98,    10,    11,    41,    13,    14,    15,   105,    -1,    -1,
927
      48,    -1,    -1,    51,    -1,    53,    -1,    -1,    56,    -1,
928
      29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,
929
      68,    69,    -1,    -1,    -1,     9,    -1,    -1,    76,    -1,
930
      -1,    -1,    -1,    81,    82,    -1,    -1,    85,    86,    87,
931
      -1,    -1,    90,    27,    28,    -1,    -1,    -1,    -1,    33,
932
      34,    35,    -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,
933
      -1,   109,    -1,    -1,    48,    -1,    -1,    51,    -1,    53,
934
      -1,    -1,    56,    -1,    -1,    -1,    95,    96,    97,    98,
935
      99,   100,   101,    67,    68,    69,    -1,    -1,    -1,     9,
936
      -1,    -1,    76,    -1,    -1,    -1,    -1,    81,    82,    -1,
937
      -1,    85,    86,    87,    -1,    -1,    90,    27,    28,    -1,
938
      -1,    -1,    -1,    33,    34,    35,    -1,    -1,    -1,    10,
939
      11,    41,    13,    14,    15,   109,    -1,    -1,    48,    -1,
940
      -1,    51,    -1,    53,    -1,    -1,    56,    -1,    -1,    -1,
941
      -1,    32,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,
942
      -1,    -1,    -1,     9,    -1,    -1,    76,    -1,    -1,    -1,
943
      -1,    81,    82,    -1,    -1,    85,    86,    87,    -1,    -1,
944
      90,    27,    28,    -1,    -1,    -1,    -1,    33,    34,    35,
945
      -1,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,   109,
946
      -1,    -1,    48,    -1,    -1,    51,    -1,    53,    -1,    -1,
947
      56,    -1,    -1,    -1,    95,    96,    97,    98,    99,   100,
948
     101,    67,    68,    69,    10,    11,     9,    13,    14,    15,
949
      76,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,    85,
950
      86,    87,    -1,    -1,    90,    28,    -1,    -1,    -1,    -1,
951
      33,    34,    35,    -1,    -1,    -1,    42,    -1,    41,    -1,
952
      -1,    -1,    -1,   109,    -1,    48,    -1,    -1,    51,    -1,
953
      53,    10,    11,    56,    13,    14,    15,    -1,    10,    11,
954
      -1,    13,    14,    15,    67,    68,    69,    -1,    -1,    -1,
955
      29,    10,    11,    76,    13,    14,    15,    -1,    81,    82,
956
      32,    -1,    85,    86,    87,    -1,    -1,    90,    -1,    95,
957
      96,    97,    98,    99,   100,   101,    -1,    -1,    -1,    -1,
958
      -1,    -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,
959
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
960
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
961
      -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    97,    98,
962
      99,   100,   101,    95,    96,    97,    98,    99,   100,   101,
963
      -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    97,    98,
964
      99,   100,   101
965
};
966
967
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
968
   symbol of state STATE-NUM.  */
969
static const unsigned char yystos[] =
970
{
971
       0,    16,   112,   180,     9,     0,   104,   105,     9,   172,
972
     173,    17,    18,   106,   108,    19,    20,    21,    22,    24,
973
     171,   171,    25,   172,     9,   174,   175,   171,    64,   174,
974
     176,   177,   178,   179,   104,    65,    91,    26,   178,     9,
975
       9,     9,    28,    33,    34,    35,    41,    48,    51,    53,
976
      56,    67,    68,    69,    76,    81,    82,    85,    86,    87,
977
      90,   109,   113,   114,   118,   119,   120,   133,   134,   135,
978
     139,   140,   141,   142,   143,   144,   145,   146,   150,   151,
979
     152,   153,   154,   155,   156,   157,   164,   168,   169,   170,
980
      25,   104,    63,     3,     4,     5,     6,     7,     8,     9,
981
      12,    66,    71,    72,    73,    74,    75,    77,    78,    79,
982
      80,    83,    84,    98,   105,   115,   116,   115,    36,    37,
983
     100,   115,   125,   126,   127,     9,    49,     9,    39,    57,
984
      59,   166,     9,     9,     9,   133,    88,    88,     9,    27,
985
     113,   104,   105,   104,    50,   133,   104,    40,   128,   138,
986
     104,   104,   128,   138,   104,   104,   104,   104,   104,   104,
987
     104,   104,   104,   104,   104,   104,   104,   104,   104,   104,
988
     133,   115,   103,   115,   103,   115,   115,    10,    11,    13,
989
      14,    15,    29,    95,    96,    97,    98,    99,   100,   101,
990
     105,    32,   105,   105,    49,   108,    39,    17,     9,    52,
991
       9,     9,    60,   167,    49,   105,   115,   124,   105,    54,
992
     115,   104,    70,    70,   106,   115,   115,   115,   115,   115,
993
     114,   115,   115,   115,   115,   115,   115,   115,   124,   114,
994
     115,    38,   100,     9,   123,   125,     9,   122,   115,     9,
995
     136,   137,   105,    58,     9,   121,   123,   107,   117,   106,
996
     108,   124,    55,    30,    31,   147,   148,   149,   106,    27,
997
     106,     9,   106,   108,    40,   108,   128,    42,    95,   108,
998
       9,   158,   159,     9,   105,   106,   108,   115,   106,     9,
999
     114,   115,   147,    27,    32,   106,     9,     9,    41,   129,
1000
     115,   115,   136,   171,   106,   108,    62,   106,   110,   107,
1001
      29,    28,    51,    92,   130,    32,   105,   160,    61,   163,
1002
     158,     9,   114,    17,    44,   132,   114,     3,    89,   161,
1003
     105,    93,    45,    27,   106,    12,   162,     9,   165,    94,
1004
       9,    32,     8,   106,   108,    46,    47,   131,     9
1005
};
1006
1007
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
1008
# define YYSIZE_T __SIZE_TYPE__
1009
#endif
1010
#if ! defined (YYSIZE_T) && defined (size_t)
1011
# define YYSIZE_T size_t
1012
#endif
1013
#if ! defined (YYSIZE_T)
1014
# if defined (__STDC__) || defined (__cplusplus)
1015
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1016
#  define YYSIZE_T size_t
1017
# endif
1018
#endif
1019
#if ! defined (YYSIZE_T)
1020
# define YYSIZE_T unsigned int
1021
#endif
1022
1023
#define yyerrok		(yyerrstatus = 0)
1024
#define yyclearin	(yychar = YYEMPTY)
1025
#define YYEMPTY		(-2)
1026
#define YYEOF		0
1027
1028
#define YYACCEPT	goto yyacceptlab
1029
#define YYABORT		goto yyabortlab
1030
#define YYERROR		goto yyerrorlab
1031
1032
1033
/* Like YYERROR except do call yyerror.  This remains here temporarily
1034
   to ease the transition to the new meaning of YYERROR, for GCC.
1035
   Once GCC version 2 has supplanted version 1, this can go.  */
1036
1037
#define YYFAIL		goto yyerrlab
1038
1039
#define YYRECOVERING()  (!!yyerrstatus)
1040
1041
#define YYBACKUP(Token, Value)					\
1042
do								\
1043
  if (yychar == YYEMPTY && yylen == 1)				\
1044
    {								\
1045
      yychar = (Token);						\
1046
      yylval = (Value);						\
1047
      yytoken = YYTRANSLATE (yychar);				\
1048
      YYPOPSTACK;						\
1049
      goto yybackup;						\
1050
    }								\
1051
  else								\
1052
    { 								\
1053
      yyerror ("syntax error: cannot back up");\
1054
      YYERROR;							\
1055
    }								\
1056
while (0)
1057
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1058
1 by brian
clean slate
1059
#define YYTERROR	1
1060
#define YYERRCODE	256
1061
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1062
1063
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1064
   If N is 0, then set CURRENT to the empty location which ends
1065
   the previous symbol: RHS[0] (always defined).  */
1066
1067
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
1 by brian
clean slate
1068
#ifndef YYLLOC_DEFAULT
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1069
# define YYLLOC_DEFAULT(Current, Rhs, N)				\
1070
    do									\
1071
      if (N)								\
1072
	{								\
1073
	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
1074
	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
1075
	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
1076
	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
1077
	}								\
1078
      else								\
1079
	{								\
1080
	  (Current).first_line   = (Current).last_line   =		\
1081
	    YYRHSLOC (Rhs, 0).last_line;				\
1082
	  (Current).first_column = (Current).last_column =		\
1083
	    YYRHSLOC (Rhs, 0).last_column;				\
1084
	}								\
1085
    while (0)
1086
#endif
1087
1088
1089
/* YY_LOCATION_PRINT -- Print the location on the stream.
1090
   This macro was not mandated originally: define only if we know
1091
   we won't break user code: when these are the locations we know.  */
1092
1093
#ifndef YY_LOCATION_PRINT
1094
# ifdef YYLTYPE_IS_TRIVIAL
1095
#  define YY_LOCATION_PRINT(File, Loc)			\
1096
     fprintf (File, "%d.%d-%d.%d",			\
1097
              (Loc).first_line, (Loc).first_column,	\
1098
              (Loc).last_line,  (Loc).last_column)
1099
# else
1100
#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1101
# endif
1102
#endif
1103
1 by brian
clean slate
1104
1105
/* YYLEX -- calling `yylex' with the right arguments.  */
1106
1107
#ifdef YYLEX_PARAM
1108
# define YYLEX yylex (YYLEX_PARAM)
1109
#else
1110
# define YYLEX yylex ()
1111
#endif
1112
1113
/* Enable debugging if requested.  */
1114
#if YYDEBUG
1115
1116
# ifndef YYFPRINTF
1117
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1118
#  define YYFPRINTF fprintf
1119
# endif
1120
1121
# define YYDPRINTF(Args)			\
1122
do {						\
1123
  if (yydebug)					\
1124
    YYFPRINTF Args;				\
1125
} while (0)
1126
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1127
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)		\
1 by brian
clean slate
1128
do {								\
1129
  if (yydebug)							\
1130
    {								\
1131
      YYFPRINTF (stderr, "%s ", Title);				\
1132
      yysymprint (stderr, 					\
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1133
                  Type, Value);	\
1 by brian
clean slate
1134
      YYFPRINTF (stderr, "\n");					\
1135
    }								\
1136
} while (0)
1137
1138
/*------------------------------------------------------------------.
1139
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1140
| TOP (included).                                                   |
1141
`------------------------------------------------------------------*/
1142
1143
#if defined (__STDC__) || defined (__cplusplus)
1144
static void
1145
yy_stack_print (short int *bottom, short int *top)
1146
#else
1147
static void
1148
yy_stack_print (bottom, top)
1149
    short int *bottom;
1150
    short int *top;
1151
#endif
1152
{
1153
  YYFPRINTF (stderr, "Stack now");
1154
  for (/* Nothing. */; bottom <= top; ++bottom)
1155
    YYFPRINTF (stderr, " %d", *bottom);
1156
  YYFPRINTF (stderr, "\n");
1157
}
1158
1159
# define YY_STACK_PRINT(Bottom, Top)				\
1160
do {								\
1161
  if (yydebug)							\
1162
    yy_stack_print ((Bottom), (Top));				\
1163
} while (0)
1164
1165
1166
/*------------------------------------------------.
1167
| Report that the YYRULE is going to be reduced.  |
1168
`------------------------------------------------*/
1169
1170
#if defined (__STDC__) || defined (__cplusplus)
1171
static void
1172
yy_reduce_print (int yyrule)
1173
#else
1174
static void
1175
yy_reduce_print (yyrule)
1176
    int yyrule;
1177
#endif
1178
{
1179
  int yyi;
1180
  unsigned int yylno = yyrline[yyrule];
1181
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
1182
             yyrule - 1, yylno);
1183
  /* Print the symbols being reduced, and their result.  */
1184
  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
1185
    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
1186
  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
1187
}
1188
1189
# define YY_REDUCE_PRINT(Rule)		\
1190
do {					\
1191
  if (yydebug)				\
1192
    yy_reduce_print (Rule);		\
1193
} while (0)
1194
1195
/* Nonzero means print parse trace.  It is left uninitialized so that
1196
   multiple parsers can coexist.  */
1197
int yydebug;
1198
#else /* !YYDEBUG */
1199
# define YYDPRINTF(Args)
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1200
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1 by brian
clean slate
1201
# define YY_STACK_PRINT(Bottom, Top)
1202
# define YY_REDUCE_PRINT(Rule)
1203
#endif /* !YYDEBUG */
1204
1205
1206
/* YYINITDEPTH -- initial size of the parser's stacks.  */
1207
#ifndef	YYINITDEPTH
1208
# define YYINITDEPTH 200
1209
#endif
1210
1211
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1212
   if the built-in stack extension method is used).
1213
1214
   Do not make this value too large; the results are undefined if
1215
   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
1216
   evaluated with infinite-precision integer arithmetic.  */
1217
1218
#ifndef YYMAXDEPTH
1219
# define YYMAXDEPTH 10000
1220
#endif
1221
1222

1223
1224
#if YYERROR_VERBOSE
1225
1226
# ifndef yystrlen
1227
#  if defined (__GLIBC__) && defined (_STRING_H)
1228
#   define yystrlen strlen
1229
#  else
1230
/* Return the length of YYSTR.  */
1231
static YYSIZE_T
1232
#   if defined (__STDC__) || defined (__cplusplus)
1233
yystrlen (const char *yystr)
1234
#   else
1235
yystrlen (yystr)
1236
     const char *yystr;
1237
#   endif
1238
{
1239
  register const char *yys = yystr;
1240
1241
  while (*yys++ != '\0')
1242
    continue;
1243
1244
  return yys - yystr - 1;
1245
}
1246
#  endif
1247
# endif
1248
1249
# ifndef yystpcpy
1250
#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1251
#   define yystpcpy stpcpy
1252
#  else
1253
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1254
   YYDEST.  */
1255
static char *
1256
#   if defined (__STDC__) || defined (__cplusplus)
1257
yystpcpy (char *yydest, const char *yysrc)
1258
#   else
1259
yystpcpy (yydest, yysrc)
1260
     char *yydest;
1261
     const char *yysrc;
1262
#   endif
1263
{
1264
  register char *yyd = yydest;
1265
  register const char *yys = yysrc;
1266
1267
  while ((*yyd++ = *yys++) != '\0')
1268
    continue;
1269
1270
  return yyd - 1;
1271
}
1272
#  endif
1273
# endif
1274
1275
#endif /* !YYERROR_VERBOSE */
1276
1277

1278
1279
#if YYDEBUG
1280
/*--------------------------------.
1281
| Print this symbol on YYOUTPUT.  |
1282
`--------------------------------*/
1283
1284
#if defined (__STDC__) || defined (__cplusplus)
1285
static void
1286
yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
1287
#else
1288
static void
1289
yysymprint (yyoutput, yytype, yyvaluep)
1290
    FILE *yyoutput;
1291
    int yytype;
1292
    YYSTYPE *yyvaluep;
1293
#endif
1294
{
1295
  /* Pacify ``unused variable'' warnings.  */
1296
  (void) yyvaluep;
1297
1298
  if (yytype < YYNTOKENS)
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1299
    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1 by brian
clean slate
1300
  else
1301
    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1302
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1303
1304
# ifdef YYPRINT
1305
  if (yytype < YYNTOKENS)
1306
    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1307
# endif
1 by brian
clean slate
1308
  switch (yytype)
1309
    {
1310
      default:
1311
        break;
1312
    }
1313
  YYFPRINTF (yyoutput, ")");
1314
}
1315
1316
#endif /* ! YYDEBUG */
1317
/*-----------------------------------------------.
1318
| Release the memory associated to this symbol.  |
1319
`-----------------------------------------------*/
1320
1321
#if defined (__STDC__) || defined (__cplusplus)
1322
static void
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1323
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1 by brian
clean slate
1324
#else
1325
static void
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1326
yydestruct (yymsg, yytype, yyvaluep)
1327
    const char *yymsg;
1 by brian
clean slate
1328
    int yytype;
1329
    YYSTYPE *yyvaluep;
1330
#endif
1331
{
1332
  /* Pacify ``unused variable'' warnings.  */
1333
  (void) yyvaluep;
1334
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1335
  if (!yymsg)
1336
    yymsg = "Deleting";
1337
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1338
1 by brian
clean slate
1339
  switch (yytype)
1340
    {
1341
1342
      default:
1343
        break;
1344
    }
1345
}
1346

1347
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1348
1349
/* The look-ahead symbol.  */
1350
static int yychar;
1351
1352
/* The semantic value of the look-ahead symbol.  */
1353
UNIV_INTERN YYSTYPE yylval;
1 by brian
clean slate
1354
1355
/* Number of syntax errors so far.  */
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1356
static int yynerrs;
1 by brian
clean slate
1357
1358
1359
1360
/*----------.
1361
| yyparse.  |
1362
`----------*/
1363
1364
#ifdef YYPARSE_PARAM
1365
# if defined (__STDC__) || defined (__cplusplus)
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1366
UNIV_INTERN int yyparse (void *YYPARSE_PARAM)
1 by brian
clean slate
1367
# else
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1368
UNIV_INTERN int yyparse (YYPARSE_PARAM)
1 by brian
clean slate
1369
  void *YYPARSE_PARAM;
1370
# endif
1371
#else /* ! YYPARSE_PARAM */
1372
#if defined (__STDC__) || defined (__cplusplus)
1373
int
1374
yyparse (void)
1375
#else
1376
int
1377
yyparse ()
1378
1379
#endif
1380
#endif
1381
{
1382
  
1383
  register int yystate;
1384
  register int yyn;
1385
  int yyresult;
1386
  /* Number of tokens to shift before error messages enabled.  */
1387
  int yyerrstatus;
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1388
  /* Look-ahead token as an internal (translated) token number.  */
1 by brian
clean slate
1389
  int yytoken = 0;
1390
1391
  /* Three stacks and their tools:
1392
     `yyss': related to states,
1393
     `yyvs': related to semantic values,
1394
     `yyls': related to locations.
1395
1396
     Refer to the stacks thru separate pointers, to allow yyoverflow
1397
     to reallocate them elsewhere.  */
1398
1399
  /* The state stack.  */
1400
  short int yyssa[YYINITDEPTH];
1401
  short int *yyss = yyssa;
1402
  register short int *yyssp;
1403
1404
  /* The semantic value stack.  */
1405
  YYSTYPE yyvsa[YYINITDEPTH];
1406
  YYSTYPE *yyvs = yyvsa;
1407
  register YYSTYPE *yyvsp;
1408
1409
1410
1411
#define YYPOPSTACK   (yyvsp--, yyssp--)
1412
1413
  YYSIZE_T yystacksize = YYINITDEPTH;
1414
1415
  /* The variables used to return semantic value and location from the
1416
     action routines.  */
1417
  YYSTYPE yyval;
1418
1419
1420
  /* When reducing, the number of symbols on the RHS of the reduced
1421
     rule.  */
1422
  int yylen;
1423
1424
  YYDPRINTF ((stderr, "Starting parse\n"));
1425
1426
  yystate = 0;
1427
  yyerrstatus = 0;
1428
  yynerrs = 0;
1429
  yychar = YYEMPTY;		/* Cause a token to be read.  */
1430
1431
  /* Initialize stack pointers.
1432
     Waste one element of value and location stack
1433
     so that they stay on the same level as the state stack.
1434
     The wasted elements are never initialized.  */
1435
1436
  yyssp = yyss;
1437
  yyvsp = yyvs;
1438
1439
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1440
  yyvsp[0] = yylval;
1441
1 by brian
clean slate
1442
  goto yysetstate;
1443
1444
/*------------------------------------------------------------.
1445
| yynewstate -- Push a new state, which is found in yystate.  |
1446
`------------------------------------------------------------*/
1447
 yynewstate:
1448
  /* In all cases, when you get here, the value and location stacks
1449
     have just been pushed. so pushing a state here evens the stacks.
1450
     */
1451
  yyssp++;
1452
1453
 yysetstate:
1454
  *yyssp = yystate;
1455
1456
  if (yyss + yystacksize - 1 <= yyssp)
1457
    {
1458
      /* Get the current used size of the three stacks, in elements.  */
1459
      YYSIZE_T yysize = yyssp - yyss + 1;
1460
1461
#ifdef yyoverflow
1462
      {
1463
	/* Give user a chance to reallocate the stack. Use copies of
1464
	   these so that the &'s don't force the real ones into
1465
	   memory.  */
1466
	YYSTYPE *yyvs1 = yyvs;
1467
	short int *yyss1 = yyss;
1468
1469
1470
	/* Each stack pointer address is followed by the size of the
1471
	   data in use in that stack, in bytes.  This used to be a
1472
	   conditional around just the two extra args, but that might
1473
	   be undefined if yyoverflow is a macro.  */
1474
	yyoverflow ("parser stack overflow",
1475
		    &yyss1, yysize * sizeof (*yyssp),
1476
		    &yyvs1, yysize * sizeof (*yyvsp),
1477
1478
		    &yystacksize);
1479
1480
	yyss = yyss1;
1481
	yyvs = yyvs1;
1482
      }
1483
#else /* no yyoverflow */
1484
# ifndef YYSTACK_RELOCATE
1485
      goto yyoverflowlab;
1486
# else
1487
      /* Extend the stack our own way.  */
1488
      if (YYMAXDEPTH <= yystacksize)
1489
	goto yyoverflowlab;
1490
      yystacksize *= 2;
1491
      if (YYMAXDEPTH < yystacksize)
1492
	yystacksize = YYMAXDEPTH;
1493
1494
      {
1495
	short int *yyss1 = yyss;
1496
	union yyalloc *yyptr =
1497
	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1498
	if (! yyptr)
1499
	  goto yyoverflowlab;
1500
	YYSTACK_RELOCATE (yyss);
1501
	YYSTACK_RELOCATE (yyvs);
1502
1503
#  undef YYSTACK_RELOCATE
1504
	if (yyss1 != yyssa)
1505
	  YYSTACK_FREE (yyss1);
1506
      }
1507
# endif
1508
#endif /* no yyoverflow */
1509
1510
      yyssp = yyss + yysize - 1;
1511
      yyvsp = yyvs + yysize - 1;
1512
1513
1514
      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1515
		  (unsigned long int) yystacksize));
1516
1517
      if (yyss + yystacksize - 1 <= yyssp)
1518
	YYABORT;
1519
    }
1520
1521
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1522
1523
  goto yybackup;
1524
1525
/*-----------.
1526
| yybackup.  |
1527
`-----------*/
1528
yybackup:
1529
1530
/* Do appropriate processing given the current state.  */
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1531
/* Read a look-ahead token if we need one and don't already have one.  */
1 by brian
clean slate
1532
/* yyresume: */
1533
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1534
  /* First try to decide what to do without reference to look-ahead token.  */
1 by brian
clean slate
1535
1536
  yyn = yypact[yystate];
1537
  if (yyn == YYPACT_NINF)
1538
    goto yydefault;
1539
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1540
  /* Not known => get a look-ahead token if don't already have one.  */
1 by brian
clean slate
1541
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1542
  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
1 by brian
clean slate
1543
  if (yychar == YYEMPTY)
1544
    {
1545
      YYDPRINTF ((stderr, "Reading a token: "));
1546
      yychar = YYLEX;
1547
    }
1548
1549
  if (yychar <= YYEOF)
1550
    {
1551
      yychar = yytoken = YYEOF;
1552
      YYDPRINTF ((stderr, "Now at end of input.\n"));
1553
    }
1554
  else
1555
    {
1556
      yytoken = YYTRANSLATE (yychar);
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1557
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1 by brian
clean slate
1558
    }
1559
1560
  /* If the proper action on seeing token YYTOKEN is to reduce or to
1561
     detect an error, take that action.  */
1562
  yyn += yytoken;
1563
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1564
    goto yydefault;
1565
  yyn = yytable[yyn];
1566
  if (yyn <= 0)
1567
    {
1568
      if (yyn == 0 || yyn == YYTABLE_NINF)
1569
	goto yyerrlab;
1570
      yyn = -yyn;
1571
      goto yyreduce;
1572
    }
1573
1574
  if (yyn == YYFINAL)
1575
    YYACCEPT;
1576
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1577
  /* Shift the look-ahead token.  */
1578
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1 by brian
clean slate
1579
1580
  /* Discard the token being shifted unless it is eof.  */
1581
  if (yychar != YYEOF)
1582
    yychar = YYEMPTY;
1583
1584
  *++yyvsp = yylval;
1585
1586
1587
  /* Count tokens shifted since error; after three, turn off error
1588
     status.  */
1589
  if (yyerrstatus)
1590
    yyerrstatus--;
1591
1592
  yystate = yyn;
1593
  goto yynewstate;
1594
1595
1596
/*-----------------------------------------------------------.
1597
| yydefault -- do the default action for the current state.  |
1598
`-----------------------------------------------------------*/
1599
yydefault:
1600
  yyn = yydefact[yystate];
1601
  if (yyn == 0)
1602
    goto yyerrlab;
1603
  goto yyreduce;
1604
1605
1606
/*-----------------------------.
1607
| yyreduce -- Do a reduction.  |
1608
`-----------------------------*/
1609
yyreduce:
1610
  /* yyn is the number of a rule to reduce with.  */
1611
  yylen = yyr2[yyn];
1612
1613
  /* If YYLEN is nonzero, implement the default value of the action:
1614
     `$$ = $1'.
1615
1616
     Otherwise, the following line sets YYVAL to garbage.
1617
     This behavior is undocumented and Bison
1618
     users should not rely upon it.  Assigning to YYVAL
1619
     unconditionally makes the parser a bit smaller, and it avoids a
1620
     GCC warning that YYVAL may be used uninitialized.  */
1621
  yyval = yyvsp[1-yylen];
1622
1623
1624
  YY_REDUCE_PRINT (yyn);
1625
  switch (yyn)
1626
    {
1627
        case 25:
1628
#line 166 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1629
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
1 by brian
clean slate
1630
    break;
1631
1632
  case 26:
1633
#line 168 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1634
    { (yyval) = que_node_list_add_last((yyvsp[-1]), (yyvsp[0])); ;}
1 by brian
clean slate
1635
    break;
1636
1637
  case 27:
1638
#line 172 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1639
    { (yyval) = (yyvsp[0]);;}
1 by brian
clean slate
1640
    break;
1641
1642
  case 28:
1643
#line 174 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1644
    { (yyval) = pars_func((yyvsp[-3]), (yyvsp[-1])); ;}
1 by brian
clean slate
1645
    break;
1646
1647
  case 29:
1648
#line 175 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1649
    { (yyval) = (yyvsp[0]);;}
1 by brian
clean slate
1650
    break;
1651
1652
  case 30:
1653
#line 176 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1654
    { (yyval) = (yyvsp[0]);;}
1 by brian
clean slate
1655
    break;
1656
1657
  case 31:
1658
#line 177 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1659
    { (yyval) = (yyvsp[0]);;}
1 by brian
clean slate
1660
    break;
1661
1662
  case 32:
1663
#line 178 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1664
    { (yyval) = (yyvsp[0]);;}
1 by brian
clean slate
1665
    break;
1666
1667
  case 33:
1668
#line 179 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1669
    { (yyval) = (yyvsp[0]);;}
1 by brian
clean slate
1670
    break;
1671
1672
  case 34:
1673
#line 180 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1674
    { (yyval) = (yyvsp[0]);;}
1 by brian
clean slate
1675
    break;
1676
1677
  case 35:
1678
#line 181 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1679
    { (yyval) = (yyvsp[0]);;}
1 by brian
clean slate
1680
    break;
1681
1682
  case 36:
1683
#line 182 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1684
    { (yyval) = pars_op('+', (yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1685
    break;
1686
1687
  case 37:
1688
#line 183 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1689
    { (yyval) = pars_op('-', (yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1690
    break;
1691
1692
  case 38:
1693
#line 184 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1694
    { (yyval) = pars_op('*', (yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1695
    break;
1696
1697
  case 39:
1698
#line 185 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1699
    { (yyval) = pars_op('/', (yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1700
    break;
1701
1702
  case 40:
1703
#line 186 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1704
    { (yyval) = pars_op('-', (yyvsp[0]), NULL); ;}
1 by brian
clean slate
1705
    break;
1706
1707
  case 41:
1708
#line 187 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1709
    { (yyval) = (yyvsp[-1]); ;}
1 by brian
clean slate
1710
    break;
1711
1712
  case 42:
1713
#line 188 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1714
    { (yyval) = pars_op('=', (yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1715
    break;
1716
1717
  case 43:
1718
#line 189 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1719
    { (yyval) = pars_op('<', (yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1720
    break;
1721
1722
  case 44:
1723
#line 190 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1724
    { (yyval) = pars_op('>', (yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1725
    break;
1726
1727
  case 45:
1728
#line 191 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1729
    { (yyval) = pars_op(PARS_GE_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1730
    break;
1731
1732
  case 46:
1733
#line 192 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1734
    { (yyval) = pars_op(PARS_LE_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1735
    break;
1736
1737
  case 47:
1738
#line 193 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1739
    { (yyval) = pars_op(PARS_NE_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1740
    break;
1741
1742
  case 48:
1743
#line 194 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1744
    { (yyval) = pars_op(PARS_AND_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1745
    break;
1746
1747
  case 49:
1748
#line 195 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1749
    { (yyval) = pars_op(PARS_OR_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1750
    break;
1751
1752
  case 50:
1753
#line 196 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1754
    { (yyval) = pars_op(PARS_NOT_TOKEN, (yyvsp[0]), NULL); ;}
1 by brian
clean slate
1755
    break;
1756
1757
  case 51:
1758
#line 198 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1759
    { (yyval) = pars_op(PARS_NOTFOUND_TOKEN, (yyvsp[-2]), NULL); ;}
1 by brian
clean slate
1760
    break;
1761
1762
  case 52:
1763
#line 200 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1764
    { (yyval) = pars_op(PARS_NOTFOUND_TOKEN, (yyvsp[-2]), NULL); ;}
1 by brian
clean slate
1765
    break;
1766
1767
  case 53:
1768
#line 204 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1769
    { (yyval) = &pars_to_char_token; ;}
1 by brian
clean slate
1770
    break;
1771
1772
  case 54:
1773
#line 205 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1774
    { (yyval) = &pars_to_number_token; ;}
1 by brian
clean slate
1775
    break;
1776
1777
  case 55:
1778
#line 206 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1779
    { (yyval) = &pars_to_binary_token; ;}
1 by brian
clean slate
1780
    break;
1781
1782
  case 56:
1783
#line 208 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1784
    { (yyval) = &pars_binary_to_number_token; ;}
1 by brian
clean slate
1785
    break;
1786
1787
  case 57:
1788
#line 209 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1789
    { (yyval) = &pars_substr_token; ;}
1 by brian
clean slate
1790
    break;
1791
1792
  case 58:
1793
#line 210 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1794
    { (yyval) = &pars_concat_token; ;}
1 by brian
clean slate
1795
    break;
1796
1797
  case 59:
1798
#line 211 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1799
    { (yyval) = &pars_instr_token; ;}
1 by brian
clean slate
1800
    break;
1801
1802
  case 60:
1803
#line 212 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1804
    { (yyval) = &pars_length_token; ;}
1 by brian
clean slate
1805
    break;
1806
1807
  case 61:
1808
#line 213 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1809
    { (yyval) = &pars_sysdate_token; ;}
1 by brian
clean slate
1810
    break;
1811
1812
  case 62:
1813
#line 214 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1814
    { (yyval) = &pars_rnd_token; ;}
1 by brian
clean slate
1815
    break;
1816
1817
  case 63:
1818
#line 215 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1819
    { (yyval) = &pars_rnd_str_token; ;}
1 by brian
clean slate
1820
    break;
1821
1822
  case 67:
1823
#line 226 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1824
    { (yyval) = pars_stored_procedure_call((yyvsp[-4])); ;}
1 by brian
clean slate
1825
    break;
1826
1827
  case 68:
1828
#line 231 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1829
    { (yyval) = pars_procedure_call((yyvsp[-3]), (yyvsp[-1])); ;}
1 by brian
clean slate
1830
    break;
1831
1832
  case 69:
1833
#line 235 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1834
    { (yyval) = &pars_replstr_token; ;}
1 by brian
clean slate
1835
    break;
1836
1837
  case 70:
1838
#line 236 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1839
    { (yyval) = &pars_printf_token; ;}
1 by brian
clean slate
1840
    break;
1841
1842
  case 71:
1843
#line 237 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1844
    { (yyval) = &pars_assert_token; ;}
1 by brian
clean slate
1845
    break;
1846
1847
  case 72:
1848
#line 241 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1849
    { (yyval) = (yyvsp[-2]); ;}
1 by brian
clean slate
1850
    break;
1851
1852
  case 73:
1853
#line 245 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1854
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
1 by brian
clean slate
1855
    break;
1856
1857
  case 74:
1858
#line 247 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1859
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1860
    break;
1861
1862
  case 75:
1863
#line 251 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1864
    { (yyval) = NULL; ;}
1 by brian
clean slate
1865
    break;
1866
1867
  case 76:
1868
#line 252 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1869
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
1 by brian
clean slate
1870
    break;
1871
1872
  case 77:
1873
#line 254 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1874
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1875
    break;
1876
1877
  case 78:
1878
#line 258 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1879
    { (yyval) = NULL; ;}
1 by brian
clean slate
1880
    break;
1881
1882
  case 79:
1883
#line 259 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1884
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0]));;}
1 by brian
clean slate
1885
    break;
1886
1887
  case 80:
1888
#line 260 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1889
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1890
    break;
1891
1892
  case 81:
1893
#line 264 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1894
    { (yyval) = (yyvsp[0]); ;}
1 by brian
clean slate
1895
    break;
1896
1897
  case 82:
1898
#line 266 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1899
    { (yyval) = pars_func(&pars_count_token,
1 by brian
clean slate
1900
				          que_node_list_add_last(NULL,
1901
					    sym_tab_add_int_lit(
1902
						pars_sym_tab_global, 1))); ;}
1903
    break;
1904
1905
  case 83:
1906
#line 271 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1907
    { (yyval) = pars_func(&pars_count_token,
1 by brian
clean slate
1908
					    que_node_list_add_last(NULL,
1909
						pars_func(&pars_distinct_token,
1910
						     que_node_list_add_last(
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1911
								NULL, (yyvsp[-1]))))); ;}
1 by brian
clean slate
1912
    break;
1913
1914
  case 84:
1915
#line 277 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1916
    { (yyval) = pars_func(&pars_sum_token,
1 by brian
clean slate
1917
						que_node_list_add_last(NULL,
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1918
									(yyvsp[-1]))); ;}
1 by brian
clean slate
1919
    break;
1920
1921
  case 85:
1922
#line 283 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1923
    { (yyval) = NULL; ;}
1 by brian
clean slate
1924
    break;
1925
1926
  case 86:
1927
#line 284 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1928
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
1 by brian
clean slate
1929
    break;
1930
1931
  case 87:
1932
#line 286 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1933
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1934
    break;
1935
1936
  case 88:
1937
#line 290 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1938
    { (yyval) = pars_select_list(&pars_star_denoter,
1 by brian
clean slate
1939
								NULL); ;}
1940
    break;
1941
1942
  case 89:
1943
#line 293 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1944
    { (yyval) = pars_select_list((yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
1945
    break;
1946
1947
  case 90:
1948
#line 294 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1949
    { (yyval) = pars_select_list((yyvsp[0]), NULL); ;}
1 by brian
clean slate
1950
    break;
1951
1952
  case 91:
1953
#line 298 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1954
    { (yyval) = NULL; ;}
1 by brian
clean slate
1955
    break;
1956
1957
  case 92:
1958
#line 299 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1959
    { (yyval) = (yyvsp[0]); ;}
1 by brian
clean slate
1960
    break;
1961
1962
  case 93:
1963
#line 303 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1964
    { (yyval) = NULL; ;}
1 by brian
clean slate
1965
    break;
1966
1967
  case 94:
1968
#line 305 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1969
    { (yyval) = &pars_update_token; ;}
1 by brian
clean slate
1970
    break;
1971
1972
  case 95:
1973
#line 309 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1974
    { (yyval) = NULL; ;}
1 by brian
clean slate
1975
    break;
1976
1977
  case 96:
1978
#line 311 "pars0grm.y"
1979
    { yyval = &pars_share_token; ;}
1980
    break;
1981
1982
  case 97:
1983
#line 315 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1984
    { (yyval) = &pars_asc_token; ;}
1 by brian
clean slate
1985
    break;
1986
1987
  case 98:
1988
#line 316 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1989
    { (yyval) = &pars_asc_token; ;}
1 by brian
clean slate
1990
    break;
1991
1992
  case 99:
1993
#line 317 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1994
    { (yyval) = &pars_desc_token; ;}
1 by brian
clean slate
1995
    break;
1996
1997
  case 100:
1998
#line 321 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
1999
    { (yyval) = NULL; ;}
1 by brian
clean slate
2000
    break;
2001
2002
  case 101:
2003
#line 323 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2004
    { (yyval) = pars_order_by((yyvsp[-1]), (yyvsp[0])); ;}
1 by brian
clean slate
2005
    break;
2006
2007
  case 102:
2008
#line 332 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2009
    { (yyval) = pars_select_statement((yyvsp[-6]), (yyvsp[-4]), (yyvsp[-3]),
2010
								(yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); ;}
1 by brian
clean slate
2011
    break;
2012
2013
  case 103:
2014
#line 338 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2015
    { (yyval) = (yyvsp[0]); ;}
1 by brian
clean slate
2016
    break;
2017
2018
  case 104:
2019
#line 343 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2020
    { (yyval) = pars_insert_statement((yyvsp[-4]), (yyvsp[-1]), NULL); ;}
1 by brian
clean slate
2021
    break;
2022
2023
  case 105:
2024
#line 345 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2025
    { (yyval) = pars_insert_statement((yyvsp[-1]), NULL, (yyvsp[0])); ;}
1 by brian
clean slate
2026
    break;
2027
2028
  case 106:
2029
#line 349 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2030
    { (yyval) = pars_column_assignment((yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
2031
    break;
2032
2033
  case 107:
2034
#line 353 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2035
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
1 by brian
clean slate
2036
    break;
2037
2038
  case 108:
2039
#line 355 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2040
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
2041
    break;
2042
2043
  case 109:
2044
#line 361 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2045
    { (yyval) = (yyvsp[0]); ;}
1 by brian
clean slate
2046
    break;
2047
2048
  case 110:
2049
#line 367 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2050
    { (yyval) = pars_update_statement_start(FALSE,
2051
								(yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
2052
    break;
2053
2054
  case 111:
2055
#line 373 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2056
    { (yyval) = pars_update_statement((yyvsp[-1]), NULL, (yyvsp[0])); ;}
1 by brian
clean slate
2057
    break;
2058
2059
  case 112:
2060
#line 378 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2061
    { (yyval) = pars_update_statement((yyvsp[-1]), (yyvsp[0]), NULL); ;}
1 by brian
clean slate
2062
    break;
2063
2064
  case 113:
2065
#line 383 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2066
    { (yyval) = pars_update_statement_start(TRUE,
2067
								(yyvsp[0]), NULL); ;}
1 by brian
clean slate
2068
    break;
2069
2070
  case 114:
2071
#line 389 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2072
    { (yyval) = pars_update_statement((yyvsp[-1]), NULL, (yyvsp[0])); ;}
1 by brian
clean slate
2073
    break;
2074
2075
  case 115:
2076
#line 394 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2077
    { (yyval) = pars_update_statement((yyvsp[-1]), (yyvsp[0]), NULL); ;}
1 by brian
clean slate
2078
    break;
2079
2080
  case 116:
2081
#line 399 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2082
    { (yyval) = pars_row_printf_statement((yyvsp[0])); ;}
1 by brian
clean slate
2083
    break;
2084
2085
  case 117:
2086
#line 404 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2087
    { (yyval) = pars_assignment_statement((yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
2088
    break;
2089
2090
  case 118:
2091
#line 410 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2092
    { (yyval) = pars_elsif_element((yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
2093
    break;
2094
2095
  case 119:
2096
#line 414 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2097
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
1 by brian
clean slate
2098
    break;
2099
2100
  case 120:
2101
#line 416 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2102
    { (yyval) = que_node_list_add_last((yyvsp[-1]), (yyvsp[0])); ;}
1 by brian
clean slate
2103
    break;
2104
2105
  case 121:
2106
#line 420 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2107
    { (yyval) = NULL; ;}
1 by brian
clean slate
2108
    break;
2109
2110
  case 122:
2111
#line 422 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2112
    { (yyval) = (yyvsp[0]); ;}
1 by brian
clean slate
2113
    break;
2114
2115
  case 123:
2116
#line 423 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2117
    { (yyval) = (yyvsp[0]); ;}
1 by brian
clean slate
2118
    break;
2119
2120
  case 124:
2121
#line 430 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2122
    { (yyval) = pars_if_statement((yyvsp[-5]), (yyvsp[-3]), (yyvsp[-2])); ;}
1 by brian
clean slate
2123
    break;
2124
2125
  case 125:
2126
#line 436 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2127
    { (yyval) = pars_while_statement((yyvsp[-4]), (yyvsp[-2])); ;}
1 by brian
clean slate
2128
    break;
2129
2130
  case 126:
2131
#line 444 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2132
    { (yyval) = pars_for_statement((yyvsp[-8]), (yyvsp[-6]), (yyvsp[-4]), (yyvsp[-2])); ;}
1 by brian
clean slate
2133
    break;
2134
2135
  case 127:
2136
#line 448 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2137
    { (yyval) = pars_exit_statement(); ;}
1 by brian
clean slate
2138
    break;
2139
2140
  case 128:
2141
#line 452 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2142
    { (yyval) = pars_return_statement(); ;}
1 by brian
clean slate
2143
    break;
2144
2145
  case 129:
2146
#line 457 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2147
    { (yyval) = pars_open_statement(
2148
						ROW_SEL_OPEN_CURSOR, (yyvsp[0])); ;}
1 by brian
clean slate
2149
    break;
2150
2151
  case 130:
2152
#line 463 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2153
    { (yyval) = pars_open_statement(
2154
						ROW_SEL_CLOSE_CURSOR, (yyvsp[0])); ;}
1 by brian
clean slate
2155
    break;
2156
2157
  case 131:
2158
#line 469 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2159
    { (yyval) = pars_fetch_statement((yyvsp[-2]), (yyvsp[0]), NULL); ;}
1 by brian
clean slate
2160
    break;
2161
2162
  case 132:
2163
#line 471 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2164
    { (yyval) = pars_fetch_statement((yyvsp[-2]), NULL, (yyvsp[0])); ;}
1 by brian
clean slate
2165
    break;
2166
2167
  case 133:
2168
#line 476 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2169
    { (yyval) = pars_column_def((yyvsp[-4]), (yyvsp[-3]), (yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); ;}
1 by brian
clean slate
2170
    break;
2171
2172
  case 134:
2173
#line 480 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2174
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
1 by brian
clean slate
2175
    break;
2176
2177
  case 135:
2178
#line 482 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2179
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
2180
    break;
2181
2182
  case 136:
2183
#line 486 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2184
    { (yyval) = NULL; ;}
1 by brian
clean slate
2185
    break;
2186
2187
  case 137:
2188
#line 488 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2189
    { (yyval) = (yyvsp[-1]); ;}
1 by brian
clean slate
2190
    break;
2191
2192
  case 138:
2193
#line 492 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2194
    { (yyval) = NULL; ;}
1 by brian
clean slate
2195
    break;
2196
2197
  case 139:
2198
#line 494 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2199
    { (yyval) = &pars_int_token;
1 by brian
clean slate
2200
					/* pass any non-NULL pointer */ ;}
2201
    break;
2202
2203
  case 140:
2204
#line 499 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2205
    { (yyval) = NULL; ;}
1 by brian
clean slate
2206
    break;
2207
2208
  case 141:
2209
#line 501 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2210
    { (yyval) = &pars_int_token;
1 by brian
clean slate
2211
					/* pass any non-NULL pointer */ ;}
2212
    break;
2213
2214
  case 142:
2215
#line 506 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2216
    { (yyval) = NULL; ;}
1 by brian
clean slate
2217
    break;
2218
2219
  case 143:
2220
#line 508 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2221
    { (yyval) = &pars_int_token;
1 by brian
clean slate
2222
					/* pass any non-NULL pointer */ ;}
2223
    break;
2224
2225
  case 144:
2226
#line 515 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2227
    { (yyval) = pars_create_table((yyvsp[-4]), (yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
2228
    break;
2229
2230
  case 145:
2231
#line 519 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2232
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
1 by brian
clean slate
2233
    break;
2234
2235
  case 146:
2236
#line 521 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2237
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
2238
    break;
2239
2240
  case 147:
2241
#line 525 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2242
    { (yyval) = NULL; ;}
1 by brian
clean slate
2243
    break;
2244
2245
  case 148:
2246
#line 526 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2247
    { (yyval) = &pars_unique_token; ;}
1 by brian
clean slate
2248
    break;
2249
2250
  case 149:
2251
#line 530 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2252
    { (yyval) = NULL; ;}
1 by brian
clean slate
2253
    break;
2254
2255
  case 150:
2256
#line 531 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2257
    { (yyval) = &pars_clustered_token; ;}
1 by brian
clean slate
2258
    break;
2259
2260
  case 151:
2261
#line 539 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2262
    { (yyval) = pars_create_index((yyvsp[-8]), (yyvsp[-7]), (yyvsp[-5]), (yyvsp[-3]), (yyvsp[-1])); ;}
1 by brian
clean slate
2263
    break;
2264
2265
  case 152:
2266
#line 544 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2267
    { (yyval) = pars_commit_statement(); ;}
1 by brian
clean slate
2268
    break;
2269
2270
  case 153:
2271
#line 549 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2272
    { (yyval) = pars_rollback_statement(); ;}
1 by brian
clean slate
2273
    break;
2274
2275
  case 154:
2276
#line 553 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2277
    { (yyval) = &pars_int_token; ;}
1 by brian
clean slate
2278
    break;
2279
2280
  case 155:
2281
#line 554 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2282
    { (yyval) = &pars_int_token; ;}
1 by brian
clean slate
2283
    break;
2284
2285
  case 156:
2286
#line 555 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2287
    { (yyval) = &pars_char_token; ;}
1 by brian
clean slate
2288
    break;
2289
2290
  case 157:
2291
#line 556 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2292
    { (yyval) = &pars_binary_token; ;}
1 by brian
clean slate
2293
    break;
2294
2295
  case 158:
2296
#line 557 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2297
    { (yyval) = &pars_blob_token; ;}
1 by brian
clean slate
2298
    break;
2299
2300
  case 159:
2301
#line 562 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2302
    { (yyval) = pars_parameter_declaration((yyvsp[-2]),
2303
							PARS_INPUT, (yyvsp[0])); ;}
1 by brian
clean slate
2304
    break;
2305
2306
  case 160:
2307
#line 565 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2308
    { (yyval) = pars_parameter_declaration((yyvsp[-2]),
2309
							PARS_OUTPUT, (yyvsp[0])); ;}
1 by brian
clean slate
2310
    break;
2311
2312
  case 161:
2313
#line 570 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2314
    { (yyval) = NULL; ;}
1 by brian
clean slate
2315
    break;
2316
2317
  case 162:
2318
#line 571 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2319
    { (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
1 by brian
clean slate
2320
    break;
2321
2322
  case 163:
2323
#line 573 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2324
    { (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
1 by brian
clean slate
2325
    break;
2326
2327
  case 164:
2328
#line 578 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2329
    { (yyval) = pars_variable_declaration((yyvsp[-2]), (yyvsp[-1])); ;}
1 by brian
clean slate
2330
    break;
2331
2332
  case 168:
2333
#line 590 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2334
    { (yyval) = pars_cursor_declaration((yyvsp[-3]), (yyvsp[-1])); ;}
1 by brian
clean slate
2335
    break;
2336
2337
  case 169:
2338
#line 595 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2339
    { (yyval) = pars_function_declaration((yyvsp[-1])); ;}
1 by brian
clean slate
2340
    break;
2341
2342
  case 175:
2343
#line 616 "pars0grm.y"
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2344
    { (yyval) = pars_procedure_definition((yyvsp[-9]), (yyvsp[-7]),
2345
								(yyvsp[-1])); ;}
1 by brian
clean slate
2346
    break;
2347
2348
2349
    }
2350
2351
/* Line 1010 of yacc.c.  */
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2352
#line 2345 "pars0grm.c"
1 by brian
clean slate
2353

2354
  yyvsp -= yylen;
2355
  yyssp -= yylen;
2356
2357
2358
  YY_STACK_PRINT (yyss, yyssp);
2359
2360
  *++yyvsp = yyval;
2361
2362
2363
  /* Now `shift' the result of the reduction.  Determine what state
2364
     that goes to, based on the state we popped back to and the rule
2365
     number reduced by.  */
2366
2367
  yyn = yyr1[yyn];
2368
2369
  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2370
  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2371
    yystate = yytable[yystate];
2372
  else
2373
    yystate = yydefgoto[yyn - YYNTOKENS];
2374
2375
  goto yynewstate;
2376
2377
2378
/*------------------------------------.
2379
| yyerrlab -- here on detecting error |
2380
`------------------------------------*/
2381
yyerrlab:
2382
  /* If not already recovering from an error, report this error.  */
2383
  if (!yyerrstatus)
2384
    {
2385
      ++yynerrs;
2386
#if YYERROR_VERBOSE
2387
      yyn = yypact[yystate];
2388
2389
      if (YYPACT_NINF < yyn && yyn < YYLAST)
2390
	{
2391
	  YYSIZE_T yysize = 0;
2392
	  int yytype = YYTRANSLATE (yychar);
2393
	  const char* yyprefix;
2394
	  char *yymsg;
2395
	  int yyx;
2396
2397
	  /* Start YYX at -YYN if negative to avoid negative indexes in
2398
	     YYCHECK.  */
2399
	  int yyxbegin = yyn < 0 ? -yyn : 0;
2400
2401
	  /* Stay within bounds of both yycheck and yytname.  */
2402
	  int yychecklim = YYLAST - yyn;
2403
	  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2404
	  int yycount = 0;
2405
2406
	  yyprefix = ", expecting ";
2407
	  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2408
	    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2409
	      {
2410
		yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
2411
		yycount += 1;
2412
		if (yycount == 5)
2413
		  {
2414
		    yysize = 0;
2415
		    break;
2416
		  }
2417
	      }
2418
	  yysize += (sizeof ("syntax error, unexpected ")
2419
		     + yystrlen (yytname[yytype]));
2420
	  yymsg = (char *) YYSTACK_ALLOC (yysize);
2421
	  if (yymsg != 0)
2422
	    {
2423
	      char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
2424
	      yyp = yystpcpy (yyp, yytname[yytype]);
2425
2426
	      if (yycount < 5)
2427
		{
2428
		  yyprefix = ", expecting ";
2429
		  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2430
		    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2431
		      {
2432
			yyp = yystpcpy (yyp, yyprefix);
2433
			yyp = yystpcpy (yyp, yytname[yyx]);
2434
			yyprefix = " or ";
2435
		      }
2436
		}
2437
	      yyerror (yymsg);
2438
	      YYSTACK_FREE (yymsg);
2439
	    }
2440
	  else
2441
	    yyerror ("syntax error; also virtual memory exhausted");
2442
	}
2443
      else
2444
#endif /* YYERROR_VERBOSE */
2445
	yyerror ("syntax error");
2446
    }
2447
2448
2449
2450
  if (yyerrstatus == 3)
2451
    {
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2452
      /* If just tried and failed to reuse look-ahead token after an
1 by brian
clean slate
2453
	 error, discard it.  */
2454
2455
      if (yychar <= YYEOF)
2456
        {
2457
          /* If at end of input, pop the error token,
2458
	     then the rest of the stack, then return failure.  */
2459
	  if (yychar == YYEOF)
2460
	     for (;;)
2461
	       {
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2462
1 by brian
clean slate
2463
		 YYPOPSTACK;
2464
		 if (yyssp == yyss)
2465
		   YYABORT;
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2466
		 yydestruct ("Error: popping",
2467
                             yystos[*yyssp], yyvsp);
1 by brian
clean slate
2468
	       }
2469
        }
2470
      else
2471
	{
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2472
	  yydestruct ("Error: discarding", yytoken, &yylval);
1 by brian
clean slate
2473
	  yychar = YYEMPTY;
2474
	}
2475
    }
2476
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2477
  /* Else will try to reuse look-ahead token after shifting the error
1 by brian
clean slate
2478
     token.  */
2479
  goto yyerrlab1;
2480
2481
2482
/*---------------------------------------------------.
2483
| yyerrorlab -- error raised explicitly by YYERROR.  |
2484
`---------------------------------------------------*/
2485
yyerrorlab:
2486
2487
#ifdef __GNUC__
2488
  /* Pacify GCC when the user code never invokes YYERROR and the label
2489
     yyerrorlab therefore never appears in user code.  */
2490
  if (0)
2491
     goto yyerrorlab;
2492
#endif
2493
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2494
yyvsp -= yylen;
1 by brian
clean slate
2495
  yyssp -= yylen;
2496
  yystate = *yyssp;
2497
  goto yyerrlab1;
2498
2499
2500
/*-------------------------------------------------------------.
2501
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
2502
`-------------------------------------------------------------*/
2503
yyerrlab1:
2504
  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
2505
2506
  for (;;)
2507
    {
2508
      yyn = yypact[yystate];
2509
      if (yyn != YYPACT_NINF)
2510
	{
2511
	  yyn += YYTERROR;
2512
	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2513
	    {
2514
	      yyn = yytable[yyn];
2515
	      if (0 < yyn)
2516
		break;
2517
	    }
2518
	}
2519
2520
      /* Pop the current state because it cannot handle the error token.  */
2521
      if (yyssp == yyss)
2522
	YYABORT;
2523
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2524
2525
      yydestruct ("Error: popping", yystos[yystate], yyvsp);
1 by brian
clean slate
2526
      YYPOPSTACK;
2527
      yystate = *yyssp;
2528
      YY_STACK_PRINT (yyss, yyssp);
2529
    }
2530
2531
  if (yyn == YYFINAL)
2532
    YYACCEPT;
2533
2534
  *++yyvsp = yylval;
2535
2536
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2537
  /* Shift the error token. */
2538
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
2539
1 by brian
clean slate
2540
  yystate = yyn;
2541
  goto yynewstate;
2542
2543
2544
/*-------------------------------------.
2545
| yyacceptlab -- YYACCEPT comes here.  |
2546
`-------------------------------------*/
2547
yyacceptlab:
2548
  yyresult = 0;
2549
  goto yyreturn;
2550
2551
/*-----------------------------------.
2552
| yyabortlab -- YYABORT comes here.  |
2553
`-----------------------------------*/
2554
yyabortlab:
520.4.1 by Monty Taylor
Imported InnoDB plugin with changes.
2555
  yydestruct ("Error: discarding lookahead",
2556
              yytoken, &yylval);
2557
  yychar = YYEMPTY;
1 by brian
clean slate
2558
  yyresult = 1;
2559
  goto yyreturn;
2560
2561
#ifndef yyoverflow
2562
/*----------------------------------------------.
2563
| yyoverflowlab -- parser overflow comes here.  |
2564
`----------------------------------------------*/
2565
yyoverflowlab:
2566
  yyerror ("parser stack overflow");
2567
  yyresult = 2;
2568
  /* Fall through.  */
2569
#endif
2570
2571
yyreturn:
2572
#ifndef yyoverflow
2573
  if (yyss != yyssa)
2574
    YYSTACK_FREE (yyss);
2575
#endif
2576
  return yyresult;
2577
}
2578
2579
2580
#line 620 "pars0grm.y"
2581
2582