1
/* Driver template for the LEMON parser generator.
2
** The author disclaims copyright to this source code.
4
/* First off, code is include which follows the "include" declaration
5
** in the input file. */
13
** An instance of this structure holds information about the
14
** LIMIT clause of a SELECT statement.
17
int limit; /* The LIMIT value. -1 if there is no limit */
18
int offset; /* The OFFSET. 0 if there is none */
22
** An instance of the following structure describes the event of a
23
** TRIGGER. "a" is the event type, one of TK_UPDATE, TK_INSERT,
24
** TK_DELETE, or TK_INSTEAD. If the event is of the form
28
** Then the "b" IdList records the list "a,b,c".
30
struct TrigEvent { int a; IdList * b; };
34
/* Next is all token values, in a form suitable for use by makeheaders.
35
** This section will be null unless lemon is run with the -m switch.
38
** These constants (all generated automatically by the parser generator)
39
** specify the various kinds of tokens (terminals) that the parser
42
** Each symbol here is a terminal symbol in the grammar.
44
/* Make sure the INTERFACE macro is defined.
49
/* The next thing included is series of defines which control
50
** various aspects of the generated parser.
51
** YYCODETYPE is the data type used for storing terminal
52
** and nonterminal numbers. "unsigned char" is
53
** used if there are fewer than 250 terminals
54
** and nonterminals. "int" is used otherwise.
55
** YYNOCODE is a number of type YYCODETYPE which corresponds
56
** to no legal terminal or nonterminal number. This
57
** number is used to fill in empty slots of the hash
59
** YYFALLBACK If defined, this indicates that one or more tokens
60
** have fall-back values which should be used if the
61
** original value of the token will not parse.
62
** YYACTIONTYPE is the data type used for storing terminal
63
** and nonterminal numbers. "unsigned char" is
64
** used if there are fewer than 250 rules and
65
** states combined. "int" is used otherwise.
66
** sqliteParserTOKENTYPE is the data type used for minor tokens given
67
** directly to the parser from the tokenizer.
68
** YYMINORTYPE is the data type used for all minor tokens.
69
** This is typically a union of many types, one of
70
** which is sqliteParserTOKENTYPE. The entry in the union
71
** for base tokens is called "yy0".
72
** YYSTACKDEPTH is the maximum depth of the parser's stack.
73
** sqliteParserARG_SDECL A static variable declaration for the %extra_argument
74
** sqliteParserARG_PDECL A parameter declaration for the %extra_argument
75
** sqliteParserARG_STORE Code to store %extra_argument into yypParser
76
** sqliteParserARG_FETCH Code to extract %extra_argument from yypParser
77
** YYNSTATE the combined number of states.
78
** YYNRULE the number of rules in the grammar
79
** YYERRORSYMBOL is the code number of the error symbol. If not
80
** defined, then do no error processing.
83
#define YYCODETYPE unsigned char
85
#define YYACTIONTYPE unsigned short int
86
#define sqliteParserTOKENTYPE Token
88
sqliteParserTOKENTYPE yy0;
90
struct LimitVal yy124;
94
struct TrigEvent yy290;
100
struct {int value; int mask;} yy407;
103
#define YYSTACKDEPTH 100
104
#define sqliteParserARG_SDECL Parse *pParse;
105
#define sqliteParserARG_PDECL ,Parse *pParse
106
#define sqliteParserARG_FETCH Parse *pParse = yypParser->pParse
107
#define sqliteParserARG_STORE yypParser->pParse = pParse
110
#define YYERRORSYMBOL 131
111
#define YYERRSYMDT yy441
113
#define YY_NO_ACTION (YYNSTATE+YYNRULE+2)
114
#define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1)
115
#define YY_ERROR_ACTION (YYNSTATE+YYNRULE)
117
/* Next are that tables used to determine what action to take based on the
118
** current state and lookahead token. These tables are used to implement
119
** functions that take a state number and lookahead value and return an
122
** Suppose the action integer is N. Then the action is determined as
125
** 0 <= N < YYNSTATE Shift N. That is, push the lookahead
126
** token onto the stack and goto state N.
128
** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE.
130
** N == YYNSTATE+YYNRULE A syntax error has occurred.
132
** N == YYNSTATE+YYNRULE+1 The parser accepts its input.
134
** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused
135
** slots in the yy_action[] table.
137
** The action table is constructed as a single large table named yy_action[].
138
** Given state S and lookahead X, the action is computed as
140
** yy_action[ yy_shift_ofst[S] + X ]
142
** If the index value yy_shift_ofst[S]+X is out of range or if the value
143
** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S]
144
** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table
145
** and that yy_default[S] should be used instead.
147
** The formula above is for computing the action when the lookahead is
148
** a terminal symbol. If the lookahead is a non-terminal (as occurs after
149
** a reduce action) then the yy_reduce_ofst[] array is used in place of
150
** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of
151
** YY_SHIFT_USE_DFLT.
153
** The following are the tables generated in this section:
155
** yy_action[] A single table containing all actions.
156
** yy_lookahead[] A table containing the lookahead for each entry in
157
** yy_action. Used to detect hash collisions.
158
** yy_shift_ofst[] For each state, the offset into yy_action for
159
** shifting terminals.
160
** yy_reduce_ofst[] For each state, the offset into yy_action for
161
** shifting non-terminals after a reduce.
162
** yy_default[] Default action for each state.
164
static YYACTIONTYPE yy_action[] = {
165
/* 0 */ 264, 5, 262, 119, 123, 117, 121, 129, 131, 133,
166
/* 10 */ 135, 144, 146, 148, 150, 152, 154, 568, 106, 106,
167
/* 20 */ 143, 857, 1, 562, 3, 142, 129, 131, 133, 135,
168
/* 30 */ 144, 146, 148, 150, 152, 154, 174, 103, 8, 115,
169
/* 40 */ 104, 139, 127, 125, 156, 161, 157, 162, 166, 119,
170
/* 50 */ 123, 117, 121, 129, 131, 133, 135, 144, 146, 148,
171
/* 60 */ 150, 152, 154, 31, 361, 392, 263, 143, 363, 369,
172
/* 70 */ 374, 97, 142, 148, 150, 152, 154, 68, 75, 377,
173
/* 80 */ 167, 64, 218, 46, 20, 289, 115, 104, 139, 127,
174
/* 90 */ 125, 156, 161, 157, 162, 166, 119, 123, 117, 121,
175
/* 100 */ 129, 131, 133, 135, 144, 146, 148, 150, 152, 154,
176
/* 110 */ 193, 41, 336, 563, 44, 54, 60, 62, 308, 331,
177
/* 120 */ 175, 20, 560, 561, 572, 333, 640, 18, 359, 144,
178
/* 130 */ 146, 148, 150, 152, 154, 143, 181, 179, 303, 18,
179
/* 140 */ 142, 84, 86, 20, 177, 66, 67, 111, 21, 22,
180
/* 150 */ 112, 105, 83, 792, 115, 104, 139, 127, 125, 156,
181
/* 160 */ 161, 157, 162, 166, 119, 123, 117, 121, 129, 131,
182
/* 170 */ 133, 135, 144, 146, 148, 150, 152, 154, 790, 560,
183
/* 180 */ 561, 46, 13, 113, 183, 21, 22, 534, 361, 2,
184
/* 190 */ 3, 14, 363, 369, 374, 338, 361, 690, 544, 542,
185
/* 200 */ 363, 369, 374, 377, 836, 143, 15, 21, 22, 16,
186
/* 210 */ 142, 377, 44, 54, 60, 62, 308, 331, 396, 535,
187
/* 220 */ 17, 9, 191, 333, 115, 104, 139, 127, 125, 156,
188
/* 230 */ 161, 157, 162, 166, 119, 123, 117, 121, 129, 131,
189
/* 240 */ 133, 135, 144, 146, 148, 150, 152, 154, 571, 230,
190
/* 250 */ 340, 343, 143, 20, 536, 537, 538, 142, 402, 337,
191
/* 260 */ 398, 339, 357, 68, 346, 347, 32, 64, 266, 391,
192
/* 270 */ 37, 115, 104, 139, 127, 125, 156, 161, 157, 162,
193
/* 280 */ 166, 119, 123, 117, 121, 129, 131, 133, 135, 144,
194
/* 290 */ 146, 148, 150, 152, 154, 839, 193, 651, 291, 298,
195
/* 300 */ 300, 221, 357, 43, 173, 689, 175, 251, 330, 36,
196
/* 310 */ 37, 106, 232, 40, 335, 58, 137, 21, 22, 330,
197
/* 320 */ 411, 143, 181, 179, 47, 59, 142, 358, 390, 174,
198
/* 330 */ 177, 66, 67, 111, 448, 49, 112, 105, 583, 213,
199
/* 340 */ 115, 104, 139, 127, 125, 156, 161, 157, 162, 166,
200
/* 350 */ 119, 123, 117, 121, 129, 131, 133, 135, 144, 146,
201
/* 360 */ 148, 150, 152, 154, 306, 301, 106, 249, 259, 113,
202
/* 370 */ 183, 793, 70, 253, 281, 219, 20, 106, 20, 11,
203
/* 380 */ 106, 482, 454, 444, 299, 143, 169, 10, 171, 172,
204
/* 390 */ 142, 169, 73, 171, 172, 103, 688, 69, 174, 169,
205
/* 400 */ 252, 171, 172, 12, 115, 104, 139, 127, 125, 156,
206
/* 410 */ 161, 157, 162, 166, 119, 123, 117, 121, 129, 131,
207
/* 420 */ 133, 135, 144, 146, 148, 150, 152, 154, 95, 237,
208
/* 430 */ 313, 20, 143, 295, 244, 424, 169, 142, 171, 172,
209
/* 440 */ 21, 22, 21, 22, 219, 386, 316, 323, 325, 837,
210
/* 450 */ 19, 115, 104, 139, 127, 125, 156, 161, 157, 162,
211
/* 460 */ 166, 119, 123, 117, 121, 129, 131, 133, 135, 144,
212
/* 470 */ 146, 148, 150, 152, 154, 106, 661, 20, 264, 143,
213
/* 480 */ 262, 844, 315, 169, 142, 171, 172, 333, 38, 842,
214
/* 490 */ 10, 356, 348, 184, 421, 21, 22, 282, 115, 104,
215
/* 500 */ 139, 127, 125, 156, 161, 157, 162, 166, 119, 123,
216
/* 510 */ 117, 121, 129, 131, 133, 135, 144, 146, 148, 150,
217
/* 520 */ 152, 154, 69, 254, 262, 251, 143, 639, 663, 35,
218
/* 530 */ 65, 142, 726, 313, 283, 259, 185, 417, 419, 418,
219
/* 540 */ 284, 21, 22, 690, 263, 115, 104, 139, 127, 125,
220
/* 550 */ 156, 161, 157, 162, 166, 119, 123, 117, 121, 129,
221
/* 560 */ 131, 133, 135, 144, 146, 148, 150, 152, 154, 256,
222
/* 570 */ 20, 791, 424, 143, 169, 52, 171, 172, 142, 169,
223
/* 580 */ 24, 171, 172, 247, 53, 315, 26, 169, 263, 171,
224
/* 590 */ 172, 253, 115, 164, 139, 127, 125, 156, 161, 157,
225
/* 600 */ 162, 166, 119, 123, 117, 121, 129, 131, 133, 135,
226
/* 610 */ 144, 146, 148, 150, 152, 154, 426, 349, 252, 425,
227
/* 620 */ 143, 262, 575, 297, 591, 142, 169, 296, 171, 172,
228
/* 630 */ 169, 471, 171, 172, 21, 22, 427, 221, 91, 115,
229
/* 640 */ 227, 139, 127, 125, 156, 161, 157, 162, 166, 119,
230
/* 650 */ 123, 117, 121, 129, 131, 133, 135, 144, 146, 148,
231
/* 660 */ 150, 152, 154, 388, 312, 106, 89, 143, 720, 376,
232
/* 670 */ 387, 170, 142, 487, 666, 248, 320, 216, 319, 217,
233
/* 680 */ 28, 459, 30, 305, 189, 263, 209, 104, 139, 127,
234
/* 690 */ 125, 156, 161, 157, 162, 166, 119, 123, 117, 121,
235
/* 700 */ 129, 131, 133, 135, 144, 146, 148, 150, 152, 154,
236
/* 710 */ 106, 106, 809, 494, 143, 489, 106, 816, 33, 142,
237
/* 720 */ 395, 234, 273, 217, 274, 420, 20, 545, 114, 481,
238
/* 730 */ 137, 429, 576, 321, 116, 139, 127, 125, 156, 161,
239
/* 740 */ 157, 162, 166, 119, 123, 117, 121, 129, 131, 133,
240
/* 750 */ 135, 144, 146, 148, 150, 152, 154, 7, 322, 23,
241
/* 760 */ 25, 27, 394, 68, 415, 416, 10, 64, 197, 477,
242
/* 770 */ 577, 533, 266, 548, 578, 831, 276, 201, 520, 4,
243
/* 780 */ 6, 245, 430, 557, 29, 266, 491, 106, 441, 497,
244
/* 790 */ 21, 22, 205, 168, 443, 195, 193, 531, 276, 448,
245
/* 800 */ 276, 808, 267, 272, 529, 174, 175, 318, 440, 341,
246
/* 810 */ 344, 106, 342, 345, 69, 286, 68, 582, 69, 69,
247
/* 820 */ 64, 540, 181, 179, 541, 328, 302, 366, 217, 118,
248
/* 830 */ 177, 66, 67, 111, 34, 143, 112, 105, 445, 510,
249
/* 840 */ 142, 215, 278, 800, 467, 276, 498, 503, 444, 193,
250
/* 850 */ 106, 219, 486, 443, 42, 73, 231, 73, 45, 175,
251
/* 860 */ 449, 39, 225, 229, 278, 451, 278, 68, 174, 113,
252
/* 870 */ 183, 64, 371, 55, 106, 181, 179, 292, 69, 276,
253
/* 880 */ 276, 69, 48, 177, 66, 67, 111, 224, 276, 112,
254
/* 890 */ 105, 106, 481, 393, 106, 106, 63, 106, 106, 106,
255
/* 900 */ 193, 653, 106, 467, 233, 51, 380, 437, 526, 120,
256
/* 910 */ 175, 278, 122, 124, 219, 126, 128, 130, 69, 453,
257
/* 920 */ 132, 106, 113, 183, 451, 106, 181, 179, 159, 106,
258
/* 930 */ 106, 106, 518, 106, 177, 66, 67, 111, 106, 134,
259
/* 940 */ 112, 105, 422, 136, 106, 278, 278, 138, 141, 145,
260
/* 950 */ 720, 147, 106, 329, 275, 274, 149, 106, 852, 158,
261
/* 960 */ 106, 106, 151, 106, 106, 351, 106, 352, 106, 464,
262
/* 970 */ 153, 106, 106, 113, 183, 155, 106, 106, 163, 165,
263
/* 980 */ 106, 176, 178, 106, 180, 106, 182, 106, 401, 190,
264
/* 990 */ 192, 106, 106, 293, 210, 212, 106, 367, 214, 274,
265
/* 1000 */ 372, 226, 274, 228, 381, 241, 274, 106, 106, 246,
266
/* 1010 */ 280, 290, 106, 69, 375, 438, 472, 274, 422, 832,
267
/* 1020 */ 106, 73, 474, 73, 458, 412, 462, 480, 464, 478,
268
/* 1030 */ 466, 690, 515, 519, 475, 478, 516, 50, 479, 221,
269
/* 1040 */ 690, 221, 56, 57, 61, 592, 71, 69, 593, 73,
270
/* 1050 */ 72, 74, 245, 242, 93, 81, 76, 69, 77, 240,
271
/* 1060 */ 78, 82, 79, 245, 85, 554, 80, 88, 87, 90,
272
/* 1070 */ 92, 94, 96, 102, 100, 99, 101, 107, 109, 160,
273
/* 1080 */ 154, 667, 98, 508, 108, 668, 110, 220, 211, 669,
274
/* 1090 */ 137, 140, 188, 194, 186, 196, 187, 199, 198, 200,
275
/* 1100 */ 203, 204, 202, 207, 206, 208, 221, 223, 222, 235,
276
/* 1110 */ 236, 239, 238, 217, 250, 258, 243, 261, 279, 270,
277
/* 1120 */ 271, 255, 257, 260, 269, 265, 285, 294, 277, 268,
278
/* 1130 */ 287, 304, 309, 307, 327, 312, 288, 354, 389, 314,
279
/* 1140 */ 364, 365, 370, 378, 379, 382, 310, 49, 311, 362,
280
/* 1150 */ 368, 373, 317, 324, 326, 332, 350, 355, 383, 400,
281
/* 1160 */ 353, 397, 399, 403, 404, 334, 405, 406, 407, 384,
282
/* 1170 */ 413, 409, 824, 414, 360, 385, 829, 423, 410, 431,
283
/* 1180 */ 428, 432, 830, 433, 434, 436, 439, 798, 799, 447,
284
/* 1190 */ 442, 450, 727, 728, 446, 823, 452, 838, 455, 445,
285
/* 1200 */ 456, 457, 408, 435, 460, 461, 463, 840, 465, 468,
286
/* 1210 */ 470, 469, 476, 841, 483, 485, 843, 660, 662, 493,
287
/* 1220 */ 806, 496, 473, 849, 499, 719, 501, 484, 488, 490,
288
/* 1230 */ 492, 502, 504, 495, 500, 507, 505, 506, 509, 722,
289
/* 1240 */ 513, 511, 512, 514, 517, 725, 528, 522, 524, 525,
290
/* 1250 */ 527, 523, 807, 530, 810, 532, 811, 812, 813, 814,
291
/* 1260 */ 817, 819, 539, 820, 818, 815, 521, 543, 546, 552,
292
/* 1270 */ 556, 550, 850, 547, 549, 851, 555, 558, 551, 855,
295
static YYCODETYPE yy_lookahead[] = {
296
/* 0 */ 21, 9, 23, 70, 71, 72, 73, 74, 75, 76,
297
/* 10 */ 77, 78, 79, 80, 81, 82, 83, 9, 140, 140,
298
/* 20 */ 41, 132, 133, 134, 135, 46, 74, 75, 76, 77,
299
/* 30 */ 78, 79, 80, 81, 82, 83, 158, 158, 138, 60,
300
/* 40 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
301
/* 50 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
302
/* 60 */ 81, 82, 83, 19, 90, 21, 87, 41, 94, 95,
303
/* 70 */ 96, 192, 46, 80, 81, 82, 83, 19, 174, 105,
304
/* 80 */ 19, 23, 204, 62, 23, 181, 60, 61, 62, 63,
305
/* 90 */ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
306
/* 100 */ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
307
/* 110 */ 52, 90, 91, 0, 93, 94, 95, 96, 97, 98,
308
/* 120 */ 62, 23, 9, 10, 9, 104, 20, 12, 22, 78,
309
/* 130 */ 79, 80, 81, 82, 83, 41, 78, 79, 80, 12,
310
/* 140 */ 46, 78, 79, 23, 86, 87, 88, 89, 87, 88,
311
/* 150 */ 92, 93, 89, 127, 60, 61, 62, 63, 64, 65,
312
/* 160 */ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
313
/* 170 */ 76, 77, 78, 79, 80, 81, 82, 83, 14, 9,
314
/* 180 */ 10, 62, 15, 125, 126, 87, 88, 140, 90, 134,
315
/* 190 */ 135, 24, 94, 95, 96, 23, 90, 9, 78, 79,
316
/* 200 */ 94, 95, 96, 105, 11, 41, 39, 87, 88, 42,
317
/* 210 */ 46, 105, 93, 94, 95, 96, 97, 98, 17, 99,
318
/* 220 */ 53, 139, 128, 104, 60, 61, 62, 63, 64, 65,
319
/* 230 */ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
320
/* 240 */ 76, 77, 78, 79, 80, 81, 82, 83, 9, 19,
321
/* 250 */ 78, 79, 41, 23, 207, 208, 209, 46, 57, 87,
322
/* 260 */ 59, 89, 140, 19, 92, 93, 144, 23, 152, 147,
323
/* 270 */ 148, 60, 61, 62, 63, 64, 65, 66, 67, 68,
324
/* 280 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
325
/* 290 */ 79, 80, 81, 82, 83, 14, 52, 9, 182, 20,
326
/* 300 */ 20, 113, 140, 156, 20, 20, 62, 22, 161, 147,
327
/* 310 */ 148, 140, 20, 155, 156, 26, 200, 87, 88, 161,
328
/* 320 */ 127, 41, 78, 79, 93, 36, 46, 165, 166, 158,
329
/* 330 */ 86, 87, 88, 89, 53, 104, 92, 93, 9, 128,
330
/* 340 */ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
331
/* 350 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
332
/* 360 */ 80, 81, 82, 83, 20, 194, 140, 183, 184, 125,
333
/* 370 */ 126, 127, 146, 88, 19, 204, 23, 140, 23, 31,
334
/* 380 */ 140, 100, 101, 102, 158, 41, 107, 99, 109, 110,
335
/* 390 */ 46, 107, 111, 109, 110, 158, 20, 171, 158, 107,
336
/* 400 */ 115, 109, 110, 170, 60, 61, 62, 63, 64, 65,
337
/* 410 */ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
338
/* 420 */ 76, 77, 78, 79, 80, 81, 82, 83, 191, 192,
339
/* 430 */ 47, 23, 41, 80, 194, 140, 107, 46, 109, 110,
340
/* 440 */ 87, 88, 87, 88, 204, 62, 100, 101, 102, 11,
341
/* 450 */ 140, 60, 61, 62, 63, 64, 65, 66, 67, 68,
342
/* 460 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
343
/* 470 */ 79, 80, 81, 82, 83, 140, 9, 23, 21, 41,
344
/* 480 */ 23, 9, 99, 107, 46, 109, 110, 104, 149, 9,
345
/* 490 */ 99, 152, 153, 158, 199, 87, 88, 146, 60, 61,
346
/* 500 */ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
347
/* 510 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
348
/* 520 */ 82, 83, 171, 115, 23, 22, 41, 20, 9, 22,
349
/* 530 */ 19, 46, 9, 47, 183, 184, 201, 100, 101, 102,
350
/* 540 */ 189, 87, 88, 19, 87, 60, 61, 62, 63, 64,
351
/* 550 */ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
352
/* 560 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 115,
353
/* 570 */ 23, 14, 140, 41, 107, 34, 109, 110, 46, 107,
354
/* 580 */ 138, 109, 110, 22, 43, 99, 138, 107, 87, 109,
355
/* 590 */ 110, 88, 60, 61, 62, 63, 64, 65, 66, 67,
356
/* 600 */ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
357
/* 610 */ 78, 79, 80, 81, 82, 83, 25, 19, 115, 28,
358
/* 620 */ 41, 23, 9, 108, 113, 46, 107, 112, 109, 110,
359
/* 630 */ 107, 199, 109, 110, 87, 88, 45, 113, 22, 60,
360
/* 640 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
361
/* 650 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
362
/* 660 */ 81, 82, 83, 161, 162, 140, 50, 41, 9, 139,
363
/* 670 */ 168, 108, 46, 17, 111, 114, 91, 20, 93, 22,
364
/* 680 */ 138, 22, 142, 158, 127, 87, 129, 61, 62, 63,
365
/* 690 */ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
366
/* 700 */ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
367
/* 710 */ 140, 140, 9, 57, 41, 59, 140, 9, 145, 46,
368
/* 720 */ 143, 20, 20, 22, 22, 49, 23, 19, 158, 158,
369
/* 730 */ 200, 18, 9, 29, 158, 62, 63, 64, 65, 66,
370
/* 740 */ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
371
/* 750 */ 77, 78, 79, 80, 81, 82, 83, 11, 54, 13,
372
/* 760 */ 14, 15, 16, 19, 55, 56, 99, 23, 15, 198,
373
/* 770 */ 9, 63, 152, 27, 9, 99, 140, 24, 32, 136,
374
/* 780 */ 137, 122, 205, 37, 141, 152, 130, 140, 211, 146,
375
/* 790 */ 87, 88, 39, 146, 146, 42, 52, 51, 140, 53,
376
/* 800 */ 140, 9, 182, 167, 58, 158, 62, 103, 95, 89,
377
/* 810 */ 89, 140, 92, 92, 171, 182, 19, 9, 171, 171,
378
/* 820 */ 23, 89, 78, 79, 92, 167, 20, 167, 22, 158,
379
/* 830 */ 86, 87, 88, 89, 20, 41, 92, 93, 60, 196,
380
/* 840 */ 46, 194, 206, 130, 196, 140, 100, 101, 102, 52,
381
/* 850 */ 140, 204, 106, 146, 140, 111, 146, 111, 139, 62,
382
/* 860 */ 212, 150, 68, 69, 206, 217, 206, 19, 158, 125,
383
/* 870 */ 126, 23, 167, 48, 140, 78, 79, 80, 171, 140,
384
/* 880 */ 140, 171, 139, 86, 87, 88, 89, 93, 140, 92,
385
/* 890 */ 93, 140, 158, 146, 140, 140, 19, 140, 140, 140,
386
/* 900 */ 52, 123, 140, 196, 194, 44, 167, 167, 116, 158,
387
/* 910 */ 62, 206, 158, 158, 204, 158, 158, 158, 171, 212,
388
/* 920 */ 158, 140, 125, 126, 217, 140, 78, 79, 62, 140,
389
/* 930 */ 140, 140, 198, 140, 86, 87, 88, 89, 140, 158,
390
/* 940 */ 92, 93, 22, 158, 140, 206, 206, 158, 158, 158,
391
/* 950 */ 9, 158, 140, 20, 206, 22, 158, 140, 9, 93,
392
/* 960 */ 140, 140, 158, 140, 140, 20, 140, 22, 140, 140,
393
/* 970 */ 158, 140, 140, 125, 126, 158, 140, 140, 158, 158,
394
/* 980 */ 140, 158, 158, 140, 158, 140, 158, 140, 146, 158,
395
/* 990 */ 158, 140, 140, 140, 158, 158, 140, 20, 158, 22,
396
/* 1000 */ 20, 158, 22, 158, 20, 158, 22, 140, 140, 158,
397
/* 1010 */ 158, 158, 140, 171, 158, 20, 20, 22, 22, 99,
398
/* 1020 */ 140, 111, 146, 111, 195, 158, 158, 20, 140, 22,
399
/* 1030 */ 158, 103, 146, 20, 124, 22, 124, 164, 158, 113,
400
/* 1040 */ 114, 113, 157, 139, 139, 113, 172, 171, 113, 111,
401
/* 1050 */ 171, 173, 122, 119, 117, 180, 175, 171, 176, 120,
402
/* 1060 */ 177, 121, 178, 122, 89, 116, 179, 154, 89, 154,
403
/* 1070 */ 154, 118, 22, 151, 98, 157, 23, 113, 113, 93,
404
/* 1080 */ 83, 111, 193, 195, 140, 111, 140, 140, 127, 111,
405
/* 1090 */ 200, 200, 14, 19, 202, 20, 203, 140, 22, 20,
406
/* 1100 */ 140, 20, 22, 140, 22, 20, 113, 186, 140, 140,
407
/* 1110 */ 186, 157, 193, 22, 185, 115, 118, 186, 99, 116,
408
/* 1120 */ 19, 140, 140, 140, 188, 140, 20, 113, 157, 187,
409
/* 1130 */ 187, 20, 140, 139, 19, 162, 188, 20, 166, 140,
410
/* 1140 */ 48, 19, 19, 48, 19, 97, 159, 104, 160, 140,
411
/* 1150 */ 139, 139, 163, 163, 163, 151, 154, 152, 140, 21,
412
/* 1160 */ 154, 140, 140, 140, 213, 164, 214, 99, 140, 159,
413
/* 1170 */ 40, 215, 11, 38, 166, 160, 99, 140, 216, 130,
414
/* 1180 */ 49, 140, 99, 99, 140, 19, 139, 9, 130, 169,
415
/* 1190 */ 11, 14, 123, 123, 170, 9, 9, 14, 169, 60,
416
/* 1200 */ 140, 103, 186, 186, 140, 63, 176, 9, 63, 123,
417
/* 1210 */ 19, 140, 19, 9, 114, 176, 9, 9, 9, 186,
418
/* 1220 */ 9, 186, 197, 9, 114, 9, 186, 140, 140, 140,
419
/* 1230 */ 140, 176, 169, 140, 140, 103, 140, 186, 176, 9,
420
/* 1240 */ 186, 123, 140, 197, 19, 9, 87, 140, 114, 140,
421
/* 1250 */ 35, 186, 9, 140, 9, 152, 9, 9, 9, 9,
422
/* 1260 */ 9, 9, 210, 9, 9, 9, 169, 210, 140, 140,
423
/* 1270 */ 33, 152, 9, 20, 218, 9, 152, 218, 21, 9,
426
#define YY_SHIFT_USE_DFLT (-68)
427
static short yy_shift_ofst[] = {
428
/* 0 */ 170, 113, -68, 746, -8, -68, 8, 127, 288, 239,
429
/* 10 */ 348, 167, -68, -68, -68, -68, -68, -68, 547, -68,
430
/* 20 */ -68, -68, -68, 115, 613, 115, 723, 115, 761, 44,
431
/* 30 */ 765, 547, 507, 814, 808, 98, -68, 501, -68, 21,
432
/* 40 */ -68, 547, 119, -68, 667, -68, 231, 667, -68, 861,
433
/* 50 */ -68, 541, -68, -68, 825, 289, 667, -68, -68, -68,
434
/* 60 */ 667, -68, 877, 848, 511, 58, 932, 935, 744, -68,
435
/* 70 */ 279, 938, -68, 515, -68, 561, 930, 934, 939, 937,
436
/* 80 */ 940, -68, 63, -68, 975, -68, 979, -68, 616, 63,
437
/* 90 */ -68, 63, -68, 953, 848, 1050, 848, 976, 289, -68,
438
/* 100 */ 1053, -68, -68, 485, 848, -68, 964, 547, 965, 547,
439
/* 110 */ -68, -68, -68, -68, 673, 848, 626, 848, -48, 848,
440
/* 120 */ -48, 848, -48, 848, -48, 848, -67, 848, -67, 848,
441
/* 130 */ 51, 848, 51, 848, 51, 848, 51, 848, -67, 794,
442
/* 140 */ 848, -67, -68, -68, 848, -7, 848, -7, 848, 997,
443
/* 150 */ 848, 997, 848, 997, 848, -68, -68, 866, -68, 986,
444
/* 160 */ -68, -68, 848, 532, 848, -67, 61, 744, 284, 563,
445
/* 170 */ 970, 974, 978, -68, 485, 848, 673, 848, -68, 848,
446
/* 180 */ -68, 848, -68, 244, 26, 961, 557, 1078, -68, 848,
447
/* 190 */ 94, 848, 485, 1074, 753, 1075, -68, 1076, 547, 1079,
448
/* 200 */ -68, 1080, 547, 1081, -68, 1082, 547, 1085, -68, 848,
449
/* 210 */ 164, 848, 211, 848, 485, 657, -68, 848, -68, -68,
450
/* 220 */ 993, 547, -68, -68, -68, 848, 579, 848, 673, 230,
451
/* 230 */ 744, 292, -68, 701, -68, 993, -68, 976, 289, -68,
452
/* 240 */ 848, 485, 998, 848, 1091, 848, 485, -68, -68, 503,
453
/* 250 */ -68, -68, -68, 408, -68, 454, -68, 1000, -68, 355,
454
/* 260 */ 993, 457, -68, -68, 547, -68, -68, 1019, 1003, -68,
455
/* 270 */ 1101, 547, 702, -68, 547, -68, 289, -68, -68, 848,
456
/* 280 */ 485, 938, 376, 285, 1106, 457, 1019, 1003, -68, 797,
457
/* 290 */ -21, -68, -68, 1014, 353, -68, -68, -68, -68, 280,
458
/* 300 */ -68, 806, -68, 1111, -68, 344, 667, -68, 547, 1115,
459
/* 310 */ -68, 486, -68, 547, -68, 346, 704, -68, 585, -68,
460
/* 320 */ -68, -68, -68, 704, -68, 704, -68, 547, 933, -68,
461
/* 330 */ -68, 1053, -68, 861, -68, -68, 172, -68, -68, -68,
462
/* 340 */ 720, -68, -68, 721, -68, -68, -68, -68, 598, 63,
463
/* 350 */ 945, -68, 63, 1117, -68, -68, -68, -68, 106, -26,
464
/* 360 */ -68, 547, -68, 1092, 1122, 547, 977, 667, -68, 1123,
465
/* 370 */ 547, 980, 667, -68, 848, 391, -68, 1095, 1125, 547,
466
/* 380 */ 984, 1048, 547, 1115, -68, 383, 1043, -68, -68, -68,
467
/* 390 */ -68, -68, 938, 329, 713, 201, 547, -68, 547, 1138,
468
/* 400 */ 938, 467, 547, 591, 437, 1068, 547, 993, 1130, 193,
469
/* 410 */ 1161, 848, 438, 1135, 709, -68, -68, 1077, 1083, 676,
470
/* 420 */ 547, 920, 547, -68, -68, -68, -68, 1131, -68, -68,
471
/* 430 */ 1049, 547, 1084, 547, 524, 1166, 547, 995, 288, 1178,
472
/* 440 */ 1058, 1179, 281, 472, 778, 167, -68, 1069, 1070, 1177,
473
/* 450 */ 1186, 1187, 281, 1183, 1139, 547, 1098, 547, 659, 547,
474
/* 460 */ 1142, 848, 485, 1198, 1145, 848, 485, 1086, 547, 1191,
475
/* 470 */ 547, 996, -68, 910, 480, 1193, 848, 1007, 848, 485,
476
/* 480 */ 1204, 485, 1100, 547, 941, 1207, 656, 547, 1208, 547,
477
/* 490 */ 1209, 547, 188, 1211, 547, 188, 1214, 519, 1110, 547,
478
/* 500 */ 993, 941, 1216, 1139, 547, 928, 1132, 547, 659, 1230,
479
/* 510 */ 1118, 547, 993, 1191, 912, 523, 1225, 848, 1013, 1236,
480
/* 520 */ 1139, 547, 926, 1134, 547, 792, 1215, 1159, 1243, 703,
481
/* 530 */ 1245, 501, 708, 120, 1247, 1248, 1249, 1250, 732, 1251,
482
/* 540 */ 1252, 1254, 732, 1255, -68, 547, 1253, 1256, 1237, 501,
483
/* 550 */ 1257, 547, 949, 1263, 501, 1266, -68, 1237, 547, 1270,
484
/* 560 */ -68, -68, -68,
486
#define YY_REDUCE_USE_DFLT (-123)
487
static short yy_reduce_ofst[] = {
488
/* 0 */ -111, 55, -123, 643, -123, -123, -123, -100, 82, -123,
489
/* 10 */ -123, 233, -123, -123, -123, -123, -123, -123, 310, -123,
490
/* 20 */ -123, -123, -123, 442, -123, 448, -123, 542, -123, 540,
491
/* 30 */ -123, 122, 573, -123, -123, 162, -123, 339, 711, 158,
492
/* 40 */ -123, 714, 147, -123, 719, -123, -123, 743, -123, 873,
493
/* 50 */ -123, -123, -123, -123, -123, 885, 904, -123, -123, -123,
494
/* 60 */ 905, -123, -123, 525, -123, 171, -123, -123, 226, -123,
495
/* 70 */ 874, 879, -123, 878, -96, 881, 882, 883, 884, 887,
496
/* 80 */ 875, -123, 913, -123, -123, -123, -123, -123, -123, 915,
497
/* 90 */ -123, 916, -123, -123, 237, -123, -121, 889, 918, -123,
498
/* 100 */ 922, -123, -123, 890, 570, -123, -123, 944, -123, 946,
499
/* 110 */ -123, -123, -123, -123, 890, 576, 890, 671, 890, 751,
500
/* 120 */ 890, 754, 890, 755, 890, 757, 890, 758, 890, 759,
501
/* 130 */ 890, 762, 890, 781, 890, 785, 890, 789, 890, 891,
502
/* 140 */ 790, 890, -123, -123, 791, 890, 793, 890, 798, 890,
503
/* 150 */ 804, 890, 812, 890, 817, 890, -123, -123, -123, -123,
504
/* 160 */ -123, -123, 820, 890, 821, 890, 947, 647, 874, -123,
505
/* 170 */ -123, -123, -123, -123, 890, 823, 890, 824, 890, 826,
506
/* 180 */ 890, 828, 890, 335, 890, 892, 893, -123, -123, 831,
507
/* 190 */ 890, 832, 890, -123, -123, -123, -123, -123, 957, -123,
508
/* 200 */ -123, -123, 960, -123, -123, -123, 963, -123, -123, 836,
509
/* 210 */ 890, 837, 890, 840, 890, -123, -123, -122, -123, -123,
510
/* 220 */ 921, 968, -123, -123, -123, 843, 890, 845, 890, 969,
511
/* 230 */ 710, 874, -123, -123, -123, 924, -123, 919, 954, -123,
512
/* 240 */ 847, 890, -123, 240, -123, 851, 890, -123, 184, 929,
513
/* 250 */ -123, -123, -123, 981, -123, 982, -123, -123, -123, 983,
514
/* 260 */ 931, 620, -123, -123, 985, -123, -123, 942, 936, -123,
515
/* 270 */ -123, 636, -123, -123, 748, -123, 971, -123, -123, 852,
516
/* 280 */ 890, 351, 874, 929, -123, 633, 943, 948, -123, 853,
517
/* 290 */ 116, -123, -123, -123, 944, -123, -123, -123, -123, 890,
518
/* 300 */ -123, -123, -123, -123, -123, 890, 994, -123, 992, 987,
519
/* 310 */ 988, 973, -123, 999, -123, -123, 989, -123, -123, -123,
520
/* 320 */ -123, -123, -123, 990, -123, 991, -123, 658, -123, -123,
521
/* 330 */ -123, 1004, -123, 1001, -123, -123, -123, -123, -123, -123,
522
/* 340 */ -123, -123, -123, -123, -123, -123, -123, -123, 1005, 1002,
523
/* 350 */ -123, -123, 1006, -123, -123, -123, -123, -123, 972, 1008,
524
/* 360 */ -123, 1009, -123, -123, -123, 660, -123, 1011, -123, -123,
525
/* 370 */ 705, -123, 1012, -123, 856, 530, -123, -123, -123, 739,
526
/* 380 */ -123, -123, 1018, 1010, 1015, 502, -123, -123, -123, -123,
527
/* 390 */ -123, -123, 747, 874, 577, -123, 1021, -123, 1022, -123,
528
/* 400 */ 842, 874, 1023, 951, 952, -123, 1028, 1016, 956, 962,
529
/* 410 */ -123, 867, 890, -123, -123, -123, -123, -123, -123, -123,
530
/* 420 */ 295, -123, 1037, -123, -123, -123, -123, -123, -123, -123,
531
/* 430 */ -123, 1041, -123, 1044, 1017, -123, 740, -123, 1047, -123,
532
/* 440 */ -123, -123, 648, 874, 1020, 1024, -123, -123, -123, -123,
533
/* 450 */ -123, -123, 707, -123, 1029, 1060, -123, 829, 1030, 1064,
534
/* 460 */ -123, 868, 890, -123, -123, 872, 890, -123, 1071, 1025,
535
/* 470 */ 432, -123, -123, 876, 874, -123, 571, -123, 880, 890,
536
/* 480 */ -123, 890, -123, 1087, 1039, -123, -123, 1088, -123, 1089,
537
/* 490 */ -123, 1090, 1033, -123, 1093, 1035, -123, 874, -123, 1094,
538
/* 500 */ 1040, 1055, -123, 1063, 1096, 1051, -123, 888, 1062, -123,
539
/* 510 */ -123, 1102, 1054, 1046, 886, 874, -123, 734, -123, -123,
540
/* 520 */ 1097, 1107, 1065, -123, 1109, -123, -123, -123, -123, 1113,
541
/* 530 */ -123, 1103, -123, 47, -123, -123, -123, -123, 1052, -123,
542
/* 540 */ -123, -123, 1057, -123, -123, 1128, -123, -123, 1056, 1119,
543
/* 550 */ -123, 1129, 1061, -123, 1124, -123, -123, 1059, 1141, -123,
544
/* 560 */ -123, -123, -123,
546
static YYACTIONTYPE yy_default[] = {
547
/* 0 */ 570, 570, 564, 856, 856, 566, 856, 572, 856, 856,
548
/* 10 */ 856, 856, 652, 655, 656, 657, 658, 659, 573, 574,
549
/* 20 */ 591, 592, 593, 856, 856, 856, 856, 856, 856, 856,
550
/* 30 */ 856, 856, 856, 856, 856, 856, 584, 594, 604, 586,
551
/* 40 */ 603, 856, 856, 605, 651, 616, 856, 651, 617, 636,
552
/* 50 */ 634, 856, 637, 638, 856, 708, 651, 618, 706, 707,
553
/* 60 */ 651, 619, 856, 856, 737, 797, 743, 738, 856, 664,
554
/* 70 */ 856, 856, 665, 673, 675, 682, 720, 711, 713, 701,
555
/* 80 */ 715, 670, 856, 600, 856, 601, 856, 602, 716, 856,
556
/* 90 */ 717, 856, 718, 856, 856, 702, 856, 709, 708, 703,
557
/* 100 */ 856, 588, 710, 705, 856, 736, 856, 856, 739, 856,
558
/* 110 */ 740, 741, 742, 744, 747, 856, 748, 856, 749, 856,
559
/* 120 */ 750, 856, 751, 856, 752, 856, 753, 856, 754, 856,
560
/* 130 */ 755, 856, 756, 856, 757, 856, 758, 856, 759, 856,
561
/* 140 */ 856, 760, 761, 762, 856, 763, 856, 764, 856, 765,
562
/* 150 */ 856, 766, 856, 767, 856, 768, 769, 856, 770, 856,
563
/* 160 */ 773, 771, 856, 856, 856, 779, 856, 797, 856, 856,
564
/* 170 */ 856, 856, 856, 782, 796, 856, 774, 856, 775, 856,
565
/* 180 */ 776, 856, 777, 856, 856, 856, 856, 856, 787, 856,
566
/* 190 */ 856, 856, 788, 856, 856, 856, 845, 856, 856, 856,
567
/* 200 */ 846, 856, 856, 856, 847, 856, 856, 856, 848, 856,
568
/* 210 */ 856, 856, 856, 856, 789, 856, 781, 797, 794, 795,
569
/* 220 */ 690, 856, 691, 785, 772, 856, 856, 856, 780, 856,
570
/* 230 */ 797, 856, 784, 856, 783, 690, 786, 709, 708, 704,
571
/* 240 */ 856, 714, 856, 797, 712, 856, 721, 674, 685, 683,
572
/* 250 */ 684, 692, 693, 856, 694, 856, 695, 856, 696, 856,
573
/* 260 */ 690, 681, 589, 590, 856, 679, 680, 698, 700, 686,
574
/* 270 */ 856, 856, 856, 699, 856, 803, 708, 805, 804, 856,
575
/* 280 */ 697, 685, 856, 856, 856, 681, 698, 700, 687, 856,
576
/* 290 */ 681, 676, 677, 856, 856, 678, 671, 672, 778, 856,
577
/* 300 */ 735, 856, 745, 856, 746, 856, 651, 620, 856, 801,
578
/* 310 */ 624, 621, 625, 856, 626, 856, 856, 627, 856, 630,
579
/* 320 */ 631, 632, 633, 856, 628, 856, 629, 856, 856, 802,
580
/* 330 */ 622, 856, 623, 636, 635, 606, 856, 607, 608, 609,
581
/* 340 */ 856, 610, 613, 856, 611, 614, 612, 615, 595, 856,
582
/* 350 */ 856, 596, 856, 856, 597, 599, 598, 587, 856, 856,
583
/* 360 */ 641, 856, 644, 856, 856, 856, 856, 651, 645, 856,
584
/* 370 */ 856, 856, 651, 646, 856, 651, 647, 856, 856, 856,
585
/* 380 */ 856, 856, 856, 801, 624, 649, 856, 648, 650, 642,
586
/* 390 */ 643, 585, 856, 856, 581, 856, 856, 579, 856, 856,
587
/* 400 */ 856, 856, 856, 828, 856, 856, 856, 690, 833, 856,
588
/* 410 */ 856, 856, 856, 856, 856, 834, 835, 856, 856, 856,
589
/* 420 */ 856, 856, 856, 733, 734, 825, 826, 856, 827, 580,
590
/* 430 */ 856, 856, 856, 856, 856, 856, 856, 856, 856, 856,
591
/* 440 */ 856, 856, 856, 856, 856, 856, 654, 856, 856, 856,
592
/* 450 */ 856, 856, 856, 856, 653, 856, 856, 856, 856, 856,
593
/* 460 */ 856, 856, 723, 856, 856, 856, 724, 856, 856, 731,
594
/* 470 */ 856, 856, 732, 856, 856, 856, 856, 856, 856, 729,
595
/* 480 */ 856, 730, 856, 856, 856, 856, 856, 856, 856, 856,
596
/* 490 */ 856, 856, 856, 856, 856, 856, 856, 856, 856, 856,
597
/* 500 */ 690, 856, 856, 653, 856, 856, 856, 856, 856, 856,
598
/* 510 */ 856, 856, 690, 731, 856, 856, 856, 856, 856, 856,
599
/* 520 */ 653, 856, 856, 856, 856, 856, 856, 856, 856, 856,
600
/* 530 */ 856, 856, 856, 822, 856, 856, 856, 856, 856, 856,
601
/* 540 */ 856, 856, 856, 856, 821, 856, 856, 856, 854, 856,
602
/* 550 */ 856, 856, 856, 856, 856, 856, 853, 854, 856, 856,
603
/* 560 */ 567, 569, 565,
605
#define YY_SZ_ACTTAB (sizeof(yy_action)/sizeof(yy_action[0]))
607
/* The next table maps tokens into fallback tokens. If a construct
608
** like the following:
610
** %fallback ID X Y Z.
612
** appears in the grammer, then ID becomes a fallback token for X, Y,
613
** and Z. Whenever one of the tokens X, Y, or Z is input to the parser
614
** but it does not parse, the type of the token is changed to ID and
615
** the parse is retried before an error is thrown.
618
static const YYCODETYPE yyFallback[] = {
619
0, /* $ => nothing */
620
0, /* END_OF_FILE => nothing */
621
0, /* ILLEGAL => nothing */
622
0, /* SPACE => nothing */
623
0, /* UNCLOSED_STRING => nothing */
624
0, /* COMMENT => nothing */
625
0, /* FUNCTION => nothing */
626
0, /* COLUMN => nothing */
627
0, /* AGG_FUNCTION => nothing */
628
0, /* SEMI => nothing */
629
23, /* EXPLAIN => ID */
630
23, /* BEGIN => ID */
631
0, /* TRANSACTION => nothing */
632
0, /* COMMIT => nothing */
634
0, /* ROLLBACK => nothing */
635
0, /* CREATE => nothing */
636
0, /* TABLE => nothing */
638
0, /* LP => nothing */
639
0, /* RP => nothing */
640
0, /* AS => nothing */
641
0, /* COMMA => nothing */
642
0, /* ID => nothing */
643
23, /* ABORT => ID */
644
23, /* AFTER => ID */
646
23, /* ATTACH => ID */
647
23, /* BEFORE => ID */
648
23, /* CASCADE => ID */
649
23, /* CLUSTER => ID */
650
23, /* CONFLICT => ID */
652
23, /* DATABASE => ID */
653
23, /* DEFERRED => ID */
654
23, /* DELIMITERS => ID */
656
23, /* DETACH => ID */
661
23, /* IGNORE => ID */
662
23, /* IMMEDIATE => ID */
663
23, /* INITIALLY => ID */
664
23, /* INSTEAD => ID */
666
23, /* MATCH => ID */
669
23, /* OFFSET => ID */
670
23, /* PRAGMA => ID */
671
23, /* RAISE => ID */
672
23, /* REPLACE => ID */
673
23, /* RESTRICT => ID */
675
23, /* STATEMENT => ID */
676
23, /* TRIGGER => ID */
677
23, /* VACUUM => ID */
679
0, /* OR => nothing */
680
0, /* AND => nothing */
681
0, /* NOT => nothing */
682
0, /* EQ => nothing */
683
0, /* NE => nothing */
684
0, /* ISNULL => nothing */
685
0, /* NOTNULL => nothing */
686
0, /* IS => nothing */
687
0, /* BETWEEN => nothing */
688
0, /* IN => nothing */
689
0, /* GT => nothing */
690
0, /* GE => nothing */
691
0, /* LT => nothing */
692
0, /* LE => nothing */
693
0, /* BITAND => nothing */
694
0, /* BITOR => nothing */
695
0, /* LSHIFT => nothing */
696
0, /* RSHIFT => nothing */
697
0, /* PLUS => nothing */
698
0, /* MINUS => nothing */
699
0, /* STAR => nothing */
700
0, /* SLASH => nothing */
701
0, /* REM => nothing */
702
0, /* CONCAT => nothing */
703
0, /* UMINUS => nothing */
704
0, /* UPLUS => nothing */
705
0, /* BITNOT => nothing */
706
0, /* STRING => nothing */
707
0, /* JOIN_KW => nothing */
708
0, /* INTEGER => nothing */
709
0, /* CONSTRAINT => nothing */
710
0, /* DEFAULT => nothing */
711
0, /* FLOAT => nothing */
712
0, /* NULL => nothing */
713
0, /* PRIMARY => nothing */
714
0, /* UNIQUE => nothing */
715
0, /* CHECK => nothing */
716
0, /* REFERENCES => nothing */
717
0, /* COLLATE => nothing */
718
0, /* ON => nothing */
719
0, /* DELETE => nothing */
720
0, /* UPDATE => nothing */
721
0, /* INSERT => nothing */
722
0, /* SET => nothing */
723
0, /* DEFERRABLE => nothing */
724
0, /* FOREIGN => nothing */
725
0, /* DROP => nothing */
726
0, /* UNION => nothing */
727
0, /* ALL => nothing */
728
0, /* INTERSECT => nothing */
729
0, /* EXCEPT => nothing */
730
0, /* SELECT => nothing */
731
0, /* DISTINCT => nothing */
732
0, /* DOT => nothing */
733
0, /* FROM => nothing */
734
0, /* JOIN => nothing */
735
0, /* USING => nothing */
736
0, /* ORDER => nothing */
737
0, /* BY => nothing */
738
0, /* GROUP => nothing */
739
0, /* HAVING => nothing */
740
0, /* LIMIT => nothing */
741
0, /* WHERE => nothing */
742
0, /* INTO => nothing */
743
0, /* VALUES => nothing */
744
0, /* VARIABLE => nothing */
745
0, /* CASE => nothing */
746
0, /* WHEN => nothing */
747
0, /* THEN => nothing */
748
0, /* ELSE => nothing */
749
0, /* INDEX => nothing */
751
#endif /* YYFALLBACK */
753
/* The following structure represents a single element of the
754
** parser's stack. Information stored includes:
756
** + The state number for the parser at this level of the stack.
758
** + The value of the token stored at this level of the stack.
759
** (In other words, the "major" token.)
761
** + The semantic value stored at this level of the stack. This is
762
** the information used by the action routines in the grammar.
763
** It is sometimes called the "minor" token.
765
struct yyStackEntry {
766
int stateno; /* The state-number */
767
int major; /* The major token value. This is the code
768
** number for the token at this stack level */
769
YYMINORTYPE minor; /* The user-supplied minor token value. This
770
** is the value of the token */
772
typedef struct yyStackEntry yyStackEntry;
774
/* The state of the parser is completely contained in an instance of
775
** the following structure */
777
int yyidx; /* Index of top element in stack */
778
int yyerrcnt; /* Shifts left before out of the error */
779
sqliteParserARG_SDECL /* A place to hold %extra_argument */
780
yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */
782
typedef struct yyParser yyParser;
786
static FILE *yyTraceFILE = 0;
787
static char *yyTracePrompt = 0;
792
** Turn parser tracing on by giving a stream to which to write the trace
793
** and a prompt to preface each trace message. Tracing is turned off
794
** by making either argument NULL
798
** <li> A FILE* to which trace output should be written.
799
** If NULL, then tracing is turned off.
800
** <li> A prefix string written at the beginning of every
801
** line of trace output. If NULL, then tracing is
808
void sqliteParserTrace(FILE *TraceFILE, char *zTracePrompt){
809
yyTraceFILE = TraceFILE;
810
yyTracePrompt = zTracePrompt;
811
if( yyTraceFILE==0 ) yyTracePrompt = 0;
812
else if( yyTracePrompt==0 ) yyTraceFILE = 0;
817
/* For tracing shifts, the names of all terminals and nonterminals
818
** are required. The following table supplies these names */
819
static const char *yyTokenName[] = {
820
"$", "END_OF_FILE", "ILLEGAL", "SPACE",
821
"UNCLOSED_STRING", "COMMENT", "FUNCTION", "COLUMN",
822
"AGG_FUNCTION", "SEMI", "EXPLAIN", "BEGIN",
823
"TRANSACTION", "COMMIT", "END", "ROLLBACK",
824
"CREATE", "TABLE", "TEMP", "LP",
825
"RP", "AS", "COMMA", "ID",
826
"ABORT", "AFTER", "ASC", "ATTACH",
827
"BEFORE", "CASCADE", "CLUSTER", "CONFLICT",
828
"COPY", "DATABASE", "DEFERRED", "DELIMITERS",
829
"DESC", "DETACH", "EACH", "FAIL",
830
"FOR", "GLOB", "IGNORE", "IMMEDIATE",
831
"INITIALLY", "INSTEAD", "LIKE", "MATCH",
832
"KEY", "OF", "OFFSET", "PRAGMA",
833
"RAISE", "REPLACE", "RESTRICT", "ROW",
834
"STATEMENT", "TRIGGER", "VACUUM", "VIEW",
835
"OR", "AND", "NOT", "EQ",
836
"NE", "ISNULL", "NOTNULL", "IS",
837
"BETWEEN", "IN", "GT", "GE",
838
"LT", "LE", "BITAND", "BITOR",
839
"LSHIFT", "RSHIFT", "PLUS", "MINUS",
840
"STAR", "SLASH", "REM", "CONCAT",
841
"UMINUS", "UPLUS", "BITNOT", "STRING",
842
"JOIN_KW", "INTEGER", "CONSTRAINT", "DEFAULT",
843
"FLOAT", "NULL", "PRIMARY", "UNIQUE",
844
"CHECK", "REFERENCES", "COLLATE", "ON",
845
"DELETE", "UPDATE", "INSERT", "SET",
846
"DEFERRABLE", "FOREIGN", "DROP", "UNION",
847
"ALL", "INTERSECT", "EXCEPT", "SELECT",
848
"DISTINCT", "DOT", "FROM", "JOIN",
849
"USING", "ORDER", "BY", "GROUP",
850
"HAVING", "LIMIT", "WHERE", "INTO",
851
"VALUES", "VARIABLE", "CASE", "WHEN",
852
"THEN", "ELSE", "INDEX", "error",
853
"input", "cmdlist", "ecmd", "explain",
854
"cmdx", "cmd", "trans_opt", "onconf",
855
"nm", "create_table", "create_table_args", "temp",
856
"columnlist", "conslist_opt", "select", "column",
857
"columnid", "type", "carglist", "id",
858
"ids", "typename", "signed", "carg",
859
"ccons", "sortorder", "expr", "idxlist_opt",
860
"refargs", "defer_subclause", "refarg", "refact",
861
"init_deferred_pred_opt", "conslist", "tcons", "idxlist",
862
"defer_subclause_opt", "orconf", "resolvetype", "oneselect",
863
"multiselect_op", "distinct", "selcollist", "from",
864
"where_opt", "groupby_opt", "having_opt", "orderby_opt",
865
"limit_opt", "sclp", "as", "seltablist",
866
"stl_prefix", "joinop", "dbnm", "on_opt",
867
"using_opt", "seltablist_paren", "joinop2", "sortlist",
868
"sortitem", "collate", "exprlist", "setlist",
869
"insert_cmd", "inscollist_opt", "itemlist", "inscollist",
870
"likeop", "case_operand", "case_exprlist", "case_else",
871
"expritem", "uniqueflag", "idxitem", "plus_num",
872
"minus_num", "plus_opt", "number", "trigger_decl",
873
"trigger_cmd_list", "trigger_time", "trigger_event", "foreach_clause",
874
"when_clause", "trigger_cmd", "database_kw_opt", "key_opt",
879
/* For tracing reduce actions, the names of all rules are required.
881
static const char *yyRuleName[] = {
882
/* 0 */ "input ::= cmdlist",
883
/* 1 */ "cmdlist ::= cmdlist ecmd",
884
/* 2 */ "cmdlist ::= ecmd",
885
/* 3 */ "ecmd ::= explain cmdx SEMI",
886
/* 4 */ "ecmd ::= SEMI",
887
/* 5 */ "cmdx ::= cmd",
888
/* 6 */ "explain ::= EXPLAIN",
889
/* 7 */ "explain ::=",
890
/* 8 */ "cmd ::= BEGIN trans_opt onconf",
891
/* 9 */ "trans_opt ::=",
892
/* 10 */ "trans_opt ::= TRANSACTION",
893
/* 11 */ "trans_opt ::= TRANSACTION nm",
894
/* 12 */ "cmd ::= COMMIT trans_opt",
895
/* 13 */ "cmd ::= END trans_opt",
896
/* 14 */ "cmd ::= ROLLBACK trans_opt",
897
/* 15 */ "cmd ::= create_table create_table_args",
898
/* 16 */ "create_table ::= CREATE temp TABLE nm",
899
/* 17 */ "temp ::= TEMP",
901
/* 19 */ "create_table_args ::= LP columnlist conslist_opt RP",
902
/* 20 */ "create_table_args ::= AS select",
903
/* 21 */ "columnlist ::= columnlist COMMA column",
904
/* 22 */ "columnlist ::= column",
905
/* 23 */ "column ::= columnid type carglist",
906
/* 24 */ "columnid ::= nm",
907
/* 25 */ "id ::= ID",
908
/* 26 */ "ids ::= ID",
909
/* 27 */ "ids ::= STRING",
910
/* 28 */ "nm ::= ID",
911
/* 29 */ "nm ::= STRING",
912
/* 30 */ "nm ::= JOIN_KW",
914
/* 32 */ "type ::= typename",
915
/* 33 */ "type ::= typename LP signed RP",
916
/* 34 */ "type ::= typename LP signed COMMA signed RP",
917
/* 35 */ "typename ::= ids",
918
/* 36 */ "typename ::= typename ids",
919
/* 37 */ "signed ::= INTEGER",
920
/* 38 */ "signed ::= PLUS INTEGER",
921
/* 39 */ "signed ::= MINUS INTEGER",
922
/* 40 */ "carglist ::= carglist carg",
923
/* 41 */ "carglist ::=",
924
/* 42 */ "carg ::= CONSTRAINT nm ccons",
925
/* 43 */ "carg ::= ccons",
926
/* 44 */ "carg ::= DEFAULT STRING",
927
/* 45 */ "carg ::= DEFAULT ID",
928
/* 46 */ "carg ::= DEFAULT INTEGER",
929
/* 47 */ "carg ::= DEFAULT PLUS INTEGER",
930
/* 48 */ "carg ::= DEFAULT MINUS INTEGER",
931
/* 49 */ "carg ::= DEFAULT FLOAT",
932
/* 50 */ "carg ::= DEFAULT PLUS FLOAT",
933
/* 51 */ "carg ::= DEFAULT MINUS FLOAT",
934
/* 52 */ "carg ::= DEFAULT NULL",
935
/* 53 */ "ccons ::= NULL onconf",
936
/* 54 */ "ccons ::= NOT NULL onconf",
937
/* 55 */ "ccons ::= PRIMARY KEY sortorder onconf",
938
/* 56 */ "ccons ::= UNIQUE onconf",
939
/* 57 */ "ccons ::= CHECK LP expr RP onconf",
940
/* 58 */ "ccons ::= REFERENCES nm idxlist_opt refargs",
941
/* 59 */ "ccons ::= defer_subclause",
942
/* 60 */ "ccons ::= COLLATE id",
943
/* 61 */ "refargs ::=",
944
/* 62 */ "refargs ::= refargs refarg",
945
/* 63 */ "refarg ::= MATCH nm",
946
/* 64 */ "refarg ::= ON DELETE refact",
947
/* 65 */ "refarg ::= ON UPDATE refact",
948
/* 66 */ "refarg ::= ON INSERT refact",
949
/* 67 */ "refact ::= SET NULL",
950
/* 68 */ "refact ::= SET DEFAULT",
951
/* 69 */ "refact ::= CASCADE",
952
/* 70 */ "refact ::= RESTRICT",
953
/* 71 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt",
954
/* 72 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt",
955
/* 73 */ "init_deferred_pred_opt ::=",
956
/* 74 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED",
957
/* 75 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE",
958
/* 76 */ "conslist_opt ::=",
959
/* 77 */ "conslist_opt ::= COMMA conslist",
960
/* 78 */ "conslist ::= conslist COMMA tcons",
961
/* 79 */ "conslist ::= conslist tcons",
962
/* 80 */ "conslist ::= tcons",
963
/* 81 */ "tcons ::= CONSTRAINT nm",
964
/* 82 */ "tcons ::= PRIMARY KEY LP idxlist RP onconf",
965
/* 83 */ "tcons ::= UNIQUE LP idxlist RP onconf",
966
/* 84 */ "tcons ::= CHECK expr onconf",
967
/* 85 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt",
968
/* 86 */ "defer_subclause_opt ::=",
969
/* 87 */ "defer_subclause_opt ::= defer_subclause",
970
/* 88 */ "onconf ::=",
971
/* 89 */ "onconf ::= ON CONFLICT resolvetype",
972
/* 90 */ "orconf ::=",
973
/* 91 */ "orconf ::= OR resolvetype",
974
/* 92 */ "resolvetype ::= ROLLBACK",
975
/* 93 */ "resolvetype ::= ABORT",
976
/* 94 */ "resolvetype ::= FAIL",
977
/* 95 */ "resolvetype ::= IGNORE",
978
/* 96 */ "resolvetype ::= REPLACE",
979
/* 97 */ "cmd ::= DROP TABLE nm",
980
/* 98 */ "cmd ::= CREATE temp VIEW nm AS select",
981
/* 99 */ "cmd ::= DROP VIEW nm",
982
/* 100 */ "cmd ::= select",
983
/* 101 */ "select ::= oneselect",
984
/* 102 */ "select ::= select multiselect_op oneselect",
985
/* 103 */ "multiselect_op ::= UNION",
986
/* 104 */ "multiselect_op ::= UNION ALL",
987
/* 105 */ "multiselect_op ::= INTERSECT",
988
/* 106 */ "multiselect_op ::= EXCEPT",
989
/* 107 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
990
/* 108 */ "distinct ::= DISTINCT",
991
/* 109 */ "distinct ::= ALL",
992
/* 110 */ "distinct ::=",
993
/* 111 */ "sclp ::= selcollist COMMA",
994
/* 112 */ "sclp ::=",
995
/* 113 */ "selcollist ::= sclp expr as",
996
/* 114 */ "selcollist ::= sclp STAR",
997
/* 115 */ "selcollist ::= sclp nm DOT STAR",
998
/* 116 */ "as ::= AS nm",
999
/* 117 */ "as ::= ids",
1001
/* 119 */ "from ::=",
1002
/* 120 */ "from ::= FROM seltablist",
1003
/* 121 */ "stl_prefix ::= seltablist joinop",
1004
/* 122 */ "stl_prefix ::=",
1005
/* 123 */ "seltablist ::= stl_prefix nm dbnm as on_opt using_opt",
1006
/* 124 */ "seltablist ::= stl_prefix LP seltablist_paren RP as on_opt using_opt",
1007
/* 125 */ "seltablist_paren ::= select",
1008
/* 126 */ "seltablist_paren ::= seltablist",
1009
/* 127 */ "dbnm ::=",
1010
/* 128 */ "dbnm ::= DOT nm",
1011
/* 129 */ "joinop ::= COMMA",
1012
/* 130 */ "joinop ::= JOIN",
1013
/* 131 */ "joinop ::= JOIN_KW JOIN",
1014
/* 132 */ "joinop ::= JOIN_KW nm JOIN",
1015
/* 133 */ "joinop ::= JOIN_KW nm nm JOIN",
1016
/* 134 */ "on_opt ::= ON expr",
1017
/* 135 */ "on_opt ::=",
1018
/* 136 */ "using_opt ::= USING LP idxlist RP",
1019
/* 137 */ "using_opt ::=",
1020
/* 138 */ "orderby_opt ::=",
1021
/* 139 */ "orderby_opt ::= ORDER BY sortlist",
1022
/* 140 */ "sortlist ::= sortlist COMMA sortitem collate sortorder",
1023
/* 141 */ "sortlist ::= sortitem collate sortorder",
1024
/* 142 */ "sortitem ::= expr",
1025
/* 143 */ "sortorder ::= ASC",
1026
/* 144 */ "sortorder ::= DESC",
1027
/* 145 */ "sortorder ::=",
1028
/* 146 */ "collate ::=",
1029
/* 147 */ "collate ::= COLLATE id",
1030
/* 148 */ "groupby_opt ::=",
1031
/* 149 */ "groupby_opt ::= GROUP BY exprlist",
1032
/* 150 */ "having_opt ::=",
1033
/* 151 */ "having_opt ::= HAVING expr",
1034
/* 152 */ "limit_opt ::=",
1035
/* 153 */ "limit_opt ::= LIMIT signed",
1036
/* 154 */ "limit_opt ::= LIMIT signed OFFSET signed",
1037
/* 155 */ "limit_opt ::= LIMIT signed COMMA signed",
1038
/* 156 */ "cmd ::= DELETE FROM nm dbnm where_opt",
1039
/* 157 */ "where_opt ::=",
1040
/* 158 */ "where_opt ::= WHERE expr",
1041
/* 159 */ "cmd ::= UPDATE orconf nm dbnm SET setlist where_opt",
1042
/* 160 */ "setlist ::= setlist COMMA nm EQ expr",
1043
/* 161 */ "setlist ::= nm EQ expr",
1044
/* 162 */ "cmd ::= insert_cmd INTO nm dbnm inscollist_opt VALUES LP itemlist RP",
1045
/* 163 */ "cmd ::= insert_cmd INTO nm dbnm inscollist_opt select",
1046
/* 164 */ "insert_cmd ::= INSERT orconf",
1047
/* 165 */ "insert_cmd ::= REPLACE",
1048
/* 166 */ "itemlist ::= itemlist COMMA expr",
1049
/* 167 */ "itemlist ::= expr",
1050
/* 168 */ "inscollist_opt ::=",
1051
/* 169 */ "inscollist_opt ::= LP inscollist RP",
1052
/* 170 */ "inscollist ::= inscollist COMMA nm",
1053
/* 171 */ "inscollist ::= nm",
1054
/* 172 */ "expr ::= LP expr RP",
1055
/* 173 */ "expr ::= NULL",
1056
/* 174 */ "expr ::= ID",
1057
/* 175 */ "expr ::= JOIN_KW",
1058
/* 176 */ "expr ::= nm DOT nm",
1059
/* 177 */ "expr ::= nm DOT nm DOT nm",
1060
/* 178 */ "expr ::= INTEGER",
1061
/* 179 */ "expr ::= FLOAT",
1062
/* 180 */ "expr ::= STRING",
1063
/* 181 */ "expr ::= VARIABLE",
1064
/* 182 */ "expr ::= ID LP exprlist RP",
1065
/* 183 */ "expr ::= ID LP STAR RP",
1066
/* 184 */ "expr ::= expr AND expr",
1067
/* 185 */ "expr ::= expr OR expr",
1068
/* 186 */ "expr ::= expr LT expr",
1069
/* 187 */ "expr ::= expr GT expr",
1070
/* 188 */ "expr ::= expr LE expr",
1071
/* 189 */ "expr ::= expr GE expr",
1072
/* 190 */ "expr ::= expr NE expr",
1073
/* 191 */ "expr ::= expr EQ expr",
1074
/* 192 */ "expr ::= expr BITAND expr",
1075
/* 193 */ "expr ::= expr BITOR expr",
1076
/* 194 */ "expr ::= expr LSHIFT expr",
1077
/* 195 */ "expr ::= expr RSHIFT expr",
1078
/* 196 */ "expr ::= expr likeop expr",
1079
/* 197 */ "expr ::= expr NOT likeop expr",
1080
/* 198 */ "likeop ::= LIKE",
1081
/* 199 */ "likeop ::= GLOB",
1082
/* 200 */ "expr ::= expr PLUS expr",
1083
/* 201 */ "expr ::= expr MINUS expr",
1084
/* 202 */ "expr ::= expr STAR expr",
1085
/* 203 */ "expr ::= expr SLASH expr",
1086
/* 204 */ "expr ::= expr REM expr",
1087
/* 205 */ "expr ::= expr CONCAT expr",
1088
/* 206 */ "expr ::= expr ISNULL",
1089
/* 207 */ "expr ::= expr IS NULL",
1090
/* 208 */ "expr ::= expr NOTNULL",
1091
/* 209 */ "expr ::= expr NOT NULL",
1092
/* 210 */ "expr ::= expr IS NOT NULL",
1093
/* 211 */ "expr ::= NOT expr",
1094
/* 212 */ "expr ::= BITNOT expr",
1095
/* 213 */ "expr ::= MINUS expr",
1096
/* 214 */ "expr ::= PLUS expr",
1097
/* 215 */ "expr ::= LP select RP",
1098
/* 216 */ "expr ::= expr BETWEEN expr AND expr",
1099
/* 217 */ "expr ::= expr NOT BETWEEN expr AND expr",
1100
/* 218 */ "expr ::= expr IN LP exprlist RP",
1101
/* 219 */ "expr ::= expr IN LP select RP",
1102
/* 220 */ "expr ::= expr NOT IN LP exprlist RP",
1103
/* 221 */ "expr ::= expr NOT IN LP select RP",
1104
/* 222 */ "expr ::= expr IN nm dbnm",
1105
/* 223 */ "expr ::= expr NOT IN nm dbnm",
1106
/* 224 */ "expr ::= CASE case_operand case_exprlist case_else END",
1107
/* 225 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr",
1108
/* 226 */ "case_exprlist ::= WHEN expr THEN expr",
1109
/* 227 */ "case_else ::= ELSE expr",
1110
/* 228 */ "case_else ::=",
1111
/* 229 */ "case_operand ::= expr",
1112
/* 230 */ "case_operand ::=",
1113
/* 231 */ "exprlist ::= exprlist COMMA expritem",
1114
/* 232 */ "exprlist ::= expritem",
1115
/* 233 */ "expritem ::= expr",
1116
/* 234 */ "expritem ::=",
1117
/* 235 */ "cmd ::= CREATE uniqueflag INDEX nm ON nm dbnm LP idxlist RP onconf",
1118
/* 236 */ "uniqueflag ::= UNIQUE",
1119
/* 237 */ "uniqueflag ::=",
1120
/* 238 */ "idxlist_opt ::=",
1121
/* 239 */ "idxlist_opt ::= LP idxlist RP",
1122
/* 240 */ "idxlist ::= idxlist COMMA idxitem",
1123
/* 241 */ "idxlist ::= idxitem",
1124
/* 242 */ "idxitem ::= nm sortorder",
1125
/* 243 */ "cmd ::= DROP INDEX nm dbnm",
1126
/* 244 */ "cmd ::= COPY orconf nm dbnm FROM nm USING DELIMITERS STRING",
1127
/* 245 */ "cmd ::= COPY orconf nm dbnm FROM nm",
1128
/* 246 */ "cmd ::= VACUUM",
1129
/* 247 */ "cmd ::= VACUUM nm",
1130
/* 248 */ "cmd ::= PRAGMA ids EQ nm",
1131
/* 249 */ "cmd ::= PRAGMA ids EQ ON",
1132
/* 250 */ "cmd ::= PRAGMA ids EQ plus_num",
1133
/* 251 */ "cmd ::= PRAGMA ids EQ minus_num",
1134
/* 252 */ "cmd ::= PRAGMA ids LP nm RP",
1135
/* 253 */ "cmd ::= PRAGMA ids",
1136
/* 254 */ "plus_num ::= plus_opt number",
1137
/* 255 */ "minus_num ::= MINUS number",
1138
/* 256 */ "number ::= INTEGER",
1139
/* 257 */ "number ::= FLOAT",
1140
/* 258 */ "plus_opt ::= PLUS",
1141
/* 259 */ "plus_opt ::=",
1142
/* 260 */ "cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END",
1143
/* 261 */ "trigger_decl ::= temp TRIGGER nm trigger_time trigger_event ON nm dbnm foreach_clause when_clause",
1144
/* 262 */ "trigger_time ::= BEFORE",
1145
/* 263 */ "trigger_time ::= AFTER",
1146
/* 264 */ "trigger_time ::= INSTEAD OF",
1147
/* 265 */ "trigger_time ::=",
1148
/* 266 */ "trigger_event ::= DELETE",
1149
/* 267 */ "trigger_event ::= INSERT",
1150
/* 268 */ "trigger_event ::= UPDATE",
1151
/* 269 */ "trigger_event ::= UPDATE OF inscollist",
1152
/* 270 */ "foreach_clause ::=",
1153
/* 271 */ "foreach_clause ::= FOR EACH ROW",
1154
/* 272 */ "foreach_clause ::= FOR EACH STATEMENT",
1155
/* 273 */ "when_clause ::=",
1156
/* 274 */ "when_clause ::= WHEN expr",
1157
/* 275 */ "trigger_cmd_list ::= trigger_cmd SEMI trigger_cmd_list",
1158
/* 276 */ "trigger_cmd_list ::=",
1159
/* 277 */ "trigger_cmd ::= UPDATE orconf nm SET setlist where_opt",
1160
/* 278 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt VALUES LP itemlist RP",
1161
/* 279 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt select",
1162
/* 280 */ "trigger_cmd ::= DELETE FROM nm where_opt",
1163
/* 281 */ "trigger_cmd ::= select",
1164
/* 282 */ "expr ::= RAISE LP IGNORE RP",
1165
/* 283 */ "expr ::= RAISE LP ROLLBACK COMMA nm RP",
1166
/* 284 */ "expr ::= RAISE LP ABORT COMMA nm RP",
1167
/* 285 */ "expr ::= RAISE LP FAIL COMMA nm RP",
1168
/* 286 */ "cmd ::= DROP TRIGGER nm dbnm",
1169
/* 287 */ "cmd ::= ATTACH database_kw_opt ids AS nm key_opt",
1170
/* 288 */ "key_opt ::= USING ids",
1171
/* 289 */ "key_opt ::=",
1172
/* 290 */ "database_kw_opt ::= DATABASE",
1173
/* 291 */ "database_kw_opt ::=",
1174
/* 292 */ "cmd ::= DETACH database_kw_opt nm",
1179
** This function returns the symbolic name associated with a token
1182
const char *sqliteParserTokenName(int tokenType){
1184
if( tokenType>0 && tokenType<(sizeof(yyTokenName)/sizeof(yyTokenName[0])) ){
1185
return yyTokenName[tokenType];
1195
** This function allocates a new parser.
1196
** The only argument is a pointer to a function which works like
1200
** A pointer to the function used to allocate memory.
1203
** A pointer to a parser. This pointer is used in subsequent calls
1204
** to sqliteParser and sqliteParserFree.
1206
void *sqliteParserAlloc(void *(*mallocProc)(size_t)){
1208
pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) );
1210
pParser->yyidx = -1;
1215
/* The following function deletes the value associated with a
1216
** symbol. The symbol can be either a terminal or nonterminal.
1217
** "yymajor" is the symbol code, and "yypminor" is a pointer to
1220
static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){
1222
/* Here is inserted the actions which take place when a
1223
** terminal or non-terminal is destroyed. This can happen
1224
** when the symbol is popped from the stack during a
1225
** reduce or during error processing or when a parser is
1226
** being destroyed before it is finished parsing.
1228
** Note: during a reduce, the only symbols destroyed are those
1229
** which appear on the RHS of the rule, but which are not used
1230
** inside the C code.
1234
{sqliteSelectDelete((yypminor->yy179));}
1235
#line 1235 "parse.c"
1239
{sqliteExprDelete((yypminor->yy242));}
1240
#line 1240 "parse.c"
1244
{sqliteIdListDelete((yypminor->yy320));}
1245
#line 1245 "parse.c"
1249
{sqliteIdListDelete((yypminor->yy320));}
1250
#line 1250 "parse.c"
1254
{sqliteSelectDelete((yypminor->yy179));}
1255
#line 1255 "parse.c"
1259
{sqliteExprListDelete((yypminor->yy322));}
1260
#line 1260 "parse.c"
1264
{sqliteSrcListDelete((yypminor->yy307));}
1265
#line 1265 "parse.c"
1269
{sqliteExprDelete((yypminor->yy242));}
1270
#line 1270 "parse.c"
1274
{sqliteExprListDelete((yypminor->yy322));}
1275
#line 1275 "parse.c"
1279
{sqliteExprDelete((yypminor->yy242));}
1280
#line 1280 "parse.c"
1284
{sqliteExprListDelete((yypminor->yy322));}
1285
#line 1285 "parse.c"
1289
{sqliteExprListDelete((yypminor->yy322));}
1290
#line 1290 "parse.c"
1294
{sqliteSrcListDelete((yypminor->yy307));}
1295
#line 1295 "parse.c"
1299
{sqliteSrcListDelete((yypminor->yy307));}
1300
#line 1300 "parse.c"
1304
{sqliteExprDelete((yypminor->yy242));}
1305
#line 1305 "parse.c"
1309
{sqliteIdListDelete((yypminor->yy320));}
1310
#line 1310 "parse.c"
1314
{sqliteSelectDelete((yypminor->yy179));}
1315
#line 1315 "parse.c"
1319
{sqliteExprListDelete((yypminor->yy322));}
1320
#line 1320 "parse.c"
1324
{sqliteExprDelete((yypminor->yy242));}
1325
#line 1325 "parse.c"
1329
{sqliteExprListDelete((yypminor->yy322));}
1330
#line 1330 "parse.c"
1334
{sqliteExprListDelete((yypminor->yy322));}
1335
#line 1335 "parse.c"
1339
{sqliteIdListDelete((yypminor->yy320));}
1340
#line 1340 "parse.c"
1344
{sqliteExprListDelete((yypminor->yy322));}
1345
#line 1345 "parse.c"
1349
{sqliteIdListDelete((yypminor->yy320));}
1350
#line 1350 "parse.c"
1354
{sqliteExprListDelete((yypminor->yy322));}
1355
#line 1355 "parse.c"
1359
{sqliteExprDelete((yypminor->yy242));}
1360
#line 1360 "parse.c"
1364
{sqliteDeleteTriggerStep((yypminor->yy19));}
1365
#line 1365 "parse.c"
1369
{sqliteIdListDelete((yypminor->yy290).b);}
1370
#line 1370 "parse.c"
1374
{sqliteDeleteTriggerStep((yypminor->yy19));}
1375
#line 1375 "parse.c"
1377
default: break; /* If no destructor action specified: do nothing */
1382
** Pop the parser's stack once.
1384
** If there is a destructor routine associated with the token which
1385
** is popped from the stack, then call it.
1387
** Return the major token number for the symbol popped.
1389
static int yy_pop_parser_stack(yyParser *pParser){
1391
yyStackEntry *yytos = &pParser->yystack[pParser->yyidx];
1393
if( pParser->yyidx<0 ) return 0;
1395
if( yyTraceFILE && pParser->yyidx>=0 ){
1396
fprintf(yyTraceFILE,"%sPopping %s\n",
1398
yyTokenName[yytos->major]);
1401
yymajor = yytos->major;
1402
yy_destructor( yymajor, &yytos->minor);
1408
** Deallocate and destroy a parser. Destructors are all called for
1409
** all stack elements before shutting the parser down.
1413
** <li> A pointer to the parser. This should be a pointer
1414
** obtained from sqliteParserAlloc.
1415
** <li> A pointer to a function used to reclaim memory obtained
1419
void sqliteParserFree(
1420
void *p, /* The parser to be deleted */
1421
void (*freeProc)(void*) /* Function used to reclaim memory */
1423
yyParser *pParser = (yyParser*)p;
1424
if( pParser==0 ) return;
1425
while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser);
1426
(*freeProc)((void*)pParser);
1430
** Find the appropriate action for a parser given the terminal
1431
** look-ahead token iLookAhead.
1433
** If the look-ahead token is YYNOCODE, then check to see if the action is
1434
** independent of the look-ahead. If it is, return the action, otherwise
1435
** return YY_NO_ACTION.
1437
static int yy_find_shift_action(
1438
yyParser *pParser, /* The parser */
1439
int iLookAhead /* The look-ahead token */
1442
int stateno = pParser->yystack[pParser->yyidx].stateno;
1444
/* if( pParser->yyidx<0 ) return YY_NO_ACTION; */
1445
i = yy_shift_ofst[stateno];
1446
if( i==YY_SHIFT_USE_DFLT ){
1447
return yy_default[stateno];
1449
if( iLookAhead==YYNOCODE ){
1450
return YY_NO_ACTION;
1453
if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){
1455
int iFallback; /* Fallback token */
1456
if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0])
1457
&& (iFallback = yyFallback[iLookAhead])!=0 ){
1460
fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",
1461
yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]);
1464
return yy_find_shift_action(pParser, iFallback);
1467
return yy_default[stateno];
1469
return yy_action[i];
1474
** Find the appropriate action for a parser given the non-terminal
1475
** look-ahead token iLookAhead.
1477
** If the look-ahead token is YYNOCODE, then check to see if the action is
1478
** independent of the look-ahead. If it is, return the action, otherwise
1479
** return YY_NO_ACTION.
1481
static int yy_find_reduce_action(
1482
yyParser *pParser, /* The parser */
1483
int iLookAhead /* The look-ahead token */
1486
int stateno = pParser->yystack[pParser->yyidx].stateno;
1488
i = yy_reduce_ofst[stateno];
1489
if( i==YY_REDUCE_USE_DFLT ){
1490
return yy_default[stateno];
1492
if( iLookAhead==YYNOCODE ){
1493
return YY_NO_ACTION;
1496
if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){
1497
return yy_default[stateno];
1499
return yy_action[i];
1504
** Perform a shift action.
1506
static void yy_shift(
1507
yyParser *yypParser, /* The parser to be shifted */
1508
int yyNewState, /* The new state to shift in */
1509
int yyMajor, /* The major token to shift in */
1510
YYMINORTYPE *yypMinor /* Pointer ot the minor token to shift in */
1512
yyStackEntry *yytos;
1514
if( yypParser->yyidx>=YYSTACKDEPTH ){
1515
sqliteParserARG_FETCH;
1519
fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt);
1522
while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
1523
/* Here code is inserted which will execute if the parser
1524
** stack every overflows */
1525
sqliteParserARG_STORE; /* Suppress warning about unused %extra_argument var */
1528
yytos = &yypParser->yystack[yypParser->yyidx];
1529
yytos->stateno = yyNewState;
1530
yytos->major = yyMajor;
1531
yytos->minor = *yypMinor;
1533
if( yyTraceFILE && yypParser->yyidx>0 ){
1535
fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState);
1536
fprintf(yyTraceFILE,"%sStack:",yyTracePrompt);
1537
for(i=1; i<=yypParser->yyidx; i++)
1538
fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]);
1539
fprintf(yyTraceFILE,"\n");
1544
/* The following table contains information about every rule that
1545
** is used during the reduce.
1548
YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */
1549
unsigned char nrhs; /* Number of right-hand side symbols in the rule */
1846
static void yy_accept(yyParser*); /* Forward Declaration */
1849
** Perform a reduce action and the shift that must immediately
1850
** follow the reduce.
1852
static void yy_reduce(
1853
yyParser *yypParser, /* The parser */
1854
int yyruleno /* Number of the rule by which to reduce */
1856
int yygoto; /* The next state */
1857
int yyact; /* The next action */
1858
YYMINORTYPE yygotominor; /* The LHS of the rule reduced */
1859
yyStackEntry *yymsp; /* The top of the parser's stack */
1860
int yysize; /* Amount to pop the stack */
1861
sqliteParserARG_FETCH;
1862
yymsp = &yypParser->yystack[yypParser->yyidx];
1864
if( yyTraceFILE && yyruleno>=0
1865
&& yyruleno<sizeof(yyRuleName)/sizeof(yyRuleName[0]) ){
1866
fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt,
1867
yyRuleName[yyruleno]);
1872
/* Beginning here are the reduction cases. A typical example
1875
** #line <lineno> <grammarfile>
1876
** { ... } // User supplied code
1877
** #line <lineno> <thisfile>
1881
/* No destructor defined for cmdlist */
1884
/* No destructor defined for cmdlist */
1885
/* No destructor defined for ecmd */
1888
/* No destructor defined for ecmd */
1891
/* No destructor defined for explain */
1892
/* No destructor defined for cmdx */
1893
/* No destructor defined for SEMI */
1896
/* No destructor defined for SEMI */
1900
{ sqliteExec(pParse); }
1901
#line 1901 "parse.c"
1902
/* No destructor defined for cmd */
1906
{ sqliteBeginParse(pParse, 1); }
1907
#line 1907 "parse.c"
1908
/* No destructor defined for EXPLAIN */
1912
{ sqliteBeginParse(pParse, 0); }
1913
#line 1913 "parse.c"
1917
{sqliteBeginTransaction(pParse,yymsp[0].minor.yy372);}
1918
#line 1918 "parse.c"
1919
/* No destructor defined for BEGIN */
1920
/* No destructor defined for trans_opt */
1925
/* No destructor defined for TRANSACTION */
1928
/* No destructor defined for TRANSACTION */
1929
/* No destructor defined for nm */
1933
{sqliteCommitTransaction(pParse);}
1934
#line 1934 "parse.c"
1935
/* No destructor defined for COMMIT */
1936
/* No destructor defined for trans_opt */
1940
{sqliteCommitTransaction(pParse);}
1941
#line 1941 "parse.c"
1942
/* No destructor defined for END */
1943
/* No destructor defined for trans_opt */
1947
{sqliteRollbackTransaction(pParse);}
1948
#line 1948 "parse.c"
1949
/* No destructor defined for ROLLBACK */
1950
/* No destructor defined for trans_opt */
1953
/* No destructor defined for create_table */
1954
/* No destructor defined for create_table_args */
1959
sqliteStartTable(pParse,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy298,yymsp[-2].minor.yy372,0);
1961
#line 1961 "parse.c"
1962
/* No destructor defined for TABLE */
1966
{yygotominor.yy372 = 1;}
1967
#line 1967 "parse.c"
1968
/* No destructor defined for TEMP */
1972
{yygotominor.yy372 = 0;}
1973
#line 1973 "parse.c"
1978
sqliteEndTable(pParse,&yymsp[0].minor.yy0,0);
1980
#line 1980 "parse.c"
1981
/* No destructor defined for LP */
1982
/* No destructor defined for columnlist */
1983
/* No destructor defined for conslist_opt */
1988
sqliteEndTable(pParse,0,yymsp[0].minor.yy179);
1989
sqliteSelectDelete(yymsp[0].minor.yy179);
1991
#line 1991 "parse.c"
1992
/* No destructor defined for AS */
1995
/* No destructor defined for columnlist */
1996
/* No destructor defined for COMMA */
1997
/* No destructor defined for column */
2000
/* No destructor defined for column */
2003
/* No destructor defined for columnid */
2004
/* No destructor defined for type */
2005
/* No destructor defined for carglist */
2009
{sqliteAddColumn(pParse,&yymsp[0].minor.yy298);}
2010
#line 2010 "parse.c"
2014
{yygotominor.yy298 = yymsp[0].minor.yy0;}
2015
#line 2015 "parse.c"
2019
{yygotominor.yy298 = yymsp[0].minor.yy0;}
2020
#line 2020 "parse.c"
2024
{yygotominor.yy298 = yymsp[0].minor.yy0;}
2025
#line 2025 "parse.c"
2029
{yygotominor.yy298 = yymsp[0].minor.yy0;}
2030
#line 2030 "parse.c"
2034
{yygotominor.yy298 = yymsp[0].minor.yy0;}
2035
#line 2035 "parse.c"
2039
{yygotominor.yy298 = yymsp[0].minor.yy0;}
2040
#line 2040 "parse.c"
2046
{sqliteAddColumnType(pParse,&yymsp[0].minor.yy298,&yymsp[0].minor.yy298);}
2047
#line 2047 "parse.c"
2051
{sqliteAddColumnType(pParse,&yymsp[-3].minor.yy298,&yymsp[0].minor.yy0);}
2052
#line 2052 "parse.c"
2053
/* No destructor defined for LP */
2054
/* No destructor defined for signed */
2058
{sqliteAddColumnType(pParse,&yymsp[-5].minor.yy298,&yymsp[0].minor.yy0);}
2059
#line 2059 "parse.c"
2060
/* No destructor defined for LP */
2061
/* No destructor defined for signed */
2062
/* No destructor defined for COMMA */
2063
/* No destructor defined for signed */
2067
{yygotominor.yy298 = yymsp[0].minor.yy298;}
2068
#line 2068 "parse.c"
2072
{yygotominor.yy298 = yymsp[-1].minor.yy298;}
2073
#line 2073 "parse.c"
2074
/* No destructor defined for ids */
2078
{ yygotominor.yy372 = atoi(yymsp[0].minor.yy0.z); }
2079
#line 2079 "parse.c"
2083
{ yygotominor.yy372 = atoi(yymsp[0].minor.yy0.z); }
2084
#line 2084 "parse.c"
2085
/* No destructor defined for PLUS */
2089
{ yygotominor.yy372 = -atoi(yymsp[0].minor.yy0.z); }
2090
#line 2090 "parse.c"
2091
/* No destructor defined for MINUS */
2094
/* No destructor defined for carglist */
2095
/* No destructor defined for carg */
2100
/* No destructor defined for CONSTRAINT */
2101
/* No destructor defined for nm */
2102
/* No destructor defined for ccons */
2105
/* No destructor defined for ccons */
2109
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);}
2110
#line 2110 "parse.c"
2111
/* No destructor defined for DEFAULT */
2115
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);}
2116
#line 2116 "parse.c"
2117
/* No destructor defined for DEFAULT */
2121
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);}
2122
#line 2122 "parse.c"
2123
/* No destructor defined for DEFAULT */
2127
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);}
2128
#line 2128 "parse.c"
2129
/* No destructor defined for DEFAULT */
2130
/* No destructor defined for PLUS */
2134
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,1);}
2135
#line 2135 "parse.c"
2136
/* No destructor defined for DEFAULT */
2137
/* No destructor defined for MINUS */
2141
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);}
2142
#line 2142 "parse.c"
2143
/* No destructor defined for DEFAULT */
2147
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);}
2148
#line 2148 "parse.c"
2149
/* No destructor defined for DEFAULT */
2150
/* No destructor defined for PLUS */
2154
{sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,1);}
2155
#line 2155 "parse.c"
2156
/* No destructor defined for DEFAULT */
2157
/* No destructor defined for MINUS */
2160
/* No destructor defined for DEFAULT */
2161
/* No destructor defined for NULL */
2164
/* No destructor defined for NULL */
2165
/* No destructor defined for onconf */
2169
{sqliteAddNotNull(pParse, yymsp[0].minor.yy372);}
2170
#line 2170 "parse.c"
2171
/* No destructor defined for NOT */
2172
/* No destructor defined for NULL */
2176
{sqliteAddPrimaryKey(pParse,0,yymsp[0].minor.yy372);}
2177
#line 2177 "parse.c"
2178
/* No destructor defined for PRIMARY */
2179
/* No destructor defined for KEY */
2180
/* No destructor defined for sortorder */
2184
{sqliteCreateIndex(pParse,0,0,0,yymsp[0].minor.yy372,0,0);}
2185
#line 2185 "parse.c"
2186
/* No destructor defined for UNIQUE */
2189
/* No destructor defined for CHECK */
2190
/* No destructor defined for LP */
2191
yy_destructor(158,&yymsp[-2].minor);
2192
/* No destructor defined for RP */
2193
/* No destructor defined for onconf */
2197
{sqliteCreateForeignKey(pParse,0,&yymsp[-2].minor.yy298,yymsp[-1].minor.yy320,yymsp[0].minor.yy372);}
2198
#line 2198 "parse.c"
2199
/* No destructor defined for REFERENCES */
2203
{sqliteDeferForeignKey(pParse,yymsp[0].minor.yy372);}
2204
#line 2204 "parse.c"
2209
sqliteAddCollateType(pParse, sqliteCollateType(yymsp[0].minor.yy298.z, yymsp[0].minor.yy298.n));
2211
#line 2211 "parse.c"
2212
/* No destructor defined for COLLATE */
2216
{ yygotominor.yy372 = OE_Restrict * 0x010101; }
2217
#line 2217 "parse.c"
2221
{ yygotominor.yy372 = (yymsp[-1].minor.yy372 & yymsp[0].minor.yy407.mask) | yymsp[0].minor.yy407.value; }
2222
#line 2222 "parse.c"
2226
{ yygotominor.yy407.value = 0; yygotominor.yy407.mask = 0x000000; }
2227
#line 2227 "parse.c"
2228
/* No destructor defined for MATCH */
2229
/* No destructor defined for nm */
2233
{ yygotominor.yy407.value = yymsp[0].minor.yy372; yygotominor.yy407.mask = 0x0000ff; }
2234
#line 2234 "parse.c"
2235
/* No destructor defined for ON */
2236
/* No destructor defined for DELETE */
2240
{ yygotominor.yy407.value = yymsp[0].minor.yy372<<8; yygotominor.yy407.mask = 0x00ff00; }
2241
#line 2241 "parse.c"
2242
/* No destructor defined for ON */
2243
/* No destructor defined for UPDATE */
2247
{ yygotominor.yy407.value = yymsp[0].minor.yy372<<16; yygotominor.yy407.mask = 0xff0000; }
2248
#line 2248 "parse.c"
2249
/* No destructor defined for ON */
2250
/* No destructor defined for INSERT */
2254
{ yygotominor.yy372 = OE_SetNull; }
2255
#line 2255 "parse.c"
2256
/* No destructor defined for SET */
2257
/* No destructor defined for NULL */
2261
{ yygotominor.yy372 = OE_SetDflt; }
2262
#line 2262 "parse.c"
2263
/* No destructor defined for SET */
2264
/* No destructor defined for DEFAULT */
2268
{ yygotominor.yy372 = OE_Cascade; }
2269
#line 2269 "parse.c"
2270
/* No destructor defined for CASCADE */
2274
{ yygotominor.yy372 = OE_Restrict; }
2275
#line 2275 "parse.c"
2276
/* No destructor defined for RESTRICT */
2280
{yygotominor.yy372 = yymsp[0].minor.yy372;}
2281
#line 2281 "parse.c"
2282
/* No destructor defined for NOT */
2283
/* No destructor defined for DEFERRABLE */
2287
{yygotominor.yy372 = yymsp[0].minor.yy372;}
2288
#line 2288 "parse.c"
2289
/* No destructor defined for DEFERRABLE */
2293
{yygotominor.yy372 = 0;}
2294
#line 2294 "parse.c"
2298
{yygotominor.yy372 = 1;}
2299
#line 2299 "parse.c"
2300
/* No destructor defined for INITIALLY */
2301
/* No destructor defined for DEFERRED */
2305
{yygotominor.yy372 = 0;}
2306
#line 2306 "parse.c"
2307
/* No destructor defined for INITIALLY */
2308
/* No destructor defined for IMMEDIATE */
2313
/* No destructor defined for COMMA */
2314
/* No destructor defined for conslist */
2317
/* No destructor defined for conslist */
2318
/* No destructor defined for COMMA */
2319
/* No destructor defined for tcons */
2322
/* No destructor defined for conslist */
2323
/* No destructor defined for tcons */
2326
/* No destructor defined for tcons */
2329
/* No destructor defined for CONSTRAINT */
2330
/* No destructor defined for nm */
2334
{sqliteAddPrimaryKey(pParse,yymsp[-2].minor.yy320,yymsp[0].minor.yy372);}
2335
#line 2335 "parse.c"
2336
/* No destructor defined for PRIMARY */
2337
/* No destructor defined for KEY */
2338
/* No destructor defined for LP */
2339
/* No destructor defined for RP */
2343
{sqliteCreateIndex(pParse,0,0,yymsp[-2].minor.yy320,yymsp[0].minor.yy372,0,0);}
2344
#line 2344 "parse.c"
2345
/* No destructor defined for UNIQUE */
2346
/* No destructor defined for LP */
2347
/* No destructor defined for RP */
2350
/* No destructor defined for CHECK */
2351
yy_destructor(158,&yymsp[-1].minor);
2352
/* No destructor defined for onconf */
2357
sqliteCreateForeignKey(pParse, yymsp[-6].minor.yy320, &yymsp[-3].minor.yy298, yymsp[-2].minor.yy320, yymsp[-1].minor.yy372);
2358
sqliteDeferForeignKey(pParse, yymsp[0].minor.yy372);
2360
#line 2360 "parse.c"
2361
/* No destructor defined for FOREIGN */
2362
/* No destructor defined for KEY */
2363
/* No destructor defined for LP */
2364
/* No destructor defined for RP */
2365
/* No destructor defined for REFERENCES */
2369
{yygotominor.yy372 = 0;}
2370
#line 2370 "parse.c"
2374
{yygotominor.yy372 = yymsp[0].minor.yy372;}
2375
#line 2375 "parse.c"
2379
{ yygotominor.yy372 = OE_Default; }
2380
#line 2380 "parse.c"
2384
{ yygotominor.yy372 = yymsp[0].minor.yy372; }
2385
#line 2385 "parse.c"
2386
/* No destructor defined for ON */
2387
/* No destructor defined for CONFLICT */
2391
{ yygotominor.yy372 = OE_Default; }
2392
#line 2392 "parse.c"
2396
{ yygotominor.yy372 = yymsp[0].minor.yy372; }
2397
#line 2397 "parse.c"
2398
/* No destructor defined for OR */
2402
{ yygotominor.yy372 = OE_Rollback; }
2403
#line 2403 "parse.c"
2404
/* No destructor defined for ROLLBACK */
2408
{ yygotominor.yy372 = OE_Abort; }
2409
#line 2409 "parse.c"
2410
/* No destructor defined for ABORT */
2414
{ yygotominor.yy372 = OE_Fail; }
2415
#line 2415 "parse.c"
2416
/* No destructor defined for FAIL */
2420
{ yygotominor.yy372 = OE_Ignore; }
2421
#line 2421 "parse.c"
2422
/* No destructor defined for IGNORE */
2426
{ yygotominor.yy372 = OE_Replace; }
2427
#line 2427 "parse.c"
2428
/* No destructor defined for REPLACE */
2432
{sqliteDropTable(pParse,&yymsp[0].minor.yy298,0);}
2433
#line 2433 "parse.c"
2434
/* No destructor defined for DROP */
2435
/* No destructor defined for TABLE */
2440
sqliteCreateView(pParse, &yymsp[-5].minor.yy0, &yymsp[-2].minor.yy298, yymsp[0].minor.yy179, yymsp[-4].minor.yy372);
2442
#line 2442 "parse.c"
2443
/* No destructor defined for VIEW */
2444
/* No destructor defined for AS */
2449
sqliteDropTable(pParse, &yymsp[0].minor.yy298, 1);
2451
#line 2451 "parse.c"
2452
/* No destructor defined for DROP */
2453
/* No destructor defined for VIEW */
2458
sqliteSelect(pParse, yymsp[0].minor.yy179, SRT_Callback, 0, 0, 0, 0);
2459
sqliteSelectDelete(yymsp[0].minor.yy179);
2461
#line 2461 "parse.c"
2465
{yygotominor.yy179 = yymsp[0].minor.yy179;}
2466
#line 2466 "parse.c"
2471
if( yymsp[0].minor.yy179 ){
2472
yymsp[0].minor.yy179->op = yymsp[-1].minor.yy372;
2473
yymsp[0].minor.yy179->pPrior = yymsp[-2].minor.yy179;
2475
yygotominor.yy179 = yymsp[0].minor.yy179;
2477
#line 2477 "parse.c"
2481
{yygotominor.yy372 = TK_UNION;}
2482
#line 2482 "parse.c"
2483
/* No destructor defined for UNION */
2487
{yygotominor.yy372 = TK_ALL;}
2488
#line 2488 "parse.c"
2489
/* No destructor defined for UNION */
2490
/* No destructor defined for ALL */
2494
{yygotominor.yy372 = TK_INTERSECT;}
2495
#line 2495 "parse.c"
2496
/* No destructor defined for INTERSECT */
2500
{yygotominor.yy372 = TK_EXCEPT;}
2501
#line 2501 "parse.c"
2502
/* No destructor defined for EXCEPT */
2507
yygotominor.yy179 = sqliteSelectNew(yymsp[-6].minor.yy322,yymsp[-5].minor.yy307,yymsp[-4].minor.yy242,yymsp[-3].minor.yy322,yymsp[-2].minor.yy242,yymsp[-1].minor.yy322,yymsp[-7].minor.yy372,yymsp[0].minor.yy124.limit,yymsp[0].minor.yy124.offset);
2509
#line 2509 "parse.c"
2510
/* No destructor defined for SELECT */
2514
{yygotominor.yy372 = 1;}
2515
#line 2515 "parse.c"
2516
/* No destructor defined for DISTINCT */
2520
{yygotominor.yy372 = 0;}
2521
#line 2521 "parse.c"
2522
/* No destructor defined for ALL */
2526
{yygotominor.yy372 = 0;}
2527
#line 2527 "parse.c"
2531
{yygotominor.yy322 = yymsp[-1].minor.yy322;}
2532
#line 2532 "parse.c"
2533
/* No destructor defined for COMMA */
2537
{yygotominor.yy322 = 0;}
2538
#line 2538 "parse.c"
2543
yygotominor.yy322 = sqliteExprListAppend(yymsp[-2].minor.yy322,yymsp[-1].minor.yy242,yymsp[0].minor.yy298.n?&yymsp[0].minor.yy298:0);
2545
#line 2545 "parse.c"
2550
yygotominor.yy322 = sqliteExprListAppend(yymsp[-1].minor.yy322, sqliteExpr(TK_ALL, 0, 0, 0), 0);
2552
#line 2552 "parse.c"
2553
/* No destructor defined for STAR */
2558
Expr *pRight = sqliteExpr(TK_ALL, 0, 0, 0);
2559
Expr *pLeft = sqliteExpr(TK_ID, 0, 0, &yymsp[-2].minor.yy298);
2560
yygotominor.yy322 = sqliteExprListAppend(yymsp[-3].minor.yy322, sqliteExpr(TK_DOT, pLeft, pRight, 0), 0);
2562
#line 2562 "parse.c"
2563
/* No destructor defined for DOT */
2564
/* No destructor defined for STAR */
2568
{ yygotominor.yy298 = yymsp[0].minor.yy298; }
2569
#line 2569 "parse.c"
2570
/* No destructor defined for AS */
2574
{ yygotominor.yy298 = yymsp[0].minor.yy298; }
2575
#line 2575 "parse.c"
2579
{ yygotominor.yy298.n = 0; }
2580
#line 2580 "parse.c"
2584
{yygotominor.yy307 = sqliteMalloc(sizeof(*yygotominor.yy307));}
2585
#line 2585 "parse.c"
2589
{yygotominor.yy307 = yymsp[0].minor.yy307;}
2590
#line 2590 "parse.c"
2591
/* No destructor defined for FROM */
2596
yygotominor.yy307 = yymsp[-1].minor.yy307;
2597
if( yygotominor.yy307 && yygotominor.yy307->nSrc>0 ) yygotominor.yy307->a[yygotominor.yy307->nSrc-1].jointype = yymsp[0].minor.yy372;
2599
#line 2599 "parse.c"
2603
{yygotominor.yy307 = 0;}
2604
#line 2604 "parse.c"
2609
yygotominor.yy307 = sqliteSrcListAppend(yymsp[-5].minor.yy307,&yymsp[-4].minor.yy298,&yymsp[-3].minor.yy298);
2610
if( yymsp[-2].minor.yy298.n ) sqliteSrcListAddAlias(yygotominor.yy307,&yymsp[-2].minor.yy298);
2611
if( yymsp[-1].minor.yy242 ){
2612
if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pOn = yymsp[-1].minor.yy242; }
2613
else { sqliteExprDelete(yymsp[-1].minor.yy242); }
2615
if( yymsp[0].minor.yy320 ){
2616
if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pUsing = yymsp[0].minor.yy320; }
2617
else { sqliteIdListDelete(yymsp[0].minor.yy320); }
2620
#line 2620 "parse.c"
2625
yygotominor.yy307 = sqliteSrcListAppend(yymsp[-6].minor.yy307,0,0);
2626
yygotominor.yy307->a[yygotominor.yy307->nSrc-1].pSelect = yymsp[-4].minor.yy179;
2627
if( yymsp[-2].minor.yy298.n ) sqliteSrcListAddAlias(yygotominor.yy307,&yymsp[-2].minor.yy298);
2628
if( yymsp[-1].minor.yy242 ){
2629
if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pOn = yymsp[-1].minor.yy242; }
2630
else { sqliteExprDelete(yymsp[-1].minor.yy242); }
2632
if( yymsp[0].minor.yy320 ){
2633
if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pUsing = yymsp[0].minor.yy320; }
2634
else { sqliteIdListDelete(yymsp[0].minor.yy320); }
2637
#line 2637 "parse.c"
2638
/* No destructor defined for LP */
2639
/* No destructor defined for RP */
2643
{yygotominor.yy179 = yymsp[0].minor.yy179;}
2644
#line 2644 "parse.c"
2649
yygotominor.yy179 = sqliteSelectNew(0,yymsp[0].minor.yy307,0,0,0,0,0,-1,0);
2651
#line 2651 "parse.c"
2655
{yygotominor.yy298.z=0; yygotominor.yy298.n=0;}
2656
#line 2656 "parse.c"
2660
{yygotominor.yy298 = yymsp[0].minor.yy298;}
2661
#line 2661 "parse.c"
2662
/* No destructor defined for DOT */
2666
{ yygotominor.yy372 = JT_INNER; }
2667
#line 2667 "parse.c"
2668
/* No destructor defined for COMMA */
2672
{ yygotominor.yy372 = JT_INNER; }
2673
#line 2673 "parse.c"
2674
/* No destructor defined for JOIN */
2678
{ yygotominor.yy372 = sqliteJoinType(pParse,&yymsp[-1].minor.yy0,0,0); }
2679
#line 2679 "parse.c"
2680
/* No destructor defined for JOIN */
2684
{ yygotominor.yy372 = sqliteJoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy298,0); }
2685
#line 2685 "parse.c"
2686
/* No destructor defined for JOIN */
2690
{ yygotominor.yy372 = sqliteJoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy298,&yymsp[-1].minor.yy298); }
2691
#line 2691 "parse.c"
2692
/* No destructor defined for JOIN */
2696
{yygotominor.yy242 = yymsp[0].minor.yy242;}
2697
#line 2697 "parse.c"
2698
/* No destructor defined for ON */
2702
{yygotominor.yy242 = 0;}
2703
#line 2703 "parse.c"
2707
{yygotominor.yy320 = yymsp[-1].minor.yy320;}
2708
#line 2708 "parse.c"
2709
/* No destructor defined for USING */
2710
/* No destructor defined for LP */
2711
/* No destructor defined for RP */
2715
{yygotominor.yy320 = 0;}
2716
#line 2716 "parse.c"
2720
{yygotominor.yy322 = 0;}
2721
#line 2721 "parse.c"
2725
{yygotominor.yy322 = yymsp[0].minor.yy322;}
2726
#line 2726 "parse.c"
2727
/* No destructor defined for ORDER */
2728
/* No destructor defined for BY */
2733
yygotominor.yy322 = sqliteExprListAppend(yymsp[-4].minor.yy322,yymsp[-2].minor.yy242,0);
2734
if( yygotominor.yy322 ) yygotominor.yy322->a[yygotominor.yy322->nExpr-1].sortOrder = yymsp[-1].minor.yy372+yymsp[0].minor.yy372;
2736
#line 2736 "parse.c"
2737
/* No destructor defined for COMMA */
2742
yygotominor.yy322 = sqliteExprListAppend(0,yymsp[-2].minor.yy242,0);
2743
if( yygotominor.yy322 ) yygotominor.yy322->a[0].sortOrder = yymsp[-1].minor.yy372+yymsp[0].minor.yy372;
2745
#line 2745 "parse.c"
2749
{yygotominor.yy242 = yymsp[0].minor.yy242;}
2750
#line 2750 "parse.c"
2754
{yygotominor.yy372 = SQLITE_SO_ASC;}
2755
#line 2755 "parse.c"
2756
/* No destructor defined for ASC */
2760
{yygotominor.yy372 = SQLITE_SO_DESC;}
2761
#line 2761 "parse.c"
2762
/* No destructor defined for DESC */
2766
{yygotominor.yy372 = SQLITE_SO_ASC;}
2767
#line 2767 "parse.c"
2771
{yygotominor.yy372 = SQLITE_SO_UNK;}
2772
#line 2772 "parse.c"
2776
{yygotominor.yy372 = sqliteCollateType(yymsp[0].minor.yy298.z, yymsp[0].minor.yy298.n);}
2777
#line 2777 "parse.c"
2778
/* No destructor defined for COLLATE */
2782
{yygotominor.yy322 = 0;}
2783
#line 2783 "parse.c"
2787
{yygotominor.yy322 = yymsp[0].minor.yy322;}
2788
#line 2788 "parse.c"
2789
/* No destructor defined for GROUP */
2790
/* No destructor defined for BY */
2794
{yygotominor.yy242 = 0;}
2795
#line 2795 "parse.c"
2799
{yygotominor.yy242 = yymsp[0].minor.yy242;}
2800
#line 2800 "parse.c"
2801
/* No destructor defined for HAVING */
2805
{yygotominor.yy124.limit = -1; yygotominor.yy124.offset = 0;}
2806
#line 2806 "parse.c"
2810
{yygotominor.yy124.limit = yymsp[0].minor.yy372; yygotominor.yy124.offset = 0;}
2811
#line 2811 "parse.c"
2812
/* No destructor defined for LIMIT */
2816
{yygotominor.yy124.limit = yymsp[-2].minor.yy372; yygotominor.yy124.offset = yymsp[0].minor.yy372;}
2817
#line 2817 "parse.c"
2818
/* No destructor defined for LIMIT */
2819
/* No destructor defined for OFFSET */
2823
{yygotominor.yy124.limit = yymsp[0].minor.yy372; yygotominor.yy124.offset = yymsp[-2].minor.yy372;}
2824
#line 2824 "parse.c"
2825
/* No destructor defined for LIMIT */
2826
/* No destructor defined for COMMA */
2831
sqliteDeleteFrom(pParse, sqliteSrcListAppend(0,&yymsp[-2].minor.yy298,&yymsp[-1].minor.yy298), yymsp[0].minor.yy242);
2833
#line 2833 "parse.c"
2834
/* No destructor defined for DELETE */
2835
/* No destructor defined for FROM */
2839
{yygotominor.yy242 = 0;}
2840
#line 2840 "parse.c"
2844
{yygotominor.yy242 = yymsp[0].minor.yy242;}
2845
#line 2845 "parse.c"
2846
/* No destructor defined for WHERE */
2850
{sqliteUpdate(pParse,sqliteSrcListAppend(0,&yymsp[-4].minor.yy298,&yymsp[-3].minor.yy298),yymsp[-1].minor.yy322,yymsp[0].minor.yy242,yymsp[-5].minor.yy372);}
2851
#line 2851 "parse.c"
2852
/* No destructor defined for UPDATE */
2853
/* No destructor defined for SET */
2857
{yygotominor.yy322 = sqliteExprListAppend(yymsp[-4].minor.yy322,yymsp[0].minor.yy242,&yymsp[-2].minor.yy298);}
2858
#line 2858 "parse.c"
2859
/* No destructor defined for COMMA */
2860
/* No destructor defined for EQ */
2864
{yygotominor.yy322 = sqliteExprListAppend(0,yymsp[0].minor.yy242,&yymsp[-2].minor.yy298);}
2865
#line 2865 "parse.c"
2866
/* No destructor defined for EQ */
2870
{sqliteInsert(pParse, sqliteSrcListAppend(0,&yymsp[-6].minor.yy298,&yymsp[-5].minor.yy298), yymsp[-1].minor.yy322, 0, yymsp[-4].minor.yy320, yymsp[-8].minor.yy372);}
2871
#line 2871 "parse.c"
2872
/* No destructor defined for INTO */
2873
/* No destructor defined for VALUES */
2874
/* No destructor defined for LP */
2875
/* No destructor defined for RP */
2879
{sqliteInsert(pParse, sqliteSrcListAppend(0,&yymsp[-3].minor.yy298,&yymsp[-2].minor.yy298), 0, yymsp[0].minor.yy179, yymsp[-1].minor.yy320, yymsp[-5].minor.yy372);}
2880
#line 2880 "parse.c"
2881
/* No destructor defined for INTO */
2885
{yygotominor.yy372 = yymsp[0].minor.yy372;}
2886
#line 2886 "parse.c"
2887
/* No destructor defined for INSERT */
2891
{yygotominor.yy372 = OE_Replace;}
2892
#line 2892 "parse.c"
2893
/* No destructor defined for REPLACE */
2897
{yygotominor.yy322 = sqliteExprListAppend(yymsp[-2].minor.yy322,yymsp[0].minor.yy242,0);}
2898
#line 2898 "parse.c"
2899
/* No destructor defined for COMMA */
2903
{yygotominor.yy322 = sqliteExprListAppend(0,yymsp[0].minor.yy242,0);}
2904
#line 2904 "parse.c"
2908
{yygotominor.yy320 = 0;}
2909
#line 2909 "parse.c"
2913
{yygotominor.yy320 = yymsp[-1].minor.yy320;}
2914
#line 2914 "parse.c"
2915
/* No destructor defined for LP */
2916
/* No destructor defined for RP */
2920
{yygotominor.yy320 = sqliteIdListAppend(yymsp[-2].minor.yy320,&yymsp[0].minor.yy298);}
2921
#line 2921 "parse.c"
2922
/* No destructor defined for COMMA */
2926
{yygotominor.yy320 = sqliteIdListAppend(0,&yymsp[0].minor.yy298);}
2927
#line 2927 "parse.c"
2931
{yygotominor.yy242 = yymsp[-1].minor.yy242; sqliteExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); }
2932
#line 2932 "parse.c"
2936
{yygotominor.yy242 = sqliteExpr(TK_NULL, 0, 0, &yymsp[0].minor.yy0);}
2937
#line 2937 "parse.c"
2941
{yygotominor.yy242 = sqliteExpr(TK_ID, 0, 0, &yymsp[0].minor.yy0);}
2942
#line 2942 "parse.c"
2946
{yygotominor.yy242 = sqliteExpr(TK_ID, 0, 0, &yymsp[0].minor.yy0);}
2947
#line 2947 "parse.c"
2952
Expr *temp1 = sqliteExpr(TK_ID, 0, 0, &yymsp[-2].minor.yy298);
2953
Expr *temp2 = sqliteExpr(TK_ID, 0, 0, &yymsp[0].minor.yy298);
2954
yygotominor.yy242 = sqliteExpr(TK_DOT, temp1, temp2, 0);
2956
#line 2956 "parse.c"
2957
/* No destructor defined for DOT */
2962
Expr *temp1 = sqliteExpr(TK_ID, 0, 0, &yymsp[-4].minor.yy298);
2963
Expr *temp2 = sqliteExpr(TK_ID, 0, 0, &yymsp[-2].minor.yy298);
2964
Expr *temp3 = sqliteExpr(TK_ID, 0, 0, &yymsp[0].minor.yy298);
2965
Expr *temp4 = sqliteExpr(TK_DOT, temp2, temp3, 0);
2966
yygotominor.yy242 = sqliteExpr(TK_DOT, temp1, temp4, 0);
2968
#line 2968 "parse.c"
2969
/* No destructor defined for DOT */
2970
/* No destructor defined for DOT */
2974
{yygotominor.yy242 = sqliteExpr(TK_INTEGER, 0, 0, &yymsp[0].minor.yy0);}
2975
#line 2975 "parse.c"
2979
{yygotominor.yy242 = sqliteExpr(TK_FLOAT, 0, 0, &yymsp[0].minor.yy0);}
2980
#line 2980 "parse.c"
2984
{yygotominor.yy242 = sqliteExpr(TK_STRING, 0, 0, &yymsp[0].minor.yy0);}
2985
#line 2985 "parse.c"
2990
yygotominor.yy242 = sqliteExpr(TK_VARIABLE, 0, 0, &yymsp[0].minor.yy0);
2991
if( yygotominor.yy242 ) yygotominor.yy242->iTable = ++pParse->nVar;
2993
#line 2993 "parse.c"
2998
yygotominor.yy242 = sqliteExprFunction(yymsp[-1].minor.yy322, &yymsp[-3].minor.yy0);
2999
sqliteExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
3001
#line 3001 "parse.c"
3002
/* No destructor defined for LP */
3007
yygotominor.yy242 = sqliteExprFunction(0, &yymsp[-3].minor.yy0);
3008
sqliteExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
3010
#line 3010 "parse.c"
3011
/* No destructor defined for LP */
3012
/* No destructor defined for STAR */
3016
{yygotominor.yy242 = sqliteExpr(TK_AND, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3017
#line 3017 "parse.c"
3018
/* No destructor defined for AND */
3022
{yygotominor.yy242 = sqliteExpr(TK_OR, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3023
#line 3023 "parse.c"
3024
/* No destructor defined for OR */
3028
{yygotominor.yy242 = sqliteExpr(TK_LT, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3029
#line 3029 "parse.c"
3030
/* No destructor defined for LT */
3034
{yygotominor.yy242 = sqliteExpr(TK_GT, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3035
#line 3035 "parse.c"
3036
/* No destructor defined for GT */
3040
{yygotominor.yy242 = sqliteExpr(TK_LE, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3041
#line 3041 "parse.c"
3042
/* No destructor defined for LE */
3046
{yygotominor.yy242 = sqliteExpr(TK_GE, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3047
#line 3047 "parse.c"
3048
/* No destructor defined for GE */
3052
{yygotominor.yy242 = sqliteExpr(TK_NE, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3053
#line 3053 "parse.c"
3054
/* No destructor defined for NE */
3058
{yygotominor.yy242 = sqliteExpr(TK_EQ, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3059
#line 3059 "parse.c"
3060
/* No destructor defined for EQ */
3064
{yygotominor.yy242 = sqliteExpr(TK_BITAND, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3065
#line 3065 "parse.c"
3066
/* No destructor defined for BITAND */
3070
{yygotominor.yy242 = sqliteExpr(TK_BITOR, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3071
#line 3071 "parse.c"
3072
/* No destructor defined for BITOR */
3076
{yygotominor.yy242 = sqliteExpr(TK_LSHIFT, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3077
#line 3077 "parse.c"
3078
/* No destructor defined for LSHIFT */
3082
{yygotominor.yy242 = sqliteExpr(TK_RSHIFT, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3083
#line 3083 "parse.c"
3084
/* No destructor defined for RSHIFT */
3089
ExprList *pList = sqliteExprListAppend(0, yymsp[0].minor.yy242, 0);
3090
pList = sqliteExprListAppend(pList, yymsp[-2].minor.yy242, 0);
3091
yygotominor.yy242 = sqliteExprFunction(pList, 0);
3092
if( yygotominor.yy242 ) yygotominor.yy242->op = yymsp[-1].minor.yy372;
3093
sqliteExprSpan(yygotominor.yy242, &yymsp[-2].minor.yy242->span, &yymsp[0].minor.yy242->span);
3095
#line 3095 "parse.c"
3100
ExprList *pList = sqliteExprListAppend(0, yymsp[0].minor.yy242, 0);
3101
pList = sqliteExprListAppend(pList, yymsp[-3].minor.yy242, 0);
3102
yygotominor.yy242 = sqliteExprFunction(pList, 0);
3103
if( yygotominor.yy242 ) yygotominor.yy242->op = yymsp[-1].minor.yy372;
3104
yygotominor.yy242 = sqliteExpr(TK_NOT, yygotominor.yy242, 0, 0);
3105
sqliteExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy242->span,&yymsp[0].minor.yy242->span);
3107
#line 3107 "parse.c"
3108
/* No destructor defined for NOT */
3112
{yygotominor.yy372 = TK_LIKE;}
3113
#line 3113 "parse.c"
3114
/* No destructor defined for LIKE */
3118
{yygotominor.yy372 = TK_GLOB;}
3119
#line 3119 "parse.c"
3120
/* No destructor defined for GLOB */
3124
{yygotominor.yy242 = sqliteExpr(TK_PLUS, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3125
#line 3125 "parse.c"
3126
/* No destructor defined for PLUS */
3130
{yygotominor.yy242 = sqliteExpr(TK_MINUS, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3131
#line 3131 "parse.c"
3132
/* No destructor defined for MINUS */
3136
{yygotominor.yy242 = sqliteExpr(TK_STAR, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3137
#line 3137 "parse.c"
3138
/* No destructor defined for STAR */
3142
{yygotominor.yy242 = sqliteExpr(TK_SLASH, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3143
#line 3143 "parse.c"
3144
/* No destructor defined for SLASH */
3148
{yygotominor.yy242 = sqliteExpr(TK_REM, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3149
#line 3149 "parse.c"
3150
/* No destructor defined for REM */
3154
{yygotominor.yy242 = sqliteExpr(TK_CONCAT, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);}
3155
#line 3155 "parse.c"
3156
/* No destructor defined for CONCAT */
3161
yygotominor.yy242 = sqliteExpr(TK_ISNULL, yymsp[-1].minor.yy242, 0, 0);
3162
sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy242->span,&yymsp[0].minor.yy0);
3164
#line 3164 "parse.c"
3169
yygotominor.yy242 = sqliteExpr(TK_ISNULL, yymsp[-2].minor.yy242, 0, 0);
3170
sqliteExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy242->span,&yymsp[0].minor.yy0);
3172
#line 3172 "parse.c"
3173
/* No destructor defined for IS */
3178
yygotominor.yy242 = sqliteExpr(TK_NOTNULL, yymsp[-1].minor.yy242, 0, 0);
3179
sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy242->span,&yymsp[0].minor.yy0);
3181
#line 3181 "parse.c"
3186
yygotominor.yy242 = sqliteExpr(TK_NOTNULL, yymsp[-2].minor.yy242, 0, 0);
3187
sqliteExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy242->span,&yymsp[0].minor.yy0);
3189
#line 3189 "parse.c"
3190
/* No destructor defined for NOT */
3195
yygotominor.yy242 = sqliteExpr(TK_NOTNULL, yymsp[-3].minor.yy242, 0, 0);
3196
sqliteExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy242->span,&yymsp[0].minor.yy0);
3198
#line 3198 "parse.c"
3199
/* No destructor defined for IS */
3200
/* No destructor defined for NOT */
3205
yygotominor.yy242 = sqliteExpr(TK_NOT, yymsp[0].minor.yy242, 0, 0);
3206
sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy242->span);
3208
#line 3208 "parse.c"
3213
yygotominor.yy242 = sqliteExpr(TK_BITNOT, yymsp[0].minor.yy242, 0, 0);
3214
sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy242->span);
3216
#line 3216 "parse.c"
3221
yygotominor.yy242 = sqliteExpr(TK_UMINUS, yymsp[0].minor.yy242, 0, 0);
3222
sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy242->span);
3224
#line 3224 "parse.c"
3229
yygotominor.yy242 = sqliteExpr(TK_UPLUS, yymsp[0].minor.yy242, 0, 0);
3230
sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy242->span);
3232
#line 3232 "parse.c"
3237
yygotominor.yy242 = sqliteExpr(TK_SELECT, 0, 0, 0);
3238
if( yygotominor.yy242 ) yygotominor.yy242->pSelect = yymsp[-1].minor.yy179;
3239
sqliteExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
3241
#line 3241 "parse.c"
3246
ExprList *pList = sqliteExprListAppend(0, yymsp[-2].minor.yy242, 0);
3247
pList = sqliteExprListAppend(pList, yymsp[0].minor.yy242, 0);
3248
yygotominor.yy242 = sqliteExpr(TK_BETWEEN, yymsp[-4].minor.yy242, 0, 0);
3249
if( yygotominor.yy242 ) yygotominor.yy242->pList = pList;
3250
sqliteExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,&yymsp[0].minor.yy242->span);
3252
#line 3252 "parse.c"
3253
/* No destructor defined for BETWEEN */
3254
/* No destructor defined for AND */
3259
ExprList *pList = sqliteExprListAppend(0, yymsp[-2].minor.yy242, 0);
3260
pList = sqliteExprListAppend(pList, yymsp[0].minor.yy242, 0);
3261
yygotominor.yy242 = sqliteExpr(TK_BETWEEN, yymsp[-5].minor.yy242, 0, 0);
3262
if( yygotominor.yy242 ) yygotominor.yy242->pList = pList;
3263
yygotominor.yy242 = sqliteExpr(TK_NOT, yygotominor.yy242, 0, 0);
3264
sqliteExprSpan(yygotominor.yy242,&yymsp[-5].minor.yy242->span,&yymsp[0].minor.yy242->span);
3266
#line 3266 "parse.c"
3267
/* No destructor defined for NOT */
3268
/* No destructor defined for BETWEEN */
3269
/* No destructor defined for AND */
3274
yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-4].minor.yy242, 0, 0);
3275
if( yygotominor.yy242 ) yygotominor.yy242->pList = yymsp[-1].minor.yy322;
3276
sqliteExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,&yymsp[0].minor.yy0);
3278
#line 3278 "parse.c"
3279
/* No destructor defined for IN */
3280
/* No destructor defined for LP */
3285
yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-4].minor.yy242, 0, 0);
3286
if( yygotominor.yy242 ) yygotominor.yy242->pSelect = yymsp[-1].minor.yy179;
3287
sqliteExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,&yymsp[0].minor.yy0);
3289
#line 3289 "parse.c"
3290
/* No destructor defined for IN */
3291
/* No destructor defined for LP */
3296
yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-5].minor.yy242, 0, 0);
3297
if( yygotominor.yy242 ) yygotominor.yy242->pList = yymsp[-1].minor.yy322;
3298
yygotominor.yy242 = sqliteExpr(TK_NOT, yygotominor.yy242, 0, 0);
3299
sqliteExprSpan(yygotominor.yy242,&yymsp[-5].minor.yy242->span,&yymsp[0].minor.yy0);
3301
#line 3301 "parse.c"
3302
/* No destructor defined for NOT */
3303
/* No destructor defined for IN */
3304
/* No destructor defined for LP */
3309
yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-5].minor.yy242, 0, 0);
3310
if( yygotominor.yy242 ) yygotominor.yy242->pSelect = yymsp[-1].minor.yy179;
3311
yygotominor.yy242 = sqliteExpr(TK_NOT, yygotominor.yy242, 0, 0);
3312
sqliteExprSpan(yygotominor.yy242,&yymsp[-5].minor.yy242->span,&yymsp[0].minor.yy0);
3314
#line 3314 "parse.c"
3315
/* No destructor defined for NOT */
3316
/* No destructor defined for IN */
3317
/* No destructor defined for LP */
3322
SrcList *pSrc = sqliteSrcListAppend(0, &yymsp[-1].minor.yy298, &yymsp[0].minor.yy298);
3323
yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-3].minor.yy242, 0, 0);
3324
if( yygotominor.yy242 ) yygotominor.yy242->pSelect = sqliteSelectNew(0,pSrc,0,0,0,0,0,-1,0);
3325
sqliteExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy242->span,yymsp[0].minor.yy298.z?&yymsp[0].minor.yy298:&yymsp[-1].minor.yy298);
3327
#line 3327 "parse.c"
3328
/* No destructor defined for IN */
3333
SrcList *pSrc = sqliteSrcListAppend(0, &yymsp[-1].minor.yy298, &yymsp[0].minor.yy298);
3334
yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-4].minor.yy242, 0, 0);
3335
if( yygotominor.yy242 ) yygotominor.yy242->pSelect = sqliteSelectNew(0,pSrc,0,0,0,0,0,-1,0);
3336
yygotominor.yy242 = sqliteExpr(TK_NOT, yygotominor.yy242, 0, 0);
3337
sqliteExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,yymsp[0].minor.yy298.z?&yymsp[0].minor.yy298:&yymsp[-1].minor.yy298);
3339
#line 3339 "parse.c"
3340
/* No destructor defined for NOT */
3341
/* No destructor defined for IN */
3346
yygotominor.yy242 = sqliteExpr(TK_CASE, yymsp[-3].minor.yy242, yymsp[-1].minor.yy242, 0);
3347
if( yygotominor.yy242 ) yygotominor.yy242->pList = yymsp[-2].minor.yy322;
3348
sqliteExprSpan(yygotominor.yy242, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0);
3350
#line 3350 "parse.c"
3355
yygotominor.yy322 = sqliteExprListAppend(yymsp[-4].minor.yy322, yymsp[-2].minor.yy242, 0);
3356
yygotominor.yy322 = sqliteExprListAppend(yygotominor.yy322, yymsp[0].minor.yy242, 0);
3358
#line 3358 "parse.c"
3359
/* No destructor defined for WHEN */
3360
/* No destructor defined for THEN */
3365
yygotominor.yy322 = sqliteExprListAppend(0, yymsp[-2].minor.yy242, 0);
3366
yygotominor.yy322 = sqliteExprListAppend(yygotominor.yy322, yymsp[0].minor.yy242, 0);
3368
#line 3368 "parse.c"
3369
/* No destructor defined for WHEN */
3370
/* No destructor defined for THEN */
3374
{yygotominor.yy242 = yymsp[0].minor.yy242;}
3375
#line 3375 "parse.c"
3376
/* No destructor defined for ELSE */
3380
{yygotominor.yy242 = 0;}
3381
#line 3381 "parse.c"
3385
{yygotominor.yy242 = yymsp[0].minor.yy242;}
3386
#line 3386 "parse.c"
3390
{yygotominor.yy242 = 0;}
3391
#line 3391 "parse.c"
3395
{yygotominor.yy322 = sqliteExprListAppend(yymsp[-2].minor.yy322,yymsp[0].minor.yy242,0);}
3396
#line 3396 "parse.c"
3397
/* No destructor defined for COMMA */
3401
{yygotominor.yy322 = sqliteExprListAppend(0,yymsp[0].minor.yy242,0);}
3402
#line 3402 "parse.c"
3406
{yygotominor.yy242 = yymsp[0].minor.yy242;}
3407
#line 3407 "parse.c"
3411
{yygotominor.yy242 = 0;}
3412
#line 3412 "parse.c"
3417
SrcList *pSrc = sqliteSrcListAppend(0, &yymsp[-5].minor.yy298, &yymsp[-4].minor.yy298);
3418
if( yymsp[-9].minor.yy372!=OE_None ) yymsp[-9].minor.yy372 = yymsp[0].minor.yy372;
3419
if( yymsp[-9].minor.yy372==OE_Default) yymsp[-9].minor.yy372 = OE_Abort;
3420
sqliteCreateIndex(pParse, &yymsp[-7].minor.yy298, pSrc, yymsp[-2].minor.yy320, yymsp[-9].minor.yy372, &yymsp[-10].minor.yy0, &yymsp[-1].minor.yy0);
3422
#line 3422 "parse.c"
3423
/* No destructor defined for INDEX */
3424
/* No destructor defined for ON */
3425
/* No destructor defined for LP */
3429
{ yygotominor.yy372 = OE_Abort; }
3430
#line 3430 "parse.c"
3431
/* No destructor defined for UNIQUE */
3435
{ yygotominor.yy372 = OE_None; }
3436
#line 3436 "parse.c"
3440
{yygotominor.yy320 = 0;}
3441
#line 3441 "parse.c"
3445
{yygotominor.yy320 = yymsp[-1].minor.yy320;}
3446
#line 3446 "parse.c"
3447
/* No destructor defined for LP */
3448
/* No destructor defined for RP */
3452
{yygotominor.yy320 = sqliteIdListAppend(yymsp[-2].minor.yy320,&yymsp[0].minor.yy298);}
3453
#line 3453 "parse.c"
3454
/* No destructor defined for COMMA */
3458
{yygotominor.yy320 = sqliteIdListAppend(0,&yymsp[0].minor.yy298);}
3459
#line 3459 "parse.c"
3463
{yygotominor.yy298 = yymsp[-1].minor.yy298;}
3464
#line 3464 "parse.c"
3465
/* No destructor defined for sortorder */
3470
sqliteDropIndex(pParse, sqliteSrcListAppend(0,&yymsp[-1].minor.yy298,&yymsp[0].minor.yy298));
3472
#line 3472 "parse.c"
3473
/* No destructor defined for DROP */
3474
/* No destructor defined for INDEX */
3478
{sqliteCopy(pParse,sqliteSrcListAppend(0,&yymsp[-6].minor.yy298,&yymsp[-5].minor.yy298),&yymsp[-3].minor.yy298,&yymsp[0].minor.yy0,yymsp[-7].minor.yy372);}
3479
#line 3479 "parse.c"
3480
/* No destructor defined for COPY */
3481
/* No destructor defined for FROM */
3482
/* No destructor defined for USING */
3483
/* No destructor defined for DELIMITERS */
3487
{sqliteCopy(pParse,sqliteSrcListAppend(0,&yymsp[-3].minor.yy298,&yymsp[-2].minor.yy298),&yymsp[0].minor.yy298,0,yymsp[-4].minor.yy372);}
3488
#line 3488 "parse.c"
3489
/* No destructor defined for COPY */
3490
/* No destructor defined for FROM */
3494
{sqliteVacuum(pParse,0);}
3495
#line 3495 "parse.c"
3496
/* No destructor defined for VACUUM */
3500
{sqliteVacuum(pParse,&yymsp[0].minor.yy298);}
3501
#line 3501 "parse.c"
3502
/* No destructor defined for VACUUM */
3506
{sqlitePragma(pParse,&yymsp[-2].minor.yy298,&yymsp[0].minor.yy298,0);}
3507
#line 3507 "parse.c"
3508
/* No destructor defined for PRAGMA */
3509
/* No destructor defined for EQ */
3513
{sqlitePragma(pParse,&yymsp[-2].minor.yy298,&yymsp[0].minor.yy0,0);}
3514
#line 3514 "parse.c"
3515
/* No destructor defined for PRAGMA */
3516
/* No destructor defined for EQ */
3520
{sqlitePragma(pParse,&yymsp[-2].minor.yy298,&yymsp[0].minor.yy298,0);}
3521
#line 3521 "parse.c"
3522
/* No destructor defined for PRAGMA */
3523
/* No destructor defined for EQ */
3527
{sqlitePragma(pParse,&yymsp[-2].minor.yy298,&yymsp[0].minor.yy298,1);}
3528
#line 3528 "parse.c"
3529
/* No destructor defined for PRAGMA */
3530
/* No destructor defined for EQ */
3534
{sqlitePragma(pParse,&yymsp[-3].minor.yy298,&yymsp[-1].minor.yy298,0);}
3535
#line 3535 "parse.c"
3536
/* No destructor defined for PRAGMA */
3537
/* No destructor defined for LP */
3538
/* No destructor defined for RP */
3542
{sqlitePragma(pParse,&yymsp[0].minor.yy298,&yymsp[0].minor.yy298,0);}
3543
#line 3543 "parse.c"
3544
/* No destructor defined for PRAGMA */
3548
{yygotominor.yy298 = yymsp[0].minor.yy298;}
3549
#line 3549 "parse.c"
3550
/* No destructor defined for plus_opt */
3554
{yygotominor.yy298 = yymsp[0].minor.yy298;}
3555
#line 3555 "parse.c"
3556
/* No destructor defined for MINUS */
3560
{yygotominor.yy298 = yymsp[0].minor.yy0;}
3561
#line 3561 "parse.c"
3565
{yygotominor.yy298 = yymsp[0].minor.yy0;}
3566
#line 3566 "parse.c"
3569
/* No destructor defined for PLUS */
3577
all.z = yymsp[-4].minor.yy0.z;
3578
all.n = (yymsp[0].minor.yy0.z - yymsp[-4].minor.yy0.z) + yymsp[0].minor.yy0.n;
3579
sqliteFinishTrigger(pParse, yymsp[-1].minor.yy19, &all);
3581
#line 3581 "parse.c"
3582
/* No destructor defined for trigger_decl */
3583
/* No destructor defined for BEGIN */
3588
SrcList *pTab = sqliteSrcListAppend(0, &yymsp[-3].minor.yy298, &yymsp[-2].minor.yy298);
3589
sqliteBeginTrigger(pParse, &yymsp[-7].minor.yy298, yymsp[-6].minor.yy372, yymsp[-5].minor.yy290.a, yymsp[-5].minor.yy290.b, pTab, yymsp[-1].minor.yy372, yymsp[0].minor.yy182, yymsp[-9].minor.yy372);
3591
#line 3591 "parse.c"
3592
/* No destructor defined for TRIGGER */
3593
/* No destructor defined for ON */
3597
{ yygotominor.yy372 = TK_BEFORE; }
3598
#line 3598 "parse.c"
3599
/* No destructor defined for BEFORE */
3603
{ yygotominor.yy372 = TK_AFTER; }
3604
#line 3604 "parse.c"
3605
/* No destructor defined for AFTER */
3609
{ yygotominor.yy372 = TK_INSTEAD;}
3610
#line 3610 "parse.c"
3611
/* No destructor defined for INSTEAD */
3612
/* No destructor defined for OF */
3616
{ yygotominor.yy372 = TK_BEFORE; }
3617
#line 3617 "parse.c"
3621
{ yygotominor.yy290.a = TK_DELETE; yygotominor.yy290.b = 0; }
3622
#line 3622 "parse.c"
3623
/* No destructor defined for DELETE */
3627
{ yygotominor.yy290.a = TK_INSERT; yygotominor.yy290.b = 0; }
3628
#line 3628 "parse.c"
3629
/* No destructor defined for INSERT */
3633
{ yygotominor.yy290.a = TK_UPDATE; yygotominor.yy290.b = 0;}
3634
#line 3634 "parse.c"
3635
/* No destructor defined for UPDATE */
3639
{yygotominor.yy290.a = TK_UPDATE; yygotominor.yy290.b = yymsp[0].minor.yy320; }
3640
#line 3640 "parse.c"
3641
/* No destructor defined for UPDATE */
3642
/* No destructor defined for OF */
3646
{ yygotominor.yy372 = TK_ROW; }
3647
#line 3647 "parse.c"
3651
{ yygotominor.yy372 = TK_ROW; }
3652
#line 3652 "parse.c"
3653
/* No destructor defined for FOR */
3654
/* No destructor defined for EACH */
3655
/* No destructor defined for ROW */
3659
{ yygotominor.yy372 = TK_STATEMENT; }
3660
#line 3660 "parse.c"
3661
/* No destructor defined for FOR */
3662
/* No destructor defined for EACH */
3663
/* No destructor defined for STATEMENT */
3667
{ yygotominor.yy182 = 0; }
3668
#line 3668 "parse.c"
3672
{ yygotominor.yy182 = yymsp[0].minor.yy242; }
3673
#line 3673 "parse.c"
3674
/* No destructor defined for WHEN */
3679
yymsp[-2].minor.yy19->pNext = yymsp[0].minor.yy19;
3680
yygotominor.yy19 = yymsp[-2].minor.yy19;
3682
#line 3682 "parse.c"
3683
/* No destructor defined for SEMI */
3687
{ yygotominor.yy19 = 0; }
3688
#line 3688 "parse.c"
3692
{ yygotominor.yy19 = sqliteTriggerUpdateStep(&yymsp[-3].minor.yy298, yymsp[-1].minor.yy322, yymsp[0].minor.yy242, yymsp[-4].minor.yy372); }
3693
#line 3693 "parse.c"
3694
/* No destructor defined for UPDATE */
3695
/* No destructor defined for SET */
3699
{yygotominor.yy19 = sqliteTriggerInsertStep(&yymsp[-5].minor.yy298, yymsp[-4].minor.yy320, yymsp[-1].minor.yy322, 0, yymsp[-7].minor.yy372);}
3700
#line 3700 "parse.c"
3701
/* No destructor defined for INTO */
3702
/* No destructor defined for VALUES */
3703
/* No destructor defined for LP */
3704
/* No destructor defined for RP */
3708
{yygotominor.yy19 = sqliteTriggerInsertStep(&yymsp[-2].minor.yy298, yymsp[-1].minor.yy320, 0, yymsp[0].minor.yy179, yymsp[-4].minor.yy372);}
3709
#line 3709 "parse.c"
3710
/* No destructor defined for INTO */
3714
{yygotominor.yy19 = sqliteTriggerDeleteStep(&yymsp[-1].minor.yy298, yymsp[0].minor.yy242);}
3715
#line 3715 "parse.c"
3716
/* No destructor defined for DELETE */
3717
/* No destructor defined for FROM */
3721
{yygotominor.yy19 = sqliteTriggerSelectStep(yymsp[0].minor.yy179); }
3722
#line 3722 "parse.c"
3727
yygotominor.yy242 = sqliteExpr(TK_RAISE, 0, 0, 0);
3728
yygotominor.yy242->iColumn = OE_Ignore;
3729
sqliteExprSpan(yygotominor.yy242, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0);
3731
#line 3731 "parse.c"
3732
/* No destructor defined for LP */
3733
/* No destructor defined for IGNORE */
3738
yygotominor.yy242 = sqliteExpr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy298);
3739
yygotominor.yy242->iColumn = OE_Rollback;
3740
sqliteExprSpan(yygotominor.yy242, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0);
3742
#line 3742 "parse.c"
3743
/* No destructor defined for LP */
3744
/* No destructor defined for ROLLBACK */
3745
/* No destructor defined for COMMA */
3750
yygotominor.yy242 = sqliteExpr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy298);
3751
yygotominor.yy242->iColumn = OE_Abort;
3752
sqliteExprSpan(yygotominor.yy242, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0);
3754
#line 3754 "parse.c"
3755
/* No destructor defined for LP */
3756
/* No destructor defined for ABORT */
3757
/* No destructor defined for COMMA */
3762
yygotominor.yy242 = sqliteExpr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy298);
3763
yygotominor.yy242->iColumn = OE_Fail;
3764
sqliteExprSpan(yygotominor.yy242, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0);
3766
#line 3766 "parse.c"
3767
/* No destructor defined for LP */
3768
/* No destructor defined for FAIL */
3769
/* No destructor defined for COMMA */
3774
sqliteDropTrigger(pParse,sqliteSrcListAppend(0,&yymsp[-1].minor.yy298,&yymsp[0].minor.yy298));
3776
#line 3776 "parse.c"
3777
/* No destructor defined for DROP */
3778
/* No destructor defined for TRIGGER */
3783
sqliteAttach(pParse, &yymsp[-3].minor.yy298, &yymsp[-1].minor.yy298, &yymsp[0].minor.yy298);
3785
#line 3785 "parse.c"
3786
/* No destructor defined for ATTACH */
3787
/* No destructor defined for database_kw_opt */
3788
/* No destructor defined for AS */
3792
{ yygotominor.yy298 = yymsp[0].minor.yy298; }
3793
#line 3793 "parse.c"
3794
/* No destructor defined for USING */
3798
{ yygotominor.yy298.z = 0; yygotominor.yy298.n = 0; }
3799
#line 3799 "parse.c"
3802
/* No destructor defined for DATABASE */
3809
sqliteDetach(pParse, &yymsp[0].minor.yy298);
3811
#line 3811 "parse.c"
3812
/* No destructor defined for DETACH */
3813
/* No destructor defined for database_kw_opt */
3816
yygoto = yyRuleInfo[yyruleno].lhs;
3817
yysize = yyRuleInfo[yyruleno].nrhs;
3818
yypParser->yyidx -= yysize;
3819
yyact = yy_find_reduce_action(yypParser,yygoto);
3820
if( yyact < YYNSTATE ){
3821
yy_shift(yypParser,yyact,yygoto,&yygotominor);
3822
}else if( yyact == YYNSTATE + YYNRULE + 1 ){
3823
yy_accept(yypParser);
3828
** The following code executes when the parse fails
3830
static void yy_parse_failed(
3831
yyParser *yypParser /* The parser */
3833
sqliteParserARG_FETCH;
3836
fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt);
3839
while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
3840
/* Here code is inserted which will be executed whenever the
3842
sqliteParserARG_STORE; /* Suppress warning about unused %extra_argument variable */
3846
** The following code executes when a syntax error first occurs.
3848
static void yy_syntax_error(
3849
yyParser *yypParser, /* The parser */
3850
int yymajor, /* The major type of the error token */
3851
YYMINORTYPE yyminor /* The minor type of the error token */
3853
sqliteParserARG_FETCH;
3854
#define TOKEN (yyminor.yy0)
3857
if( pParse->zErrMsg==0 ){
3859
sqliteErrorMsg(pParse, "near \"%T\": syntax error", &TOKEN);
3861
sqliteErrorMsg(pParse, "incomplete SQL statement");
3865
#line 3865 "parse.c"
3866
sqliteParserARG_STORE; /* Suppress warning about unused %extra_argument variable */
3870
** The following is executed when the parser accepts
3872
static void yy_accept(
3873
yyParser *yypParser /* The parser */
3875
sqliteParserARG_FETCH;
3878
fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt);
3881
while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
3882
/* Here code is inserted which will be executed whenever the
3883
** parser accepts */
3884
sqliteParserARG_STORE; /* Suppress warning about unused %extra_argument variable */
3887
/* The main parser program.
3888
** The first argument is a pointer to a structure obtained from
3889
** "sqliteParserAlloc" which describes the current state of the parser.
3890
** The second argument is the major token number. The third is
3891
** the minor token. The fourth optional argument is whatever the
3892
** user wants (and specified in the grammar) and is available for
3893
** use by the action routines.
3897
** <li> A pointer to the parser (an opaque structure.)
3898
** <li> The major token number.
3899
** <li> The minor token number.
3900
** <li> An option argument of a grammar-specified type.
3907
void *yyp, /* The parser */
3908
int yymajor, /* The major token code number */
3909
sqliteParserTOKENTYPE yyminor /* The value for the token */
3910
sqliteParserARG_PDECL /* Optional %extra_argument parameter */
3912
YYMINORTYPE yyminorunion;
3913
int yyact; /* The parser action. */
3914
int yyendofinput; /* True if we are at the end of input */
3915
int yyerrorhit = 0; /* True if yymajor has invoked an error */
3916
yyParser *yypParser; /* The parser */
3918
/* (re)initialize the parser, if necessary */
3919
yypParser = (yyParser*)yyp;
3920
if( yypParser->yyidx<0 ){
3921
if( yymajor==0 ) return;
3922
yypParser->yyidx = 0;
3923
yypParser->yyerrcnt = -1;
3924
yypParser->yystack[0].stateno = 0;
3925
yypParser->yystack[0].major = 0;
3927
yyminorunion.yy0 = yyminor;
3928
yyendofinput = (yymajor==0);
3929
sqliteParserARG_STORE;
3933
fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]);
3938
yyact = yy_find_shift_action(yypParser,yymajor);
3939
if( yyact<YYNSTATE ){
3940
yy_shift(yypParser,yyact,yymajor,&yyminorunion);
3941
yypParser->yyerrcnt--;
3942
if( yyendofinput && yypParser->yyidx>=0 ){
3947
}else if( yyact < YYNSTATE + YYNRULE ){
3948
yy_reduce(yypParser,yyact-YYNSTATE);
3949
}else if( yyact == YY_ERROR_ACTION ){
3953
fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt);
3956
#ifdef YYERRORSYMBOL
3957
/* A syntax error has occurred.
3958
** The response to an error depends upon whether or not the
3959
** grammar defines an error token "ERROR".
3961
** This is what we do if the grammar does define ERROR:
3963
** * Call the %syntax_error function.
3965
** * Begin popping the stack until we enter a state where
3966
** it is legal to shift the error symbol, then shift
3967
** the error symbol.
3969
** * Set the error count to three.
3971
** * Begin accepting and shifting new tokens. No new error
3972
** processing will occur until three tokens have been
3973
** shifted successfully.
3976
if( yypParser->yyerrcnt<0 ){
3977
yy_syntax_error(yypParser,yymajor,yyminorunion);
3979
yymx = yypParser->yystack[yypParser->yyidx].major;
3980
if( yymx==YYERRORSYMBOL || yyerrorhit ){
3983
fprintf(yyTraceFILE,"%sDiscard input token %s\n",
3984
yyTracePrompt,yyTokenName[yymajor]);
3987
yy_destructor(yymajor,&yyminorunion);
3991
yypParser->yyidx >= 0 &&
3992
yymx != YYERRORSYMBOL &&
3993
(yyact = yy_find_shift_action(yypParser,YYERRORSYMBOL)) >= YYNSTATE
3995
yy_pop_parser_stack(yypParser);
3997
if( yypParser->yyidx < 0 || yymajor==0 ){
3998
yy_destructor(yymajor,&yyminorunion);
3999
yy_parse_failed(yypParser);
4001
}else if( yymx!=YYERRORSYMBOL ){
4004
yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2);
4007
yypParser->yyerrcnt = 3;
4009
#else /* YYERRORSYMBOL is not defined */
4010
/* This is what we do if the grammar does not define ERROR:
4012
** * Report an error message, and throw away the input token.
4014
** * If the input token is $, then fail the parse.
4016
** As before, subsequent error messages are suppressed until
4017
** three input tokens have been successfully shifted.
4019
if( yypParser->yyerrcnt<=0 ){
4020
yy_syntax_error(yypParser,yymajor,yyminorunion);
4022
yypParser->yyerrcnt = 3;
4023
yy_destructor(yymajor,&yyminorunion);
4025
yy_parse_failed(yypParser);
4030
yy_accept(yypParser);
4033
}while( yymajor!=YYNOCODE && yypParser->yyidx>=0 );