1*287e80b3SSadaf Ebrahimi /* A Bison parser, made by GNU Bison 3.6.4. */
2*287e80b3SSadaf Ebrahimi
3*287e80b3SSadaf Ebrahimi /* Bison implementation for Yacc-like parsers in C
4*287e80b3SSadaf Ebrahimi
5*287e80b3SSadaf Ebrahimi Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
6*287e80b3SSadaf Ebrahimi Inc.
7*287e80b3SSadaf Ebrahimi
8*287e80b3SSadaf Ebrahimi This program is free software: you can redistribute it and/or modify
9*287e80b3SSadaf Ebrahimi it under the terms of the GNU General Public License as published by
10*287e80b3SSadaf Ebrahimi the Free Software Foundation, either version 3 of the License, or
11*287e80b3SSadaf Ebrahimi (at your option) any later version.
12*287e80b3SSadaf Ebrahimi
13*287e80b3SSadaf Ebrahimi This program is distributed in the hope that it will be useful,
14*287e80b3SSadaf Ebrahimi but WITHOUT ANY WARRANTY; without even the implied warranty of
15*287e80b3SSadaf Ebrahimi MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16*287e80b3SSadaf Ebrahimi GNU General Public License for more details.
17*287e80b3SSadaf Ebrahimi
18*287e80b3SSadaf Ebrahimi You should have received a copy of the GNU General Public License
19*287e80b3SSadaf Ebrahimi along with this program. If not, see <http://www.gnu.org/licenses/>. */
20*287e80b3SSadaf Ebrahimi
21*287e80b3SSadaf Ebrahimi /* As a special exception, you may create a larger work that contains
22*287e80b3SSadaf Ebrahimi part or all of the Bison parser skeleton and distribute that work
23*287e80b3SSadaf Ebrahimi under terms of your choice, so long as that work isn't itself a
24*287e80b3SSadaf Ebrahimi parser generator using the skeleton or a modified version thereof
25*287e80b3SSadaf Ebrahimi as a parser skeleton. Alternatively, if you modify or redistribute
26*287e80b3SSadaf Ebrahimi the parser skeleton itself, you may (at your option) remove this
27*287e80b3SSadaf Ebrahimi special exception, which will cause the skeleton and the resulting
28*287e80b3SSadaf Ebrahimi Bison output files to be licensed under the GNU General Public
29*287e80b3SSadaf Ebrahimi License without this special exception.
30*287e80b3SSadaf Ebrahimi
31*287e80b3SSadaf Ebrahimi This special exception was added by the Free Software Foundation in
32*287e80b3SSadaf Ebrahimi version 2.2 of Bison. */
33*287e80b3SSadaf Ebrahimi
34*287e80b3SSadaf Ebrahimi /* C LALR(1) parser skeleton written by Richard Stallman, by
35*287e80b3SSadaf Ebrahimi simplifying the original so-called "semantic" parser. */
36*287e80b3SSadaf Ebrahimi
37*287e80b3SSadaf Ebrahimi /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38*287e80b3SSadaf Ebrahimi especially those whose name start with YY_ or yy_. They are
39*287e80b3SSadaf Ebrahimi private implementation details that can be changed or removed. */
40*287e80b3SSadaf Ebrahimi
41*287e80b3SSadaf Ebrahimi /* All symbols defined below should begin with yy or YY, to avoid
42*287e80b3SSadaf Ebrahimi infringing on user name space. This should be done even for local
43*287e80b3SSadaf Ebrahimi variables, as they might otherwise be expanded by user macros.
44*287e80b3SSadaf Ebrahimi There are some unavoidable exceptions within include files to
45*287e80b3SSadaf Ebrahimi define necessary library symbols; they are noted "INFRINGES ON
46*287e80b3SSadaf Ebrahimi USER NAME SPACE" below. */
47*287e80b3SSadaf Ebrahimi
48*287e80b3SSadaf Ebrahimi /* Identify Bison output. */
49*287e80b3SSadaf Ebrahimi #define YYBISON 1
50*287e80b3SSadaf Ebrahimi
51*287e80b3SSadaf Ebrahimi /* Bison version. */
52*287e80b3SSadaf Ebrahimi #define YYBISON_VERSION "3.6.4"
53*287e80b3SSadaf Ebrahimi
54*287e80b3SSadaf Ebrahimi /* Skeleton name. */
55*287e80b3SSadaf Ebrahimi #define YYSKELETON_NAME "yacc.c"
56*287e80b3SSadaf Ebrahimi
57*287e80b3SSadaf Ebrahimi /* Pure parsers. */
58*287e80b3SSadaf Ebrahimi #define YYPURE 1
59*287e80b3SSadaf Ebrahimi
60*287e80b3SSadaf Ebrahimi /* Push parsers. */
61*287e80b3SSadaf Ebrahimi #define YYPUSH 0
62*287e80b3SSadaf Ebrahimi
63*287e80b3SSadaf Ebrahimi /* Pull parsers. */
64*287e80b3SSadaf Ebrahimi #define YYPULL 1
65*287e80b3SSadaf Ebrahimi
66*287e80b3SSadaf Ebrahimi /* Substitute the type names. */
67*287e80b3SSadaf Ebrahimi #define YYSTYPE TRACEFS_STYPE
68*287e80b3SSadaf Ebrahimi /* Substitute the variable and function names. */
69*287e80b3SSadaf Ebrahimi #define yyparse tracefs_parse
70*287e80b3SSadaf Ebrahimi #define yylex tracefs_lex
71*287e80b3SSadaf Ebrahimi #define yyerror tracefs_error
72*287e80b3SSadaf Ebrahimi #define yydebug tracefs_debug
73*287e80b3SSadaf Ebrahimi #define yynerrs tracefs_nerrs
74*287e80b3SSadaf Ebrahimi
75*287e80b3SSadaf Ebrahimi /* First part of user prologue. */
76*287e80b3SSadaf Ebrahimi #line 1 "sqlhist.y"
77*287e80b3SSadaf Ebrahimi
78*287e80b3SSadaf Ebrahimi #include <stdio.h>
79*287e80b3SSadaf Ebrahimi #include <stdlib.h>
80*287e80b3SSadaf Ebrahimi #include <string.h>
81*287e80b3SSadaf Ebrahimi #include <errno.h>
82*287e80b3SSadaf Ebrahimi
83*287e80b3SSadaf Ebrahimi #include "sqlhist-parse.h"
84*287e80b3SSadaf Ebrahimi
85*287e80b3SSadaf Ebrahimi #define scanner sb->scanner
86*287e80b3SSadaf Ebrahimi
87*287e80b3SSadaf Ebrahimi extern int yylex(YYSTYPE *yylval, void *);
88*287e80b3SSadaf Ebrahimi extern void yyerror(struct sqlhist_bison *, char *fmt, ...);
89*287e80b3SSadaf Ebrahimi
90*287e80b3SSadaf Ebrahimi #define CHECK_RETURN_PTR(x) \
91*287e80b3SSadaf Ebrahimi do { \
92*287e80b3SSadaf Ebrahimi if (!(x)) { \
93*287e80b3SSadaf Ebrahimi printf("FAILED MEMORY: %s\n", #x); \
94*287e80b3SSadaf Ebrahimi return -ENOMEM; \
95*287e80b3SSadaf Ebrahimi } \
96*287e80b3SSadaf Ebrahimi } while (0)
97*287e80b3SSadaf Ebrahimi
98*287e80b3SSadaf Ebrahimi #define CHECK_RETURN_VAL(x) \
99*287e80b3SSadaf Ebrahimi do { \
100*287e80b3SSadaf Ebrahimi if ((x) < 0) { \
101*287e80b3SSadaf Ebrahimi printf("FAILED MEMORY: %s\n", #x); \
102*287e80b3SSadaf Ebrahimi return -ENOMEM; \
103*287e80b3SSadaf Ebrahimi } \
104*287e80b3SSadaf Ebrahimi } while (0)
105*287e80b3SSadaf Ebrahimi
106*287e80b3SSadaf Ebrahimi
107*287e80b3SSadaf Ebrahimi #line 108 "sqlhist.tab.c"
108*287e80b3SSadaf Ebrahimi
109*287e80b3SSadaf Ebrahimi # ifndef YY_CAST
110*287e80b3SSadaf Ebrahimi # ifdef __cplusplus
111*287e80b3SSadaf Ebrahimi # define YY_CAST(Type, Val) static_cast<Type> (Val)
112*287e80b3SSadaf Ebrahimi # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
113*287e80b3SSadaf Ebrahimi # else
114*287e80b3SSadaf Ebrahimi # define YY_CAST(Type, Val) ((Type) (Val))
115*287e80b3SSadaf Ebrahimi # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
116*287e80b3SSadaf Ebrahimi # endif
117*287e80b3SSadaf Ebrahimi # endif
118*287e80b3SSadaf Ebrahimi # ifndef YY_NULLPTR
119*287e80b3SSadaf Ebrahimi # if defined __cplusplus
120*287e80b3SSadaf Ebrahimi # if 201103L <= __cplusplus
121*287e80b3SSadaf Ebrahimi # define YY_NULLPTR nullptr
122*287e80b3SSadaf Ebrahimi # else
123*287e80b3SSadaf Ebrahimi # define YY_NULLPTR 0
124*287e80b3SSadaf Ebrahimi # endif
125*287e80b3SSadaf Ebrahimi # else
126*287e80b3SSadaf Ebrahimi # define YY_NULLPTR ((void*)0)
127*287e80b3SSadaf Ebrahimi # endif
128*287e80b3SSadaf Ebrahimi # endif
129*287e80b3SSadaf Ebrahimi
130*287e80b3SSadaf Ebrahimi /* Use api.header.include to #include this header
131*287e80b3SSadaf Ebrahimi instead of duplicating it here. */
132*287e80b3SSadaf Ebrahimi #ifndef YY_TRACEFS_SQLHIST_TAB_H_INCLUDED
133*287e80b3SSadaf Ebrahimi # define YY_TRACEFS_SQLHIST_TAB_H_INCLUDED
134*287e80b3SSadaf Ebrahimi /* Debug traces. */
135*287e80b3SSadaf Ebrahimi #ifndef TRACEFS_DEBUG
136*287e80b3SSadaf Ebrahimi # if defined YYDEBUG
137*287e80b3SSadaf Ebrahimi #if YYDEBUG
138*287e80b3SSadaf Ebrahimi # define TRACEFS_DEBUG 1
139*287e80b3SSadaf Ebrahimi # else
140*287e80b3SSadaf Ebrahimi # define TRACEFS_DEBUG 0
141*287e80b3SSadaf Ebrahimi # endif
142*287e80b3SSadaf Ebrahimi # else /* ! defined YYDEBUG */
143*287e80b3SSadaf Ebrahimi # define TRACEFS_DEBUG 1
144*287e80b3SSadaf Ebrahimi # endif /* ! defined YYDEBUG */
145*287e80b3SSadaf Ebrahimi #endif /* ! defined TRACEFS_DEBUG */
146*287e80b3SSadaf Ebrahimi #if TRACEFS_DEBUG
147*287e80b3SSadaf Ebrahimi extern int tracefs_debug;
148*287e80b3SSadaf Ebrahimi #endif
149*287e80b3SSadaf Ebrahimi
150*287e80b3SSadaf Ebrahimi /* Token kinds. */
151*287e80b3SSadaf Ebrahimi #ifndef TRACEFS_TOKENTYPE
152*287e80b3SSadaf Ebrahimi # define TRACEFS_TOKENTYPE
153*287e80b3SSadaf Ebrahimi enum tracefs_tokentype
154*287e80b3SSadaf Ebrahimi {
155*287e80b3SSadaf Ebrahimi TRACEFS_EMPTY = -2,
156*287e80b3SSadaf Ebrahimi TRACEFS_EOF = 0, /* "end of file" */
157*287e80b3SSadaf Ebrahimi TRACEFS_error = 256, /* error */
158*287e80b3SSadaf Ebrahimi TRACEFS_UNDEF = 257, /* "invalid token" */
159*287e80b3SSadaf Ebrahimi AS = 258, /* AS */
160*287e80b3SSadaf Ebrahimi SELECT = 259, /* SELECT */
161*287e80b3SSadaf Ebrahimi FROM = 260, /* FROM */
162*287e80b3SSadaf Ebrahimi JOIN = 261, /* JOIN */
163*287e80b3SSadaf Ebrahimi ON = 262, /* ON */
164*287e80b3SSadaf Ebrahimi WHERE = 263, /* WHERE */
165*287e80b3SSadaf Ebrahimi PARSE_ERROR = 264, /* PARSE_ERROR */
166*287e80b3SSadaf Ebrahimi CAST = 265, /* CAST */
167*287e80b3SSadaf Ebrahimi NUMBER = 266, /* NUMBER */
168*287e80b3SSadaf Ebrahimi field_type = 267, /* field_type */
169*287e80b3SSadaf Ebrahimi STRING = 268, /* STRING */
170*287e80b3SSadaf Ebrahimi FIELD = 269, /* FIELD */
171*287e80b3SSadaf Ebrahimi LE = 270, /* LE */
172*287e80b3SSadaf Ebrahimi GE = 271, /* GE */
173*287e80b3SSadaf Ebrahimi EQ = 272, /* EQ */
174*287e80b3SSadaf Ebrahimi NEQ = 273, /* NEQ */
175*287e80b3SSadaf Ebrahimi AND = 274, /* AND */
176*287e80b3SSadaf Ebrahimi OR = 275 /* OR */
177*287e80b3SSadaf Ebrahimi };
178*287e80b3SSadaf Ebrahimi typedef enum tracefs_tokentype tracefs_token_kind_t;
179*287e80b3SSadaf Ebrahimi #endif
180*287e80b3SSadaf Ebrahimi
181*287e80b3SSadaf Ebrahimi /* Value type. */
182*287e80b3SSadaf Ebrahimi #if ! defined TRACEFS_STYPE && ! defined TRACEFS_STYPE_IS_DECLARED
183*287e80b3SSadaf Ebrahimi union TRACEFS_STYPE
184*287e80b3SSadaf Ebrahimi {
185*287e80b3SSadaf Ebrahimi #line 46 "sqlhist.y"
186*287e80b3SSadaf Ebrahimi
187*287e80b3SSadaf Ebrahimi int s32;
188*287e80b3SSadaf Ebrahimi char *string;
189*287e80b3SSadaf Ebrahimi long number;
190*287e80b3SSadaf Ebrahimi void *expr;
191*287e80b3SSadaf Ebrahimi
192*287e80b3SSadaf Ebrahimi #line 193 "sqlhist.tab.c"
193*287e80b3SSadaf Ebrahimi
194*287e80b3SSadaf Ebrahimi };
195*287e80b3SSadaf Ebrahimi typedef union TRACEFS_STYPE TRACEFS_STYPE;
196*287e80b3SSadaf Ebrahimi # define TRACEFS_STYPE_IS_TRIVIAL 1
197*287e80b3SSadaf Ebrahimi # define TRACEFS_STYPE_IS_DECLARED 1
198*287e80b3SSadaf Ebrahimi #endif
199*287e80b3SSadaf Ebrahimi
200*287e80b3SSadaf Ebrahimi
201*287e80b3SSadaf Ebrahimi
202*287e80b3SSadaf Ebrahimi int tracefs_parse (struct sqlhist_bison *sb);
203*287e80b3SSadaf Ebrahimi /* "%code provides" blocks. */
204*287e80b3SSadaf Ebrahimi #line 37 "sqlhist.y"
205*287e80b3SSadaf Ebrahimi
206*287e80b3SSadaf Ebrahimi #define YYSTYPE TRACEFS_STYPE
207*287e80b3SSadaf Ebrahimi #define yylex tracefs_lex
208*287e80b3SSadaf Ebrahimi #define yyerror tracefs_error
209*287e80b3SSadaf Ebrahimi
210*287e80b3SSadaf Ebrahimi #line 211 "sqlhist.tab.c"
211*287e80b3SSadaf Ebrahimi
212*287e80b3SSadaf Ebrahimi #endif /* !YY_TRACEFS_SQLHIST_TAB_H_INCLUDED */
213*287e80b3SSadaf Ebrahimi /* Symbol kind. */
214*287e80b3SSadaf Ebrahimi enum yysymbol_kind_t
215*287e80b3SSadaf Ebrahimi {
216*287e80b3SSadaf Ebrahimi YYSYMBOL_YYEMPTY = -2,
217*287e80b3SSadaf Ebrahimi YYSYMBOL_YYEOF = 0, /* "end of file" */
218*287e80b3SSadaf Ebrahimi YYSYMBOL_YYerror = 1, /* error */
219*287e80b3SSadaf Ebrahimi YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
220*287e80b3SSadaf Ebrahimi YYSYMBOL_AS = 3, /* AS */
221*287e80b3SSadaf Ebrahimi YYSYMBOL_SELECT = 4, /* SELECT */
222*287e80b3SSadaf Ebrahimi YYSYMBOL_FROM = 5, /* FROM */
223*287e80b3SSadaf Ebrahimi YYSYMBOL_JOIN = 6, /* JOIN */
224*287e80b3SSadaf Ebrahimi YYSYMBOL_ON = 7, /* ON */
225*287e80b3SSadaf Ebrahimi YYSYMBOL_WHERE = 8, /* WHERE */
226*287e80b3SSadaf Ebrahimi YYSYMBOL_PARSE_ERROR = 9, /* PARSE_ERROR */
227*287e80b3SSadaf Ebrahimi YYSYMBOL_CAST = 10, /* CAST */
228*287e80b3SSadaf Ebrahimi YYSYMBOL_NUMBER = 11, /* NUMBER */
229*287e80b3SSadaf Ebrahimi YYSYMBOL_field_type = 12, /* field_type */
230*287e80b3SSadaf Ebrahimi YYSYMBOL_STRING = 13, /* STRING */
231*287e80b3SSadaf Ebrahimi YYSYMBOL_FIELD = 14, /* FIELD */
232*287e80b3SSadaf Ebrahimi YYSYMBOL_LE = 15, /* LE */
233*287e80b3SSadaf Ebrahimi YYSYMBOL_GE = 16, /* GE */
234*287e80b3SSadaf Ebrahimi YYSYMBOL_EQ = 17, /* EQ */
235*287e80b3SSadaf Ebrahimi YYSYMBOL_NEQ = 18, /* NEQ */
236*287e80b3SSadaf Ebrahimi YYSYMBOL_AND = 19, /* AND */
237*287e80b3SSadaf Ebrahimi YYSYMBOL_OR = 20, /* OR */
238*287e80b3SSadaf Ebrahimi YYSYMBOL_21_ = 21, /* '+' */
239*287e80b3SSadaf Ebrahimi YYSYMBOL_22_ = 22, /* '-' */
240*287e80b3SSadaf Ebrahimi YYSYMBOL_23_ = 23, /* '*' */
241*287e80b3SSadaf Ebrahimi YYSYMBOL_24_ = 24, /* '/' */
242*287e80b3SSadaf Ebrahimi YYSYMBOL_25_ = 25, /* '<' */
243*287e80b3SSadaf Ebrahimi YYSYMBOL_26_ = 26, /* '>' */
244*287e80b3SSadaf Ebrahimi YYSYMBOL_27_ = 27, /* ',' */
245*287e80b3SSadaf Ebrahimi YYSYMBOL_28_ = 28, /* '(' */
246*287e80b3SSadaf Ebrahimi YYSYMBOL_29_ = 29, /* ')' */
247*287e80b3SSadaf Ebrahimi YYSYMBOL_30_ = 30, /* '=' */
248*287e80b3SSadaf Ebrahimi YYSYMBOL_31_ = 31, /* "!=" */
249*287e80b3SSadaf Ebrahimi YYSYMBOL_32_ = 32, /* '&' */
250*287e80b3SSadaf Ebrahimi YYSYMBOL_33_ = 33, /* '~' */
251*287e80b3SSadaf Ebrahimi YYSYMBOL_34_ = 34, /* '!' */
252*287e80b3SSadaf Ebrahimi YYSYMBOL_YYACCEPT = 35, /* $accept */
253*287e80b3SSadaf Ebrahimi YYSYMBOL_start = 36, /* start */
254*287e80b3SSadaf Ebrahimi YYSYMBOL_label = 37, /* label */
255*287e80b3SSadaf Ebrahimi YYSYMBOL_select = 38, /* select */
256*287e80b3SSadaf Ebrahimi YYSYMBOL_select_statement = 39, /* select_statement */
257*287e80b3SSadaf Ebrahimi YYSYMBOL_selection_list = 40, /* selection_list */
258*287e80b3SSadaf Ebrahimi YYSYMBOL_selection = 41, /* selection */
259*287e80b3SSadaf Ebrahimi YYSYMBOL_selection_expr = 42, /* selection_expr */
260*287e80b3SSadaf Ebrahimi YYSYMBOL_selection_addition = 43, /* selection_addition */
261*287e80b3SSadaf Ebrahimi YYSYMBOL_item = 44, /* item */
262*287e80b3SSadaf Ebrahimi YYSYMBOL_field = 45, /* field */
263*287e80b3SSadaf Ebrahimi YYSYMBOL_named_field = 46, /* named_field */
264*287e80b3SSadaf Ebrahimi YYSYMBOL_name = 47, /* name */
265*287e80b3SSadaf Ebrahimi YYSYMBOL_str_val = 48, /* str_val */
266*287e80b3SSadaf Ebrahimi YYSYMBOL_val = 49, /* val */
267*287e80b3SSadaf Ebrahimi YYSYMBOL_compare = 50, /* compare */
268*287e80b3SSadaf Ebrahimi YYSYMBOL_compare_and_or = 51, /* compare_and_or */
269*287e80b3SSadaf Ebrahimi YYSYMBOL_compare_items = 52, /* compare_items */
270*287e80b3SSadaf Ebrahimi YYSYMBOL_compare_cmds = 53, /* compare_cmds */
271*287e80b3SSadaf Ebrahimi YYSYMBOL_compare_list = 54, /* compare_list */
272*287e80b3SSadaf Ebrahimi YYSYMBOL_where_clause = 55, /* where_clause */
273*287e80b3SSadaf Ebrahimi YYSYMBOL_opt_where_clause = 56, /* opt_where_clause */
274*287e80b3SSadaf Ebrahimi YYSYMBOL_opt_join_clause = 57, /* opt_join_clause */
275*287e80b3SSadaf Ebrahimi YYSYMBOL_table_exp = 58, /* table_exp */
276*287e80b3SSadaf Ebrahimi YYSYMBOL_from_clause = 59, /* from_clause */
277*287e80b3SSadaf Ebrahimi YYSYMBOL_join_clause = 60, /* join_clause */
278*287e80b3SSadaf Ebrahimi YYSYMBOL_match = 61, /* match */
279*287e80b3SSadaf Ebrahimi YYSYMBOL_match_clause = 62 /* match_clause */
280*287e80b3SSadaf Ebrahimi };
281*287e80b3SSadaf Ebrahimi typedef enum yysymbol_kind_t yysymbol_kind_t;
282*287e80b3SSadaf Ebrahimi
283*287e80b3SSadaf Ebrahimi
284*287e80b3SSadaf Ebrahimi
285*287e80b3SSadaf Ebrahimi
286*287e80b3SSadaf Ebrahimi #ifdef short
287*287e80b3SSadaf Ebrahimi # undef short
288*287e80b3SSadaf Ebrahimi #endif
289*287e80b3SSadaf Ebrahimi
290*287e80b3SSadaf Ebrahimi /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
291*287e80b3SSadaf Ebrahimi <limits.h> and (if available) <stdint.h> are included
292*287e80b3SSadaf Ebrahimi so that the code can choose integer types of a good width. */
293*287e80b3SSadaf Ebrahimi
294*287e80b3SSadaf Ebrahimi #ifndef __PTRDIFF_MAX__
295*287e80b3SSadaf Ebrahimi # include <limits.h> /* INFRINGES ON USER NAME SPACE */
296*287e80b3SSadaf Ebrahimi # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
297*287e80b3SSadaf Ebrahimi # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
298*287e80b3SSadaf Ebrahimi # define YY_STDINT_H
299*287e80b3SSadaf Ebrahimi # endif
300*287e80b3SSadaf Ebrahimi #endif
301*287e80b3SSadaf Ebrahimi
302*287e80b3SSadaf Ebrahimi /* Narrow types that promote to a signed type and that can represent a
303*287e80b3SSadaf Ebrahimi signed or unsigned integer of at least N bits. In tables they can
304*287e80b3SSadaf Ebrahimi save space and decrease cache pressure. Promoting to a signed type
305*287e80b3SSadaf Ebrahimi helps avoid bugs in integer arithmetic. */
306*287e80b3SSadaf Ebrahimi
307*287e80b3SSadaf Ebrahimi #ifdef __INT_LEAST8_MAX__
308*287e80b3SSadaf Ebrahimi typedef __INT_LEAST8_TYPE__ yytype_int8;
309*287e80b3SSadaf Ebrahimi #elif defined YY_STDINT_H
310*287e80b3SSadaf Ebrahimi typedef int_least8_t yytype_int8;
311*287e80b3SSadaf Ebrahimi #else
312*287e80b3SSadaf Ebrahimi typedef signed char yytype_int8;
313*287e80b3SSadaf Ebrahimi #endif
314*287e80b3SSadaf Ebrahimi
315*287e80b3SSadaf Ebrahimi #ifdef __INT_LEAST16_MAX__
316*287e80b3SSadaf Ebrahimi typedef __INT_LEAST16_TYPE__ yytype_int16;
317*287e80b3SSadaf Ebrahimi #elif defined YY_STDINT_H
318*287e80b3SSadaf Ebrahimi typedef int_least16_t yytype_int16;
319*287e80b3SSadaf Ebrahimi #else
320*287e80b3SSadaf Ebrahimi typedef short yytype_int16;
321*287e80b3SSadaf Ebrahimi #endif
322*287e80b3SSadaf Ebrahimi
323*287e80b3SSadaf Ebrahimi #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
324*287e80b3SSadaf Ebrahimi typedef __UINT_LEAST8_TYPE__ yytype_uint8;
325*287e80b3SSadaf Ebrahimi #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
326*287e80b3SSadaf Ebrahimi && UINT_LEAST8_MAX <= INT_MAX)
327*287e80b3SSadaf Ebrahimi typedef uint_least8_t yytype_uint8;
328*287e80b3SSadaf Ebrahimi #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
329*287e80b3SSadaf Ebrahimi typedef unsigned char yytype_uint8;
330*287e80b3SSadaf Ebrahimi #else
331*287e80b3SSadaf Ebrahimi typedef short yytype_uint8;
332*287e80b3SSadaf Ebrahimi #endif
333*287e80b3SSadaf Ebrahimi
334*287e80b3SSadaf Ebrahimi #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
335*287e80b3SSadaf Ebrahimi typedef __UINT_LEAST16_TYPE__ yytype_uint16;
336*287e80b3SSadaf Ebrahimi #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
337*287e80b3SSadaf Ebrahimi && UINT_LEAST16_MAX <= INT_MAX)
338*287e80b3SSadaf Ebrahimi typedef uint_least16_t yytype_uint16;
339*287e80b3SSadaf Ebrahimi #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
340*287e80b3SSadaf Ebrahimi typedef unsigned short yytype_uint16;
341*287e80b3SSadaf Ebrahimi #else
342*287e80b3SSadaf Ebrahimi typedef int yytype_uint16;
343*287e80b3SSadaf Ebrahimi #endif
344*287e80b3SSadaf Ebrahimi
345*287e80b3SSadaf Ebrahimi #ifndef YYPTRDIFF_T
346*287e80b3SSadaf Ebrahimi # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
347*287e80b3SSadaf Ebrahimi # define YYPTRDIFF_T __PTRDIFF_TYPE__
348*287e80b3SSadaf Ebrahimi # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
349*287e80b3SSadaf Ebrahimi # elif defined PTRDIFF_MAX
350*287e80b3SSadaf Ebrahimi # ifndef ptrdiff_t
351*287e80b3SSadaf Ebrahimi # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
352*287e80b3SSadaf Ebrahimi # endif
353*287e80b3SSadaf Ebrahimi # define YYPTRDIFF_T ptrdiff_t
354*287e80b3SSadaf Ebrahimi # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
355*287e80b3SSadaf Ebrahimi # else
356*287e80b3SSadaf Ebrahimi # define YYPTRDIFF_T long
357*287e80b3SSadaf Ebrahimi # define YYPTRDIFF_MAXIMUM LONG_MAX
358*287e80b3SSadaf Ebrahimi # endif
359*287e80b3SSadaf Ebrahimi #endif
360*287e80b3SSadaf Ebrahimi
361*287e80b3SSadaf Ebrahimi #ifndef YYSIZE_T
362*287e80b3SSadaf Ebrahimi # ifdef __SIZE_TYPE__
363*287e80b3SSadaf Ebrahimi # define YYSIZE_T __SIZE_TYPE__
364*287e80b3SSadaf Ebrahimi # elif defined size_t
365*287e80b3SSadaf Ebrahimi # define YYSIZE_T size_t
366*287e80b3SSadaf Ebrahimi # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
367*287e80b3SSadaf Ebrahimi # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
368*287e80b3SSadaf Ebrahimi # define YYSIZE_T size_t
369*287e80b3SSadaf Ebrahimi # else
370*287e80b3SSadaf Ebrahimi # define YYSIZE_T unsigned
371*287e80b3SSadaf Ebrahimi # endif
372*287e80b3SSadaf Ebrahimi #endif
373*287e80b3SSadaf Ebrahimi
374*287e80b3SSadaf Ebrahimi #define YYSIZE_MAXIMUM \
375*287e80b3SSadaf Ebrahimi YY_CAST (YYPTRDIFF_T, \
376*287e80b3SSadaf Ebrahimi (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
377*287e80b3SSadaf Ebrahimi ? YYPTRDIFF_MAXIMUM \
378*287e80b3SSadaf Ebrahimi : YY_CAST (YYSIZE_T, -1)))
379*287e80b3SSadaf Ebrahimi
380*287e80b3SSadaf Ebrahimi #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
381*287e80b3SSadaf Ebrahimi
382*287e80b3SSadaf Ebrahimi
383*287e80b3SSadaf Ebrahimi /* Stored state numbers (used for stacks). */
384*287e80b3SSadaf Ebrahimi typedef yytype_int8 yy_state_t;
385*287e80b3SSadaf Ebrahimi
386*287e80b3SSadaf Ebrahimi /* State numbers in computations. */
387*287e80b3SSadaf Ebrahimi typedef int yy_state_fast_t;
388*287e80b3SSadaf Ebrahimi
389*287e80b3SSadaf Ebrahimi #ifndef YY_
390*287e80b3SSadaf Ebrahimi # if defined YYENABLE_NLS && YYENABLE_NLS
391*287e80b3SSadaf Ebrahimi # if ENABLE_NLS
392*287e80b3SSadaf Ebrahimi # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
393*287e80b3SSadaf Ebrahimi # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
394*287e80b3SSadaf Ebrahimi # endif
395*287e80b3SSadaf Ebrahimi # endif
396*287e80b3SSadaf Ebrahimi # ifndef YY_
397*287e80b3SSadaf Ebrahimi # define YY_(Msgid) Msgid
398*287e80b3SSadaf Ebrahimi # endif
399*287e80b3SSadaf Ebrahimi #endif
400*287e80b3SSadaf Ebrahimi
401*287e80b3SSadaf Ebrahimi
402*287e80b3SSadaf Ebrahimi #ifndef YY_ATTRIBUTE_PURE
403*287e80b3SSadaf Ebrahimi # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
404*287e80b3SSadaf Ebrahimi # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
405*287e80b3SSadaf Ebrahimi # else
406*287e80b3SSadaf Ebrahimi # define YY_ATTRIBUTE_PURE
407*287e80b3SSadaf Ebrahimi # endif
408*287e80b3SSadaf Ebrahimi #endif
409*287e80b3SSadaf Ebrahimi
410*287e80b3SSadaf Ebrahimi #ifndef YY_ATTRIBUTE_UNUSED
411*287e80b3SSadaf Ebrahimi # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
412*287e80b3SSadaf Ebrahimi # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
413*287e80b3SSadaf Ebrahimi # else
414*287e80b3SSadaf Ebrahimi # define YY_ATTRIBUTE_UNUSED
415*287e80b3SSadaf Ebrahimi # endif
416*287e80b3SSadaf Ebrahimi #endif
417*287e80b3SSadaf Ebrahimi
418*287e80b3SSadaf Ebrahimi /* Suppress unused-variable warnings by "using" E. */
419*287e80b3SSadaf Ebrahimi #if ! defined lint || defined __GNUC__
420*287e80b3SSadaf Ebrahimi # define YYUSE(E) ((void) (E))
421*287e80b3SSadaf Ebrahimi #else
422*287e80b3SSadaf Ebrahimi # define YYUSE(E) /* empty */
423*287e80b3SSadaf Ebrahimi #endif
424*287e80b3SSadaf Ebrahimi
425*287e80b3SSadaf Ebrahimi #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
426*287e80b3SSadaf Ebrahimi /* Suppress an incorrect diagnostic about yylval being uninitialized. */
427*287e80b3SSadaf Ebrahimi # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
428*287e80b3SSadaf Ebrahimi _Pragma ("GCC diagnostic push") \
429*287e80b3SSadaf Ebrahimi _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
430*287e80b3SSadaf Ebrahimi _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
431*287e80b3SSadaf Ebrahimi # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
432*287e80b3SSadaf Ebrahimi _Pragma ("GCC diagnostic pop")
433*287e80b3SSadaf Ebrahimi #else
434*287e80b3SSadaf Ebrahimi # define YY_INITIAL_VALUE(Value) Value
435*287e80b3SSadaf Ebrahimi #endif
436*287e80b3SSadaf Ebrahimi #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
437*287e80b3SSadaf Ebrahimi # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
438*287e80b3SSadaf Ebrahimi # define YY_IGNORE_MAYBE_UNINITIALIZED_END
439*287e80b3SSadaf Ebrahimi #endif
440*287e80b3SSadaf Ebrahimi #ifndef YY_INITIAL_VALUE
441*287e80b3SSadaf Ebrahimi # define YY_INITIAL_VALUE(Value) /* Nothing. */
442*287e80b3SSadaf Ebrahimi #endif
443*287e80b3SSadaf Ebrahimi
444*287e80b3SSadaf Ebrahimi #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
445*287e80b3SSadaf Ebrahimi # define YY_IGNORE_USELESS_CAST_BEGIN \
446*287e80b3SSadaf Ebrahimi _Pragma ("GCC diagnostic push") \
447*287e80b3SSadaf Ebrahimi _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
448*287e80b3SSadaf Ebrahimi # define YY_IGNORE_USELESS_CAST_END \
449*287e80b3SSadaf Ebrahimi _Pragma ("GCC diagnostic pop")
450*287e80b3SSadaf Ebrahimi #endif
451*287e80b3SSadaf Ebrahimi #ifndef YY_IGNORE_USELESS_CAST_BEGIN
452*287e80b3SSadaf Ebrahimi # define YY_IGNORE_USELESS_CAST_BEGIN
453*287e80b3SSadaf Ebrahimi # define YY_IGNORE_USELESS_CAST_END
454*287e80b3SSadaf Ebrahimi #endif
455*287e80b3SSadaf Ebrahimi
456*287e80b3SSadaf Ebrahimi
457*287e80b3SSadaf Ebrahimi #define YY_ASSERT(E) ((void) (0 && (E)))
458*287e80b3SSadaf Ebrahimi
459*287e80b3SSadaf Ebrahimi #if !defined yyoverflow
460*287e80b3SSadaf Ebrahimi
461*287e80b3SSadaf Ebrahimi /* The parser invokes alloca or malloc; define the necessary symbols. */
462*287e80b3SSadaf Ebrahimi
463*287e80b3SSadaf Ebrahimi # ifdef YYSTACK_USE_ALLOCA
464*287e80b3SSadaf Ebrahimi # if YYSTACK_USE_ALLOCA
465*287e80b3SSadaf Ebrahimi # ifdef __GNUC__
466*287e80b3SSadaf Ebrahimi # define YYSTACK_ALLOC __builtin_alloca
467*287e80b3SSadaf Ebrahimi # elif defined __BUILTIN_VA_ARG_INCR
468*287e80b3SSadaf Ebrahimi # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
469*287e80b3SSadaf Ebrahimi # elif defined _AIX
470*287e80b3SSadaf Ebrahimi # define YYSTACK_ALLOC __alloca
471*287e80b3SSadaf Ebrahimi # elif defined _MSC_VER
472*287e80b3SSadaf Ebrahimi # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
473*287e80b3SSadaf Ebrahimi # define alloca _alloca
474*287e80b3SSadaf Ebrahimi # else
475*287e80b3SSadaf Ebrahimi # define YYSTACK_ALLOC alloca
476*287e80b3SSadaf Ebrahimi # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
477*287e80b3SSadaf Ebrahimi # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
478*287e80b3SSadaf Ebrahimi /* Use EXIT_SUCCESS as a witness for stdlib.h. */
479*287e80b3SSadaf Ebrahimi # ifndef EXIT_SUCCESS
480*287e80b3SSadaf Ebrahimi # define EXIT_SUCCESS 0
481*287e80b3SSadaf Ebrahimi # endif
482*287e80b3SSadaf Ebrahimi # endif
483*287e80b3SSadaf Ebrahimi # endif
484*287e80b3SSadaf Ebrahimi # endif
485*287e80b3SSadaf Ebrahimi # endif
486*287e80b3SSadaf Ebrahimi
487*287e80b3SSadaf Ebrahimi # ifdef YYSTACK_ALLOC
488*287e80b3SSadaf Ebrahimi /* Pacify GCC's 'empty if-body' warning. */
489*287e80b3SSadaf Ebrahimi # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
490*287e80b3SSadaf Ebrahimi # ifndef YYSTACK_ALLOC_MAXIMUM
491*287e80b3SSadaf Ebrahimi /* The OS might guarantee only one guard page at the bottom of the stack,
492*287e80b3SSadaf Ebrahimi and a page size can be as small as 4096 bytes. So we cannot safely
493*287e80b3SSadaf Ebrahimi invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
494*287e80b3SSadaf Ebrahimi to allow for a few compiler-allocated temporary stack slots. */
495*287e80b3SSadaf Ebrahimi # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
496*287e80b3SSadaf Ebrahimi # endif
497*287e80b3SSadaf Ebrahimi # else
498*287e80b3SSadaf Ebrahimi # define YYSTACK_ALLOC YYMALLOC
499*287e80b3SSadaf Ebrahimi # define YYSTACK_FREE YYFREE
500*287e80b3SSadaf Ebrahimi # ifndef YYSTACK_ALLOC_MAXIMUM
501*287e80b3SSadaf Ebrahimi # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
502*287e80b3SSadaf Ebrahimi # endif
503*287e80b3SSadaf Ebrahimi # if (defined __cplusplus && ! defined EXIT_SUCCESS \
504*287e80b3SSadaf Ebrahimi && ! ((defined YYMALLOC || defined malloc) \
505*287e80b3SSadaf Ebrahimi && (defined YYFREE || defined free)))
506*287e80b3SSadaf Ebrahimi # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
507*287e80b3SSadaf Ebrahimi # ifndef EXIT_SUCCESS
508*287e80b3SSadaf Ebrahimi # define EXIT_SUCCESS 0
509*287e80b3SSadaf Ebrahimi # endif
510*287e80b3SSadaf Ebrahimi # endif
511*287e80b3SSadaf Ebrahimi # ifndef YYMALLOC
512*287e80b3SSadaf Ebrahimi # define YYMALLOC malloc
513*287e80b3SSadaf Ebrahimi # if ! defined malloc && ! defined EXIT_SUCCESS
514*287e80b3SSadaf Ebrahimi void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
515*287e80b3SSadaf Ebrahimi # endif
516*287e80b3SSadaf Ebrahimi # endif
517*287e80b3SSadaf Ebrahimi # ifndef YYFREE
518*287e80b3SSadaf Ebrahimi # define YYFREE free
519*287e80b3SSadaf Ebrahimi # if ! defined free && ! defined EXIT_SUCCESS
520*287e80b3SSadaf Ebrahimi void free (void *); /* INFRINGES ON USER NAME SPACE */
521*287e80b3SSadaf Ebrahimi # endif
522*287e80b3SSadaf Ebrahimi # endif
523*287e80b3SSadaf Ebrahimi # endif
524*287e80b3SSadaf Ebrahimi #endif /* !defined yyoverflow */
525*287e80b3SSadaf Ebrahimi
526*287e80b3SSadaf Ebrahimi #if (! defined yyoverflow \
527*287e80b3SSadaf Ebrahimi && (! defined __cplusplus \
528*287e80b3SSadaf Ebrahimi || (defined TRACEFS_STYPE_IS_TRIVIAL && TRACEFS_STYPE_IS_TRIVIAL)))
529*287e80b3SSadaf Ebrahimi
530*287e80b3SSadaf Ebrahimi /* A type that is properly aligned for any stack member. */
531*287e80b3SSadaf Ebrahimi union yyalloc
532*287e80b3SSadaf Ebrahimi {
533*287e80b3SSadaf Ebrahimi yy_state_t yyss_alloc;
534*287e80b3SSadaf Ebrahimi YYSTYPE yyvs_alloc;
535*287e80b3SSadaf Ebrahimi };
536*287e80b3SSadaf Ebrahimi
537*287e80b3SSadaf Ebrahimi /* The size of the maximum gap between one aligned stack and the next. */
538*287e80b3SSadaf Ebrahimi # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
539*287e80b3SSadaf Ebrahimi
540*287e80b3SSadaf Ebrahimi /* The size of an array large to enough to hold all stacks, each with
541*287e80b3SSadaf Ebrahimi N elements. */
542*287e80b3SSadaf Ebrahimi # define YYSTACK_BYTES(N) \
543*287e80b3SSadaf Ebrahimi ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
544*287e80b3SSadaf Ebrahimi + YYSTACK_GAP_MAXIMUM)
545*287e80b3SSadaf Ebrahimi
546*287e80b3SSadaf Ebrahimi # define YYCOPY_NEEDED 1
547*287e80b3SSadaf Ebrahimi
548*287e80b3SSadaf Ebrahimi /* Relocate STACK from its old location to the new one. The
549*287e80b3SSadaf Ebrahimi local variables YYSIZE and YYSTACKSIZE give the old and new number of
550*287e80b3SSadaf Ebrahimi elements in the stack, and YYPTR gives the new location of the
551*287e80b3SSadaf Ebrahimi stack. Advance YYPTR to a properly aligned location for the next
552*287e80b3SSadaf Ebrahimi stack. */
553*287e80b3SSadaf Ebrahimi # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
554*287e80b3SSadaf Ebrahimi do \
555*287e80b3SSadaf Ebrahimi { \
556*287e80b3SSadaf Ebrahimi YYPTRDIFF_T yynewbytes; \
557*287e80b3SSadaf Ebrahimi YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
558*287e80b3SSadaf Ebrahimi Stack = &yyptr->Stack_alloc; \
559*287e80b3SSadaf Ebrahimi yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
560*287e80b3SSadaf Ebrahimi yyptr += yynewbytes / YYSIZEOF (*yyptr); \
561*287e80b3SSadaf Ebrahimi } \
562*287e80b3SSadaf Ebrahimi while (0)
563*287e80b3SSadaf Ebrahimi
564*287e80b3SSadaf Ebrahimi #endif
565*287e80b3SSadaf Ebrahimi
566*287e80b3SSadaf Ebrahimi #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
567*287e80b3SSadaf Ebrahimi /* Copy COUNT objects from SRC to DST. The source and destination do
568*287e80b3SSadaf Ebrahimi not overlap. */
569*287e80b3SSadaf Ebrahimi # ifndef YYCOPY
570*287e80b3SSadaf Ebrahimi # if defined __GNUC__ && 1 < __GNUC__
571*287e80b3SSadaf Ebrahimi # define YYCOPY(Dst, Src, Count) \
572*287e80b3SSadaf Ebrahimi __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
573*287e80b3SSadaf Ebrahimi # else
574*287e80b3SSadaf Ebrahimi # define YYCOPY(Dst, Src, Count) \
575*287e80b3SSadaf Ebrahimi do \
576*287e80b3SSadaf Ebrahimi { \
577*287e80b3SSadaf Ebrahimi YYPTRDIFF_T yyi; \
578*287e80b3SSadaf Ebrahimi for (yyi = 0; yyi < (Count); yyi++) \
579*287e80b3SSadaf Ebrahimi (Dst)[yyi] = (Src)[yyi]; \
580*287e80b3SSadaf Ebrahimi } \
581*287e80b3SSadaf Ebrahimi while (0)
582*287e80b3SSadaf Ebrahimi # endif
583*287e80b3SSadaf Ebrahimi # endif
584*287e80b3SSadaf Ebrahimi #endif /* !YYCOPY_NEEDED */
585*287e80b3SSadaf Ebrahimi
586*287e80b3SSadaf Ebrahimi /* YYFINAL -- State number of the termination state. */
587*287e80b3SSadaf Ebrahimi #define YYFINAL 5
588*287e80b3SSadaf Ebrahimi /* YYLAST -- Last index in YYTABLE. */
589*287e80b3SSadaf Ebrahimi #define YYLAST 104
590*287e80b3SSadaf Ebrahimi
591*287e80b3SSadaf Ebrahimi /* YYNTOKENS -- Number of terminals. */
592*287e80b3SSadaf Ebrahimi #define YYNTOKENS 35
593*287e80b3SSadaf Ebrahimi /* YYNNTS -- Number of nonterminals. */
594*287e80b3SSadaf Ebrahimi #define YYNNTS 28
595*287e80b3SSadaf Ebrahimi /* YYNRULES -- Number of rules. */
596*287e80b3SSadaf Ebrahimi #define YYNRULES 61
597*287e80b3SSadaf Ebrahimi /* YYNSTATES -- Number of states. */
598*287e80b3SSadaf Ebrahimi #define YYNSTATES 111
599*287e80b3SSadaf Ebrahimi
600*287e80b3SSadaf Ebrahimi #define YYMAXUTOK 276
601*287e80b3SSadaf Ebrahimi
602*287e80b3SSadaf Ebrahimi
603*287e80b3SSadaf Ebrahimi /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
604*287e80b3SSadaf Ebrahimi as returned by yylex, with out-of-bounds checking. */
605*287e80b3SSadaf Ebrahimi #define YYTRANSLATE(YYX) \
606*287e80b3SSadaf Ebrahimi (0 <= (YYX) && (YYX) <= YYMAXUTOK \
607*287e80b3SSadaf Ebrahimi ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
608*287e80b3SSadaf Ebrahimi : YYSYMBOL_YYUNDEF)
609*287e80b3SSadaf Ebrahimi
610*287e80b3SSadaf Ebrahimi /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
611*287e80b3SSadaf Ebrahimi as returned by yylex. */
612*287e80b3SSadaf Ebrahimi static const yytype_int8 yytranslate[] =
613*287e80b3SSadaf Ebrahimi {
614*287e80b3SSadaf Ebrahimi 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
615*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
616*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
617*287e80b3SSadaf Ebrahimi 2, 2, 2, 34, 2, 2, 2, 2, 32, 2,
618*287e80b3SSadaf Ebrahimi 28, 29, 23, 21, 27, 22, 2, 24, 2, 2,
619*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
620*287e80b3SSadaf Ebrahimi 25, 30, 26, 2, 2, 2, 2, 2, 2, 2,
621*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
622*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
623*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
624*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
625*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
626*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 33, 2, 2, 2,
627*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
628*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
629*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
630*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
631*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
632*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
633*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
634*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
635*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
636*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
637*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
638*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
639*287e80b3SSadaf Ebrahimi 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
640*287e80b3SSadaf Ebrahimi 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
641*287e80b3SSadaf Ebrahimi 15, 16, 17, 18, 19, 20, 31
642*287e80b3SSadaf Ebrahimi };
643*287e80b3SSadaf Ebrahimi
644*287e80b3SSadaf Ebrahimi #if TRACEFS_DEBUG
645*287e80b3SSadaf Ebrahimi /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
646*287e80b3SSadaf Ebrahimi static const yytype_uint8 yyrline[] =
647*287e80b3SSadaf Ebrahimi {
648*287e80b3SSadaf Ebrahimi 0, 75, 75, 78, 79, 82, 86, 90, 91, 95,
649*287e80b3SSadaf Ebrahimi 99, 106, 107, 108, 109, 110, 117, 122, 130, 131,
650*287e80b3SSadaf Ebrahimi 135, 139, 143, 147, 151, 152, 157, 158, 159, 160,
651*287e80b3SSadaf Ebrahimi 161, 162, 163, 164, 165, 166, 170, 171, 172, 173,
652*287e80b3SSadaf Ebrahimi 174, 178, 179, 180, 181, 182, 186, 195, 196, 197,
653*287e80b3SSadaf Ebrahimi 201, 204, 206, 209, 211, 215, 219, 234, 238, 239,
654*287e80b3SSadaf Ebrahimi 244, 245
655*287e80b3SSadaf Ebrahimi };
656*287e80b3SSadaf Ebrahimi #endif
657*287e80b3SSadaf Ebrahimi
658*287e80b3SSadaf Ebrahimi /** Accessing symbol of state STATE. */
659*287e80b3SSadaf Ebrahimi #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
660*287e80b3SSadaf Ebrahimi
661*287e80b3SSadaf Ebrahimi #if TRACEFS_DEBUG || 0
662*287e80b3SSadaf Ebrahimi /* The user-facing name of the symbol whose (internal) number is
663*287e80b3SSadaf Ebrahimi YYSYMBOL. No bounds checking. */
664*287e80b3SSadaf Ebrahimi static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
665*287e80b3SSadaf Ebrahimi
666*287e80b3SSadaf Ebrahimi /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
667*287e80b3SSadaf Ebrahimi First, the terminals, then, starting at YYNTOKENS, nonterminals. */
668*287e80b3SSadaf Ebrahimi static const char *const yytname[] =
669*287e80b3SSadaf Ebrahimi {
670*287e80b3SSadaf Ebrahimi "\"end of file\"", "error", "\"invalid token\"", "AS", "SELECT", "FROM",
671*287e80b3SSadaf Ebrahimi "JOIN", "ON", "WHERE", "PARSE_ERROR", "CAST", "NUMBER", "field_type",
672*287e80b3SSadaf Ebrahimi "STRING", "FIELD", "LE", "GE", "EQ", "NEQ", "AND", "OR", "'+'", "'-'",
673*287e80b3SSadaf Ebrahimi "'*'", "'/'", "'<'", "'>'", "','", "'('", "')'", "'='", "\"!=\"", "'&'",
674*287e80b3SSadaf Ebrahimi "'~'", "'!'", "$accept", "start", "label", "select", "select_statement",
675*287e80b3SSadaf Ebrahimi "selection_list", "selection", "selection_expr", "selection_addition",
676*287e80b3SSadaf Ebrahimi "item", "field", "named_field", "name", "str_val", "val", "compare",
677*287e80b3SSadaf Ebrahimi "compare_and_or", "compare_items", "compare_cmds", "compare_list",
678*287e80b3SSadaf Ebrahimi "where_clause", "opt_where_clause", "opt_join_clause", "table_exp",
679*287e80b3SSadaf Ebrahimi "from_clause", "join_clause", "match", "match_clause", YY_NULLPTR
680*287e80b3SSadaf Ebrahimi };
681*287e80b3SSadaf Ebrahimi
682*287e80b3SSadaf Ebrahimi static const char *
yysymbol_name(yysymbol_kind_t yysymbol)683*287e80b3SSadaf Ebrahimi yysymbol_name (yysymbol_kind_t yysymbol)
684*287e80b3SSadaf Ebrahimi {
685*287e80b3SSadaf Ebrahimi return yytname[yysymbol];
686*287e80b3SSadaf Ebrahimi }
687*287e80b3SSadaf Ebrahimi #endif
688*287e80b3SSadaf Ebrahimi
689*287e80b3SSadaf Ebrahimi #ifdef YYPRINT
690*287e80b3SSadaf Ebrahimi /* YYTOKNUM[NUM] -- (External) token number corresponding to the
691*287e80b3SSadaf Ebrahimi (internal) symbol number NUM (which must be that of a token). */
692*287e80b3SSadaf Ebrahimi static const yytype_int16 yytoknum[] =
693*287e80b3SSadaf Ebrahimi {
694*287e80b3SSadaf Ebrahimi 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
695*287e80b3SSadaf Ebrahimi 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
696*287e80b3SSadaf Ebrahimi 275, 43, 45, 42, 47, 60, 62, 44, 40, 41,
697*287e80b3SSadaf Ebrahimi 61, 276, 38, 126, 33
698*287e80b3SSadaf Ebrahimi };
699*287e80b3SSadaf Ebrahimi #endif
700*287e80b3SSadaf Ebrahimi
701*287e80b3SSadaf Ebrahimi #define YYPACT_NINF (-58)
702*287e80b3SSadaf Ebrahimi
703*287e80b3SSadaf Ebrahimi #define yypact_value_is_default(Yyn) \
704*287e80b3SSadaf Ebrahimi ((Yyn) == YYPACT_NINF)
705*287e80b3SSadaf Ebrahimi
706*287e80b3SSadaf Ebrahimi #define YYTABLE_NINF (-1)
707*287e80b3SSadaf Ebrahimi
708*287e80b3SSadaf Ebrahimi #define yytable_value_is_error(Yyn) \
709*287e80b3SSadaf Ebrahimi 0
710*287e80b3SSadaf Ebrahimi
711*287e80b3SSadaf Ebrahimi /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
712*287e80b3SSadaf Ebrahimi STATE-NUM. */
713*287e80b3SSadaf Ebrahimi static const yytype_int8 yypact[] =
714*287e80b3SSadaf Ebrahimi {
715*287e80b3SSadaf Ebrahimi 4, -58, 13, 11, -58, -58, 5, -58, 43, 53,
716*287e80b3SSadaf Ebrahimi 45, 29, -58, 19, 43, 44, 32, 60, -58, 73,
717*287e80b3SSadaf Ebrahimi 11, 75, -58, -58, -58, 43, 43, 87, -58, -58,
718*287e80b3SSadaf Ebrahimi 29, -58, -58, -58, 60, 83, -58, -58, -58, -58,
719*287e80b3SSadaf Ebrahimi -58, 78, -58, 86, 14, -58, -58, 65, 60, -4,
720*287e80b3SSadaf Ebrahimi -12, 34, -58, 76, -15, -58, -58, -10, 68, -58,
721*287e80b3SSadaf Ebrahimi 1, -58, 18, -4, -58, 33, 33, 33, 33, 33,
722*287e80b3SSadaf Ebrahimi 33, 33, 33, 33, 84, 14, 14, 14, 60, 60,
723*287e80b3SSadaf Ebrahimi 60, -4, -58, -4, -4, -58, 49, -58, -58, -58,
724*287e80b3SSadaf Ebrahimi -58, -58, -58, -58, -58, -58, -58, -58, -58, -58,
725*287e80b3SSadaf Ebrahimi -58, -58, -58, -58, -58, -58, 51, -58, -58, -58,
726*287e80b3SSadaf Ebrahimi -58
727*287e80b3SSadaf Ebrahimi };
728*287e80b3SSadaf Ebrahimi
729*287e80b3SSadaf Ebrahimi /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
730*287e80b3SSadaf Ebrahimi Performed when YYTABLE does not specify something else to do. Zero
731*287e80b3SSadaf Ebrahimi means the default is an error. */
732*287e80b3SSadaf Ebrahimi static const yytype_int8 yydefact[] =
733*287e80b3SSadaf Ebrahimi {
734*287e80b3SSadaf Ebrahimi 0, 5, 0, 0, 2, 1, 0, 20, 0, 0,
735*287e80b3SSadaf Ebrahimi 7, 9, 13, 11, 0, 0, 0, 0, 6, 53,
736*287e80b3SSadaf Ebrahimi 0, 0, 22, 10, 4, 0, 0, 0, 14, 12,
737*287e80b3SSadaf Ebrahimi 20, 56, 19, 18, 0, 51, 54, 8, 3, 16,
738*287e80b3SSadaf Ebrahimi 17, 0, 21, 0, 0, 52, 55, 0, 0, 0,
739*287e80b3SSadaf Ebrahimi 0, 0, 45, 46, 47, 50, 15, 0, 60, 57,
740*287e80b3SSadaf Ebrahimi 0, 40, 0, 0, 44, 0, 0, 0, 0, 0,
741*287e80b3SSadaf Ebrahimi 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
742*287e80b3SSadaf Ebrahimi 0, 0, 39, 0, 0, 42, 0, 25, 23, 24,
743*287e80b3SSadaf Ebrahimi 28, 29, 31, 32, 26, 27, 30, 33, 34, 35,
744*287e80b3SSadaf Ebrahimi 41, 49, 48, 59, 58, 61, 0, 37, 36, 43,
745*287e80b3SSadaf Ebrahimi 38
746*287e80b3SSadaf Ebrahimi };
747*287e80b3SSadaf Ebrahimi
748*287e80b3SSadaf Ebrahimi /* YYPGOTO[NTERM-NUM]. */
749*287e80b3SSadaf Ebrahimi static const yytype_int8 yypgoto[] =
750*287e80b3SSadaf Ebrahimi {
751*287e80b3SSadaf Ebrahimi -58, -58, 69, -58, -58, 80, -58, -58, 90, -16,
752*287e80b3SSadaf Ebrahimi -3, -58, 81, 27, 15, -41, -57, 28, -58, -21,
753*287e80b3SSadaf Ebrahimi -58, -58, -58, -58, -58, -58, -58, 24
754*287e80b3SSadaf Ebrahimi };
755*287e80b3SSadaf Ebrahimi
756*287e80b3SSadaf Ebrahimi /* YYDEFGOTO[NTERM-NUM]. */
757*287e80b3SSadaf Ebrahimi static const yytype_int8 yydefgoto[] =
758*287e80b3SSadaf Ebrahimi {
759*287e80b3SSadaf Ebrahimi -1, 2, 23, 3, 4, 9, 10, 11, 12, 57,
760*287e80b3SSadaf Ebrahimi 51, 33, 24, 89, 90, 61, 62, 53, 54, 55,
761*287e80b3SSadaf Ebrahimi 45, 46, 35, 18, 19, 36, 58, 59
762*287e80b3SSadaf Ebrahimi };
763*287e80b3SSadaf Ebrahimi
764*287e80b3SSadaf Ebrahimi /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
765*287e80b3SSadaf Ebrahimi positive, shift that token. If negative, reduce the rule whose
766*287e80b3SSadaf Ebrahimi number is the opposite. If YYTABLE_NINF, syntax error. */
767*287e80b3SSadaf Ebrahimi static const yytype_int8 yytable[] =
768*287e80b3SSadaf Ebrahimi {
769*287e80b3SSadaf Ebrahimi 13, 31, 7, 52, 76, 16, 86, 78, 1, 64,
770*287e80b3SSadaf Ebrahimi 7, 27, 77, 5, 32, 7, 63, 13, 43, 82,
771*287e80b3SSadaf Ebrahimi 79, 6, 39, 40, 106, 7, 107, 108, 7, 81,
772*287e80b3SSadaf Ebrahimi 60, 32, 21, 14, 52, 52, 52, 83, 84, 8,
773*287e80b3SSadaf Ebrahimi 25, 26, 49, 22, 87, 32, 88, 85, 50, 65,
774*287e80b3SSadaf Ebrahimi 66, 67, 68, 25, 26, 101, 102, 7, 17, 69,
775*287e80b3SSadaf Ebrahimi 70, 29, 103, 104, 71, 72, 73, 74, 83, 84,
776*287e80b3SSadaf Ebrahimi 83, 84, 20, 28, 30, 32, 32, 32, 109, 34,
777*287e80b3SSadaf Ebrahimi 110, 91, 92, 93, 94, 95, 96, 97, 98, 22,
778*287e80b3SSadaf Ebrahimi 41, 44, 47, 48, 56, 80, 75, 88, 15, 42,
779*287e80b3SSadaf Ebrahimi 37, 99, 38, 100, 105
780*287e80b3SSadaf Ebrahimi };
781*287e80b3SSadaf Ebrahimi
782*287e80b3SSadaf Ebrahimi static const yytype_int8 yycheck[] =
783*287e80b3SSadaf Ebrahimi {
784*287e80b3SSadaf Ebrahimi 3, 17, 14, 44, 19, 8, 63, 17, 4, 50,
785*287e80b3SSadaf Ebrahimi 14, 14, 27, 0, 17, 14, 28, 20, 34, 60,
786*287e80b3SSadaf Ebrahimi 30, 10, 25, 26, 81, 14, 83, 84, 14, 28,
787*287e80b3SSadaf Ebrahimi 34, 34, 3, 28, 75, 76, 77, 19, 20, 28,
788*287e80b3SSadaf Ebrahimi 21, 22, 28, 14, 11, 48, 13, 29, 34, 15,
789*287e80b3SSadaf Ebrahimi 16, 17, 18, 21, 22, 76, 77, 14, 5, 25,
790*287e80b3SSadaf Ebrahimi 26, 29, 78, 79, 30, 31, 32, 33, 19, 20,
791*287e80b3SSadaf Ebrahimi 19, 20, 27, 29, 14, 78, 79, 80, 29, 6,
792*287e80b3SSadaf Ebrahimi 29, 66, 67, 68, 69, 70, 71, 72, 73, 14,
793*287e80b3SSadaf Ebrahimi 3, 8, 14, 7, 29, 27, 20, 13, 8, 30,
794*287e80b3SSadaf Ebrahimi 20, 74, 21, 75, 80
795*287e80b3SSadaf Ebrahimi };
796*287e80b3SSadaf Ebrahimi
797*287e80b3SSadaf Ebrahimi /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
798*287e80b3SSadaf Ebrahimi symbol of state STATE-NUM. */
799*287e80b3SSadaf Ebrahimi static const yytype_int8 yystos[] =
800*287e80b3SSadaf Ebrahimi {
801*287e80b3SSadaf Ebrahimi 0, 4, 36, 38, 39, 0, 10, 14, 28, 40,
802*287e80b3SSadaf Ebrahimi 41, 42, 43, 45, 28, 43, 45, 5, 58, 59,
803*287e80b3SSadaf Ebrahimi 27, 3, 14, 37, 47, 21, 22, 45, 29, 29,
804*287e80b3SSadaf Ebrahimi 14, 44, 45, 46, 6, 57, 60, 40, 47, 45,
805*287e80b3SSadaf Ebrahimi 45, 3, 37, 44, 8, 55, 56, 14, 7, 28,
806*287e80b3SSadaf Ebrahimi 34, 45, 50, 52, 53, 54, 29, 44, 61, 62,
807*287e80b3SSadaf Ebrahimi 34, 50, 51, 28, 50, 15, 16, 17, 18, 25,
808*287e80b3SSadaf Ebrahimi 26, 30, 31, 32, 33, 20, 19, 27, 17, 30,
809*287e80b3SSadaf Ebrahimi 27, 28, 50, 19, 20, 29, 51, 11, 13, 48,
810*287e80b3SSadaf Ebrahimi 49, 49, 49, 49, 49, 49, 49, 49, 49, 48,
811*287e80b3SSadaf Ebrahimi 52, 54, 54, 44, 44, 62, 51, 51, 51, 29,
812*287e80b3SSadaf Ebrahimi 29
813*287e80b3SSadaf Ebrahimi };
814*287e80b3SSadaf Ebrahimi
815*287e80b3SSadaf Ebrahimi /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
816*287e80b3SSadaf Ebrahimi static const yytype_int8 yyr1[] =
817*287e80b3SSadaf Ebrahimi {
818*287e80b3SSadaf Ebrahimi 0, 35, 36, 37, 37, 38, 39, 40, 40, 41,
819*287e80b3SSadaf Ebrahimi 41, 42, 42, 42, 42, 42, 43, 43, 44, 44,
820*287e80b3SSadaf Ebrahimi 45, 46, 47, 48, 49, 49, 50, 50, 50, 50,
821*287e80b3SSadaf Ebrahimi 50, 50, 50, 50, 50, 50, 51, 51, 51, 51,
822*287e80b3SSadaf Ebrahimi 51, 52, 52, 52, 52, 52, 53, 54, 54, 54,
823*287e80b3SSadaf Ebrahimi 55, 56, 56, 57, 57, 58, 59, 60, 61, 61,
824*287e80b3SSadaf Ebrahimi 62, 62
825*287e80b3SSadaf Ebrahimi };
826*287e80b3SSadaf Ebrahimi
827*287e80b3SSadaf Ebrahimi /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
828*287e80b3SSadaf Ebrahimi static const yytype_int8 yyr2[] =
829*287e80b3SSadaf Ebrahimi {
830*287e80b3SSadaf Ebrahimi 0, 2, 1, 2, 1, 1, 3, 1, 3, 1,
831*287e80b3SSadaf Ebrahimi 2, 1, 3, 1, 3, 6, 3, 3, 1, 1,
832*287e80b3SSadaf Ebrahimi 1, 2, 1, 1, 1, 1, 3, 3, 3, 3,
833*287e80b3SSadaf Ebrahimi 3, 3, 3, 3, 3, 3, 3, 3, 4, 2,
834*287e80b3SSadaf Ebrahimi 1, 3, 3, 4, 2, 1, 1, 1, 3, 3,
835*287e80b3SSadaf Ebrahimi 2, 0, 1, 0, 1, 3, 2, 4, 3, 3,
836*287e80b3SSadaf Ebrahimi 1, 3
837*287e80b3SSadaf Ebrahimi };
838*287e80b3SSadaf Ebrahimi
839*287e80b3SSadaf Ebrahimi
840*287e80b3SSadaf Ebrahimi enum { YYENOMEM = -2 };
841*287e80b3SSadaf Ebrahimi
842*287e80b3SSadaf Ebrahimi #define yyerrok (yyerrstatus = 0)
843*287e80b3SSadaf Ebrahimi #define yyclearin (yychar = TRACEFS_EMPTY)
844*287e80b3SSadaf Ebrahimi
845*287e80b3SSadaf Ebrahimi #define YYACCEPT goto yyacceptlab
846*287e80b3SSadaf Ebrahimi #define YYABORT goto yyabortlab
847*287e80b3SSadaf Ebrahimi #define YYERROR goto yyerrorlab
848*287e80b3SSadaf Ebrahimi
849*287e80b3SSadaf Ebrahimi
850*287e80b3SSadaf Ebrahimi #define YYRECOVERING() (!!yyerrstatus)
851*287e80b3SSadaf Ebrahimi
852*287e80b3SSadaf Ebrahimi #define YYBACKUP(Token, Value) \
853*287e80b3SSadaf Ebrahimi do \
854*287e80b3SSadaf Ebrahimi if (yychar == TRACEFS_EMPTY) \
855*287e80b3SSadaf Ebrahimi { \
856*287e80b3SSadaf Ebrahimi yychar = (Token); \
857*287e80b3SSadaf Ebrahimi yylval = (Value); \
858*287e80b3SSadaf Ebrahimi YYPOPSTACK (yylen); \
859*287e80b3SSadaf Ebrahimi yystate = *yyssp; \
860*287e80b3SSadaf Ebrahimi goto yybackup; \
861*287e80b3SSadaf Ebrahimi } \
862*287e80b3SSadaf Ebrahimi else \
863*287e80b3SSadaf Ebrahimi { \
864*287e80b3SSadaf Ebrahimi yyerror (sb, YY_("syntax error: cannot back up")); \
865*287e80b3SSadaf Ebrahimi YYERROR; \
866*287e80b3SSadaf Ebrahimi } \
867*287e80b3SSadaf Ebrahimi while (0)
868*287e80b3SSadaf Ebrahimi
869*287e80b3SSadaf Ebrahimi /* Backward compatibility with an undocumented macro.
870*287e80b3SSadaf Ebrahimi Use TRACEFS_error or TRACEFS_UNDEF. */
871*287e80b3SSadaf Ebrahimi #define YYERRCODE TRACEFS_UNDEF
872*287e80b3SSadaf Ebrahimi
873*287e80b3SSadaf Ebrahimi
874*287e80b3SSadaf Ebrahimi /* Enable debugging if requested. */
875*287e80b3SSadaf Ebrahimi #if TRACEFS_DEBUG
876*287e80b3SSadaf Ebrahimi
877*287e80b3SSadaf Ebrahimi # ifndef YYFPRINTF
878*287e80b3SSadaf Ebrahimi # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
879*287e80b3SSadaf Ebrahimi # define YYFPRINTF fprintf
880*287e80b3SSadaf Ebrahimi # endif
881*287e80b3SSadaf Ebrahimi
882*287e80b3SSadaf Ebrahimi # define YYDPRINTF(Args) \
883*287e80b3SSadaf Ebrahimi do { \
884*287e80b3SSadaf Ebrahimi if (yydebug) \
885*287e80b3SSadaf Ebrahimi YYFPRINTF Args; \
886*287e80b3SSadaf Ebrahimi } while (0)
887*287e80b3SSadaf Ebrahimi
888*287e80b3SSadaf Ebrahimi /* This macro is provided for backward compatibility. */
889*287e80b3SSadaf Ebrahimi # ifndef YY_LOCATION_PRINT
890*287e80b3SSadaf Ebrahimi # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
891*287e80b3SSadaf Ebrahimi # endif
892*287e80b3SSadaf Ebrahimi
893*287e80b3SSadaf Ebrahimi
894*287e80b3SSadaf Ebrahimi # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
895*287e80b3SSadaf Ebrahimi do { \
896*287e80b3SSadaf Ebrahimi if (yydebug) \
897*287e80b3SSadaf Ebrahimi { \
898*287e80b3SSadaf Ebrahimi YYFPRINTF (stderr, "%s ", Title); \
899*287e80b3SSadaf Ebrahimi yy_symbol_print (stderr, \
900*287e80b3SSadaf Ebrahimi Kind, Value, sb); \
901*287e80b3SSadaf Ebrahimi YYFPRINTF (stderr, "\n"); \
902*287e80b3SSadaf Ebrahimi } \
903*287e80b3SSadaf Ebrahimi } while (0)
904*287e80b3SSadaf Ebrahimi
905*287e80b3SSadaf Ebrahimi
906*287e80b3SSadaf Ebrahimi /*-----------------------------------.
907*287e80b3SSadaf Ebrahimi | Print this symbol's value on YYO. |
908*287e80b3SSadaf Ebrahimi `-----------------------------------*/
909*287e80b3SSadaf Ebrahimi
910*287e80b3SSadaf Ebrahimi static void
yy_symbol_value_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,struct sqlhist_bison * sb)911*287e80b3SSadaf Ebrahimi yy_symbol_value_print (FILE *yyo,
912*287e80b3SSadaf Ebrahimi yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, struct sqlhist_bison *sb)
913*287e80b3SSadaf Ebrahimi {
914*287e80b3SSadaf Ebrahimi FILE *yyoutput = yyo;
915*287e80b3SSadaf Ebrahimi YYUSE (yyoutput);
916*287e80b3SSadaf Ebrahimi YYUSE (sb);
917*287e80b3SSadaf Ebrahimi if (!yyvaluep)
918*287e80b3SSadaf Ebrahimi return;
919*287e80b3SSadaf Ebrahimi # ifdef YYPRINT
920*287e80b3SSadaf Ebrahimi if (yykind < YYNTOKENS)
921*287e80b3SSadaf Ebrahimi YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
922*287e80b3SSadaf Ebrahimi # endif
923*287e80b3SSadaf Ebrahimi YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
924*287e80b3SSadaf Ebrahimi YYUSE (yykind);
925*287e80b3SSadaf Ebrahimi YY_IGNORE_MAYBE_UNINITIALIZED_END
926*287e80b3SSadaf Ebrahimi }
927*287e80b3SSadaf Ebrahimi
928*287e80b3SSadaf Ebrahimi
929*287e80b3SSadaf Ebrahimi /*---------------------------.
930*287e80b3SSadaf Ebrahimi | Print this symbol on YYO. |
931*287e80b3SSadaf Ebrahimi `---------------------------*/
932*287e80b3SSadaf Ebrahimi
933*287e80b3SSadaf Ebrahimi static void
yy_symbol_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,struct sqlhist_bison * sb)934*287e80b3SSadaf Ebrahimi yy_symbol_print (FILE *yyo,
935*287e80b3SSadaf Ebrahimi yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, struct sqlhist_bison *sb)
936*287e80b3SSadaf Ebrahimi {
937*287e80b3SSadaf Ebrahimi YYFPRINTF (yyo, "%s %s (",
938*287e80b3SSadaf Ebrahimi yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
939*287e80b3SSadaf Ebrahimi
940*287e80b3SSadaf Ebrahimi yy_symbol_value_print (yyo, yykind, yyvaluep, sb);
941*287e80b3SSadaf Ebrahimi YYFPRINTF (yyo, ")");
942*287e80b3SSadaf Ebrahimi }
943*287e80b3SSadaf Ebrahimi
944*287e80b3SSadaf Ebrahimi /*------------------------------------------------------------------.
945*287e80b3SSadaf Ebrahimi | yy_stack_print -- Print the state stack from its BOTTOM up to its |
946*287e80b3SSadaf Ebrahimi | TOP (included). |
947*287e80b3SSadaf Ebrahimi `------------------------------------------------------------------*/
948*287e80b3SSadaf Ebrahimi
949*287e80b3SSadaf Ebrahimi static void
yy_stack_print(yy_state_t * yybottom,yy_state_t * yytop)950*287e80b3SSadaf Ebrahimi yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
951*287e80b3SSadaf Ebrahimi {
952*287e80b3SSadaf Ebrahimi YYFPRINTF (stderr, "Stack now");
953*287e80b3SSadaf Ebrahimi for (; yybottom <= yytop; yybottom++)
954*287e80b3SSadaf Ebrahimi {
955*287e80b3SSadaf Ebrahimi int yybot = *yybottom;
956*287e80b3SSadaf Ebrahimi YYFPRINTF (stderr, " %d", yybot);
957*287e80b3SSadaf Ebrahimi }
958*287e80b3SSadaf Ebrahimi YYFPRINTF (stderr, "\n");
959*287e80b3SSadaf Ebrahimi }
960*287e80b3SSadaf Ebrahimi
961*287e80b3SSadaf Ebrahimi # define YY_STACK_PRINT(Bottom, Top) \
962*287e80b3SSadaf Ebrahimi do { \
963*287e80b3SSadaf Ebrahimi if (yydebug) \
964*287e80b3SSadaf Ebrahimi yy_stack_print ((Bottom), (Top)); \
965*287e80b3SSadaf Ebrahimi } while (0)
966*287e80b3SSadaf Ebrahimi
967*287e80b3SSadaf Ebrahimi
968*287e80b3SSadaf Ebrahimi /*------------------------------------------------.
969*287e80b3SSadaf Ebrahimi | Report that the YYRULE is going to be reduced. |
970*287e80b3SSadaf Ebrahimi `------------------------------------------------*/
971*287e80b3SSadaf Ebrahimi
972*287e80b3SSadaf Ebrahimi static void
yy_reduce_print(yy_state_t * yyssp,YYSTYPE * yyvsp,int yyrule,struct sqlhist_bison * sb)973*287e80b3SSadaf Ebrahimi yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
974*287e80b3SSadaf Ebrahimi int yyrule, struct sqlhist_bison *sb)
975*287e80b3SSadaf Ebrahimi {
976*287e80b3SSadaf Ebrahimi int yylno = yyrline[yyrule];
977*287e80b3SSadaf Ebrahimi int yynrhs = yyr2[yyrule];
978*287e80b3SSadaf Ebrahimi int yyi;
979*287e80b3SSadaf Ebrahimi YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
980*287e80b3SSadaf Ebrahimi yyrule - 1, yylno);
981*287e80b3SSadaf Ebrahimi /* The symbols being reduced. */
982*287e80b3SSadaf Ebrahimi for (yyi = 0; yyi < yynrhs; yyi++)
983*287e80b3SSadaf Ebrahimi {
984*287e80b3SSadaf Ebrahimi YYFPRINTF (stderr, " $%d = ", yyi + 1);
985*287e80b3SSadaf Ebrahimi yy_symbol_print (stderr,
986*287e80b3SSadaf Ebrahimi YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
987*287e80b3SSadaf Ebrahimi &yyvsp[(yyi + 1) - (yynrhs)], sb);
988*287e80b3SSadaf Ebrahimi YYFPRINTF (stderr, "\n");
989*287e80b3SSadaf Ebrahimi }
990*287e80b3SSadaf Ebrahimi }
991*287e80b3SSadaf Ebrahimi
992*287e80b3SSadaf Ebrahimi # define YY_REDUCE_PRINT(Rule) \
993*287e80b3SSadaf Ebrahimi do { \
994*287e80b3SSadaf Ebrahimi if (yydebug) \
995*287e80b3SSadaf Ebrahimi yy_reduce_print (yyssp, yyvsp, Rule, sb); \
996*287e80b3SSadaf Ebrahimi } while (0)
997*287e80b3SSadaf Ebrahimi
998*287e80b3SSadaf Ebrahimi /* Nonzero means print parse trace. It is left uninitialized so that
999*287e80b3SSadaf Ebrahimi multiple parsers can coexist. */
1000*287e80b3SSadaf Ebrahimi int yydebug;
1001*287e80b3SSadaf Ebrahimi #else /* !TRACEFS_DEBUG */
1002*287e80b3SSadaf Ebrahimi # define YYDPRINTF(Args) ((void) 0)
1003*287e80b3SSadaf Ebrahimi # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
1004*287e80b3SSadaf Ebrahimi # define YY_STACK_PRINT(Bottom, Top)
1005*287e80b3SSadaf Ebrahimi # define YY_REDUCE_PRINT(Rule)
1006*287e80b3SSadaf Ebrahimi #endif /* !TRACEFS_DEBUG */
1007*287e80b3SSadaf Ebrahimi
1008*287e80b3SSadaf Ebrahimi
1009*287e80b3SSadaf Ebrahimi /* YYINITDEPTH -- initial size of the parser's stacks. */
1010*287e80b3SSadaf Ebrahimi #ifndef YYINITDEPTH
1011*287e80b3SSadaf Ebrahimi # define YYINITDEPTH 200
1012*287e80b3SSadaf Ebrahimi #endif
1013*287e80b3SSadaf Ebrahimi
1014*287e80b3SSadaf Ebrahimi /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1015*287e80b3SSadaf Ebrahimi if the built-in stack extension method is used).
1016*287e80b3SSadaf Ebrahimi
1017*287e80b3SSadaf Ebrahimi Do not make this value too large; the results are undefined if
1018*287e80b3SSadaf Ebrahimi YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1019*287e80b3SSadaf Ebrahimi evaluated with infinite-precision integer arithmetic. */
1020*287e80b3SSadaf Ebrahimi
1021*287e80b3SSadaf Ebrahimi #ifndef YYMAXDEPTH
1022*287e80b3SSadaf Ebrahimi # define YYMAXDEPTH 10000
1023*287e80b3SSadaf Ebrahimi #endif
1024*287e80b3SSadaf Ebrahimi
1025*287e80b3SSadaf Ebrahimi
1026*287e80b3SSadaf Ebrahimi
1027*287e80b3SSadaf Ebrahimi
1028*287e80b3SSadaf Ebrahimi
1029*287e80b3SSadaf Ebrahimi
1030*287e80b3SSadaf Ebrahimi /*-----------------------------------------------.
1031*287e80b3SSadaf Ebrahimi | Release the memory associated to this symbol. |
1032*287e80b3SSadaf Ebrahimi `-----------------------------------------------*/
1033*287e80b3SSadaf Ebrahimi
1034*287e80b3SSadaf Ebrahimi static void
yydestruct(const char * yymsg,yysymbol_kind_t yykind,YYSTYPE * yyvaluep,struct sqlhist_bison * sb)1035*287e80b3SSadaf Ebrahimi yydestruct (const char *yymsg,
1036*287e80b3SSadaf Ebrahimi yysymbol_kind_t yykind, YYSTYPE *yyvaluep, struct sqlhist_bison *sb)
1037*287e80b3SSadaf Ebrahimi {
1038*287e80b3SSadaf Ebrahimi YYUSE (yyvaluep);
1039*287e80b3SSadaf Ebrahimi YYUSE (sb);
1040*287e80b3SSadaf Ebrahimi if (!yymsg)
1041*287e80b3SSadaf Ebrahimi yymsg = "Deleting";
1042*287e80b3SSadaf Ebrahimi YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
1043*287e80b3SSadaf Ebrahimi
1044*287e80b3SSadaf Ebrahimi YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1045*287e80b3SSadaf Ebrahimi YYUSE (yykind);
1046*287e80b3SSadaf Ebrahimi YY_IGNORE_MAYBE_UNINITIALIZED_END
1047*287e80b3SSadaf Ebrahimi }
1048*287e80b3SSadaf Ebrahimi
1049*287e80b3SSadaf Ebrahimi
1050*287e80b3SSadaf Ebrahimi
1051*287e80b3SSadaf Ebrahimi
1052*287e80b3SSadaf Ebrahimi
1053*287e80b3SSadaf Ebrahimi
1054*287e80b3SSadaf Ebrahimi /*----------.
1055*287e80b3SSadaf Ebrahimi | yyparse. |
1056*287e80b3SSadaf Ebrahimi `----------*/
1057*287e80b3SSadaf Ebrahimi
1058*287e80b3SSadaf Ebrahimi int
yyparse(struct sqlhist_bison * sb)1059*287e80b3SSadaf Ebrahimi yyparse (struct sqlhist_bison *sb)
1060*287e80b3SSadaf Ebrahimi {
1061*287e80b3SSadaf Ebrahimi /* The lookahead symbol. */
1062*287e80b3SSadaf Ebrahimi int yychar;
1063*287e80b3SSadaf Ebrahimi
1064*287e80b3SSadaf Ebrahimi
1065*287e80b3SSadaf Ebrahimi /* The semantic value of the lookahead symbol. */
1066*287e80b3SSadaf Ebrahimi /* Default value used for initialization, for pacifying older GCCs
1067*287e80b3SSadaf Ebrahimi or non-GCC compilers. */
1068*287e80b3SSadaf Ebrahimi YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
1069*287e80b3SSadaf Ebrahimi YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
1070*287e80b3SSadaf Ebrahimi
1071*287e80b3SSadaf Ebrahimi /* Number of syntax errors so far. */
1072*287e80b3SSadaf Ebrahimi int yynerrs;
1073*287e80b3SSadaf Ebrahimi
1074*287e80b3SSadaf Ebrahimi yy_state_fast_t yystate;
1075*287e80b3SSadaf Ebrahimi /* Number of tokens to shift before error messages enabled. */
1076*287e80b3SSadaf Ebrahimi int yyerrstatus;
1077*287e80b3SSadaf Ebrahimi
1078*287e80b3SSadaf Ebrahimi /* The stacks and their tools:
1079*287e80b3SSadaf Ebrahimi 'yyss': related to states.
1080*287e80b3SSadaf Ebrahimi 'yyvs': related to semantic values.
1081*287e80b3SSadaf Ebrahimi
1082*287e80b3SSadaf Ebrahimi Refer to the stacks through separate pointers, to allow yyoverflow
1083*287e80b3SSadaf Ebrahimi to reallocate them elsewhere. */
1084*287e80b3SSadaf Ebrahimi
1085*287e80b3SSadaf Ebrahimi /* Their size. */
1086*287e80b3SSadaf Ebrahimi YYPTRDIFF_T yystacksize;
1087*287e80b3SSadaf Ebrahimi
1088*287e80b3SSadaf Ebrahimi /* The state stack. */
1089*287e80b3SSadaf Ebrahimi yy_state_t yyssa[YYINITDEPTH];
1090*287e80b3SSadaf Ebrahimi yy_state_t *yyss;
1091*287e80b3SSadaf Ebrahimi yy_state_t *yyssp;
1092*287e80b3SSadaf Ebrahimi
1093*287e80b3SSadaf Ebrahimi /* The semantic value stack. */
1094*287e80b3SSadaf Ebrahimi YYSTYPE yyvsa[YYINITDEPTH];
1095*287e80b3SSadaf Ebrahimi YYSTYPE *yyvs;
1096*287e80b3SSadaf Ebrahimi YYSTYPE *yyvsp;
1097*287e80b3SSadaf Ebrahimi
1098*287e80b3SSadaf Ebrahimi int yyn;
1099*287e80b3SSadaf Ebrahimi /* The return value of yyparse. */
1100*287e80b3SSadaf Ebrahimi int yyresult;
1101*287e80b3SSadaf Ebrahimi /* Lookahead token as an internal (translated) token number. */
1102*287e80b3SSadaf Ebrahimi yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
1103*287e80b3SSadaf Ebrahimi /* The variables used to return semantic value and location from the
1104*287e80b3SSadaf Ebrahimi action routines. */
1105*287e80b3SSadaf Ebrahimi YYSTYPE yyval;
1106*287e80b3SSadaf Ebrahimi
1107*287e80b3SSadaf Ebrahimi
1108*287e80b3SSadaf Ebrahimi
1109*287e80b3SSadaf Ebrahimi #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1110*287e80b3SSadaf Ebrahimi
1111*287e80b3SSadaf Ebrahimi /* The number of symbols on the RHS of the reduced rule.
1112*287e80b3SSadaf Ebrahimi Keep to zero when no symbol should be popped. */
1113*287e80b3SSadaf Ebrahimi int yylen = 0;
1114*287e80b3SSadaf Ebrahimi
1115*287e80b3SSadaf Ebrahimi yynerrs = 0;
1116*287e80b3SSadaf Ebrahimi yystate = 0;
1117*287e80b3SSadaf Ebrahimi yyerrstatus = 0;
1118*287e80b3SSadaf Ebrahimi
1119*287e80b3SSadaf Ebrahimi yystacksize = YYINITDEPTH;
1120*287e80b3SSadaf Ebrahimi yyssp = yyss = yyssa;
1121*287e80b3SSadaf Ebrahimi yyvsp = yyvs = yyvsa;
1122*287e80b3SSadaf Ebrahimi
1123*287e80b3SSadaf Ebrahimi
1124*287e80b3SSadaf Ebrahimi YYDPRINTF ((stderr, "Starting parse\n"));
1125*287e80b3SSadaf Ebrahimi
1126*287e80b3SSadaf Ebrahimi yychar = TRACEFS_EMPTY; /* Cause a token to be read. */
1127*287e80b3SSadaf Ebrahimi goto yysetstate;
1128*287e80b3SSadaf Ebrahimi
1129*287e80b3SSadaf Ebrahimi
1130*287e80b3SSadaf Ebrahimi /*------------------------------------------------------------.
1131*287e80b3SSadaf Ebrahimi | yynewstate -- push a new state, which is found in yystate. |
1132*287e80b3SSadaf Ebrahimi `------------------------------------------------------------*/
1133*287e80b3SSadaf Ebrahimi yynewstate:
1134*287e80b3SSadaf Ebrahimi /* In all cases, when you get here, the value and location stacks
1135*287e80b3SSadaf Ebrahimi have just been pushed. So pushing a state here evens the stacks. */
1136*287e80b3SSadaf Ebrahimi yyssp++;
1137*287e80b3SSadaf Ebrahimi
1138*287e80b3SSadaf Ebrahimi
1139*287e80b3SSadaf Ebrahimi /*--------------------------------------------------------------------.
1140*287e80b3SSadaf Ebrahimi | yysetstate -- set current state (the top of the stack) to yystate. |
1141*287e80b3SSadaf Ebrahimi `--------------------------------------------------------------------*/
1142*287e80b3SSadaf Ebrahimi yysetstate:
1143*287e80b3SSadaf Ebrahimi YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1144*287e80b3SSadaf Ebrahimi YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
1145*287e80b3SSadaf Ebrahimi YY_IGNORE_USELESS_CAST_BEGIN
1146*287e80b3SSadaf Ebrahimi *yyssp = YY_CAST (yy_state_t, yystate);
1147*287e80b3SSadaf Ebrahimi YY_IGNORE_USELESS_CAST_END
1148*287e80b3SSadaf Ebrahimi YY_STACK_PRINT (yyss, yyssp);
1149*287e80b3SSadaf Ebrahimi
1150*287e80b3SSadaf Ebrahimi if (yyss + yystacksize - 1 <= yyssp)
1151*287e80b3SSadaf Ebrahimi #if !defined yyoverflow && !defined YYSTACK_RELOCATE
1152*287e80b3SSadaf Ebrahimi goto yyexhaustedlab;
1153*287e80b3SSadaf Ebrahimi #else
1154*287e80b3SSadaf Ebrahimi {
1155*287e80b3SSadaf Ebrahimi /* Get the current used size of the three stacks, in elements. */
1156*287e80b3SSadaf Ebrahimi YYPTRDIFF_T yysize = yyssp - yyss + 1;
1157*287e80b3SSadaf Ebrahimi
1158*287e80b3SSadaf Ebrahimi # if defined yyoverflow
1159*287e80b3SSadaf Ebrahimi {
1160*287e80b3SSadaf Ebrahimi /* Give user a chance to reallocate the stack. Use copies of
1161*287e80b3SSadaf Ebrahimi these so that the &'s don't force the real ones into
1162*287e80b3SSadaf Ebrahimi memory. */
1163*287e80b3SSadaf Ebrahimi yy_state_t *yyss1 = yyss;
1164*287e80b3SSadaf Ebrahimi YYSTYPE *yyvs1 = yyvs;
1165*287e80b3SSadaf Ebrahimi
1166*287e80b3SSadaf Ebrahimi /* Each stack pointer address is followed by the size of the
1167*287e80b3SSadaf Ebrahimi data in use in that stack, in bytes. This used to be a
1168*287e80b3SSadaf Ebrahimi conditional around just the two extra args, but that might
1169*287e80b3SSadaf Ebrahimi be undefined if yyoverflow is a macro. */
1170*287e80b3SSadaf Ebrahimi yyoverflow (YY_("memory exhausted"),
1171*287e80b3SSadaf Ebrahimi &yyss1, yysize * YYSIZEOF (*yyssp),
1172*287e80b3SSadaf Ebrahimi &yyvs1, yysize * YYSIZEOF (*yyvsp),
1173*287e80b3SSadaf Ebrahimi &yystacksize);
1174*287e80b3SSadaf Ebrahimi yyss = yyss1;
1175*287e80b3SSadaf Ebrahimi yyvs = yyvs1;
1176*287e80b3SSadaf Ebrahimi }
1177*287e80b3SSadaf Ebrahimi # else /* defined YYSTACK_RELOCATE */
1178*287e80b3SSadaf Ebrahimi /* Extend the stack our own way. */
1179*287e80b3SSadaf Ebrahimi if (YYMAXDEPTH <= yystacksize)
1180*287e80b3SSadaf Ebrahimi goto yyexhaustedlab;
1181*287e80b3SSadaf Ebrahimi yystacksize *= 2;
1182*287e80b3SSadaf Ebrahimi if (YYMAXDEPTH < yystacksize)
1183*287e80b3SSadaf Ebrahimi yystacksize = YYMAXDEPTH;
1184*287e80b3SSadaf Ebrahimi
1185*287e80b3SSadaf Ebrahimi {
1186*287e80b3SSadaf Ebrahimi yy_state_t *yyss1 = yyss;
1187*287e80b3SSadaf Ebrahimi union yyalloc *yyptr =
1188*287e80b3SSadaf Ebrahimi YY_CAST (union yyalloc *,
1189*287e80b3SSadaf Ebrahimi YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
1190*287e80b3SSadaf Ebrahimi if (! yyptr)
1191*287e80b3SSadaf Ebrahimi goto yyexhaustedlab;
1192*287e80b3SSadaf Ebrahimi YYSTACK_RELOCATE (yyss_alloc, yyss);
1193*287e80b3SSadaf Ebrahimi YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1194*287e80b3SSadaf Ebrahimi # undef YYSTACK_RELOCATE
1195*287e80b3SSadaf Ebrahimi if (yyss1 != yyssa)
1196*287e80b3SSadaf Ebrahimi YYSTACK_FREE (yyss1);
1197*287e80b3SSadaf Ebrahimi }
1198*287e80b3SSadaf Ebrahimi # endif
1199*287e80b3SSadaf Ebrahimi
1200*287e80b3SSadaf Ebrahimi yyssp = yyss + yysize - 1;
1201*287e80b3SSadaf Ebrahimi yyvsp = yyvs + yysize - 1;
1202*287e80b3SSadaf Ebrahimi
1203*287e80b3SSadaf Ebrahimi YY_IGNORE_USELESS_CAST_BEGIN
1204*287e80b3SSadaf Ebrahimi YYDPRINTF ((stderr, "Stack size increased to %ld\n",
1205*287e80b3SSadaf Ebrahimi YY_CAST (long, yystacksize)));
1206*287e80b3SSadaf Ebrahimi YY_IGNORE_USELESS_CAST_END
1207*287e80b3SSadaf Ebrahimi
1208*287e80b3SSadaf Ebrahimi if (yyss + yystacksize - 1 <= yyssp)
1209*287e80b3SSadaf Ebrahimi YYABORT;
1210*287e80b3SSadaf Ebrahimi }
1211*287e80b3SSadaf Ebrahimi #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
1212*287e80b3SSadaf Ebrahimi
1213*287e80b3SSadaf Ebrahimi if (yystate == YYFINAL)
1214*287e80b3SSadaf Ebrahimi YYACCEPT;
1215*287e80b3SSadaf Ebrahimi
1216*287e80b3SSadaf Ebrahimi goto yybackup;
1217*287e80b3SSadaf Ebrahimi
1218*287e80b3SSadaf Ebrahimi
1219*287e80b3SSadaf Ebrahimi /*-----------.
1220*287e80b3SSadaf Ebrahimi | yybackup. |
1221*287e80b3SSadaf Ebrahimi `-----------*/
1222*287e80b3SSadaf Ebrahimi yybackup:
1223*287e80b3SSadaf Ebrahimi /* Do appropriate processing given the current state. Read a
1224*287e80b3SSadaf Ebrahimi lookahead token if we need one and don't already have one. */
1225*287e80b3SSadaf Ebrahimi
1226*287e80b3SSadaf Ebrahimi /* First try to decide what to do without reference to lookahead token. */
1227*287e80b3SSadaf Ebrahimi yyn = yypact[yystate];
1228*287e80b3SSadaf Ebrahimi if (yypact_value_is_default (yyn))
1229*287e80b3SSadaf Ebrahimi goto yydefault;
1230*287e80b3SSadaf Ebrahimi
1231*287e80b3SSadaf Ebrahimi /* Not known => get a lookahead token if don't already have one. */
1232*287e80b3SSadaf Ebrahimi
1233*287e80b3SSadaf Ebrahimi /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
1234*287e80b3SSadaf Ebrahimi if (yychar == TRACEFS_EMPTY)
1235*287e80b3SSadaf Ebrahimi {
1236*287e80b3SSadaf Ebrahimi YYDPRINTF ((stderr, "Reading a token\n"));
1237*287e80b3SSadaf Ebrahimi yychar = yylex (&yylval, scanner);
1238*287e80b3SSadaf Ebrahimi }
1239*287e80b3SSadaf Ebrahimi
1240*287e80b3SSadaf Ebrahimi if (yychar <= TRACEFS_EOF)
1241*287e80b3SSadaf Ebrahimi {
1242*287e80b3SSadaf Ebrahimi yychar = TRACEFS_EOF;
1243*287e80b3SSadaf Ebrahimi yytoken = YYSYMBOL_YYEOF;
1244*287e80b3SSadaf Ebrahimi YYDPRINTF ((stderr, "Now at end of input.\n"));
1245*287e80b3SSadaf Ebrahimi }
1246*287e80b3SSadaf Ebrahimi else if (yychar == TRACEFS_error)
1247*287e80b3SSadaf Ebrahimi {
1248*287e80b3SSadaf Ebrahimi /* The scanner already issued an error message, process directly
1249*287e80b3SSadaf Ebrahimi to error recovery. But do not keep the error token as
1250*287e80b3SSadaf Ebrahimi lookahead, it is too special and may lead us to an endless
1251*287e80b3SSadaf Ebrahimi loop in error recovery. */
1252*287e80b3SSadaf Ebrahimi yychar = TRACEFS_UNDEF;
1253*287e80b3SSadaf Ebrahimi yytoken = YYSYMBOL_YYerror;
1254*287e80b3SSadaf Ebrahimi goto yyerrlab1;
1255*287e80b3SSadaf Ebrahimi }
1256*287e80b3SSadaf Ebrahimi else
1257*287e80b3SSadaf Ebrahimi {
1258*287e80b3SSadaf Ebrahimi yytoken = YYTRANSLATE (yychar);
1259*287e80b3SSadaf Ebrahimi YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1260*287e80b3SSadaf Ebrahimi }
1261*287e80b3SSadaf Ebrahimi
1262*287e80b3SSadaf Ebrahimi /* If the proper action on seeing token YYTOKEN is to reduce or to
1263*287e80b3SSadaf Ebrahimi detect an error, take that action. */
1264*287e80b3SSadaf Ebrahimi yyn += yytoken;
1265*287e80b3SSadaf Ebrahimi if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1266*287e80b3SSadaf Ebrahimi goto yydefault;
1267*287e80b3SSadaf Ebrahimi yyn = yytable[yyn];
1268*287e80b3SSadaf Ebrahimi if (yyn <= 0)
1269*287e80b3SSadaf Ebrahimi {
1270*287e80b3SSadaf Ebrahimi if (yytable_value_is_error (yyn))
1271*287e80b3SSadaf Ebrahimi goto yyerrlab;
1272*287e80b3SSadaf Ebrahimi yyn = -yyn;
1273*287e80b3SSadaf Ebrahimi goto yyreduce;
1274*287e80b3SSadaf Ebrahimi }
1275*287e80b3SSadaf Ebrahimi
1276*287e80b3SSadaf Ebrahimi /* Count tokens shifted since error; after three, turn off error
1277*287e80b3SSadaf Ebrahimi status. */
1278*287e80b3SSadaf Ebrahimi if (yyerrstatus)
1279*287e80b3SSadaf Ebrahimi yyerrstatus--;
1280*287e80b3SSadaf Ebrahimi
1281*287e80b3SSadaf Ebrahimi /* Shift the lookahead token. */
1282*287e80b3SSadaf Ebrahimi YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1283*287e80b3SSadaf Ebrahimi yystate = yyn;
1284*287e80b3SSadaf Ebrahimi YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1285*287e80b3SSadaf Ebrahimi *++yyvsp = yylval;
1286*287e80b3SSadaf Ebrahimi YY_IGNORE_MAYBE_UNINITIALIZED_END
1287*287e80b3SSadaf Ebrahimi
1288*287e80b3SSadaf Ebrahimi /* Discard the shifted token. */
1289*287e80b3SSadaf Ebrahimi yychar = TRACEFS_EMPTY;
1290*287e80b3SSadaf Ebrahimi goto yynewstate;
1291*287e80b3SSadaf Ebrahimi
1292*287e80b3SSadaf Ebrahimi
1293*287e80b3SSadaf Ebrahimi /*-----------------------------------------------------------.
1294*287e80b3SSadaf Ebrahimi | yydefault -- do the default action for the current state. |
1295*287e80b3SSadaf Ebrahimi `-----------------------------------------------------------*/
1296*287e80b3SSadaf Ebrahimi yydefault:
1297*287e80b3SSadaf Ebrahimi yyn = yydefact[yystate];
1298*287e80b3SSadaf Ebrahimi if (yyn == 0)
1299*287e80b3SSadaf Ebrahimi goto yyerrlab;
1300*287e80b3SSadaf Ebrahimi goto yyreduce;
1301*287e80b3SSadaf Ebrahimi
1302*287e80b3SSadaf Ebrahimi
1303*287e80b3SSadaf Ebrahimi /*-----------------------------.
1304*287e80b3SSadaf Ebrahimi | yyreduce -- do a reduction. |
1305*287e80b3SSadaf Ebrahimi `-----------------------------*/
1306*287e80b3SSadaf Ebrahimi yyreduce:
1307*287e80b3SSadaf Ebrahimi /* yyn is the number of a rule to reduce with. */
1308*287e80b3SSadaf Ebrahimi yylen = yyr2[yyn];
1309*287e80b3SSadaf Ebrahimi
1310*287e80b3SSadaf Ebrahimi /* If YYLEN is nonzero, implement the default value of the action:
1311*287e80b3SSadaf Ebrahimi '$$ = $1'.
1312*287e80b3SSadaf Ebrahimi
1313*287e80b3SSadaf Ebrahimi Otherwise, the following line sets YYVAL to garbage.
1314*287e80b3SSadaf Ebrahimi This behavior is undocumented and Bison
1315*287e80b3SSadaf Ebrahimi users should not rely upon it. Assigning to YYVAL
1316*287e80b3SSadaf Ebrahimi unconditionally makes the parser a bit smaller, and it avoids a
1317*287e80b3SSadaf Ebrahimi GCC warning that YYVAL may be used uninitialized. */
1318*287e80b3SSadaf Ebrahimi yyval = yyvsp[1-yylen];
1319*287e80b3SSadaf Ebrahimi
1320*287e80b3SSadaf Ebrahimi
1321*287e80b3SSadaf Ebrahimi YY_REDUCE_PRINT (yyn);
1322*287e80b3SSadaf Ebrahimi switch (yyn)
1323*287e80b3SSadaf Ebrahimi {
1324*287e80b3SSadaf Ebrahimi case 3:
1325*287e80b3SSadaf Ebrahimi #line 78 "sqlhist.y"
1326*287e80b3SSadaf Ebrahimi { CHECK_RETURN_PTR((yyval.string) = store_str(sb, (yyvsp[0].string))); }
1327*287e80b3SSadaf Ebrahimi #line 1328 "sqlhist.tab.c"
1328*287e80b3SSadaf Ebrahimi break;
1329*287e80b3SSadaf Ebrahimi
1330*287e80b3SSadaf Ebrahimi case 4:
1331*287e80b3SSadaf Ebrahimi #line 79 "sqlhist.y"
1332*287e80b3SSadaf Ebrahimi { CHECK_RETURN_PTR((yyval.string) = store_str(sb, (yyvsp[0].string))); }
1333*287e80b3SSadaf Ebrahimi #line 1334 "sqlhist.tab.c"
1334*287e80b3SSadaf Ebrahimi break;
1335*287e80b3SSadaf Ebrahimi
1336*287e80b3SSadaf Ebrahimi case 5:
1337*287e80b3SSadaf Ebrahimi #line 82 "sqlhist.y"
1338*287e80b3SSadaf Ebrahimi { table_start(sb); }
1339*287e80b3SSadaf Ebrahimi #line 1340 "sqlhist.tab.c"
1340*287e80b3SSadaf Ebrahimi break;
1341*287e80b3SSadaf Ebrahimi
1342*287e80b3SSadaf Ebrahimi case 9:
1343*287e80b3SSadaf Ebrahimi #line 96 "sqlhist.y"
1344*287e80b3SSadaf Ebrahimi {
1345*287e80b3SSadaf Ebrahimi CHECK_RETURN_VAL(add_selection(sb, (yyvsp[0].expr), NULL));
1346*287e80b3SSadaf Ebrahimi }
1347*287e80b3SSadaf Ebrahimi #line 1348 "sqlhist.tab.c"
1348*287e80b3SSadaf Ebrahimi break;
1349*287e80b3SSadaf Ebrahimi
1350*287e80b3SSadaf Ebrahimi case 10:
1351*287e80b3SSadaf Ebrahimi #line 100 "sqlhist.y"
1352*287e80b3SSadaf Ebrahimi {
1353*287e80b3SSadaf Ebrahimi CHECK_RETURN_VAL(add_selection(sb, (yyvsp[-1].expr), (yyvsp[0].string)));
1354*287e80b3SSadaf Ebrahimi }
1355*287e80b3SSadaf Ebrahimi #line 1356 "sqlhist.tab.c"
1356*287e80b3SSadaf Ebrahimi break;
1357*287e80b3SSadaf Ebrahimi
1358*287e80b3SSadaf Ebrahimi case 12:
1359*287e80b3SSadaf Ebrahimi #line 107 "sqlhist.y"
1360*287e80b3SSadaf Ebrahimi { (yyval.expr) = (yyvsp[-1].expr); }
1361*287e80b3SSadaf Ebrahimi #line 1362 "sqlhist.tab.c"
1362*287e80b3SSadaf Ebrahimi break;
1363*287e80b3SSadaf Ebrahimi
1364*287e80b3SSadaf Ebrahimi case 14:
1365*287e80b3SSadaf Ebrahimi #line 109 "sqlhist.y"
1366*287e80b3SSadaf Ebrahimi { (yyval.expr) = (yyvsp[-1].expr); }
1367*287e80b3SSadaf Ebrahimi #line 1368 "sqlhist.tab.c"
1368*287e80b3SSadaf Ebrahimi break;
1369*287e80b3SSadaf Ebrahimi
1370*287e80b3SSadaf Ebrahimi case 15:
1371*287e80b3SSadaf Ebrahimi #line 110 "sqlhist.y"
1372*287e80b3SSadaf Ebrahimi {
1373*287e80b3SSadaf Ebrahimi (yyval.expr) = add_cast(sb, (yyvsp[-3].expr), (yyvsp[-1].string));
1374*287e80b3SSadaf Ebrahimi CHECK_RETURN_PTR((yyval.expr));
1375*287e80b3SSadaf Ebrahimi }
1376*287e80b3SSadaf Ebrahimi #line 1377 "sqlhist.tab.c"
1377*287e80b3SSadaf Ebrahimi break;
1378*287e80b3SSadaf Ebrahimi
1379*287e80b3SSadaf Ebrahimi case 16:
1380*287e80b3SSadaf Ebrahimi #line 118 "sqlhist.y"
1381*287e80b3SSadaf Ebrahimi {
1382*287e80b3SSadaf Ebrahimi (yyval.expr) = add_compare(sb, (yyvsp[-2].expr), (yyvsp[0].expr), COMPARE_ADD);
1383*287e80b3SSadaf Ebrahimi CHECK_RETURN_PTR((yyval.expr));
1384*287e80b3SSadaf Ebrahimi }
1385*287e80b3SSadaf Ebrahimi #line 1386 "sqlhist.tab.c"
1386*287e80b3SSadaf Ebrahimi break;
1387*287e80b3SSadaf Ebrahimi
1388*287e80b3SSadaf Ebrahimi case 17:
1389*287e80b3SSadaf Ebrahimi #line 123 "sqlhist.y"
1390*287e80b3SSadaf Ebrahimi {
1391*287e80b3SSadaf Ebrahimi (yyval.expr) = add_compare(sb, (yyvsp[-2].expr), (yyvsp[0].expr), COMPARE_SUB);
1392*287e80b3SSadaf Ebrahimi CHECK_RETURN_PTR((yyval.expr));
1393*287e80b3SSadaf Ebrahimi }
1394*287e80b3SSadaf Ebrahimi #line 1395 "sqlhist.tab.c"
1395*287e80b3SSadaf Ebrahimi break;
1396*287e80b3SSadaf Ebrahimi
1397*287e80b3SSadaf Ebrahimi case 20:
1398*287e80b3SSadaf Ebrahimi #line 135 "sqlhist.y"
1399*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_field(sb, (yyvsp[0].string), NULL); CHECK_RETURN_PTR((yyval.expr)); }
1400*287e80b3SSadaf Ebrahimi #line 1401 "sqlhist.tab.c"
1401*287e80b3SSadaf Ebrahimi break;
1402*287e80b3SSadaf Ebrahimi
1403*287e80b3SSadaf Ebrahimi case 21:
1404*287e80b3SSadaf Ebrahimi #line 139 "sqlhist.y"
1405*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_field(sb, (yyvsp[-1].string), (yyvsp[0].string)); CHECK_RETURN_PTR((yyval.expr)); }
1406*287e80b3SSadaf Ebrahimi #line 1407 "sqlhist.tab.c"
1407*287e80b3SSadaf Ebrahimi break;
1408*287e80b3SSadaf Ebrahimi
1409*287e80b3SSadaf Ebrahimi case 23:
1410*287e80b3SSadaf Ebrahimi #line 147 "sqlhist.y"
1411*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_string(sb, (yyvsp[0].string)); CHECK_RETURN_PTR((yyval.expr)); }
1412*287e80b3SSadaf Ebrahimi #line 1413 "sqlhist.tab.c"
1413*287e80b3SSadaf Ebrahimi break;
1414*287e80b3SSadaf Ebrahimi
1415*287e80b3SSadaf Ebrahimi case 25:
1416*287e80b3SSadaf Ebrahimi #line 152 "sqlhist.y"
1417*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_number(sb, (yyvsp[0].number)); CHECK_RETURN_PTR((yyval.expr)); }
1418*287e80b3SSadaf Ebrahimi #line 1419 "sqlhist.tab.c"
1419*287e80b3SSadaf Ebrahimi break;
1420*287e80b3SSadaf Ebrahimi
1421*287e80b3SSadaf Ebrahimi case 26:
1422*287e80b3SSadaf Ebrahimi #line 157 "sqlhist.y"
1423*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-2].expr), (yyvsp[0].expr), FILTER_LT); CHECK_RETURN_PTR((yyval.expr)); }
1424*287e80b3SSadaf Ebrahimi #line 1425 "sqlhist.tab.c"
1425*287e80b3SSadaf Ebrahimi break;
1426*287e80b3SSadaf Ebrahimi
1427*287e80b3SSadaf Ebrahimi case 27:
1428*287e80b3SSadaf Ebrahimi #line 158 "sqlhist.y"
1429*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-2].expr), (yyvsp[0].expr), FILTER_GT); CHECK_RETURN_PTR((yyval.expr)); }
1430*287e80b3SSadaf Ebrahimi #line 1431 "sqlhist.tab.c"
1431*287e80b3SSadaf Ebrahimi break;
1432*287e80b3SSadaf Ebrahimi
1433*287e80b3SSadaf Ebrahimi case 28:
1434*287e80b3SSadaf Ebrahimi #line 159 "sqlhist.y"
1435*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-2].expr), (yyvsp[0].expr), FILTER_LE); CHECK_RETURN_PTR((yyval.expr)); }
1436*287e80b3SSadaf Ebrahimi #line 1437 "sqlhist.tab.c"
1437*287e80b3SSadaf Ebrahimi break;
1438*287e80b3SSadaf Ebrahimi
1439*287e80b3SSadaf Ebrahimi case 29:
1440*287e80b3SSadaf Ebrahimi #line 160 "sqlhist.y"
1441*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-2].expr), (yyvsp[0].expr), FILTER_GE); CHECK_RETURN_PTR((yyval.expr)); }
1442*287e80b3SSadaf Ebrahimi #line 1443 "sqlhist.tab.c"
1443*287e80b3SSadaf Ebrahimi break;
1444*287e80b3SSadaf Ebrahimi
1445*287e80b3SSadaf Ebrahimi case 30:
1446*287e80b3SSadaf Ebrahimi #line 161 "sqlhist.y"
1447*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-2].expr), (yyvsp[0].expr), FILTER_EQ); CHECK_RETURN_PTR((yyval.expr)); }
1448*287e80b3SSadaf Ebrahimi #line 1449 "sqlhist.tab.c"
1449*287e80b3SSadaf Ebrahimi break;
1450*287e80b3SSadaf Ebrahimi
1451*287e80b3SSadaf Ebrahimi case 31:
1452*287e80b3SSadaf Ebrahimi #line 162 "sqlhist.y"
1453*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-2].expr), (yyvsp[0].expr), FILTER_EQ); CHECK_RETURN_PTR((yyval.expr)); }
1454*287e80b3SSadaf Ebrahimi #line 1455 "sqlhist.tab.c"
1455*287e80b3SSadaf Ebrahimi break;
1456*287e80b3SSadaf Ebrahimi
1457*287e80b3SSadaf Ebrahimi case 32:
1458*287e80b3SSadaf Ebrahimi #line 163 "sqlhist.y"
1459*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-2].expr), (yyvsp[0].expr), FILTER_NE); CHECK_RETURN_PTR((yyval.expr)); }
1460*287e80b3SSadaf Ebrahimi #line 1461 "sqlhist.tab.c"
1461*287e80b3SSadaf Ebrahimi break;
1462*287e80b3SSadaf Ebrahimi
1463*287e80b3SSadaf Ebrahimi case 33:
1464*287e80b3SSadaf Ebrahimi #line 164 "sqlhist.y"
1465*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-2].expr), (yyvsp[0].expr), FILTER_NE); CHECK_RETURN_PTR((yyval.expr)); }
1466*287e80b3SSadaf Ebrahimi #line 1467 "sqlhist.tab.c"
1467*287e80b3SSadaf Ebrahimi break;
1468*287e80b3SSadaf Ebrahimi
1469*287e80b3SSadaf Ebrahimi case 34:
1470*287e80b3SSadaf Ebrahimi #line 165 "sqlhist.y"
1471*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-2].expr), (yyvsp[0].expr), FILTER_BIN_AND); CHECK_RETURN_PTR((yyval.expr)); }
1472*287e80b3SSadaf Ebrahimi #line 1473 "sqlhist.tab.c"
1473*287e80b3SSadaf Ebrahimi break;
1474*287e80b3SSadaf Ebrahimi
1475*287e80b3SSadaf Ebrahimi case 35:
1476*287e80b3SSadaf Ebrahimi #line 166 "sqlhist.y"
1477*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-2].expr), (yyvsp[0].expr), FILTER_STR_CMP); CHECK_RETURN_PTR((yyval.expr)); }
1478*287e80b3SSadaf Ebrahimi #line 1479 "sqlhist.tab.c"
1479*287e80b3SSadaf Ebrahimi break;
1480*287e80b3SSadaf Ebrahimi
1481*287e80b3SSadaf Ebrahimi case 36:
1482*287e80b3SSadaf Ebrahimi #line 170 "sqlhist.y"
1483*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-2].expr), (yyvsp[0].expr), FILTER_OR); CHECK_RETURN_PTR((yyval.expr)); }
1484*287e80b3SSadaf Ebrahimi #line 1485 "sqlhist.tab.c"
1485*287e80b3SSadaf Ebrahimi break;
1486*287e80b3SSadaf Ebrahimi
1487*287e80b3SSadaf Ebrahimi case 37:
1488*287e80b3SSadaf Ebrahimi #line 171 "sqlhist.y"
1489*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-2].expr), (yyvsp[0].expr), FILTER_AND); CHECK_RETURN_PTR((yyval.expr)); }
1490*287e80b3SSadaf Ebrahimi #line 1491 "sqlhist.tab.c"
1491*287e80b3SSadaf Ebrahimi break;
1492*287e80b3SSadaf Ebrahimi
1493*287e80b3SSadaf Ebrahimi case 38:
1494*287e80b3SSadaf Ebrahimi #line 172 "sqlhist.y"
1495*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-1].expr), NULL, FILTER_NOT_GROUP); CHECK_RETURN_PTR((yyval.expr)); }
1496*287e80b3SSadaf Ebrahimi #line 1497 "sqlhist.tab.c"
1497*287e80b3SSadaf Ebrahimi break;
1498*287e80b3SSadaf Ebrahimi
1499*287e80b3SSadaf Ebrahimi case 39:
1500*287e80b3SSadaf Ebrahimi #line 173 "sqlhist.y"
1501*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[0].expr), NULL, FILTER_NOT_GROUP); CHECK_RETURN_PTR((yyval.expr)); }
1502*287e80b3SSadaf Ebrahimi #line 1503 "sqlhist.tab.c"
1503*287e80b3SSadaf Ebrahimi break;
1504*287e80b3SSadaf Ebrahimi
1505*287e80b3SSadaf Ebrahimi case 41:
1506*287e80b3SSadaf Ebrahimi #line 178 "sqlhist.y"
1507*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-2].expr), (yyvsp[0].expr), FILTER_OR); CHECK_RETURN_PTR((yyval.expr)); }
1508*287e80b3SSadaf Ebrahimi #line 1509 "sqlhist.tab.c"
1509*287e80b3SSadaf Ebrahimi break;
1510*287e80b3SSadaf Ebrahimi
1511*287e80b3SSadaf Ebrahimi case 42:
1512*287e80b3SSadaf Ebrahimi #line 179 "sqlhist.y"
1513*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-1].expr), NULL, FILTER_GROUP); CHECK_RETURN_PTR((yyval.expr)); }
1514*287e80b3SSadaf Ebrahimi #line 1515 "sqlhist.tab.c"
1515*287e80b3SSadaf Ebrahimi break;
1516*287e80b3SSadaf Ebrahimi
1517*287e80b3SSadaf Ebrahimi case 43:
1518*287e80b3SSadaf Ebrahimi #line 180 "sqlhist.y"
1519*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[-1].expr), NULL, FILTER_NOT_GROUP); CHECK_RETURN_PTR((yyval.expr)); }
1520*287e80b3SSadaf Ebrahimi #line 1521 "sqlhist.tab.c"
1521*287e80b3SSadaf Ebrahimi break;
1522*287e80b3SSadaf Ebrahimi
1523*287e80b3SSadaf Ebrahimi case 44:
1524*287e80b3SSadaf Ebrahimi #line 181 "sqlhist.y"
1525*287e80b3SSadaf Ebrahimi { (yyval.expr) = add_filter(sb, (yyvsp[0].expr), NULL, FILTER_NOT_GROUP); CHECK_RETURN_PTR((yyval.expr)); }
1526*287e80b3SSadaf Ebrahimi #line 1527 "sqlhist.tab.c"
1527*287e80b3SSadaf Ebrahimi break;
1528*287e80b3SSadaf Ebrahimi
1529*287e80b3SSadaf Ebrahimi case 46:
1530*287e80b3SSadaf Ebrahimi #line 186 "sqlhist.y"
1531*287e80b3SSadaf Ebrahimi { CHECK_RETURN_VAL(add_where(sb, (yyvsp[0].expr))); }
1532*287e80b3SSadaf Ebrahimi #line 1533 "sqlhist.tab.c"
1533*287e80b3SSadaf Ebrahimi break;
1534*287e80b3SSadaf Ebrahimi
1535*287e80b3SSadaf Ebrahimi case 56:
1536*287e80b3SSadaf Ebrahimi #line 219 "sqlhist.y"
1537*287e80b3SSadaf Ebrahimi { CHECK_RETURN_VAL(add_from(sb, (yyvsp[0].expr))); }
1538*287e80b3SSadaf Ebrahimi #line 1539 "sqlhist.tab.c"
1539*287e80b3SSadaf Ebrahimi break;
1540*287e80b3SSadaf Ebrahimi
1541*287e80b3SSadaf Ebrahimi case 57:
1542*287e80b3SSadaf Ebrahimi #line 234 "sqlhist.y"
1543*287e80b3SSadaf Ebrahimi { add_to(sb, (yyvsp[-2].expr)); }
1544*287e80b3SSadaf Ebrahimi #line 1545 "sqlhist.tab.c"
1545*287e80b3SSadaf Ebrahimi break;
1546*287e80b3SSadaf Ebrahimi
1547*287e80b3SSadaf Ebrahimi case 58:
1548*287e80b3SSadaf Ebrahimi #line 238 "sqlhist.y"
1549*287e80b3SSadaf Ebrahimi { CHECK_RETURN_VAL(add_match(sb, (yyvsp[-2].expr), (yyvsp[0].expr))); }
1550*287e80b3SSadaf Ebrahimi #line 1551 "sqlhist.tab.c"
1551*287e80b3SSadaf Ebrahimi break;
1552*287e80b3SSadaf Ebrahimi
1553*287e80b3SSadaf Ebrahimi case 59:
1554*287e80b3SSadaf Ebrahimi #line 239 "sqlhist.y"
1555*287e80b3SSadaf Ebrahimi { CHECK_RETURN_VAL(add_match(sb, (yyvsp[-2].expr), (yyvsp[0].expr))); }
1556*287e80b3SSadaf Ebrahimi #line 1557 "sqlhist.tab.c"
1557*287e80b3SSadaf Ebrahimi break;
1558*287e80b3SSadaf Ebrahimi
1559*287e80b3SSadaf Ebrahimi
1560*287e80b3SSadaf Ebrahimi #line 1561 "sqlhist.tab.c"
1561*287e80b3SSadaf Ebrahimi
1562*287e80b3SSadaf Ebrahimi default: break;
1563*287e80b3SSadaf Ebrahimi }
1564*287e80b3SSadaf Ebrahimi /* User semantic actions sometimes alter yychar, and that requires
1565*287e80b3SSadaf Ebrahimi that yytoken be updated with the new translation. We take the
1566*287e80b3SSadaf Ebrahimi approach of translating immediately before every use of yytoken.
1567*287e80b3SSadaf Ebrahimi One alternative is translating here after every semantic action,
1568*287e80b3SSadaf Ebrahimi but that translation would be missed if the semantic action invokes
1569*287e80b3SSadaf Ebrahimi YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
1570*287e80b3SSadaf Ebrahimi if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
1571*287e80b3SSadaf Ebrahimi incorrect destructor might then be invoked immediately. In the
1572*287e80b3SSadaf Ebrahimi case of YYERROR or YYBACKUP, subsequent parser actions might lead
1573*287e80b3SSadaf Ebrahimi to an incorrect destructor call or verbose syntax error message
1574*287e80b3SSadaf Ebrahimi before the lookahead is translated. */
1575*287e80b3SSadaf Ebrahimi YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
1576*287e80b3SSadaf Ebrahimi
1577*287e80b3SSadaf Ebrahimi YYPOPSTACK (yylen);
1578*287e80b3SSadaf Ebrahimi yylen = 0;
1579*287e80b3SSadaf Ebrahimi
1580*287e80b3SSadaf Ebrahimi *++yyvsp = yyval;
1581*287e80b3SSadaf Ebrahimi
1582*287e80b3SSadaf Ebrahimi /* Now 'shift' the result of the reduction. Determine what state
1583*287e80b3SSadaf Ebrahimi that goes to, based on the state we popped back to and the rule
1584*287e80b3SSadaf Ebrahimi number reduced by. */
1585*287e80b3SSadaf Ebrahimi {
1586*287e80b3SSadaf Ebrahimi const int yylhs = yyr1[yyn] - YYNTOKENS;
1587*287e80b3SSadaf Ebrahimi const int yyi = yypgoto[yylhs] + *yyssp;
1588*287e80b3SSadaf Ebrahimi yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
1589*287e80b3SSadaf Ebrahimi ? yytable[yyi]
1590*287e80b3SSadaf Ebrahimi : yydefgoto[yylhs]);
1591*287e80b3SSadaf Ebrahimi }
1592*287e80b3SSadaf Ebrahimi
1593*287e80b3SSadaf Ebrahimi goto yynewstate;
1594*287e80b3SSadaf Ebrahimi
1595*287e80b3SSadaf Ebrahimi
1596*287e80b3SSadaf Ebrahimi /*--------------------------------------.
1597*287e80b3SSadaf Ebrahimi | yyerrlab -- here on detecting error. |
1598*287e80b3SSadaf Ebrahimi `--------------------------------------*/
1599*287e80b3SSadaf Ebrahimi yyerrlab:
1600*287e80b3SSadaf Ebrahimi /* Make sure we have latest lookahead translation. See comments at
1601*287e80b3SSadaf Ebrahimi user semantic actions for why this is necessary. */
1602*287e80b3SSadaf Ebrahimi yytoken = yychar == TRACEFS_EMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
1603*287e80b3SSadaf Ebrahimi /* If not already recovering from an error, report this error. */
1604*287e80b3SSadaf Ebrahimi if (!yyerrstatus)
1605*287e80b3SSadaf Ebrahimi {
1606*287e80b3SSadaf Ebrahimi ++yynerrs;
1607*287e80b3SSadaf Ebrahimi yyerror (sb, YY_("syntax error"));
1608*287e80b3SSadaf Ebrahimi }
1609*287e80b3SSadaf Ebrahimi
1610*287e80b3SSadaf Ebrahimi if (yyerrstatus == 3)
1611*287e80b3SSadaf Ebrahimi {
1612*287e80b3SSadaf Ebrahimi /* If just tried and failed to reuse lookahead token after an
1613*287e80b3SSadaf Ebrahimi error, discard it. */
1614*287e80b3SSadaf Ebrahimi
1615*287e80b3SSadaf Ebrahimi if (yychar <= TRACEFS_EOF)
1616*287e80b3SSadaf Ebrahimi {
1617*287e80b3SSadaf Ebrahimi /* Return failure if at end of input. */
1618*287e80b3SSadaf Ebrahimi if (yychar == TRACEFS_EOF)
1619*287e80b3SSadaf Ebrahimi YYABORT;
1620*287e80b3SSadaf Ebrahimi }
1621*287e80b3SSadaf Ebrahimi else
1622*287e80b3SSadaf Ebrahimi {
1623*287e80b3SSadaf Ebrahimi yydestruct ("Error: discarding",
1624*287e80b3SSadaf Ebrahimi yytoken, &yylval, sb);
1625*287e80b3SSadaf Ebrahimi yychar = TRACEFS_EMPTY;
1626*287e80b3SSadaf Ebrahimi }
1627*287e80b3SSadaf Ebrahimi }
1628*287e80b3SSadaf Ebrahimi
1629*287e80b3SSadaf Ebrahimi /* Else will try to reuse lookahead token after shifting the error
1630*287e80b3SSadaf Ebrahimi token. */
1631*287e80b3SSadaf Ebrahimi goto yyerrlab1;
1632*287e80b3SSadaf Ebrahimi
1633*287e80b3SSadaf Ebrahimi
1634*287e80b3SSadaf Ebrahimi /*---------------------------------------------------.
1635*287e80b3SSadaf Ebrahimi | yyerrorlab -- error raised explicitly by YYERROR. |
1636*287e80b3SSadaf Ebrahimi `---------------------------------------------------*/
1637*287e80b3SSadaf Ebrahimi yyerrorlab:
1638*287e80b3SSadaf Ebrahimi /* Pacify compilers when the user code never invokes YYERROR and the
1639*287e80b3SSadaf Ebrahimi label yyerrorlab therefore never appears in user code. */
1640*287e80b3SSadaf Ebrahimi if (0)
1641*287e80b3SSadaf Ebrahimi YYERROR;
1642*287e80b3SSadaf Ebrahimi
1643*287e80b3SSadaf Ebrahimi /* Do not reclaim the symbols of the rule whose action triggered
1644*287e80b3SSadaf Ebrahimi this YYERROR. */
1645*287e80b3SSadaf Ebrahimi YYPOPSTACK (yylen);
1646*287e80b3SSadaf Ebrahimi yylen = 0;
1647*287e80b3SSadaf Ebrahimi YY_STACK_PRINT (yyss, yyssp);
1648*287e80b3SSadaf Ebrahimi yystate = *yyssp;
1649*287e80b3SSadaf Ebrahimi goto yyerrlab1;
1650*287e80b3SSadaf Ebrahimi
1651*287e80b3SSadaf Ebrahimi
1652*287e80b3SSadaf Ebrahimi /*-------------------------------------------------------------.
1653*287e80b3SSadaf Ebrahimi | yyerrlab1 -- common code for both syntax error and YYERROR. |
1654*287e80b3SSadaf Ebrahimi `-------------------------------------------------------------*/
1655*287e80b3SSadaf Ebrahimi yyerrlab1:
1656*287e80b3SSadaf Ebrahimi yyerrstatus = 3; /* Each real token shifted decrements this. */
1657*287e80b3SSadaf Ebrahimi
1658*287e80b3SSadaf Ebrahimi /* Pop stack until we find a state that shifts the error token. */
1659*287e80b3SSadaf Ebrahimi for (;;)
1660*287e80b3SSadaf Ebrahimi {
1661*287e80b3SSadaf Ebrahimi yyn = yypact[yystate];
1662*287e80b3SSadaf Ebrahimi if (!yypact_value_is_default (yyn))
1663*287e80b3SSadaf Ebrahimi {
1664*287e80b3SSadaf Ebrahimi yyn += YYSYMBOL_YYerror;
1665*287e80b3SSadaf Ebrahimi if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
1666*287e80b3SSadaf Ebrahimi {
1667*287e80b3SSadaf Ebrahimi yyn = yytable[yyn];
1668*287e80b3SSadaf Ebrahimi if (0 < yyn)
1669*287e80b3SSadaf Ebrahimi break;
1670*287e80b3SSadaf Ebrahimi }
1671*287e80b3SSadaf Ebrahimi }
1672*287e80b3SSadaf Ebrahimi
1673*287e80b3SSadaf Ebrahimi /* Pop the current state because it cannot handle the error token. */
1674*287e80b3SSadaf Ebrahimi if (yyssp == yyss)
1675*287e80b3SSadaf Ebrahimi YYABORT;
1676*287e80b3SSadaf Ebrahimi
1677*287e80b3SSadaf Ebrahimi
1678*287e80b3SSadaf Ebrahimi yydestruct ("Error: popping",
1679*287e80b3SSadaf Ebrahimi YY_ACCESSING_SYMBOL (yystate), yyvsp, sb);
1680*287e80b3SSadaf Ebrahimi YYPOPSTACK (1);
1681*287e80b3SSadaf Ebrahimi yystate = *yyssp;
1682*287e80b3SSadaf Ebrahimi YY_STACK_PRINT (yyss, yyssp);
1683*287e80b3SSadaf Ebrahimi }
1684*287e80b3SSadaf Ebrahimi
1685*287e80b3SSadaf Ebrahimi YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1686*287e80b3SSadaf Ebrahimi *++yyvsp = yylval;
1687*287e80b3SSadaf Ebrahimi YY_IGNORE_MAYBE_UNINITIALIZED_END
1688*287e80b3SSadaf Ebrahimi
1689*287e80b3SSadaf Ebrahimi
1690*287e80b3SSadaf Ebrahimi /* Shift the error token. */
1691*287e80b3SSadaf Ebrahimi YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
1692*287e80b3SSadaf Ebrahimi
1693*287e80b3SSadaf Ebrahimi yystate = yyn;
1694*287e80b3SSadaf Ebrahimi goto yynewstate;
1695*287e80b3SSadaf Ebrahimi
1696*287e80b3SSadaf Ebrahimi
1697*287e80b3SSadaf Ebrahimi /*-------------------------------------.
1698*287e80b3SSadaf Ebrahimi | yyacceptlab -- YYACCEPT comes here. |
1699*287e80b3SSadaf Ebrahimi `-------------------------------------*/
1700*287e80b3SSadaf Ebrahimi yyacceptlab:
1701*287e80b3SSadaf Ebrahimi yyresult = 0;
1702*287e80b3SSadaf Ebrahimi goto yyreturn;
1703*287e80b3SSadaf Ebrahimi
1704*287e80b3SSadaf Ebrahimi
1705*287e80b3SSadaf Ebrahimi /*-----------------------------------.
1706*287e80b3SSadaf Ebrahimi | yyabortlab -- YYABORT comes here. |
1707*287e80b3SSadaf Ebrahimi `-----------------------------------*/
1708*287e80b3SSadaf Ebrahimi yyabortlab:
1709*287e80b3SSadaf Ebrahimi yyresult = 1;
1710*287e80b3SSadaf Ebrahimi goto yyreturn;
1711*287e80b3SSadaf Ebrahimi
1712*287e80b3SSadaf Ebrahimi
1713*287e80b3SSadaf Ebrahimi #if !defined yyoverflow
1714*287e80b3SSadaf Ebrahimi /*-------------------------------------------------.
1715*287e80b3SSadaf Ebrahimi | yyexhaustedlab -- memory exhaustion comes here. |
1716*287e80b3SSadaf Ebrahimi `-------------------------------------------------*/
1717*287e80b3SSadaf Ebrahimi yyexhaustedlab:
1718*287e80b3SSadaf Ebrahimi yyerror (sb, YY_("memory exhausted"));
1719*287e80b3SSadaf Ebrahimi yyresult = 2;
1720*287e80b3SSadaf Ebrahimi /* Fall through. */
1721*287e80b3SSadaf Ebrahimi #endif
1722*287e80b3SSadaf Ebrahimi
1723*287e80b3SSadaf Ebrahimi
1724*287e80b3SSadaf Ebrahimi /*-----------------------------------------------------.
1725*287e80b3SSadaf Ebrahimi | yyreturn -- parsing is finished, return the result. |
1726*287e80b3SSadaf Ebrahimi `-----------------------------------------------------*/
1727*287e80b3SSadaf Ebrahimi yyreturn:
1728*287e80b3SSadaf Ebrahimi if (yychar != TRACEFS_EMPTY)
1729*287e80b3SSadaf Ebrahimi {
1730*287e80b3SSadaf Ebrahimi /* Make sure we have latest lookahead translation. See comments at
1731*287e80b3SSadaf Ebrahimi user semantic actions for why this is necessary. */
1732*287e80b3SSadaf Ebrahimi yytoken = YYTRANSLATE (yychar);
1733*287e80b3SSadaf Ebrahimi yydestruct ("Cleanup: discarding lookahead",
1734*287e80b3SSadaf Ebrahimi yytoken, &yylval, sb);
1735*287e80b3SSadaf Ebrahimi }
1736*287e80b3SSadaf Ebrahimi /* Do not reclaim the symbols of the rule whose action triggered
1737*287e80b3SSadaf Ebrahimi this YYABORT or YYACCEPT. */
1738*287e80b3SSadaf Ebrahimi YYPOPSTACK (yylen);
1739*287e80b3SSadaf Ebrahimi YY_STACK_PRINT (yyss, yyssp);
1740*287e80b3SSadaf Ebrahimi while (yyssp != yyss)
1741*287e80b3SSadaf Ebrahimi {
1742*287e80b3SSadaf Ebrahimi yydestruct ("Cleanup: popping",
1743*287e80b3SSadaf Ebrahimi YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, sb);
1744*287e80b3SSadaf Ebrahimi YYPOPSTACK (1);
1745*287e80b3SSadaf Ebrahimi }
1746*287e80b3SSadaf Ebrahimi #ifndef yyoverflow
1747*287e80b3SSadaf Ebrahimi if (yyss != yyssa)
1748*287e80b3SSadaf Ebrahimi YYSTACK_FREE (yyss);
1749*287e80b3SSadaf Ebrahimi #endif
1750*287e80b3SSadaf Ebrahimi
1751*287e80b3SSadaf Ebrahimi return yyresult;
1752*287e80b3SSadaf Ebrahimi }
1753*287e80b3SSadaf Ebrahimi
1754*287e80b3SSadaf Ebrahimi #line 248 "sqlhist.y"
1755*287e80b3SSadaf Ebrahimi
1756