1 /* A Bison parser, made by GNU Bison 2.3. */
3 /* Skeleton implementation for Bison's Yacc-like parsers in C
5 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
6 Free Software Foundation, Inc.
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2, or (at your option)
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
23 /* As a special exception, you may create a larger work that contains
24 part or all of the Bison parser skeleton and distribute that work
25 under terms of your choice, so long as that work isn't itself a
26 parser generator using the skeleton or a modified version thereof
27 as a parser skeleton. Alternatively, if you modify or redistribute
28 the parser skeleton itself, you may (at your option) remove this
29 special exception, which will cause the skeleton and the resulting
30 Bison output files to be licensed under the GNU General Public
31 License without this special exception.
33 This special exception was added by the Free Software Foundation in
34 version 2.2 of Bison. */
36 /* C LALR(1) parser skeleton written by Richard Stallman, by
37 simplifying the original so-called "semantic" parser. */
39 /* All symbols defined below should begin with yy or YY, to avoid
40 infringing on user name space. This should be done even for local
41 variables, as they might otherwise be expanded by user macros.
42 There are some unavoidable exceptions within include files to
43 define necessary library symbols; they are noted "INFRINGES ON
44 USER NAME SPACE" below. */
46 /* Identify Bison output. */
50 #define YYBISON_VERSION "2.3"
53 #define YYSKELETON_NAME "yacc.c"
58 /* Using locations. */
59 #define YYLSP_NEEDED 0
61 /* Substitute the variable and function names. */
62 #define yyparse FtaParserparse
63 #define yylex FtaParserlex
64 #define yyerror FtaParsererror
65 #define yylval FtaParserlval
66 #define yychar FtaParserchar
67 #define yydebug FtaParserdebug
68 #define yynerrs FtaParsernerrs
74 /* Put the tokens into the symbol table, so that GDB and other debuggers
98 LEFT_OUTER_JOIN = 279,
99 RIGHT_OUTER_JOIN = 280,
134 SELECTION_PUSHDOWN = 315
139 #define STRING_TOKEN 259
141 #define LONGINTNUM 261
142 #define APPROXNUM 262
146 #define COMPARISON 266
149 #define SEMICOLON 269
150 #define LEFTBRACE 270
151 #define RIGHTBRACE 271
156 #define INNER_JOIN 276
157 #define FILTER_JOIN 277
158 #define OUTER_JOIN 278
159 #define LEFT_OUTER_JOIN 279
160 #define RIGHT_OUTER_JOIN 280
166 #define SUPERGROUP 286
167 #define CLEANING_WHEN 287
168 #define CLEANING_BY 288
169 #define CLOSING_WHEN 289
174 #define GROUPING_SETS 294
177 #define TIMEVAL_L 297
184 #define DEFINE_SEC 304
185 #define PARAM_SEC 305
190 #define UNPACK_FCNS 310
192 #define OPERATOR_VIEW 312
194 #define SUBQUERIES 314
195 #define SELECTION_PUSHDOWN 315
200 /* Copy the first part of user declarations. */
207 /* Some addn'l includes, necessary but not included by the
208 bison generated code.
213 /* prototypes for the parser callbacks.
216 #include "parse_fta.h"
217 #include "parse_schema.h"
220 extern fta_parse_t *fta_parse_result;
221 extern var_defs_t *fta_parse_defines;
228 /* Enabling traces. */
233 /* Enabling verbose error messages. */
234 #ifdef YYERROR_VERBOSE
235 # undef YYERROR_VERBOSE
236 # define YYERROR_VERBOSE 1
238 # define YYERROR_VERBOSE 0
241 /* Enabling the token table. */
242 #ifndef YYTOKEN_TABLE
243 # define YYTOKEN_TABLE 0
246 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
247 typedef union YYSTYPE
257 /* for FTA definition. */
259 scalarexp_t *scalarval;
260 se_list_t *se_listval;
261 select_list_t *select_listval;
264 literal_list_t *lit_l;
266 tablevar_list_t *tbl_list;
269 colref_list_t *clist;
270 var_defs_t *var_defs;
271 var_pair_t *var_pair;
274 list_of_gb_list_t *list_of_gb_list;
275 extended_gb_t *extended_gb;
276 extended_gb_list_t *extended_gb_list;
278 query_list_t *q_list;
280 /* For table definition */
281 field_entry *field_t;
282 field_entry_list *field_list_t;
283 table_def *table_def_t;
284 table_list *table_list_schema;
287 subquery_spec *subq_spec_t;
288 subqueryspec_list *subqueryspec_list_t;
290 unpack_fcn_list *ufcnl;
293 /* Line 193 of yacc.c. */
294 #line 295 "fta.tab.cc"
296 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
297 # define YYSTYPE_IS_DECLARED 1
298 # define YYSTYPE_IS_TRIVIAL 1
303 /* Copy the second part of user declarations. */
306 /* Line 216 of yacc.c. */
307 #line 308 "fta.tab.cc"
314 typedef YYTYPE_UINT8 yytype_uint8;
316 typedef unsigned char yytype_uint8;
320 typedef YYTYPE_INT8 yytype_int8;
321 #elif (defined __STDC__ || defined __C99__FUNC__ \
322 || defined __cplusplus || defined _MSC_VER)
323 typedef signed char yytype_int8;
325 typedef short int yytype_int8;
329 typedef YYTYPE_UINT16 yytype_uint16;
331 typedef unsigned short int yytype_uint16;
335 typedef YYTYPE_INT16 yytype_int16;
337 typedef short int yytype_int16;
341 # ifdef __SIZE_TYPE__
342 # define YYSIZE_T __SIZE_TYPE__
343 # elif defined size_t
344 # define YYSIZE_T size_t
345 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
346 || defined __cplusplus || defined _MSC_VER)
347 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
348 # define YYSIZE_T size_t
350 # define YYSIZE_T unsigned int
354 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
359 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
360 # define YY_(msgid) dgettext ("bison-runtime", msgid)
364 # define YY_(msgid) msgid
368 /* Suppress unused-variable warnings by "using" E. */
369 #if ! defined lint || defined __GNUC__
370 # define YYUSE(e) ((void) (e))
372 # define YYUSE(e) /* empty */
375 /* Identity function, used to suppress warnings about constant conditions. */
379 #if (defined __STDC__ || defined __C99__FUNC__ \
380 || defined __cplusplus || defined _MSC_VER)
393 #if ! defined yyoverflow || YYERROR_VERBOSE
395 /* The parser invokes alloca or malloc; define the necessary symbols. */
397 # ifdef YYSTACK_USE_ALLOCA
398 # if YYSTACK_USE_ALLOCA
400 # define YYSTACK_ALLOC __builtin_alloca
401 # elif defined __BUILTIN_VA_ARG_INCR
402 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
404 # define YYSTACK_ALLOC __alloca
405 # elif defined _MSC_VER
406 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
407 # define alloca _alloca
409 # define YYSTACK_ALLOC alloca
410 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
411 || defined __cplusplus || defined _MSC_VER)
412 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
421 # ifdef YYSTACK_ALLOC
422 /* Pacify GCC's `empty if-body' warning. */
423 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
424 # ifndef YYSTACK_ALLOC_MAXIMUM
425 /* The OS might guarantee only one guard page at the bottom of the stack,
426 and a page size can be as small as 4096 bytes. So we cannot safely
427 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
428 to allow for a few compiler-allocated temporary stack slots. */
429 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
432 # define YYSTACK_ALLOC YYMALLOC
433 # define YYSTACK_FREE YYFREE
434 # ifndef YYSTACK_ALLOC_MAXIMUM
435 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
437 # if (defined __cplusplus && ! defined _STDLIB_H \
438 && ! ((defined YYMALLOC || defined malloc) \
439 && (defined YYFREE || defined free)))
440 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
446 # define YYMALLOC malloc
447 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
448 || defined __cplusplus || defined _MSC_VER)
449 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
454 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
455 || defined __cplusplus || defined _MSC_VER)
456 void free (void *); /* INFRINGES ON USER NAME SPACE */
460 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
463 #if (! defined yyoverflow \
464 && (! defined __cplusplus \
465 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
467 /* A type that is properly aligned for any stack member. */
474 /* The size of the maximum gap between one aligned stack and the next. */
475 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
477 /* The size of an array large to enough to hold all stacks, each with
479 # define YYSTACK_BYTES(N) \
480 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
481 + YYSTACK_GAP_MAXIMUM)
483 /* Copy COUNT objects from FROM to TO. The source and destination do
486 # if defined __GNUC__ && 1 < __GNUC__
487 # define YYCOPY(To, From, Count) \
488 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
490 # define YYCOPY(To, From, Count) \
494 for (yyi = 0; yyi < (Count); yyi++) \
495 (To)[yyi] = (From)[yyi]; \
501 /* Relocate STACK from its old location to the new one. The
502 local variables YYSIZE and YYSTACKSIZE give the old and new number of
503 elements in the stack, and YYPTR gives the new location of the
504 stack. Advance YYPTR to a properly aligned location for the next
506 # define YYSTACK_RELOCATE(Stack) \
509 YYSIZE_T yynewbytes; \
510 YYCOPY (&yyptr->Stack, Stack, yysize); \
511 Stack = &yyptr->Stack; \
512 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
513 yyptr += yynewbytes / sizeof (*yyptr); \
519 /* YYFINAL -- State number of the termination state. */
521 /* YYLAST -- Last index in YYTABLE. */
524 /* YYNTOKENS -- Number of terminals. */
526 /* YYNNTS -- Number of nonterminals. */
528 /* YYNRULES -- Number of rules. */
530 /* YYNRULES -- Number of states. */
531 #define YYNSTATES 377
533 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
535 #define YYMAXUTOK 315
537 #define YYTRANSLATE(YYX) \
538 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
540 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
541 static const yytype_uint8 yytranslate[] =
543 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
544 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
545 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
546 2, 2, 2, 74, 2, 77, 76, 19, 13, 2,
547 68, 70, 17, 15, 69, 16, 71, 18, 2, 2,
548 2, 2, 2, 2, 2, 2, 2, 2, 79, 2,
549 2, 2, 2, 2, 78, 2, 2, 2, 2, 2,
550 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
551 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
552 2, 72, 2, 73, 2, 2, 2, 2, 2, 2,
553 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
554 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
555 2, 2, 2, 2, 12, 2, 75, 2, 2, 2,
556 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
557 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
558 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
559 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
560 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
561 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
562 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
563 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
564 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
565 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
566 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
567 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
568 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
569 5, 6, 7, 8, 9, 10, 11, 14, 20, 21,
570 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
571 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
572 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
573 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
574 62, 63, 64, 65, 66, 67
578 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
580 static const yytype_uint16 yyprhs[] =
582 0, 0, 3, 5, 7, 13, 17, 21, 24, 27,
583 29, 33, 37, 40, 43, 45, 47, 51, 56, 60,
584 65, 69, 71, 74, 78, 82, 86, 90, 96, 98,
585 107, 110, 114, 118, 122, 126, 135, 137, 141, 143,
586 146, 148, 152, 158, 164, 170, 172, 176, 177, 179,
587 182, 183, 186, 187, 190, 191, 194, 195, 197, 200,
588 204, 208, 211, 215, 217, 219, 221, 225, 230, 234,
589 240, 242, 246, 250, 254, 258, 262, 266, 270, 274,
590 278, 281, 284, 287, 290, 292, 295, 297, 299, 303,
591 308, 313, 318, 322, 328, 334, 340, 345, 347, 351,
592 355, 361, 363, 367, 369, 371, 373, 375, 377, 379,
593 382, 385, 388, 391, 394, 397, 398, 402, 403, 406,
594 410, 416, 418, 423, 428, 433, 435, 439, 441, 445,
595 447, 451, 457, 461, 464, 469, 471, 475, 481, 485,
596 489, 491, 495, 499, 501, 504, 512, 519, 536, 541,
597 543, 547, 551, 553, 557, 562, 564, 567, 574, 579,
598 580, 584, 586, 589, 592, 595, 599, 604, 609, 614,
599 615, 619, 620, 624, 626, 630, 634
602 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
603 static const yytype_int16 yyrhs[] =
605 81, 0, -1, 83, -1, 125, -1, 61, 22, 125,
606 82, 23, -1, 85, 84, 88, -1, 84, 85, 88,
607 -1, 84, 88, -1, 85, 88, -1, 88, -1, 85,
608 84, 89, -1, 84, 85, 89, -1, 84, 89, -1,
609 85, 89, -1, 89, -1, 82, -1, 83, 21, 82,
610 -1, 57, 22, 86, 23, -1, 57, 22, 23, -1,
611 56, 22, 86, 23, -1, 56, 22, 23, -1, 87,
612 -1, 86, 87, -1, 3, 4, 21, -1, 3, 3,
613 21, -1, 36, 90, 91, -1, 54, 122, 92, -1,
614 54, 122, 55, 109, 92, -1, 110, -1, 92, 97,
615 113, 114, 102, 99, 100, 101, -1, 27, 93, -1,
616 28, 27, 93, -1, 30, 27, 93, -1, 32, 27,
617 93, -1, 31, 27, 93, -1, 29, 68, 121, 69,
618 5, 70, 27, 93, -1, 94, -1, 93, 69, 94,
619 -1, 95, -1, 95, 3, -1, 96, -1, 3, 71,
620 96, -1, 3, 71, 3, 71, 96, -1, 4, 71,
621 3, 71, 96, -1, 72, 3, 73, 71, 96, -1,
622 3, -1, 96, 18, 3, -1, -1, 98, -1, 37,
623 104, -1, -1, 39, 104, -1, -1, 40, 104, -1,
624 -1, 41, 104, -1, -1, 103, -1, 34, 104, -1,
625 104, 8, 104, -1, 104, 9, 104, -1, 10, 104,
626 -1, 68, 104, 70, -1, 105, -1, 106, -1, 107,
627 -1, 3, 72, 73, -1, 3, 72, 111, 73, -1,
628 109, 11, 109, -1, 109, 35, 72, 108, 73, -1,
629 112, -1, 108, 69, 112, -1, 109, 15, 109, -1,
630 109, 16, 109, -1, 109, 12, 109, -1, 109, 17,
631 109, -1, 109, 18, 109, -1, 109, 13, 109, -1,
632 109, 19, 109, -1, 109, 14, 109, -1, 15, 109,
633 -1, 16, 109, -1, 74, 109, -1, 75, 109, -1,
634 112, -1, 76, 3, -1, 120, -1, 121, -1, 68,
635 109, 70, -1, 26, 68, 17, 70, -1, 26, 68,
636 109, 70, -1, 3, 68, 111, 70, -1, 3, 68,
637 70, -1, 26, 76, 68, 17, 70, -1, 26, 76,
638 68, 109, 70, -1, 3, 76, 68, 111, 70, -1,
639 3, 76, 68, 70, -1, 109, -1, 109, 25, 3,
640 -1, 110, 69, 109, -1, 110, 69, 109, 25, 3,
641 -1, 109, -1, 111, 69, 109, -1, 4, -1, 5,
642 -1, 6, -1, 7, -1, 47, -1, 48, -1, 49,
643 4, -1, 50, 4, -1, 51, 4, -1, 52, 4,
644 -1, 53, 4, -1, 77, 3, -1, -1, 33, 24,
645 117, -1, -1, 38, 124, -1, 68, 118, 70, -1,
646 115, 69, 68, 118, 70, -1, 119, -1, 45, 68,
647 118, 70, -1, 44, 68, 118, 70, -1, 46, 68,
648 115, 70, -1, 116, -1, 117, 69, 116, -1, 119,
649 -1, 118, 69, 119, -1, 3, -1, 3, 71, 3,
650 -1, 3, 71, 3, 71, 3, -1, 109, 25, 3,
651 -1, 78, 3, -1, 3, 71, 78, 3, -1, 3,
652 -1, 3, 71, 3, -1, 3, 71, 3, 71, 3,
653 -1, 121, 79, 121, -1, 122, 79, 121, -1, 3,
654 -1, 123, 69, 123, -1, 124, 69, 123, -1, 126,
655 -1, 125, 126, -1, 58, 3, 136, 135, 22, 131,
656 23, -1, 60, 96, 136, 22, 131, 23, -1, 64,
657 3, 22, 63, 133, 65, 22, 131, 23, 66, 22,
658 129, 23, 67, 133, 23, -1, 62, 22, 127, 23,
659 -1, 128, -1, 127, 21, 128, -1, 3, 3, 5,
660 -1, 130, -1, 129, 21, 130, -1, 3, 68, 138,
661 70, -1, 132, -1, 131, 132, -1, 3, 3, 3,
662 133, 135, 21, -1, 3, 3, 133, 21, -1, -1,
663 68, 134, 70, -1, 3, -1, 3, 3, -1, 3,
664 4, -1, 3, 5, -1, 134, 69, 3, -1, 134,
665 69, 3, 3, -1, 134, 69, 3, 4, -1, 134,
666 69, 3, 5, -1, -1, 72, 137, 73, -1, -1,
667 68, 137, 70, -1, 3, -1, 137, 69, 3, -1,
668 3, 3, 133, -1, 138, 69, 3, 3, 133, -1
671 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
672 static const yytype_uint16 yyrline[] =
674 0, 189, 189, 194, 201, 215, 220, 225, 230, 234,
675 237, 242, 247, 251, 255, 260, 261, 265, 266, 270,
676 271, 275, 276, 280, 281, 285, 289, 291, 299, 303,
677 315, 316, 317, 318, 319, 320, 324, 325, 329, 330,
678 334, 335, 336, 337, 338, 342, 343, 348, 349, 353,
679 357, 358, 362, 363, 367, 368, 372, 373, 377, 384,
680 385, 386, 387, 388, 392, 393, 394, 395, 399, 403,
681 407, 408, 414, 415, 416, 417, 418, 419, 420, 421,
682 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
683 432, 433, 434, 435, 436, 437, 438, 443, 444, 445,
684 446, 450, 451, 455, 456, 457, 458, 459, 460, 461,
685 462, 463, 464, 465, 466, 472, 473, 477, 478, 482,
686 483, 487, 488, 489, 490, 494, 495, 499, 500, 504,
687 505, 506, 507, 518, 519, 523, 524, 525, 529, 530,
688 534, 538, 539, 554, 555, 558, 560, 562, 564, 568,
689 569, 573, 577, 578, 582, 585, 586, 590, 591, 595,
690 596, 600, 601, 602, 603, 604, 605, 606, 607, 611,
691 612, 616, 617, 621, 622, 626, 627
695 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
696 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
697 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
698 static const char *const yytname[] =
700 "$end", "error", "$undefined", "NAME", "STRING_TOKEN", "INTNUM",
701 "LONGINTNUM", "APPROXNUM", "OR", "AND", "NOT", "COMPARISON", "'|'",
702 "'&'", "SHIFT_OP", "'+'", "'-'", "'*'", "'/'", "'%'", "UMINUS",
703 "SEMICOLON", "LEFTBRACE", "RIGHTBRACE", "BY", "AS", "AGGR", "FROM",
704 "INNER_JOIN", "FILTER_JOIN", "OUTER_JOIN", "LEFT_OUTER_JOIN",
705 "RIGHT_OUTER_JOIN", "GROUP", "HAVING", "IN", "SELECT", "WHERE",
706 "SUPERGROUP", "CLEANING_WHEN", "CLEANING_BY", "CLOSING_WHEN", "SUCH",
707 "THAT", "CUBE", "ROLLUP", "GROUPING_SETS", "TRUE_V", "FALSE_V",
708 "TIMEVAL_L", "HEX_L", "LHEX_L", "IP_L", "IPV6_L", "MERGE", "SLACK",
709 "DEFINE_SEC", "PARAM_SEC", "PROTOCOL", "TABLE", "STREAM", "FTA",
710 "UNPACK_FCNS", "OPERATOR", "OPERATOR_VIEW", "FIELDS", "SUBQUERIES",
711 "SELECTION_PUSHDOWN", "'('", "','", "')'", "'.'", "'['", "']'", "'!'",
712 "'~'", "'$'", "'#'", "'@'", "':'", "$accept", "parse_result", "gsql",
713 "query_list", "params_def", "variable_def", "variable_list",
714 "variable_assign", "select_statement", "merge_statement", "selection",
715 "table_exp", "from_clause", "table_ref_commalist", "table_ref", "table",
716 "qname", "opt_where_clause", "where_clause", "opt_cleaning_when_clause",
717 "opt_cleaning_by_clause", "opt_closing_when_clause", "opt_having_clause",
718 "having_clause", "search_condition", "predicate", "comparison_predicate",
719 "in_predicate", "literal_commalist", "scalar_exp", "select_commalist",
720 "scalar_exp_commalist", "literal", "opt_group_by_clause",
721 "opt_supergroup_clause", "list_of_gb_commalist", "extended_gb",
722 "extended_gb_commalist", "gb_commalist", "gb", "ifparam", "column_ref",
723 "column_ref_list", "gb_ref", "gb_ref_list", "table_list", "table_def",
724 "unpack_func_list", "unpack_func", "subqueryspec_list", "subq_spec",
725 "field_list", "field", "opt_param_commalist", "param_commalist",
726 "opt_singleparam_commalist_bkt", "opt_singleparam_commalist",
727 "singleparam_commalist", "namevec_commalist", 0
732 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
734 static const yytype_uint16 yytoknum[] =
736 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
737 265, 266, 124, 38, 267, 43, 45, 42, 47, 37,
738 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
739 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
740 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
741 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
742 308, 309, 310, 311, 312, 313, 314, 315, 40, 44,
743 41, 46, 91, 93, 33, 126, 36, 35, 64, 58
747 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
748 static const yytype_uint8 yyr1[] =
750 0, 80, 81, 81, 81, 82, 82, 82, 82, 82,
751 82, 82, 82, 82, 82, 83, 83, 84, 84, 85,
752 85, 86, 86, 87, 87, 88, 89, 89, 90, 91,
753 92, 92, 92, 92, 92, 92, 93, 93, 94, 94,
754 95, 95, 95, 95, 95, 96, 96, 97, 97, 98,
755 99, 99, 100, 100, 101, 101, 102, 102, 103, 104,
756 104, 104, 104, 104, 105, 105, 105, 105, 106, 107,
757 108, 108, 109, 109, 109, 109, 109, 109, 109, 109,
758 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
759 109, 109, 109, 109, 109, 109, 109, 110, 110, 110,
760 110, 111, 111, 112, 112, 112, 112, 112, 112, 112,
761 112, 112, 112, 112, 112, 113, 113, 114, 114, 115,
762 115, 116, 116, 116, 116, 117, 117, 118, 118, 119,
763 119, 119, 119, 120, 120, 121, 121, 121, 122, 122,
764 123, 124, 124, 125, 125, 126, 126, 126, 126, 127,
765 127, 128, 129, 129, 130, 131, 131, 132, 132, 133,
766 133, 134, 134, 134, 134, 134, 134, 134, 134, 135,
767 135, 136, 136, 137, 137, 138, 138
770 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
771 static const yytype_uint8 yyr2[] =
773 0, 2, 1, 1, 5, 3, 3, 2, 2, 1,
774 3, 3, 2, 2, 1, 1, 3, 4, 3, 4,
775 3, 1, 2, 3, 3, 3, 3, 5, 1, 8,
776 2, 3, 3, 3, 3, 8, 1, 3, 1, 2,
777 1, 3, 5, 5, 5, 1, 3, 0, 1, 2,
778 0, 2, 0, 2, 0, 2, 0, 1, 2, 3,
779 3, 2, 3, 1, 1, 1, 3, 4, 3, 5,
780 1, 3, 3, 3, 3, 3, 3, 3, 3, 3,
781 2, 2, 2, 2, 1, 2, 1, 1, 3, 4,
782 4, 4, 3, 5, 5, 5, 4, 1, 3, 3,
783 5, 1, 3, 1, 1, 1, 1, 1, 1, 2,
784 2, 2, 2, 2, 2, 0, 3, 0, 2, 3,
785 5, 1, 4, 4, 4, 1, 3, 1, 3, 1,
786 3, 5, 3, 2, 4, 1, 3, 5, 3, 3,
787 1, 3, 3, 1, 2, 7, 6, 16, 4, 1,
788 3, 3, 1, 3, 4, 1, 2, 6, 4, 0,
789 3, 1, 2, 2, 2, 3, 4, 4, 4, 0,
793 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
794 STATE-NUM when YYTABLE doesn't specify something else to do. Zero
795 means the default is an error. */
796 static const yytype_uint8 yydefact[] =
798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
799 0, 15, 2, 0, 0, 9, 14, 3, 143, 135,
800 103, 104, 105, 106, 0, 0, 0, 107, 108, 0,
801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
802 0, 97, 28, 84, 86, 87, 135, 0, 0, 0,
803 0, 171, 45, 171, 0, 0, 0, 1, 0, 0,
804 7, 12, 0, 8, 13, 144, 0, 0, 0, 80,
805 81, 0, 0, 109, 110, 111, 112, 113, 0, 82,
806 83, 85, 114, 133, 0, 0, 0, 0, 0, 0,
807 25, 47, 0, 0, 0, 0, 0, 0, 0, 0,
808 0, 0, 0, 0, 0, 0, 26, 0, 20, 0,
809 21, 18, 0, 0, 169, 0, 0, 0, 0, 0,
810 149, 0, 16, 6, 11, 5, 10, 92, 101, 0,
811 136, 0, 0, 0, 0, 0, 88, 45, 0, 0,
812 30, 36, 38, 40, 0, 0, 0, 0, 0, 0,
813 115, 48, 74, 77, 79, 72, 73, 75, 76, 78,
814 98, 99, 138, 0, 139, 0, 0, 19, 22, 17,
815 173, 0, 0, 0, 46, 0, 0, 0, 0, 148,
816 159, 0, 91, 0, 134, 96, 0, 89, 90, 0,
817 0, 0, 0, 0, 0, 39, 31, 0, 32, 34,
818 33, 135, 0, 0, 49, 63, 64, 65, 0, 0,
819 117, 0, 27, 24, 23, 0, 172, 0, 0, 0,
820 0, 155, 4, 151, 150, 0, 0, 102, 137, 95,
821 93, 94, 45, 41, 0, 0, 37, 0, 0, 61,
822 0, 0, 0, 0, 0, 0, 0, 0, 56, 100,
823 174, 170, 0, 159, 146, 156, 161, 0, 0, 0,
824 0, 0, 0, 66, 0, 62, 59, 60, 68, 0,
825 129, 0, 0, 0, 0, 125, 116, 121, 140, 0,
826 118, 0, 50, 57, 145, 159, 0, 162, 163, 164,
827 0, 160, 0, 42, 43, 44, 0, 67, 0, 70,
828 0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
829 52, 169, 158, 165, 0, 0, 0, 69, 130, 0,
830 127, 0, 0, 0, 132, 126, 141, 142, 51, 0,
831 54, 0, 166, 167, 168, 0, 35, 71, 0, 0,
832 123, 122, 0, 0, 124, 53, 0, 29, 157, 0,
833 131, 128, 119, 0, 55, 0, 0, 0, 0, 152,
834 120, 0, 0, 0, 0, 0, 153, 159, 159, 0,
835 154, 0, 175, 0, 147, 159, 176
838 /* YYDEFGOTO[NTERM-NUM]. */
839 static const yytype_int16 yydefgoto[] =
841 -1, 10, 11, 12, 13, 14, 109, 110, 15, 16,
842 40, 90, 91, 140, 141, 142, 143, 150, 151, 310,
843 330, 347, 282, 283, 204, 205, 206, 207, 298, 208,
844 42, 129, 43, 210, 248, 323, 275, 276, 319, 320,
845 44, 45, 48, 279, 280, 17, 18, 119, 120, 358,
846 359, 220, 221, 226, 257, 173, 114, 171, 365
849 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
851 #define YYPACT_NINF -247
852 static const yytype_int16 yypact[] =
854 121, 535, 76, 6, 60, 85, 115, 111, 132, 123,
855 165, -247, 147, -9, 117, -247, -247, 178, -247, 87,
856 -247, -247, -247, -247, 535, 535, -24, -247, -247, 207,
857 219, 223, 235, 242, 535, 535, 535, 198, 222, 266,
858 261, 554, 230, -247, -247, -247, 243, 238, 360, 104,
859 107, 252, -247, 18, 178, 319, 329, -247, -14, 163,
860 -247, -247, 163, -247, -247, -247, 200, 12, 295, -247,
861 -247, 279, 301, -247, -247, -247, -247, -247, 294, -247,
862 -247, -247, -247, -247, 13, 366, 326, 373, 374, 397,
863 -247, 359, 535, 535, 535, 535, 535, 535, 535, 535,
864 423, 535, 424, 76, 535, 76, -247, 63, -247, 113,
865 -247, -247, 153, 425, 362, 432, 414, 422, 435, 30,
866 -247, 377, -247, -247, -247, -247, -247, -247, 689, 197,
867 370, 439, 355, 383, 327, 369, -247, 385, 386, 451,
868 390, -247, 464, 450, 13, 76, 13, 13, 13, 445,
869 436, -247, 486, 395, 318, 191, 191, -247, -247, -247,
870 -247, 645, -247, 624, -247, 449, 452, -247, -247, -247,
871 -247, 210, 425, 455, -247, 469, 458, 478, 319, -247,
872 419, 535, -247, 485, -247, -247, 228, -247, -247, 420,
873 616, 488, 511, 416, 13, -247, 390, 446, 390, 390,
874 390, 247, 445, 445, 205, -247, -247, -247, 126, 492,
875 479, 515, -247, -247, -247, 521, -247, -19, 469, 522,
876 161, -247, -247, -247, -247, 523, 463, 689, -247, -247,
877 -247, -247, 460, 450, 472, 473, -247, 524, 459, -247,
878 11, 246, 445, 445, 535, 474, 144, 527, 513, -247,
879 -247, -247, 164, 15, -247, -247, 268, 233, 526, 115,
880 115, 115, 475, -247, 59, -247, 540, -247, 689, 25,
881 43, 489, 490, 491, 659, -247, 493, -247, -247, 494,
882 505, 445, 537, -247, -247, 419, 539, -247, -247, -247,
883 574, -247, 469, 450, 450, 450, 551, -247, 93, -247,
884 23, 549, 549, 512, 578, 144, 527, 527, 205, 445,
885 550, 362, -247, 345, 221, 13, 25, -247, 216, 255,
886 -247, 296, 549, 298, -247, -247, -247, -247, 205, 445,
887 548, 570, -247, -247, -247, 528, 390, -247, 589, 549,
888 -247, -247, 308, 525, -247, 205, 445, -247, -247, 573,
889 675, -247, -247, 549, 205, 601, 310, 538, 177, -247,
890 -247, 602, 601, 541, 604, 313, -247, 419, 419, 611,
891 -247, 592, -247, 613, -247, 419, -247
894 /* YYPGOTO[NTERM-NUM]. */
895 static const yytype_int16 yypgoto[] =
897 -247, -247, -37, -247, 605, 607, 568, -71, 50, 110,
898 -247, -247, -38, -142, 427, -247, -5, -247, -247, -247,
899 -247, -247, -247, -247, -194, -247, -247, -247, -247, -1,
900 -247, -121, -232, -247, -247, -247, 317, -247, -233, -234,
901 -247, 1, -247, 92, -247, 590, -4, -247, 467, -247,
902 284, -193, -206, -246, -247, 336, 595, 477, -247
905 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
906 positive, shift that token. If negative, reduce the rule which
907 number is the opposite. If zero, do what YYDEFACT says.
908 If YYTABLE_NINF, syntax error. */
909 #define YYTABLE_NINF -138
910 static const yytype_int16 yytable[] =
912 41, 53, 196, 47, 198, 199, 200, 286, 239, 240,
913 106, 186, 277, 65, 255, 130, 137, 138, 285, 242,
914 243, 122, 1, 69, 70, 252, 318, 1, 49, 20,
915 21, 22, 23, 78, 79, 80, 115, 299, 168, 311,
916 2, 168, 3, 4, 71, 2, 255, 3, 266, 267,
917 215, 178, 72, 179, 251, -135, -135, -135, -135, -135,
918 -135, -135, -135, 60, 63, 128, 165, 166, -135, 321,
919 134, 277, 27, 28, 29, 30, 31, 32, 33, 46,
920 176, 265, 50, 225, 337, 139, 113, 308, 51, 342,
921 131, 152, 153, 154, 155, 156, 157, 158, 159, 314,
922 161, 131, 38, 163, 162, 351, 164, 107, 255, 123,
923 107, 66, 125, 65, 300, 328, 107, 264, 52, 68,
924 356, 371, 372, 61, 64, 212, 56, 108, 181, 376,
925 111, 128, 297, 54, 190, 345, 167, 244, 92, 93,
926 94, 95, 96, 97, 98, 99, 197, 270, 20, 21,
927 22, 23, 354, 1, 55, 66, 107, 1, 67, 24,
928 25, 245, 316, 68, 219, 57, 317, 219, 58, 124,
929 26, 2, 126, 336, 4, 2, 169, 3, 4, 5,
930 227, 6, 7, 8, 254, 9, 233, 284, 271, 272,
931 273, 27, 28, 29, 30, 31, 32, 33, 362, 1,
932 363, 81, 241, 19, 20, 21, 22, 23, 97, 98,
933 99, 73, 34, 242, 243, 24, 25, 2, 35, 36,
934 37, 38, 39, 74, 219, 82, 26, 75, -136, -136,
935 -136, -136, -136, -136, -136, -136, 5, 128, 6, 76,
936 8, -136, 9, 268, 335, 274, 77, 27, 28, 29,
937 30, 31, 32, 33, 293, 294, 295, 244, 92, 93,
938 94, 95, 96, 97, 98, 99, 181, 182, 34, 83,
939 127, 287, 288, 289, 35, 36, 37, 38, 39, 215,
940 216, 245, 19, 20, 21, 22, 23, 338, 84, 85,
941 86, 87, 88, 89, 24, 25, 133, 181, 229, 101,
942 274, 274, 290, 291, 274, 26, 92, 93, 94, 95,
943 96, 97, 98, 99, 102, 66, 136, 103, 67, 238,
944 113, 274, 118, 68, 339, 340, 27, 28, 29, 30,
945 31, 32, 33, 95, 96, 97, 98, 99, 274, 92,
946 93, 94, 95, 96, 97, 98, 99, 34, 332, 333,
947 334, 121, 274, 35, 36, 37, 38, 39, 19, 20,
948 21, 22, 23, 132, 136, 339, 341, 343, 344, 135,
949 24, 25, 19, 20, 21, 22, 23, 339, 352, 339,
950 360, 26, 369, 370, 24, 25, 189, 84, 85, 86,
951 87, 88, 89, 144, 145, 26, 149, 188, 326, 327,
952 146, 147, 27, 28, 29, 30, 31, 32, 33, 94,
953 95, 96, 97, 98, 99, 104, 27, 28, 29, 30,
954 31, 32, 33, 34, 148, 185, 160, 130, 170, 35,
955 36, 37, 38, 39, 172, 174, 175, 34, 177, 105,
956 180, 183, 184, 35, 36, 37, 38, 39, 201, 20,
957 21, 22, 23, 187, 193, 202, 191, 192, 1, 194,
958 24, 25, 19, 20, 21, 22, 23, 195, 115, 209,
959 213, 26, 219, 214, 24, 25, 2, 218, 3, 4,
960 5, 222, 6, 223, 8, 26, 9, 225, 228, 235,
961 230, 232, 27, 28, 29, 30, 31, 32, 33, 93,
962 94, 95, 96, 97, 98, 99, 27, 28, 29, 30,
963 31, 32, 33, 203, 234, 237, 246, 247, 249, 35,
964 36, 37, 38, 39, 250, 253, 256, 34, 258, 262,
965 278, 259, 263, 35, 36, 37, 38, 39, 19, 20,
966 21, 22, 23, 260, 261, 296, 269, 281, 292, 243,
967 24, 25, 270, 20, 21, 22, 23, 301, 302, 303,
968 312, 26, 305, 306, 24, 25, 92, 93, 94, 95,
969 96, 97, 98, 99, 307, 26, 309, 313, 315, 100,
970 322, 324, 27, 28, 29, 30, 31, 32, 33, 346,
971 329, 348, 350, 353, 349, 355, 27, 28, 29, 30,
972 31, 32, 33, 34, 357, 364, 361, 368, 367, 35,
973 36, 37, 38, 39, 373, 374, 375, 34, 112, 62,
974 59, 236, 325, 35, 36, 37, 38, 39, 92, 93,
975 94, 95, 96, 97, 98, 99, 92, 93, 94, 95,
976 96, 97, 98, 99, 117, 224, 366, 331, 116, 217,
977 0, 84, 85, 86, 87, 88, 89, 92, 93, 94,
978 95, 96, 97, 98, 99, 0, 0, 0, 0, 0,
979 211, 92, 93, 94, 95, 96, 97, 98, 99, 0,
980 0, 0, 0, 0, 304, 0, 231, -137, -137, -137,
981 -137, -137, -137, -137, -137, 0, 0, 0, 0, 0,
982 -137, 92, 93, 94, 95, 96, 97, 98, 99
985 static const yytype_int16 yycheck[] =
987 1, 6, 144, 2, 146, 147, 148, 253, 202, 203,
988 48, 132, 246, 17, 220, 3, 3, 4, 3, 8,
989 9, 58, 36, 24, 25, 218, 3, 36, 22, 4,
990 5, 6, 7, 34, 35, 36, 18, 269, 109, 285,
991 54, 112, 56, 57, 68, 54, 252, 56, 242, 243,
992 69, 21, 76, 23, 73, 12, 13, 14, 15, 16,
993 17, 18, 19, 13, 14, 66, 3, 4, 25, 302,
994 71, 305, 47, 48, 49, 50, 51, 52, 53, 3,
995 117, 70, 22, 68, 316, 72, 68, 281, 3, 322,
996 78, 92, 93, 94, 95, 96, 97, 98, 99, 292,
997 101, 78, 77, 104, 103, 339, 105, 3, 314, 59,
998 3, 68, 62, 117, 71, 309, 3, 238, 3, 76,
999 353, 367, 368, 13, 14, 163, 3, 23, 69, 375,
1000 23, 132, 73, 22, 135, 329, 23, 11, 12, 13,
1001 14, 15, 16, 17, 18, 19, 145, 3, 4, 5,
1002 6, 7, 346, 36, 22, 68, 3, 36, 71, 15,
1003 16, 35, 69, 76, 3, 0, 73, 3, 21, 59,
1004 26, 54, 62, 315, 57, 54, 23, 56, 57, 58,
1005 181, 60, 61, 62, 23, 64, 191, 23, 44, 45,
1006 46, 47, 48, 49, 50, 51, 52, 53, 21, 36,
1007 23, 3, 203, 3, 4, 5, 6, 7, 17, 18,
1008 19, 4, 68, 8, 9, 15, 16, 54, 74, 75,
1009 76, 77, 78, 4, 3, 3, 26, 4, 12, 13,
1010 14, 15, 16, 17, 18, 19, 58, 238, 60, 4,
1011 62, 25, 64, 244, 23, 246, 4, 47, 48, 49,
1012 50, 51, 52, 53, 259, 260, 261, 11, 12, 13,
1013 14, 15, 16, 17, 18, 19, 69, 70, 68, 3,
1014 70, 3, 4, 5, 74, 75, 76, 77, 78, 69,
1015 70, 35, 3, 4, 5, 6, 7, 71, 27, 28,
1016 29, 30, 31, 32, 15, 16, 17, 69, 70, 69,
1017 301, 302, 69, 70, 305, 26, 12, 13, 14, 15,
1018 16, 17, 18, 19, 71, 68, 70, 79, 71, 72,
1019 68, 322, 3, 76, 69, 70, 47, 48, 49, 50,
1020 51, 52, 53, 15, 16, 17, 18, 19, 339, 12,
1021 13, 14, 15, 16, 17, 18, 19, 68, 3, 4,
1022 5, 22, 353, 74, 75, 76, 77, 78, 3, 4,
1023 5, 6, 7, 68, 70, 69, 70, 69, 70, 68,
1024 15, 16, 3, 4, 5, 6, 7, 69, 70, 69,
1025 70, 26, 69, 70, 15, 16, 17, 27, 28, 29,
1026 30, 31, 32, 27, 68, 26, 37, 70, 306, 307,
1027 27, 27, 47, 48, 49, 50, 51, 52, 53, 14,
1028 15, 16, 17, 18, 19, 55, 47, 48, 49, 50,
1029 51, 52, 53, 68, 27, 70, 3, 3, 3, 74,
1030 75, 76, 77, 78, 72, 3, 22, 68, 3, 79,
1031 63, 71, 3, 74, 75, 76, 77, 78, 3, 4,
1032 5, 6, 7, 70, 3, 10, 71, 71, 36, 69,
1033 15, 16, 3, 4, 5, 6, 7, 3, 18, 33,
1034 21, 26, 3, 21, 15, 16, 54, 22, 56, 57,
1035 58, 23, 60, 5, 62, 26, 64, 68, 3, 73,
1036 70, 3, 47, 48, 49, 50, 51, 52, 53, 13,
1037 14, 15, 16, 17, 18, 19, 47, 48, 49, 50,
1038 51, 52, 53, 68, 3, 69, 24, 38, 3, 74,
1039 75, 76, 77, 78, 3, 3, 3, 68, 65, 5,
1040 3, 71, 73, 74, 75, 76, 77, 78, 3, 4,
1041 5, 6, 7, 71, 71, 70, 72, 34, 22, 9,
1042 15, 16, 3, 4, 5, 6, 7, 68, 68, 68,
1043 21, 26, 69, 69, 15, 16, 12, 13, 14, 15,
1044 16, 17, 18, 19, 69, 26, 39, 3, 27, 25,
1045 68, 3, 47, 48, 49, 50, 51, 52, 53, 41,
1046 40, 21, 3, 68, 66, 22, 47, 48, 49, 50,
1047 51, 52, 53, 68, 3, 3, 68, 3, 67, 74,
1048 75, 76, 77, 78, 3, 23, 3, 68, 50, 14,
1049 13, 194, 305, 74, 75, 76, 77, 78, 12, 13,
1050 14, 15, 16, 17, 18, 19, 12, 13, 14, 15,
1051 16, 17, 18, 19, 54, 178, 362, 311, 53, 172,
1052 -1, 27, 28, 29, 30, 31, 32, 12, 13, 14,
1053 15, 16, 17, 18, 19, -1, -1, -1, -1, -1,
1054 25, 12, 13, 14, 15, 16, 17, 18, 19, -1,
1055 -1, -1, -1, -1, 25, -1, 70, 12, 13, 14,
1056 15, 16, 17, 18, 19, -1, -1, -1, -1, -1,
1057 25, 12, 13, 14, 15, 16, 17, 18, 19
1060 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1061 symbol of state STATE-NUM. */
1062 static const yytype_uint8 yystos[] =
1064 0, 36, 54, 56, 57, 58, 60, 61, 62, 64,
1065 81, 82, 83, 84, 85, 88, 89, 125, 126, 3,
1066 4, 5, 6, 7, 15, 16, 26, 47, 48, 49,
1067 50, 51, 52, 53, 68, 74, 75, 76, 77, 78,
1068 90, 109, 110, 112, 120, 121, 3, 121, 122, 22,
1069 22, 3, 3, 96, 22, 22, 3, 0, 21, 85,
1070 88, 89, 84, 88, 89, 126, 68, 71, 76, 109,
1071 109, 68, 76, 4, 4, 4, 4, 4, 109, 109,
1072 109, 3, 3, 3, 27, 28, 29, 30, 31, 32,
1073 91, 92, 12, 13, 14, 15, 16, 17, 18, 19,
1074 25, 69, 71, 79, 55, 79, 92, 3, 23, 86,
1075 87, 23, 86, 68, 136, 18, 136, 125, 3, 127,
1076 128, 22, 82, 88, 89, 88, 89, 70, 109, 111,
1077 3, 78, 68, 17, 109, 68, 70, 3, 4, 72,
1078 93, 94, 95, 96, 27, 68, 27, 27, 27, 37,
1079 97, 98, 109, 109, 109, 109, 109, 109, 109, 109,
1080 3, 109, 121, 109, 121, 3, 4, 23, 87, 23,
1081 3, 137, 72, 135, 3, 22, 82, 3, 21, 23,
1082 63, 69, 70, 71, 3, 70, 111, 70, 70, 17,
1083 109, 71, 71, 3, 69, 3, 93, 121, 93, 93,
1084 93, 3, 10, 68, 104, 105, 106, 107, 109, 33,
1085 113, 25, 92, 21, 21, 69, 70, 137, 22, 3,
1086 131, 132, 23, 5, 128, 68, 133, 109, 3, 70,
1087 70, 70, 3, 96, 3, 73, 94, 69, 72, 104,
1088 104, 109, 8, 9, 11, 35, 24, 38, 114, 3,
1089 3, 73, 131, 3, 23, 132, 3, 134, 65, 71,
1090 71, 71, 5, 73, 111, 70, 104, 104, 109, 72,
1091 3, 44, 45, 46, 109, 116, 117, 119, 3, 123,
1092 124, 34, 102, 103, 23, 3, 133, 3, 4, 5,
1093 69, 70, 22, 96, 96, 96, 70, 73, 108, 112,
1094 71, 68, 68, 68, 25, 69, 69, 69, 104, 39,
1095 99, 133, 21, 3, 131, 27, 69, 73, 3, 118,
1096 119, 118, 68, 115, 3, 116, 123, 123, 104, 40,
1097 100, 135, 3, 4, 5, 23, 93, 112, 71, 69,
1098 70, 70, 118, 69, 70, 104, 41, 101, 21, 66,
1099 3, 119, 70, 68, 104, 22, 118, 3, 129, 130,
1100 70, 68, 21, 23, 3, 138, 130, 67, 3, 69,
1101 70, 133, 133, 3, 23, 3, 133
1104 #define yyerrok (yyerrstatus = 0)
1105 #define yyclearin (yychar = YYEMPTY)
1106 #define YYEMPTY (-2)
1109 #define YYACCEPT goto yyacceptlab
1110 #define YYABORT goto yyabortlab
1111 #define YYERROR goto yyerrorlab
1114 /* Like YYERROR except do call yyerror. This remains here temporarily
1115 to ease the transition to the new meaning of YYERROR, for GCC.
1116 Once GCC version 2 has supplanted version 1, this can go. */
1118 #define YYFAIL goto yyerrlab
1120 #define YYRECOVERING() (!!yyerrstatus)
1122 #define YYBACKUP(Token, Value) \
1124 if (yychar == YYEMPTY && yylen == 1) \
1128 yytoken = YYTRANSLATE (yychar); \
1134 yyerror (YY_("syntax error: cannot back up")); \
1141 #define YYERRCODE 256
1144 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1145 If N is 0, then set CURRENT to the empty location which ends
1146 the previous symbol: RHS[0] (always defined). */
1148 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
1149 #ifndef YYLLOC_DEFAULT
1150 # define YYLLOC_DEFAULT(Current, Rhs, N) \
1154 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1155 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1156 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1157 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1161 (Current).first_line = (Current).last_line = \
1162 YYRHSLOC (Rhs, 0).last_line; \
1163 (Current).first_column = (Current).last_column = \
1164 YYRHSLOC (Rhs, 0).last_column; \
1170 /* YY_LOCATION_PRINT -- Print the location on the stream.
1171 This macro was not mandated originally: define only if we know
1172 we won't break user code: when these are the locations we know. */
1174 #ifndef YY_LOCATION_PRINT
1175 # if YYLTYPE_IS_TRIVIAL
1176 # define YY_LOCATION_PRINT(File, Loc) \
1177 fprintf (File, "%d.%d-%d.%d", \
1178 (Loc).first_line, (Loc).first_column, \
1179 (Loc).last_line, (Loc).last_column)
1181 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1186 /* YYLEX -- calling `yylex' with the right arguments. */
1189 # define YYLEX yylex (YYLEX_PARAM)
1191 # define YYLEX yylex ()
1194 /* Enable debugging if requested. */
1198 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1199 # define YYFPRINTF fprintf
1202 # define YYDPRINTF(Args) \
1208 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1212 YYFPRINTF (stderr, "%s ", Title); \
1213 yy_symbol_print (stderr, \
1215 YYFPRINTF (stderr, "\n"); \
1220 /*--------------------------------.
1221 | Print this symbol on YYOUTPUT. |
1222 `--------------------------------*/
1225 #if (defined __STDC__ || defined __C99__FUNC__ \
1226 || defined __cplusplus || defined _MSC_VER)
1228 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1231 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
1234 YYSTYPE const * const yyvaluep;
1240 if (yytype < YYNTOKENS)
1241 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1253 /*--------------------------------.
1254 | Print this symbol on YYOUTPUT. |
1255 `--------------------------------*/
1257 #if (defined __STDC__ || defined __C99__FUNC__ \
1258 || defined __cplusplus || defined _MSC_VER)
1260 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1263 yy_symbol_print (yyoutput, yytype, yyvaluep)
1266 YYSTYPE const * const yyvaluep;
1269 if (yytype < YYNTOKENS)
1270 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1272 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1274 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1275 YYFPRINTF (yyoutput, ")");
1278 /*------------------------------------------------------------------.
1279 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1281 `------------------------------------------------------------------*/
1283 #if (defined __STDC__ || defined __C99__FUNC__ \
1284 || defined __cplusplus || defined _MSC_VER)
1286 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
1289 yy_stack_print (bottom, top)
1290 yytype_int16 *bottom;
1294 YYFPRINTF (stderr, "Stack now");
1295 for (; bottom <= top; ++bottom)
1296 YYFPRINTF (stderr, " %d", *bottom);
1297 YYFPRINTF (stderr, "\n");
1300 # define YY_STACK_PRINT(Bottom, Top) \
1303 yy_stack_print ((Bottom), (Top)); \
1307 /*------------------------------------------------.
1308 | Report that the YYRULE is going to be reduced. |
1309 `------------------------------------------------*/
1311 #if (defined __STDC__ || defined __C99__FUNC__ \
1312 || defined __cplusplus || defined _MSC_VER)
1314 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1317 yy_reduce_print (yyvsp, yyrule)
1322 int yynrhs = yyr2[yyrule];
1324 unsigned long int yylno = yyrline[yyrule];
1325 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1327 /* The symbols being reduced. */
1328 for (yyi = 0; yyi < yynrhs; yyi++)
1330 fprintf (stderr, " $%d = ", yyi + 1);
1331 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1332 &(yyvsp[(yyi + 1) - (yynrhs)])
1334 fprintf (stderr, "\n");
1338 # define YY_REDUCE_PRINT(Rule) \
1341 yy_reduce_print (yyvsp, Rule); \
1344 /* Nonzero means print parse trace. It is left uninitialized so that
1345 multiple parsers can coexist. */
1347 #else /* !YYDEBUG */
1348 # define YYDPRINTF(Args)
1349 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1350 # define YY_STACK_PRINT(Bottom, Top)
1351 # define YY_REDUCE_PRINT(Rule)
1352 #endif /* !YYDEBUG */
1355 /* YYINITDEPTH -- initial size of the parser's stacks. */
1357 # define YYINITDEPTH 200
1360 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1361 if the built-in stack extension method is used).
1363 Do not make this value too large; the results are undefined if
1364 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1365 evaluated with infinite-precision integer arithmetic. */
1368 # define YYMAXDEPTH 10000
1376 # if defined __GLIBC__ && defined _STRING_H
1377 # define yystrlen strlen
1379 /* Return the length of YYSTR. */
1380 #if (defined __STDC__ || defined __C99__FUNC__ \
1381 || defined __cplusplus || defined _MSC_VER)
1383 yystrlen (const char *yystr)
1391 for (yylen = 0; yystr[yylen]; yylen++)
1399 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1400 # define yystpcpy stpcpy
1402 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1404 #if (defined __STDC__ || defined __C99__FUNC__ \
1405 || defined __cplusplus || defined _MSC_VER)
1407 yystpcpy (char *yydest, const char *yysrc)
1410 yystpcpy (yydest, yysrc)
1416 const char *yys = yysrc;
1418 while ((*yyd++ = *yys++) != '\0')
1427 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1428 quotes and backslashes, so that it's suitable for yyerror. The
1429 heuristic is that double-quoting is unnecessary unless the string
1430 contains an apostrophe, a comma, or backslash (other than
1431 backslash-backslash). YYSTR is taken from yytname. If YYRES is
1432 null, do not copy; instead, return the length of what the result
1435 yytnamerr (char *yyres, const char *yystr)
1440 char const *yyp = yystr;
1447 goto do_not_strip_quotes;
1451 goto do_not_strip_quotes;
1464 do_not_strip_quotes: ;
1468 return yystrlen (yystr);
1470 return yystpcpy (yyres, yystr) - yyres;
1474 /* Copy into YYRESULT an error message about the unexpected token
1475 YYCHAR while in state YYSTATE. Return the number of bytes copied,
1476 including the terminating null byte. If YYRESULT is null, do not
1477 copy anything; just return the number of bytes that would be
1478 copied. As a special case, return 0 if an ordinary "syntax error"
1479 message will do. Return YYSIZE_MAXIMUM if overflow occurs during
1480 size calculation. */
1482 yysyntax_error (char *yyresult, int yystate, int yychar)
1484 int yyn = yypact[yystate];
1486 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
1490 int yytype = YYTRANSLATE (yychar);
1491 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
1492 YYSIZE_T yysize = yysize0;
1494 int yysize_overflow = 0;
1495 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1496 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1500 /* This is so xgettext sees the translatable formats that are
1501 constructed on the fly. */
1502 YY_("syntax error, unexpected %s");
1503 YY_("syntax error, unexpected %s, expecting %s");
1504 YY_("syntax error, unexpected %s, expecting %s or %s");
1505 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
1506 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
1510 static char const yyunexpected[] = "syntax error, unexpected %s";
1511 static char const yyexpecting[] = ", expecting %s";
1512 static char const yyor[] = " or %s";
1513 char yyformat[sizeof yyunexpected
1514 + sizeof yyexpecting - 1
1515 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
1516 * (sizeof yyor - 1))];
1517 char const *yyprefix = yyexpecting;
1519 /* Start YYX at -YYN if negative to avoid negative indexes in
1521 int yyxbegin = yyn < 0 ? -yyn : 0;
1523 /* Stay within bounds of both yycheck and yytname. */
1524 int yychecklim = YYLAST - yyn + 1;
1525 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1528 yyarg[0] = yytname[yytype];
1529 yyfmt = yystpcpy (yyformat, yyunexpected);
1531 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1532 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1534 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1538 yyformat[sizeof yyunexpected - 1] = '\0';
1541 yyarg[yycount++] = yytname[yyx];
1542 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
1543 yysize_overflow |= (yysize1 < yysize);
1545 yyfmt = yystpcpy (yyfmt, yyprefix);
1549 yyf = YY_(yyformat);
1550 yysize1 = yysize + yystrlen (yyf);
1551 yysize_overflow |= (yysize1 < yysize);
1554 if (yysize_overflow)
1555 return YYSIZE_MAXIMUM;
1559 /* Avoid sprintf, as that infringes on the user's name space.
1560 Don't have undefined behavior even if the translation
1561 produced a string with the wrong number of "%s"s. */
1562 char *yyp = yyresult;
1564 while ((*yyp = *yyf) != '\0')
1566 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
1568 yyp += yytnamerr (yyp, yyarg[yyi++]);
1581 #endif /* YYERROR_VERBOSE */
1584 /*-----------------------------------------------.
1585 | Release the memory associated to this symbol. |
1586 `-----------------------------------------------*/
1589 #if (defined __STDC__ || defined __C99__FUNC__ \
1590 || defined __cplusplus || defined _MSC_VER)
1592 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1595 yydestruct (yymsg, yytype, yyvaluep)
1605 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1616 /* Prevent warnings from -Wmissing-prototypes. */
1618 #ifdef YYPARSE_PARAM
1619 #if defined __STDC__ || defined __cplusplus
1620 int yyparse (void *YYPARSE_PARAM);
1624 #else /* ! YYPARSE_PARAM */
1625 #if defined __STDC__ || defined __cplusplus
1630 #endif /* ! YYPARSE_PARAM */
1634 /* The look-ahead symbol. */
1637 /* The semantic value of the look-ahead symbol. */
1640 /* Number of syntax errors so far. */
1649 #ifdef YYPARSE_PARAM
1650 #if (defined __STDC__ || defined __C99__FUNC__ \
1651 || defined __cplusplus || defined _MSC_VER)
1653 yyparse (void *YYPARSE_PARAM)
1656 yyparse (YYPARSE_PARAM)
1657 void *YYPARSE_PARAM;
1659 #else /* ! YYPARSE_PARAM */
1660 #if (defined __STDC__ || defined __C99__FUNC__ \
1661 || defined __cplusplus || defined _MSC_VER)
1675 /* Number of tokens to shift before error messages enabled. */
1677 /* Look-ahead token as an internal (translated) token number. */
1680 /* Buffer for error messages, and its allocated size. */
1682 char *yymsg = yymsgbuf;
1683 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1686 /* Three stacks and their tools:
1687 `yyss': related to states,
1688 `yyvs': related to semantic values,
1689 `yyls': related to locations.
1691 Refer to the stacks thru separate pointers, to allow yyoverflow
1692 to reallocate them elsewhere. */
1694 /* The state stack. */
1695 yytype_int16 yyssa[YYINITDEPTH];
1696 yytype_int16 *yyss = yyssa;
1697 yytype_int16 *yyssp;
1699 /* The semantic value stack. */
1700 YYSTYPE yyvsa[YYINITDEPTH];
1701 YYSTYPE *yyvs = yyvsa;
1706 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1708 YYSIZE_T yystacksize = YYINITDEPTH;
1710 /* The variables used to return semantic value and location from the
1715 /* The number of symbols on the RHS of the reduced rule.
1716 Keep to zero when no symbol should be popped. */
1719 YYDPRINTF ((stderr, "Starting parse\n"));
1724 yychar = YYEMPTY; /* Cause a token to be read. */
1726 /* Initialize stack pointers.
1727 Waste one element of value and location stack
1728 so that they stay on the same level as the state stack.
1729 The wasted elements are never initialized. */
1736 /*------------------------------------------------------------.
1737 | yynewstate -- Push a new state, which is found in yystate. |
1738 `------------------------------------------------------------*/
1740 /* In all cases, when you get here, the value and location stacks
1741 have just been pushed. So pushing a state here evens the stacks. */
1747 if (yyss + yystacksize - 1 <= yyssp)
1749 /* Get the current used size of the three stacks, in elements. */
1750 YYSIZE_T yysize = yyssp - yyss + 1;
1754 /* Give user a chance to reallocate the stack. Use copies of
1755 these so that the &'s don't force the real ones into
1757 YYSTYPE *yyvs1 = yyvs;
1758 yytype_int16 *yyss1 = yyss;
1761 /* Each stack pointer address is followed by the size of the
1762 data in use in that stack, in bytes. This used to be a
1763 conditional around just the two extra args, but that might
1764 be undefined if yyoverflow is a macro. */
1765 yyoverflow (YY_("memory exhausted"),
1766 &yyss1, yysize * sizeof (*yyssp),
1767 &yyvs1, yysize * sizeof (*yyvsp),
1774 #else /* no yyoverflow */
1775 # ifndef YYSTACK_RELOCATE
1776 goto yyexhaustedlab;
1778 /* Extend the stack our own way. */
1779 if (YYMAXDEPTH <= yystacksize)
1780 goto yyexhaustedlab;
1782 if (YYMAXDEPTH < yystacksize)
1783 yystacksize = YYMAXDEPTH;
1786 yytype_int16 *yyss1 = yyss;
1787 union yyalloc *yyptr =
1788 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1790 goto yyexhaustedlab;
1791 YYSTACK_RELOCATE (yyss);
1792 YYSTACK_RELOCATE (yyvs);
1794 # undef YYSTACK_RELOCATE
1796 YYSTACK_FREE (yyss1);
1799 #endif /* no yyoverflow */
1801 yyssp = yyss + yysize - 1;
1802 yyvsp = yyvs + yysize - 1;
1805 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1806 (unsigned long int) yystacksize));
1808 if (yyss + yystacksize - 1 <= yyssp)
1812 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1821 /* Do appropriate processing given the current state. Read a
1822 look-ahead token if we need one and don't already have one. */
1824 /* First try to decide what to do without reference to look-ahead token. */
1825 yyn = yypact[yystate];
1826 if (yyn == YYPACT_NINF)
1829 /* Not known => get a look-ahead token if don't already have one. */
1831 /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
1832 if (yychar == YYEMPTY)
1834 YYDPRINTF ((stderr, "Reading a token: "));
1838 if (yychar <= YYEOF)
1840 yychar = yytoken = YYEOF;
1841 YYDPRINTF ((stderr, "Now at end of input.\n"));
1845 yytoken = YYTRANSLATE (yychar);
1846 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1849 /* If the proper action on seeing token YYTOKEN is to reduce or to
1850 detect an error, take that action. */
1852 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1857 if (yyn == 0 || yyn == YYTABLE_NINF)
1866 /* Count tokens shifted since error; after three, turn off error
1871 /* Shift the look-ahead token. */
1872 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1874 /* Discard the shifted token unless it is eof. */
1875 if (yychar != YYEOF)
1884 /*-----------------------------------------------------------.
1885 | yydefault -- do the default action for the current state. |
1886 `-----------------------------------------------------------*/
1888 yyn = yydefact[yystate];
1894 /*-----------------------------.
1895 | yyreduce -- Do a reduction. |
1896 `-----------------------------*/
1898 /* yyn is the number of a rule to reduce with. */
1901 /* If YYLEN is nonzero, implement the default value of the action:
1904 Otherwise, the following line sets YYVAL to garbage.
1905 This behavior is undocumented and Bison
1906 users should not rely upon it. Assigning to YYVAL
1907 unconditionally makes the parser a bit smaller, and it avoids a
1908 GCC warning that YYVAL may be used uninitialized. */
1909 yyval = yyvsp[1-yylen];
1912 YY_REDUCE_PRINT (yyn);
1918 fta_parse_result->parse_tree_list = (yyvsp[(1) - (1)].q_list);
1919 fta_parse_result->tables = NULL;
1920 fta_parse_result->parse_type = QUERY_PARSE;
1927 fta_parse_result->parse_tree_list = NULL;
1928 fta_parse_result->fta_parse_tree = NULL;
1929 fta_parse_result->tables = (yyvsp[(1) - (1)].table_list_schema);
1930 fta_parse_result->parse_type = TABLE_PARSE;
1937 fta_parse_result->parse_tree_list = NULL;
1938 fta_parse_result->fta_parse_tree = (yyvsp[(4) - (5)].tblp);
1939 fta_parse_result->tables = (yyvsp[(3) - (5)].table_list_schema);
1940 fta_parse_result->parse_type = STREAM_PARSE;
1947 (yyvsp[(3) - (3)].tblp)->add_nmap((yyvsp[(1) - (3)].var_defs)); // Memory leak : plug it.
1948 (yyvsp[(3) - (3)].tblp)->add_param_list((yyvsp[(2) - (3)].var_defs)); // Memory leak : plug it.
1949 (yyval.tblp) = (yyvsp[(3) - (3)].tblp);
1956 (yyvsp[(3) - (3)].tblp)->add_nmap((yyvsp[(2) - (3)].var_defs)); // Memory leak : plug it.
1957 (yyvsp[(3) - (3)].tblp)->add_param_list((yyvsp[(1) - (3)].var_defs)); // Memory leak : plug it.
1958 (yyval.tblp) = (yyvsp[(3) - (3)].tblp);
1965 (yyvsp[(2) - (2)].tblp)->add_nmap(NULL); // Memory leak : plug it.
1966 (yyvsp[(2) - (2)].tblp)->add_param_list((yyvsp[(1) - (2)].var_defs)); // Memory leak : plug it.
1967 (yyval.tblp) = (yyvsp[(2) - (2)].tblp);
1974 (yyvsp[(2) - (2)].tblp)->add_nmap((yyvsp[(1) - (2)].var_defs)); // Memory leak : plug it.
1975 (yyval.tblp) = (yyvsp[(2) - (2)].tblp);
1982 (yyval.tblp) = (yyvsp[(1) - (1)].tblp);
1989 (yyvsp[(3) - (3)].tblp)->add_nmap((yyvsp[(1) - (3)].var_defs)); // Memory leak : plug it.
1990 (yyvsp[(3) - (3)].tblp)->add_param_list((yyvsp[(2) - (3)].var_defs)); // Memory leak : plug it.
1991 (yyval.tblp) = (yyvsp[(3) - (3)].tblp);
1998 (yyvsp[(3) - (3)].tblp)->add_nmap((yyvsp[(2) - (3)].var_defs)); // Memory leak : plug it.
1999 (yyvsp[(3) - (3)].tblp)->add_param_list((yyvsp[(1) - (3)].var_defs)); // Memory leak : plug it.
2000 (yyval.tblp) = (yyvsp[(3) - (3)].tblp);
2007 (yyvsp[(2) - (2)].tblp)->add_param_list((yyvsp[(1) - (2)].var_defs)); // Memory leak : plug it.
2008 (yyval.tblp) = (yyvsp[(2) - (2)].tblp);
2015 (yyvsp[(2) - (2)].tblp)->add_nmap((yyvsp[(1) - (2)].var_defs)); // Memory leak : plug it.
2016 (yyval.tblp) = (yyvsp[(2) - (2)].tblp);
2023 (yyval.tblp) = (yyvsp[(1) - (1)].tblp);
2029 {(yyval.q_list) = new query_list_t((yyvsp[(1) - (1)].tblp));;}
2034 {(yyval.q_list) = (yyvsp[(1) - (3)].q_list)->append((yyvsp[(3) - (3)].tblp));;}
2039 {(yyval.var_defs)=(yyvsp[(3) - (4)].var_defs);;}
2044 {(yyval.var_defs)=NULL;;}
2049 {(yyval.var_defs)=(yyvsp[(3) - (4)].var_defs);fta_parse_defines=(yyvsp[(3) - (4)].var_defs);;}
2054 {(yyval.var_defs)=NULL;fta_parse_defines = NULL;;}
2059 {(yyval.var_defs) = new var_defs_t((yyvsp[(1) - (1)].var_pair));;}
2064 {(yyval.var_defs) = (yyvsp[(1) - (2)].var_defs)->add_var_pair((yyvsp[(2) - (2)].var_pair));;}
2069 {(yyval.var_pair) = new var_pair_t((yyvsp[(1) - (3)].strval),(yyvsp[(2) - (3)].strval));;}
2074 {(yyval.var_pair) = new var_pair_t((yyvsp[(1) - (3)].strval),(yyvsp[(2) - (3)].strval));;}
2079 {(yyval.tblp) = (yyvsp[(3) - (3)].tblp)->add_selection((yyvsp[(2) - (3)].select_listval));;}
2084 {(yyval.tblp) = new table_exp_t((yyvsp[(2) - (3)].clist),(yyvsp[(3) - (3)].tbl_list));;}
2089 {(yyval.tblp) = new table_exp_t((yyvsp[(2) - (5)].clist),(yyvsp[(4) - (5)].scalarval),(yyvsp[(5) - (5)].tbl_list));;}
2094 { (yyval.select_listval) = (yyvsp[(1) - (1)].select_listval);;}
2099 {(yyval.tblp)=new table_exp_t((yyvsp[(1) - (8)].tbl_list),(yyvsp[(2) - (8)].predp),(yyvsp[(3) - (8)].extended_gb_list),(yyvsp[(4) - (8)].clist),(yyvsp[(5) - (8)].predp),(yyvsp[(6) - (8)].predp),(yyvsp[(7) - (8)].predp), (yyvsp[(8) - (8)].predp));;}
2104 {(yyval.tbl_list) = (yyvsp[(2) - (2)].tbl_list); (yyval.tbl_list)->set_properties(-1);;}
2109 {(yyval.tbl_list) = (yyvsp[(3) - (3)].tbl_list); (yyval.tbl_list)->set_properties(INNER_JOIN_PROPERTY);;}
2114 {(yyval.tbl_list) = (yyvsp[(3) - (3)].tbl_list); (yyval.tbl_list)->set_properties(OUTER_JOIN_PROPERTY);;}
2119 {(yyval.tbl_list) = (yyvsp[(3) - (3)].tbl_list); (yyval.tbl_list)->set_properties(RIGHT_OUTER_JOIN_PROPERTY);;}
2124 {(yyval.tbl_list) = (yyvsp[(3) - (3)].tbl_list); (yyval.tbl_list)->set_properties(LEFT_OUTER_JOIN_PROPERTY);;}
2129 {(yyval.tbl_list) = (yyvsp[(8) - (8)].tbl_list); (yyval.tbl_list)->set_properties(FILTER_JOIN_PROPERTY); (yyval.tbl_list)->set_colref((yyvsp[(3) - (8)].colref)); (yyval.tbl_list)->set_temporal_range((yyvsp[(5) - (8)].strval));;}
2134 {(yyval.tbl_list) = new tablevar_list_t((yyvsp[(1) - (1)].table));;}
2139 {(yyval.tbl_list)= (yyvsp[(1) - (3)].tbl_list)->append_table((yyvsp[(3) - (3)].table));;}
2144 { (yyval.table) = (yyvsp[(1) - (1)].table);;}
2149 { (yyval.table)= (yyvsp[(1) - (2)].table)->set_range_var((yyvsp[(2) - (2)].strval));;}
2154 {(yyval.table) = new tablevar_t((yyvsp[(1) - (1)].stringval)->c_str());;}
2159 {(yyval.table) = new tablevar_t((yyvsp[(1) - (3)].strval),(yyvsp[(3) - (3)].stringval)->c_str(),0);;}
2164 {(yyval.table) = new tablevar_t((yyvsp[(1) - (5)].strval),(yyvsp[(3) - (5)].strval),(yyvsp[(5) - (5)].stringval)->c_str());;}
2169 {(yyval.table) = new tablevar_t((yyvsp[(1) - (5)].strval),(yyvsp[(3) - (5)].strval),(yyvsp[(5) - (5)].stringval)->c_str());;}
2174 {(yyval.table) = new tablevar_t((yyvsp[(2) - (5)].strval),(yyvsp[(5) - (5)].stringval)->c_str(),1);;}
2179 {(yyval.stringval) = new string_t((yyvsp[(1) - (1)].strval));;}
2184 {(yyval.stringval) = (yyval.stringval)->append("/",(yyvsp[(3) - (3)].strval));;}
2189 {(yyval.predp)=NULL;;}
2194 {(yyval.predp)=(yyvsp[(1) - (1)].predp);;}
2199 {(yyval.predp) = (yyvsp[(2) - (2)].predp);;}
2204 {(yyval.predp)=NULL;;}
2209 {(yyval.predp)=(yyvsp[(2) - (2)].predp); ;}
2214 {(yyval.predp)=NULL;;}
2219 {(yyval.predp)=(yyvsp[(2) - (2)].predp); ;}
2224 {(yyval.predp)=NULL;;}
2229 {(yyval.predp)=(yyvsp[(2) - (2)].predp); ;}
2234 {(yyval.predp)=NULL;;}
2239 {(yyval.predp)=(yyvsp[(1) - (1)].predp);;}
2244 {(yyval.predp) = (yyvsp[(2) - (2)].predp);;}
2249 {(yyval.predp)=new predicate_t("OR",(yyvsp[(1) - (3)].predp),(yyvsp[(3) - (3)].predp));;}
2254 {(yyval.predp)=new predicate_t("AND",(yyvsp[(1) - (3)].predp),(yyvsp[(3) - (3)].predp));;}
2259 {(yyval.predp) = new predicate_t("NOT", (yyvsp[(2) - (2)].predp) );;}
2264 {(yyval.predp) = (yyvsp[(2) - (3)].predp);;}
2269 {(yyval.predp) = (yyvsp[(1) - (1)].predp);;}
2274 { (yyval.predp)=(yyvsp[(1) - (1)].predp);;}
2279 { (yyval.predp) = (yyvsp[(1) - (1)].predp);;}
2284 {(yyval.predp) = predicate_t::make_paramless_fcn_predicate((yyvsp[(1) - (3)].strval)); ;}
2289 {(yyval.predp) = new predicate_t((yyvsp[(1) - (4)].strval), (yyvsp[(3) - (4)].se_listval)->get_se_list()); ;}
2294 {(yyval.predp) = new predicate_t((yyvsp[(1) - (3)].scalarval),(yyvsp[(2) - (3)].strval),(yyvsp[(3) - (3)].scalarval));;}
2299 { (yyval.predp) = new predicate_t((yyvsp[(1) - (5)].scalarval),(yyvsp[(4) - (5)].lit_l)); ;}
2304 {(yyval.lit_l) = new literal_list_t((yyvsp[(1) - (1)].litval));;}
2309 {(yyval.lit_l) = (yyvsp[(1) - (3)].lit_l)->append_literal((yyvsp[(3) - (3)].litval));;}
2314 { (yyval.scalarval)=new scalarexp_t("+",(yyvsp[(1) - (3)].scalarval),(yyvsp[(3) - (3)].scalarval));;}
2319 { (yyval.scalarval)=new scalarexp_t("-",(yyvsp[(1) - (3)].scalarval),(yyvsp[(3) - (3)].scalarval));;}
2324 { (yyval.scalarval)=new scalarexp_t("|",(yyvsp[(1) - (3)].scalarval),(yyvsp[(3) - (3)].scalarval));;}
2329 { (yyval.scalarval)=new scalarexp_t("*",(yyvsp[(1) - (3)].scalarval),(yyvsp[(3) - (3)].scalarval));;}
2334 { (yyval.scalarval)=new scalarexp_t("/",(yyvsp[(1) - (3)].scalarval),(yyvsp[(3) - (3)].scalarval));;}
2339 { (yyval.scalarval)=new scalarexp_t("&",(yyvsp[(1) - (3)].scalarval),(yyvsp[(3) - (3)].scalarval));;}
2344 { (yyval.scalarval)=new scalarexp_t("%",(yyvsp[(1) - (3)].scalarval),(yyvsp[(3) - (3)].scalarval));;}
2349 { (yyval.scalarval)=new scalarexp_t((yyvsp[(2) - (3)].strval),(yyvsp[(1) - (3)].scalarval),(yyvsp[(3) - (3)].scalarval));;}
2354 { (yyval.scalarval) = new scalarexp_t("+",(yyvsp[(2) - (2)].scalarval));;}
2359 { (yyval.scalarval) = new scalarexp_t("-",(yyvsp[(2) - (2)].scalarval));;}
2364 { (yyval.scalarval) = new scalarexp_t("!",(yyvsp[(2) - (2)].scalarval));;}
2369 { (yyval.scalarval) = new scalarexp_t("~",(yyvsp[(2) - (2)].scalarval));;}
2374 { (yyval.scalarval)= new scalarexp_t((yyvsp[(1) - (1)].litval));;}
2379 {(yyval.scalarval) = scalarexp_t::make_param_reference((yyvsp[(2) - (2)].strval));;}
2384 {(yyval.scalarval) = scalarexp_t::make_iface_param_reference((yyvsp[(1) - (1)].ifpref));;}
2389 { (yyval.scalarval) = new scalarexp_t((yyvsp[(1) - (1)].colref));;}
2394 {(yyval.scalarval) = (yyvsp[(2) - (3)].scalarval);;}
2399 { (yyval.scalarval) = scalarexp_t::make_star_aggr((yyvsp[(1) - (4)].strval)); ;}
2404 { (yyval.scalarval) = scalarexp_t::make_se_aggr((yyvsp[(1) - (4)].strval),(yyvsp[(3) - (4)].scalarval)); ;}
2409 {(yyval.scalarval) = new scalarexp_t((yyvsp[(1) - (4)].strval), (yyvsp[(3) - (4)].se_listval)->get_se_list()); ;}
2414 {(yyval.scalarval) = scalarexp_t::make_paramless_fcn((yyvsp[(1) - (3)].strval)); ;}
2419 { (yyval.scalarval) = scalarexp_t::make_star_aggr((yyvsp[(1) - (5)].strval)); (yyval.scalarval)->set_superaggr(true); ;}
2424 { (yyval.scalarval) = scalarexp_t::make_se_aggr((yyvsp[(1) - (5)].strval),(yyvsp[(4) - (5)].scalarval)); (yyval.scalarval)->set_superaggr(true); ;}
2429 {(yyval.scalarval) = new scalarexp_t((yyvsp[(1) - (5)].strval), (yyvsp[(4) - (5)].se_listval)->get_se_list()); (yyval.scalarval)->set_superaggr(true); ;}
2434 {(yyval.scalarval) = scalarexp_t::make_paramless_fcn((yyvsp[(1) - (4)].strval)); (yyval.scalarval)->set_superaggr(true); ;}
2439 { (yyval.select_listval)= new select_list_t((yyvsp[(1) - (1)].scalarval)); ;}
2444 { (yyval.select_listval)= new select_list_t((yyvsp[(1) - (3)].scalarval),(yyvsp[(3) - (3)].strval)); ;}
2449 { (yyval.select_listval)=(yyvsp[(1) - (3)].select_listval)->append((yyvsp[(3) - (3)].scalarval)); ;}
2454 { (yyval.select_listval)=(yyvsp[(1) - (5)].select_listval)->append((yyvsp[(3) - (5)].scalarval),(yyvsp[(5) - (5)].strval)); ;}
2459 { (yyval.se_listval)= new se_list_t((yyvsp[(1) - (1)].scalarval)); ;}
2464 { (yyval.se_listval)=(yyvsp[(1) - (3)].se_listval)->append((yyvsp[(3) - (3)].scalarval)); ;}
2469 {(yyval.litval) = new literal_t((yyvsp[(1) - (1)].strval),LITERAL_STRING);;}
2474 {(yyval.litval) = new literal_t((yyvsp[(1) - (1)].strval),LITERAL_INT);;}
2479 {(yyval.litval) = new literal_t((yyvsp[(1) - (1)].strval),LITERAL_LONGINT);;}
2484 {(yyval.litval) = new literal_t((yyvsp[(1) - (1)].strval),LITERAL_FLOAT);;}
2489 {(yyval.litval) = new literal_t("TRUE",LITERAL_BOOL);;}
2494 {(yyval.litval) = new literal_t("FALSE",LITERAL_BOOL);;}
2499 {(yyval.litval) = new literal_t((yyvsp[(2) - (2)].strval),LITERAL_TIMEVAL);;}
2504 {(yyval.litval) = new literal_t((yyvsp[(2) - (2)].strval),LITERAL_HEX);;}
2509 {(yyval.litval) = new literal_t((yyvsp[(2) - (2)].strval),LITERAL_LONGHEX);;}
2514 {(yyval.litval) = new literal_t((yyvsp[(2) - (2)].strval),LITERAL_IP);;}
2519 {(yyval.litval) = new literal_t((yyvsp[(2) - (2)].strval),LITERAL_IPV6);;}
2524 {(yyval.litval) = literal_t::make_define_literal((yyvsp[(2) - (2)].strval),fta_parse_defines);;}
2529 {(yyval.extended_gb_list) = NULL;;}
2534 {(yyval.extended_gb_list) = (yyvsp[(3) - (3)].extended_gb_list);;}
2539 {(yyval.clist) = NULL;;}
2544 {(yyval.clist) = (yyvsp[(2) - (2)].clist);;}
2549 { (yyval.list_of_gb_list) = new list_of_gb_list_t((yyvsp[(2) - (3)].gb_list));;}
2554 {(yyval.list_of_gb_list) = (yyvsp[(1) - (5)].list_of_gb_list)->append((yyvsp[(4) - (5)].gb_list));;}
2559 {(yyval.extended_gb) = extended_gb_t::create_from_gb((yyvsp[(1) - (1)].gb_val));;}
2564 {(yyval.extended_gb) = extended_gb_t::extended_create_from_rollup((yyvsp[(3) - (4)].gb_list));;}
2569 {(yyval.extended_gb) = extended_gb_t::extended_create_from_cube((yyvsp[(3) - (4)].gb_list));;}
2574 {(yyval.extended_gb) = extended_gb_t::extended_create_from_gsets((yyvsp[(3) - (4)].list_of_gb_list));;}
2579 { (yyval.extended_gb_list) = new extended_gb_list_t((yyvsp[(1) - (1)].extended_gb));;}
2584 { (yyval.extended_gb_list)=(yyvsp[(1) - (3)].extended_gb_list)->append((yyvsp[(3) - (3)].extended_gb));;}
2589 { (yyval.gb_list) = new gb_list_t((yyvsp[(1) - (1)].gb_val));;}
2594 { (yyval.gb_list)=(yyvsp[(1) - (3)].gb_list)->append((yyvsp[(3) - (3)].gb_val));;}
2599 {(yyval.gb_val) = new gb_t((yyvsp[(1) - (1)].strval)); ;}
2604 {(yyval.gb_val) = new gb_t((yyvsp[(1) - (3)].strval),(yyvsp[(3) - (3)].strval)); ;}
2609 {(yyval.gb_val) = new gb_t((yyvsp[(1) - (5)].strval),(yyvsp[(3) - (5)].strval),(yyvsp[(5) - (5)].strval)); ;}
2614 {(yyval.gb_val) = new gb_t((yyvsp[(1) - (3)].scalarval),(yyvsp[(3) - (3)].strval)); ;}
2619 {(yyval.ifpref) = new ifpref_t((yyvsp[(2) - (2)].strval));;}
2624 {(yyval.ifpref) = new ifpref_t((yyvsp[(1) - (4)].strval), (yyvsp[(4) - (4)].strval));;}
2629 {(yyval.colref) = new colref_t((yyvsp[(1) - (1)].strval)); ;}
2634 {(yyval.colref) = new colref_t((yyvsp[(1) - (3)].strval),(yyvsp[(3) - (3)].strval)); ;}
2639 {(yyval.colref) = new colref_t((yyvsp[(1) - (5)].strval),(yyvsp[(3) - (5)].strval),(yyvsp[(5) - (5)].strval)); ;}
2644 {(yyval.clist)=new colref_list_t((yyvsp[(1) - (3)].colref)); (yyval.clist)->append((yyvsp[(3) - (3)].colref));;}
2649 {(yyval.clist) = (yyvsp[(1) - (3)].clist)->append((yyvsp[(3) - (3)].colref));;}
2654 {(yyval.colref) = new colref_t((yyvsp[(1) - (1)].strval)); ;}
2659 {(yyval.clist)=new colref_list_t((yyvsp[(1) - (3)].colref)); (yyval.clist)->append((yyvsp[(3) - (3)].colref));;}
2664 {(yyval.clist) = (yyvsp[(1) - (3)].clist)->append((yyvsp[(3) - (3)].colref));;}
2669 {(yyval.table_list_schema) = new table_list((yyvsp[(1) - (1)].table_def_t));;}
2674 {(yyval.table_list_schema) = (yyvsp[(1) - (2)].table_list_schema)->append_table((yyvsp[(2) - (2)].table_def_t));;}
2680 (yyval.table_def_t)=new table_def((yyvsp[(2) - (7)].strval),(yyvsp[(3) - (7)].plist_t),(yyvsp[(4) - (7)].plist_t), (yyvsp[(6) - (7)].field_list_t), PROTOCOL_SCHEMA); delete (yyvsp[(6) - (7)].field_list_t);;}
2686 (yyval.table_def_t)=new table_def((yyvsp[(2) - (6)].stringval)->c_str(),(yyvsp[(3) - (6)].plist_t),NULL,(yyvsp[(5) - (6)].field_list_t), STREAM_SCHEMA); delete (yyvsp[(5) - (6)].field_list_t);;}
2692 (yyval.table_def_t) = new table_def((yyvsp[(2) - (16)].strval), (yyvsp[(5) - (16)].plist_t), (yyvsp[(8) - (16)].field_list_t), (yyvsp[(12) - (16)].subqueryspec_list_t), (yyvsp[(15) - (16)].plist_t)); ;}
2697 { (yyval.table_def_t) = new table_def((yyvsp[(3) - (4)].ufcnl)); ;}
2702 {(yyval.ufcnl) = new unpack_fcn_list((yyvsp[(1) - (1)].ufcn));;}
2707 {(yyval.ufcnl) = (yyvsp[(1) - (3)].ufcnl) -> append((yyvsp[(3) - (3)].ufcn));;}
2712 {(yyval.ufcn) = new unpack_fcn((yyvsp[(1) - (3)].strval),(yyvsp[(2) - (3)].strval),(yyvsp[(3) - (3)].strval));;}
2717 {(yyval.subqueryspec_list_t) = new subqueryspec_list((yyvsp[(1) - (1)].subq_spec_t));;}
2722 {(yyval.subqueryspec_list_t) = (yyvsp[(1) - (3)].subqueryspec_list_t)->append((yyvsp[(3) - (3)].subq_spec_t));;}
2727 {(yyval.subq_spec_t)=new subquery_spec((yyvsp[(1) - (4)].strval), (yyvsp[(3) - (4)].namevec_t)); delete (yyvsp[(3) - (4)].namevec_t);;}
2732 {(yyval.field_list_t) = new field_entry_list((yyvsp[(1) - (1)].field_t));;}
2737 {(yyval.field_list_t) = (yyvsp[(1) - (2)].field_list_t)->append_field((yyvsp[(2) - (2)].field_t));;}
2742 {(yyval.field_t) = new field_entry((yyvsp[(1) - (6)].strval),(yyvsp[(2) - (6)].strval),(yyvsp[(3) - (6)].strval),(yyvsp[(4) - (6)].plist_t),(yyvsp[(5) - (6)].plist_t));;}
2747 {(yyval.field_t) = new field_entry((yyvsp[(1) - (4)].strval),(yyvsp[(2) - (4)].strval),"",(yyvsp[(3) - (4)].plist_t),NULL);;}
2752 {(yyval.plist_t) = NULL;;}
2757 {(yyval.plist_t) = (yyvsp[(2) - (3)].plist_t);;}
2762 {(yyval.plist_t) = new param_list((yyvsp[(1) - (1)].strval));;}
2767 {(yyval.plist_t) = new param_list((yyvsp[(1) - (2)].strval),(yyvsp[(2) - (2)].strval));;}
2772 {(yyval.plist_t) = new param_list((yyvsp[(1) - (2)].strval),(yyvsp[(2) - (2)].strval));;}
2777 {(yyval.plist_t) = new param_list((yyvsp[(1) - (2)].strval),(yyvsp[(2) - (2)].strval));;}
2782 {(yyval.plist_t) = (yyvsp[(1) - (3)].plist_t)->append((yyvsp[(3) - (3)].strval));;}
2787 {(yyval.plist_t) = (yyvsp[(1) - (4)].plist_t)->append((yyvsp[(3) - (4)].strval),(yyvsp[(4) - (4)].strval));;}
2792 {(yyval.plist_t) = (yyvsp[(1) - (4)].plist_t)->append((yyvsp[(3) - (4)].strval),(yyvsp[(4) - (4)].strval));;}
2797 {(yyval.plist_t) = (yyvsp[(1) - (4)].plist_t)->append((yyvsp[(3) - (4)].strval),(yyvsp[(4) - (4)].strval));;}
2802 {(yyval.plist_t) = NULL;;}
2807 {(yyval.plist_t) = (yyvsp[(2) - (3)].plist_t);;}
2812 {(yyval.plist_t) = NULL;;}
2817 {(yyval.plist_t) = (yyvsp[(2) - (3)].plist_t);;}
2822 {(yyval.plist_t) = new param_list((yyvsp[(1) - (1)].strval));;}
2827 {(yyval.plist_t) = (yyvsp[(1) - (3)].plist_t)->append((yyvsp[(3) - (3)].strval));;}
2832 {(yyval.namevec_t) = new name_vec((yyvsp[(1) - (3)].strval),(yyvsp[(2) - (3)].strval),(yyvsp[(3) - (3)].plist_t));;}
2837 {(yyval.namevec_t) = (yyvsp[(1) - (5)].namevec_t)->append((yyvsp[(3) - (5)].strval),(yyvsp[(4) - (5)].strval), (yyvsp[(5) - (5)].plist_t));;}
2841 /* Line 1267 of yacc.c. */
2842 #line 2843 "fta.tab.cc"
2845 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
2849 YY_STACK_PRINT (yyss, yyssp);
2854 /* Now `shift' the result of the reduction. Determine what state
2855 that goes to, based on the state we popped back to and the rule
2856 number reduced by. */
2860 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2861 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2862 yystate = yytable[yystate];
2864 yystate = yydefgoto[yyn - YYNTOKENS];
2869 /*------------------------------------.
2870 | yyerrlab -- here on detecting error |
2871 `------------------------------------*/
2873 /* If not already recovering from an error, report this error. */
2877 #if ! YYERROR_VERBOSE
2878 yyerror (YY_("syntax error"));
2881 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
2882 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
2884 YYSIZE_T yyalloc = 2 * yysize;
2885 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
2886 yyalloc = YYSTACK_ALLOC_MAXIMUM;
2887 if (yymsg != yymsgbuf)
2888 YYSTACK_FREE (yymsg);
2889 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
2891 yymsg_alloc = yyalloc;
2895 yymsg_alloc = sizeof yymsgbuf;
2899 if (0 < yysize && yysize <= yymsg_alloc)
2901 (void) yysyntax_error (yymsg, yystate, yychar);
2906 yyerror (YY_("syntax error"));
2908 goto yyexhaustedlab;
2916 if (yyerrstatus == 3)
2918 /* If just tried and failed to reuse look-ahead token after an
2919 error, discard it. */
2921 if (yychar <= YYEOF)
2923 /* Return failure if at end of input. */
2924 if (yychar == YYEOF)
2929 yydestruct ("Error: discarding",
2935 /* Else will try to reuse look-ahead token after shifting the error
2940 /*---------------------------------------------------.
2941 | yyerrorlab -- error raised explicitly by YYERROR. |
2942 `---------------------------------------------------*/
2945 /* Pacify compilers like GCC when the user code never invokes
2946 YYERROR and the label yyerrorlab therefore never appears in user
2948 if (/*CONSTCOND*/ 0)
2951 /* Do not reclaim the symbols of the rule which action triggered
2955 YY_STACK_PRINT (yyss, yyssp);
2960 /*-------------------------------------------------------------.
2961 | yyerrlab1 -- common code for both syntax error and YYERROR. |
2962 `-------------------------------------------------------------*/
2964 yyerrstatus = 3; /* Each real token shifted decrements this. */
2968 yyn = yypact[yystate];
2969 if (yyn != YYPACT_NINF)
2972 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2980 /* Pop the current state because it cannot handle the error token. */
2985 yydestruct ("Error: popping",
2986 yystos[yystate], yyvsp);
2989 YY_STACK_PRINT (yyss, yyssp);
2998 /* Shift the error token. */
2999 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3005 /*-------------------------------------.
3006 | yyacceptlab -- YYACCEPT comes here. |
3007 `-------------------------------------*/
3012 /*-----------------------------------.
3013 | yyabortlab -- YYABORT comes here. |
3014 `-----------------------------------*/
3020 /*-------------------------------------------------.
3021 | yyexhaustedlab -- memory exhaustion comes here. |
3022 `-------------------------------------------------*/
3024 yyerror (YY_("memory exhausted"));
3030 if (yychar != YYEOF && yychar != YYEMPTY)
3031 yydestruct ("Cleanup: discarding lookahead",
3033 /* Do not reclaim the symbols of the rule which action triggered
3034 this YYABORT or YYACCEPT. */
3036 YY_STACK_PRINT (yyss, yyssp);
3037 while (yyssp != yyss)
3039 yydestruct ("Cleanup: popping",
3040 yystos[*yyssp], yyvsp);
3045 YYSTACK_FREE (yyss);
3048 if (yymsg != yymsgbuf)
3049 YYSTACK_FREE (yymsg);
3051 /* Make sure YYID is used. */
3052 return YYID (yyresult);