1
/* A Bison parser, made by GNU Bison 2.0. */
3
/* Skeleton parser for Yacc-like parsing with Bison,
4
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
6
This program is free software; you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation; either version 2, or (at your option)
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
16
You should have received a copy of the GNU General Public License
17
along with this program; if not, write to the Free Software
18
Foundation, Inc., 59 Temple Place - Suite 330,
19
Boston, MA 02111-1307, USA. */
21
/* As a special exception, when this file is copied by Bison into a
22
Bison output file, you may use that output file without restriction.
23
This special exception was added by the Free Software Foundation
24
in version 1.24 of Bison. */
26
/* Written by Richard Stallman by simplifying the original so called
27
``semantic'' parser. */
29
/* All symbols defined below should begin with yy or YY, to avoid
30
infringing on user name space. This should be done even for local
31
variables, as they might otherwise be expanded by user macros.
32
There are some unavoidable exceptions within include files to
33
define necessary library symbols; they are noted "INFRINGES ON
34
USER NAME SPACE" below. */
36
/* Identify Bison output. */
40
#define YYSKELETON_NAME "yacc.c"
45
/* Using locations. */
46
#define YYLSP_NEEDED 0
53
/* Put the tokens into the symbol table, so that GDB and other debuggers
59
PARS_FIXBINARY_LIT = 261,
69
PARS_PROCEDURE_TOKEN = 271,
72
PARS_BINARY_TOKEN = 274,
73
PARS_BLOB_TOKEN = 275,
75
PARS_INTEGER_TOKEN = 277,
76
PARS_FLOAT_TOKEN = 278,
77
PARS_CHAR_TOKEN = 279,
79
PARS_BEGIN_TOKEN = 281,
82
PARS_THEN_TOKEN = 284,
83
PARS_ELSE_TOKEN = 285,
84
PARS_ELSIF_TOKEN = 286,
85
PARS_LOOP_TOKEN = 287,
86
PARS_WHILE_TOKEN = 288,
87
PARS_RETURN_TOKEN = 289,
88
PARS_SELECT_TOKEN = 290,
90
PARS_COUNT_TOKEN = 292,
91
PARS_DISTINCT_TOKEN = 293,
92
PARS_FROM_TOKEN = 294,
93
PARS_WHERE_TOKEN = 295,
95
PARS_DDOT_TOKEN = 297,
96
PARS_READ_TOKEN = 298,
97
PARS_ORDER_TOKEN = 299,
100
PARS_DESC_TOKEN = 302,
101
PARS_INSERT_TOKEN = 303,
102
PARS_INTO_TOKEN = 304,
103
PARS_VALUES_TOKEN = 305,
104
PARS_UPDATE_TOKEN = 306,
105
PARS_SET_TOKEN = 307,
106
PARS_DELETE_TOKEN = 308,
107
PARS_CURRENT_TOKEN = 309,
109
PARS_CREATE_TOKEN = 311,
110
PARS_TABLE_TOKEN = 312,
111
PARS_INDEX_TOKEN = 313,
112
PARS_UNIQUE_TOKEN = 314,
113
PARS_CLUSTERED_TOKEN = 315,
114
PARS_DOES_NOT_FIT_IN_MEM_TOKEN = 316,
116
PARS_ASSIGN_TOKEN = 318,
117
PARS_DECLARE_TOKEN = 319,
118
PARS_CURSOR_TOKEN = 320,
119
PARS_SQL_TOKEN = 321,
120
PARS_OPEN_TOKEN = 322,
121
PARS_FETCH_TOKEN = 323,
122
PARS_CLOSE_TOKEN = 324,
123
PARS_NOTFOUND_TOKEN = 325,
124
PARS_TO_CHAR_TOKEN = 326,
125
PARS_TO_NUMBER_TOKEN = 327,
126
PARS_TO_BINARY_TOKEN = 328,
127
PARS_BINARY_TO_NUMBER_TOKEN = 329,
128
PARS_SUBSTR_TOKEN = 330,
129
PARS_REPLSTR_TOKEN = 331,
130
PARS_CONCAT_TOKEN = 332,
131
PARS_INSTR_TOKEN = 333,
132
PARS_LENGTH_TOKEN = 334,
133
PARS_SYSDATE_TOKEN = 335,
134
PARS_PRINTF_TOKEN = 336,
135
PARS_ASSERT_TOKEN = 337,
136
PARS_RND_TOKEN = 338,
137
PARS_RND_STR_TOKEN = 339,
138
PARS_ROW_PRINTF_TOKEN = 340,
139
PARS_COMMIT_TOKEN = 341,
140
PARS_ROLLBACK_TOKEN = 342,
141
PARS_WORK_TOKEN = 343,
142
PARS_UNSIGNED_TOKEN = 344,
143
PARS_EXIT_TOKEN = 345,
144
PARS_FUNCTION_TOKEN = 346,
145
PARS_LOCK_TOKEN = 347,
146
PARS_SHARE_TOKEN = 348,
147
PARS_MODE_TOKEN = 349,
151
#define PARS_INT_LIT 258
152
#define PARS_FLOAT_LIT 259
153
#define PARS_STR_LIT 260
154
#define PARS_FIXBINARY_LIT 261
155
#define PARS_BLOB_LIT 262
156
#define PARS_NULL_LIT 263
157
#define PARS_ID_TOKEN 264
158
#define PARS_AND_TOKEN 265
159
#define PARS_OR_TOKEN 266
160
#define PARS_NOT_TOKEN 267
161
#define PARS_GE_TOKEN 268
162
#define PARS_LE_TOKEN 269
163
#define PARS_NE_TOKEN 270
164
#define PARS_PROCEDURE_TOKEN 271
165
#define PARS_IN_TOKEN 272
166
#define PARS_OUT_TOKEN 273
167
#define PARS_BINARY_TOKEN 274
168
#define PARS_BLOB_TOKEN 275
169
#define PARS_INT_TOKEN 276
170
#define PARS_INTEGER_TOKEN 277
171
#define PARS_FLOAT_TOKEN 278
172
#define PARS_CHAR_TOKEN 279
173
#define PARS_IS_TOKEN 280
174
#define PARS_BEGIN_TOKEN 281
175
#define PARS_END_TOKEN 282
176
#define PARS_IF_TOKEN 283
177
#define PARS_THEN_TOKEN 284
178
#define PARS_ELSE_TOKEN 285
179
#define PARS_ELSIF_TOKEN 286
180
#define PARS_LOOP_TOKEN 287
181
#define PARS_WHILE_TOKEN 288
182
#define PARS_RETURN_TOKEN 289
183
#define PARS_SELECT_TOKEN 290
184
#define PARS_SUM_TOKEN 291
185
#define PARS_COUNT_TOKEN 292
186
#define PARS_DISTINCT_TOKEN 293
187
#define PARS_FROM_TOKEN 294
188
#define PARS_WHERE_TOKEN 295
189
#define PARS_FOR_TOKEN 296
190
#define PARS_DDOT_TOKEN 297
191
#define PARS_READ_TOKEN 298
192
#define PARS_ORDER_TOKEN 299
193
#define PARS_BY_TOKEN 300
194
#define PARS_ASC_TOKEN 301
195
#define PARS_DESC_TOKEN 302
196
#define PARS_INSERT_TOKEN 303
197
#define PARS_INTO_TOKEN 304
198
#define PARS_VALUES_TOKEN 305
199
#define PARS_UPDATE_TOKEN 306
200
#define PARS_SET_TOKEN 307
201
#define PARS_DELETE_TOKEN 308
202
#define PARS_CURRENT_TOKEN 309
203
#define PARS_OF_TOKEN 310
204
#define PARS_CREATE_TOKEN 311
205
#define PARS_TABLE_TOKEN 312
206
#define PARS_INDEX_TOKEN 313
207
#define PARS_UNIQUE_TOKEN 314
208
#define PARS_CLUSTERED_TOKEN 315
209
#define PARS_DOES_NOT_FIT_IN_MEM_TOKEN 316
210
#define PARS_ON_TOKEN 317
211
#define PARS_ASSIGN_TOKEN 318
212
#define PARS_DECLARE_TOKEN 319
213
#define PARS_CURSOR_TOKEN 320
214
#define PARS_SQL_TOKEN 321
215
#define PARS_OPEN_TOKEN 322
216
#define PARS_FETCH_TOKEN 323
217
#define PARS_CLOSE_TOKEN 324
218
#define PARS_NOTFOUND_TOKEN 325
219
#define PARS_TO_CHAR_TOKEN 326
220
#define PARS_TO_NUMBER_TOKEN 327
221
#define PARS_TO_BINARY_TOKEN 328
222
#define PARS_BINARY_TO_NUMBER_TOKEN 329
223
#define PARS_SUBSTR_TOKEN 330
224
#define PARS_REPLSTR_TOKEN 331
225
#define PARS_CONCAT_TOKEN 332
226
#define PARS_INSTR_TOKEN 333
227
#define PARS_LENGTH_TOKEN 334
228
#define PARS_SYSDATE_TOKEN 335
229
#define PARS_PRINTF_TOKEN 336
230
#define PARS_ASSERT_TOKEN 337
231
#define PARS_RND_TOKEN 338
232
#define PARS_RND_STR_TOKEN 339
233
#define PARS_ROW_PRINTF_TOKEN 340
234
#define PARS_COMMIT_TOKEN 341
235
#define PARS_ROLLBACK_TOKEN 342
236
#define PARS_WORK_TOKEN 343
237
#define PARS_UNSIGNED_TOKEN 344
238
#define PARS_EXIT_TOKEN 345
239
#define PARS_FUNCTION_TOKEN 346
240
#define PARS_LOCK_TOKEN 347
241
#define PARS_SHARE_TOKEN 348
242
#define PARS_MODE_TOKEN 349
248
/* Copy the first part of user declarations. */
249
#line 13 "pars0grm.y"
251
/* The value of the semantic attribute is a pointer to a query tree node
255
#include <math.h> /* Can't be before univ.i */
256
#include "pars0pars.h"
258
#include "que0types.h"
262
#define YYSTYPE que_node_t*
264
/* #define __STDC__ */
270
/* Enabling traces. */
275
/* Enabling verbose error messages. */
276
#ifdef YYERROR_VERBOSE
277
# undef YYERROR_VERBOSE
278
# define YYERROR_VERBOSE 1
280
# define YYERROR_VERBOSE 0
283
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
285
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
286
# define YYSTYPE_IS_DECLARED 1
287
# define YYSTYPE_IS_TRIVIAL 1
292
/* Copy the second part of user declarations. */
295
/* Line 213 of yacc.c. */
296
#line 297 "pars0grm.c"
298
#if ! defined (yyoverflow) || YYERROR_VERBOSE
304
# define YYMALLOC malloc
307
/* The parser invokes alloca or malloc; define the necessary symbols. */
309
# ifdef YYSTACK_USE_ALLOCA
310
# if YYSTACK_USE_ALLOCA
312
# define YYSTACK_ALLOC __builtin_alloca
314
# define YYSTACK_ALLOC alloca
319
# ifdef YYSTACK_ALLOC
320
/* Pacify GCC's `empty if-body' warning. */
321
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
323
# if defined (__STDC__) || defined (__cplusplus)
324
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
325
# define YYSIZE_T size_t
327
# define YYSTACK_ALLOC YYMALLOC
328
# define YYSTACK_FREE YYFREE
330
#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
333
#if (! defined (yyoverflow) \
334
&& (! defined (__cplusplus) \
335
|| (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
337
/* A type that is properly aligned for any stack member. */
344
/* The size of the maximum gap between one aligned stack and the next. */
345
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
347
/* The size of an array large to enough to hold all stacks, each with
349
# define YYSTACK_BYTES(N) \
350
((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
351
+ YYSTACK_GAP_MAXIMUM)
353
/* Copy COUNT objects from FROM to TO. The source and destination do
356
# if defined (__GNUC__) && 1 < __GNUC__
357
# define YYCOPY(To, From, Count) \
358
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
360
# define YYCOPY(To, From, Count) \
363
register YYSIZE_T yyi; \
364
for (yyi = 0; yyi < (Count); yyi++) \
365
(To)[yyi] = (From)[yyi]; \
371
/* Relocate STACK from its old location to the new one. The
372
local variables YYSIZE and YYSTACKSIZE give the old and new number of
373
elements in the stack, and YYPTR gives the new location of the
374
stack. Advance YYPTR to a properly aligned location for the next
376
# define YYSTACK_RELOCATE(Stack) \
379
YYSIZE_T yynewbytes; \
380
YYCOPY (&yyptr->Stack, Stack, yysize); \
381
Stack = &yyptr->Stack; \
382
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
383
yyptr += yynewbytes / sizeof (*yyptr); \
389
#if defined (__STDC__) || defined (__cplusplus)
390
typedef signed char yysigned_char;
392
typedef short int yysigned_char;
395
/* YYFINAL -- State number of the termination state. */
397
/* YYLAST -- Last index in YYTABLE. */
400
/* YYNTOKENS -- Number of terminals. */
401
#define YYNTOKENS 111
402
/* YYNNTS -- Number of nonterminals. */
404
/* YYNRULES -- Number of rules. */
406
/* YYNRULES -- Number of states. */
407
#define YYNSTATES 339
409
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
411
#define YYMAXUTOK 350
413
#define YYTRANSLATE(YYX) \
414
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
416
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
417
static const unsigned char yytranslate[] =
419
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
420
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
421
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
422
2, 2, 2, 2, 2, 2, 2, 103, 2, 2,
423
105, 106, 100, 99, 108, 98, 2, 101, 2, 2,
424
2, 2, 2, 2, 2, 2, 2, 2, 2, 104,
425
96, 95, 97, 107, 2, 2, 2, 2, 2, 2,
426
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
427
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
428
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
429
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
430
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
431
2, 2, 2, 109, 2, 110, 2, 2, 2, 2,
432
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
433
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
434
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
435
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
436
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
437
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
438
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
439
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
440
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
441
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
442
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
443
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
444
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
445
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
446
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
447
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
448
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
449
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
450
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
451
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
452
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
453
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
458
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
460
static const unsigned short int yyprhs[] =
462
0, 0, 3, 6, 8, 11, 14, 17, 20, 23,
463
26, 29, 32, 35, 38, 41, 44, 47, 50, 53,
464
56, 59, 62, 65, 68, 71, 73, 76, 78, 83,
465
85, 87, 89, 91, 93, 95, 97, 101, 105, 109,
466
113, 116, 120, 124, 128, 132, 136, 140, 144, 148,
467
152, 155, 159, 163, 165, 167, 169, 171, 173, 175,
468
177, 179, 181, 183, 185, 186, 188, 192, 199, 204,
469
206, 208, 210, 214, 216, 220, 221, 223, 227, 228,
470
230, 234, 236, 241, 247, 252, 253, 255, 259, 261,
471
265, 267, 268, 271, 272, 275, 276, 281, 282, 284,
472
286, 287, 292, 301, 305, 311, 314, 318, 320, 324,
473
329, 334, 337, 340, 344, 347, 350, 353, 357, 362,
474
364, 367, 368, 371, 373, 381, 388, 399, 401, 403,
475
406, 409, 414, 419, 425, 427, 431, 432, 436, 437,
476
439, 440, 443, 444, 446, 454, 456, 460, 461, 463,
477
464, 466, 477, 480, 483, 485, 487, 489, 491, 493,
478
497, 501, 502, 504, 508, 512, 513, 515, 518, 525,
479
530, 532, 534, 535, 537, 540
482
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
483
static const short int yyrhs[] =
485
112, 0, -1, 180, 104, -1, 118, -1, 119, 104,
486
-1, 151, 104, -1, 152, 104, -1, 153, 104, -1,
487
150, 104, -1, 154, 104, -1, 146, 104, -1, 133,
488
104, -1, 135, 104, -1, 145, 104, -1, 143, 104,
489
-1, 144, 104, -1, 140, 104, -1, 141, 104, -1,
490
155, 104, -1, 157, 104, -1, 156, 104, -1, 169,
491
104, -1, 170, 104, -1, 164, 104, -1, 168, 104,
492
-1, 113, -1, 114, 113, -1, 9, -1, 116, 105,
493
124, 106, -1, 3, -1, 4, -1, 5, -1, 6,
494
-1, 7, -1, 8, -1, 66, -1, 115, 99, 115,
495
-1, 115, 98, 115, -1, 115, 100, 115, -1, 115,
496
101, 115, -1, 98, 115, -1, 105, 115, 106, -1,
497
115, 95, 115, -1, 115, 96, 115, -1, 115, 97,
498
115, -1, 115, 13, 115, -1, 115, 14, 115, -1,
499
115, 15, 115, -1, 115, 10, 115, -1, 115, 11,
500
115, -1, 12, 115, -1, 9, 103, 70, -1, 66,
501
103, 70, -1, 71, -1, 72, -1, 73, -1, 74,
502
-1, 75, -1, 77, -1, 78, -1, 79, -1, 80,
503
-1, 83, -1, 84, -1, -1, 107, -1, 117, 108,
504
107, -1, 109, 9, 105, 117, 106, 110, -1, 120,
505
105, 124, 106, -1, 76, -1, 81, -1, 82, -1,
506
9, 105, 106, -1, 9, -1, 122, 108, 9, -1,
507
-1, 9, -1, 123, 108, 9, -1, -1, 115, -1,
508
124, 108, 115, -1, 115, -1, 37, 105, 100, 106,
509
-1, 37, 105, 38, 9, 106, -1, 36, 105, 115,
510
106, -1, -1, 125, -1, 126, 108, 125, -1, 100,
511
-1, 126, 49, 123, -1, 126, -1, -1, 40, 115,
512
-1, -1, 41, 51, -1, -1, 92, 17, 93, 94,
513
-1, -1, 46, -1, 47, -1, -1, 44, 45, 9,
514
131, -1, 35, 127, 39, 122, 128, 129, 130, 132,
515
-1, 48, 49, 9, -1, 134, 50, 105, 124, 106,
516
-1, 134, 133, -1, 9, 95, 115, -1, 136, -1,
517
137, 108, 136, -1, 40, 54, 55, 9, -1, 51,
518
9, 52, 137, -1, 139, 128, -1, 139, 138, -1,
519
53, 39, 9, -1, 142, 128, -1, 142, 138, -1,
520
85, 133, -1, 9, 63, 115, -1, 31, 115, 29,
521
114, -1, 147, -1, 148, 147, -1, -1, 30, 114,
522
-1, 148, -1, 28, 115, 29, 114, 149, 27, 28,
523
-1, 33, 115, 32, 114, 27, 32, -1, 41, 9,
524
17, 115, 42, 115, 32, 114, 27, 32, -1, 90,
525
-1, 34, -1, 67, 9, -1, 69, 9, -1, 68,
526
9, 49, 123, -1, 68, 9, 49, 121, -1, 9,
527
171, 160, 161, 162, -1, 158, -1, 159, 108, 158,
528
-1, -1, 105, 3, 106, -1, -1, 89, -1, -1,
529
12, 8, -1, -1, 61, -1, 56, 57, 9, 105,
530
159, 106, 163, -1, 9, -1, 165, 108, 9, -1,
531
-1, 59, -1, -1, 60, -1, 56, 166, 167, 58,
532
9, 62, 9, 105, 165, 106, -1, 86, 88, -1,
533
87, 88, -1, 21, -1, 22, -1, 24, -1, 19,
534
-1, 20, -1, 9, 17, 171, -1, 9, 18, 171,
535
-1, -1, 172, -1, 173, 108, 172, -1, 9, 171,
536
104, -1, -1, 174, -1, 175, 174, -1, 64, 65,
537
9, 25, 133, 104, -1, 64, 91, 9, 104, -1,
538
176, -1, 177, -1, -1, 178, -1, 179, 178, -1,
539
16, 9, 105, 173, 106, 25, 175, 179, 26, 114,
543
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
544
static const unsigned short int yyrline[] =
546
0, 138, 138, 141, 142, 143, 144, 145, 146, 147,
547
148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
548
158, 159, 160, 161, 162, 166, 167, 172, 173, 175,
549
176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
550
186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
551
196, 197, 199, 204, 205, 206, 207, 209, 210, 211,
552
212, 213, 214, 215, 218, 220, 221, 225, 230, 235,
553
236, 237, 241, 245, 246, 251, 252, 253, 258, 259,
554
260, 264, 265, 270, 276, 283, 284, 285, 290, 292,
555
294, 298, 299, 303, 304, 309, 310, 315, 316, 317,
556
321, 322, 327, 337, 342, 344, 349, 353, 354, 359,
557
365, 372, 377, 382, 388, 393, 398, 403, 408, 414,
558
415, 420, 421, 423, 427, 434, 440, 448, 452, 456,
559
462, 468, 470, 475, 480, 481, 486, 487, 492, 493,
560
499, 500, 506, 507, 513, 519, 520, 525, 526, 530,
561
531, 535, 543, 548, 553, 554, 555, 556, 557, 561,
562
564, 570, 571, 572, 577, 581, 583, 584, 588, 594,
563
599, 600, 603, 605, 606, 610
567
#if YYDEBUG || YYERROR_VERBOSE
568
/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
569
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
570
static const char *const yytname[] =
572
"$end", "error", "$undefined", "PARS_INT_LIT", "PARS_FLOAT_LIT",
573
"PARS_STR_LIT", "PARS_FIXBINARY_LIT", "PARS_BLOB_LIT", "PARS_NULL_LIT",
574
"PARS_ID_TOKEN", "PARS_AND_TOKEN", "PARS_OR_TOKEN", "PARS_NOT_TOKEN",
575
"PARS_GE_TOKEN", "PARS_LE_TOKEN", "PARS_NE_TOKEN",
576
"PARS_PROCEDURE_TOKEN", "PARS_IN_TOKEN", "PARS_OUT_TOKEN",
577
"PARS_BINARY_TOKEN", "PARS_BLOB_TOKEN", "PARS_INT_TOKEN",
578
"PARS_INTEGER_TOKEN", "PARS_FLOAT_TOKEN", "PARS_CHAR_TOKEN",
579
"PARS_IS_TOKEN", "PARS_BEGIN_TOKEN", "PARS_END_TOKEN", "PARS_IF_TOKEN",
580
"PARS_THEN_TOKEN", "PARS_ELSE_TOKEN", "PARS_ELSIF_TOKEN",
581
"PARS_LOOP_TOKEN", "PARS_WHILE_TOKEN", "PARS_RETURN_TOKEN",
582
"PARS_SELECT_TOKEN", "PARS_SUM_TOKEN", "PARS_COUNT_TOKEN",
583
"PARS_DISTINCT_TOKEN", "PARS_FROM_TOKEN", "PARS_WHERE_TOKEN",
584
"PARS_FOR_TOKEN", "PARS_DDOT_TOKEN", "PARS_READ_TOKEN",
585
"PARS_ORDER_TOKEN", "PARS_BY_TOKEN", "PARS_ASC_TOKEN", "PARS_DESC_TOKEN",
586
"PARS_INSERT_TOKEN", "PARS_INTO_TOKEN", "PARS_VALUES_TOKEN",
587
"PARS_UPDATE_TOKEN", "PARS_SET_TOKEN", "PARS_DELETE_TOKEN",
588
"PARS_CURRENT_TOKEN", "PARS_OF_TOKEN", "PARS_CREATE_TOKEN",
589
"PARS_TABLE_TOKEN", "PARS_INDEX_TOKEN", "PARS_UNIQUE_TOKEN",
590
"PARS_CLUSTERED_TOKEN", "PARS_DOES_NOT_FIT_IN_MEM_TOKEN",
591
"PARS_ON_TOKEN", "PARS_ASSIGN_TOKEN", "PARS_DECLARE_TOKEN",
592
"PARS_CURSOR_TOKEN", "PARS_SQL_TOKEN", "PARS_OPEN_TOKEN",
593
"PARS_FETCH_TOKEN", "PARS_CLOSE_TOKEN", "PARS_NOTFOUND_TOKEN",
594
"PARS_TO_CHAR_TOKEN", "PARS_TO_NUMBER_TOKEN", "PARS_TO_BINARY_TOKEN",
595
"PARS_BINARY_TO_NUMBER_TOKEN", "PARS_SUBSTR_TOKEN", "PARS_REPLSTR_TOKEN",
596
"PARS_CONCAT_TOKEN", "PARS_INSTR_TOKEN", "PARS_LENGTH_TOKEN",
597
"PARS_SYSDATE_TOKEN", "PARS_PRINTF_TOKEN", "PARS_ASSERT_TOKEN",
598
"PARS_RND_TOKEN", "PARS_RND_STR_TOKEN", "PARS_ROW_PRINTF_TOKEN",
599
"PARS_COMMIT_TOKEN", "PARS_ROLLBACK_TOKEN", "PARS_WORK_TOKEN",
600
"PARS_UNSIGNED_TOKEN", "PARS_EXIT_TOKEN", "PARS_FUNCTION_TOKEN",
601
"PARS_LOCK_TOKEN", "PARS_SHARE_TOKEN", "PARS_MODE_TOKEN", "'='", "'<'",
602
"'>'", "'-'", "'+'", "'*'", "'/'", "NEG", "'%'", "';'", "'('", "')'",
603
"'?'", "','", "'{'", "'}'", "$accept", "top_statement", "statement",
604
"statement_list", "exp", "function_name", "question_mark_list",
605
"stored_procedure_call", "predefined_procedure_call",
606
"predefined_procedure_name", "user_function_call", "table_list",
607
"variable_list", "exp_list", "select_item", "select_item_list",
608
"select_list", "search_condition", "for_update_clause",
609
"lock_shared_clause", "order_direction", "order_by_clause",
610
"select_statement", "insert_statement_start", "insert_statement",
611
"column_assignment", "column_assignment_list", "cursor_positioned",
612
"update_statement_start", "update_statement_searched",
613
"update_statement_positioned", "delete_statement_start",
614
"delete_statement_searched", "delete_statement_positioned",
615
"row_printf_statement", "assignment_statement", "elsif_element",
616
"elsif_list", "else_part", "if_statement", "while_statement",
617
"for_statement", "exit_statement", "return_statement",
618
"open_cursor_statement", "close_cursor_statement", "fetch_statement",
619
"column_def", "column_def_list", "opt_column_len", "opt_unsigned",
620
"opt_not_null", "not_fit_in_memory", "create_table", "column_list",
621
"unique_def", "clustered_def", "create_index", "commit_statement",
622
"rollback_statement", "type_name", "parameter_declaration",
623
"parameter_declaration_list", "variable_declaration",
624
"variable_declaration_list", "cursor_declaration",
625
"function_declaration", "declaration", "declaration_list",
626
"procedure_definition", 0
631
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
633
static const unsigned short int yytoknum[] =
635
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
636
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
637
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
638
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
639
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
640
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
641
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
642
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
643
335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
644
345, 346, 347, 348, 349, 61, 60, 62, 45, 43,
645
42, 47, 350, 37, 59, 40, 41, 63, 44, 123,
650
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
651
static const unsigned char yyr1[] =
653
0, 111, 112, 113, 113, 113, 113, 113, 113, 113,
654
113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
655
113, 113, 113, 113, 113, 114, 114, 115, 115, 115,
656
115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
657
115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
658
115, 115, 115, 116, 116, 116, 116, 116, 116, 116,
659
116, 116, 116, 116, 117, 117, 117, 118, 119, 120,
660
120, 120, 121, 122, 122, 123, 123, 123, 124, 124,
661
124, 125, 125, 125, 125, 126, 126, 126, 127, 127,
662
127, 128, 128, 129, 129, 130, 130, 131, 131, 131,
663
132, 132, 133, 134, 135, 135, 136, 137, 137, 138,
664
139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
665
148, 149, 149, 149, 150, 151, 152, 153, 154, 155,
666
156, 157, 157, 158, 159, 159, 160, 160, 161, 161,
667
162, 162, 163, 163, 164, 165, 165, 166, 166, 167,
668
167, 168, 169, 170, 171, 171, 171, 171, 171, 172,
669
172, 173, 173, 173, 174, 175, 175, 175, 176, 177,
670
178, 178, 179, 179, 179, 180
673
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
674
static const unsigned char yyr2[] =
676
0, 2, 2, 1, 2, 2, 2, 2, 2, 2,
677
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
678
2, 2, 2, 2, 2, 1, 2, 1, 4, 1,
679
1, 1, 1, 1, 1, 1, 3, 3, 3, 3,
680
2, 3, 3, 3, 3, 3, 3, 3, 3, 3,
681
2, 3, 3, 1, 1, 1, 1, 1, 1, 1,
682
1, 1, 1, 1, 0, 1, 3, 6, 4, 1,
683
1, 1, 3, 1, 3, 0, 1, 3, 0, 1,
684
3, 1, 4, 5, 4, 0, 1, 3, 1, 3,
685
1, 0, 2, 0, 2, 0, 4, 0, 1, 1,
686
0, 4, 8, 3, 5, 2, 3, 1, 3, 4,
687
4, 2, 2, 3, 2, 2, 2, 3, 4, 1,
688
2, 0, 2, 1, 7, 6, 10, 1, 1, 2,
689
2, 4, 4, 5, 1, 3, 0, 3, 0, 1,
690
0, 2, 0, 1, 7, 1, 3, 0, 1, 0,
691
1, 10, 2, 2, 1, 1, 1, 1, 1, 3,
692
3, 0, 1, 3, 3, 0, 1, 2, 6, 4,
696
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
697
STATE-NUM when YYTABLE doesn't specify something else to do. Zero
698
means the default is an error. */
699
static const unsigned char yydefact[] =
701
0, 0, 0, 0, 0, 1, 2, 161, 0, 162,
702
0, 0, 0, 0, 0, 157, 158, 154, 155, 156,
703
159, 160, 165, 163, 0, 166, 172, 0, 0, 167,
704
170, 171, 173, 0, 164, 0, 0, 0, 174, 0,
705
0, 0, 0, 0, 128, 85, 0, 0, 0, 0,
706
147, 0, 0, 0, 69, 70, 71, 0, 0, 0,
707
127, 0, 25, 0, 3, 0, 0, 0, 0, 0,
708
91, 0, 0, 91, 0, 0, 0, 0, 0, 0,
709
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
710
0, 169, 0, 29, 30, 31, 32, 33, 34, 27,
711
0, 35, 53, 54, 55, 56, 57, 58, 59, 60,
712
61, 62, 63, 0, 0, 0, 0, 0, 0, 0,
713
88, 81, 86, 90, 0, 0, 0, 0, 0, 0,
714
148, 149, 129, 0, 130, 116, 152, 153, 0, 175,
715
26, 4, 78, 11, 0, 105, 12, 0, 111, 112,
716
16, 17, 114, 115, 14, 15, 13, 10, 8, 5,
717
6, 7, 9, 18, 20, 19, 23, 24, 21, 22,
718
0, 117, 0, 50, 0, 40, 0, 0, 0, 0,
719
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
720
78, 0, 0, 0, 75, 0, 0, 0, 103, 0,
721
113, 0, 150, 0, 75, 64, 79, 0, 78, 0,
722
92, 168, 51, 52, 41, 48, 49, 45, 46, 47,
723
121, 42, 43, 44, 37, 36, 38, 39, 0, 0,
724
0, 0, 0, 76, 89, 87, 73, 91, 0, 0,
725
107, 110, 0, 0, 76, 132, 131, 65, 0, 68,
726
0, 0, 0, 0, 0, 119, 123, 0, 28, 0,
727
84, 0, 82, 0, 0, 0, 93, 0, 0, 0,
728
0, 134, 0, 0, 0, 0, 0, 80, 104, 109,
729
122, 0, 120, 0, 125, 83, 77, 74, 0, 95,
730
0, 106, 108, 136, 142, 0, 0, 72, 67, 66,
731
0, 124, 94, 0, 100, 0, 0, 138, 143, 144,
732
135, 0, 118, 0, 0, 102, 0, 0, 139, 140,
733
0, 0, 0, 0, 137, 0, 133, 145, 0, 96,
734
97, 126, 141, 151, 0, 98, 99, 101, 146
737
/* YYDEFGOTO[NTERM-NUM]. */
738
static const short int yydefgoto[] =
740
-1, 2, 62, 63, 206, 116, 248, 64, 65, 66,
741
245, 237, 234, 207, 122, 123, 124, 148, 289, 304,
742
337, 315, 67, 68, 69, 240, 241, 149, 70, 71,
743
72, 73, 74, 75, 76, 77, 255, 256, 257, 78,
744
79, 80, 81, 82, 83, 84, 85, 271, 272, 307,
745
319, 326, 309, 86, 328, 131, 203, 87, 88, 89,
746
20, 9, 10, 25, 26, 30, 31, 32, 33, 3
749
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
751
#define YYPACT_NINF -177
752
static const short int yypact[] =
754
28, 38, 54, -46, -29, -177, -177, 56, 50, -177,
755
-75, 8, 8, 46, 56, -177, -177, -177, -177, -177,
756
-177, -177, 63, -177, 8, -177, 2, -26, -51, -177,
757
-177, -177, -177, -13, -177, 71, 72, 587, -177, 57,
758
-21, 26, 272, 272, -177, 13, 91, 55, 96, 67,
759
-22, 99, 100, 103, -177, -177, -177, 75, 29, 35,
760
-177, 116, -177, 396, -177, 22, 23, 27, -9, 30,
761
87, 31, 32, 87, 47, 49, 52, 58, 59, 60,
762
61, 62, 65, 66, 74, 77, 78, 86, 89, 102,
763
75, -177, 272, -177, -177, -177, -177, -177, -177, 39,
764
272, 51, -177, -177, -177, -177, -177, -177, -177, -177,
765
-177, -177, -177, 272, 272, 361, 25, 489, 45, 90,
766
-177, 651, -177, -39, 93, 142, 124, 108, 152, 170,
767
-177, 131, -177, 143, -177, -177, -177, -177, 98, -177,
768
-177, -177, 272, -177, 110, -177, -177, 256, -177, -177,
769
-177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
770
-177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
771
112, 651, 137, 101, 147, 204, 88, 272, 272, 272,
772
272, 272, 587, 272, 272, 272, 272, 272, 272, 272,
773
272, 587, 272, -30, 211, 168, 212, 272, -177, 213,
774
-177, 118, -177, 167, 217, 122, 651, -63, 272, 175,
775
651, -177, -177, -177, -177, 101, 101, 21, 21, 651,
776
332, 21, 21, 21, -6, -6, 204, 204, -60, 460,
777
198, 222, 126, -177, 125, -177, -177, -33, 584, 140,
778
-177, 128, 228, 229, 139, -177, 125, -177, -53, -177,
779
272, -49, 240, 587, 272, -177, 224, 226, -177, 225,
780
-177, 150, -177, 258, 272, 260, 230, 272, 272, 213,
781
8, -177, -45, 208, 166, 164, 176, 651, -177, -177,
782
587, 631, -177, 254, -177, -177, -177, -177, 234, 194,
783
638, 651, -177, 182, 227, 228, 280, -177, -177, -177,
784
587, -177, -177, 273, 247, 587, 289, 214, -177, -177,
785
-177, 195, 587, 209, 261, -177, 524, 199, -177, 295,
786
292, 215, 299, 279, -177, 304, -177, -177, -44, -177,
787
-8, -177, -177, -177, 305, -177, -177, -177, -177
790
/* YYPGOTO[NTERM-NUM]. */
791
static const short int yypgoto[] =
793
-177, -177, -62, -176, -40, -177, -177, -177, -177, -177,
794
-177, -177, 109, -166, 120, -177, -177, -69, -177, -177,
795
-177, -177, -34, -177, -177, 48, -177, 243, -177, -177,
796
-177, -177, -177, -177, -177, -177, 64, -177, -177, -177,
797
-177, -177, -177, -177, -177, -177, -177, 24, -177, -177,
798
-177, -177, -177, -177, -177, -177, -177, -177, -177, -177,
799
-12, 307, -177, 297, -177, -177, -177, 285, -177, -177
802
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
803
positive, shift that token. If negative, reduce the rule which
804
number is the opposite. If zero, do what YYDEFACT says.
805
If YYTABLE_NINF, syntax error. */
806
#define YYTABLE_NINF -1
807
static const unsigned short int yytable[] =
809
21, 140, 115, 117, 152, 121, 220, 264, 231, 181,
810
194, 24, 27, 37, 35, 229, 93, 94, 95, 96,
811
97, 98, 99, 135, 228, 100, 45, 15, 16, 17,
812
18, 13, 19, 14, 145, 129, 181, 130, 335, 336,
813
36, 144, 251, 249, 1, 250, 258, 4, 250, 118,
814
119, 28, 171, 275, 5, 276, 170, 278, 6, 250,
815
173, 294, 333, 295, 334, 8, 28, 11, 12, 195,
816
232, 22, 24, 175, 176, 265, 7, 280, 34, 101,
817
39, 40, 90, 91, 102, 103, 104, 105, 106, 92,
818
107, 108, 109, 110, 188, 189, 111, 112, 177, 178,
819
125, 179, 180, 181, 126, 127, 128, 210, 132, 133,
820
45, 113, 134, 120, 179, 180, 181, 136, 114, 186,
821
187, 188, 189, 137, 312, 138, 141, 147, 142, 316,
822
190, 143, 196, 198, 146, 150, 151, 215, 216, 217,
823
218, 219, 172, 221, 222, 223, 224, 225, 226, 227,
824
192, 154, 230, 155, 174, 121, 156, 238, 140, 197,
825
199, 200, 157, 158, 159, 160, 161, 140, 266, 162,
826
163, 93, 94, 95, 96, 97, 98, 99, 164, 201,
827
100, 165, 166, 183, 184, 185, 186, 187, 188, 189,
828
167, 202, 204, 168, 214, 193, 183, 184, 185, 186,
829
187, 188, 189, 205, 118, 119, 169, 212, 177, 178,
830
277, 179, 180, 181, 281, 208, 211, 213, 140, 181,
831
233, 236, 239, 242, 210, 243, 244, 290, 291, 247,
832
252, 261, 262, 263, 101, 268, 269, 270, 273, 102,
833
103, 104, 105, 106, 274, 107, 108, 109, 110, 279,
834
140, 111, 112, 283, 140, 254, 285, 284, 293, 93,
835
94, 95, 96, 97, 98, 99, 113, 286, 100, 287,
836
296, 288, 297, 114, 298, 93, 94, 95, 96, 97,
837
98, 99, 301, 299, 100, 302, 303, 306, 308, 311,
838
313, 314, 317, 183, 184, 185, 186, 187, 188, 189,
839
320, 327, 321, 318, 260, 324, 322, 325, 330, 329,
840
209, 331, 332, 246, 338, 235, 153, 292, 38, 310,
841
282, 23, 101, 29, 0, 0, 0, 102, 103, 104,
842
105, 106, 0, 107, 108, 109, 110, 0, 101, 111,
843
112, 41, 0, 102, 103, 104, 105, 106, 0, 107,
844
108, 109, 110, 0, 113, 111, 112, 0, 0, 0,
845
42, 114, 253, 254, 0, 43, 44, 45, 0, 0,
846
113, 177, 178, 46, 179, 180, 181, 114, 0, 0,
847
47, 0, 0, 48, 0, 49, 0, 0, 50, 0,
848
182, 0, 0, 0, 0, 0, 0, 0, 0, 51,
849
52, 53, 0, 0, 0, 41, 0, 0, 54, 0,
850
0, 0, 0, 55, 56, 0, 0, 57, 58, 59,
851
0, 0, 60, 139, 42, 0, 0, 0, 0, 43,
852
44, 45, 0, 0, 0, 0, 0, 46, 0, 0,
853
0, 61, 0, 0, 47, 0, 0, 48, 0, 49,
854
0, 0, 50, 0, 0, 0, 183, 184, 185, 186,
855
187, 188, 189, 51, 52, 53, 0, 0, 0, 41,
856
0, 0, 54, 0, 0, 0, 0, 55, 56, 0,
857
0, 57, 58, 59, 0, 0, 60, 259, 42, 0,
858
0, 0, 0, 43, 44, 45, 0, 0, 0, 177,
859
178, 46, 179, 180, 181, 61, 0, 0, 47, 0,
860
0, 48, 0, 49, 0, 0, 50, 0, 0, 0,
861
0, 191, 0, 0, 0, 0, 0, 51, 52, 53,
862
0, 0, 0, 41, 0, 0, 54, 0, 0, 0,
863
0, 55, 56, 0, 0, 57, 58, 59, 0, 0,
864
60, 323, 42, 0, 0, 0, 0, 43, 44, 45,
865
0, 0, 0, 0, 0, 46, 0, 0, 0, 61,
866
0, 0, 47, 0, 0, 48, 0, 49, 0, 0,
867
50, 0, 0, 0, 183, 184, 185, 186, 187, 188,
868
189, 51, 52, 53, 177, 178, 41, 179, 180, 181,
869
54, 0, 0, 0, 0, 55, 56, 0, 0, 57,
870
58, 59, 0, 0, 60, 42, 0, 0, 0, 0,
871
43, 44, 45, 0, 0, 0, 267, 0, 46, 0,
872
0, 0, 0, 61, 0, 47, 0, 0, 48, 0,
873
49, 177, 178, 50, 179, 180, 181, 0, 177, 178,
874
0, 179, 180, 181, 51, 52, 53, 0, 0, 0,
875
300, 177, 178, 54, 179, 180, 181, 0, 55, 56,
876
305, 0, 57, 58, 59, 0, 0, 60, 0, 183,
877
184, 185, 186, 187, 188, 189, 0, 0, 0, 0,
878
0, 0, 0, 0, 0, 0, 61, 0, 0, 0,
879
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
880
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
881
0, 0, 0, 0, 0, 0, 183, 184, 185, 186,
882
187, 188, 189, 183, 184, 185, 186, 187, 188, 189,
883
0, 0, 0, 0, 0, 0, 183, 184, 185, 186,
887
static const short int yycheck[] =
889
12, 63, 42, 43, 73, 45, 182, 40, 38, 15,
890
49, 9, 24, 26, 65, 191, 3, 4, 5, 6,
891
7, 8, 9, 57, 190, 12, 35, 19, 20, 21,
892
22, 106, 24, 108, 68, 57, 15, 59, 46, 47,
893
91, 50, 208, 106, 16, 108, 106, 9, 108, 36,
894
37, 64, 92, 106, 0, 108, 90, 106, 104, 108,
895
100, 106, 106, 108, 108, 9, 64, 17, 18, 108,
896
100, 25, 9, 113, 114, 108, 105, 253, 104, 66,
897
9, 9, 25, 104, 71, 72, 73, 74, 75, 63,
898
77, 78, 79, 80, 100, 101, 83, 84, 10, 11,
899
9, 13, 14, 15, 49, 9, 39, 147, 9, 9,
900
35, 98, 9, 100, 13, 14, 15, 88, 105, 98,
901
99, 100, 101, 88, 300, 9, 104, 40, 105, 305,
902
105, 104, 39, 9, 104, 104, 104, 177, 178, 179,
903
180, 181, 103, 183, 184, 185, 186, 187, 188, 189,
904
105, 104, 192, 104, 103, 195, 104, 197, 220, 17,
905
52, 9, 104, 104, 104, 104, 104, 229, 237, 104,
906
104, 3, 4, 5, 6, 7, 8, 9, 104, 9,
907
12, 104, 104, 95, 96, 97, 98, 99, 100, 101,
908
104, 60, 49, 104, 106, 105, 95, 96, 97, 98,
909
99, 100, 101, 105, 36, 37, 104, 70, 10, 11,
910
250, 13, 14, 15, 254, 105, 104, 70, 280, 15,
911
9, 9, 9, 105, 264, 58, 9, 267, 268, 107,
912
55, 9, 106, 108, 66, 95, 108, 9, 9, 71,
913
72, 73, 74, 75, 105, 77, 78, 79, 80, 9,
914
312, 83, 84, 27, 316, 31, 106, 32, 270, 3,
915
4, 5, 6, 7, 8, 9, 98, 9, 12, 9,
916
62, 41, 106, 105, 110, 3, 4, 5, 6, 7,
917
8, 9, 28, 107, 12, 51, 92, 105, 61, 9,
918
17, 44, 3, 95, 96, 97, 98, 99, 100, 101,
919
105, 9, 93, 89, 106, 106, 45, 12, 9, 94,
920
54, 32, 8, 204, 9, 195, 73, 269, 33, 295,
921
256, 14, 66, 26, -1, -1, -1, 71, 72, 73,
922
74, 75, -1, 77, 78, 79, 80, -1, 66, 83,
923
84, 9, -1, 71, 72, 73, 74, 75, -1, 77,
924
78, 79, 80, -1, 98, 83, 84, -1, -1, -1,
925
28, 105, 30, 31, -1, 33, 34, 35, -1, -1,
926
98, 10, 11, 41, 13, 14, 15, 105, -1, -1,
927
48, -1, -1, 51, -1, 53, -1, -1, 56, -1,
928
29, -1, -1, -1, -1, -1, -1, -1, -1, 67,
929
68, 69, -1, -1, -1, 9, -1, -1, 76, -1,
930
-1, -1, -1, 81, 82, -1, -1, 85, 86, 87,
931
-1, -1, 90, 27, 28, -1, -1, -1, -1, 33,
932
34, 35, -1, -1, -1, -1, -1, 41, -1, -1,
933
-1, 109, -1, -1, 48, -1, -1, 51, -1, 53,
934
-1, -1, 56, -1, -1, -1, 95, 96, 97, 98,
935
99, 100, 101, 67, 68, 69, -1, -1, -1, 9,
936
-1, -1, 76, -1, -1, -1, -1, 81, 82, -1,
937
-1, 85, 86, 87, -1, -1, 90, 27, 28, -1,
938
-1, -1, -1, 33, 34, 35, -1, -1, -1, 10,
939
11, 41, 13, 14, 15, 109, -1, -1, 48, -1,
940
-1, 51, -1, 53, -1, -1, 56, -1, -1, -1,
941
-1, 32, -1, -1, -1, -1, -1, 67, 68, 69,
942
-1, -1, -1, 9, -1, -1, 76, -1, -1, -1,
943
-1, 81, 82, -1, -1, 85, 86, 87, -1, -1,
944
90, 27, 28, -1, -1, -1, -1, 33, 34, 35,
945
-1, -1, -1, -1, -1, 41, -1, -1, -1, 109,
946
-1, -1, 48, -1, -1, 51, -1, 53, -1, -1,
947
56, -1, -1, -1, 95, 96, 97, 98, 99, 100,
948
101, 67, 68, 69, 10, 11, 9, 13, 14, 15,
949
76, -1, -1, -1, -1, 81, 82, -1, -1, 85,
950
86, 87, -1, -1, 90, 28, -1, -1, -1, -1,
951
33, 34, 35, -1, -1, -1, 42, -1, 41, -1,
952
-1, -1, -1, 109, -1, 48, -1, -1, 51, -1,
953
53, 10, 11, 56, 13, 14, 15, -1, 10, 11,
954
-1, 13, 14, 15, 67, 68, 69, -1, -1, -1,
955
29, 10, 11, 76, 13, 14, 15, -1, 81, 82,
956
32, -1, 85, 86, 87, -1, -1, 90, -1, 95,
957
96, 97, 98, 99, 100, 101, -1, -1, -1, -1,
958
-1, -1, -1, -1, -1, -1, 109, -1, -1, -1,
959
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
960
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
961
-1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
962
99, 100, 101, 95, 96, 97, 98, 99, 100, 101,
963
-1, -1, -1, -1, -1, -1, 95, 96, 97, 98,
967
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
968
symbol of state STATE-NUM. */
969
static const unsigned char yystos[] =
971
0, 16, 112, 180, 9, 0, 104, 105, 9, 172,
972
173, 17, 18, 106, 108, 19, 20, 21, 22, 24,
973
171, 171, 25, 172, 9, 174, 175, 171, 64, 174,
974
176, 177, 178, 179, 104, 65, 91, 26, 178, 9,
975
9, 9, 28, 33, 34, 35, 41, 48, 51, 53,
976
56, 67, 68, 69, 76, 81, 82, 85, 86, 87,
977
90, 109, 113, 114, 118, 119, 120, 133, 134, 135,
978
139, 140, 141, 142, 143, 144, 145, 146, 150, 151,
979
152, 153, 154, 155, 156, 157, 164, 168, 169, 170,
980
25, 104, 63, 3, 4, 5, 6, 7, 8, 9,
981
12, 66, 71, 72, 73, 74, 75, 77, 78, 79,
982
80, 83, 84, 98, 105, 115, 116, 115, 36, 37,
983
100, 115, 125, 126, 127, 9, 49, 9, 39, 57,
984
59, 166, 9, 9, 9, 133, 88, 88, 9, 27,
985
113, 104, 105, 104, 50, 133, 104, 40, 128, 138,
986
104, 104, 128, 138, 104, 104, 104, 104, 104, 104,
987
104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
988
133, 115, 103, 115, 103, 115, 115, 10, 11, 13,
989
14, 15, 29, 95, 96, 97, 98, 99, 100, 101,
990
105, 32, 105, 105, 49, 108, 39, 17, 9, 52,
991
9, 9, 60, 167, 49, 105, 115, 124, 105, 54,
992
115, 104, 70, 70, 106, 115, 115, 115, 115, 115,
993
114, 115, 115, 115, 115, 115, 115, 115, 124, 114,
994
115, 38, 100, 9, 123, 125, 9, 122, 115, 9,
995
136, 137, 105, 58, 9, 121, 123, 107, 117, 106,
996
108, 124, 55, 30, 31, 147, 148, 149, 106, 27,
997
106, 9, 106, 108, 40, 108, 128, 42, 95, 108,
998
9, 158, 159, 9, 105, 106, 108, 115, 106, 9,
999
114, 115, 147, 27, 32, 106, 9, 9, 41, 129,
1000
115, 115, 136, 171, 106, 108, 62, 106, 110, 107,
1001
29, 28, 51, 92, 130, 32, 105, 160, 61, 163,
1002
158, 9, 114, 17, 44, 132, 114, 3, 89, 161,
1003
105, 93, 45, 27, 106, 12, 162, 9, 165, 94,
1004
9, 32, 8, 106, 108, 46, 47, 131, 9
1007
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
1008
# define YYSIZE_T __SIZE_TYPE__
1010
#if ! defined (YYSIZE_T) && defined (size_t)
1011
# define YYSIZE_T size_t
1013
#if ! defined (YYSIZE_T)
1014
# if defined (__STDC__) || defined (__cplusplus)
1015
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1016
# define YYSIZE_T size_t
1019
#if ! defined (YYSIZE_T)
1020
# define YYSIZE_T unsigned int
1023
#define yyerrok (yyerrstatus = 0)
1024
#define yyclearin (yychar = YYEMPTY)
1025
#define YYEMPTY (-2)
1028
#define YYACCEPT goto yyacceptlab
1029
#define YYABORT goto yyabortlab
1030
#define YYERROR goto yyerrorlab
1033
/* Like YYERROR except do call yyerror. This remains here temporarily
1034
to ease the transition to the new meaning of YYERROR, for GCC.
1035
Once GCC version 2 has supplanted version 1, this can go. */
1037
#define YYFAIL goto yyerrlab
1039
#define YYRECOVERING() (!!yyerrstatus)
1041
#define YYBACKUP(Token, Value) \
1043
if (yychar == YYEMPTY && yylen == 1) \
1047
yytoken = YYTRANSLATE (yychar); \
1053
yyerror ("syntax error: cannot back up");\
1060
#define YYERRCODE 256
1063
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
1064
If N is 0, then set CURRENT to the empty location which ends
1065
the previous symbol: RHS[0] (always defined). */
1067
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
1068
#ifndef YYLLOC_DEFAULT
1069
# define YYLLOC_DEFAULT(Current, Rhs, N) \
1073
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
1074
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
1075
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
1076
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
1080
(Current).first_line = (Current).last_line = \
1081
YYRHSLOC (Rhs, 0).last_line; \
1082
(Current).first_column = (Current).last_column = \
1083
YYRHSLOC (Rhs, 0).last_column; \
1089
/* YY_LOCATION_PRINT -- Print the location on the stream.
1090
This macro was not mandated originally: define only if we know
1091
we won't break user code: when these are the locations we know. */
1093
#ifndef YY_LOCATION_PRINT
1094
# if YYLTYPE_IS_TRIVIAL
1095
# define YY_LOCATION_PRINT(File, Loc) \
1096
fprintf (File, "%d.%d-%d.%d", \
1097
(Loc).first_line, (Loc).first_column, \
1098
(Loc).last_line, (Loc).last_column)
1100
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1105
/* YYLEX -- calling `yylex' with the right arguments. */
1108
# define YYLEX yylex (YYLEX_PARAM)
1110
# define YYLEX yylex ()
1113
/* Enable debugging if requested. */
1117
# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1118
# define YYFPRINTF fprintf
1121
# define YYDPRINTF(Args) \
1127
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
1131
YYFPRINTF (stderr, "%s ", Title); \
1132
yysymprint (stderr, \
1134
YYFPRINTF (stderr, "\n"); \
1138
/*------------------------------------------------------------------.
1139
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
1141
`------------------------------------------------------------------*/
1143
#if defined (__STDC__) || defined (__cplusplus)
1145
yy_stack_print (short int *bottom, short int *top)
1148
yy_stack_print (bottom, top)
1153
YYFPRINTF (stderr, "Stack now");
1154
for (/* Nothing. */; bottom <= top; ++bottom)
1155
YYFPRINTF (stderr, " %d", *bottom);
1156
YYFPRINTF (stderr, "\n");
1159
# define YY_STACK_PRINT(Bottom, Top) \
1162
yy_stack_print ((Bottom), (Top)); \
1166
/*------------------------------------------------.
1167
| Report that the YYRULE is going to be reduced. |
1168
`------------------------------------------------*/
1170
#if defined (__STDC__) || defined (__cplusplus)
1172
yy_reduce_print (int yyrule)
1175
yy_reduce_print (yyrule)
1180
unsigned int yylno = yyrline[yyrule];
1181
YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
1183
/* Print the symbols being reduced, and their result. */
1184
for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
1185
YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
1186
YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
1189
# define YY_REDUCE_PRINT(Rule) \
1192
yy_reduce_print (Rule); \
1195
/* Nonzero means print parse trace. It is left uninitialized so that
1196
multiple parsers can coexist. */
1198
#else /* !YYDEBUG */
1199
# define YYDPRINTF(Args)
1200
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1201
# define YY_STACK_PRINT(Bottom, Top)
1202
# define YY_REDUCE_PRINT(Rule)
1203
#endif /* !YYDEBUG */
1206
/* YYINITDEPTH -- initial size of the parser's stacks. */
1208
# define YYINITDEPTH 200
1211
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1212
if the built-in stack extension method is used).
1214
Do not make this value too large; the results are undefined if
1215
SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
1216
evaluated with infinite-precision integer arithmetic. */
1219
# define YYMAXDEPTH 10000
1227
# if defined (__GLIBC__) && defined (_STRING_H)
1228
# define yystrlen strlen
1230
/* Return the length of YYSTR. */
1232
# if defined (__STDC__) || defined (__cplusplus)
1233
yystrlen (const char *yystr)
1239
register const char *yys = yystr;
1241
while (*yys++ != '\0')
1244
return yys - yystr - 1;
1250
# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1251
# define yystpcpy stpcpy
1253
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1256
# if defined (__STDC__) || defined (__cplusplus)
1257
yystpcpy (char *yydest, const char *yysrc)
1259
yystpcpy (yydest, yysrc)
1264
register char *yyd = yydest;
1265
register const char *yys = yysrc;
1267
while ((*yyd++ = *yys++) != '\0')
1275
#endif /* !YYERROR_VERBOSE */
1280
/*--------------------------------.
1281
| Print this symbol on YYOUTPUT. |
1282
`--------------------------------*/
1284
#if defined (__STDC__) || defined (__cplusplus)
1286
yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
1289
yysymprint (yyoutput, yytype, yyvaluep)
1295
/* Pacify ``unused variable'' warnings. */
1298
if (yytype < YYNTOKENS)
1299
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
1301
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
1305
if (yytype < YYNTOKENS)
1306
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1313
YYFPRINTF (yyoutput, ")");
1316
#endif /* ! YYDEBUG */
1317
/*-----------------------------------------------.
1318
| Release the memory associated to this symbol. |
1319
`-----------------------------------------------*/
1321
#if defined (__STDC__) || defined (__cplusplus)
1323
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1326
yydestruct (yymsg, yytype, yyvaluep)
1332
/* Pacify ``unused variable'' warnings. */
1337
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1348
/* Prevent warnings from -Wmissing-prototypes. */
1350
#ifdef YYPARSE_PARAM
1351
# if defined (__STDC__) || defined (__cplusplus)
1352
UNIV_INTERN int yyparse (void *YYPARSE_PARAM);
1354
UNIV_INTERN int yyparse ();
1356
#else /* ! YYPARSE_PARAM */
1357
#if defined (__STDC__) || defined (__cplusplus)
1358
UNIV_INTERN int yyparse (void);
1360
UNIV_INTERN int yyparse ();
1362
#endif /* ! YYPARSE_PARAM */
1366
/* The look-ahead symbol. */
1369
/* The semantic value of the look-ahead symbol. */
1370
UNIV_INTERN YYSTYPE yylval;
1372
/* Number of syntax errors so far. */
1381
#ifdef YYPARSE_PARAM
1382
# if defined (__STDC__) || defined (__cplusplus)
1383
UNIV_INTERN int yyparse (void *YYPARSE_PARAM)
1385
UNIV_INTERN int yyparse (YYPARSE_PARAM)
1386
void *YYPARSE_PARAM;
1388
#else /* ! YYPARSE_PARAM */
1389
#if defined (__STDC__) || defined (__cplusplus)
1400
register int yystate;
1403
/* Number of tokens to shift before error messages enabled. */
1405
/* Look-ahead token as an internal (translated) token number. */
1408
/* Three stacks and their tools:
1409
`yyss': related to states,
1410
`yyvs': related to semantic values,
1411
`yyls': related to locations.
1413
Refer to the stacks thru separate pointers, to allow yyoverflow
1414
to reallocate them elsewhere. */
1416
/* The state stack. */
1417
short int yyssa[YYINITDEPTH];
1418
short int *yyss = yyssa;
1419
register short int *yyssp;
1421
/* The semantic value stack. */
1422
YYSTYPE yyvsa[YYINITDEPTH];
1423
YYSTYPE *yyvs = yyvsa;
1424
register YYSTYPE *yyvsp;
1428
#define YYPOPSTACK (yyvsp--, yyssp--)
1430
YYSIZE_T yystacksize = YYINITDEPTH;
1432
/* The variables used to return semantic value and location from the
1437
/* When reducing, the number of symbols on the RHS of the reduced
1441
YYDPRINTF ((stderr, "Starting parse\n"));
1446
yychar = YYEMPTY; /* Cause a token to be read. */
1448
/* Initialize stack pointers.
1449
Waste one element of value and location stack
1450
so that they stay on the same level as the state stack.
1451
The wasted elements are never initialized. */
1461
/*------------------------------------------------------------.
1462
| yynewstate -- Push a new state, which is found in yystate. |
1463
`------------------------------------------------------------*/
1465
/* In all cases, when you get here, the value and location stacks
1466
have just been pushed. so pushing a state here evens the stacks.
1473
if (yyss + yystacksize - 1 <= yyssp)
1475
/* Get the current used size of the three stacks, in elements. */
1476
YYSIZE_T yysize = yyssp - yyss + 1;
1480
/* Give user a chance to reallocate the stack. Use copies of
1481
these so that the &'s don't force the real ones into
1483
YYSTYPE *yyvs1 = yyvs;
1484
short int *yyss1 = yyss;
1487
/* Each stack pointer address is followed by the size of the
1488
data in use in that stack, in bytes. This used to be a
1489
conditional around just the two extra args, but that might
1490
be undefined if yyoverflow is a macro. */
1491
yyoverflow ("parser stack overflow",
1492
&yyss1, yysize * sizeof (*yyssp),
1493
&yyvs1, yysize * sizeof (*yyvsp),
1500
#else /* no yyoverflow */
1501
# ifndef YYSTACK_RELOCATE
1504
/* Extend the stack our own way. */
1505
if (YYMAXDEPTH <= yystacksize)
1508
if (YYMAXDEPTH < yystacksize)
1509
yystacksize = YYMAXDEPTH;
1512
short int *yyss1 = yyss;
1513
union yyalloc *yyptr =
1514
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1517
YYSTACK_RELOCATE (yyss);
1518
YYSTACK_RELOCATE (yyvs);
1520
# undef YYSTACK_RELOCATE
1522
YYSTACK_FREE (yyss1);
1525
#endif /* no yyoverflow */
1527
yyssp = yyss + yysize - 1;
1528
yyvsp = yyvs + yysize - 1;
1531
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1532
(unsigned long int) yystacksize));
1534
if (yyss + yystacksize - 1 <= yyssp)
1538
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1547
/* Do appropriate processing given the current state. */
1548
/* Read a look-ahead token if we need one and don't already have one. */
1551
/* First try to decide what to do without reference to look-ahead token. */
1553
yyn = yypact[yystate];
1554
if (yyn == YYPACT_NINF)
1557
/* Not known => get a look-ahead token if don't already have one. */
1559
/* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
1560
if (yychar == YYEMPTY)
1562
YYDPRINTF ((stderr, "Reading a token: "));
1566
if (yychar <= YYEOF)
1568
yychar = yytoken = YYEOF;
1569
YYDPRINTF ((stderr, "Now at end of input.\n"));
1573
yytoken = YYTRANSLATE (yychar);
1574
YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1577
/* If the proper action on seeing token YYTOKEN is to reduce or to
1578
detect an error, take that action. */
1580
if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1585
if (yyn == 0 || yyn == YYTABLE_NINF)
1594
/* Shift the look-ahead token. */
1595
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1597
/* Discard the token being shifted unless it is eof. */
1598
if (yychar != YYEOF)
1604
/* Count tokens shifted since error; after three, turn off error
1613
/*-----------------------------------------------------------.
1614
| yydefault -- do the default action for the current state. |
1615
`-----------------------------------------------------------*/
1617
yyn = yydefact[yystate];
1623
/*-----------------------------.
1624
| yyreduce -- Do a reduction. |
1625
`-----------------------------*/
1627
/* yyn is the number of a rule to reduce with. */
1630
/* If YYLEN is nonzero, implement the default value of the action:
1633
Otherwise, the following line sets YYVAL to garbage.
1634
This behavior is undocumented and Bison
1635
users should not rely upon it. Assigning to YYVAL
1636
unconditionally makes the parser a bit smaller, and it avoids a
1637
GCC warning that YYVAL may be used uninitialized. */
1638
yyval = yyvsp[1-yylen];
1641
YY_REDUCE_PRINT (yyn);
1645
#line 166 "pars0grm.y"
1646
{ (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
1650
#line 168 "pars0grm.y"
1651
{ (yyval) = que_node_list_add_last((yyvsp[-1]), (yyvsp[0])); ;}
1655
#line 172 "pars0grm.y"
1656
{ (yyval) = (yyvsp[0]);;}
1660
#line 174 "pars0grm.y"
1661
{ (yyval) = pars_func((yyvsp[-3]), (yyvsp[-1])); ;}
1665
#line 175 "pars0grm.y"
1666
{ (yyval) = (yyvsp[0]);;}
1670
#line 176 "pars0grm.y"
1671
{ (yyval) = (yyvsp[0]);;}
1675
#line 177 "pars0grm.y"
1676
{ (yyval) = (yyvsp[0]);;}
1680
#line 178 "pars0grm.y"
1681
{ (yyval) = (yyvsp[0]);;}
1685
#line 179 "pars0grm.y"
1686
{ (yyval) = (yyvsp[0]);;}
1690
#line 180 "pars0grm.y"
1691
{ (yyval) = (yyvsp[0]);;}
1695
#line 181 "pars0grm.y"
1696
{ (yyval) = (yyvsp[0]);;}
1700
#line 182 "pars0grm.y"
1701
{ (yyval) = pars_op('+', (yyvsp[-2]), (yyvsp[0])); ;}
1705
#line 183 "pars0grm.y"
1706
{ (yyval) = pars_op('-', (yyvsp[-2]), (yyvsp[0])); ;}
1710
#line 184 "pars0grm.y"
1711
{ (yyval) = pars_op('*', (yyvsp[-2]), (yyvsp[0])); ;}
1715
#line 185 "pars0grm.y"
1716
{ (yyval) = pars_op('/', (yyvsp[-2]), (yyvsp[0])); ;}
1720
#line 186 "pars0grm.y"
1721
{ (yyval) = pars_op('-', (yyvsp[0]), NULL); ;}
1725
#line 187 "pars0grm.y"
1726
{ (yyval) = (yyvsp[-1]); ;}
1730
#line 188 "pars0grm.y"
1731
{ (yyval) = pars_op('=', (yyvsp[-2]), (yyvsp[0])); ;}
1735
#line 189 "pars0grm.y"
1736
{ (yyval) = pars_op('<', (yyvsp[-2]), (yyvsp[0])); ;}
1740
#line 190 "pars0grm.y"
1741
{ (yyval) = pars_op('>', (yyvsp[-2]), (yyvsp[0])); ;}
1745
#line 191 "pars0grm.y"
1746
{ (yyval) = pars_op(PARS_GE_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
1750
#line 192 "pars0grm.y"
1751
{ (yyval) = pars_op(PARS_LE_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
1755
#line 193 "pars0grm.y"
1756
{ (yyval) = pars_op(PARS_NE_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
1760
#line 194 "pars0grm.y"
1761
{ (yyval) = pars_op(PARS_AND_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
1765
#line 195 "pars0grm.y"
1766
{ (yyval) = pars_op(PARS_OR_TOKEN, (yyvsp[-2]), (yyvsp[0])); ;}
1770
#line 196 "pars0grm.y"
1771
{ (yyval) = pars_op(PARS_NOT_TOKEN, (yyvsp[0]), NULL); ;}
1775
#line 198 "pars0grm.y"
1776
{ (yyval) = pars_op(PARS_NOTFOUND_TOKEN, (yyvsp[-2]), NULL); ;}
1780
#line 200 "pars0grm.y"
1781
{ (yyval) = pars_op(PARS_NOTFOUND_TOKEN, (yyvsp[-2]), NULL); ;}
1785
#line 204 "pars0grm.y"
1786
{ (yyval) = &pars_to_char_token; ;}
1790
#line 205 "pars0grm.y"
1791
{ (yyval) = &pars_to_number_token; ;}
1795
#line 206 "pars0grm.y"
1796
{ (yyval) = &pars_to_binary_token; ;}
1800
#line 208 "pars0grm.y"
1801
{ (yyval) = &pars_binary_to_number_token; ;}
1805
#line 209 "pars0grm.y"
1806
{ (yyval) = &pars_substr_token; ;}
1810
#line 210 "pars0grm.y"
1811
{ (yyval) = &pars_concat_token; ;}
1815
#line 211 "pars0grm.y"
1816
{ (yyval) = &pars_instr_token; ;}
1820
#line 212 "pars0grm.y"
1821
{ (yyval) = &pars_length_token; ;}
1825
#line 213 "pars0grm.y"
1826
{ (yyval) = &pars_sysdate_token; ;}
1830
#line 214 "pars0grm.y"
1831
{ (yyval) = &pars_rnd_token; ;}
1835
#line 215 "pars0grm.y"
1836
{ (yyval) = &pars_rnd_str_token; ;}
1840
#line 226 "pars0grm.y"
1841
{ (yyval) = pars_stored_procedure_call((yyvsp[-4])); ;}
1845
#line 231 "pars0grm.y"
1846
{ (yyval) = pars_procedure_call((yyvsp[-3]), (yyvsp[-1])); ;}
1850
#line 235 "pars0grm.y"
1851
{ (yyval) = &pars_replstr_token; ;}
1855
#line 236 "pars0grm.y"
1856
{ (yyval) = &pars_printf_token; ;}
1860
#line 237 "pars0grm.y"
1861
{ (yyval) = &pars_assert_token; ;}
1865
#line 241 "pars0grm.y"
1866
{ (yyval) = (yyvsp[-2]); ;}
1870
#line 245 "pars0grm.y"
1871
{ (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
1875
#line 247 "pars0grm.y"
1876
{ (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
1880
#line 251 "pars0grm.y"
1881
{ (yyval) = NULL; ;}
1885
#line 252 "pars0grm.y"
1886
{ (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
1890
#line 254 "pars0grm.y"
1891
{ (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
1895
#line 258 "pars0grm.y"
1896
{ (yyval) = NULL; ;}
1900
#line 259 "pars0grm.y"
1901
{ (yyval) = que_node_list_add_last(NULL, (yyvsp[0]));;}
1905
#line 260 "pars0grm.y"
1906
{ (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
1910
#line 264 "pars0grm.y"
1911
{ (yyval) = (yyvsp[0]); ;}
1915
#line 266 "pars0grm.y"
1916
{ (yyval) = pars_func(&pars_count_token,
1917
que_node_list_add_last(NULL,
1918
sym_tab_add_int_lit(
1919
pars_sym_tab_global, 1))); ;}
1923
#line 271 "pars0grm.y"
1924
{ (yyval) = pars_func(&pars_count_token,
1925
que_node_list_add_last(NULL,
1926
pars_func(&pars_distinct_token,
1927
que_node_list_add_last(
1928
NULL, (yyvsp[-1]))))); ;}
1932
#line 277 "pars0grm.y"
1933
{ (yyval) = pars_func(&pars_sum_token,
1934
que_node_list_add_last(NULL,
1939
#line 283 "pars0grm.y"
1940
{ (yyval) = NULL; ;}
1944
#line 284 "pars0grm.y"
1945
{ (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
1949
#line 286 "pars0grm.y"
1950
{ (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
1954
#line 290 "pars0grm.y"
1955
{ (yyval) = pars_select_list(&pars_star_denoter,
1960
#line 293 "pars0grm.y"
1961
{ (yyval) = pars_select_list((yyvsp[-2]), (yyvsp[0])); ;}
1965
#line 294 "pars0grm.y"
1966
{ (yyval) = pars_select_list((yyvsp[0]), NULL); ;}
1970
#line 298 "pars0grm.y"
1971
{ (yyval) = NULL; ;}
1975
#line 299 "pars0grm.y"
1976
{ (yyval) = (yyvsp[0]); ;}
1980
#line 303 "pars0grm.y"
1981
{ (yyval) = NULL; ;}
1985
#line 305 "pars0grm.y"
1986
{ (yyval) = &pars_update_token; ;}
1990
#line 309 "pars0grm.y"
1991
{ (yyval) = NULL; ;}
1995
#line 311 "pars0grm.y"
1996
{ yyval = &pars_share_token; ;}
2000
#line 315 "pars0grm.y"
2001
{ (yyval) = &pars_asc_token; ;}
2005
#line 316 "pars0grm.y"
2006
{ (yyval) = &pars_asc_token; ;}
2010
#line 317 "pars0grm.y"
2011
{ (yyval) = &pars_desc_token; ;}
2015
#line 321 "pars0grm.y"
2016
{ (yyval) = NULL; ;}
2020
#line 323 "pars0grm.y"
2021
{ (yyval) = pars_order_by((yyvsp[-1]), (yyvsp[0])); ;}
2025
#line 332 "pars0grm.y"
2026
{ (yyval) = pars_select_statement((yyvsp[-6]), (yyvsp[-4]), (yyvsp[-3]),
2027
(yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); ;}
2031
#line 338 "pars0grm.y"
2032
{ (yyval) = (yyvsp[0]); ;}
2036
#line 343 "pars0grm.y"
2037
{ (yyval) = pars_insert_statement((yyvsp[-4]), (yyvsp[-1]), NULL); ;}
2041
#line 345 "pars0grm.y"
2042
{ (yyval) = pars_insert_statement((yyvsp[-1]), NULL, (yyvsp[0])); ;}
2046
#line 349 "pars0grm.y"
2047
{ (yyval) = pars_column_assignment((yyvsp[-2]), (yyvsp[0])); ;}
2051
#line 353 "pars0grm.y"
2052
{ (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
2056
#line 355 "pars0grm.y"
2057
{ (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
2061
#line 361 "pars0grm.y"
2062
{ (yyval) = (yyvsp[0]); ;}
2066
#line 367 "pars0grm.y"
2067
{ (yyval) = pars_update_statement_start(FALSE,
2068
(yyvsp[-2]), (yyvsp[0])); ;}
2072
#line 373 "pars0grm.y"
2073
{ (yyval) = pars_update_statement((yyvsp[-1]), NULL, (yyvsp[0])); ;}
2077
#line 378 "pars0grm.y"
2078
{ (yyval) = pars_update_statement((yyvsp[-1]), (yyvsp[0]), NULL); ;}
2082
#line 383 "pars0grm.y"
2083
{ (yyval) = pars_update_statement_start(TRUE,
2084
(yyvsp[0]), NULL); ;}
2088
#line 389 "pars0grm.y"
2089
{ (yyval) = pars_update_statement((yyvsp[-1]), NULL, (yyvsp[0])); ;}
2093
#line 394 "pars0grm.y"
2094
{ (yyval) = pars_update_statement((yyvsp[-1]), (yyvsp[0]), NULL); ;}
2098
#line 399 "pars0grm.y"
2099
{ (yyval) = pars_row_printf_statement((yyvsp[0])); ;}
2103
#line 404 "pars0grm.y"
2104
{ (yyval) = pars_assignment_statement((yyvsp[-2]), (yyvsp[0])); ;}
2108
#line 410 "pars0grm.y"
2109
{ (yyval) = pars_elsif_element((yyvsp[-2]), (yyvsp[0])); ;}
2113
#line 414 "pars0grm.y"
2114
{ (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
2118
#line 416 "pars0grm.y"
2119
{ (yyval) = que_node_list_add_last((yyvsp[-1]), (yyvsp[0])); ;}
2123
#line 420 "pars0grm.y"
2124
{ (yyval) = NULL; ;}
2128
#line 422 "pars0grm.y"
2129
{ (yyval) = (yyvsp[0]); ;}
2133
#line 423 "pars0grm.y"
2134
{ (yyval) = (yyvsp[0]); ;}
2138
#line 430 "pars0grm.y"
2139
{ (yyval) = pars_if_statement((yyvsp[-5]), (yyvsp[-3]), (yyvsp[-2])); ;}
2143
#line 436 "pars0grm.y"
2144
{ (yyval) = pars_while_statement((yyvsp[-4]), (yyvsp[-2])); ;}
2148
#line 444 "pars0grm.y"
2149
{ (yyval) = pars_for_statement((yyvsp[-8]), (yyvsp[-6]), (yyvsp[-4]), (yyvsp[-2])); ;}
2153
#line 448 "pars0grm.y"
2154
{ (yyval) = pars_exit_statement(); ;}
2158
#line 452 "pars0grm.y"
2159
{ (yyval) = pars_return_statement(); ;}
2163
#line 457 "pars0grm.y"
2164
{ (yyval) = pars_open_statement(
2165
ROW_SEL_OPEN_CURSOR, (yyvsp[0])); ;}
2169
#line 463 "pars0grm.y"
2170
{ (yyval) = pars_open_statement(
2171
ROW_SEL_CLOSE_CURSOR, (yyvsp[0])); ;}
2175
#line 469 "pars0grm.y"
2176
{ (yyval) = pars_fetch_statement((yyvsp[-2]), (yyvsp[0]), NULL); ;}
2180
#line 471 "pars0grm.y"
2181
{ (yyval) = pars_fetch_statement((yyvsp[-2]), NULL, (yyvsp[0])); ;}
2185
#line 476 "pars0grm.y"
2186
{ (yyval) = pars_column_def((yyvsp[-4]), (yyvsp[-3]), (yyvsp[-2]), (yyvsp[-1]), (yyvsp[0])); ;}
2190
#line 480 "pars0grm.y"
2191
{ (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
2195
#line 482 "pars0grm.y"
2196
{ (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
2200
#line 486 "pars0grm.y"
2201
{ (yyval) = NULL; ;}
2205
#line 488 "pars0grm.y"
2206
{ (yyval) = (yyvsp[-1]); ;}
2210
#line 492 "pars0grm.y"
2211
{ (yyval) = NULL; ;}
2215
#line 494 "pars0grm.y"
2216
{ (yyval) = &pars_int_token;
2217
/* pass any non-NULL pointer */ ;}
2221
#line 499 "pars0grm.y"
2222
{ (yyval) = NULL; ;}
2226
#line 501 "pars0grm.y"
2227
{ (yyval) = &pars_int_token;
2228
/* pass any non-NULL pointer */ ;}
2232
#line 506 "pars0grm.y"
2233
{ (yyval) = NULL; ;}
2237
#line 508 "pars0grm.y"
2238
{ (yyval) = &pars_int_token;
2239
/* pass any non-NULL pointer */ ;}
2243
#line 515 "pars0grm.y"
2244
{ (yyval) = pars_create_table((yyvsp[-4]), (yyvsp[-2]), (yyvsp[0])); ;}
2248
#line 519 "pars0grm.y"
2249
{ (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
2253
#line 521 "pars0grm.y"
2254
{ (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
2258
#line 525 "pars0grm.y"
2259
{ (yyval) = NULL; ;}
2263
#line 526 "pars0grm.y"
2264
{ (yyval) = &pars_unique_token; ;}
2268
#line 530 "pars0grm.y"
2269
{ (yyval) = NULL; ;}
2273
#line 531 "pars0grm.y"
2274
{ (yyval) = &pars_clustered_token; ;}
2278
#line 539 "pars0grm.y"
2279
{ (yyval) = pars_create_index((yyvsp[-8]), (yyvsp[-7]), (yyvsp[-5]), (yyvsp[-3]), (yyvsp[-1])); ;}
2283
#line 544 "pars0grm.y"
2284
{ (yyval) = pars_commit_statement(); ;}
2288
#line 549 "pars0grm.y"
2289
{ (yyval) = pars_rollback_statement(); ;}
2293
#line 553 "pars0grm.y"
2294
{ (yyval) = &pars_int_token; ;}
2298
#line 554 "pars0grm.y"
2299
{ (yyval) = &pars_int_token; ;}
2303
#line 555 "pars0grm.y"
2304
{ (yyval) = &pars_char_token; ;}
2308
#line 556 "pars0grm.y"
2309
{ (yyval) = &pars_binary_token; ;}
2313
#line 557 "pars0grm.y"
2314
{ (yyval) = &pars_blob_token; ;}
2318
#line 562 "pars0grm.y"
2319
{ (yyval) = pars_parameter_declaration((yyvsp[-2]),
2320
PARS_INPUT, (yyvsp[0])); ;}
2324
#line 565 "pars0grm.y"
2325
{ (yyval) = pars_parameter_declaration((yyvsp[-2]),
2326
PARS_OUTPUT, (yyvsp[0])); ;}
2330
#line 570 "pars0grm.y"
2331
{ (yyval) = NULL; ;}
2335
#line 571 "pars0grm.y"
2336
{ (yyval) = que_node_list_add_last(NULL, (yyvsp[0])); ;}
2340
#line 573 "pars0grm.y"
2341
{ (yyval) = que_node_list_add_last((yyvsp[-2]), (yyvsp[0])); ;}
2345
#line 578 "pars0grm.y"
2346
{ (yyval) = pars_variable_declaration((yyvsp[-2]), (yyvsp[-1])); ;}
2350
#line 590 "pars0grm.y"
2351
{ (yyval) = pars_cursor_declaration((yyvsp[-3]), (yyvsp[-1])); ;}
2355
#line 595 "pars0grm.y"
2356
{ (yyval) = pars_function_declaration((yyvsp[-1])); ;}
2360
#line 616 "pars0grm.y"
2361
{ (yyval) = pars_procedure_definition((yyvsp[-9]), (yyvsp[-7]),
2368
/* Line 1010 of yacc.c. */
2369
#line 2345 "pars0grm.c"
2375
YY_STACK_PRINT (yyss, yyssp);
2380
/* Now `shift' the result of the reduction. Determine what state
2381
that goes to, based on the state we popped back to and the rule
2382
number reduced by. */
2386
yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2387
if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2388
yystate = yytable[yystate];
2390
yystate = yydefgoto[yyn - YYNTOKENS];
2395
/*------------------------------------.
2396
| yyerrlab -- here on detecting error |
2397
`------------------------------------*/
2399
/* If not already recovering from an error, report this error. */
2404
yyn = yypact[yystate];
2406
if (YYPACT_NINF < yyn && yyn < YYLAST)
2408
YYSIZE_T yysize = 0;
2409
int yytype = YYTRANSLATE (yychar);
2410
const char* yyprefix;
2414
/* Start YYX at -YYN if negative to avoid negative indexes in
2416
int yyxbegin = yyn < 0 ? -yyn : 0;
2418
/* Stay within bounds of both yycheck and yytname. */
2419
int yychecklim = YYLAST - yyn;
2420
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2423
yyprefix = ", expecting ";
2424
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2425
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2427
yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
2435
yysize += (sizeof ("syntax error, unexpected ")
2436
+ yystrlen (yytname[yytype]));
2437
yymsg = (char *) YYSTACK_ALLOC (yysize);
2440
char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
2441
yyp = yystpcpy (yyp, yytname[yytype]);
2445
yyprefix = ", expecting ";
2446
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2447
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
2449
yyp = yystpcpy (yyp, yyprefix);
2450
yyp = yystpcpy (yyp, yytname[yyx]);
2455
YYSTACK_FREE (yymsg);
2458
yyerror ("syntax error; also virtual memory exhausted");
2461
#endif /* YYERROR_VERBOSE */
2462
yyerror ("syntax error");
2467
if (yyerrstatus == 3)
2469
/* If just tried and failed to reuse look-ahead token after an
2470
error, discard it. */
2472
if (yychar <= YYEOF)
2474
/* If at end of input, pop the error token,
2475
then the rest of the stack, then return failure. */
2476
if (yychar == YYEOF)
2483
yydestruct ("Error: popping",
2484
yystos[*yyssp], yyvsp);
2489
yydestruct ("Error: discarding", yytoken, &yylval);
2494
/* Else will try to reuse look-ahead token after shifting the error
2499
/*---------------------------------------------------.
2500
| yyerrorlab -- error raised explicitly by YYERROR. |
2501
`---------------------------------------------------*/
2505
/* Pacify GCC when the user code never invokes YYERROR and the label
2506
yyerrorlab therefore never appears in user code. */
2517
/*-------------------------------------------------------------.
2518
| yyerrlab1 -- common code for both syntax error and YYERROR. |
2519
`-------------------------------------------------------------*/
2521
yyerrstatus = 3; /* Each real token shifted decrements this. */
2525
yyn = yypact[yystate];
2526
if (yyn != YYPACT_NINF)
2529
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2537
/* Pop the current state because it cannot handle the error token. */
2542
yydestruct ("Error: popping", yystos[yystate], yyvsp);
2545
YY_STACK_PRINT (yyss, yyssp);
2554
/* Shift the error token. */
2555
YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
2561
/*-------------------------------------.
2562
| yyacceptlab -- YYACCEPT comes here. |
2563
`-------------------------------------*/
2568
/*-----------------------------------.
2569
| yyabortlab -- YYABORT comes here. |
2570
`-----------------------------------*/
2572
yydestruct ("Error: discarding lookahead",
2579
/*----------------------------------------------.
2580
| yyoverflowlab -- parser overflow comes here. |
2581
`----------------------------------------------*/
2583
yyerror ("parser stack overflow");
2591
YYSTACK_FREE (yyss);
2597
#line 620 "pars0grm.y"