Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(88)

Side by Side Diff: third_party/sqlite/preprocessed/parse.c

Issue 5626002: Update sqlite to 3.7.3. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/third_party/sqlite/src
Patch Set: Remove misc change. Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « third_party/sqlite/preprocessed/parse.h ('k') | third_party/sqlite/preprocessed/sqlite3.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Driver template for the LEMON parser generator. 1 /* Driver template for the LEMON parser generator.
2 ** The author disclaims copyright to this source code. 2 ** The author disclaims copyright to this source code.
3 ** 3 **
4 ** This version of "lempar.c" is modified, slightly, for use by SQLite. 4 ** This version of "lempar.c" is modified, slightly, for use by SQLite.
5 ** The only modifications are the addition of a couple of NEVER() 5 ** The only modifications are the addition of a couple of NEVER()
6 ** macros to disable tests that are needed in the case of a general 6 ** macros to disable tests that are needed in the case of a general
7 ** LALR(1) grammar but which are always false in the 7 ** LALR(1) grammar but which are always false in the
8 ** specific grammar used by SQLite. 8 ** specific grammar used by SQLite.
9 */ 9 */
10 /* First off, code is included that follows the "include" declaration 10 /* First off, code is included that follows the "include" declaration
11 ** in the input grammar file. */ 11 ** in the input grammar file. */
12 #include <stdio.h> 12 #include <stdio.h>
13 #line 53 "parse.y" 13 #line 51 "parse.y"
14 14
15 #include "sqliteInt.h" 15 #include "sqliteInt.h"
16 16
17 /* 17 /*
18 ** Disable all error recovery processing in the parser push-down 18 ** Disable all error recovery processing in the parser push-down
19 ** automaton. 19 ** automaton.
20 */ 20 */
21 #define YYNOERRORRECOVERY 1 21 #define YYNOERRORRECOVERY 1
22 22
23 /* 23 /*
(...skipping 28 matching lines...) Expand all
52 ** 52 **
53 ** Then the "b" IdList records the list "a,b,c". 53 ** Then the "b" IdList records the list "a,b,c".
54 */ 54 */
55 struct TrigEvent { int a; IdList * b; }; 55 struct TrigEvent { int a; IdList * b; };
56 56
57 /* 57 /*
58 ** An instance of this structure holds the ATTACH key and the key type. 58 ** An instance of this structure holds the ATTACH key and the key type.
59 */ 59 */
60 struct AttachKey { int type; Token key; }; 60 struct AttachKey { int type; Token key; };
61 61
62 #line 723 "parse.y" 62 #line 722 "parse.y"
63 63
64 /* This is a utility routine used to set the ExprSpan.zStart and 64 /* This is a utility routine used to set the ExprSpan.zStart and
65 ** ExprSpan.zEnd values of pOut so that the span covers the complete 65 ** ExprSpan.zEnd values of pOut so that the span covers the complete
66 ** range of text beginning with pStart and going to the end of pEnd. 66 ** range of text beginning with pStart and going to the end of pEnd.
67 */ 67 */
68 static void spanSet(ExprSpan *pOut, Token *pStart, Token *pEnd){ 68 static void spanSet(ExprSpan *pOut, Token *pStart, Token *pEnd){
69 pOut->zStart = pStart->z; 69 pOut->zStart = pStart->z;
70 pOut->zEnd = &pEnd->z[pEnd->n]; 70 pOut->zEnd = &pEnd->z[pEnd->n];
71 } 71 }
72 72
73 /* Construct a new Expr object from a single identifier. Use the 73 /* Construct a new Expr object from a single identifier. Use the
74 ** new Expr to populate pOut. Set the span of pOut to be the identifier 74 ** new Expr to populate pOut. Set the span of pOut to be the identifier
75 ** that created the expression. 75 ** that created the expression.
76 */ 76 */
77 static void spanExpr(ExprSpan *pOut, Parse *pParse, int op, Token *pValue){ 77 static void spanExpr(ExprSpan *pOut, Parse *pParse, int op, Token *pValue){
78 pOut->pExpr = sqlite3PExpr(pParse, op, 0, 0, pValue); 78 pOut->pExpr = sqlite3PExpr(pParse, op, 0, 0, pValue);
79 pOut->zStart = pValue->z; 79 pOut->zStart = pValue->z;
80 pOut->zEnd = &pValue->z[pValue->n]; 80 pOut->zEnd = &pValue->z[pValue->n];
81 } 81 }
82 #line 818 "parse.y" 82 #line 817 "parse.y"
83 83
84 /* This routine constructs a binary expression node out of two ExprSpan 84 /* This routine constructs a binary expression node out of two ExprSpan
85 ** objects and uses the result to populate a new ExprSpan object. 85 ** objects and uses the result to populate a new ExprSpan object.
86 */ 86 */
87 static void spanBinaryExpr( 87 static void spanBinaryExpr(
88 ExprSpan *pOut, /* Write the result here */ 88 ExprSpan *pOut, /* Write the result here */
89 Parse *pParse, /* The parsing context. Errors accumulate here */ 89 Parse *pParse, /* The parsing context. Errors accumulate here */
90 int op, /* The binary operation */ 90 int op, /* The binary operation */
91 ExprSpan *pLeft, /* The left operand */ 91 ExprSpan *pLeft, /* The left operand */
92 ExprSpan *pRight /* The right operand */ 92 ExprSpan *pRight /* The right operand */
93 ){ 93 ){
94 pOut->pExpr = sqlite3PExpr(pParse, op, pLeft->pExpr, pRight->pExpr, 0); 94 pOut->pExpr = sqlite3PExpr(pParse, op, pLeft->pExpr, pRight->pExpr, 0);
95 pOut->zStart = pLeft->zStart; 95 pOut->zStart = pLeft->zStart;
96 pOut->zEnd = pRight->zEnd; 96 pOut->zEnd = pRight->zEnd;
97 } 97 }
98 #line 870 "parse.y" 98 #line 873 "parse.y"
99 99
100 /* Construct an expression node for a unary postfix operator 100 /* Construct an expression node for a unary postfix operator
101 */ 101 */
102 static void spanUnaryPostfix( 102 static void spanUnaryPostfix(
103 ExprSpan *pOut, /* Write the new expression node here */ 103 ExprSpan *pOut, /* Write the new expression node here */
104 Parse *pParse, /* Parsing context to record errors */ 104 Parse *pParse, /* Parsing context to record errors */
105 int op, /* The operator */ 105 int op, /* The operator */
106 ExprSpan *pOperand, /* The operand */ 106 ExprSpan *pOperand, /* The operand */
107 Token *pPostOp /* The operand token for setting the span */ 107 Token *pPostOp /* The operand token for setting the span */
108 ){ 108 ){
109 pOut->pExpr = sqlite3PExpr(pParse, op, pOperand->pExpr, 0, 0); 109 pOut->pExpr = sqlite3PExpr(pParse, op, pOperand->pExpr, 0, 0);
110 pOut->zStart = pOperand->zStart; 110 pOut->zStart = pOperand->zStart;
111 pOut->zEnd = &pPostOp->z[pPostOp->n]; 111 pOut->zEnd = &pPostOp->z[pPostOp->n];
112 } 112 }
113 #line 892 "parse.y" 113 #line 892 "parse.y"
114 114
115 /* A routine to convert a binary TK_IS or TK_ISNOT expression into a
116 ** unary TK_ISNULL or TK_NOTNULL expression. */
117 static void binaryToUnaryIfNull(Parse *pParse, Expr *pY, Expr *pA, int op){
118 sqlite3 *db = pParse->db;
119 if( db->mallocFailed==0 && pY->op==TK_NULL ){
120 pA->op = (u8)op;
121 sqlite3ExprDelete(db, pA->pRight);
122 pA->pRight = 0;
123 }
124 }
125 #line 920 "parse.y"
126
115 /* Construct an expression node for a unary prefix operator 127 /* Construct an expression node for a unary prefix operator
116 */ 128 */
117 static void spanUnaryPrefix( 129 static void spanUnaryPrefix(
118 ExprSpan *pOut, /* Write the new expression node here */ 130 ExprSpan *pOut, /* Write the new expression node here */
119 Parse *pParse, /* Parsing context to record errors */ 131 Parse *pParse, /* Parsing context to record errors */
120 int op, /* The operator */ 132 int op, /* The operator */
121 ExprSpan *pOperand, /* The operand */ 133 ExprSpan *pOperand, /* The operand */
122 Token *pPreOp /* The operand token for setting the span */ 134 Token *pPreOp /* The operand token for setting the span */
123 ){ 135 ){
124 pOut->pExpr = sqlite3PExpr(pParse, op, pOperand->pExpr, 0, 0); 136 pOut->pExpr = sqlite3PExpr(pParse, op, pOperand->pExpr, 0, 0);
125 pOut->zStart = pPreOp->z; 137 pOut->zStart = pPreOp->z;
126 pOut->zEnd = pOperand->zEnd; 138 pOut->zEnd = pOperand->zEnd;
127 } 139 }
128 #line 129 "parse.c" 140 #line 141 "parse.c"
129 /* Next is all token values, in a form suitable for use by makeheaders. 141 /* Next is all token values, in a form suitable for use by makeheaders.
130 ** This section will be null unless lemon is run with the -m switch. 142 ** This section will be null unless lemon is run with the -m switch.
131 */ 143 */
132 /* 144 /*
133 ** These constants (all generated automatically by the parser generator) 145 ** These constants (all generated automatically by the parser generator)
134 ** specify the various kinds of tokens (terminals) that the parser 146 ** specify the various kinds of tokens (terminals) that the parser
135 ** understands. 147 ** understands.
136 ** 148 **
137 ** Each symbol here is a terminal symbol in the grammar. 149 ** Each symbol here is a terminal symbol in the grammar.
138 */ 150 */
(...skipping 30 matching lines...) Expand all
169 ** sqlite3ParserARG_SDECL A static variable declaration for the %extra_ar gument 181 ** sqlite3ParserARG_SDECL A static variable declaration for the %extra_ar gument
170 ** sqlite3ParserARG_PDECL A parameter declaration for the %extra_argument 182 ** sqlite3ParserARG_PDECL A parameter declaration for the %extra_argument
171 ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser 183 ** sqlite3ParserARG_STORE Code to store %extra_argument into yypParser
172 ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser 184 ** sqlite3ParserARG_FETCH Code to extract %extra_argument from yypParser
173 ** YYNSTATE the combined number of states. 185 ** YYNSTATE the combined number of states.
174 ** YYNRULE the number of rules in the grammar 186 ** YYNRULE the number of rules in the grammar
175 ** YYERRORSYMBOL is the code number of the error symbol. If not 187 ** YYERRORSYMBOL is the code number of the error symbol. If not
176 ** defined, then do no error processing. 188 ** defined, then do no error processing.
177 */ 189 */
178 #define YYCODETYPE unsigned char 190 #define YYCODETYPE unsigned char
179 #define YYNOCODE 254 191 #define YYNOCODE 253
180 #define YYACTIONTYPE unsigned short int 192 #define YYACTIONTYPE unsigned short int
181 #define YYWILDCARD 65 193 #define YYWILDCARD 67
182 #define sqlite3ParserTOKENTYPE Token 194 #define sqlite3ParserTOKENTYPE Token
183 typedef union { 195 typedef union {
184 int yyinit; 196 int yyinit;
185 sqlite3ParserTOKENTYPE yy0; 197 sqlite3ParserTOKENTYPE yy0;
186 Select* yy3; 198 int yy4;
187 ExprList* yy14; 199 struct TrigEvent yy90;
188 SrcList* yy65; 200 ExprSpan yy118;
189 struct LikeOp yy96; 201 TriggerStep* yy203;
190 Expr* yy132; 202 u8 yy210;
191 u8 yy186; 203 struct {int value; int mask;} yy215;
192 int yy328; 204 SrcList* yy259;
193 ExprSpan yy346; 205 struct LimitVal yy292;
194 struct TrigEvent yy378; 206 Expr* yy314;
195 IdList* yy408; 207 ExprList* yy322;
196 struct {int value; int mask;} yy429; 208 struct LikeOp yy342;
197 TriggerStep* yy473; 209 IdList* yy384;
198 struct LimitVal yy476; 210 Select* yy387;
199 } YYMINORTYPE; 211 } YYMINORTYPE;
200 #ifndef YYSTACKDEPTH 212 #ifndef YYSTACKDEPTH
201 #define YYSTACKDEPTH 100 213 #define YYSTACKDEPTH 100
202 #endif 214 #endif
203 #define sqlite3ParserARG_SDECL Parse *pParse; 215 #define sqlite3ParserARG_SDECL Parse *pParse;
204 #define sqlite3ParserARG_PDECL ,Parse *pParse 216 #define sqlite3ParserARG_PDECL ,Parse *pParse
205 #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse 217 #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse
206 #define sqlite3ParserARG_STORE yypParser->pParse = pParse 218 #define sqlite3ParserARG_STORE yypParser->pParse = pParse
207 #define YYNSTATE 629 219 #define YYNSTATE 630
208 #define YYNRULE 329 220 #define YYNRULE 329
209 #define YYFALLBACK 1 221 #define YYFALLBACK 1
210 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) 222 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2)
211 #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) 223 #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1)
212 #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) 224 #define YY_ERROR_ACTION (YYNSTATE+YYNRULE)
213 225
214 /* The yyzerominor constant is used to initialize instances of 226 /* The yyzerominor constant is used to initialize instances of
215 ** YYMINORTYPE objects to zero. */ 227 ** YYMINORTYPE objects to zero. */
216 static const YYMINORTYPE yyzerominor = { 0 }; 228 static const YYMINORTYPE yyzerominor = { 0 };
217 229
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 ** 280 **
269 ** yy_action[] A single table containing all actions. 281 ** yy_action[] A single table containing all actions.
270 ** yy_lookahead[] A table containing the lookahead for each entry in 282 ** yy_lookahead[] A table containing the lookahead for each entry in
271 ** yy_action. Used to detect hash collisions. 283 ** yy_action. Used to detect hash collisions.
272 ** yy_shift_ofst[] For each state, the offset into yy_action for 284 ** yy_shift_ofst[] For each state, the offset into yy_action for
273 ** shifting terminals. 285 ** shifting terminals.
274 ** yy_reduce_ofst[] For each state, the offset into yy_action for 286 ** yy_reduce_ofst[] For each state, the offset into yy_action for
275 ** shifting non-terminals after a reduce. 287 ** shifting non-terminals after a reduce.
276 ** yy_default[] Default action for each state. 288 ** yy_default[] Default action for each state.
277 */ 289 */
290 #define YY_ACTTAB_COUNT (1557)
278 static const YYACTIONTYPE yy_action[] = { 291 static const YYACTIONTYPE yy_action[] = {
279 /* 0 */ 309, 959, 178, 628, 2, 153, 216, 448, 24, 24, 292 /* 0 */ 313, 960, 186, 419, 2, 172, 627, 597, 55, 55,
280 /* 10 */ 24, 24, 497, 26, 26, 26, 26, 27, 27, 28, 293 /* 10 */ 55, 55, 48, 53, 53, 53, 53, 52, 52, 51,
281 /* 20 */ 28, 28, 29, 218, 422, 423, 214, 422, 423, 455, 294 /* 20 */ 51, 51, 50, 238, 302, 283, 623, 622, 516, 515,
282 /* 30 */ 461, 31, 26, 26, 26, 26, 27, 27, 28, 28, 295 /* 30 */ 590, 584, 55, 55, 55, 55, 282, 53, 53, 53,
283 /* 40 */ 28, 29, 218, 30, 492, 32, 137, 23, 22, 315, 296 /* 40 */ 53, 52, 52, 51, 51, 51, 50, 238, 6, 56,
284 /* 50 */ 465, 466, 462, 462, 25, 25, 24, 24, 24, 24, 297 /* 50 */ 57, 47, 582, 581, 583, 583, 54, 54, 55, 55,
285 /* 60 */ 445, 26, 26, 26, 26, 27, 27, 28, 28, 28, 298 /* 60 */ 55, 55, 608, 53, 53, 53, 53, 52, 52, 51,
286 /* 70 */ 29, 218, 309, 218, 318, 448, 521, 499, 45, 26, 299 /* 70 */ 51, 51, 50, 238, 313, 597, 409, 330, 579, 579,
287 /* 80 */ 26, 26, 26, 27, 27, 28, 28, 28, 29, 218, 300 /* 80 */ 32, 53, 53, 53, 53, 52, 52, 51, 51, 51,
288 /* 90 */ 422, 423, 425, 426, 159, 425, 426, 366, 369, 370, 301 /* 90 */ 50, 238, 330, 217, 620, 619, 166, 411, 624, 382,
289 /* 100 */ 318, 455, 461, 394, 523, 21, 188, 504, 371, 27, 302 /* 100 */ 379, 378, 7, 491, 590, 584, 200, 199, 198, 58,
290 /* 110 */ 27, 28, 28, 28, 29, 218, 422, 423, 424, 23, 303 /* 110 */ 377, 300, 414, 621, 481, 66, 623, 622, 621, 580,
291 /* 120 */ 22, 315, 465, 466, 462, 462, 25, 25, 24, 24, 304 /* 120 */ 254, 601, 94, 56, 57, 47, 582, 581, 583, 583,
292 /* 130 */ 24, 24, 564, 26, 26, 26, 26, 27, 27, 28, 305 /* 130 */ 54, 54, 55, 55, 55, 55, 671, 53, 53, 53,
293 /* 140 */ 28, 28, 29, 218, 309, 230, 513, 138, 477, 220, 306 /* 140 */ 53, 52, 52, 51, 51, 51, 50, 238, 313, 532,
294 /* 150 */ 557, 148, 135, 260, 364, 265, 365, 156, 425, 426, 307 /* 150 */ 226, 506, 507, 133, 177, 139, 284, 385, 279, 384,
295 /* 160 */ 245, 610, 337, 30, 269, 32, 137, 448, 608, 609, 308 /* 160 */ 169, 197, 342, 398, 251, 226, 253, 275, 388, 167,
296 /* 170 */ 233, 230, 499, 455, 461, 57, 515, 334, 135, 260, 309 /* 170 */ 139, 284, 385, 279, 384, 169, 570, 236, 590, 584,
297 /* 180 */ 364, 265, 365, 156, 425, 426, 444, 78, 417, 414, 310 /* 180 */ 672, 240, 275, 157, 620, 619, 554, 437, 51, 51,
298 /* 190 */ 269, 23, 22, 315, 465, 466, 462, 462, 25, 25, 311 /* 190 */ 51, 50, 238, 343, 439, 553, 438, 56, 57, 47,
299 /* 200 */ 24, 24, 24, 24, 348, 26, 26, 26, 26, 27, 312 /* 200 */ 582, 581, 583, 583, 54, 54, 55, 55, 55, 55,
300 /* 210 */ 27, 28, 28, 28, 29, 218, 309, 216, 543, 556, 313 /* 210 */ 465, 53, 53, 53, 53, 52, 52, 51, 51, 51,
301 /* 220 */ 486, 130, 498, 607, 30, 337, 32, 137, 351, 396, 314 /* 220 */ 50, 238, 313, 390, 52, 52, 51, 51, 51, 50,
302 /* 230 */ 438, 63, 337, 361, 424, 448, 487, 337, 424, 544, 315 /* 230 */ 238, 391, 166, 491, 566, 382, 379, 378, 409, 440,
303 /* 240 */ 334, 217, 195, 606, 605, 455, 461, 334, 18, 444, 316 /* 240 */ 579, 579, 252, 440, 607, 66, 377, 513, 621, 49,
304 /* 250 */ 85, 488, 334, 347, 192, 565, 444, 78, 316, 472, 317 /* 250 */ 46, 147, 590, 584, 621, 16, 466, 189, 621, 441,
305 /* 260 */ 473, 444, 85, 23, 22, 315, 465, 466, 462, 462, 318 /* 260 */ 442, 673, 526, 441, 340, 577, 595, 64, 194, 482,
306 /* 270 */ 25, 25, 24, 24, 24, 24, 445, 26, 26, 26, 319 /* 270 */ 434, 56, 57, 47, 582, 581, 583, 583, 54, 54,
307 /* 280 */ 26, 27, 27, 28, 28, 28, 29, 218, 309, 353, 320 /* 280 */ 55, 55, 55, 55, 30, 53, 53, 53, 53, 52,
308 /* 290 */ 223, 320, 607, 193, 238, 337, 481, 16, 351, 185, 321 /* 290 */ 52, 51, 51, 51, 50, 238, 313, 593, 593, 593,
309 /* 300 */ 330, 419, 222, 350, 604, 219, 215, 424, 112, 337, 322 /* 300 */ 387, 578, 606, 493, 259, 351, 258, 411, 1, 623,
310 /* 310 */ 334, 157, 606, 408, 213, 563, 538, 455, 461, 444, 323 /* 310 */ 622, 496, 623, 622, 65, 240, 623, 622, 597, 443,
311 /* 320 */ 79, 219, 562, 524, 334, 576, 522, 629, 417, 414, 324 /* 320 */ 237, 239, 414, 341, 237, 602, 590, 584, 18, 603,
312 /* 330 */ 450, 581, 441, 444, 78, 23, 22, 315, 465, 466, 325 /* 330 */ 166, 601, 87, 382, 379, 378, 67, 623, 622, 38,
313 /* 340 */ 462, 462, 25, 25, 24, 24, 24, 24, 445, 26, 326 /* 340 */ 623, 622, 176, 270, 377, 56, 57, 47, 582, 581,
314 /* 350 */ 26, 26, 26, 27, 27, 28, 28, 28, 29, 218, 327 /* 350 */ 583, 583, 54, 54, 55, 55, 55, 55, 175, 53,
315 /* 360 */ 309, 452, 452, 452, 159, 399, 311, 366, 369, 370, 328 /* 360 */ 53, 53, 53, 52, 52, 51, 51, 51, 50, 238,
316 /* 370 */ 337, 251, 404, 407, 219, 355, 556, 4, 371, 422, 329 /* 370 */ 313, 396, 233, 411, 531, 565, 317, 620, 619, 44,
317 /* 380 */ 423, 397, 286, 285, 244, 334, 540, 566, 63, 455, 330 /* 380 */ 620, 619, 240, 206, 620, 619, 597, 266, 414, 268,
318 /* 390 */ 461, 424, 216, 478, 444, 93, 28, 28, 28, 29, 331 /* 390 */ 409, 597, 579, 579, 352, 184, 505, 601, 73, 533,
319 /* 400 */ 218, 413, 477, 220, 578, 40, 545, 23, 22, 315, 332 /* 400 */ 590, 584, 466, 548, 190, 620, 619, 576, 620, 619,
320 /* 410 */ 465, 466, 462, 462, 25, 25, 24, 24, 24, 24, 333 /* 410 */ 547, 383, 551, 35, 332, 575, 574, 600, 504, 56,
321 /* 420 */ 582, 26, 26, 26, 26, 27, 27, 28, 28, 28, 334 /* 420 */ 57, 47, 582, 581, 583, 583, 54, 54, 55, 55,
322 /* 430 */ 29, 218, 309, 546, 337, 30, 517, 32, 137, 378, 335 /* 430 */ 55, 55, 567, 53, 53, 53, 53, 52, 52, 51,
323 /* 440 */ 326, 337, 874, 153, 194, 448, 1, 425, 426, 334, 336 /* 440 */ 51, 51, 50, 238, 313, 411, 561, 561, 528, 364,
324 /* 450 */ 422, 423, 422, 423, 29, 218, 334, 613, 444, 71, 337 /* 450 */ 259, 351, 258, 183, 361, 549, 524, 374, 411, 597,
325 /* 460 */ 210, 455, 461, 66, 581, 444, 93, 422, 423, 626, 338 /* 460 */ 414, 240, 560, 560, 409, 604, 579, 579, 328, 601,
326 /* 470 */ 949, 303, 949, 500, 479, 555, 202, 43, 445, 23, 339 /* 470 */ 93, 623, 622, 414, 590, 584, 237, 564, 559, 559,
327 /* 480 */ 22, 315, 465, 466, 462, 462, 25, 25, 24, 24, 340 /* 480 */ 520, 402, 601, 87, 409, 210, 579, 579, 168, 421,
328 /* 490 */ 24, 24, 436, 26, 26, 26, 26, 27, 27, 28, 341 /* 490 */ 950, 519, 950, 56, 57, 47, 582, 581, 583, 583,
329 /* 500 */ 28, 28, 29, 218, 309, 187, 211, 360, 520, 440, 342 /* 500 */ 54, 54, 55, 55, 55, 55, 192, 53, 53, 53,
330 /* 510 */ 246, 327, 622, 448, 397, 286, 285, 551, 425, 426, 343 /* 510 */ 53, 52, 52, 51, 51, 51, 50, 238, 313, 600,
331 /* 520 */ 425, 426, 334, 159, 337, 216, 366, 369, 370, 494, 344 /* 520 */ 293, 563, 511, 234, 357, 146, 475, 475, 367, 411,
332 /* 530 */ 556, 444, 9, 455, 461, 425, 426, 371, 495, 334, 345 /* 530 */ 562, 411, 358, 542, 425, 171, 411, 215, 144, 620,
333 /* 540 */ 445, 618, 63, 504, 198, 424, 501, 449, 444, 72, 346 /* 540 */ 619, 544, 318, 353, 414, 203, 414, 275, 590, 584,
334 /* 550 */ 474, 23, 22, 315, 465, 466, 462, 462, 25, 25, 347 /* 550 */ 549, 414, 174, 601, 94, 601, 79, 558, 471, 61,
335 /* 560 */ 24, 24, 24, 24, 395, 26, 26, 26, 26, 27, 348 /* 560 */ 601, 79, 421, 949, 350, 949, 34, 56, 57, 47,
336 /* 570 */ 27, 28, 28, 28, 29, 218, 309, 486, 445, 337, 349 /* 570 */ 582, 581, 583, 583, 54, 54, 55, 55, 55, 55,
337 /* 580 */ 537, 60, 224, 479, 343, 202, 398, 337, 439, 554, 350 /* 580 */ 535, 53, 53, 53, 53, 52, 52, 51, 51, 51,
338 /* 590 */ 199, 140, 337, 487, 334, 526, 527, 551, 516, 508, 351 /* 590 */ 50, 238, 313, 307, 424, 394, 272, 49, 46, 147,
339 /* 600 */ 456, 457, 334, 444, 67, 455, 461, 334, 488, 476, 352 /* 600 */ 349, 322, 4, 411, 491, 312, 321, 425, 568, 492,
340 /* 610 */ 528, 444, 76, 39, 424, 41, 444, 97, 579, 527, 353 /* 610 */ 216, 264, 407, 575, 574, 429, 66, 549, 414, 621,
341 /* 620 */ 529, 459, 460, 23, 22, 315, 465, 466, 462, 462, 354 /* 620 */ 540, 602, 590, 584, 13, 603, 621, 601, 72, 12,
342 /* 630 */ 25, 25, 24, 24, 24, 24, 337, 26, 26, 26, 355 /* 630 */ 618, 617, 616, 202, 210, 621, 546, 469, 422, 319,
343 /* 640 */ 26, 27, 27, 28, 28, 28, 29, 218, 309, 337, 356 /* 640 */ 148, 56, 57, 47, 582, 581, 583, 583, 54, 54,
344 /* 650 */ 458, 334, 272, 621, 307, 337, 312, 337, 374, 64, 357 /* 650 */ 55, 55, 55, 55, 338, 53, 53, 53, 53, 52,
345 /* 660 */ 444, 96, 317, 448, 334, 342, 472, 473, 469, 337, 358 /* 660 */ 52, 51, 51, 51, 50, 238, 313, 600, 600, 411,
346 /* 670 */ 334, 508, 334, 444, 101, 359, 252, 455, 461, 444, 359 /* 670 */ 39, 21, 37, 170, 237, 875, 411, 572, 572, 201,
347 /* 680 */ 99, 444, 104, 358, 334, 345, 424, 340, 157, 468, 360 /* 680 */ 144, 473, 538, 331, 414, 474, 143, 146, 630, 628,
348 /* 690 */ 468, 424, 493, 444, 105, 23, 22, 315, 465, 466, 361 /* 690 */ 334, 414, 353, 601, 68, 168, 590, 584, 132, 365,
349 /* 700 */ 462, 462, 25, 25, 24, 24, 24, 24, 337, 26, 362 /* 700 */ 601, 96, 307, 423, 530, 336, 49, 46, 147, 568,
350 /* 710 */ 26, 26, 26, 27, 27, 28, 28, 28, 29, 218, 363 /* 710 */ 406, 216, 549, 360, 529, 56, 57, 47, 582, 581,
351 /* 720 */ 309, 337, 181, 334, 499, 56, 139, 337, 219, 268, 364 /* 720 */ 583, 583, 54, 54, 55, 55, 55, 55, 411, 53,
352 /* 730 */ 384, 448, 444, 129, 382, 387, 334, 168, 337, 389, 365 /* 730 */ 53, 53, 53, 52, 52, 51, 51, 51, 50, 238,
353 /* 740 */ 508, 424, 334, 311, 424, 444, 131, 496, 269, 455, 366 /* 740 */ 313, 411, 605, 414, 484, 510, 172, 422, 597, 318,
354 /* 750 */ 461, 444, 59, 334, 424, 424, 391, 340, 8, 468, 367 /* 750 */ 496, 485, 601, 99, 411, 142, 414, 411, 231, 411,
355 /* 760 */ 468, 263, 444, 102, 390, 290, 321, 23, 22, 315, 368 /* 760 */ 540, 411, 359, 629, 2, 601, 97, 426, 308, 414,
356 /* 770 */ 465, 466, 462, 462, 25, 25, 24, 24, 24, 24, 369 /* 770 */ 590, 584, 414, 20, 414, 621, 414, 621, 601, 106,
357 /* 780 */ 337, 26, 26, 26, 26, 27, 27, 28, 28, 28, 370 /* 780 */ 503, 601, 105, 601, 108, 601, 109, 204, 28, 56,
358 /* 790 */ 29, 218, 309, 337, 138, 334, 416, 2, 268, 337, 371 /* 790 */ 57, 47, 582, 581, 583, 583, 54, 54, 55, 55,
359 /* 800 */ 389, 337, 443, 325, 444, 77, 442, 293, 334, 291, 372 /* 800 */ 55, 55, 411, 53, 53, 53, 53, 52, 52, 51,
360 /* 810 */ 7, 482, 337, 424, 334, 424, 334, 444, 100, 499, 373 /* 810 */ 51, 51, 50, 238, 313, 411, 597, 414, 411, 276,
361 /* 820 */ 339, 455, 461, 444, 68, 444, 98, 334, 254, 504, 374 /* 820 */ 214, 600, 411, 366, 213, 381, 601, 134, 274, 500,
362 /* 830 */ 232, 626, 948, 504, 948, 231, 444, 132, 47, 23, 375 /* 830 */ 414, 167, 130, 414, 621, 411, 354, 414, 376, 601,
363 /* 840 */ 22, 315, 465, 466, 462, 462, 25, 25, 24, 24, 376 /* 840 */ 135, 129, 601, 100, 590, 584, 601, 104, 522, 521,
364 /* 850 */ 24, 24, 337, 26, 26, 26, 26, 27, 27, 28, 377 /* 850 */ 414, 621, 224, 273, 600, 167, 327, 282, 600, 601,
365 /* 860 */ 28, 28, 29, 218, 309, 337, 280, 334, 256, 538, 378 /* 860 */ 103, 468, 521, 56, 57, 47, 582, 581, 583, 583,
366 /* 870 */ 362, 337, 258, 268, 622, 549, 444, 133, 203, 140, 379 /* 870 */ 54, 54, 55, 55, 55, 55, 411, 53, 53, 53,
367 /* 880 */ 334, 424, 548, 337, 180, 158, 334, 292, 424, 444, 380 /* 880 */ 53, 52, 52, 51, 51, 51, 50, 238, 313, 411,
368 /* 890 */ 134, 287, 552, 455, 461, 444, 69, 443, 334, 463, 381 /* 890 */ 27, 414, 411, 375, 276, 167, 359, 544, 50, 238,
369 /* 900 */ 340, 442, 468, 468, 427, 428, 429, 444, 80, 281, 382 /* 900 */ 601, 95, 128, 223, 414, 411, 165, 414, 411, 621,
370 /* 910 */ 322, 23, 33, 315, 465, 466, 462, 462, 25, 25, 383 /* 910 */ 411, 621, 612, 601, 102, 372, 601, 76, 590, 584,
371 /* 920 */ 24, 24, 24, 24, 337, 26, 26, 26, 26, 27, 384 /* 920 */ 414, 570, 236, 414, 470, 414, 167, 621, 188, 601,
372 /* 930 */ 27, 28, 28, 28, 29, 218, 309, 337, 406, 334, 385 /* 930 */ 98, 225, 601, 138, 601, 137, 232, 56, 45, 47,
373 /* 940 */ 212, 268, 550, 337, 268, 389, 329, 177, 444, 81, 386 /* 940 */ 582, 581, 583, 583, 54, 54, 55, 55, 55, 55,
374 /* 950 */ 542, 541, 334, 475, 475, 337, 424, 216, 334, 424, 387 /* 950 */ 411, 53, 53, 53, 53, 52, 52, 51, 51, 51,
375 /* 960 */ 424, 444, 70, 535, 368, 455, 461, 444, 82, 405, 388 /* 960 */ 50, 238, 313, 276, 276, 414, 411, 276, 544, 459,
376 /* 970 */ 334, 261, 392, 340, 445, 468, 468, 587, 323, 444, 389 /* 970 */ 359, 171, 209, 479, 601, 136, 628, 334, 621, 621,
377 /* 980 */ 83, 324, 262, 288, 22, 315, 465, 466, 462, 462, 390 /* 980 */ 125, 414, 621, 368, 411, 621, 257, 540, 589, 588,
378 /* 990 */ 25, 25, 24, 24, 24, 24, 337, 26, 26, 26, 391 /* 990 */ 601, 75, 590, 584, 458, 446, 23, 23, 124, 414,
379 /* 1000 */ 26, 27, 27, 28, 28, 28, 29, 218, 309, 337, 392 /* 1000 */ 326, 325, 621, 427, 324, 309, 600, 288, 601, 92,
380 /* 1010 */ 211, 334, 294, 356, 340, 337, 468, 468, 532, 533, 393 /* 1010 */ 586, 585, 57, 47, 582, 581, 583, 583, 54, 54,
381 /* 1020 */ 444, 84, 403, 144, 334, 574, 600, 337, 424, 573, 394 /* 1020 */ 55, 55, 55, 55, 411, 53, 53, 53, 53, 52,
382 /* 1030 */ 334, 337, 420, 444, 86, 253, 234, 455, 461, 444, 395 /* 1030 */ 52, 51, 51, 51, 50, 238, 313, 587, 411, 414,
383 /* 1040 */ 87, 430, 334, 383, 445, 431, 334, 274, 196, 331, 396 /* 1040 */ 411, 207, 611, 476, 171, 472, 160, 123, 601, 91,
384 /* 1050 */ 424, 444, 88, 432, 145, 444, 73, 315, 465, 466, 397 /* 1050 */ 323, 261, 15, 414, 464, 414, 411, 621, 411, 354,
385 /* 1060 */ 462, 462, 25, 25, 24, 24, 24, 24, 395, 26, 398 /* 1060 */ 222, 411, 601, 74, 601, 90, 590, 584, 159, 264,
386 /* 1070 */ 26, 26, 26, 27, 27, 28, 28, 28, 29, 218, 399 /* 1070 */ 158, 414, 461, 414, 621, 600, 414, 121, 120, 25,
387 /* 1080 */ 35, 344, 445, 3, 337, 394, 337, 333, 423, 278, 400 /* 1080 */ 601, 89, 601, 101, 621, 601, 88, 47, 582, 581,
388 /* 1090 */ 388, 276, 280, 207, 147, 35, 344, 341, 3, 334, 401 /* 1090 */ 583, 583, 54, 54, 55, 55, 55, 55, 544, 53,
389 /* 1100 */ 424, 334, 333, 423, 308, 623, 280, 424, 444, 74, 402 /* 1100 */ 53, 53, 53, 52, 52, 51, 51, 51, 50, 238,
390 /* 1110 */ 444, 89, 341, 337, 6, 346, 338, 337, 421, 337, 403 /* 1110 */ 43, 405, 263, 3, 610, 264, 140, 415, 622, 24,
391 /* 1120 */ 470, 424, 65, 332, 280, 481, 446, 445, 334, 247, 404 /* 1120 */ 410, 11, 456, 594, 118, 155, 219, 452, 408, 621,
392 /* 1130 */ 346, 424, 334, 424, 334, 594, 280, 444, 90, 424, 405 /* 1130 */ 621, 621, 156, 43, 405, 621, 3, 286, 621, 113,
393 /* 1140 */ 481, 444, 91, 444, 92, 38, 37, 625, 337, 410, 406 /* 1140 */ 415, 622, 111, 445, 411, 400, 557, 403, 545, 10,
394 /* 1150 */ 47, 424, 237, 280, 36, 335, 336, 354, 248, 450, 407 /* 1150 */ 411, 408, 264, 110, 205, 436, 541, 566, 453, 414,
395 /* 1160 */ 38, 37, 514, 334, 572, 381, 572, 596, 424, 36, 408 /* 1160 */ 621, 621, 63, 621, 435, 414, 411, 621, 601, 94,
396 /* 1170 */ 335, 336, 444, 75, 450, 200, 506, 216, 154, 597, 409 /* 1170 */ 403, 621, 411, 337, 601, 86, 150, 40, 41, 534,
397 /* 1180 */ 239, 240, 241, 146, 243, 249, 547, 593, 158, 433, 410 /* 1180 */ 566, 414, 242, 264, 42, 413, 412, 414, 600, 595,
398 /* 1190 */ 452, 452, 452, 453, 454, 10, 598, 280, 20, 46, 411 /* 1190 */ 601, 85, 191, 333, 107, 451, 601, 84, 621, 539,
399 /* 1200 */ 174, 412, 298, 337, 424, 452, 452, 452, 453, 454, 412 /* 1200 */ 40, 41, 420, 230, 411, 149, 316, 42, 413, 412,
400 /* 1210 */ 10, 299, 424, 35, 344, 352, 3, 250, 334, 434, 413 /* 1210 */ 398, 127, 595, 315, 621, 399, 278, 625, 181, 414,
401 /* 1220 */ 333, 423, 337, 172, 280, 581, 208, 444, 17, 171, 414 /* 1220 */ 593, 593, 593, 592, 591, 14, 450, 411, 601, 71,
402 /* 1230 */ 341, 19, 173, 447, 424, 422, 423, 334, 337, 424, 415 /* 1230 */ 240, 621, 43, 405, 264, 3, 615, 180, 264, 415,
403 /* 1240 */ 235, 280, 204, 205, 206, 42, 444, 94, 346, 435, 416 /* 1240 */ 622, 614, 414, 593, 593, 593, 592, 591, 14, 621,
404 /* 1250 */ 136, 451, 221, 334, 308, 624, 424, 349, 481, 490, 417 /* 1250 */ 408, 601, 70, 621, 417, 33, 405, 613, 3, 411,
405 /* 1260 */ 445, 152, 444, 95, 424, 424, 424, 236, 503, 491, 418 /* 1260 */ 264, 411, 415, 622, 418, 626, 178, 509, 8, 403,
406 /* 1270 */ 507, 179, 424, 481, 424, 402, 295, 285, 38, 37, 419 /* 1270 */ 241, 416, 126, 408, 414, 621, 414, 449, 208, 566,
407 /* 1280 */ 271, 310, 158, 424, 296, 424, 216, 36, 335, 336, 420 /* 1280 */ 240, 221, 621, 601, 83, 601, 82, 599, 297, 277,
408 /* 1290 */ 509, 266, 450, 190, 191, 539, 267, 625, 558, 273, 421 /* 1290 */ 296, 30, 403, 31, 395, 264, 295, 397, 489, 40,
409 /* 1300 */ 275, 48, 277, 522, 279, 424, 424, 450, 255, 409, 422 /* 1300 */ 41, 411, 566, 220, 621, 294, 42, 413, 412, 271,
410 /* 1310 */ 424, 424, 257, 424, 424, 424, 284, 424, 386, 424, 423 /* 1310 */ 621, 595, 600, 621, 59, 60, 414, 269, 267, 623,
411 /* 1320 */ 357, 584, 585, 452, 452, 452, 453, 454, 10, 259, 424 /* 1320 */ 622, 36, 40, 41, 621, 601, 81, 598, 235, 42,
412 /* 1330 */ 393, 424, 289, 424, 592, 603, 424, 424, 452, 452, 425 /* 1330 */ 413, 412, 621, 621, 595, 265, 344, 411, 248, 556,
413 /* 1340 */ 452, 297, 300, 301, 505, 424, 617, 424, 363, 424, 426 /* 1340 */ 173, 185, 593, 593, 593, 592, 591, 14, 218, 29,
414 /* 1350 */ 424, 373, 577, 158, 158, 511, 424, 424, 424, 525, 427 /* 1350 */ 621, 543, 414, 305, 304, 303, 179, 301, 411, 566,
415 /* 1360 */ 588, 424, 154, 589, 601, 54, 54, 620, 512, 306, 428 /* 1360 */ 454, 601, 80, 289, 335, 593, 593, 593, 592, 591,
416 /* 1370 */ 319, 530, 531, 535, 264, 107, 228, 536, 534, 375, 429 /* 1370 */ 14, 411, 287, 414, 151, 392, 246, 260, 411, 196,
417 /* 1380 */ 559, 304, 560, 561, 305, 227, 229, 553, 567, 161, 430 /* 1380 */ 195, 523, 601, 69, 411, 245, 414, 526, 537, 285,
418 /* 1390 */ 162, 379, 377, 163, 51, 209, 569, 282, 164, 570, 431 /* 1390 */ 389, 595, 621, 414, 536, 601, 17, 362, 153, 414,
419 /* 1400 */ 385, 143, 580, 116, 119, 183, 400, 590, 401, 121, 432 /* 1400 */ 466, 463, 601, 78, 154, 414, 462, 152, 601, 77,
420 /* 1410 */ 122, 123, 124, 126, 599, 328, 614, 55, 58, 615, 433 /* 1410 */ 355, 255, 621, 455, 601, 9, 621, 386, 444, 517,
421 /* 1420 */ 616, 619, 62, 418, 103, 226, 111, 176, 242, 182, 434 /* 1420 */ 247, 621, 593, 593, 593, 621, 621, 244, 621, 243,
422 /* 1430 */ 437, 313, 201, 314, 670, 671, 672, 149, 150, 467, 435 /* 1430 */ 430, 518, 292, 621, 329, 621, 145, 393, 280, 513,
423 /* 1440 */ 464, 34, 483, 471, 480, 184, 197, 502, 484, 5, 436 /* 1440 */ 291, 131, 621, 514, 621, 621, 311, 621, 259, 346,
424 /* 1450 */ 485, 151, 489, 44, 141, 11, 106, 160, 225, 518, 437 /* 1450 */ 249, 621, 621, 229, 314, 621, 228, 512, 227, 240,
425 /* 1460 */ 519, 49, 510, 108, 367, 270, 12, 155, 109, 50, 438 /* 1460 */ 494, 488, 310, 164, 487, 486, 373, 480, 163, 262,
426 /* 1470 */ 110, 262, 376, 186, 568, 113, 142, 154, 165, 115, 439 /* 1470 */ 369, 371, 162, 26, 212, 478, 477, 161, 141, 363,
427 /* 1480 */ 15, 283, 583, 166, 167, 380, 586, 117, 13, 120, 440 /* 1480 */ 467, 122, 339, 187, 119, 348, 347, 117, 116, 115,
428 /* 1490 */ 372, 52, 53, 118, 591, 169, 114, 170, 595, 125, 441 /* 1490 */ 114, 112, 182, 457, 320, 22, 433, 432, 448, 19,
429 /* 1500 */ 127, 571, 575, 602, 14, 128, 611, 612, 61, 175, 442 /* 1500 */ 609, 431, 428, 62, 193, 596, 573, 298, 555, 552,
430 /* 1510 */ 189, 415, 302, 627, 960, 960, 960, 960, 411, 443 /* 1510 */ 571, 404, 290, 380, 498, 510, 495, 306, 281, 499,
444 /* 1520 */ 250, 5, 497, 460, 345, 447, 569, 550, 238, 299,
445 /* 1530 */ 527, 525, 508, 961, 502, 501, 961, 401, 961, 211,
446 /* 1540 */ 490, 356, 256, 961, 483, 961, 961, 961, 961, 961,
447 /* 1550 */ 961, 961, 961, 961, 961, 961, 370,
431 }; 448 };
432 static const YYCODETYPE yy_lookahead[] = { 449 static const YYCODETYPE yy_lookahead[] = {
433 /* 0 */ 19, 142, 143, 144, 145, 24, 116, 26, 75, 76, 450 /* 0 */ 19, 142, 143, 144, 145, 24, 1, 26, 77, 78,
434 /* 10 */ 77, 78, 25, 80, 81, 82, 83, 84, 85, 86, 451 /* 10 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
435 /* 20 */ 87, 88, 89, 90, 26, 27, 160, 26, 27, 48, 452 /* 20 */ 89, 90, 91, 92, 15, 98, 26, 27, 7, 8,
436 /* 30 */ 49, 79, 80, 81, 82, 83, 84, 85, 86, 87, 453 /* 30 */ 49, 50, 77, 78, 79, 80, 109, 82, 83, 84,
437 /* 40 */ 88, 89, 90, 222, 223, 224, 225, 66, 67, 68, 454 /* 40 */ 85, 86, 87, 88, 89, 90, 91, 92, 22, 68,
438 /* 50 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 455 /* 50 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
439 /* 60 */ 194, 80, 81, 82, 83, 84, 85, 86, 87, 88, 456 /* 60 */ 79, 80, 23, 82, 83, 84, 85, 86, 87, 88,
440 /* 70 */ 89, 90, 19, 90, 19, 94, 174, 25, 25, 80, 457 /* 70 */ 89, 90, 91, 92, 19, 94, 112, 19, 114, 115,
441 /* 80 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 458 /* 80 */ 25, 82, 83, 84, 85, 86, 87, 88, 89, 90,
442 /* 90 */ 26, 27, 94, 95, 96, 94, 95, 99, 100, 101, 459 /* 90 */ 91, 92, 19, 22, 94, 95, 96, 150, 150, 99,
443 /* 100 */ 19, 48, 49, 150, 174, 52, 119, 166, 110, 84, 460 /* 100 */ 100, 101, 76, 150, 49, 50, 105, 106, 107, 54,
444 /* 110 */ 85, 86, 87, 88, 89, 90, 26, 27, 165, 66, 461 /* 110 */ 110, 158, 165, 165, 161, 162, 26, 27, 165, 113,
445 /* 120 */ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 462 /* 120 */ 16, 174, 175, 68, 69, 70, 71, 72, 73, 74,
446 /* 130 */ 77, 78, 186, 80, 81, 82, 83, 84, 85, 86, 463 /* 130 */ 75, 76, 77, 78, 79, 80, 118, 82, 83, 84,
447 /* 140 */ 87, 88, 89, 90, 19, 90, 205, 95, 84, 85, 464 /* 140 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 23,
448 /* 150 */ 186, 96, 97, 98, 99, 100, 101, 102, 94, 95, 465 /* 150 */ 92, 97, 98, 24, 96, 97, 98, 99, 100, 101,
449 /* 160 */ 195, 97, 150, 222, 109, 224, 225, 26, 104, 105, 466 /* 160 */ 102, 25, 97, 216, 60, 92, 62, 109, 221, 25,
450 /* 170 */ 217, 90, 120, 48, 49, 50, 86, 165, 97, 98, 467 /* 170 */ 97, 98, 99, 100, 101, 102, 86, 87, 49, 50,
451 /* 180 */ 99, 100, 101, 102, 94, 95, 174, 175, 1, 2, 468 /* 180 */ 118, 116, 109, 25, 94, 95, 32, 97, 88, 89,
452 /* 190 */ 109, 66, 67, 68, 69, 70, 71, 72, 73, 74, 469 /* 190 */ 90, 91, 92, 128, 104, 41, 106, 68, 69, 70,
453 /* 200 */ 75, 76, 77, 78, 191, 80, 81, 82, 83, 84, 470 /* 200 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
454 /* 210 */ 85, 86, 87, 88, 89, 90, 19, 116, 35, 150, 471 /* 210 */ 11, 82, 83, 84, 85, 86, 87, 88, 89, 90,
455 /* 220 */ 12, 24, 208, 150, 222, 150, 224, 225, 216, 128, 472 /* 220 */ 91, 92, 19, 19, 86, 87, 88, 89, 90, 91,
456 /* 230 */ 161, 162, 150, 221, 165, 94, 28, 150, 165, 56, 473 /* 230 */ 92, 27, 96, 150, 66, 99, 100, 101, 112, 150,
457 /* 240 */ 165, 197, 160, 170, 171, 48, 49, 165, 204, 174, 474 /* 240 */ 114, 115, 138, 150, 161, 162, 110, 103, 165, 222,
458 /* 250 */ 175, 43, 165, 45, 185, 186, 174, 175, 169, 170, 475 /* 250 */ 223, 224, 49, 50, 165, 22, 57, 24, 165, 170,
459 /* 260 */ 171, 174, 175, 66, 67, 68, 69, 70, 71, 72, 476 /* 260 */ 171, 118, 94, 170, 171, 23, 98, 25, 185, 186,
460 /* 270 */ 73, 74, 75, 76, 77, 78, 194, 80, 81, 82, 477 /* 270 */ 243, 68, 69, 70, 71, 72, 73, 74, 75, 76,
461 /* 280 */ 83, 84, 85, 86, 87, 88, 89, 90, 19, 214, 478 /* 280 */ 77, 78, 79, 80, 126, 82, 83, 84, 85, 86,
462 /* 290 */ 215, 108, 150, 25, 148, 150, 64, 22, 216, 24, 479 /* 290 */ 87, 88, 89, 90, 91, 92, 19, 129, 130, 131,
463 /* 300 */ 146, 147, 215, 221, 231, 232, 152, 165, 154, 150, 480 /* 300 */ 88, 23, 172, 173, 105, 106, 107, 150, 22, 26,
464 /* 310 */ 165, 49, 170, 171, 160, 181, 182, 48, 49, 174, 481 /* 310 */ 27, 181, 26, 27, 22, 116, 26, 27, 26, 230,
465 /* 320 */ 175, 232, 188, 165, 165, 21, 94, 0, 1, 2, 482 /* 320 */ 231, 197, 165, 230, 231, 113, 49, 50, 204, 117,
466 /* 330 */ 98, 55, 174, 174, 175, 66, 67, 68, 69, 70, 483 /* 330 */ 96, 174, 175, 99, 100, 101, 22, 26, 27, 136,
467 /* 340 */ 71, 72, 73, 74, 75, 76, 77, 78, 194, 80, 484 /* 340 */ 26, 27, 118, 16, 110, 68, 69, 70, 71, 72,
468 /* 350 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 485 /* 350 */ 73, 74, 75, 76, 77, 78, 79, 80, 118, 82,
469 /* 360 */ 19, 129, 130, 131, 96, 61, 104, 99, 100, 101, 486 /* 360 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
470 /* 370 */ 150, 226, 218, 231, 232, 216, 150, 196, 110, 26, 487 /* 370 */ 19, 214, 215, 150, 23, 23, 155, 94, 95, 22,
471 /* 380 */ 27, 105, 106, 107, 158, 165, 183, 161, 162, 48, 488 /* 380 */ 94, 95, 116, 160, 94, 95, 94, 60, 165, 62,
472 /* 390 */ 49, 165, 116, 166, 174, 175, 86, 87, 88, 89, 489 /* 390 */ 112, 26, 114, 115, 128, 23, 36, 174, 175, 88,
473 /* 400 */ 90, 247, 84, 85, 100, 136, 183, 66, 67, 68, 490 /* 400 */ 49, 50, 57, 120, 22, 94, 95, 23, 94, 95,
474 /* 410 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 491 /* 410 */ 120, 51, 25, 136, 169, 170, 171, 194, 58, 68,
475 /* 420 */ 11, 80, 81, 82, 83, 84, 85, 86, 87, 88, 492 /* 420 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
476 /* 430 */ 89, 90, 19, 183, 150, 222, 23, 224, 225, 237, 493 /* 430 */ 79, 80, 23, 82, 83, 84, 85, 86, 87, 88,
477 /* 440 */ 220, 150, 138, 24, 160, 26, 22, 94, 95, 165, 494 /* 440 */ 89, 90, 91, 92, 19, 150, 12, 12, 23, 228,
478 /* 450 */ 26, 27, 26, 27, 89, 90, 165, 244, 174, 175, 495 /* 450 */ 105, 106, 107, 23, 233, 25, 165, 19, 150, 94,
479 /* 460 */ 236, 48, 49, 22, 55, 174, 175, 26, 27, 22, 496 /* 460 */ 165, 116, 28, 28, 112, 174, 114, 115, 108, 174,
480 /* 470 */ 23, 163, 25, 120, 166, 167, 168, 136, 194, 66, 497 /* 470 */ 175, 26, 27, 165, 49, 50, 231, 11, 44, 44,
481 /* 480 */ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 498 /* 480 */ 46, 46, 174, 175, 112, 160, 114, 115, 50, 22,
482 /* 490 */ 77, 78, 153, 80, 81, 82, 83, 84, 85, 86, 499 /* 490 */ 23, 57, 25, 68, 69, 70, 71, 72, 73, 74,
483 /* 500 */ 87, 88, 89, 90, 19, 196, 160, 150, 23, 173, 500 /* 500 */ 75, 76, 77, 78, 79, 80, 119, 82, 83, 84,
484 /* 510 */ 198, 220, 65, 94, 105, 106, 107, 181, 94, 95, 501 /* 510 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 194,
485 /* 520 */ 94, 95, 165, 96, 150, 116, 99, 100, 101, 31, 502 /* 520 */ 225, 23, 23, 215, 19, 95, 105, 106, 107, 150,
486 /* 530 */ 150, 174, 175, 48, 49, 94, 95, 110, 40, 165, 503 /* 530 */ 23, 150, 27, 23, 67, 25, 150, 206, 207, 94,
487 /* 540 */ 194, 161, 162, 166, 160, 165, 120, 166, 174, 175, 504 /* 540 */ 95, 166, 104, 218, 165, 22, 165, 109, 49, 50,
488 /* 550 */ 233, 66, 67, 68, 69, 70, 71, 72, 73, 74, 505 /* 550 */ 120, 165, 25, 174, 175, 174, 175, 23, 21, 234,
489 /* 560 */ 75, 76, 77, 78, 218, 80, 81, 82, 83, 84, 506 /* 560 */ 174, 175, 22, 23, 239, 25, 25, 68, 69, 70,
490 /* 570 */ 85, 86, 87, 88, 89, 90, 19, 12, 194, 150, 507 /* 570 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
491 /* 580 */ 23, 235, 205, 166, 167, 168, 240, 150, 172, 173, 508 /* 580 */ 205, 82, 83, 84, 85, 86, 87, 88, 89, 90,
492 /* 590 */ 206, 207, 150, 28, 165, 190, 191, 181, 23, 150, 509 /* 590 */ 91, 92, 19, 22, 23, 216, 23, 222, 223, 224,
493 /* 600 */ 48, 49, 165, 174, 175, 48, 49, 165, 43, 233, 510 /* 600 */ 63, 220, 35, 150, 150, 163, 220, 67, 166, 167,
494 /* 610 */ 45, 174, 175, 135, 165, 137, 174, 175, 190, 191, 511 /* 610 */ 168, 150, 169, 170, 171, 161, 162, 25, 165, 165,
495 /* 620 */ 55, 69, 70, 66, 67, 68, 69, 70, 71, 72, 512 /* 620 */ 150, 113, 49, 50, 25, 117, 165, 174, 175, 35,
496 /* 630 */ 73, 74, 75, 76, 77, 78, 150, 80, 81, 82, 513 /* 630 */ 7, 8, 9, 160, 160, 165, 120, 100, 67, 247,
497 /* 640 */ 83, 84, 85, 86, 87, 88, 89, 90, 19, 150, 514 /* 640 */ 248, 68, 69, 70, 71, 72, 73, 74, 75, 76,
498 /* 650 */ 98, 165, 23, 250, 251, 150, 155, 150, 19, 22, 515 /* 650 */ 77, 78, 79, 80, 193, 82, 83, 84, 85, 86,
499 /* 660 */ 174, 175, 213, 26, 165, 169, 170, 171, 23, 150, 516 /* 660 */ 87, 88, 89, 90, 91, 92, 19, 194, 194, 150,
500 /* 670 */ 165, 150, 165, 174, 175, 19, 150, 48, 49, 174, 517 /* 670 */ 135, 24, 137, 35, 231, 138, 150, 129, 130, 206,
501 /* 680 */ 175, 174, 175, 27, 165, 228, 165, 112, 49, 114, 518 /* 680 */ 207, 30, 27, 213, 165, 34, 118, 95, 0, 1,
502 /* 690 */ 115, 165, 177, 174, 175, 66, 67, 68, 69, 70, 519 /* 690 */ 2, 165, 218, 174, 175, 50, 49, 50, 22, 48,
503 /* 700 */ 71, 72, 73, 74, 75, 76, 77, 78, 150, 80, 520 /* 700 */ 174, 175, 22, 23, 23, 244, 222, 223, 224, 166,
504 /* 710 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 521 /* 710 */ 167, 168, 120, 239, 23, 68, 69, 70, 71, 72,
505 /* 720 */ 19, 150, 23, 165, 25, 24, 150, 150, 232, 150, 522 /* 720 */ 73, 74, 75, 76, 77, 78, 79, 80, 150, 82,
506 /* 730 */ 229, 94, 174, 175, 213, 234, 165, 25, 150, 150, 523 /* 730 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
507 /* 740 */ 150, 165, 165, 104, 165, 174, 175, 177, 109, 48, 524 /* 740 */ 19, 150, 173, 165, 181, 182, 24, 67, 26, 104,
508 /* 750 */ 49, 174, 175, 165, 165, 165, 19, 112, 22, 114, 525 /* 750 */ 181, 188, 174, 175, 150, 39, 165, 150, 52, 150,
509 /* 760 */ 115, 177, 174, 175, 27, 16, 187, 66, 67, 68, 526 /* 760 */ 150, 150, 150, 144, 145, 174, 175, 249, 250, 165,
510 /* 770 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 527 /* 770 */ 49, 50, 165, 52, 165, 165, 165, 165, 174, 175,
511 /* 780 */ 150, 80, 81, 82, 83, 84, 85, 86, 87, 88, 528 /* 780 */ 29, 174, 175, 174, 175, 174, 175, 160, 22, 68,
512 /* 790 */ 89, 90, 19, 150, 95, 165, 144, 145, 150, 150, 529 /* 790 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
513 /* 800 */ 150, 150, 113, 213, 174, 175, 117, 58, 165, 60, 530 /* 800 */ 79, 80, 150, 82, 83, 84, 85, 86, 87, 88,
514 /* 810 */ 74, 23, 150, 165, 165, 165, 165, 174, 175, 120, 531 /* 810 */ 89, 90, 91, 92, 19, 150, 94, 165, 150, 150,
515 /* 820 */ 19, 48, 49, 174, 175, 174, 175, 165, 209, 166, 532 /* 820 */ 160, 194, 150, 213, 160, 52, 174, 175, 23, 23,
516 /* 830 */ 241, 22, 23, 166, 25, 187, 174, 175, 126, 66, 533 /* 830 */ 165, 25, 22, 165, 165, 150, 150, 165, 52, 174,
517 /* 840 */ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 534 /* 840 */ 175, 22, 174, 175, 49, 50, 174, 175, 190, 191,
518 /* 850 */ 77, 78, 150, 80, 81, 82, 83, 84, 85, 86, 535 /* 850 */ 165, 165, 240, 23, 194, 25, 187, 109, 194, 174,
519 /* 860 */ 87, 88, 89, 90, 19, 150, 150, 165, 205, 182, 536 /* 860 */ 175, 190, 191, 68, 69, 70, 71, 72, 73, 74,
520 /* 870 */ 86, 150, 205, 150, 65, 166, 174, 175, 206, 207, 537 /* 870 */ 75, 76, 77, 78, 79, 80, 150, 82, 83, 84,
521 /* 880 */ 165, 165, 177, 150, 23, 25, 165, 138, 165, 174, 538 /* 880 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 150,
522 /* 890 */ 175, 241, 166, 48, 49, 174, 175, 113, 165, 98, 539 /* 890 */ 22, 165, 150, 23, 150, 25, 150, 166, 91, 92,
523 /* 900 */ 112, 117, 114, 115, 7, 8, 9, 174, 175, 193, 540 /* 900 */ 174, 175, 22, 217, 165, 150, 102, 165, 150, 165,
524 /* 910 */ 187, 66, 67, 68, 69, 70, 71, 72, 73, 74, 541 /* 910 */ 150, 165, 150, 174, 175, 19, 174, 175, 49, 50,
525 /* 920 */ 75, 76, 77, 78, 150, 80, 81, 82, 83, 84, 542 /* 920 */ 165, 86, 87, 165, 23, 165, 25, 165, 24, 174,
526 /* 930 */ 85, 86, 87, 88, 89, 90, 19, 150, 97, 165, 543 /* 930 */ 175, 187, 174, 175, 174, 175, 205, 68, 69, 70,
527 /* 940 */ 160, 150, 177, 150, 150, 150, 248, 249, 174, 175, 544 /* 940 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
528 /* 950 */ 97, 98, 165, 129, 130, 150, 165, 116, 165, 165, 545 /* 950 */ 150, 82, 83, 84, 85, 86, 87, 88, 89, 90,
529 /* 960 */ 165, 174, 175, 103, 178, 48, 49, 174, 175, 128, 546 /* 960 */ 91, 92, 19, 150, 150, 165, 150, 150, 166, 23,
530 /* 970 */ 165, 98, 242, 112, 194, 114, 115, 199, 187, 174, 547 /* 970 */ 150, 25, 160, 20, 174, 175, 1, 2, 165, 165,
531 /* 980 */ 175, 187, 109, 242, 67, 68, 69, 70, 71, 72, 548 /* 980 */ 104, 165, 165, 43, 150, 165, 240, 150, 49, 50,
532 /* 990 */ 73, 74, 75, 76, 77, 78, 150, 80, 81, 82, 549 /* 990 */ 174, 175, 49, 50, 23, 23, 25, 25, 53, 165,
533 /* 1000 */ 83, 84, 85, 86, 87, 88, 89, 90, 19, 150, 550 /* 1000 */ 187, 187, 165, 23, 187, 25, 194, 205, 174, 175,
534 /* 1010 */ 160, 165, 209, 150, 112, 150, 114, 115, 7, 8, 551 /* 1010 */ 71, 72, 69, 70, 71, 72, 73, 74, 75, 76,
535 /* 1020 */ 174, 175, 209, 6, 165, 29, 199, 150, 165, 33, 552 /* 1020 */ 77, 78, 79, 80, 150, 82, 83, 84, 85, 86,
536 /* 1030 */ 165, 150, 149, 174, 175, 150, 241, 48, 49, 174, 553 /* 1030 */ 87, 88, 89, 90, 91, 92, 19, 98, 150, 165,
537 /* 1040 */ 175, 149, 165, 47, 194, 149, 165, 16, 160, 149, 554 /* 1040 */ 150, 160, 150, 59, 25, 53, 104, 22, 174, 175,
538 /* 1050 */ 165, 174, 175, 13, 151, 174, 175, 68, 69, 70, 555 /* 1050 */ 213, 138, 5, 165, 1, 165, 150, 165, 150, 150,
539 /* 1060 */ 71, 72, 73, 74, 75, 76, 77, 78, 218, 80, 556 /* 1060 */ 240, 150, 174, 175, 174, 175, 49, 50, 118, 150,
540 /* 1070 */ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 557 /* 1070 */ 35, 165, 27, 165, 165, 194, 165, 108, 127, 76,
541 /* 1080 */ 19, 20, 194, 22, 150, 150, 150, 26, 27, 58, 558 /* 1080 */ 174, 175, 174, 175, 165, 174, 175, 70, 71, 72,
542 /* 1090 */ 240, 60, 150, 160, 151, 19, 20, 36, 22, 165, 559 /* 1090 */ 73, 74, 75, 76, 77, 78, 79, 80, 166, 82,
543 /* 1100 */ 165, 165, 26, 27, 22, 23, 150, 165, 174, 175, 560 /* 1100 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
544 /* 1110 */ 174, 175, 36, 150, 25, 54, 150, 150, 150, 150, 561 /* 1110 */ 19, 20, 193, 22, 150, 150, 150, 26, 27, 76,
545 /* 1120 */ 23, 165, 25, 159, 150, 64, 194, 194, 165, 199, 562 /* 1120 */ 150, 22, 1, 150, 119, 121, 217, 20, 37, 165,
546 /* 1130 */ 54, 165, 165, 165, 165, 193, 150, 174, 175, 165, 563 /* 1130 */ 165, 165, 16, 19, 20, 165, 22, 205, 165, 119,
547 /* 1140 */ 64, 174, 175, 174, 175, 84, 85, 65, 150, 193, 564 /* 1140 */ 26, 27, 108, 128, 150, 150, 150, 56, 150, 22,
548 /* 1150 */ 126, 165, 217, 150, 93, 94, 95, 123, 200, 98, 565 /* 1150 */ 150, 37, 150, 127, 160, 23, 150, 66, 193, 165,
549 /* 1160 */ 84, 85, 86, 165, 105, 106, 107, 193, 165, 93, 566 /* 1160 */ 165, 165, 16, 165, 23, 165, 150, 165, 174, 175,
550 /* 1170 */ 94, 95, 174, 175, 98, 5, 23, 116, 25, 193, 567 /* 1170 */ 56, 165, 150, 65, 174, 175, 15, 86, 87, 88,
551 /* 1180 */ 10, 11, 12, 13, 14, 201, 23, 17, 25, 150, 568 /* 1180 */ 66, 165, 140, 150, 93, 94, 95, 165, 194, 98,
552 /* 1190 */ 129, 130, 131, 132, 133, 134, 193, 150, 125, 124, 569 /* 1190 */ 174, 175, 22, 3, 164, 193, 174, 175, 165, 150,
553 /* 1200 */ 30, 245, 32, 150, 165, 129, 130, 131, 132, 133, 570 /* 1200 */ 86, 87, 4, 180, 150, 248, 251, 93, 94, 95,
554 /* 1210 */ 134, 41, 165, 19, 20, 122, 22, 202, 165, 150, 571 /* 1210 */ 216, 180, 98, 251, 165, 221, 150, 149, 6, 165,
555 /* 1220 */ 26, 27, 150, 53, 150, 55, 160, 174, 175, 59, 572 /* 1220 */ 129, 130, 131, 132, 133, 134, 193, 150, 174, 175,
556 /* 1230 */ 36, 22, 62, 203, 165, 26, 27, 165, 150, 165, 573 /* 1230 */ 116, 165, 19, 20, 150, 22, 149, 151, 150, 26,
557 /* 1240 */ 193, 150, 105, 106, 107, 135, 174, 175, 54, 150, 574 /* 1240 */ 27, 149, 165, 129, 130, 131, 132, 133, 134, 165,
558 /* 1250 */ 150, 150, 227, 165, 22, 23, 165, 150, 64, 150, 575 /* 1250 */ 37, 174, 175, 165, 149, 19, 20, 13, 22, 150,
559 /* 1260 */ 194, 118, 174, 175, 165, 165, 165, 193, 150, 157, 576 /* 1260 */ 150, 150, 26, 27, 146, 147, 151, 150, 25, 56,
560 /* 1270 */ 150, 157, 165, 64, 165, 105, 106, 107, 84, 85, 577 /* 1270 */ 152, 159, 154, 37, 165, 165, 165, 193, 160, 66,
561 /* 1280 */ 23, 111, 25, 165, 193, 165, 116, 93, 94, 95, 578 /* 1280 */ 116, 193, 165, 174, 175, 174, 175, 194, 199, 150,
562 /* 1290 */ 150, 150, 98, 84, 85, 150, 150, 65, 150, 150, 579 /* 1290 */ 200, 126, 56, 124, 123, 150, 201, 122, 150, 86,
563 /* 1300 */ 150, 104, 150, 94, 150, 165, 165, 98, 210, 139, 580 /* 1300 */ 87, 150, 66, 193, 165, 202, 93, 94, 95, 150,
564 /* 1310 */ 165, 165, 210, 165, 165, 165, 150, 165, 150, 165, 581 /* 1310 */ 165, 98, 194, 165, 125, 22, 165, 150, 150, 26,
565 /* 1320 */ 121, 150, 150, 129, 130, 131, 132, 133, 134, 210, 582 /* 1320 */ 27, 135, 86, 87, 165, 174, 175, 203, 226, 93,
566 /* 1330 */ 150, 165, 150, 165, 150, 150, 165, 165, 129, 130, 583 /* 1330 */ 94, 95, 165, 165, 98, 150, 218, 150, 193, 157,
567 /* 1340 */ 131, 150, 150, 150, 211, 165, 150, 165, 104, 165, 584 /* 1340 */ 118, 157, 129, 130, 131, 132, 133, 134, 5, 104,
568 /* 1350 */ 165, 23, 23, 25, 25, 211, 165, 165, 165, 176, 585 /* 1350 */ 165, 211, 165, 10, 11, 12, 13, 14, 150, 66,
569 /* 1360 */ 23, 165, 25, 23, 23, 25, 25, 23, 211, 25, 586 /* 1360 */ 17, 174, 175, 210, 246, 129, 130, 131, 132, 133,
570 /* 1370 */ 46, 176, 184, 103, 176, 22, 90, 176, 178, 18, 587 /* 1370 */ 134, 150, 210, 165, 31, 121, 33, 150, 150, 86,
571 /* 1380 */ 176, 179, 176, 176, 179, 230, 230, 184, 157, 156, 588 /* 1380 */ 87, 176, 174, 175, 150, 42, 165, 94, 211, 210,
572 /* 1390 */ 156, 44, 157, 156, 135, 157, 157, 238, 156, 239, 589 /* 1390 */ 150, 98, 165, 165, 211, 174, 175, 150, 55, 165,
573 /* 1400 */ 157, 66, 189, 189, 22, 219, 157, 199, 18, 192, 590 /* 1400 */ 57, 150, 174, 175, 61, 165, 150, 64, 174, 175,
574 /* 1410 */ 192, 192, 192, 189, 199, 157, 39, 243, 243, 157, 591 /* 1410 */ 150, 150, 165, 150, 174, 175, 165, 104, 150, 184,
575 /* 1420 */ 157, 37, 246, 1, 164, 180, 180, 249, 15, 219, 592 /* 1420 */ 150, 165, 129, 130, 131, 165, 165, 150, 165, 150,
576 /* 1430 */ 23, 252, 22, 252, 118, 118, 118, 118, 118, 113, 593 /* 1430 */ 150, 176, 150, 165, 47, 165, 150, 150, 176, 103,
577 /* 1440 */ 98, 22, 11, 23, 23, 22, 22, 120, 23, 34, 594 /* 1440 */ 150, 22, 165, 178, 165, 165, 179, 165, 105, 106,
578 /* 1450 */ 23, 25, 23, 25, 118, 25, 22, 102, 50, 23, 595 /* 1450 */ 107, 165, 165, 229, 111, 165, 92, 176, 229, 116,
579 /* 1460 */ 23, 22, 27, 22, 50, 23, 34, 34, 22, 22, 596 /* 1460 */ 184, 176, 179, 156, 176, 176, 18, 157, 156, 237,
580 /* 1470 */ 22, 109, 19, 24, 20, 104, 38, 25, 104, 22, 597 /* 1470 */ 45, 157, 156, 135, 157, 157, 238, 156, 68, 157,
581 /* 1480 */ 5, 138, 1, 118, 34, 42, 27, 108, 22, 119, 598 /* 1480 */ 189, 189, 139, 219, 22, 157, 18, 192, 192, 192,
582 /* 1490 */ 50, 74, 74, 127, 1, 16, 51, 121, 20, 119, 599 /* 1490 */ 192, 189, 219, 199, 157, 242, 40, 157, 199, 242,
583 /* 1500 */ 108, 57, 51, 128, 22, 127, 23, 23, 16, 15, 600 /* 1500 */ 153, 157, 38, 245, 196, 166, 232, 198, 177, 177,
584 /* 1510 */ 22, 3, 140, 4, 253, 253, 253, 253, 63, 601 /* 1510 */ 232, 227, 209, 178, 166, 182, 166, 148, 177, 177,
602 /* 1520 */ 209, 196, 177, 199, 209, 199, 166, 208, 92, 195,
603 /* 1530 */ 174, 174, 183, 252, 183, 183, 252, 191, 252, 235,
604 /* 1540 */ 186, 241, 241, 252, 186, 252, 252, 252, 252, 252,
605 /* 1550 */ 252, 252, 252, 252, 252, 252, 236,
585 }; 606 };
586 #define YY_SHIFT_USE_DFLT (-111) 607 #define YY_SHIFT_USE_DFLT (-74)
587 #define YY_SHIFT_MAX 415 608 #define YY_SHIFT_COUNT (418)
609 #define YY_SHIFT_MIN (-73)
610 #define YY_SHIFT_MAX (1468)
588 static const short yy_shift_ofst[] = { 611 static const short yy_shift_ofst[] = {
589 /* 0 */ 187, 1061, 1170, 1061, 1194, 1194, -2, 64, 64, -19, 612 /* 0 */ 975, 1114, 1343, 1114, 1213, 1213, 90, 90, 0, -19,
590 /* 10 */ 1194, 1194, 1194, 1194, 1194, 276, 1, 125, 1076, 1194, 613 /* 10 */ 1213, 1213, 1213, 1213, 1213, 345, 445, 721, 1091, 1213,
591 /* 20 */ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 614 /* 20 */ 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
592 /* 30 */ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 615 /* 30 */ 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
593 /* 40 */ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 616 /* 40 */ 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1236, 1213, 1213,
594 /* 50 */ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, -48, 617 /* 50 */ 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
595 /* 60 */ 409, 1, 1, 141, 318, 318, -110, 53, 197, 269, 618 /* 60 */ 1213, 199, 445, 445, 835, 835, 365, 1164, 55, 647,
596 /* 70 */ 341, 413, 485, 557, 629, 701, 773, 845, 773, 773, 619 /* 70 */ 573, 499, 425, 351, 277, 203, 129, 795, 795, 795,
597 /* 80 */ 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 620 /* 80 */ 795, 795, 795, 795, 795, 795, 795, 795, 795, 795,
598 /* 90 */ 773, 773, 773, 773, 773, 773, 917, 989, 989, -67, 621 /* 90 */ 795, 795, 795, 795, 795, 869, 795, 943, 1017, 1017,
599 /* 100 */ -67, -1, -1, 55, 25, 310, 1, 1, 1, 1, 622 /* 100 */ -69, -45, -45, -45, -45, -45, -1, 58, 138, 100,
600 /* 110 */ 1, 639, 304, 1, 1, 1, 1, 1, 1, 1, 623 /* 110 */ 445, 445, 445, 445, 445, 445, 445, 445, 445, 445,
601 /* 120 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 365, 624 /* 120 */ 445, 445, 445, 445, 445, 445, 537, 438, 445, 445,
602 /* 130 */ 141, -17, -111, -111, -111, 1209, 81, 424, 353, 426, 625 /* 130 */ 445, 445, 445, 365, 807, 1436, -74, -74, -74, 1293,
603 /* 140 */ 441, 90, 565, 565, 1, 1, 1, 1, 1, 1, 626 /* 140 */ 73, 434, 434, 311, 314, 290, 283, 286, 540, 467,
604 /* 150 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 627 /* 150 */ 445, 445, 445, 445, 445, 445, 445, 445, 445, 445,
605 /* 160 */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 628 /* 160 */ 445, 445, 445, 445, 445, 445, 445, 445, 445, 445,
606 /* 170 */ 1, 1, 1, 1, 1, 1, 447, 809, 327, 419, 629 /* 170 */ 445, 445, 445, 445, 445, 445, 445, 445, 445, 445,
607 /* 180 */ 419, 419, 841, 101, -110, -110, -110, -111, -111, -111, 630 /* 180 */ 445, 445, 65, 722, 722, 722, 688, 266, 1164, 1164,
608 /* 190 */ 232, 232, 268, 427, 575, 645, 788, 208, 861, 699, 631 /* 190 */ 1164, -74, -74, -74, 136, 168, 168, 234, 360, 360,
609 /* 200 */ 897, 784, 637, 52, 183, 183, 183, 902, 902, 996, 632 /* 200 */ 360, 430, 372, 435, 352, 278, 126, -36, -36, -36,
610 /* 210 */ 1059, 902, 902, 902, 902, 275, 689, -13, 141, 824, 633 /* 210 */ -36, 421, 651, -36, -36, 592, 292, 212, 623, 158,
611 /* 220 */ 824, 478, 498, 498, 656, 498, 262, 498, 141, 498, 634 /* 220 */ 204, 204, 505, 158, 505, 144, 365, 154, 365, 154,
612 /* 230 */ 141, 860, 737, 712, 737, 656, 656, 712, 1017, 1017, 635 /* 230 */ 645, 154, 204, 154, 154, 535, 548, 548, 365, 387,
613 /* 240 */ 1017, 1017, 1040, 1040, 1089, -110, 1024, 1034, 1075, 1093, 636 /* 240 */ 508, 233, 1464, 1222, 1222, 1456, 1456, 1222, 1462, 1410,
614 /* 250 */ 1073, 1110, 1143, 1143, 1197, 1199, 1197, 1199, 1197, 1199, 637 /* 250 */ 1165, 1468, 1468, 1468, 1468, 1222, 1165, 1462, 1410, 1410,
615 /* 260 */ 1244, 1244, 1324, 1244, 1270, 1244, 1353, 1286, 1286, 1324, 638 /* 260 */ 1222, 1448, 1338, 1425, 1222, 1222, 1448, 1222, 1448, 1222,
616 /* 270 */ 1244, 1244, 1244, 1353, 1361, 1143, 1361, 1143, 1361, 1143, 639 /* 270 */ 1448, 1419, 1313, 1313, 1313, 1387, 1364, 1364, 1419, 1313,
617 /* 280 */ 1143, 1347, 1259, 1361, 1143, 1335, 1335, 1382, 1024, 1143, 640 /* 280 */ 1336, 1313, 1387, 1313, 1313, 1254, 1245, 1254, 1245, 1254,
618 /* 290 */ 1390, 1390, 1390, 1390, 1024, 1335, 1382, 1143, 1377, 1377, 641 /* 290 */ 1245, 1222, 1222, 1186, 1189, 1175, 1169, 1171, 1165, 1164,
619 /* 300 */ 1143, 1143, 1384, -111, -111, -111, -111, -111, -111, 552, 642 /* 300 */ 1243, 1244, 1244, 1212, 1212, 1212, 1212, -74, -74, -74,
620 /* 310 */ 749, 1137, 1031, 1082, 1232, 801, 1097, 1153, 873, 1011, 643 /* 310 */ -74, -74, -74, 939, 104, 680, 571, 327, 1, 980,
621 /* 320 */ 853, 1163, 1257, 1328, 1329, 1337, 1340, 1341, 736, 1344, 644 /* 320 */ 26, 972, 971, 946, 901, 870, 830, 806, 54, 21,
622 /* 330 */ 1422, 1413, 1407, 1410, 1316, 1317, 1318, 1319, 1320, 1342, 645 /* 330 */ -73, 510, 242, 1198, 1190, 1170, 1042, 1161, 1108, 1146,
623 /* 340 */ 1326, 1419, 1420, 1421, 1423, 1431, 1424, 1425, 1426, 1427, 646 /* 340 */ 1141, 1132, 1015, 1127, 1026, 1034, 1020, 1107, 1004, 1116,
624 /* 350 */ 1429, 1428, 1415, 1430, 1432, 1428, 1327, 1434, 1433, 1435, 647 /* 350 */ 1121, 1005, 1099, 951, 1043, 1003, 969, 1045, 1035, 950,
625 /* 360 */ 1336, 1436, 1437, 1438, 1408, 1439, 1414, 1441, 1442, 1446, 648 /* 360 */ 1053, 1047, 1025, 942, 913, 992, 1019, 945, 984, 940,
626 /* 370 */ 1447, 1440, 1448, 1355, 1362, 1453, 1454, 1449, 1371, 1443, 649 /* 370 */ 876, 904, 953, 896, 748, 804, 880, 786, 868, 819,
627 /* 380 */ 1444, 1445, 1452, 1451, 1343, 1374, 1457, 1475, 1481, 1365, 650 /* 380 */ 805, 810, 773, 751, 766, 706, 716, 691, 681, 568,
628 /* 390 */ 1450, 1459, 1379, 1417, 1418, 1366, 1466, 1370, 1493, 1479, 651 /* 390 */ 655, 638, 676, 516, 541, 594, 599, 567, 541, 534,
629 /* 400 */ 1376, 1478, 1380, 1392, 1378, 1482, 1375, 1483, 1484, 1492, 652 /* 400 */ 507, 527, 498, 523, 466, 382, 409, 384, 357, 6,
630 /* 410 */ 1455, 1494, 1372, 1488, 1508, 1509, 653 /* 410 */ 240, 224, 143, 62, 18, 71, 39, 9, 5,
631 }; 654 };
632 #define YY_REDUCE_USE_DFLT (-180) 655 #define YY_REDUCE_USE_DFLT (-142)
633 #define YY_REDUCE_MAX 308 656 #define YY_REDUCE_COUNT (312)
657 #define YY_REDUCE_MIN (-141)
658 #define YY_REDUCE_MAX (1369)
634 static const short yy_reduce_ofst[] = { 659 static const short yy_reduce_ofst[] = {
635 /* 0 */ -141, 82, 154, 284, 12, 75, 69, 73, 142, -59, 660 /* 0 */ -141, 994, 1118, 223, 157, -53, 93, 89, 83, 375,
636 /* 10 */ 145, 87, 159, 220, 291, 346, 226, 213, 357, 374, 661 /* 10 */ 386, 381, 379, 308, 295, 325, -47, 27, 1240, 1234,
637 /* 20 */ 429, 437, 442, 486, 499, 505, 507, 519, 558, 571, 662 /* 20 */ 1228, 1221, 1208, 1187, 1151, 1111, 1109, 1077, 1054, 1022,
638 /* 30 */ 577, 588, 630, 643, 649, 651, 662, 702, 715, 721, 663 /* 30 */ 1016, 1000, 911, 908, 906, 890, 888, 874, 834, 816,
639 /* 40 */ 733, 774, 787, 793, 805, 846, 859, 865, 877, 881, 664 /* 40 */ 800, 760, 758, 755, 742, 739, 726, 685, 672, 668,
640 /* 50 */ 934, 936, 963, 967, 969, 998, 1053, 1072, 1088, -179, 665 /* 50 */ 665, 652, 611, 609, 607, 604, 591, 578, 526, 519,
641 /* 60 */ 850, 956, 380, 308, 89, 496, 384, 2, 2, 2, 666 /* 60 */ 453, 474, 454, 461, 443, 245, 442, 473, 484, 484,
642 /* 70 */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 667 /* 70 */ 484, 484, 484, 484, 484, 484, 484, 484, 484, 484,
643 /* 80 */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 668 /* 80 */ 484, 484, 484, 484, 484, 484, 484, 484, 484, 484,
644 /* 90 */ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 669 /* 90 */ 484, 484, 484, 484, 484, 484, 484, 484, 484, 484,
645 /* 100 */ 2, 2, 2, 416, 2, 2, 449, 579, 648, 723, 670 /* 100 */ 484, 484, 484, 484, 484, 484, 484, 130, 484, 484,
646 /* 110 */ 791, 134, 501, 716, 521, 794, 589, -47, 650, 590, 671 /* 110 */ 1145, 909, 1110, 1088, 1084, 1033, 1002, 965, 820, 837,
647 /* 120 */ 795, 942, 974, 986, 1003, 1047, 1074, 935, 1091, 2, 672 /* 120 */ 746, 686, 612, 817, 610, 919, 221, 563, 814, 813,
648 /* 130 */ 417, 2, 2, 2, 2, 158, 336, 526, 576, 863, 673 /* 130 */ 744, 669, 470, 543, 484, 484, 484, 484, 484, 291,
649 /* 140 */ 885, 966, 405, 428, 968, 1039, 1069, 1099, 1100, 966, 674 /* 140 */ 569, 671, 658, 970, 1290, 1287, 1286, 1282, 518, 518,
650 /* 150 */ 1101, 1107, 1109, 1118, 1120, 1140, 1141, 1145, 1146, 1148, 675 /* 150 */ 1280, 1279, 1277, 1270, 1268, 1263, 1261, 1260, 1256, 1251,
651 /* 160 */ 1149, 1150, 1152, 1154, 1166, 1168, 1171, 1172, 1180, 1182, 676 /* 160 */ 1247, 1227, 1185, 1168, 1167, 1159, 1148, 1139, 1117, 1066,
652 /* 170 */ 1184, 1185, 1191, 1192, 1193, 1196, 403, 403, 652, 377, 677 /* 170 */ 1049, 1006, 998, 996, 995, 973, 970, 966, 964, 892,
653 /* 180 */ 663, 667, -134, 780, 888, 933, 1066, 44, 672, 698, 678 /* 180 */ 762, -52, 881, 932, 802, 731, 619, 812, 664, 660,
654 /* 190 */ -98, -70, -54, -36, -35, -35, -35, 13, -35, 14, 679 /* 190 */ 627, 392, 331, 124, 1358, 1357, 1356, 1354, 1352, 1351,
655 /* 200 */ 146, 181, 227, 14, 203, 223, 250, -35, -35, 224, 680 /* 200 */ 1349, 1319, 1334, 1346, 1334, 1334, 1334, 1334, 1334, 1334,
656 /* 210 */ 202, -35, -35, -35, -35, 339, 309, 312, 381, 317, 681 /* 210 */ 1334, 1320, 1304, 1334, 1334, 1319, 1360, 1325, 1369, 1326,
657 /* 220 */ 376, 457, 515, 570, 619, 584, 687, 705, 709, 765, 682 /* 220 */ 1315, 1311, 1301, 1324, 1300, 1335, 1350, 1345, 1348, 1342,
658 /* 230 */ 726, 786, 730, 778, 741, 803, 813, 827, 883, 892, 683 /* 230 */ 1333, 1341, 1303, 1332, 1331, 1284, 1278, 1274, 1339, 1309,
659 /* 240 */ 896, 900, 903, 943, 964, 932, 930, 958, 984, 1015, 684 /* 240 */ 1308, 1347, 1258, 1344, 1340, 1257, 1253, 1337, 1273, 1302,
660 /* 250 */ 1030, 1025, 1112, 1114, 1098, 1133, 1102, 1144, 1119, 1157, 685 /* 250 */ 1299, 1298, 1297, 1296, 1295, 1328, 1294, 1264, 1292, 1291,
661 /* 260 */ 1183, 1195, 1188, 1198, 1200, 1201, 1202, 1155, 1156, 1203, 686 /* 260 */ 1322, 1321, 1238, 1232, 1318, 1317, 1316, 1314, 1312, 1310,
662 /* 270 */ 1204, 1206, 1207, 1205, 1233, 1231, 1234, 1235, 1237, 1238, 687 /* 270 */ 1307, 1283, 1289, 1288, 1285, 1276, 1229, 1224, 1267, 1281,
663 /* 280 */ 1239, 1159, 1160, 1242, 1243, 1213, 1214, 1186, 1208, 1249, 688 /* 280 */ 1265, 1262, 1235, 1255, 1205, 1183, 1179, 1177, 1162, 1140,
664 /* 290 */ 1217, 1218, 1219, 1220, 1215, 1224, 1210, 1258, 1174, 1175, 689 /* 290 */ 1153, 1184, 1182, 1102, 1124, 1103, 1095, 1090, 1089, 1093,
665 /* 300 */ 1262, 1263, 1176, 1260, 1245, 1246, 1178, 1179, 1181, 690 /* 300 */ 1112, 1115, 1086, 1105, 1092, 1087, 1068, 962, 955, 957,
691 /* 310 */ 1031, 1023, 1030,
666 }; 692 };
667 static const YYACTIONTYPE yy_default[] = { 693 static const YYACTIONTYPE yy_default[] = {
668 /* 0 */ 634, 869, 958, 958, 869, 958, 958, 898, 898, 757, 694 /* 0 */ 635, 870, 959, 959, 959, 870, 899, 899, 959, 759,
669 /* 10 */ 867, 958, 958, 958, 958, 958, 958, 932, 958, 958, 695 /* 10 */ 959, 959, 959, 959, 868, 959, 959, 933, 959, 959,
670 /* 20 */ 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, 696 /* 20 */ 959, 959, 959, 959, 959, 959, 959, 959, 959, 959,
671 /* 30 */ 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, 697 /* 30 */ 959, 959, 959, 959, 959, 959, 959, 959, 959, 959,
672 /* 40 */ 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, 698 /* 40 */ 959, 959, 959, 959, 959, 959, 959, 959, 959, 959,
673 /* 50 */ 958, 958, 958, 958, 958, 958, 958, 958, 958, 841, 699 /* 50 */ 959, 959, 959, 959, 959, 959, 959, 959, 959, 959,
674 /* 60 */ 958, 958, 958, 673, 898, 898, 761, 792, 958, 958, 700 /* 60 */ 959, 959, 959, 959, 899, 899, 674, 763, 794, 959,
675 /* 70 */ 958, 958, 958, 958, 958, 958, 793, 958, 871, 866, 701 /* 70 */ 959, 959, 959, 959, 959, 959, 959, 932, 934, 809,
676 /* 80 */ 862, 864, 863, 870, 794, 783, 790, 797, 772, 911, 702 /* 80 */ 808, 802, 801, 912, 774, 799, 792, 785, 796, 871,
677 /* 90 */ 799, 800, 806, 807, 933, 931, 829, 828, 847, 831, 703 /* 90 */ 864, 865, 863, 867, 872, 959, 795, 831, 848, 830,
678 /* 100 */ 853, 830, 840, 665, 832, 833, 958, 958, 958, 958, 704 /* 100 */ 842, 847, 854, 846, 843, 833, 832, 666, 834, 835,
679 /* 110 */ 958, 726, 660, 958, 958, 958, 958, 958, 958, 958, 705 /* 110 */ 959, 959, 959, 959, 959, 959, 959, 959, 959, 959,
680 /* 120 */ 958, 958, 958, 958, 958, 958, 958, 958, 958, 834, 706 /* 120 */ 959, 959, 959, 959, 959, 959, 661, 728, 959, 959,
681 /* 130 */ 958, 835, 848, 849, 850, 958, 958, 958, 958, 958, 707 /* 130 */ 959, 959, 959, 959, 836, 837, 851, 850, 849, 959,
682 /* 140 */ 958, 958, 958, 958, 640, 958, 958, 958, 958, 958, 708 /* 140 */ 959, 959, 959, 959, 959, 959, 959, 959, 959, 959,
683 /* 150 */ 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, 709 /* 150 */ 959, 939, 937, 959, 883, 959, 959, 959, 959, 959,
684 /* 160 */ 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, 710 /* 160 */ 959, 959, 959, 959, 959, 959, 959, 959, 959, 959,
685 /* 170 */ 958, 882, 958, 936, 938, 958, 958, 958, 634, 757, 711 /* 170 */ 959, 959, 959, 959, 959, 959, 959, 959, 959, 959,
686 /* 180 */ 757, 757, 958, 958, 958, 958, 958, 751, 761, 950, 712 /* 180 */ 959, 641, 959, 759, 759, 759, 635, 959, 959, 959,
687 /* 190 */ 958, 958, 717, 958, 958, 958, 958, 958, 958, 958, 713 /* 190 */ 959, 951, 763, 753, 719, 959, 959, 959, 959, 959,
688 /* 200 */ 642, 749, 675, 759, 958, 958, 958, 662, 738, 904, 714 /* 200 */ 959, 959, 959, 959, 959, 959, 959, 804, 742, 922,
689 /* 210 */ 958, 923, 921, 740, 802, 958, 749, 758, 958, 958, 715 /* 210 */ 924, 959, 905, 740, 663, 761, 676, 751, 643, 798,
690 /* 220 */ 958, 865, 786, 786, 774, 786, 696, 786, 958, 786, 716 /* 220 */ 776, 776, 917, 798, 917, 700, 959, 788, 959, 788,
691 /* 230 */ 958, 699, 916, 796, 916, 774, 774, 796, 639, 639, 717 /* 230 */ 697, 788, 776, 788, 788, 866, 959, 959, 959, 760,
692 /* 240 */ 639, 639, 650, 650, 716, 958, 796, 787, 789, 779, 718 /* 240 */ 751, 959, 944, 767, 767, 936, 936, 767, 810, 732,
693 /* 250 */ 791, 958, 765, 765, 773, 778, 773, 778, 773, 778, 719 /* 250 */ 798, 739, 739, 739, 739, 767, 798, 810, 732, 732,
694 /* 260 */ 728, 728, 713, 728, 699, 728, 875, 879, 879, 713, 720 /* 260 */ 767, 658, 911, 909, 767, 767, 658, 767, 658, 767,
695 /* 270 */ 728, 728, 728, 875, 657, 765, 657, 765, 657, 765, 721 /* 270 */ 658, 876, 730, 730, 730, 715, 880, 880, 876, 730,
696 /* 280 */ 765, 908, 910, 657, 765, 730, 730, 808, 796, 765, 722 /* 280 */ 700, 730, 715, 730, 730, 780, 775, 780, 775, 780,
697 /* 290 */ 737, 737, 737, 737, 796, 730, 808, 765, 935, 935, 723 /* 290 */ 775, 767, 767, 959, 793, 781, 791, 789, 798, 959,
698 /* 300 */ 765, 765, 943, 683, 701, 701, 950, 955, 955, 958, 724 /* 300 */ 718, 651, 651, 640, 640, 640, 640, 956, 956, 951,
699 /* 310 */ 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, 725 /* 310 */ 702, 702, 684, 959, 959, 959, 959, 959, 959, 959,
700 /* 320 */ 958, 958, 958, 958, 958, 958, 958, 958, 884, 958, 726 /* 320 */ 885, 959, 959, 959, 959, 959, 959, 959, 959, 959,
701 /* 330 */ 958, 648, 958, 667, 815, 820, 816, 958, 817, 958, 727 /* 330 */ 959, 959, 959, 959, 636, 946, 959, 959, 943, 959,
702 /* 340 */ 743, 958, 958, 958, 958, 958, 958, 958, 958, 958, 728 /* 340 */ 959, 959, 959, 959, 959, 959, 959, 959, 959, 959,
703 /* 350 */ 958, 868, 958, 780, 958, 788, 958, 958, 958, 958, 729 /* 350 */ 959, 959, 959, 959, 959, 959, 959, 959, 959, 915,
704 /* 360 */ 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, 730 /* 360 */ 959, 959, 959, 959, 959, 959, 908, 907, 959, 959,
705 /* 370 */ 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, 731 /* 370 */ 959, 959, 959, 959, 959, 959, 959, 959, 959, 959,
706 /* 380 */ 958, 906, 907, 958, 958, 958, 958, 958, 958, 914, 732 /* 380 */ 959, 959, 959, 959, 959, 959, 959, 959, 959, 959,
707 /* 390 */ 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, 733 /* 390 */ 959, 959, 959, 959, 790, 959, 782, 959, 869, 959,
708 /* 400 */ 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, 734 /* 400 */ 959, 959, 959, 959, 959, 959, 959, 959, 959, 745,
709 /* 410 */ 942, 958, 958, 945, 635, 958, 630, 632, 633, 637, 735 /* 410 */ 819, 959, 818, 822, 817, 668, 959, 649, 959, 632,
710 /* 420 */ 638, 641, 667, 668, 670, 671, 672, 643, 644, 645, 736 /* 420 */ 637, 955, 958, 957, 954, 953, 952, 947, 945, 942,
711 /* 430 */ 646, 647, 649, 653, 651, 652, 654, 661, 663, 682, 737 /* 430 */ 941, 940, 938, 935, 931, 889, 887, 894, 893, 892,
712 /* 440 */ 684, 686, 747, 748, 812, 741, 742, 746, 669, 823, 738 /* 440 */ 891, 890, 888, 886, 884, 805, 803, 800, 797, 930,
713 /* 450 */ 814, 818, 819, 821, 822, 836, 837, 839, 845, 852, 739 /* 450 */ 882, 741, 738, 737, 657, 948, 914, 923, 921, 811,
714 /* 460 */ 855, 838, 843, 844, 846, 851, 854, 744, 745, 858, 740 /* 460 */ 920, 919, 918, 916, 913, 900, 807, 806, 733, 874,
715 /* 470 */ 676, 677, 680, 681, 894, 896, 895, 897, 679, 678, 741 /* 470 */ 873, 660, 904, 903, 902, 906, 910, 901, 769, 659,
716 /* 480 */ 824, 827, 860, 861, 924, 925, 926, 927, 928, 856, 742 /* 480 */ 656, 665, 722, 721, 729, 727, 726, 725, 724, 723,
717 /* 490 */ 766, 859, 842, 781, 784, 785, 782, 750, 760, 768, 743 /* 490 */ 720, 667, 675, 686, 714, 699, 698, 879, 881, 878,
718 /* 500 */ 769, 770, 771, 755, 756, 762, 777, 810, 811, 775, 744 /* 500 */ 877, 707, 706, 712, 711, 710, 709, 708, 705, 704,
719 /* 510 */ 776, 763, 764, 752, 753, 754, 857, 813, 825, 826, 745 /* 510 */ 703, 696, 695, 701, 694, 717, 716, 713, 693, 736,
720 /* 520 */ 687, 688, 820, 689, 690, 691, 729, 732, 733, 734, 746 /* 520 */ 735, 734, 731, 692, 691, 690, 822, 689, 688, 828,
721 /* 530 */ 692, 711, 714, 715, 693, 700, 694, 695, 702, 703, 747 /* 530 */ 827, 815, 858, 756, 755, 754, 766, 765, 778, 777,
722 /* 540 */ 704, 707, 708, 709, 710, 705, 706, 876, 877, 880, 748 /* 540 */ 813, 812, 779, 764, 758, 757, 773, 772, 771, 770,
723 /* 550 */ 878, 697, 698, 712, 685, 674, 666, 718, 721, 722, 749 /* 550 */ 762, 752, 784, 787, 786, 783, 860, 768, 857, 929,
724 /* 560 */ 723, 724, 725, 727, 719, 720, 664, 655, 658, 767, 750 /* 560 */ 928, 927, 926, 925, 862, 861, 829, 826, 679, 680,
725 /* 570 */ 900, 909, 905, 901, 902, 903, 659, 872, 873, 731, 751 /* 570 */ 898, 896, 897, 895, 682, 681, 678, 677, 859, 747,
726 /* 580 */ 804, 805, 899, 912, 915, 917, 918, 919, 809, 920, 752 /* 580 */ 746, 855, 852, 844, 840, 856, 853, 845, 841, 839,
727 /* 590 */ 922, 913, 947, 656, 735, 736, 739, 881, 929, 795, 753 /* 590 */ 838, 824, 823, 821, 820, 816, 825, 670, 748, 744,
728 /* 600 */ 798, 801, 803, 883, 885, 887, 889, 890, 891, 892, 754 /* 600 */ 743, 814, 750, 749, 687, 685, 683, 664, 662, 655,
729 /* 610 */ 893, 886, 888, 930, 934, 937, 939, 940, 941, 944, 755 /* 610 */ 653, 652, 654, 650, 648, 647, 646, 645, 644, 673,
730 /* 620 */ 946, 951, 952, 953, 956, 957, 954, 636, 631, 756 /* 620 */ 672, 671, 669, 668, 642, 639, 638, 634, 633, 631,
731 }; 757 };
732 #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0]))
733 758
734 /* The next table maps tokens into fallback tokens. If a construct 759 /* The next table maps tokens into fallback tokens. If a construct
735 ** like the following: 760 ** like the following:
736 ** 761 **
737 ** %fallback ID X Y Z. 762 ** %fallback ID X Y Z.
738 ** 763 **
739 ** appears in the grammar, then ID becomes a fallback token for X, Y, 764 ** appears in the grammar, then ID becomes a fallback token for X, Y,
740 ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser 765 ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser
741 ** but it does not parse, the type of the token is changed to ID and 766 ** but it does not parse, the type of the token is changed to ID and
742 ** the parse is retried before an error is thrown. 767 ** the parse is retried before an error is thrown.
(...skipping 22 matching lines...) Expand all
765 0, /* NOT => nothing */ 790 0, /* NOT => nothing */
766 0, /* EXISTS => nothing */ 791 0, /* EXISTS => nothing */
767 26, /* TEMP => ID */ 792 26, /* TEMP => ID */
768 0, /* LP => nothing */ 793 0, /* LP => nothing */
769 0, /* RP => nothing */ 794 0, /* RP => nothing */
770 0, /* AS => nothing */ 795 0, /* AS => nothing */
771 0, /* COMMA => nothing */ 796 0, /* COMMA => nothing */
772 0, /* ID => nothing */ 797 0, /* ID => nothing */
773 0, /* INDEXED => nothing */ 798 0, /* INDEXED => nothing */
774 26, /* ABORT => ID */ 799 26, /* ABORT => ID */
800 26, /* ACTION => ID */
775 26, /* AFTER => ID */ 801 26, /* AFTER => ID */
776 26, /* ANALYZE => ID */ 802 26, /* ANALYZE => ID */
777 26, /* ASC => ID */ 803 26, /* ASC => ID */
778 26, /* ATTACH => ID */ 804 26, /* ATTACH => ID */
779 26, /* BEFORE => ID */ 805 26, /* BEFORE => ID */
780 26, /* BY => ID */ 806 26, /* BY => ID */
781 26, /* CASCADE => ID */ 807 26, /* CASCADE => ID */
782 26, /* CAST => ID */ 808 26, /* CAST => ID */
783 26, /* COLUMNKW => ID */ 809 26, /* COLUMNKW => ID */
784 26, /* CONFLICT => ID */ 810 26, /* CONFLICT => ID */
785 26, /* DATABASE => ID */ 811 26, /* DATABASE => ID */
786 26, /* DESC => ID */ 812 26, /* DESC => ID */
787 26, /* DETACH => ID */ 813 26, /* DETACH => ID */
788 26, /* EACH => ID */ 814 26, /* EACH => ID */
789 26, /* FAIL => ID */ 815 26, /* FAIL => ID */
790 26, /* FOR => ID */ 816 26, /* FOR => ID */
791 26, /* IGNORE => ID */ 817 26, /* IGNORE => ID */
792 26, /* INITIALLY => ID */ 818 26, /* INITIALLY => ID */
793 26, /* INSTEAD => ID */ 819 26, /* INSTEAD => ID */
794 26, /* LIKE_KW => ID */ 820 26, /* LIKE_KW => ID */
795 26, /* MATCH => ID */ 821 26, /* MATCH => ID */
822 26, /* NO => ID */
796 26, /* KEY => ID */ 823 26, /* KEY => ID */
797 26, /* OF => ID */ 824 26, /* OF => ID */
798 26, /* OFFSET => ID */ 825 26, /* OFFSET => ID */
799 26, /* PRAGMA => ID */ 826 26, /* PRAGMA => ID */
800 26, /* RAISE => ID */ 827 26, /* RAISE => ID */
801 26, /* REPLACE => ID */ 828 26, /* REPLACE => ID */
802 26, /* RESTRICT => ID */ 829 26, /* RESTRICT => ID */
803 26, /* ROW => ID */ 830 26, /* ROW => ID */
804 26, /* TRIGGER => ID */ 831 26, /* TRIGGER => ID */
805 26, /* VACUUM => ID */ 832 26, /* VACUUM => ID */
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
886 /* For tracing shifts, the names of all terminals and nonterminals 913 /* For tracing shifts, the names of all terminals and nonterminals
887 ** are required. The following table supplies these names */ 914 ** are required. The following table supplies these names */
888 static const char *const yyTokenName[] = { 915 static const char *const yyTokenName[] = {
889 "$", "SEMI", "EXPLAIN", "QUERY", 916 "$", "SEMI", "EXPLAIN", "QUERY",
890 "PLAN", "BEGIN", "TRANSACTION", "DEFERRED", 917 "PLAN", "BEGIN", "TRANSACTION", "DEFERRED",
891 "IMMEDIATE", "EXCLUSIVE", "COMMIT", "END", 918 "IMMEDIATE", "EXCLUSIVE", "COMMIT", "END",
892 "ROLLBACK", "SAVEPOINT", "RELEASE", "TO", 919 "ROLLBACK", "SAVEPOINT", "RELEASE", "TO",
893 "TABLE", "CREATE", "IF", "NOT", 920 "TABLE", "CREATE", "IF", "NOT",
894 "EXISTS", "TEMP", "LP", "RP", 921 "EXISTS", "TEMP", "LP", "RP",
895 "AS", "COMMA", "ID", "INDEXED", 922 "AS", "COMMA", "ID", "INDEXED",
896 "ABORT", "AFTER", "ANALYZE", "ASC", 923 "ABORT", "ACTION", "AFTER", "ANALYZE",
897 "ATTACH", "BEFORE", "BY", "CASCADE", 924 "ASC", "ATTACH", "BEFORE", "BY",
898 "CAST", "COLUMNKW", "CONFLICT", "DATABASE", 925 "CASCADE", "CAST", "COLUMNKW", "CONFLICT",
899 "DESC", "DETACH", "EACH", "FAIL", 926 "DATABASE", "DESC", "DETACH", "EACH",
900 "FOR", "IGNORE", "INITIALLY", "INSTEAD", 927 "FAIL", "FOR", "IGNORE", "INITIALLY",
901 "LIKE_KW", "MATCH", "KEY", "OF", 928 "INSTEAD", "LIKE_KW", "MATCH", "NO",
902 "OFFSET", "PRAGMA", "RAISE", "REPLACE", 929 "KEY", "OF", "OFFSET", "PRAGMA",
903 "RESTRICT", "ROW", "TRIGGER", "VACUUM", 930 "RAISE", "REPLACE", "RESTRICT", "ROW",
904 "VIEW", "VIRTUAL", "REINDEX", "RENAME", 931 "TRIGGER", "VACUUM", "VIEW", "VIRTUAL",
905 "CTIME_KW", "ANY", "OR", "AND", 932 "REINDEX", "RENAME", "CTIME_KW", "ANY",
906 "IS", "BETWEEN", "IN", "ISNULL", 933 "OR", "AND", "IS", "BETWEEN",
907 "NOTNULL", "NE", "EQ", "GT", 934 "IN", "ISNULL", "NOTNULL", "NE",
908 "LE", "LT", "GE", "ESCAPE", 935 "EQ", "GT", "LE", "LT",
909 "BITAND", "BITOR", "LSHIFT", "RSHIFT", 936 "GE", "ESCAPE", "BITAND", "BITOR",
910 "PLUS", "MINUS", "STAR", "SLASH", 937 "LSHIFT", "RSHIFT", "PLUS", "MINUS",
911 "REM", "CONCAT", "COLLATE", "UMINUS", 938 "STAR", "SLASH", "REM", "CONCAT",
912 "UPLUS", "BITNOT", "STRING", "JOIN_KW", 939 "COLLATE", "BITNOT", "STRING", "JOIN_KW",
913 "CONSTRAINT", "DEFAULT", "NULL", "PRIMARY", 940 "CONSTRAINT", "DEFAULT", "NULL", "PRIMARY",
914 "UNIQUE", "CHECK", "REFERENCES", "AUTOINCR", 941 "UNIQUE", "CHECK", "REFERENCES", "AUTOINCR",
915 "ON", "DELETE", "UPDATE", "INSERT", 942 "ON", "INSERT", "DELETE", "UPDATE",
916 "SET", "DEFERRABLE", "FOREIGN", "DROP", 943 "SET", "DEFERRABLE", "FOREIGN", "DROP",
917 "UNION", "ALL", "EXCEPT", "INTERSECT", 944 "UNION", "ALL", "EXCEPT", "INTERSECT",
918 "SELECT", "DISTINCT", "DOT", "FROM", 945 "SELECT", "DISTINCT", "DOT", "FROM",
919 "JOIN", "USING", "ORDER", "GROUP", 946 "JOIN", "USING", "ORDER", "GROUP",
920 "HAVING", "LIMIT", "WHERE", "INTO", 947 "HAVING", "LIMIT", "WHERE", "INTO",
921 "VALUES", "INTEGER", "FLOAT", "BLOB", 948 "VALUES", "INTEGER", "FLOAT", "BLOB",
922 "REGISTER", "VARIABLE", "CASE", "WHEN", 949 "REGISTER", "VARIABLE", "CASE", "WHEN",
923 "THEN", "ELSE", "INDEX", "ALTER", 950 "THEN", "ELSE", "INDEX", "ALTER",
924 "ADD", "error", "input", "cmdlist", 951 "ADD", "error", "input", "cmdlist",
925 "ecmd", "explain", "cmdx", "cmd", 952 "ecmd", "explain", "cmdx", "cmd",
926 "transtype", "trans_opt", "nm", "savepoint_opt", 953 "transtype", "trans_opt", "nm", "savepoint_opt",
927 "create_table", "create_table_args", "createkw", "temp", 954 "create_table", "create_table_args", "createkw", "temp",
928 "ifnotexists", "dbnm", "columnlist", "conslist_opt", 955 "ifnotexists", "dbnm", "columnlist", "conslist_opt",
929 "select", "column", "columnid", "type", 956 "select", "column", "columnid", "type",
930 "carglist", "id", "ids", "typetoken", 957 "carglist", "id", "ids", "typetoken",
931 "typename", "signed", "plus_num", "minus_num", 958 "typename", "signed", "plus_num", "minus_num",
932 "carg", "ccons", "term", "expr", 959 "carg", "ccons", "term", "expr",
933 "onconf", "sortorder", "autoinc", "idxlist_opt", 960 "onconf", "sortorder", "autoinc", "idxlist_opt",
934 "refargs", "defer_subclause", "refarg", "refact", 961 "refargs", "defer_subclause", "refarg", "refact",
935 "init_deferred_pred_opt", "conslist", "tcons", "idxlist", 962 "init_deferred_pred_opt", "conslist", "tcons", "idxlist",
936 "defer_subclause_opt", "orconf", "resolvetype", "raisetype", 963 "defer_subclause_opt", "orconf", "resolvetype", "raisetype",
937 "ifexists", "fullname", "oneselect", "multiselect_op", 964 "ifexists", "fullname", "oneselect", "multiselect_op",
938 "distinct", "selcollist", "from", "where_opt", 965 "distinct", "selcollist", "from", "where_opt",
939 "groupby_opt", "having_opt", "orderby_opt", "limit_opt", 966 "groupby_opt", "having_opt", "orderby_opt", "limit_opt",
940 "sclp", "as", "seltablist", "stl_prefix", 967 "sclp", "as", "seltablist", "stl_prefix",
941 "joinop", "indexed_opt", "on_opt", "using_opt", 968 "joinop", "indexed_opt", "on_opt", "using_opt",
942 "joinop2", "inscollist", "sortlist", "sortitem", 969 "joinop2", "inscollist", "sortlist", "sortitem",
943 "nexprlist", "setlist", "insert_cmd", "inscollist_opt", 970 "nexprlist", "setlist", "insert_cmd", "inscollist_opt",
944 "itemlist", "exprlist", "likeop", "escape", 971 "itemlist", "exprlist", "likeop", "between_op",
945 "between_op", "in_op", "case_operand", "case_exprlist", 972 "in_op", "case_operand", "case_exprlist", "case_else",
946 "case_else", "uniqueflag", "collate", "nmnum", 973 "uniqueflag", "collate", "nmnum", "plus_opt",
947 "plus_opt", "number", "trigger_decl", "trigger_cmd_list", 974 "number", "trigger_decl", "trigger_cmd_list", "trigger_time",
948 "trigger_time", "trigger_event", "foreach_clause", "when_clause", 975 "trigger_event", "foreach_clause", "when_clause", "trigger_cmd",
949 "trigger_cmd", "trnm", "tridxby", "database_kw_opt", 976 "trnm", "tridxby", "database_kw_opt", "key_opt",
950 "key_opt", "add_column_fullname", "kwcolumn_opt", "create_vtab", 977 "add_column_fullname", "kwcolumn_opt", "create_vtab", "vtabarglist",
951 "vtabarglist", "vtabarg", "vtabargtoken", "lp", 978 "vtabarg", "vtabargtoken", "lp", "anylist",
952 "anylist",
953 }; 979 };
954 #endif /* NDEBUG */ 980 #endif /* NDEBUG */
955 981
956 #ifndef NDEBUG 982 #ifndef NDEBUG
957 /* For tracing reduce actions, the names of all rules are required. 983 /* For tracing reduce actions, the names of all rules are required.
958 */ 984 */
959 static const char *const yyRuleName[] = { 985 static const char *const yyRuleName[] = {
960 /* 0 */ "input ::= cmdlist", 986 /* 0 */ "input ::= cmdlist",
961 /* 1 */ "cmdlist ::= cmdlist ecmd", 987 /* 1 */ "cmdlist ::= cmdlist ecmd",
962 /* 2 */ "cmdlist ::= ecmd", 988 /* 2 */ "cmdlist ::= ecmd",
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1025 /* 65 */ "ccons ::= UNIQUE onconf", 1051 /* 65 */ "ccons ::= UNIQUE onconf",
1026 /* 66 */ "ccons ::= CHECK LP expr RP", 1052 /* 66 */ "ccons ::= CHECK LP expr RP",
1027 /* 67 */ "ccons ::= REFERENCES nm idxlist_opt refargs", 1053 /* 67 */ "ccons ::= REFERENCES nm idxlist_opt refargs",
1028 /* 68 */ "ccons ::= defer_subclause", 1054 /* 68 */ "ccons ::= defer_subclause",
1029 /* 69 */ "ccons ::= COLLATE ids", 1055 /* 69 */ "ccons ::= COLLATE ids",
1030 /* 70 */ "autoinc ::=", 1056 /* 70 */ "autoinc ::=",
1031 /* 71 */ "autoinc ::= AUTOINCR", 1057 /* 71 */ "autoinc ::= AUTOINCR",
1032 /* 72 */ "refargs ::=", 1058 /* 72 */ "refargs ::=",
1033 /* 73 */ "refargs ::= refargs refarg", 1059 /* 73 */ "refargs ::= refargs refarg",
1034 /* 74 */ "refarg ::= MATCH nm", 1060 /* 74 */ "refarg ::= MATCH nm",
1035 /* 75 */ "refarg ::= ON DELETE refact", 1061 /* 75 */ "refarg ::= ON INSERT refact",
1036 /* 76 */ "refarg ::= ON UPDATE refact", 1062 /* 76 */ "refarg ::= ON DELETE refact",
1037 /* 77 */ "refarg ::= ON INSERT refact", 1063 /* 77 */ "refarg ::= ON UPDATE refact",
1038 /* 78 */ "refact ::= SET NULL", 1064 /* 78 */ "refact ::= SET NULL",
1039 /* 79 */ "refact ::= SET DEFAULT", 1065 /* 79 */ "refact ::= SET DEFAULT",
1040 /* 80 */ "refact ::= CASCADE", 1066 /* 80 */ "refact ::= CASCADE",
1041 /* 81 */ "refact ::= RESTRICT", 1067 /* 81 */ "refact ::= RESTRICT",
1042 /* 82 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt", 1068 /* 82 */ "refact ::= NO ACTION",
1043 /* 83 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt", 1069 /* 83 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt",
1044 /* 84 */ "init_deferred_pred_opt ::=", 1070 /* 84 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt",
1045 /* 85 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED", 1071 /* 85 */ "init_deferred_pred_opt ::=",
1046 /* 86 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE", 1072 /* 86 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED",
1047 /* 87 */ "conslist_opt ::=", 1073 /* 87 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE",
1048 /* 88 */ "conslist_opt ::= COMMA conslist", 1074 /* 88 */ "conslist_opt ::=",
1049 /* 89 */ "conslist ::= conslist COMMA tcons", 1075 /* 89 */ "conslist_opt ::= COMMA conslist",
1050 /* 90 */ "conslist ::= conslist tcons", 1076 /* 90 */ "conslist ::= conslist COMMA tcons",
1051 /* 91 */ "conslist ::= tcons", 1077 /* 91 */ "conslist ::= conslist tcons",
1052 /* 92 */ "tcons ::= CONSTRAINT nm", 1078 /* 92 */ "conslist ::= tcons",
1053 /* 93 */ "tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf", 1079 /* 93 */ "tcons ::= CONSTRAINT nm",
1054 /* 94 */ "tcons ::= UNIQUE LP idxlist RP onconf", 1080 /* 94 */ "tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf",
1055 /* 95 */ "tcons ::= CHECK LP expr RP onconf", 1081 /* 95 */ "tcons ::= UNIQUE LP idxlist RP onconf",
1056 /* 96 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refarg s defer_subclause_opt", 1082 /* 96 */ "tcons ::= CHECK LP expr RP onconf",
1057 /* 97 */ "defer_subclause_opt ::=", 1083 /* 97 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refarg s defer_subclause_opt",
1058 /* 98 */ "defer_subclause_opt ::= defer_subclause", 1084 /* 98 */ "defer_subclause_opt ::=",
1059 /* 99 */ "onconf ::=", 1085 /* 99 */ "defer_subclause_opt ::= defer_subclause",
1060 /* 100 */ "onconf ::= ON CONFLICT resolvetype", 1086 /* 100 */ "onconf ::=",
1061 /* 101 */ "orconf ::=", 1087 /* 101 */ "onconf ::= ON CONFLICT resolvetype",
1062 /* 102 */ "orconf ::= OR resolvetype", 1088 /* 102 */ "orconf ::=",
1063 /* 103 */ "resolvetype ::= raisetype", 1089 /* 103 */ "orconf ::= OR resolvetype",
1064 /* 104 */ "resolvetype ::= IGNORE", 1090 /* 104 */ "resolvetype ::= raisetype",
1065 /* 105 */ "resolvetype ::= REPLACE", 1091 /* 105 */ "resolvetype ::= IGNORE",
1066 /* 106 */ "cmd ::= DROP TABLE ifexists fullname", 1092 /* 106 */ "resolvetype ::= REPLACE",
1067 /* 107 */ "ifexists ::= IF EXISTS", 1093 /* 107 */ "cmd ::= DROP TABLE ifexists fullname",
1068 /* 108 */ "ifexists ::=", 1094 /* 108 */ "ifexists ::= IF EXISTS",
1069 /* 109 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select", 1095 /* 109 */ "ifexists ::=",
1070 /* 110 */ "cmd ::= DROP VIEW ifexists fullname", 1096 /* 110 */ "cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select",
1071 /* 111 */ "cmd ::= select", 1097 /* 111 */ "cmd ::= DROP VIEW ifexists fullname",
1072 /* 112 */ "select ::= oneselect", 1098 /* 112 */ "cmd ::= select",
1073 /* 113 */ "select ::= select multiselect_op oneselect", 1099 /* 113 */ "select ::= oneselect",
1074 /* 114 */ "multiselect_op ::= UNION", 1100 /* 114 */ "select ::= select multiselect_op oneselect",
1075 /* 115 */ "multiselect_op ::= UNION ALL", 1101 /* 115 */ "multiselect_op ::= UNION",
1076 /* 116 */ "multiselect_op ::= EXCEPT|INTERSECT", 1102 /* 116 */ "multiselect_op ::= UNION ALL",
1077 /* 117 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt", 1103 /* 117 */ "multiselect_op ::= EXCEPT|INTERSECT",
1078 /* 118 */ "distinct ::= DISTINCT", 1104 /* 118 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt",
1079 /* 119 */ "distinct ::= ALL", 1105 /* 119 */ "distinct ::= DISTINCT",
1080 /* 120 */ "distinct ::=", 1106 /* 120 */ "distinct ::= ALL",
1081 /* 121 */ "sclp ::= selcollist COMMA", 1107 /* 121 */ "distinct ::=",
1082 /* 122 */ "sclp ::=", 1108 /* 122 */ "sclp ::= selcollist COMMA",
1083 /* 123 */ "selcollist ::= sclp expr as", 1109 /* 123 */ "sclp ::=",
1084 /* 124 */ "selcollist ::= sclp STAR", 1110 /* 124 */ "selcollist ::= sclp expr as",
1085 /* 125 */ "selcollist ::= sclp nm DOT STAR", 1111 /* 125 */ "selcollist ::= sclp STAR",
1086 /* 126 */ "as ::= AS nm", 1112 /* 126 */ "selcollist ::= sclp nm DOT STAR",
1087 /* 127 */ "as ::= ids", 1113 /* 127 */ "as ::= AS nm",
1088 /* 128 */ "as ::=", 1114 /* 128 */ "as ::= ids",
1089 /* 129 */ "from ::=", 1115 /* 129 */ "as ::=",
1090 /* 130 */ "from ::= FROM seltablist", 1116 /* 130 */ "from ::=",
1091 /* 131 */ "stl_prefix ::= seltablist joinop", 1117 /* 131 */ "from ::= FROM seltablist",
1092 /* 132 */ "stl_prefix ::=", 1118 /* 132 */ "stl_prefix ::= seltablist joinop",
1093 /* 133 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt", 1119 /* 133 */ "stl_prefix ::=",
1094 /* 134 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt", 1120 /* 134 */ "seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using_opt",
1095 /* 135 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt", 1121 /* 135 */ "seltablist ::= stl_prefix LP select RP as on_opt using_opt",
1096 /* 136 */ "dbnm ::=", 1122 /* 136 */ "seltablist ::= stl_prefix LP seltablist RP as on_opt using_opt",
1097 /* 137 */ "dbnm ::= DOT nm", 1123 /* 137 */ "dbnm ::=",
1098 /* 138 */ "fullname ::= nm dbnm", 1124 /* 138 */ "dbnm ::= DOT nm",
1099 /* 139 */ "joinop ::= COMMA|JOIN", 1125 /* 139 */ "fullname ::= nm dbnm",
1100 /* 140 */ "joinop ::= JOIN_KW JOIN", 1126 /* 140 */ "joinop ::= COMMA|JOIN",
1101 /* 141 */ "joinop ::= JOIN_KW nm JOIN", 1127 /* 141 */ "joinop ::= JOIN_KW JOIN",
1102 /* 142 */ "joinop ::= JOIN_KW nm nm JOIN", 1128 /* 142 */ "joinop ::= JOIN_KW nm JOIN",
1103 /* 143 */ "on_opt ::= ON expr", 1129 /* 143 */ "joinop ::= JOIN_KW nm nm JOIN",
1104 /* 144 */ "on_opt ::=", 1130 /* 144 */ "on_opt ::= ON expr",
1105 /* 145 */ "indexed_opt ::=", 1131 /* 145 */ "on_opt ::=",
1106 /* 146 */ "indexed_opt ::= INDEXED BY nm", 1132 /* 146 */ "indexed_opt ::=",
1107 /* 147 */ "indexed_opt ::= NOT INDEXED", 1133 /* 147 */ "indexed_opt ::= INDEXED BY nm",
1108 /* 148 */ "using_opt ::= USING LP inscollist RP", 1134 /* 148 */ "indexed_opt ::= NOT INDEXED",
1109 /* 149 */ "using_opt ::=", 1135 /* 149 */ "using_opt ::= USING LP inscollist RP",
1110 /* 150 */ "orderby_opt ::=", 1136 /* 150 */ "using_opt ::=",
1111 /* 151 */ "orderby_opt ::= ORDER BY sortlist", 1137 /* 151 */ "orderby_opt ::=",
1112 /* 152 */ "sortlist ::= sortlist COMMA sortitem sortorder", 1138 /* 152 */ "orderby_opt ::= ORDER BY sortlist",
1113 /* 153 */ "sortlist ::= sortitem sortorder", 1139 /* 153 */ "sortlist ::= sortlist COMMA sortitem sortorder",
1114 /* 154 */ "sortitem ::= expr", 1140 /* 154 */ "sortlist ::= sortitem sortorder",
1115 /* 155 */ "sortorder ::= ASC", 1141 /* 155 */ "sortitem ::= expr",
1116 /* 156 */ "sortorder ::= DESC", 1142 /* 156 */ "sortorder ::= ASC",
1117 /* 157 */ "sortorder ::=", 1143 /* 157 */ "sortorder ::= DESC",
1118 /* 158 */ "groupby_opt ::=", 1144 /* 158 */ "sortorder ::=",
1119 /* 159 */ "groupby_opt ::= GROUP BY nexprlist", 1145 /* 159 */ "groupby_opt ::=",
1120 /* 160 */ "having_opt ::=", 1146 /* 160 */ "groupby_opt ::= GROUP BY nexprlist",
1121 /* 161 */ "having_opt ::= HAVING expr", 1147 /* 161 */ "having_opt ::=",
1122 /* 162 */ "limit_opt ::=", 1148 /* 162 */ "having_opt ::= HAVING expr",
1123 /* 163 */ "limit_opt ::= LIMIT expr", 1149 /* 163 */ "limit_opt ::=",
1124 /* 164 */ "limit_opt ::= LIMIT expr OFFSET expr", 1150 /* 164 */ "limit_opt ::= LIMIT expr",
1125 /* 165 */ "limit_opt ::= LIMIT expr COMMA expr", 1151 /* 165 */ "limit_opt ::= LIMIT expr OFFSET expr",
1126 /* 166 */ "cmd ::= DELETE FROM fullname indexed_opt where_opt", 1152 /* 166 */ "limit_opt ::= LIMIT expr COMMA expr",
1127 /* 167 */ "where_opt ::=", 1153 /* 167 */ "cmd ::= DELETE FROM fullname indexed_opt where_opt",
1128 /* 168 */ "where_opt ::= WHERE expr", 1154 /* 168 */ "where_opt ::=",
1129 /* 169 */ "cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt", 1155 /* 169 */ "where_opt ::= WHERE expr",
1130 /* 170 */ "setlist ::= setlist COMMA nm EQ expr", 1156 /* 170 */ "cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_opt",
1131 /* 171 */ "setlist ::= nm EQ expr", 1157 /* 171 */ "setlist ::= setlist COMMA nm EQ expr",
1132 /* 172 */ "cmd ::= insert_cmd INTO fullname inscollist_opt VALUES LP itemlist R P", 1158 /* 172 */ "setlist ::= nm EQ expr",
1133 /* 173 */ "cmd ::= insert_cmd INTO fullname inscollist_opt select", 1159 /* 173 */ "cmd ::= insert_cmd INTO fullname inscollist_opt VALUES LP itemlist R P",
1134 /* 174 */ "cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES", 1160 /* 174 */ "cmd ::= insert_cmd INTO fullname inscollist_opt select",
1135 /* 175 */ "insert_cmd ::= INSERT orconf", 1161 /* 175 */ "cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUES",
1136 /* 176 */ "insert_cmd ::= REPLACE", 1162 /* 176 */ "insert_cmd ::= INSERT orconf",
1137 /* 177 */ "itemlist ::= itemlist COMMA expr", 1163 /* 177 */ "insert_cmd ::= REPLACE",
1138 /* 178 */ "itemlist ::= expr", 1164 /* 178 */ "itemlist ::= itemlist COMMA expr",
1139 /* 179 */ "inscollist_opt ::=", 1165 /* 179 */ "itemlist ::= expr",
1140 /* 180 */ "inscollist_opt ::= LP inscollist RP", 1166 /* 180 */ "inscollist_opt ::=",
1141 /* 181 */ "inscollist ::= inscollist COMMA nm", 1167 /* 181 */ "inscollist_opt ::= LP inscollist RP",
1142 /* 182 */ "inscollist ::= nm", 1168 /* 182 */ "inscollist ::= inscollist COMMA nm",
1143 /* 183 */ "expr ::= term", 1169 /* 183 */ "inscollist ::= nm",
1144 /* 184 */ "expr ::= LP expr RP", 1170 /* 184 */ "expr ::= term",
1145 /* 185 */ "term ::= NULL", 1171 /* 185 */ "expr ::= LP expr RP",
1146 /* 186 */ "expr ::= id", 1172 /* 186 */ "term ::= NULL",
1147 /* 187 */ "expr ::= JOIN_KW", 1173 /* 187 */ "expr ::= id",
1148 /* 188 */ "expr ::= nm DOT nm", 1174 /* 188 */ "expr ::= JOIN_KW",
1149 /* 189 */ "expr ::= nm DOT nm DOT nm", 1175 /* 189 */ "expr ::= nm DOT nm",
1150 /* 190 */ "term ::= INTEGER|FLOAT|BLOB", 1176 /* 190 */ "expr ::= nm DOT nm DOT nm",
1151 /* 191 */ "term ::= STRING", 1177 /* 191 */ "term ::= INTEGER|FLOAT|BLOB",
1152 /* 192 */ "expr ::= REGISTER", 1178 /* 192 */ "term ::= STRING",
1153 /* 193 */ "expr ::= VARIABLE", 1179 /* 193 */ "expr ::= REGISTER",
1154 /* 194 */ "expr ::= expr COLLATE ids", 1180 /* 194 */ "expr ::= VARIABLE",
1155 /* 195 */ "expr ::= CAST LP expr AS typetoken RP", 1181 /* 195 */ "expr ::= expr COLLATE ids",
1156 /* 196 */ "expr ::= ID LP distinct exprlist RP", 1182 /* 196 */ "expr ::= CAST LP expr AS typetoken RP",
1157 /* 197 */ "expr ::= ID LP STAR RP", 1183 /* 197 */ "expr ::= ID LP distinct exprlist RP",
1158 /* 198 */ "term ::= CTIME_KW", 1184 /* 198 */ "expr ::= ID LP STAR RP",
1159 /* 199 */ "expr ::= expr AND expr", 1185 /* 199 */ "term ::= CTIME_KW",
1160 /* 200 */ "expr ::= expr OR expr", 1186 /* 200 */ "expr ::= expr AND expr",
1161 /* 201 */ "expr ::= expr LT|GT|GE|LE expr", 1187 /* 201 */ "expr ::= expr OR expr",
1162 /* 202 */ "expr ::= expr EQ|NE expr", 1188 /* 202 */ "expr ::= expr LT|GT|GE|LE expr",
1163 /* 203 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", 1189 /* 203 */ "expr ::= expr EQ|NE expr",
1164 /* 204 */ "expr ::= expr PLUS|MINUS expr", 1190 /* 204 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr",
1165 /* 205 */ "expr ::= expr STAR|SLASH|REM expr", 1191 /* 205 */ "expr ::= expr PLUS|MINUS expr",
1166 /* 206 */ "expr ::= expr CONCAT expr", 1192 /* 206 */ "expr ::= expr STAR|SLASH|REM expr",
1167 /* 207 */ "likeop ::= LIKE_KW", 1193 /* 207 */ "expr ::= expr CONCAT expr",
1168 /* 208 */ "likeop ::= NOT LIKE_KW", 1194 /* 208 */ "likeop ::= LIKE_KW",
1169 /* 209 */ "likeop ::= MATCH", 1195 /* 209 */ "likeop ::= NOT LIKE_KW",
1170 /* 210 */ "likeop ::= NOT MATCH", 1196 /* 210 */ "likeop ::= MATCH",
1171 /* 211 */ "escape ::= ESCAPE expr", 1197 /* 211 */ "likeop ::= NOT MATCH",
1172 /* 212 */ "escape ::=", 1198 /* 212 */ "expr ::= expr likeop expr",
1173 /* 213 */ "expr ::= expr likeop expr escape", 1199 /* 213 */ "expr ::= expr likeop expr ESCAPE expr",
1174 /* 214 */ "expr ::= expr ISNULL|NOTNULL", 1200 /* 214 */ "expr ::= expr ISNULL|NOTNULL",
1175 /* 215 */ "expr ::= expr IS NULL", 1201 /* 215 */ "expr ::= expr NOT NULL",
1176 /* 216 */ "expr ::= expr NOT NULL", 1202 /* 216 */ "expr ::= expr IS expr",
1177 /* 217 */ "expr ::= expr IS NOT NULL", 1203 /* 217 */ "expr ::= expr IS NOT expr",
1178 /* 218 */ "expr ::= NOT expr", 1204 /* 218 */ "expr ::= NOT expr",
1179 /* 219 */ "expr ::= BITNOT expr", 1205 /* 219 */ "expr ::= BITNOT expr",
1180 /* 220 */ "expr ::= MINUS expr", 1206 /* 220 */ "expr ::= MINUS expr",
1181 /* 221 */ "expr ::= PLUS expr", 1207 /* 221 */ "expr ::= PLUS expr",
1182 /* 222 */ "between_op ::= BETWEEN", 1208 /* 222 */ "between_op ::= BETWEEN",
1183 /* 223 */ "between_op ::= NOT BETWEEN", 1209 /* 223 */ "between_op ::= NOT BETWEEN",
1184 /* 224 */ "expr ::= expr between_op expr AND expr", 1210 /* 224 */ "expr ::= expr between_op expr AND expr",
1185 /* 225 */ "in_op ::= IN", 1211 /* 225 */ "in_op ::= IN",
1186 /* 226 */ "in_op ::= NOT IN", 1212 /* 226 */ "in_op ::= NOT IN",
1187 /* 227 */ "expr ::= expr in_op LP exprlist RP", 1213 /* 227 */ "expr ::= expr in_op LP exprlist RP",
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
1360 ** reduce or during error processing or when a parser is 1386 ** reduce or during error processing or when a parser is
1361 ** being destroyed before it is finished parsing. 1387 ** being destroyed before it is finished parsing.
1362 ** 1388 **
1363 ** Note: during a reduce, the only symbols destroyed are those 1389 ** Note: during a reduce, the only symbols destroyed are those
1364 ** which appear on the RHS of the rule, but which are not used 1390 ** which appear on the RHS of the rule, but which are not used
1365 ** inside the C code. 1391 ** inside the C code.
1366 */ 1392 */
1367 case 160: /* select */ 1393 case 160: /* select */
1368 case 194: /* oneselect */ 1394 case 194: /* oneselect */
1369 { 1395 {
1370 #line 404 "parse.y" 1396 #line 403 "parse.y"
1371 sqlite3SelectDelete(pParse->db, (yypminor->yy3)); 1397 sqlite3SelectDelete(pParse->db, (yypminor->yy387));
1372 #line 1373 "parse.c" 1398 #line 1399 "parse.c"
1373 } 1399 }
1374 break; 1400 break;
1375 case 174: /* term */ 1401 case 174: /* term */
1376 case 175: /* expr */ 1402 case 175: /* expr */
1377 case 223: /* escape */
1378 { 1403 {
1379 #line 721 "parse.y" 1404 #line 720 "parse.y"
1380 sqlite3ExprDelete(pParse->db, (yypminor->yy346).pExpr); 1405 sqlite3ExprDelete(pParse->db, (yypminor->yy118).pExpr);
1381 #line 1382 "parse.c" 1406 #line 1407 "parse.c"
1382 } 1407 }
1383 break; 1408 break;
1384 case 179: /* idxlist_opt */ 1409 case 179: /* idxlist_opt */
1385 case 187: /* idxlist */ 1410 case 187: /* idxlist */
1386 case 197: /* selcollist */ 1411 case 197: /* selcollist */
1387 case 200: /* groupby_opt */ 1412 case 200: /* groupby_opt */
1388 case 202: /* orderby_opt */ 1413 case 202: /* orderby_opt */
1389 case 204: /* sclp */ 1414 case 204: /* sclp */
1390 case 214: /* sortlist */ 1415 case 214: /* sortlist */
1391 case 216: /* nexprlist */ 1416 case 216: /* nexprlist */
1392 case 217: /* setlist */ 1417 case 217: /* setlist */
1393 case 220: /* itemlist */ 1418 case 220: /* itemlist */
1394 case 221: /* exprlist */ 1419 case 221: /* exprlist */
1395 case 227: /* case_exprlist */ 1420 case 226: /* case_exprlist */
1396 { 1421 {
1397 #line 1062 "parse.y" 1422 #line 1103 "parse.y"
1398 sqlite3ExprListDelete(pParse->db, (yypminor->yy14)); 1423 sqlite3ExprListDelete(pParse->db, (yypminor->yy322));
1399 #line 1400 "parse.c" 1424 #line 1425 "parse.c"
1400 } 1425 }
1401 break; 1426 break;
1402 case 193: /* fullname */ 1427 case 193: /* fullname */
1403 case 198: /* from */ 1428 case 198: /* from */
1404 case 206: /* seltablist */ 1429 case 206: /* seltablist */
1405 case 207: /* stl_prefix */ 1430 case 207: /* stl_prefix */
1406 { 1431 {
1407 #line 535 "parse.y" 1432 #line 534 "parse.y"
1408 sqlite3SrcListDelete(pParse->db, (yypminor->yy65)); 1433 sqlite3SrcListDelete(pParse->db, (yypminor->yy259));
1409 #line 1410 "parse.c" 1434 #line 1435 "parse.c"
1410 } 1435 }
1411 break; 1436 break;
1412 case 199: /* where_opt */ 1437 case 199: /* where_opt */
1413 case 201: /* having_opt */ 1438 case 201: /* having_opt */
1414 case 210: /* on_opt */ 1439 case 210: /* on_opt */
1415 case 215: /* sortitem */ 1440 case 215: /* sortitem */
1416 case 226: /* case_operand */ 1441 case 225: /* case_operand */
1417 case 228: /* case_else */ 1442 case 227: /* case_else */
1418 case 239: /* when_clause */ 1443 case 238: /* when_clause */
1419 case 244: /* key_opt */ 1444 case 243: /* key_opt */
1420 { 1445 {
1421 #line 645 "parse.y" 1446 #line 644 "parse.y"
1422 sqlite3ExprDelete(pParse->db, (yypminor->yy132)); 1447 sqlite3ExprDelete(pParse->db, (yypminor->yy314));
1423 #line 1424 "parse.c" 1448 #line 1449 "parse.c"
1424 } 1449 }
1425 break; 1450 break;
1426 case 211: /* using_opt */ 1451 case 211: /* using_opt */
1427 case 213: /* inscollist */ 1452 case 213: /* inscollist */
1428 case 219: /* inscollist_opt */ 1453 case 219: /* inscollist_opt */
1429 { 1454 {
1430 #line 567 "parse.y" 1455 #line 566 "parse.y"
1431 sqlite3IdListDelete(pParse->db, (yypminor->yy408)); 1456 sqlite3IdListDelete(pParse->db, (yypminor->yy384));
1432 #line 1433 "parse.c" 1457 #line 1458 "parse.c"
1433 } 1458 }
1434 break; 1459 break;
1435 case 235: /* trigger_cmd_list */ 1460 case 234: /* trigger_cmd_list */
1436 case 240: /* trigger_cmd */ 1461 case 239: /* trigger_cmd */
1437 { 1462 {
1438 #line 1169 "parse.y" 1463 #line 1210 "parse.y"
1439 sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy473)); 1464 sqlite3DeleteTriggerStep(pParse->db, (yypminor->yy203));
1440 #line 1441 "parse.c" 1465 #line 1466 "parse.c"
1441 } 1466 }
1442 break; 1467 break;
1443 case 237: /* trigger_event */ 1468 case 236: /* trigger_event */
1444 { 1469 {
1445 #line 1155 "parse.y" 1470 #line 1196 "parse.y"
1446 sqlite3IdListDelete(pParse->db, (yypminor->yy378).b); 1471 sqlite3IdListDelete(pParse->db, (yypminor->yy90).b);
1447 #line 1448 "parse.c" 1472 #line 1473 "parse.c"
1448 } 1473 }
1449 break; 1474 break;
1450 default: break; /* If no destructor action specified: do nothing */ 1475 default: break; /* If no destructor action specified: do nothing */
1451 } 1476 }
1452 } 1477 }
1453 1478
1454 /* 1479 /*
1455 ** Pop the parser's stack once. 1480 ** Pop the parser's stack once.
1456 ** 1481 **
1457 ** If there is a destructor routine associated with the token which 1482 ** If there is a destructor routine associated with the token which
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
1524 ** independent of the look-ahead. If it is, return the action, otherwise 1549 ** independent of the look-ahead. If it is, return the action, otherwise
1525 ** return YY_NO_ACTION. 1550 ** return YY_NO_ACTION.
1526 */ 1551 */
1527 static int yy_find_shift_action( 1552 static int yy_find_shift_action(
1528 yyParser *pParser, /* The parser */ 1553 yyParser *pParser, /* The parser */
1529 YYCODETYPE iLookAhead /* The look-ahead token */ 1554 YYCODETYPE iLookAhead /* The look-ahead token */
1530 ){ 1555 ){
1531 int i; 1556 int i;
1532 int stateno = pParser->yystack[pParser->yyidx].stateno; 1557 int stateno = pParser->yystack[pParser->yyidx].stateno;
1533 1558
1534 if( stateno>YY_SHIFT_MAX || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){ 1559 if( stateno>YY_SHIFT_COUNT
1560 || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){
1535 return yy_default[stateno]; 1561 return yy_default[stateno];
1536 } 1562 }
1537 assert( iLookAhead!=YYNOCODE ); 1563 assert( iLookAhead!=YYNOCODE );
1538 i += iLookAhead; 1564 i += iLookAhead;
1539 if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ 1565 if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){
1540 /* The user of ";" instead of "\000" as a statement terminator in SQLite
1541 ** means that we always have a look-ahead token. */
1542 if( iLookAhead>0 ){ 1566 if( iLookAhead>0 ){
1543 #ifdef YYFALLBACK 1567 #ifdef YYFALLBACK
1544 YYCODETYPE iFallback; /* Fallback token */ 1568 YYCODETYPE iFallback; /* Fallback token */
1545 if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0]) 1569 if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0])
1546 && (iFallback = yyFallback[iLookAhead])!=0 ){ 1570 && (iFallback = yyFallback[iLookAhead])!=0 ){
1547 #ifndef NDEBUG 1571 #ifndef NDEBUG
1548 if( yyTraceFILE ){ 1572 if( yyTraceFILE ){
1549 fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n", 1573 fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",
1550 yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); 1574 yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]);
1551 } 1575 }
1552 #endif 1576 #endif
1553 return yy_find_shift_action(pParser, iFallback); 1577 return yy_find_shift_action(pParser, iFallback);
1554 } 1578 }
1555 #endif 1579 #endif
1556 #ifdef YYWILDCARD 1580 #ifdef YYWILDCARD
1557 { 1581 {
1558 int j = i - iLookAhead + YYWILDCARD; 1582 int j = i - iLookAhead + YYWILDCARD;
1559 if( j>=0 && j<YY_SZ_ACTTAB && yy_lookahead[j]==YYWILDCARD ){ 1583 if(
1584 #if YY_SHIFT_MIN+YYWILDCARD<0
1585 j>=0 &&
1586 #endif
1587 #if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT
1588 j<YY_ACTTAB_COUNT &&
1589 #endif
1590 yy_lookahead[j]==YYWILDCARD
1591 ){
1560 #ifndef NDEBUG 1592 #ifndef NDEBUG
1561 if( yyTraceFILE ){ 1593 if( yyTraceFILE ){
1562 fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n", 1594 fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n",
1563 yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); 1595 yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]);
1564 } 1596 }
1565 #endif /* NDEBUG */ 1597 #endif /* NDEBUG */
1566 return yy_action[j]; 1598 return yy_action[j];
1567 } 1599 }
1568 } 1600 }
1569 #endif /* YYWILDCARD */ 1601 #endif /* YYWILDCARD */
(...skipping 11 matching lines...) Expand all
1581 ** If the look-ahead token is YYNOCODE, then check to see if the action is 1613 ** If the look-ahead token is YYNOCODE, then check to see if the action is
1582 ** independent of the look-ahead. If it is, return the action, otherwise 1614 ** independent of the look-ahead. If it is, return the action, otherwise
1583 ** return YY_NO_ACTION. 1615 ** return YY_NO_ACTION.
1584 */ 1616 */
1585 static int yy_find_reduce_action( 1617 static int yy_find_reduce_action(
1586 int stateno, /* Current state number */ 1618 int stateno, /* Current state number */
1587 YYCODETYPE iLookAhead /* The look-ahead token */ 1619 YYCODETYPE iLookAhead /* The look-ahead token */
1588 ){ 1620 ){
1589 int i; 1621 int i;
1590 #ifdef YYERRORSYMBOL 1622 #ifdef YYERRORSYMBOL
1591 if( stateno>YY_REDUCE_MAX ){ 1623 if( stateno>YY_REDUCE_COUNT ){
1592 return yy_default[stateno]; 1624 return yy_default[stateno];
1593 } 1625 }
1594 #else 1626 #else
1595 assert( stateno<=YY_REDUCE_MAX ); 1627 assert( stateno<=YY_REDUCE_COUNT );
1596 #endif 1628 #endif
1597 i = yy_reduce_ofst[stateno]; 1629 i = yy_reduce_ofst[stateno];
1598 assert( i!=YY_REDUCE_USE_DFLT ); 1630 assert( i!=YY_REDUCE_USE_DFLT );
1599 assert( iLookAhead!=YYNOCODE ); 1631 assert( iLookAhead!=YYNOCODE );
1600 i += iLookAhead; 1632 i += iLookAhead;
1601 #ifdef YYERRORSYMBOL 1633 #ifdef YYERRORSYMBOL
1602 if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ 1634 if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){
1603 return yy_default[stateno]; 1635 return yy_default[stateno];
1604 } 1636 }
1605 #else 1637 #else
1606 assert( i>=0 && i<YY_SZ_ACTTAB ); 1638 assert( i>=0 && i<YY_ACTTAB_COUNT );
1607 assert( yy_lookahead[i]==iLookAhead ); 1639 assert( yy_lookahead[i]==iLookAhead );
1608 #endif 1640 #endif
1609 return yy_action[i]; 1641 return yy_action[i];
1610 } 1642 }
1611 1643
1612 /* 1644 /*
1613 ** The following routine is called if the stack overflows. 1645 ** The following routine is called if the stack overflows.
1614 */ 1646 */
1615 static void yyStackOverflow(yyParser *yypParser, YYMINORTYPE *yypMinor){ 1647 static void yyStackOverflow(yyParser *yypParser, YYMINORTYPE *yypMinor){
1616 sqlite3ParserARG_FETCH; 1648 sqlite3ParserARG_FETCH;
1617 yypParser->yyidx--; 1649 yypParser->yyidx--;
1618 #ifndef NDEBUG 1650 #ifndef NDEBUG
1619 if( yyTraceFILE ){ 1651 if( yyTraceFILE ){
1620 fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); 1652 fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt);
1621 } 1653 }
1622 #endif 1654 #endif
1623 while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); 1655 while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
1624 /* Here code is inserted which will execute if the parser 1656 /* Here code is inserted which will execute if the parser
1625 ** stack every overflows */ 1657 ** stack every overflows */
1626 #line 40 "parse.y" 1658 #line 38 "parse.y"
1627 1659
1628 UNUSED_PARAMETER(yypMinor); /* Silence some compiler warnings */ 1660 UNUSED_PARAMETER(yypMinor); /* Silence some compiler warnings */
1629 sqlite3ErrorMsg(pParse, "parser stack overflow"); 1661 sqlite3ErrorMsg(pParse, "parser stack overflow");
1630 pParse->parseError = 1; 1662 pParse->parseError = 1;
1631 #line 1632 "parse.c" 1663 #line 1664 "parse.c"
1632 sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument var */ 1664 sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument var */
1633 } 1665 }
1634 1666
1635 /* 1667 /*
1636 ** Perform a shift action. 1668 ** Perform a shift action.
1637 */ 1669 */
1638 static void yy_shift( 1670 static void yy_shift(
1639 yyParser *yypParser, /* The parser to be shifted */ 1671 yyParser *yypParser, /* The parser to be shifted */
1640 int yyNewState, /* The new state to shift in */ 1672 int yyNewState, /* The new state to shift in */
1641 int yyMajor, /* The major token to shift in */ 1673 int yyMajor, /* The major token to shift in */
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
1760 { 180, 0 }, 1792 { 180, 0 },
1761 { 180, 2 }, 1793 { 180, 2 },
1762 { 182, 2 }, 1794 { 182, 2 },
1763 { 182, 3 }, 1795 { 182, 3 },
1764 { 182, 3 }, 1796 { 182, 3 },
1765 { 182, 3 }, 1797 { 182, 3 },
1766 { 183, 2 }, 1798 { 183, 2 },
1767 { 183, 2 }, 1799 { 183, 2 },
1768 { 183, 1 }, 1800 { 183, 1 },
1769 { 183, 1 }, 1801 { 183, 1 },
1802 { 183, 2 },
1770 { 181, 3 }, 1803 { 181, 3 },
1771 { 181, 2 }, 1804 { 181, 2 },
1772 { 184, 0 }, 1805 { 184, 0 },
1773 { 184, 2 }, 1806 { 184, 2 },
1774 { 184, 2 }, 1807 { 184, 2 },
1775 { 159, 0 }, 1808 { 159, 0 },
1776 { 159, 2 }, 1809 { 159, 2 },
1777 { 185, 3 }, 1810 { 185, 3 },
1778 { 185, 2 }, 1811 { 185, 2 },
1779 { 185, 1 }, 1812 { 185, 1 },
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
1889 { 175, 3 }, 1922 { 175, 3 },
1890 { 175, 3 }, 1923 { 175, 3 },
1891 { 175, 3 }, 1924 { 175, 3 },
1892 { 175, 3 }, 1925 { 175, 3 },
1893 { 175, 3 }, 1926 { 175, 3 },
1894 { 175, 3 }, 1927 { 175, 3 },
1895 { 222, 1 }, 1928 { 222, 1 },
1896 { 222, 2 }, 1929 { 222, 2 },
1897 { 222, 1 }, 1930 { 222, 1 },
1898 { 222, 2 }, 1931 { 222, 2 },
1899 { 223, 2 }, 1932 { 175, 3 },
1900 { 223, 0 }, 1933 { 175, 5 },
1901 { 175, 4 },
1902 { 175, 2 }, 1934 { 175, 2 },
1903 { 175, 3 }, 1935 { 175, 3 },
1904 { 175, 3 }, 1936 { 175, 3 },
1905 { 175, 4 }, 1937 { 175, 4 },
1906 { 175, 2 }, 1938 { 175, 2 },
1907 { 175, 2 }, 1939 { 175, 2 },
1908 { 175, 2 }, 1940 { 175, 2 },
1909 { 175, 2 }, 1941 { 175, 2 },
1942 { 223, 1 },
1943 { 223, 2 },
1944 { 175, 5 },
1910 { 224, 1 }, 1945 { 224, 1 },
1911 { 224, 2 }, 1946 { 224, 2 },
1912 { 175, 5 }, 1947 { 175, 5 },
1913 { 225, 1 },
1914 { 225, 2 },
1915 { 175, 5 },
1916 { 175, 3 }, 1948 { 175, 3 },
1917 { 175, 5 }, 1949 { 175, 5 },
1918 { 175, 4 }, 1950 { 175, 4 },
1919 { 175, 4 }, 1951 { 175, 4 },
1920 { 175, 5 }, 1952 { 175, 5 },
1921 { 227, 5 }, 1953 { 226, 5 },
1922 { 227, 4 }, 1954 { 226, 4 },
1923 { 228, 2 }, 1955 { 227, 2 },
1924 { 228, 0 }, 1956 { 227, 0 },
1925 { 226, 1 }, 1957 { 225, 1 },
1926 { 226, 0 }, 1958 { 225, 0 },
1927 { 221, 1 }, 1959 { 221, 1 },
1928 { 221, 0 }, 1960 { 221, 0 },
1929 { 216, 3 }, 1961 { 216, 3 },
1930 { 216, 1 }, 1962 { 216, 1 },
1931 { 147, 11 }, 1963 { 147, 11 },
1932 { 229, 1 }, 1964 { 228, 1 },
1933 { 229, 0 }, 1965 { 228, 0 },
1934 { 179, 0 }, 1966 { 179, 0 },
1935 { 179, 3 }, 1967 { 179, 3 },
1936 { 187, 5 }, 1968 { 187, 5 },
1937 { 187, 3 }, 1969 { 187, 3 },
1938 { 230, 0 }, 1970 { 229, 0 },
1939 { 230, 2 }, 1971 { 229, 2 },
1940 { 147, 4 }, 1972 { 147, 4 },
1941 { 147, 1 }, 1973 { 147, 1 },
1942 { 147, 2 }, 1974 { 147, 2 },
1943 { 147, 3 }, 1975 { 147, 3 },
1944 { 147, 5 }, 1976 { 147, 5 },
1945 { 147, 6 }, 1977 { 147, 6 },
1946 { 147, 5 }, 1978 { 147, 5 },
1947 { 147, 6 }, 1979 { 147, 6 },
1948 { 231, 1 }, 1980 { 230, 1 },
1949 { 231, 1 }, 1981 { 230, 1 },
1950 { 231, 1 }, 1982 { 230, 1 },
1951 { 231, 1 }, 1983 { 230, 1 },
1952 { 231, 1 }, 1984 { 230, 1 },
1953 { 170, 2 }, 1985 { 170, 2 },
1954 { 171, 2 }, 1986 { 171, 2 },
1955 { 233, 1 },
1956 { 232, 1 }, 1987 { 232, 1 },
1957 { 232, 0 }, 1988 { 231, 1 },
1989 { 231, 0 },
1958 { 147, 5 }, 1990 { 147, 5 },
1959 { 234, 11 }, 1991 { 233, 11 },
1992 { 235, 1 },
1993 { 235, 1 },
1994 { 235, 2 },
1995 { 235, 0 },
1960 { 236, 1 }, 1996 { 236, 1 },
1961 { 236, 1 }, 1997 { 236, 1 },
1962 { 236, 2 }, 1998 { 236, 3 },
1963 { 236, 0 }, 1999 { 237, 0 },
1964 { 237, 1 },
1965 { 237, 1 },
1966 { 237, 3 }, 2000 { 237, 3 },
1967 { 238, 0 }, 2001 { 238, 0 },
1968 { 238, 3 }, 2002 { 238, 2 },
1969 { 239, 0 }, 2003 { 234, 3 },
1970 { 239, 2 }, 2004 { 234, 2 },
1971 { 235, 3 }, 2005 { 240, 1 },
1972 { 235, 2 }, 2006 { 240, 3 },
1973 { 241, 1 }, 2007 { 241, 0 },
1974 { 241, 3 }, 2008 { 241, 3 },
1975 { 242, 0 }, 2009 { 241, 2 },
1976 { 242, 3 }, 2010 { 239, 7 },
1977 { 242, 2 }, 2011 { 239, 8 },
1978 { 240, 7 }, 2012 { 239, 5 },
1979 { 240, 8 }, 2013 { 239, 5 },
1980 { 240, 5 }, 2014 { 239, 1 },
1981 { 240, 5 },
1982 { 240, 1 },
1983 { 175, 4 }, 2015 { 175, 4 },
1984 { 175, 6 }, 2016 { 175, 6 },
1985 { 191, 1 }, 2017 { 191, 1 },
1986 { 191, 1 }, 2018 { 191, 1 },
1987 { 191, 1 }, 2019 { 191, 1 },
1988 { 147, 4 }, 2020 { 147, 4 },
1989 { 147, 6 }, 2021 { 147, 6 },
1990 { 147, 3 }, 2022 { 147, 3 },
1991 { 244, 0 },
1992 { 244, 2 },
1993 { 243, 1 },
1994 { 243, 0 }, 2023 { 243, 0 },
2024 { 243, 2 },
2025 { 242, 1 },
2026 { 242, 0 },
1995 { 147, 1 }, 2027 { 147, 1 },
1996 { 147, 3 }, 2028 { 147, 3 },
1997 { 147, 1 }, 2029 { 147, 1 },
1998 { 147, 3 }, 2030 { 147, 3 },
1999 { 147, 6 }, 2031 { 147, 6 },
2000 { 147, 6 }, 2032 { 147, 6 },
2033 { 244, 1 },
2034 { 245, 0 },
2001 { 245, 1 }, 2035 { 245, 1 },
2002 { 246, 0 },
2003 { 246, 1 },
2004 { 147, 1 }, 2036 { 147, 1 },
2005 { 147, 4 }, 2037 { 147, 4 },
2006 { 247, 7 }, 2038 { 246, 7 },
2007 { 248, 1 }, 2039 { 247, 1 },
2008 { 248, 3 }, 2040 { 247, 3 },
2009 { 249, 0 }, 2041 { 248, 0 },
2010 { 249, 2 }, 2042 { 248, 2 },
2043 { 249, 1 },
2044 { 249, 3 },
2011 { 250, 1 }, 2045 { 250, 1 },
2012 { 250, 3 }, 2046 { 251, 0 },
2013 { 251, 1 }, 2047 { 251, 4 },
2014 { 252, 0 }, 2048 { 251, 2 },
2015 { 252, 4 },
2016 { 252, 2 },
2017 }; 2049 };
2018 2050
2019 static void yy_accept(yyParser*); /* Forward Declaration */ 2051 static void yy_accept(yyParser*); /* Forward Declaration */
2020 2052
2021 /* 2053 /*
2022 ** Perform a reduce action and the shift that must immediately 2054 ** Perform a reduce action and the shift that must immediately
2023 ** follow the reduce. 2055 ** follow the reduce.
2024 */ 2056 */
2025 static void yy_reduce( 2057 static void yy_reduce(
2026 yyParser *yypParser, /* The parser */ 2058 yyParser *yypParser, /* The parser */
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
2062 switch( yyruleno ){ 2094 switch( yyruleno ){
2063 /* Beginning here are the reduction cases. A typical example 2095 /* Beginning here are the reduction cases. A typical example
2064 ** follows: 2096 ** follows:
2065 ** case 0: 2097 ** case 0:
2066 ** #line <lineno> <grammarfile> 2098 ** #line <lineno> <grammarfile>
2067 ** { ... } // User supplied code 2099 ** { ... } // User supplied code
2068 ** #line <lineno> <thisfile> 2100 ** #line <lineno> <thisfile>
2069 ** break; 2101 ** break;
2070 */ 2102 */
2071 case 5: /* explain ::= */ 2103 case 5: /* explain ::= */
2072 #line 109 "parse.y" 2104 #line 107 "parse.y"
2073 { sqlite3BeginParse(pParse, 0); } 2105 { sqlite3BeginParse(pParse, 0); }
2074 #line 2075 "parse.c" 2106 #line 2107 "parse.c"
2075 break; 2107 break;
2076 case 6: /* explain ::= EXPLAIN */ 2108 case 6: /* explain ::= EXPLAIN */
2077 #line 111 "parse.y" 2109 #line 109 "parse.y"
2078 { sqlite3BeginParse(pParse, 1); } 2110 { sqlite3BeginParse(pParse, 1); }
2079 #line 2080 "parse.c" 2111 #line 2112 "parse.c"
2080 break; 2112 break;
2081 case 7: /* explain ::= EXPLAIN QUERY PLAN */ 2113 case 7: /* explain ::= EXPLAIN QUERY PLAN */
2082 #line 112 "parse.y" 2114 #line 110 "parse.y"
2083 { sqlite3BeginParse(pParse, 2); } 2115 { sqlite3BeginParse(pParse, 2); }
2084 #line 2085 "parse.c" 2116 #line 2117 "parse.c"
2085 break; 2117 break;
2086 case 8: /* cmdx ::= cmd */ 2118 case 8: /* cmdx ::= cmd */
2087 #line 114 "parse.y" 2119 #line 112 "parse.y"
2088 { sqlite3FinishCoding(pParse); } 2120 { sqlite3FinishCoding(pParse); }
2089 #line 2090 "parse.c" 2121 #line 2122 "parse.c"
2090 break; 2122 break;
2091 case 9: /* cmd ::= BEGIN transtype trans_opt */ 2123 case 9: /* cmd ::= BEGIN transtype trans_opt */
2092 #line 119 "parse.y" 2124 #line 117 "parse.y"
2093 {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy328);} 2125 {sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy4);}
2094 #line 2095 "parse.c" 2126 #line 2127 "parse.c"
2095 break; 2127 break;
2096 case 13: /* transtype ::= */ 2128 case 13: /* transtype ::= */
2097 #line 124 "parse.y" 2129 #line 122 "parse.y"
2098 {yygotominor.yy328 = TK_DEFERRED;} 2130 {yygotominor.yy4 = TK_DEFERRED;}
2099 #line 2100 "parse.c" 2131 #line 2132 "parse.c"
2100 break; 2132 break;
2101 case 14: /* transtype ::= DEFERRED */ 2133 case 14: /* transtype ::= DEFERRED */
2102 case 15: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==15); 2134 case 15: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==15);
2103 case 16: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==16); 2135 case 16: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==16);
2104 case 114: /* multiselect_op ::= UNION */ yytestcase(yyruleno==114); 2136 case 115: /* multiselect_op ::= UNION */ yytestcase(yyruleno==115);
2105 case 116: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==1 16); 2137 case 117: /* multiselect_op ::= EXCEPT|INTERSECT */ yytestcase(yyruleno==1 17);
2106 #line 125 "parse.y" 2138 #line 123 "parse.y"
2107 {yygotominor.yy328 = yymsp[0].major;} 2139 {yygotominor.yy4 = yymsp[0].major;}
2108 #line 2109 "parse.c" 2140 #line 2141 "parse.c"
2109 break; 2141 break;
2110 case 17: /* cmd ::= COMMIT trans_opt */ 2142 case 17: /* cmd ::= COMMIT trans_opt */
2111 case 18: /* cmd ::= END trans_opt */ yytestcase(yyruleno==18); 2143 case 18: /* cmd ::= END trans_opt */ yytestcase(yyruleno==18);
2112 #line 128 "parse.y" 2144 #line 126 "parse.y"
2113 {sqlite3CommitTransaction(pParse);} 2145 {sqlite3CommitTransaction(pParse);}
2114 #line 2115 "parse.c" 2146 #line 2147 "parse.c"
2115 break; 2147 break;
2116 case 19: /* cmd ::= ROLLBACK trans_opt */ 2148 case 19: /* cmd ::= ROLLBACK trans_opt */
2117 #line 130 "parse.y" 2149 #line 128 "parse.y"
2118 {sqlite3RollbackTransaction(pParse);} 2150 {sqlite3RollbackTransaction(pParse);}
2119 #line 2120 "parse.c" 2151 #line 2152 "parse.c"
2120 break; 2152 break;
2121 case 22: /* cmd ::= SAVEPOINT nm */ 2153 case 22: /* cmd ::= SAVEPOINT nm */
2122 #line 134 "parse.y" 2154 #line 132 "parse.y"
2123 { 2155 {
2124 sqlite3Savepoint(pParse, SAVEPOINT_BEGIN, &yymsp[0].minor.yy0); 2156 sqlite3Savepoint(pParse, SAVEPOINT_BEGIN, &yymsp[0].minor.yy0);
2125 } 2157 }
2126 #line 2127 "parse.c" 2158 #line 2159 "parse.c"
2127 break; 2159 break;
2128 case 23: /* cmd ::= RELEASE savepoint_opt nm */ 2160 case 23: /* cmd ::= RELEASE savepoint_opt nm */
2129 #line 137 "parse.y" 2161 #line 135 "parse.y"
2130 { 2162 {
2131 sqlite3Savepoint(pParse, SAVEPOINT_RELEASE, &yymsp[0].minor.yy0); 2163 sqlite3Savepoint(pParse, SAVEPOINT_RELEASE, &yymsp[0].minor.yy0);
2132 } 2164 }
2133 #line 2134 "parse.c" 2165 #line 2166 "parse.c"
2134 break; 2166 break;
2135 case 24: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */ 2167 case 24: /* cmd ::= ROLLBACK trans_opt TO savepoint_opt nm */
2136 #line 140 "parse.y" 2168 #line 138 "parse.y"
2137 { 2169 {
2138 sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0); 2170 sqlite3Savepoint(pParse, SAVEPOINT_ROLLBACK, &yymsp[0].minor.yy0);
2139 } 2171 }
2140 #line 2141 "parse.c" 2172 #line 2173 "parse.c"
2141 break; 2173 break;
2142 case 26: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */ 2174 case 26: /* create_table ::= createkw temp TABLE ifnotexists nm dbnm */
2143 #line 147 "parse.y" 2175 #line 145 "parse.y"
2144 { 2176 {
2145 sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].m inor.yy328,0,0,yymsp[-2].minor.yy328); 2177 sqlite3StartTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,yymsp[-4].m inor.yy4,0,0,yymsp[-2].minor.yy4);
2146 } 2178 }
2147 #line 2148 "parse.c" 2179 #line 2180 "parse.c"
2148 break; 2180 break;
2149 case 27: /* createkw ::= CREATE */ 2181 case 27: /* createkw ::= CREATE */
2150 #line 150 "parse.y" 2182 #line 148 "parse.y"
2151 { 2183 {
2152 pParse->db->lookaside.bEnabled = 0; 2184 pParse->db->lookaside.bEnabled = 0;
2153 yygotominor.yy0 = yymsp[0].minor.yy0; 2185 yygotominor.yy0 = yymsp[0].minor.yy0;
2154 } 2186 }
2155 #line 2156 "parse.c" 2187 #line 2188 "parse.c"
2156 break; 2188 break;
2157 case 28: /* ifnotexists ::= */ 2189 case 28: /* ifnotexists ::= */
2158 case 31: /* temp ::= */ yytestcase(yyruleno==31); 2190 case 31: /* temp ::= */ yytestcase(yyruleno==31);
2159 case 70: /* autoinc ::= */ yytestcase(yyruleno==70); 2191 case 70: /* autoinc ::= */ yytestcase(yyruleno==70);
2160 case 84: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==84); 2192 case 83: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */ y ytestcase(yyruleno==83);
2161 case 86: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ yytestcase(y yruleno==86); 2193 case 85: /* init_deferred_pred_opt ::= */ yytestcase(yyruleno==85);
2162 case 97: /* defer_subclause_opt ::= */ yytestcase(yyruleno==97); 2194 case 87: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ yytestcase(y yruleno==87);
2163 case 108: /* ifexists ::= */ yytestcase(yyruleno==108); 2195 case 98: /* defer_subclause_opt ::= */ yytestcase(yyruleno==98);
2164 case 119: /* distinct ::= ALL */ yytestcase(yyruleno==119); 2196 case 109: /* ifexists ::= */ yytestcase(yyruleno==109);
2165 case 120: /* distinct ::= */ yytestcase(yyruleno==120); 2197 case 120: /* distinct ::= ALL */ yytestcase(yyruleno==120);
2198 case 121: /* distinct ::= */ yytestcase(yyruleno==121);
2166 case 222: /* between_op ::= BETWEEN */ yytestcase(yyruleno==222); 2199 case 222: /* between_op ::= BETWEEN */ yytestcase(yyruleno==222);
2167 case 225: /* in_op ::= IN */ yytestcase(yyruleno==225); 2200 case 225: /* in_op ::= IN */ yytestcase(yyruleno==225);
2168 #line 155 "parse.y" 2201 #line 153 "parse.y"
2169 {yygotominor.yy328 = 0;} 2202 {yygotominor.yy4 = 0;}
2170 #line 2171 "parse.c" 2203 #line 2204 "parse.c"
2171 break; 2204 break;
2172 case 29: /* ifnotexists ::= IF NOT EXISTS */ 2205 case 29: /* ifnotexists ::= IF NOT EXISTS */
2173 case 30: /* temp ::= TEMP */ yytestcase(yyruleno==30); 2206 case 30: /* temp ::= TEMP */ yytestcase(yyruleno==30);
2174 case 71: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==71); 2207 case 71: /* autoinc ::= AUTOINCR */ yytestcase(yyruleno==71);
2175 case 85: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ yytestcase(yy ruleno==85); 2208 case 86: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ yytestcase(yy ruleno==86);
2176 case 107: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==107); 2209 case 108: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==108);
2177 case 118: /* distinct ::= DISTINCT */ yytestcase(yyruleno==118); 2210 case 119: /* distinct ::= DISTINCT */ yytestcase(yyruleno==119);
2178 case 223: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==223); 2211 case 223: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==223);
2179 case 226: /* in_op ::= NOT IN */ yytestcase(yyruleno==226); 2212 case 226: /* in_op ::= NOT IN */ yytestcase(yyruleno==226);
2180 #line 156 "parse.y" 2213 #line 154 "parse.y"
2181 {yygotominor.yy328 = 1;} 2214 {yygotominor.yy4 = 1;}
2182 #line 2183 "parse.c" 2215 #line 2216 "parse.c"
2183 break; 2216 break;
2184 case 32: /* create_table_args ::= LP columnlist conslist_opt RP */ 2217 case 32: /* create_table_args ::= LP columnlist conslist_opt RP */
2185 #line 162 "parse.y" 2218 #line 160 "parse.y"
2186 { 2219 {
2187 sqlite3EndTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0); 2220 sqlite3EndTable(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0);
2188 } 2221 }
2189 #line 2190 "parse.c" 2222 #line 2223 "parse.c"
2190 break; 2223 break;
2191 case 33: /* create_table_args ::= AS select */ 2224 case 33: /* create_table_args ::= AS select */
2192 #line 165 "parse.y" 2225 #line 163 "parse.y"
2193 { 2226 {
2194 sqlite3EndTable(pParse,0,0,yymsp[0].minor.yy3); 2227 sqlite3EndTable(pParse,0,0,yymsp[0].minor.yy387);
2195 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy3); 2228 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy387);
2196 } 2229 }
2197 #line 2198 "parse.c" 2230 #line 2231 "parse.c"
2198 break; 2231 break;
2199 case 36: /* column ::= columnid type carglist */ 2232 case 36: /* column ::= columnid type carglist */
2200 #line 177 "parse.y" 2233 #line 175 "parse.y"
2201 { 2234 {
2202 yygotominor.yy0.z = yymsp[-2].minor.yy0.z; 2235 yygotominor.yy0.z = yymsp[-2].minor.yy0.z;
2203 yygotominor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-2].minor.yy0.z) + pParse ->sLastToken.n; 2236 yygotominor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-2].minor.yy0.z) + pParse ->sLastToken.n;
2204 } 2237 }
2205 #line 2206 "parse.c" 2238 #line 2239 "parse.c"
2206 break; 2239 break;
2207 case 37: /* columnid ::= nm */ 2240 case 37: /* columnid ::= nm */
2208 #line 181 "parse.y" 2241 #line 179 "parse.y"
2209 { 2242 {
2210 sqlite3AddColumn(pParse,&yymsp[0].minor.yy0); 2243 sqlite3AddColumn(pParse,&yymsp[0].minor.yy0);
2211 yygotominor.yy0 = yymsp[0].minor.yy0; 2244 yygotominor.yy0 = yymsp[0].minor.yy0;
2212 } 2245 }
2213 #line 2214 "parse.c" 2246 #line 2247 "parse.c"
2214 break; 2247 break;
2215 case 38: /* id ::= ID */ 2248 case 38: /* id ::= ID */
2216 case 39: /* id ::= INDEXED */ yytestcase(yyruleno==39); 2249 case 39: /* id ::= INDEXED */ yytestcase(yyruleno==39);
2217 case 40: /* ids ::= ID|STRING */ yytestcase(yyruleno==40); 2250 case 40: /* ids ::= ID|STRING */ yytestcase(yyruleno==40);
2218 case 41: /* nm ::= id */ yytestcase(yyruleno==41); 2251 case 41: /* nm ::= id */ yytestcase(yyruleno==41);
2219 case 42: /* nm ::= STRING */ yytestcase(yyruleno==42); 2252 case 42: /* nm ::= STRING */ yytestcase(yyruleno==42);
2220 case 43: /* nm ::= JOIN_KW */ yytestcase(yyruleno==43); 2253 case 43: /* nm ::= JOIN_KW */ yytestcase(yyruleno==43);
2221 case 46: /* typetoken ::= typename */ yytestcase(yyruleno==46); 2254 case 46: /* typetoken ::= typename */ yytestcase(yyruleno==46);
2222 case 49: /* typename ::= ids */ yytestcase(yyruleno==49); 2255 case 49: /* typename ::= ids */ yytestcase(yyruleno==49);
2223 case 126: /* as ::= AS nm */ yytestcase(yyruleno==126); 2256 case 127: /* as ::= AS nm */ yytestcase(yyruleno==127);
2224 case 127: /* as ::= ids */ yytestcase(yyruleno==127); 2257 case 128: /* as ::= ids */ yytestcase(yyruleno==128);
2225 case 137: /* dbnm ::= DOT nm */ yytestcase(yyruleno==137); 2258 case 138: /* dbnm ::= DOT nm */ yytestcase(yyruleno==138);
2226 case 146: /* indexed_opt ::= INDEXED BY nm */ yytestcase(yyruleno==146); 2259 case 147: /* indexed_opt ::= INDEXED BY nm */ yytestcase(yyruleno==147);
2227 case 251: /* collate ::= COLLATE ids */ yytestcase(yyruleno==251); 2260 case 251: /* collate ::= COLLATE ids */ yytestcase(yyruleno==251);
2228 case 260: /* nmnum ::= plus_num */ yytestcase(yyruleno==260); 2261 case 260: /* nmnum ::= plus_num */ yytestcase(yyruleno==260);
2229 case 261: /* nmnum ::= nm */ yytestcase(yyruleno==261); 2262 case 261: /* nmnum ::= nm */ yytestcase(yyruleno==261);
2230 case 262: /* nmnum ::= ON */ yytestcase(yyruleno==262); 2263 case 262: /* nmnum ::= ON */ yytestcase(yyruleno==262);
2231 case 263: /* nmnum ::= DELETE */ yytestcase(yyruleno==263); 2264 case 263: /* nmnum ::= DELETE */ yytestcase(yyruleno==263);
2232 case 264: /* nmnum ::= DEFAULT */ yytestcase(yyruleno==264); 2265 case 264: /* nmnum ::= DEFAULT */ yytestcase(yyruleno==264);
2233 case 265: /* plus_num ::= plus_opt number */ yytestcase(yyruleno==265); 2266 case 265: /* plus_num ::= plus_opt number */ yytestcase(yyruleno==265);
2234 case 266: /* minus_num ::= MINUS number */ yytestcase(yyruleno==266); 2267 case 266: /* minus_num ::= MINUS number */ yytestcase(yyruleno==266);
2235 case 267: /* number ::= INTEGER|FLOAT */ yytestcase(yyruleno==267); 2268 case 267: /* number ::= INTEGER|FLOAT */ yytestcase(yyruleno==267);
2236 case 285: /* trnm ::= nm */ yytestcase(yyruleno==285); 2269 case 285: /* trnm ::= nm */ yytestcase(yyruleno==285);
2237 #line 191 "parse.y" 2270 #line 189 "parse.y"
2238 {yygotominor.yy0 = yymsp[0].minor.yy0;} 2271 {yygotominor.yy0 = yymsp[0].minor.yy0;}
2239 #line 2240 "parse.c" 2272 #line 2273 "parse.c"
2240 break; 2273 break;
2241 case 45: /* type ::= typetoken */ 2274 case 45: /* type ::= typetoken */
2275 #line 251 "parse.y"
2276 {sqlite3AddColumnType(pParse,&yymsp[0].minor.yy0);}
2277 #line 2278 "parse.c"
2278 break;
2279 case 47: /* typetoken ::= typename LP signed RP */
2242 #line 253 "parse.y" 2280 #line 253 "parse.y"
2243 {sqlite3AddColumnType(pParse,&yymsp[0].minor.yy0);}
2244 #line 2245 "parse.c"
2245 break;
2246 case 47: /* typetoken ::= typename LP signed RP */
2247 #line 255 "parse.y"
2248 { 2281 {
2249 yygotominor.yy0.z = yymsp[-3].minor.yy0.z; 2282 yygotominor.yy0.z = yymsp[-3].minor.yy0.z;
2250 yygotominor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[ -3].minor.yy0.z); 2283 yygotominor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[ -3].minor.yy0.z);
2251 } 2284 }
2252 #line 2253 "parse.c" 2285 #line 2286 "parse.c"
2253 break; 2286 break;
2254 case 48: /* typetoken ::= typename LP signed COMMA signed RP */ 2287 case 48: /* typetoken ::= typename LP signed COMMA signed RP */
2255 #line 259 "parse.y" 2288 #line 257 "parse.y"
2256 { 2289 {
2257 yygotominor.yy0.z = yymsp[-5].minor.yy0.z; 2290 yygotominor.yy0.z = yymsp[-5].minor.yy0.z;
2258 yygotominor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[ -5].minor.yy0.z); 2291 yygotominor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[ -5].minor.yy0.z);
2259 } 2292 }
2260 #line 2261 "parse.c" 2293 #line 2294 "parse.c"
2261 break; 2294 break;
2262 case 50: /* typename ::= typename ids */ 2295 case 50: /* typename ::= typename ids */
2263 #line 265 "parse.y" 2296 #line 263 "parse.y"
2264 {yygotominor.yy0.z=yymsp[-1].minor.yy0.z; yygotominor.yy0.n=yymsp[0].minor.yy0.n +(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);} 2297 {yygotominor.yy0.z=yymsp[-1].minor.yy0.z; yygotominor.yy0.n=yymsp[0].minor.yy0.n +(int)(yymsp[0].minor.yy0.z-yymsp[-1].minor.yy0.z);}
2265 #line 2266 "parse.c" 2298 #line 2299 "parse.c"
2266 break; 2299 break;
2267 case 57: /* ccons ::= DEFAULT term */ 2300 case 57: /* ccons ::= DEFAULT term */
2268 case 59: /* ccons ::= DEFAULT PLUS term */ yytestcase(yyruleno==59); 2301 case 59: /* ccons ::= DEFAULT PLUS term */ yytestcase(yyruleno==59);
2269 #line 276 "parse.y" 2302 #line 274 "parse.y"
2270 {sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy346);} 2303 {sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy118);}
2271 #line 2272 "parse.c" 2304 #line 2305 "parse.c"
2272 break; 2305 break;
2273 case 58: /* ccons ::= DEFAULT LP expr RP */ 2306 case 58: /* ccons ::= DEFAULT LP expr RP */
2307 #line 275 "parse.y"
2308 {sqlite3AddDefaultValue(pParse,&yymsp[-1].minor.yy118);}
2309 #line 2310 "parse.c"
2310 break;
2311 case 60: /* ccons ::= DEFAULT MINUS term */
2274 #line 277 "parse.y" 2312 #line 277 "parse.y"
2275 {sqlite3AddDefaultValue(pParse,&yymsp[-1].minor.yy346);}
2276 #line 2277 "parse.c"
2277 break;
2278 case 60: /* ccons ::= DEFAULT MINUS term */
2279 #line 279 "parse.y"
2280 { 2313 {
2281 ExprSpan v; 2314 ExprSpan v;
2282 v.pExpr = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy346.pExpr, 0, 0); 2315 v.pExpr = sqlite3PExpr(pParse, TK_UMINUS, yymsp[0].minor.yy118.pExpr, 0, 0);
2283 v.zStart = yymsp[-1].minor.yy0.z; 2316 v.zStart = yymsp[-1].minor.yy0.z;
2284 v.zEnd = yymsp[0].minor.yy346.zEnd; 2317 v.zEnd = yymsp[0].minor.yy118.zEnd;
2285 sqlite3AddDefaultValue(pParse,&v); 2318 sqlite3AddDefaultValue(pParse,&v);
2286 } 2319 }
2287 #line 2288 "parse.c" 2320 #line 2321 "parse.c"
2288 break; 2321 break;
2289 case 61: /* ccons ::= DEFAULT id */ 2322 case 61: /* ccons ::= DEFAULT id */
2290 #line 286 "parse.y" 2323 #line 284 "parse.y"
2291 { 2324 {
2292 ExprSpan v; 2325 ExprSpan v;
2293 spanExpr(&v, pParse, TK_STRING, &yymsp[0].minor.yy0); 2326 spanExpr(&v, pParse, TK_STRING, &yymsp[0].minor.yy0);
2294 sqlite3AddDefaultValue(pParse,&v); 2327 sqlite3AddDefaultValue(pParse,&v);
2295 } 2328 }
2296 #line 2297 "parse.c" 2329 #line 2330 "parse.c"
2297 break; 2330 break;
2298 case 63: /* ccons ::= NOT NULL onconf */ 2331 case 63: /* ccons ::= NOT NULL onconf */
2332 #line 294 "parse.y"
2333 {sqlite3AddNotNull(pParse, yymsp[0].minor.yy4);}
2334 #line 2335 "parse.c"
2335 break;
2336 case 64: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */
2299 #line 296 "parse.y" 2337 #line 296 "parse.y"
2300 {sqlite3AddNotNull(pParse, yymsp[0].minor.yy328);} 2338 {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy4,yymsp[0].minor.yy4,yymsp[-2]. minor.yy4);}
2301 #line 2302 "parse.c" 2339 #line 2340 "parse.c"
2302 break; 2340 break;
2303 case 64: /* ccons ::= PRIMARY KEY sortorder onconf autoinc */ 2341 case 65: /* ccons ::= UNIQUE onconf */
2342 #line 297 "parse.y"
2343 {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy4,0,0,0,0);}
2344 #line 2345 "parse.c"
2345 break;
2346 case 66: /* ccons ::= CHECK LP expr RP */
2304 #line 298 "parse.y" 2347 #line 298 "parse.y"
2305 {sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy328,yymsp[0].minor.yy328,yymsp[ -2].minor.yy328);} 2348 {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy118.pExpr);}
2306 #line 2307 "parse.c" 2349 #line 2350 "parse.c"
2307 break; 2350 break;
2308 case 65: /* ccons ::= UNIQUE onconf */ 2351 case 67: /* ccons ::= REFERENCES nm idxlist_opt refargs */
2309 #line 299 "parse.y"
2310 {sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy328,0,0,0,0);}
2311 #line 2312 "parse.c"
2312 break;
2313 case 66: /* ccons ::= CHECK LP expr RP */
2314 #line 300 "parse.y" 2352 #line 300 "parse.y"
2315 {sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy346.pExpr);} 2353 {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy322,yym sp[0].minor.yy4);}
2316 #line 2317 "parse.c" 2354 #line 2355 "parse.c"
2317 break; 2355 break;
2318 case 67: /* ccons ::= REFERENCES nm idxlist_opt refargs */ 2356 case 68: /* ccons ::= defer_subclause */
2357 #line 301 "parse.y"
2358 {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy4);}
2359 #line 2360 "parse.c"
2360 break;
2361 case 69: /* ccons ::= COLLATE ids */
2319 #line 302 "parse.y" 2362 #line 302 "parse.y"
2320 {sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy0,yymsp[-1].minor.yy14,yyms p[0].minor.yy328);}
2321 #line 2322 "parse.c"
2322 break;
2323 case 68: /* ccons ::= defer_subclause */
2324 #line 303 "parse.y"
2325 {sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy328);}
2326 #line 2327 "parse.c"
2327 break;
2328 case 69: /* ccons ::= COLLATE ids */
2329 #line 304 "parse.y"
2330 {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);} 2363 {sqlite3AddCollateType(pParse, &yymsp[0].minor.yy0);}
2331 #line 2332 "parse.c" 2364 #line 2365 "parse.c"
2332 break; 2365 break;
2333 case 72: /* refargs ::= */ 2366 case 72: /* refargs ::= */
2334 #line 317 "parse.y" 2367 #line 315 "parse.y"
2335 { yygotominor.yy328 = OE_Restrict * 0x010101; } 2368 { yygotominor.yy4 = OE_None*0x0101; /* EV: R-19803-45884 */}
2336 #line 2337 "parse.c" 2369 #line 2370 "parse.c"
2337 break; 2370 break;
2338 case 73: /* refargs ::= refargs refarg */ 2371 case 73: /* refargs ::= refargs refarg */
2372 #line 316 "parse.y"
2373 { yygotominor.yy4 = (yymsp[-1].minor.yy4 & ~yymsp[0].minor.yy215.mask) | yymsp[0 ].minor.yy215.value; }
2374 #line 2375 "parse.c"
2375 break;
2376 case 74: /* refarg ::= MATCH nm */
2377 case 75: /* refarg ::= ON INSERT refact */ yytestcase(yyruleno==75);
2339 #line 318 "parse.y" 2378 #line 318 "parse.y"
2340 { yygotominor.yy328 = (yymsp[-1].minor.yy328 & ~yymsp[0].minor.yy429.mask) | yym sp[0].minor.yy429.value; } 2379 { yygotominor.yy215.value = 0; yygotominor.yy215.mask = 0x000000; }
2341 #line 2342 "parse.c" 2380 #line 2381 "parse.c"
2342 break; 2381 break;
2343 case 74: /* refarg ::= MATCH nm */ 2382 case 76: /* refarg ::= ON DELETE refact */
2344 #line 320 "parse.y" 2383 #line 320 "parse.y"
2345 { yygotominor.yy429.value = 0; yygotominor.yy429.mask = 0x000000; } 2384 { yygotominor.yy215.value = yymsp[0].minor.yy4; yygotominor.yy215.mask = 0x0 000ff; }
2346 #line 2347 "parse.c" 2385 #line 2386 "parse.c"
2347 break; 2386 break;
2348 case 75: /* refarg ::= ON DELETE refact */ 2387 case 77: /* refarg ::= ON UPDATE refact */
2349 #line 321 "parse.y" 2388 #line 321 "parse.y"
2350 { yygotominor.yy429.value = yymsp[0].minor.yy328; yygotominor.yy429.mask = 0 x0000ff; } 2389 { yygotominor.yy215.value = yymsp[0].minor.yy4<<8; yygotominor.yy215.mask = 0x0 0ff00; }
2351 #line 2352 "parse.c" 2390 #line 2391 "parse.c"
2352 break; 2391 break;
2353 case 76: /* refarg ::= ON UPDATE refact */ 2392 case 78: /* refact ::= SET NULL */
2354 #line 322 "parse.y"
2355 { yygotominor.yy429.value = yymsp[0].minor.yy328<<8; yygotominor.yy429.mask = 0 x00ff00; }
2356 #line 2357 "parse.c"
2357 break;
2358 case 77: /* refarg ::= ON INSERT refact */
2359 #line 323 "parse.y" 2393 #line 323 "parse.y"
2360 { yygotominor.yy429.value = yymsp[0].minor.yy328<<16; yygotominor.yy429.mask = 0 xff0000; } 2394 { yygotominor.yy4 = OE_SetNull; /* EV: R-33326-45252 */}
2361 #line 2362 "parse.c" 2395 #line 2396 "parse.c"
2362 break; 2396 break;
2363 case 78: /* refact ::= SET NULL */ 2397 case 79: /* refact ::= SET DEFAULT */
2398 #line 324 "parse.y"
2399 { yygotominor.yy4 = OE_SetDflt; /* EV: R-33326-45252 */}
2400 #line 2401 "parse.c"
2401 break;
2402 case 80: /* refact ::= CASCADE */
2364 #line 325 "parse.y" 2403 #line 325 "parse.y"
2365 { yygotominor.yy328 = OE_SetNull; } 2404 { yygotominor.yy4 = OE_Cascade; /* EV: R-33326-45252 */}
2366 #line 2367 "parse.c" 2405 #line 2406 "parse.c"
2367 break; 2406 break;
2368 case 79: /* refact ::= SET DEFAULT */ 2407 case 81: /* refact ::= RESTRICT */
2369 #line 326 "parse.y" 2408 #line 326 "parse.y"
2370 { yygotominor.yy328 = OE_SetDflt; } 2409 { yygotominor.yy4 = OE_Restrict; /* EV: R-33326-45252 */}
2371 #line 2372 "parse.c" 2410 #line 2411 "parse.c"
2372 break; 2411 break;
2373 case 80: /* refact ::= CASCADE */ 2412 case 82: /* refact ::= NO ACTION */
2374 #line 327 "parse.y" 2413 #line 327 "parse.y"
2375 { yygotominor.yy328 = OE_Cascade; } 2414 { yygotominor.yy4 = OE_None; /* EV: R-33326-45252 */}
2376 #line 2377 "parse.c" 2415 #line 2416 "parse.c"
2377 break; 2416 break;
2378 case 81: /* refact ::= RESTRICT */ 2417 case 84: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */
2379 #line 328 "parse.y" 2418 case 99: /* defer_subclause_opt ::= defer_subclause */ yytestcase(yyruleno ==99);
2380 { yygotominor.yy328 = OE_Restrict; } 2419 case 101: /* onconf ::= ON CONFLICT resolvetype */ yytestcase(yyruleno==10 1);
2381 #line 2382 "parse.c" 2420 case 104: /* resolvetype ::= raisetype */ yytestcase(yyruleno==104);
2382 break;
2383 case 82: /* defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt */
2384 case 83: /* defer_subclause ::= DEFERRABLE init_deferred_pred_opt */ yytes tcase(yyruleno==83);
2385 case 98: /* defer_subclause_opt ::= defer_subclause */ yytestcase(yyruleno ==98);
2386 case 100: /* onconf ::= ON CONFLICT resolvetype */ yytestcase(yyruleno==10 0);
2387 case 103: /* resolvetype ::= raisetype */ yytestcase(yyruleno==103);
2388 #line 330 "parse.y" 2421 #line 330 "parse.y"
2389 {yygotominor.yy328 = yymsp[0].minor.yy328;} 2422 {yygotominor.yy4 = yymsp[0].minor.yy4;}
2390 #line 2391 "parse.c" 2423 #line 2424 "parse.c"
2391 break; 2424 break;
2392 case 87: /* conslist_opt ::= */ 2425 case 88: /* conslist_opt ::= */
2426 #line 339 "parse.y"
2427 {yygotominor.yy0.n = 0; yygotominor.yy0.z = 0;}
2428 #line 2429 "parse.c"
2429 break;
2430 case 89: /* conslist_opt ::= COMMA conslist */
2393 #line 340 "parse.y" 2431 #line 340 "parse.y"
2394 {yygotominor.yy0.n = 0; yygotominor.yy0.z = 0;}
2395 #line 2396 "parse.c"
2396 break;
2397 case 88: /* conslist_opt ::= COMMA conslist */
2398 #line 341 "parse.y"
2399 {yygotominor.yy0 = yymsp[-1].minor.yy0;} 2432 {yygotominor.yy0 = yymsp[-1].minor.yy0;}
2400 #line 2401 "parse.c" 2433 #line 2434 "parse.c"
2401 break; 2434 break;
2402 case 93: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */ 2435 case 94: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */
2403 #line 347 "parse.y" 2436 #line 346 "parse.y"
2404 {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy14,yymsp[0].minor.yy328,yymsp[-2] .minor.yy328,0);} 2437 {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy322,yymsp[0].minor.yy4,yymsp[-2]. minor.yy4,0);}
2405 #line 2406 "parse.c" 2438 #line 2439 "parse.c"
2406 break; 2439 break;
2407 case 94: /* tcons ::= UNIQUE LP idxlist RP onconf */ 2440 case 95: /* tcons ::= UNIQUE LP idxlist RP onconf */
2408 #line 349 "parse.y" 2441 #line 348 "parse.y"
2409 {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy14,yymsp[0].minor.yy328,0,0,0 ,0);} 2442 {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy322,yymsp[0].minor.yy4,0,0,0, 0);}
2410 #line 2411 "parse.c" 2443 #line 2444 "parse.c"
2411 break; 2444 break;
2412 case 95: /* tcons ::= CHECK LP expr RP onconf */ 2445 case 96: /* tcons ::= CHECK LP expr RP onconf */
2413 #line 351 "parse.y" 2446 #line 350 "parse.y"
2414 {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy346.pExpr);} 2447 {sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy118.pExpr);}
2415 #line 2416 "parse.c" 2448 #line 2449 "parse.c"
2416 break; 2449 break;
2417 case 96: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */ 2450 case 97: /* tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt */
2418 #line 353 "parse.y" 2451 #line 352 "parse.y"
2419 { 2452 {
2420 sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy14, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy14, yymsp[-1].minor.yy328); 2453 sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy322, &yymsp[-3].minor.yy0, yymsp[-2].minor.yy322, yymsp[-1].minor.yy4);
2421 sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy328); 2454 sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy4);
2422 } 2455 }
2423 #line 2424 "parse.c" 2456 #line 2457 "parse.c"
2424 break; 2457 break;
2425 case 99: /* onconf ::= */ 2458 case 100: /* onconf ::= */
2426 #line 367 "parse.y" 2459 #line 366 "parse.y"
2427 {yygotominor.yy328 = OE_Default;} 2460 {yygotominor.yy4 = OE_Default;}
2428 #line 2429 "parse.c" 2461 #line 2462 "parse.c"
2429 break; 2462 break;
2430 case 101: /* orconf ::= */ 2463 case 102: /* orconf ::= */
2464 #line 368 "parse.y"
2465 {yygotominor.yy210 = OE_Default;}
2466 #line 2467 "parse.c"
2467 break;
2468 case 103: /* orconf ::= OR resolvetype */
2431 #line 369 "parse.y" 2469 #line 369 "parse.y"
2432 {yygotominor.yy186 = OE_Default;} 2470 {yygotominor.yy210 = (u8)yymsp[0].minor.yy4;}
2433 #line 2434 "parse.c" 2471 #line 2472 "parse.c"
2434 break; 2472 break;
2435 case 102: /* orconf ::= OR resolvetype */ 2473 case 105: /* resolvetype ::= IGNORE */
2436 #line 370 "parse.y" 2474 #line 371 "parse.y"
2437 {yygotominor.yy186 = (u8)yymsp[0].minor.yy328;} 2475 {yygotominor.yy4 = OE_Ignore;}
2438 #line 2439 "parse.c" 2476 #line 2477 "parse.c"
2439 break; 2477 break;
2440 case 104: /* resolvetype ::= IGNORE */ 2478 case 106: /* resolvetype ::= REPLACE */
2441 #line 372 "parse.y" 2479 #line 372 "parse.y"
2442 {yygotominor.yy328 = OE_Ignore;} 2480 {yygotominor.yy4 = OE_Replace;}
2443 #line 2444 "parse.c" 2481 #line 2482 "parse.c"
2444 break; 2482 break;
2445 case 105: /* resolvetype ::= REPLACE */ 2483 case 107: /* cmd ::= DROP TABLE ifexists fullname */
2446 #line 373 "parse.y" 2484 #line 376 "parse.y"
2447 {yygotominor.yy328 = OE_Replace;} 2485 {
2448 #line 2449 "parse.c" 2486 sqlite3DropTable(pParse, yymsp[0].minor.yy259, 0, yymsp[-1].minor.yy4);
2449 break; 2487 }
2450 case 106: /* cmd ::= DROP TABLE ifexists fullname */ 2488 #line 2489 "parse.c"
2451 #line 377 "parse.y" 2489 break;
2452 { 2490 case 110: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select */
2453 sqlite3DropTable(pParse, yymsp[0].minor.yy65, 0, yymsp[-1].minor.yy328); 2491 #line 386 "parse.y"
2454 } 2492 {
2455 #line 2456 "parse.c" 2493 sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[- 2].minor.yy0, yymsp[0].minor.yy387, yymsp[-6].minor.yy4, yymsp[-4].minor.yy4);
2456 break; 2494 }
2457 case 109: /* cmd ::= createkw temp VIEW ifnotexists nm dbnm AS select */ 2495 #line 2496 "parse.c"
2458 #line 387 "parse.y" 2496 break;
2459 { 2497 case 111: /* cmd ::= DROP VIEW ifexists fullname */
2460 sqlite3CreateView(pParse, &yymsp[-7].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[- 2].minor.yy0, yymsp[0].minor.yy3, yymsp[-6].minor.yy328, yymsp[-4].minor.yy328); 2498 #line 389 "parse.y"
2461 } 2499 {
2462 #line 2463 "parse.c" 2500 sqlite3DropTable(pParse, yymsp[0].minor.yy259, 1, yymsp[-1].minor.yy4);
2463 break; 2501 }
2464 case 110: /* cmd ::= DROP VIEW ifexists fullname */ 2502 #line 2503 "parse.c"
2465 #line 390 "parse.y" 2503 break;
2466 { 2504 case 112: /* cmd ::= select */
2467 sqlite3DropTable(pParse, yymsp[0].minor.yy65, 1, yymsp[-1].minor.yy328); 2505 #line 396 "parse.y"
2468 }
2469 #line 2470 "parse.c"
2470 break;
2471 case 111: /* cmd ::= select */
2472 #line 397 "parse.y"
2473 { 2506 {
2474 SelectDest dest = {SRT_Output, 0, 0, 0, 0}; 2507 SelectDest dest = {SRT_Output, 0, 0, 0, 0};
2475 sqlite3Select(pParse, yymsp[0].minor.yy3, &dest); 2508 sqlite3Select(pParse, yymsp[0].minor.yy387, &dest);
2476 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy3); 2509 sqlite3SelectDelete(pParse->db, yymsp[0].minor.yy387);
2477 } 2510 }
2478 #line 2479 "parse.c" 2511 #line 2512 "parse.c"
2479 break; 2512 break;
2480 case 112: /* select ::= oneselect */ 2513 case 113: /* select ::= oneselect */
2481 #line 408 "parse.y" 2514 #line 407 "parse.y"
2482 {yygotominor.yy3 = yymsp[0].minor.yy3;} 2515 {yygotominor.yy387 = yymsp[0].minor.yy387;}
2483 #line 2484 "parse.c" 2516 #line 2517 "parse.c"
2484 break; 2517 break;
2485 case 113: /* select ::= select multiselect_op oneselect */ 2518 case 114: /* select ::= select multiselect_op oneselect */
2486 #line 410 "parse.y" 2519 #line 409 "parse.y"
2487 { 2520 {
2488 if( yymsp[0].minor.yy3 ){ 2521 if( yymsp[0].minor.yy387 ){
2489 yymsp[0].minor.yy3->op = (u8)yymsp[-1].minor.yy328; 2522 yymsp[0].minor.yy387->op = (u8)yymsp[-1].minor.yy4;
2490 yymsp[0].minor.yy3->pPrior = yymsp[-2].minor.yy3; 2523 yymsp[0].minor.yy387->pPrior = yymsp[-2].minor.yy387;
2491 }else{ 2524 }else{
2492 sqlite3SelectDelete(pParse->db, yymsp[-2].minor.yy3); 2525 sqlite3SelectDelete(pParse->db, yymsp[-2].minor.yy387);
2493 } 2526 }
2494 yygotominor.yy3 = yymsp[0].minor.yy3; 2527 yygotominor.yy387 = yymsp[0].minor.yy387;
2495 } 2528 }
2496 #line 2497 "parse.c" 2529 #line 2530 "parse.c"
2497 break; 2530 break;
2498 case 115: /* multiselect_op ::= UNION ALL */ 2531 case 116: /* multiselect_op ::= UNION ALL */
2499 #line 421 "parse.y" 2532 #line 420 "parse.y"
2500 {yygotominor.yy328 = TK_ALL;} 2533 {yygotominor.yy4 = TK_ALL;}
2501 #line 2502 "parse.c" 2534 #line 2535 "parse.c"
2502 break; 2535 break;
2503 case 117: /* oneselect ::= SELECT distinct selcollist from where_opt group by_opt having_opt orderby_opt limit_opt */ 2536 case 118: /* oneselect ::= SELECT distinct selcollist from where_opt group by_opt having_opt orderby_opt limit_opt */
2504 #line 425 "parse.y" 2537 #line 424 "parse.y"
2505 { 2538 {
2506 yygotominor.yy3 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy14,yymsp[-5].minor .yy65,yymsp[-4].minor.yy132,yymsp[-3].minor.yy14,yymsp[-2].minor.yy132,yymsp[-1] .minor.yy14,yymsp[-7].minor.yy328,yymsp[0].minor.yy476.pLimit,yymsp[0].minor.yy4 76.pOffset); 2539 yygotominor.yy387 = sqlite3SelectNew(pParse,yymsp[-6].minor.yy322,yymsp[-5].mi nor.yy259,yymsp[-4].minor.yy314,yymsp[-3].minor.yy322,yymsp[-2].minor.yy314,yyms p[-1].minor.yy322,yymsp[-7].minor.yy4,yymsp[0].minor.yy292.pLimit,yymsp[0].minor .yy292.pOffset);
2507 } 2540 }
2508 #line 2509 "parse.c" 2541 #line 2542 "parse.c"
2509 break; 2542 break;
2510 case 121: /* sclp ::= selcollist COMMA */ 2543 case 122: /* sclp ::= selcollist COMMA */
2511 case 247: /* idxlist_opt ::= LP idxlist RP */ yytestcase(yyruleno==247); 2544 case 247: /* idxlist_opt ::= LP idxlist RP */ yytestcase(yyruleno==247);
2512 #line 446 "parse.y" 2545 #line 445 "parse.y"
2513 {yygotominor.yy14 = yymsp[-1].minor.yy14;} 2546 {yygotominor.yy322 = yymsp[-1].minor.yy322;}
2514 #line 2515 "parse.c" 2547 #line 2548 "parse.c"
2515 break; 2548 break;
2516 case 122: /* sclp ::= */ 2549 case 123: /* sclp ::= */
2517 case 150: /* orderby_opt ::= */ yytestcase(yyruleno==150); 2550 case 151: /* orderby_opt ::= */ yytestcase(yyruleno==151);
2518 case 158: /* groupby_opt ::= */ yytestcase(yyruleno==158); 2551 case 159: /* groupby_opt ::= */ yytestcase(yyruleno==159);
2519 case 240: /* exprlist ::= */ yytestcase(yyruleno==240); 2552 case 240: /* exprlist ::= */ yytestcase(yyruleno==240);
2520 case 246: /* idxlist_opt ::= */ yytestcase(yyruleno==246); 2553 case 246: /* idxlist_opt ::= */ yytestcase(yyruleno==246);
2554 #line 446 "parse.y"
2555 {yygotominor.yy322 = 0;}
2556 #line 2557 "parse.c"
2557 break;
2558 case 124: /* selcollist ::= sclp expr as */
2521 #line 447 "parse.y" 2559 #line 447 "parse.y"
2522 {yygotominor.yy14 = 0;} 2560 {
2523 #line 2524 "parse.c" 2561 yygotominor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy322, yyms p[-1].minor.yy118.pExpr);
2524 break; 2562 if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yygotominor.yy322 , &yymsp[0].minor.yy0, 1);
2525 case 123: /* selcollist ::= sclp expr as */ 2563 sqlite3ExprListSetSpan(pParse,yygotominor.yy322,&yymsp[-1].minor.yy118);
2526 #line 448 "parse.y" 2564 }
2527 { 2565 #line 2566 "parse.c"
2528 yygotominor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy14, yymsp[ -1].minor.yy346.pExpr); 2566 break;
2529 if( yymsp[0].minor.yy0.n>0 ) sqlite3ExprListSetName(pParse, yygotominor.yy14, &yymsp[0].minor.yy0, 1); 2567 case 125: /* selcollist ::= sclp STAR */
2530 sqlite3ExprListSetSpan(pParse,yygotominor.yy14,&yymsp[-1].minor.yy346); 2568 #line 452 "parse.y"
2531 }
2532 #line 2533 "parse.c"
2533 break;
2534 case 124: /* selcollist ::= sclp STAR */
2535 #line 453 "parse.y"
2536 { 2569 {
2537 Expr *p = sqlite3Expr(pParse->db, TK_ALL, 0); 2570 Expr *p = sqlite3Expr(pParse->db, TK_ALL, 0);
2538 yygotominor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy14, p); 2571 yygotominor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-1].minor.yy322, p);
2539 } 2572 }
2540 #line 2541 "parse.c" 2573 #line 2574 "parse.c"
2541 break; 2574 break;
2542 case 125: /* selcollist ::= sclp nm DOT STAR */ 2575 case 126: /* selcollist ::= sclp nm DOT STAR */
2543 #line 457 "parse.y" 2576 #line 456 "parse.y"
2544 { 2577 {
2545 Expr *pRight = sqlite3PExpr(pParse, TK_ALL, 0, 0, &yymsp[0].minor.yy0); 2578 Expr *pRight = sqlite3PExpr(pParse, TK_ALL, 0, 0, &yymsp[0].minor.yy0);
2546 Expr *pLeft = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0); 2579 Expr *pLeft = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
2547 Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight, 0); 2580 Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight, 0);
2548 yygotominor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy14, pDot); 2581 yygotominor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322, pDot);
2549 } 2582 }
2550 #line 2551 "parse.c" 2583 #line 2584 "parse.c"
2551 break; 2584 break;
2552 case 128: /* as ::= */ 2585 case 129: /* as ::= */
2553 #line 470 "parse.y" 2586 #line 469 "parse.y"
2554 {yygotominor.yy0.n = 0;} 2587 {yygotominor.yy0.n = 0;}
2555 #line 2556 "parse.c" 2588 #line 2589 "parse.c"
2556 break; 2589 break;
2557 case 129: /* from ::= */ 2590 case 130: /* from ::= */
2591 #line 481 "parse.y"
2592 {yygotominor.yy259 = sqlite3DbMallocZero(pParse->db, sizeof(*yygotominor.yy259)) ;}
2593 #line 2594 "parse.c"
2594 break;
2595 case 131: /* from ::= FROM seltablist */
2558 #line 482 "parse.y" 2596 #line 482 "parse.y"
2559 {yygotominor.yy65 = sqlite3DbMallocZero(pParse->db, sizeof(*yygotominor.yy65));} 2597 {
2560 #line 2561 "parse.c" 2598 yygotominor.yy259 = yymsp[0].minor.yy259;
2561 break; 2599 sqlite3SrcListShiftJoinType(yygotominor.yy259);
2562 case 130: /* from ::= FROM seltablist */ 2600 }
2563 #line 483 "parse.y" 2601 #line 2602 "parse.c"
2564 { 2602 break;
2565 yygotominor.yy65 = yymsp[0].minor.yy65; 2603 case 132: /* stl_prefix ::= seltablist joinop */
2566 sqlite3SrcListShiftJoinType(yygotominor.yy65); 2604 #line 490 "parse.y"
2567 } 2605 {
2568 #line 2569 "parse.c" 2606 yygotominor.yy259 = yymsp[-1].minor.yy259;
2569 break; 2607 if( ALWAYS(yygotominor.yy259 && yygotominor.yy259->nSrc>0) ) yygotominor.yy25 9->a[yygotominor.yy259->nSrc-1].jointype = (u8)yymsp[0].minor.yy4;
2570 case 131: /* stl_prefix ::= seltablist joinop */ 2608 }
2571 #line 491 "parse.y" 2609 #line 2610 "parse.c"
2572 { 2610 break;
2573 yygotominor.yy65 = yymsp[-1].minor.yy65; 2611 case 133: /* stl_prefix ::= */
2574 if( ALWAYS(yygotominor.yy65 && yygotominor.yy65->nSrc>0) ) yygotominor.yy65-> a[yygotominor.yy65->nSrc-1].jointype = (u8)yymsp[0].minor.yy328; 2612 #line 494 "parse.y"
2575 } 2613 {yygotominor.yy259 = 0;}
2576 #line 2577 "parse.c" 2614 #line 2615 "parse.c"
2577 break; 2615 break;
2578 case 132: /* stl_prefix ::= */ 2616 case 134: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using _opt */
2579 #line 495 "parse.y" 2617 #line 495 "parse.y"
2580 {yygotominor.yy65 = 0;} 2618 {
2581 #line 2582 "parse.c" 2619 yygotominor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy259, &yymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor .yy314,yymsp[0].minor.yy384);
2582 break; 2620 sqlite3SrcListIndexedBy(pParse, yygotominor.yy259, &yymsp[-2].minor.yy0);
2583 case 133: /* seltablist ::= stl_prefix nm dbnm as indexed_opt on_opt using _opt */ 2621 }
2584 #line 496 "parse.y" 2622 #line 2623 "parse.c"
2585 { 2623 break;
2586 yygotominor.yy65 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy65,&y ymsp[-5].minor.yy0,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,0,yymsp[-1].minor.y y132,yymsp[0].minor.yy408); 2624 case 135: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */
2587 sqlite3SrcListIndexedBy(pParse, yygotominor.yy65, &yymsp[-2].minor.yy0); 2625 #line 501 "parse.y"
2588 } 2626 {
2589 #line 2590 "parse.c" 2627 yygotominor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy25 9,0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy387,yymsp[-1].minor.yy314,yymsp[0]. minor.yy384);
2590 break; 2628 }
2591 case 134: /* seltablist ::= stl_prefix LP select RP as on_opt using_opt */ 2629 #line 2630 "parse.c"
2592 #line 502 "parse.y" 2630 break;
2593 { 2631 case 136: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_op t */
2594 yygotominor.yy65 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy65, 0,0,&yymsp[-2].minor.yy0,yymsp[-4].minor.yy3,yymsp[-1].minor.yy132,yymsp[0].mino r.yy408); 2632 #line 505 "parse.y"
2595 } 2633 {
2596 #line 2597 "parse.c" 2634 if( yymsp[-6].minor.yy259==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor. yy314==0 && yymsp[0].minor.yy384==0 ){
2597 break; 2635 yygotominor.yy259 = yymsp[-4].minor.yy259;
2598 case 135: /* seltablist ::= stl_prefix LP seltablist RP as on_opt using_op t */
2599 #line 506 "parse.y"
2600 {
2601 if( yymsp[-6].minor.yy65==0 && yymsp[-2].minor.yy0.n==0 && yymsp[-1].minor.y y132==0 && yymsp[0].minor.yy408==0 ){
2602 yygotominor.yy65 = yymsp[-4].minor.yy65;
2603 }else{ 2636 }else{
2604 Select *pSubquery; 2637 Select *pSubquery;
2605 sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy65); 2638 sqlite3SrcListShiftJoinType(yymsp[-4].minor.yy259);
2606 pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy65,0,0,0,0,0,0,0); 2639 pSubquery = sqlite3SelectNew(pParse,0,yymsp[-4].minor.yy259,0,0,0,0,0,0,0) ;
2607 yygotominor.yy65 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy6 5,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy132,yymsp[0].minor.yy408) ; 2640 yygotominor.yy259 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-6].minor.yy 259,0,0,&yymsp[-2].minor.yy0,pSubquery,yymsp[-1].minor.yy314,yymsp[0].minor.yy38 4);
2608 } 2641 }
2609 } 2642 }
2610 #line 2611 "parse.c" 2643 #line 2644 "parse.c"
2611 break; 2644 break;
2612 case 136: /* dbnm ::= */ 2645 case 137: /* dbnm ::= */
2613 case 145: /* indexed_opt ::= */ yytestcase(yyruleno==145); 2646 case 146: /* indexed_opt ::= */ yytestcase(yyruleno==146);
2614 #line 531 "parse.y" 2647 #line 530 "parse.y"
2615 {yygotominor.yy0.z=0; yygotominor.yy0.n=0;} 2648 {yygotominor.yy0.z=0; yygotominor.yy0.n=0;}
2616 #line 2617 "parse.c" 2649 #line 2650 "parse.c"
2617 break; 2650 break;
2618 case 138: /* fullname ::= nm dbnm */ 2651 case 139: /* fullname ::= nm dbnm */
2619 #line 536 "parse.y" 2652 #line 535 "parse.y"
2620 {yygotominor.yy65 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yyms p[0].minor.yy0);} 2653 {yygotominor.yy259 = sqlite3SrcListAppend(pParse->db,0,&yymsp[-1].minor.yy0,&yym sp[0].minor.yy0);}
2621 #line 2622 "parse.c" 2654 #line 2655 "parse.c"
2622 break; 2655 break;
2623 case 139: /* joinop ::= COMMA|JOIN */ 2656 case 140: /* joinop ::= COMMA|JOIN */
2657 #line 539 "parse.y"
2658 { yygotominor.yy4 = JT_INNER; }
2659 #line 2660 "parse.c"
2660 break;
2661 case 141: /* joinop ::= JOIN_KW JOIN */
2624 #line 540 "parse.y" 2662 #line 540 "parse.y"
2625 { yygotominor.yy328 = JT_INNER; } 2663 { yygotominor.yy4 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); }
2626 #line 2627 "parse.c" 2664 #line 2665 "parse.c"
2627 break; 2665 break;
2628 case 140: /* joinop ::= JOIN_KW JOIN */ 2666 case 142: /* joinop ::= JOIN_KW nm JOIN */
2629 #line 541 "parse.y" 2667 #line 541 "parse.y"
2630 { yygotominor.yy328 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); } 2668 { yygotominor.yy4 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor .yy0,0); }
2631 #line 2632 "parse.c" 2669 #line 2670 "parse.c"
2632 break; 2670 break;
2633 case 141: /* joinop ::= JOIN_KW nm JOIN */ 2671 case 143: /* joinop ::= JOIN_KW nm nm JOIN */
2634 #line 542 "parse.y" 2672 #line 543 "parse.y"
2635 { yygotominor.yy328 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].min or.yy0,0); } 2673 { yygotominor.yy4 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor .yy0,&yymsp[-1].minor.yy0); }
2636 #line 2637 "parse.c" 2674 #line 2675 "parse.c"
2637 break; 2675 break;
2638 case 142: /* joinop ::= JOIN_KW nm nm JOIN */ 2676 case 144: /* on_opt ::= ON expr */
2639 #line 544 "parse.y" 2677 case 155: /* sortitem ::= expr */ yytestcase(yyruleno==155);
2640 { yygotominor.yy328 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].min or.yy0,&yymsp[-1].minor.yy0); } 2678 case 162: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==162);
2641 #line 2642 "parse.c" 2679 case 169: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==169);
2642 break;
2643 case 143: /* on_opt ::= ON expr */
2644 case 154: /* sortitem ::= expr */ yytestcase(yyruleno==154);
2645 case 161: /* having_opt ::= HAVING expr */ yytestcase(yyruleno==161);
2646 case 168: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==168);
2647 case 235: /* case_else ::= ELSE expr */ yytestcase(yyruleno==235); 2680 case 235: /* case_else ::= ELSE expr */ yytestcase(yyruleno==235);
2648 case 237: /* case_operand ::= expr */ yytestcase(yyruleno==237); 2681 case 237: /* case_operand ::= expr */ yytestcase(yyruleno==237);
2649 #line 548 "parse.y" 2682 #line 547 "parse.y"
2650 {yygotominor.yy132 = yymsp[0].minor.yy346.pExpr;} 2683 {yygotominor.yy314 = yymsp[0].minor.yy118.pExpr;}
2651 #line 2652 "parse.c" 2684 #line 2685 "parse.c"
2652 break; 2685 break;
2653 case 144: /* on_opt ::= */ 2686 case 145: /* on_opt ::= */
2654 case 160: /* having_opt ::= */ yytestcase(yyruleno==160); 2687 case 161: /* having_opt ::= */ yytestcase(yyruleno==161);
2655 case 167: /* where_opt ::= */ yytestcase(yyruleno==167); 2688 case 168: /* where_opt ::= */ yytestcase(yyruleno==168);
2656 case 236: /* case_else ::= */ yytestcase(yyruleno==236); 2689 case 236: /* case_else ::= */ yytestcase(yyruleno==236);
2657 case 238: /* case_operand ::= */ yytestcase(yyruleno==238); 2690 case 238: /* case_operand ::= */ yytestcase(yyruleno==238);
2658 #line 549 "parse.y" 2691 #line 548 "parse.y"
2659 {yygotominor.yy132 = 0;} 2692 {yygotominor.yy314 = 0;}
2660 #line 2661 "parse.c" 2693 #line 2694 "parse.c"
2661 break; 2694 break;
2662 case 147: /* indexed_opt ::= NOT INDEXED */ 2695 case 148: /* indexed_opt ::= NOT INDEXED */
2663 #line 564 "parse.y" 2696 #line 563 "parse.y"
2664 {yygotominor.yy0.z=0; yygotominor.yy0.n=1;} 2697 {yygotominor.yy0.z=0; yygotominor.yy0.n=1;}
2665 #line 2666 "parse.c" 2698 #line 2699 "parse.c"
2666 break; 2699 break;
2667 case 148: /* using_opt ::= USING LP inscollist RP */ 2700 case 149: /* using_opt ::= USING LP inscollist RP */
2668 case 180: /* inscollist_opt ::= LP inscollist RP */ yytestcase(yyruleno==1 80); 2701 case 181: /* inscollist_opt ::= LP inscollist RP */ yytestcase(yyruleno==1 81);
2702 #line 567 "parse.y"
2703 {yygotominor.yy384 = yymsp[-1].minor.yy384;}
2704 #line 2705 "parse.c"
2705 break;
2706 case 150: /* using_opt ::= */
2707 case 180: /* inscollist_opt ::= */ yytestcase(yyruleno==180);
2669 #line 568 "parse.y" 2708 #line 568 "parse.y"
2670 {yygotominor.yy408 = yymsp[-1].minor.yy408;} 2709 {yygotominor.yy384 = 0;}
2671 #line 2672 "parse.c" 2710 #line 2711 "parse.c"
2672 break; 2711 break;
2673 case 149: /* using_opt ::= */ 2712 case 152: /* orderby_opt ::= ORDER BY sortlist */
2674 case 179: /* inscollist_opt ::= */ yytestcase(yyruleno==179); 2713 case 160: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==16 0);
2675 #line 569 "parse.y"
2676 {yygotominor.yy408 = 0;}
2677 #line 2678 "parse.c"
2678 break;
2679 case 151: /* orderby_opt ::= ORDER BY sortlist */
2680 case 159: /* groupby_opt ::= GROUP BY nexprlist */ yytestcase(yyruleno==15 9);
2681 case 239: /* exprlist ::= nexprlist */ yytestcase(yyruleno==239); 2714 case 239: /* exprlist ::= nexprlist */ yytestcase(yyruleno==239);
2715 #line 579 "parse.y"
2716 {yygotominor.yy322 = yymsp[0].minor.yy322;}
2717 #line 2718 "parse.c"
2718 break;
2719 case 153: /* sortlist ::= sortlist COMMA sortitem sortorder */
2682 #line 580 "parse.y" 2720 #line 580 "parse.y"
2683 {yygotominor.yy14 = yymsp[0].minor.yy14;} 2721 {
2684 #line 2685 "parse.c" 2722 yygotominor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322,yymsp[- 1].minor.yy314);
2685 break; 2723 if( yygotominor.yy322 ) yygotominor.yy322->a[yygotominor.yy322->nExpr-1].sortO rder = (u8)yymsp[0].minor.yy4;
2686 case 152: /* sortlist ::= sortlist COMMA sortitem sortorder */ 2724 }
2687 #line 581 "parse.y" 2725 #line 2726 "parse.c"
2688 { 2726 break;
2689 yygotominor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy14,yymsp[-1] .minor.yy132); 2727 case 154: /* sortlist ::= sortitem sortorder */
2690 if( yygotominor.yy14 ) yygotominor.yy14->a[yygotominor.yy14->nExpr-1].sortOrde r = (u8)yymsp[0].minor.yy328; 2728 #line 584 "parse.y"
2691 } 2729 {
2692 #line 2693 "parse.c" 2730 yygotominor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy314);
2693 break; 2731 if( yygotominor.yy322 && ALWAYS(yygotominor.yy322->a) ) yygotominor.yy322->a[0 ].sortOrder = (u8)yymsp[0].minor.yy4;
2694 case 153: /* sortlist ::= sortitem sortorder */ 2732 }
2695 #line 585 "parse.y" 2733 #line 2734 "parse.c"
2696 { 2734 break;
2697 yygotominor.yy14 = sqlite3ExprListAppend(pParse,0,yymsp[-1].minor.yy132); 2735 case 156: /* sortorder ::= ASC */
2698 if( yygotominor.yy14 && ALWAYS(yygotominor.yy14->a) ) yygotominor.yy14->a[0].s ortOrder = (u8)yymsp[0].minor.yy328; 2736 case 158: /* sortorder ::= */ yytestcase(yyruleno==158);
2699 } 2737 #line 592 "parse.y"
2700 #line 2701 "parse.c" 2738 {yygotominor.yy4 = SQLITE_SO_ASC;}
2701 break; 2739 #line 2740 "parse.c"
2702 case 155: /* sortorder ::= ASC */ 2740 break;
2703 case 157: /* sortorder ::= */ yytestcase(yyruleno==157); 2741 case 157: /* sortorder ::= DESC */
2704 #line 593 "parse.y" 2742 #line 593 "parse.y"
2705 {yygotominor.yy328 = SQLITE_SO_ASC;} 2743 {yygotominor.yy4 = SQLITE_SO_DESC;}
2706 #line 2707 "parse.c" 2744 #line 2745 "parse.c"
2707 break; 2745 break;
2708 case 156: /* sortorder ::= DESC */ 2746 case 163: /* limit_opt ::= */
2709 #line 594 "parse.y" 2747 #line 619 "parse.y"
2710 {yygotominor.yy328 = SQLITE_SO_DESC;} 2748 {yygotominor.yy292.pLimit = 0; yygotominor.yy292.pOffset = 0;}
2711 #line 2712 "parse.c" 2749 #line 2750 "parse.c"
2712 break; 2750 break;
2713 case 162: /* limit_opt ::= */ 2751 case 164: /* limit_opt ::= LIMIT expr */
2714 #line 620 "parse.y" 2752 #line 620 "parse.y"
2715 {yygotominor.yy476.pLimit = 0; yygotominor.yy476.pOffset = 0;} 2753 {yygotominor.yy292.pLimit = yymsp[0].minor.yy118.pExpr; yygotominor.yy292.pOffse t = 0;}
2716 #line 2717 "parse.c" 2754 #line 2755 "parse.c"
2717 break; 2755 break;
2718 case 163: /* limit_opt ::= LIMIT expr */ 2756 case 165: /* limit_opt ::= LIMIT expr OFFSET expr */
2719 #line 621 "parse.y" 2757 #line 622 "parse.y"
2720 {yygotominor.yy476.pLimit = yymsp[0].minor.yy346.pExpr; yygotominor.yy476.pOffse t = 0;} 2758 {yygotominor.yy292.pLimit = yymsp[-2].minor.yy118.pExpr; yygotominor.yy292.pOffs et = yymsp[0].minor.yy118.pExpr;}
2721 #line 2722 "parse.c" 2759 #line 2760 "parse.c"
2722 break; 2760 break;
2723 case 164: /* limit_opt ::= LIMIT expr OFFSET expr */ 2761 case 166: /* limit_opt ::= LIMIT expr COMMA expr */
2724 #line 623 "parse.y" 2762 #line 624 "parse.y"
2725 {yygotominor.yy476.pLimit = yymsp[-2].minor.yy346.pExpr; yygotominor.yy476.pOffs et = yymsp[0].minor.yy346.pExpr;} 2763 {yygotominor.yy292.pOffset = yymsp[-2].minor.yy118.pExpr; yygotominor.yy292.pLim it = yymsp[0].minor.yy118.pExpr;}
2726 #line 2727 "parse.c"
2727 break;
2728 case 165: /* limit_opt ::= LIMIT expr COMMA expr */
2729 #line 625 "parse.y"
2730 {yygotominor.yy476.pOffset = yymsp[-2].minor.yy346.pExpr; yygotominor.yy476.pLim it = yymsp[0].minor.yy346.pExpr;}
2731 #line 2732 "parse.c"
2732 break;
2733 case 166: /* cmd ::= DELETE FROM fullname indexed_opt where_opt */
2734 #line 638 "parse.y"
2735 {
2736 sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy65, &yymsp[-1].minor.yy0);
2737 sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy65,yymsp[0].minor.yy132);
2738 }
2739 #line 2740 "parse.c"
2740 break;
2741 case 169: /* cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_ opt */
2742 #line 661 "parse.y"
2743 {
2744 sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy65, &yymsp[-3].minor.yy0);
2745 sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy14,"set list");
2746 sqlite3Update(pParse,yymsp[-4].minor.yy65,yymsp[-1].minor.yy14,yymsp[0].minor. yy132,yymsp[-5].minor.yy186);
2747 }
2748 #line 2749 "parse.c"
2749 break;
2750 case 170: /* setlist ::= setlist COMMA nm EQ expr */
2751 #line 671 "parse.y"
2752 {
2753 yygotominor.yy14 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy14, yymsp[0 ].minor.yy346.pExpr);
2754 sqlite3ExprListSetName(pParse, yygotominor.yy14, &yymsp[-2].minor.yy0, 1);
2755 }
2756 #line 2757 "parse.c"
2757 break;
2758 case 171: /* setlist ::= nm EQ expr */
2759 #line 675 "parse.y"
2760 {
2761 yygotominor.yy14 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy346.pExpr );
2762 sqlite3ExprListSetName(pParse, yygotominor.yy14, &yymsp[-2].minor.yy0, 1);
2763 }
2764 #line 2765 "parse.c" 2764 #line 2765 "parse.c"
2765 break; 2765 break;
2766 case 172: /* cmd ::= insert_cmd INTO fullname inscollist_opt VALUES LP ite mlist RP */ 2766 case 167: /* cmd ::= DELETE FROM fullname indexed_opt where_opt */
2767 #line 684 "parse.y" 2767 #line 637 "parse.y"
2768 {sqlite3Insert(pParse, yymsp[-5].minor.yy65, yymsp[-1].minor.yy14, 0, yymsp[-4]. minor.yy408, yymsp[-7].minor.yy186);} 2768 {
2769 #line 2770 "parse.c" 2769 sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy259, &yymsp[-1].minor.yy0);
2770 break; 2770 sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy259,yymsp[0].minor.yy314);
2771 case 173: /* cmd ::= insert_cmd INTO fullname inscollist_opt select */ 2771 }
2772 #line 686 "parse.y" 2772 #line 2773 "parse.c"
2773 {sqlite3Insert(pParse, yymsp[-2].minor.yy65, 0, yymsp[0].minor.yy3, yymsp[-1].mi nor.yy408, yymsp[-4].minor.yy186);} 2773 break;
2774 #line 2775 "parse.c" 2774 case 170: /* cmd ::= UPDATE orconf fullname indexed_opt SET setlist where_ opt */
2775 break; 2775 #line 660 "parse.y"
2776 case 174: /* cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUE S */ 2776 {
2777 #line 688 "parse.y" 2777 sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy259, &yymsp[-3].minor.yy0);
2778 {sqlite3Insert(pParse, yymsp[-3].minor.yy65, 0, 0, yymsp[-2].minor.yy408, yymsp[ -5].minor.yy186);} 2778 sqlite3ExprListCheckLength(pParse,yymsp[-1].minor.yy322,"set list");
2779 #line 2780 "parse.c" 2779 sqlite3Update(pParse,yymsp[-4].minor.yy259,yymsp[-1].minor.yy322,yymsp[0].mino r.yy314,yymsp[-5].minor.yy210);
2780 break; 2780 }
2781 case 175: /* insert_cmd ::= INSERT orconf */ 2781 #line 2782 "parse.c"
2782 break;
2783 case 171: /* setlist ::= setlist COMMA nm EQ expr */
2784 #line 670 "parse.y"
2785 {
2786 yygotominor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-4].minor.yy322, yymsp [0].minor.yy118.pExpr);
2787 sqlite3ExprListSetName(pParse, yygotominor.yy322, &yymsp[-2].minor.yy0, 1);
2788 }
2789 #line 2790 "parse.c"
2790 break;
2791 case 172: /* setlist ::= nm EQ expr */
2792 #line 674 "parse.y"
2793 {
2794 yygotominor.yy322 = sqlite3ExprListAppend(pParse, 0, yymsp[0].minor.yy118.pExp r);
2795 sqlite3ExprListSetName(pParse, yygotominor.yy322, &yymsp[-2].minor.yy0, 1);
2796 }
2797 #line 2798 "parse.c"
2798 break;
2799 case 173: /* cmd ::= insert_cmd INTO fullname inscollist_opt VALUES LP ite mlist RP */
2800 #line 683 "parse.y"
2801 {sqlite3Insert(pParse, yymsp[-5].minor.yy259, yymsp[-1].minor.yy322, 0, yymsp[-4 ].minor.yy384, yymsp[-7].minor.yy210);}
2802 #line 2803 "parse.c"
2803 break;
2804 case 174: /* cmd ::= insert_cmd INTO fullname inscollist_opt select */
2805 #line 685 "parse.y"
2806 {sqlite3Insert(pParse, yymsp[-2].minor.yy259, 0, yymsp[0].minor.yy387, yymsp[-1] .minor.yy384, yymsp[-4].minor.yy210);}
2807 #line 2808 "parse.c"
2808 break;
2809 case 175: /* cmd ::= insert_cmd INTO fullname inscollist_opt DEFAULT VALUE S */
2810 #line 687 "parse.y"
2811 {sqlite3Insert(pParse, yymsp[-3].minor.yy259, 0, 0, yymsp[-2].minor.yy384, yymsp [-5].minor.yy210);}
2812 #line 2813 "parse.c"
2813 break;
2814 case 176: /* insert_cmd ::= INSERT orconf */
2815 #line 690 "parse.y"
2816 {yygotominor.yy210 = yymsp[0].minor.yy210;}
2817 #line 2818 "parse.c"
2818 break;
2819 case 177: /* insert_cmd ::= REPLACE */
2782 #line 691 "parse.y" 2820 #line 691 "parse.y"
2783 {yygotominor.yy186 = yymsp[0].minor.yy186;} 2821 {yygotominor.yy210 = OE_Replace;}
2784 #line 2785 "parse.c" 2822 #line 2823 "parse.c"
2785 break; 2823 break;
2786 case 176: /* insert_cmd ::= REPLACE */ 2824 case 178: /* itemlist ::= itemlist COMMA expr */
2787 #line 692 "parse.y"
2788 {yygotominor.yy186 = OE_Replace;}
2789 #line 2790 "parse.c"
2790 break;
2791 case 177: /* itemlist ::= itemlist COMMA expr */
2792 case 241: /* nexprlist ::= nexprlist COMMA expr */ yytestcase(yyruleno==24 1); 2825 case 241: /* nexprlist ::= nexprlist COMMA expr */ yytestcase(yyruleno==24 1);
2793 #line 699 "parse.y" 2826 #line 698 "parse.y"
2794 {yygotominor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy14,yymsp[0].m inor.yy346.pExpr);} 2827 {yygotominor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[0] .minor.yy118.pExpr);}
2795 #line 2796 "parse.c" 2828 #line 2829 "parse.c"
2796 break; 2829 break;
2797 case 178: /* itemlist ::= expr */ 2830 case 179: /* itemlist ::= expr */
2798 case 242: /* nexprlist ::= expr */ yytestcase(yyruleno==242); 2831 case 242: /* nexprlist ::= expr */ yytestcase(yyruleno==242);
2799 #line 701 "parse.y" 2832 #line 700 "parse.y"
2800 {yygotominor.yy14 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy346.pExpr);} 2833 {yygotominor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy118.pExpr); }
2801 #line 2802 "parse.c" 2834 #line 2835 "parse.c"
2802 break; 2835 break;
2803 case 181: /* inscollist ::= inscollist COMMA nm */ 2836 case 182: /* inscollist ::= inscollist COMMA nm */
2804 #line 711 "parse.y" 2837 #line 710 "parse.y"
2805 {yygotominor.yy408 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy408,&yymsp [0].minor.yy0);} 2838 {yygotominor.yy384 = sqlite3IdListAppend(pParse->db,yymsp[-2].minor.yy384,&yymsp [0].minor.yy0);}
2806 #line 2807 "parse.c" 2839 #line 2840 "parse.c"
2807 break; 2840 break;
2808 case 182: /* inscollist ::= nm */ 2841 case 183: /* inscollist ::= nm */
2809 #line 713 "parse.y" 2842 #line 712 "parse.y"
2810 {yygotominor.yy408 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0);} 2843 {yygotominor.yy384 = sqlite3IdListAppend(pParse->db,0,&yymsp[0].minor.yy0);}
2811 #line 2812 "parse.c" 2844 #line 2845 "parse.c"
2812 break; 2845 break;
2813 case 183: /* expr ::= term */ 2846 case 184: /* expr ::= term */
2814 case 211: /* escape ::= ESCAPE expr */ yytestcase(yyruleno==211); 2847 #line 743 "parse.y"
2848 {yygotominor.yy118 = yymsp[0].minor.yy118;}
2849 #line 2850 "parse.c"
2850 break;
2851 case 185: /* expr ::= LP expr RP */
2815 #line 744 "parse.y" 2852 #line 744 "parse.y"
2816 {yygotominor.yy346 = yymsp[0].minor.yy346;} 2853 {yygotominor.yy118.pExpr = yymsp[-1].minor.yy118.pExpr; spanSet(&yygotominor.yy1 18,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);}
2817 #line 2818 "parse.c" 2854 #line 2855 "parse.c"
2818 break; 2855 break;
2819 case 184: /* expr ::= LP expr RP */ 2856 case 186: /* term ::= NULL */
2857 case 191: /* term ::= INTEGER|FLOAT|BLOB */ yytestcase(yyruleno==191);
2858 case 192: /* term ::= STRING */ yytestcase(yyruleno==192);
2820 #line 745 "parse.y" 2859 #line 745 "parse.y"
2821 {yygotominor.yy346.pExpr = yymsp[-1].minor.yy346.pExpr; spanSet(&yygotominor.yy3 46,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);} 2860 {spanExpr(&yygotominor.yy118, pParse, yymsp[0].major, &yymsp[0].minor.yy0);}
2822 #line 2823 "parse.c" 2861 #line 2862 "parse.c"
2823 break; 2862 break;
2824 case 185: /* term ::= NULL */ 2863 case 187: /* expr ::= id */
2825 case 190: /* term ::= INTEGER|FLOAT|BLOB */ yytestcase(yyruleno==190); 2864 case 188: /* expr ::= JOIN_KW */ yytestcase(yyruleno==188);
2826 case 191: /* term ::= STRING */ yytestcase(yyruleno==191);
2827 #line 746 "parse.y" 2865 #line 746 "parse.y"
2828 {spanExpr(&yygotominor.yy346, pParse, yymsp[0].major, &yymsp[0].minor.yy0);} 2866 {spanExpr(&yygotominor.yy118, pParse, TK_ID, &yymsp[0].minor.yy0);}
2829 #line 2830 "parse.c" 2867 #line 2868 "parse.c"
2830 break; 2868 break;
2831 case 186: /* expr ::= id */ 2869 case 189: /* expr ::= nm DOT nm */
2832 case 187: /* expr ::= JOIN_KW */ yytestcase(yyruleno==187); 2870 #line 748 "parse.y"
2833 #line 747 "parse.y"
2834 {spanExpr(&yygotominor.yy346, pParse, TK_ID, &yymsp[0].minor.yy0);}
2835 #line 2836 "parse.c"
2836 break;
2837 case 188: /* expr ::= nm DOT nm */
2838 #line 749 "parse.y"
2839 { 2871 {
2840 Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0); 2872 Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
2841 Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0); 2873 Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
2842 yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp2, 0); 2874 yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp2, 0);
2843 spanSet(&yygotominor.yy346,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); 2875 spanSet(&yygotominor.yy118,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
2844 } 2876 }
2845 #line 2846 "parse.c" 2877 #line 2878 "parse.c"
2846 break; 2878 break;
2847 case 189: /* expr ::= nm DOT nm DOT nm */ 2879 case 190: /* expr ::= nm DOT nm DOT nm */
2848 #line 755 "parse.y" 2880 #line 754 "parse.y"
2849 { 2881 {
2850 Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-4].minor.yy0); 2882 Expr *temp1 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-4].minor.yy0);
2851 Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0); 2883 Expr *temp2 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[-2].minor.yy0);
2852 Expr *temp3 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0); 2884 Expr *temp3 = sqlite3PExpr(pParse, TK_ID, 0, 0, &yymsp[0].minor.yy0);
2853 Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3, 0); 2885 Expr *temp4 = sqlite3PExpr(pParse, TK_DOT, temp2, temp3, 0);
2854 yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp4, 0); 2886 yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_DOT, temp1, temp4, 0);
2855 spanSet(&yygotominor.yy346,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); 2887 spanSet(&yygotominor.yy118,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0);
2856 } 2888 }
2857 #line 2858 "parse.c" 2889 #line 2890 "parse.c"
2858 break; 2890 break;
2859 case 192: /* expr ::= REGISTER */ 2891 case 193: /* expr ::= REGISTER */
2860 #line 765 "parse.y" 2892 #line 764 "parse.y"
2861 { 2893 {
2862 /* When doing a nested parse, one can include terms in an expression 2894 /* When doing a nested parse, one can include terms in an expression
2863 ** that look like this: #1 #2 ... These terms refer to registers 2895 ** that look like this: #1 #2 ... These terms refer to registers
2864 ** in the virtual machine. #N is the N-th register. */ 2896 ** in the virtual machine. #N is the N-th register. */
2865 if( pParse->nested==0 ){ 2897 if( pParse->nested==0 ){
2866 sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &yymsp[0].minor.yy0); 2898 sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &yymsp[0].minor.yy0);
2867 yygotominor.yy346.pExpr = 0; 2899 yygotominor.yy118.pExpr = 0;
2868 }else{ 2900 }else{
2869 yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_REGISTER, 0, 0, &yymsp[0]. minor.yy0); 2901 yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_REGISTER, 0, 0, &yymsp[0]. minor.yy0);
2870 if( yygotominor.yy346.pExpr ) sqlite3GetInt32(&yymsp[0].minor.yy0.z[1], &yyg otominor.yy346.pExpr->iTable); 2902 if( yygotominor.yy118.pExpr ) sqlite3GetInt32(&yymsp[0].minor.yy0.z[1], &yyg otominor.yy118.pExpr->iTable);
2871 } 2903 }
2872 spanSet(&yygotominor.yy346, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0); 2904 spanSet(&yygotominor.yy118, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
2873 } 2905 }
2874 #line 2875 "parse.c" 2906 #line 2907 "parse.c"
2875 break; 2907 break;
2876 case 193: /* expr ::= VARIABLE */ 2908 case 194: /* expr ::= VARIABLE */
2877 #line 778 "parse.y" 2909 #line 777 "parse.y"
2878 { 2910 {
2879 spanExpr(&yygotominor.yy346, pParse, TK_VARIABLE, &yymsp[0].minor.yy0); 2911 spanExpr(&yygotominor.yy118, pParse, TK_VARIABLE, &yymsp[0].minor.yy0);
2880 sqlite3ExprAssignVarNumber(pParse, yygotominor.yy346.pExpr); 2912 sqlite3ExprAssignVarNumber(pParse, yygotominor.yy118.pExpr);
2881 spanSet(&yygotominor.yy346, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0); 2913 spanSet(&yygotominor.yy118, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
2882 } 2914 }
2883 #line 2884 "parse.c" 2915 #line 2916 "parse.c"
2884 break; 2916 break;
2885 case 194: /* expr ::= expr COLLATE ids */ 2917 case 195: /* expr ::= expr COLLATE ids */
2886 #line 783 "parse.y" 2918 #line 782 "parse.y"
2887 { 2919 {
2888 yygotominor.yy346.pExpr = sqlite3ExprSetColl(pParse, yymsp[-2].minor.yy346.pEx pr, &yymsp[0].minor.yy0); 2920 yygotominor.yy118.pExpr = sqlite3ExprSetCollByToken(pParse, yymsp[-2].minor.yy 118.pExpr, &yymsp[0].minor.yy0);
2889 yygotominor.yy346.zStart = yymsp[-2].minor.yy346.zStart; 2921 yygotominor.yy118.zStart = yymsp[-2].minor.yy118.zStart;
2890 yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; 2922 yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
2891 } 2923 }
2892 #line 2893 "parse.c" 2924 #line 2925 "parse.c"
2893 break; 2925 break;
2894 case 195: /* expr ::= CAST LP expr AS typetoken RP */ 2926 case 196: /* expr ::= CAST LP expr AS typetoken RP */
2895 #line 789 "parse.y" 2927 #line 788 "parse.y"
2896 { 2928 {
2897 yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy346. pExpr, 0, &yymsp[-1].minor.yy0); 2929 yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_CAST, yymsp[-3].minor.yy118. pExpr, 0, &yymsp[-1].minor.yy0);
2898 spanSet(&yygotominor.yy346,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0); 2930 spanSet(&yygotominor.yy118,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0);
2899 } 2931 }
2900 #line 2901 "parse.c" 2932 #line 2933 "parse.c"
2901 break; 2933 break;
2902 case 196: /* expr ::= ID LP distinct exprlist RP */ 2934 case 197: /* expr ::= ID LP distinct exprlist RP */
2903 #line 794 "parse.y" 2935 #line 793 "parse.y"
2904 { 2936 {
2905 if( yymsp[-1].minor.yy14 && yymsp[-1].minor.yy14->nExpr>pParse->db->aLimit[SQL ITE_LIMIT_FUNCTION_ARG] ){ 2937 if( yymsp[-1].minor.yy322 && yymsp[-1].minor.yy322->nExpr>pParse->db->aLimit[S QLITE_LIMIT_FUNCTION_ARG] ){
2906 sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].mino r.yy0); 2938 sqlite3ErrorMsg(pParse, "too many arguments on function %T", &yymsp[-4].mino r.yy0);
2907 } 2939 }
2908 yygotominor.yy346.pExpr = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy14, &y ymsp[-4].minor.yy0); 2940 yygotominor.yy118.pExpr = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy322, & yymsp[-4].minor.yy0);
2909 spanSet(&yygotominor.yy346,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0); 2941 spanSet(&yygotominor.yy118,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0);
2910 if( yymsp[-2].minor.yy328 && yygotominor.yy346.pExpr ){ 2942 if( yymsp[-2].minor.yy4 && yygotominor.yy118.pExpr ){
2911 yygotominor.yy346.pExpr->flags |= EP_Distinct; 2943 yygotominor.yy118.pExpr->flags |= EP_Distinct;
2912 } 2944 }
2913 } 2945 }
2914 #line 2915 "parse.c" 2946 #line 2947 "parse.c"
2915 break; 2947 break;
2916 case 197: /* expr ::= ID LP STAR RP */ 2948 case 198: /* expr ::= ID LP STAR RP */
2917 #line 804 "parse.y" 2949 #line 803 "parse.y"
2918 { 2950 {
2919 yygotominor.yy346.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0) ; 2951 yygotominor.yy118.pExpr = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0) ;
2920 spanSet(&yygotominor.yy346,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); 2952 spanSet(&yygotominor.yy118,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
2921 } 2953 }
2922 #line 2923 "parse.c" 2954 #line 2955 "parse.c"
2923 break; 2955 break;
2924 case 198: /* term ::= CTIME_KW */ 2956 case 199: /* term ::= CTIME_KW */
2925 #line 808 "parse.y" 2957 #line 807 "parse.y"
2926 { 2958 {
2927 /* The CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP values are 2959 /* The CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP values are
2928 ** treated as functions that return constants */ 2960 ** treated as functions that return constants */
2929 yygotominor.yy346.pExpr = sqlite3ExprFunction(pParse, 0,&yymsp[0].minor.yy0); 2961 yygotominor.yy118.pExpr = sqlite3ExprFunction(pParse, 0,&yymsp[0].minor.yy0);
2930 if( yygotominor.yy346.pExpr ){ 2962 if( yygotominor.yy118.pExpr ){
2931 yygotominor.yy346.pExpr->op = TK_CONST_FUNC; 2963 yygotominor.yy118.pExpr->op = TK_CONST_FUNC;
2932 } 2964 }
2933 spanSet(&yygotominor.yy346, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0); 2965 spanSet(&yygotominor.yy118, &yymsp[0].minor.yy0, &yymsp[0].minor.yy0);
2934 } 2966 }
2935 #line 2936 "parse.c" 2967 #line 2968 "parse.c"
2936 break; 2968 break;
2937 case 199: /* expr ::= expr AND expr */ 2969 case 200: /* expr ::= expr AND expr */
2938 case 200: /* expr ::= expr OR expr */ yytestcase(yyruleno==200); 2970 case 201: /* expr ::= expr OR expr */ yytestcase(yyruleno==201);
2939 case 201: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==201); 2971 case 202: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==202);
2940 case 202: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==202); 2972 case 203: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==203);
2941 case 203: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(y yruleno==203); 2973 case 204: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(y yruleno==204);
2942 case 204: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==204); 2974 case 205: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==205);
2943 case 205: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==205 ); 2975 case 206: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==206 );
2944 case 206: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==206); 2976 case 207: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==207);
2945 #line 835 "parse.y" 2977 #line 834 "parse.y"
2946 {spanBinaryExpr(&yygotominor.yy346,pParse,yymsp[-1].major,&yymsp[-2].minor.yy346 ,&yymsp[0].minor.yy346);} 2978 {spanBinaryExpr(&yygotominor.yy118,pParse,yymsp[-1].major,&yymsp[-2].minor.yy118 ,&yymsp[0].minor.yy118);}
2947 #line 2948 "parse.c" 2979 #line 2980 "parse.c"
2948 break; 2980 break;
2949 case 207: /* likeop ::= LIKE_KW */ 2981 case 208: /* likeop ::= LIKE_KW */
2950 case 209: /* likeop ::= MATCH */ yytestcase(yyruleno==209); 2982 case 210: /* likeop ::= MATCH */ yytestcase(yyruleno==210);
2983 #line 847 "parse.y"
2984 {yygotominor.yy342.eOperator = yymsp[0].minor.yy0; yygotominor.yy342.not = 0;}
2985 #line 2986 "parse.c"
2986 break;
2987 case 209: /* likeop ::= NOT LIKE_KW */
2988 case 211: /* likeop ::= NOT MATCH */ yytestcase(yyruleno==211);
2951 #line 848 "parse.y" 2989 #line 848 "parse.y"
2952 {yygotominor.yy96.eOperator = yymsp[0].minor.yy0; yygotominor.yy96.not = 0;} 2990 {yygotominor.yy342.eOperator = yymsp[0].minor.yy0; yygotominor.yy342.not = 1;}
2953 #line 2954 "parse.c" 2991 #line 2992 "parse.c"
2954 break; 2992 break;
2955 case 208: /* likeop ::= NOT LIKE_KW */ 2993 case 212: /* expr ::= expr likeop expr */
2956 case 210: /* likeop ::= NOT MATCH */ yytestcase(yyruleno==210); 2994 #line 851 "parse.y"
2957 #line 849 "parse.y"
2958 {yygotominor.yy96.eOperator = yymsp[0].minor.yy0; yygotominor.yy96.not = 1;}
2959 #line 2960 "parse.c"
2960 break;
2961 case 212: /* escape ::= */
2962 #line 855 "parse.y"
2963 {memset(&yygotominor.yy346,0,sizeof(yygotominor.yy346));}
2964 #line 2965 "parse.c"
2965 break;
2966 case 213: /* expr ::= expr likeop expr escape */
2967 #line 856 "parse.y"
2968 { 2995 {
2969 ExprList *pList; 2996 ExprList *pList;
2970 pList = sqlite3ExprListAppend(pParse,0, yymsp[-1].minor.yy346.pExpr); 2997 pList = sqlite3ExprListAppend(pParse,0, yymsp[0].minor.yy118.pExpr);
2971 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-3].minor.yy346.pExpr); 2998 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-2].minor.yy118.pExpr);
2972 if( yymsp[0].minor.yy346.pExpr ){ 2999 yygotominor.yy118.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-1].minor. yy342.eOperator);
2973 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy346.pExpr); 3000 if( yymsp[-1].minor.yy342.not ) yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy118.pExpr, 0, 0);
2974 } 3001 yygotominor.yy118.zStart = yymsp[-2].minor.yy118.zStart;
2975 yygotominor.yy346.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-2].minor. yy96.eOperator); 3002 yygotominor.yy118.zEnd = yymsp[0].minor.yy118.zEnd;
2976 if( yymsp[-2].minor.yy96.not ) yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy346.pExpr, 0, 0); 3003 if( yygotominor.yy118.pExpr ) yygotominor.yy118.pExpr->flags |= EP_InfixFunc;
2977 yygotominor.yy346.zStart = yymsp[-3].minor.yy346.zStart; 3004 }
2978 yygotominor.yy346.zEnd = yymsp[-1].minor.yy346.zEnd; 3005 #line 3006 "parse.c"
2979 if( yygotominor.yy346.pExpr ) yygotominor.yy346.pExpr->flags |= EP_InfixFunc; 3006 break;
2980 } 3007 case 213: /* expr ::= expr likeop expr ESCAPE expr */
2981 #line 2982 "parse.c" 3008 #line 861 "parse.y"
3009 {
3010 ExprList *pList;
3011 pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy118.pExpr);
3012 pList = sqlite3ExprListAppend(pParse,pList, yymsp[-4].minor.yy118.pExpr);
3013 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy118.pExpr);
3014 yygotominor.yy118.pExpr = sqlite3ExprFunction(pParse, pList, &yymsp[-3].minor. yy342.eOperator);
3015 if( yymsp[-3].minor.yy342.not ) yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_NOT, yygotominor.yy118.pExpr, 0, 0);
3016 yygotominor.yy118.zStart = yymsp[-4].minor.yy118.zStart;
3017 yygotominor.yy118.zEnd = yymsp[0].minor.yy118.zEnd;
3018 if( yygotominor.yy118.pExpr ) yygotominor.yy118.pExpr->flags |= EP_InfixFunc;
3019 }
3020 #line 3021 "parse.c"
2982 break; 3021 break;
2983 case 214: /* expr ::= expr ISNULL|NOTNULL */ 3022 case 214: /* expr ::= expr ISNULL|NOTNULL */
2984 #line 886 "parse.y" 3023 #line 889 "parse.y"
2985 {spanUnaryPostfix(&yygotominor.yy346,pParse,yymsp[0].major,&yymsp[-1].minor.yy34 6,&yymsp[0].minor.yy0);} 3024 {spanUnaryPostfix(&yygotominor.yy118,pParse,yymsp[0].major,&yymsp[-1].minor.yy11 8,&yymsp[0].minor.yy0);}
2986 #line 2987 "parse.c" 3025 #line 3026 "parse.c"
2987 break; 3026 break;
2988 case 215: /* expr ::= expr IS NULL */ 3027 case 215: /* expr ::= expr NOT NULL */
2989 #line 887 "parse.y"
2990 {spanUnaryPostfix(&yygotominor.yy346,pParse,TK_ISNULL,&yymsp[-2].minor.yy346,&yy msp[0].minor.yy0);}
2991 #line 2992 "parse.c"
2992 break;
2993 case 216: /* expr ::= expr NOT NULL */
2994 #line 888 "parse.y"
2995 {spanUnaryPostfix(&yygotominor.yy346,pParse,TK_NOTNULL,&yymsp[-2].minor.yy346,&y ymsp[0].minor.yy0);}
2996 #line 2997 "parse.c"
2997 break;
2998 case 217: /* expr ::= expr IS NOT NULL */
2999 #line 890 "parse.y" 3028 #line 890 "parse.y"
3000 {spanUnaryPostfix(&yygotominor.yy346,pParse,TK_NOTNULL,&yymsp[-3].minor.yy346,&y ymsp[0].minor.yy0);} 3029 {spanUnaryPostfix(&yygotominor.yy118,pParse,TK_NOTNULL,&yymsp[-2].minor.yy118,&y ymsp[0].minor.yy0);}
3001 #line 3002 "parse.c" 3030 #line 3031 "parse.c"
3031 break;
3032 case 216: /* expr ::= expr IS expr */
3033 #line 911 "parse.y"
3034 {
3035 spanBinaryExpr(&yygotominor.yy118,pParse,TK_IS,&yymsp[-2].minor.yy118,&yymsp[0 ].minor.yy118);
3036 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy118.pExpr, yygotominor.yy118.pExp r, TK_ISNULL);
3037 }
3038 #line 3039 "parse.c"
3039 break;
3040 case 217: /* expr ::= expr IS NOT expr */
3041 #line 915 "parse.y"
3042 {
3043 spanBinaryExpr(&yygotominor.yy118,pParse,TK_ISNOT,&yymsp[-3].minor.yy118,&yyms p[0].minor.yy118);
3044 binaryToUnaryIfNull(pParse, yymsp[0].minor.yy118.pExpr, yygotominor.yy118.pExp r, TK_NOTNULL);
3045 }
3046 #line 3047 "parse.c"
3002 break; 3047 break;
3003 case 218: /* expr ::= NOT expr */ 3048 case 218: /* expr ::= NOT expr */
3004 case 219: /* expr ::= BITNOT expr */ yytestcase(yyruleno==219); 3049 case 219: /* expr ::= BITNOT expr */ yytestcase(yyruleno==219);
3005 #line 910 "parse.y" 3050 #line 938 "parse.y"
3006 {spanUnaryPrefix(&yygotominor.yy346,pParse,yymsp[-1].major,&yymsp[0].minor.yy346 ,&yymsp[-1].minor.yy0);} 3051 {spanUnaryPrefix(&yygotominor.yy118,pParse,yymsp[-1].major,&yymsp[0].minor.yy118 ,&yymsp[-1].minor.yy0);}
3007 #line 3008 "parse.c" 3052 #line 3053 "parse.c"
3008 break; 3053 break;
3009 case 220: /* expr ::= MINUS expr */ 3054 case 220: /* expr ::= MINUS expr */
3010 #line 913 "parse.y" 3055 #line 941 "parse.y"
3011 {spanUnaryPrefix(&yygotominor.yy346,pParse,TK_UMINUS,&yymsp[0].minor.yy346,&yyms p[-1].minor.yy0);} 3056 {spanUnaryPrefix(&yygotominor.yy118,pParse,TK_UMINUS,&yymsp[0].minor.yy118,&yyms p[-1].minor.yy0);}
3012 #line 3013 "parse.c" 3057 #line 3058 "parse.c"
3013 break; 3058 break;
3014 case 221: /* expr ::= PLUS expr */ 3059 case 221: /* expr ::= PLUS expr */
3015 #line 915 "parse.y" 3060 #line 943 "parse.y"
3016 {spanUnaryPrefix(&yygotominor.yy346,pParse,TK_UPLUS,&yymsp[0].minor.yy346,&yymsp [-1].minor.yy0);} 3061 {spanUnaryPrefix(&yygotominor.yy118,pParse,TK_UPLUS,&yymsp[0].minor.yy118,&yymsp [-1].minor.yy0);}
3017 #line 3018 "parse.c" 3062 #line 3063 "parse.c"
3018 break; 3063 break;
3019 case 224: /* expr ::= expr between_op expr AND expr */ 3064 case 224: /* expr ::= expr between_op expr AND expr */
3020 #line 920 "parse.y" 3065 #line 948 "parse.y"
3021 { 3066 {
3022 ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy346.pExpr) ; 3067 ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy118.pExpr) ;
3023 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy346.pExpr); 3068 pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy118.pExpr);
3024 yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy3 46.pExpr, 0, 0); 3069 yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_BETWEEN, yymsp[-4].minor.yy1 18.pExpr, 0, 0);
3025 if( yygotominor.yy346.pExpr ){ 3070 if( yygotominor.yy118.pExpr ){
3026 yygotominor.yy346.pExpr->x.pList = pList; 3071 yygotominor.yy118.pExpr->x.pList = pList;
3027 }else{ 3072 }else{
3028 sqlite3ExprListDelete(pParse->db, pList); 3073 sqlite3ExprListDelete(pParse->db, pList);
3029 } 3074 }
3030 if( yymsp[-3].minor.yy328 ) yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_ NOT, yygotominor.yy346.pExpr, 0, 0); 3075 if( yymsp[-3].minor.yy4 ) yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_NO T, yygotominor.yy118.pExpr, 0, 0);
3031 yygotominor.yy346.zStart = yymsp[-4].minor.yy346.zStart; 3076 yygotominor.yy118.zStart = yymsp[-4].minor.yy118.zStart;
3032 yygotominor.yy346.zEnd = yymsp[0].minor.yy346.zEnd; 3077 yygotominor.yy118.zEnd = yymsp[0].minor.yy118.zEnd;
3033 } 3078 }
3034 #line 3035 "parse.c" 3079 #line 3080 "parse.c"
3035 break; 3080 break;
3036 case 227: /* expr ::= expr in_op LP exprlist RP */ 3081 case 227: /* expr ::= expr in_op LP exprlist RP */
3037 #line 937 "parse.y" 3082 #line 965 "parse.y"
3038 { 3083 {
3039 yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy346. pExpr, 0, 0); 3084 if( yymsp[-1].minor.yy322==0 ){
3040 if( yygotominor.yy346.pExpr ){ 3085 /* Expressions of the form
3041 yygotominor.yy346.pExpr->x.pList = yymsp[-1].minor.yy14; 3086 **
3042 sqlite3ExprSetHeight(pParse, yygotominor.yy346.pExpr); 3087 ** expr1 IN ()
3088 ** expr1 NOT IN ()
3089 **
3090 ** simplify to constants 0 (false) and 1 (true), respectively,
3091 ** regardless of the value of expr1.
3092 */
3093 yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_INTEGER, 0, 0, &sqlite3I ntTokens[yymsp[-3].minor.yy4]);
3094 sqlite3ExprDelete(pParse->db, yymsp[-4].minor.yy118.pExpr);
3043 }else{ 3095 }else{
3044 sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy14); 3096 yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy11 8.pExpr, 0, 0);
3097 if( yygotominor.yy118.pExpr ){
3098 yygotominor.yy118.pExpr->x.pList = yymsp[-1].minor.yy322;
3099 sqlite3ExprSetHeight(pParse, yygotominor.yy118.pExpr);
3100 }else{
3101 sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy322);
3102 }
3103 if( yymsp[-3].minor.yy4 ) yygotominor.yy118.pExpr = sqlite3PExpr(pParse, T K_NOT, yygotominor.yy118.pExpr, 0, 0);
3045 } 3104 }
3046 if( yymsp[-3].minor.yy328 ) yygotominor.yy346.pExpr = sqlite3PExpr(pParse, T K_NOT, yygotominor.yy346.pExpr, 0, 0); 3105 yygotominor.yy118.zStart = yymsp[-4].minor.yy118.zStart;
3047 yygotominor.yy346.zStart = yymsp[-4].minor.yy346.zStart; 3106 yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
3048 yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; 3107 }
3049 } 3108 #line 3109 "parse.c"
3050 #line 3051 "parse.c"
3051 break; 3109 break;
3052 case 228: /* expr ::= LP select RP */ 3110 case 228: /* expr ::= LP select RP */
3053 #line 949 "parse.y" 3111 #line 990 "parse.y"
3054 { 3112 {
3055 yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0); 3113 yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_SELECT, 0, 0, 0);
3056 if( yygotominor.yy346.pExpr ){ 3114 if( yygotominor.yy118.pExpr ){
3057 yygotominor.yy346.pExpr->x.pSelect = yymsp[-1].minor.yy3; 3115 yygotominor.yy118.pExpr->x.pSelect = yymsp[-1].minor.yy387;
3058 ExprSetProperty(yygotominor.yy346.pExpr, EP_xIsSelect); 3116 ExprSetProperty(yygotominor.yy118.pExpr, EP_xIsSelect);
3059 sqlite3ExprSetHeight(pParse, yygotominor.yy346.pExpr); 3117 sqlite3ExprSetHeight(pParse, yygotominor.yy118.pExpr);
3060 }else{ 3118 }else{
3061 sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy3); 3119 sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy387);
3062 } 3120 }
3063 yygotominor.yy346.zStart = yymsp[-2].minor.yy0.z; 3121 yygotominor.yy118.zStart = yymsp[-2].minor.yy0.z;
3064 yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; 3122 yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
3065 } 3123 }
3066 #line 3067 "parse.c" 3124 #line 3125 "parse.c"
3067 break; 3125 break;
3068 case 229: /* expr ::= expr in_op LP select RP */ 3126 case 229: /* expr ::= expr in_op LP select RP */
3069 #line 961 "parse.y" 3127 #line 1002 "parse.y"
3070 { 3128 {
3071 yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy346. pExpr, 0, 0); 3129 yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy118. pExpr, 0, 0);
3072 if( yygotominor.yy346.pExpr ){ 3130 if( yygotominor.yy118.pExpr ){
3073 yygotominor.yy346.pExpr->x.pSelect = yymsp[-1].minor.yy3; 3131 yygotominor.yy118.pExpr->x.pSelect = yymsp[-1].minor.yy387;
3074 ExprSetProperty(yygotominor.yy346.pExpr, EP_xIsSelect); 3132 ExprSetProperty(yygotominor.yy118.pExpr, EP_xIsSelect);
3075 sqlite3ExprSetHeight(pParse, yygotominor.yy346.pExpr); 3133 sqlite3ExprSetHeight(pParse, yygotominor.yy118.pExpr);
3076 }else{ 3134 }else{
3077 sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy3); 3135 sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy387);
3078 } 3136 }
3079 if( yymsp[-3].minor.yy328 ) yygotominor.yy346.pExpr = sqlite3PExpr(pParse, T K_NOT, yygotominor.yy346.pExpr, 0, 0); 3137 if( yymsp[-3].minor.yy4 ) yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_ NOT, yygotominor.yy118.pExpr, 0, 0);
3080 yygotominor.yy346.zStart = yymsp[-4].minor.yy346.zStart; 3138 yygotominor.yy118.zStart = yymsp[-4].minor.yy118.zStart;
3081 yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; 3139 yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
3082 } 3140 }
3083 #line 3084 "parse.c" 3141 #line 3142 "parse.c"
3084 break; 3142 break;
3085 case 230: /* expr ::= expr in_op nm dbnm */ 3143 case 230: /* expr ::= expr in_op nm dbnm */
3086 #line 974 "parse.y" 3144 #line 1015 "parse.y"
3087 { 3145 {
3088 SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-1].minor.yy0,&yym sp[0].minor.yy0); 3146 SrcList *pSrc = sqlite3SrcListAppend(pParse->db, 0,&yymsp[-1].minor.yy0,&yym sp[0].minor.yy0);
3089 yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-3].minor.yy346. pExpr, 0, 0); 3147 yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_IN, yymsp[-3].minor.yy118. pExpr, 0, 0);
3090 if( yygotominor.yy346.pExpr ){ 3148 if( yygotominor.yy118.pExpr ){
3091 yygotominor.yy346.pExpr->x.pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0 ,0,0,0,0); 3149 yygotominor.yy118.pExpr->x.pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0 ,0,0,0,0);
3092 ExprSetProperty(yygotominor.yy346.pExpr, EP_xIsSelect); 3150 ExprSetProperty(yygotominor.yy118.pExpr, EP_xIsSelect);
3093 sqlite3ExprSetHeight(pParse, yygotominor.yy346.pExpr); 3151 sqlite3ExprSetHeight(pParse, yygotominor.yy118.pExpr);
3094 }else{ 3152 }else{
3095 sqlite3SrcListDelete(pParse->db, pSrc); 3153 sqlite3SrcListDelete(pParse->db, pSrc);
3096 } 3154 }
3097 if( yymsp[-2].minor.yy328 ) yygotominor.yy346.pExpr = sqlite3PExpr(pParse, T K_NOT, yygotominor.yy346.pExpr, 0, 0); 3155 if( yymsp[-2].minor.yy4 ) yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_ NOT, yygotominor.yy118.pExpr, 0, 0);
3098 yygotominor.yy346.zStart = yymsp[-3].minor.yy346.zStart; 3156 yygotominor.yy118.zStart = yymsp[-3].minor.yy118.zStart;
3099 yygotominor.yy346.zEnd = yymsp[0].minor.yy0.z ? &yymsp[0].minor.yy0.z[yymsp[ 0].minor.yy0.n] : &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n]; 3157 yygotominor.yy118.zEnd = yymsp[0].minor.yy0.z ? &yymsp[0].minor.yy0.z[yymsp[ 0].minor.yy0.n] : &yymsp[-1].minor.yy0.z[yymsp[-1].minor.yy0.n];
3100 } 3158 }
3101 #line 3102 "parse.c" 3159 #line 3160 "parse.c"
3102 break; 3160 break;
3103 case 231: /* expr ::= EXISTS LP select RP */ 3161 case 231: /* expr ::= EXISTS LP select RP */
3104 #line 988 "parse.y" 3162 #line 1029 "parse.y"
3105 { 3163 {
3106 Expr *p = yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0) ; 3164 Expr *p = yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_EXISTS, 0, 0, 0) ;
3107 if( p ){ 3165 if( p ){
3108 p->x.pSelect = yymsp[-1].minor.yy3; 3166 p->x.pSelect = yymsp[-1].minor.yy387;
3109 ExprSetProperty(p, EP_xIsSelect); 3167 ExprSetProperty(p, EP_xIsSelect);
3110 sqlite3ExprSetHeight(pParse, p); 3168 sqlite3ExprSetHeight(pParse, p);
3111 }else{ 3169 }else{
3112 sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy3); 3170 sqlite3SelectDelete(pParse->db, yymsp[-1].minor.yy387);
3113 } 3171 }
3114 yygotominor.yy346.zStart = yymsp[-3].minor.yy0.z; 3172 yygotominor.yy118.zStart = yymsp[-3].minor.yy0.z;
3115 yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; 3173 yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
3116 } 3174 }
3117 #line 3118 "parse.c" 3175 #line 3176 "parse.c"
3118 break; 3176 break;
3119 case 232: /* expr ::= CASE case_operand case_exprlist case_else END */ 3177 case 232: /* expr ::= CASE case_operand case_exprlist case_else END */
3120 #line 1003 "parse.y" 3178 #line 1044 "parse.y"
3121 { 3179 {
3122 yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy132, yymsp[-1].minor.yy132, 0); 3180 yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy314, yymsp[-1].minor.yy314, 0);
3123 if( yygotominor.yy346.pExpr ){ 3181 if( yygotominor.yy118.pExpr ){
3124 yygotominor.yy346.pExpr->x.pList = yymsp[-2].minor.yy14; 3182 yygotominor.yy118.pExpr->x.pList = yymsp[-2].minor.yy322;
3125 sqlite3ExprSetHeight(pParse, yygotominor.yy346.pExpr); 3183 sqlite3ExprSetHeight(pParse, yygotominor.yy118.pExpr);
3126 }else{ 3184 }else{
3127 sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy14); 3185 sqlite3ExprListDelete(pParse->db, yymsp[-2].minor.yy322);
3128 } 3186 }
3129 yygotominor.yy346.zStart = yymsp[-4].minor.yy0.z; 3187 yygotominor.yy118.zStart = yymsp[-4].minor.yy0.z;
3130 yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; 3188 yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
3131 } 3189 }
3132 #line 3133 "parse.c" 3190 #line 3191 "parse.c"
3133 break; 3191 break;
3134 case 233: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ 3192 case 233: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */
3135 #line 1016 "parse.y" 3193 #line 1057 "parse.y"
3136 { 3194 {
3137 yygotominor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, yymsp[-2 ].minor.yy346.pExpr); 3195 yygotominor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[ -2].minor.yy118.pExpr);
3138 yygotominor.yy14 = sqlite3ExprListAppend(pParse,yygotominor.yy14, yymsp[0].min or.yy346.pExpr); 3196 yygotominor.yy322 = sqlite3ExprListAppend(pParse,yygotominor.yy322, yymsp[0].m inor.yy118.pExpr);
3139 } 3197 }
3140 #line 3141 "parse.c" 3198 #line 3199 "parse.c"
3141 break; 3199 break;
3142 case 234: /* case_exprlist ::= WHEN expr THEN expr */ 3200 case 234: /* case_exprlist ::= WHEN expr THEN expr */
3143 #line 1020 "parse.y" 3201 #line 1061 "parse.y"
3144 { 3202 {
3145 yygotominor.yy14 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy346.pExpr ); 3203 yygotominor.yy322 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy118.pExp r);
3146 yygotominor.yy14 = sqlite3ExprListAppend(pParse,yygotominor.yy14, yymsp[0].min or.yy346.pExpr); 3204 yygotominor.yy322 = sqlite3ExprListAppend(pParse,yygotominor.yy322, yymsp[0].m inor.yy118.pExpr);
3147 } 3205 }
3148 #line 3149 "parse.c" 3206 #line 3207 "parse.c"
3149 break; 3207 break;
3150 case 243: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm L P idxlist RP */ 3208 case 243: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm L P idxlist RP */
3151 #line 1049 "parse.y" 3209 #line 1090 "parse.y"
3152 { 3210 {
3153 sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy0, &yymsp[-5].minor.yy0, 3211 sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy0, &yymsp[-5].minor.yy0,
3154 sqlite3SrcListAppend(pParse->db,0,&yymsp[-3].minor.yy0,0), yymsp[-1].minor.yy14, yymsp[-9].minor.yy328, 3212 sqlite3SrcListAppend(pParse->db,0,&yymsp[-3].minor.yy0,0), yymsp[-1].minor.yy322, yymsp[-9].minor.yy4,
3155 &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy328); 3213 &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy4);
3156 } 3214 }
3157 #line 3158 "parse.c" 3215 #line 3216 "parse.c"
3158 break; 3216 break;
3159 case 244: /* uniqueflag ::= UNIQUE */ 3217 case 244: /* uniqueflag ::= UNIQUE */
3160 case 298: /* raisetype ::= ABORT */ yytestcase(yyruleno==298); 3218 case 298: /* raisetype ::= ABORT */ yytestcase(yyruleno==298);
3161 #line 1056 "parse.y" 3219 #line 1097 "parse.y"
3162 {yygotominor.yy328 = OE_Abort;} 3220 {yygotominor.yy4 = OE_Abort;}
3163 #line 3164 "parse.c" 3221 #line 3222 "parse.c"
3164 break; 3222 break;
3165 case 245: /* uniqueflag ::= */ 3223 case 245: /* uniqueflag ::= */
3166 #line 1057 "parse.y" 3224 #line 1098 "parse.y"
3167 {yygotominor.yy328 = OE_None;} 3225 {yygotominor.yy4 = OE_None;}
3168 #line 3169 "parse.c" 3226 #line 3227 "parse.c"
3169 break; 3227 break;
3170 case 248: /* idxlist ::= idxlist COMMA nm collate sortorder */ 3228 case 248: /* idxlist ::= idxlist COMMA nm collate sortorder */
3171 #line 1066 "parse.y" 3229 #line 1107 "parse.y"
3172 { 3230 {
3173 Expr *p = 0; 3231 Expr *p = 0;
3174 if( yymsp[-1].minor.yy0.n>0 ){ 3232 if( yymsp[-1].minor.yy0.n>0 ){
3175 p = sqlite3Expr(pParse->db, TK_COLUMN, 0); 3233 p = sqlite3Expr(pParse->db, TK_COLUMN, 0);
3176 sqlite3ExprSetColl(pParse, p, &yymsp[-1].minor.yy0); 3234 sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0);
3177 } 3235 }
3178 yygotominor.yy14 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy14, p); 3236 yygotominor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, p);
3179 sqlite3ExprListSetName(pParse,yygotominor.yy14,&yymsp[-2].minor.yy0,1); 3237 sqlite3ExprListSetName(pParse,yygotominor.yy322,&yymsp[-2].minor.yy0,1);
3180 sqlite3ExprListCheckLength(pParse, yygotominor.yy14, "index"); 3238 sqlite3ExprListCheckLength(pParse, yygotominor.yy322, "index");
3181 if( yygotominor.yy14 ) yygotominor.yy14->a[yygotominor.yy14->nExpr-1].sortOrde r = (u8)yymsp[0].minor.yy328; 3239 if( yygotominor.yy322 ) yygotominor.yy322->a[yygotominor.yy322->nExpr-1].sortO rder = (u8)yymsp[0].minor.yy4;
3182 } 3240 }
3183 #line 3184 "parse.c" 3241 #line 3242 "parse.c"
3184 break; 3242 break;
3185 case 249: /* idxlist ::= nm collate sortorder */ 3243 case 249: /* idxlist ::= nm collate sortorder */
3186 #line 1077 "parse.y" 3244 #line 1118 "parse.y"
3187 { 3245 {
3188 Expr *p = 0; 3246 Expr *p = 0;
3189 if( yymsp[-1].minor.yy0.n>0 ){ 3247 if( yymsp[-1].minor.yy0.n>0 ){
3190 p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0); 3248 p = sqlite3PExpr(pParse, TK_COLUMN, 0, 0, 0);
3191 sqlite3ExprSetColl(pParse, p, &yymsp[-1].minor.yy0); 3249 sqlite3ExprSetCollByToken(pParse, p, &yymsp[-1].minor.yy0);
3192 } 3250 }
3193 yygotominor.yy14 = sqlite3ExprListAppend(pParse,0, p); 3251 yygotominor.yy322 = sqlite3ExprListAppend(pParse,0, p);
3194 sqlite3ExprListSetName(pParse, yygotominor.yy14, &yymsp[-2].minor.yy0, 1); 3252 sqlite3ExprListSetName(pParse, yygotominor.yy322, &yymsp[-2].minor.yy0, 1);
3195 sqlite3ExprListCheckLength(pParse, yygotominor.yy14, "index"); 3253 sqlite3ExprListCheckLength(pParse, yygotominor.yy322, "index");
3196 if( yygotominor.yy14 ) yygotominor.yy14->a[yygotominor.yy14->nExpr-1].sortOrde r = (u8)yymsp[0].minor.yy328; 3254 if( yygotominor.yy322 ) yygotominor.yy322->a[yygotominor.yy322->nExpr-1].sortO rder = (u8)yymsp[0].minor.yy4;
3197 } 3255 }
3198 #line 3199 "parse.c" 3256 #line 3257 "parse.c"
3199 break; 3257 break;
3200 case 250: /* collate ::= */ 3258 case 250: /* collate ::= */
3201 #line 1090 "parse.y" 3259 #line 1131 "parse.y"
3202 {yygotominor.yy0.z = 0; yygotominor.yy0.n = 0;} 3260 {yygotominor.yy0.z = 0; yygotominor.yy0.n = 0;}
3203 #line 3204 "parse.c" 3261 #line 3262 "parse.c"
3204 break; 3262 break;
3205 case 252: /* cmd ::= DROP INDEX ifexists fullname */ 3263 case 252: /* cmd ::= DROP INDEX ifexists fullname */
3206 #line 1096 "parse.y" 3264 #line 1137 "parse.y"
3207 {sqlite3DropIndex(pParse, yymsp[0].minor.yy65, yymsp[-1].minor.yy328);} 3265 {sqlite3DropIndex(pParse, yymsp[0].minor.yy259, yymsp[-1].minor.yy4);}
3208 #line 3209 "parse.c" 3266 #line 3267 "parse.c"
3209 break; 3267 break;
3210 case 253: /* cmd ::= VACUUM */ 3268 case 253: /* cmd ::= VACUUM */
3211 case 254: /* cmd ::= VACUUM nm */ yytestcase(yyruleno==254); 3269 case 254: /* cmd ::= VACUUM nm */ yytestcase(yyruleno==254);
3212 #line 1102 "parse.y" 3270 #line 1143 "parse.y"
3213 {sqlite3Vacuum(pParse);} 3271 {sqlite3Vacuum(pParse);}
3214 #line 3215 "parse.c" 3272 #line 3273 "parse.c"
3215 break; 3273 break;
3216 case 255: /* cmd ::= PRAGMA nm dbnm */ 3274 case 255: /* cmd ::= PRAGMA nm dbnm */
3217 #line 1110 "parse.y" 3275 #line 1151 "parse.y"
3218 {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);} 3276 {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);}
3219 #line 3220 "parse.c" 3277 #line 3278 "parse.c"
3220 break; 3278 break;
3221 case 256: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ 3279 case 256: /* cmd ::= PRAGMA nm dbnm EQ nmnum */
3222 #line 1111 "parse.y" 3280 #line 1152 "parse.y"
3223 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor. yy0,0);} 3281 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor. yy0,0);}
3224 #line 3225 "parse.c" 3282 #line 3283 "parse.c"
3225 break; 3283 break;
3226 case 257: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ 3284 case 257: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */
3227 #line 1112 "parse.y" 3285 #line 1153 "parse.y"
3228 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor .yy0,0);} 3286 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor .yy0,0);}
3229 #line 3230 "parse.c" 3287 #line 3288 "parse.c"
3230 break; 3288 break;
3231 case 258: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ 3289 case 258: /* cmd ::= PRAGMA nm dbnm EQ minus_num */
3232 #line 1114 "parse.y" 3290 #line 1155 "parse.y"
3233 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor. yy0,1);} 3291 {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor. yy0,1);}
3234 #line 3235 "parse.c" 3292 #line 3293 "parse.c"
3235 break; 3293 break;
3236 case 259: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ 3294 case 259: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */
3237 #line 1116 "parse.y" 3295 #line 1157 "parse.y"
3238 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor .yy0,1);} 3296 {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor .yy0,1);}
3239 #line 3240 "parse.c" 3297 #line 3298 "parse.c"
3240 break; 3298 break;
3241 case 270: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ 3299 case 270: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */
3242 #line 1134 "parse.y" 3300 #line 1175 "parse.y"
3243 { 3301 {
3244 Token all; 3302 Token all;
3245 all.z = yymsp[-3].minor.yy0.z; 3303 all.z = yymsp[-3].minor.yy0.z;
3246 all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.y y0.n; 3304 all.n = (int)(yymsp[0].minor.yy0.z - yymsp[-3].minor.yy0.z) + yymsp[0].minor.y y0.n;
3247 sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy473, &all); 3305 sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy203, &all);
3248 } 3306 }
3249 #line 3250 "parse.c" 3307 #line 3308 "parse.c"
3250 break; 3308 break;
3251 case 271: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_tim e trigger_event ON fullname foreach_clause when_clause */ 3309 case 271: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_tim e trigger_event ON fullname foreach_clause when_clause */
3252 #line 1143 "parse.y" 3310 #line 1184 "parse.y"
3253 { 3311 {
3254 sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[ -5].minor.yy328, yymsp[-4].minor.yy378.a, yymsp[-4].minor.yy378.b, yymsp[-2].min or.yy65, yymsp[0].minor.yy132, yymsp[-10].minor.yy328, yymsp[-8].minor.yy328); 3312 sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[ -5].minor.yy4, yymsp[-4].minor.yy90.a, yymsp[-4].minor.yy90.b, yymsp[-2].minor.y y259, yymsp[0].minor.yy314, yymsp[-10].minor.yy4, yymsp[-8].minor.yy4);
3255 yygotominor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].mino r.yy0); 3313 yygotominor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].mino r.yy0);
3256 } 3314 }
3257 #line 3258 "parse.c" 3315 #line 3316 "parse.c"
3258 break; 3316 break;
3259 case 272: /* trigger_time ::= BEFORE */ 3317 case 272: /* trigger_time ::= BEFORE */
3260 case 275: /* trigger_time ::= */ yytestcase(yyruleno==275); 3318 case 275: /* trigger_time ::= */ yytestcase(yyruleno==275);
3261 #line 1149 "parse.y" 3319 #line 1190 "parse.y"
3262 { yygotominor.yy328 = TK_BEFORE; } 3320 { yygotominor.yy4 = TK_BEFORE; }
3263 #line 3264 "parse.c" 3321 #line 3322 "parse.c"
3264 break; 3322 break;
3265 case 273: /* trigger_time ::= AFTER */ 3323 case 273: /* trigger_time ::= AFTER */
3266 #line 1150 "parse.y" 3324 #line 1191 "parse.y"
3267 { yygotominor.yy328 = TK_AFTER; } 3325 { yygotominor.yy4 = TK_AFTER; }
3268 #line 3269 "parse.c" 3326 #line 3327 "parse.c"
3269 break; 3327 break;
3270 case 274: /* trigger_time ::= INSTEAD OF */ 3328 case 274: /* trigger_time ::= INSTEAD OF */
3271 #line 1151 "parse.y" 3329 #line 1192 "parse.y"
3272 { yygotominor.yy328 = TK_INSTEAD;} 3330 { yygotominor.yy4 = TK_INSTEAD;}
3273 #line 3274 "parse.c" 3331 #line 3332 "parse.c"
3274 break; 3332 break;
3275 case 276: /* trigger_event ::= DELETE|INSERT */ 3333 case 276: /* trigger_event ::= DELETE|INSERT */
3276 case 277: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==277); 3334 case 277: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==277);
3277 #line 1156 "parse.y" 3335 #line 1197 "parse.y"
3278 {yygotominor.yy378.a = yymsp[0].major; yygotominor.yy378.b = 0;} 3336 {yygotominor.yy90.a = yymsp[0].major; yygotominor.yy90.b = 0;}
3279 #line 3280 "parse.c" 3337 #line 3338 "parse.c"
3280 break; 3338 break;
3281 case 278: /* trigger_event ::= UPDATE OF inscollist */ 3339 case 278: /* trigger_event ::= UPDATE OF inscollist */
3282 #line 1158 "parse.y" 3340 #line 1199 "parse.y"
3283 {yygotominor.yy378.a = TK_UPDATE; yygotominor.yy378.b = yymsp[0].minor.yy408;} 3341 {yygotominor.yy90.a = TK_UPDATE; yygotominor.yy90.b = yymsp[0].minor.yy384;}
3284 #line 3285 "parse.c" 3342 #line 3343 "parse.c"
3285 break; 3343 break;
3286 case 281: /* when_clause ::= */ 3344 case 281: /* when_clause ::= */
3287 case 303: /* key_opt ::= */ yytestcase(yyruleno==303); 3345 case 303: /* key_opt ::= */ yytestcase(yyruleno==303);
3288 #line 1165 "parse.y" 3346 #line 1206 "parse.y"
3289 { yygotominor.yy132 = 0; } 3347 { yygotominor.yy314 = 0; }
3290 #line 3291 "parse.c" 3348 #line 3349 "parse.c"
3291 break; 3349 break;
3292 case 282: /* when_clause ::= WHEN expr */ 3350 case 282: /* when_clause ::= WHEN expr */
3293 case 304: /* key_opt ::= KEY expr */ yytestcase(yyruleno==304); 3351 case 304: /* key_opt ::= KEY expr */ yytestcase(yyruleno==304);
3294 #line 1166 "parse.y" 3352 #line 1207 "parse.y"
3295 { yygotominor.yy132 = yymsp[0].minor.yy346.pExpr; } 3353 { yygotominor.yy314 = yymsp[0].minor.yy118.pExpr; }
3296 #line 3297 "parse.c" 3354 #line 3355 "parse.c"
3297 break; 3355 break;
3298 case 283: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ 3356 case 283: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */
3299 #line 1170 "parse.y" 3357 #line 1211 "parse.y"
3300 { 3358 {
3301 assert( yymsp[-2].minor.yy473!=0 ); 3359 assert( yymsp[-2].minor.yy203!=0 );
3302 yymsp[-2].minor.yy473->pLast->pNext = yymsp[-1].minor.yy473; 3360 yymsp[-2].minor.yy203->pLast->pNext = yymsp[-1].minor.yy203;
3303 yymsp[-2].minor.yy473->pLast = yymsp[-1].minor.yy473; 3361 yymsp[-2].minor.yy203->pLast = yymsp[-1].minor.yy203;
3304 yygotominor.yy473 = yymsp[-2].minor.yy473; 3362 yygotominor.yy203 = yymsp[-2].minor.yy203;
3305 } 3363 }
3306 #line 3307 "parse.c" 3364 #line 3365 "parse.c"
3307 break; 3365 break;
3308 case 284: /* trigger_cmd_list ::= trigger_cmd SEMI */ 3366 case 284: /* trigger_cmd_list ::= trigger_cmd SEMI */
3309 #line 1176 "parse.y" 3367 #line 1217 "parse.y"
3310 { 3368 {
3311 assert( yymsp[-1].minor.yy473!=0 ); 3369 assert( yymsp[-1].minor.yy203!=0 );
3312 yymsp[-1].minor.yy473->pLast = yymsp[-1].minor.yy473; 3370 yymsp[-1].minor.yy203->pLast = yymsp[-1].minor.yy203;
3313 yygotominor.yy473 = yymsp[-1].minor.yy473; 3371 yygotominor.yy203 = yymsp[-1].minor.yy203;
3314 } 3372 }
3315 #line 3316 "parse.c" 3373 #line 3374 "parse.c"
3316 break; 3374 break;
3317 case 286: /* trnm ::= nm DOT nm */ 3375 case 286: /* trnm ::= nm DOT nm */
3318 #line 1188 "parse.y" 3376 #line 1229 "parse.y"
3319 { 3377 {
3320 yygotominor.yy0 = yymsp[0].minor.yy0; 3378 yygotominor.yy0 = yymsp[0].minor.yy0;
3321 sqlite3ErrorMsg(pParse, 3379 sqlite3ErrorMsg(pParse,
3322 "qualified table names are not allowed on INSERT, UPDATE, and DELETE " 3380 "qualified table names are not allowed on INSERT, UPDATE, and DELETE "
3323 "statements within triggers"); 3381 "statements within triggers");
3324 } 3382 }
3325 #line 3326 "parse.c" 3383 #line 3384 "parse.c"
3326 break; 3384 break;
3327 case 288: /* tridxby ::= INDEXED BY nm */ 3385 case 288: /* tridxby ::= INDEXED BY nm */
3328 #line 1200 "parse.y" 3386 #line 1241 "parse.y"
3329 { 3387 {
3330 sqlite3ErrorMsg(pParse, 3388 sqlite3ErrorMsg(pParse,
3331 "the INDEXED BY clause is not allowed on UPDATE or DELETE statements " 3389 "the INDEXED BY clause is not allowed on UPDATE or DELETE statements "
3332 "within triggers"); 3390 "within triggers");
3333 } 3391 }
3334 #line 3335 "parse.c" 3392 #line 3393 "parse.c"
3335 break; 3393 break;
3336 case 289: /* tridxby ::= NOT INDEXED */ 3394 case 289: /* tridxby ::= NOT INDEXED */
3337 #line 1205 "parse.y" 3395 #line 1246 "parse.y"
3338 { 3396 {
3339 sqlite3ErrorMsg(pParse, 3397 sqlite3ErrorMsg(pParse,
3340 "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements " 3398 "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements "
3341 "within triggers"); 3399 "within triggers");
3342 } 3400 }
3343 #line 3344 "parse.c" 3401 #line 3402 "parse.c"
3344 break; 3402 break;
3345 case 290: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_ opt */ 3403 case 290: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist where_ opt */
3346 #line 1218 "parse.y" 3404 #line 1259 "parse.y"
3347 { yygotominor.yy473 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy14, yymsp[0].minor.yy132, yymsp[-5].minor.yy186); } 3405 { yygotominor.yy203 = sqlite3TriggerUpdateStep(pParse->db, &yymsp[-4].minor.yy0, yymsp[-1].minor.yy322, yymsp[0].minor.yy314, yymsp[-5].minor.yy210); }
3348 #line 3349 "parse.c" 3406 #line 3407 "parse.c"
3349 break; 3407 break;
3350 case 291: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt VALUES LP itemlist RP */ 3408 case 291: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt VALUES LP itemlist RP */
3351 #line 1223 "parse.y" 3409 #line 1264 "parse.y"
3352 {yygotominor.yy473 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy408, yymsp[-1].minor.yy14, 0, yymsp[-7].minor.yy186);} 3410 {yygotominor.yy203 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy384, yymsp[-1].minor.yy322, 0, yymsp[-7].minor.yy210);}
3353 #line 3354 "parse.c" 3411 #line 3412 "parse.c"
3354 break; 3412 break;
3355 case 292: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select */ 3413 case 292: /* trigger_cmd ::= insert_cmd INTO trnm inscollist_opt select */
3356 #line 1226 "parse.y" 3414 #line 1267 "parse.y"
3357 {yygotominor.yy473 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy408, 0, yymsp[0].minor.yy3, yymsp[-4].minor.yy186);} 3415 {yygotominor.yy203 = sqlite3TriggerInsertStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy384, 0, yymsp[0].minor.yy387, yymsp[-4].minor.yy210);}
3358 #line 3359 "parse.c" 3416 #line 3417 "parse.c"
3359 break; 3417 break;
3360 case 293: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */ 3418 case 293: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt */
3361 #line 1230 "parse.y" 3419 #line 1271 "parse.y"
3362 {yygotominor.yy473 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy132);} 3420 {yygotominor.yy203 = sqlite3TriggerDeleteStep(pParse->db, &yymsp[-2].minor.yy0, yymsp[0].minor.yy314);}
3363 #line 3364 "parse.c" 3421 #line 3422 "parse.c"
3364 break; 3422 break;
3365 case 294: /* trigger_cmd ::= select */ 3423 case 294: /* trigger_cmd ::= select */
3366 #line 1233 "parse.y" 3424 #line 1274 "parse.y"
3367 {yygotominor.yy473 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy3); } 3425 {yygotominor.yy203 = sqlite3TriggerSelectStep(pParse->db, yymsp[0].minor.yy387); }
3368 #line 3369 "parse.c" 3426 #line 3427 "parse.c"
3369 break; 3427 break;
3370 case 295: /* expr ::= RAISE LP IGNORE RP */ 3428 case 295: /* expr ::= RAISE LP IGNORE RP */
3371 #line 1236 "parse.y" 3429 #line 1277 "parse.y"
3372 { 3430 {
3373 yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0); 3431 yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, 0);
3374 if( yygotominor.yy346.pExpr ){ 3432 if( yygotominor.yy118.pExpr ){
3375 yygotominor.yy346.pExpr->affinity = OE_Ignore; 3433 yygotominor.yy118.pExpr->affinity = OE_Ignore;
3376 } 3434 }
3377 yygotominor.yy346.zStart = yymsp[-3].minor.yy0.z; 3435 yygotominor.yy118.zStart = yymsp[-3].minor.yy0.z;
3378 yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; 3436 yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
3379 } 3437 }
3380 #line 3381 "parse.c" 3438 #line 3439 "parse.c"
3381 break; 3439 break;
3382 case 296: /* expr ::= RAISE LP raisetype COMMA nm RP */ 3440 case 296: /* expr ::= RAISE LP raisetype COMMA nm RP */
3383 #line 1244 "parse.y" 3441 #line 1285 "parse.y"
3384 { 3442 {
3385 yygotominor.yy346.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].mino r.yy0); 3443 yygotominor.yy118.pExpr = sqlite3PExpr(pParse, TK_RAISE, 0, 0, &yymsp[-1].mino r.yy0);
3386 if( yygotominor.yy346.pExpr ) { 3444 if( yygotominor.yy118.pExpr ) {
3387 yygotominor.yy346.pExpr->affinity = (char)yymsp[-3].minor.yy328; 3445 yygotominor.yy118.pExpr->affinity = (char)yymsp[-3].minor.yy4;
3388 } 3446 }
3389 yygotominor.yy346.zStart = yymsp[-5].minor.yy0.z; 3447 yygotominor.yy118.zStart = yymsp[-5].minor.yy0.z;
3390 yygotominor.yy346.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n]; 3448 yygotominor.yy118.zEnd = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n];
3391 } 3449 }
3392 #line 3393 "parse.c" 3450 #line 3451 "parse.c"
3393 break; 3451 break;
3394 case 297: /* raisetype ::= ROLLBACK */ 3452 case 297: /* raisetype ::= ROLLBACK */
3395 #line 1255 "parse.y" 3453 #line 1296 "parse.y"
3396 {yygotominor.yy328 = OE_Rollback;} 3454 {yygotominor.yy4 = OE_Rollback;}
3397 #line 3398 "parse.c" 3455 #line 3456 "parse.c"
3398 break; 3456 break;
3399 case 299: /* raisetype ::= FAIL */ 3457 case 299: /* raisetype ::= FAIL */
3400 #line 1257 "parse.y" 3458 #line 1298 "parse.y"
3401 {yygotominor.yy328 = OE_Fail;} 3459 {yygotominor.yy4 = OE_Fail;}
3402 #line 3403 "parse.c" 3460 #line 3461 "parse.c"
3403 break; 3461 break;
3404 case 300: /* cmd ::= DROP TRIGGER ifexists fullname */ 3462 case 300: /* cmd ::= DROP TRIGGER ifexists fullname */
3405 #line 1262 "parse.y" 3463 #line 1303 "parse.y"
3406 { 3464 {
3407 sqlite3DropTrigger(pParse,yymsp[0].minor.yy65,yymsp[-1].minor.yy328); 3465 sqlite3DropTrigger(pParse,yymsp[0].minor.yy259,yymsp[-1].minor.yy4);
3408 } 3466 }
3409 #line 3410 "parse.c" 3467 #line 3468 "parse.c"
3410 break; 3468 break;
3411 case 301: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ 3469 case 301: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */
3412 #line 1269 "parse.y" 3470 #line 1310 "parse.y"
3413 { 3471 {
3414 sqlite3Attach(pParse, yymsp[-3].minor.yy346.pExpr, yymsp[-1].minor.yy346.pExpr , yymsp[0].minor.yy132); 3472 sqlite3Attach(pParse, yymsp[-3].minor.yy118.pExpr, yymsp[-1].minor.yy118.pExpr , yymsp[0].minor.yy314);
3415 } 3473 }
3416 #line 3417 "parse.c" 3474 #line 3475 "parse.c"
3417 break; 3475 break;
3418 case 302: /* cmd ::= DETACH database_kw_opt expr */ 3476 case 302: /* cmd ::= DETACH database_kw_opt expr */
3419 #line 1272 "parse.y" 3477 #line 1313 "parse.y"
3420 { 3478 {
3421 sqlite3Detach(pParse, yymsp[0].minor.yy346.pExpr); 3479 sqlite3Detach(pParse, yymsp[0].minor.yy118.pExpr);
3422 } 3480 }
3423 #line 3424 "parse.c" 3481 #line 3482 "parse.c"
3424 break; 3482 break;
3425 case 307: /* cmd ::= REINDEX */ 3483 case 307: /* cmd ::= REINDEX */
3426 #line 1287 "parse.y" 3484 #line 1328 "parse.y"
3427 {sqlite3Reindex(pParse, 0, 0);} 3485 {sqlite3Reindex(pParse, 0, 0);}
3428 #line 3429 "parse.c" 3486 #line 3487 "parse.c"
3429 break; 3487 break;
3430 case 308: /* cmd ::= REINDEX nm dbnm */ 3488 case 308: /* cmd ::= REINDEX nm dbnm */
3431 #line 1288 "parse.y" 3489 #line 1329 "parse.y"
3432 {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} 3490 {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
3433 #line 3434 "parse.c" 3491 #line 3492 "parse.c"
3434 break; 3492 break;
3435 case 309: /* cmd ::= ANALYZE */ 3493 case 309: /* cmd ::= ANALYZE */
3436 #line 1293 "parse.y" 3494 #line 1334 "parse.y"
3437 {sqlite3Analyze(pParse, 0, 0);} 3495 {sqlite3Analyze(pParse, 0, 0);}
3438 #line 3439 "parse.c" 3496 #line 3497 "parse.c"
3439 break; 3497 break;
3440 case 310: /* cmd ::= ANALYZE nm dbnm */ 3498 case 310: /* cmd ::= ANALYZE nm dbnm */
3441 #line 1294 "parse.y" 3499 #line 1335 "parse.y"
3442 {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} 3500 {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);}
3443 #line 3444 "parse.c" 3501 #line 3502 "parse.c"
3444 break; 3502 break;
3445 case 311: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ 3503 case 311: /* cmd ::= ALTER TABLE fullname RENAME TO nm */
3446 #line 1299 "parse.y" 3504 #line 1340 "parse.y"
3447 { 3505 {
3448 sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy65,&yymsp[0].minor.yy0); 3506 sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy259,&yymsp[0].minor.yy0);
3449 } 3507 }
3450 #line 3451 "parse.c" 3508 #line 3509 "parse.c"
3451 break; 3509 break;
3452 case 312: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt colu mn */ 3510 case 312: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt colu mn */
3453 #line 1302 "parse.y" 3511 #line 1343 "parse.y"
3454 { 3512 {
3455 sqlite3AlterFinishAddColumn(pParse, &yymsp[0].minor.yy0); 3513 sqlite3AlterFinishAddColumn(pParse, &yymsp[0].minor.yy0);
3456 } 3514 }
3457 #line 3458 "parse.c" 3515 #line 3516 "parse.c"
3458 break; 3516 break;
3459 case 313: /* add_column_fullname ::= fullname */ 3517 case 313: /* add_column_fullname ::= fullname */
3460 #line 1305 "parse.y" 3518 #line 1346 "parse.y"
3461 { 3519 {
3462 pParse->db->lookaside.bEnabled = 0; 3520 pParse->db->lookaside.bEnabled = 0;
3463 sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy65); 3521 sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy259);
3464 } 3522 }
3465 #line 3466 "parse.c" 3523 #line 3524 "parse.c"
3466 break; 3524 break;
3467 case 316: /* cmd ::= create_vtab */ 3525 case 316: /* cmd ::= create_vtab */
3468 #line 1315 "parse.y" 3526 #line 1356 "parse.y"
3469 {sqlite3VtabFinishParse(pParse,0);} 3527 {sqlite3VtabFinishParse(pParse,0);}
3470 #line 3471 "parse.c" 3528 #line 3529 "parse.c"
3471 break; 3529 break;
3472 case 317: /* cmd ::= create_vtab LP vtabarglist RP */ 3530 case 317: /* cmd ::= create_vtab LP vtabarglist RP */
3473 #line 1316 "parse.y" 3531 #line 1357 "parse.y"
3474 {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} 3532 {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);}
3475 #line 3476 "parse.c" 3533 #line 3534 "parse.c"
3476 break; 3534 break;
3477 case 318: /* create_vtab ::= createkw VIRTUAL TABLE nm dbnm USING nm */ 3535 case 318: /* create_vtab ::= createkw VIRTUAL TABLE nm dbnm USING nm */
3478 #line 1317 "parse.y" 3536 #line 1358 "parse.y"
3479 { 3537 {
3480 sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &y ymsp[0].minor.yy0); 3538 sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &y ymsp[0].minor.yy0);
3481 } 3539 }
3482 #line 3483 "parse.c" 3540 #line 3541 "parse.c"
3483 break; 3541 break;
3484 case 321: /* vtabarg ::= */ 3542 case 321: /* vtabarg ::= */
3485 #line 1322 "parse.y" 3543 #line 1363 "parse.y"
3486 {sqlite3VtabArgInit(pParse);} 3544 {sqlite3VtabArgInit(pParse);}
3487 #line 3488 "parse.c" 3545 #line 3546 "parse.c"
3488 break; 3546 break;
3489 case 323: /* vtabargtoken ::= ANY */ 3547 case 323: /* vtabargtoken ::= ANY */
3490 case 324: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==324); 3548 case 324: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==324);
3491 case 325: /* lp ::= LP */ yytestcase(yyruleno==325); 3549 case 325: /* lp ::= LP */ yytestcase(yyruleno==325);
3492 #line 1324 "parse.y" 3550 #line 1365 "parse.y"
3493 {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} 3551 {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);}
3494 #line 3495 "parse.c" 3552 #line 3553 "parse.c"
3495 break; 3553 break;
3496 default: 3554 default:
3497 /* (0) input ::= cmdlist */ yytestcase(yyruleno==0); 3555 /* (0) input ::= cmdlist */ yytestcase(yyruleno==0);
3498 /* (1) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==1); 3556 /* (1) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==1);
3499 /* (2) cmdlist ::= ecmd */ yytestcase(yyruleno==2); 3557 /* (2) cmdlist ::= ecmd */ yytestcase(yyruleno==2);
3500 /* (3) ecmd ::= SEMI */ yytestcase(yyruleno==3); 3558 /* (3) ecmd ::= SEMI */ yytestcase(yyruleno==3);
3501 /* (4) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==4); 3559 /* (4) ecmd ::= explain cmdx SEMI */ yytestcase(yyruleno==4);
3502 /* (10) trans_opt ::= */ yytestcase(yyruleno==10); 3560 /* (10) trans_opt ::= */ yytestcase(yyruleno==10);
3503 /* (11) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==11); 3561 /* (11) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==11);
3504 /* (12) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==12); 3562 /* (12) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==12);
3505 /* (20) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==20); 3563 /* (20) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==20);
3506 /* (21) savepoint_opt ::= */ yytestcase(yyruleno==21); 3564 /* (21) savepoint_opt ::= */ yytestcase(yyruleno==21);
3507 /* (25) cmd ::= create_table create_table_args */ yytestcase(yyruleno==25) ; 3565 /* (25) cmd ::= create_table create_table_args */ yytestcase(yyruleno==25) ;
3508 /* (34) columnlist ::= columnlist COMMA column */ yytestcase(yyruleno==34) ; 3566 /* (34) columnlist ::= columnlist COMMA column */ yytestcase(yyruleno==34) ;
3509 /* (35) columnlist ::= column */ yytestcase(yyruleno==35); 3567 /* (35) columnlist ::= column */ yytestcase(yyruleno==35);
3510 /* (44) type ::= */ yytestcase(yyruleno==44); 3568 /* (44) type ::= */ yytestcase(yyruleno==44);
3511 /* (51) signed ::= plus_num */ yytestcase(yyruleno==51); 3569 /* (51) signed ::= plus_num */ yytestcase(yyruleno==51);
3512 /* (52) signed ::= minus_num */ yytestcase(yyruleno==52); 3570 /* (52) signed ::= minus_num */ yytestcase(yyruleno==52);
3513 /* (53) carglist ::= carglist carg */ yytestcase(yyruleno==53); 3571 /* (53) carglist ::= carglist carg */ yytestcase(yyruleno==53);
3514 /* (54) carglist ::= */ yytestcase(yyruleno==54); 3572 /* (54) carglist ::= */ yytestcase(yyruleno==54);
3515 /* (55) carg ::= CONSTRAINT nm ccons */ yytestcase(yyruleno==55); 3573 /* (55) carg ::= CONSTRAINT nm ccons */ yytestcase(yyruleno==55);
3516 /* (56) carg ::= ccons */ yytestcase(yyruleno==56); 3574 /* (56) carg ::= ccons */ yytestcase(yyruleno==56);
3517 /* (62) ccons ::= NULL onconf */ yytestcase(yyruleno==62); 3575 /* (62) ccons ::= NULL onconf */ yytestcase(yyruleno==62);
3518 /* (89) conslist ::= conslist COMMA tcons */ yytestcase(yyruleno==89); 3576 /* (90) conslist ::= conslist COMMA tcons */ yytestcase(yyruleno==90);
3519 /* (90) conslist ::= conslist tcons */ yytestcase(yyruleno==90); 3577 /* (91) conslist ::= conslist tcons */ yytestcase(yyruleno==91);
3520 /* (91) conslist ::= tcons */ yytestcase(yyruleno==91); 3578 /* (92) conslist ::= tcons */ yytestcase(yyruleno==92);
3521 /* (92) tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==92); 3579 /* (93) tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==93);
3522 /* (268) plus_opt ::= PLUS */ yytestcase(yyruleno==268); 3580 /* (268) plus_opt ::= PLUS */ yytestcase(yyruleno==268);
3523 /* (269) plus_opt ::= */ yytestcase(yyruleno==269); 3581 /* (269) plus_opt ::= */ yytestcase(yyruleno==269);
3524 /* (279) foreach_clause ::= */ yytestcase(yyruleno==279); 3582 /* (279) foreach_clause ::= */ yytestcase(yyruleno==279);
3525 /* (280) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==280); 3583 /* (280) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==280);
3526 /* (287) tridxby ::= */ yytestcase(yyruleno==287); 3584 /* (287) tridxby ::= */ yytestcase(yyruleno==287);
3527 /* (305) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==305); 3585 /* (305) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==305);
3528 /* (306) database_kw_opt ::= */ yytestcase(yyruleno==306); 3586 /* (306) database_kw_opt ::= */ yytestcase(yyruleno==306);
3529 /* (314) kwcolumn_opt ::= */ yytestcase(yyruleno==314); 3587 /* (314) kwcolumn_opt ::= */ yytestcase(yyruleno==314);
3530 /* (315) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==315); 3588 /* (315) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==315);
3531 /* (319) vtabarglist ::= vtabarg */ yytestcase(yyruleno==319); 3589 /* (319) vtabarglist ::= vtabarg */ yytestcase(yyruleno==319);
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
3586 /* 3644 /*
3587 ** The following code executes when a syntax error first occurs. 3645 ** The following code executes when a syntax error first occurs.
3588 */ 3646 */
3589 static void yy_syntax_error( 3647 static void yy_syntax_error(
3590 yyParser *yypParser, /* The parser */ 3648 yyParser *yypParser, /* The parser */
3591 int yymajor, /* The major type of the error token */ 3649 int yymajor, /* The major type of the error token */
3592 YYMINORTYPE yyminor /* The minor type of the error token */ 3650 YYMINORTYPE yyminor /* The minor type of the error token */
3593 ){ 3651 ){
3594 sqlite3ParserARG_FETCH; 3652 sqlite3ParserARG_FETCH;
3595 #define TOKEN (yyminor.yy0) 3653 #define TOKEN (yyminor.yy0)
3596 #line 34 "parse.y" 3654 #line 32 "parse.y"
3597 3655
3598 UNUSED_PARAMETER(yymajor); /* Silence some compiler warnings */ 3656 UNUSED_PARAMETER(yymajor); /* Silence some compiler warnings */
3599 assert( TOKEN.z[0] ); /* The tokenizer always gives us a token */ 3657 assert( TOKEN.z[0] ); /* The tokenizer always gives us a token */
3600 sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &TOKEN); 3658 sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &TOKEN);
3601 pParse->parseError = 1; 3659 pParse->parseError = 1;
3602 #line 3603 "parse.c" 3660 #line 3661 "parse.c"
3603 sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument varia ble */ 3661 sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument varia ble */
3604 } 3662 }
3605 3663
3606 /* 3664 /*
3607 ** The following is executed when the parser accepts 3665 ** The following is executed when the parser accepts
3608 */ 3666 */
3609 static void yy_accept( 3667 static void yy_accept(
3610 yyParser *yypParser /* The parser */ 3668 yyParser *yypParser /* The parser */
3611 ){ 3669 ){
3612 sqlite3ParserARG_FETCH; 3670 sqlite3ParserARG_FETCH;
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
3783 yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); 3841 yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
3784 if( yyendofinput ){ 3842 if( yyendofinput ){
3785 yy_parse_failed(yypParser); 3843 yy_parse_failed(yypParser);
3786 } 3844 }
3787 yymajor = YYNOCODE; 3845 yymajor = YYNOCODE;
3788 #endif 3846 #endif
3789 } 3847 }
3790 }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); 3848 }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 );
3791 return; 3849 return;
3792 } 3850 }
OLDNEW
« no previous file with comments | « third_party/sqlite/preprocessed/parse.h ('k') | third_party/sqlite/preprocessed/sqlite3.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698