1 /* A Bison parser, made by GNU Bison 1.875.  */
2 
3 /* Skeleton parser for Yacc-like parsing with Bison,
4    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
5 
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 2, or (at your option)
9    any later version.
10 
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15 
16    You should have received a copy of the GNU General Public License
17    along with this program; if not, write to the Free Software
18    Foundation, Inc., 59 Temple Place - Suite 330,
19    Boston, MA 02111-1307, USA.  */
20 
21 /* As a special exception, when this file is copied by Bison into a
22    Bison output file, you may use that output file without restriction.
23    This special exception was added by the Free Software Foundation
24    in version 1.24 of Bison.  */
25 
26 /* Written by Richard Stallman by simplifying the original so called
27    ``semantic'' parser.  */
28 
29 /* All symbols defined below should begin with yy or YY, to avoid
30    infringing on user name space.  This should be done even for local
31    variables, as they might otherwise be expanded by user macros.
32    There are some unavoidable exceptions within include files to
33    define necessary library symbols; they are noted "INFRINGES ON
34    USER NAME SPACE" below.  */
35 
36 /* Identify Bison output.  */
37 #define YYBISON 1
38 
39 /* Skeleton name.  */
40 #define YYSKELETON_NAME "yacc.c"
41 
42 /* Pure parsers.  */
43 #define YYPURE 1
44 
45 /* Using locations.  */
46 #define YYLSP_NEEDED 0
47 
48 
49 
50 /* Tokens.  */
51 #ifndef YYTOKENTYPE
52 # define YYTOKENTYPE
53    /* Put the tokens into the symbol table, so that GDB and other debuggers
54       know about them.  */
55    enum yytokentype {
56      TOK_IDENT = 258,
57      TOK_ATIDENT = 259,
58      TOK_CONST_INT = 260,
59      TOK_CONST_FLOAT = 261,
60      TOK_CONST_MVA = 262,
61      TOK_QUOTED_STRING = 263,
62      TOK_USERVAR = 264,
63      TOK_SYSVAR = 265,
64      TOK_CONST_STRINGS = 266,
65      TOK_BAD_NUMERIC = 267,
66      TOK_AS = 268,
67      TOK_ASC = 269,
68      TOK_ATTACH = 270,
69      TOK_AVG = 271,
70      TOK_BEGIN = 272,
71      TOK_BETWEEN = 273,
72      TOK_BIGINT = 274,
73      TOK_BY = 275,
74      TOK_CALL = 276,
75      TOK_COLLATION = 277,
76      TOK_COMMIT = 278,
77      TOK_COMMITTED = 279,
78      TOK_COUNT = 280,
79      TOK_CREATE = 281,
80      TOK_DELETE = 282,
81      TOK_DESC = 283,
82      TOK_DESCRIBE = 284,
83      TOK_DISTINCT = 285,
84      TOK_DIV = 286,
85      TOK_DROP = 287,
86      TOK_FALSE = 288,
87      TOK_FLOAT = 289,
88      TOK_FLUSH = 290,
89      TOK_FROM = 291,
90      TOK_FUNCTION = 292,
91      TOK_GLOBAL = 293,
92      TOK_GROUP = 294,
93      TOK_ID = 295,
94      TOK_IN = 296,
95      TOK_INDEX = 297,
96      TOK_INSERT = 298,
97      TOK_INT = 299,
98      TOK_INTO = 300,
99      TOK_ISOLATION = 301,
100      TOK_LEVEL = 302,
101      TOK_LIMIT = 303,
102      TOK_MATCH = 304,
103      TOK_MAX = 305,
104      TOK_META = 306,
105      TOK_MIN = 307,
106      TOK_MOD = 308,
107      TOK_NAMES = 309,
108      TOK_NULL = 310,
109      TOK_OPTION = 311,
110      TOK_ORDER = 312,
111      TOK_RAND = 313,
112      TOK_READ = 314,
113      TOK_REPEATABLE = 315,
114      TOK_REPLACE = 316,
115      TOK_RETURNS = 317,
116      TOK_ROLLBACK = 318,
117      TOK_RTINDEX = 319,
118      TOK_SELECT = 320,
119      TOK_SERIALIZABLE = 321,
120      TOK_SET = 322,
121      TOK_SESSION = 323,
122      TOK_SHOW = 324,
123      TOK_SONAME = 325,
124      TOK_START = 326,
125      TOK_STATUS = 327,
126      TOK_SUM = 328,
127      TOK_TABLES = 329,
128      TOK_TO = 330,
129      TOK_TRANSACTION = 331,
130      TOK_TRUE = 332,
131      TOK_UNCOMMITTED = 333,
132      TOK_UPDATE = 334,
133      TOK_VALUES = 335,
134      TOK_VARIABLES = 336,
135      TOK_WARNINGS = 337,
136      TOK_WEIGHT = 338,
137      TOK_WHERE = 339,
138      TOK_WITHIN = 340,
139      TOK_OR = 341,
140      TOK_AND = 342,
141      TOK_NE = 343,
142      TOK_GTE = 344,
143      TOK_LTE = 345,
144      TOK_NOT = 346,
145      TOK_NEG = 347
146    };
147 #endif
148 #define TOK_IDENT 258
149 #define TOK_ATIDENT 259
150 #define TOK_CONST_INT 260
151 #define TOK_CONST_FLOAT 261
152 #define TOK_CONST_MVA 262
153 #define TOK_QUOTED_STRING 263
154 #define TOK_USERVAR 264
155 #define TOK_SYSVAR 265
156 #define TOK_CONST_STRINGS 266
157 #define TOK_BAD_NUMERIC 267
158 #define TOK_AS 268
159 #define TOK_ASC 269
160 #define TOK_ATTACH 270
161 #define TOK_AVG 271
162 #define TOK_BEGIN 272
163 #define TOK_BETWEEN 273
164 #define TOK_BIGINT 274
165 #define TOK_BY 275
166 #define TOK_CALL 276
167 #define TOK_COLLATION 277
168 #define TOK_COMMIT 278
169 #define TOK_COMMITTED 279
170 #define TOK_COUNT 280
171 #define TOK_CREATE 281
172 #define TOK_DELETE 282
173 #define TOK_DESC 283
174 #define TOK_DESCRIBE 284
175 #define TOK_DISTINCT 285
176 #define TOK_DIV 286
177 #define TOK_DROP 287
178 #define TOK_FALSE 288
179 #define TOK_FLOAT 289
180 #define TOK_FLUSH 290
181 #define TOK_FROM 291
182 #define TOK_FUNCTION 292
183 #define TOK_GLOBAL 293
184 #define TOK_GROUP 294
185 #define TOK_ID 295
186 #define TOK_IN 296
187 #define TOK_INDEX 297
188 #define TOK_INSERT 298
189 #define TOK_INT 299
190 #define TOK_INTO 300
191 #define TOK_ISOLATION 301
192 #define TOK_LEVEL 302
193 #define TOK_LIMIT 303
194 #define TOK_MATCH 304
195 #define TOK_MAX 305
196 #define TOK_META 306
197 #define TOK_MIN 307
198 #define TOK_MOD 308
199 #define TOK_NAMES 309
200 #define TOK_NULL 310
201 #define TOK_OPTION 311
202 #define TOK_ORDER 312
203 #define TOK_RAND 313
204 #define TOK_READ 314
205 #define TOK_REPEATABLE 315
206 #define TOK_REPLACE 316
207 #define TOK_RETURNS 317
208 #define TOK_ROLLBACK 318
209 #define TOK_RTINDEX 319
210 #define TOK_SELECT 320
211 #define TOK_SERIALIZABLE 321
212 #define TOK_SET 322
213 #define TOK_SESSION 323
214 #define TOK_SHOW 324
215 #define TOK_SONAME 325
216 #define TOK_START 326
217 #define TOK_STATUS 327
218 #define TOK_SUM 328
219 #define TOK_TABLES 329
220 #define TOK_TO 330
221 #define TOK_TRANSACTION 331
222 #define TOK_TRUE 332
223 #define TOK_UNCOMMITTED 333
224 #define TOK_UPDATE 334
225 #define TOK_VALUES 335
226 #define TOK_VARIABLES 336
227 #define TOK_WARNINGS 337
228 #define TOK_WEIGHT 338
229 #define TOK_WHERE 339
230 #define TOK_WITHIN 340
231 #define TOK_OR 341
232 #define TOK_AND 342
233 #define TOK_NE 343
234 #define TOK_GTE 344
235 #define TOK_LTE 345
236 #define TOK_NOT 346
237 #define TOK_NEG 347
238 
239 
240 
241 
242 /* Copy the first part of user declarations.  */
243 
244 
245 #if USE_WINDOWS
246 #pragma warning(push,1)
247 #pragma warning(disable:4702) // unreachable code
248 #endif
249 
250 
251 // some helpers
252 #include <float.h> // for FLT_MAX
253 
254 
255 
256 /* Enabling traces.  */
257 #ifndef YYDEBUG
258 # define YYDEBUG 0
259 #endif
260 
261 /* Enabling verbose error messages.  */
262 #ifdef YYERROR_VERBOSE
263 # undef YYERROR_VERBOSE
264 # define YYERROR_VERBOSE 1
265 #else
266 # define YYERROR_VERBOSE 1
267 #endif
268 
269 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
270 typedef int YYSTYPE;
271 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
272 # define YYSTYPE_IS_DECLARED 1
273 # define YYSTYPE_IS_TRIVIAL 1
274 #endif
275 
276 
277 
278 /* Copy the second part of user declarations.  */
279 
280 
281 /* Line 214 of yacc.c.  */
282 
283 
284 #if ! defined (yyoverflow) || YYERROR_VERBOSE
285 
286 /* The parser invokes alloca or malloc; define the necessary symbols.  */
287 
288 # if YYSTACK_USE_ALLOCA
289 #  define YYSTACK_ALLOC alloca
290 # else
291 #  ifndef YYSTACK_USE_ALLOCA
292 #   if defined (alloca) || defined (_ALLOCA_H)
293 #    define YYSTACK_ALLOC alloca
294 #   else
295 #    ifdef __GNUC__
296 #     define YYSTACK_ALLOC __builtin_alloca
297 #    endif
298 #   endif
299 #  endif
300 # endif
301 
302 # ifdef YYSTACK_ALLOC
303    /* Pacify GCC's `empty if-body' warning. */
304 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
305 # else
306 #  if defined (__STDC__) || defined (__cplusplus)
307 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
308 #   define YYSIZE_T size_t
309 #  endif
310 #  define YYSTACK_ALLOC malloc
311 #  define YYSTACK_FREE free
312 # endif
313 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
314 
315 
316 #if (! defined (yyoverflow) \
317      && (! defined (__cplusplus) \
318 	 || (YYSTYPE_IS_TRIVIAL)))
319 
320 /* A type that is properly aligned for any stack member.  */
321 union yyalloc
322 {
323   short yyss;
324   YYSTYPE yyvs;
325   };
326 
327 /* The size of the maximum gap between one aligned stack and the next.  */
328 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
329 
330 /* The size of an array large to enough to hold all stacks, each with
331    N elements.  */
332 # define YYSTACK_BYTES(N) \
333      ((N) * (sizeof (short) + sizeof (YYSTYPE))				\
334       + YYSTACK_GAP_MAXIMUM)
335 
336 /* Copy COUNT objects from FROM to TO.  The source and destination do
337    not overlap.  */
338 # ifndef YYCOPY
339 #  if 1 < __GNUC__
340 #   define YYCOPY(To, From, Count) \
341       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
342 #  else
343 #   define YYCOPY(To, From, Count)		\
344       do					\
345 	{					\
346 	  register YYSIZE_T yyi;		\
347 	  for (yyi = 0; yyi < (Count); yyi++)	\
348 	    (To)[yyi] = (From)[yyi];		\
349 	}					\
350       while (0)
351 #  endif
352 # endif
353 
354 /* Relocate STACK from its old location to the new one.  The
355    local variables YYSIZE and YYSTACKSIZE give the old and new number of
356    elements in the stack, and YYPTR gives the new location of the
357    stack.  Advance YYPTR to a properly aligned location for the next
358    stack.  */
359 # define YYSTACK_RELOCATE(Stack)					\
360     do									\
361       {									\
362 	YYSIZE_T yynewbytes;						\
363 	YYCOPY (&yyptr->Stack, Stack, yysize);				\
364 	Stack = &yyptr->Stack;						\
365 	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
366 	yyptr += yynewbytes / sizeof (*yyptr);				\
367       }									\
368     while (0)
369 
370 #endif
371 
372 #if defined (__STDC__) || defined (__cplusplus)
373    typedef signed char yysigned_char;
374 #else
375    typedef short yysigned_char;
376 #endif
377 
378 /* YYFINAL -- State number of the termination state. */
379 #define YYFINAL  92
380 /* YYLAST -- Last index in YYTABLE.  */
381 #define YYLAST   807
382 
383 /* YYNTOKENS -- Number of terminals. */
384 #define YYNTOKENS  107
385 /* YYNNTS -- Number of nonterminals. */
386 #define YYNNTS  89
387 /* YYNRULES -- Number of rules. */
388 #define YYNRULES  249
389 /* YYNRULES -- Number of states. */
390 #define YYNSTATES  461
391 
392 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
393 #define YYUNDEFTOK  2
394 #define YYMAXUTOK   347
395 
396 #define YYTRANSLATE(YYX) 						\
397   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
398 
399 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
400 static const unsigned char yytranslate[] =
401 {
402        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
403        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
404        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
405        2,     2,     2,     2,     2,     2,     2,   100,    89,     2,
406      105,   106,    98,    96,   104,    97,     2,    99,     2,     2,
407        2,     2,     2,     2,     2,     2,     2,     2,     2,   103,
408       92,    90,    93,     2,     2,     2,     2,     2,     2,     2,
409        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
410        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
411        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
412        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
413        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
414        2,     2,     2,     2,    88,     2,     2,     2,     2,     2,
415        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
416        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
417        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
418        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
419        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
420        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
421        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
422        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
423        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
424        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
425        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
426        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
427        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
428        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
429       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
430       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
431       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
432       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
433       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
434       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
435       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
436       85,    86,    87,    91,    94,    95,   101,   102
437 };
438 
439 #if YYDEBUG
440 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
441    YYRHS.  */
442 static const unsigned short yyprhs[] =
443 {
444        0,     0,     3,     5,     7,    10,    12,    14,    16,    18,
445       20,    22,    24,    26,    28,    30,    32,    34,    36,    38,
446       40,    42,    44,    46,    50,    52,    54,    65,    67,    71,
447       73,    76,    77,    79,    82,    84,    89,    94,    99,   104,
448      109,   113,   119,   121,   125,   126,   128,   131,   133,   137,
449      141,   145,   149,   153,   157,   162,   166,   170,   176,   183,
450      187,   192,   198,   202,   206,   210,   214,   216,   222,   228,
451      234,   238,   242,   244,   246,   251,   255,   257,   259,   262,
452      264,   267,   269,   273,   274,   276,   280,   281,   283,   289,
453      290,   292,   296,   302,   304,   308,   310,   313,   316,   317,
454      319,   322,   327,   328,   330,   333,   335,   339,   343,   347,
455      353,   360,   364,   366,   370,   374,   376,   378,   380,   382,
456      384,   386,   389,   392,   396,   400,   404,   408,   412,   416,
457      420,   424,   428,   432,   436,   440,   444,   448,   452,   456,
458      460,   464,   466,   471,   476,   481,   485,   492,   499,   501,
459      505,   507,   509,   512,   514,   516,   518,   520,   522,   524,
460      526,   528,   530,   534,   539,   544,   549,   553,   558,   566,
461      572,   574,   576,   578,   580,   582,   584,   586,   588,   590,
462      593,   600,   602,   604,   605,   609,   611,   615,   617,   621,
463      625,   627,   631,   633,   635,   637,   641,   644,   652,   662,
464      669,   671,   675,   677,   681,   683,   687,   688,   691,   693,
465      697,   701,   702,   704,   706,   708,   711,   713,   715,   718,
466      724,   726,   730,   734,   738,   744,   749,   754,   755,   757,
467      760,   762,   766,   770,   773,   780,   781,   783,   785,   788,
468      791,   794,   796,   804,   806,   808,   810,   814,   821,   825
469 };
470 
471 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
472 static const short yyrhs[] =
473 {
474      108,     0,    -1,   109,    -1,   110,    -1,   110,   103,    -1,
475      157,    -1,   165,    -1,   151,    -1,   152,    -1,   155,    -1,
476      166,    -1,   175,    -1,   177,    -1,   178,    -1,   181,    -1,
477      186,    -1,   190,    -1,   192,    -1,   193,    -1,   194,    -1,
478      187,    -1,   195,    -1,   111,    -1,   110,   103,   111,    -1,
479      112,    -1,   147,    -1,    65,   113,    36,   117,   118,   127,
480      129,   131,   135,   137,    -1,   114,    -1,   113,   104,   114,
481       -1,    98,    -1,   116,   115,    -1,    -1,     3,    -1,    13,
482        3,    -1,   143,    -1,    16,   105,   143,   106,    -1,    50,
483      105,   143,   106,    -1,    52,   105,   143,   106,    -1,    73,
484      105,   143,   106,    -1,    25,   105,    98,   106,    -1,    83,
485      105,   106,    -1,    25,   105,    30,     3,   106,    -1,     3,
486       -1,   117,   104,     3,    -1,    -1,   119,    -1,    84,   120,
487       -1,   122,    -1,   120,    87,   120,    -1,   105,   120,   106,
488       -1,   123,    90,   125,    -1,   123,    91,   125,    -1,   123,
489       93,   125,    -1,   123,    92,   125,    -1,    49,   105,     8,
490      106,    -1,   123,    90,   124,    -1,   123,    91,   124,    -1,
491      123,    41,   105,   126,   106,    -1,   123,   101,    41,   105,
492      126,   106,    -1,   123,    41,     9,    -1,   123,   101,    41,
493        9,    -1,   123,    18,   124,    87,   124,    -1,   123,    93,
494      124,    -1,   123,    92,   124,    -1,   123,    94,   124,    -1,
495      123,    95,   124,    -1,   121,    -1,   123,    18,   125,    87,
496      125,    -1,   123,    18,   124,    87,   125,    -1,   123,    18,
497      125,    87,   124,    -1,   123,    94,   125,    -1,   123,    95,
498      125,    -1,     3,    -1,     4,    -1,    25,   105,    98,   106,
499       -1,    83,   105,   106,    -1,    40,    -1,     5,    -1,    97,
500        5,    -1,     6,    -1,    97,     6,    -1,   124,    -1,   126,
501      104,   124,    -1,    -1,   128,    -1,    39,    20,   123,    -1,
502       -1,   130,    -1,    85,    39,    57,    20,   133,    -1,    -1,
503      132,    -1,    57,    20,   133,    -1,    57,    20,    58,   105,
504      106,    -1,   134,    -1,   133,   104,   134,    -1,   123,    -1,
505      123,    14,    -1,   123,    28,    -1,    -1,   136,    -1,    48,
506        5,    -1,    48,     5,   104,     5,    -1,    -1,   138,    -1,
507       56,   139,    -1,   140,    -1,   139,   104,   140,    -1,     3,
508       90,     3,    -1,     3,    90,     5,    -1,     3,    90,   105,
509      141,   106,    -1,     3,    90,     3,   105,     8,   106,    -1,
510        3,    90,     8,    -1,   142,    -1,   141,   104,   142,    -1,
511        3,    90,   124,    -1,     3,    -1,     4,    -1,    40,    -1,
512        5,    -1,     6,    -1,     9,    -1,    97,   143,    -1,   101,
513      143,    -1,   143,    96,   143,    -1,   143,    97,   143,    -1,
514      143,    98,   143,    -1,   143,    99,   143,    -1,   143,    92,
515      143,    -1,   143,    93,   143,    -1,   143,    89,   143,    -1,
516      143,    88,   143,    -1,   143,   100,   143,    -1,   143,    31,
517      143,    -1,   143,    53,   143,    -1,   143,    95,   143,    -1,
518      143,    94,   143,    -1,   143,    90,   143,    -1,   143,    91,
519      143,    -1,   143,    87,   143,    -1,   143,    86,   143,    -1,
520      105,   143,   106,    -1,   144,    -1,     3,   105,   145,   106,
521       -1,    41,   105,   145,   106,    -1,    19,   105,   145,   106,
522       -1,     3,   105,   106,    -1,    52,   105,   143,   104,   143,
523      106,    -1,    50,   105,   143,   104,   143,   106,    -1,   146,
524       -1,   145,   104,   146,    -1,   143,    -1,     8,    -1,    69,
525      148,    -1,    82,    -1,    72,    -1,    51,    -1,     3,    -1,
526       55,    -1,     8,    -1,     5,    -1,     6,    -1,   149,    -1,
527      150,    97,   149,    -1,    67,     3,    90,   154,    -1,    67,
528        3,    90,   153,    -1,    67,     3,    90,    55,    -1,    67,
529       54,   150,    -1,    67,    10,    90,   150,    -1,    67,    38,
530        9,    90,   105,   126,   106,    -1,    67,    38,     3,    90,
531      153,    -1,     3,    -1,     8,    -1,    77,    -1,    33,    -1,
532      124,    -1,    23,    -1,    63,    -1,   156,    -1,    17,    -1,
533       71,    76,    -1,   158,    45,     3,   159,    80,   161,    -1,
534       43,    -1,    61,    -1,    -1,   105,   160,   106,    -1,   123,
535       -1,   160,   104,   123,    -1,   162,    -1,   161,   104,   162,
536       -1,   105,   163,   106,    -1,   164,    -1,   163,   104,   164,
537       -1,   124,    -1,   125,    -1,     8,    -1,   105,   126,   106,
538       -1,   105,   106,    -1,    27,    36,     3,    84,    40,    90,
539      124,    -1,    27,    36,     3,    84,    40,    41,   105,   126,
540      106,    -1,    21,     3,   105,   167,   170,   106,    -1,   168,
541       -1,   167,   104,   168,    -1,   164,    -1,   105,   169,   106,
542       -1,     8,    -1,   169,   104,     8,    -1,    -1,   104,   171,
543       -1,   172,    -1,   171,   104,   172,    -1,   164,   173,   174,
544       -1,    -1,    13,    -1,     3,    -1,    48,    -1,   176,     3,
545       -1,    29,    -1,    28,    -1,    69,    74,    -1,    79,   117,
546       67,   179,   119,    -1,   180,    -1,   179,   104,   180,    -1,
547        3,    90,   124,    -1,     3,    90,   125,    -1,     3,    90,
548      105,   126,   106,    -1,     3,    90,   105,   106,    -1,    69,
549      188,    81,   182,    -1,    -1,   183,    -1,    84,   184,    -1,
550      185,    -1,   184,    86,   185,    -1,     3,    90,     8,    -1,
551       69,    22,    -1,    67,   188,    76,    46,    47,   189,    -1,
552       -1,    38,    -1,    68,    -1,    59,    78,    -1,    59,    24,
553       -1,    60,    59,    -1,    66,    -1,    26,    37,     3,    62,
554      191,    70,     8,    -1,    44,    -1,    19,    -1,    34,    -1,
555       32,    37,     3,    -1,    15,    42,     3,    75,    64,     3,
556       -1,    35,    64,     3,    -1,    65,    10,   135,    -1
557 };
558 
559 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
560 static const unsigned short yyrline[] =
561 {
562        0,   121,   121,   122,   123,   127,   128,   129,   130,   131,
563      132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
564      142,   143,   149,   150,   154,   155,   159,   174,   175,   179,
565      180,   183,   185,   186,   190,   191,   192,   193,   194,   195,
566      196,   197,   201,   202,   205,   207,   211,   215,   216,   217,
567      221,   222,   223,   224,   228,   233,   240,   248,   256,   265,
568      270,   275,   280,   285,   290,   295,   300,   305,   310,   315,
569      320,   325,   333,   334,   339,   345,   351,   360,   361,   372,
570      373,   377,   383,   389,   391,   395,   401,   403,   407,   413,
571      415,   419,   423,   430,   431,   435,   436,   437,   440,   442,
572      446,   451,   458,   460,   464,   468,   469,   473,   478,   483,
573      489,   494,   502,   507,   514,   524,   525,   526,   527,   528,
574      529,   530,   531,   532,   533,   534,   535,   536,   537,   538,
575      539,   540,   541,   542,   543,   544,   545,   546,   547,   548,
576      549,   550,   554,   555,   556,   557,   558,   559,   563,   564,
577      568,   569,   575,   579,   580,   581,   587,   588,   589,   590,
578      591,   595,   596,   600,   605,   610,   615,   616,   620,   625,
579      633,   634,   638,   639,   640,   654,   655,   656,   660,   661,
580      667,   675,   676,   679,   681,   685,   686,   690,   691,   695,
581      699,   700,   704,   705,   706,   707,   708,   714,   720,   732,
582      740,   744,   751,   752,   759,   769,   775,   777,   781,   786,
583      790,   797,   799,   803,   804,   810,   818,   819,   825,   831,
584      839,   840,   844,   848,   852,   856,   866,   872,   873,   877,
585      881,   882,   886,   890,   897,   903,   904,   905,   909,   910,
586      911,   912,   918,   929,   930,   931,   935,   946,   958,   969
587 };
588 #endif
589 
590 #if YYDEBUG || YYERROR_VERBOSE
591 /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
592    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
593 static const char *const yytname[] =
594 {
595   "$end", "error", "$undefined", "TOK_IDENT", "TOK_ATIDENT",
596   "TOK_CONST_INT", "TOK_CONST_FLOAT", "TOK_CONST_MVA",
597   "TOK_QUOTED_STRING", "TOK_USERVAR", "TOK_SYSVAR", "TOK_CONST_STRINGS",
598   "TOK_BAD_NUMERIC", "TOK_AS", "TOK_ASC", "TOK_ATTACH", "TOK_AVG",
599   "TOK_BEGIN", "TOK_BETWEEN", "TOK_BIGINT", "TOK_BY", "TOK_CALL",
600   "TOK_COLLATION", "TOK_COMMIT", "TOK_COMMITTED", "TOK_COUNT",
601   "TOK_CREATE", "TOK_DELETE", "TOK_DESC", "TOK_DESCRIBE", "TOK_DISTINCT",
602   "TOK_DIV", "TOK_DROP", "TOK_FALSE", "TOK_FLOAT", "TOK_FLUSH",
603   "TOK_FROM", "TOK_FUNCTION", "TOK_GLOBAL", "TOK_GROUP", "TOK_ID",
604   "TOK_IN", "TOK_INDEX", "TOK_INSERT", "TOK_INT", "TOK_INTO",
605   "TOK_ISOLATION", "TOK_LEVEL", "TOK_LIMIT", "TOK_MATCH", "TOK_MAX",
606   "TOK_META", "TOK_MIN", "TOK_MOD", "TOK_NAMES", "TOK_NULL", "TOK_OPTION",
607   "TOK_ORDER", "TOK_RAND", "TOK_READ", "TOK_REPEATABLE", "TOK_REPLACE",
608   "TOK_RETURNS", "TOK_ROLLBACK", "TOK_RTINDEX", "TOK_SELECT",
609   "TOK_SERIALIZABLE", "TOK_SET", "TOK_SESSION", "TOK_SHOW", "TOK_SONAME",
610   "TOK_START", "TOK_STATUS", "TOK_SUM", "TOK_TABLES", "TOK_TO",
611   "TOK_TRANSACTION", "TOK_TRUE", "TOK_UNCOMMITTED", "TOK_UPDATE",
612   "TOK_VALUES", "TOK_VARIABLES", "TOK_WARNINGS", "TOK_WEIGHT",
613   "TOK_WHERE", "TOK_WITHIN", "TOK_OR", "TOK_AND", "'|'", "'&'", "'='",
614   "TOK_NE", "'<'", "'>'", "TOK_GTE", "TOK_LTE", "'+'", "'-'", "'*'",
615   "'/'", "'%'", "TOK_NOT", "TOK_NEG", "';'", "','", "'('", "')'",
616   "$accept", "request", "statement", "multi_stmt_list", "multi_stmt",
617   "select_from", "select_items_list", "select_item", "opt_alias",
618   "select_expr", "ident_list", "opt_where_clause", "where_clause",
619   "where_expr", "expr_float_unhandled", "where_item", "expr_ident",
620   "const_int", "const_float", "const_list", "opt_group_clause",
621   "group_clause", "opt_group_order_clause", "group_order_clause",
622   "opt_order_clause", "order_clause", "order_items_list", "order_item",
623   "opt_limit_clause", "limit_clause", "opt_option_clause",
624   "option_clause", "option_list", "option_item", "named_const_list",
625   "named_const", "expr", "function", "arglist", "arg", "show_stmt",
626   "show_what", "simple_set_value", "set_value", "set_stmt",
627   "set_global_stmt", "set_string_value", "boolean_value", "transact_op",
628   "start_transaction", "insert_into", "insert_or_replace",
629   "opt_column_list", "column_list", "insert_rows_list", "insert_row",
630   "insert_vals_list", "insert_val", "delete_from", "call_proc",
631   "call_args_list", "call_arg", "const_string_list", "opt_call_opts_list",
632   "call_opts_list", "call_opt", "opt_as", "call_opt_name", "describe",
633   "describe_tok", "show_tables", "update", "update_items_list",
634   "update_item", "show_variables", "opt_show_variables_where",
635   "show_variables_where", "show_variables_where_list",
636   "show_variables_where_entry", "show_collation", "set_transaction",
637   "opt_scope", "isolation_level", "create_function", "udf_type",
638   "drop_function", "attach_index", "flush_rtindex", "select_sysvar", 0
639 };
640 #endif
641 
642 # ifdef YYPRINT
643 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
644    token YYLEX-NUM.  */
645 static const unsigned short yytoknum[] =
646 {
647        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
648      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
649      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
650      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
651      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
652      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
653      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
654      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
655      335,   336,   337,   338,   339,   340,   341,   342,   124,    38,
656       61,   343,    60,    62,   344,   345,    43,    45,    42,    47,
657       37,   346,   347,    59,    44,    40,    41
658 };
659 # endif
660 
661 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
662 static const unsigned char yyr1[] =
663 {
664        0,   107,   108,   108,   108,   109,   109,   109,   109,   109,
665      109,   109,   109,   109,   109,   109,   109,   109,   109,   109,
666      109,   109,   110,   110,   111,   111,   112,   113,   113,   114,
667      114,   115,   115,   115,   116,   116,   116,   116,   116,   116,
668      116,   116,   117,   117,   118,   118,   119,   120,   120,   120,
669      121,   121,   121,   121,   122,   122,   122,   122,   122,   122,
670      122,   122,   122,   122,   122,   122,   122,   122,   122,   122,
671      122,   122,   123,   123,   123,   123,   123,   124,   124,   125,
672      125,   126,   126,   127,   127,   128,   129,   129,   130,   131,
673      131,   132,   132,   133,   133,   134,   134,   134,   135,   135,
674      136,   136,   137,   137,   138,   139,   139,   140,   140,   140,
675      140,   140,   141,   141,   142,   143,   143,   143,   143,   143,
676      143,   143,   143,   143,   143,   143,   143,   143,   143,   143,
677      143,   143,   143,   143,   143,   143,   143,   143,   143,   143,
678      143,   143,   144,   144,   144,   144,   144,   144,   145,   145,
679      146,   146,   147,   148,   148,   148,   149,   149,   149,   149,
680      149,   150,   150,   151,   151,   151,   151,   151,   152,   152,
681      153,   153,   154,   154,   154,   155,   155,   155,   156,   156,
682      157,   158,   158,   159,   159,   160,   160,   161,   161,   162,
683      163,   163,   164,   164,   164,   164,   164,   165,   165,   166,
684      167,   167,   168,   168,   169,   169,   170,   170,   171,   171,
685      172,   173,   173,   174,   174,   175,   176,   176,   177,   178,
686      179,   179,   180,   180,   180,   180,   181,   182,   182,   183,
687      184,   184,   185,   186,   187,   188,   188,   188,   189,   189,
688      189,   189,   190,   191,   191,   191,   192,   193,   194,   195
689 };
690 
691 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
692 static const unsigned char yyr2[] =
693 {
694        0,     2,     1,     1,     2,     1,     1,     1,     1,     1,
695        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
696        1,     1,     1,     3,     1,     1,    10,     1,     3,     1,
697        2,     0,     1,     2,     1,     4,     4,     4,     4,     4,
698        3,     5,     1,     3,     0,     1,     2,     1,     3,     3,
699        3,     3,     3,     3,     4,     3,     3,     5,     6,     3,
700        4,     5,     3,     3,     3,     3,     1,     5,     5,     5,
701        3,     3,     1,     1,     4,     3,     1,     1,     2,     1,
702        2,     1,     3,     0,     1,     3,     0,     1,     5,     0,
703        1,     3,     5,     1,     3,     1,     2,     2,     0,     1,
704        2,     4,     0,     1,     2,     1,     3,     3,     3,     5,
705        6,     3,     1,     3,     3,     1,     1,     1,     1,     1,
706        1,     2,     2,     3,     3,     3,     3,     3,     3,     3,
707        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
708        3,     1,     4,     4,     4,     3,     6,     6,     1,     3,
709        1,     1,     2,     1,     1,     1,     1,     1,     1,     1,
710        1,     1,     3,     4,     4,     4,     3,     4,     7,     5,
711        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
712        6,     1,     1,     0,     3,     1,     3,     1,     3,     3,
713        1,     3,     1,     1,     1,     3,     2,     7,     9,     6,
714        1,     3,     1,     3,     1,     3,     0,     2,     1,     3,
715        3,     0,     1,     1,     1,     2,     1,     1,     2,     5,
716        1,     3,     3,     3,     5,     4,     4,     0,     1,     2,
717        1,     3,     3,     2,     6,     0,     1,     1,     2,     2,
718        2,     1,     7,     1,     1,     1,     3,     6,     3,     3
719 };
720 
721 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
722    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
723    means the default is an error.  */
724 static const unsigned char yydefact[] =
725 {
726        0,     0,   178,     0,   175,     0,     0,   217,   216,     0,
727        0,   181,   182,   176,     0,   235,   235,     0,     0,     0,
728        2,     3,    22,    24,    25,     7,     8,     9,   177,     5,
729        0,     6,    10,    11,     0,    12,    13,    14,    15,    20,
730       16,    17,    18,    19,    21,     0,     0,     0,     0,     0,
731        0,   115,   116,   118,   119,   120,    98,     0,     0,     0,
732      117,     0,     0,     0,     0,     0,     0,    29,     0,     0,
733        0,    27,    31,    34,   141,     0,     0,   236,     0,   237,
734        0,   233,   236,   155,   154,   218,   153,   152,     0,   179,
735       42,     0,     1,     4,     0,   215,     0,     0,     0,     0,
736      246,   248,     0,     0,   249,    99,     0,     0,     0,     0,
737        0,     0,     0,     0,     0,     0,   121,   122,     0,     0,
738        0,    32,     0,    30,     0,     0,     0,     0,     0,     0,
739        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
740        0,     0,     0,     0,     0,   156,   159,   160,   158,   157,
741      161,   166,     0,   227,     0,     0,     0,     0,    23,   183,
742        0,    77,    79,   194,     0,     0,   192,   193,   202,   206,
743      200,     0,     0,   151,   145,   150,     0,   148,   100,     0,
744        0,     0,     0,     0,     0,     0,     0,    40,     0,     0,
745      140,    44,    28,    33,   132,   133,   139,   138,   130,   129,
746      136,   137,   127,   128,   135,   134,   123,   124,   125,   126,
747      131,   170,   171,   173,   165,   172,     0,   174,   164,   163,
748      167,     0,     0,     0,     0,     0,   226,   228,     0,     0,
749      220,    43,     0,     0,     0,    78,    80,   204,   196,    81,
750        0,     0,     0,     0,   244,   245,   243,     0,     0,     0,
751      142,     0,    35,   144,     0,    39,   143,     0,    36,     0,
752       37,    38,     0,     0,     0,    83,    45,   169,     0,   162,
753        0,     0,   229,   230,     0,     0,   219,    72,    73,     0,
754       76,     0,   185,     0,     0,   247,     0,   195,     0,   203,
755      202,   201,   207,   208,   199,     0,     0,     0,   149,   101,
756       41,     0,     0,     0,     0,    46,    66,    47,     0,     0,
757       86,    84,     0,     0,     0,   241,   234,     0,     0,     0,
758      222,   223,   221,     0,     0,     0,   184,     0,   180,   187,
759       82,   205,   212,     0,     0,   242,     0,   197,   147,   146,
760        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
761        0,     0,     0,     0,    89,    87,   168,   239,   238,   240,
762      232,   231,   225,     0,     0,    75,   186,     0,     0,   190,
763        0,   213,   214,   210,   211,   209,     0,     0,    49,    48,
764        0,     0,    59,     0,    55,    50,    56,    51,    63,    53,
765       62,    52,    64,    70,    65,    71,     0,    85,     0,     0,
766       98,    90,   224,    74,     0,   189,   188,   198,    54,     0,
767        0,     0,    60,     0,     0,     0,   102,   191,    61,    68,
768       69,    67,    57,     0,     0,     0,    95,    91,    93,     0,
769       26,   103,    58,    88,     0,    96,    97,     0,     0,   104,
770      105,    92,    94,     0,     0,   107,   108,   111,     0,   106,
771        0,     0,     0,   112,     0,     0,     0,   109,   110,   114,
772      113
773 };
774 
775 /* YYDEFGOTO[NTERM-NUM]. */
776 static const short yydefgoto[] =
777 {
778       -1,    19,    20,    21,    22,    23,    70,    71,   123,    72,
779       91,   265,   266,   305,   306,   307,   308,   239,   167,   240,
780      310,   311,   354,   355,   400,   401,   427,   428,   104,   105,
781      430,   431,   439,   440,   452,   453,   175,    74,   176,   177,
782       24,    87,   150,   151,    25,    26,   218,   219,    27,    28,
783       29,    30,   233,   283,   328,   329,   368,   168,    31,    32,
784      169,   170,   241,   243,   292,   293,   333,   373,    33,    34,
785       35,    36,   229,   230,    37,   226,   227,   272,   273,    38,
786       39,    80,   316,    40,   247,    41,    42,    43,    44
787 };
788 
789 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
790    STATE-NUM.  */
791 #define YYPACT_NINF -276
792 static const short yypact[] =
793 {
794      728,   -11,  -276,    53,  -276,    35,    79,  -276,  -276,   125,
795       25,  -276,  -276,  -276,   188,   173,    13,    85,   170,   174,
796     -276,    92,  -276,  -276,  -276,  -276,  -276,  -276,  -276,  -276,
797      164,  -276,  -276,  -276,   218,  -276,  -276,  -276,  -276,  -276,
798     -276,  -276,  -276,  -276,  -276,   219,   121,   233,   239,   244,
799      266,   178,  -276,  -276,  -276,  -276,   227,   179,   182,   186,
800     -276,   187,   203,   204,   205,   206,   320,  -276,   320,   320,
801      -30,  -276,    40,   545,  -276,   224,   225,    93,    33,  -276,
802      255,  -276,  -276,  -276,  -276,  -276,  -276,  -276,   249,  -276,
803     -276,   -34,  -276,    87,   317,  -276,   258,    15,   273,   252,
804     -276,  -276,   138,   333,  -276,  -276,   320,   313,    -8,   313,
805      320,   320,   320,   251,   257,   259,  -276,  -276,   373,   170,
806      254,  -276,   363,  -276,   320,   320,   320,   320,   320,   320,
807      320,   320,   320,   320,   320,   320,   320,   320,   320,   320,
808      320,   200,    33,   277,   278,  -276,  -276,  -276,  -276,  -276,
809     -276,   272,   325,   289,   371,   372,   254,   124,  -276,   271,
810      321,  -276,  -276,  -276,    42,     0,  -276,  -276,  -276,   280,
811     -276,   136,   346,  -276,  -276,   545,    65,  -276,   283,   400,
812       78,   403,   302,   108,   303,   352,   423,  -276,   320,   320,
813     -276,   -54,  -276,  -276,  -276,  -276,   568,   594,   617,   250,
814      642,   642,   119,   119,   119,   119,   -16,   -16,  -276,  -276,
815     -276,  -276,  -276,  -276,  -276,  -276,   406,  -276,  -276,  -276,
816      272,    97,   307,    33,   366,   412,  -276,  -276,   326,   -52,
817     -276,  -276,    21,   339,   417,  -276,  -276,  -276,  -276,  -276,
818      128,   158,    15,   316,  -276,  -276,  -276,   353,     1,   313,
819     -276,   419,  -276,  -276,   322,  -276,  -276,   320,  -276,   320,
820     -276,  -276,   497,   520,     9,   388,  -276,  -276,     2,  -276,
821      165,   340,   343,  -276,    63,   371,  -276,  -276,  -276,   327,
822     -276,   328,  -276,   161,   329,  -276,     2,  -276,   427,  -276,
823      151,  -276,   332,  -276,  -276,   429,   350,     2,  -276,  -276,
824     -276,   449,   472,   369,     9,   370,  -276,  -276,   287,   455,
825      392,  -276,   168,    16,   422,  -276,  -276,   470,   412,     4,
826     -276,  -276,  -276,   384,   377,    21,  -276,    54,   380,  -276,
827     -276,  -276,  -276,     7,    54,  -276,     2,  -276,  -276,  -276,
828      477,   -61,     9,    22,    -7,    22,    22,    22,    22,    22,
829       22,   460,    21,   465,   448,  -276,  -276,  -276,  -276,  -276,
830     -276,  -276,  -276,   172,   401,  -276,  -276,    52,   176,  -276,
831      329,  -276,  -276,  -276,   495,  -276,   184,   418,  -276,  -276,
832      439,   440,  -276,     2,  -276,  -276,  -276,  -276,  -276,  -276,
833     -276,  -276,  -276,  -276,  -276,  -276,     8,  -276,   473,   511,
834      227,  -276,  -276,  -276,    54,  -276,  -276,  -276,  -276,    22,
835       22,   192,  -276,     2,   512,   162,   478,  -276,  -276,  -276,
836     -276,  -276,  -276,   195,    21,   428,   153,   450,  -276,   549,
837     -276,  -276,  -276,   450,   447,  -276,  -276,    21,   466,   453,
838     -276,  -276,  -276,    11,   549,   469,  -276,  -276,   572,  -276,
839      569,   489,   196,  -276,   474,     2,   572,  -276,  -276,  -276,
840     -276
841 };
842 
843 /* YYPGOTO[NTERM-NUM].  */
844 static const short yypgoto[] =
845 {
846     -276,  -276,  -276,  -276,   488,  -276,  -276,   462,  -276,  -276,
847      481,  -276,   374,  -275,  -276,  -276,  -214,   -97,  -270,  -265,
848     -276,  -276,  -276,  -276,  -276,  -276,   180,   185,   202,  -276,
849     -276,  -276,  -276,   183,  -276,   149,    -3,  -276,   159,   379,
850     -276,  -276,   407,   484,  -276,  -276,   402,  -276,  -276,  -276,
851     -276,  -276,  -276,  -276,  -276,   276,  -276,  -241,  -276,  -276,
852     -276,   387,  -276,  -276,  -276,   315,  -276,  -276,  -276,  -276,
853     -276,  -276,  -276,   375,  -276,  -276,  -276,  -276,   334,  -276,
854     -276,   635,  -276,  -276,  -276,  -276,  -276,  -276,  -276
855 };
856 
857 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
858    positive, shift that token.  If negative, reduce the rule which
859    number is the opposite.  If zero, do what YYDEFACT says.
860    If YYTABLE_NINF, syntax error.  */
861 #define YYTABLE_NINF -212
862 static const short yytable[] =
863 {
864      166,   290,   382,   312,   321,   161,   119,   161,   237,   161,
865      371,    73,   277,   278,   445,   124,   446,   412,   282,   447,
866      161,   162,   181,   163,   277,   278,   342,   161,   162,   341,
867      264,    45,   264,   154,   279,    81,   145,   125,   146,   147,
868      357,   148,   296,   121,   217,   378,   279,   235,   236,   280,
869      155,    82,   275,   122,   363,   372,    46,   161,   303,   161,
870      162,   280,   163,   116,    83,   117,   118,   379,   161,   162,
871      155,   376,    47,   381,   120,   385,   387,   389,   391,   393,
872      395,    79,   138,   139,   140,    84,   369,    85,   149,    50,
873      182,   297,   281,   374,   358,    86,   143,   216,   383,   216,
874      211,   216,   144,   179,   281,   212,   238,   184,   185,   186,
875      362,   366,   164,   413,   304,    48,   448,    73,   411,   164,
876      165,   194,   195,   196,   197,   198,   199,   200,   201,   202,
877      203,   204,   205,   206,   207,   208,   209,   210,   397,   419,
878      421,    51,    52,    53,    54,   166,   173,    55,   423,   216,
879      124,   164,   156,    73,  -211,   244,   157,    58,   238,   367,
880      164,    89,    49,   417,   332,   277,   278,   435,   319,   249,
881      245,   250,   125,    90,    92,    83,    75,   320,    60,    61,
882      246,   436,   249,    76,   253,   262,   263,   279,   114,   330,
883      115,    51,    52,    53,    54,    93,    84,    55,    56,  -211,
884      337,   426,   280,   211,    57,   161,    86,    58,   212,    94,
885      426,    77,   249,    59,   256,   136,   137,   138,   139,   140,
886      425,    95,    96,   426,   313,   314,    97,    78,    60,    61,
887      166,   315,   286,   213,   287,    66,    98,   166,    62,    68,
888       63,    79,    99,    69,   174,   281,   380,   100,   384,   386,
889      388,   390,   392,   394,   301,   214,   302,    51,    52,    53,
890       54,    64,   288,    55,   289,   325,   180,   326,   183,   101,
891       57,    65,   286,    58,   356,   103,   286,   215,   402,    59,
892      404,   124,   405,   102,   106,    66,    67,   107,   286,    68,
893      407,   108,   109,    69,    60,    61,   286,   216,   422,   286,
894      456,   432,   457,   125,    62,   343,    63,   166,   110,   111,
895      112,   113,   418,   420,   141,   142,    51,    52,    53,    54,
896      159,   173,    55,    51,    52,    53,    54,    64,   344,    55,
897      153,   152,    58,   160,   124,   171,   172,    65,   178,    58,
898      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
899      140,    66,    67,    60,    61,    68,   125,   187,   459,    69,
900       60,    61,   188,   114,   189,   115,   193,   221,   222,   223,
901      114,   224,   115,   225,   228,   231,   232,   345,   346,   347,
902      348,   349,   350,   124,   242,   234,   248,   251,   351,   126,
903      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
904      137,   138,   139,   140,   124,   125,   254,   257,   255,   258,
905       66,   235,   268,   270,    68,   271,   274,    66,    69,   284,
906      285,    68,   294,   295,   299,    69,   125,   309,   300,   318,
907      317,   124,   323,   324,   327,   331,   334,   335,   126,   127,
908      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
909      138,   139,   140,   125,   124,   336,   259,   342,   260,   126,
910      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
911      137,   138,   139,   140,   340,   352,   125,   353,   360,   190,
912      124,   359,   364,   365,   370,   377,   126,   127,   128,   129,
913      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
914      140,   396,   125,   124,   398,   399,   252,   403,   332,   126,
915      127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
916      137,   138,   139,   140,   408,   125,   409,   410,   124,   261,
917      414,   415,   424,   434,   429,   126,   127,   128,   129,   130,
918      131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
919      125,   124,   438,   441,   437,   338,   443,   444,   126,   127,
920      128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
921      138,   139,   140,   125,   450,   451,   124,   454,   339,   455,
922      458,   158,   192,   126,   127,   128,   129,   130,   131,   132,
923      133,   134,   135,   136,   137,   138,   139,   140,   125,   124,
924      191,   257,   416,   276,   433,   460,   126,   127,   128,   129,
925      130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
926      140,   125,   442,   267,   259,   124,   220,   449,   298,   291,
927      269,   126,   127,   128,   129,   130,   131,   132,   133,   134,
928      135,   136,   137,   138,   139,   140,   406,   125,   124,   375,
929      322,    88,   361,     0,     0,   127,   128,   129,   130,   131,
930      132,   133,   134,   135,   136,   137,   138,   139,   140,     0,
931      125,     0,     0,   124,     0,     0,     0,     0,     0,     0,
932        0,     0,   128,   129,   130,   131,   132,   133,   134,   135,
933      136,   137,   138,   139,   140,   125,     0,     0,     0,     0,
934        0,     0,     0,     0,     0,     0,   129,   130,   131,   132,
935      133,   134,   135,   136,   137,   138,   139,   140,     0,     0,
936        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
937        0,     0,     0,     0,   132,   133,   134,   135,   136,   137,
938      138,   139,   140,     1,     0,     2,     0,     0,     0,     3,
939        0,     4,     0,     0,     5,     6,     7,     8,     0,     0,
940        9,     0,     0,    10,     0,     0,     0,     0,     0,     0,
941        0,    11,     0,     0,     0,     0,     0,     0,     0,     0,
942        0,     0,     0,     0,     0,     0,     0,     0,     0,    12,
943        0,    13,     0,    14,     0,    15,     0,    16,     0,    17,
944        0,     0,     0,     0,     0,     0,     0,    18
945 };
946 
947 static const short yycheck[] =
948 {
949       97,   242,     9,   268,   274,     5,    36,     5,     8,     5,
950        3,    14,     3,     4,     3,    31,     5,     9,   232,     8,
951        5,     6,    30,     8,     3,     4,    87,     5,     6,   304,
952       84,    42,    84,    67,    25,    22,     3,    53,     5,     6,
953       24,     8,    41,     3,   141,   106,    25,     5,     6,    40,
954      104,    38,   104,    13,   319,    48,     3,     5,    49,     5,
955        6,    40,     8,    66,    51,    68,    69,   342,     5,     6,
956      104,   336,    37,   343,   104,   345,   346,   347,   348,   349,
957      350,    68,    98,    99,   100,    72,   327,    74,    55,    64,
958       98,    90,    83,   334,    78,    82,     3,    97,   105,    97,
959        3,    97,     9,   106,    83,     8,   106,   110,   111,   112,
960      106,   325,    97,   105,   105,    36,   105,   120,   383,    97,
961      105,   124,   125,   126,   127,   128,   129,   130,   131,   132,
962      133,   134,   135,   136,   137,   138,   139,   140,   352,   409,
963      410,     3,     4,     5,     6,   242,     8,     9,   413,    97,
964       31,    97,    65,   156,     3,    19,    69,    19,   106,   105,
965       97,    76,    37,   404,    13,     3,     4,    14,   105,   104,
966       34,   106,    53,     3,     0,    51,     3,   274,    40,    41,
967       44,    28,   104,    10,   106,   188,   189,    25,    50,   286,
968       52,     3,     4,     5,     6,   103,    72,     9,    10,    48,
969      297,   415,    40,     3,    16,     5,    82,    19,     8,    45,
970      424,    38,   104,    25,   106,    96,    97,    98,    99,   100,
971       58,     3,     3,   437,    59,    60,   105,    54,    40,    41,
972      327,    66,   104,    33,   106,    97,     3,   334,    50,   101,
973       52,    68,     3,   105,   106,    83,   343,     3,   345,   346,
974      347,   348,   349,   350,   257,    55,   259,     3,     4,     5,
975        6,    73,   104,     9,   106,   104,   107,   106,   109,     3,
976       16,    83,   104,    19,   106,    48,   104,    77,   106,    25,
977      104,    31,   106,   105,   105,    97,    98,   105,   104,   101,
978      106,   105,   105,   105,    40,    41,   104,    97,   106,   104,
979      104,   106,   106,    53,    50,    18,    52,   404,   105,   105,
980      105,   105,   409,   410,    90,    90,     3,     4,     5,     6,
981        3,     8,     9,     3,     4,     5,     6,    73,    41,     9,
982       81,    76,    19,    75,    31,    62,    84,    83,     5,    19,
983       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
984      100,    97,    98,    40,    41,   101,    53,   106,   455,   105,
985       40,    41,   105,    50,   105,    52,     3,    90,    90,    97,
986       50,    46,    52,    84,     3,     3,   105,    90,    91,    92,
987       93,    94,    95,    31,   104,    64,    40,   104,   101,    86,
988       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
989       97,    98,    99,   100,    31,    53,     3,   104,   106,   106,
990       97,     5,   105,    47,   101,     3,    90,    97,   105,    80,
991        3,   101,   106,    70,     5,   105,    53,    39,   106,    86,
992       90,    31,   105,   105,   105,     8,   104,     8,    86,    87,
993       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
994       98,    99,   100,    53,    31,   105,   104,    87,   106,    86,
995       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
996       97,    98,    99,   100,   105,    20,    53,    85,     8,   106,
997       31,    59,    98,   106,   104,     8,    86,    87,    88,    89,
998       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
999      100,    41,    53,    31,    39,    57,   106,   106,    13,    86,
1000       87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1001       97,    98,    99,   100,   106,    53,    87,    87,    31,   106,
1002       57,    20,    20,   105,    56,    86,    87,    88,    89,    90,
1003       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1004       53,    31,     3,   106,   104,   106,    90,   104,    86,    87,
1005       88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1006       98,    99,   100,    53,   105,     3,    31,     8,   106,    90,
1007      106,    93,   120,    86,    87,    88,    89,    90,    91,    92,
1008       93,    94,    95,    96,    97,    98,    99,   100,    53,    31,
1009      119,   104,   400,   229,   424,   456,    86,    87,    88,    89,
1010       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1011      100,    53,   437,   221,   104,    31,   142,   444,   249,   242,
1012      223,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1013       95,    96,    97,    98,    99,   100,   370,    53,    31,   334,
1014      275,    16,   318,    -1,    -1,    87,    88,    89,    90,    91,
1015       92,    93,    94,    95,    96,    97,    98,    99,   100,    -1,
1016       53,    -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
1017       -1,    -1,    88,    89,    90,    91,    92,    93,    94,    95,
1018       96,    97,    98,    99,   100,    53,    -1,    -1,    -1,    -1,
1019       -1,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,    92,
1020       93,    94,    95,    96,    97,    98,    99,   100,    -1,    -1,
1021       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1022       -1,    -1,    -1,    -1,    92,    93,    94,    95,    96,    97,
1023       98,    99,   100,    15,    -1,    17,    -1,    -1,    -1,    21,
1024       -1,    23,    -1,    -1,    26,    27,    28,    29,    -1,    -1,
1025       32,    -1,    -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,
1026       -1,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1027       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,
1028       -1,    63,    -1,    65,    -1,    67,    -1,    69,    -1,    71,
1029       -1,    -1,    -1,    -1,    -1,    -1,    -1,    79
1030 };
1031 
1032 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1033    symbol of state STATE-NUM.  */
1034 static const unsigned char yystos[] =
1035 {
1036        0,    15,    17,    21,    23,    26,    27,    28,    29,    32,
1037       35,    43,    61,    63,    65,    67,    69,    71,    79,   108,
1038      109,   110,   111,   112,   147,   151,   152,   155,   156,   157,
1039      158,   165,   166,   175,   176,   177,   178,   181,   186,   187,
1040      190,   192,   193,   194,   195,    42,     3,    37,    36,    37,
1041       64,     3,     4,     5,     6,     9,    10,    16,    19,    25,
1042       40,    41,    50,    52,    73,    83,    97,    98,   101,   105,
1043      113,   114,   116,   143,   144,     3,    10,    38,    54,    68,
1044      188,    22,    38,    51,    72,    74,    82,   148,   188,    76,
1045        3,   117,     0,   103,    45,     3,     3,   105,     3,     3,
1046        3,     3,   105,    48,   135,   136,   105,   105,   105,   105,
1047      105,   105,   105,   105,    50,    52,   143,   143,   143,    36,
1048      104,     3,    13,   115,    31,    53,    86,    87,    88,    89,
1049       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1050      100,    90,    90,     3,     9,     3,     5,     6,     8,    55,
1051      149,   150,    76,    81,    67,   104,    65,    69,   111,     3,
1052       75,     5,     6,     8,    97,   105,   124,   125,   164,   167,
1053      168,    62,    84,     8,   106,   143,   145,   146,     5,   143,
1054      145,    30,    98,   145,   143,   143,   143,   106,   105,   105,
1055      106,   117,   114,     3,   143,   143,   143,   143,   143,   143,
1056      143,   143,   143,   143,   143,   143,   143,   143,   143,   143,
1057      143,     3,     8,    33,    55,    77,    97,   124,   153,   154,
1058      150,    90,    90,    97,    46,    84,   182,   183,     3,   179,
1059      180,     3,   105,   159,    64,     5,     6,     8,   106,   124,
1060      126,   169,   104,   170,    19,    34,    44,   191,    40,   104,
1061      106,   104,   106,   106,     3,   106,   106,   104,   106,   104,
1062      106,   106,   143,   143,    84,   118,   119,   153,   105,   149,
1063       47,     3,   184,   185,    90,   104,   119,     3,     4,    25,
1064       40,    83,   123,   160,    80,     3,   104,   106,   104,   106,
1065      164,   168,   171,   172,   106,    70,    41,    90,   146,     5,
1066      106,   143,   143,    49,   105,   120,   121,   122,   123,    39,
1067      127,   128,   126,    59,    60,    66,   189,    90,    86,   105,
1068      124,   125,   180,   105,   105,   104,   106,   105,   161,   162,
1069      124,     8,    13,   173,   104,     8,   105,   124,   106,   106,
1070      105,   120,    87,    18,    41,    90,    91,    92,    93,    94,
1071       95,   101,    20,    85,   129,   130,   106,    24,    78,    59,
1072        8,   185,   106,   126,    98,   106,   123,   105,   163,   164,
1073      104,     3,    48,   174,   164,   172,   126,     8,   106,   120,
1074      124,   125,     9,   105,   124,   125,   124,   125,   124,   125,
1075      124,   125,   124,   125,   124,   125,    41,   123,    39,    57,
1076      131,   132,   106,   106,   104,   106,   162,   106,   106,    87,
1077       87,   126,     9,   105,    57,    20,   135,   164,   124,   125,
1078      124,   125,   106,   126,    20,    58,   123,   133,   134,    56,
1079      137,   138,   106,   133,   105,    14,    28,   104,     3,   139,
1080      140,   106,   134,    90,   104,     3,     5,     8,   105,   140,
1081      105,     3,   141,   142,     8,    90,   104,   106,   106,   124,
1082      142
1083 };
1084 
1085 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
1086 # define YYSIZE_T __SIZE_TYPE__
1087 #endif
1088 #if ! defined (YYSIZE_T) && defined (size_t)
1089 # define YYSIZE_T size_t
1090 #endif
1091 #if ! defined (YYSIZE_T)
1092 # if defined (__STDC__) || defined (__cplusplus)
1093 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1094 #  define YYSIZE_T size_t
1095 # endif
1096 #endif
1097 #if ! defined (YYSIZE_T)
1098 # define YYSIZE_T unsigned int
1099 #endif
1100 
1101 #define yyerrok		(yyerrstatus = 0)
1102 #define yyclearin	(yychar = YYEMPTY)
1103 #define YYEMPTY		(-2)
1104 #define YYEOF		0
1105 
1106 #define YYACCEPT	goto yyacceptlab
1107 #define YYABORT		goto yyabortlab
1108 #define YYERROR		goto yyerrlab1
1109 
1110 /* Like YYERROR except do call yyerror.  This remains here temporarily
1111    to ease the transition to the new meaning of YYERROR, for GCC.
1112    Once GCC version 2 has supplanted version 1, this can go.  */
1113 
1114 #define YYFAIL		goto yyerrlab
1115 
1116 #define YYRECOVERING()  (!!yyerrstatus)
1117 
1118 #define YYBACKUP(Token, Value)					\
1119 do								\
1120   if (yychar == YYEMPTY && yylen == 1)				\
1121     {								\
1122       yychar = (Token);						\
1123       yylval = (Value);						\
1124       yytoken = YYTRANSLATE (yychar);				\
1125       YYPOPSTACK;						\
1126       goto yybackup;						\
1127     }								\
1128   else								\
1129     { 								\
1130       yyerror (pParser, "syntax error: cannot back up");\
1131       YYERROR;							\
1132     }								\
1133 while (0)
1134 
1135 #define YYTERROR	1
1136 #define YYERRCODE	256
1137 
1138 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
1139    are run).  */
1140 
1141 #ifndef YYLLOC_DEFAULT
1142 # define YYLLOC_DEFAULT(Current, Rhs, N)         \
1143   Current.first_line   = Rhs[1].first_line;      \
1144   Current.first_column = Rhs[1].first_column;    \
1145   Current.last_line    = Rhs[N].last_line;       \
1146   Current.last_column  = Rhs[N].last_column;
1147 #endif
1148 
1149 /* YYLEX -- calling `yylex' with the right arguments.  */
1150 
1151 #ifdef YYLEX_PARAM
1152 # define YYLEX yylex (&yylval, YYLEX_PARAM)
1153 #else
1154 # define YYLEX yylex (&yylval, pParser)
1155 #endif
1156 
1157 /* Enable debugging if requested.  */
1158 #if YYDEBUG
1159 
1160 # ifndef YYFPRINTF
1161 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1162 #  define YYFPRINTF fprintf
1163 # endif
1164 
1165 # define YYDPRINTF(Args)			\
1166 do {						\
1167   if (yydebug)					\
1168     YYFPRINTF Args;				\
1169 } while (0)
1170 
1171 # define YYDSYMPRINT(Args)			\
1172 do {						\
1173   if (yydebug)					\
1174     yysymprint Args;				\
1175 } while (0)
1176 
1177 # define YYDSYMPRINTF(Title, Token, Value, Location)		\
1178 do {								\
1179   if (yydebug)							\
1180     {								\
1181       YYFPRINTF (stderr, "%s ", Title);				\
1182       yysymprint (stderr, 					\
1183                   Token, Value);	\
1184       YYFPRINTF (stderr, "\n");					\
1185     }								\
1186 } while (0)
1187 
1188 /*------------------------------------------------------------------.
1189 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1190 | TOP (cinluded).                                                   |
1191 `------------------------------------------------------------------*/
1192 
1193 #if defined (__STDC__) || defined (__cplusplus)
1194 static void
yy_stack_print(short * bottom,short * top)1195 yy_stack_print (short *bottom, short *top)
1196 #else
1197 static void
1198 yy_stack_print (bottom, top)
1199     short *bottom;
1200     short *top;
1201 #endif
1202 {
1203   YYFPRINTF (stderr, "Stack now");
1204   for (/* Nothing. */; bottom <= top; ++bottom)
1205     YYFPRINTF (stderr, " %d", *bottom);
1206   YYFPRINTF (stderr, "\n");
1207 }
1208 
1209 # define YY_STACK_PRINT(Bottom, Top)				\
1210 do {								\
1211   if (yydebug)							\
1212     yy_stack_print ((Bottom), (Top));				\
1213 } while (0)
1214 
1215 
1216 /*------------------------------------------------.
1217 | Report that the YYRULE is going to be reduced.  |
1218 `------------------------------------------------*/
1219 
1220 #if defined (__STDC__) || defined (__cplusplus)
1221 static void
yy_reduce_print(int yyrule)1222 yy_reduce_print (int yyrule)
1223 #else
1224 static void
1225 yy_reduce_print (yyrule)
1226     int yyrule;
1227 #endif
1228 {
1229   int yyi;
1230   unsigned int yylineno = yyrline[yyrule];
1231   YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
1232              yyrule - 1, yylineno);
1233   /* Print the symbols being reduced, and their result.  */
1234   for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
1235     YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
1236   YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
1237 }
1238 
1239 # define YY_REDUCE_PRINT(Rule)		\
1240 do {					\
1241   if (yydebug)				\
1242     yy_reduce_print (Rule);		\
1243 } while (0)
1244 
1245 /* Nonzero means print parse trace.  It is left uninitialized so that
1246    multiple parsers can coexist.  */
1247 int yydebug;
1248 #else /* !YYDEBUG */
1249 # define YYDPRINTF(Args)
1250 # define YYDSYMPRINT(Args)
1251 # define YYDSYMPRINTF(Title, Token, Value, Location)
1252 # define YY_STACK_PRINT(Bottom, Top)
1253 # define YY_REDUCE_PRINT(Rule)
1254 #endif /* !YYDEBUG */
1255 
1256 
1257 /* YYINITDEPTH -- initial size of the parser's stacks.  */
1258 #ifndef	YYINITDEPTH
1259 # define YYINITDEPTH 200
1260 #endif
1261 
1262 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1263    if the built-in stack extension method is used).
1264 
1265    Do not make this value too large; the results are undefined if
1266    SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
1267    evaluated with infinite-precision integer arithmetic.  */
1268 
1269 #if YYMAXDEPTH == 0
1270 # undef YYMAXDEPTH
1271 #endif
1272 
1273 #ifndef YYMAXDEPTH
1274 # define YYMAXDEPTH 10000
1275 #endif
1276 
1277 
1278 
1279 #if YYERROR_VERBOSE
1280 
1281 # ifndef yystrlen
1282 #  if defined (__GLIBC__) && defined (_STRING_H)
1283 #   define yystrlen strlen
1284 #  else
1285 /* Return the length of YYSTR.  */
1286 static YYSIZE_T
1287 #   if defined (__STDC__) || defined (__cplusplus)
yystrlen(const char * yystr)1288 yystrlen (const char *yystr)
1289 #   else
1290 yystrlen (yystr)
1291      const char *yystr;
1292 #   endif
1293 {
1294   register const char *yys = yystr;
1295 
1296   while (*yys++ != '\0')
1297     continue;
1298 
1299   return yys - yystr - 1;
1300 }
1301 #  endif
1302 # endif
1303 
1304 # ifndef yystpcpy
1305 #  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1306 #   define yystpcpy stpcpy
1307 #  else
1308 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1309    YYDEST.  */
1310 static char *
1311 #   if defined (__STDC__) || defined (__cplusplus)
yystpcpy(char * yydest,const char * yysrc)1312 yystpcpy (char *yydest, const char *yysrc)
1313 #   else
1314 yystpcpy (yydest, yysrc)
1315      char *yydest;
1316      const char *yysrc;
1317 #   endif
1318 {
1319   register char *yyd = yydest;
1320   register const char *yys = yysrc;
1321 
1322   while ((*yyd++ = *yys++) != '\0')
1323     continue;
1324 
1325   return yyd - 1;
1326 }
1327 #  endif
1328 # endif
1329 
1330 #endif /* !YYERROR_VERBOSE */
1331 
1332 
1333 
1334 #if YYDEBUG
1335 /*--------------------------------.
1336 | Print this symbol on YYOUTPUT.  |
1337 `--------------------------------*/
1338 
1339 #if defined (__STDC__) || defined (__cplusplus)
1340 static void
yysymprint(FILE * yyoutput,int yytype,YYSTYPE * yyvaluep)1341 yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
1342 #else
1343 static void
1344 yysymprint (yyoutput, yytype, yyvaluep)
1345     FILE *yyoutput;
1346     int yytype;
1347     YYSTYPE *yyvaluep;
1348 #endif
1349 {
1350   /* Pacify ``unused variable'' warnings.  */
1351   (void) yyvaluep;
1352 
1353   if (yytype < YYNTOKENS)
1354     {
1355       YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1356 # ifdef YYPRINT
1357       YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1358 # endif
1359     }
1360   else
1361     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1362 
1363   switch (yytype)
1364     {
1365       default:
1366         break;
1367     }
1368   YYFPRINTF (yyoutput, ")");
1369 }
1370 
1371 #endif /* ! YYDEBUG */
1372 /*-----------------------------------------------.
1373 | Release the memory associated to this symbol.  |
1374 `-----------------------------------------------*/
1375 
1376 #if defined (__STDC__) || defined (__cplusplus)
1377 static void
yydestruct(int yytype,YYSTYPE * yyvaluep)1378 yydestruct (int yytype, YYSTYPE *yyvaluep)
1379 #else
1380 static void
1381 yydestruct (yytype, yyvaluep)
1382     int yytype;
1383     YYSTYPE *yyvaluep;
1384 #endif
1385 {
1386   /* Pacify ``unused variable'' warnings.  */
1387   (void) yyvaluep;
1388 
1389   switch (yytype)
1390     {
1391 
1392       default:
1393         break;
1394     }
1395 }
1396 
1397 
1398 /* Prevent warnings from -Wmissing-prototypes.  */
1399 
1400 #ifdef YYPARSE_PARAM
1401 # if defined (__STDC__) || defined (__cplusplus)
1402 int yyparse (void *YYPARSE_PARAM);
1403 # else
1404 int yyparse ();
1405 # endif
1406 #else /* ! YYPARSE_PARAM */
1407 #if defined (__STDC__) || defined (__cplusplus)
1408 int yyparse ( SqlParser_c * pParser );
1409 #else
1410 int yyparse ();
1411 #endif
1412 #endif /* ! YYPARSE_PARAM */
1413 
1414 
1415 
1416 
1417 
1418 
1419 /*----------.
1420 | yyparse.  |
1421 `----------*/
1422 
1423 #ifdef YYPARSE_PARAM
1424 # if defined (__STDC__) || defined (__cplusplus)
yyparse(void * YYPARSE_PARAM)1425 int yyparse (void *YYPARSE_PARAM)
1426 # else
1427 int yyparse (YYPARSE_PARAM)
1428   void *YYPARSE_PARAM;
1429 # endif
1430 #else /* ! YYPARSE_PARAM */
1431 #if defined (__STDC__) || defined (__cplusplus)
1432 int
1433 yyparse ( SqlParser_c * pParser )
1434 #else
1435 int
1436 yyparse (pParser)
1437      SqlParser_c * pParser ;
1438 #endif
1439 #endif
1440 {
1441   /* The lookahead symbol.  */
1442 int yychar;
1443 
1444 /* The semantic value of the lookahead symbol.  */
1445 YYSTYPE yylval;
1446 
1447 /* Number of syntax errors so far.  */
1448 int yynerrs;
1449 
1450   register int yystate;
1451   register int yyn;
1452   int yyresult;
1453   /* Number of tokens to shift before error messages enabled.  */
1454   int yyerrstatus;
1455   /* Lookahead token as an internal (translated) token number.  */
1456   int yytoken = 0;
1457 
1458   /* Three stacks and their tools:
1459      `yyss': related to states,
1460      `yyvs': related to semantic values,
1461      `yyls': related to locations.
1462 
1463      Refer to the stacks thru separate pointers, to allow yyoverflow
1464      to reallocate them elsewhere.  */
1465 
1466   /* The state stack.  */
1467   short	yyssa[YYINITDEPTH];
1468   short *yyss = yyssa;
1469   register short *yyssp;
1470 
1471   /* The semantic value stack.  */
1472   YYSTYPE yyvsa[YYINITDEPTH];
1473   YYSTYPE *yyvs = yyvsa;
1474   register YYSTYPE *yyvsp;
1475 
1476 
1477 
1478 #define YYPOPSTACK   (yyvsp--, yyssp--)
1479 
1480   YYSIZE_T yystacksize = YYINITDEPTH;
1481 
1482   /* The variables used to return semantic value and location from the
1483      action routines.  */
1484   YYSTYPE yyval;
1485 
1486 
1487   /* When reducing, the number of symbols on the RHS of the reduced
1488      rule.  */
1489   int yylen;
1490 
1491   YYDPRINTF ((stderr, "Starting parse\n"));
1492 
1493   yystate = 0;
1494   yyerrstatus = 0;
1495   yynerrs = 0;
1496   yychar = YYEMPTY;		/* Cause a token to be read.  */
1497 
1498   /* Initialize stack pointers.
1499      Waste one element of value and location stack
1500      so that they stay on the same level as the state stack.
1501      The wasted elements are never initialized.  */
1502 
1503   yyssp = yyss;
1504   yyvsp = yyvs;
1505 
1506   goto yysetstate;
1507 
1508 /*------------------------------------------------------------.
1509 | yynewstate -- Push a new state, which is found in yystate.  |
1510 `------------------------------------------------------------*/
1511  yynewstate:
1512   /* In all cases, when you get here, the value and location stacks
1513      have just been pushed. so pushing a state here evens the stacks.
1514      */
1515   yyssp++;
1516 
1517  yysetstate:
1518   *yyssp = yystate;
1519 
1520   if (yyss + yystacksize - 1 <= yyssp)
1521     {
1522       /* Get the current used size of the three stacks, in elements.  */
1523       YYSIZE_T yysize = yyssp - yyss + 1;
1524 
1525 #ifdef yyoverflow
1526       {
1527 	/* Give user a chance to reallocate the stack. Use copies of
1528 	   these so that the &'s don't force the real ones into
1529 	   memory.  */
1530 	YYSTYPE *yyvs1 = yyvs;
1531 	short *yyss1 = yyss;
1532 
1533 
1534 	/* Each stack pointer address is followed by the size of the
1535 	   data in use in that stack, in bytes.  This used to be a
1536 	   conditional around just the two extra args, but that might
1537 	   be undefined if yyoverflow is a macro.  */
1538 	yyoverflow ("parser stack overflow",
1539 		    &yyss1, yysize * sizeof (*yyssp),
1540 		    &yyvs1, yysize * sizeof (*yyvsp),
1541 
1542 		    &yystacksize);
1543 
1544 	yyss = yyss1;
1545 	yyvs = yyvs1;
1546       }
1547 #else /* no yyoverflow */
1548 # ifndef YYSTACK_RELOCATE
1549       goto yyoverflowlab;
1550 # else
1551       /* Extend the stack our own way.  */
1552       if (YYMAXDEPTH <= yystacksize)
1553 	goto yyoverflowlab;
1554       yystacksize *= 2;
1555       if (YYMAXDEPTH < yystacksize)
1556 	yystacksize = YYMAXDEPTH;
1557 
1558       {
1559 	short *yyss1 = yyss;
1560 	union yyalloc *yyptr =
1561 	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1562 	if (! yyptr)
1563 	  goto yyoverflowlab;
1564 	YYSTACK_RELOCATE (yyss);
1565 	YYSTACK_RELOCATE (yyvs);
1566 
1567 #  undef YYSTACK_RELOCATE
1568 	if (yyss1 != yyssa)
1569 	  YYSTACK_FREE (yyss1);
1570       }
1571 # endif
1572 #endif /* no yyoverflow */
1573 
1574       yyssp = yyss + yysize - 1;
1575       yyvsp = yyvs + yysize - 1;
1576 
1577 
1578       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1579 		  (unsigned long int) yystacksize));
1580 
1581       if (yyss + yystacksize - 1 <= yyssp)
1582 	YYABORT;
1583     }
1584 
1585   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1586 
1587   goto yybackup;
1588 
1589 /*-----------.
1590 | yybackup.  |
1591 `-----------*/
1592 yybackup:
1593 
1594 /* Do appropriate processing given the current state.  */
1595 /* Read a lookahead token if we need one and don't already have one.  */
1596 /* yyresume: */
1597 
1598   /* First try to decide what to do without reference to lookahead token.  */
1599 
1600   yyn = yypact[yystate];
1601   if (yyn == YYPACT_NINF)
1602     goto yydefault;
1603 
1604   /* Not known => get a lookahead token if don't already have one.  */
1605 
1606   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
1607   if (yychar == YYEMPTY)
1608     {
1609       YYDPRINTF ((stderr, "Reading a token: "));
1610       yychar = YYLEX;
1611     }
1612 
1613   if (yychar <= YYEOF)
1614     {
1615       yychar = yytoken = YYEOF;
1616       YYDPRINTF ((stderr, "Now at end of input.\n"));
1617     }
1618   else
1619     {
1620       yytoken = YYTRANSLATE (yychar);
1621       YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
1622     }
1623 
1624   /* If the proper action on seeing token YYTOKEN is to reduce or to
1625      detect an error, take that action.  */
1626   yyn += yytoken;
1627   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1628     goto yydefault;
1629   yyn = yytable[yyn];
1630   if (yyn <= 0)
1631     {
1632       if (yyn == 0 || yyn == YYTABLE_NINF)
1633 	goto yyerrlab;
1634       yyn = -yyn;
1635       goto yyreduce;
1636     }
1637 
1638   if (yyn == YYFINAL)
1639     YYACCEPT;
1640 
1641   /* Shift the lookahead token.  */
1642   YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
1643 
1644   /* Discard the token being shifted unless it is eof.  */
1645   if (yychar != YYEOF)
1646     yychar = YYEMPTY;
1647 
1648   *++yyvsp = yylval;
1649 
1650 
1651   /* Count tokens shifted since error; after three, turn off error
1652      status.  */
1653   if (yyerrstatus)
1654     yyerrstatus--;
1655 
1656   yystate = yyn;
1657   goto yynewstate;
1658 
1659 
1660 /*-----------------------------------------------------------.
1661 | yydefault -- do the default action for the current state.  |
1662 `-----------------------------------------------------------*/
1663 yydefault:
1664   yyn = yydefact[yystate];
1665   if (yyn == 0)
1666     goto yyerrlab;
1667   goto yyreduce;
1668 
1669 
1670 /*-----------------------------.
1671 | yyreduce -- Do a reduction.  |
1672 `-----------------------------*/
1673 yyreduce:
1674   /* yyn is the number of a rule to reduce with.  */
1675   yylen = yyr2[yyn];
1676 
1677   /* If YYLEN is nonzero, implement the default value of the action:
1678      `$$ = $1'.
1679 
1680      Otherwise, the following line sets YYVAL to garbage.
1681      This behavior is undocumented and Bison
1682      users should not rely upon it.  Assigning to YYVAL
1683      unconditionally makes the parser a bit smaller, and it avoids a
1684      GCC warning that YYVAL may be used uninitialized.  */
1685   yyval = yyvsp[1-yylen];
1686 
1687 
1688   YY_REDUCE_PRINT (yyn);
1689   switch (yyn)
1690     {
1691         case 2:
1692 
1693     { pParser->PushQuery(); ;}
1694     break;
1695 
1696   case 22:
1697 
1698     { pParser->PushQuery(); ;}
1699     break;
1700 
1701   case 23:
1702 
1703     { pParser->PushQuery(); ;}
1704     break;
1705 
1706   case 26:
1707 
1708     {
1709 			pParser->m_pStmt->m_eStmt = STMT_SELECT;
1710 			pParser->m_pQuery->m_sIndexes.SetBinary ( pParser->m_pBuf+yyvsp[-6].m_iStart, yyvsp[-6].m_iEnd-yyvsp[-6].m_iStart );
1711 		;}
1712     break;
1713 
1714   case 29:
1715 
1716     { pParser->AddItem ( &yyvsp[0] ); ;}
1717     break;
1718 
1719   case 32:
1720 
1721     { pParser->AliasLastItem ( &yyvsp[0] ); ;}
1722     break;
1723 
1724   case 33:
1725 
1726     { pParser->AliasLastItem ( &yyvsp[0] ); ;}
1727     break;
1728 
1729   case 34:
1730 
1731     { pParser->AddItem ( &yyvsp[0] ); ;}
1732     break;
1733 
1734   case 35:
1735 
1736     { pParser->AddItem ( &yyvsp[-1], SPH_AGGR_AVG, &yyvsp[-3], &yyvsp[0] ); ;}
1737     break;
1738 
1739   case 36:
1740 
1741     { pParser->AddItem ( &yyvsp[-1], SPH_AGGR_MAX, &yyvsp[-3], &yyvsp[0] ); ;}
1742     break;
1743 
1744   case 37:
1745 
1746     { pParser->AddItem ( &yyvsp[-1], SPH_AGGR_MIN, &yyvsp[-3], &yyvsp[0] ); ;}
1747     break;
1748 
1749   case 38:
1750 
1751     { pParser->AddItem ( &yyvsp[-1], SPH_AGGR_SUM, &yyvsp[-3], &yyvsp[0] ); ;}
1752     break;
1753 
1754   case 39:
1755 
1756     { if ( !pParser->AddItem ( "count(*)", &yyvsp[-3], &yyvsp[0] ) ) YYERROR; ;}
1757     break;
1758 
1759   case 40:
1760 
1761     { if ( !pParser->AddItem ( "weight()", &yyvsp[-2], &yyvsp[0] ) ) YYERROR; ;}
1762     break;
1763 
1764   case 41:
1765 
1766     { if ( !pParser->AddDistinct ( &yyvsp[-1], &yyvsp[-4], &yyvsp[0] ) ) YYERROR; ;}
1767     break;
1768 
1769   case 43:
1770 
1771     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
1772     break;
1773 
1774   case 54:
1775 
1776     {
1777 			if ( !pParser->SetMatch(yyvsp[-1]) )
1778 				YYERROR;
1779 		;}
1780     break;
1781 
1782   case 55:
1783 
1784     {
1785 			CSphFilterSettings * pFilter = pParser->AddValuesFilter ( yyvsp[-2] );
1786 			if ( !pFilter )
1787 				YYERROR;
1788 			pFilter->m_dValues.Add ( yyvsp[0].m_iValue );
1789 		;}
1790     break;
1791 
1792   case 56:
1793 
1794     {
1795 			CSphFilterSettings * pFilter = pParser->AddValuesFilter ( yyvsp[-2] );
1796 			if ( !pFilter )
1797 				YYERROR;
1798 			pFilter->m_dValues.Add ( yyvsp[0].m_iValue );
1799 			pFilter->m_bExclude = true;
1800 		;}
1801     break;
1802 
1803   case 57:
1804 
1805     {
1806 			CSphFilterSettings * pFilter = pParser->AddValuesFilter ( yyvsp[-4] );
1807 			if ( !pFilter )
1808 				YYERROR;
1809 			pFilter->m_dValues = *yyvsp[-1].m_pValues.Ptr();
1810 			pFilter->m_dValues.Uniq();
1811 		;}
1812     break;
1813 
1814   case 58:
1815 
1816     {
1817 			CSphFilterSettings * pFilter = pParser->AddValuesFilter ( yyvsp[-5] );
1818 			if ( !pFilter )
1819 				YYERROR;
1820 			pFilter->m_dValues = *yyvsp[-1].m_pValues.Ptr();
1821 			pFilter->m_bExclude = true;
1822 			pFilter->m_dValues.Uniq();
1823 		;}
1824     break;
1825 
1826   case 59:
1827 
1828     {
1829 			if ( !pParser->AddUservarFilter ( yyvsp[-2].m_sValue, yyvsp[0].m_sValue, false ) )
1830 				YYERROR;
1831 		;}
1832     break;
1833 
1834   case 60:
1835 
1836     {
1837 			if ( !pParser->AddUservarFilter ( yyvsp[-3].m_sValue, yyvsp[0].m_sValue, true ) )
1838 				YYERROR;
1839 		;}
1840     break;
1841 
1842   case 61:
1843 
1844     {
1845 			if ( !pParser->AddIntRangeFilter ( yyvsp[-4].m_sValue, yyvsp[-2].m_iValue, yyvsp[0].m_iValue ) )
1846 				YYERROR;
1847 		;}
1848     break;
1849 
1850   case 62:
1851 
1852     {
1853 			if ( !pParser->AddIntFilterGTE ( yyvsp[-2].m_sValue, yyvsp[0].m_iValue+1 ) )
1854 				YYERROR;
1855 		;}
1856     break;
1857 
1858   case 63:
1859 
1860     {
1861 			if ( !pParser->AddIntFilterLTE ( yyvsp[-2].m_sValue, yyvsp[0].m_iValue-1 ) )
1862 				YYERROR;
1863 		;}
1864     break;
1865 
1866   case 64:
1867 
1868     {
1869 			if ( !pParser->AddIntFilterGTE ( yyvsp[-2].m_sValue, yyvsp[0].m_iValue ) )
1870 				YYERROR;
1871 		;}
1872     break;
1873 
1874   case 65:
1875 
1876     {
1877 			if ( !pParser->AddIntFilterLTE ( yyvsp[-2].m_sValue, yyvsp[0].m_iValue ) )
1878 				YYERROR;
1879 		;}
1880     break;
1881 
1882   case 66:
1883 
1884     {
1885 			yyerror ( pParser, "only >=, <=, and BETWEEN floating-point filter types are supported in this version" );
1886 			YYERROR;
1887 		;}
1888     break;
1889 
1890   case 67:
1891 
1892     {
1893 			if ( !pParser->AddFloatRangeFilter ( yyvsp[-4].m_sValue, yyvsp[-2].m_fValue, yyvsp[0].m_fValue ) )
1894 				YYERROR;
1895 		;}
1896     break;
1897 
1898   case 68:
1899 
1900     {
1901 			if ( !pParser->AddFloatRangeFilter ( yyvsp[-4].m_sValue, yyvsp[-2].m_iValue, yyvsp[0].m_fValue ) )
1902 				YYERROR;
1903 		;}
1904     break;
1905 
1906   case 69:
1907 
1908     {
1909 			if ( !pParser->AddFloatRangeFilter ( yyvsp[-4].m_sValue, yyvsp[-2].m_fValue, yyvsp[0].m_iValue ) )
1910 				YYERROR;
1911 		;}
1912     break;
1913 
1914   case 70:
1915 
1916     {
1917 			if ( !pParser->AddFloatRangeFilter ( yyvsp[-2].m_sValue, yyvsp[0].m_fValue, FLT_MAX ) )
1918 				YYERROR;
1919 		;}
1920     break;
1921 
1922   case 71:
1923 
1924     {
1925 			if ( !pParser->AddFloatRangeFilter ( yyvsp[-2].m_sValue, -FLT_MAX, yyvsp[0].m_fValue ) )
1926 				YYERROR;
1927 		;}
1928     break;
1929 
1930   case 73:
1931 
1932     {
1933 			if ( !pParser->SetOldSyntax() )
1934 				YYERROR;
1935 		;}
1936     break;
1937 
1938   case 74:
1939 
1940     {
1941 			yyval.m_sValue = "@count";
1942 			if ( !pParser->SetNewSyntax() )
1943 				YYERROR;
1944 		;}
1945     break;
1946 
1947   case 75:
1948 
1949     {
1950 			yyval.m_sValue = "@weight";
1951 			if ( !pParser->SetNewSyntax() )
1952 				YYERROR;
1953 		;}
1954     break;
1955 
1956   case 76:
1957 
1958     {
1959 			yyval.m_sValue = "@id";
1960 			if ( !pParser->SetNewSyntax() )
1961 				YYERROR;
1962 		;}
1963     break;
1964 
1965   case 77:
1966 
1967     { yyval.m_iInstype = TOK_CONST_INT; yyval.m_iValue = yyvsp[0].m_iValue; ;}
1968     break;
1969 
1970   case 78:
1971 
1972     {
1973 			yyval.m_iInstype = TOK_CONST_INT;
1974 			if ( (uint64_t)yyvsp[0].m_iValue > (uint64_t)LLONG_MAX )
1975 				yyval.m_iValue = LLONG_MIN;
1976 			else
1977 				yyval.m_iValue = -yyvsp[0].m_iValue;
1978 		;}
1979     break;
1980 
1981   case 79:
1982 
1983     { yyval.m_iInstype = TOK_CONST_FLOAT; yyval.m_fValue = yyvsp[0].m_fValue; ;}
1984     break;
1985 
1986   case 80:
1987 
1988     { yyval.m_iInstype = TOK_CONST_FLOAT; yyval.m_fValue = -yyvsp[0].m_fValue; ;}
1989     break;
1990 
1991   case 81:
1992 
1993     {
1994 			assert ( !yyval.m_pValues.Ptr() );
1995 			yyval.m_pValues = new RefcountedVector_c<SphAttr_t> ();
1996 			yyval.m_pValues->Add ( yyvsp[0].m_iValue );
1997 		;}
1998     break;
1999 
2000   case 82:
2001 
2002     {
2003 			yyval.m_pValues->Add ( yyvsp[0].m_iValue );
2004 		;}
2005     break;
2006 
2007   case 85:
2008 
2009     {
2010 			pParser->SetGroupBy ( yyvsp[0].m_sValue );
2011 		;}
2012     break;
2013 
2014   case 88:
2015 
2016     {
2017 			pParser->m_pQuery->m_sSortBy.SetBinary ( pParser->m_pBuf+yyvsp[0].m_iStart, yyvsp[0].m_iEnd-yyvsp[0].m_iStart );
2018 		;}
2019     break;
2020 
2021   case 91:
2022 
2023     {
2024 			pParser->m_pQuery->m_sOrderBy.SetBinary ( pParser->m_pBuf+yyvsp[0].m_iStart, yyvsp[0].m_iEnd-yyvsp[0].m_iStart );
2025 		;}
2026     break;
2027 
2028   case 92:
2029 
2030     {
2031 			pParser->m_pQuery->m_sOrderBy = "@random";
2032 		;}
2033     break;
2034 
2035   case 94:
2036 
2037     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2038     break;
2039 
2040   case 96:
2041 
2042     { yyval = yyvsp[-1]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2043     break;
2044 
2045   case 97:
2046 
2047     { yyval = yyvsp[-1]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2048     break;
2049 
2050   case 100:
2051 
2052     {
2053 			pParser->m_pQuery->m_iOffset = 0;
2054 			pParser->m_pQuery->m_iLimit = yyvsp[0].m_iValue;
2055 		;}
2056     break;
2057 
2058   case 101:
2059 
2060     {
2061 			pParser->m_pQuery->m_iOffset = yyvsp[-2].m_iValue;
2062 			pParser->m_pQuery->m_iLimit = yyvsp[0].m_iValue;
2063 		;}
2064     break;
2065 
2066   case 107:
2067 
2068     {
2069 			if ( !pParser->AddOption ( yyvsp[-2], yyvsp[0] ) )
2070 				YYERROR;
2071 		;}
2072     break;
2073 
2074   case 108:
2075 
2076     {
2077 			if ( !pParser->AddOption ( yyvsp[-2], yyvsp[0] ) )
2078 				YYERROR;
2079 		;}
2080     break;
2081 
2082   case 109:
2083 
2084     {
2085 			if ( !pParser->AddOption ( yyvsp[-4], pParser->GetNamedVec ( yyvsp[-1].m_iValue ) ) )
2086 				YYERROR;
2087 			pParser->FreeNamedVec ( yyvsp[-1].m_iValue );
2088 		;}
2089     break;
2090 
2091   case 110:
2092 
2093     {
2094 			if ( !pParser->AddOption ( yyvsp[-5], yyvsp[-2], yyvsp[-1].m_sValue ) )
2095 				YYERROR;
2096 		;}
2097     break;
2098 
2099   case 111:
2100 
2101     {
2102 			if ( !pParser->AddOption ( yyvsp[-2], yyvsp[0] ) )
2103 				YYERROR;
2104 		;}
2105     break;
2106 
2107   case 112:
2108 
2109     {
2110 			yyval.m_iValue = pParser->AllocNamedVec ();
2111 			pParser->AddConst ( yyval.m_iValue, yyvsp[0] );
2112 		;}
2113     break;
2114 
2115   case 113:
2116 
2117     {
2118 			pParser->AddConst( yyval.m_iValue, yyvsp[0] );
2119 		;}
2120     break;
2121 
2122   case 114:
2123 
2124     {
2125 			yyval.m_sValue = yyvsp[-2].m_sValue;
2126 			yyval.m_iValue = yyvsp[0].m_iValue;
2127 		;}
2128     break;
2129 
2130   case 116:
2131 
2132     { if ( !pParser->SetOldSyntax() ) YYERROR; ;}
2133     break;
2134 
2135   case 117:
2136 
2137     { if ( !pParser->SetNewSyntax() ) YYERROR; ;}
2138     break;
2139 
2140   case 121:
2141 
2142     { yyval = yyvsp[-1]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2143     break;
2144 
2145   case 122:
2146 
2147     { yyval = yyvsp[-1]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2148     break;
2149 
2150   case 123:
2151 
2152     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2153     break;
2154 
2155   case 124:
2156 
2157     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2158     break;
2159 
2160   case 125:
2161 
2162     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2163     break;
2164 
2165   case 126:
2166 
2167     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2168     break;
2169 
2170   case 127:
2171 
2172     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2173     break;
2174 
2175   case 128:
2176 
2177     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2178     break;
2179 
2180   case 129:
2181 
2182     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2183     break;
2184 
2185   case 130:
2186 
2187     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2188     break;
2189 
2190   case 131:
2191 
2192     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2193     break;
2194 
2195   case 132:
2196 
2197     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2198     break;
2199 
2200   case 133:
2201 
2202     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2203     break;
2204 
2205   case 134:
2206 
2207     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2208     break;
2209 
2210   case 135:
2211 
2212     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2213     break;
2214 
2215   case 136:
2216 
2217     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2218     break;
2219 
2220   case 137:
2221 
2222     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2223     break;
2224 
2225   case 138:
2226 
2227     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2228     break;
2229 
2230   case 139:
2231 
2232     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2233     break;
2234 
2235   case 140:
2236 
2237     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2238     break;
2239 
2240   case 142:
2241 
2242     { yyval = yyvsp[-3]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2243     break;
2244 
2245   case 143:
2246 
2247     { yyval = yyvsp[-3]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2248     break;
2249 
2250   case 144:
2251 
2252     { yyval = yyvsp[-3]; yyval.m_iEnd = yyvsp[0].m_iEnd; ;}
2253     break;
2254 
2255   case 145:
2256 
2257     { yyval = yyvsp[-2]; yyval.m_iEnd = yyvsp[0].m_iEnd ;}
2258     break;
2259 
2260   case 146:
2261 
2262     { yyval = yyvsp[-5]; yyval.m_iEnd = yyvsp[0].m_iEnd ;}
2263     break;
2264 
2265   case 147:
2266 
2267     { yyval = yyvsp[-5]; yyval.m_iEnd = yyvsp[0].m_iEnd ;}
2268     break;
2269 
2270   case 153:
2271 
2272     { pParser->m_pStmt->m_eStmt = STMT_SHOW_WARNINGS; ;}
2273     break;
2274 
2275   case 154:
2276 
2277     { pParser->m_pStmt->m_eStmt = STMT_SHOW_STATUS; ;}
2278     break;
2279 
2280   case 155:
2281 
2282     { pParser->m_pStmt->m_eStmt = STMT_SHOW_META; ;}
2283     break;
2284 
2285   case 163:
2286 
2287     {
2288 			pParser->SetStatement ( yyvsp[-2], SET_LOCAL );
2289 			pParser->m_pStmt->m_iSetValue = yyvsp[0].m_iValue;
2290 		;}
2291     break;
2292 
2293   case 164:
2294 
2295     {
2296 			pParser->SetStatement ( yyvsp[-2], SET_LOCAL );
2297 			pParser->m_pStmt->m_sSetValue = yyvsp[0].m_sValue;
2298 		;}
2299     break;
2300 
2301   case 165:
2302 
2303     {
2304 			pParser->SetStatement ( yyvsp[-2], SET_LOCAL );
2305 			pParser->m_pStmt->m_bSetNull = true;
2306 		;}
2307     break;
2308 
2309   case 166:
2310 
2311     { pParser->m_pStmt->m_eStmt = STMT_DUMMY; ;}
2312     break;
2313 
2314   case 167:
2315 
2316     { pParser->m_pStmt->m_eStmt = STMT_DUMMY; ;}
2317     break;
2318 
2319   case 168:
2320 
2321     {
2322 			pParser->SetStatement ( yyvsp[-4], SET_GLOBAL_UVAR );
2323 			pParser->m_pStmt->m_dSetValues = *yyvsp[-1].m_pValues.Ptr();
2324 		;}
2325     break;
2326 
2327   case 169:
2328 
2329     {
2330 			pParser->SetStatement ( yyvsp[-2], SET_GLOBAL_SVAR );
2331 			pParser->m_pStmt->m_sSetValue = yyvsp[0].m_sValue;
2332 		;}
2333     break;
2334 
2335   case 172:
2336 
2337     { yyval.m_iValue = 1; ;}
2338     break;
2339 
2340   case 173:
2341 
2342     { yyval.m_iValue = 0; ;}
2343     break;
2344 
2345   case 174:
2346 
2347     {
2348 			yyval.m_iValue = yyvsp[0].m_iValue;
2349 			if ( yyval.m_iValue!=0 && yyval.m_iValue!=1 )
2350 			{
2351 				yyerror ( pParser, "only 0 and 1 could be used as boolean values" );
2352 				YYERROR;
2353 			}
2354 		;}
2355     break;
2356 
2357   case 175:
2358 
2359     { pParser->m_pStmt->m_eStmt = STMT_COMMIT; ;}
2360     break;
2361 
2362   case 176:
2363 
2364     { pParser->m_pStmt->m_eStmt = STMT_ROLLBACK; ;}
2365     break;
2366 
2367   case 177:
2368 
2369     { pParser->m_pStmt->m_eStmt = STMT_BEGIN; ;}
2370     break;
2371 
2372   case 180:
2373 
2374     {
2375 			// everything else is pushed directly into parser within the rules
2376 			pParser->m_pStmt->m_sIndex = yyvsp[-3].m_sValue;
2377 		;}
2378     break;
2379 
2380   case 181:
2381 
2382     { pParser->m_pStmt->m_eStmt = STMT_INSERT; ;}
2383     break;
2384 
2385   case 182:
2386 
2387     { pParser->m_pStmt->m_eStmt = STMT_REPLACE; ;}
2388     break;
2389 
2390   case 185:
2391 
2392     { if ( !pParser->AddSchemaItem ( &yyvsp[0] ) ) { yyerror ( pParser, "unknown field" ); YYERROR; } ;}
2393     break;
2394 
2395   case 186:
2396 
2397     { if ( !pParser->AddSchemaItem ( &yyvsp[0] ) ) { yyerror ( pParser, "unknown field" ); YYERROR; } ;}
2398     break;
2399 
2400   case 189:
2401 
2402     { if ( !pParser->m_pStmt->CheckInsertIntegrity() ) { yyerror ( pParser, "wrong number of values here" ); YYERROR; } ;}
2403     break;
2404 
2405   case 190:
2406 
2407     { AddInsval ( pParser->m_pStmt->m_dInsertValues, yyvsp[0] ); ;}
2408     break;
2409 
2410   case 191:
2411 
2412     { AddInsval ( pParser->m_pStmt->m_dInsertValues, yyvsp[0] ); ;}
2413     break;
2414 
2415   case 192:
2416 
2417     { yyval.m_iInstype = TOK_CONST_INT; yyval.m_iValue = yyvsp[0].m_iValue; ;}
2418     break;
2419 
2420   case 193:
2421 
2422     { yyval.m_iInstype = TOK_CONST_FLOAT; yyval.m_fValue = yyvsp[0].m_fValue; ;}
2423     break;
2424 
2425   case 194:
2426 
2427     { yyval.m_iInstype = TOK_QUOTED_STRING; yyval.m_sValue = yyvsp[0].m_sValue; ;}
2428     break;
2429 
2430   case 195:
2431 
2432     { yyval.m_iInstype = TOK_CONST_MVA; yyval.m_pValues = yyvsp[-1].m_pValues; ;}
2433     break;
2434 
2435   case 196:
2436 
2437     { yyval.m_iInstype = TOK_CONST_MVA; ;}
2438     break;
2439 
2440   case 197:
2441 
2442     {
2443 			pParser->m_pStmt->m_eStmt = STMT_DELETE;
2444 			pParser->m_pStmt->m_sIndex = yyvsp[-4].m_sValue;
2445 			pParser->m_pStmt->m_dDeleteIds.Add ( yyvsp[0].m_iValue );
2446 		;}
2447     break;
2448 
2449   case 198:
2450 
2451     {
2452 			pParser->m_pStmt->m_eStmt = STMT_DELETE;
2453 			pParser->m_pStmt->m_sIndex = yyvsp[-6].m_sValue;
2454 			for ( int i=0; i<yyvsp[-1].m_pValues.Ptr()->GetLength(); i++ )
2455 				pParser->m_pStmt->m_dDeleteIds.Add ( (*yyvsp[-1].m_pValues.Ptr())[i] );
2456 		;}
2457     break;
2458 
2459   case 199:
2460 
2461     {
2462 			pParser->m_pStmt->m_eStmt = STMT_CALL;
2463 			pParser->m_pStmt->m_sCallProc = yyvsp[-4].m_sValue;
2464 		;}
2465     break;
2466 
2467   case 200:
2468 
2469     {
2470 			AddInsval ( pParser->m_pStmt->m_dInsertValues, yyvsp[0] );
2471 		;}
2472     break;
2473 
2474   case 201:
2475 
2476     {
2477 			AddInsval ( pParser->m_pStmt->m_dInsertValues, yyvsp[0] );
2478 		;}
2479     break;
2480 
2481   case 203:
2482 
2483     {
2484 			yyval.m_iInstype = TOK_CONST_STRINGS;
2485 		;}
2486     break;
2487 
2488   case 204:
2489 
2490     {
2491 			// FIXME? for now, one such array per CALL statement, tops
2492 			if ( pParser->m_pStmt->m_dCallStrings.GetLength() )
2493 			{
2494 				yyerror ( pParser, "unexpected constant string list" );
2495 				YYERROR;
2496 			}
2497 			pParser->m_pStmt->m_dCallStrings.Add ( yyvsp[0].m_sValue );
2498 		;}
2499     break;
2500 
2501   case 205:
2502 
2503     {
2504 			pParser->m_pStmt->m_dCallStrings.Add ( yyvsp[0].m_sValue );
2505 		;}
2506     break;
2507 
2508   case 208:
2509 
2510     {
2511 			assert ( pParser->m_pStmt->m_dCallOptNames.GetLength()==1 );
2512 			assert ( pParser->m_pStmt->m_dCallOptValues.GetLength()==1 );
2513 		;}
2514     break;
2515 
2516   case 210:
2517 
2518     {
2519 			pParser->m_pStmt->m_dCallOptNames.Add ( yyvsp[0].m_sValue );
2520 			AddInsval ( pParser->m_pStmt->m_dCallOptValues, yyvsp[-2] );
2521 		;}
2522     break;
2523 
2524   case 214:
2525 
2526     { yyval.m_sValue = "limit"; ;}
2527     break;
2528 
2529   case 215:
2530 
2531     {
2532 			pParser->m_pStmt->m_eStmt = STMT_DESC;
2533 			pParser->m_pStmt->m_sIndex = yyvsp[0].m_sValue;
2534 		;}
2535     break;
2536 
2537   case 218:
2538 
2539     { pParser->m_pStmt->m_eStmt = STMT_SHOW_TABLES; ;}
2540     break;
2541 
2542   case 219:
2543 
2544     {
2545 			if ( !pParser->UpdateStatement ( &yyvsp[-3] ) )
2546 				YYERROR;
2547 		;}
2548     break;
2549 
2550   case 222:
2551 
2552     {
2553 			pParser->UpdateAttr ( yyvsp[-2].m_sValue, &yyvsp[0] );
2554 		;}
2555     break;
2556 
2557   case 223:
2558 
2559     {
2560 			pParser->UpdateAttr ( yyvsp[-2].m_sValue, &yyvsp[0], SPH_ATTR_FLOAT);
2561 		;}
2562     break;
2563 
2564   case 224:
2565 
2566     {
2567 			pParser->UpdateMVAAttr ( yyvsp[-4].m_sValue, yyvsp[-1] );
2568 		;}
2569     break;
2570 
2571   case 225:
2572 
2573     {
2574 			SqlNode_t tNoValues;
2575 			pParser->UpdateMVAAttr ( yyvsp[-3].m_sValue, tNoValues );
2576 		;}
2577     break;
2578 
2579   case 226:
2580 
2581     {
2582 			pParser->m_pStmt->m_eStmt = STMT_SHOW_VARIABLES;
2583 		;}
2584     break;
2585 
2586   case 233:
2587 
2588     {
2589 			pParser->m_pStmt->m_eStmt = STMT_DUMMY;
2590 		;}
2591     break;
2592 
2593   case 234:
2594 
2595     {
2596 			pParser->m_pStmt->m_eStmt = STMT_DUMMY;
2597 		;}
2598     break;
2599 
2600   case 242:
2601 
2602     {
2603 			SqlStmt_t & tStmt = *pParser->m_pStmt;
2604 			tStmt.m_eStmt = STMT_CREATE_FUNC;
2605 			tStmt.m_sUdfName = yyvsp[-4].m_sValue;
2606 			tStmt.m_sUdfLib = yyvsp[0].m_sValue;
2607 			tStmt.m_eUdfType = (ESphAttr) yyvsp[-2].m_iValue;
2608 		;}
2609     break;
2610 
2611   case 243:
2612 
2613     { yyval.m_iValue = SPH_ATTR_INTEGER; ;}
2614     break;
2615 
2616   case 244:
2617 
2618     { yyval.m_iValue = SPH_ATTR_BIGINT; ;}
2619     break;
2620 
2621   case 245:
2622 
2623     { yyval.m_iValue = SPH_ATTR_FLOAT; ;}
2624     break;
2625 
2626   case 246:
2627 
2628     {
2629 			SqlStmt_t & tStmt = *pParser->m_pStmt;
2630 			tStmt.m_eStmt = STMT_DROP_FUNC;
2631 			tStmt.m_sUdfName = yyvsp[0].m_sValue;
2632 		;}
2633     break;
2634 
2635   case 247:
2636 
2637     {
2638 			SqlStmt_t & tStmt = *pParser->m_pStmt;
2639 			tStmt.m_eStmt = STMT_ATTACH_INDEX;
2640 			tStmt.m_sIndex = yyvsp[-3].m_sValue;
2641 			tStmt.m_sSetName = yyvsp[0].m_sValue;
2642 		;}
2643     break;
2644 
2645   case 248:
2646 
2647     {
2648 			SqlStmt_t & tStmt = *pParser->m_pStmt;
2649 			tStmt.m_eStmt = STMT_FLUSH_RTINDEX;
2650 			tStmt.m_sIndex = yyvsp[0].m_sValue;
2651 		;}
2652     break;
2653 
2654   case 249:
2655 
2656     {
2657 			pParser->m_pStmt->m_eStmt = STMT_DUMMY;
2658 		;}
2659     break;
2660 
2661 
2662     }
2663 
2664 /* Line 991 of yacc.c.  */
2665 
2666 
2667   yyvsp -= yylen;
2668   yyssp -= yylen;
2669 
2670 
2671   YY_STACK_PRINT (yyss, yyssp);
2672 
2673   *++yyvsp = yyval;
2674 
2675 
2676   /* Now `shift' the result of the reduction.  Determine what state
2677      that goes to, based on the state we popped back to and the rule
2678      number reduced by.  */
2679 
2680   yyn = yyr1[yyn];
2681 
2682   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2683   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2684     yystate = yytable[yystate];
2685   else
2686     yystate = yydefgoto[yyn - YYNTOKENS];
2687 
2688   goto yynewstate;
2689 
2690 
2691 /*------------------------------------.
2692 | yyerrlab -- here on detecting error |
2693 `------------------------------------*/
2694 yyerrlab:
2695   /* If not already recovering from an error, report this error.  */
2696   if (!yyerrstatus)
2697     {
2698       ++yynerrs;
2699 #if YYERROR_VERBOSE
2700       yyn = yypact[yystate];
2701 
2702       if (YYPACT_NINF < yyn && yyn < YYLAST)
2703 	{
2704 	  YYSIZE_T yysize = 0;
2705 	  int yytype = YYTRANSLATE (yychar);
2706 	  char *yymsg;
2707 	  int yyx, yycount;
2708 
2709 	  yycount = 0;
2710 	  /* Start YYX at -YYN if negative to avoid negative indexes in
2711 	     YYCHECK.  */
2712 	  for (yyx = yyn < 0 ? -yyn : 0;
2713 	       yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
2714 	    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2715 	      yysize += yystrlen (yytname[yyx]) + 15, yycount++;
2716 	  yysize += yystrlen ("syntax error, unexpected ") + 1;
2717 	  yysize += yystrlen (yytname[yytype]);
2718 	  yymsg = (char *) YYSTACK_ALLOC (yysize);
2719 	  if (yymsg != 0)
2720 	    {
2721 	      char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
2722 	      yyp = yystpcpy (yyp, yytname[yytype]);
2723 
2724 	      if (yycount < 4)
2725 		{
2726 		  yycount = 0;
2727 		  for (yyx = yyn < 0 ? -yyn : 0;
2728 		       yyx < (int) (sizeof (yytname) / sizeof (char *));
2729 		       yyx++)
2730 		    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2731 		      {
2732 			const char *yyq = ! yycount ? ", expecting " : " or ";
2733 			yyp = yystpcpy (yyp, yyq);
2734 			yyp = yystpcpy (yyp, yytname[yyx]);
2735 			yycount++;
2736 		      }
2737 		}
2738 	      else
2739 		{
2740 		  for (yyx = yyn < 0 ? -yyn : 0;
2741 		       yyx < (int) (sizeof (yytname) / sizeof (char *));
2742 		       yyx++)
2743 		    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2744 		      {
2745 			snprintf (yyp, (int)(yysize - (yyp - yymsg)), ", expecting %s (or %d other tokens)", yytname[yyx], yycount - 1);
2746 			while (*yyp++);
2747 			break;
2748 		      }
2749 		}
2750 
2751 	      yyerror (pParser, yymsg);
2752 	      YYSTACK_FREE (yymsg);
2753 	    }
2754 	  else
2755 	    yyerror (pParser, "syntax error; also virtual memory exhausted");
2756 	}
2757       else
2758 #endif /* YYERROR_VERBOSE */
2759 	yyerror (pParser, "syntax error");
2760     }
2761 
2762 
2763 
2764   if (yyerrstatus == 3)
2765     {
2766       /* If just tried and failed to reuse lookahead token after an
2767 	 error, discard it.  */
2768 
2769       /* Return failure if at end of input.  */
2770       if (yychar == YYEOF)
2771         {
2772 	  /* Pop the error token.  */
2773           YYPOPSTACK;
2774 	  /* Pop the rest of the stack.  */
2775 	  while (yyss < yyssp)
2776 	    {
2777 	      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
2778 	      yydestruct (yystos[*yyssp], yyvsp);
2779 	      YYPOPSTACK;
2780 	    }
2781 	  YYABORT;
2782         }
2783 
2784       YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
2785       yydestruct (yytoken, &yylval);
2786       yychar = YYEMPTY;
2787 
2788     }
2789 
2790   /* Else will try to reuse lookahead token after shifting the error
2791      token.  */
2792   goto yyerrlab2;
2793 
2794 
2795 /*----------------------------------------------------.
2796 | yyerrlab1 -- error raised explicitly by an action.  |
2797 `----------------------------------------------------*/
2798 yyerrlab1:
2799 
2800   /* Suppress GCC warning that yyerrlab1 is unused when no action
2801      invokes YYERROR.  */
2802 #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
2803 //  __attribute__ ((__unused__))
2804 #endif
2805 
2806 
2807   goto yyerrlab2;
2808 
2809 
2810 /*---------------------------------------------------------------.
2811 | yyerrlab2 -- pop states until the error token can be shifted.  |
2812 `---------------------------------------------------------------*/
2813 yyerrlab2:
2814   yyerrstatus = 3;	/* Each real token shifted decrements this.  */
2815 
2816   for (;;)
2817     {
2818       yyn = yypact[yystate];
2819       if (yyn != YYPACT_NINF)
2820 	{
2821 	  yyn += YYTERROR;
2822 	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2823 	    {
2824 	      yyn = yytable[yyn];
2825 	      if (0 < yyn)
2826 		break;
2827 	    }
2828 	}
2829 
2830       /* Pop the current state because it cannot handle the error token.  */
2831       if (yyssp == yyss)
2832 	YYABORT;
2833 
2834       YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
2835       yydestruct (yystos[yystate], yyvsp);
2836       yyvsp--;
2837       yystate = *--yyssp;
2838 
2839       YY_STACK_PRINT (yyss, yyssp);
2840     }
2841 
2842   if (yyn == YYFINAL)
2843     YYACCEPT;
2844 
2845   YYDPRINTF ((stderr, "Shifting error token, "));
2846 
2847   *++yyvsp = yylval;
2848 
2849 
2850   yystate = yyn;
2851   goto yynewstate;
2852 
2853 
2854 /*-------------------------------------.
2855 | yyacceptlab -- YYACCEPT comes here.  |
2856 `-------------------------------------*/
2857 yyacceptlab:
2858   yyresult = 0;
2859   goto yyreturn;
2860 
2861 /*-----------------------------------.
2862 | yyabortlab -- YYABORT comes here.  |
2863 `-----------------------------------*/
2864 yyabortlab:
2865   yyresult = 1;
2866   goto yyreturn;
2867 
2868 #ifndef yyoverflow
2869 /*----------------------------------------------.
2870 | yyoverflowlab -- parser overflow comes here.  |
2871 `----------------------------------------------*/
2872 yyoverflowlab:
2873   yyerror (pParser, "parser stack overflow");
2874   yyresult = 2;
2875   /* Fall through.  */
2876 #endif
2877 
2878 yyreturn:
2879 #ifndef yyoverflow
2880   if (yyss != yyssa)
2881     YYSTACK_FREE (yyss);
2882 #endif
2883   return yyresult;
2884 }
2885 
2886 
2887 
2888 
2889 
2890 #if USE_WINDOWS
2891 #pragma warning(pop)
2892 #endif
2893 
2894