1 2 #pragma ident "%Z%%M% %I% %E% SMI" 3 4 /* Driver template for the LEMON parser generator. 5 ** The author disclaims copyright to this source code. 6 */ 7 /* First off, code is include which follows the "include" declaration 8 ** in the input file. */ 9 #include <stdio.h> 10 #line 33 "parse_tmp.y" 11 12 13 #pragma ident "%Z%%M% %I% %E% SMI" 14 15 #include "sqliteInt.h" 16 #include "parse.h" 17 18 /* 19 ** An instance of this structure holds information about the 20 ** LIMIT clause of a SELECT statement. 21 */ 22 struct LimitVal { 23 int limit; /* The LIMIT value. -1 if there is no limit */ 24 int offset; /* The OFFSET. 0 if there is none */ 25 }; 26 27 /* 28 ** An instance of the following structure describes the event of a 29 ** TRIGGER. "a" is the event type, one of TK_UPDATE, TK_INSERT, 30 ** TK_DELETE, or TK_INSTEAD. If the event is of the form 31 ** 32 ** UPDATE ON (a,b,c) 33 ** 34 ** Then the "b" IdList records the list "a,b,c". 35 */ 36 struct TrigEvent { int a; IdList * b; }; 37 38 39 #line 40 "parse_tmp.c" 40 /* Next is all token values, in a form suitable for use by makeheaders. 41 ** This section will be null unless lemon is run with the -m switch. 42 */ 43 /* 44 ** These constants (all generated automatically by the parser generator) 45 ** specify the various kinds of tokens (terminals) that the parser 46 ** understands. 47 ** 48 ** Each symbol here is a terminal symbol in the grammar. 49 */ 50 /* Make sure the INTERFACE macro is defined. 51 */ 52 #ifndef INTERFACE 53 # define INTERFACE 1 54 #endif 55 /* The next thing included is series of defines which control 56 ** various aspects of the generated parser. 57 ** YYCODETYPE is the data type used for storing terminal 58 ** and nonterminal numbers. "unsigned char" is 59 ** used if there are fewer than 250 terminals 60 ** and nonterminals. "int" is used otherwise. 61 ** YYNOCODE is a number of type YYCODETYPE which corresponds 62 ** to no legal terminal or nonterminal number. This 63 ** number is used to fill in empty slots of the hash 64 ** table. 65 ** YYFALLBACK If defined, this indicates that one or more tokens 66 ** have fall-back values which should be used if the 67 ** original value of the token will not parse. 68 ** YYACTIONTYPE is the data type used for storing terminal 69 ** and nonterminal numbers. "unsigned char" is 70 ** used if there are fewer than 250 rules and 71 ** states combined. "int" is used otherwise. 72 ** sqliteParserTOKENTYPE is the data type used for minor tokens given 73 ** directly to the parser from the tokenizer. 74 ** YYMINORTYPE is the data type used for all minor tokens. 75 ** This is typically a union of many types, one of 76 ** which is sqliteParserTOKENTYPE. The entry in the union 77 ** for base tokens is called "yy0". 78 ** YYSTACKDEPTH is the maximum depth of the parser's stack. 79 ** sqliteParserARG_SDECL A static variable declaration for the %extra_argument 80 ** sqliteParserARG_PDECL A parameter declaration for the %extra_argument 81 ** sqliteParserARG_STORE Code to store %extra_argument into yypParser 82 ** sqliteParserARG_FETCH Code to extract %extra_argument from yypParser 83 ** YYNSTATE the combined number of states. 84 ** YYNRULE the number of rules in the grammar 85 ** YYERRORSYMBOL is the code number of the error symbol. If not 86 ** defined, then do no error processing. 87 */ 88 /* */ 89 #define YYCODETYPE unsigned char 90 #define YYNOCODE 221 91 #define YYACTIONTYPE unsigned short int 92 #define sqliteParserTOKENTYPE Token 93 typedef union { 94 sqliteParserTOKENTYPE yy0; 95 TriggerStep * yy19; 96 struct LimitVal yy124; 97 Select* yy179; 98 Expr * yy182; 99 Expr* yy242; 100 struct TrigEvent yy290; 101 Token yy298; 102 SrcList* yy307; 103 IdList* yy320; 104 ExprList* yy322; 105 int yy372; 106 struct {int value; int mask;} yy407; 107 int yy441; 108 } YYMINORTYPE; 109 #define YYSTACKDEPTH 100 110 #define sqliteParserARG_SDECL Parse *pParse; 111 #define sqliteParserARG_PDECL ,Parse *pParse 112 #define sqliteParserARG_FETCH Parse *pParse = yypParser->pParse 113 #define sqliteParserARG_STORE yypParser->pParse = pParse 114 #define YYNSTATE 563 115 #define YYNRULE 293 116 #define YYERRORSYMBOL 131 117 #define YYERRSYMDT yy441 118 #define YYFALLBACK 1 119 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) 120 #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) 121 #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) 122 123 /* Next are that tables used to determine what action to take based on the 124 ** current state and lookahead token. These tables are used to implement 125 ** functions that take a state number and lookahead value and return an 126 ** action integer. 127 ** 128 ** Suppose the action integer is N. Then the action is determined as 129 ** follows 130 ** 131 ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead 132 ** token onto the stack and goto state N. 133 ** 134 ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. 135 ** 136 ** N == YYNSTATE+YYNRULE A syntax error has occurred. 137 ** 138 ** N == YYNSTATE+YYNRULE+1 The parser accepts its input. 139 ** 140 ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused 141 ** slots in the yy_action[] table. 142 ** 143 ** The action table is constructed as a single large table named yy_action[]. 144 ** Given state S and lookahead X, the action is computed as 145 ** 146 ** yy_action[ yy_shift_ofst[S] + X ] 147 ** 148 ** If the index value yy_shift_ofst[S]+X is out of range or if the value 149 ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] 150 ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table 151 ** and that yy_default[S] should be used instead. 152 ** 153 ** The formula above is for computing the action when the lookahead is 154 ** a terminal symbol. If the lookahead is a non-terminal (as occurs after 155 ** a reduce action) then the yy_reduce_ofst[] array is used in place of 156 ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of 157 ** YY_SHIFT_USE_DFLT. 158 ** 159 ** The following are the tables generated in this section: 160 ** 161 ** yy_action[] A single table containing all actions. 162 ** yy_lookahead[] A table containing the lookahead for each entry in 163 ** yy_action. Used to detect hash collisions. 164 ** yy_shift_ofst[] For each state, the offset into yy_action for 165 ** shifting terminals. 166 ** yy_reduce_ofst[] For each state, the offset into yy_action for 167 ** shifting non-terminals after a reduce. 168 ** yy_default[] Default action for each state. 169 */ 170 static YYACTIONTYPE yy_action[] = { 171 /* 0 */ 264, 514, 262, 119, 123, 117, 121, 129, 131, 133, 172 /* 10 */ 135, 144, 146, 148, 150, 152, 154, 320, 349, 319, 173 /* 20 */ 143, 338, 262, 249, 259, 142, 129, 131, 133, 135, 174 /* 30 */ 144, 146, 148, 150, 152, 154, 46, 376, 270, 115, 175 /* 40 */ 104, 139, 127, 125, 156, 161, 157, 162, 166, 119, 176 /* 50 */ 123, 117, 121, 129, 131, 133, 135, 144, 146, 148, 177 /* 60 */ 150, 152, 154, 300, 41, 336, 263, 44, 54, 60, 178 /* 70 */ 62, 308, 331, 20, 401, 73, 340, 343, 333, 857, 179 /* 80 */ 1, 562, 3, 106, 143, 337, 263, 339, 516, 142, 180 /* 90 */ 346, 347, 144, 146, 148, 150, 152, 154, 137, 69, 181 /* 100 */ 839, 103, 321, 115, 104, 139, 127, 125, 156, 161, 182 /* 110 */ 157, 162, 166, 119, 123, 117, 121, 129, 131, 133, 183 /* 120 */ 135, 144, 146, 148, 150, 152, 154, 322, 544, 542, 184 /* 130 */ 720, 143, 720, 73, 95, 237, 142, 21, 22, 448, 185 /* 140 */ 445, 68, 20, 459, 167, 64, 475, 46, 20, 535, 186 /* 150 */ 115, 104, 139, 127, 125, 156, 161, 157, 162, 166, 187 /* 160 */ 119, 123, 117, 121, 129, 131, 133, 135, 144, 146, 188 /* 170 */ 148, 150, 152, 154, 193, 106, 318, 106, 44, 54, 189 /* 180 */ 60, 62, 308, 331, 175, 20, 482, 454, 444, 333, 190 /* 190 */ 640, 71, 359, 145, 298, 116, 464, 73, 106, 143, 191 /* 200 */ 181, 179, 303, 653, 142, 791, 21, 22, 177, 66, 192 /* 210 */ 67, 111, 21, 22, 112, 105, 184, 792, 115, 104, 193 /* 220 */ 139, 127, 125, 156, 161, 157, 162, 166, 119, 123, 194 /* 230 */ 117, 121, 129, 131, 133, 135, 144, 146, 148, 150, 195 /* 240 */ 152, 154, 790, 245, 13, 245, 197, 113, 183, 21, 196 /* 250 */ 22, 508, 361, 14, 357, 201, 363, 369, 374, 185, 197 /* 260 */ 361, 36, 37, 517, 363, 369, 374, 377, 15, 143, 198 /* 270 */ 205, 16, 361, 195, 142, 377, 363, 369, 374, 358, 199 /* 280 */ 390, 169, 17, 171, 172, 269, 191, 377, 115, 104, 200 /* 290 */ 139, 127, 125, 156, 161, 157, 162, 166, 119, 123, 201 /* 300 */ 117, 121, 129, 131, 133, 135, 144, 146, 148, 150, 202 /* 310 */ 152, 154, 106, 106, 20, 357, 143, 725, 189, 32, 203 /* 320 */ 209, 142, 391, 37, 316, 323, 325, 487, 68, 445, 204 /* 330 */ 174, 103, 64, 266, 521, 115, 104, 139, 127, 125, 205 /* 340 */ 156, 161, 157, 162, 166, 119, 123, 117, 121, 129, 206 /* 350 */ 131, 133, 135, 144, 146, 148, 150, 152, 154, 837, 207 /* 360 */ 173, 193, 106, 291, 232, 97, 301, 494, 70, 489, 208 /* 370 */ 230, 175, 4, 6, 20, 534, 219, 29, 21, 22, 209 /* 380 */ 299, 137, 497, 148, 150, 152, 154, 181, 179, 143, 210 /* 390 */ 417, 419, 418, 69, 142, 177, 66, 67, 111, 688, 211 /* 400 */ 297, 112, 105, 213, 296, 651, 254, 69, 115, 104, 212 /* 410 */ 139, 127, 125, 156, 161, 157, 162, 166, 119, 123, 213 /* 420 */ 117, 121, 129, 131, 133, 135, 144, 146, 148, 150, 214 /* 430 */ 152, 154, 510, 281, 113, 183, 143, 20, 21, 22, 215 /* 440 */ 491, 142, 536, 537, 538, 75, 20, 169, 583, 171, 216 /* 450 */ 172, 169, 289, 171, 172, 115, 104, 139, 127, 125, 217 /* 460 */ 156, 161, 157, 162, 166, 119, 123, 117, 121, 129, 218 /* 470 */ 131, 133, 135, 144, 146, 148, 150, 152, 154, 306, 219 /* 480 */ 84, 86, 809, 52, 572, 429, 169, 18, 171, 172, 220 /* 490 */ 106, 83, 53, 443, 10, 10, 20, 563, 313, 106, 221 /* 500 */ 143, 21, 22, 295, 816, 142, 560, 561, 174, 522, 222 /* 510 */ 21, 22, 38, 386, 545, 356, 348, 174, 69, 115, 223 /* 520 */ 104, 139, 127, 125, 156, 161, 157, 162, 166, 119, 224 /* 530 */ 123, 117, 121, 129, 131, 133, 135, 144, 146, 148, 225 /* 540 */ 150, 152, 154, 467, 244, 20, 169, 143, 171, 172, 226 /* 550 */ 315, 661, 142, 523, 219, 333, 844, 420, 533, 449, 227 /* 560 */ 21, 22, 440, 218, 451, 282, 115, 104, 139, 127, 228 /* 570 */ 125, 156, 161, 157, 162, 166, 119, 123, 117, 121, 229 /* 580 */ 129, 131, 133, 135, 144, 146, 148, 150, 152, 154, 230 /* 590 */ 69, 689, 426, 251, 143, 425, 842, 800, 341, 142, 231 /* 600 */ 663, 342, 283, 259, 726, 40, 335, 831, 284, 21, 232 /* 610 */ 22, 330, 427, 115, 227, 139, 127, 125, 156, 161, 233 /* 620 */ 157, 162, 166, 119, 123, 117, 121, 129, 131, 133, 234 /* 630 */ 135, 144, 146, 148, 150, 152, 154, 256, 388, 312, 235 /* 640 */ 264, 143, 262, 690, 464, 387, 142, 396, 329, 169, 236 /* 650 */ 274, 171, 172, 221, 169, 344, 171, 172, 345, 253, 237 /* 660 */ 115, 164, 139, 127, 125, 156, 161, 157, 162, 166, 238 /* 670 */ 119, 123, 117, 121, 129, 131, 133, 135, 144, 146, 239 /* 680 */ 148, 150, 152, 154, 395, 106, 252, 402, 143, 398, 240 /* 690 */ 216, 524, 217, 142, 169, 271, 171, 172, 169, 458, 241 /* 700 */ 171, 172, 169, 481, 171, 172, 263, 245, 104, 139, 242 /* 710 */ 127, 125, 156, 161, 157, 162, 166, 119, 123, 117, 243 /* 720 */ 121, 129, 131, 133, 135, 144, 146, 148, 150, 152, 244 /* 730 */ 154, 836, 106, 106, 276, 143, 251, 106, 47, 381, 245 /* 740 */ 142, 274, 519, 477, 478, 367, 430, 274, 159, 49, 246 /* 750 */ 481, 190, 441, 221, 690, 192, 139, 127, 125, 156, 247 /* 760 */ 161, 157, 162, 166, 119, 123, 117, 121, 129, 131, 248 /* 770 */ 133, 135, 144, 146, 148, 150, 152, 154, 7, 158, 249 /* 780 */ 23, 25, 27, 394, 68, 262, 808, 43, 64, 273, 250 /* 790 */ 518, 274, 330, 351, 548, 352, 525, 276, 106, 520, 251 /* 800 */ 275, 106, 253, 234, 557, 217, 515, 168, 106, 276, 252 /* 810 */ 443, 276, 106, 276, 231, 106, 118, 193, 531, 174, 253 /* 820 */ 448, 276, 528, 276, 437, 529, 174, 175, 106, 252, 254 /* 830 */ 212, 69, 69, 120, 527, 69, 272, 68, 328, 69, 255 /* 840 */ 366, 64, 87, 181, 179, 292, 122, 411, 380, 263, 256 /* 850 */ 371, 177, 66, 67, 111, 215, 143, 112, 105, 807, 257 /* 860 */ 467, 142, 233, 278, 106, 219, 424, 498, 503, 444, 258 /* 870 */ 193, 540, 219, 486, 541, 278, 453, 278, 73, 278, 259 /* 880 */ 175, 451, 147, 225, 229, 106, 422, 278, 68, 278, 260 /* 890 */ 113, 183, 64, 526, 106, 106, 181, 179, 106, 106, 261 /* 900 */ 106, 415, 416, 124, 177, 66, 67, 111, 224, 58, 262 /* 910 */ 112, 105, 412, 128, 106, 106, 114, 132, 138, 59, 263 /* 920 */ 106, 193, 560, 561, 106, 471, 472, 106, 422, 73, 264 /* 930 */ 424, 175, 462, 149, 106, 106, 106, 65, 134, 2, 265 /* 940 */ 3, 106, 466, 113, 183, 226, 474, 181, 179, 106, 266 /* 950 */ 106, 106, 151, 280, 165, 177, 66, 67, 111, 305, 267 /* 960 */ 266, 112, 105, 832, 480, 106, 478, 153, 228, 141, 268 /* 970 */ 106, 69, 372, 106, 274, 852, 266, 393, 170, 106, 269 /* 980 */ 293, 666, 639, 479, 35, 106, 247, 106, 163, 421, 270 /* 990 */ 286, 241, 91, 106, 113, 183, 793, 136, 290, 106, 271 /* 1000 */ 690, 106, 69, 214, 690, 210, 267, 302, 106, 217, 272 /* 1010 */ 313, 155, 31, 530, 392, 106, 106, 130, 106, 176, 273 /* 1020 */ 89, 438, 106, 274, 106, 810, 178, 160, 107, 532, 274 /* 1030 */ 811, 591, 812, 180, 246, 813, 375, 814, 77, 539, 275 /* 1040 */ 182, 817, 126, 277, 819, 108, 820, 543, 109, 818, 276 /* 1050 */ 242, 582, 546, 547, 815, 137, 549, 556, 73, 10, 277 /* 1060 */ 61, 285, 315, 63, 250, 57, 34, 592, 550, 593, 278 /* 1070 */ 551, 279, 287, 220, 33, 288, 553, 110, 248, 667, 279 /* 1080 */ 294, 558, 554, 578, 78, 668, 669, 79, 304, 240, 280 /* 1090 */ 90, 30, 307, 93, 327, 309, 92, 310, 221, 311, 281 /* 1100 */ 577, 314, 312, 28, 221, 211, 317, 187, 188, 80, 282 /* 1110 */ 186, 324, 576, 82, 326, 26, 101, 194, 94, 850, 283 /* 1120 */ 51, 334, 332, 198, 196, 81, 199, 200, 202, 204, 284 /* 1130 */ 56, 74, 355, 206, 207, 350, 208, 96, 353, 354, 285 /* 1140 */ 575, 24, 362, 50, 48, 364, 365, 368, 389, 370, 286 /* 1150 */ 373, 221, 11, 12, 360, 222, 378, 379, 100, 382, 287 /* 1160 */ 383, 45, 49, 384, 400, 559, 385, 235, 855, 397, 288 /* 1170 */ 399, 403, 404, 413, 407, 223, 406, 824, 571, 42, 289 /* 1180 */ 414, 829, 408, 98, 830, 236, 428, 423, 19, 243, 290 /* 1190 */ 217, 431, 432, 99, 433, 434, 435, 436, 439, 798, 291 /* 1200 */ 239, 8, 238, 555, 88, 102, 39, 140, 799, 405, 292 /* 1210 */ 442, 9, 409, 727, 410, 728, 450, 823, 452, 552, 293 /* 1220 */ 838, 456, 18, 457, 72, 851, 447, 460, 461, 255, 294 /* 1230 */ 568, 840, 154, 465, 446, 455, 257, 468, 470, 469, 295 /* 1240 */ 258, 463, 85, 476, 5, 260, 841, 843, 483, 485, 296 /* 1250 */ 660, 662, 484, 488, 806, 261, 493, 490, 492, 849, 297 /* 1260 */ 499, 76, 265, 495, 473, 719, 496, 507, 500, 501, 298 /* 1270 */ 506, 504, 505, 55, 722, 511, 502, 515, 515, 512, 299 /* 1280 */ 203, 515, 515, 515, 515, 515, 515, 515, 515, 515, 300 /* 1290 */ 515, 515, 515, 515, 515, 515, 515, 515, 515, 515, 301 /* 1300 */ 509, 515, 515, 515, 515, 515, 515, 515, 515, 515, 302 /* 1310 */ 515, 515, 515, 268, 515, 513, 303 }; 304 static YYCODETYPE yy_lookahead[] = { 305 /* 0 */ 21, 197, 23, 70, 71, 72, 73, 74, 75, 76, 306 /* 10 */ 77, 78, 79, 80, 81, 82, 83, 91, 19, 93, 307 /* 20 */ 41, 23, 23, 183, 184, 46, 74, 75, 76, 77, 308 /* 30 */ 78, 79, 80, 81, 82, 83, 62, 139, 116, 60, 309 /* 40 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 310 /* 50 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 311 /* 60 */ 81, 82, 83, 20, 90, 91, 87, 93, 94, 95, 312 /* 70 */ 96, 97, 98, 23, 146, 111, 78, 79, 104, 132, 313 /* 80 */ 133, 134, 135, 140, 41, 87, 87, 89, 124, 46, 314 /* 90 */ 92, 93, 78, 79, 80, 81, 82, 83, 200, 171, 315 /* 100 */ 14, 158, 29, 60, 61, 62, 63, 64, 65, 66, 316 /* 110 */ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 317 /* 120 */ 77, 78, 79, 80, 81, 82, 83, 54, 78, 79, 318 /* 130 */ 9, 41, 9, 111, 191, 192, 46, 87, 88, 53, 319 /* 140 */ 60, 19, 23, 22, 19, 23, 124, 62, 23, 99, 320 /* 150 */ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 321 /* 160 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 322 /* 170 */ 80, 81, 82, 83, 52, 140, 103, 140, 93, 94, 323 /* 180 */ 95, 96, 97, 98, 62, 23, 100, 101, 102, 104, 324 /* 190 */ 20, 172, 22, 158, 20, 158, 140, 111, 140, 41, 325 /* 200 */ 78, 79, 80, 123, 46, 14, 87, 88, 86, 87, 326 /* 210 */ 88, 89, 87, 88, 92, 93, 158, 127, 60, 61, 327 /* 220 */ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 328 /* 230 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 329 /* 240 */ 82, 83, 14, 122, 15, 122, 15, 125, 126, 87, 330 /* 250 */ 88, 195, 90, 24, 140, 24, 94, 95, 96, 201, 331 /* 260 */ 90, 147, 148, 19, 94, 95, 96, 105, 39, 41, 332 /* 270 */ 39, 42, 90, 42, 46, 105, 94, 95, 96, 165, 333 /* 280 */ 166, 107, 53, 109, 110, 188, 128, 105, 60, 61, 334 /* 290 */ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 335 /* 300 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 336 /* 310 */ 82, 83, 140, 140, 23, 140, 41, 9, 127, 144, 337 /* 320 */ 129, 46, 147, 148, 100, 101, 102, 17, 19, 60, 338 /* 330 */ 158, 158, 23, 152, 169, 60, 61, 62, 63, 64, 339 /* 340 */ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 340 /* 350 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 11, 341 /* 360 */ 20, 52, 140, 182, 20, 192, 194, 57, 146, 59, 342 /* 370 */ 19, 62, 136, 137, 23, 140, 204, 141, 87, 88, 343 /* 380 */ 158, 200, 146, 80, 81, 82, 83, 78, 79, 41, 344 /* 390 */ 100, 101, 102, 171, 46, 86, 87, 88, 89, 20, 345 /* 400 */ 108, 92, 93, 128, 112, 9, 115, 171, 60, 61, 346 /* 410 */ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 347 /* 420 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 348 /* 430 */ 82, 83, 196, 19, 125, 126, 41, 23, 87, 88, 349 /* 440 */ 130, 46, 207, 208, 209, 174, 23, 107, 9, 109, 350 /* 450 */ 110, 107, 181, 109, 110, 60, 61, 62, 63, 64, 351 /* 460 */ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 352 /* 470 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 20, 353 /* 480 */ 78, 79, 9, 34, 9, 18, 107, 12, 109, 110, 354 /* 490 */ 140, 89, 43, 146, 99, 99, 23, 0, 47, 140, 355 /* 500 */ 41, 87, 88, 80, 9, 46, 9, 10, 158, 140, 356 /* 510 */ 87, 88, 149, 62, 19, 152, 153, 158, 171, 60, 357 /* 520 */ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 358 /* 530 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 359 /* 540 */ 81, 82, 83, 196, 194, 23, 107, 41, 109, 110, 360 /* 550 */ 99, 9, 46, 186, 204, 104, 9, 49, 63, 212, 361 /* 560 */ 87, 88, 95, 204, 217, 146, 60, 61, 62, 63, 362 /* 570 */ 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 363 /* 580 */ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 364 /* 590 */ 171, 20, 25, 22, 41, 28, 9, 130, 89, 46, 365 /* 600 */ 9, 92, 183, 184, 9, 155, 156, 99, 189, 87, 366 /* 610 */ 88, 161, 45, 60, 61, 62, 63, 64, 65, 66, 367 /* 620 */ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 368 /* 630 */ 77, 78, 79, 80, 81, 82, 83, 115, 161, 162, 369 /* 640 */ 21, 41, 23, 103, 140, 168, 46, 17, 20, 107, 370 /* 650 */ 22, 109, 110, 113, 107, 89, 109, 110, 92, 88, 371 /* 660 */ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 372 /* 670 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 373 /* 680 */ 80, 81, 82, 83, 143, 140, 115, 57, 41, 59, 374 /* 690 */ 20, 114, 22, 46, 107, 19, 109, 110, 107, 195, 375 /* 700 */ 109, 110, 107, 158, 109, 110, 87, 122, 61, 62, 376 /* 710 */ 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 377 /* 720 */ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 378 /* 730 */ 83, 11, 140, 140, 140, 41, 22, 140, 93, 20, 379 /* 740 */ 46, 22, 20, 198, 22, 20, 205, 22, 62, 104, 380 /* 750 */ 158, 158, 211, 113, 114, 158, 62, 63, 64, 65, 381 /* 760 */ 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 382 /* 770 */ 76, 77, 78, 79, 80, 81, 82, 83, 11, 93, 383 /* 780 */ 13, 14, 15, 16, 19, 23, 9, 156, 23, 20, 384 /* 790 */ 198, 22, 161, 20, 27, 22, 140, 140, 140, 32, 385 /* 800 */ 206, 140, 88, 20, 37, 22, 146, 146, 140, 140, 386 /* 810 */ 146, 140, 140, 140, 146, 140, 158, 52, 51, 158, 387 /* 820 */ 53, 140, 87, 140, 167, 58, 158, 62, 140, 115, 388 /* 830 */ 158, 171, 171, 158, 35, 171, 167, 19, 167, 171, 389 /* 840 */ 167, 23, 89, 78, 79, 80, 158, 127, 167, 87, 390 /* 850 */ 167, 86, 87, 88, 89, 194, 41, 92, 93, 9, 391 /* 860 */ 196, 46, 194, 206, 140, 204, 140, 100, 101, 102, 392 /* 870 */ 52, 89, 204, 106, 92, 206, 212, 206, 111, 206, 393 /* 880 */ 62, 217, 158, 68, 69, 140, 22, 206, 19, 206, 394 /* 890 */ 125, 126, 23, 116, 140, 140, 78, 79, 140, 140, 395 /* 900 */ 140, 55, 56, 158, 86, 87, 88, 89, 93, 26, 396 /* 910 */ 92, 93, 158, 158, 140, 140, 158, 158, 158, 36, 397 /* 920 */ 140, 52, 9, 10, 140, 199, 20, 140, 22, 111, 398 /* 930 */ 140, 62, 158, 158, 140, 140, 140, 19, 158, 134, 399 /* 940 */ 135, 140, 158, 125, 126, 158, 146, 78, 79, 140, 400 /* 950 */ 140, 140, 158, 158, 158, 86, 87, 88, 89, 158, 401 /* 960 */ 152, 92, 93, 99, 20, 140, 22, 158, 158, 158, 402 /* 970 */ 140, 171, 20, 140, 22, 9, 152, 146, 108, 140, 403 /* 980 */ 140, 111, 20, 158, 22, 140, 22, 140, 158, 199, 404 /* 990 */ 182, 158, 22, 140, 125, 126, 127, 158, 158, 140, 405 /* 1000 */ 9, 140, 171, 158, 19, 158, 182, 20, 140, 22, 406 /* 1010 */ 47, 158, 19, 140, 21, 140, 140, 158, 140, 158, 407 /* 1020 */ 50, 20, 140, 22, 140, 9, 158, 93, 113, 152, 408 /* 1030 */ 9, 113, 9, 158, 158, 9, 158, 9, 176, 210, 409 /* 1040 */ 158, 9, 158, 157, 9, 140, 9, 210, 113, 9, 410 /* 1050 */ 119, 9, 140, 20, 9, 200, 218, 33, 111, 99, 411 /* 1060 */ 139, 20, 99, 19, 185, 139, 20, 113, 152, 113, 412 /* 1070 */ 21, 99, 187, 140, 145, 188, 219, 140, 114, 111, 413 /* 1080 */ 113, 218, 116, 9, 177, 111, 111, 178, 20, 120, 414 /* 1090 */ 154, 142, 139, 117, 19, 140, 154, 159, 113, 160, 415 /* 1100 */ 9, 140, 162, 138, 113, 127, 163, 203, 14, 179, 416 /* 1110 */ 202, 163, 9, 121, 163, 138, 23, 19, 118, 9, 417 /* 1120 */ 44, 164, 151, 22, 20, 180, 140, 20, 22, 20, 418 /* 1130 */ 157, 173, 152, 22, 140, 154, 20, 22, 154, 20, 419 /* 1140 */ 9, 138, 140, 164, 139, 48, 19, 139, 166, 19, 420 /* 1150 */ 139, 113, 31, 170, 166, 140, 48, 19, 98, 97, 421 /* 1160 */ 140, 139, 104, 159, 21, 140, 160, 140, 9, 140, 422 /* 1170 */ 140, 140, 213, 40, 140, 186, 99, 11, 9, 140, 423 /* 1180 */ 38, 99, 186, 193, 99, 186, 49, 140, 140, 118, 424 /* 1190 */ 22, 130, 140, 157, 99, 140, 186, 19, 139, 9, 425 /* 1200 */ 157, 138, 193, 152, 154, 151, 150, 200, 130, 214, 426 /* 1210 */ 11, 139, 215, 123, 216, 123, 14, 9, 9, 140, 427 /* 1220 */ 14, 140, 12, 103, 171, 9, 169, 140, 63, 140, 428 /* 1230 */ 9, 9, 83, 63, 170, 169, 140, 123, 19, 140, 429 /* 1240 */ 115, 176, 89, 19, 9, 140, 9, 9, 114, 176, 430 /* 1250 */ 9, 9, 140, 140, 9, 186, 186, 140, 140, 9, 431 /* 1260 */ 114, 175, 140, 140, 197, 9, 186, 103, 140, 186, 432 /* 1270 */ 186, 169, 140, 48, 9, 123, 176, 220, 220, 140, 433 /* 1280 */ 140, 220, 220, 220, 220, 220, 220, 220, 220, 220, 434 /* 1290 */ 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 435 /* 1300 */ 176, 220, 220, 220, 220, 220, 220, 220, 220, 220, 436 /* 1310 */ 220, 220, 220, 187, 220, 186, 437 }; 438 #define YY_SHIFT_USE_DFLT (-79) 439 static short yy_shift_ofst[] = { 440 /* 0 */ 913, 497, -79, 767, 1235, -79, 1221, 1210, 396, 1169, 441 /* 10 */ 1121, 229, -79, -79, -79, -79, -79, -79, 119, -79, 442 /* 20 */ -79, -79, -79, 475, 1131, 475, 1103, 475, 1091, 993, 443 /* 30 */ 1074, 119, 962, 1046, 1042, 162, -79, 762, -79, -26, 444 /* 40 */ -79, 119, 85, -79, 960, -79, 645, 960, -79, 1076, 445 /* 50 */ -79, 449, -79, -79, 1225, 883, 960, -79, -79, -79, 446 /* 60 */ 960, -79, 1044, 309, 918, 122, 954, 956, 818, -79, 447 /* 70 */ 174, 947, -79, 292, -79, 964, 585, 931, 969, 976, 448 /* 80 */ 992, -79, 402, -79, 1153, -79, 753, -79, 970, 402, 449 /* 90 */ -79, 402, -79, 1000, 309, 1115, 309, 1060, 883, -79, 450 /* 100 */ 1093, -79, -79, 506, 309, -79, 915, 119, 935, 119, 451 /* 110 */ -79, -79, -79, -79, 694, 309, 647, 309, -48, 309, 452 /* 120 */ -48, 309, -48, 309, -48, 309, -67, 309, -67, 309, 453 /* 130 */ 14, 309, 14, 309, 14, 309, 14, 309, -67, 815, 454 /* 140 */ 309, -67, -79, -79, 309, 303, 309, 303, 309, 1149, 455 /* 150 */ 309, 1149, 309, 1149, 309, -79, -79, 686, -79, 934, 456 /* 160 */ -79, -79, 309, 600, 309, -67, 125, 818, 340, 870, 457 /* 170 */ 968, 974, 975, -79, 506, 309, 694, 309, -79, 309, 458 /* 180 */ -79, 309, -79, 869, 90, 978, 191, 1094, -79, 309, 459 /* 190 */ 158, 309, 506, 1098, 231, 1104, -79, 1101, 119, 1107, 460 /* 200 */ -79, 1106, 119, 1109, -79, 1111, 119, 1116, -79, 309, 461 /* 210 */ 228, 309, 275, 309, 506, 670, -79, 309, -79, -79, 462 /* 220 */ 1038, 119, -79, -79, -79, 309, 553, 309, 694, 351, 463 /* 230 */ 818, 344, -79, 783, -79, 1038, -79, 1060, 883, -79, 464 /* 240 */ 309, 506, 1071, 309, 1168, 309, 506, -79, -79, 714, 465 /* 250 */ -79, -79, -79, 291, -79, 522, -79, 1125, -79, 414, 466 /* 260 */ 1038, 619, -79, -79, 119, -79, -79, 972, -78, -79, 467 /* 270 */ 676, 119, 769, -79, 119, -79, 883, -79, -79, 309, 468 /* 280 */ 506, 947, 379, 571, 1041, 619, 972, -78, -79, 765, 469 /* 290 */ -21, -79, -79, 967, 423, -79, -79, -79, -79, 43, 470 /* 300 */ -79, 987, -79, 1068, -79, 459, 960, -79, 119, 1075, 471 /* 310 */ -79, 963, -79, 119, -79, 224, 73, -79, -74, -79, 472 /* 320 */ -79, -79, -79, 73, -79, 73, -79, 119, 628, -79, 473 /* 330 */ -79, 1093, -79, 1076, -79, -79, -2, -79, -79, -79, 474 /* 340 */ 509, -79, -79, 566, -79, -79, -79, -79, -1, 402, 475 /* 350 */ 773, -79, 402, 1119, -79, -79, -79, -79, 170, 182, 476 /* 360 */ -79, 119, -79, 1097, 1127, 119, 725, 960, -79, 1130, 477 /* 370 */ 119, 952, 960, -79, 309, 395, -79, 1108, 1138, 119, 478 /* 380 */ 719, 1062, 119, 1075, -79, 451, 1058, -79, -79, -79, 479 /* 390 */ -79, -79, 947, 439, 467, 630, 119, -79, 119, 1143, 480 /* 400 */ 947, 542, 119, 567, 290, 1077, 119, 1038, 1133, 720, 481 /* 410 */ 1166, 309, 348, 1142, 846, -79, -79, 1082, 1085, 508, 482 /* 420 */ 119, 864, 119, -79, -79, -79, -79, 1137, -79, -79, 483 /* 430 */ 1061, 119, 1095, 119, 985, 1178, 119, 1001, 396, 1190, 484 /* 440 */ 1078, 1199, 86, 547, 80, 229, -79, 1090, 1092, 1202, 485 /* 450 */ 1208, 1209, 86, 1206, 269, 119, 1120, 119, 121, 119, 486 /* 460 */ 1165, 309, 506, 1222, 1170, 309, 506, 1114, 119, 1219, 487 /* 470 */ 119, 906, -79, 22, 587, 1224, 309, 944, 309, 506, 488 /* 480 */ 1237, 506, 1134, 119, 123, 1238, 310, 119, 1241, 119, 489 /* 490 */ 1242, 119, 991, 1245, 119, 991, 1250, 591, 1146, 119, 490 /* 500 */ 1038, 123, 1256, 269, 119, 540, 1164, 119, 121, 1265, 491 /* 510 */ 1152, 119, 1038, 1219, -36, 595, 244, 309, 722, 308, 492 /* 520 */ 269, 119, 640, 577, 119, 777, 799, 735, 850, 473, 493 /* 530 */ 1016, 762, 495, 50, 1021, 1023, 1026, 1028, 782, 1032, 494 /* 540 */ 1035, 1037, 782, 1040, -79, 119, 1033, 1045, 1024, 762, 495 /* 550 */ 1049, 119, 966, 1110, 762, 1216, -79, 1024, 119, 1159, 496 /* 560 */ -79, -79, -79, 497 }; 498 #define YY_REDUCE_USE_DFLT (-197) 499 static short yy_reduce_ofst[] = { 500 /* 0 */ -53, 805, -197, 236, -197, -197, -197, 1063, 1072, -197, 501 /* 10 */ -197, 983, -197, -197, -197, -197, -197, -197, 1048, -197, 502 /* 20 */ -197, -197, -197, 1003, -197, 977, -197, 965, -197, 949, 503 /* 30 */ -197, 175, 929, -197, -197, 114, -197, 363, 1056, 450, 504 /* 40 */ -197, 1039, 631, -197, 1022, -197, -197, 1005, -197, 979, 505 /* 50 */ -197, -197, -197, -197, -197, 973, 926, -197, -197, -197, 506 /* 60 */ 921, -197, -197, 801, -197, 172, -197, -197, 222, -197, 507 /* 70 */ 19, 1053, -197, 958, 271, 1086, 862, 907, 909, 930, 508 /* 80 */ 945, -197, 1050, -197, -197, -197, -197, -197, -197, 936, 509 /* 90 */ -197, 942, -197, -197, -57, -197, 173, 990, 1036, -197, 510 /* 100 */ 1054, -197, -197, 855, 758, -197, -197, 905, -197, 937, 511 /* 110 */ -197, -197, -197, -197, 855, 37, 855, 658, 855, 675, 512 /* 120 */ 855, 688, 855, 745, 855, 884, 855, 755, 855, 859, 513 /* 130 */ 855, 759, 855, 780, 855, 839, 855, 760, 855, 1007, 514 /* 140 */ 811, 855, -197, -197, 35, 855, 724, 855, 775, 855, 515 /* 150 */ 794, 855, 809, 855, 853, 855, -197, -197, -197, -197, 516 /* 160 */ -197, -197, 830, 855, 796, 855, 933, 661, 19, -197, 517 /* 170 */ -197, -197, -197, -197, 855, 861, 855, 868, 855, 875, 518 /* 180 */ 855, 882, 855, 58, 855, 908, 904, -197, -197, 593, 519 /* 190 */ 855, 597, 855, -197, -197, -197, -197, -197, 986, -197, 520 /* 200 */ -197, -197, 1140, -197, -197, -197, 994, -197, -197, 847, 521 /* 210 */ 855, 672, 855, 845, 855, -197, -197, 359, -197, -197, 522 /* 220 */ 989, 1015, -197, -197, -197, 787, 855, 810, 855, 1027, 523 /* 230 */ 668, 19, -197, -197, -197, 999, -197, 1009, 1043, -197, 524 /* 240 */ 833, 855, -197, 350, -197, 876, 855, -197, -160, 879, 525 /* 250 */ -197, -197, -197, 1089, -197, 1096, -197, -197, -197, 1105, 526 /* 260 */ 1069, 824, -197, -197, 1122, -197, -197, 1126, 97, -197, 527 /* 270 */ -197, 669, -197, -197, 594, -197, 886, -197, -197, 795, 528 /* 280 */ 855, 419, 19, 879, -197, 808, 885, 887, -197, 840, 529 /* 290 */ 181, -197, -197, -197, 905, -197, -197, -197, -197, 855, 530 /* 300 */ -197, -197, -197, -197, -197, 855, 953, -197, 955, 938, 531 /* 310 */ 939, 940, -197, 961, -197, -197, 943, -197, -197, -197, 532 /* 320 */ -197, -197, -197, 948, -197, 951, -197, 671, -197, -197, 533 /* 330 */ -197, 971, -197, 957, -197, -197, -197, -197, -197, -197, 534 /* 340 */ -197, -197, -197, -197, -197, -197, -197, -197, 980, 981, 535 /* 350 */ -197, -197, 984, -197, -197, -197, -197, -197, 982, 988, 536 /* 360 */ -197, 1002, -197, -197, -197, 673, -197, 1008, -197, -197, 537 /* 370 */ 683, -197, 1011, -197, 878, -102, -197, -197, -197, 681, 538 /* 380 */ -197, -197, 1020, 1004, 1006, 477, -197, -197, -197, -197, 539 /* 390 */ -197, -197, 831, 19, 541, -197, 1029, -197, 1030, -197, 540 /* 400 */ -72, 19, 1031, 959, 995, -197, 1034, 996, 997, 998, 541 /* 410 */ -197, 754, 855, -197, -197, -197, -197, -197, -197, -197, 542 /* 420 */ 790, -197, 1047, -197, -197, -197, -197, -197, -197, -197, 543 /* 430 */ -197, 1052, -197, 1055, 1010, -197, 657, -197, 1059, -197, 544 /* 440 */ -197, -197, 347, 19, 1057, 1064, -197, -197, -197, -197, 545 /* 450 */ -197, -197, 664, -197, 1066, 1081, -197, 504, 1065, 1087, 546 /* 460 */ -197, 774, 855, -197, -197, 784, 855, -197, 1099, 1067, 547 /* 470 */ 726, -197, -197, 800, 19, -197, 545, -197, 825, 855, 548 /* 480 */ -197, 855, -197, 1112, 1073, -197, -197, 1113, -197, 1117, 549 /* 490 */ -197, 1118, 1070, -197, 1123, 1080, -197, 19, -197, 1128, 550 /* 500 */ 1083, 1100, -197, 1102, 1132, 1084, -197, 56, 1124, -197, 551 /* 510 */ -197, 1139, 1129, -196, 660, 19, -197, 592, -197, -197, 552 /* 520 */ 165, 369, 367, -197, 656, -197, -197, -197, -197, 873, 553 /* 530 */ -197, 877, -197, 235, -197, -197, -197, -197, 829, -197, 554 /* 540 */ -197, -197, 837, -197, -197, 912, -197, -197, 838, 916, 555 /* 550 */ -197, 1079, 857, -197, 1051, -197, -197, 863, 1025, -197, 556 /* 560 */ -197, -197, -197, 557 }; 558 static YYACTIONTYPE yy_default[] = { 559 /* 0 */ 570, 570, 564, 856, 856, 566, 856, 572, 856, 856, 560 /* 10 */ 856, 856, 652, 655, 656, 657, 658, 659, 573, 574, 561 /* 20 */ 591, 592, 593, 856, 856, 856, 856, 856, 856, 856, 562 /* 30 */ 856, 856, 856, 856, 856, 856, 584, 594, 604, 586, 563 /* 40 */ 603, 856, 856, 605, 651, 616, 856, 651, 617, 636, 564 /* 50 */ 634, 856, 637, 638, 856, 708, 651, 618, 706, 707, 565 /* 60 */ 651, 619, 856, 856, 737, 797, 743, 738, 856, 664, 566 /* 70 */ 856, 856, 665, 673, 675, 682, 720, 711, 713, 701, 567 /* 80 */ 715, 670, 856, 600, 856, 601, 856, 602, 716, 856, 568 /* 90 */ 717, 856, 718, 856, 856, 702, 856, 709, 708, 703, 569 /* 100 */ 856, 588, 710, 705, 856, 736, 856, 856, 739, 856, 570 /* 110 */ 740, 741, 742, 744, 747, 856, 748, 856, 749, 856, 571 /* 120 */ 750, 856, 751, 856, 752, 856, 753, 856, 754, 856, 572 /* 130 */ 755, 856, 756, 856, 757, 856, 758, 856, 759, 856, 573 /* 140 */ 856, 760, 761, 762, 856, 763, 856, 764, 856, 765, 574 /* 150 */ 856, 766, 856, 767, 856, 768, 769, 856, 770, 856, 575 /* 160 */ 773, 771, 856, 856, 856, 779, 856, 797, 856, 856, 576 /* 170 */ 856, 856, 856, 782, 796, 856, 774, 856, 775, 856, 577 /* 180 */ 776, 856, 777, 856, 856, 856, 856, 856, 787, 856, 578 /* 190 */ 856, 856, 788, 856, 856, 856, 845, 856, 856, 856, 579 /* 200 */ 846, 856, 856, 856, 847, 856, 856, 856, 848, 856, 580 /* 210 */ 856, 856, 856, 856, 789, 856, 781, 797, 794, 795, 581 /* 220 */ 690, 856, 691, 785, 772, 856, 856, 856, 780, 856, 582 /* 230 */ 797, 856, 784, 856, 783, 690, 786, 709, 708, 704, 583 /* 240 */ 856, 714, 856, 797, 712, 856, 721, 674, 685, 683, 584 /* 250 */ 684, 692, 693, 856, 694, 856, 695, 856, 696, 856, 585 /* 260 */ 690, 681, 589, 590, 856, 679, 680, 698, 700, 686, 586 /* 270 */ 856, 856, 856, 699, 856, 803, 708, 805, 804, 856, 587 /* 280 */ 697, 685, 856, 856, 856, 681, 698, 700, 687, 856, 588 /* 290 */ 681, 676, 677, 856, 856, 678, 671, 672, 778, 856, 589 /* 300 */ 735, 856, 745, 856, 746, 856, 651, 620, 856, 801, 590 /* 310 */ 624, 621, 625, 856, 626, 856, 856, 627, 856, 630, 591 /* 320 */ 631, 632, 633, 856, 628, 856, 629, 856, 856, 802, 592 /* 330 */ 622, 856, 623, 636, 635, 606, 856, 607, 608, 609, 593 /* 340 */ 856, 610, 613, 856, 611, 614, 612, 615, 595, 856, 594 /* 350 */ 856, 596, 856, 856, 597, 599, 598, 587, 856, 856, 595 /* 360 */ 641, 856, 644, 856, 856, 856, 856, 651, 645, 856, 596 /* 370 */ 856, 856, 651, 646, 856, 651, 647, 856, 856, 856, 597 /* 380 */ 856, 856, 856, 801, 624, 649, 856, 648, 650, 642, 598 /* 390 */ 643, 585, 856, 856, 581, 856, 856, 579, 856, 856, 599 /* 400 */ 856, 856, 856, 828, 856, 856, 856, 690, 833, 856, 600 /* 410 */ 856, 856, 856, 856, 856, 834, 835, 856, 856, 856, 601 /* 420 */ 856, 856, 856, 733, 734, 825, 826, 856, 827, 580, 602 /* 430 */ 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 603 /* 440 */ 856, 856, 856, 856, 856, 856, 654, 856, 856, 856, 604 /* 450 */ 856, 856, 856, 856, 653, 856, 856, 856, 856, 856, 605 /* 460 */ 856, 856, 723, 856, 856, 856, 724, 856, 856, 731, 606 /* 470 */ 856, 856, 732, 856, 856, 856, 856, 856, 856, 729, 607 /* 480 */ 856, 730, 856, 856, 856, 856, 856, 856, 856, 856, 608 /* 490 */ 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 609 /* 500 */ 690, 856, 856, 653, 856, 856, 856, 856, 856, 856, 610 /* 510 */ 856, 856, 690, 731, 856, 856, 856, 856, 856, 856, 611 /* 520 */ 653, 856, 856, 856, 856, 856, 856, 856, 856, 856, 612 /* 530 */ 856, 856, 856, 822, 856, 856, 856, 856, 856, 856, 613 /* 540 */ 856, 856, 856, 856, 821, 856, 856, 856, 854, 856, 614 /* 550 */ 856, 856, 856, 856, 856, 856, 853, 854, 856, 856, 615 /* 560 */ 567, 569, 565, 616 }; 617 #define YY_SZ_ACTTAB (sizeof(yy_action)/sizeof(yy_action[0])) 618 619 /* The next table maps tokens into fallback tokens. If a construct 620 ** like the following: 621 ** 622 ** %fallback ID X Y Z. 623 ** 624 ** appears in the grammer, then ID becomes a fallback token for X, Y, 625 ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser 626 ** but it does not parse, the type of the token is changed to ID and 627 ** the parse is retried before an error is thrown. 628 */ 629 #ifdef YYFALLBACK 630 static const YYCODETYPE yyFallback[] = { 631 0, /* $ => nothing */ 632 0, /* END_OF_FILE => nothing */ 633 0, /* ILLEGAL => nothing */ 634 0, /* SPACE => nothing */ 635 0, /* UNCLOSED_STRING => nothing */ 636 0, /* COMMENT => nothing */ 637 0, /* FUNCTION => nothing */ 638 0, /* COLUMN => nothing */ 639 0, /* AGG_FUNCTION => nothing */ 640 0, /* SEMI => nothing */ 641 23, /* EXPLAIN => ID */ 642 23, /* BEGIN => ID */ 643 0, /* TRANSACTION => nothing */ 644 0, /* COMMIT => nothing */ 645 23, /* END => ID */ 646 0, /* ROLLBACK => nothing */ 647 0, /* CREATE => nothing */ 648 0, /* TABLE => nothing */ 649 23, /* TEMP => ID */ 650 0, /* LP => nothing */ 651 0, /* RP => nothing */ 652 0, /* AS => nothing */ 653 0, /* COMMA => nothing */ 654 0, /* ID => nothing */ 655 23, /* ABORT => ID */ 656 23, /* AFTER => ID */ 657 23, /* ASC => ID */ 658 23, /* ATTACH => ID */ 659 23, /* BEFORE => ID */ 660 23, /* CASCADE => ID */ 661 23, /* CLUSTER => ID */ 662 23, /* CONFLICT => ID */ 663 23, /* COPY => ID */ 664 23, /* DATABASE => ID */ 665 23, /* DEFERRED => ID */ 666 23, /* DELIMITERS => ID */ 667 23, /* DESC => ID */ 668 23, /* DETACH => ID */ 669 23, /* EACH => ID */ 670 23, /* FAIL => ID */ 671 23, /* FOR => ID */ 672 23, /* GLOB => ID */ 673 23, /* IGNORE => ID */ 674 23, /* IMMEDIATE => ID */ 675 23, /* INITIALLY => ID */ 676 23, /* INSTEAD => ID */ 677 23, /* LIKE => ID */ 678 23, /* MATCH => ID */ 679 23, /* KEY => ID */ 680 23, /* OF => ID */ 681 23, /* OFFSET => ID */ 682 23, /* PRAGMA => ID */ 683 23, /* RAISE => ID */ 684 23, /* REPLACE => ID */ 685 23, /* RESTRICT => ID */ 686 23, /* ROW => ID */ 687 23, /* STATEMENT => ID */ 688 23, /* TRIGGER => ID */ 689 23, /* VACUUM => ID */ 690 23, /* VIEW => ID */ 691 0, /* OR => nothing */ 692 0, /* AND => nothing */ 693 0, /* NOT => nothing */ 694 0, /* EQ => nothing */ 695 0, /* NE => nothing */ 696 0, /* ISNULL => nothing */ 697 0, /* NOTNULL => nothing */ 698 0, /* IS => nothing */ 699 0, /* BETWEEN => nothing */ 700 0, /* IN => nothing */ 701 0, /* GT => nothing */ 702 0, /* GE => nothing */ 703 0, /* LT => nothing */ 704 0, /* LE => nothing */ 705 0, /* BITAND => nothing */ 706 0, /* BITOR => nothing */ 707 0, /* LSHIFT => nothing */ 708 0, /* RSHIFT => nothing */ 709 0, /* PLUS => nothing */ 710 0, /* MINUS => nothing */ 711 0, /* STAR => nothing */ 712 0, /* SLASH => nothing */ 713 0, /* REM => nothing */ 714 0, /* CONCAT => nothing */ 715 0, /* UMINUS => nothing */ 716 0, /* UPLUS => nothing */ 717 0, /* BITNOT => nothing */ 718 0, /* STRING => nothing */ 719 0, /* JOIN_KW => nothing */ 720 0, /* INTEGER => nothing */ 721 0, /* CONSTRAINT => nothing */ 722 0, /* DEFAULT => nothing */ 723 0, /* FLOAT => nothing */ 724 0, /* NULL => nothing */ 725 0, /* PRIMARY => nothing */ 726 0, /* UNIQUE => nothing */ 727 0, /* CHECK => nothing */ 728 0, /* REFERENCES => nothing */ 729 0, /* COLLATE => nothing */ 730 0, /* ON => nothing */ 731 0, /* DELETE => nothing */ 732 0, /* UPDATE => nothing */ 733 0, /* INSERT => nothing */ 734 0, /* SET => nothing */ 735 0, /* DEFERRABLE => nothing */ 736 0, /* FOREIGN => nothing */ 737 0, /* DROP => nothing */ 738 0, /* UNION => nothing */ 739 0, /* ALL => nothing */ 740 0, /* INTERSECT => nothing */ 741 0, /* EXCEPT => nothing */ 742 0, /* SELECT => nothing */ 743 0, /* DISTINCT => nothing */ 744 0, /* DOT => nothing */ 745 0, /* FROM => nothing */ 746 0, /* JOIN => nothing */ 747 0, /* USING => nothing */ 748 0, /* ORDER => nothing */ 749 0, /* BY => nothing */ 750 0, /* GROUP => nothing */ 751 0, /* HAVING => nothing */ 752 0, /* LIMIT => nothing */ 753 0, /* WHERE => nothing */ 754 0, /* INTO => nothing */ 755 0, /* VALUES => nothing */ 756 0, /* VARIABLE => nothing */ 757 0, /* CASE => nothing */ 758 0, /* WHEN => nothing */ 759 0, /* THEN => nothing */ 760 0, /* ELSE => nothing */ 761 0, /* INDEX => nothing */ 762 }; 763 #endif /* YYFALLBACK */ 764 765 /* The following structure represents a single element of the 766 ** parser's stack. Information stored includes: 767 ** 768 ** + The state number for the parser at this level of the stack. 769 ** 770 ** + The value of the token stored at this level of the stack. 771 ** (In other words, the "major" token.) 772 ** 773 ** + The semantic value stored at this level of the stack. This is 774 ** the information used by the action routines in the grammar. 775 ** It is sometimes called the "minor" token. 776 */ 777 struct yyStackEntry { 778 int stateno; /* The state-number */ 779 int major; /* The major token value. This is the code 780 ** number for the token at this stack level */ 781 YYMINORTYPE minor; /* The user-supplied minor token value. This 782 ** is the value of the token */ 783 }; 784 typedef struct yyStackEntry yyStackEntry; 785 786 /* The state of the parser is completely contained in an instance of 787 ** the following structure */ 788 struct yyParser { 789 int yyidx; /* Index of top element in stack */ 790 int yyerrcnt; /* Shifts left before out of the error */ 791 sqliteParserARG_SDECL /* A place to hold %extra_argument */ 792 yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ 793 }; 794 typedef struct yyParser yyParser; 795 796 #ifndef NDEBUG 797 #include <stdio.h> 798 static FILE *yyTraceFILE = 0; 799 static char *yyTracePrompt = 0; 800 #endif /* NDEBUG */ 801 802 #ifndef NDEBUG 803 /* 804 ** Turn parser tracing on by giving a stream to which to write the trace 805 ** and a prompt to preface each trace message. Tracing is turned off 806 ** by making either argument NULL 807 ** 808 ** Inputs: 809 ** <ul> 810 ** <li> A FILE* to which trace output should be written. 811 ** If NULL, then tracing is turned off. 812 ** <li> A prefix string written at the beginning of every 813 ** line of trace output. If NULL, then tracing is 814 ** turned off. 815 ** </ul> 816 ** 817 ** Outputs: 818 ** None. 819 */ 820 void sqliteParserTrace(FILE *TraceFILE, char *zTracePrompt){ 821 yyTraceFILE = TraceFILE; 822 yyTracePrompt = zTracePrompt; 823 if( yyTraceFILE==0 ) yyTracePrompt = 0; 824 else if( yyTracePrompt==0 ) yyTraceFILE = 0; 825 } 826 #endif /* NDEBUG */ 827 828 #ifndef NDEBUG 829 /* For tracing shifts, the names of all terminals and nonterminals 830 ** are required. The following table supplies these names */ 831 static const char *yyTokenName[] = { 832 "$", "END_OF_FILE", "ILLEGAL", "SPACE", 833 "UNCLOSED_STRING", "COMMENT", "FUNCTION", "COLUMN", 834 "AGG_FUNCTION", "SEMI", "EXPLAIN", "BEGIN", 835 "TRANSACTION", "COMMIT", "END", "ROLLBACK", 836 "CREATE", "TABLE", "TEMP", "LP", 837 "RP", "AS", "COMMA", "ID", 838 "ABORT", "AFTER", "ASC", "ATTACH", 839 "BEFORE", "CASCADE", "CLUSTER", "CONFLICT", 840 "COPY", "DATABASE", "DEFERRED", "DELIMITERS", 841 "DESC", "DETACH", "EACH", "FAIL", 842 "FOR", "GLOB", "IGNORE", "IMMEDIATE", 843 "INITIALLY", "INSTEAD", "LIKE", "MATCH", 844 "KEY", "OF", "OFFSET", "PRAGMA", 845 "RAISE", "REPLACE", "RESTRICT", "ROW", 846 "STATEMENT", "TRIGGER", "VACUUM", "VIEW", 847 "OR", "AND", "NOT", "EQ", 848 "NE", "ISNULL", "NOTNULL", "IS", 849 "BETWEEN", "IN", "GT", "GE", 850 "LT", "LE", "BITAND", "BITOR", 851 "LSHIFT", "RSHIFT", "PLUS", "MINUS", 852 "STAR", "SLASH", "REM", "CONCAT", 853 "UMINUS", "UPLUS", "BITNOT", "STRING", 854 "JOIN_KW", "INTEGER", "CONSTRAINT", "DEFAULT", 855 "FLOAT", "NULL", "PRIMARY", "UNIQUE", 856 "CHECK", "REFERENCES", "COLLATE", "ON", 857 "DELETE", "UPDATE", "INSERT", "SET", 858 "DEFERRABLE", "FOREIGN", "DROP", "UNION", 859 "ALL", "INTERSECT", "EXCEPT", "SELECT", 860 "DISTINCT", "DOT", "FROM", "JOIN", 861 "USING", "ORDER", "BY", "GROUP", 862 "HAVING", "LIMIT", "WHERE", "INTO", 863 "VALUES", "VARIABLE", "CASE", "WHEN", 864 "THEN", "ELSE", "INDEX", "error", 865 "input", "cmdlist", "ecmd", "explain", 866 "cmdx", "cmd", "trans_opt", "onconf", 867 "nm", "create_table", "create_table_args", "temp", 868 "columnlist", "conslist_opt", "select", "column", 869 "columnid", "type", "carglist", "id", 870 "ids", "typename", "signed", "carg", 871 "ccons", "sortorder", "expr", "idxlist_opt", 872 "refargs", "defer_subclause", "refarg", "refact", 873 "init_deferred_pred_opt", "conslist", "tcons", "idxlist", 874 "defer_subclause_opt", "orconf", "resolvetype", "oneselect", 875 "multiselect_op", "distinct", "selcollist", "from", 876 "where_opt", "groupby_opt", "having_opt", "orderby_opt", 877 "limit_opt", "sclp", "as", "seltablist", 878 "stl_prefix", "joinop", "dbnm", "on_opt", 879 "using_opt", "seltablist_paren", "joinop2", "sortlist", 880 "sortitem", "collate", "exprlist", "setlist", 881 "insert_cmd", "inscollist_opt", "itemlist", "inscollist", 882 "likeop", "case_operand", "case_exprlist", "case_else", 883 "expritem", "uniqueflag", "idxitem", "plus_num", 884 "minus_num", "plus_opt", "number", "trigger_decl", 885 "trigger_cmd_list", "trigger_time", "trigger_event", "foreach_clause", 886 "when_clause", "trigger_cmd", "database_kw_opt", "key_opt", 887 }; 888 #endif /* NDEBUG */ 889 890 #ifndef NDEBUG 891 /* For tracing reduce actions, the names of all rules are required. 892 */ 893 static const char *yyRuleName[] = { 894 /* 0 */ "input ::= cmdlist", 895 /* 1 */ "cmdlist ::= cmdlist ecmd", 896 /* 2 */ "cmdlist ::= ecmd", 897 /* 3 */ "ecmd ::= explain cmdx SEMI", 898 /* 4 */ "ecmd ::= SEMI", 899 /* 5 */ "cmdx ::= cmd", 900 /* 6 */ "explain ::= EXPLAIN", 901 /* 7 */ "explain ::=", 902 /* 8 */ "cmd ::= BEGIN trans_opt onconf", 903 /* 9 */ "trans_opt ::=", 904 /* 10 */ "trans_opt ::= TRANSACTION", 905 /* 11 */ "trans_opt ::= TRANSACTION nm", 906 /* 12 */ "cmd ::= COMMIT trans_opt", 907 /* 13 */ "cmd ::= END trans_opt", 908 /* 14 */ "cmd ::= ROLLBACK trans_opt", 909 /* 15 */ "cmd ::= create_table create_table_args", 910 /* 16 */ "create_table ::= CREATE temp TABLE nm", 911 /* 17 */ "temp ::= TEMP", 912 /* 18 */ "temp ::=", 913 /* 19 */ "create_table_args ::= LP columnlist conslist_opt RP", 914 /* 20 */ "create_table_args ::= AS select", 915 /* 21 */ "columnlist ::= columnlist COMMA column", 916 /* 22 */ "columnlist ::= column", 917 /* 23 */ "column ::= columnid type carglist", 918 /* 24 */ "columnid ::= nm", 919 /* 25 */ "id ::= ID", 920 /* 26 */ "ids ::= ID", 921 /* 27 */ "ids ::= STRING", 922 /* 28 */ "nm ::= ID", 923 /* 29 */ "nm ::= STRING", 924 /* 30 */ "nm ::= JOIN_KW", 925 /* 31 */ "type ::=", 926 /* 32 */ "type ::= typename", 927 /* 33 */ "type ::= typename LP signed RP", 928 /* 34 */ "type ::= typename LP signed COMMA signed RP", 929 /* 35 */ "typename ::= ids", 930 /* 36 */ "typename ::= typename ids", 931 /* 37 */ "signed ::= INTEGER", 932 /* 38 */ "signed ::= PLUS INTEGER", 933 /* 39 */ "signed ::= MINUS INTEGER", 934 /* 40 */ "carglist ::= carglist carg", 935 /* 41 */ "carglist ::=", 936 /* 42 */ "carg ::= CONSTRAINT nm ccons", 937 /* 43 */ "carg ::= ccons", 938 /* 44 */ "carg ::= DEFAULT STRING", 939 /* 45 */ "carg ::= DEFAULT ID", 940 /* 46 */ "carg ::= DEFAULT INTEGER", 941 /* 47 */ "carg ::= DEFAULT PLUS INTEGER", 942 /* 48 */ "carg ::= DEFAULT MINUS INTEGER", 943 /* 49 */ "carg ::= DEFAULT FLOAT", 944 /* 50 */ "carg ::= DEFAULT PLUS FLOAT", 945 /* 51 */ "carg ::= DEFAULT MINUS FLOAT", 946 /* 52 */ "carg ::= DEFAULT NULL", 947 /* 53 */ "ccons ::= NULL onconf", 948 /* 54 */ "ccons ::= NOT NULL onconf", 949 /* 55 */ "ccons ::= PRIMARY KEY sortorder onconf", 950 /* 56 */ "ccons ::= UNIQUE onconf", 951 /* 57 */ "ccons ::= CHECK LP expr RP onconf", 952 /* 58 */ "ccons ::= REFERENCES nm idxlist_opt refargs", 953 /* 59 */ "ccons ::= defer_subclause", 954 /* 60 */ "ccons ::= COLLATE id", 955 /* 61 */ "refargs ::=", 956 /* 62 */ "refargs ::= refargs refarg", 957 /* 63 */ "refarg ::= MATCH nm", 958 /* 64 */ "refarg ::= ON DELETE refact", 959 /* 65 */ "refarg ::= ON UPDATE refact", 960 /* 66 */ "refarg ::= ON INSERT refact", 961 /* 67 */ "refact ::= SET NULL", 962 /* 68 */ "refact ::= SET DEFAULT", 963 /* 69 */ "refact ::= CASCADE", 964 /* 70 */ "refact ::= RESTRICT", 965 /* 71 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt", 966 /* 72 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt", 967 /* 73 */ "init_deferred_pred_opt ::=", 968 /* 74 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED", 969 /* 75 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE", 970 /* 76 */ "conslist_opt ::=", 971 /* 77 */ "conslist_opt ::= COMMA conslist", 972 /* 78 */ "conslist ::= conslist COMMA tcons", 973 /* 79 */ "conslist ::= conslist tcons", 974 /* 80 */ "conslist ::= tcons", 975 /* 81 */ "tcons ::= CONSTRAINT nm", 976 /* 82 */ "tcons ::= PRIMARY KEY LP idxlist RP onconf", 977 /* 83 */ "tcons ::= UNIQUE LP idxlist RP onconf", 978 /* 84 */ "tcons ::= CHECK expr onconf", 979 /* 85 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refargs defer_subclause_opt", 980 /* 86 */ "defer_subclause_opt ::=", 981 /* 87 */ "defer_subclause_opt ::= defer_subclause", 982 /* 88 */ "onconf ::=", 983 /* 89 */ "onconf ::= ON CONFLICT resolvetype", 984 /* 90 */ "orconf ::=", 985 /* 91 */ "orconf ::= OR resolvetype", 986 /* 92 */ "resolvetype ::= ROLLBACK", 987 /* 93 */ "resolvetype ::= ABORT", 988 /* 94 */ "resolvetype ::= FAIL", 989 /* 95 */ "resolvetype ::= IGNORE", 990 /* 96 */ "resolvetype ::= REPLACE", 991 /* 97 */ "cmd ::= DROP TABLE nm", 992 /* 98 */ "cmd ::= CREATE temp VIEW nm AS select", 993 /* 99 */ "cmd ::= DROP VIEW nm", 994 /* 100 */ "cmd ::= select", 995 /* 101 */ "select ::= oneselect", 996 /* 102 */ "select ::= select multiselect_op oneselect", 997 /* 103 */ "multiselect_op ::= UNION", 998 /* 104 */ "multiselect_op ::= UNION ALL", 999 /* 105 */ "multiselect_op ::= INTERSECT", 1000 /* 106 */ "multiselect_op ::= EXCEPT", 1001 /* 107 */ "oneselect ::= SELECT distinct selcollist from where_opt groupby_opt having_opt orderby_opt limit_opt", 1002 /* 108 */ "distinct ::= DISTINCT", 1003 /* 109 */ "distinct ::= ALL", 1004 /* 110 */ "distinct ::=", 1005 /* 111 */ "sclp ::= selcollist COMMA", 1006 /* 112 */ "sclp ::=", 1007 /* 113 */ "selcollist ::= sclp expr as", 1008 /* 114 */ "selcollist ::= sclp STAR", 1009 /* 115 */ "selcollist ::= sclp nm DOT STAR", 1010 /* 116 */ "as ::= AS nm", 1011 /* 117 */ "as ::= ids", 1012 /* 118 */ "as ::=", 1013 /* 119 */ "from ::=", 1014 /* 120 */ "from ::= FROM seltablist", 1015 /* 121 */ "stl_prefix ::= seltablist joinop", 1016 /* 122 */ "stl_prefix ::=", 1017 /* 123 */ "seltablist ::= stl_prefix nm dbnm as on_opt using_opt", 1018 /* 124 */ "seltablist ::= stl_prefix LP seltablist_paren RP as on_opt using_opt", 1019 /* 125 */ "seltablist_paren ::= select", 1020 /* 126 */ "seltablist_paren ::= seltablist", 1021 /* 127 */ "dbnm ::=", 1022 /* 128 */ "dbnm ::= DOT nm", 1023 /* 129 */ "joinop ::= COMMA", 1024 /* 130 */ "joinop ::= JOIN", 1025 /* 131 */ "joinop ::= JOIN_KW JOIN", 1026 /* 132 */ "joinop ::= JOIN_KW nm JOIN", 1027 /* 133 */ "joinop ::= JOIN_KW nm nm JOIN", 1028 /* 134 */ "on_opt ::= ON expr", 1029 /* 135 */ "on_opt ::=", 1030 /* 136 */ "using_opt ::= USING LP idxlist RP", 1031 /* 137 */ "using_opt ::=", 1032 /* 138 */ "orderby_opt ::=", 1033 /* 139 */ "orderby_opt ::= ORDER BY sortlist", 1034 /* 140 */ "sortlist ::= sortlist COMMA sortitem collate sortorder", 1035 /* 141 */ "sortlist ::= sortitem collate sortorder", 1036 /* 142 */ "sortitem ::= expr", 1037 /* 143 */ "sortorder ::= ASC", 1038 /* 144 */ "sortorder ::= DESC", 1039 /* 145 */ "sortorder ::=", 1040 /* 146 */ "collate ::=", 1041 /* 147 */ "collate ::= COLLATE id", 1042 /* 148 */ "groupby_opt ::=", 1043 /* 149 */ "groupby_opt ::= GROUP BY exprlist", 1044 /* 150 */ "having_opt ::=", 1045 /* 151 */ "having_opt ::= HAVING expr", 1046 /* 152 */ "limit_opt ::=", 1047 /* 153 */ "limit_opt ::= LIMIT signed", 1048 /* 154 */ "limit_opt ::= LIMIT signed OFFSET signed", 1049 /* 155 */ "limit_opt ::= LIMIT signed COMMA signed", 1050 /* 156 */ "cmd ::= DELETE FROM nm dbnm where_opt", 1051 /* 157 */ "where_opt ::=", 1052 /* 158 */ "where_opt ::= WHERE expr", 1053 /* 159 */ "cmd ::= UPDATE orconf nm dbnm SET setlist where_opt", 1054 /* 160 */ "setlist ::= setlist COMMA nm EQ expr", 1055 /* 161 */ "setlist ::= nm EQ expr", 1056 /* 162 */ "cmd ::= insert_cmd INTO nm dbnm inscollist_opt VALUES LP itemlist RP", 1057 /* 163 */ "cmd ::= insert_cmd INTO nm dbnm inscollist_opt select", 1058 /* 164 */ "insert_cmd ::= INSERT orconf", 1059 /* 165 */ "insert_cmd ::= REPLACE", 1060 /* 166 */ "itemlist ::= itemlist COMMA expr", 1061 /* 167 */ "itemlist ::= expr", 1062 /* 168 */ "inscollist_opt ::=", 1063 /* 169 */ "inscollist_opt ::= LP inscollist RP", 1064 /* 170 */ "inscollist ::= inscollist COMMA nm", 1065 /* 171 */ "inscollist ::= nm", 1066 /* 172 */ "expr ::= LP expr RP", 1067 /* 173 */ "expr ::= NULL", 1068 /* 174 */ "expr ::= ID", 1069 /* 175 */ "expr ::= JOIN_KW", 1070 /* 176 */ "expr ::= nm DOT nm", 1071 /* 177 */ "expr ::= nm DOT nm DOT nm", 1072 /* 178 */ "expr ::= INTEGER", 1073 /* 179 */ "expr ::= FLOAT", 1074 /* 180 */ "expr ::= STRING", 1075 /* 181 */ "expr ::= VARIABLE", 1076 /* 182 */ "expr ::= ID LP exprlist RP", 1077 /* 183 */ "expr ::= ID LP STAR RP", 1078 /* 184 */ "expr ::= expr AND expr", 1079 /* 185 */ "expr ::= expr OR expr", 1080 /* 186 */ "expr ::= expr LT expr", 1081 /* 187 */ "expr ::= expr GT expr", 1082 /* 188 */ "expr ::= expr LE expr", 1083 /* 189 */ "expr ::= expr GE expr", 1084 /* 190 */ "expr ::= expr NE expr", 1085 /* 191 */ "expr ::= expr EQ expr", 1086 /* 192 */ "expr ::= expr BITAND expr", 1087 /* 193 */ "expr ::= expr BITOR expr", 1088 /* 194 */ "expr ::= expr LSHIFT expr", 1089 /* 195 */ "expr ::= expr RSHIFT expr", 1090 /* 196 */ "expr ::= expr likeop expr", 1091 /* 197 */ "expr ::= expr NOT likeop expr", 1092 /* 198 */ "likeop ::= LIKE", 1093 /* 199 */ "likeop ::= GLOB", 1094 /* 200 */ "expr ::= expr PLUS expr", 1095 /* 201 */ "expr ::= expr MINUS expr", 1096 /* 202 */ "expr ::= expr STAR expr", 1097 /* 203 */ "expr ::= expr SLASH expr", 1098 /* 204 */ "expr ::= expr REM expr", 1099 /* 205 */ "expr ::= expr CONCAT expr", 1100 /* 206 */ "expr ::= expr ISNULL", 1101 /* 207 */ "expr ::= expr IS NULL", 1102 /* 208 */ "expr ::= expr NOTNULL", 1103 /* 209 */ "expr ::= expr NOT NULL", 1104 /* 210 */ "expr ::= expr IS NOT NULL", 1105 /* 211 */ "expr ::= NOT expr", 1106 /* 212 */ "expr ::= BITNOT expr", 1107 /* 213 */ "expr ::= MINUS expr", 1108 /* 214 */ "expr ::= PLUS expr", 1109 /* 215 */ "expr ::= LP select RP", 1110 /* 216 */ "expr ::= expr BETWEEN expr AND expr", 1111 /* 217 */ "expr ::= expr NOT BETWEEN expr AND expr", 1112 /* 218 */ "expr ::= expr IN LP exprlist RP", 1113 /* 219 */ "expr ::= expr IN LP select RP", 1114 /* 220 */ "expr ::= expr NOT IN LP exprlist RP", 1115 /* 221 */ "expr ::= expr NOT IN LP select RP", 1116 /* 222 */ "expr ::= expr IN nm dbnm", 1117 /* 223 */ "expr ::= expr NOT IN nm dbnm", 1118 /* 224 */ "expr ::= CASE case_operand case_exprlist case_else END", 1119 /* 225 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", 1120 /* 226 */ "case_exprlist ::= WHEN expr THEN expr", 1121 /* 227 */ "case_else ::= ELSE expr", 1122 /* 228 */ "case_else ::=", 1123 /* 229 */ "case_operand ::= expr", 1124 /* 230 */ "case_operand ::=", 1125 /* 231 */ "exprlist ::= exprlist COMMA expritem", 1126 /* 232 */ "exprlist ::= expritem", 1127 /* 233 */ "expritem ::= expr", 1128 /* 234 */ "expritem ::=", 1129 /* 235 */ "cmd ::= CREATE uniqueflag INDEX nm ON nm dbnm LP idxlist RP onconf", 1130 /* 236 */ "uniqueflag ::= UNIQUE", 1131 /* 237 */ "uniqueflag ::=", 1132 /* 238 */ "idxlist_opt ::=", 1133 /* 239 */ "idxlist_opt ::= LP idxlist RP", 1134 /* 240 */ "idxlist ::= idxlist COMMA idxitem", 1135 /* 241 */ "idxlist ::= idxitem", 1136 /* 242 */ "idxitem ::= nm sortorder", 1137 /* 243 */ "cmd ::= DROP INDEX nm dbnm", 1138 /* 244 */ "cmd ::= COPY orconf nm dbnm FROM nm USING DELIMITERS STRING", 1139 /* 245 */ "cmd ::= COPY orconf nm dbnm FROM nm", 1140 /* 246 */ "cmd ::= VACUUM", 1141 /* 247 */ "cmd ::= VACUUM nm", 1142 /* 248 */ "cmd ::= PRAGMA ids EQ nm", 1143 /* 249 */ "cmd ::= PRAGMA ids EQ ON", 1144 /* 250 */ "cmd ::= PRAGMA ids EQ plus_num", 1145 /* 251 */ "cmd ::= PRAGMA ids EQ minus_num", 1146 /* 252 */ "cmd ::= PRAGMA ids LP nm RP", 1147 /* 253 */ "cmd ::= PRAGMA ids", 1148 /* 254 */ "plus_num ::= plus_opt number", 1149 /* 255 */ "minus_num ::= MINUS number", 1150 /* 256 */ "number ::= INTEGER", 1151 /* 257 */ "number ::= FLOAT", 1152 /* 258 */ "plus_opt ::= PLUS", 1153 /* 259 */ "plus_opt ::=", 1154 /* 260 */ "cmd ::= CREATE trigger_decl BEGIN trigger_cmd_list END", 1155 /* 261 */ "trigger_decl ::= temp TRIGGER nm trigger_time trigger_event ON nm dbnm foreach_clause when_clause", 1156 /* 262 */ "trigger_time ::= BEFORE", 1157 /* 263 */ "trigger_time ::= AFTER", 1158 /* 264 */ "trigger_time ::= INSTEAD OF", 1159 /* 265 */ "trigger_time ::=", 1160 /* 266 */ "trigger_event ::= DELETE", 1161 /* 267 */ "trigger_event ::= INSERT", 1162 /* 268 */ "trigger_event ::= UPDATE", 1163 /* 269 */ "trigger_event ::= UPDATE OF inscollist", 1164 /* 270 */ "foreach_clause ::=", 1165 /* 271 */ "foreach_clause ::= FOR EACH ROW", 1166 /* 272 */ "foreach_clause ::= FOR EACH STATEMENT", 1167 /* 273 */ "when_clause ::=", 1168 /* 274 */ "when_clause ::= WHEN expr", 1169 /* 275 */ "trigger_cmd_list ::= trigger_cmd SEMI trigger_cmd_list", 1170 /* 276 */ "trigger_cmd_list ::=", 1171 /* 277 */ "trigger_cmd ::= UPDATE orconf nm SET setlist where_opt", 1172 /* 278 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt VALUES LP itemlist RP", 1173 /* 279 */ "trigger_cmd ::= insert_cmd INTO nm inscollist_opt select", 1174 /* 280 */ "trigger_cmd ::= DELETE FROM nm where_opt", 1175 /* 281 */ "trigger_cmd ::= select", 1176 /* 282 */ "expr ::= RAISE LP IGNORE RP", 1177 /* 283 */ "expr ::= RAISE LP ROLLBACK COMMA nm RP", 1178 /* 284 */ "expr ::= RAISE LP ABORT COMMA nm RP", 1179 /* 285 */ "expr ::= RAISE LP FAIL COMMA nm RP", 1180 /* 286 */ "cmd ::= DROP TRIGGER nm dbnm", 1181 /* 287 */ "cmd ::= ATTACH database_kw_opt ids AS nm key_opt", 1182 /* 288 */ "key_opt ::= USING ids", 1183 /* 289 */ "key_opt ::=", 1184 /* 290 */ "database_kw_opt ::= DATABASE", 1185 /* 291 */ "database_kw_opt ::=", 1186 /* 292 */ "cmd ::= DETACH database_kw_opt nm", 1187 }; 1188 #endif /* NDEBUG */ 1189 1190 /* 1191 ** This function returns the symbolic name associated with a token 1192 ** value. 1193 */ 1194 const char *sqliteParserTokenName(int tokenType){ 1195 #ifndef NDEBUG 1196 if( tokenType>0 && tokenType<(sizeof(yyTokenName)/sizeof(yyTokenName[0])) ){ 1197 return yyTokenName[tokenType]; 1198 }else{ 1199 return "Unknown"; 1200 } 1201 #else 1202 return ""; 1203 #endif 1204 } 1205 1206 /* 1207 ** This function allocates a new parser. 1208 ** The only argument is a pointer to a function which works like 1209 ** malloc. 1210 ** 1211 ** Inputs: 1212 ** A pointer to the function used to allocate memory. 1213 ** 1214 ** Outputs: 1215 ** A pointer to a parser. This pointer is used in subsequent calls 1216 ** to sqliteParser and sqliteParserFree. 1217 */ 1218 void *sqliteParserAlloc(void *(*mallocProc)(size_t)){ 1219 yyParser *pParser; 1220 pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); 1221 if( pParser ){ 1222 pParser->yyidx = -1; 1223 } 1224 return pParser; 1225 } 1226 1227 /* The following function deletes the value associated with a 1228 ** symbol. The symbol can be either a terminal or nonterminal. 1229 ** "yymajor" is the symbol code, and "yypminor" is a pointer to 1230 ** the value. 1231 */ 1232 static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ 1233 switch( yymajor ){ 1234 /* Here is inserted the actions which take place when a 1235 ** terminal or non-terminal is destroyed. This can happen 1236 ** when the symbol is popped from the stack during a 1237 ** reduce or during error processing or when a parser is 1238 ** being destroyed before it is finished parsing. 1239 ** 1240 ** Note: during a reduce, the only symbols destroyed are those 1241 ** which appear on the RHS of the rule, but which are not used 1242 ** inside the C code. 1243 */ 1244 case 146: 1245 #line 289 "parse_tmp.y" 1246 {sqliteSelectDelete((yypminor->yy179));} 1247 #line 1247 "parse_tmp.c" 1248 break; 1249 case 158: 1250 #line 536 "parse_tmp.y" 1251 {sqliteExprDelete((yypminor->yy242));} 1252 #line 1252 "parse_tmp.c" 1253 break; 1254 case 159: 1255 #line 749 "parse_tmp.y" 1256 {sqliteIdListDelete((yypminor->yy320));} 1257 #line 1257 "parse_tmp.c" 1258 break; 1259 case 167: 1260 #line 747 "parse_tmp.y" 1261 {sqliteIdListDelete((yypminor->yy320));} 1262 #line 1262 "parse_tmp.c" 1263 break; 1264 case 171: 1265 #line 291 "parse_tmp.y" 1266 {sqliteSelectDelete((yypminor->yy179));} 1267 #line 1267 "parse_tmp.c" 1268 break; 1269 case 174: 1270 #line 325 "parse_tmp.y" 1271 {sqliteExprListDelete((yypminor->yy322));} 1272 #line 1272 "parse_tmp.c" 1273 break; 1274 case 175: 1275 #line 356 "parse_tmp.y" 1276 {sqliteSrcListDelete((yypminor->yy307));} 1277 #line 1277 "parse_tmp.c" 1278 break; 1279 case 176: 1280 #line 486 "parse_tmp.y" 1281 {sqliteExprDelete((yypminor->yy242));} 1282 #line 1282 "parse_tmp.c" 1283 break; 1284 case 177: 1285 #line 462 "parse_tmp.y" 1286 {sqliteExprListDelete((yypminor->yy322));} 1287 #line 1287 "parse_tmp.c" 1288 break; 1289 case 178: 1290 #line 467 "parse_tmp.y" 1291 {sqliteExprDelete((yypminor->yy242));} 1292 #line 1292 "parse_tmp.c" 1293 break; 1294 case 179: 1295 #line 434 "parse_tmp.y" 1296 {sqliteExprListDelete((yypminor->yy322));} 1297 #line 1297 "parse_tmp.c" 1298 break; 1299 case 181: 1300 #line 327 "parse_tmp.y" 1301 {sqliteExprListDelete((yypminor->yy322));} 1302 #line 1302 "parse_tmp.c" 1303 break; 1304 case 183: 1305 #line 352 "parse_tmp.y" 1306 {sqliteSrcListDelete((yypminor->yy307));} 1307 #line 1307 "parse_tmp.c" 1308 break; 1309 case 184: 1310 #line 354 "parse_tmp.y" 1311 {sqliteSrcListDelete((yypminor->yy307));} 1312 #line 1312 "parse_tmp.c" 1313 break; 1314 case 187: 1315 #line 423 "parse_tmp.y" 1316 {sqliteExprDelete((yypminor->yy242));} 1317 #line 1317 "parse_tmp.c" 1318 break; 1319 case 188: 1320 #line 428 "parse_tmp.y" 1321 {sqliteIdListDelete((yypminor->yy320));} 1322 #line 1322 "parse_tmp.c" 1323 break; 1324 case 189: 1325 #line 403 "parse_tmp.y" 1326 {sqliteSelectDelete((yypminor->yy179));} 1327 #line 1327 "parse_tmp.c" 1328 break; 1329 case 191: 1330 #line 436 "parse_tmp.y" 1331 {sqliteExprListDelete((yypminor->yy322));} 1332 #line 1332 "parse_tmp.c" 1333 break; 1334 case 192: 1335 #line 438 "parse_tmp.y" 1336 {sqliteExprDelete((yypminor->yy242));} 1337 #line 1337 "parse_tmp.c" 1338 break; 1339 case 194: 1340 #line 722 "parse_tmp.y" 1341 {sqliteExprListDelete((yypminor->yy322));} 1342 #line 1342 "parse_tmp.c" 1343 break; 1344 case 195: 1345 #line 492 "parse_tmp.y" 1346 {sqliteExprListDelete((yypminor->yy322));} 1347 #line 1347 "parse_tmp.c" 1348 break; 1349 case 197: 1350 #line 523 "parse_tmp.y" 1351 {sqliteIdListDelete((yypminor->yy320));} 1352 #line 1352 "parse_tmp.c" 1353 break; 1354 case 198: 1355 #line 517 "parse_tmp.y" 1356 {sqliteExprListDelete((yypminor->yy322));} 1357 #line 1357 "parse_tmp.c" 1358 break; 1359 case 199: 1360 #line 525 "parse_tmp.y" 1361 {sqliteIdListDelete((yypminor->yy320));} 1362 #line 1362 "parse_tmp.c" 1363 break; 1364 case 202: 1365 #line 705 "parse_tmp.y" 1366 {sqliteExprListDelete((yypminor->yy322));} 1367 #line 1367 "parse_tmp.c" 1368 break; 1369 case 204: 1370 #line 724 "parse_tmp.y" 1371 {sqliteExprDelete((yypminor->yy242));} 1372 #line 1372 "parse_tmp.c" 1373 break; 1374 case 212: 1375 #line 831 "parse_tmp.y" 1376 {sqliteDeleteTriggerStep((yypminor->yy19));} 1377 #line 1377 "parse_tmp.c" 1378 break; 1379 case 214: 1380 #line 815 "parse_tmp.y" 1381 {sqliteIdListDelete((yypminor->yy290).b);} 1382 #line 1382 "parse_tmp.c" 1383 break; 1384 case 217: 1385 #line 839 "parse_tmp.y" 1386 {sqliteDeleteTriggerStep((yypminor->yy19));} 1387 #line 1387 "parse_tmp.c" 1388 break; 1389 default: break; /* If no destructor action specified: do nothing */ 1390 } 1391 } 1392 1393 /* 1394 ** Pop the parser's stack once. 1395 ** 1396 ** If there is a destructor routine associated with the token which 1397 ** is popped from the stack, then call it. 1398 ** 1399 ** Return the major token number for the symbol popped. 1400 */ 1401 static int yy_pop_parser_stack(yyParser *pParser){ 1402 YYCODETYPE yymajor; 1403 yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; 1404 1405 if( pParser->yyidx<0 ) return 0; 1406 #ifndef NDEBUG 1407 if( yyTraceFILE && pParser->yyidx>=0 ){ 1408 fprintf(yyTraceFILE,"%sPopping %s\n", 1409 yyTracePrompt, 1410 yyTokenName[yytos->major]); 1411 } 1412 #endif 1413 yymajor = yytos->major; 1414 yy_destructor( yymajor, &yytos->minor); 1415 pParser->yyidx--; 1416 return yymajor; 1417 } 1418 1419 /* 1420 ** Deallocate and destroy a parser. Destructors are all called for 1421 ** all stack elements before shutting the parser down. 1422 ** 1423 ** Inputs: 1424 ** <ul> 1425 ** <li> A pointer to the parser. This should be a pointer 1426 ** obtained from sqliteParserAlloc. 1427 ** <li> A pointer to a function used to reclaim memory obtained 1428 ** from malloc. 1429 ** </ul> 1430 */ 1431 void sqliteParserFree( 1432 void *p, /* The parser to be deleted */ 1433 void (*freeProc)(void*) /* Function used to reclaim memory */ 1434 ){ 1435 yyParser *pParser = (yyParser*)p; 1436 if( pParser==0 ) return; 1437 while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); 1438 (*freeProc)((void*)pParser); 1439 } 1440 1441 /* 1442 ** Find the appropriate action for a parser given the terminal 1443 ** look-ahead token iLookAhead. 1444 ** 1445 ** If the look-ahead token is YYNOCODE, then check to see if the action is 1446 ** independent of the look-ahead. If it is, return the action, otherwise 1447 ** return YY_NO_ACTION. 1448 */ 1449 static int yy_find_shift_action( 1450 yyParser *pParser, /* The parser */ 1451 int iLookAhead /* The look-ahead token */ 1452 ){ 1453 int i; 1454 int stateno = pParser->yystack[pParser->yyidx].stateno; 1455 1456 /* if( pParser->yyidx<0 ) return YY_NO_ACTION; */ 1457 i = yy_shift_ofst[stateno]; 1458 if( i==YY_SHIFT_USE_DFLT ){ 1459 return yy_default[stateno]; 1460 } 1461 if( iLookAhead==YYNOCODE ){ 1462 return YY_NO_ACTION; 1463 } 1464 i += iLookAhead; 1465 if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ 1466 #ifdef YYFALLBACK 1467 int iFallback; /* Fallback token */ 1468 if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0]) 1469 && (iFallback = yyFallback[iLookAhead])!=0 ){ 1470 #ifndef NDEBUG 1471 if( yyTraceFILE ){ 1472 fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n", 1473 yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); 1474 } 1475 #endif 1476 return yy_find_shift_action(pParser, iFallback); 1477 } 1478 #endif 1479 return yy_default[stateno]; 1480 }else{ 1481 return yy_action[i]; 1482 } 1483 } 1484 1485 /* 1486 ** Find the appropriate action for a parser given the non-terminal 1487 ** look-ahead token iLookAhead. 1488 ** 1489 ** If the look-ahead token is YYNOCODE, then check to see if the action is 1490 ** independent of the look-ahead. If it is, return the action, otherwise 1491 ** return YY_NO_ACTION. 1492 */ 1493 static int yy_find_reduce_action( 1494 yyParser *pParser, /* The parser */ 1495 int iLookAhead /* The look-ahead token */ 1496 ){ 1497 int i; 1498 int stateno = pParser->yystack[pParser->yyidx].stateno; 1499 1500 i = yy_reduce_ofst[stateno]; 1501 if( i==YY_REDUCE_USE_DFLT ){ 1502 return yy_default[stateno]; 1503 } 1504 if( iLookAhead==YYNOCODE ){ 1505 return YY_NO_ACTION; 1506 } 1507 i += iLookAhead; 1508 if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ 1509 return yy_default[stateno]; 1510 }else{ 1511 return yy_action[i]; 1512 } 1513 } 1514 1515 /* 1516 ** Perform a shift action. 1517 */ 1518 static void yy_shift( 1519 yyParser *yypParser, /* The parser to be shifted */ 1520 int yyNewState, /* The new state to shift in */ 1521 int yyMajor, /* The major token to shift in */ 1522 YYMINORTYPE *yypMinor /* Pointer ot the minor token to shift in */ 1523 ){ 1524 yyStackEntry *yytos; 1525 yypParser->yyidx++; 1526 if( yypParser->yyidx>=YYSTACKDEPTH ){ 1527 sqliteParserARG_FETCH; 1528 yypParser->yyidx--; 1529 #ifndef NDEBUG 1530 if( yyTraceFILE ){ 1531 fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); 1532 } 1533 #endif 1534 while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); 1535 /* Here code is inserted which will execute if the parser 1536 ** stack every overflows */ 1537 sqliteParserARG_STORE; /* Suppress warning about unused %extra_argument var */ 1538 return; 1539 } 1540 yytos = &yypParser->yystack[yypParser->yyidx]; 1541 yytos->stateno = yyNewState; 1542 yytos->major = yyMajor; 1543 yytos->minor = *yypMinor; 1544 #ifndef NDEBUG 1545 if( yyTraceFILE && yypParser->yyidx>0 ){ 1546 int i; 1547 fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); 1548 fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); 1549 for(i=1; i<=yypParser->yyidx; i++) 1550 fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); 1551 fprintf(yyTraceFILE,"\n"); 1552 } 1553 #endif 1554 } 1555 1556 /* The following table contains information about every rule that 1557 ** is used during the reduce. 1558 */ 1559 static struct { 1560 YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ 1561 unsigned char nrhs; /* Number of right-hand side symbols in the rule */ 1562 } yyRuleInfo[] = { 1563 { 132, 1 }, 1564 { 133, 2 }, 1565 { 133, 1 }, 1566 { 134, 3 }, 1567 { 134, 1 }, 1568 { 136, 1 }, 1569 { 135, 1 }, 1570 { 135, 0 }, 1571 { 137, 3 }, 1572 { 138, 0 }, 1573 { 138, 1 }, 1574 { 138, 2 }, 1575 { 137, 2 }, 1576 { 137, 2 }, 1577 { 137, 2 }, 1578 { 137, 2 }, 1579 { 141, 4 }, 1580 { 143, 1 }, 1581 { 143, 0 }, 1582 { 142, 4 }, 1583 { 142, 2 }, 1584 { 144, 3 }, 1585 { 144, 1 }, 1586 { 147, 3 }, 1587 { 148, 1 }, 1588 { 151, 1 }, 1589 { 152, 1 }, 1590 { 152, 1 }, 1591 { 140, 1 }, 1592 { 140, 1 }, 1593 { 140, 1 }, 1594 { 149, 0 }, 1595 { 149, 1 }, 1596 { 149, 4 }, 1597 { 149, 6 }, 1598 { 153, 1 }, 1599 { 153, 2 }, 1600 { 154, 1 }, 1601 { 154, 2 }, 1602 { 154, 2 }, 1603 { 150, 2 }, 1604 { 150, 0 }, 1605 { 155, 3 }, 1606 { 155, 1 }, 1607 { 155, 2 }, 1608 { 155, 2 }, 1609 { 155, 2 }, 1610 { 155, 3 }, 1611 { 155, 3 }, 1612 { 155, 2 }, 1613 { 155, 3 }, 1614 { 155, 3 }, 1615 { 155, 2 }, 1616 { 156, 2 }, 1617 { 156, 3 }, 1618 { 156, 4 }, 1619 { 156, 2 }, 1620 { 156, 5 }, 1621 { 156, 4 }, 1622 { 156, 1 }, 1623 { 156, 2 }, 1624 { 160, 0 }, 1625 { 160, 2 }, 1626 { 162, 2 }, 1627 { 162, 3 }, 1628 { 162, 3 }, 1629 { 162, 3 }, 1630 { 163, 2 }, 1631 { 163, 2 }, 1632 { 163, 1 }, 1633 { 163, 1 }, 1634 { 161, 3 }, 1635 { 161, 2 }, 1636 { 164, 0 }, 1637 { 164, 2 }, 1638 { 164, 2 }, 1639 { 145, 0 }, 1640 { 145, 2 }, 1641 { 165, 3 }, 1642 { 165, 2 }, 1643 { 165, 1 }, 1644 { 166, 2 }, 1645 { 166, 6 }, 1646 { 166, 5 }, 1647 { 166, 3 }, 1648 { 166, 10 }, 1649 { 168, 0 }, 1650 { 168, 1 }, 1651 { 139, 0 }, 1652 { 139, 3 }, 1653 { 169, 0 }, 1654 { 169, 2 }, 1655 { 170, 1 }, 1656 { 170, 1 }, 1657 { 170, 1 }, 1658 { 170, 1 }, 1659 { 170, 1 }, 1660 { 137, 3 }, 1661 { 137, 6 }, 1662 { 137, 3 }, 1663 { 137, 1 }, 1664 { 146, 1 }, 1665 { 146, 3 }, 1666 { 172, 1 }, 1667 { 172, 2 }, 1668 { 172, 1 }, 1669 { 172, 1 }, 1670 { 171, 9 }, 1671 { 173, 1 }, 1672 { 173, 1 }, 1673 { 173, 0 }, 1674 { 181, 2 }, 1675 { 181, 0 }, 1676 { 174, 3 }, 1677 { 174, 2 }, 1678 { 174, 4 }, 1679 { 182, 2 }, 1680 { 182, 1 }, 1681 { 182, 0 }, 1682 { 175, 0 }, 1683 { 175, 2 }, 1684 { 184, 2 }, 1685 { 184, 0 }, 1686 { 183, 6 }, 1687 { 183, 7 }, 1688 { 189, 1 }, 1689 { 189, 1 }, 1690 { 186, 0 }, 1691 { 186, 2 }, 1692 { 185, 1 }, 1693 { 185, 1 }, 1694 { 185, 2 }, 1695 { 185, 3 }, 1696 { 185, 4 }, 1697 { 187, 2 }, 1698 { 187, 0 }, 1699 { 188, 4 }, 1700 { 188, 0 }, 1701 { 179, 0 }, 1702 { 179, 3 }, 1703 { 191, 5 }, 1704 { 191, 3 }, 1705 { 192, 1 }, 1706 { 157, 1 }, 1707 { 157, 1 }, 1708 { 157, 0 }, 1709 { 193, 0 }, 1710 { 193, 2 }, 1711 { 177, 0 }, 1712 { 177, 3 }, 1713 { 178, 0 }, 1714 { 178, 2 }, 1715 { 180, 0 }, 1716 { 180, 2 }, 1717 { 180, 4 }, 1718 { 180, 4 }, 1719 { 137, 5 }, 1720 { 176, 0 }, 1721 { 176, 2 }, 1722 { 137, 7 }, 1723 { 195, 5 }, 1724 { 195, 3 }, 1725 { 137, 9 }, 1726 { 137, 6 }, 1727 { 196, 2 }, 1728 { 196, 1 }, 1729 { 198, 3 }, 1730 { 198, 1 }, 1731 { 197, 0 }, 1732 { 197, 3 }, 1733 { 199, 3 }, 1734 { 199, 1 }, 1735 { 158, 3 }, 1736 { 158, 1 }, 1737 { 158, 1 }, 1738 { 158, 1 }, 1739 { 158, 3 }, 1740 { 158, 5 }, 1741 { 158, 1 }, 1742 { 158, 1 }, 1743 { 158, 1 }, 1744 { 158, 1 }, 1745 { 158, 4 }, 1746 { 158, 4 }, 1747 { 158, 3 }, 1748 { 158, 3 }, 1749 { 158, 3 }, 1750 { 158, 3 }, 1751 { 158, 3 }, 1752 { 158, 3 }, 1753 { 158, 3 }, 1754 { 158, 3 }, 1755 { 158, 3 }, 1756 { 158, 3 }, 1757 { 158, 3 }, 1758 { 158, 3 }, 1759 { 158, 3 }, 1760 { 158, 4 }, 1761 { 200, 1 }, 1762 { 200, 1 }, 1763 { 158, 3 }, 1764 { 158, 3 }, 1765 { 158, 3 }, 1766 { 158, 3 }, 1767 { 158, 3 }, 1768 { 158, 3 }, 1769 { 158, 2 }, 1770 { 158, 3 }, 1771 { 158, 2 }, 1772 { 158, 3 }, 1773 { 158, 4 }, 1774 { 158, 2 }, 1775 { 158, 2 }, 1776 { 158, 2 }, 1777 { 158, 2 }, 1778 { 158, 3 }, 1779 { 158, 5 }, 1780 { 158, 6 }, 1781 { 158, 5 }, 1782 { 158, 5 }, 1783 { 158, 6 }, 1784 { 158, 6 }, 1785 { 158, 4 }, 1786 { 158, 5 }, 1787 { 158, 5 }, 1788 { 202, 5 }, 1789 { 202, 4 }, 1790 { 203, 2 }, 1791 { 203, 0 }, 1792 { 201, 1 }, 1793 { 201, 0 }, 1794 { 194, 3 }, 1795 { 194, 1 }, 1796 { 204, 1 }, 1797 { 204, 0 }, 1798 { 137, 11 }, 1799 { 205, 1 }, 1800 { 205, 0 }, 1801 { 159, 0 }, 1802 { 159, 3 }, 1803 { 167, 3 }, 1804 { 167, 1 }, 1805 { 206, 2 }, 1806 { 137, 4 }, 1807 { 137, 9 }, 1808 { 137, 6 }, 1809 { 137, 1 }, 1810 { 137, 2 }, 1811 { 137, 4 }, 1812 { 137, 4 }, 1813 { 137, 4 }, 1814 { 137, 4 }, 1815 { 137, 5 }, 1816 { 137, 2 }, 1817 { 207, 2 }, 1818 { 208, 2 }, 1819 { 210, 1 }, 1820 { 210, 1 }, 1821 { 209, 1 }, 1822 { 209, 0 }, 1823 { 137, 5 }, 1824 { 211, 10 }, 1825 { 213, 1 }, 1826 { 213, 1 }, 1827 { 213, 2 }, 1828 { 213, 0 }, 1829 { 214, 1 }, 1830 { 214, 1 }, 1831 { 214, 1 }, 1832 { 214, 3 }, 1833 { 215, 0 }, 1834 { 215, 3 }, 1835 { 215, 3 }, 1836 { 216, 0 }, 1837 { 216, 2 }, 1838 { 212, 3 }, 1839 { 212, 0 }, 1840 { 217, 6 }, 1841 { 217, 8 }, 1842 { 217, 5 }, 1843 { 217, 4 }, 1844 { 217, 1 }, 1845 { 158, 4 }, 1846 { 158, 6 }, 1847 { 158, 6 }, 1848 { 158, 6 }, 1849 { 137, 4 }, 1850 { 137, 6 }, 1851 { 219, 2 }, 1852 { 219, 0 }, 1853 { 218, 1 }, 1854 { 218, 0 }, 1855 { 137, 3 }, 1856 }; 1857 1858 static void yy_accept(yyParser*); /* Forward Declaration */ 1859 1860 /* 1861 ** Perform a reduce action and the shift that must immediately 1862 ** follow the reduce. 1863 */ 1864 static void yy_reduce( 1865 yyParser *yypParser, /* The parser */ 1866 int yyruleno /* Number of the rule by which to reduce */ 1867 ){ 1868 int yygoto; /* The next state */ 1869 int yyact; /* The next action */ 1870 YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ 1871 yyStackEntry *yymsp; /* The top of the parser's stack */ 1872 int yysize; /* Amount to pop the stack */ 1873 sqliteParserARG_FETCH; 1874 yymsp = &yypParser->yystack[yypParser->yyidx]; 1875 #ifndef NDEBUG 1876 if( yyTraceFILE && yyruleno>=0 1877 && yyruleno<sizeof(yyRuleName)/sizeof(yyRuleName[0]) ){ 1878 fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, 1879 yyRuleName[yyruleno]); 1880 } 1881 #endif /* NDEBUG */ 1882 1883 switch( yyruleno ){ 1884 /* Beginning here are the reduction cases. A typical example 1885 ** follows: 1886 ** case 0: 1887 ** #line <lineno> <grammarfile> 1888 ** { ... } // User supplied code 1889 ** #line <lineno> <thisfile> 1890 ** break; 1891 */ 1892 case 0: 1893 /* No destructor defined for cmdlist */ 1894 break; 1895 case 1: 1896 /* No destructor defined for cmdlist */ 1897 /* No destructor defined for ecmd */ 1898 break; 1899 case 2: 1900 /* No destructor defined for ecmd */ 1901 break; 1902 case 3: 1903 /* No destructor defined for explain */ 1904 /* No destructor defined for cmdx */ 1905 /* No destructor defined for SEMI */ 1906 break; 1907 case 4: 1908 /* No destructor defined for SEMI */ 1909 break; 1910 case 5: 1911 #line 75 "parse_tmp.y" 1912 { sqliteExec(pParse); } 1913 #line 1913 "parse_tmp.c" 1914 /* No destructor defined for cmd */ 1915 break; 1916 case 6: 1917 #line 76 "parse_tmp.y" 1918 { sqliteBeginParse(pParse, 1); } 1919 #line 1919 "parse_tmp.c" 1920 /* No destructor defined for EXPLAIN */ 1921 break; 1922 case 7: 1923 #line 77 "parse_tmp.y" 1924 { sqliteBeginParse(pParse, 0); } 1925 #line 1925 "parse_tmp.c" 1926 break; 1927 case 8: 1928 #line 82 "parse_tmp.y" 1929 {sqliteBeginTransaction(pParse,yymsp[0].minor.yy372);} 1930 #line 1930 "parse_tmp.c" 1931 /* No destructor defined for BEGIN */ 1932 /* No destructor defined for trans_opt */ 1933 break; 1934 case 9: 1935 break; 1936 case 10: 1937 /* No destructor defined for TRANSACTION */ 1938 break; 1939 case 11: 1940 /* No destructor defined for TRANSACTION */ 1941 /* No destructor defined for nm */ 1942 break; 1943 case 12: 1944 #line 86 "parse_tmp.y" 1945 {sqliteCommitTransaction(pParse);} 1946 #line 1946 "parse_tmp.c" 1947 /* No destructor defined for COMMIT */ 1948 /* No destructor defined for trans_opt */ 1949 break; 1950 case 13: 1951 #line 87 "parse_tmp.y" 1952 {sqliteCommitTransaction(pParse);} 1953 #line 1953 "parse_tmp.c" 1954 /* No destructor defined for END */ 1955 /* No destructor defined for trans_opt */ 1956 break; 1957 case 14: 1958 #line 88 "parse_tmp.y" 1959 {sqliteRollbackTransaction(pParse);} 1960 #line 1960 "parse_tmp.c" 1961 /* No destructor defined for ROLLBACK */ 1962 /* No destructor defined for trans_opt */ 1963 break; 1964 case 15: 1965 /* No destructor defined for create_table */ 1966 /* No destructor defined for create_table_args */ 1967 break; 1968 case 16: 1969 #line 93 "parse_tmp.y" 1970 { 1971 sqliteStartTable(pParse,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy298,yymsp[-2].minor.yy372,0); 1972 } 1973 #line 1973 "parse_tmp.c" 1974 /* No destructor defined for TABLE */ 1975 break; 1976 case 17: 1977 #line 97 "parse_tmp.y" 1978 {yygotominor.yy372 = 1;} 1979 #line 1979 "parse_tmp.c" 1980 /* No destructor defined for TEMP */ 1981 break; 1982 case 18: 1983 #line 98 "parse_tmp.y" 1984 {yygotominor.yy372 = 0;} 1985 #line 1985 "parse_tmp.c" 1986 break; 1987 case 19: 1988 #line 99 "parse_tmp.y" 1989 { 1990 sqliteEndTable(pParse,&yymsp[0].minor.yy0,0); 1991 } 1992 #line 1992 "parse_tmp.c" 1993 /* No destructor defined for LP */ 1994 /* No destructor defined for columnlist */ 1995 /* No destructor defined for conslist_opt */ 1996 break; 1997 case 20: 1998 #line 102 "parse_tmp.y" 1999 { 2000 sqliteEndTable(pParse,0,yymsp[0].minor.yy179); 2001 sqliteSelectDelete(yymsp[0].minor.yy179); 2002 } 2003 #line 2003 "parse_tmp.c" 2004 /* No destructor defined for AS */ 2005 break; 2006 case 21: 2007 /* No destructor defined for columnlist */ 2008 /* No destructor defined for COMMA */ 2009 /* No destructor defined for column */ 2010 break; 2011 case 22: 2012 /* No destructor defined for column */ 2013 break; 2014 case 23: 2015 /* No destructor defined for columnid */ 2016 /* No destructor defined for type */ 2017 /* No destructor defined for carglist */ 2018 break; 2019 case 24: 2020 #line 114 "parse_tmp.y" 2021 {sqliteAddColumn(pParse,&yymsp[0].minor.yy298);} 2022 #line 2022 "parse_tmp.c" 2023 break; 2024 case 25: 2025 #line 120 "parse_tmp.y" 2026 {yygotominor.yy298 = yymsp[0].minor.yy0;} 2027 #line 2027 "parse_tmp.c" 2028 break; 2029 case 26: 2030 #line 152 "parse_tmp.y" 2031 {yygotominor.yy298 = yymsp[0].minor.yy0;} 2032 #line 2032 "parse_tmp.c" 2033 break; 2034 case 27: 2035 #line 153 "parse_tmp.y" 2036 {yygotominor.yy298 = yymsp[0].minor.yy0;} 2037 #line 2037 "parse_tmp.c" 2038 break; 2039 case 28: 2040 #line 158 "parse_tmp.y" 2041 {yygotominor.yy298 = yymsp[0].minor.yy0;} 2042 #line 2042 "parse_tmp.c" 2043 break; 2044 case 29: 2045 #line 159 "parse_tmp.y" 2046 {yygotominor.yy298 = yymsp[0].minor.yy0;} 2047 #line 2047 "parse_tmp.c" 2048 break; 2049 case 30: 2050 #line 160 "parse_tmp.y" 2051 {yygotominor.yy298 = yymsp[0].minor.yy0;} 2052 #line 2052 "parse_tmp.c" 2053 break; 2054 case 31: 2055 break; 2056 case 32: 2057 #line 163 "parse_tmp.y" 2058 {sqliteAddColumnType(pParse,&yymsp[0].minor.yy298,&yymsp[0].minor.yy298);} 2059 #line 2059 "parse_tmp.c" 2060 break; 2061 case 33: 2062 #line 164 "parse_tmp.y" 2063 {sqliteAddColumnType(pParse,&yymsp[-3].minor.yy298,&yymsp[0].minor.yy0);} 2064 #line 2064 "parse_tmp.c" 2065 /* No destructor defined for LP */ 2066 /* No destructor defined for signed */ 2067 break; 2068 case 34: 2069 #line 166 "parse_tmp.y" 2070 {sqliteAddColumnType(pParse,&yymsp[-5].minor.yy298,&yymsp[0].minor.yy0);} 2071 #line 2071 "parse_tmp.c" 2072 /* No destructor defined for LP */ 2073 /* No destructor defined for signed */ 2074 /* No destructor defined for COMMA */ 2075 /* No destructor defined for signed */ 2076 break; 2077 case 35: 2078 #line 168 "parse_tmp.y" 2079 {yygotominor.yy298 = yymsp[0].minor.yy298;} 2080 #line 2080 "parse_tmp.c" 2081 break; 2082 case 36: 2083 #line 169 "parse_tmp.y" 2084 {yygotominor.yy298 = yymsp[-1].minor.yy298;} 2085 #line 2085 "parse_tmp.c" 2086 /* No destructor defined for ids */ 2087 break; 2088 case 37: 2089 #line 171 "parse_tmp.y" 2090 { yygotominor.yy372 = atoi(yymsp[0].minor.yy0.z); } 2091 #line 2091 "parse_tmp.c" 2092 break; 2093 case 38: 2094 #line 172 "parse_tmp.y" 2095 { yygotominor.yy372 = atoi(yymsp[0].minor.yy0.z); } 2096 #line 2096 "parse_tmp.c" 2097 /* No destructor defined for PLUS */ 2098 break; 2099 case 39: 2100 #line 173 "parse_tmp.y" 2101 { yygotominor.yy372 = -atoi(yymsp[0].minor.yy0.z); } 2102 #line 2102 "parse_tmp.c" 2103 /* No destructor defined for MINUS */ 2104 break; 2105 case 40: 2106 /* No destructor defined for carglist */ 2107 /* No destructor defined for carg */ 2108 break; 2109 case 41: 2110 break; 2111 case 42: 2112 /* No destructor defined for CONSTRAINT */ 2113 /* No destructor defined for nm */ 2114 /* No destructor defined for ccons */ 2115 break; 2116 case 43: 2117 /* No destructor defined for ccons */ 2118 break; 2119 case 44: 2120 #line 178 "parse_tmp.y" 2121 {sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);} 2122 #line 2122 "parse_tmp.c" 2123 /* No destructor defined for DEFAULT */ 2124 break; 2125 case 45: 2126 #line 179 "parse_tmp.y" 2127 {sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);} 2128 #line 2128 "parse_tmp.c" 2129 /* No destructor defined for DEFAULT */ 2130 break; 2131 case 46: 2132 #line 180 "parse_tmp.y" 2133 {sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);} 2134 #line 2134 "parse_tmp.c" 2135 /* No destructor defined for DEFAULT */ 2136 break; 2137 case 47: 2138 #line 181 "parse_tmp.y" 2139 {sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);} 2140 #line 2140 "parse_tmp.c" 2141 /* No destructor defined for DEFAULT */ 2142 /* No destructor defined for PLUS */ 2143 break; 2144 case 48: 2145 #line 182 "parse_tmp.y" 2146 {sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,1);} 2147 #line 2147 "parse_tmp.c" 2148 /* No destructor defined for DEFAULT */ 2149 /* No destructor defined for MINUS */ 2150 break; 2151 case 49: 2152 #line 183 "parse_tmp.y" 2153 {sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);} 2154 #line 2154 "parse_tmp.c" 2155 /* No destructor defined for DEFAULT */ 2156 break; 2157 case 50: 2158 #line 184 "parse_tmp.y" 2159 {sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,0);} 2160 #line 2160 "parse_tmp.c" 2161 /* No destructor defined for DEFAULT */ 2162 /* No destructor defined for PLUS */ 2163 break; 2164 case 51: 2165 #line 185 "parse_tmp.y" 2166 {sqliteAddDefaultValue(pParse,&yymsp[0].minor.yy0,1);} 2167 #line 2167 "parse_tmp.c" 2168 /* No destructor defined for DEFAULT */ 2169 /* No destructor defined for MINUS */ 2170 break; 2171 case 52: 2172 /* No destructor defined for DEFAULT */ 2173 /* No destructor defined for NULL */ 2174 break; 2175 case 53: 2176 /* No destructor defined for NULL */ 2177 /* No destructor defined for onconf */ 2178 break; 2179 case 54: 2180 #line 192 "parse_tmp.y" 2181 {sqliteAddNotNull(pParse, yymsp[0].minor.yy372);} 2182 #line 2182 "parse_tmp.c" 2183 /* No destructor defined for NOT */ 2184 /* No destructor defined for NULL */ 2185 break; 2186 case 55: 2187 #line 193 "parse_tmp.y" 2188 {sqliteAddPrimaryKey(pParse,0,yymsp[0].minor.yy372);} 2189 #line 2189 "parse_tmp.c" 2190 /* No destructor defined for PRIMARY */ 2191 /* No destructor defined for KEY */ 2192 /* No destructor defined for sortorder */ 2193 break; 2194 case 56: 2195 #line 194 "parse_tmp.y" 2196 {sqliteCreateIndex(pParse,0,0,0,yymsp[0].minor.yy372,0,0);} 2197 #line 2197 "parse_tmp.c" 2198 /* No destructor defined for UNIQUE */ 2199 break; 2200 case 57: 2201 /* No destructor defined for CHECK */ 2202 /* No destructor defined for LP */ 2203 yy_destructor(158,&yymsp[-2].minor); 2204 /* No destructor defined for RP */ 2205 /* No destructor defined for onconf */ 2206 break; 2207 case 58: 2208 #line 197 "parse_tmp.y" 2209 {sqliteCreateForeignKey(pParse,0,&yymsp[-2].minor.yy298,yymsp[-1].minor.yy320,yymsp[0].minor.yy372);} 2210 #line 2210 "parse_tmp.c" 2211 /* No destructor defined for REFERENCES */ 2212 break; 2213 case 59: 2214 #line 198 "parse_tmp.y" 2215 {sqliteDeferForeignKey(pParse,yymsp[0].minor.yy372);} 2216 #line 2216 "parse_tmp.c" 2217 break; 2218 case 60: 2219 #line 199 "parse_tmp.y" 2220 { 2221 sqliteAddCollateType(pParse, sqliteCollateType(yymsp[0].minor.yy298.z, yymsp[0].minor.yy298.n)); 2222 } 2223 #line 2223 "parse_tmp.c" 2224 /* No destructor defined for COLLATE */ 2225 break; 2226 case 61: 2227 #line 209 "parse_tmp.y" 2228 { yygotominor.yy372 = OE_Restrict * 0x010101; } 2229 #line 2229 "parse_tmp.c" 2230 break; 2231 case 62: 2232 #line 210 "parse_tmp.y" 2233 { yygotominor.yy372 = (yymsp[-1].minor.yy372 & yymsp[0].minor.yy407.mask) | yymsp[0].minor.yy407.value; } 2234 #line 2234 "parse_tmp.c" 2235 break; 2236 case 63: 2237 #line 212 "parse_tmp.y" 2238 { yygotominor.yy407.value = 0; yygotominor.yy407.mask = 0x000000; } 2239 #line 2239 "parse_tmp.c" 2240 /* No destructor defined for MATCH */ 2241 /* No destructor defined for nm */ 2242 break; 2243 case 64: 2244 #line 213 "parse_tmp.y" 2245 { yygotominor.yy407.value = yymsp[0].minor.yy372; yygotominor.yy407.mask = 0x0000ff; } 2246 #line 2246 "parse_tmp.c" 2247 /* No destructor defined for ON */ 2248 /* No destructor defined for DELETE */ 2249 break; 2250 case 65: 2251 #line 214 "parse_tmp.y" 2252 { yygotominor.yy407.value = yymsp[0].minor.yy372<<8; yygotominor.yy407.mask = 0x00ff00; } 2253 #line 2253 "parse_tmp.c" 2254 /* No destructor defined for ON */ 2255 /* No destructor defined for UPDATE */ 2256 break; 2257 case 66: 2258 #line 215 "parse_tmp.y" 2259 { yygotominor.yy407.value = yymsp[0].minor.yy372<<16; yygotominor.yy407.mask = 0xff0000; } 2260 #line 2260 "parse_tmp.c" 2261 /* No destructor defined for ON */ 2262 /* No destructor defined for INSERT */ 2263 break; 2264 case 67: 2265 #line 217 "parse_tmp.y" 2266 { yygotominor.yy372 = OE_SetNull; } 2267 #line 2267 "parse_tmp.c" 2268 /* No destructor defined for SET */ 2269 /* No destructor defined for NULL */ 2270 break; 2271 case 68: 2272 #line 218 "parse_tmp.y" 2273 { yygotominor.yy372 = OE_SetDflt; } 2274 #line 2274 "parse_tmp.c" 2275 /* No destructor defined for SET */ 2276 /* No destructor defined for DEFAULT */ 2277 break; 2278 case 69: 2279 #line 219 "parse_tmp.y" 2280 { yygotominor.yy372 = OE_Cascade; } 2281 #line 2281 "parse_tmp.c" 2282 /* No destructor defined for CASCADE */ 2283 break; 2284 case 70: 2285 #line 220 "parse_tmp.y" 2286 { yygotominor.yy372 = OE_Restrict; } 2287 #line 2287 "parse_tmp.c" 2288 /* No destructor defined for RESTRICT */ 2289 break; 2290 case 71: 2291 #line 222 "parse_tmp.y" 2292 {yygotominor.yy372 = yymsp[0].minor.yy372;} 2293 #line 2293 "parse_tmp.c" 2294 /* No destructor defined for NOT */ 2295 /* No destructor defined for DEFERRABLE */ 2296 break; 2297 case 72: 2298 #line 223 "parse_tmp.y" 2299 {yygotominor.yy372 = yymsp[0].minor.yy372;} 2300 #line 2300 "parse_tmp.c" 2301 /* No destructor defined for DEFERRABLE */ 2302 break; 2303 case 73: 2304 #line 225 "parse_tmp.y" 2305 {yygotominor.yy372 = 0;} 2306 #line 2306 "parse_tmp.c" 2307 break; 2308 case 74: 2309 #line 226 "parse_tmp.y" 2310 {yygotominor.yy372 = 1;} 2311 #line 2311 "parse_tmp.c" 2312 /* No destructor defined for INITIALLY */ 2313 /* No destructor defined for DEFERRED */ 2314 break; 2315 case 75: 2316 #line 227 "parse_tmp.y" 2317 {yygotominor.yy372 = 0;} 2318 #line 2318 "parse_tmp.c" 2319 /* No destructor defined for INITIALLY */ 2320 /* No destructor defined for IMMEDIATE */ 2321 break; 2322 case 76: 2323 break; 2324 case 77: 2325 /* No destructor defined for COMMA */ 2326 /* No destructor defined for conslist */ 2327 break; 2328 case 78: 2329 /* No destructor defined for conslist */ 2330 /* No destructor defined for COMMA */ 2331 /* No destructor defined for tcons */ 2332 break; 2333 case 79: 2334 /* No destructor defined for conslist */ 2335 /* No destructor defined for tcons */ 2336 break; 2337 case 80: 2338 /* No destructor defined for tcons */ 2339 break; 2340 case 81: 2341 /* No destructor defined for CONSTRAINT */ 2342 /* No destructor defined for nm */ 2343 break; 2344 case 82: 2345 #line 239 "parse_tmp.y" 2346 {sqliteAddPrimaryKey(pParse,yymsp[-2].minor.yy320,yymsp[0].minor.yy372);} 2347 #line 2347 "parse_tmp.c" 2348 /* No destructor defined for PRIMARY */ 2349 /* No destructor defined for KEY */ 2350 /* No destructor defined for LP */ 2351 /* No destructor defined for RP */ 2352 break; 2353 case 83: 2354 #line 241 "parse_tmp.y" 2355 {sqliteCreateIndex(pParse,0,0,yymsp[-2].minor.yy320,yymsp[0].minor.yy372,0,0);} 2356 #line 2356 "parse_tmp.c" 2357 /* No destructor defined for UNIQUE */ 2358 /* No destructor defined for LP */ 2359 /* No destructor defined for RP */ 2360 break; 2361 case 84: 2362 /* No destructor defined for CHECK */ 2363 yy_destructor(158,&yymsp[-1].minor); 2364 /* No destructor defined for onconf */ 2365 break; 2366 case 85: 2367 #line 244 "parse_tmp.y" 2368 { 2369 sqliteCreateForeignKey(pParse, yymsp[-6].minor.yy320, &yymsp[-3].minor.yy298, yymsp[-2].minor.yy320, yymsp[-1].minor.yy372); 2370 sqliteDeferForeignKey(pParse, yymsp[0].minor.yy372); 2371 } 2372 #line 2372 "parse_tmp.c" 2373 /* No destructor defined for FOREIGN */ 2374 /* No destructor defined for KEY */ 2375 /* No destructor defined for LP */ 2376 /* No destructor defined for RP */ 2377 /* No destructor defined for REFERENCES */ 2378 break; 2379 case 86: 2380 #line 249 "parse_tmp.y" 2381 {yygotominor.yy372 = 0;} 2382 #line 2382 "parse_tmp.c" 2383 break; 2384 case 87: 2385 #line 250 "parse_tmp.y" 2386 {yygotominor.yy372 = yymsp[0].minor.yy372;} 2387 #line 2387 "parse_tmp.c" 2388 break; 2389 case 88: 2390 #line 258 "parse_tmp.y" 2391 { yygotominor.yy372 = OE_Default; } 2392 #line 2392 "parse_tmp.c" 2393 break; 2394 case 89: 2395 #line 259 "parse_tmp.y" 2396 { yygotominor.yy372 = yymsp[0].minor.yy372; } 2397 #line 2397 "parse_tmp.c" 2398 /* No destructor defined for ON */ 2399 /* No destructor defined for CONFLICT */ 2400 break; 2401 case 90: 2402 #line 260 "parse_tmp.y" 2403 { yygotominor.yy372 = OE_Default; } 2404 #line 2404 "parse_tmp.c" 2405 break; 2406 case 91: 2407 #line 261 "parse_tmp.y" 2408 { yygotominor.yy372 = yymsp[0].minor.yy372; } 2409 #line 2409 "parse_tmp.c" 2410 /* No destructor defined for OR */ 2411 break; 2412 case 92: 2413 #line 262 "parse_tmp.y" 2414 { yygotominor.yy372 = OE_Rollback; } 2415 #line 2415 "parse_tmp.c" 2416 /* No destructor defined for ROLLBACK */ 2417 break; 2418 case 93: 2419 #line 263 "parse_tmp.y" 2420 { yygotominor.yy372 = OE_Abort; } 2421 #line 2421 "parse_tmp.c" 2422 /* No destructor defined for ABORT */ 2423 break; 2424 case 94: 2425 #line 264 "parse_tmp.y" 2426 { yygotominor.yy372 = OE_Fail; } 2427 #line 2427 "parse_tmp.c" 2428 /* No destructor defined for FAIL */ 2429 break; 2430 case 95: 2431 #line 265 "parse_tmp.y" 2432 { yygotominor.yy372 = OE_Ignore; } 2433 #line 2433 "parse_tmp.c" 2434 /* No destructor defined for IGNORE */ 2435 break; 2436 case 96: 2437 #line 266 "parse_tmp.y" 2438 { yygotominor.yy372 = OE_Replace; } 2439 #line 2439 "parse_tmp.c" 2440 /* No destructor defined for REPLACE */ 2441 break; 2442 case 97: 2443 #line 270 "parse_tmp.y" 2444 {sqliteDropTable(pParse,&yymsp[0].minor.yy298,0);} 2445 #line 2445 "parse_tmp.c" 2446 /* No destructor defined for DROP */ 2447 /* No destructor defined for TABLE */ 2448 break; 2449 case 98: 2450 #line 274 "parse_tmp.y" 2451 { 2452 sqliteCreateView(pParse, &yymsp[-5].minor.yy0, &yymsp[-2].minor.yy298, yymsp[0].minor.yy179, yymsp[-4].minor.yy372); 2453 } 2454 #line 2454 "parse_tmp.c" 2455 /* No destructor defined for VIEW */ 2456 /* No destructor defined for AS */ 2457 break; 2458 case 99: 2459 #line 277 "parse_tmp.y" 2460 { 2461 sqliteDropTable(pParse, &yymsp[0].minor.yy298, 1); 2462 } 2463 #line 2463 "parse_tmp.c" 2464 /* No destructor defined for DROP */ 2465 /* No destructor defined for VIEW */ 2466 break; 2467 case 100: 2468 #line 283 "parse_tmp.y" 2469 { 2470 sqliteSelect(pParse, yymsp[0].minor.yy179, SRT_Callback, 0, 0, 0, 0); 2471 sqliteSelectDelete(yymsp[0].minor.yy179); 2472 } 2473 #line 2473 "parse_tmp.c" 2474 break; 2475 case 101: 2476 #line 293 "parse_tmp.y" 2477 {yygotominor.yy179 = yymsp[0].minor.yy179;} 2478 #line 2478 "parse_tmp.c" 2479 break; 2480 case 102: 2481 #line 294 "parse_tmp.y" 2482 { 2483 if( yymsp[0].minor.yy179 ){ 2484 yymsp[0].minor.yy179->op = yymsp[-1].minor.yy372; 2485 yymsp[0].minor.yy179->pPrior = yymsp[-2].minor.yy179; 2486 } 2487 yygotominor.yy179 = yymsp[0].minor.yy179; 2488 } 2489 #line 2489 "parse_tmp.c" 2490 break; 2491 case 103: 2492 #line 302 "parse_tmp.y" 2493 {yygotominor.yy372 = TK_UNION;} 2494 #line 2494 "parse_tmp.c" 2495 /* No destructor defined for UNION */ 2496 break; 2497 case 104: 2498 #line 303 "parse_tmp.y" 2499 {yygotominor.yy372 = TK_ALL;} 2500 #line 2500 "parse_tmp.c" 2501 /* No destructor defined for UNION */ 2502 /* No destructor defined for ALL */ 2503 break; 2504 case 105: 2505 #line 304 "parse_tmp.y" 2506 {yygotominor.yy372 = TK_INTERSECT;} 2507 #line 2507 "parse_tmp.c" 2508 /* No destructor defined for INTERSECT */ 2509 break; 2510 case 106: 2511 #line 305 "parse_tmp.y" 2512 {yygotominor.yy372 = TK_EXCEPT;} 2513 #line 2513 "parse_tmp.c" 2514 /* No destructor defined for EXCEPT */ 2515 break; 2516 case 107: 2517 #line 307 "parse_tmp.y" 2518 { 2519 yygotominor.yy179 = sqliteSelectNew(yymsp[-6].minor.yy322,yymsp[-5].minor.yy307,yymsp[-4].minor.yy242,yymsp[-3].minor.yy322,yymsp[-2].minor.yy242,yymsp[-1].minor.yy322,yymsp[-7].minor.yy372,yymsp[0].minor.yy124.limit,yymsp[0].minor.yy124.offset); 2520 } 2521 #line 2521 "parse_tmp.c" 2522 /* No destructor defined for SELECT */ 2523 break; 2524 case 108: 2525 #line 315 "parse_tmp.y" 2526 {yygotominor.yy372 = 1;} 2527 #line 2527 "parse_tmp.c" 2528 /* No destructor defined for DISTINCT */ 2529 break; 2530 case 109: 2531 #line 316 "parse_tmp.y" 2532 {yygotominor.yy372 = 0;} 2533 #line 2533 "parse_tmp.c" 2534 /* No destructor defined for ALL */ 2535 break; 2536 case 110: 2537 #line 317 "parse_tmp.y" 2538 {yygotominor.yy372 = 0;} 2539 #line 2539 "parse_tmp.c" 2540 break; 2541 case 111: 2542 #line 328 "parse_tmp.y" 2543 {yygotominor.yy322 = yymsp[-1].minor.yy322;} 2544 #line 2544 "parse_tmp.c" 2545 /* No destructor defined for COMMA */ 2546 break; 2547 case 112: 2548 #line 329 "parse_tmp.y" 2549 {yygotominor.yy322 = 0;} 2550 #line 2550 "parse_tmp.c" 2551 break; 2552 case 113: 2553 #line 330 "parse_tmp.y" 2554 { 2555 yygotominor.yy322 = sqliteExprListAppend(yymsp[-2].minor.yy322,yymsp[-1].minor.yy242,yymsp[0].minor.yy298.n?&yymsp[0].minor.yy298:0); 2556 } 2557 #line 2557 "parse_tmp.c" 2558 break; 2559 case 114: 2560 #line 333 "parse_tmp.y" 2561 { 2562 yygotominor.yy322 = sqliteExprListAppend(yymsp[-1].minor.yy322, sqliteExpr(TK_ALL, 0, 0, 0), 0); 2563 } 2564 #line 2564 "parse_tmp.c" 2565 /* No destructor defined for STAR */ 2566 break; 2567 case 115: 2568 #line 336 "parse_tmp.y" 2569 { 2570 Expr *pRight = sqliteExpr(TK_ALL, 0, 0, 0); 2571 Expr *pLeft = sqliteExpr(TK_ID, 0, 0, &yymsp[-2].minor.yy298); 2572 yygotominor.yy322 = sqliteExprListAppend(yymsp[-3].minor.yy322, sqliteExpr(TK_DOT, pLeft, pRight, 0), 0); 2573 } 2574 #line 2574 "parse_tmp.c" 2575 /* No destructor defined for DOT */ 2576 /* No destructor defined for STAR */ 2577 break; 2578 case 116: 2579 #line 346 "parse_tmp.y" 2580 { yygotominor.yy298 = yymsp[0].minor.yy298; } 2581 #line 2581 "parse_tmp.c" 2582 /* No destructor defined for AS */ 2583 break; 2584 case 117: 2585 #line 347 "parse_tmp.y" 2586 { yygotominor.yy298 = yymsp[0].minor.yy298; } 2587 #line 2587 "parse_tmp.c" 2588 break; 2589 case 118: 2590 #line 348 "parse_tmp.y" 2591 { yygotominor.yy298.n = 0; } 2592 #line 2592 "parse_tmp.c" 2593 break; 2594 case 119: 2595 #line 360 "parse_tmp.y" 2596 {yygotominor.yy307 = sqliteMalloc(sizeof(*yygotominor.yy307));} 2597 #line 2597 "parse_tmp.c" 2598 break; 2599 case 120: 2600 #line 361 "parse_tmp.y" 2601 {yygotominor.yy307 = yymsp[0].minor.yy307;} 2602 #line 2602 "parse_tmp.c" 2603 /* No destructor defined for FROM */ 2604 break; 2605 case 121: 2606 #line 366 "parse_tmp.y" 2607 { 2608 yygotominor.yy307 = yymsp[-1].minor.yy307; 2609 if( yygotominor.yy307 && yygotominor.yy307->nSrc>0 ) yygotominor.yy307->a[yygotominor.yy307->nSrc-1].jointype = yymsp[0].minor.yy372; 2610 } 2611 #line 2611 "parse_tmp.c" 2612 break; 2613 case 122: 2614 #line 370 "parse_tmp.y" 2615 {yygotominor.yy307 = 0;} 2616 #line 2616 "parse_tmp.c" 2617 break; 2618 case 123: 2619 #line 371 "parse_tmp.y" 2620 { 2621 yygotominor.yy307 = sqliteSrcListAppend(yymsp[-5].minor.yy307,&yymsp[-4].minor.yy298,&yymsp[-3].minor.yy298); 2622 if( yymsp[-2].minor.yy298.n ) sqliteSrcListAddAlias(yygotominor.yy307,&yymsp[-2].minor.yy298); 2623 if( yymsp[-1].minor.yy242 ){ 2624 if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pOn = yymsp[-1].minor.yy242; } 2625 else { sqliteExprDelete(yymsp[-1].minor.yy242); } 2626 } 2627 if( yymsp[0].minor.yy320 ){ 2628 if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pUsing = yymsp[0].minor.yy320; } 2629 else { sqliteIdListDelete(yymsp[0].minor.yy320); } 2630 } 2631 } 2632 #line 2632 "parse_tmp.c" 2633 break; 2634 case 124: 2635 #line 384 "parse_tmp.y" 2636 { 2637 yygotominor.yy307 = sqliteSrcListAppend(yymsp[-6].minor.yy307,0,0); 2638 yygotominor.yy307->a[yygotominor.yy307->nSrc-1].pSelect = yymsp[-4].minor.yy179; 2639 if( yymsp[-2].minor.yy298.n ) sqliteSrcListAddAlias(yygotominor.yy307,&yymsp[-2].minor.yy298); 2640 if( yymsp[-1].minor.yy242 ){ 2641 if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pOn = yymsp[-1].minor.yy242; } 2642 else { sqliteExprDelete(yymsp[-1].minor.yy242); } 2643 } 2644 if( yymsp[0].minor.yy320 ){ 2645 if( yygotominor.yy307 && yygotominor.yy307->nSrc>1 ){ yygotominor.yy307->a[yygotominor.yy307->nSrc-2].pUsing = yymsp[0].minor.yy320; } 2646 else { sqliteIdListDelete(yymsp[0].minor.yy320); } 2647 } 2648 } 2649 #line 2649 "parse_tmp.c" 2650 /* No destructor defined for LP */ 2651 /* No destructor defined for RP */ 2652 break; 2653 case 125: 2654 #line 404 "parse_tmp.y" 2655 {yygotominor.yy179 = yymsp[0].minor.yy179;} 2656 #line 2656 "parse_tmp.c" 2657 break; 2658 case 126: 2659 #line 405 "parse_tmp.y" 2660 { 2661 yygotominor.yy179 = sqliteSelectNew(0,yymsp[0].minor.yy307,0,0,0,0,0,-1,0); 2662 } 2663 #line 2663 "parse_tmp.c" 2664 break; 2665 case 127: 2666 #line 410 "parse_tmp.y" 2667 {yygotominor.yy298.z=0; yygotominor.yy298.n=0;} 2668 #line 2668 "parse_tmp.c" 2669 break; 2670 case 128: 2671 #line 411 "parse_tmp.y" 2672 {yygotominor.yy298 = yymsp[0].minor.yy298;} 2673 #line 2673 "parse_tmp.c" 2674 /* No destructor defined for DOT */ 2675 break; 2676 case 129: 2677 #line 415 "parse_tmp.y" 2678 { yygotominor.yy372 = JT_INNER; } 2679 #line 2679 "parse_tmp.c" 2680 /* No destructor defined for COMMA */ 2681 break; 2682 case 130: 2683 #line 416 "parse_tmp.y" 2684 { yygotominor.yy372 = JT_INNER; } 2685 #line 2685 "parse_tmp.c" 2686 /* No destructor defined for JOIN */ 2687 break; 2688 case 131: 2689 #line 417 "parse_tmp.y" 2690 { yygotominor.yy372 = sqliteJoinType(pParse,&yymsp[-1].minor.yy0,0,0); } 2691 #line 2691 "parse_tmp.c" 2692 /* No destructor defined for JOIN */ 2693 break; 2694 case 132: 2695 #line 418 "parse_tmp.y" 2696 { yygotominor.yy372 = sqliteJoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy298,0); } 2697 #line 2697 "parse_tmp.c" 2698 /* No destructor defined for JOIN */ 2699 break; 2700 case 133: 2701 #line 420 "parse_tmp.y" 2702 { yygotominor.yy372 = sqliteJoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy298,&yymsp[-1].minor.yy298); } 2703 #line 2703 "parse_tmp.c" 2704 /* No destructor defined for JOIN */ 2705 break; 2706 case 134: 2707 #line 424 "parse_tmp.y" 2708 {yygotominor.yy242 = yymsp[0].minor.yy242;} 2709 #line 2709 "parse_tmp.c" 2710 /* No destructor defined for ON */ 2711 break; 2712 case 135: 2713 #line 425 "parse_tmp.y" 2714 {yygotominor.yy242 = 0;} 2715 #line 2715 "parse_tmp.c" 2716 break; 2717 case 136: 2718 #line 429 "parse_tmp.y" 2719 {yygotominor.yy320 = yymsp[-1].minor.yy320;} 2720 #line 2720 "parse_tmp.c" 2721 /* No destructor defined for USING */ 2722 /* No destructor defined for LP */ 2723 /* No destructor defined for RP */ 2724 break; 2725 case 137: 2726 #line 430 "parse_tmp.y" 2727 {yygotominor.yy320 = 0;} 2728 #line 2728 "parse_tmp.c" 2729 break; 2730 case 138: 2731 #line 440 "parse_tmp.y" 2732 {yygotominor.yy322 = 0;} 2733 #line 2733 "parse_tmp.c" 2734 break; 2735 case 139: 2736 #line 441 "parse_tmp.y" 2737 {yygotominor.yy322 = yymsp[0].minor.yy322;} 2738 #line 2738 "parse_tmp.c" 2739 /* No destructor defined for ORDER */ 2740 /* No destructor defined for BY */ 2741 break; 2742 case 140: 2743 #line 442 "parse_tmp.y" 2744 { 2745 yygotominor.yy322 = sqliteExprListAppend(yymsp[-4].minor.yy322,yymsp[-2].minor.yy242,0); 2746 if( yygotominor.yy322 ) yygotominor.yy322->a[yygotominor.yy322->nExpr-1].sortOrder = yymsp[-1].minor.yy372+yymsp[0].minor.yy372; 2747 } 2748 #line 2748 "parse_tmp.c" 2749 /* No destructor defined for COMMA */ 2750 break; 2751 case 141: 2752 #line 446 "parse_tmp.y" 2753 { 2754 yygotominor.yy322 = sqliteExprListAppend(0,yymsp[-2].minor.yy242,0); 2755 if( yygotominor.yy322 ) yygotominor.yy322->a[0].sortOrder = yymsp[-1].minor.yy372+yymsp[0].minor.yy372; 2756 } 2757 #line 2757 "parse_tmp.c" 2758 break; 2759 case 142: 2760 #line 450 "parse_tmp.y" 2761 {yygotominor.yy242 = yymsp[0].minor.yy242;} 2762 #line 2762 "parse_tmp.c" 2763 break; 2764 case 143: 2765 #line 455 "parse_tmp.y" 2766 {yygotominor.yy372 = SQLITE_SO_ASC;} 2767 #line 2767 "parse_tmp.c" 2768 /* No destructor defined for ASC */ 2769 break; 2770 case 144: 2771 #line 456 "parse_tmp.y" 2772 {yygotominor.yy372 = SQLITE_SO_DESC;} 2773 #line 2773 "parse_tmp.c" 2774 /* No destructor defined for DESC */ 2775 break; 2776 case 145: 2777 #line 457 "parse_tmp.y" 2778 {yygotominor.yy372 = SQLITE_SO_ASC;} 2779 #line 2779 "parse_tmp.c" 2780 break; 2781 case 146: 2782 #line 458 "parse_tmp.y" 2783 {yygotominor.yy372 = SQLITE_SO_UNK;} 2784 #line 2784 "parse_tmp.c" 2785 break; 2786 case 147: 2787 #line 459 "parse_tmp.y" 2788 {yygotominor.yy372 = sqliteCollateType(yymsp[0].minor.yy298.z, yymsp[0].minor.yy298.n);} 2789 #line 2789 "parse_tmp.c" 2790 /* No destructor defined for COLLATE */ 2791 break; 2792 case 148: 2793 #line 463 "parse_tmp.y" 2794 {yygotominor.yy322 = 0;} 2795 #line 2795 "parse_tmp.c" 2796 break; 2797 case 149: 2798 #line 464 "parse_tmp.y" 2799 {yygotominor.yy322 = yymsp[0].minor.yy322;} 2800 #line 2800 "parse_tmp.c" 2801 /* No destructor defined for GROUP */ 2802 /* No destructor defined for BY */ 2803 break; 2804 case 150: 2805 #line 468 "parse_tmp.y" 2806 {yygotominor.yy242 = 0;} 2807 #line 2807 "parse_tmp.c" 2808 break; 2809 case 151: 2810 #line 469 "parse_tmp.y" 2811 {yygotominor.yy242 = yymsp[0].minor.yy242;} 2812 #line 2812 "parse_tmp.c" 2813 /* No destructor defined for HAVING */ 2814 break; 2815 case 152: 2816 #line 472 "parse_tmp.y" 2817 {yygotominor.yy124.limit = -1; yygotominor.yy124.offset = 0;} 2818 #line 2818 "parse_tmp.c" 2819 break; 2820 case 153: 2821 #line 473 "parse_tmp.y" 2822 {yygotominor.yy124.limit = yymsp[0].minor.yy372; yygotominor.yy124.offset = 0;} 2823 #line 2823 "parse_tmp.c" 2824 /* No destructor defined for LIMIT */ 2825 break; 2826 case 154: 2827 #line 475 "parse_tmp.y" 2828 {yygotominor.yy124.limit = yymsp[-2].minor.yy372; yygotominor.yy124.offset = yymsp[0].minor.yy372;} 2829 #line 2829 "parse_tmp.c" 2830 /* No destructor defined for LIMIT */ 2831 /* No destructor defined for OFFSET */ 2832 break; 2833 case 155: 2834 #line 477 "parse_tmp.y" 2835 {yygotominor.yy124.limit = yymsp[0].minor.yy372; yygotominor.yy124.offset = yymsp[-2].minor.yy372;} 2836 #line 2836 "parse_tmp.c" 2837 /* No destructor defined for LIMIT */ 2838 /* No destructor defined for COMMA */ 2839 break; 2840 case 156: 2841 #line 481 "parse_tmp.y" 2842 { 2843 sqliteDeleteFrom(pParse, sqliteSrcListAppend(0,&yymsp[-2].minor.yy298,&yymsp[-1].minor.yy298), yymsp[0].minor.yy242); 2844 } 2845 #line 2845 "parse_tmp.c" 2846 /* No destructor defined for DELETE */ 2847 /* No destructor defined for FROM */ 2848 break; 2849 case 157: 2850 #line 488 "parse_tmp.y" 2851 {yygotominor.yy242 = 0;} 2852 #line 2852 "parse_tmp.c" 2853 break; 2854 case 158: 2855 #line 489 "parse_tmp.y" 2856 {yygotominor.yy242 = yymsp[0].minor.yy242;} 2857 #line 2857 "parse_tmp.c" 2858 /* No destructor defined for WHERE */ 2859 break; 2860 case 159: 2861 #line 497 "parse_tmp.y" 2862 {sqliteUpdate(pParse,sqliteSrcListAppend(0,&yymsp[-4].minor.yy298,&yymsp[-3].minor.yy298),yymsp[-1].minor.yy322,yymsp[0].minor.yy242,yymsp[-5].minor.yy372);} 2863 #line 2863 "parse_tmp.c" 2864 /* No destructor defined for UPDATE */ 2865 /* No destructor defined for SET */ 2866 break; 2867 case 160: 2868 #line 500 "parse_tmp.y" 2869 {yygotominor.yy322 = sqliteExprListAppend(yymsp[-4].minor.yy322,yymsp[0].minor.yy242,&yymsp[-2].minor.yy298);} 2870 #line 2870 "parse_tmp.c" 2871 /* No destructor defined for COMMA */ 2872 /* No destructor defined for EQ */ 2873 break; 2874 case 161: 2875 #line 501 "parse_tmp.y" 2876 {yygotominor.yy322 = sqliteExprListAppend(0,yymsp[0].minor.yy242,&yymsp[-2].minor.yy298);} 2877 #line 2877 "parse_tmp.c" 2878 /* No destructor defined for EQ */ 2879 break; 2880 case 162: 2881 #line 507 "parse_tmp.y" 2882 {sqliteInsert(pParse, sqliteSrcListAppend(0,&yymsp[-6].minor.yy298,&yymsp[-5].minor.yy298), yymsp[-1].minor.yy322, 0, yymsp[-4].minor.yy320, yymsp[-8].minor.yy372);} 2883 #line 2883 "parse_tmp.c" 2884 /* No destructor defined for INTO */ 2885 /* No destructor defined for VALUES */ 2886 /* No destructor defined for LP */ 2887 /* No destructor defined for RP */ 2888 break; 2889 case 163: 2890 #line 509 "parse_tmp.y" 2891 {sqliteInsert(pParse, sqliteSrcListAppend(0,&yymsp[-3].minor.yy298,&yymsp[-2].minor.yy298), 0, yymsp[0].minor.yy179, yymsp[-1].minor.yy320, yymsp[-5].minor.yy372);} 2892 #line 2892 "parse_tmp.c" 2893 /* No destructor defined for INTO */ 2894 break; 2895 case 164: 2896 #line 512 "parse_tmp.y" 2897 {yygotominor.yy372 = yymsp[0].minor.yy372;} 2898 #line 2898 "parse_tmp.c" 2899 /* No destructor defined for INSERT */ 2900 break; 2901 case 165: 2902 #line 513 "parse_tmp.y" 2903 {yygotominor.yy372 = OE_Replace;} 2904 #line 2904 "parse_tmp.c" 2905 /* No destructor defined for REPLACE */ 2906 break; 2907 case 166: 2908 #line 519 "parse_tmp.y" 2909 {yygotominor.yy322 = sqliteExprListAppend(yymsp[-2].minor.yy322,yymsp[0].minor.yy242,0);} 2910 #line 2910 "parse_tmp.c" 2911 /* No destructor defined for COMMA */ 2912 break; 2913 case 167: 2914 #line 520 "parse_tmp.y" 2915 {yygotominor.yy322 = sqliteExprListAppend(0,yymsp[0].minor.yy242,0);} 2916 #line 2916 "parse_tmp.c" 2917 break; 2918 case 168: 2919 #line 527 "parse_tmp.y" 2920 {yygotominor.yy320 = 0;} 2921 #line 2921 "parse_tmp.c" 2922 break; 2923 case 169: 2924 #line 528 "parse_tmp.y" 2925 {yygotominor.yy320 = yymsp[-1].minor.yy320;} 2926 #line 2926 "parse_tmp.c" 2927 /* No destructor defined for LP */ 2928 /* No destructor defined for RP */ 2929 break; 2930 case 170: 2931 #line 529 "parse_tmp.y" 2932 {yygotominor.yy320 = sqliteIdListAppend(yymsp[-2].minor.yy320,&yymsp[0].minor.yy298);} 2933 #line 2933 "parse_tmp.c" 2934 /* No destructor defined for COMMA */ 2935 break; 2936 case 171: 2937 #line 530 "parse_tmp.y" 2938 {yygotominor.yy320 = sqliteIdListAppend(0,&yymsp[0].minor.yy298);} 2939 #line 2939 "parse_tmp.c" 2940 break; 2941 case 172: 2942 #line 538 "parse_tmp.y" 2943 {yygotominor.yy242 = yymsp[-1].minor.yy242; sqliteExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); } 2944 #line 2944 "parse_tmp.c" 2945 break; 2946 case 173: 2947 #line 539 "parse_tmp.y" 2948 {yygotominor.yy242 = sqliteExpr(TK_NULL, 0, 0, &yymsp[0].minor.yy0);} 2949 #line 2949 "parse_tmp.c" 2950 break; 2951 case 174: 2952 #line 540 "parse_tmp.y" 2953 {yygotominor.yy242 = sqliteExpr(TK_ID, 0, 0, &yymsp[0].minor.yy0);} 2954 #line 2954 "parse_tmp.c" 2955 break; 2956 case 175: 2957 #line 541 "parse_tmp.y" 2958 {yygotominor.yy242 = sqliteExpr(TK_ID, 0, 0, &yymsp[0].minor.yy0);} 2959 #line 2959 "parse_tmp.c" 2960 break; 2961 case 176: 2962 #line 542 "parse_tmp.y" 2963 { 2964 Expr *temp1 = sqliteExpr(TK_ID, 0, 0, &yymsp[-2].minor.yy298); 2965 Expr *temp2 = sqliteExpr(TK_ID, 0, 0, &yymsp[0].minor.yy298); 2966 yygotominor.yy242 = sqliteExpr(TK_DOT, temp1, temp2, 0); 2967 } 2968 #line 2968 "parse_tmp.c" 2969 /* No destructor defined for DOT */ 2970 break; 2971 case 177: 2972 #line 547 "parse_tmp.y" 2973 { 2974 Expr *temp1 = sqliteExpr(TK_ID, 0, 0, &yymsp[-4].minor.yy298); 2975 Expr *temp2 = sqliteExpr(TK_ID, 0, 0, &yymsp[-2].minor.yy298); 2976 Expr *temp3 = sqliteExpr(TK_ID, 0, 0, &yymsp[0].minor.yy298); 2977 Expr *temp4 = sqliteExpr(TK_DOT, temp2, temp3, 0); 2978 yygotominor.yy242 = sqliteExpr(TK_DOT, temp1, temp4, 0); 2979 } 2980 #line 2980 "parse_tmp.c" 2981 /* No destructor defined for DOT */ 2982 /* No destructor defined for DOT */ 2983 break; 2984 case 178: 2985 #line 554 "parse_tmp.y" 2986 {yygotominor.yy242 = sqliteExpr(TK_INTEGER, 0, 0, &yymsp[0].minor.yy0);} 2987 #line 2987 "parse_tmp.c" 2988 break; 2989 case 179: 2990 #line 555 "parse_tmp.y" 2991 {yygotominor.yy242 = sqliteExpr(TK_FLOAT, 0, 0, &yymsp[0].minor.yy0);} 2992 #line 2992 "parse_tmp.c" 2993 break; 2994 case 180: 2995 #line 556 "parse_tmp.y" 2996 {yygotominor.yy242 = sqliteExpr(TK_STRING, 0, 0, &yymsp[0].minor.yy0);} 2997 #line 2997 "parse_tmp.c" 2998 break; 2999 case 181: 3000 #line 557 "parse_tmp.y" 3001 { 3002 yygotominor.yy242 = sqliteExpr(TK_VARIABLE, 0, 0, &yymsp[0].minor.yy0); 3003 if( yygotominor.yy242 ) yygotominor.yy242->iTable = ++pParse->nVar; 3004 } 3005 #line 3005 "parse_tmp.c" 3006 break; 3007 case 182: 3008 #line 561 "parse_tmp.y" 3009 { 3010 yygotominor.yy242 = sqliteExprFunction(yymsp[-1].minor.yy322, &yymsp[-3].minor.yy0); 3011 sqliteExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); 3012 } 3013 #line 3013 "parse_tmp.c" 3014 /* No destructor defined for LP */ 3015 break; 3016 case 183: 3017 #line 565 "parse_tmp.y" 3018 { 3019 yygotominor.yy242 = sqliteExprFunction(0, &yymsp[-3].minor.yy0); 3020 sqliteExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0); 3021 } 3022 #line 3022 "parse_tmp.c" 3023 /* No destructor defined for LP */ 3024 /* No destructor defined for STAR */ 3025 break; 3026 case 184: 3027 #line 569 "parse_tmp.y" 3028 {yygotominor.yy242 = sqliteExpr(TK_AND, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3029 #line 3029 "parse_tmp.c" 3030 /* No destructor defined for AND */ 3031 break; 3032 case 185: 3033 #line 570 "parse_tmp.y" 3034 {yygotominor.yy242 = sqliteExpr(TK_OR, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3035 #line 3035 "parse_tmp.c" 3036 /* No destructor defined for OR */ 3037 break; 3038 case 186: 3039 #line 571 "parse_tmp.y" 3040 {yygotominor.yy242 = sqliteExpr(TK_LT, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3041 #line 3041 "parse_tmp.c" 3042 /* No destructor defined for LT */ 3043 break; 3044 case 187: 3045 #line 572 "parse_tmp.y" 3046 {yygotominor.yy242 = sqliteExpr(TK_GT, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3047 #line 3047 "parse_tmp.c" 3048 /* No destructor defined for GT */ 3049 break; 3050 case 188: 3051 #line 573 "parse_tmp.y" 3052 {yygotominor.yy242 = sqliteExpr(TK_LE, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3053 #line 3053 "parse_tmp.c" 3054 /* No destructor defined for LE */ 3055 break; 3056 case 189: 3057 #line 574 "parse_tmp.y" 3058 {yygotominor.yy242 = sqliteExpr(TK_GE, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3059 #line 3059 "parse_tmp.c" 3060 /* No destructor defined for GE */ 3061 break; 3062 case 190: 3063 #line 575 "parse_tmp.y" 3064 {yygotominor.yy242 = sqliteExpr(TK_NE, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3065 #line 3065 "parse_tmp.c" 3066 /* No destructor defined for NE */ 3067 break; 3068 case 191: 3069 #line 576 "parse_tmp.y" 3070 {yygotominor.yy242 = sqliteExpr(TK_EQ, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3071 #line 3071 "parse_tmp.c" 3072 /* No destructor defined for EQ */ 3073 break; 3074 case 192: 3075 #line 577 "parse_tmp.y" 3076 {yygotominor.yy242 = sqliteExpr(TK_BITAND, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3077 #line 3077 "parse_tmp.c" 3078 /* No destructor defined for BITAND */ 3079 break; 3080 case 193: 3081 #line 578 "parse_tmp.y" 3082 {yygotominor.yy242 = sqliteExpr(TK_BITOR, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3083 #line 3083 "parse_tmp.c" 3084 /* No destructor defined for BITOR */ 3085 break; 3086 case 194: 3087 #line 579 "parse_tmp.y" 3088 {yygotominor.yy242 = sqliteExpr(TK_LSHIFT, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3089 #line 3089 "parse_tmp.c" 3090 /* No destructor defined for LSHIFT */ 3091 break; 3092 case 195: 3093 #line 580 "parse_tmp.y" 3094 {yygotominor.yy242 = sqliteExpr(TK_RSHIFT, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3095 #line 3095 "parse_tmp.c" 3096 /* No destructor defined for RSHIFT */ 3097 break; 3098 case 196: 3099 #line 581 "parse_tmp.y" 3100 { 3101 ExprList *pList = sqliteExprListAppend(0, yymsp[0].minor.yy242, 0); 3102 pList = sqliteExprListAppend(pList, yymsp[-2].minor.yy242, 0); 3103 yygotominor.yy242 = sqliteExprFunction(pList, 0); 3104 if( yygotominor.yy242 ) yygotominor.yy242->op = yymsp[-1].minor.yy372; 3105 sqliteExprSpan(yygotominor.yy242, &yymsp[-2].minor.yy242->span, &yymsp[0].minor.yy242->span); 3106 } 3107 #line 3107 "parse_tmp.c" 3108 break; 3109 case 197: 3110 #line 588 "parse_tmp.y" 3111 { 3112 ExprList *pList = sqliteExprListAppend(0, yymsp[0].minor.yy242, 0); 3113 pList = sqliteExprListAppend(pList, yymsp[-3].minor.yy242, 0); 3114 yygotominor.yy242 = sqliteExprFunction(pList, 0); 3115 if( yygotominor.yy242 ) yygotominor.yy242->op = yymsp[-1].minor.yy372; 3116 yygotominor.yy242 = sqliteExpr(TK_NOT, yygotominor.yy242, 0, 0); 3117 sqliteExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy242->span,&yymsp[0].minor.yy242->span); 3118 } 3119 #line 3119 "parse_tmp.c" 3120 /* No destructor defined for NOT */ 3121 break; 3122 case 198: 3123 #line 597 "parse_tmp.y" 3124 {yygotominor.yy372 = TK_LIKE;} 3125 #line 3125 "parse_tmp.c" 3126 /* No destructor defined for LIKE */ 3127 break; 3128 case 199: 3129 #line 598 "parse_tmp.y" 3130 {yygotominor.yy372 = TK_GLOB;} 3131 #line 3131 "parse_tmp.c" 3132 /* No destructor defined for GLOB */ 3133 break; 3134 case 200: 3135 #line 599 "parse_tmp.y" 3136 {yygotominor.yy242 = sqliteExpr(TK_PLUS, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3137 #line 3137 "parse_tmp.c" 3138 /* No destructor defined for PLUS */ 3139 break; 3140 case 201: 3141 #line 600 "parse_tmp.y" 3142 {yygotominor.yy242 = sqliteExpr(TK_MINUS, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3143 #line 3143 "parse_tmp.c" 3144 /* No destructor defined for MINUS */ 3145 break; 3146 case 202: 3147 #line 601 "parse_tmp.y" 3148 {yygotominor.yy242 = sqliteExpr(TK_STAR, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3149 #line 3149 "parse_tmp.c" 3150 /* No destructor defined for STAR */ 3151 break; 3152 case 203: 3153 #line 602 "parse_tmp.y" 3154 {yygotominor.yy242 = sqliteExpr(TK_SLASH, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3155 #line 3155 "parse_tmp.c" 3156 /* No destructor defined for SLASH */ 3157 break; 3158 case 204: 3159 #line 603 "parse_tmp.y" 3160 {yygotominor.yy242 = sqliteExpr(TK_REM, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3161 #line 3161 "parse_tmp.c" 3162 /* No destructor defined for REM */ 3163 break; 3164 case 205: 3165 #line 604 "parse_tmp.y" 3166 {yygotominor.yy242 = sqliteExpr(TK_CONCAT, yymsp[-2].minor.yy242, yymsp[0].minor.yy242, 0);} 3167 #line 3167 "parse_tmp.c" 3168 /* No destructor defined for CONCAT */ 3169 break; 3170 case 206: 3171 #line 605 "parse_tmp.y" 3172 { 3173 yygotominor.yy242 = sqliteExpr(TK_ISNULL, yymsp[-1].minor.yy242, 0, 0); 3174 sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy242->span,&yymsp[0].minor.yy0); 3175 } 3176 #line 3176 "parse_tmp.c" 3177 break; 3178 case 207: 3179 #line 609 "parse_tmp.y" 3180 { 3181 yygotominor.yy242 = sqliteExpr(TK_ISNULL, yymsp[-2].minor.yy242, 0, 0); 3182 sqliteExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy242->span,&yymsp[0].minor.yy0); 3183 } 3184 #line 3184 "parse_tmp.c" 3185 /* No destructor defined for IS */ 3186 break; 3187 case 208: 3188 #line 613 "parse_tmp.y" 3189 { 3190 yygotominor.yy242 = sqliteExpr(TK_NOTNULL, yymsp[-1].minor.yy242, 0, 0); 3191 sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy242->span,&yymsp[0].minor.yy0); 3192 } 3193 #line 3193 "parse_tmp.c" 3194 break; 3195 case 209: 3196 #line 617 "parse_tmp.y" 3197 { 3198 yygotominor.yy242 = sqliteExpr(TK_NOTNULL, yymsp[-2].minor.yy242, 0, 0); 3199 sqliteExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy242->span,&yymsp[0].minor.yy0); 3200 } 3201 #line 3201 "parse_tmp.c" 3202 /* No destructor defined for NOT */ 3203 break; 3204 case 210: 3205 #line 621 "parse_tmp.y" 3206 { 3207 yygotominor.yy242 = sqliteExpr(TK_NOTNULL, yymsp[-3].minor.yy242, 0, 0); 3208 sqliteExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy242->span,&yymsp[0].minor.yy0); 3209 } 3210 #line 3210 "parse_tmp.c" 3211 /* No destructor defined for IS */ 3212 /* No destructor defined for NOT */ 3213 break; 3214 case 211: 3215 #line 625 "parse_tmp.y" 3216 { 3217 yygotominor.yy242 = sqliteExpr(TK_NOT, yymsp[0].minor.yy242, 0, 0); 3218 sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy242->span); 3219 } 3220 #line 3220 "parse_tmp.c" 3221 break; 3222 case 212: 3223 #line 629 "parse_tmp.y" 3224 { 3225 yygotominor.yy242 = sqliteExpr(TK_BITNOT, yymsp[0].minor.yy242, 0, 0); 3226 sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy242->span); 3227 } 3228 #line 3228 "parse_tmp.c" 3229 break; 3230 case 213: 3231 #line 633 "parse_tmp.y" 3232 { 3233 yygotominor.yy242 = sqliteExpr(TK_UMINUS, yymsp[0].minor.yy242, 0, 0); 3234 sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy242->span); 3235 } 3236 #line 3236 "parse_tmp.c" 3237 break; 3238 case 214: 3239 #line 637 "parse_tmp.y" 3240 { 3241 yygotominor.yy242 = sqliteExpr(TK_UPLUS, yymsp[0].minor.yy242, 0, 0); 3242 sqliteExprSpan(yygotominor.yy242,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy242->span); 3243 } 3244 #line 3244 "parse_tmp.c" 3245 break; 3246 case 215: 3247 #line 641 "parse_tmp.y" 3248 { 3249 yygotominor.yy242 = sqliteExpr(TK_SELECT, 0, 0, 0); 3250 if( yygotominor.yy242 ) yygotominor.yy242->pSelect = yymsp[-1].minor.yy179; 3251 sqliteExprSpan(yygotominor.yy242,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); 3252 } 3253 #line 3253 "parse_tmp.c" 3254 break; 3255 case 216: 3256 #line 646 "parse_tmp.y" 3257 { 3258 ExprList *pList = sqliteExprListAppend(0, yymsp[-2].minor.yy242, 0); 3259 pList = sqliteExprListAppend(pList, yymsp[0].minor.yy242, 0); 3260 yygotominor.yy242 = sqliteExpr(TK_BETWEEN, yymsp[-4].minor.yy242, 0, 0); 3261 if( yygotominor.yy242 ) yygotominor.yy242->pList = pList; 3262 sqliteExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,&yymsp[0].minor.yy242->span); 3263 } 3264 #line 3264 "parse_tmp.c" 3265 /* No destructor defined for BETWEEN */ 3266 /* No destructor defined for AND */ 3267 break; 3268 case 217: 3269 #line 653 "parse_tmp.y" 3270 { 3271 ExprList *pList = sqliteExprListAppend(0, yymsp[-2].minor.yy242, 0); 3272 pList = sqliteExprListAppend(pList, yymsp[0].minor.yy242, 0); 3273 yygotominor.yy242 = sqliteExpr(TK_BETWEEN, yymsp[-5].minor.yy242, 0, 0); 3274 if( yygotominor.yy242 ) yygotominor.yy242->pList = pList; 3275 yygotominor.yy242 = sqliteExpr(TK_NOT, yygotominor.yy242, 0, 0); 3276 sqliteExprSpan(yygotominor.yy242,&yymsp[-5].minor.yy242->span,&yymsp[0].minor.yy242->span); 3277 } 3278 #line 3278 "parse_tmp.c" 3279 /* No destructor defined for NOT */ 3280 /* No destructor defined for BETWEEN */ 3281 /* No destructor defined for AND */ 3282 break; 3283 case 218: 3284 #line 661 "parse_tmp.y" 3285 { 3286 yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-4].minor.yy242, 0, 0); 3287 if( yygotominor.yy242 ) yygotominor.yy242->pList = yymsp[-1].minor.yy322; 3288 sqliteExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,&yymsp[0].minor.yy0); 3289 } 3290 #line 3290 "parse_tmp.c" 3291 /* No destructor defined for IN */ 3292 /* No destructor defined for LP */ 3293 break; 3294 case 219: 3295 #line 666 "parse_tmp.y" 3296 { 3297 yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-4].minor.yy242, 0, 0); 3298 if( yygotominor.yy242 ) yygotominor.yy242->pSelect = yymsp[-1].minor.yy179; 3299 sqliteExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,&yymsp[0].minor.yy0); 3300 } 3301 #line 3301 "parse_tmp.c" 3302 /* No destructor defined for IN */ 3303 /* No destructor defined for LP */ 3304 break; 3305 case 220: 3306 #line 671 "parse_tmp.y" 3307 { 3308 yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-5].minor.yy242, 0, 0); 3309 if( yygotominor.yy242 ) yygotominor.yy242->pList = yymsp[-1].minor.yy322; 3310 yygotominor.yy242 = sqliteExpr(TK_NOT, yygotominor.yy242, 0, 0); 3311 sqliteExprSpan(yygotominor.yy242,&yymsp[-5].minor.yy242->span,&yymsp[0].minor.yy0); 3312 } 3313 #line 3313 "parse_tmp.c" 3314 /* No destructor defined for NOT */ 3315 /* No destructor defined for IN */ 3316 /* No destructor defined for LP */ 3317 break; 3318 case 221: 3319 #line 677 "parse_tmp.y" 3320 { 3321 yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-5].minor.yy242, 0, 0); 3322 if( yygotominor.yy242 ) yygotominor.yy242->pSelect = yymsp[-1].minor.yy179; 3323 yygotominor.yy242 = sqliteExpr(TK_NOT, yygotominor.yy242, 0, 0); 3324 sqliteExprSpan(yygotominor.yy242,&yymsp[-5].minor.yy242->span,&yymsp[0].minor.yy0); 3325 } 3326 #line 3326 "parse_tmp.c" 3327 /* No destructor defined for NOT */ 3328 /* No destructor defined for IN */ 3329 /* No destructor defined for LP */ 3330 break; 3331 case 222: 3332 #line 683 "parse_tmp.y" 3333 { 3334 SrcList *pSrc = sqliteSrcListAppend(0, &yymsp[-1].minor.yy298, &yymsp[0].minor.yy298); 3335 yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-3].minor.yy242, 0, 0); 3336 if( yygotominor.yy242 ) yygotominor.yy242->pSelect = sqliteSelectNew(0,pSrc,0,0,0,0,0,-1,0); 3337 sqliteExprSpan(yygotominor.yy242,&yymsp[-3].minor.yy242->span,yymsp[0].minor.yy298.z?&yymsp[0].minor.yy298:&yymsp[-1].minor.yy298); 3338 } 3339 #line 3339 "parse_tmp.c" 3340 /* No destructor defined for IN */ 3341 break; 3342 case 223: 3343 #line 689 "parse_tmp.y" 3344 { 3345 SrcList *pSrc = sqliteSrcListAppend(0, &yymsp[-1].minor.yy298, &yymsp[0].minor.yy298); 3346 yygotominor.yy242 = sqliteExpr(TK_IN, yymsp[-4].minor.yy242, 0, 0); 3347 if( yygotominor.yy242 ) yygotominor.yy242->pSelect = sqliteSelectNew(0,pSrc,0,0,0,0,0,-1,0); 3348 yygotominor.yy242 = sqliteExpr(TK_NOT, yygotominor.yy242, 0, 0); 3349 sqliteExprSpan(yygotominor.yy242,&yymsp[-4].minor.yy242->span,yymsp[0].minor.yy298.z?&yymsp[0].minor.yy298:&yymsp[-1].minor.yy298); 3350 } 3351 #line 3351 "parse_tmp.c" 3352 /* No destructor defined for NOT */ 3353 /* No destructor defined for IN */ 3354 break; 3355 case 224: 3356 #line 699 "parse_tmp.y" 3357 { 3358 yygotominor.yy242 = sqliteExpr(TK_CASE, yymsp[-3].minor.yy242, yymsp[-1].minor.yy242, 0); 3359 if( yygotominor.yy242 ) yygotominor.yy242->pList = yymsp[-2].minor.yy322; 3360 sqliteExprSpan(yygotominor.yy242, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0); 3361 } 3362 #line 3362 "parse_tmp.c" 3363 break; 3364 case 225: 3365 #line 706 "parse_tmp.y" 3366 { 3367 yygotominor.yy322 = sqliteExprListAppend(yymsp[-4].minor.yy322, yymsp[-2].minor.yy242, 0); 3368 yygotominor.yy322 = sqliteExprListAppend(yygotominor.yy322, yymsp[0].minor.yy242, 0); 3369 } 3370 #line 3370 "parse_tmp.c" 3371 /* No destructor defined for WHEN */ 3372 /* No destructor defined for THEN */ 3373 break; 3374 case 226: 3375 #line 710 "parse_tmp.y" 3376 { 3377 yygotominor.yy322 = sqliteExprListAppend(0, yymsp[-2].minor.yy242, 0); 3378 yygotominor.yy322 = sqliteExprListAppend(yygotominor.yy322, yymsp[0].minor.yy242, 0); 3379 } 3380 #line 3380 "parse_tmp.c" 3381 /* No destructor defined for WHEN */ 3382 /* No destructor defined for THEN */ 3383 break; 3384 case 227: 3385 #line 715 "parse_tmp.y" 3386 {yygotominor.yy242 = yymsp[0].minor.yy242;} 3387 #line 3387 "parse_tmp.c" 3388 /* No destructor defined for ELSE */ 3389 break; 3390 case 228: 3391 #line 716 "parse_tmp.y" 3392 {yygotominor.yy242 = 0;} 3393 #line 3393 "parse_tmp.c" 3394 break; 3395 case 229: 3396 #line 718 "parse_tmp.y" 3397 {yygotominor.yy242 = yymsp[0].minor.yy242;} 3398 #line 3398 "parse_tmp.c" 3399 break; 3400 case 230: 3401 #line 719 "parse_tmp.y" 3402 {yygotominor.yy242 = 0;} 3403 #line 3403 "parse_tmp.c" 3404 break; 3405 case 231: 3406 #line 727 "parse_tmp.y" 3407 {yygotominor.yy322 = sqliteExprListAppend(yymsp[-2].minor.yy322,yymsp[0].minor.yy242,0);} 3408 #line 3408 "parse_tmp.c" 3409 /* No destructor defined for COMMA */ 3410 break; 3411 case 232: 3412 #line 728 "parse_tmp.y" 3413 {yygotominor.yy322 = sqliteExprListAppend(0,yymsp[0].minor.yy242,0);} 3414 #line 3414 "parse_tmp.c" 3415 break; 3416 case 233: 3417 #line 729 "parse_tmp.y" 3418 {yygotominor.yy242 = yymsp[0].minor.yy242;} 3419 #line 3419 "parse_tmp.c" 3420 break; 3421 case 234: 3422 #line 730 "parse_tmp.y" 3423 {yygotominor.yy242 = 0;} 3424 #line 3424 "parse_tmp.c" 3425 break; 3426 case 235: 3427 #line 735 "parse_tmp.y" 3428 { 3429 SrcList *pSrc = sqliteSrcListAppend(0, &yymsp[-5].minor.yy298, &yymsp[-4].minor.yy298); 3430 if( yymsp[-9].minor.yy372!=OE_None ) yymsp[-9].minor.yy372 = yymsp[0].minor.yy372; 3431 if( yymsp[-9].minor.yy372==OE_Default) yymsp[-9].minor.yy372 = OE_Abort; 3432 sqliteCreateIndex(pParse, &yymsp[-7].minor.yy298, pSrc, yymsp[-2].minor.yy320, yymsp[-9].minor.yy372, &yymsp[-10].minor.yy0, &yymsp[-1].minor.yy0); 3433 } 3434 #line 3434 "parse_tmp.c" 3435 /* No destructor defined for INDEX */ 3436 /* No destructor defined for ON */ 3437 /* No destructor defined for LP */ 3438 break; 3439 case 236: 3440 #line 743 "parse_tmp.y" 3441 { yygotominor.yy372 = OE_Abort; } 3442 #line 3442 "parse_tmp.c" 3443 /* No destructor defined for UNIQUE */ 3444 break; 3445 case 237: 3446 #line 744 "parse_tmp.y" 3447 { yygotominor.yy372 = OE_None; } 3448 #line 3448 "parse_tmp.c" 3449 break; 3450 case 238: 3451 #line 752 "parse_tmp.y" 3452 {yygotominor.yy320 = 0;} 3453 #line 3453 "parse_tmp.c" 3454 break; 3455 case 239: 3456 #line 753 "parse_tmp.y" 3457 {yygotominor.yy320 = yymsp[-1].minor.yy320;} 3458 #line 3458 "parse_tmp.c" 3459 /* No destructor defined for LP */ 3460 /* No destructor defined for RP */ 3461 break; 3462 case 240: 3463 #line 754 "parse_tmp.y" 3464 {yygotominor.yy320 = sqliteIdListAppend(yymsp[-2].minor.yy320,&yymsp[0].minor.yy298);} 3465 #line 3465 "parse_tmp.c" 3466 /* No destructor defined for COMMA */ 3467 break; 3468 case 241: 3469 #line 755 "parse_tmp.y" 3470 {yygotominor.yy320 = sqliteIdListAppend(0,&yymsp[0].minor.yy298);} 3471 #line 3471 "parse_tmp.c" 3472 break; 3473 case 242: 3474 #line 756 "parse_tmp.y" 3475 {yygotominor.yy298 = yymsp[-1].minor.yy298;} 3476 #line 3476 "parse_tmp.c" 3477 /* No destructor defined for sortorder */ 3478 break; 3479 case 243: 3480 #line 761 "parse_tmp.y" 3481 { 3482 sqliteDropIndex(pParse, sqliteSrcListAppend(0,&yymsp[-1].minor.yy298,&yymsp[0].minor.yy298)); 3483 } 3484 #line 3484 "parse_tmp.c" 3485 /* No destructor defined for DROP */ 3486 /* No destructor defined for INDEX */ 3487 break; 3488 case 244: 3489 #line 769 "parse_tmp.y" 3490 {sqliteCopy(pParse,sqliteSrcListAppend(0,&yymsp[-6].minor.yy298,&yymsp[-5].minor.yy298),&yymsp[-3].minor.yy298,&yymsp[0].minor.yy0,yymsp[-7].minor.yy372);} 3491 #line 3491 "parse_tmp.c" 3492 /* No destructor defined for COPY */ 3493 /* No destructor defined for FROM */ 3494 /* No destructor defined for USING */ 3495 /* No destructor defined for DELIMITERS */ 3496 break; 3497 case 245: 3498 #line 771 "parse_tmp.y" 3499 {sqliteCopy(pParse,sqliteSrcListAppend(0,&yymsp[-3].minor.yy298,&yymsp[-2].minor.yy298),&yymsp[0].minor.yy298,0,yymsp[-4].minor.yy372);} 3500 #line 3500 "parse_tmp.c" 3501 /* No destructor defined for COPY */ 3502 /* No destructor defined for FROM */ 3503 break; 3504 case 246: 3505 #line 775 "parse_tmp.y" 3506 {sqliteVacuum(pParse,0);} 3507 #line 3507 "parse_tmp.c" 3508 /* No destructor defined for VACUUM */ 3509 break; 3510 case 247: 3511 #line 776 "parse_tmp.y" 3512 {sqliteVacuum(pParse,&yymsp[0].minor.yy298);} 3513 #line 3513 "parse_tmp.c" 3514 /* No destructor defined for VACUUM */ 3515 break; 3516 case 248: 3517 #line 780 "parse_tmp.y" 3518 {sqlitePragma(pParse,&yymsp[-2].minor.yy298,&yymsp[0].minor.yy298,0);} 3519 #line 3519 "parse_tmp.c" 3520 /* No destructor defined for PRAGMA */ 3521 /* No destructor defined for EQ */ 3522 break; 3523 case 249: 3524 #line 781 "parse_tmp.y" 3525 {sqlitePragma(pParse,&yymsp[-2].minor.yy298,&yymsp[0].minor.yy0,0);} 3526 #line 3526 "parse_tmp.c" 3527 /* No destructor defined for PRAGMA */ 3528 /* No destructor defined for EQ */ 3529 break; 3530 case 250: 3531 #line 782 "parse_tmp.y" 3532 {sqlitePragma(pParse,&yymsp[-2].minor.yy298,&yymsp[0].minor.yy298,0);} 3533 #line 3533 "parse_tmp.c" 3534 /* No destructor defined for PRAGMA */ 3535 /* No destructor defined for EQ */ 3536 break; 3537 case 251: 3538 #line 783 "parse_tmp.y" 3539 {sqlitePragma(pParse,&yymsp[-2].minor.yy298,&yymsp[0].minor.yy298,1);} 3540 #line 3540 "parse_tmp.c" 3541 /* No destructor defined for PRAGMA */ 3542 /* No destructor defined for EQ */ 3543 break; 3544 case 252: 3545 #line 784 "parse_tmp.y" 3546 {sqlitePragma(pParse,&yymsp[-3].minor.yy298,&yymsp[-1].minor.yy298,0);} 3547 #line 3547 "parse_tmp.c" 3548 /* No destructor defined for PRAGMA */ 3549 /* No destructor defined for LP */ 3550 /* No destructor defined for RP */ 3551 break; 3552 case 253: 3553 #line 785 "parse_tmp.y" 3554 {sqlitePragma(pParse,&yymsp[0].minor.yy298,&yymsp[0].minor.yy298,0);} 3555 #line 3555 "parse_tmp.c" 3556 /* No destructor defined for PRAGMA */ 3557 break; 3558 case 254: 3559 #line 786 "parse_tmp.y" 3560 {yygotominor.yy298 = yymsp[0].minor.yy298;} 3561 #line 3561 "parse_tmp.c" 3562 /* No destructor defined for plus_opt */ 3563 break; 3564 case 255: 3565 #line 787 "parse_tmp.y" 3566 {yygotominor.yy298 = yymsp[0].minor.yy298;} 3567 #line 3567 "parse_tmp.c" 3568 /* No destructor defined for MINUS */ 3569 break; 3570 case 256: 3571 #line 788 "parse_tmp.y" 3572 {yygotominor.yy298 = yymsp[0].minor.yy0;} 3573 #line 3573 "parse_tmp.c" 3574 break; 3575 case 257: 3576 #line 789 "parse_tmp.y" 3577 {yygotominor.yy298 = yymsp[0].minor.yy0;} 3578 #line 3578 "parse_tmp.c" 3579 break; 3580 case 258: 3581 /* No destructor defined for PLUS */ 3582 break; 3583 case 259: 3584 break; 3585 case 260: 3586 #line 795 "parse_tmp.y" 3587 { 3588 Token all; 3589 all.z = yymsp[-4].minor.yy0.z; 3590 all.n = (yymsp[0].minor.yy0.z - yymsp[-4].minor.yy0.z) + yymsp[0].minor.yy0.n; 3591 sqliteFinishTrigger(pParse, yymsp[-1].minor.yy19, &all); 3592 } 3593 #line 3593 "parse_tmp.c" 3594 /* No destructor defined for trigger_decl */ 3595 /* No destructor defined for BEGIN */ 3596 break; 3597 case 261: 3598 #line 803 "parse_tmp.y" 3599 { 3600 SrcList *pTab = sqliteSrcListAppend(0, &yymsp[-3].minor.yy298, &yymsp[-2].minor.yy298); 3601 sqliteBeginTrigger(pParse, &yymsp[-7].minor.yy298, yymsp[-6].minor.yy372, yymsp[-5].minor.yy290.a, yymsp[-5].minor.yy290.b, pTab, yymsp[-1].minor.yy372, yymsp[0].minor.yy182, yymsp[-9].minor.yy372); 3602 } 3603 #line 3603 "parse_tmp.c" 3604 /* No destructor defined for TRIGGER */ 3605 /* No destructor defined for ON */ 3606 break; 3607 case 262: 3608 #line 809 "parse_tmp.y" 3609 { yygotominor.yy372 = TK_BEFORE; } 3610 #line 3610 "parse_tmp.c" 3611 /* No destructor defined for BEFORE */ 3612 break; 3613 case 263: 3614 #line 810 "parse_tmp.y" 3615 { yygotominor.yy372 = TK_AFTER; } 3616 #line 3616 "parse_tmp.c" 3617 /* No destructor defined for AFTER */ 3618 break; 3619 case 264: 3620 #line 811 "parse_tmp.y" 3621 { yygotominor.yy372 = TK_INSTEAD;} 3622 #line 3622 "parse_tmp.c" 3623 /* No destructor defined for INSTEAD */ 3624 /* No destructor defined for OF */ 3625 break; 3626 case 265: 3627 #line 812 "parse_tmp.y" 3628 { yygotominor.yy372 = TK_BEFORE; } 3629 #line 3629 "parse_tmp.c" 3630 break; 3631 case 266: 3632 #line 816 "parse_tmp.y" 3633 { yygotominor.yy290.a = TK_DELETE; yygotominor.yy290.b = 0; } 3634 #line 3634 "parse_tmp.c" 3635 /* No destructor defined for DELETE */ 3636 break; 3637 case 267: 3638 #line 817 "parse_tmp.y" 3639 { yygotominor.yy290.a = TK_INSERT; yygotominor.yy290.b = 0; } 3640 #line 3640 "parse_tmp.c" 3641 /* No destructor defined for INSERT */ 3642 break; 3643 case 268: 3644 #line 818 "parse_tmp.y" 3645 { yygotominor.yy290.a = TK_UPDATE; yygotominor.yy290.b = 0;} 3646 #line 3646 "parse_tmp.c" 3647 /* No destructor defined for UPDATE */ 3648 break; 3649 case 269: 3650 #line 819 "parse_tmp.y" 3651 {yygotominor.yy290.a = TK_UPDATE; yygotominor.yy290.b = yymsp[0].minor.yy320; } 3652 #line 3652 "parse_tmp.c" 3653 /* No destructor defined for UPDATE */ 3654 /* No destructor defined for OF */ 3655 break; 3656 case 270: 3657 #line 822 "parse_tmp.y" 3658 { yygotominor.yy372 = TK_ROW; } 3659 #line 3659 "parse_tmp.c" 3660 break; 3661 case 271: 3662 #line 823 "parse_tmp.y" 3663 { yygotominor.yy372 = TK_ROW; } 3664 #line 3664 "parse_tmp.c" 3665 /* No destructor defined for FOR */ 3666 /* No destructor defined for EACH */ 3667 /* No destructor defined for ROW */ 3668 break; 3669 case 272: 3670 #line 824 "parse_tmp.y" 3671 { yygotominor.yy372 = TK_STATEMENT; } 3672 #line 3672 "parse_tmp.c" 3673 /* No destructor defined for FOR */ 3674 /* No destructor defined for EACH */ 3675 /* No destructor defined for STATEMENT */ 3676 break; 3677 case 273: 3678 #line 827 "parse_tmp.y" 3679 { yygotominor.yy182 = 0; } 3680 #line 3680 "parse_tmp.c" 3681 break; 3682 case 274: 3683 #line 828 "parse_tmp.y" 3684 { yygotominor.yy182 = yymsp[0].minor.yy242; } 3685 #line 3685 "parse_tmp.c" 3686 /* No destructor defined for WHEN */ 3687 break; 3688 case 275: 3689 #line 832 "parse_tmp.y" 3690 { 3691 yymsp[-2].minor.yy19->pNext = yymsp[0].minor.yy19; 3692 yygotominor.yy19 = yymsp[-2].minor.yy19; 3693 } 3694 #line 3694 "parse_tmp.c" 3695 /* No destructor defined for SEMI */ 3696 break; 3697 case 276: 3698 #line 836 "parse_tmp.y" 3699 { yygotominor.yy19 = 0; } 3700 #line 3700 "parse_tmp.c" 3701 break; 3702 case 277: 3703 #line 842 "parse_tmp.y" 3704 { yygotominor.yy19 = sqliteTriggerUpdateStep(&yymsp[-3].minor.yy298, yymsp[-1].minor.yy322, yymsp[0].minor.yy242, yymsp[-4].minor.yy372); } 3705 #line 3705 "parse_tmp.c" 3706 /* No destructor defined for UPDATE */ 3707 /* No destructor defined for SET */ 3708 break; 3709 case 278: 3710 #line 847 "parse_tmp.y" 3711 {yygotominor.yy19 = sqliteTriggerInsertStep(&yymsp[-5].minor.yy298, yymsp[-4].minor.yy320, yymsp[-1].minor.yy322, 0, yymsp[-7].minor.yy372);} 3712 #line 3712 "parse_tmp.c" 3713 /* No destructor defined for INTO */ 3714 /* No destructor defined for VALUES */ 3715 /* No destructor defined for LP */ 3716 /* No destructor defined for RP */ 3717 break; 3718 case 279: 3719 #line 850 "parse_tmp.y" 3720 {yygotominor.yy19 = sqliteTriggerInsertStep(&yymsp[-2].minor.yy298, yymsp[-1].minor.yy320, 0, yymsp[0].minor.yy179, yymsp[-4].minor.yy372);} 3721 #line 3721 "parse_tmp.c" 3722 /* No destructor defined for INTO */ 3723 break; 3724 case 280: 3725 #line 854 "parse_tmp.y" 3726 {yygotominor.yy19 = sqliteTriggerDeleteStep(&yymsp[-1].minor.yy298, yymsp[0].minor.yy242);} 3727 #line 3727 "parse_tmp.c" 3728 /* No destructor defined for DELETE */ 3729 /* No destructor defined for FROM */ 3730 break; 3731 case 281: 3732 #line 857 "parse_tmp.y" 3733 {yygotominor.yy19 = sqliteTriggerSelectStep(yymsp[0].minor.yy179); } 3734 #line 3734 "parse_tmp.c" 3735 break; 3736 case 282: 3737 #line 860 "parse_tmp.y" 3738 { 3739 yygotominor.yy242 = sqliteExpr(TK_RAISE, 0, 0, 0); 3740 yygotominor.yy242->iColumn = OE_Ignore; 3741 sqliteExprSpan(yygotominor.yy242, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0); 3742 } 3743 #line 3743 "parse_tmp.c" 3744 /* No destructor defined for LP */ 3745 /* No destructor defined for IGNORE */ 3746 break; 3747 case 283: 3748 #line 865 "parse_tmp.y" 3749 { 3750 yygotominor.yy242 = sqliteExpr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy298); 3751 yygotominor.yy242->iColumn = OE_Rollback; 3752 sqliteExprSpan(yygotominor.yy242, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0); 3753 } 3754 #line 3754 "parse_tmp.c" 3755 /* No destructor defined for LP */ 3756 /* No destructor defined for ROLLBACK */ 3757 /* No destructor defined for COMMA */ 3758 break; 3759 case 284: 3760 #line 870 "parse_tmp.y" 3761 { 3762 yygotominor.yy242 = sqliteExpr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy298); 3763 yygotominor.yy242->iColumn = OE_Abort; 3764 sqliteExprSpan(yygotominor.yy242, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0); 3765 } 3766 #line 3766 "parse_tmp.c" 3767 /* No destructor defined for LP */ 3768 /* No destructor defined for ABORT */ 3769 /* No destructor defined for COMMA */ 3770 break; 3771 case 285: 3772 #line 875 "parse_tmp.y" 3773 { 3774 yygotominor.yy242 = sqliteExpr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy298); 3775 yygotominor.yy242->iColumn = OE_Fail; 3776 sqliteExprSpan(yygotominor.yy242, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0); 3777 } 3778 #line 3778 "parse_tmp.c" 3779 /* No destructor defined for LP */ 3780 /* No destructor defined for FAIL */ 3781 /* No destructor defined for COMMA */ 3782 break; 3783 case 286: 3784 #line 882 "parse_tmp.y" 3785 { 3786 sqliteDropTrigger(pParse,sqliteSrcListAppend(0,&yymsp[-1].minor.yy298,&yymsp[0].minor.yy298)); 3787 } 3788 #line 3788 "parse_tmp.c" 3789 /* No destructor defined for DROP */ 3790 /* No destructor defined for TRIGGER */ 3791 break; 3792 case 287: 3793 #line 887 "parse_tmp.y" 3794 { 3795 sqliteAttach(pParse, &yymsp[-3].minor.yy298, &yymsp[-1].minor.yy298, &yymsp[0].minor.yy298); 3796 } 3797 #line 3797 "parse_tmp.c" 3798 /* No destructor defined for ATTACH */ 3799 /* No destructor defined for database_kw_opt */ 3800 /* No destructor defined for AS */ 3801 break; 3802 case 288: 3803 #line 891 "parse_tmp.y" 3804 { yygotominor.yy298 = yymsp[0].minor.yy298; } 3805 #line 3805 "parse_tmp.c" 3806 /* No destructor defined for USING */ 3807 break; 3808 case 289: 3809 #line 892 "parse_tmp.y" 3810 { yygotominor.yy298.z = 0; yygotominor.yy298.n = 0; } 3811 #line 3811 "parse_tmp.c" 3812 break; 3813 case 290: 3814 /* No destructor defined for DATABASE */ 3815 break; 3816 case 291: 3817 break; 3818 case 292: 3819 #line 898 "parse_tmp.y" 3820 { 3821 sqliteDetach(pParse, &yymsp[0].minor.yy298); 3822 } 3823 #line 3823 "parse_tmp.c" 3824 /* No destructor defined for DETACH */ 3825 /* No destructor defined for database_kw_opt */ 3826 break; 3827 }; 3828 yygoto = yyRuleInfo[yyruleno].lhs; 3829 yysize = yyRuleInfo[yyruleno].nrhs; 3830 yypParser->yyidx -= yysize; 3831 yyact = yy_find_reduce_action(yypParser,yygoto); 3832 if( yyact < YYNSTATE ){ 3833 yy_shift(yypParser,yyact,yygoto,&yygotominor); 3834 }else if( yyact == YYNSTATE + YYNRULE + 1 ){ 3835 yy_accept(yypParser); 3836 } 3837 } 3838 3839 /* 3840 ** The following code executes when the parse fails 3841 */ 3842 static void yy_parse_failed( 3843 yyParser *yypParser /* The parser */ 3844 ){ 3845 sqliteParserARG_FETCH; 3846 #ifndef NDEBUG 3847 if( yyTraceFILE ){ 3848 fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); 3849 } 3850 #endif 3851 while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); 3852 /* Here code is inserted which will be executed whenever the 3853 ** parser fails */ 3854 sqliteParserARG_STORE; /* Suppress warning about unused %extra_argument variable */ 3855 } 3856 3857 /* 3858 ** The following code executes when a syntax error first occurs. 3859 */ 3860 static void yy_syntax_error( 3861 yyParser *yypParser, /* The parser */ 3862 int yymajor, /* The major type of the error token */ 3863 YYMINORTYPE yyminor /* The minor type of the error token */ 3864 ){ 3865 sqliteParserARG_FETCH; 3866 #define TOKEN (yyminor.yy0) 3867 #line 23 "parse_tmp.y" 3868 3869 if( pParse->zErrMsg==0 ){ 3870 if( TOKEN.z[0] ){ 3871 sqliteErrorMsg(pParse, "near \"%T\": syntax error", &TOKEN); 3872 }else{ 3873 sqliteErrorMsg(pParse, "incomplete SQL statement"); 3874 } 3875 } 3876 3877 #line 3877 "parse_tmp.c" 3878 sqliteParserARG_STORE; /* Suppress warning about unused %extra_argument variable */ 3879 } 3880 3881 /* 3882 ** The following is executed when the parser accepts 3883 */ 3884 static void yy_accept( 3885 yyParser *yypParser /* The parser */ 3886 ){ 3887 sqliteParserARG_FETCH; 3888 #ifndef NDEBUG 3889 if( yyTraceFILE ){ 3890 fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); 3891 } 3892 #endif 3893 while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); 3894 /* Here code is inserted which will be executed whenever the 3895 ** parser accepts */ 3896 sqliteParserARG_STORE; /* Suppress warning about unused %extra_argument variable */ 3897 } 3898 3899 /* The main parser program. 3900 ** The first argument is a pointer to a structure obtained from 3901 ** "sqliteParserAlloc" which describes the current state of the parser. 3902 ** The second argument is the major token number. The third is 3903 ** the minor token. The fourth optional argument is whatever the 3904 ** user wants (and specified in the grammar) and is available for 3905 ** use by the action routines. 3906 ** 3907 ** Inputs: 3908 ** <ul> 3909 ** <li> A pointer to the parser (an opaque structure.) 3910 ** <li> The major token number. 3911 ** <li> The minor token number. 3912 ** <li> An option argument of a grammar-specified type. 3913 ** </ul> 3914 ** 3915 ** Outputs: 3916 ** None. 3917 */ 3918 void sqliteParser( 3919 void *yyp, /* The parser */ 3920 int yymajor, /* The major token code number */ 3921 sqliteParserTOKENTYPE yyminor /* The value for the token */ 3922 sqliteParserARG_PDECL /* Optional %extra_argument parameter */ 3923 ){ 3924 YYMINORTYPE yyminorunion; 3925 int yyact; /* The parser action. */ 3926 int yyendofinput; /* True if we are at the end of input */ 3927 int yyerrorhit = 0; /* True if yymajor has invoked an error */ 3928 yyParser *yypParser; /* The parser */ 3929 3930 /* (re)initialize the parser, if necessary */ 3931 yypParser = (yyParser*)yyp; 3932 if( yypParser->yyidx<0 ){ 3933 if( yymajor==0 ) return; 3934 yypParser->yyidx = 0; 3935 yypParser->yyerrcnt = -1; 3936 yypParser->yystack[0].stateno = 0; 3937 yypParser->yystack[0].major = 0; 3938 } 3939 yyminorunion.yy0 = yyminor; 3940 yyendofinput = (yymajor==0); 3941 sqliteParserARG_STORE; 3942 3943 #ifndef NDEBUG 3944 if( yyTraceFILE ){ 3945 fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); 3946 } 3947 #endif 3948 3949 do{ 3950 yyact = yy_find_shift_action(yypParser,yymajor); 3951 if( yyact<YYNSTATE ){ 3952 yy_shift(yypParser,yyact,yymajor,&yyminorunion); 3953 yypParser->yyerrcnt--; 3954 if( yyendofinput && yypParser->yyidx>=0 ){ 3955 yymajor = 0; 3956 }else{ 3957 yymajor = YYNOCODE; 3958 } 3959 }else if( yyact < YYNSTATE + YYNRULE ){ 3960 yy_reduce(yypParser,yyact-YYNSTATE); 3961 }else if( yyact == YY_ERROR_ACTION ){ 3962 int yymx; 3963 #ifndef NDEBUG 3964 if( yyTraceFILE ){ 3965 fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); 3966 } 3967 #endif 3968 #ifdef YYERRORSYMBOL 3969 /* A syntax error has occurred. 3970 ** The response to an error depends upon whether or not the 3971 ** grammar defines an error token "ERROR". 3972 ** 3973 ** This is what we do if the grammar does define ERROR: 3974 ** 3975 ** * Call the %syntax_error function. 3976 ** 3977 ** * Begin popping the stack until we enter a state where 3978 ** it is legal to shift the error symbol, then shift 3979 ** the error symbol. 3980 ** 3981 ** * Set the error count to three. 3982 ** 3983 ** * Begin accepting and shifting new tokens. No new error 3984 ** processing will occur until three tokens have been 3985 ** shifted successfully. 3986 ** 3987 */ 3988 if( yypParser->yyerrcnt<0 ){ 3989 yy_syntax_error(yypParser,yymajor,yyminorunion); 3990 } 3991 yymx = yypParser->yystack[yypParser->yyidx].major; 3992 if( yymx==YYERRORSYMBOL || yyerrorhit ){ 3993 #ifndef NDEBUG 3994 if( yyTraceFILE ){ 3995 fprintf(yyTraceFILE,"%sDiscard input token %s\n", 3996 yyTracePrompt,yyTokenName[yymajor]); 3997 } 3998 #endif 3999 yy_destructor(yymajor,&yyminorunion); 4000 yymajor = YYNOCODE; 4001 }else{ 4002 while( 4003 yypParser->yyidx >= 0 && 4004 yymx != YYERRORSYMBOL && 4005 (yyact = yy_find_shift_action(yypParser,YYERRORSYMBOL)) >= YYNSTATE 4006 ){ 4007 yy_pop_parser_stack(yypParser); 4008 } 4009 if( yypParser->yyidx < 0 || yymajor==0 ){ 4010 yy_destructor(yymajor,&yyminorunion); 4011 yy_parse_failed(yypParser); 4012 yymajor = YYNOCODE; 4013 }else if( yymx!=YYERRORSYMBOL ){ 4014 YYMINORTYPE u2; 4015 u2.YYERRSYMDT = 0; 4016 yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); 4017 } 4018 } 4019 yypParser->yyerrcnt = 3; 4020 yyerrorhit = 1; 4021 #else /* YYERRORSYMBOL is not defined */ 4022 /* This is what we do if the grammar does not define ERROR: 4023 ** 4024 ** * Report an error message, and throw away the input token. 4025 ** 4026 ** * If the input token is $, then fail the parse. 4027 ** 4028 ** As before, subsequent error messages are suppressed until 4029 ** three input tokens have been successfully shifted. 4030 */ 4031 if( yypParser->yyerrcnt<=0 ){ 4032 yy_syntax_error(yypParser,yymajor,yyminorunion); 4033 } 4034 yypParser->yyerrcnt = 3; 4035 yy_destructor(yymajor,&yyminorunion); 4036 if( yyendofinput ){ 4037 yy_parse_failed(yypParser); 4038 } 4039 yymajor = YYNOCODE; 4040 #endif 4041 }else{ 4042 yy_accept(yypParser); 4043 yymajor = YYNOCODE; 4044 } 4045 }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); 4046 return; 4047 } 4048