1 /* A Bison parser, made by GNU Bison 3.0.2. */
2
3 /* Bison implementation for Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
35
36 /* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
42
43 /* Identify Bison output. */
44 #define YYBISON 1
45
46 /* Bison version. */
47 #define YYBISON_VERSION "3.0.2"
48
49 /* Skeleton name. */
50 #define YYSKELETON_NAME "yacc.c"
51
52 /* Pure parsers. */
53 #define YYPURE 1
54
55 /* Push parsers. */
56 #define YYPUSH 0
57
58 /* Pull parsers. */
59 #define YYPULL 1
60
61
62
63
64 /* Copy the first part of user declarations. */
65
66
67 #if USE_WINDOWS
68 #pragma warning(push,1)
69 #pragma warning(disable:4702) // unreachable code
70 #endif
71
72
73
74 // some helpers
75 #include <float.h> // for FLT_MAX
76
AddInsval(SqlParser_c * pParser,CSphVector<SqlInsert_t> & dVec,const SqlNode_t & tNode)77 static void AddInsval ( SqlParser_c * pParser, CSphVector<SqlInsert_t> & dVec, const SqlNode_t & tNode )
78 {
79 SqlInsert_t & tIns = dVec.Add();
80 tIns.m_iType = tNode.m_iType;
81 tIns.m_iVal = tNode.m_iValue; // OPTIMIZE? copy conditionally based on type?
82 tIns.m_fVal = tNode.m_fValue;
83 if ( tIns.m_iType==TOK_QUOTED_STRING )
84 pParser->ToStringUnescape ( tIns.m_sVal, tNode );
85 tIns.m_pVals = tNode.m_pValues;
86 }
87
88 #define TRACK_BOUNDS(_res,_left,_right) \
89 _res = _left; \
90 if ( _res.m_iStart>0 && pParser->m_pBuf[_res.m_iStart-1]=='`' ) \
91 _res.m_iStart--; \
92 _res.m_iEnd = _right.m_iEnd; \
93 _res.m_iType = 0;
94
95
96
97
98 # ifndef YY_NULLPTR
99 # if defined __cplusplus && 201103L <= __cplusplus
100 # define YY_NULLPTR nullptr
101 # else
102 # define YY_NULLPTR 0
103 # endif
104 # endif
105
106 /* Enabling verbose error messages. */
107 #ifdef YYERROR_VERBOSE
108 # undef YYERROR_VERBOSE
109 # define YYERROR_VERBOSE 1
110 #else
111 # define YYERROR_VERBOSE 1
112 #endif
113
114 /* In a future release of Bison, this section will be replaced
115 by #include "yysphinxql.h". */
116 #ifndef YY_YY_YYSPHINXQL_H_INCLUDED
117 # define YY_YY_YYSPHINXQL_H_INCLUDED
118 /* Debug traces. */
119 #ifndef YYDEBUG
120 # define YYDEBUG 0
121 #endif
122 #if YYDEBUG
123 extern int yydebug;
124 #endif
125
126 /* Token type. */
127 #ifndef YYTOKENTYPE
128 # define YYTOKENTYPE
129 enum yytokentype
130 {
131 TOK_IDENT = 258,
132 TOK_ATIDENT = 259,
133 TOK_CONST_INT = 260,
134 TOK_CONST_FLOAT = 261,
135 TOK_CONST_MVA = 262,
136 TOK_QUOTED_STRING = 263,
137 TOK_USERVAR = 264,
138 TOK_SYSVAR = 265,
139 TOK_CONST_STRINGS = 266,
140 TOK_BAD_NUMERIC = 267,
141 TOK_SUBKEY = 268,
142 TOK_DOT_NUMBER = 269,
143 TOK_ADD = 270,
144 TOK_AGENT = 271,
145 TOK_ALTER = 272,
146 TOK_AS = 273,
147 TOK_ASC = 274,
148 TOK_ATTACH = 275,
149 TOK_ATTRIBUTES = 276,
150 TOK_AVG = 277,
151 TOK_BEGIN = 278,
152 TOK_BETWEEN = 279,
153 TOK_BIGINT = 280,
154 TOK_BOOL = 281,
155 TOK_BY = 282,
156 TOK_CALL = 283,
157 TOK_CHARACTER = 284,
158 TOK_CHUNK = 285,
159 TOK_COLLATION = 286,
160 TOK_COLUMN = 287,
161 TOK_COMMIT = 288,
162 TOK_COMMITTED = 289,
163 TOK_COUNT = 290,
164 TOK_CREATE = 291,
165 TOK_DATABASES = 292,
166 TOK_DELETE = 293,
167 TOK_DESC = 294,
168 TOK_DESCRIBE = 295,
169 TOK_DISTINCT = 296,
170 TOK_DIV = 297,
171 TOK_DOUBLE = 298,
172 TOK_DROP = 299,
173 TOK_FACET = 300,
174 TOK_FALSE = 301,
175 TOK_FLOAT = 302,
176 TOK_FLUSH = 303,
177 TOK_FOR = 304,
178 TOK_FROM = 305,
179 TOK_FUNCTION = 306,
180 TOK_GLOBAL = 307,
181 TOK_GROUP = 308,
182 TOK_GROUPBY = 309,
183 TOK_GROUP_CONCAT = 310,
184 TOK_HAVING = 311,
185 TOK_ID = 312,
186 TOK_IN = 313,
187 TOK_INDEX = 314,
188 TOK_INSERT = 315,
189 TOK_INT = 316,
190 TOK_INTEGER = 317,
191 TOK_INTO = 318,
192 TOK_IS = 319,
193 TOK_ISOLATION = 320,
194 TOK_JSON = 321,
195 TOK_LEVEL = 322,
196 TOK_LIKE = 323,
197 TOK_LIMIT = 324,
198 TOK_MATCH = 325,
199 TOK_MAX = 326,
200 TOK_META = 327,
201 TOK_MIN = 328,
202 TOK_MOD = 329,
203 TOK_MULTI = 330,
204 TOK_MULTI64 = 331,
205 TOK_NAMES = 332,
206 TOK_NULL = 333,
207 TOK_OPTION = 334,
208 TOK_ORDER = 335,
209 TOK_OPTIMIZE = 336,
210 TOK_PLAN = 337,
211 TOK_PLUGIN = 338,
212 TOK_PLUGINS = 339,
213 TOK_PROFILE = 340,
214 TOK_RAND = 341,
215 TOK_RAMCHUNK = 342,
216 TOK_READ = 343,
217 TOK_RECONFIGURE = 344,
218 TOK_REPEATABLE = 345,
219 TOK_REPLACE = 346,
220 TOK_REMAP = 347,
221 TOK_RETURNS = 348,
222 TOK_ROLLBACK = 349,
223 TOK_RTINDEX = 350,
224 TOK_SELECT = 351,
225 TOK_SERIALIZABLE = 352,
226 TOK_SET = 353,
227 TOK_SETTINGS = 354,
228 TOK_SESSION = 355,
229 TOK_SHOW = 356,
230 TOK_SONAME = 357,
231 TOK_START = 358,
232 TOK_STATUS = 359,
233 TOK_STRING = 360,
234 TOK_SUM = 361,
235 TOK_TABLE = 362,
236 TOK_TABLES = 363,
237 TOK_THREADS = 364,
238 TOK_TO = 365,
239 TOK_TRANSACTION = 366,
240 TOK_TRUE = 367,
241 TOK_TRUNCATE = 368,
242 TOK_TYPE = 369,
243 TOK_UNCOMMITTED = 370,
244 TOK_UPDATE = 371,
245 TOK_VALUES = 372,
246 TOK_VARIABLES = 373,
247 TOK_WARNINGS = 374,
248 TOK_WEIGHT = 375,
249 TOK_WHERE = 376,
250 TOK_WITHIN = 377,
251 TOK_OR = 378,
252 TOK_AND = 379,
253 TOK_NE = 380,
254 TOK_LTE = 381,
255 TOK_GTE = 382,
256 TOK_NOT = 383,
257 TOK_NEG = 384
258 };
259 #endif
260
261 /* Value type. */
262 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
263 typedef int YYSTYPE;
264 # define YYSTYPE_IS_TRIVIAL 1
265 # define YYSTYPE_IS_DECLARED 1
266 #endif
267
268
269
270 int yyparse (SqlParser_c * pParser);
271
272 #endif /* !YY_YY_YYSPHINXQL_H_INCLUDED */
273
274 /* Copy the second part of user declarations. */
275
276
277
278 #ifdef short
279 # undef short
280 #endif
281
282 #ifdef YYTYPE_UINT8
283 typedef YYTYPE_UINT8 yytype_uint8;
284 #else
285 typedef unsigned char yytype_uint8;
286 #endif
287
288 #ifdef YYTYPE_INT8
289 typedef YYTYPE_INT8 yytype_int8;
290 #else
291 typedef signed char yytype_int8;
292 #endif
293
294 #ifdef YYTYPE_UINT16
295 typedef YYTYPE_UINT16 yytype_uint16;
296 #else
297 typedef unsigned short int yytype_uint16;
298 #endif
299
300 #ifdef YYTYPE_INT16
301 typedef YYTYPE_INT16 yytype_int16;
302 #else
303 typedef short int yytype_int16;
304 #endif
305
306 #ifndef YYSIZE_T
307 # ifdef __SIZE_TYPE__
308 # define YYSIZE_T __SIZE_TYPE__
309 # elif defined size_t
310 # define YYSIZE_T size_t
311 # elif ! defined YYSIZE_T
312 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
313 # define YYSIZE_T size_t
314 # else
315 # define YYSIZE_T unsigned int
316 # endif
317 #endif
318
319 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
320
321 #ifndef YY_
322 # if defined YYENABLE_NLS && YYENABLE_NLS
323 # if ENABLE_NLS
324 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
325 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
326 # endif
327 # endif
328 # ifndef YY_
329 # define YY_(Msgid) Msgid
330 # endif
331 #endif
332
333 #ifndef YY_ATTRIBUTE
334 # if (defined __GNUC__ \
335 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
336 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
337 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
338 # else
339 # define YY_ATTRIBUTE(Spec) /* empty */
340 # endif
341 #endif
342
343 #ifndef YY_ATTRIBUTE_PURE
344 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
345 #endif
346
347 #ifndef YY_ATTRIBUTE_UNUSED
348 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
349 #endif
350
351 #if !defined _Noreturn \
352 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
353 # if defined _MSC_VER && 1200 <= _MSC_VER
354 # define _Noreturn __declspec (noreturn)
355 # else
356 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
357 # endif
358 #endif
359
360 /* Suppress unused-variable warnings by "using" E. */
361 #if ! defined lint || defined __GNUC__
362 # define YYUSE(E) ((void) (E))
363 #else
364 # define YYUSE(E) /* empty */
365 #endif
366
367 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
368 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
369 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
370 _Pragma ("GCC diagnostic push") \
371 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
372 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
373 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
374 _Pragma ("GCC diagnostic pop")
375 #else
376 # define YY_INITIAL_VALUE(Value) Value
377 #endif
378 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
379 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
380 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
381 #endif
382 #ifndef YY_INITIAL_VALUE
383 # define YY_INITIAL_VALUE(Value) /* Nothing. */
384 #endif
385
386
387 #if ! defined yyoverflow || YYERROR_VERBOSE
388
389 /* The parser invokes alloca or malloc; define the necessary symbols. */
390
391 # ifdef YYSTACK_USE_ALLOCA
392 # if YYSTACK_USE_ALLOCA
393 # ifdef __GNUC__
394 # define YYSTACK_ALLOC __builtin_alloca
395 # elif defined __BUILTIN_VA_ARG_INCR
396 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
397 # elif defined _AIX
398 # define YYSTACK_ALLOC __alloca
399 # elif defined _MSC_VER
400 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
401 # define alloca _alloca
402 # else
403 # define YYSTACK_ALLOC alloca
404 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
405 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
406 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
407 # ifndef EXIT_SUCCESS
408 # define EXIT_SUCCESS 0
409 # endif
410 # endif
411 # endif
412 # endif
413 # endif
414
415 # ifdef YYSTACK_ALLOC
416 /* Pacify GCC's 'empty if-body' warning. */
417 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
418 # ifndef YYSTACK_ALLOC_MAXIMUM
419 /* The OS might guarantee only one guard page at the bottom of the stack,
420 and a page size can be as small as 4096 bytes. So we cannot safely
421 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
422 to allow for a few compiler-allocated temporary stack slots. */
423 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
424 # endif
425 # else
426 # define YYSTACK_ALLOC YYMALLOC
427 # define YYSTACK_FREE YYFREE
428 # ifndef YYSTACK_ALLOC_MAXIMUM
429 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
430 # endif
431 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
432 && ! ((defined YYMALLOC || defined malloc) \
433 && (defined YYFREE || defined free)))
434 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
435 # ifndef EXIT_SUCCESS
436 # define EXIT_SUCCESS 0
437 # endif
438 # endif
439 # ifndef YYMALLOC
440 # define YYMALLOC malloc
441 # if ! defined malloc && ! defined EXIT_SUCCESS
442 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
443 # endif
444 # endif
445 # ifndef YYFREE
446 # define YYFREE free
447 # if ! defined free && ! defined EXIT_SUCCESS
448 void free (void *); /* INFRINGES ON USER NAME SPACE */
449 # endif
450 # endif
451 # endif
452 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
453
454
455 #if (! defined yyoverflow \
456 && (! defined __cplusplus \
457 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
458
459 /* A type that is properly aligned for any stack member. */
460 union yyalloc
461 {
462 yytype_int16 yyss_alloc;
463 YYSTYPE yyvs_alloc;
464 };
465
466 /* The size of the maximum gap between one aligned stack and the next. */
467 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
468
469 /* The size of an array large to enough to hold all stacks, each with
470 N elements. */
471 # define YYSTACK_BYTES(N) \
472 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
473 + YYSTACK_GAP_MAXIMUM)
474
475 # define YYCOPY_NEEDED 1
476
477 /* Relocate STACK from its old location to the new one. The
478 local variables YYSIZE and YYSTACKSIZE give the old and new number of
479 elements in the stack, and YYPTR gives the new location of the
480 stack. Advance YYPTR to a properly aligned location for the next
481 stack. */
482 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
483 do \
484 { \
485 YYSIZE_T yynewbytes; \
486 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
487 Stack = &yyptr->Stack_alloc; \
488 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
489 yyptr += yynewbytes / sizeof (*yyptr); \
490 } \
491 while (0)
492
493 #endif
494
495 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
496 /* Copy COUNT objects from SRC to DST. The source and destination do
497 not overlap. */
498 # ifndef YYCOPY
499 # if defined __GNUC__ && 1 < __GNUC__
500 # define YYCOPY(Dst, Src, Count) \
501 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
502 # else
503 # define YYCOPY(Dst, Src, Count) \
504 do \
505 { \
506 YYSIZE_T yyi; \
507 for (yyi = 0; yyi < (Count); yyi++) \
508 (Dst)[yyi] = (Src)[yyi]; \
509 } \
510 while (0)
511 # endif
512 # endif
513 #endif /* !YYCOPY_NEEDED */
514
515 /* YYFINAL -- State number of the termination state. */
516 #define YYFINAL 240
517 /* YYLAST -- Last index in YYTABLE. */
518 #define YYLAST 4778
519
520 /* YYNTOKENS -- Number of terminals. */
521 #define YYNTOKENS 148
522 /* YYNNTS -- Number of nonterminals. */
523 #define YYNNTS 138
524 /* YYNRULES -- Number of rules. */
525 #define YYNRULES 485
526 /* YYNSTATES -- Number of states. */
527 #define YYNSTATES 845
528
529 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
530 by yylex, with out-of-bounds checking. */
531 #define YYUNDEFTOK 2
532 #define YYMAXUTOK 384
533
534 #define YYTRANSLATE(YYX) \
535 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
536
537 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
538 as returned by yylex, without out-of-bounds checking. */
539 static const yytype_uint8 yytranslate[] =
540 {
541 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
542 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
543 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
544 2, 2, 2, 2, 2, 2, 2, 137, 126, 2,
545 141, 142, 135, 133, 143, 134, 2, 136, 2, 2,
546 2, 2, 2, 2, 2, 2, 2, 2, 2, 140,
547 129, 127, 130, 2, 2, 2, 2, 2, 2, 2,
548 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
549 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
550 2, 146, 2, 147, 2, 2, 2, 2, 2, 2,
551 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
552 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
553 2, 2, 2, 144, 125, 145, 2, 2, 2, 2,
554 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
555 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
556 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
557 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
558 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
559 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
560 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
561 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
562 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
563 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
564 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
565 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
566 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
567 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
568 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
569 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
570 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
571 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
572 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
573 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
574 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
575 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
576 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
577 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
578 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
579 128, 131, 132, 138, 139
580 };
581
582 #if YYDEBUG
583 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
584 static const yytype_uint16 yyrline[] =
585 {
586 0, 174, 174, 175, 176, 180, 181, 182, 183, 184,
587 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
588 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
589 205, 220, 221, 221, 221, 221, 221, 221, 222, 222,
590 222, 222, 222, 222, 223, 223, 223, 223, 223, 224,
591 224, 224, 224, 224, 225, 225, 225, 225, 225, 226,
592 226, 226, 226, 226, 226, 227, 227, 227, 227, 227,
593 228, 228, 228, 228, 228, 228, 229, 229, 229, 229,
594 229, 229, 230, 230, 230, 230, 230, 231, 231, 231,
595 231, 231, 232, 232, 232, 232, 232, 233, 233, 233,
596 233, 233, 234, 234, 234, 234, 234, 234, 235, 235,
597 235, 235, 235, 235, 236, 236, 236, 236, 236, 237,
598 237, 237, 237, 241, 241, 241, 247, 248, 249, 253,
599 254, 255, 259, 260, 268, 269, 276, 278, 282, 286,
600 293, 294, 295, 299, 312, 319, 321, 326, 335, 351,
601 352, 356, 357, 360, 362, 363, 367, 368, 369, 370,
602 371, 372, 373, 374, 375, 379, 380, 383, 385, 389,
603 393, 394, 395, 399, 404, 408, 415, 423, 431, 440,
604 445, 450, 455, 460, 465, 470, 475, 480, 485, 490,
605 495, 500, 505, 510, 515, 520, 525, 530, 535, 540,
606 545, 553, 554, 559, 565, 571, 577, 583, 584, 585,
607 586, 587, 591, 592, 603, 604, 605, 609, 615, 622,
608 628, 634, 636, 639, 641, 648, 652, 658, 660, 666,
609 668, 672, 683, 685, 689, 693, 700, 701, 705, 706,
610 707, 710, 712, 716, 721, 728, 730, 734, 738, 739,
611 743, 748, 753, 759, 764, 772, 777, 784, 794, 795,
612 796, 797, 798, 799, 800, 801, 802, 804, 805, 806,
613 807, 808, 809, 810, 811, 812, 813, 814, 815, 816,
614 817, 818, 819, 820, 821, 822, 823, 824, 825, 826,
615 827, 831, 832, 833, 834, 835, 836, 837, 838, 839,
616 840, 841, 842, 846, 847, 851, 852, 856, 857, 861,
617 862, 866, 867, 873, 876, 878, 882, 883, 884, 885,
618 886, 887, 888, 889, 890, 895, 900, 905, 910, 919,
619 920, 923, 925, 933, 938, 943, 948, 949, 950, 954,
620 959, 964, 969, 978, 979, 983, 984, 985, 997, 998,
621 1002, 1003, 1004, 1005, 1006, 1013, 1014, 1015, 1019, 1020,
622 1026, 1034, 1035, 1038, 1040, 1044, 1045, 1049, 1050, 1054,
623 1055, 1059, 1063, 1064, 1068, 1069, 1070, 1071, 1072, 1075,
624 1076, 1080, 1081, 1085, 1091, 1101, 1109, 1113, 1120, 1121,
625 1128, 1138, 1144, 1146, 1150, 1155, 1159, 1166, 1168, 1172,
626 1173, 1179, 1187, 1188, 1194, 1198, 1204, 1212, 1213, 1217,
627 1231, 1237, 1241, 1246, 1260, 1271, 1272, 1273, 1274, 1275,
628 1276, 1277, 1278, 1279, 1283, 1291, 1298, 1309, 1313, 1320,
629 1321, 1325, 1329, 1330, 1334, 1338, 1345, 1352, 1358, 1359,
630 1360, 1364, 1365, 1366, 1367, 1373, 1384, 1385, 1386, 1387,
631 1388, 1393, 1404, 1416, 1425, 1434, 1444, 1452, 1453, 1457,
632 1461, 1465, 1475, 1486, 1497, 1508, 1519, 1520, 1524, 1527,
633 1528, 1532, 1533, 1534, 1535, 1539, 1540, 1544, 1549, 1551,
634 1555, 1564, 1568, 1576, 1577, 1581
635 };
636 #endif
637
638 #if YYDEBUG || YYERROR_VERBOSE || 1
639 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
640 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
641 static const char *const yytname[] =
642 {
643 "$end", "error", "$undefined", "TOK_IDENT", "TOK_ATIDENT",
644 "TOK_CONST_INT", "TOK_CONST_FLOAT", "TOK_CONST_MVA", "TOK_QUOTED_STRING",
645 "TOK_USERVAR", "TOK_SYSVAR", "TOK_CONST_STRINGS", "TOK_BAD_NUMERIC",
646 "TOK_SUBKEY", "TOK_DOT_NUMBER", "TOK_ADD", "TOK_AGENT", "TOK_ALTER",
647 "TOK_AS", "TOK_ASC", "TOK_ATTACH", "TOK_ATTRIBUTES", "TOK_AVG",
648 "TOK_BEGIN", "TOK_BETWEEN", "TOK_BIGINT", "TOK_BOOL", "TOK_BY",
649 "TOK_CALL", "TOK_CHARACTER", "TOK_CHUNK", "TOK_COLLATION", "TOK_COLUMN",
650 "TOK_COMMIT", "TOK_COMMITTED", "TOK_COUNT", "TOK_CREATE",
651 "TOK_DATABASES", "TOK_DELETE", "TOK_DESC", "TOK_DESCRIBE",
652 "TOK_DISTINCT", "TOK_DIV", "TOK_DOUBLE", "TOK_DROP", "TOK_FACET",
653 "TOK_FALSE", "TOK_FLOAT", "TOK_FLUSH", "TOK_FOR", "TOK_FROM",
654 "TOK_FUNCTION", "TOK_GLOBAL", "TOK_GROUP", "TOK_GROUPBY",
655 "TOK_GROUP_CONCAT", "TOK_HAVING", "TOK_ID", "TOK_IN", "TOK_INDEX",
656 "TOK_INSERT", "TOK_INT", "TOK_INTEGER", "TOK_INTO", "TOK_IS",
657 "TOK_ISOLATION", "TOK_JSON", "TOK_LEVEL", "TOK_LIKE", "TOK_LIMIT",
658 "TOK_MATCH", "TOK_MAX", "TOK_META", "TOK_MIN", "TOK_MOD", "TOK_MULTI",
659 "TOK_MULTI64", "TOK_NAMES", "TOK_NULL", "TOK_OPTION", "TOK_ORDER",
660 "TOK_OPTIMIZE", "TOK_PLAN", "TOK_PLUGIN", "TOK_PLUGINS", "TOK_PROFILE",
661 "TOK_RAND", "TOK_RAMCHUNK", "TOK_READ", "TOK_RECONFIGURE",
662 "TOK_REPEATABLE", "TOK_REPLACE", "TOK_REMAP", "TOK_RETURNS",
663 "TOK_ROLLBACK", "TOK_RTINDEX", "TOK_SELECT", "TOK_SERIALIZABLE",
664 "TOK_SET", "TOK_SETTINGS", "TOK_SESSION", "TOK_SHOW", "TOK_SONAME",
665 "TOK_START", "TOK_STATUS", "TOK_STRING", "TOK_SUM", "TOK_TABLE",
666 "TOK_TABLES", "TOK_THREADS", "TOK_TO", "TOK_TRANSACTION", "TOK_TRUE",
667 "TOK_TRUNCATE", "TOK_TYPE", "TOK_UNCOMMITTED", "TOK_UPDATE",
668 "TOK_VALUES", "TOK_VARIABLES", "TOK_WARNINGS", "TOK_WEIGHT", "TOK_WHERE",
669 "TOK_WITHIN", "TOK_OR", "TOK_AND", "'|'", "'&'", "'='", "TOK_NE", "'<'",
670 "'>'", "TOK_LTE", "TOK_GTE", "'+'", "'-'", "'*'", "'/'", "'%'",
671 "TOK_NOT", "TOK_NEG", "';'", "'('", "')'", "','", "'{'", "'}'", "'['",
672 "']'", "$accept", "request", "statement", "ident_set", "ident",
673 "multi_stmt_list", "multi_stmt", "select", "select1",
674 "opt_tablefunc_args", "tablefunc_args_list", "tablefunc_arg",
675 "subselect_start", "opt_outer_order", "opt_outer_limit", "select_from",
676 "select_items_list", "select_item", "opt_alias", "select_expr",
677 "ident_list", "opt_where_clause", "where_clause", "where_expr",
678 "where_item", "filter_item", "expr_ident", "const_int", "const_float",
679 "const_list", "string_list", "opt_group_clause", "opt_int",
680 "group_items_list", "opt_having_clause", "opt_group_order_clause",
681 "group_order_clause", "opt_order_clause", "order_clause",
682 "order_items_list", "order_item", "opt_limit_clause", "limit_clause",
683 "opt_option_clause", "option_clause", "option_list", "option_item",
684 "named_const_list", "named_const", "expr", "function", "arglist", "arg",
685 "consthash", "hash_key", "hash_val", "show_stmt", "like_filter",
686 "show_what", "index_or_table", "opt_chunk", "set_stmt",
687 "set_global_stmt", "set_string_value", "boolean_value", "set_value",
688 "simple_set_value", "transact_op", "start_transaction", "insert_into",
689 "insert_or_replace", "opt_column_list", "column_ident", "column_list",
690 "insert_rows_list", "insert_row", "insert_vals_list", "insert_val",
691 "opt_insert_options", "insert_options_list", "insert_option",
692 "delete_from", "call_proc", "call_args_list", "call_arg",
693 "const_string_list", "opt_call_opts_list", "call_opts_list", "call_opt",
694 "opt_as", "call_opt_name", "describe", "describe_tok", "show_tables",
695 "show_databases", "update", "update_items_list", "update_item",
696 "alter_col_type", "alter", "show_variables", "opt_show_variables_where",
697 "show_variables_where", "show_variables_where_list",
698 "show_variables_where_entry", "show_collation", "show_character_set",
699 "set_transaction", "opt_scope", "isolation_level", "create_function",
700 "udf_type", "drop_function", "attach_index", "flush_rtindex",
701 "flush_ramchunk", "flush_index", "select_sysvar", "sysvar_list",
702 "sysvar_item", "sysvar_name", "select_dual", "truncate",
703 "optimize_index", "create_plugin", "drop_plugin", "json_field",
704 "json_expr", "subscript", "subkey", "streq", "strval",
705 "opt_facet_by_items_list", "facet_by", "facet_item", "facet_expr",
706 "facet_items_list", "facet_stmt", YY_NULLPTR
707 };
708 #endif
709
710 # ifdef YYPRINT
711 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
712 (internal) symbol number NUM (which must be that of a token). */
713 static const yytype_uint16 yytoknum[] =
714 {
715 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
716 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
717 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
718 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
719 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
720 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
721 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
722 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
723 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
724 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
725 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
726 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
727 375, 376, 377, 378, 379, 124, 38, 61, 380, 60,
728 62, 381, 382, 43, 45, 42, 47, 37, 383, 384,
729 59, 40, 41, 44, 123, 125, 91, 93
730 };
731 # endif
732
733 #define YYPACT_NINF -660
734
735 #define yypact_value_is_default(Yystate) \
736 (!!((Yystate) == (-660)))
737
738 #define YYTABLE_NINF -478
739
740 #define yytable_value_is_error(Yytable_value) \
741 0
742
743 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
744 STATE-NUM. */
745 static const yytype_int16 yypact[] =
746 {
747 4598, 95, 74, -660, 3854, -660, 48, 88, -660, -660,
748 51, 89, -660, 124, -660, -660, 832, 3974, 532, 18,
749 91, 3854, 143, -660, -19, -660, -660, -660, -660, -660,
750 -660, -660, -660, -660, -660, 154, -660, -660, -660, 3854,
751 -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
752 -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
753 3854, 3854, 3854, -660, -660, -660, -660, -660, -660, -660,
754 -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
755 -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
756 -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
757 -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
758 -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
759 -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
760 -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
761 -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
762 -660, -660, -660, -660, -660, -660, -660, -660, 97, 3854,
763 3854, 3854, 3854, 3854, -660, 3854, 3854, 3854, 100, -660,
764 -660, -660, -660, -660, -660, -660, 107, 131, 144, 162,
765 177, 193, 194, -660, 200, 216, 217, 218, 219, 222,
766 223, 1684, -660, 1684, 1684, 3298, 59, -11, -660, 3407,
767 165, -660, -39, -660, 3407, 159, 172, -660, 99, 116,
768 167, 4094, 3854, 2709, 176, 180, 254, 3527, 269, -660,
769 161, -660, -660, 161, -660, -660, -660, -660, 161, -660,
770 161, 289, -660, -660, 3854, 252, -660, 3854, -660, -34,
771 -660, 1684, 105, -660, 3854, 161, 284, 72, 264, 41,
772 287, 263, -29, -660, 267, -660, -660, -660, 974, 1684,
773 1826, -5, 1826, 1826, 240, 1684, 1826, 1826, 1684, 1684,
774 1684, 1684, 242, 244, 245, 246, -660, -660, 4316, -660,
775 -660, -40, 261, -660, -660, 1968, 66, -660, 2346, 1116,
776 3854, -660, -660, 1684, 1684, 1684, 1684, 1684, 1684, 1684,
777 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684,
778 385, 389, -660, -660, -660, -47, 1684, 2709, 2709, 277,
779 278, 355, -660, -660, -660, -660, -660, 274, -660, 2469,
780 344, 306, 9, 307, -660, 404, -660, -660, -660, -660,
781 3854, -660, -660, 31, 50, -660, 3854, 3854, 4614, -660,
782 3407, -7, 1258, 4214, 294, -660, 273, -660, -660, 383,
783 384, 323, -660, -660, -660, -660, 101, 32, -660, -660,
784 -660, 295, -660, 34, 432, 2100, -660, 433, 316, 1400,
785 -660, 4599, 79, -660, 4349, 4614, 82, 3854, 304, 85,
786 92, -660, 4380, 102, 115, 544, 582, 680, 4413, -660,
787 1542, 1684, 1684, -660, 3298, -660, 2589, 300, 298, -660,
788 -660, -29, -660, 4614, -660, -660, -660, 4628, 4641, 658,
789 561, 146, -660, 146, 118, 118, 118, 118, -9, -9,
790 -660, -660, -660, 305, -660, -660, 371, 146, 274, 274,
791 309, 3069, 442, 2709, -660, -660, -660, -660, 447, -660,
792 -660, -660, -660, 387, 161, -660, 161, -660, 329, 314,
793 -660, 359, 454, -660, 361, 453, 3854, -660, -660, 69,
794 -24, -660, 336, -660, -660, -660, 1684, 386, 1684, 3636,
795 347, 3854, 3854, 3854, -660, -660, -660, -660, -660, 117,
796 119, 41, 326, -660, -660, -660, -660, -660, 363, 367,
797 -660, 330, 331, 332, 335, 339, -660, 340, 341, 342,
798 2100, 66, 346, -660, -660, 192, -660, -660, 1116, 345,
799 3854, -660, 1826, -660, -660, 348, -660, -660, -660, -660,
800 -660, -660, -660, 1684, -660, 1684, 1684, -660, 4218, 4252,
801 362, -660, -660, -660, -660, -660, 390, 435, -660, 487,
802 -660, 14, -660, -660, 366, -660, 52, -660, -660, 2223,
803 3854, -660, -660, -660, -660, 373, 378, -660, 36, 3854,
804 289, 84, -660, 475, 434, -660, 364, -660, -660, -660,
805 125, 368, 286, -660, -660, -660, 14, -660, 496, 56,
806 -660, 365, -660, -660, 497, 502, 3854, 379, 3854, 375,
807 376, 3854, 505, 396, -31, 2100, 84, 4, -16, 70,
808 80, 84, 84, 84, 84, 481, 397, 483, -660, -660,
809 4446, 4477, 4283, 2589, 1116, 401, 539, 423, -660, 128,
810 405, 0, 459, -660, -660, -660, -660, 3854, 408, -660,
811 542, 3854, 10, -660, -660, -660, -660, -660, -660, 2829,
812 -660, -660, 3636, 46, -26, -660, -660, -660, -660, -660,
813 -660, -660, -660, -660, -660, -660, -660, -660, -660, 3745,
814 46, -660, -660, 66, 409, 410, 411, -660, -660, 412,
815 415, -660, -660, -660, 436, 440, -660, 19, -660, 480,
816 -660, -660, -660, -660, -660, -660, -660, -660, -660, -660,
817 -660, -660, -660, -660, 13, 3189, 417, 3854, -660, -660,
818 425, -660, -2, 488, -660, 540, 517, 515, -660, -660,
819 14, -660, -660, -660, 446, 163, -660, 566, -660, -660,
820 -660, 166, 438, 81, 437, -660, -660, 39, 173, -660,
821 572, 368, -660, -660, -660, -660, 558, -660, -660, -660,
822 -660, -660, -660, 84, 84, -660, 184, 186, -660, -660,
823 19, -660, -660, -660, 444, -660, -660, 66, 439, -660,
824 1826, 3854, 550, 514, 2949, 508, 2949, 386, 189, 14,
825 -660, 3854, 443, -660, 448, -660, -660, 2949, -660, 46,
826 462, 450, -660, -660, -660, -660, -660, -660, -660, -660,
827 587, 195, 202, 3189, -660, 207, 2949, 591, -660, -660,
828 455, 573, -660, 434, -660, -660, -660, -660, -660, -660,
829 -660, 594, 572, -660, -660, -660, -660, 456, 437, 463,
830 2949, 2949, 289, -660, -660, 466, 603, -660, 437, -660,
831 1826, -660, 213, 467, -660
832 };
833
834 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
835 Performed when YYTABLE does not specify something else to do. Zero
836 means the default is an error. */
837 static const yytype_uint16 yydefact[] =
838 {
839 0, 0, 0, 358, 0, 355, 0, 0, 403, 402,
840 0, 0, 361, 0, 362, 356, 0, 438, 438, 0,
841 0, 0, 0, 2, 3, 126, 129, 132, 134, 130,
842 131, 7, 8, 357, 5, 0, 6, 9, 10, 0,
843 11, 12, 13, 28, 14, 15, 16, 23, 17, 18,
844 19, 20, 21, 22, 24, 25, 26, 27, 29, 30,
845 0, 0, 0, 31, 32, 33, 34, 35, 36, 37,
846 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
847 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
848 58, 59, 60, 61, 62, 63, 64, 66, 65, 67,
849 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
850 78, 79, 80, 81, 82, 124, 84, 83, 85, 86,
851 87, 88, 90, 89, 91, 92, 94, 95, 93, 96,
852 97, 98, 99, 101, 102, 100, 103, 104, 105, 106,
853 107, 108, 109, 110, 111, 112, 125, 113, 114, 115,
854 116, 117, 118, 119, 120, 121, 122, 123, 0, 0,
855 0, 0, 0, 0, 455, 0, 0, 0, 31, 259,
856 261, 262, 477, 264, 460, 263, 38, 41, 50, 57,
857 59, 66, 65, 260, 0, 71, 78, 80, 93, 108,
858 120, 0, 151, 0, 0, 0, 258, 0, 149, 153,
859 156, 286, 241, 457, 153, 0, 287, 288, 0, 0,
860 44, 63, 68, 0, 100, 0, 0, 0, 0, 435,
861 314, 439, 329, 314, 321, 322, 320, 440, 314, 330,
862 314, 245, 316, 313, 0, 0, 359, 0, 165, 0,
863 1, 0, 4, 128, 0, 314, 0, 0, 0, 0,
864 0, 0, 0, 451, 0, 454, 453, 463, 0, 0,
865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
866 0, 0, 0, 31, 78, 80, 265, 266, 0, 310,
867 309, 0, 0, 471, 472, 0, 468, 469, 0, 0,
868 0, 154, 152, 0, 0, 0, 0, 0, 0, 0,
869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
870 0, 0, 456, 242, 459, 0, 0, 0, 0, 0,
871 0, 0, 353, 354, 352, 351, 350, 336, 348, 0,
872 0, 0, 314, 0, 436, 0, 405, 318, 317, 404,
873 0, 323, 246, 331, 429, 462, 0, 0, 482, 483,
874 153, 478, 0, 0, 0, 127, 363, 401, 426, 0,
875 0, 0, 212, 214, 376, 216, 0, 0, 374, 375,
876 388, 392, 386, 0, 0, 0, 384, 0, 306, 0,
877 297, 305, 0, 303, 0, 305, 0, 0, 0, 0,
878 0, 163, 0, 0, 0, 0, 0, 0, 0, 300,
879 0, 0, 0, 284, 0, 285, 0, 477, 0, 470,
880 143, 167, 150, 156, 155, 276, 277, 283, 282, 274,
881 273, 280, 475, 281, 271, 272, 278, 279, 267, 268,
882 269, 270, 275, 243, 458, 289, 0, 476, 337, 338,
883 0, 0, 0, 0, 344, 346, 335, 345, 0, 343,
884 347, 334, 333, 0, 314, 319, 314, 315, 0, 247,
885 248, 0, 0, 326, 0, 0, 0, 427, 430, 0,
886 0, 407, 0, 166, 481, 480, 0, 232, 0, 0,
887 0, 0, 0, 0, 213, 215, 390, 378, 217, 0,
888 0, 0, 0, 447, 448, 446, 450, 449, 0, 0,
889 202, 41, 50, 57, 0, 66, 206, 71, 77, 120,
890 0, 201, 169, 170, 174, 0, 207, 465, 0, 0,
891 0, 291, 0, 157, 294, 0, 162, 296, 295, 161,
892 292, 293, 158, 0, 159, 0, 0, 160, 0, 0,
893 0, 312, 311, 307, 474, 473, 0, 221, 168, 0,
894 290, 0, 341, 340, 0, 349, 0, 324, 325, 0,
895 0, 328, 332, 327, 428, 0, 431, 432, 0, 0,
896 245, 0, 484, 0, 241, 233, 479, 366, 365, 367,
897 0, 0, 0, 425, 452, 377, 0, 389, 0, 397,
898 387, 393, 394, 385, 0, 0, 0, 0, 0, 0,
899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
900 0, 0, 0, 0, 0, 0, 136, 0, 304, 164,
901 0, 0, 0, 0, 0, 0, 223, 229, 244, 0,
902 0, 0, 0, 444, 437, 251, 254, 0, 250, 249,
903 0, 0, 0, 409, 410, 408, 406, 413, 414, 0,
904 485, 364, 0, 0, 379, 369, 416, 418, 417, 423,
905 415, 421, 419, 420, 422, 424, 218, 391, 398, 0,
906 0, 445, 464, 0, 0, 0, 0, 211, 204, 0,
907 0, 205, 172, 171, 0, 0, 181, 0, 199, 0,
908 197, 175, 188, 198, 176, 189, 185, 194, 184, 193,
909 187, 196, 186, 195, 0, 0, 0, 0, 299, 298,
910 0, 308, 0, 0, 224, 0, 0, 227, 230, 339,
911 0, 442, 441, 443, 0, 0, 255, 0, 434, 433,
912 412, 0, 90, 238, 234, 236, 368, 0, 0, 372,
913 0, 0, 360, 400, 399, 396, 397, 395, 210, 203,
914 209, 208, 173, 0, 0, 219, 0, 0, 200, 182,
915 0, 141, 142, 140, 137, 138, 133, 467, 0, 466,
916 0, 0, 0, 145, 0, 0, 0, 232, 0, 0,
917 252, 0, 0, 411, 0, 239, 240, 0, 371, 0,
918 0, 380, 381, 370, 183, 191, 192, 190, 177, 179,
919 0, 0, 0, 0, 301, 0, 0, 0, 135, 225,
920 222, 0, 228, 241, 342, 257, 256, 253, 235, 237,
921 373, 0, 0, 220, 178, 180, 139, 0, 144, 146,
922 0, 0, 245, 383, 382, 0, 0, 226, 231, 148,
923 0, 147, 0, 0, 302
924 };
925
926 /* YYPGOTO[NTERM-NUM]. */
927 static const yytype_int16 yypgoto[] =
928 {
929 -660, -660, -660, -14, -4, -660, 369, -660, 231, -660,
930 -660, -191, -660, -660, -660, 67, -3, 333, -186, -660,
931 -10, -660, -303, -481, -660, -161, -637, -217, -543, -541,
932 -140, -660, -660, -660, -660, -660, -660, -154, -660, -659,
933 -162, -567, -660, -569, -660, -660, 71, -660, -152, 226,
934 -660, -258, 108, -660, 230, 15, -660, -207, -660, -660,
935 -660, -660, -660, 201, -660, -86, 203, -660, -660, -660,
936 -660, -660, -8, -660, -660, -98, -660, -485, -660, -660,
937 -175, -660, -660, -660, 158, -660, -660, -660, -20, -660,
938 -660, -660, -660, -660, -660, -660, -660, 83, -660, -660,
939 -660, -660, -660, -660, 12, -660, -660, -660, 636, -660,
940 -660, -660, -660, -660, -660, -660, -660, -660, -660, 349,
941 -660, -660, -660, -660, -660, -660, -52, -332, -660, 372,
942 -660, 358, -660, -660, 183, -660, 185, -660
943 };
944
945 /* YYDEFGOTO[NTERM-NUM]. */
946 static const yytype_int16 yydefgoto[] =
947 {
948 -1, 22, 23, 157, 196, 24, 25, 26, 27, 706,
949 764, 765, 546, 773, 808, 28, 197, 198, 292, 199,
950 411, 547, 376, 512, 513, 514, 515, 488, 369, 489,
951 757, 627, 715, 810, 777, 717, 718, 574, 575, 734,
952 735, 312, 313, 341, 342, 459, 460, 725, 726, 385,
953 201, 382, 383, 281, 282, 543, 29, 336, 233, 234,
954 464, 30, 31, 451, 452, 327, 328, 32, 33, 34,
955 35, 480, 579, 580, 654, 655, 738, 370, 742, 791,
956 792, 36, 37, 371, 372, 490, 492, 591, 592, 669,
957 745, 38, 39, 40, 41, 42, 470, 471, 665, 43,
958 44, 467, 468, 566, 567, 45, 46, 47, 216, 634,
959 48, 498, 49, 50, 51, 52, 53, 54, 202, 203,
960 204, 55, 56, 57, 58, 59, 205, 206, 286, 287,
961 207, 208, 477, 478, 349, 350, 351, 243
962 };
963
964 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
965 positive, shift that token. If negative, reduce the rule whose
966 number is the opposite. If YYTABLE_NINF, syntax error. */
967 static const yytype_int16 yytable[] =
968 {
969 158, 646, 386, 215, 389, 390, 589, 650, 393, 394,
970 629, 239, 733, 686, 472, 362, 337, 238, 314, 362,
971 475, 338, 759, 339, 362, 644, 241, 755, 648, 604,
972 310, 435, 368, 293, 721, 245, 387, 362, 357, 288,
973 486, 362, 363, 516, 362, 461, 362, 363, 771, 364,
974 365, 362, 363, 740, 364, 365, 246, 247, 248, 493,
975 365, 462, 688, 685, 346, 294, 692, 695, 697, 699,
976 701, 703, 283, 284, 668, 362, 363, 335, 690, 283,
977 284, 494, 283, 284, 365, 362, 363, 359, 693, 362,
978 363, 436, 375, 605, 365, 495, 496, 375, 365, 159,
979 785, 731, 162, 404, 311, 405, 484, 485, 548, 347,
980 164, 682, 450, -106, 347, 722, 360, 741, 465, 569,
981 786, 242, 689, -467, 683, 455, 307, 308, 309, 236,
982 388, 160, 289, 62, 163, 463, 476, 809, 161, 497,
983 631, 289, 632, 240, 448, 687, 756, 828, 448, 633,
984 733, 252, 730, 448, 760, 250, 251, 238, 253, 254,
985 293, 255, 256, 257, 474, -461, 448, 570, 739, 733,
986 366, 466, 838, 448, 487, 366, 165, 642, 516, 778,
987 366, 487, 367, 167, 166, 746, 237, 737, 293, 542,
988 60, 280, 294, 837, 733, 291, 568, 320, -388, -388,
989 291, 352, 61, 353, 366, 285, 354, 293, 321, 326,
990 795, 797, 285, 333, 366, 285, 606, 244, 366, 801,
991 294, 521, 522, 315, 524, 522, 316, 527, 522, 335,
992 343, 438, 439, 345, 528, 522, -466, 472, 249, 294,
993 356, 258, 200, 317, 530, 522, 832, 557, 259, 558,
994 607, 305, 306, 307, 308, 309, 608, 531, 522, 585,
995 586, 587, 588, 839, 674, 318, 676, 651, 652, 679,
996 719, 586, 260, 516, 368, 301, 302, 303, 304, 305,
997 306, 307, 308, 309, 238, 261, 414, -440, 295, 296,
998 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
999 307, 308, 309, 262, 820, 780, 781, 329, 783, 586,
1000 217, 656, 657, 326, 326, 788, 789, 516, 263, 609,
1001 610, 611, 612, 613, 614, 449, 798, 586, 799, 800,
1002 615, 814, 586, 658, 264, 265, 458, 824, 586, 215,
1003 293, 266, 469, 473, 825, 800, 291, 659, 660, 827,
1004 522, 643, 661, 222, 647, 843, 522, 267, 268, 269,
1005 270, 662, 663, 271, 272, 330, 223, 334, 340, 666,
1006 344, 511, 294, 358, 361, 769, 224, 374, 225, 226,
1007 373, 377, 391, 525, 399, 400, 401, 402, 406, 684,
1008 433, 664, 691, 694, 696, 698, 700, 702, 228, 174,
1009 280, 229, 541, 231, 440, 441, 542, 442, 443, 453,
1010 454, 456, 457, 232, 479, 481, 482, 276, 483, 277,
1011 278, 295, 296, 297, 298, 299, 300, 301, 302, 303,
1012 304, 305, 306, 307, 308, 309, 368, 449, 491, 326,
1013 499, 517, 516, -477, 516, 545, 526, 544, 549, 550,
1014 551, 554, 484, 368, 556, 516, 559, 560, 561, 562,
1015 563, 564, 565, 571, 581, 594, 573, 348, 593, 595,
1016 605, 596, 597, 598, 516, 578, 599, 582, 583, 584,
1017 600, 601, 602, 603, 381, 384, 624, 616, 626, 623,
1018 619, 392, 628, 630, 395, 396, 397, 398, 516, 516,
1019 640, 641, 649, 310, 667, 671, 511, 476, 670, 653,
1020 672, 408, 805, 680, 675, 413, 617, 677, 678, 415,
1021 416, 417, 418, 419, 420, 421, 423, 424, 425, 426,
1022 427, 428, 429, 430, 431, 432, 794, 796, 681, 704,
1023 705, 707, 437, 713, 714, 716, 720, 723, 217, 727,
1024 728, 748, 749, 750, 751, 638, 458, 752, 758, 766,
1025 753, 218, 815, 219, 754, 469, 770, 774, 772, 220,
1026 775, 776, 368, 779, 782, 790, 668, 806, 413, 784,
1027 787, 804, 842, 807, 221, 817, 293, 803, 811, 821,
1028 818, 222, 673, 822, 673, 823, 829, 673, 830, 835,
1029 831, 511, 833, 293, 223, 278, 836, 840, 841, 844,
1030 519, 355, 826, 625, 224, 812, 225, 226, 294, 541,
1031 802, 712, 412, 813, 293, 819, 381, 538, 539, 816,
1032 618, 639, 227, 724, 540, 294, 228, 565, 711, 229,
1033 230, 231, 553, 793, 736, 511, 555, 834, 578, 590,
1034 747, 232, 645, 729, 235, 768, 294, 422, 409, 572,
1035 434, 0, 0, 576, 0, 744, 0, 295, 296, 297,
1036 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
1037 308, 309, 0, 0, 0, 0, 532, 533, 299, 300,
1038 301, 302, 303, 304, 305, 306, 307, 308, 309, 0,
1039 293, 763, 348, 767, 348, 295, 296, 297, 298, 299,
1040 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
1041 0, 0, 293, 0, 534, 535, 0, 0, 0, 0,
1042 0, 0, 294, 0, 0, 0, 0, 0, 0, 0,
1043 0, 0, 0, 0, 413, 0, 0, 0, 0, 0,
1044 0, 0, 0, 0, 294, 0, 0, 0, 0, 620,
1045 0, 621, 622, 0, 0, 0, 0, 238, 0, 0,
1046 511, 0, 511, 0, 0, 0, 0, 724, 0, 0,
1047 0, 0, 0, 511, 298, 299, 300, 301, 302, 303,
1048 304, 305, 306, 307, 308, 309, 0, 0, 0, 763,
1049 0, 0, 511, 295, 296, 297, 298, 299, 300, 301,
1050 302, 303, 304, 305, 306, 307, 308, 309, 0, 0,
1051 0, 0, 0, 536, 0, 0, 511, 511, 0, 0,
1052 0, 0, 0, 0, 0, 168, 169, 170, 171, 0,
1053 172, 173, 174, 0, 0, 0, 175, 64, 65, 66,
1054 413, 67, 68, 69, 176, 71, 72, 177, 74, 0,
1055 75, 76, 77, 78, 79, 80, 81, 178, 83, 84,
1056 85, 86, 87, 88, 0, 179, 90, 0, 0, 180,
1057 92, 93, 0, 94, 95, 96, 181, 182, 99, 183,
1058 184, 100, 101, 102, 185, 104, 0, 105, 106, 107,
1059 108, 0, 109, 186, 111, 187, 0, 113, 114, 115,
1060 0, 116, 0, 117, 118, 119, 120, 121, 122, 123,
1061 124, 125, 126, 127, 188, 129, 130, 131, 0, 132,
1062 133, 134, 135, 136, 137, 138, 139, 140, 189, 142,
1063 143, 144, 145, 146, 0, 147, 148, 149, 150, 151,
1064 152, 153, 190, 155, 156, 0, 0, 0, 0, 0,
1065 0, 0, 0, 0, 0, 0, 191, 192, 0, 0,
1066 193, 0, 0, 194, 0, 0, 195, 273, 169, 170,
1067 171, 0, 378, 173, 0, 0, 0, 0, 175, 64,
1068 65, 66, 0, 67, 68, 69, 70, 71, 72, 177,
1069 74, 0, 75, 76, 77, 78, 79, 80, 81, 82,
1070 83, 84, 85, 86, 87, 88, 0, 179, 90, 0,
1071 0, 180, 92, 93, 0, 94, 95, 96, 97, 98,
1072 99, 183, 184, 100, 101, 102, 185, 104, 0, 105,
1073 106, 107, 108, 0, 109, 274, 111, 275, 0, 113,
1074 114, 115, 0, 116, 0, 117, 118, 119, 120, 121,
1075 122, 123, 124, 125, 126, 127, 188, 129, 130, 131,
1076 0, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1077 141, 142, 143, 144, 145, 146, 0, 147, 148, 149,
1078 150, 151, 152, 153, 190, 155, 156, 0, 0, 0,
1079 0, 0, 0, 0, 0, 0, 0, 0, 191, 0,
1080 0, 0, 193, 0, 0, 379, 380, 0, 195, 273,
1081 169, 170, 171, 0, 172, 173, 0, 0, 0, 0,
1082 175, 64, 65, 66, 0, 67, 68, 69, 176, 71,
1083 72, 177, 74, 0, 75, 76, 77, 78, 79, 80,
1084 81, 178, 83, 84, 85, 86, 87, 88, 0, 179,
1085 90, 0, 0, 180, 92, 93, 0, 94, 95, 96,
1086 181, 182, 99, 183, 184, 100, 101, 102, 185, 104,
1087 0, 105, 106, 107, 108, 0, 109, 186, 111, 187,
1088 0, 113, 114, 115, 0, 116, 0, 117, 118, 119,
1089 120, 121, 122, 123, 124, 125, 126, 127, 188, 129,
1090 130, 131, 0, 132, 133, 134, 135, 136, 137, 138,
1091 139, 140, 189, 142, 143, 144, 145, 146, 0, 147,
1092 148, 149, 150, 151, 152, 153, 190, 155, 156, 0,
1093 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1094 191, 192, 0, 0, 193, 0, 0, 194, 0, 0,
1095 195, 168, 169, 170, 171, 0, 172, 173, 0, 0,
1096 0, 0, 175, 64, 65, 66, 0, 67, 68, 69,
1097 176, 71, 72, 177, 74, 0, 75, 76, 77, 78,
1098 79, 80, 81, 178, 83, 84, 85, 86, 87, 88,
1099 0, 179, 90, 0, 0, 180, 92, 93, 0, 94,
1100 95, 96, 181, 182, 99, 183, 184, 100, 101, 102,
1101 185, 104, 0, 105, 106, 107, 108, 0, 109, 186,
1102 111, 187, 0, 113, 114, 115, 0, 116, 0, 117,
1103 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
1104 188, 129, 130, 131, 0, 132, 133, 134, 135, 136,
1105 137, 138, 139, 140, 189, 142, 143, 144, 145, 146,
1106 0, 147, 148, 149, 150, 151, 152, 153, 190, 155,
1107 156, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1108 0, 0, 191, 192, 0, 0, 193, 0, 0, 194,
1109 0, 0, 195, 273, 169, 170, 171, 0, 172, 173,
1110 0, 0, 0, 0, 175, 64, 65, 66, 0, 67,
1111 68, 69, 70, 71, 72, 177, 74, 0, 75, 76,
1112 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1113 87, 88, 0, 179, 90, 0, 0, 180, 92, 93,
1114 0, 94, 95, 96, 97, 98, 99, 183, 184, 100,
1115 101, 102, 185, 104, 0, 105, 106, 107, 108, 0,
1116 109, 274, 111, 275, 0, 113, 114, 115, 0, 116,
1117 0, 117, 118, 119, 120, 121, 122, 123, 124, 125,
1118 126, 127, 188, 129, 130, 131, 518, 132, 133, 134,
1119 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1120 145, 146, 0, 147, 148, 149, 150, 151, 152, 153,
1121 190, 155, 156, 0, 0, 0, 0, 0, 0, 0,
1122 0, 0, 0, 0, 191, 0, 0, 0, 193, 0,
1123 0, 194, 0, 0, 195, 273, 169, 170, 171, 0,
1124 378, 173, 0, 0, 0, 0, 175, 64, 65, 66,
1125 0, 67, 68, 69, 70, 71, 72, 177, 74, 0,
1126 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1127 85, 86, 87, 88, 0, 179, 90, 0, 0, 180,
1128 92, 93, 0, 94, 95, 96, 97, 98, 99, 183,
1129 184, 100, 101, 102, 185, 104, 0, 105, 106, 107,
1130 108, 0, 109, 274, 111, 275, 0, 113, 114, 115,
1131 0, 116, 0, 117, 118, 119, 120, 121, 122, 123,
1132 124, 125, 126, 127, 188, 129, 130, 131, 0, 132,
1133 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
1134 143, 144, 145, 146, 0, 147, 148, 149, 150, 151,
1135 152, 153, 190, 155, 156, 0, 0, 0, 0, 0,
1136 0, 0, 0, 0, 0, 0, 191, 0, 0, 0,
1137 193, 0, 0, 194, 380, 0, 195, 273, 169, 170,
1138 171, 0, 172, 173, 0, 0, 0, 0, 175, 64,
1139 65, 66, 0, 67, 68, 69, 70, 71, 72, 177,
1140 74, 0, 75, 76, 77, 78, 79, 80, 81, 82,
1141 83, 84, 85, 86, 87, 88, 0, 179, 90, 0,
1142 0, 180, 92, 93, 0, 94, 95, 96, 97, 98,
1143 99, 183, 184, 100, 101, 102, 185, 104, 0, 105,
1144 106, 107, 108, 0, 109, 274, 111, 275, 0, 113,
1145 114, 115, 0, 116, 0, 117, 118, 119, 120, 121,
1146 122, 123, 124, 125, 126, 127, 188, 129, 130, 131,
1147 0, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1148 141, 142, 143, 144, 145, 146, 0, 147, 148, 149,
1149 150, 151, 152, 153, 190, 155, 156, 0, 0, 0,
1150 0, 0, 0, 0, 0, 0, 0, 0, 191, 0,
1151 0, 0, 193, 0, 0, 194, 0, 0, 195, 273,
1152 169, 170, 171, 0, 378, 173, 0, 0, 0, 0,
1153 175, 64, 65, 66, 0, 67, 68, 69, 70, 71,
1154 72, 177, 74, 0, 75, 76, 77, 78, 79, 80,
1155 81, 82, 83, 84, 85, 86, 87, 88, 0, 179,
1156 90, 0, 0, 180, 92, 93, 0, 94, 95, 96,
1157 97, 98, 99, 183, 184, 100, 101, 102, 185, 104,
1158 0, 105, 106, 107, 108, 0, 109, 274, 111, 275,
1159 0, 113, 114, 115, 0, 116, 0, 117, 118, 119,
1160 120, 121, 122, 123, 124, 125, 126, 127, 188, 129,
1161 130, 131, 0, 132, 133, 134, 135, 136, 137, 138,
1162 139, 140, 141, 142, 143, 144, 145, 146, 0, 147,
1163 148, 149, 150, 151, 152, 153, 190, 155, 156, 0,
1164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1165 191, 0, 0, 0, 193, 0, 0, 194, 0, 0,
1166 195, 273, 169, 170, 171, 0, 407, 173, 0, 0,
1167 0, 0, 175, 64, 65, 66, 0, 67, 68, 69,
1168 70, 71, 72, 177, 74, 0, 75, 76, 77, 78,
1169 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1170 0, 179, 90, 0, 0, 180, 92, 93, 0, 94,
1171 95, 96, 97, 98, 99, 183, 184, 100, 101, 102,
1172 185, 104, 0, 105, 106, 107, 108, 0, 109, 274,
1173 111, 275, 0, 113, 114, 115, 0, 116, 0, 117,
1174 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
1175 188, 129, 130, 131, 0, 132, 133, 134, 135, 136,
1176 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
1177 0, 147, 148, 149, 150, 151, 152, 153, 190, 155,
1178 156, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1179 0, 0, 191, 63, 500, 0, 193, 0, 0, 194,
1180 0, 0, 195, 0, 0, 64, 65, 66, 0, 67,
1181 68, 69, 70, 71, 72, 501, 74, 0, 75, 76,
1182 77, 78, 79, 80, 81, 502, 83, 84, 85, 86,
1183 87, 88, 0, 503, 90, 504, 0, 91, 92, 93,
1184 0, 94, 95, 96, 505, 98, 99, 506, 0, 100,
1185 101, 102, 507, 104, 0, 105, 106, 107, 108, 0,
1186 508, 110, 111, 112, 0, 113, 114, 115, 0, 116,
1187 0, 117, 118, 119, 120, 121, 122, 123, 124, 125,
1188 126, 127, 128, 129, 130, 131, 0, 132, 133, 134,
1189 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1190 145, 146, 0, 147, 148, 149, 150, 151, 152, 153,
1191 509, 155, 156, 0, 0, 0, 63, 0, 635, 0,
1192 0, 636, 0, 0, 0, 0, 0, 0, 64, 65,
1193 66, 510, 67, 68, 69, 70, 71, 72, 73, 74,
1194 0, 75, 76, 77, 78, 79, 80, 81, 82, 83,
1195 84, 85, 86, 87, 88, 0, 89, 90, 0, 0,
1196 91, 92, 93, 0, 94, 95, 96, 97, 98, 99,
1197 0, 0, 100, 101, 102, 103, 104, 0, 105, 106,
1198 107, 108, 0, 109, 110, 111, 112, 0, 113, 114,
1199 115, 0, 116, 0, 117, 118, 119, 120, 121, 122,
1200 123, 124, 125, 126, 127, 128, 129, 130, 131, 0,
1201 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
1202 142, 143, 144, 145, 146, 0, 147, 148, 149, 150,
1203 151, 152, 153, 154, 155, 156, 0, 0, 0, 63,
1204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1205 0, 64, 65, 66, 637, 67, 68, 69, 70, 71,
1206 72, 73, 74, 0, 75, 76, 77, 78, 79, 80,
1207 81, 82, 83, 84, 85, 86, 87, 88, 0, 89,
1208 90, 0, 0, 91, 92, 93, 0, 94, 95, 96,
1209 97, 98, 99, 0, 0, 100, 101, 102, 103, 104,
1210 0, 105, 106, 107, 108, 0, 109, 110, 111, 112,
1211 0, 113, 114, 115, 0, 116, 0, 117, 118, 119,
1212 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1213 130, 131, 0, 132, 133, 134, 135, 136, 137, 138,
1214 139, 140, 141, 142, 143, 144, 145, 146, 0, 147,
1215 148, 149, 150, 151, 152, 153, 154, 155, 156, 0,
1216 0, 0, 63, 0, 362, 0, 0, 444, 0, 0,
1217 0, 0, 0, 0, 64, 65, 66, 410, 67, 68,
1218 69, 70, 71, 72, 73, 74, 0, 75, 76, 77,
1219 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1220 88, 0, 89, 90, 0, 445, 91, 92, 93, 0,
1221 94, 95, 96, 97, 98, 99, 0, 0, 100, 101,
1222 102, 103, 104, 0, 105, 106, 107, 108, 0, 109,
1223 110, 111, 112, 0, 113, 114, 115, 446, 116, 0,
1224 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
1225 127, 128, 129, 130, 131, 0, 132, 133, 134, 135,
1226 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1227 146, 447, 147, 148, 149, 150, 151, 152, 153, 154,
1228 155, 156, 63, 0, 362, 0, 0, 0, 0, 0,
1229 0, 0, 0, 448, 64, 65, 66, 0, 67, 68,
1230 69, 70, 71, 72, 73, 74, 0, 75, 76, 77,
1231 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1232 88, 0, 89, 90, 0, 0, 91, 92, 93, 0,
1233 94, 95, 96, 97, 98, 99, 0, 0, 100, 101,
1234 102, 103, 104, 0, 105, 106, 107, 108, 0, 109,
1235 110, 111, 112, 0, 113, 114, 115, 0, 116, 0,
1236 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
1237 127, 128, 129, 130, 131, 0, 132, 133, 134, 135,
1238 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1239 146, 0, 147, 148, 149, 150, 151, 152, 153, 154,
1240 155, 156, 63, 0, 322, 323, 0, 324, 0, 0,
1241 0, 0, 0, 448, 64, 65, 66, 0, 67, 68,
1242 69, 70, 71, 72, 73, 74, 0, 75, 76, 77,
1243 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1244 88, 0, 89, 90, 0, 0, 91, 92, 93, 0,
1245 94, 95, 96, 97, 98, 99, 0, 0, 100, 101,
1246 102, 103, 104, 0, 105, 106, 107, 108, 0, 109,
1247 110, 111, 112, 0, 113, 114, 115, 325, 116, 0,
1248 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
1249 127, 128, 129, 130, 131, 0, 132, 133, 134, 135,
1250 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1251 146, 0, 147, 148, 149, 150, 151, 152, 153, 154,
1252 155, 156, 63, 500, 0, 0, 0, 0, 0, 0,
1253 0, 0, 0, 0, 64, 65, 66, 0, 67, 68,
1254 69, 70, 71, 72, 501, 74, 0, 75, 76, 77,
1255 78, 79, 80, 81, 502, 83, 84, 85, 86, 87,
1256 88, 0, 503, 90, 504, 0, 91, 92, 93, 0,
1257 94, 95, 96, 505, 98, 99, 506, 0, 100, 101,
1258 102, 507, 104, 0, 105, 106, 107, 108, 0, 109,
1259 110, 111, 112, 0, 113, 114, 115, 0, 116, 0,
1260 117, 118, 119, 120, 121, 732, 123, 124, 125, 126,
1261 127, 128, 129, 130, 131, 0, 132, 133, 134, 135,
1262 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1263 146, 0, 147, 148, 149, 150, 151, 152, 153, 509,
1264 155, 156, 63, 500, 0, 0, 0, 0, 0, 0,
1265 0, 0, 0, 0, 64, 65, 66, 0, 67, 68,
1266 69, 70, 71, 72, 501, 74, 0, 75, 76, 77,
1267 78, 79, 80, 81, 502, 83, 84, 85, 86, 87,
1268 88, 0, 503, 90, 504, 0, 91, 92, 93, 0,
1269 94, 95, 96, 505, 98, 99, 506, 0, 100, 101,
1270 102, 507, 104, 0, 105, 106, 107, 108, 0, 109,
1271 110, 111, 112, 0, 113, 114, 115, 0, 116, 0,
1272 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
1273 127, 128, 129, 130, 131, 0, 132, 133, 134, 135,
1274 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1275 146, 0, 147, 148, 149, 150, 151, 152, 153, 509,
1276 155, 156, 63, 0, 552, 0, 0, 444, 0, 0,
1277 0, 0, 0, 0, 64, 65, 66, 0, 67, 68,
1278 69, 70, 71, 72, 73, 74, 0, 75, 76, 77,
1279 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1280 88, 0, 89, 90, 0, 0, 91, 92, 93, 0,
1281 94, 95, 96, 97, 98, 99, 0, 0, 100, 101,
1282 102, 103, 104, 0, 105, 106, 107, 108, 0, 109,
1283 110, 111, 112, 0, 113, 114, 115, 0, 116, 0,
1284 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
1285 127, 128, 129, 130, 131, 0, 132, 133, 134, 135,
1286 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1287 146, 0, 147, 148, 149, 150, 151, 152, 153, 154,
1288 155, 156, 63, 0, 761, 0, 0, 0, 0, 0,
1289 0, 0, 0, 0, 64, 65, 66, 0, 67, 68,
1290 69, 70, 71, 72, 73, 74, 0, 75, 76, 77,
1291 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
1292 88, 0, 89, 90, 0, 0, 91, 92, 93, 0,
1293 94, 95, 96, 97, 98, 99, 762, 0, 100, 101,
1294 102, 103, 104, 0, 105, 106, 107, 108, 0, 109,
1295 110, 111, 112, 0, 113, 114, 115, 0, 116, 0,
1296 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
1297 127, 128, 129, 130, 131, 0, 132, 133, 134, 135,
1298 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
1299 146, 63, 147, 148, 149, 150, 151, 152, 153, 154,
1300 155, 156, 0, 64, 65, 66, 0, 67, 68, 69,
1301 70, 71, 72, 73, 74, 0, 75, 76, 77, 78,
1302 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1303 0, 89, 90, 0, 0, 91, 92, 93, 0, 94,
1304 95, 96, 97, 98, 99, 0, 279, 100, 101, 102,
1305 103, 104, 0, 105, 106, 107, 108, 0, 109, 110,
1306 111, 112, 0, 113, 114, 115, 0, 116, 0, 117,
1307 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
1308 128, 129, 130, 131, 0, 132, 133, 134, 135, 136,
1309 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
1310 63, 147, 148, 149, 150, 151, 152, 153, 154, 155,
1311 156, 0, 64, 65, 66, 290, 67, 68, 69, 70,
1312 71, 72, 73, 74, 0, 75, 76, 77, 78, 79,
1313 80, 81, 82, 83, 84, 85, 86, 87, 88, 0,
1314 89, 90, 0, 0, 91, 92, 93, 0, 94, 95,
1315 96, 97, 98, 99, 0, 0, 100, 101, 102, 103,
1316 104, 0, 105, 106, 107, 108, 0, 109, 110, 111,
1317 112, 0, 113, 114, 115, 0, 116, 0, 117, 118,
1318 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
1319 129, 130, 131, 0, 132, 133, 134, 135, 136, 137,
1320 138, 139, 140, 141, 142, 143, 144, 145, 146, 0,
1321 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
1322 63, 0, 0, 0, 0, 331, 0, 0, 0, 0,
1323 0, 0, 64, 65, 66, 0, 67, 68, 69, 70,
1324 71, 72, 73, 74, 0, 75, 76, 77, 78, 79,
1325 80, 81, 82, 83, 84, 85, 86, 87, 88, 0,
1326 89, 90, 0, 0, 91, 92, 93, 0, 94, 95,
1327 96, 97, 98, 99, 0, 0, 100, 101, 102, 103,
1328 104, 0, 105, 106, 107, 108, 0, 109, 110, 111,
1329 112, 0, 113, 114, 115, 0, 116, 0, 117, 118,
1330 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
1331 129, 130, 131, 0, 132, 133, 134, 135, 136, 137,
1332 138, 332, 140, 141, 142, 143, 144, 145, 146, 63,
1333 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
1334 0, 64, 65, 66, 0, 67, 68, 69, 70, 71,
1335 72, 73, 74, 0, 75, 76, 77, 78, 79, 80,
1336 81, 82, 83, 84, 85, 86, 87, 88, 0, 89,
1337 90, 0, 0, 91, 92, 93, 0, 94, 95, 96,
1338 97, 98, 99, 577, 0, 100, 101, 102, 103, 104,
1339 0, 105, 106, 107, 108, 0, 109, 110, 111, 112,
1340 0, 113, 114, 115, 0, 116, 0, 117, 118, 119,
1341 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
1342 130, 131, 0, 132, 133, 134, 135, 136, 137, 138,
1343 139, 140, 141, 142, 143, 144, 145, 146, 63, 147,
1344 148, 149, 150, 151, 152, 153, 154, 155, 156, 0,
1345 64, 65, 66, 0, 67, 68, 69, 70, 71, 72,
1346 73, 74, 0, 75, 76, 77, 78, 79, 80, 81,
1347 82, 83, 84, 85, 86, 87, 88, 0, 89, 90,
1348 0, 0, 91, 92, 93, 0, 94, 95, 96, 97,
1349 98, 99, 0, 0, 100, 101, 102, 103, 104, 0,
1350 105, 106, 107, 108, 743, 109, 110, 111, 112, 0,
1351 113, 114, 115, 0, 116, 0, 117, 118, 119, 120,
1352 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
1353 131, 0, 132, 133, 134, 135, 136, 137, 138, 139,
1354 140, 141, 142, 143, 144, 145, 146, 63, 147, 148,
1355 149, 150, 151, 152, 153, 154, 155, 156, 0, 64,
1356 65, 66, 0, 67, 68, 69, 70, 71, 72, 73,
1357 74, 0, 75, 76, 77, 78, 79, 80, 81, 82,
1358 83, 84, 85, 86, 87, 88, 0, 89, 90, 0,
1359 0, 91, 92, 93, 0, 94, 95, 96, 97, 98,
1360 99, 0, 0, 100, 101, 102, 103, 104, 0, 105,
1361 106, 107, 108, 0, 109, 110, 111, 112, 0, 113,
1362 114, 115, 0, 116, 0, 117, 118, 119, 120, 121,
1363 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1364 0, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1365 141, 142, 143, 144, 145, 146, 0, 147, 148, 149,
1366 150, 151, 152, 153, 154, 155, 156, 63, 0, 0,
1367 0, 0, 0, 0, 209, 0, 0, 0, 0, 64,
1368 65, 66, 0, 67, 68, 69, 70, 71, 72, 73,
1369 74, 0, 75, 210, 77, 78, 79, 80, 81, 82,
1370 83, 84, 85, 86, 87, 88, 0, 89, 90, 0,
1371 0, 91, 92, 93, 0, 94, 211, 96, 97, 98,
1372 99, 0, 0, 212, 101, 102, 103, 104, 0, 105,
1373 106, 107, 108, 0, 109, 110, 111, 112, 0, 113,
1374 114, 213, 0, 116, 0, 117, 118, 119, 120, 121,
1375 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1376 0, 132, 133, 134, 214, 136, 137, 138, 139, 140,
1377 141, 142, 143, 144, 145, 0, 0, 147, 148, 149,
1378 150, 151, 152, 153, 154, 155, 156, 63, 0, 0,
1379 0, 0, 0, 319, 0, 0, 0, 0, 0, 64,
1380 65, 66, 0, 67, 68, 69, 70, 71, 72, 73,
1381 74, 0, 75, 76, 77, 78, 79, 80, 81, 82,
1382 83, 84, 85, 86, 87, 88, 0, 89, 90, 0,
1383 0, 91, 92, 93, 0, 94, 95, 96, 97, 98,
1384 99, 0, 0, 100, 101, 102, 103, 104, 0, 105,
1385 106, 107, 108, 0, 109, 110, 111, 112, 0, 113,
1386 114, 0, 0, 116, 0, 117, 118, 119, 120, 121,
1387 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1388 0, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1389 141, 142, 143, 144, 145, -439, 0, 147, 148, 149,
1390 150, 151, 152, 153, 154, 155, 156, 63, 0, 0,
1391 0, 0, 0, 0, 209, 0, 0, 0, 0, 64,
1392 65, 66, 0, 67, 68, 69, 70, 71, 72, 73,
1393 74, 0, 75, 210, 77, 78, 79, 80, 81, 82,
1394 83, 84, 85, 86, 87, 88, 0, 89, 90, 0,
1395 293, 91, 92, 93, 0, 94, 95, 96, 97, 98,
1396 99, 0, 0, 100, 101, 102, 103, 104, 0, 105,
1397 106, 107, 108, 0, 109, 110, 111, 112, 0, 113,
1398 114, 213, 294, 116, 293, 117, 118, 119, 120, 121,
1399 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1400 0, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1401 141, 142, 143, 144, 145, 293, 294, 147, 148, 149,
1402 150, 151, 152, 153, 154, 155, 156, 0, 0, 0,
1403 0, 295, 296, 297, 298, 299, 300, 301, 302, 303,
1404 304, 305, 306, 307, 308, 309, 0, 294, 293, 0,
1405 0, 533, 0, 0, 0, 0, 0, 0, 0, 0,
1406 0, 0, 0, 0, 0, 295, 296, 297, 298, 299,
1407 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
1408 294, 293, 0, 0, 0, 535, 0, 0, 0, 0,
1409 0, 0, 0, 0, 0, 0, 295, 296, 297, 298,
1410 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
1411 309, 0, 293, 294, 0, 0, 710, 0, 0, 0,
1412 0, 0, 0, 0, 0, 0, 0, 0, 0, 295,
1413 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
1414 306, 307, 308, 309, 294, 293, 0, 0, 403, 0,
1415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1416 0, 0, 295, 296, 297, 298, 299, 300, 301, 302,
1417 303, 304, 305, 306, 307, 308, 309, 294, 293, 0,
1418 0, 523, 0, 0, 0, 0, 0, 0, 0, 0,
1419 0, 0, 0, 295, 296, 297, 298, 299, 300, 301,
1420 302, 303, 304, 305, 306, 307, 308, 309, 0, 293,
1421 294, 0, 529, 0, 0, 0, 0, 0, 0, 0,
1422 0, 0, 0, 0, 0, 0, 295, 296, 297, 298,
1423 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
1424 309, 294, 0, 0, 0, 537, 0, 0, 0, 0,
1425 0, 0, 0, 0, 0, 0, 0, 0, 0, 295,
1426 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
1427 306, 307, 308, 309, 0, 0, 0, 0, 708, 0,
1428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1429 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1430 305, 306, 307, 308, 309, 1, 0, 0, 2, 709,
1431 0, 3, 0, 0, 0, 0, 4, 0, 0, 0,
1432 0, 5, 0, 0, 6, 0, 7, 8, 9, 0,
1433 0, 293, 10, 0, 0, 0, 11, 0, 520, 0,
1434 0, 0, 0, 0, 0, 0, 293, 0, 12, 0,
1435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1436 293, 0, 0, 294, 0, 0, 0, 0, 0, 13,
1437 0, 0, 0, 293, 0, 0, 0, 0, 294, 14,
1438 0, 0, 15, 0, 16, 0, 17, 0, 0, 18,
1439 0, 19, 294, 0, 0, 0, 0, 0, 0, 0,
1440 0, 20, 0, 0, 21, 294, 0, 0, 0, 0,
1441 0, 0, 295, 296, 297, 298, 299, 300, 301, 302,
1442 303, 304, 305, 306, 307, 308, 309, 295, 296, 297,
1443 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
1444 308, 309, 296, 297, 298, 299, 300, 301, 302, 303,
1445 304, 305, 306, 307, 308, 309, 297, 298, 299, 300,
1446 301, 302, 303, 304, 305, 306, 307, 308, 309
1447 };
1448
1449 static const yytype_int16 yycheck[] =
1450 {
1451 4, 570, 260, 17, 262, 263, 491, 574, 266, 267,
1452 551, 21, 649, 9, 346, 5, 223, 21, 204, 5,
1453 27, 228, 9, 230, 5, 568, 45, 8, 571, 510,
1454 69, 78, 249, 42, 34, 39, 41, 5, 245, 50,
1455 8, 5, 6, 375, 5, 14, 5, 6, 50, 8,
1456 14, 5, 6, 79, 8, 14, 60, 61, 62, 25,
1457 14, 30, 78, 606, 98, 74, 609, 610, 611, 612,
1458 613, 614, 13, 14, 18, 5, 6, 68, 8, 13,
1459 14, 47, 13, 14, 14, 5, 6, 15, 8, 5,
1460 6, 138, 121, 124, 14, 61, 62, 121, 14, 51,
1461 19, 642, 51, 143, 143, 145, 5, 6, 411, 143,
1462 21, 142, 329, 104, 143, 115, 44, 143, 68, 143,
1463 39, 140, 138, 64, 605, 332, 135, 136, 137, 111,
1464 135, 83, 143, 59, 83, 104, 143, 774, 50, 105,
1465 88, 143, 90, 0, 134, 141, 687, 806, 134, 97,
1466 787, 161, 142, 134, 141, 159, 160, 161, 162, 163,
1467 42, 165, 166, 167, 350, 0, 134, 470, 653, 806,
1468 134, 121, 831, 134, 142, 134, 87, 141, 510, 720,
1469 134, 142, 141, 59, 95, 670, 95, 141, 42, 406,
1470 95, 195, 74, 830, 831, 199, 127, 211, 142, 143,
1471 204, 96, 107, 98, 134, 146, 101, 42, 212, 213,
1472 753, 754, 146, 217, 134, 146, 24, 63, 134, 760,
1473 74, 142, 143, 64, 142, 143, 127, 142, 143, 68,
1474 234, 317, 318, 237, 142, 143, 64, 569, 141, 74,
1475 244, 141, 16, 127, 142, 143, 813, 454, 141, 456,
1476 58, 133, 134, 135, 136, 137, 64, 142, 143, 142,
1477 143, 142, 143, 832, 596, 98, 598, 142, 143, 601,
1478 142, 143, 141, 605, 491, 129, 130, 131, 132, 133,
1479 134, 135, 136, 137, 288, 141, 290, 111, 123, 124,
1480 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1481 135, 136, 137, 141, 789, 142, 143, 127, 142, 143,
1482 16, 25, 26, 317, 318, 142, 143, 649, 141, 127,
1483 128, 129, 130, 131, 132, 329, 142, 143, 142, 143,
1484 138, 142, 143, 47, 141, 141, 340, 142, 143, 353,
1485 42, 141, 346, 347, 142, 143, 350, 61, 62, 142,
1486 143, 568, 66, 59, 571, 142, 143, 141, 141, 141,
1487 141, 75, 76, 141, 141, 111, 72, 98, 79, 586,
1488 118, 375, 74, 89, 110, 707, 82, 114, 84, 85,
1489 93, 114, 142, 387, 142, 141, 141, 141, 127, 606,
1490 5, 105, 609, 610, 611, 612, 613, 614, 104, 10,
1491 404, 107, 406, 109, 127, 127, 623, 52, 134, 65,
1492 104, 104, 8, 119, 141, 32, 32, 191, 95, 193,
1493 194, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1494 132, 133, 134, 135, 136, 137, 653, 441, 143, 443,
1495 8, 8, 774, 127, 776, 147, 142, 147, 143, 78,
1496 141, 9, 5, 670, 67, 787, 127, 143, 99, 5,
1497 99, 8, 466, 127, 117, 102, 80, 241, 142, 102,
1498 124, 141, 141, 141, 806, 479, 141, 481, 482, 483,
1499 141, 141, 141, 141, 258, 259, 96, 142, 53, 127,
1500 142, 265, 5, 127, 268, 269, 270, 271, 830, 831,
1501 127, 123, 27, 69, 8, 8, 510, 143, 143, 141,
1502 8, 285, 770, 8, 135, 289, 520, 142, 142, 293,
1503 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
1504 304, 305, 306, 307, 308, 309, 753, 754, 142, 58,
1505 143, 58, 316, 142, 5, 122, 141, 88, 16, 141,
1506 8, 142, 142, 142, 142, 559, 560, 142, 78, 142,
1507 124, 29, 779, 31, 124, 569, 141, 27, 80, 37,
1508 53, 56, 789, 127, 8, 3, 18, 27, 352, 141,
1509 143, 142, 840, 69, 52, 142, 42, 143, 80, 127,
1510 142, 59, 596, 143, 598, 8, 5, 601, 143, 143,
1511 27, 605, 8, 42, 72, 379, 143, 141, 5, 142,
1512 379, 242, 803, 546, 82, 776, 84, 85, 74, 623,
1513 760, 624, 289, 777, 42, 787, 400, 401, 402, 781,
1514 522, 560, 100, 637, 404, 74, 104, 641, 623, 107,
1515 108, 109, 441, 741, 652, 649, 443, 822, 652, 491,
1516 670, 119, 569, 641, 18, 707, 74, 299, 286, 476,
1517 311, -1, -1, 478, -1, 669, -1, 123, 124, 125,
1518 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1519 136, 137, -1, -1, -1, -1, 142, 143, 127, 128,
1520 129, 130, 131, 132, 133, 134, 135, 136, 137, -1,
1521 42, 705, 476, 707, 478, 123, 124, 125, 126, 127,
1522 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1523 -1, -1, 42, -1, 142, 143, -1, -1, -1, -1,
1524 -1, -1, 74, -1, -1, -1, -1, -1, -1, -1,
1525 -1, -1, -1, -1, 518, -1, -1, -1, -1, -1,
1526 -1, -1, -1, -1, 74, -1, -1, -1, -1, 533,
1527 -1, 535, 536, -1, -1, -1, -1, 771, -1, -1,
1528 774, -1, 776, -1, -1, -1, -1, 781, -1, -1,
1529 -1, -1, -1, 787, 126, 127, 128, 129, 130, 131,
1530 132, 133, 134, 135, 136, 137, -1, -1, -1, 803,
1531 -1, -1, 806, 123, 124, 125, 126, 127, 128, 129,
1532 130, 131, 132, 133, 134, 135, 136, 137, -1, -1,
1533 -1, -1, -1, 143, -1, -1, 830, 831, -1, -1,
1534 -1, -1, -1, -1, -1, 3, 4, 5, 6, -1,
1535 8, 9, 10, -1, -1, -1, 14, 15, 16, 17,
1536 624, 19, 20, 21, 22, 23, 24, 25, 26, -1,
1537 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1538 38, 39, 40, 41, -1, 43, 44, -1, -1, 47,
1539 48, 49, -1, 51, 52, 53, 54, 55, 56, 57,
1540 58, 59, 60, 61, 62, 63, -1, 65, 66, 67,
1541 68, -1, 70, 71, 72, 73, -1, 75, 76, 77,
1542 -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
1543 88, 89, 90, 91, 92, 93, 94, 95, -1, 97,
1544 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1545 108, 109, 110, 111, -1, 113, 114, 115, 116, 117,
1546 118, 119, 120, 121, 122, -1, -1, -1, -1, -1,
1547 -1, -1, -1, -1, -1, -1, 134, 135, -1, -1,
1548 138, -1, -1, 141, -1, -1, 144, 3, 4, 5,
1549 6, -1, 8, 9, -1, -1, -1, -1, 14, 15,
1550 16, 17, -1, 19, 20, 21, 22, 23, 24, 25,
1551 26, -1, 28, 29, 30, 31, 32, 33, 34, 35,
1552 36, 37, 38, 39, 40, 41, -1, 43, 44, -1,
1553 -1, 47, 48, 49, -1, 51, 52, 53, 54, 55,
1554 56, 57, 58, 59, 60, 61, 62, 63, -1, 65,
1555 66, 67, 68, -1, 70, 71, 72, 73, -1, 75,
1556 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
1557 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1558 -1, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1559 106, 107, 108, 109, 110, 111, -1, 113, 114, 115,
1560 116, 117, 118, 119, 120, 121, 122, -1, -1, -1,
1561 -1, -1, -1, -1, -1, -1, -1, -1, 134, -1,
1562 -1, -1, 138, -1, -1, 141, 142, -1, 144, 3,
1563 4, 5, 6, -1, 8, 9, -1, -1, -1, -1,
1564 14, 15, 16, 17, -1, 19, 20, 21, 22, 23,
1565 24, 25, 26, -1, 28, 29, 30, 31, 32, 33,
1566 34, 35, 36, 37, 38, 39, 40, 41, -1, 43,
1567 44, -1, -1, 47, 48, 49, -1, 51, 52, 53,
1568 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1569 -1, 65, 66, 67, 68, -1, 70, 71, 72, 73,
1570 -1, 75, 76, 77, -1, 79, -1, 81, 82, 83,
1571 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1572 94, 95, -1, 97, 98, 99, 100, 101, 102, 103,
1573 104, 105, 106, 107, 108, 109, 110, 111, -1, 113,
1574 114, 115, 116, 117, 118, 119, 120, 121, 122, -1,
1575 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1576 134, 135, -1, -1, 138, -1, -1, 141, -1, -1,
1577 144, 3, 4, 5, 6, -1, 8, 9, -1, -1,
1578 -1, -1, 14, 15, 16, 17, -1, 19, 20, 21,
1579 22, 23, 24, 25, 26, -1, 28, 29, 30, 31,
1580 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1581 -1, 43, 44, -1, -1, 47, 48, 49, -1, 51,
1582 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1583 62, 63, -1, 65, 66, 67, 68, -1, 70, 71,
1584 72, 73, -1, 75, 76, 77, -1, 79, -1, 81,
1585 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1586 92, 93, 94, 95, -1, 97, 98, 99, 100, 101,
1587 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1588 -1, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1589 122, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1590 -1, -1, 134, 135, -1, -1, 138, -1, -1, 141,
1591 -1, -1, 144, 3, 4, 5, 6, -1, 8, 9,
1592 -1, -1, -1, -1, 14, 15, 16, 17, -1, 19,
1593 20, 21, 22, 23, 24, 25, 26, -1, 28, 29,
1594 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1595 40, 41, -1, 43, 44, -1, -1, 47, 48, 49,
1596 -1, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1597 60, 61, 62, 63, -1, 65, 66, 67, 68, -1,
1598 70, 71, 72, 73, -1, 75, 76, 77, -1, 79,
1599 -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1600 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
1601 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1602 110, 111, -1, 113, 114, 115, 116, 117, 118, 119,
1603 120, 121, 122, -1, -1, -1, -1, -1, -1, -1,
1604 -1, -1, -1, -1, 134, -1, -1, -1, 138, -1,
1605 -1, 141, -1, -1, 144, 3, 4, 5, 6, -1,
1606 8, 9, -1, -1, -1, -1, 14, 15, 16, 17,
1607 -1, 19, 20, 21, 22, 23, 24, 25, 26, -1,
1608 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1609 38, 39, 40, 41, -1, 43, 44, -1, -1, 47,
1610 48, 49, -1, 51, 52, 53, 54, 55, 56, 57,
1611 58, 59, 60, 61, 62, 63, -1, 65, 66, 67,
1612 68, -1, 70, 71, 72, 73, -1, 75, 76, 77,
1613 -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
1614 88, 89, 90, 91, 92, 93, 94, 95, -1, 97,
1615 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
1616 108, 109, 110, 111, -1, 113, 114, 115, 116, 117,
1617 118, 119, 120, 121, 122, -1, -1, -1, -1, -1,
1618 -1, -1, -1, -1, -1, -1, 134, -1, -1, -1,
1619 138, -1, -1, 141, 142, -1, 144, 3, 4, 5,
1620 6, -1, 8, 9, -1, -1, -1, -1, 14, 15,
1621 16, 17, -1, 19, 20, 21, 22, 23, 24, 25,
1622 26, -1, 28, 29, 30, 31, 32, 33, 34, 35,
1623 36, 37, 38, 39, 40, 41, -1, 43, 44, -1,
1624 -1, 47, 48, 49, -1, 51, 52, 53, 54, 55,
1625 56, 57, 58, 59, 60, 61, 62, 63, -1, 65,
1626 66, 67, 68, -1, 70, 71, 72, 73, -1, 75,
1627 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
1628 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1629 -1, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1630 106, 107, 108, 109, 110, 111, -1, 113, 114, 115,
1631 116, 117, 118, 119, 120, 121, 122, -1, -1, -1,
1632 -1, -1, -1, -1, -1, -1, -1, -1, 134, -1,
1633 -1, -1, 138, -1, -1, 141, -1, -1, 144, 3,
1634 4, 5, 6, -1, 8, 9, -1, -1, -1, -1,
1635 14, 15, 16, 17, -1, 19, 20, 21, 22, 23,
1636 24, 25, 26, -1, 28, 29, 30, 31, 32, 33,
1637 34, 35, 36, 37, 38, 39, 40, 41, -1, 43,
1638 44, -1, -1, 47, 48, 49, -1, 51, 52, 53,
1639 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1640 -1, 65, 66, 67, 68, -1, 70, 71, 72, 73,
1641 -1, 75, 76, 77, -1, 79, -1, 81, 82, 83,
1642 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1643 94, 95, -1, 97, 98, 99, 100, 101, 102, 103,
1644 104, 105, 106, 107, 108, 109, 110, 111, -1, 113,
1645 114, 115, 116, 117, 118, 119, 120, 121, 122, -1,
1646 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1647 134, -1, -1, -1, 138, -1, -1, 141, -1, -1,
1648 144, 3, 4, 5, 6, -1, 8, 9, -1, -1,
1649 -1, -1, 14, 15, 16, 17, -1, 19, 20, 21,
1650 22, 23, 24, 25, 26, -1, 28, 29, 30, 31,
1651 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1652 -1, 43, 44, -1, -1, 47, 48, 49, -1, 51,
1653 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
1654 62, 63, -1, 65, 66, 67, 68, -1, 70, 71,
1655 72, 73, -1, 75, 76, 77, -1, 79, -1, 81,
1656 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1657 92, 93, 94, 95, -1, 97, 98, 99, 100, 101,
1658 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1659 -1, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1660 122, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1661 -1, -1, 134, 3, 4, -1, 138, -1, -1, 141,
1662 -1, -1, 144, -1, -1, 15, 16, 17, -1, 19,
1663 20, 21, 22, 23, 24, 25, 26, -1, 28, 29,
1664 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
1665 40, 41, -1, 43, 44, 45, -1, 47, 48, 49,
1666 -1, 51, 52, 53, 54, 55, 56, 57, -1, 59,
1667 60, 61, 62, 63, -1, 65, 66, 67, 68, -1,
1668 70, 71, 72, 73, -1, 75, 76, 77, -1, 79,
1669 -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
1670 90, 91, 92, 93, 94, 95, -1, 97, 98, 99,
1671 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
1672 110, 111, -1, 113, 114, 115, 116, 117, 118, 119,
1673 120, 121, 122, -1, -1, -1, 3, -1, 5, -1,
1674 -1, 8, -1, -1, -1, -1, -1, -1, 15, 16,
1675 17, 141, 19, 20, 21, 22, 23, 24, 25, 26,
1676 -1, 28, 29, 30, 31, 32, 33, 34, 35, 36,
1677 37, 38, 39, 40, 41, -1, 43, 44, -1, -1,
1678 47, 48, 49, -1, 51, 52, 53, 54, 55, 56,
1679 -1, -1, 59, 60, 61, 62, 63, -1, 65, 66,
1680 67, 68, -1, 70, 71, 72, 73, -1, 75, 76,
1681 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
1682 87, 88, 89, 90, 91, 92, 93, 94, 95, -1,
1683 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1684 107, 108, 109, 110, 111, -1, 113, 114, 115, 116,
1685 117, 118, 119, 120, 121, 122, -1, -1, -1, 3,
1686 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1687 -1, 15, 16, 17, 141, 19, 20, 21, 22, 23,
1688 24, 25, 26, -1, 28, 29, 30, 31, 32, 33,
1689 34, 35, 36, 37, 38, 39, 40, 41, -1, 43,
1690 44, -1, -1, 47, 48, 49, -1, 51, 52, 53,
1691 54, 55, 56, -1, -1, 59, 60, 61, 62, 63,
1692 -1, 65, 66, 67, 68, -1, 70, 71, 72, 73,
1693 -1, 75, 76, 77, -1, 79, -1, 81, 82, 83,
1694 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1695 94, 95, -1, 97, 98, 99, 100, 101, 102, 103,
1696 104, 105, 106, 107, 108, 109, 110, 111, -1, 113,
1697 114, 115, 116, 117, 118, 119, 120, 121, 122, -1,
1698 -1, -1, 3, -1, 5, -1, -1, 8, -1, -1,
1699 -1, -1, -1, -1, 15, 16, 17, 141, 19, 20,
1700 21, 22, 23, 24, 25, 26, -1, 28, 29, 30,
1701 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1702 41, -1, 43, 44, -1, 46, 47, 48, 49, -1,
1703 51, 52, 53, 54, 55, 56, -1, -1, 59, 60,
1704 61, 62, 63, -1, 65, 66, 67, 68, -1, 70,
1705 71, 72, 73, -1, 75, 76, 77, 78, 79, -1,
1706 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1707 91, 92, 93, 94, 95, -1, 97, 98, 99, 100,
1708 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1709 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
1710 121, 122, 3, -1, 5, -1, -1, -1, -1, -1,
1711 -1, -1, -1, 134, 15, 16, 17, -1, 19, 20,
1712 21, 22, 23, 24, 25, 26, -1, 28, 29, 30,
1713 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1714 41, -1, 43, 44, -1, -1, 47, 48, 49, -1,
1715 51, 52, 53, 54, 55, 56, -1, -1, 59, 60,
1716 61, 62, 63, -1, 65, 66, 67, 68, -1, 70,
1717 71, 72, 73, -1, 75, 76, 77, -1, 79, -1,
1718 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1719 91, 92, 93, 94, 95, -1, 97, 98, 99, 100,
1720 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1721 111, -1, 113, 114, 115, 116, 117, 118, 119, 120,
1722 121, 122, 3, -1, 5, 6, -1, 8, -1, -1,
1723 -1, -1, -1, 134, 15, 16, 17, -1, 19, 20,
1724 21, 22, 23, 24, 25, 26, -1, 28, 29, 30,
1725 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1726 41, -1, 43, 44, -1, -1, 47, 48, 49, -1,
1727 51, 52, 53, 54, 55, 56, -1, -1, 59, 60,
1728 61, 62, 63, -1, 65, 66, 67, 68, -1, 70,
1729 71, 72, 73, -1, 75, 76, 77, 78, 79, -1,
1730 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1731 91, 92, 93, 94, 95, -1, 97, 98, 99, 100,
1732 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1733 111, -1, 113, 114, 115, 116, 117, 118, 119, 120,
1734 121, 122, 3, 4, -1, -1, -1, -1, -1, -1,
1735 -1, -1, -1, -1, 15, 16, 17, -1, 19, 20,
1736 21, 22, 23, 24, 25, 26, -1, 28, 29, 30,
1737 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1738 41, -1, 43, 44, 45, -1, 47, 48, 49, -1,
1739 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
1740 61, 62, 63, -1, 65, 66, 67, 68, -1, 70,
1741 71, 72, 73, -1, 75, 76, 77, -1, 79, -1,
1742 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1743 91, 92, 93, 94, 95, -1, 97, 98, 99, 100,
1744 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1745 111, -1, 113, 114, 115, 116, 117, 118, 119, 120,
1746 121, 122, 3, 4, -1, -1, -1, -1, -1, -1,
1747 -1, -1, -1, -1, 15, 16, 17, -1, 19, 20,
1748 21, 22, 23, 24, 25, 26, -1, 28, 29, 30,
1749 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1750 41, -1, 43, 44, 45, -1, 47, 48, 49, -1,
1751 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
1752 61, 62, 63, -1, 65, 66, 67, 68, -1, 70,
1753 71, 72, 73, -1, 75, 76, 77, -1, 79, -1,
1754 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1755 91, 92, 93, 94, 95, -1, 97, 98, 99, 100,
1756 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1757 111, -1, 113, 114, 115, 116, 117, 118, 119, 120,
1758 121, 122, 3, -1, 5, -1, -1, 8, -1, -1,
1759 -1, -1, -1, -1, 15, 16, 17, -1, 19, 20,
1760 21, 22, 23, 24, 25, 26, -1, 28, 29, 30,
1761 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1762 41, -1, 43, 44, -1, -1, 47, 48, 49, -1,
1763 51, 52, 53, 54, 55, 56, -1, -1, 59, 60,
1764 61, 62, 63, -1, 65, 66, 67, 68, -1, 70,
1765 71, 72, 73, -1, 75, 76, 77, -1, 79, -1,
1766 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1767 91, 92, 93, 94, 95, -1, 97, 98, 99, 100,
1768 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1769 111, -1, 113, 114, 115, 116, 117, 118, 119, 120,
1770 121, 122, 3, -1, 5, -1, -1, -1, -1, -1,
1771 -1, -1, -1, -1, 15, 16, 17, -1, 19, 20,
1772 21, 22, 23, 24, 25, 26, -1, 28, 29, 30,
1773 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
1774 41, -1, 43, 44, -1, -1, 47, 48, 49, -1,
1775 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
1776 61, 62, 63, -1, 65, 66, 67, 68, -1, 70,
1777 71, 72, 73, -1, 75, 76, 77, -1, 79, -1,
1778 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1779 91, 92, 93, 94, 95, -1, 97, 98, 99, 100,
1780 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1781 111, 3, 113, 114, 115, 116, 117, 118, 119, 120,
1782 121, 122, -1, 15, 16, 17, -1, 19, 20, 21,
1783 22, 23, 24, 25, 26, -1, 28, 29, 30, 31,
1784 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
1785 -1, 43, 44, -1, -1, 47, 48, 49, -1, 51,
1786 52, 53, 54, 55, 56, -1, 58, 59, 60, 61,
1787 62, 63, -1, 65, 66, 67, 68, -1, 70, 71,
1788 72, 73, -1, 75, 76, 77, -1, 79, -1, 81,
1789 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
1790 92, 93, 94, 95, -1, 97, 98, 99, 100, 101,
1791 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
1792 3, 113, 114, 115, 116, 117, 118, 119, 120, 121,
1793 122, -1, 15, 16, 17, 18, 19, 20, 21, 22,
1794 23, 24, 25, 26, -1, 28, 29, 30, 31, 32,
1795 33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
1796 43, 44, -1, -1, 47, 48, 49, -1, 51, 52,
1797 53, 54, 55, 56, -1, -1, 59, 60, 61, 62,
1798 63, -1, 65, 66, 67, 68, -1, 70, 71, 72,
1799 73, -1, 75, 76, 77, -1, 79, -1, 81, 82,
1800 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1801 93, 94, 95, -1, 97, 98, 99, 100, 101, 102,
1802 103, 104, 105, 106, 107, 108, 109, 110, 111, -1,
1803 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
1804 3, -1, -1, -1, -1, 8, -1, -1, -1, -1,
1805 -1, -1, 15, 16, 17, -1, 19, 20, 21, 22,
1806 23, 24, 25, 26, -1, 28, 29, 30, 31, 32,
1807 33, 34, 35, 36, 37, 38, 39, 40, 41, -1,
1808 43, 44, -1, -1, 47, 48, 49, -1, 51, 52,
1809 53, 54, 55, 56, -1, -1, 59, 60, 61, 62,
1810 63, -1, 65, 66, 67, 68, -1, 70, 71, 72,
1811 73, -1, 75, 76, 77, -1, 79, -1, 81, 82,
1812 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
1813 93, 94, 95, -1, 97, 98, 99, 100, 101, 102,
1814 103, 104, 105, 106, 107, 108, 109, 110, 111, 3,
1815 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
1816 -1, 15, 16, 17, -1, 19, 20, 21, 22, 23,
1817 24, 25, 26, -1, 28, 29, 30, 31, 32, 33,
1818 34, 35, 36, 37, 38, 39, 40, 41, -1, 43,
1819 44, -1, -1, 47, 48, 49, -1, 51, 52, 53,
1820 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
1821 -1, 65, 66, 67, 68, -1, 70, 71, 72, 73,
1822 -1, 75, 76, 77, -1, 79, -1, 81, 82, 83,
1823 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1824 94, 95, -1, 97, 98, 99, 100, 101, 102, 103,
1825 104, 105, 106, 107, 108, 109, 110, 111, 3, 113,
1826 114, 115, 116, 117, 118, 119, 120, 121, 122, -1,
1827 15, 16, 17, -1, 19, 20, 21, 22, 23, 24,
1828 25, 26, -1, 28, 29, 30, 31, 32, 33, 34,
1829 35, 36, 37, 38, 39, 40, 41, -1, 43, 44,
1830 -1, -1, 47, 48, 49, -1, 51, 52, 53, 54,
1831 55, 56, -1, -1, 59, 60, 61, 62, 63, -1,
1832 65, 66, 67, 68, 69, 70, 71, 72, 73, -1,
1833 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
1834 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1835 95, -1, 97, 98, 99, 100, 101, 102, 103, 104,
1836 105, 106, 107, 108, 109, 110, 111, 3, 113, 114,
1837 115, 116, 117, 118, 119, 120, 121, 122, -1, 15,
1838 16, 17, -1, 19, 20, 21, 22, 23, 24, 25,
1839 26, -1, 28, 29, 30, 31, 32, 33, 34, 35,
1840 36, 37, 38, 39, 40, 41, -1, 43, 44, -1,
1841 -1, 47, 48, 49, -1, 51, 52, 53, 54, 55,
1842 56, -1, -1, 59, 60, 61, 62, 63, -1, 65,
1843 66, 67, 68, -1, 70, 71, 72, 73, -1, 75,
1844 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
1845 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1846 -1, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1847 106, 107, 108, 109, 110, 111, -1, 113, 114, 115,
1848 116, 117, 118, 119, 120, 121, 122, 3, -1, -1,
1849 -1, -1, -1, -1, 10, -1, -1, -1, -1, 15,
1850 16, 17, -1, 19, 20, 21, 22, 23, 24, 25,
1851 26, -1, 28, 29, 30, 31, 32, 33, 34, 35,
1852 36, 37, 38, 39, 40, 41, -1, 43, 44, -1,
1853 -1, 47, 48, 49, -1, 51, 52, 53, 54, 55,
1854 56, -1, -1, 59, 60, 61, 62, 63, -1, 65,
1855 66, 67, 68, -1, 70, 71, 72, 73, -1, 75,
1856 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
1857 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1858 -1, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1859 106, 107, 108, 109, 110, -1, -1, 113, 114, 115,
1860 116, 117, 118, 119, 120, 121, 122, 3, -1, -1,
1861 -1, -1, -1, 9, -1, -1, -1, -1, -1, 15,
1862 16, 17, -1, 19, 20, 21, 22, 23, 24, 25,
1863 26, -1, 28, 29, 30, 31, 32, 33, 34, 35,
1864 36, 37, 38, 39, 40, 41, -1, 43, 44, -1,
1865 -1, 47, 48, 49, -1, 51, 52, 53, 54, 55,
1866 56, -1, -1, 59, 60, 61, 62, 63, -1, 65,
1867 66, 67, 68, -1, 70, 71, 72, 73, -1, 75,
1868 76, -1, -1, 79, -1, 81, 82, 83, 84, 85,
1869 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1870 -1, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1871 106, 107, 108, 109, 110, 111, -1, 113, 114, 115,
1872 116, 117, 118, 119, 120, 121, 122, 3, -1, -1,
1873 -1, -1, -1, -1, 10, -1, -1, -1, -1, 15,
1874 16, 17, -1, 19, 20, 21, 22, 23, 24, 25,
1875 26, -1, 28, 29, 30, 31, 32, 33, 34, 35,
1876 36, 37, 38, 39, 40, 41, -1, 43, 44, -1,
1877 42, 47, 48, 49, -1, 51, 52, 53, 54, 55,
1878 56, -1, -1, 59, 60, 61, 62, 63, -1, 65,
1879 66, 67, 68, -1, 70, 71, 72, 73, -1, 75,
1880 76, 77, 74, 79, 42, 81, 82, 83, 84, 85,
1881 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1882 -1, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1883 106, 107, 108, 109, 110, 42, 74, 113, 114, 115,
1884 116, 117, 118, 119, 120, 121, 122, -1, -1, -1,
1885 -1, 123, 124, 125, 126, 127, 128, 129, 130, 131,
1886 132, 133, 134, 135, 136, 137, -1, 74, 42, -1,
1887 -1, 143, -1, -1, -1, -1, -1, -1, -1, -1,
1888 -1, -1, -1, -1, -1, 123, 124, 125, 126, 127,
1889 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1890 74, 42, -1, -1, -1, 143, -1, -1, -1, -1,
1891 -1, -1, -1, -1, -1, -1, 123, 124, 125, 126,
1892 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1893 137, -1, 42, 74, -1, -1, 143, -1, -1, -1,
1894 -1, -1, -1, -1, -1, -1, -1, -1, -1, 123,
1895 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1896 134, 135, 136, 137, 74, 42, -1, -1, 142, -1,
1897 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1898 -1, -1, 123, 124, 125, 126, 127, 128, 129, 130,
1899 131, 132, 133, 134, 135, 136, 137, 74, 42, -1,
1900 -1, 142, -1, -1, -1, -1, -1, -1, -1, -1,
1901 -1, -1, -1, 123, 124, 125, 126, 127, 128, 129,
1902 130, 131, 132, 133, 134, 135, 136, 137, -1, 42,
1903 74, -1, 142, -1, -1, -1, -1, -1, -1, -1,
1904 -1, -1, -1, -1, -1, -1, 123, 124, 125, 126,
1905 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1906 137, 74, -1, -1, -1, 142, -1, -1, -1, -1,
1907 -1, -1, -1, -1, -1, -1, -1, -1, -1, 123,
1908 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1909 134, 135, 136, 137, -1, -1, -1, -1, 142, -1,
1910 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1911 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1912 133, 134, 135, 136, 137, 17, -1, -1, 20, 142,
1913 -1, 23, -1, -1, -1, -1, 28, -1, -1, -1,
1914 -1, 33, -1, -1, 36, -1, 38, 39, 40, -1,
1915 -1, 42, 44, -1, -1, -1, 48, -1, 49, -1,
1916 -1, -1, -1, -1, -1, -1, 42, -1, 60, -1,
1917 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1918 42, -1, -1, 74, -1, -1, -1, -1, -1, 81,
1919 -1, -1, -1, 42, -1, -1, -1, -1, 74, 91,
1920 -1, -1, 94, -1, 96, -1, 98, -1, -1, 101,
1921 -1, 103, 74, -1, -1, -1, -1, -1, -1, -1,
1922 -1, 113, -1, -1, 116, 74, -1, -1, -1, -1,
1923 -1, -1, 123, 124, 125, 126, 127, 128, 129, 130,
1924 131, 132, 133, 134, 135, 136, 137, 123, 124, 125,
1925 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
1926 136, 137, 124, 125, 126, 127, 128, 129, 130, 131,
1927 132, 133, 134, 135, 136, 137, 125, 126, 127, 128,
1928 129, 130, 131, 132, 133, 134, 135, 136, 137
1929 };
1930
1931 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1932 symbol of state STATE-NUM. */
1933 static const yytype_uint16 yystos[] =
1934 {
1935 0, 17, 20, 23, 28, 33, 36, 38, 39, 40,
1936 44, 48, 60, 81, 91, 94, 96, 98, 101, 103,
1937 113, 116, 149, 150, 153, 154, 155, 156, 163, 204,
1938 209, 210, 215, 216, 217, 218, 229, 230, 239, 240,
1939 241, 242, 243, 247, 248, 253, 254, 255, 258, 260,
1940 261, 262, 263, 264, 265, 269, 270, 271, 272, 273,
1941 95, 107, 59, 3, 15, 16, 17, 19, 20, 21,
1942 22, 23, 24, 25, 26, 28, 29, 30, 31, 32,
1943 33, 34, 35, 36, 37, 38, 39, 40, 41, 43,
1944 44, 47, 48, 49, 51, 52, 53, 54, 55, 56,
1945 59, 60, 61, 62, 63, 65, 66, 67, 68, 70,
1946 71, 72, 73, 75, 76, 77, 79, 81, 82, 83,
1947 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
1948 94, 95, 97, 98, 99, 100, 101, 102, 103, 104,
1949 105, 106, 107, 108, 109, 110, 111, 113, 114, 115,
1950 116, 117, 118, 119, 120, 121, 122, 151, 152, 51,
1951 83, 50, 51, 83, 21, 87, 95, 59, 3, 4,
1952 5, 6, 8, 9, 10, 14, 22, 25, 35, 43,
1953 47, 54, 55, 57, 58, 62, 71, 73, 92, 106,
1954 120, 134, 135, 138, 141, 144, 152, 164, 165, 167,
1955 197, 198, 266, 267, 268, 274, 275, 278, 279, 10,
1956 29, 52, 59, 77, 100, 151, 256, 16, 29, 31,
1957 37, 52, 59, 72, 82, 84, 85, 100, 104, 107,
1958 108, 109, 119, 206, 207, 256, 111, 95, 152, 168,
1959 0, 45, 140, 285, 63, 152, 152, 152, 152, 141,
1960 152, 152, 168, 152, 152, 152, 152, 152, 141, 141,
1961 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
1962 141, 141, 141, 3, 71, 73, 197, 197, 197, 58,
1963 152, 201, 202, 13, 14, 146, 276, 277, 50, 143,
1964 18, 152, 166, 42, 74, 123, 124, 125, 126, 127,
1965 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
1966 69, 143, 189, 190, 166, 64, 127, 127, 98, 9,
1967 151, 152, 5, 6, 8, 78, 152, 213, 214, 127,
1968 111, 8, 104, 152, 98, 68, 205, 205, 205, 205,
1969 79, 191, 192, 152, 118, 152, 98, 143, 197, 282,
1970 283, 284, 96, 98, 101, 154, 152, 205, 89, 15,
1971 44, 110, 5, 6, 8, 14, 134, 141, 175, 176,
1972 225, 231, 232, 93, 114, 121, 170, 114, 8, 141,
1973 142, 197, 199, 200, 197, 197, 199, 41, 135, 199,
1974 199, 142, 197, 199, 199, 197, 197, 197, 197, 142,
1975 141, 141, 141, 142, 143, 145, 127, 8, 197, 277,
1976 141, 168, 165, 197, 152, 197, 197, 197, 197, 197,
1977 197, 197, 279, 197, 197, 197, 197, 197, 197, 197,
1978 197, 197, 197, 5, 267, 78, 138, 197, 213, 213,
1979 127, 127, 52, 134, 8, 46, 78, 112, 134, 152,
1980 175, 211, 212, 65, 104, 205, 104, 8, 152, 193,
1981 194, 14, 30, 104, 208, 68, 121, 249, 250, 152,
1982 244, 245, 275, 152, 166, 27, 143, 280, 281, 141,
1983 219, 32, 32, 95, 5, 6, 8, 142, 175, 177,
1984 233, 143, 234, 25, 47, 61, 62, 105, 259, 8,
1985 4, 25, 35, 43, 45, 54, 57, 62, 70, 120,
1986 141, 152, 171, 172, 173, 174, 275, 8, 96, 156,
1987 49, 142, 143, 142, 142, 152, 142, 142, 142, 142,
1988 142, 142, 142, 143, 142, 143, 143, 142, 197, 197,
1989 202, 152, 175, 203, 147, 147, 160, 169, 170, 143,
1990 78, 141, 5, 211, 9, 214, 67, 205, 205, 127,
1991 143, 99, 5, 99, 8, 152, 251, 252, 127, 143,
1992 170, 127, 282, 80, 185, 186, 284, 57, 152, 220,
1993 221, 117, 152, 152, 152, 142, 143, 142, 143, 225,
1994 232, 235, 236, 142, 102, 102, 141, 141, 141, 141,
1995 141, 141, 141, 141, 171, 124, 24, 58, 64, 127,
1996 128, 129, 130, 131, 132, 138, 142, 152, 200, 142,
1997 197, 197, 197, 127, 96, 163, 53, 179, 5, 177,
1998 127, 88, 90, 97, 257, 5, 8, 141, 152, 194,
1999 127, 123, 141, 175, 176, 245, 191, 175, 176, 27,
2000 189, 142, 143, 141, 222, 223, 25, 26, 47, 61,
2001 62, 66, 75, 76, 105, 246, 175, 8, 18, 237,
2002 143, 8, 8, 152, 275, 135, 275, 142, 142, 275,
2003 8, 142, 142, 171, 175, 176, 9, 141, 78, 138,
2004 8, 175, 176, 8, 175, 176, 175, 176, 175, 176,
2005 175, 176, 175, 176, 58, 143, 157, 58, 142, 142,
2006 143, 203, 164, 142, 5, 180, 122, 183, 184, 142,
2007 141, 34, 115, 88, 152, 195, 196, 141, 8, 252,
2008 142, 177, 86, 174, 187, 188, 220, 141, 224, 225,
2009 79, 143, 226, 69, 152, 238, 225, 236, 142, 142,
2010 142, 142, 142, 124, 124, 8, 177, 178, 78, 9,
2011 141, 5, 57, 152, 158, 159, 142, 152, 274, 275,
2012 141, 50, 80, 161, 27, 53, 56, 182, 177, 127,
2013 142, 143, 8, 142, 141, 19, 39, 143, 142, 143,
2014 3, 227, 228, 223, 175, 176, 175, 176, 142, 142,
2015 143, 177, 178, 143, 142, 199, 27, 69, 162, 174,
2016 181, 80, 173, 185, 142, 175, 196, 142, 142, 188,
2017 225, 127, 143, 8, 142, 142, 159, 142, 187, 5,
2018 143, 27, 189, 8, 228, 143, 143, 174, 187, 191,
2019 141, 5, 199, 142, 142
2020 };
2021
2022 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2023 static const yytype_uint16 yyr1[] =
2024 {
2025 0, 148, 149, 149, 149, 150, 150, 150, 150, 150,
2026 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
2027 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
2028 150, 151, 151, 151, 151, 151, 151, 151, 151, 151,
2029 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
2030 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
2031 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
2032 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
2033 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
2034 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
2035 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
2036 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
2037 151, 151, 151, 152, 152, 152, 153, 153, 153, 154,
2038 154, 154, 155, 155, 156, 156, 157, 157, 158, 158,
2039 159, 159, 159, 160, 161, 162, 162, 162, 163, 164,
2040 164, 165, 165, 166, 166, 166, 167, 167, 167, 167,
2041 167, 167, 167, 167, 167, 168, 168, 169, 169, 170,
2042 171, 171, 171, 172, 172, 173, 173, 173, 173, 173,
2043 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
2044 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
2045 173, 174, 174, 174, 174, 174, 174, 174, 174, 174,
2046 174, 174, 175, 175, 176, 176, 176, 177, 177, 178,
2047 178, 179, 179, 180, 180, 181, 181, 182, 182, 183,
2048 183, 184, 185, 185, 186, 186, 187, 187, 188, 188,
2049 188, 189, 189, 190, 190, 191, 191, 192, 193, 193,
2050 194, 194, 194, 194, 194, 195, 195, 196, 197, 197,
2051 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
2052 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
2053 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
2054 197, 198, 198, 198, 198, 198, 198, 198, 198, 198,
2055 198, 198, 198, 199, 199, 200, 200, 201, 201, 202,
2056 202, 203, 203, 204, 205, 205, 206, 206, 206, 206,
2057 206, 206, 206, 206, 206, 206, 206, 206, 206, 207,
2058 207, 208, 208, 209, 209, 209, 209, 209, 209, 210,
2059 210, 210, 210, 211, 211, 212, 212, 212, 213, 213,
2060 214, 214, 214, 214, 214, 215, 215, 215, 216, 216,
2061 217, 218, 218, 219, 219, 220, 220, 221, 221, 222,
2062 222, 223, 224, 224, 225, 225, 225, 225, 225, 226,
2063 226, 227, 227, 228, 229, 230, 231, 231, 232, 232,
2064 233, 233, 234, 234, 235, 235, 236, 237, 237, 238,
2065 238, 239, 240, 240, 241, 242, 243, 244, 244, 245,
2066 245, 245, 245, 245, 245, 246, 246, 246, 246, 246,
2067 246, 246, 246, 246, 247, 247, 247, 248, 248, 249,
2068 249, 250, 251, 251, 252, 253, 254, 255, 256, 256,
2069 256, 257, 257, 257, 257, 258, 259, 259, 259, 259,
2070 259, 260, 261, 262, 263, 264, 265, 266, 266, 267,
2071 268, 269, 270, 271, 272, 273, 274, 274, 275, 276,
2072 276, 277, 277, 277, 277, 278, 278, 279, 280, 280,
2073 281, 282, 283, 284, 284, 285
2074 };
2075
2076 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2077 static const yytype_uint8 yyr2[] =
2078 {
2079 0, 2, 1, 1, 2, 1, 1, 1, 1, 1,
2080 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2081 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2082 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2083 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2084 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2085 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2086 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2087 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2088 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2089 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2090 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2091 1, 1, 1, 1, 1, 1, 1, 3, 2, 1,
2092 1, 1, 1, 8, 1, 9, 0, 2, 1, 3,
2093 1, 1, 1, 0, 3, 0, 2, 4, 11, 1,
2094 3, 1, 2, 0, 1, 2, 1, 4, 4, 4,
2095 4, 4, 4, 3, 5, 1, 3, 0, 1, 2,
2096 1, 3, 3, 4, 1, 3, 3, 5, 6, 5,
2097 6, 3, 4, 5, 3, 3, 3, 3, 3, 3,
2098 5, 5, 5, 3, 3, 3, 3, 3, 3, 3,
2099 4, 1, 1, 4, 3, 3, 1, 1, 4, 4,
2100 4, 3, 1, 2, 1, 2, 1, 1, 3, 1,
2101 3, 0, 4, 0, 1, 1, 3, 0, 2, 0,
2102 1, 5, 0, 1, 3, 5, 1, 3, 1, 2,
2103 2, 0, 1, 2, 4, 0, 1, 2, 1, 3,
2104 3, 3, 5, 6, 3, 1, 3, 3, 1, 1,
2105 1, 1, 1, 1, 1, 2, 2, 3, 3, 3,
2106 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2107 3, 3, 3, 3, 3, 3, 1, 1, 1, 3,
2108 4, 4, 4, 4, 4, 4, 4, 3, 6, 6,
2109 3, 8, 14, 1, 3, 1, 1, 3, 5, 1,
2110 1, 1, 1, 2, 0, 2, 1, 2, 2, 3,
2111 1, 1, 1, 2, 4, 4, 3, 4, 4, 1,
2112 1, 0, 2, 4, 4, 4, 3, 4, 4, 7,
2113 5, 5, 9, 1, 1, 1, 1, 1, 1, 3,
2114 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
2115 7, 1, 1, 0, 3, 1, 1, 1, 3, 1,
2116 3, 3, 1, 3, 1, 1, 1, 3, 2, 0,
2117 2, 1, 3, 3, 4, 6, 1, 3, 1, 3,
2118 1, 3, 0, 2, 1, 3, 3, 0, 1, 1,
2119 1, 3, 1, 1, 3, 3, 6, 1, 3, 3,
2120 3, 5, 4, 3, 3, 1, 1, 1, 1, 1,
2121 1, 1, 1, 1, 7, 6, 4, 4, 5, 0,
2122 1, 2, 1, 3, 3, 2, 3, 6, 0, 1,
2123 1, 2, 2, 2, 1, 7, 1, 1, 1, 1,
2124 1, 3, 6, 3, 3, 2, 3, 1, 3, 2,
2125 1, 2, 3, 3, 7, 5, 1, 1, 2, 1,
2126 2, 1, 1, 3, 3, 3, 3, 1, 0, 2,
2127 1, 2, 1, 1, 3, 5
2128 };
2129
2130
2131 #define yyerrok (yyerrstatus = 0)
2132 #define yyclearin (yychar = YYEMPTY)
2133 #define YYEMPTY (-2)
2134 #define YYEOF 0
2135
2136 #define YYACCEPT goto yyacceptlab
2137 #define YYABORT goto yyabortlab
2138 #define YYERROR goto yyerrorlab
2139
2140
2141 #define YYRECOVERING() (!!yyerrstatus)
2142
2143 #define YYBACKUP(Token, Value) \
2144 do \
2145 if (yychar == YYEMPTY) \
2146 { \
2147 yychar = (Token); \
2148 yylval = (Value); \
2149 YYPOPSTACK (yylen); \
2150 yystate = *yyssp; \
2151 goto yybackup; \
2152 } \
2153 else \
2154 { \
2155 yyerror (pParser, YY_("syntax error: cannot back up")); \
2156 YYERROR; \
2157 } \
2158 while (0)
2159
2160 /* Error token number */
2161 #define YYTERROR 1
2162 #define YYERRCODE 256
2163
2164
2165
2166 /* Enable debugging if requested. */
2167 #if YYDEBUG
2168
2169 # ifndef YYFPRINTF
2170 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2171 # define YYFPRINTF fprintf
2172 # endif
2173
2174 # define YYDPRINTF(Args) \
2175 do { \
2176 if (yydebug) \
2177 YYFPRINTF Args; \
2178 } while (0)
2179
2180 /* This macro is provided for backward compatibility. */
2181 #ifndef YY_LOCATION_PRINT
2182 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2183 #endif
2184
2185
2186 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2187 do { \
2188 if (yydebug) \
2189 { \
2190 YYFPRINTF (stderr, "%s ", Title); \
2191 yy_symbol_print (stderr, \
2192 Type, Value, pParser); \
2193 YYFPRINTF (stderr, "\n"); \
2194 } \
2195 } while (0)
2196
2197
2198 /*----------------------------------------.
2199 | Print this symbol's value on YYOUTPUT. |
2200 `----------------------------------------*/
2201
2202 static void
yy_symbol_value_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,SqlParser_c * pParser)2203 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, SqlParser_c * pParser)
2204 {
2205 FILE *yyo = yyoutput;
2206 YYUSE (yyo);
2207 YYUSE (pParser);
2208 if (!yyvaluep)
2209 return;
2210 # ifdef YYPRINT
2211 if (yytype < YYNTOKENS)
2212 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2213 # endif
2214 YYUSE (yytype);
2215 }
2216
2217
2218 /*--------------------------------.
2219 | Print this symbol on YYOUTPUT. |
2220 `--------------------------------*/
2221
2222 static void
yy_symbol_print(FILE * yyoutput,int yytype,YYSTYPE const * const yyvaluep,SqlParser_c * pParser)2223 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, SqlParser_c * pParser)
2224 {
2225 YYFPRINTF (yyoutput, "%s %s (",
2226 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2227
2228 yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParser);
2229 YYFPRINTF (yyoutput, ")");
2230 }
2231
2232 /*------------------------------------------------------------------.
2233 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2234 | TOP (included). |
2235 `------------------------------------------------------------------*/
2236
2237 static void
yy_stack_print(yytype_int16 * yybottom,yytype_int16 * yytop)2238 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2239 {
2240 YYFPRINTF (stderr, "Stack now");
2241 for (; yybottom <= yytop; yybottom++)
2242 {
2243 int yybot = *yybottom;
2244 YYFPRINTF (stderr, " %d", yybot);
2245 }
2246 YYFPRINTF (stderr, "\n");
2247 }
2248
2249 # define YY_STACK_PRINT(Bottom, Top) \
2250 do { \
2251 if (yydebug) \
2252 yy_stack_print ((Bottom), (Top)); \
2253 } while (0)
2254
2255
2256 /*------------------------------------------------.
2257 | Report that the YYRULE is going to be reduced. |
2258 `------------------------------------------------*/
2259
2260 static void
yy_reduce_print(yytype_int16 * yyssp,YYSTYPE * yyvsp,int yyrule,SqlParser_c * pParser)2261 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, SqlParser_c * pParser)
2262 {
2263 unsigned long int yylno = yyrline[yyrule];
2264 int yynrhs = yyr2[yyrule];
2265 int yyi;
2266 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2267 yyrule - 1, yylno);
2268 /* The symbols being reduced. */
2269 for (yyi = 0; yyi < yynrhs; yyi++)
2270 {
2271 YYFPRINTF (stderr, " $%d = ", yyi + 1);
2272 yy_symbol_print (stderr,
2273 yystos[yyssp[yyi + 1 - yynrhs]],
2274 &(yyvsp[(yyi + 1) - (yynrhs)])
2275 , pParser);
2276 YYFPRINTF (stderr, "\n");
2277 }
2278 }
2279
2280 # define YY_REDUCE_PRINT(Rule) \
2281 do { \
2282 if (yydebug) \
2283 yy_reduce_print (yyssp, yyvsp, Rule, pParser); \
2284 } while (0)
2285
2286 /* Nonzero means print parse trace. It is left uninitialized so that
2287 multiple parsers can coexist. */
2288 int yydebug;
2289 #else /* !YYDEBUG */
2290 # define YYDPRINTF(Args)
2291 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2292 # define YY_STACK_PRINT(Bottom, Top)
2293 # define YY_REDUCE_PRINT(Rule)
2294 #endif /* !YYDEBUG */
2295
2296
2297 /* YYINITDEPTH -- initial size of the parser's stacks. */
2298 #ifndef YYINITDEPTH
2299 # define YYINITDEPTH 200
2300 #endif
2301
2302 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2303 if the built-in stack extension method is used).
2304
2305 Do not make this value too large; the results are undefined if
2306 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2307 evaluated with infinite-precision integer arithmetic. */
2308
2309 #ifndef YYMAXDEPTH
2310 # define YYMAXDEPTH 10000
2311 #endif
2312
2313
2314 #if YYERROR_VERBOSE
2315
2316 # ifndef yystrlen
2317 # if defined __GLIBC__ && defined _STRING_H
2318 # define yystrlen strlen
2319 # else
2320 /* Return the length of YYSTR. */
2321 static YYSIZE_T
yystrlen(const char * yystr)2322 yystrlen (const char *yystr)
2323 {
2324 YYSIZE_T yylen;
2325 for (yylen = 0; yystr[yylen]; yylen++)
2326 continue;
2327 return yylen;
2328 }
2329 # endif
2330 # endif
2331
2332 # ifndef yystpcpy
2333 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2334 # define yystpcpy stpcpy
2335 # else
2336 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2337 YYDEST. */
2338 static char *
yystpcpy(char * yydest,const char * yysrc)2339 yystpcpy (char *yydest, const char *yysrc)
2340 {
2341 char *yyd = yydest;
2342 const char *yys = yysrc;
2343
2344 while ((*yyd++ = *yys++) != '\0')
2345 continue;
2346
2347 return yyd - 1;
2348 }
2349 # endif
2350 # endif
2351
2352 # ifndef yytnamerr
2353 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2354 quotes and backslashes, so that it's suitable for yyerror. The
2355 heuristic is that double-quoting is unnecessary unless the string
2356 contains an apostrophe, a comma, or backslash (other than
2357 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2358 null, do not copy; instead, return the length of what the result
2359 would have been. */
2360 static YYSIZE_T
yytnamerr(char * yyres,const char * yystr)2361 yytnamerr (char *yyres, const char *yystr)
2362 {
2363 if (*yystr == '"')
2364 {
2365 YYSIZE_T yyn = 0;
2366 char const *yyp = yystr;
2367
2368 for (;;)
2369 switch (*++yyp)
2370 {
2371 case '\'':
2372 case ',':
2373 goto do_not_strip_quotes;
2374
2375 case '\\':
2376 if (*++yyp != '\\')
2377 goto do_not_strip_quotes;
2378 /* Fall through. */
2379 default:
2380 if (yyres)
2381 yyres[yyn] = *yyp;
2382 yyn++;
2383 break;
2384
2385 case '"':
2386 if (yyres)
2387 yyres[yyn] = '\0';
2388 return yyn;
2389 }
2390 do_not_strip_quotes: ;
2391 }
2392
2393 if (! yyres)
2394 return yystrlen (yystr);
2395
2396 return yystpcpy (yyres, yystr) - yyres;
2397 }
2398 # endif
2399
2400 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2401 about the unexpected token YYTOKEN for the state stack whose top is
2402 YYSSP.
2403
2404 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
2405 not large enough to hold the message. In that case, also set
2406 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
2407 required number of bytes is too large to store. */
2408 static int
yysyntax_error(YYSIZE_T * yymsg_alloc,char ** yymsg,yytype_int16 * yyssp,int yytoken)2409 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2410 yytype_int16 *yyssp, int yytoken)
2411 {
2412 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
2413 YYSIZE_T yysize = yysize0;
2414 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2415 /* Internationalized format string. */
2416 const char *yyformat = YY_NULLPTR;
2417 /* Arguments of yyformat. */
2418 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2419 /* Number of reported tokens (one for the "unexpected", one per
2420 "expected"). */
2421 int yycount = 0;
2422
2423 /* There are many possibilities here to consider:
2424 - If this state is a consistent state with a default action, then
2425 the only way this function was invoked is if the default action
2426 is an error action. In that case, don't check for expected
2427 tokens because there are none.
2428 - The only way there can be no lookahead present (in yychar) is if
2429 this state is a consistent state with a default action. Thus,
2430 detecting the absence of a lookahead is sufficient to determine
2431 that there is no unexpected or expected token to report. In that
2432 case, just report a simple "syntax error".
2433 - Don't assume there isn't a lookahead just because this state is a
2434 consistent state with a default action. There might have been a
2435 previous inconsistent state, consistent state with a non-default
2436 action, or user semantic action that manipulated yychar.
2437 - Of course, the expected token list depends on states to have
2438 correct lookahead information, and it depends on the parser not
2439 to perform extra reductions after fetching a lookahead from the
2440 scanner and before detecting a syntax error. Thus, state merging
2441 (from LALR or IELR) and default reductions corrupt the expected
2442 token list. However, the list is correct for canonical LR with
2443 one exception: it will still contain any token that will not be
2444 accepted due to an error action in a later state.
2445 */
2446 if (yytoken != YYEMPTY)
2447 {
2448 int yyn = yypact[*yyssp];
2449 yyarg[yycount++] = yytname[yytoken];
2450 if (!yypact_value_is_default (yyn))
2451 {
2452 /* Start YYX at -YYN if negative to avoid negative indexes in
2453 YYCHECK. In other words, skip the first -YYN actions for
2454 this state because they are default actions. */
2455 int yyxbegin = yyn < 0 ? -yyn : 0;
2456 /* Stay within bounds of both yycheck and yytname. */
2457 int yychecklim = YYLAST - yyn + 1;
2458 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2459 int yyx;
2460
2461 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2462 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2463 && !yytable_value_is_error (yytable[yyx + yyn]))
2464 {
2465 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2466 {
2467 yycount = 1;
2468 yysize = yysize0;
2469 break;
2470 }
2471 yyarg[yycount++] = yytname[yyx];
2472 {
2473 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
2474 if (! (yysize <= yysize1
2475 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2476 return 2;
2477 yysize = yysize1;
2478 }
2479 }
2480 }
2481 }
2482
2483 switch (yycount)
2484 {
2485 # define YYCASE_(N, S) \
2486 case N: \
2487 yyformat = S; \
2488 break
2489 YYCASE_(0, YY_("syntax error"));
2490 YYCASE_(1, YY_("syntax error, unexpected %s"));
2491 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2492 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2493 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2494 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2495 # undef YYCASE_
2496 }
2497
2498 {
2499 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2500 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2501 return 2;
2502 yysize = yysize1;
2503 }
2504
2505 if (*yymsg_alloc < yysize)
2506 {
2507 *yymsg_alloc = 2 * yysize;
2508 if (! (yysize <= *yymsg_alloc
2509 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2510 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2511 return 1;
2512 }
2513
2514 /* Avoid sprintf, as that infringes on the user's name space.
2515 Don't have undefined behavior even if the translation
2516 produced a string with the wrong number of "%s"s. */
2517 {
2518 char *yyp = *yymsg;
2519 int yyi = 0;
2520 while ((*yyp = *yyformat) != '\0')
2521 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2522 {
2523 yyp += yytnamerr (yyp, yyarg[yyi++]);
2524 yyformat += 2;
2525 }
2526 else
2527 {
2528 yyp++;
2529 yyformat++;
2530 }
2531 }
2532 return 0;
2533 }
2534 #endif /* YYERROR_VERBOSE */
2535
2536 /*-----------------------------------------------.
2537 | Release the memory associated to this symbol. |
2538 `-----------------------------------------------*/
2539
2540 static void
yydestruct(const char * yymsg,int yytype,YYSTYPE * yyvaluep,SqlParser_c * pParser)2541 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, SqlParser_c * pParser)
2542 {
2543 YYUSE (yyvaluep);
2544 YYUSE (pParser);
2545 if (!yymsg)
2546 yymsg = "Deleting";
2547 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2548
2549 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2550 YYUSE (yytype);
2551 YY_IGNORE_MAYBE_UNINITIALIZED_END
2552 }
2553
2554
2555
2556
2557 /*----------.
2558 | yyparse. |
2559 `----------*/
2560
2561 int
yyparse(SqlParser_c * pParser)2562 yyparse (SqlParser_c * pParser)
2563 {
2564 /* The lookahead symbol. */
2565 int yychar;
2566
2567
2568 /* The semantic value of the lookahead symbol. */
2569 /* Default value used for initialization, for pacifying older GCCs
2570 or non-GCC compilers. */
2571 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
2572 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
2573
2574 /* Number of syntax errors so far. */
2575 int yynerrs;
2576
2577 int yystate;
2578 /* Number of tokens to shift before error messages enabled. */
2579 int yyerrstatus;
2580
2581 /* The stacks and their tools:
2582 'yyss': related to states.
2583 'yyvs': related to semantic values.
2584
2585 Refer to the stacks through separate pointers, to allow yyoverflow
2586 to reallocate them elsewhere. */
2587
2588 /* The state stack. */
2589 yytype_int16 yyssa[YYINITDEPTH];
2590 yytype_int16 *yyss;
2591 yytype_int16 *yyssp;
2592
2593 /* The semantic value stack. */
2594 YYSTYPE yyvsa[YYINITDEPTH];
2595 YYSTYPE *yyvs;
2596 YYSTYPE *yyvsp;
2597
2598 YYSIZE_T yystacksize;
2599
2600 int yyn;
2601 int yyresult;
2602 /* Lookahead token as an internal (translated) token number. */
2603 int yytoken = 0;
2604 /* The variables used to return semantic value and location from the
2605 action routines. */
2606 YYSTYPE yyval;
2607
2608 #if YYERROR_VERBOSE
2609 /* Buffer for error messages, and its allocated size. */
2610 char yymsgbuf[128];
2611 char *yymsg = yymsgbuf;
2612 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
2613 #endif
2614
2615 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
2616
2617 /* The number of symbols on the RHS of the reduced rule.
2618 Keep to zero when no symbol should be popped. */
2619 int yylen = 0;
2620
2621 yyssp = yyss = yyssa;
2622 yyvsp = yyvs = yyvsa;
2623 yystacksize = YYINITDEPTH;
2624
2625 YYDPRINTF ((stderr, "Starting parse\n"));
2626
2627 yystate = 0;
2628 yyerrstatus = 0;
2629 yynerrs = 0;
2630 yychar = YYEMPTY; /* Cause a token to be read. */
2631 goto yysetstate;
2632
2633 /*------------------------------------------------------------.
2634 | yynewstate -- Push a new state, which is found in yystate. |
2635 `------------------------------------------------------------*/
2636 yynewstate:
2637 /* In all cases, when you get here, the value and location stacks
2638 have just been pushed. So pushing a state here evens the stacks. */
2639 yyssp++;
2640
2641 yysetstate:
2642 *yyssp = yystate;
2643
2644 if (yyss + yystacksize - 1 <= yyssp)
2645 {
2646 /* Get the current used size of the three stacks, in elements. */
2647 YYSIZE_T yysize = yyssp - yyss + 1;
2648
2649 #ifdef yyoverflow
2650 {
2651 /* Give user a chance to reallocate the stack. Use copies of
2652 these so that the &'s don't force the real ones into
2653 memory. */
2654 YYSTYPE *yyvs1 = yyvs;
2655 yytype_int16 *yyss1 = yyss;
2656
2657 /* Each stack pointer address is followed by the size of the
2658 data in use in that stack, in bytes. This used to be a
2659 conditional around just the two extra args, but that might
2660 be undefined if yyoverflow is a macro. */
2661 yyoverflow (YY_("memory exhausted"),
2662 &yyss1, yysize * sizeof (*yyssp),
2663 &yyvs1, yysize * sizeof (*yyvsp),
2664 &yystacksize);
2665
2666 yyss = yyss1;
2667 yyvs = yyvs1;
2668 }
2669 #else /* no yyoverflow */
2670 # ifndef YYSTACK_RELOCATE
2671 goto yyexhaustedlab;
2672 # else
2673 /* Extend the stack our own way. */
2674 if (YYMAXDEPTH <= yystacksize)
2675 goto yyexhaustedlab;
2676 yystacksize *= 2;
2677 if (YYMAXDEPTH < yystacksize)
2678 yystacksize = YYMAXDEPTH;
2679
2680 {
2681 yytype_int16 *yyss1 = yyss;
2682 union yyalloc *yyptr =
2683 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2684 if (! yyptr)
2685 goto yyexhaustedlab;
2686 YYSTACK_RELOCATE (yyss_alloc, yyss);
2687 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
2688 # undef YYSTACK_RELOCATE
2689 if (yyss1 != yyssa)
2690 YYSTACK_FREE (yyss1);
2691 }
2692 # endif
2693 #endif /* no yyoverflow */
2694
2695 yyssp = yyss + yysize - 1;
2696 yyvsp = yyvs + yysize - 1;
2697
2698 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
2699 (unsigned long int) yystacksize));
2700
2701 if (yyss + yystacksize - 1 <= yyssp)
2702 YYABORT;
2703 }
2704
2705 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2706
2707 if (yystate == YYFINAL)
2708 YYACCEPT;
2709
2710 goto yybackup;
2711
2712 /*-----------.
2713 | yybackup. |
2714 `-----------*/
2715 yybackup:
2716
2717 /* Do appropriate processing given the current state. Read a
2718 lookahead token if we need one and don't already have one. */
2719
2720 /* First try to decide what to do without reference to lookahead token. */
2721 yyn = yypact[yystate];
2722 if (yypact_value_is_default (yyn))
2723 goto yydefault;
2724
2725 /* Not known => get a lookahead token if don't already have one. */
2726
2727 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
2728 if (yychar == YYEMPTY)
2729 {
2730 YYDPRINTF ((stderr, "Reading a token: "));
2731 yychar = yylex (&yylval, pParser);
2732 }
2733
2734 if (yychar <= YYEOF)
2735 {
2736 yychar = yytoken = YYEOF;
2737 YYDPRINTF ((stderr, "Now at end of input.\n"));
2738 }
2739 else
2740 {
2741 yytoken = YYTRANSLATE (yychar);
2742 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2743 }
2744
2745 /* If the proper action on seeing token YYTOKEN is to reduce or to
2746 detect an error, take that action. */
2747 yyn += yytoken;
2748 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2749 goto yydefault;
2750 yyn = yytable[yyn];
2751 if (yyn <= 0)
2752 {
2753 if (yytable_value_is_error (yyn))
2754 goto yyerrlab;
2755 yyn = -yyn;
2756 goto yyreduce;
2757 }
2758
2759 /* Count tokens shifted since error; after three, turn off error
2760 status. */
2761 if (yyerrstatus)
2762 yyerrstatus--;
2763
2764 /* Shift the lookahead token. */
2765 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2766
2767 /* Discard the shifted token. */
2768 yychar = YYEMPTY;
2769
2770 yystate = yyn;
2771 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2772 *++yyvsp = yylval;
2773 YY_IGNORE_MAYBE_UNINITIALIZED_END
2774
2775 goto yynewstate;
2776
2777
2778 /*-----------------------------------------------------------.
2779 | yydefault -- do the default action for the current state. |
2780 `-----------------------------------------------------------*/
2781 yydefault:
2782 yyn = yydefact[yystate];
2783 if (yyn == 0)
2784 goto yyerrlab;
2785 goto yyreduce;
2786
2787
2788 /*-----------------------------.
2789 | yyreduce -- Do a reduction. |
2790 `-----------------------------*/
2791 yyreduce:
2792 /* yyn is the number of a rule to reduce with. */
2793 yylen = yyr2[yyn];
2794
2795 /* If YYLEN is nonzero, implement the default value of the action:
2796 '$$ = $1'.
2797
2798 Otherwise, the following line sets YYVAL to garbage.
2799 This behavior is undocumented and Bison
2800 users should not rely upon it. Assigning to YYVAL
2801 unconditionally makes the parser a bit smaller, and it avoids a
2802 GCC warning that YYVAL may be used uninitialized. */
2803 yyval = yyvsp[1-yylen];
2804
2805
2806 YY_REDUCE_PRINT (yyn);
2807 switch (yyn)
2808 {
2809 case 2:
2810
2811 { pParser->PushQuery(); }
2812
2813 break;
2814
2815 case 126:
2816
2817 { pParser->PushQuery(); }
2818
2819 break;
2820
2821 case 127:
2822
2823 { pParser->PushQuery(); }
2824
2825 break;
2826
2827 case 128:
2828
2829 { pParser->PushQuery(); }
2830
2831 break;
2832
2833 case 133:
2834
2835 {
2836 assert ( pParser->m_pStmt->m_eStmt==STMT_SELECT ); // set by table argument
2837 pParser->ToString ( pParser->m_pStmt->m_sTableFunc, (yyvsp[-6]) );
2838 }
2839
2840 break;
2841
2842 case 135:
2843
2844 {
2845 assert ( pParser->m_pStmt->m_eStmt==STMT_SELECT ); // set by subselect
2846 }
2847
2848 break;
2849
2850 case 138:
2851
2852 {
2853 pParser->ToString ( pParser->m_pStmt->m_dTableFuncArgs.Add(), (yyvsp[0]) );
2854 }
2855
2856 break;
2857
2858 case 139:
2859
2860 {
2861 pParser->ToString ( pParser->m_pStmt->m_dTableFuncArgs.Add(), (yyvsp[0]) );
2862 }
2863
2864 break;
2865
2866 case 143:
2867
2868 {
2869 CSphVector<CSphQueryItem> & dItems = pParser->m_pQuery->m_dItems;
2870 if ( dItems.GetLength()!=1 || dItems[0].m_sExpr!="*" )
2871 {
2872 yyerror ( pParser, "outer select list must be a single star" );
2873 YYERROR;
2874 }
2875 dItems.Reset();
2876 pParser->ResetSelect();
2877 }
2878
2879 break;
2880
2881 case 144:
2882
2883 {
2884 pParser->ToString ( pParser->m_pQuery->m_sOuterOrderBy, (yyvsp[0]) );
2885 pParser->m_pQuery->m_bHasOuter = true;
2886 }
2887
2888 break;
2889
2890 case 146:
2891
2892 {
2893 pParser->m_pQuery->m_iOuterLimit = (yyvsp[0]).m_iValue;
2894 pParser->m_pQuery->m_bHasOuter = true;
2895 }
2896
2897 break;
2898
2899 case 147:
2900
2901 {
2902 pParser->m_pQuery->m_iOuterOffset = (yyvsp[-2]).m_iValue;
2903 pParser->m_pQuery->m_iOuterLimit = (yyvsp[0]).m_iValue;
2904 pParser->m_pQuery->m_bHasOuter = true;
2905 }
2906
2907 break;
2908
2909 case 148:
2910
2911 {
2912 pParser->m_pStmt->m_eStmt = STMT_SELECT;
2913 pParser->ToString ( pParser->m_pQuery->m_sIndexes, (yyvsp[-7]) );
2914 }
2915
2916 break;
2917
2918 case 151:
2919
2920 { pParser->AddItem ( &(yyvsp[0]) ); }
2921
2922 break;
2923
2924 case 154:
2925
2926 { pParser->AliasLastItem ( &(yyvsp[0]) ); }
2927
2928 break;
2929
2930 case 155:
2931
2932 { pParser->AliasLastItem ( &(yyvsp[0]) ); }
2933
2934 break;
2935
2936 case 156:
2937
2938 { pParser->AddItem ( &(yyvsp[0]) ); }
2939
2940 break;
2941
2942 case 157:
2943
2944 { pParser->AddItem ( &(yyvsp[-1]), SPH_AGGR_AVG, &(yyvsp[-3]), &(yyvsp[0]) ); }
2945
2946 break;
2947
2948 case 158:
2949
2950 { pParser->AddItem ( &(yyvsp[-1]), SPH_AGGR_MAX, &(yyvsp[-3]), &(yyvsp[0]) ); }
2951
2952 break;
2953
2954 case 159:
2955
2956 { pParser->AddItem ( &(yyvsp[-1]), SPH_AGGR_MIN, &(yyvsp[-3]), &(yyvsp[0]) ); }
2957
2958 break;
2959
2960 case 160:
2961
2962 { pParser->AddItem ( &(yyvsp[-1]), SPH_AGGR_SUM, &(yyvsp[-3]), &(yyvsp[0]) ); }
2963
2964 break;
2965
2966 case 161:
2967
2968 { pParser->AddItem ( &(yyvsp[-1]), SPH_AGGR_CAT, &(yyvsp[-3]), &(yyvsp[0]) ); }
2969
2970 break;
2971
2972 case 162:
2973
2974 { if ( !pParser->AddItem ( "count(*)", &(yyvsp[-3]), &(yyvsp[0]) ) ) YYERROR; }
2975
2976 break;
2977
2978 case 163:
2979
2980 { if ( !pParser->AddItem ( "groupby()", &(yyvsp[-2]), &(yyvsp[0]) ) ) YYERROR; }
2981
2982 break;
2983
2984 case 164:
2985
2986 { if ( !pParser->AddDistinct ( &(yyvsp[-1]), &(yyvsp[-4]), &(yyvsp[0]) ) ) YYERROR; }
2987
2988 break;
2989
2990 case 166:
2991
2992 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
2993
2994 break;
2995
2996 case 173:
2997
2998 {
2999 if ( !pParser->SetMatch((yyvsp[-1])) )
3000 YYERROR;
3001 }
3002
3003 break;
3004
3005 case 175:
3006
3007 {
3008 CSphFilterSettings * pFilter = pParser->AddValuesFilter ( (yyvsp[-2]) );
3009 if ( !pFilter )
3010 YYERROR;
3011 pFilter->m_dValues.Add ( (yyvsp[0]).m_iValue );
3012 }
3013
3014 break;
3015
3016 case 176:
3017
3018 {
3019 CSphFilterSettings * pFilter = pParser->AddValuesFilter ( (yyvsp[-2]) );
3020 if ( !pFilter )
3021 YYERROR;
3022 pFilter->m_dValues.Add ( (yyvsp[0]).m_iValue );
3023 pFilter->m_bExclude = true;
3024 }
3025
3026 break;
3027
3028 case 177:
3029
3030 {
3031 CSphFilterSettings * pFilter = pParser->AddValuesFilter ( (yyvsp[-4]) );
3032 if ( !pFilter )
3033 YYERROR;
3034 pFilter->m_dValues = *(yyvsp[-1]).m_pValues.Ptr();
3035 pFilter->m_dValues.Uniq();
3036 }
3037
3038 break;
3039
3040 case 178:
3041
3042 {
3043 CSphFilterSettings * pFilter = pParser->AddValuesFilter ( (yyvsp[-5]) );
3044 if ( !pFilter )
3045 YYERROR;
3046 pFilter->m_dValues = *(yyvsp[-1]).m_pValues.Ptr();
3047 pFilter->m_dValues.Uniq();
3048 pFilter->m_bExclude = true;
3049 }
3050
3051 break;
3052
3053 case 179:
3054
3055 {
3056 if ( !pParser->AddStringListFilter ( (yyvsp[-4]), (yyvsp[-1]), false ) )
3057 YYERROR;
3058 }
3059
3060 break;
3061
3062 case 180:
3063
3064 {
3065 if ( !pParser->AddStringListFilter ( (yyvsp[-5]), (yyvsp[-1]), true ) )
3066 YYERROR;
3067 }
3068
3069 break;
3070
3071 case 181:
3072
3073 {
3074 if ( !pParser->AddUservarFilter ( (yyvsp[-2]), (yyvsp[0]), false ) )
3075 YYERROR;
3076 }
3077
3078 break;
3079
3080 case 182:
3081
3082 {
3083 if ( !pParser->AddUservarFilter ( (yyvsp[-3]), (yyvsp[0]), true ) )
3084 YYERROR;
3085 }
3086
3087 break;
3088
3089 case 183:
3090
3091 {
3092 if ( !pParser->AddIntRangeFilter ( (yyvsp[-4]), (yyvsp[-2]).m_iValue, (yyvsp[0]).m_iValue ) )
3093 YYERROR;
3094 }
3095
3096 break;
3097
3098 case 184:
3099
3100 {
3101 if ( !pParser->AddIntFilterGreater ( (yyvsp[-2]), (yyvsp[0]).m_iValue, false ) )
3102 YYERROR;
3103 }
3104
3105 break;
3106
3107 case 185:
3108
3109 {
3110 if ( !pParser->AddIntFilterLesser ( (yyvsp[-2]), (yyvsp[0]).m_iValue, false ) )
3111 YYERROR;
3112 }
3113
3114 break;
3115
3116 case 186:
3117
3118 {
3119 if ( !pParser->AddIntFilterGreater ( (yyvsp[-2]), (yyvsp[0]).m_iValue, true ) )
3120 YYERROR;
3121 }
3122
3123 break;
3124
3125 case 187:
3126
3127 {
3128 if ( !pParser->AddIntFilterLesser ( (yyvsp[-2]), (yyvsp[0]).m_iValue, true ) )
3129 YYERROR;
3130 }
3131
3132 break;
3133
3134 case 188:
3135
3136 {
3137 if ( !pParser->AddFloatRangeFilter ( (yyvsp[-2]), (yyvsp[0]).m_fValue, (yyvsp[0]).m_fValue, true ) )
3138 YYERROR;
3139 }
3140
3141 break;
3142
3143 case 189:
3144
3145 {
3146 if ( !pParser->AddFloatRangeFilter ( (yyvsp[-2]), (yyvsp[0]).m_fValue, (yyvsp[0]).m_fValue, true, true ) )
3147 YYERROR;
3148 }
3149
3150 break;
3151
3152 case 190:
3153
3154 {
3155 if ( !pParser->AddFloatRangeFilter ( (yyvsp[-4]), (yyvsp[-2]).m_fValue, (yyvsp[0]).m_fValue, true ) )
3156 YYERROR;
3157 }
3158
3159 break;
3160
3161 case 191:
3162
3163 {
3164 if ( !pParser->AddFloatRangeFilter ( (yyvsp[-4]), (yyvsp[-2]).m_iValue, (yyvsp[0]).m_fValue, true ) )
3165 YYERROR;
3166 }
3167
3168 break;
3169
3170 case 192:
3171
3172 {
3173 if ( !pParser->AddFloatRangeFilter ( (yyvsp[-4]), (yyvsp[-2]).m_fValue, (yyvsp[0]).m_iValue, true ) )
3174 YYERROR;
3175 }
3176
3177 break;
3178
3179 case 193:
3180
3181 {
3182 if ( !pParser->AddFloatRangeFilter ( (yyvsp[-2]), (yyvsp[0]).m_fValue, FLT_MAX, false ) )
3183 YYERROR;
3184 }
3185
3186 break;
3187
3188 case 194:
3189
3190 {
3191 if ( !pParser->AddFloatRangeFilter ( (yyvsp[-2]), -FLT_MAX, (yyvsp[0]).m_fValue, false ) )
3192 YYERROR;
3193 }
3194
3195 break;
3196
3197 case 195:
3198
3199 {
3200 if ( !pParser->AddFloatRangeFilter ( (yyvsp[-2]), (yyvsp[0]).m_fValue, FLT_MAX, true ) )
3201 YYERROR;
3202 }
3203
3204 break;
3205
3206 case 196:
3207
3208 {
3209 if ( !pParser->AddFloatRangeFilter ( (yyvsp[-2]), -FLT_MAX, (yyvsp[0]).m_fValue, true ) )
3210 YYERROR;
3211 }
3212
3213 break;
3214
3215 case 197:
3216
3217 {
3218 if ( !pParser->AddStringFilter ( (yyvsp[-2]), (yyvsp[0]), false ) )
3219 YYERROR;
3220 }
3221
3222 break;
3223
3224 case 198:
3225
3226 {
3227 if ( !pParser->AddStringFilter ( (yyvsp[-2]), (yyvsp[0]), true ) )
3228 YYERROR;
3229 }
3230
3231 break;
3232
3233 case 199:
3234
3235 {
3236 if ( !pParser->AddNullFilter ( (yyvsp[-2]), true ) )
3237 YYERROR;
3238 }
3239
3240 break;
3241
3242 case 200:
3243
3244 {
3245 if ( !pParser->AddNullFilter ( (yyvsp[-3]), false ) )
3246 YYERROR;
3247 }
3248
3249 break;
3250
3251 case 202:
3252
3253 {
3254 if ( !pParser->SetOldSyntax() )
3255 YYERROR;
3256 }
3257
3258 break;
3259
3260 case 203:
3261
3262 {
3263 (yyval).m_iType = SPHINXQL_TOK_COUNT;
3264 if ( !pParser->SetNewSyntax() )
3265 YYERROR;
3266 }
3267
3268 break;
3269
3270 case 204:
3271
3272 {
3273 (yyval).m_iType = SPHINXQL_TOK_GROUPBY;
3274 if ( !pParser->SetNewSyntax() )
3275 YYERROR;
3276 }
3277
3278 break;
3279
3280 case 205:
3281
3282 {
3283 (yyval).m_iType = SPHINXQL_TOK_WEIGHT;
3284 if ( !pParser->SetNewSyntax() )
3285 YYERROR;
3286 }
3287
3288 break;
3289
3290 case 206:
3291
3292 {
3293 (yyval).m_iType = SPHINXQL_TOK_ID;
3294 if ( !pParser->SetNewSyntax() )
3295 YYERROR;
3296 }
3297
3298 break;
3299
3300 case 212:
3301
3302 { (yyval).m_iType = TOK_CONST_INT; (yyval).m_iValue = (yyvsp[0]).m_iValue; }
3303
3304 break;
3305
3306 case 213:
3307
3308 {
3309 (yyval).m_iType = TOK_CONST_INT;
3310 if ( (uint64_t)(yyvsp[0]).m_iValue > (uint64_t)LLONG_MAX )
3311 (yyval).m_iValue = LLONG_MIN;
3312 else
3313 (yyval).m_iValue = -(yyvsp[0]).m_iValue;
3314 }
3315
3316 break;
3317
3318 case 214:
3319
3320 { (yyval).m_iType = TOK_CONST_FLOAT; (yyval).m_fValue = (yyvsp[0]).m_fValue; }
3321
3322 break;
3323
3324 case 215:
3325
3326 { (yyval).m_iType = TOK_CONST_FLOAT; (yyval).m_fValue = -(yyvsp[0]).m_fValue; }
3327
3328 break;
3329
3330 case 216:
3331
3332 { (yyval).m_iType = TOK_CONST_FLOAT; (yyval).m_fValue = (yyvsp[0]).m_fValue; }
3333
3334 break;
3335
3336 case 217:
3337
3338 {
3339 assert ( !(yyval).m_pValues.Ptr() );
3340 (yyval).m_pValues = new RefcountedVector_c<SphAttr_t> ();
3341 (yyval).m_pValues->Add ( (yyvsp[0]).m_iValue );
3342 }
3343
3344 break;
3345
3346 case 218:
3347
3348 {
3349 (yyval).m_pValues->Add ( (yyvsp[0]).m_iValue );
3350 }
3351
3352 break;
3353
3354 case 219:
3355
3356 {
3357 assert ( !(yyval).m_pValues.Ptr() );
3358 (yyval).m_pValues = new RefcountedVector_c<SphAttr_t> ();
3359 (yyval).m_pValues->Add ( (yyvsp[0]).m_iValue );
3360 }
3361
3362 break;
3363
3364 case 220:
3365
3366 {
3367 (yyval).m_pValues->Add ( (yyvsp[0]).m_iValue );
3368 }
3369
3370 break;
3371
3372 case 224:
3373
3374 {
3375 pParser->SetGroupbyLimit ( (yyvsp[0]).m_iValue );
3376 }
3377
3378 break;
3379
3380 case 225:
3381
3382 {
3383 pParser->AddGroupBy ( (yyvsp[0]) );
3384 }
3385
3386 break;
3387
3388 case 226:
3389
3390 {
3391 pParser->AddGroupBy ( (yyvsp[0]) );
3392 }
3393
3394 break;
3395
3396 case 228:
3397
3398 {
3399 pParser->AddHaving();
3400 }
3401
3402 break;
3403
3404 case 231:
3405
3406 {
3407 if ( pParser->m_pQuery->m_sGroupBy.IsEmpty() )
3408 {
3409 yyerror ( pParser, "you must specify GROUP BY element in order to use WITHIN GROUP ORDER BY clause" );
3410 YYERROR;
3411 }
3412 pParser->ToString ( pParser->m_pQuery->m_sSortBy, (yyvsp[0]) );
3413 }
3414
3415 break;
3416
3417 case 234:
3418
3419 {
3420 pParser->ToString ( pParser->m_pQuery->m_sOrderBy, (yyvsp[0]) );
3421 }
3422
3423 break;
3424
3425 case 235:
3426
3427 {
3428 pParser->m_pQuery->m_sOrderBy = "@random";
3429 }
3430
3431 break;
3432
3433 case 237:
3434
3435 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3436
3437 break;
3438
3439 case 239:
3440
3441 { TRACK_BOUNDS ( (yyval), (yyvsp[-1]), (yyvsp[0]) ); }
3442
3443 break;
3444
3445 case 240:
3446
3447 { TRACK_BOUNDS ( (yyval), (yyvsp[-1]), (yyvsp[0]) ); }
3448
3449 break;
3450
3451 case 243:
3452
3453 {
3454 pParser->m_pQuery->m_iOffset = 0;
3455 pParser->m_pQuery->m_iLimit = (yyvsp[0]).m_iValue;
3456 }
3457
3458 break;
3459
3460 case 244:
3461
3462 {
3463 pParser->m_pQuery->m_iOffset = (yyvsp[-2]).m_iValue;
3464 pParser->m_pQuery->m_iLimit = (yyvsp[0]).m_iValue;
3465 }
3466
3467 break;
3468
3469 case 250:
3470
3471 {
3472 if ( !pParser->AddOption ( (yyvsp[-2]), (yyvsp[0]) ) )
3473 YYERROR;
3474 }
3475
3476 break;
3477
3478 case 251:
3479
3480 {
3481 if ( !pParser->AddOption ( (yyvsp[-2]), (yyvsp[0]) ) )
3482 YYERROR;
3483 }
3484
3485 break;
3486
3487 case 252:
3488
3489 {
3490 if ( !pParser->AddOption ( (yyvsp[-4]), pParser->GetNamedVec ( (yyvsp[-1]).m_iValue ) ) )
3491 YYERROR;
3492 pParser->FreeNamedVec ( (yyvsp[-1]).m_iValue );
3493 }
3494
3495 break;
3496
3497 case 253:
3498
3499 {
3500 if ( !pParser->AddOption ( (yyvsp[-5]), (yyvsp[-3]), (yyvsp[-1]) ) )
3501 YYERROR;
3502 }
3503
3504 break;
3505
3506 case 254:
3507
3508 {
3509 if ( !pParser->AddOption ( (yyvsp[-2]), (yyvsp[0]) ) )
3510 YYERROR;
3511 }
3512
3513 break;
3514
3515 case 255:
3516
3517 {
3518 (yyval).m_iValue = pParser->AllocNamedVec ();
3519 pParser->AddConst ( (yyval).m_iValue, (yyvsp[0]) );
3520 }
3521
3522 break;
3523
3524 case 256:
3525
3526 {
3527 pParser->AddConst( (yyval).m_iValue, (yyvsp[0]) );
3528 }
3529
3530 break;
3531
3532 case 257:
3533
3534 {
3535 (yyval) = (yyvsp[-2]);
3536 (yyval).m_iValue = (yyvsp[0]).m_iValue;
3537 }
3538
3539 break;
3540
3541 case 259:
3542
3543 { if ( !pParser->SetOldSyntax() ) YYERROR; }
3544
3545 break;
3546
3547 case 260:
3548
3549 { if ( !pParser->SetNewSyntax() ) YYERROR; }
3550
3551 break;
3552
3553 case 265:
3554
3555 { TRACK_BOUNDS ( (yyval), (yyvsp[-1]), (yyvsp[0]) ); }
3556
3557 break;
3558
3559 case 266:
3560
3561 { TRACK_BOUNDS ( (yyval), (yyvsp[-1]), (yyvsp[0]) ); }
3562
3563 break;
3564
3565 case 267:
3566
3567 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3568
3569 break;
3570
3571 case 268:
3572
3573 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3574
3575 break;
3576
3577 case 269:
3578
3579 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3580
3581 break;
3582
3583 case 270:
3584
3585 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3586
3587 break;
3588
3589 case 271:
3590
3591 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3592
3593 break;
3594
3595 case 272:
3596
3597 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3598
3599 break;
3600
3601 case 273:
3602
3603 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3604
3605 break;
3606
3607 case 274:
3608
3609 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3610
3611 break;
3612
3613 case 275:
3614
3615 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3616
3617 break;
3618
3619 case 276:
3620
3621 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3622
3623 break;
3624
3625 case 277:
3626
3627 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3628
3629 break;
3630
3631 case 278:
3632
3633 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3634
3635 break;
3636
3637 case 279:
3638
3639 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3640
3641 break;
3642
3643 case 280:
3644
3645 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3646
3647 break;
3648
3649 case 281:
3650
3651 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3652
3653 break;
3654
3655 case 282:
3656
3657 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3658
3659 break;
3660
3661 case 283:
3662
3663 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3664
3665 break;
3666
3667 case 284:
3668
3669 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3670
3671 break;
3672
3673 case 285:
3674
3675 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3676
3677 break;
3678
3679 case 289:
3680
3681 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3682
3683 break;
3684
3685 case 290:
3686
3687 { TRACK_BOUNDS ( (yyval), (yyvsp[-3]), (yyvsp[0]) ); }
3688
3689 break;
3690
3691 case 291:
3692
3693 { TRACK_BOUNDS ( (yyval), (yyvsp[-3]), (yyvsp[0]) ); }
3694
3695 break;
3696
3697 case 292:
3698
3699 { TRACK_BOUNDS ( (yyval), (yyvsp[-3]), (yyvsp[0]) ); }
3700
3701 break;
3702
3703 case 293:
3704
3705 { TRACK_BOUNDS ( (yyval), (yyvsp[-3]), (yyvsp[0]) ); }
3706
3707 break;
3708
3709 case 294:
3710
3711 { TRACK_BOUNDS ( (yyval), (yyvsp[-3]), (yyvsp[0]) ); }
3712
3713 break;
3714
3715 case 295:
3716
3717 { TRACK_BOUNDS ( (yyval), (yyvsp[-3]), (yyvsp[0]) ); }
3718
3719 break;
3720
3721 case 296:
3722
3723 { TRACK_BOUNDS ( (yyval), (yyvsp[-3]), (yyvsp[0]) ); }
3724
3725 break;
3726
3727 case 297:
3728
3729 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3730
3731 break;
3732
3733 case 298:
3734
3735 { TRACK_BOUNDS ( (yyval), (yyvsp[-5]), (yyvsp[0]) ); }
3736
3737 break;
3738
3739 case 299:
3740
3741 { TRACK_BOUNDS ( (yyval), (yyvsp[-5]), (yyvsp[0]) ); }
3742
3743 break;
3744
3745 case 300:
3746
3747 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3748
3749 break;
3750
3751 case 301:
3752
3753 { TRACK_BOUNDS ( (yyval), (yyvsp[-7]), (yyvsp[0]) ); }
3754
3755 break;
3756
3757 case 302:
3758
3759 { TRACK_BOUNDS ( (yyval), (yyvsp[-13]), (yyvsp[0]) ); }
3760
3761 break;
3762
3763 case 307:
3764
3765 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
3766
3767 break;
3768
3769 case 308:
3770
3771 { TRACK_BOUNDS ( (yyval), (yyvsp[-4]), (yyvsp[0]) ); }
3772
3773 break;
3774
3775 case 315:
3776
3777 { pParser->ToStringUnescape ( pParser->m_pStmt->m_sStringParam, (yyvsp[0]) ); }
3778
3779 break;
3780
3781 case 316:
3782
3783 { pParser->m_pStmt->m_eStmt = STMT_SHOW_WARNINGS; }
3784
3785 break;
3786
3787 case 317:
3788
3789 { pParser->m_pStmt->m_eStmt = STMT_SHOW_STATUS; }
3790
3791 break;
3792
3793 case 318:
3794
3795 { pParser->m_pStmt->m_eStmt = STMT_SHOW_META; }
3796
3797 break;
3798
3799 case 319:
3800
3801 { pParser->m_pStmt->m_eStmt = STMT_SHOW_AGENT_STATUS; }
3802
3803 break;
3804
3805 case 320:
3806
3807 { pParser->m_pStmt->m_eStmt = STMT_SHOW_PROFILE; }
3808
3809 break;
3810
3811 case 321:
3812
3813 { pParser->m_pStmt->m_eStmt = STMT_SHOW_PLAN; }
3814
3815 break;
3816
3817 case 322:
3818
3819 { pParser->m_pStmt->m_eStmt = STMT_SHOW_PLUGINS; }
3820
3821 break;
3822
3823 case 323:
3824
3825 { pParser->m_pStmt->m_eStmt = STMT_SHOW_THREADS; }
3826
3827 break;
3828
3829 case 324:
3830
3831 {
3832 pParser->m_pStmt->m_eStmt = STMT_SHOW_AGENT_STATUS;
3833 pParser->ToStringUnescape ( pParser->m_pStmt->m_sIndex, (yyvsp[-2]) );
3834 }
3835
3836 break;
3837
3838 case 325:
3839
3840 {
3841 pParser->m_pStmt->m_eStmt = STMT_SHOW_AGENT_STATUS;
3842 pParser->ToString ( pParser->m_pStmt->m_sIndex, (yyvsp[-2]) );
3843 }
3844
3845 break;
3846
3847 case 326:
3848
3849 {
3850 pParser->m_pStmt->m_eStmt = STMT_SHOW_INDEX_STATUS;
3851 pParser->ToString ( pParser->m_pStmt->m_sIndex, (yyvsp[-1]) );
3852 }
3853
3854 break;
3855
3856 case 327:
3857
3858 {
3859 pParser->m_pStmt->m_eStmt = STMT_SHOW_INDEX_SETTINGS;
3860 pParser->ToString ( pParser->m_pStmt->m_sIndex, (yyvsp[-2]) );
3861 }
3862
3863 break;
3864
3865 case 328:
3866
3867 {
3868 pParser->m_pStmt->m_eStmt = STMT_SHOW_INDEX_SETTINGS;
3869 pParser->ToString ( pParser->m_pStmt->m_sIndex, (yyvsp[-2]) );
3870 pParser->m_pStmt->m_iIntParam = int((yyvsp[-1]).m_fValue*10);
3871 }
3872
3873 break;
3874
3875 case 332:
3876
3877 {
3878 pParser->m_pStmt->m_iIntParam = (yyvsp[0]).m_iValue;
3879 }
3880
3881 break;
3882
3883 case 333:
3884
3885 {
3886 pParser->SetStatement ( (yyvsp[-2]), SET_LOCAL );
3887 pParser->m_pStmt->m_iSetValue = (yyvsp[0]).m_iValue;
3888 }
3889
3890 break;
3891
3892 case 334:
3893
3894 {
3895 pParser->SetStatement ( (yyvsp[-2]), SET_LOCAL );
3896 pParser->ToString ( pParser->m_pStmt->m_sSetValue, (yyvsp[0]) );
3897 }
3898
3899 break;
3900
3901 case 335:
3902
3903 {
3904 pParser->SetStatement ( (yyvsp[-2]), SET_LOCAL );
3905 pParser->m_pStmt->m_bSetNull = true;
3906 }
3907
3908 break;
3909
3910 case 336:
3911
3912 { pParser->m_pStmt->m_eStmt = STMT_DUMMY; }
3913
3914 break;
3915
3916 case 337:
3917
3918 { pParser->m_pStmt->m_eStmt = STMT_DUMMY; }
3919
3920 break;
3921
3922 case 338:
3923
3924 { pParser->m_pStmt->m_eStmt = STMT_DUMMY; }
3925
3926 break;
3927
3928 case 339:
3929
3930 {
3931 pParser->SetStatement ( (yyvsp[-4]), SET_GLOBAL_UVAR );
3932 pParser->m_pStmt->m_dSetValues = *(yyvsp[-1]).m_pValues.Ptr();
3933 }
3934
3935 break;
3936
3937 case 340:
3938
3939 {
3940 pParser->SetStatement ( (yyvsp[-2]), SET_GLOBAL_SVAR );
3941 pParser->ToString ( pParser->m_pStmt->m_sSetValue, (yyvsp[0]) ).Unquote();
3942 }
3943
3944 break;
3945
3946 case 341:
3947
3948 {
3949 pParser->SetStatement ( (yyvsp[-2]), SET_GLOBAL_SVAR );
3950 pParser->m_pStmt->m_iSetValue = (yyvsp[0]).m_iValue;
3951 }
3952
3953 break;
3954
3955 case 342:
3956
3957 {
3958 pParser->SetStatement ( (yyvsp[-4]), SET_INDEX_UVAR );
3959 pParser->m_pStmt->m_dSetValues = *(yyvsp[-1]).m_pValues.Ptr();
3960 pParser->ToString ( pParser->m_pStmt->m_sIndex, (yyvsp[-6]) );
3961 }
3962
3963 break;
3964
3965 case 345:
3966
3967 { (yyval).m_iValue = 1; }
3968
3969 break;
3970
3971 case 346:
3972
3973 { (yyval).m_iValue = 0; }
3974
3975 break;
3976
3977 case 347:
3978
3979 {
3980 (yyval).m_iValue = (yyvsp[0]).m_iValue;
3981 if ( (yyval).m_iValue!=0 && (yyval).m_iValue!=1 )
3982 {
3983 yyerror ( pParser, "only 0 and 1 could be used as boolean values" );
3984 YYERROR;
3985 }
3986 }
3987
3988 break;
3989
3990 case 355:
3991
3992 { pParser->m_pStmt->m_eStmt = STMT_COMMIT; }
3993
3994 break;
3995
3996 case 356:
3997
3998 { pParser->m_pStmt->m_eStmt = STMT_ROLLBACK; }
3999
4000 break;
4001
4002 case 357:
4003
4004 { pParser->m_pStmt->m_eStmt = STMT_BEGIN; }
4005
4006 break;
4007
4008 case 360:
4009
4010 {
4011 // everything else is pushed directly into parser within the rules
4012 pParser->ToString ( pParser->m_pStmt->m_sIndex, (yyvsp[-4]) );
4013 }
4014
4015 break;
4016
4017 case 361:
4018
4019 { pParser->m_pStmt->m_eStmt = STMT_INSERT; }
4020
4021 break;
4022
4023 case 362:
4024
4025 { pParser->m_pStmt->m_eStmt = STMT_REPLACE; }
4026
4027 break;
4028
4029 case 367:
4030
4031 { if ( !pParser->AddSchemaItem ( &(yyvsp[0]) ) ) { yyerror ( pParser, "unknown field" ); YYERROR; } }
4032
4033 break;
4034
4035 case 368:
4036
4037 { if ( !pParser->AddSchemaItem ( &(yyvsp[0]) ) ) { yyerror ( pParser, "unknown field" ); YYERROR; } }
4038
4039 break;
4040
4041 case 371:
4042
4043 { if ( !pParser->m_pStmt->CheckInsertIntegrity() ) { yyerror ( pParser, "wrong number of values here" ); YYERROR; } }
4044
4045 break;
4046
4047 case 372:
4048
4049 { AddInsval ( pParser, pParser->m_pStmt->m_dInsertValues, (yyvsp[0]) ); }
4050
4051 break;
4052
4053 case 373:
4054
4055 { AddInsval ( pParser, pParser->m_pStmt->m_dInsertValues, (yyvsp[0]) ); }
4056
4057 break;
4058
4059 case 374:
4060
4061 { (yyval).m_iType = TOK_CONST_INT; (yyval).m_iValue = (yyvsp[0]).m_iValue; }
4062
4063 break;
4064
4065 case 375:
4066
4067 { (yyval).m_iType = TOK_CONST_FLOAT; (yyval).m_fValue = (yyvsp[0]).m_fValue; }
4068
4069 break;
4070
4071 case 376:
4072
4073 { (yyval).m_iType = TOK_QUOTED_STRING; (yyval).m_iStart = (yyvsp[0]).m_iStart; (yyval).m_iEnd = (yyvsp[0]).m_iEnd; }
4074
4075 break;
4076
4077 case 377:
4078
4079 { (yyval).m_iType = TOK_CONST_MVA; (yyval).m_pValues = (yyvsp[-1]).m_pValues; }
4080
4081 break;
4082
4083 case 378:
4084
4085 { (yyval).m_iType = TOK_CONST_MVA; }
4086
4087 break;
4088
4089 case 383:
4090
4091 { if ( !pParser->AddInsertOption ( (yyvsp[-2]), (yyvsp[0]) ) ) YYERROR; }
4092
4093 break;
4094
4095 case 384:
4096
4097 {
4098 if ( !pParser->DeleteStatement ( &(yyvsp[-1]) ) )
4099 YYERROR;
4100 }
4101
4102 break;
4103
4104 case 385:
4105
4106 {
4107 pParser->m_pStmt->m_eStmt = STMT_CALL;
4108 pParser->ToString ( pParser->m_pStmt->m_sCallProc, (yyvsp[-4]) );
4109 }
4110
4111 break;
4112
4113 case 386:
4114
4115 {
4116 AddInsval ( pParser, pParser->m_pStmt->m_dInsertValues, (yyvsp[0]) );
4117 }
4118
4119 break;
4120
4121 case 387:
4122
4123 {
4124 AddInsval ( pParser, pParser->m_pStmt->m_dInsertValues, (yyvsp[0]) );
4125 }
4126
4127 break;
4128
4129 case 389:
4130
4131 {
4132 (yyval).m_iType = TOK_CONST_STRINGS;
4133 }
4134
4135 break;
4136
4137 case 390:
4138
4139 {
4140 // FIXME? for now, one such array per CALL statement, tops
4141 if ( pParser->m_pStmt->m_dCallStrings.GetLength() )
4142 {
4143 yyerror ( pParser, "unexpected constant string list" );
4144 YYERROR;
4145 }
4146 pParser->ToStringUnescape ( pParser->m_pStmt->m_dCallStrings.Add(), (yyvsp[0]) );
4147 }
4148
4149 break;
4150
4151 case 391:
4152
4153 {
4154 pParser->ToStringUnescape ( pParser->m_pStmt->m_dCallStrings.Add(), (yyvsp[0]) );
4155 }
4156
4157 break;
4158
4159 case 394:
4160
4161 {
4162 assert ( pParser->m_pStmt->m_dCallOptNames.GetLength()==1 );
4163 assert ( pParser->m_pStmt->m_dCallOptValues.GetLength()==1 );
4164 }
4165
4166 break;
4167
4168 case 396:
4169
4170 {
4171 pParser->ToString ( pParser->m_pStmt->m_dCallOptNames.Add(), (yyvsp[0]) );
4172 AddInsval ( pParser, pParser->m_pStmt->m_dCallOptValues, (yyvsp[-2]) );
4173 }
4174
4175 break;
4176
4177 case 401:
4178
4179 {
4180 pParser->m_pStmt->m_eStmt = STMT_DESCRIBE;
4181 pParser->ToString ( pParser->m_pStmt->m_sIndex, (yyvsp[-1]) );
4182 }
4183
4184 break;
4185
4186 case 404:
4187
4188 { pParser->m_pStmt->m_eStmt = STMT_SHOW_TABLES; }
4189
4190 break;
4191
4192 case 405:
4193
4194 { pParser->m_pStmt->m_eStmt = STMT_SHOW_DATABASES; }
4195
4196 break;
4197
4198 case 406:
4199
4200 {
4201 if ( !pParser->UpdateStatement ( &(yyvsp[-4]) ) )
4202 YYERROR;
4203 }
4204
4205 break;
4206
4207 case 409:
4208
4209 {
4210 // it is performance-critical to forcibly inline this
4211 pParser->m_pStmt->m_tUpdate.m_dPool.Add ( (DWORD)(yyvsp[0]).m_iValue );
4212 DWORD uHi = (DWORD)( (yyvsp[0]).m_iValue>>32 );
4213 if ( uHi )
4214 {
4215 pParser->m_pStmt->m_tUpdate.m_dPool.Add ( uHi );
4216 pParser->AddUpdatedAttr ( (yyvsp[-2]), SPH_ATTR_BIGINT );
4217 } else
4218 {
4219 pParser->AddUpdatedAttr ( (yyvsp[-2]), SPH_ATTR_INTEGER );
4220 }
4221 }
4222
4223 break;
4224
4225 case 410:
4226
4227 {
4228 // it is performance-critical to forcibly inline this
4229 pParser->m_pStmt->m_tUpdate.m_dPool.Add ( sphF2DW ( (yyvsp[0]).m_fValue ) );
4230 pParser->AddUpdatedAttr ( (yyvsp[-2]), SPH_ATTR_FLOAT );
4231 }
4232
4233 break;
4234
4235 case 411:
4236
4237 {
4238 pParser->UpdateMVAAttr ( (yyvsp[-4]), (yyvsp[-1]) );
4239 }
4240
4241 break;
4242
4243 case 412:
4244
4245 {
4246 SqlNode_t tNoValues;
4247 pParser->UpdateMVAAttr ( (yyvsp[-3]), tNoValues );
4248 }
4249
4250 break;
4251
4252 case 413:
4253
4254 {
4255 // it is performance-critical to forcibly inline this
4256 pParser->m_pStmt->m_tUpdate.m_dPool.Add ( (DWORD)(yyvsp[0]).m_iValue );
4257 DWORD uHi = (DWORD)( (yyvsp[0]).m_iValue>>32 );
4258 if ( uHi )
4259 {
4260 pParser->m_pStmt->m_tUpdate.m_dPool.Add ( uHi );
4261 pParser->AddUpdatedAttr ( (yyvsp[-2]), SPH_ATTR_BIGINT );
4262 } else
4263 {
4264 pParser->AddUpdatedAttr ( (yyvsp[-2]), SPH_ATTR_INTEGER );
4265 }
4266 }
4267
4268 break;
4269
4270 case 414:
4271
4272 {
4273 // it is performance-critical to forcibly inline this
4274 pParser->m_pStmt->m_tUpdate.m_dPool.Add ( sphF2DW ( (yyvsp[0]).m_fValue ) );
4275 pParser->AddUpdatedAttr ( (yyvsp[-2]), SPH_ATTR_FLOAT );
4276 }
4277
4278 break;
4279
4280 case 415:
4281
4282 { (yyval).m_iValue = SPH_ATTR_INTEGER; }
4283
4284 break;
4285
4286 case 416:
4287
4288 { (yyval).m_iValue = SPH_ATTR_BIGINT; }
4289
4290 break;
4291
4292 case 417:
4293
4294 { (yyval).m_iValue = SPH_ATTR_FLOAT; }
4295
4296 break;
4297
4298 case 418:
4299
4300 { (yyval).m_iValue = SPH_ATTR_BOOL; }
4301
4302 break;
4303
4304 case 419:
4305
4306 { (yyval).m_iValue = SPH_ATTR_UINT32SET; }
4307
4308 break;
4309
4310 case 420:
4311
4312 { (yyval).m_iValue = SPH_ATTR_INT64SET; }
4313
4314 break;
4315
4316 case 421:
4317
4318 { (yyval).m_iValue = SPH_ATTR_JSON; }
4319
4320 break;
4321
4322 case 422:
4323
4324 { (yyval).m_iValue = SPH_ATTR_STRING; }
4325
4326 break;
4327
4328 case 423:
4329
4330 { (yyval).m_iValue = SPH_ATTR_INTEGER; }
4331
4332 break;
4333
4334 case 424:
4335
4336 {
4337 SqlStmt_t & tStmt = *pParser->m_pStmt;
4338 tStmt.m_eStmt = STMT_ALTER_ADD;
4339 pParser->ToString ( tStmt.m_sIndex, (yyvsp[-4]) );
4340 pParser->ToString ( tStmt.m_sAlterAttr, (yyvsp[-1]) );
4341 tStmt.m_eAlterColType = (ESphAttr)(yyvsp[0]).m_iValue;
4342 }
4343
4344 break;
4345
4346 case 425:
4347
4348 {
4349 SqlStmt_t & tStmt = *pParser->m_pStmt;
4350 tStmt.m_eStmt = STMT_ALTER_DROP;
4351 pParser->ToString ( tStmt.m_sIndex, (yyvsp[-3]) );
4352 pParser->ToString ( tStmt.m_sAlterAttr, (yyvsp[0]) );
4353 }
4354
4355 break;
4356
4357 case 426:
4358
4359 {
4360 SqlStmt_t & tStmt = *pParser->m_pStmt;
4361 tStmt.m_eStmt = STMT_ALTER_RECONFIGURE;
4362 pParser->ToString ( tStmt.m_sIndex, (yyvsp[-1]) );
4363 }
4364
4365 break;
4366
4367 case 427:
4368
4369 {
4370 pParser->m_pStmt->m_eStmt = STMT_SHOW_VARIABLES;
4371 }
4372
4373 break;
4374
4375 case 428:
4376
4377 {
4378 pParser->m_pStmt->m_eStmt = STMT_SHOW_VARIABLES;
4379 pParser->ToStringUnescape ( pParser->m_pStmt->m_sStringParam, (yyvsp[0]) );
4380 }
4381
4382 break;
4383
4384 case 435:
4385
4386 {
4387 pParser->m_pStmt->m_eStmt = STMT_SHOW_COLLATION;
4388 }
4389
4390 break;
4391
4392 case 436:
4393
4394 {
4395 pParser->m_pStmt->m_eStmt = STMT_SHOW_CHARACTER_SET;
4396 }
4397
4398 break;
4399
4400 case 437:
4401
4402 {
4403 pParser->m_pStmt->m_eStmt = STMT_DUMMY;
4404 }
4405
4406 break;
4407
4408 case 445:
4409
4410 {
4411 SqlStmt_t & tStmt = *pParser->m_pStmt;
4412 tStmt.m_eStmt = STMT_CREATE_FUNCTION;
4413 pParser->ToString ( tStmt.m_sUdfName, (yyvsp[-4]) );
4414 pParser->ToStringUnescape ( tStmt.m_sUdfLib, (yyvsp[0]) );
4415 tStmt.m_eUdfType = (ESphAttr) (yyvsp[-2]).m_iValue;
4416 }
4417
4418 break;
4419
4420 case 446:
4421
4422 { (yyval).m_iValue = SPH_ATTR_INTEGER; }
4423
4424 break;
4425
4426 case 447:
4427
4428 { (yyval).m_iValue = SPH_ATTR_BIGINT; }
4429
4430 break;
4431
4432 case 448:
4433
4434 { (yyval).m_iValue = SPH_ATTR_FLOAT; }
4435
4436 break;
4437
4438 case 449:
4439
4440 { (yyval).m_iValue = SPH_ATTR_STRINGPTR; }
4441
4442 break;
4443
4444 case 450:
4445
4446 { (yyval).m_iValue = SPH_ATTR_INTEGER; }
4447
4448 break;
4449
4450 case 451:
4451
4452 {
4453 SqlStmt_t & tStmt = *pParser->m_pStmt;
4454 tStmt.m_eStmt = STMT_DROP_FUNCTION;
4455 pParser->ToString ( tStmt.m_sUdfName, (yyvsp[0]) );
4456 }
4457
4458 break;
4459
4460 case 452:
4461
4462 {
4463 SqlStmt_t & tStmt = *pParser->m_pStmt;
4464 tStmt.m_eStmt = STMT_ATTACH_INDEX;
4465 pParser->ToString ( tStmt.m_sIndex, (yyvsp[-3]) );
4466 pParser->ToString ( tStmt.m_sStringParam, (yyvsp[0]) );
4467 }
4468
4469 break;
4470
4471 case 453:
4472
4473 {
4474 SqlStmt_t & tStmt = *pParser->m_pStmt;
4475 tStmt.m_eStmt = STMT_FLUSH_RTINDEX;
4476 pParser->ToString ( tStmt.m_sIndex, (yyvsp[0]) );
4477 }
4478
4479 break;
4480
4481 case 454:
4482
4483 {
4484 SqlStmt_t & tStmt = *pParser->m_pStmt;
4485 tStmt.m_eStmt = STMT_FLUSH_RAMCHUNK;
4486 pParser->ToString ( tStmt.m_sIndex, (yyvsp[0]) );
4487 }
4488
4489 break;
4490
4491 case 455:
4492
4493 {
4494 SqlStmt_t & tStmt = *pParser->m_pStmt;
4495 tStmt.m_eStmt = STMT_FLUSH_INDEX;
4496 }
4497
4498 break;
4499
4500 case 456:
4501
4502 {
4503 pParser->m_pStmt->m_eStmt = STMT_SELECT_SYSVAR;
4504 pParser->ToString ( pParser->m_pStmt->m_tQuery.m_sQuery, (yyvsp[-1]) );
4505 }
4506
4507 break;
4508
4509 case 460:
4510
4511 { pParser->AddItem ( &(yyvsp[0]) ); }
4512
4513 break;
4514
4515 case 461:
4516
4517 {
4518 pParser->m_pStmt->m_eStmt = STMT_SELECT_DUAL;
4519 pParser->ToString ( pParser->m_pStmt->m_tQuery.m_sQuery, (yyvsp[0]) );
4520 }
4521
4522 break;
4523
4524 case 462:
4525
4526 {
4527 SqlStmt_t & tStmt = *pParser->m_pStmt;
4528 tStmt.m_eStmt = STMT_TRUNCATE_RTINDEX;
4529 pParser->ToString ( tStmt.m_sIndex, (yyvsp[0]) );
4530 }
4531
4532 break;
4533
4534 case 463:
4535
4536 {
4537 SqlStmt_t & tStmt = *pParser->m_pStmt;
4538 tStmt.m_eStmt = STMT_OPTIMIZE_INDEX;
4539 pParser->ToString ( tStmt.m_sIndex, (yyvsp[0]) );
4540 }
4541
4542 break;
4543
4544 case 464:
4545
4546 {
4547 SqlStmt_t & s = *pParser->m_pStmt;
4548 s.m_eStmt = STMT_CREATE_PLUGIN;
4549 pParser->ToString ( s.m_sUdfName, (yyvsp[-4]) );
4550 pParser->ToStringUnescape ( s.m_sStringParam, (yyvsp[-2]) );
4551 pParser->ToStringUnescape ( s.m_sUdfLib, (yyvsp[0]) );
4552 }
4553
4554 break;
4555
4556 case 465:
4557
4558 {
4559 SqlStmt_t & s = *pParser->m_pStmt;
4560 s.m_eStmt = STMT_DROP_PLUGIN;
4561 pParser->ToString ( s.m_sUdfName, (yyvsp[-2]) );
4562 pParser->ToStringUnescape ( s.m_sStringParam, (yyvsp[0]) );
4563 }
4564
4565 break;
4566
4567 case 468:
4568
4569 { (yyval) = (yyvsp[-1]); (yyval).m_iEnd = (yyvsp[0]).m_iEnd; }
4570
4571 break;
4572
4573 case 470:
4574
4575 { (yyval) = (yyvsp[-1]); (yyval).m_iEnd = (yyvsp[0]).m_iEnd; }
4576
4577 break;
4578
4579 case 471:
4580
4581 { (yyval) = (yyvsp[0]); (yyval).m_iEnd = (yyvsp[0]).m_iEnd; }
4582
4583 break;
4584
4585 case 472:
4586
4587 { (yyval) = (yyvsp[0]); (yyval).m_iEnd = (yyvsp[0]).m_iEnd; }
4588
4589 break;
4590
4591 case 473:
4592
4593 { (yyval) = (yyvsp[-2]); (yyval).m_iEnd = (yyvsp[0]).m_iEnd; }
4594
4595 break;
4596
4597 case 474:
4598
4599 { (yyval) = (yyvsp[-2]); (yyval).m_iEnd = (yyvsp[0]).m_iEnd; }
4600
4601 break;
4602
4603 case 475:
4604
4605 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
4606
4607 break;
4608
4609 case 476:
4610
4611 { TRACK_BOUNDS ( (yyval), (yyvsp[-2]), (yyvsp[0]) ); }
4612
4613 break;
4614
4615 case 480:
4616
4617 {
4618 pParser->m_pQuery->m_sFacetBy = pParser->m_pQuery->m_sGroupBy;
4619 pParser->m_pQuery->m_sGroupBy = "";
4620 pParser->AddCount ();
4621 }
4622
4623 break;
4624
4625 case 482:
4626
4627 {
4628 pParser->AddItem ( &(yyvsp[0]) );
4629 pParser->AddGroupBy ( (yyvsp[0]) );
4630 }
4631
4632 break;
4633
4634 case 485:
4635
4636 {
4637 pParser->m_pStmt->m_eStmt = STMT_FACET;
4638 if ( pParser->m_pQuery->m_sFacetBy.IsEmpty() )
4639 {
4640 pParser->m_pQuery->m_sFacetBy = pParser->m_pQuery->m_sGroupBy;
4641 pParser->AddCount ();
4642 }
4643 }
4644
4645 break;
4646
4647
4648
4649 default: break;
4650 }
4651 /* User semantic actions sometimes alter yychar, and that requires
4652 that yytoken be updated with the new translation. We take the
4653 approach of translating immediately before every use of yytoken.
4654 One alternative is translating here after every semantic action,
4655 but that translation would be missed if the semantic action invokes
4656 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
4657 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
4658 incorrect destructor might then be invoked immediately. In the
4659 case of YYERROR or YYBACKUP, subsequent parser actions might lead
4660 to an incorrect destructor call or verbose syntax error message
4661 before the lookahead is translated. */
4662 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
4663
4664 YYPOPSTACK (yylen);
4665 yylen = 0;
4666 YY_STACK_PRINT (yyss, yyssp);
4667
4668 *++yyvsp = yyval;
4669
4670 /* Now 'shift' the result of the reduction. Determine what state
4671 that goes to, based on the state we popped back to and the rule
4672 number reduced by. */
4673
4674 yyn = yyr1[yyn];
4675
4676 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
4677 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
4678 yystate = yytable[yystate];
4679 else
4680 yystate = yydefgoto[yyn - YYNTOKENS];
4681
4682 goto yynewstate;
4683
4684
4685 /*--------------------------------------.
4686 | yyerrlab -- here on detecting error. |
4687 `--------------------------------------*/
4688 yyerrlab:
4689 /* Make sure we have latest lookahead translation. See comments at
4690 user semantic actions for why this is necessary. */
4691 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
4692
4693 /* If not already recovering from an error, report this error. */
4694 if (!yyerrstatus)
4695 {
4696 ++yynerrs;
4697 #if ! YYERROR_VERBOSE
4698 yyerror (pParser, YY_("syntax error"));
4699 #else
4700 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
4701 yyssp, yytoken)
4702 {
4703 char const *yymsgp = YY_("syntax error");
4704 int yysyntax_error_status;
4705 yysyntax_error_status = YYSYNTAX_ERROR;
4706 if (yysyntax_error_status == 0)
4707 yymsgp = yymsg;
4708 else if (yysyntax_error_status == 1)
4709 {
4710 if (yymsg != yymsgbuf)
4711 YYSTACK_FREE (yymsg);
4712 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
4713 if (!yymsg)
4714 {
4715 yymsg = yymsgbuf;
4716 yymsg_alloc = sizeof yymsgbuf;
4717 yysyntax_error_status = 2;
4718 }
4719 else
4720 {
4721 yysyntax_error_status = YYSYNTAX_ERROR;
4722 yymsgp = yymsg;
4723 }
4724 }
4725 yyerror (pParser, yymsgp);
4726 if (yysyntax_error_status == 2)
4727 goto yyexhaustedlab;
4728 }
4729 # undef YYSYNTAX_ERROR
4730 #endif
4731 }
4732
4733
4734
4735 if (yyerrstatus == 3)
4736 {
4737 /* If just tried and failed to reuse lookahead token after an
4738 error, discard it. */
4739
4740 if (yychar <= YYEOF)
4741 {
4742 /* Return failure if at end of input. */
4743 if (yychar == YYEOF)
4744 YYABORT;
4745 }
4746 else
4747 {
4748 yydestruct ("Error: discarding",
4749 yytoken, &yylval, pParser);
4750 yychar = YYEMPTY;
4751 }
4752 }
4753
4754 /* Else will try to reuse lookahead token after shifting the error
4755 token. */
4756 goto yyerrlab1;
4757
4758
4759 /*---------------------------------------------------.
4760 | yyerrorlab -- error raised explicitly by YYERROR. |
4761 `---------------------------------------------------*/
4762 yyerrorlab:
4763
4764 /* Pacify compilers like GCC when the user code never invokes
4765 YYERROR and the label yyerrorlab therefore never appears in user
4766 code. */
4767 if (/*CONSTCOND*/ 0)
4768 goto yyerrorlab;
4769
4770 /* Do not reclaim the symbols of the rule whose action triggered
4771 this YYERROR. */
4772 YYPOPSTACK (yylen);
4773 yylen = 0;
4774 YY_STACK_PRINT (yyss, yyssp);
4775 yystate = *yyssp;
4776 goto yyerrlab1;
4777
4778
4779 /*-------------------------------------------------------------.
4780 | yyerrlab1 -- common code for both syntax error and YYERROR. |
4781 `-------------------------------------------------------------*/
4782 yyerrlab1:
4783 yyerrstatus = 3; /* Each real token shifted decrements this. */
4784
4785 for (;;)
4786 {
4787 yyn = yypact[yystate];
4788 if (!yypact_value_is_default (yyn))
4789 {
4790 yyn += YYTERROR;
4791 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
4792 {
4793 yyn = yytable[yyn];
4794 if (0 < yyn)
4795 break;
4796 }
4797 }
4798
4799 /* Pop the current state because it cannot handle the error token. */
4800 if (yyssp == yyss)
4801 YYABORT;
4802
4803
4804 yydestruct ("Error: popping",
4805 yystos[yystate], yyvsp, pParser);
4806 YYPOPSTACK (1);
4807 yystate = *yyssp;
4808 YY_STACK_PRINT (yyss, yyssp);
4809 }
4810
4811 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
4812 *++yyvsp = yylval;
4813 YY_IGNORE_MAYBE_UNINITIALIZED_END
4814
4815
4816 /* Shift the error token. */
4817 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
4818
4819 yystate = yyn;
4820 goto yynewstate;
4821
4822
4823 /*-------------------------------------.
4824 | yyacceptlab -- YYACCEPT comes here. |
4825 `-------------------------------------*/
4826 yyacceptlab:
4827 yyresult = 0;
4828 goto yyreturn;
4829
4830 /*-----------------------------------.
4831 | yyabortlab -- YYABORT comes here. |
4832 `-----------------------------------*/
4833 yyabortlab:
4834 yyresult = 1;
4835 goto yyreturn;
4836
4837 #if !defined yyoverflow || YYERROR_VERBOSE
4838 /*-------------------------------------------------.
4839 | yyexhaustedlab -- memory exhaustion comes here. |
4840 `-------------------------------------------------*/
4841 yyexhaustedlab:
4842 yyerror (pParser, YY_("memory exhausted"));
4843 yyresult = 2;
4844 /* Fall through. */
4845 #endif
4846
4847 yyreturn:
4848 if (yychar != YYEMPTY)
4849 {
4850 /* Make sure we have latest lookahead translation. See comments at
4851 user semantic actions for why this is necessary. */
4852 yytoken = YYTRANSLATE (yychar);
4853 yydestruct ("Cleanup: discarding lookahead",
4854 yytoken, &yylval, pParser);
4855 }
4856 /* Do not reclaim the symbols of the rule whose action triggered
4857 this YYABORT or YYACCEPT. */
4858 YYPOPSTACK (yylen);
4859 YY_STACK_PRINT (yyss, yyssp);
4860 while (yyssp != yyss)
4861 {
4862 yydestruct ("Cleanup: popping",
4863 yystos[*yyssp], yyvsp, pParser);
4864 YYPOPSTACK (1);
4865 }
4866 #ifndef yyoverflow
4867 if (yyss != yyssa)
4868 YYSTACK_FREE (yyss);
4869 #endif
4870 #if YYERROR_VERBOSE
4871 if (yymsg != yymsgbuf)
4872 YYSTACK_FREE (yymsg);
4873 #endif
4874 return yyresult;
4875 }
4876
4877
4878
4879 #if USE_WINDOWS
4880 #pragma warning(pop)
4881 #endif
4882