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