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