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