OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |