diff options
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/parser')
7 files changed, 717 insertions, 683 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.cpp index 482baf8..f14273d 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/ast/sqlitestatement.cpp @@ -358,7 +358,9 @@ TokenPtr SqliteStatement::getDbTokenFromNmDbnm(const QString &tokensMapKey1, con // if (tokensMap[tokensMapKey2].size() == 0) // return TokenPtr(); - if (!tokensMap.contains("DOT") && tokensMap[tokensMapKey2].size() == 0) + TokenList listForKey1 = extractPrintableTokens(tokensMap[tokensMapKey1]); + TokenList listForKey2 = extractPrintableTokens(tokensMap[tokensMapKey2]); + if (!tokensMap.contains("DOT") && listForKey2.size() == 0) { // In this case the query is "SELECT * FROM test" and there is no database, // but if there was a dot after the "test", then the "test" is a database name, @@ -366,7 +368,7 @@ TokenPtr SqliteStatement::getDbTokenFromNmDbnm(const QString &tokensMapKey1, con return TokenPtr(); } - return extractPrintableTokens(tokensMap[tokensMapKey1])[0]; + return extractPrintableTokens(listForKey1)[0]; } TokenPtr SqliteStatement::getObjectTokenFromNmDbnm(const QString &tokensMapKey1, const QString &tokensMapKey2) @@ -383,10 +385,12 @@ TokenPtr SqliteStatement::getObjectTokenFromNmDbnm(const QString &tokensMapKey1, return TokenPtr(); } - if (tokensMap[tokensMapKey2].size() == 0) - return extractPrintableTokens(tokensMap[tokensMapKey1])[0]; + TokenList listForKey1 = extractPrintableTokens(tokensMap[tokensMapKey1]); + TokenList listForKey2 = extractPrintableTokens(tokensMap[tokensMapKey2]); + if (listForKey2.size() == 0) + return extractPrintableTokens(listForKey1)[0]; - return extractPrintableTokens(tokensMap[tokensMapKey2])[1]; + return extractPrintableTokens(listForKey2)[1]; } TokenList SqliteStatement::getDbTokenListFromFullname(const QString &tokensMapKey) diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite2_parse.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite2_parse.cpp index 7fc9edc..fa61c21 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite2_parse.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite2_parse.cpp @@ -237,178 +237,182 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ -#define YY_ACTTAB_COUNT (1697) +#define YY_ACTTAB_COUNT (1737) static const YYACTIONTYPE yy_action[] = { /* 0 */ 338, 191, 186, 242, 476, 511, 576, 193, 332, 16, /* 10 */ 511, 384, 189, 322, 239, 519, 518, 570, 337, 450, - /* 20 */ 15, 851, 125, 58, 575, 179, 851, 574, 63, 142, - /* 30 */ 401, 581, 328, 27, 84, 569, 114, 322, 573, 519, - /* 40 */ 518, 851, 851, 36, 851, 851, 851, 851, 851, 851, - /* 50 */ 851, 851, 851, 851, 851, 851, 851, 851, 851, 33, - /* 60 */ 34, 851, 851, 851, 851, 320, 379, 35, 240, 238, + /* 20 */ 15, 851, 125, 58, 575, 179, 851, 574, 63, 143, + /* 30 */ 401, 581, 328, 26, 84, 569, 114, 322, 573, 519, + /* 40 */ 518, 851, 851, 35, 851, 851, 851, 851, 851, 851, + /* 50 */ 851, 851, 851, 851, 851, 851, 851, 851, 851, 32, + /* 60 */ 33, 851, 851, 851, 851, 320, 379, 34, 240, 238, /* 70 */ 121, 556, 291, 251, 57, 7, 217, 577, 265, 264, /* 80 */ 523, 179, 555, 336, 335, 338, 569, 549, 548, 550, /* 90 */ 271, 569, 10, 724, 199, 297, 203, 489, 459, 332, /* 100 */ 568, 567, 451, 253, 158, 523, 449, 444, 443, 337, /* 110 */ 187, 870, 266, 187, 580, 517, 168, 328, 505, 343, - /* 120 */ 142, 235, 490, 108, 101, 489, 523, 164, 36, 531, + /* 120 */ 143, 235, 490, 108, 101, 489, 523, 164, 35, 531, /* 130 */ 187, 13, 523, 252, 234, 547, 236, 119, 340, 232, - /* 140 */ 339, 120, 216, 155, 33, 34, 481, 547, 322, 215, - /* 150 */ 519, 518, 35, 714, 456, 477, 320, 367, 547, 478, + /* 140 */ 339, 120, 216, 155, 32, 33, 481, 547, 322, 215, + /* 150 */ 519, 518, 34, 714, 456, 477, 320, 367, 547, 478, /* 160 */ 7, 714, 400, 321, 251, 523, 714, 563, 336, 335, /* 170 */ 500, 553, 549, 548, 550, 188, 465, 500, 401, 466, - /* 180 */ 366, 365, 552, 364, 293, 435, 40, 40, 40, 39, + /* 180 */ 366, 365, 552, 364, 293, 435, 39, 39, 39, 38, /* 190 */ 523, 562, 60, 255, 714, 569, 714, 714, 852, 570, /* 200 */ 271, 714, 502, 852, 500, 714, 570, 714, 714, 714, - /* 210 */ 714, 523, 569, 178, 531, 422, 13, 523, 45, 46, - /* 220 */ 330, 43, 43, 530, 530, 223, 852, 852, 44, 44, - /* 230 */ 44, 44, 42, 42, 42, 42, 41, 41, 40, 40, - /* 240 */ 40, 39, 199, 297, 203, 55, 236, 92, 340, 232, + /* 210 */ 714, 523, 569, 178, 531, 422, 13, 523, 44, 45, + /* 220 */ 330, 42, 42, 530, 530, 223, 852, 852, 43, 43, + /* 230 */ 43, 43, 41, 41, 41, 41, 40, 40, 39, 39, + /* 240 */ 39, 38, 199, 297, 203, 55, 236, 92, 340, 232, /* 250 */ 339, 120, 216, 500, 106, 570, 268, 19, 187, 215, - /* 260 */ 500, 105, 553, 42, 42, 42, 42, 41, 41, 40, - /* 270 */ 40, 40, 39, 552, 41, 41, 40, 40, 40, 39, + /* 260 */ 500, 105, 553, 41, 41, 41, 41, 40, 40, 39, + /* 270 */ 39, 39, 38, 552, 40, 40, 39, 39, 39, 38, /* 280 */ 852, 3, 568, 567, 187, 852, 512, 500, 219, 568, /* 290 */ 567, 17, 496, 156, 322, 345, 519, 518, 569, 292, - /* 300 */ 45, 46, 330, 43, 43, 530, 530, 223, 852, 852, - /* 310 */ 44, 44, 44, 44, 42, 42, 42, 42, 41, 41, - /* 320 */ 40, 40, 40, 39, 547, 533, 852, 100, 308, 306, + /* 300 */ 44, 45, 330, 42, 42, 530, 530, 223, 852, 852, + /* 310 */ 43, 43, 43, 43, 41, 41, 41, 41, 40, 40, + /* 320 */ 39, 39, 39, 38, 547, 533, 852, 100, 308, 306, /* 330 */ 305, 852, 448, 447, 418, 418, 316, 245, 568, 567, - /* 340 */ 304, 937, 122, 344, 1, 582, 45, 46, 330, 43, - /* 350 */ 43, 530, 530, 223, 852, 852, 44, 44, 44, 44, - /* 360 */ 42, 42, 42, 42, 41, 41, 40, 40, 40, 39, - /* 370 */ 338, 442, 45, 46, 330, 43, 43, 530, 530, 223, - /* 380 */ 524, 569, 44, 44, 44, 44, 42, 42, 42, 42, - /* 390 */ 41, 41, 40, 40, 40, 39, 5, 9, 524, 781, - /* 400 */ 220, 324, 328, 167, 45, 46, 330, 43, 43, 530, - /* 410 */ 530, 223, 781, 36, 44, 44, 44, 44, 42, 42, - /* 420 */ 42, 42, 41, 41, 40, 40, 40, 39, 8, 33, - /* 430 */ 34, 274, 387, 435, 547, 388, 237, 35, 774, 421, + /* 340 */ 304, 937, 122, 344, 1, 582, 44, 45, 330, 42, + /* 350 */ 42, 530, 530, 223, 852, 852, 43, 43, 43, 43, + /* 360 */ 41, 41, 41, 41, 40, 40, 39, 39, 39, 38, + /* 370 */ 338, 442, 44, 45, 330, 42, 42, 530, 530, 223, + /* 380 */ 524, 569, 43, 43, 43, 43, 41, 41, 41, 41, + /* 390 */ 40, 40, 39, 39, 39, 38, 5, 9, 524, 781, + /* 400 */ 220, 324, 328, 167, 44, 45, 330, 42, 42, 530, + /* 410 */ 530, 223, 781, 35, 43, 43, 43, 43, 41, 41, + /* 420 */ 41, 41, 40, 40, 39, 39, 39, 38, 8, 32, + /* 430 */ 33, 274, 387, 435, 547, 388, 237, 34, 774, 421, /* 440 */ 60, 14, 219, 569, 250, 7, 774, 437, 441, 169, /* 450 */ 523, 524, 569, 336, 335, 285, 781, 549, 548, 550, - /* 460 */ 44, 44, 44, 44, 42, 42, 42, 42, 41, 41, - /* 470 */ 40, 40, 40, 39, 332, 523, 332, 425, 470, 774, + /* 460 */ 43, 43, 43, 43, 41, 41, 41, 41, 40, 40, + /* 470 */ 39, 39, 39, 38, 332, 523, 332, 425, 470, 774, /* 480 */ 560, 774, 774, 850, 337, 426, 337, 455, 850, 613, - /* 490 */ 774, 181, 774, 774, 774, 142, 523, 142, 31, 531, + /* 490 */ 774, 181, 774, 774, 774, 143, 523, 143, 30, 531, /* 500 */ 614, 13, 523, 850, 850, 850, 850, 850, 850, 850, /* 510 */ 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, /* 520 */ 850, 850, 850, 850, 850, 850, 850, 852, 500, 460, /* 530 */ 357, 320, 852, 318, 75, 570, 401, 570, 311, 251, - /* 540 */ 569, 251, 446, 445, 570, 358, 359, 45, 46, 330, - /* 550 */ 43, 43, 530, 530, 223, 852, 852, 44, 44, 44, - /* 560 */ 44, 42, 42, 42, 42, 41, 41, 40, 40, 40, - /* 570 */ 39, 338, 45, 46, 330, 43, 43, 530, 530, 223, - /* 580 */ 615, 570, 44, 44, 44, 44, 42, 42, 42, 42, - /* 590 */ 41, 41, 40, 40, 40, 39, 185, 184, 497, 782, + /* 540 */ 569, 251, 446, 445, 570, 358, 359, 44, 45, 330, + /* 550 */ 42, 42, 530, 530, 223, 852, 852, 43, 43, 43, + /* 560 */ 43, 41, 41, 41, 41, 40, 40, 39, 39, 39, + /* 570 */ 38, 338, 44, 45, 330, 42, 42, 530, 530, 223, + /* 580 */ 615, 570, 43, 43, 43, 43, 41, 41, 41, 41, + /* 590 */ 40, 40, 39, 39, 39, 38, 185, 184, 497, 782, /* 600 */ 199, 297, 203, 328, 360, 538, 96, 488, 97, 570, - /* 610 */ 103, 500, 782, 436, 36, 570, 187, 225, 568, 567, + /* 610 */ 103, 500, 782, 436, 35, 570, 187, 225, 568, 567, /* 620 */ 568, 567, 332, 354, 540, 539, 294, 568, 567, 570, - /* 630 */ 33, 34, 337, 356, 482, 355, 569, 85, 35, 759, + /* 630 */ 32, 33, 337, 356, 482, 355, 569, 85, 34, 759, /* 640 */ 532, 111, 70, 78, 487, 483, 7, 759, 90, 494, /* 650 */ 508, 523, 493, 160, 336, 335, 782, 528, 549, 548, /* 660 */ 550, 532, 440, 434, 568, 567, 118, 54, 332, 919, /* 670 */ 214, 100, 308, 306, 305, 75, 523, 333, 337, 571, - /* 680 */ 759, 529, 759, 759, 304, 48, 177, 522, 32, 142, - /* 690 */ 30, 759, 568, 567, 759, 759, 159, 523, 568, 567, - /* 700 */ 531, 464, 13, 523, 45, 46, 330, 43, 43, 530, - /* 710 */ 530, 223, 568, 567, 44, 44, 44, 44, 42, 42, - /* 720 */ 42, 42, 41, 41, 40, 40, 40, 39, 463, 570, - /* 730 */ 498, 919, 570, 323, 514, 570, 222, 45, 46, 330, - /* 740 */ 43, 43, 530, 530, 223, 393, 392, 44, 44, 44, - /* 750 */ 44, 42, 42, 42, 42, 41, 41, 40, 40, 40, - /* 760 */ 39, 45, 46, 330, 43, 43, 530, 530, 223, 540, - /* 770 */ 539, 44, 44, 44, 44, 42, 42, 42, 42, 41, - /* 780 */ 41, 40, 40, 40, 39, 583, 1, 45, 46, 330, - /* 790 */ 43, 43, 530, 530, 223, 267, 475, 44, 44, 44, - /* 800 */ 44, 42, 42, 42, 42, 41, 41, 40, 40, 40, - /* 810 */ 39, 434, 568, 567, 420, 568, 567, 163, 568, 567, - /* 820 */ 570, 110, 218, 45, 46, 330, 43, 43, 530, 530, - /* 830 */ 223, 28, 468, 44, 44, 44, 44, 42, 42, 42, - /* 840 */ 42, 41, 41, 40, 40, 40, 39, 570, 547, 45, - /* 850 */ 46, 330, 43, 43, 530, 530, 223, 570, 212, 44, - /* 860 */ 44, 44, 44, 42, 42, 42, 42, 41, 41, 40, - /* 870 */ 40, 40, 39, 46, 330, 43, 43, 530, 530, 223, - /* 880 */ 527, 526, 44, 44, 44, 44, 42, 42, 42, 42, - /* 890 */ 41, 41, 40, 40, 40, 39, 338, 330, 43, 43, - /* 900 */ 530, 530, 223, 568, 567, 44, 44, 44, 44, 42, - /* 910 */ 42, 42, 42, 41, 41, 40, 40, 40, 39, 570, - /* 920 */ 525, 570, 64, 859, 88, 424, 198, 391, 328, 520, - /* 930 */ 568, 567, 357, 570, 516, 164, 569, 380, 12, 36, - /* 940 */ 568, 567, 569, 164, 502, 25, 570, 358, 275, 172, - /* 950 */ 171, 170, 391, 256, 569, 33, 34, 310, 66, 389, - /* 960 */ 390, 287, 76, 35, 104, 395, 547, 484, 561, 79, - /* 970 */ 452, 7, 862, 395, 547, 455, 523, 338, 80, 336, - /* 980 */ 335, 213, 480, 549, 548, 550, 75, 312, 396, 398, - /* 990 */ 570, 397, 293, 479, 570, 380, 396, 398, 259, 397, - /* 1000 */ 293, 523, 568, 567, 568, 567, 276, 538, 10, 328, - /* 1010 */ 4, 289, 474, 490, 570, 473, 568, 567, 23, 290, - /* 1020 */ 36, 65, 523, 431, 284, 531, 532, 13, 523, 568, - /* 1030 */ 567, 497, 570, 584, 439, 332, 33, 34, 490, 317, - /* 1040 */ 162, 489, 535, 570, 35, 337, 570, 532, 570, 179, - /* 1050 */ 307, 53, 7, 471, 52, 345, 139, 523, 338, 569, - /* 1060 */ 336, 335, 179, 302, 549, 548, 550, 495, 75, 303, - /* 1070 */ 413, 547, 569, 568, 567, 570, 254, 568, 567, 325, - /* 1080 */ 262, 209, 523, 272, 570, 18, 569, 361, 160, 570, - /* 1090 */ 328, 569, 515, 261, 407, 413, 51, 568, 567, 570, - /* 1100 */ 522, 36, 569, 523, 192, 582, 531, 10, 13, 523, - /* 1110 */ 99, 338, 489, 730, 569, 568, 567, 33, 34, 407, - /* 1120 */ 503, 500, 456, 403, 570, 35, 568, 567, 376, 568, - /* 1130 */ 567, 568, 567, 7, 211, 456, 570, 490, 523, 570, - /* 1140 */ 489, 336, 335, 328, 570, 549, 548, 550, 403, 497, - /* 1150 */ 730, 730, 404, 376, 36, 371, 500, 108, 568, 567, - /* 1160 */ 124, 101, 234, 523, 486, 279, 82, 568, 567, 2, - /* 1170 */ 33, 34, 568, 567, 497, 569, 197, 301, 35, 368, - /* 1180 */ 69, 75, 568, 567, 523, 492, 7, 531, 666, 13, - /* 1190 */ 523, 523, 338, 423, 336, 335, 417, 73, 549, 548, - /* 1200 */ 550, 350, 485, 570, 568, 567, 570, 568, 567, 22, - /* 1210 */ 491, 570, 21, 67, 371, 179, 523, 6, 258, 568, - /* 1220 */ 567, 219, 568, 567, 328, 569, 405, 568, 567, 570, - /* 1230 */ 255, 569, 399, 106, 394, 36, 215, 523, 71, 500, - /* 1240 */ 531, 368, 13, 523, 416, 860, 260, 386, 570, 415, - /* 1250 */ 338, 33, 34, 269, 544, 543, 205, 570, 204, 35, - /* 1260 */ 108, 350, 409, 81, 570, 385, 569, 7, 502, 507, - /* 1270 */ 245, 496, 523, 182, 50, 336, 335, 570, 569, 549, - /* 1280 */ 548, 550, 328, 160, 338, 281, 568, 567, 456, 568, - /* 1290 */ 567, 570, 381, 36, 568, 567, 115, 523, 278, 277, - /* 1300 */ 570, 351, 570, 363, 353, 187, 352, 49, 411, 33, - /* 1310 */ 34, 406, 568, 567, 538, 160, 328, 35, 523, 174, - /* 1320 */ 157, 531, 286, 13, 523, 7, 862, 36, 185, 184, - /* 1330 */ 523, 568, 567, 336, 335, 179, 362, 549, 548, 550, - /* 1340 */ 568, 567, 180, 33, 34, 569, 569, 568, 567, 383, - /* 1350 */ 74, 35, 202, 377, 296, 523, 540, 539, 241, 7, - /* 1360 */ 568, 567, 569, 579, 523, 374, 257, 336, 335, 342, - /* 1370 */ 112, 549, 548, 550, 568, 567, 523, 346, 201, 531, - /* 1380 */ 200, 13, 523, 568, 567, 568, 567, 569, 569, 523, - /* 1390 */ 542, 544, 543, 536, 544, 543, 566, 332, 263, 544, - /* 1400 */ 543, 332, 565, 373, 309, 544, 543, 337, 456, 564, - /* 1410 */ 523, 337, 341, 531, 332, 13, 523, 501, 77, 370, - /* 1420 */ 11, 559, 146, 196, 337, 378, 457, 332, 408, 558, - /* 1430 */ 557, 270, 332, 569, 332, 144, 554, 337, 187, 332, - /* 1440 */ 551, 546, 337, 17, 337, 47, 332, 332, 151, 337, - /* 1450 */ 227, 538, 228, 150, 538, 152, 337, 337, 229, 538, - /* 1460 */ 161, 24, 522, 226, 319, 538, 522, 224, 249, 334, - /* 1470 */ 59, 545, 220, 332, 332, 332, 39, 521, 37, 522, - /* 1480 */ 332, 332, 183, 337, 337, 337, 29, 109, 332, 510, - /* 1490 */ 337, 337, 522, 572, 143, 149, 145, 522, 337, 522, - /* 1500 */ 332, 248, 247, 569, 522, 332, 332, 570, 332, 246, - /* 1510 */ 337, 522, 522, 332, 332, 337, 337, 513, 337, 107, - /* 1520 */ 83, 141, 332, 337, 337, 472, 133, 132, 454, 140, - /* 1530 */ 56, 332, 337, 244, 131, 148, 453, 430, 522, 522, - /* 1540 */ 522, 337, 429, 147, 428, 522, 522, 332, 332, 534, - /* 1550 */ 326, 332, 130, 522, 332, 243, 332, 337, 337, 569, - /* 1560 */ 569, 337, 427, 419, 337, 522, 337, 98, 129, 127, - /* 1570 */ 522, 522, 135, 522, 332, 134, 332, 136, 522, 522, - /* 1580 */ 195, 332, 372, 314, 337, 207, 337, 522, 95, 288, - /* 1590 */ 569, 337, 94, 337, 206, 138, 522, 137, 298, 194, - /* 1600 */ 20, 369, 128, 414, 61, 504, 68, 153, 499, 569, - /* 1610 */ 102, 93, 522, 522, 315, 569, 522, 469, 569, 522, - /* 1620 */ 569, 522, 432, 210, 569, 300, 91, 569, 123, 72, - /* 1630 */ 166, 402, 569, 569, 117, 569, 89, 295, 283, 522, - /* 1640 */ 569, 522, 375, 382, 280, 331, 522, 569, 522, 221, - /* 1650 */ 208, 176, 569, 87, 86, 569, 347, 175, 116, 569, - /* 1660 */ 569, 569, 349, 173, 113, 126, 233, 541, 230, 154, - /* 1670 */ 537, 329, 509, 506, 458, 410, 273, 299, 470, 282, - /* 1680 */ 190, 348, 467, 462, 461, 438, 38, 165, 938, 62, - /* 1690 */ 938, 327, 231, 578, 433, 938, 412, + /* 680 */ 759, 529, 759, 759, 304, 48, 177, 522, 31, 143, + /* 690 */ 29, 759, 568, 567, 759, 759, 159, 523, 568, 567, + /* 700 */ 531, 464, 13, 523, 44, 45, 330, 42, 42, 530, + /* 710 */ 530, 223, 568, 567, 43, 43, 43, 43, 41, 41, + /* 720 */ 41, 41, 40, 40, 39, 39, 39, 38, 463, 570, + /* 730 */ 498, 919, 570, 323, 514, 570, 222, 44, 45, 330, + /* 740 */ 42, 42, 530, 530, 223, 393, 392, 43, 43, 43, + /* 750 */ 43, 41, 41, 41, 41, 40, 40, 39, 39, 39, + /* 760 */ 38, 44, 45, 330, 42, 42, 530, 530, 223, 540, + /* 770 */ 539, 43, 43, 43, 43, 41, 41, 41, 41, 40, + /* 780 */ 40, 39, 39, 39, 38, 583, 1, 44, 45, 330, + /* 790 */ 42, 42, 530, 530, 223, 267, 475, 43, 43, 43, + /* 800 */ 43, 41, 41, 41, 41, 40, 40, 39, 39, 39, + /* 810 */ 38, 256, 568, 567, 420, 568, 567, 163, 568, 567, + /* 820 */ 110, 570, 218, 44, 45, 330, 42, 42, 530, 530, + /* 830 */ 223, 27, 468, 43, 43, 43, 43, 41, 41, 41, + /* 840 */ 41, 40, 40, 39, 39, 39, 38, 486, 547, 44, + /* 850 */ 45, 330, 42, 42, 530, 530, 223, 859, 212, 43, + /* 860 */ 43, 43, 43, 41, 41, 41, 41, 40, 40, 39, + /* 870 */ 39, 39, 38, 44, 47, 330, 42, 42, 530, 530, + /* 880 */ 223, 535, 284, 43, 43, 43, 43, 41, 41, 41, + /* 890 */ 41, 40, 40, 39, 39, 39, 38, 45, 330, 42, + /* 900 */ 42, 530, 530, 223, 568, 567, 43, 43, 43, 43, + /* 910 */ 41, 41, 41, 41, 40, 40, 39, 39, 39, 38, + /* 920 */ 330, 42, 42, 530, 530, 223, 338, 160, 43, 43, + /* 930 */ 43, 43, 41, 41, 41, 41, 40, 40, 39, 39, + /* 940 */ 39, 38, 164, 570, 527, 338, 332, 269, 544, 543, + /* 950 */ 526, 162, 561, 79, 452, 64, 337, 88, 328, 455, + /* 960 */ 570, 209, 385, 272, 205, 357, 204, 139, 525, 35, + /* 970 */ 520, 569, 395, 547, 569, 569, 23, 328, 213, 254, + /* 980 */ 358, 275, 547, 75, 182, 32, 33, 310, 35, 569, + /* 990 */ 361, 66, 164, 34, 160, 396, 398, 317, 397, 293, + /* 1000 */ 570, 7, 862, 516, 32, 33, 523, 570, 538, 336, + /* 1010 */ 335, 522, 34, 549, 548, 550, 25, 4, 289, 338, + /* 1020 */ 7, 471, 395, 547, 12, 523, 568, 567, 336, 335, + /* 1030 */ 302, 523, 549, 548, 550, 75, 570, 404, 338, 276, + /* 1040 */ 538, 104, 108, 568, 567, 396, 398, 76, 397, 293, + /* 1050 */ 523, 328, 523, 570, 65, 531, 500, 13, 523, 101, + /* 1060 */ 185, 184, 35, 570, 172, 171, 170, 197, 290, 503, + /* 1070 */ 328, 523, 75, 570, 531, 301, 13, 523, 32, 33, + /* 1080 */ 380, 35, 10, 568, 567, 479, 34, 490, 540, 539, + /* 1090 */ 568, 567, 570, 325, 7, 211, 666, 32, 33, 523, + /* 1100 */ 179, 423, 336, 335, 570, 34, 549, 548, 550, 80, + /* 1110 */ 569, 570, 490, 7, 480, 489, 391, 570, 523, 568, + /* 1120 */ 567, 336, 335, 338, 523, 549, 548, 550, 255, 497, + /* 1130 */ 570, 262, 584, 106, 215, 484, 568, 567, 380, 500, + /* 1140 */ 312, 391, 202, 523, 296, 523, 568, 567, 531, 198, + /* 1150 */ 13, 523, 569, 413, 345, 328, 568, 567, 532, 569, + /* 1160 */ 474, 570, 307, 570, 523, 495, 35, 531, 53, 13, + /* 1170 */ 523, 496, 860, 456, 473, 568, 567, 570, 413, 532, + /* 1180 */ 570, 485, 32, 33, 407, 439, 10, 568, 567, 500, + /* 1190 */ 34, 489, 730, 570, 568, 567, 431, 403, 7, 52, + /* 1200 */ 568, 567, 570, 523, 582, 234, 336, 335, 338, 407, + /* 1210 */ 549, 548, 550, 568, 567, 18, 490, 570, 303, 489, + /* 1220 */ 497, 570, 403, 389, 390, 287, 570, 502, 523, 730, + /* 1230 */ 730, 570, 201, 570, 200, 424, 187, 569, 332, 51, + /* 1240 */ 328, 376, 569, 371, 568, 567, 568, 567, 337, 523, + /* 1250 */ 99, 35, 531, 124, 13, 523, 492, 368, 497, 148, + /* 1260 */ 568, 567, 570, 568, 567, 82, 376, 32, 33, 350, + /* 1270 */ 2, 570, 568, 567, 570, 34, 568, 567, 570, 73, + /* 1280 */ 179, 259, 570, 7, 862, 568, 567, 417, 523, 338, + /* 1290 */ 569, 336, 335, 22, 491, 549, 548, 550, 416, 69, + /* 1300 */ 568, 567, 371, 522, 568, 567, 570, 415, 405, 568, + /* 1310 */ 567, 261, 21, 523, 568, 567, 568, 567, 196, 368, + /* 1320 */ 378, 328, 411, 67, 542, 544, 543, 6, 569, 350, + /* 1330 */ 258, 406, 35, 502, 523, 399, 377, 531, 394, 13, + /* 1340 */ 523, 71, 338, 569, 108, 568, 567, 409, 32, 33, + /* 1350 */ 536, 544, 543, 456, 568, 567, 34, 568, 567, 81, + /* 1360 */ 386, 568, 567, 50, 7, 568, 567, 570, 281, 523, + /* 1370 */ 374, 383, 336, 335, 328, 115, 549, 548, 550, 263, + /* 1380 */ 544, 543, 309, 544, 543, 538, 219, 286, 179, 568, + /* 1390 */ 567, 381, 278, 179, 523, 195, 569, 372, 569, 277, + /* 1400 */ 363, 32, 33, 569, 501, 569, 351, 49, 457, 34, + /* 1410 */ 373, 538, 353, 102, 352, 523, 370, 7, 531, 260, + /* 1420 */ 13, 523, 523, 569, 257, 336, 335, 174, 332, 549, + /* 1430 */ 548, 550, 408, 160, 507, 245, 579, 157, 337, 570, + /* 1440 */ 538, 241, 332, 538, 332, 515, 332, 523, 332, 77, + /* 1450 */ 568, 567, 337, 342, 337, 569, 337, 112, 337, 180, + /* 1460 */ 332, 456, 332, 147, 11, 145, 456, 151, 523, 150, + /* 1470 */ 337, 531, 337, 13, 523, 194, 332, 369, 332, 332, + /* 1480 */ 74, 152, 332, 161, 566, 569, 337, 565, 337, 337, + /* 1490 */ 564, 332, 337, 522, 559, 557, 332, 224, 558, 249, + /* 1500 */ 144, 337, 341, 149, 270, 332, 337, 522, 332, 522, + /* 1510 */ 332, 522, 146, 522, 332, 337, 554, 248, 337, 551, + /* 1520 */ 337, 434, 568, 567, 337, 522, 247, 522, 332, 246, + /* 1530 */ 332, 141, 187, 546, 229, 133, 332, 17, 337, 319, + /* 1540 */ 337, 522, 332, 522, 522, 332, 337, 522, 228, 132, + /* 1550 */ 332, 140, 337, 334, 192, 337, 522, 131, 227, 332, + /* 1560 */ 337, 522, 279, 142, 569, 24, 130, 332, 332, 337, + /* 1570 */ 522, 129, 569, 522, 362, 522, 332, 337, 337, 522, + /* 1580 */ 127, 332, 332, 226, 569, 46, 337, 59, 135, 134, + /* 1590 */ 220, 337, 337, 522, 545, 522, 346, 136, 38, 332, + /* 1600 */ 36, 522, 138, 137, 314, 521, 569, 522, 572, 337, + /* 1610 */ 522, 534, 326, 504, 337, 522, 183, 499, 569, 315, + /* 1620 */ 128, 569, 569, 569, 522, 61, 469, 569, 432, 569, + /* 1630 */ 210, 28, 522, 522, 300, 166, 569, 513, 569, 295, + /* 1640 */ 569, 522, 375, 331, 569, 569, 522, 522, 221, 569, + /* 1650 */ 208, 109, 569, 569, 510, 570, 176, 83, 569, 107, + /* 1660 */ 569, 472, 244, 56, 522, 454, 569, 430, 453, 522, + /* 1670 */ 429, 428, 427, 243, 419, 98, 207, 95, 206, 288, + /* 1680 */ 298, 20, 94, 153, 93, 91, 414, 68, 123, 72, + /* 1690 */ 283, 402, 382, 117, 89, 87, 86, 116, 175, 280, + /* 1700 */ 347, 349, 173, 233, 113, 126, 230, 509, 541, 470, + /* 1710 */ 506, 537, 458, 282, 154, 410, 273, 190, 348, 438, + /* 1720 */ 467, 462, 329, 461, 578, 231, 62, 938, 37, 412, + /* 1730 */ 165, 433, 938, 938, 938, 327, 299, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 4, 8, 195, 10, 80, 25, 5, 14, 156, 202, @@ -492,175 +496,179 @@ static const YYCODETYPE yy_lookahead[] = { /* 780 */ 64, 65, 66, 67, 68, 151, 152, 45, 46, 47, /* 790 */ 48, 49, 50, 51, 52, 105, 80, 55, 56, 57, /* 800 */ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - /* 810 */ 68, 86, 87, 88, 83, 87, 88, 161, 87, 88, - /* 820 */ 4, 85, 80, 45, 46, 47, 48, 49, 50, 51, + /* 810 */ 68, 157, 87, 88, 83, 87, 88, 161, 87, 88, + /* 820 */ 85, 4, 80, 45, 46, 47, 48, 49, 50, 51, /* 830 */ 52, 139, 104, 55, 56, 57, 58, 59, 60, 61, - /* 840 */ 62, 63, 64, 65, 66, 67, 68, 4, 192, 45, - /* 850 */ 46, 47, 48, 49, 50, 51, 52, 4, 80, 55, + /* 840 */ 62, 63, 64, 65, 66, 67, 68, 122, 192, 45, + /* 850 */ 46, 47, 48, 49, 50, 51, 52, 138, 80, 55, /* 860 */ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - /* 870 */ 66, 67, 68, 46, 47, 48, 49, 50, 51, 52, - /* 880 */ 80, 80, 55, 56, 57, 58, 59, 60, 61, 62, - /* 890 */ 63, 64, 65, 66, 67, 68, 4, 47, 48, 49, - /* 900 */ 50, 51, 52, 87, 88, 55, 56, 57, 58, 59, - /* 910 */ 60, 61, 62, 63, 64, 65, 66, 67, 68, 4, - /* 920 */ 80, 4, 42, 138, 44, 109, 156, 84, 36, 114, - /* 930 */ 87, 88, 156, 4, 80, 161, 166, 84, 125, 47, - /* 940 */ 87, 88, 166, 161, 156, 85, 4, 171, 172, 101, - /* 950 */ 102, 103, 109, 157, 166, 63, 64, 65, 78, 101, - /* 960 */ 102, 103, 79, 71, 80, 191, 192, 122, 173, 174, - /* 970 */ 175, 79, 80, 191, 192, 180, 84, 4, 82, 87, - /* 980 */ 88, 80, 65, 91, 92, 93, 85, 82, 214, 215, - /* 990 */ 4, 217, 218, 65, 4, 142, 214, 215, 210, 217, - /* 1000 */ 218, 109, 87, 88, 87, 88, 230, 231, 79, 36, - /* 1010 */ 236, 237, 80, 84, 4, 80, 87, 88, 100, 237, - /* 1020 */ 47, 141, 130, 108, 228, 133, 109, 135, 136, 87, - /* 1030 */ 88, 167, 4, 0, 80, 156, 63, 64, 109, 121, - /* 1040 */ 161, 112, 176, 4, 71, 166, 4, 130, 4, 156, - /* 1050 */ 32, 79, 79, 80, 79, 22, 177, 84, 4, 166, - /* 1060 */ 87, 88, 156, 80, 91, 92, 93, 203, 85, 32, - /* 1070 */ 84, 192, 166, 87, 88, 4, 156, 87, 88, 137, - /* 1080 */ 187, 156, 109, 158, 4, 79, 166, 167, 222, 4, - /* 1090 */ 36, 166, 156, 187, 84, 109, 79, 87, 88, 4, - /* 1100 */ 221, 47, 166, 130, 156, 72, 133, 79, 135, 136, - /* 1110 */ 98, 4, 84, 85, 166, 87, 88, 63, 64, 109, - /* 1120 */ 130, 4, 229, 84, 4, 71, 87, 88, 84, 87, - /* 1130 */ 88, 87, 88, 79, 80, 229, 4, 109, 84, 4, - /* 1140 */ 112, 87, 88, 36, 4, 91, 92, 93, 109, 167, - /* 1150 */ 122, 123, 80, 109, 47, 84, 4, 85, 87, 88, - /* 1160 */ 81, 31, 106, 109, 122, 156, 100, 87, 88, 10, - /* 1170 */ 63, 64, 87, 88, 167, 166, 80, 47, 71, 84, - /* 1180 */ 120, 85, 87, 88, 130, 203, 79, 133, 80, 135, - /* 1190 */ 136, 84, 4, 85, 87, 88, 111, 105, 91, 92, - /* 1200 */ 93, 84, 122, 4, 87, 88, 4, 87, 88, 48, - /* 1210 */ 203, 4, 48, 131, 143, 156, 109, 79, 20, 87, - /* 1220 */ 88, 156, 87, 88, 36, 166, 80, 87, 88, 4, - /* 1230 */ 100, 166, 72, 81, 72, 47, 106, 130, 33, 87, - /* 1240 */ 133, 146, 135, 136, 109, 138, 187, 33, 4, 109, - /* 1250 */ 4, 63, 64, 170, 171, 172, 156, 4, 158, 71, - /* 1260 */ 85, 144, 130, 141, 4, 145, 166, 79, 156, 204, - /* 1270 */ 205, 119, 84, 212, 79, 87, 88, 4, 166, 91, - /* 1280 */ 92, 93, 36, 222, 4, 100, 87, 88, 229, 87, - /* 1290 */ 88, 4, 109, 47, 87, 88, 120, 109, 121, 17, - /* 1300 */ 4, 144, 4, 87, 80, 117, 80, 165, 109, 63, - /* 1310 */ 64, 109, 87, 88, 231, 222, 36, 71, 130, 81, - /* 1320 */ 206, 133, 210, 135, 136, 79, 80, 47, 63, 64, - /* 1330 */ 84, 87, 88, 87, 88, 156, 156, 91, 92, 93, - /* 1340 */ 87, 88, 179, 63, 64, 166, 166, 87, 88, 142, - /* 1350 */ 179, 71, 156, 109, 158, 109, 91, 92, 154, 79, - /* 1360 */ 87, 88, 166, 155, 84, 112, 187, 87, 88, 100, - /* 1370 */ 73, 91, 92, 93, 87, 88, 130, 156, 156, 133, - /* 1380 */ 158, 135, 136, 87, 88, 87, 88, 166, 166, 109, - /* 1390 */ 170, 171, 172, 170, 171, 172, 154, 156, 170, 171, - /* 1400 */ 172, 156, 154, 143, 170, 171, 172, 166, 229, 154, - /* 1410 */ 130, 166, 160, 133, 156, 135, 136, 130, 177, 146, - /* 1420 */ 85, 155, 177, 156, 166, 158, 130, 156, 130, 155, - /* 1430 */ 183, 28, 156, 166, 156, 177, 155, 166, 117, 156, - /* 1440 */ 155, 192, 166, 129, 166, 212, 156, 156, 177, 166, - /* 1450 */ 199, 231, 198, 177, 231, 177, 166, 166, 197, 231, - /* 1460 */ 177, 127, 221, 200, 126, 231, 221, 177, 177, 124, - /* 1470 */ 128, 201, 99, 156, 156, 156, 68, 47, 222, 221, - /* 1480 */ 156, 156, 225, 166, 166, 166, 138, 82, 156, 166, - /* 1490 */ 166, 166, 221, 156, 177, 177, 177, 221, 166, 221, - /* 1500 */ 156, 177, 177, 166, 221, 156, 156, 4, 156, 177, - /* 1510 */ 166, 221, 221, 156, 156, 166, 166, 209, 166, 209, - /* 1520 */ 82, 177, 156, 166, 166, 155, 177, 177, 166, 177, - /* 1530 */ 79, 156, 166, 178, 177, 177, 183, 155, 221, 221, - /* 1540 */ 221, 166, 155, 177, 155, 221, 221, 156, 156, 156, - /* 1550 */ 156, 156, 177, 221, 156, 178, 156, 166, 166, 166, - /* 1560 */ 166, 166, 155, 209, 166, 221, 166, 82, 177, 177, - /* 1570 */ 221, 221, 177, 221, 156, 177, 156, 177, 221, 221, - /* 1580 */ 156, 156, 158, 156, 166, 209, 166, 221, 82, 24, - /* 1590 */ 166, 166, 82, 166, 234, 177, 221, 177, 235, 156, - /* 1600 */ 138, 158, 177, 197, 177, 156, 190, 45, 156, 166, - /* 1610 */ 156, 82, 221, 221, 156, 166, 221, 156, 166, 221, - /* 1620 */ 166, 221, 156, 156, 166, 156, 82, 166, 219, 79, - /* 1630 */ 156, 190, 166, 166, 82, 166, 82, 156, 209, 221, - /* 1640 */ 166, 221, 156, 155, 209, 156, 221, 166, 221, 156, - /* 1650 */ 156, 156, 166, 82, 82, 166, 15, 238, 190, 166, - /* 1660 */ 166, 166, 239, 121, 238, 194, 176, 231, 196, 185, - /* 1670 */ 231, 226, 176, 208, 176, 197, 167, 233, 181, 209, - /* 1680 */ 167, 167, 182, 182, 182, 167, 223, 232, 240, 207, - /* 1690 */ 240, 227, 193, 189, 186, 240, 189, + /* 870 */ 66, 67, 68, 45, 46, 47, 48, 49, 50, 51, + /* 880 */ 52, 176, 228, 55, 56, 57, 58, 59, 60, 61, + /* 890 */ 62, 63, 64, 65, 66, 67, 68, 46, 47, 48, + /* 900 */ 49, 50, 51, 52, 87, 88, 55, 56, 57, 58, + /* 910 */ 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + /* 920 */ 47, 48, 49, 50, 51, 52, 4, 222, 55, 56, + /* 930 */ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + /* 940 */ 67, 68, 161, 4, 80, 4, 156, 170, 171, 172, + /* 950 */ 80, 161, 173, 174, 175, 42, 166, 44, 36, 180, + /* 960 */ 4, 156, 145, 158, 156, 156, 158, 177, 80, 47, + /* 970 */ 114, 166, 191, 192, 166, 166, 100, 36, 80, 156, + /* 980 */ 171, 172, 192, 85, 212, 63, 64, 65, 47, 166, + /* 990 */ 167, 78, 161, 71, 222, 214, 215, 121, 217, 218, + /* 1000 */ 4, 79, 80, 80, 63, 64, 84, 4, 231, 87, + /* 1010 */ 88, 221, 71, 91, 92, 93, 85, 236, 237, 4, + /* 1020 */ 79, 80, 191, 192, 125, 84, 87, 88, 87, 88, + /* 1030 */ 80, 109, 91, 92, 93, 85, 4, 80, 4, 230, + /* 1040 */ 231, 80, 85, 87, 88, 214, 215, 79, 217, 218, + /* 1050 */ 109, 36, 130, 4, 141, 133, 4, 135, 136, 31, + /* 1060 */ 63, 64, 47, 4, 101, 102, 103, 80, 237, 130, + /* 1070 */ 36, 130, 85, 4, 133, 47, 135, 136, 63, 64, + /* 1080 */ 84, 47, 79, 87, 88, 65, 71, 84, 91, 92, + /* 1090 */ 87, 88, 4, 137, 79, 80, 80, 63, 64, 84, + /* 1100 */ 156, 85, 87, 88, 4, 71, 91, 92, 93, 82, + /* 1110 */ 166, 4, 109, 79, 65, 112, 84, 4, 84, 87, + /* 1120 */ 88, 87, 88, 4, 109, 91, 92, 93, 100, 167, + /* 1130 */ 4, 187, 0, 81, 106, 122, 87, 88, 142, 87, + /* 1140 */ 82, 109, 156, 109, 158, 130, 87, 88, 133, 156, + /* 1150 */ 135, 136, 166, 84, 22, 36, 87, 88, 109, 166, + /* 1160 */ 80, 4, 32, 4, 130, 203, 47, 133, 79, 135, + /* 1170 */ 136, 119, 138, 229, 80, 87, 88, 4, 109, 130, + /* 1180 */ 4, 122, 63, 64, 84, 80, 79, 87, 88, 4, + /* 1190 */ 71, 84, 85, 4, 87, 88, 108, 84, 79, 79, + /* 1200 */ 87, 88, 4, 84, 72, 106, 87, 88, 4, 109, + /* 1210 */ 91, 92, 93, 87, 88, 79, 109, 4, 32, 112, + /* 1220 */ 167, 4, 109, 101, 102, 103, 4, 156, 109, 122, + /* 1230 */ 123, 4, 156, 4, 158, 109, 117, 166, 156, 79, + /* 1240 */ 36, 84, 166, 84, 87, 88, 87, 88, 166, 130, + /* 1250 */ 98, 47, 133, 81, 135, 136, 203, 84, 167, 177, + /* 1260 */ 87, 88, 4, 87, 88, 100, 109, 63, 64, 84, + /* 1270 */ 10, 4, 87, 88, 4, 71, 87, 88, 4, 105, + /* 1280 */ 156, 210, 4, 79, 80, 87, 88, 111, 84, 4, + /* 1290 */ 166, 87, 88, 48, 203, 91, 92, 93, 109, 120, + /* 1300 */ 87, 88, 143, 221, 87, 88, 4, 109, 80, 87, + /* 1310 */ 88, 187, 48, 109, 87, 88, 87, 88, 156, 146, + /* 1320 */ 158, 36, 109, 131, 170, 171, 172, 79, 166, 144, + /* 1330 */ 20, 109, 47, 156, 130, 72, 109, 133, 72, 135, + /* 1340 */ 136, 33, 4, 166, 85, 87, 88, 130, 63, 64, + /* 1350 */ 170, 171, 172, 229, 87, 88, 71, 87, 88, 141, + /* 1360 */ 33, 87, 88, 79, 79, 87, 88, 4, 100, 84, + /* 1370 */ 112, 142, 87, 88, 36, 120, 91, 92, 93, 170, + /* 1380 */ 171, 172, 170, 171, 172, 231, 156, 210, 156, 87, + /* 1390 */ 88, 109, 121, 156, 109, 156, 166, 158, 166, 17, + /* 1400 */ 87, 63, 64, 166, 130, 166, 144, 165, 130, 71, + /* 1410 */ 143, 231, 80, 156, 80, 130, 146, 79, 133, 187, + /* 1420 */ 135, 136, 84, 166, 187, 87, 88, 81, 156, 91, + /* 1430 */ 92, 93, 130, 222, 204, 205, 155, 206, 166, 4, + /* 1440 */ 231, 154, 156, 231, 156, 156, 156, 109, 156, 177, + /* 1450 */ 87, 88, 166, 100, 166, 166, 166, 73, 166, 179, + /* 1460 */ 156, 229, 156, 177, 85, 177, 229, 177, 130, 177, + /* 1470 */ 166, 133, 166, 135, 136, 156, 156, 158, 156, 156, + /* 1480 */ 179, 177, 156, 177, 154, 166, 166, 154, 166, 166, + /* 1490 */ 154, 156, 166, 221, 155, 183, 156, 177, 155, 177, + /* 1500 */ 177, 166, 160, 177, 28, 156, 166, 221, 156, 221, + /* 1510 */ 156, 221, 177, 221, 156, 166, 155, 177, 166, 155, + /* 1520 */ 166, 86, 87, 88, 166, 221, 177, 221, 156, 177, + /* 1530 */ 156, 177, 117, 192, 197, 177, 156, 129, 166, 126, + /* 1540 */ 166, 221, 156, 221, 221, 156, 166, 221, 198, 177, + /* 1550 */ 156, 177, 166, 124, 156, 166, 221, 177, 199, 156, + /* 1560 */ 166, 221, 156, 177, 166, 127, 177, 156, 156, 166, + /* 1570 */ 221, 177, 166, 221, 156, 221, 156, 166, 166, 221, + /* 1580 */ 177, 156, 156, 200, 166, 212, 166, 128, 177, 177, + /* 1590 */ 99, 166, 166, 221, 201, 221, 156, 177, 68, 156, + /* 1600 */ 222, 221, 177, 177, 156, 47, 166, 221, 156, 166, + /* 1610 */ 221, 156, 156, 156, 166, 221, 225, 156, 166, 156, + /* 1620 */ 177, 166, 166, 166, 221, 177, 156, 166, 156, 166, + /* 1630 */ 156, 138, 221, 221, 156, 156, 166, 209, 166, 156, + /* 1640 */ 166, 221, 156, 156, 166, 166, 221, 221, 156, 166, + /* 1650 */ 156, 82, 166, 166, 166, 4, 156, 82, 166, 209, + /* 1660 */ 166, 155, 178, 79, 221, 166, 166, 155, 183, 221, + /* 1670 */ 155, 155, 155, 178, 209, 82, 209, 82, 234, 24, + /* 1680 */ 235, 138, 82, 45, 82, 82, 197, 190, 219, 79, + /* 1690 */ 209, 190, 155, 82, 82, 82, 82, 190, 238, 209, + /* 1700 */ 15, 239, 121, 176, 238, 194, 196, 176, 231, 181, + /* 1710 */ 208, 231, 176, 209, 185, 197, 167, 167, 167, 167, + /* 1720 */ 182, 182, 226, 182, 189, 193, 207, 240, 223, 189, + /* 1730 */ 232, 186, 240, 240, 240, 227, 233, }; #define YY_SHIFT_USE_DFLT (-101) #define YY_SHIFT_COUNT (343) #define YY_SHIFT_MIN (-100) -#define YY_SHIFT_MAX (1641) +#define YY_SHIFT_MAX (1685) static const short yy_shift_ofst[] = { - /* 0 */ 273, -7, 499, -4, 141, 892, 1246, 1188, 533, 533, - /* 10 */ 13, 577, 567, 1107, 1280, 725, 81, 366, 1054, 973, - /* 20 */ 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, - /* 30 */ 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, - /* 40 */ 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1028, 43, - /* 50 */ 1296, 1296, 1296, 1296, 1265, 1265, 1296, 1265, 1265, 1265, - /* 60 */ 524, 173, 929, 1117, 1095, 1071, 1044, 1039, 1010, 986, - /* 70 */ 251, 1287, 1287, 1298, 1130, 1296, 1287, 255, 301, 153, - /* 80 */ 917, 853, 843, 540, 202, 531, 1273, 1260, 1253, 1244, - /* 90 */ 1207, 1202, 1132, 1199, 1140, 1135, 1120, 1085, 731, 816, - /* 100 */ 915, 728, 1080, 1042, 1152, 1152, 611, 1152, 990, 625, - /* 110 */ 942, 195, 605, 1225, 1225, 1225, 1225, 1225, 1225, 1225, - /* 120 */ 1225, -30, 1033, 167, 1321, 1321, -101, 502, 502, 502, + /* 0 */ 273, -7, 499, -4, 141, 922, 1204, 1119, 533, 533, + /* 10 */ 13, 577, 567, 1034, 1285, 1435, 81, 366, 1015, 941, + /* 20 */ 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, + /* 30 */ 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, + /* 40 */ 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1338, 1107, 43, + /* 50 */ 1278, 1278, 1278, 1278, 997, 997, 1278, 997, 997, 997, + /* 60 */ 524, 173, 1003, 1185, 1173, 1159, 1157, 1113, 1100, 1069, + /* 70 */ 251, 1274, 1274, 1302, 1028, 1278, 1274, 255, 301, 153, + /* 80 */ 1049, 996, 1032, 540, 202, 531, 1270, 1267, 1258, 1227, + /* 90 */ 1229, 1222, 1217, 1213, 1198, 1189, 817, 1176, 731, 1126, + /* 100 */ 1088, 728, 1059, 725, 1052, 1052, 611, 1052, 939, 625, + /* 110 */ 956, 195, 605, 1363, 1363, 1363, 1363, 1363, 1363, 1363, + /* 120 */ 1363, -30, 1132, 167, 1415, 1415, -101, 502, 502, 502, /* 130 */ 502, 502, 502, 502, 527, 327, 659, 778, 742, 716, - /* 140 */ 692, 359, 804, 804, 827, 850, 850, 405, 405, 405, + /* 140 */ 692, 359, 828, 804, 804, 851, 873, 873, 405, 405, /* 150 */ 405, 204, 211, 1, 233, 1, 181, 522, 35, 375, - /* 160 */ -20, 121, -76, -100, -100, 858, 426, -100, -100, 166, - /* 170 */ 690, 690, 690, 200, 200, 200, 566, 162, 1108, 164, - /* 180 */ 93, 918, 164, 550, 678, 678, 565, 41, 164, 1641, - /* 190 */ 1542, 1641, 1552, 1562, 1572, 1571, 1554, 1269, 1552, 1562, - /* 200 */ 1550, 1544, 1529, 1562, 1314, 1510, 1462, 1565, 1506, 1485, - /* 210 */ 1451, 1269, 1269, 1269, 1269, 1403, 1503, 1451, 1269, 1438, - /* 220 */ 1503, 1405, 1348, 1430, 1408, 1373, 1342, 1345, 1334, 1338, - /* 230 */ 1314, 1321, 1269, 1269, 1403, 1269, 1269, 1335, 1297, 1297, - /* 240 */ 1297, 1269, 1297, -101, -101, -101, -101, -101, -101, -101, - /* 250 */ -101, 458, 15, 880, 349, 848, 564, 1096, 706, 1072, - /* 260 */ 983, 901, 590, 582, 451, 241, 449, 86, 38, -11, - /* 270 */ 55, 28, -59, 1238, 1157, 1226, 1224, 1216, 1282, 1177, - /* 280 */ 1176, 1183, 1185, 1195, 1122, 1214, 1175, 1205, 1198, 1162, - /* 290 */ 1160, 1146, 1138, 1082, 1164, 1161, 1092, 1060, 1159, 1066, - /* 300 */ 1079, 1056, 1012, 1017, 1037, 1006, 975, 972, 1018, 954, - /* 310 */ 935, 932, 928, 905, 896, 845, 884, 883, 860, 813, - /* 320 */ 860, 854, 815, 785, 840, 801, 800, 736, 617, 636, + /* 160 */ -20, 121, -76, -100, -100, 1122, 426, -100, -100, 166, + /* 170 */ 690, 690, 690, 200, 200, 200, 566, 162, 1016, 164, + /* 180 */ 93, 876, 164, 550, 678, 678, 565, 41, 164, 1685, + /* 190 */ 1581, 1685, 1611, 1638, 1614, 1613, 1612, 1353, 1611, 1638, + /* 200 */ 1610, 1603, 1602, 1638, 1408, 1600, 1543, 1655, 1595, 1593, + /* 210 */ 1584, 1353, 1353, 1353, 1353, 1476, 1651, 1584, 1353, 1575, + /* 220 */ 1651, 1569, 1493, 1558, 1530, 1491, 1459, 1429, 1438, 1413, + /* 230 */ 1408, 1415, 1353, 1353, 1476, 1353, 1353, 1379, 1384, 1384, + /* 240 */ 1384, 1353, 1384, -101, -101, -101, -101, -101, -101, -101, + /* 250 */ -101, 458, 15, 913, 349, 963, 564, 987, 706, 957, + /* 260 */ 950, 898, 590, 582, 451, 241, 449, 86, 38, -11, + /* 270 */ 55, 28, -59, 1346, 1262, 1334, 1332, 1313, 1382, 1271, + /* 280 */ 1255, 1282, 1268, 1284, 1218, 1327, 1259, 1308, 1310, 1266, + /* 290 */ 1263, 1228, 1248, 1192, 1264, 1245, 1174, 1179, 1260, 1165, + /* 300 */ 1172, 1099, 1152, 1160, 1186, 1136, 1120, 1089, 1130, 1105, + /* 310 */ 1094, 1080, 1020, 1058, 1027, 1013, 961, 968, 931, 899, + /* 320 */ 931, 923, 856, 719, 888, 870, 864, 735, 617, 636, /* 330 */ 588, 559, 555, 532, 316, 498, 418, 407, 317, 178, /* 340 */ 143, 87, 130, -41, }; #define YY_REDUCE_USE_DFLT (-194) #define YY_REDUCE_COUNT (250) #define YY_REDUCE_MIN (-193) -#define YY_REDUCE_MAX (1518) +#define YY_REDUCE_MAX (1552) static const short yy_reduce_ofst[] = { - /* 0 */ 192, -34, 774, -57, 782, 318, -148, 879, 776, 374, - /* 10 */ 132, 29, 320, 512, 466, 277, 1427, 1425, 1420, 1418, - /* 20 */ 1400, 1398, 1395, 1392, 1391, 1375, 1366, 1358, 1357, 1352, - /* 30 */ 1350, 1349, 1344, 1332, 1325, 1324, 1319, 1318, 1317, 1291, - /* 40 */ 1290, 1283, 1278, 1276, 1271, 1258, 1245, 1241, 1065, 795, - /* 50 */ 1179, 1059, 906, 893, 1234, 1228, -75, 1223, 1220, 1083, - /* 60 */ 280, 431, 286, 920, 1443, 1424, 1267, 1222, 1196, 1100, - /* 70 */ 925, 1112, 788, 470, 297, -131, 46, 866, 1061, 307, - /* 80 */ 1489, 1495, 1494, 936, 1493, 1489, 936, 936, 1486, 936, - /* 90 */ 936, 936, 1481, 936, 936, 936, 1474, 1469, 936, 1467, - /* 100 */ 1466, 1461, 1458, 1454, 1007, 982, 1452, 864, 1449, 936, - /* 110 */ 1394, 1393, 1337, 1221, 1180, 1009, 948, 936, 770, 215, - /* 120 */ -80, 796, 634, 656, 242, -45, -193, 1093, 1093, 1093, - /* 130 */ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - /* 140 */ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - /* 150 */ 1093, 1093, 1093, 1507, 1508, 1504, 1499, 1482, 1499, 1464, - /* 160 */ 1463, 1093, 1499, 1499, 1499, 1444, 1455, 1499, 1499, 1518, - /* 170 */ 1502, 1501, 1500, 1514, 1513, 1509, 1470, 1478, 1484, 1498, - /* 180 */ 1497, 1465, 1496, 1445, 1439, 1436, 1472, 1471, 1490, 1426, - /* 190 */ 1423, 1419, 1435, 1468, 1354, 1354, 1354, 1488, 1429, 1441, - /* 200 */ 1409, 1354, 1354, 1416, 1406, 1354, 1363, 1360, 1376, 1354, - /* 210 */ 1377, 1407, 1389, 1387, 1382, 1353, 1362, 1355, 1370, 1310, - /* 220 */ 1323, 1308, 1257, 1256, 1093, 1233, 1270, 1263, 1251, 1254, - /* 230 */ 1261, 1249, 1285, 1281, 1247, 1274, 1266, 1252, 1255, 1248, - /* 240 */ 1242, 1208, 1204, 1171, 1163, 1114, 1093, 1093, 1093, 1093, - /* 250 */ 1142, + /* 0 */ 192, -34, 781, -57, 831, 318, -148, 790, 809, 374, + /* 10 */ 132, 29, 320, 512, 466, 277, 1448, 1443, 1426, 1425, + /* 20 */ 1420, 1412, 1411, 1403, 1394, 1389, 1386, 1380, 1374, 1372, + /* 30 */ 1358, 1354, 1352, 1349, 1340, 1335, 1326, 1323, 1322, 1320, + /* 40 */ 1306, 1304, 1292, 1290, 1288, 1286, 1272, 1082, 1230, 779, + /* 50 */ 1237, 1232, 1124, 944, 1212, 1209, -75, 1180, 1154, 777, + /* 60 */ 280, 431, 286, 823, 1319, 1239, 1162, 1076, 986, 808, + /* 70 */ 805, 1177, 1071, 470, 297, -131, 46, 705, 772, 307, + /* 80 */ 1487, 1500, 1494, 1289, 1492, 1487, 1289, 1289, 1486, 1289, + /* 90 */ 1289, 1289, 1483, 1289, 1289, 1289, 1479, 1478, 1289, 1474, + /* 100 */ 1472, 1470, 1463, 1257, 1091, 1053, 1461, 962, 1457, 1289, + /* 110 */ 1456, 1455, 1452, 1440, 1418, 1406, 1398, 1289, 993, 215, + /* 120 */ -80, 654, 634, 656, 242, -45, -193, 1211, 1211, 1211, + /* 130 */ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + /* 140 */ 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + /* 150 */ 1211, 1211, 1211, 1540, 1545, 1535, 1532, 1519, 1532, 1508, + /* 160 */ 1505, 1211, 1532, 1532, 1532, 1503, 1498, 1532, 1532, 1552, + /* 170 */ 1541, 1539, 1538, 1551, 1550, 1549, 1504, 1518, 1529, 1536, + /* 180 */ 1528, 1502, 1531, 1496, 1480, 1477, 1510, 1511, 1527, 1466, + /* 190 */ 1462, 1460, 1490, 1507, 1465, 1465, 1465, 1537, 1481, 1501, + /* 200 */ 1469, 1465, 1465, 1497, 1489, 1465, 1445, 1444, 1467, 1465, + /* 210 */ 1495, 1517, 1516, 1515, 1512, 1485, 1499, 1484, 1506, 1450, + /* 220 */ 1488, 1428, 1391, 1378, 1211, 1373, 1393, 1383, 1359, 1350, + /* 230 */ 1337, 1341, 1364, 1361, 1312, 1343, 1339, 1342, 1336, 1333, + /* 240 */ 1330, 1281, 1287, 1301, 1280, 1231, 1211, 1211, 1211, 1211, + /* 250 */ 1242, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 589, 936, 936, 862, 903, 851, 851, 851, 936, 936, /* 10 */ 730, 936, 851, 851, 851, 936, 851, 851, 851, 851, /* 20 */ 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, /* 30 */ 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, - /* 40 */ 851, 851, 851, 851, 851, 851, 851, 851, 724, 608, + /* 40 */ 851, 851, 851, 851, 851, 851, 851, 841, 724, 608, /* 50 */ 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, /* 60 */ 616, 720, 730, 936, 936, 936, 936, 790, 777, 768, /* 70 */ 936, 800, 800, 783, 679, 936, 800, 756, 752, 936, @@ -670,7 +678,7 @@ static const YYACTIONTYPE yy_default[] = { /* 110 */ 936, 840, 594, 936, 882, 936, 936, 936, 936, 936, /* 120 */ 936, 605, 589, 936, 936, 936, 710, 736, 773, 761, /* 130 */ 863, 856, 857, 855, 852, 852, 852, 852, 852, 852, - /* 140 */ 852, 852, 852, 823, 816, 827, 815, 831, 841, 826, + /* 140 */ 852, 852, 852, 852, 823, 816, 827, 815, 831, 826, /* 150 */ 818, 817, 819, 936, 936, 936, 936, 723, 936, 936, /* 160 */ 936, 820, 936, 789, 698, 936, 910, 693, 601, 618, /* 170 */ 936, 936, 936, 936, 936, 936, 936, 772, 670, 756, @@ -1247,7 +1255,7 @@ static const char *const yyRuleName[] = { /* 254 */ "exprx ::= RAISE LP IGNORE RP", /* 255 */ "exprx ::= nm DOT", /* 256 */ "exprx ::= nm DOT nm DOT", - /* 257 */ "exprx ::= expr not_opt BETWEEN expr", + /* 257 */ "exprx ::= expr not_opt BETWEEN expr AND", /* 258 */ "exprx ::= CASE case_operand case_exprlist case_else", /* 259 */ "exprx ::= expr not_opt IN LP exprlist", /* 260 */ "exprx ::= expr not_opt IN ID_DB", @@ -2208,7 +2216,7 @@ static const struct { { 221, 4 }, { 221, 2 }, { 221, 4 }, - { 221, 4 }, + { 221, 5 }, { 221, 4 }, { 221, 5 }, { 221, 4 }, @@ -3879,12 +3887,12 @@ static void yy_reduce( parserContext->minorErrorBeforeNextToken("Syntax error"); } break; - case 257: /* exprx ::= expr not_opt BETWEEN expr */ + case 257: /* exprx ::= expr not_opt BETWEEN expr AND */ { yygotominor.yy192 = new SqliteExpr(); - delete yymsp[-2].minor.yy291; - delete yymsp[-3].minor.yy192; - delete yymsp[0].minor.yy192; + delete yymsp[-3].minor.yy291; + delete yymsp[-4].minor.yy192; + delete yymsp[-1].minor.yy192; objectForTokens = yygotominor.yy192; parserContext->minorErrorBeforeNextToken("Syntax error"); } diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite2_parse.y b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite2_parse.y index e44e9b8..04da6cb 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite2_parse.y +++ b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite2_parse.y @@ -1559,7 +1559,7 @@ exprx(X) ::= nm(N1) DOT nm(N2) DOT. { parserContext->minorErrorBeforeNextToken("Syntax error"); } exprx(X) ::= expr(E1) not_opt(N) BETWEEN - expr(E2). [BETWEEN] { + expr(E2) AND. { X = new SqliteExpr(); delete N; delete E1; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp index 3bdd9a4..8786832 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.cpp @@ -242,231 +242,237 @@ static const YYMINORTYPE yyzerominor = { 0 }; ** shifting non-terminals after a reduce. ** yy_default[] Default action for each state. */ -#define YY_ACTTAB_COUNT (2221) +#define YY_ACTTAB_COUNT (2282) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 431, 49, 49, 48, 48, 48, 47, 216, 716, 339, - /* 10 */ 643, 425, 52, 52, 52, 52, 45, 50, 50, 50, - /* 20 */ 50, 49, 49, 48, 48, 48, 47, 216, 721, 1026, - /* 30 */ 1026, 643, 131, 580, 52, 52, 52, 52, 411, 50, - /* 40 */ 50, 50, 50, 49, 49, 48, 48, 48, 47, 216, + /* 0 */ 431, 48, 48, 47, 47, 47, 46, 216, 716, 339, + /* 10 */ 643, 425, 51, 51, 51, 51, 44, 49, 49, 49, + /* 20 */ 49, 48, 48, 47, 47, 47, 46, 216, 721, 1026, + /* 30 */ 1026, 643, 131, 580, 51, 51, 51, 51, 411, 49, + /* 40 */ 49, 49, 49, 48, 48, 47, 47, 47, 46, 216, /* 50 */ 579, 81, 58, 643, 157, 685, 301, 282, 1026, 1026, - /* 60 */ 42, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, - /* 70 */ 1026, 1026, 563, 1026, 1026, 1026, 1026, 39, 40, 1026, - /* 80 */ 1026, 1026, 1026, 1026, 41, 431, 528, 385, 716, 595, + /* 60 */ 41, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, + /* 70 */ 1026, 1026, 563, 1026, 1026, 1026, 1026, 38, 39, 1026, + /* 80 */ 1026, 1026, 1026, 1026, 40, 431, 528, 385, 716, 595, /* 90 */ 594, 280, 4, 377, 716, 630, 425, 642, 608, 422, /* 100 */ 12, 134, 687, 429, 562, 609, 483, 690, 331, 279, /* 110 */ 714, 713, 564, 565, 642, 689, 688, 687, 235, 506, - /* 120 */ 60, 320, 610, 411, 48, 48, 48, 47, 216, 122, + /* 120 */ 60, 320, 610, 411, 47, 47, 47, 46, 216, 122, /* 130 */ 243, 213, 247, 59, 1142, 1142, 486, 609, 607, 603, - /* 140 */ 685, 306, 485, 584, 716, 42, 507, 509, 642, 508, + /* 140 */ 685, 306, 485, 584, 716, 41, 507, 509, 642, 508, /* 150 */ 676, 9, 642, 144, 95, 281, 379, 276, 378, 132, - /* 160 */ 297, 716, 39, 40, 601, 200, 199, 7, 355, 41, + /* 160 */ 297, 716, 38, 39, 601, 200, 199, 7, 355, 40, /* 170 */ 884, 307, 1134, 274, 249, 716, 17, 4, 884, 1134, - /* 180 */ 57, 717, 642, 431, 422, 884, 329, 687, 429, 716, + /* 180 */ 56, 717, 642, 431, 422, 884, 329, 687, 429, 716, /* 190 */ 687, 643, 690, 687, 425, 690, 714, 713, 690, 642, /* 200 */ 689, 688, 687, 689, 688, 687, 689, 688, 687, 98, /* 210 */ 682, 240, 643, 218, 410, 884, 486, 884, 884, 483, /* 220 */ 716, 411, 239, 884, 303, 582, 512, 581, 884, 884, /* 230 */ 884, 884, 884, 642, 643, 676, 9, 642, 685, 217, - /* 240 */ 245, 673, 102, 42, 287, 300, 714, 713, 67, 302, + /* 240 */ 245, 673, 102, 41, 287, 300, 714, 713, 67, 302, /* 250 */ 148, 307, 1133, 151, 306, 484, 81, 715, 97, 1133, - /* 260 */ 39, 40, 551, 714, 713, 771, 130, 41, 946, 376, - /* 270 */ 373, 372, 447, 47, 216, 4, 946, 714, 713, 334, + /* 260 */ 38, 39, 551, 714, 713, 771, 130, 40, 946, 376, + /* 270 */ 373, 372, 447, 46, 216, 4, 946, 714, 713, 334, /* 280 */ 642, 682, 422, 946, 606, 687, 429, 371, 448, 447, /* 290 */ 690, 714, 713, 304, 265, 146, 267, 642, 689, 688, /* 300 */ 687, 287, 68, 677, 691, 255, 362, 259, 359, 692, /* 310 */ 1027, 1027, 682, 946, 715, 946, 946, 447, 698, 234, /* 320 */ 386, 715, 714, 713, 773, 651, 946, 946, 946, 946, - /* 330 */ 110, 642, 317, 676, 9, 642, 222, 677, 299, 53, - /* 340 */ 54, 426, 289, 1027, 1027, 675, 675, 51, 51, 52, - /* 350 */ 52, 52, 52, 716, 50, 50, 50, 50, 49, 49, - /* 360 */ 48, 48, 48, 47, 216, 431, 428, 340, 716, 335, + /* 330 */ 110, 642, 317, 676, 9, 642, 222, 677, 299, 52, + /* 340 */ 53, 426, 289, 1027, 1027, 675, 675, 50, 50, 51, + /* 350 */ 51, 51, 51, 716, 49, 49, 49, 49, 48, 48, + /* 360 */ 47, 47, 47, 46, 216, 431, 428, 340, 716, 335, /* 370 */ 671, 670, 287, 283, 716, 138, 425, 209, 219, 430, - /* 380 */ 268, 395, 651, 682, 336, 715, 715, 686, 186, 53, - /* 390 */ 54, 426, 289, 715, 452, 675, 675, 51, 51, 52, - /* 400 */ 52, 52, 52, 411, 50, 50, 50, 50, 49, 49, - /* 410 */ 48, 48, 48, 47, 216, 91, 953, 716, 619, 712, - /* 420 */ 685, 403, 382, 130, 710, 42, 376, 373, 372, 711, + /* 380 */ 268, 395, 651, 682, 336, 715, 715, 686, 187, 52, + /* 390 */ 53, 426, 289, 715, 452, 675, 675, 50, 50, 51, + /* 400 */ 51, 51, 51, 411, 49, 49, 49, 49, 48, 48, + /* 410 */ 47, 47, 47, 46, 216, 91, 953, 716, 619, 712, + /* 420 */ 685, 403, 382, 130, 710, 41, 376, 373, 372, 711, /* 430 */ 233, 953, 394, 311, 210, 593, 666, 384, 428, 16, - /* 440 */ 316, 659, 39, 40, 371, 231, 230, 716, 89, 41, + /* 440 */ 316, 659, 38, 39, 371, 231, 230, 716, 89, 40, /* 450 */ 931, 430, 716, 658, 716, 714, 713, 4, 931, 686, /* 460 */ 92, 143, 642, 358, 422, 931, 674, 687, 429, 14, /* 470 */ 714, 713, 690, 131, 456, 551, 714, 713, 953, 642, /* 480 */ 689, 688, 687, 668, 667, 210, 593, 458, 384, 457, - /* 490 */ 576, 88, 1027, 1027, 13, 931, 672, 931, 931, 55, - /* 500 */ 575, 678, 43, 368, 38, 401, 36, 381, 931, 1, + /* 490 */ 576, 88, 1027, 1027, 13, 931, 672, 931, 931, 54, + /* 500 */ 575, 678, 42, 368, 37, 401, 35, 381, 931, 1, /* 510 */ 931, 931, 641, 642, 634, 676, 9, 642, 661, 714, - /* 520 */ 713, 53, 54, 426, 289, 1027, 1027, 675, 675, 51, - /* 530 */ 51, 52, 52, 52, 52, 660, 50, 50, 50, 50, - /* 540 */ 49, 49, 48, 48, 48, 47, 216, 657, 648, 714, + /* 520 */ 713, 52, 53, 426, 289, 1027, 1027, 675, 675, 50, + /* 530 */ 50, 51, 51, 51, 51, 660, 49, 49, 49, 49, + /* 540 */ 48, 48, 47, 47, 47, 46, 216, 657, 648, 714, /* 550 */ 713, 496, 542, 569, 714, 713, 714, 713, 656, 691, /* 560 */ 543, 614, 320, 30, 692, 27, 716, 585, 274, 682, - /* 570 */ 160, 1027, 1027, 426, 289, 693, 613, 675, 675, 51, - /* 580 */ 51, 52, 52, 52, 52, 398, 50, 50, 50, 50, - /* 590 */ 49, 49, 48, 48, 48, 47, 216, 1025, 1025, 81, - /* 600 */ 53, 54, 426, 289, 1027, 1027, 675, 675, 51, 51, - /* 610 */ 52, 52, 52, 52, 496, 50, 50, 50, 50, 49, - /* 620 */ 49, 48, 48, 48, 47, 216, 1025, 1025, 1025, 1025, + /* 570 */ 160, 1027, 1027, 426, 289, 693, 613, 675, 675, 50, + /* 580 */ 50, 51, 51, 51, 51, 398, 49, 49, 49, 49, + /* 590 */ 48, 48, 47, 47, 47, 46, 216, 1025, 1025, 81, + /* 600 */ 52, 53, 426, 289, 1027, 1027, 675, 675, 50, 50, + /* 610 */ 51, 51, 51, 51, 496, 49, 49, 49, 49, 48, + /* 620 */ 48, 47, 47, 47, 46, 216, 1025, 1025, 1025, 1025, /* 630 */ 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, /* 640 */ 716, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, - /* 650 */ 1025, 1025, 1027, 1027, 357, 50, 50, 50, 50, 49, - /* 660 */ 49, 48, 48, 48, 47, 216, 288, 552, 714, 713, + /* 650 */ 1025, 1025, 1027, 1027, 357, 49, 49, 49, 49, 48, + /* 660 */ 48, 47, 47, 47, 46, 216, 288, 552, 714, 713, /* 670 */ 495, 682, 298, 662, 346, 153, 538, 69, 694, 715, - /* 680 */ 715, 53, 54, 426, 289, 1027, 1027, 675, 675, 51, - /* 690 */ 51, 52, 52, 52, 52, 1094, 50, 50, 50, 50, - /* 700 */ 49, 49, 48, 48, 48, 47, 216, 53, 54, 426, - /* 710 */ 289, 418, 511, 675, 675, 51, 51, 52, 52, 52, - /* 720 */ 52, 159, 50, 50, 50, 50, 49, 49, 48, 48, - /* 730 */ 48, 47, 216, 490, 954, 315, 482, 482, 663, 553, - /* 740 */ 215, 650, 714, 713, 81, 53, 54, 426, 289, 954, - /* 750 */ 414, 675, 675, 51, 51, 52, 52, 52, 52, 397, - /* 760 */ 50, 50, 50, 50, 49, 49, 48, 48, 48, 47, + /* 680 */ 715, 52, 53, 426, 289, 1027, 1027, 675, 675, 50, + /* 690 */ 50, 51, 51, 51, 51, 1094, 49, 49, 49, 49, + /* 700 */ 48, 48, 47, 47, 47, 46, 216, 52, 53, 426, + /* 710 */ 289, 418, 511, 675, 675, 50, 50, 51, 51, 51, + /* 720 */ 51, 159, 49, 49, 49, 49, 48, 48, 47, 47, + /* 730 */ 47, 46, 216, 490, 954, 315, 482, 482, 663, 553, + /* 740 */ 215, 650, 714, 713, 81, 52, 53, 426, 289, 954, + /* 750 */ 414, 675, 675, 50, 50, 51, 51, 51, 51, 397, + /* 760 */ 49, 49, 49, 49, 48, 48, 47, 47, 47, 46, /* 770 */ 216, 158, 1094, 21, 716, 627, 459, 716, 1079, 716, /* 780 */ 647, 1045, 140, 89, 716, 1149, 154, 435, 2, 715, - /* 790 */ 424, 671, 670, 396, 460, 461, 954, 53, 54, 426, - /* 800 */ 289, 573, 716, 675, 675, 51, 51, 52, 52, 52, - /* 810 */ 52, 321, 50, 50, 50, 50, 49, 49, 48, 48, - /* 820 */ 48, 47, 216, 431, 1108, 81, 206, 205, 204, 53, - /* 830 */ 54, 426, 289, 716, 425, 675, 675, 51, 51, 52, - /* 840 */ 52, 52, 52, 344, 50, 50, 50, 50, 49, 49, - /* 850 */ 48, 48, 48, 47, 216, 597, 715, 666, 600, 462, + /* 790 */ 424, 671, 670, 396, 460, 461, 954, 52, 53, 426, + /* 800 */ 289, 573, 716, 675, 675, 50, 50, 51, 51, 51, + /* 810 */ 51, 321, 49, 49, 49, 49, 48, 48, 47, 47, + /* 820 */ 47, 46, 216, 431, 1108, 81, 206, 205, 204, 52, + /* 830 */ 53, 426, 289, 716, 425, 675, 675, 50, 50, 51, + /* 840 */ 51, 51, 51, 344, 49, 49, 49, 49, 48, 48, + /* 850 */ 47, 47, 47, 46, 216, 597, 715, 666, 600, 462, /* 860 */ 666, 411, 31, 716, 657, 90, 12, 894, 720, 668, /* 870 */ 667, 609, 724, 434, 81, 656, 714, 713, 685, 714, - /* 880 */ 713, 714, 713, 42, 528, 272, 714, 713, 610, 349, + /* 880 */ 713, 714, 713, 41, 528, 272, 714, 713, 610, 349, /* 890 */ 528, 450, 89, 677, 12, 633, 633, 338, 636, 609, - /* 900 */ 39, 40, 649, 609, 714, 713, 716, 41, 1142, 1142, + /* 900 */ 38, 39, 649, 609, 714, 713, 716, 40, 1142, 1142, /* 910 */ 716, 524, 682, 581, 716, 4, 610, 468, 60, 450, - /* 920 */ 642, 208, 422, 506, 60, 687, 429, 677, 33, 109, + /* 920 */ 642, 208, 422, 506, 60, 687, 429, 677, 32, 109, /* 930 */ 690, 609, 500, 501, 352, 714, 713, 642, 689, 688, /* 940 */ 687, 428, 900, 900, 467, 466, 552, 465, 421, 383, /* 950 */ 507, 509, 142, 508, 430, 440, 69, 1142, 1142, 715, /* 960 */ 444, 722, 686, 182, 646, 714, 713, 645, 231, 230, - /* 970 */ 437, 642, 356, 676, 9, 642, 417, 444, 53, 54, - /* 980 */ 426, 289, 91, 91, 675, 675, 51, 51, 52, 52, - /* 990 */ 52, 52, 644, 50, 50, 50, 50, 49, 49, 48, - /* 1000 */ 48, 48, 47, 216, 1034, 444, 668, 667, 714, 713, + /* 970 */ 437, 642, 356, 676, 9, 642, 417, 444, 52, 53, + /* 980 */ 426, 289, 91, 91, 675, 675, 50, 50, 51, 51, + /* 990 */ 51, 51, 644, 49, 49, 49, 49, 48, 48, 47, + /* 1000 */ 47, 47, 46, 216, 1034, 444, 668, 667, 714, 713, /* 1010 */ 91, 453, 714, 713, 682, 641, 714, 713, 324, 202, - /* 1020 */ 53, 54, 426, 289, 446, 680, 675, 675, 51, 51, - /* 1030 */ 52, 52, 52, 52, 639, 50, 50, 50, 50, 49, - /* 1040 */ 49, 48, 48, 48, 47, 216, 605, 53, 54, 426, - /* 1050 */ 289, 716, 446, 675, 675, 51, 51, 52, 52, 52, - /* 1060 */ 52, 459, 50, 50, 50, 50, 49, 49, 48, 48, - /* 1070 */ 48, 47, 216, 453, 715, 37, 663, 423, 215, 460, - /* 1080 */ 341, 369, 592, 53, 54, 426, 289, 638, 89, 675, - /* 1090 */ 675, 51, 51, 52, 52, 52, 52, 31, 50, 50, - /* 1100 */ 50, 50, 49, 49, 48, 48, 48, 47, 216, 413, - /* 1110 */ 723, 2, 11, 53, 54, 426, 289, 34, 588, 675, - /* 1120 */ 675, 51, 51, 52, 52, 52, 52, 624, 50, 50, - /* 1130 */ 50, 50, 49, 49, 48, 48, 48, 47, 216, 515, - /* 1140 */ 715, 537, 29, 91, 342, 666, 140, 8, 571, 53, - /* 1150 */ 54, 426, 289, 714, 713, 675, 675, 51, 51, 52, - /* 1160 */ 52, 52, 52, 548, 50, 50, 50, 50, 49, 49, - /* 1170 */ 48, 48, 48, 47, 216, 91, 252, 234, 386, 53, - /* 1180 */ 54, 426, 289, 89, 271, 675, 675, 51, 51, 52, - /* 1190 */ 52, 52, 52, 333, 50, 50, 50, 50, 49, 49, - /* 1200 */ 48, 48, 48, 47, 216, 532, 81, 682, 696, 338, - /* 1210 */ 87, 53, 54, 426, 289, 22, 557, 675, 675, 51, - /* 1220 */ 51, 52, 52, 52, 52, 615, 50, 50, 50, 50, - /* 1230 */ 49, 49, 48, 48, 48, 47, 216, 682, 1109, 91, - /* 1240 */ 504, 716, 53, 54, 426, 289, 604, 137, 675, 675, - /* 1250 */ 51, 51, 52, 52, 52, 52, 136, 50, 50, 50, - /* 1260 */ 50, 49, 49, 48, 48, 48, 47, 216, 431, 1107, - /* 1270 */ 135, 488, 388, 722, 53, 54, 426, 289, 308, 425, - /* 1280 */ 675, 675, 51, 51, 52, 52, 52, 52, 620, 50, - /* 1290 */ 50, 50, 50, 49, 49, 48, 48, 48, 47, 216, - /* 1300 */ 428, 552, 624, 428, 283, 716, 411, 517, 404, 682, - /* 1310 */ 697, 69, 829, 430, 715, 715, 430, 715, 464, 540, - /* 1320 */ 653, 686, 186, 685, 686, 186, 99, 428, 42, 716, - /* 1330 */ 390, 715, 226, 223, 599, 539, 5, 534, 534, 682, - /* 1340 */ 430, 91, 91, 714, 713, 39, 40, 682, 686, 186, - /* 1350 */ 555, 431, 41, 620, 620, 403, 405, 598, 403, 387, - /* 1360 */ 4, 570, 425, 629, 311, 642, 428, 422, 326, 10, - /* 1370 */ 687, 429, 716, 624, 316, 690, 716, 316, 428, 430, - /* 1380 */ 716, 620, 642, 689, 688, 687, 715, 686, 186, 411, - /* 1390 */ 716, 430, 498, 596, 716, 632, 499, 602, 612, 686, - /* 1400 */ 186, 406, 491, 591, 285, 631, 685, 714, 713, 266, - /* 1410 */ 590, 42, 716, 365, 209, 589, 642, 350, 676, 9, - /* 1420 */ 642, 332, 715, 261, 107, 611, 530, 221, 39, 40, - /* 1430 */ 225, 714, 713, 399, 431, 41, 715, 716, 283, 351, - /* 1440 */ 316, 138, 716, 4, 270, 425, 209, 286, 642, 682, - /* 1450 */ 422, 715, 316, 714, 429, 716, 209, 530, 690, 716, - /* 1460 */ 715, 19, 561, 491, 716, 642, 689, 688, 687, 525, - /* 1470 */ 375, 65, 411, 519, 714, 713, 273, 475, 714, 713, - /* 1480 */ 64, 370, 714, 713, 619, 18, 525, 514, 129, 685, - /* 1490 */ 519, 479, 714, 713, 42, 716, 714, 713, 227, 642, - /* 1500 */ 428, 676, 9, 642, 514, 63, 286, 428, 479, 475, - /* 1510 */ 622, 39, 40, 430, 714, 713, 431, 718, 41, 715, - /* 1520 */ 430, 686, 181, 715, 279, 716, 4, 425, 686, 163, - /* 1530 */ 715, 642, 366, 422, 472, 156, 687, 429, 533, 714, - /* 1540 */ 713, 690, 125, 3, 714, 713, 416, 79, 642, 689, - /* 1550 */ 688, 687, 469, 85, 411, 258, 438, 714, 713, 220, - /* 1560 */ 26, 714, 713, 25, 706, 407, 714, 713, 715, 77, - /* 1570 */ 704, 685, 510, 438, 641, 516, 42, 715, 716, 472, - /* 1580 */ 353, 641, 642, 715, 676, 9, 642, 503, 1035, 428, - /* 1590 */ 625, 536, 505, 39, 40, 83, 119, 714, 713, 428, - /* 1600 */ 41, 621, 430, 497, 428, 420, 254, 62, 4, 1037, - /* 1610 */ 686, 172, 430, 642, 140, 422, 469, 430, 687, 429, - /* 1620 */ 686, 189, 152, 690, 337, 686, 187, 714, 713, 251, - /* 1630 */ 642, 689, 688, 687, 161, 54, 426, 289, 716, 558, - /* 1640 */ 675, 675, 51, 51, 52, 52, 52, 52, 478, 50, - /* 1650 */ 50, 50, 50, 49, 49, 48, 48, 48, 47, 216, - /* 1660 */ 431, 428, 455, 641, 642, 705, 676, 9, 642, 111, - /* 1670 */ 716, 425, 428, 641, 430, 428, 702, 454, 641, 428, - /* 1680 */ 714, 713, 686, 196, 207, 430, 428, 72, 430, 715, - /* 1690 */ 428, 436, 430, 686, 195, 716, 686, 197, 411, 430, - /* 1700 */ 686, 201, 716, 430, 428, 699, 428, 686, 232, 428, - /* 1710 */ 209, 686, 290, 96, 203, 685, 150, 430, 715, 430, - /* 1720 */ 42, 224, 430, 86, 319, 686, 190, 686, 194, 428, - /* 1730 */ 686, 193, 257, 82, 695, 641, 256, 39, 40, 318, - /* 1740 */ 714, 713, 430, 719, 41, 715, 641, 715, 149, 641, - /* 1750 */ 686, 185, 4, 641, 707, 679, 287, 642, 709, 422, - /* 1760 */ 641, 567, 687, 429, 641, 15, 428, 690, 715, 715, - /* 1770 */ 367, 428, 714, 713, 642, 689, 688, 687, 641, 430, - /* 1780 */ 641, 716, 703, 641, 430, 147, 287, 686, 188, 701, - /* 1790 */ 708, 328, 686, 314, 428, 432, 428, 714, 713, 715, - /* 1800 */ 700, 428, 145, 641, 714, 713, 408, 430, 642, 430, - /* 1810 */ 676, 9, 642, 428, 430, 686, 313, 686, 312, 715, - /* 1820 */ 428, 327, 686, 184, 684, 428, 430, 433, 494, 294, - /* 1830 */ 428, 637, 234, 430, 686, 171, 428, 651, 430, 17, - /* 1840 */ 641, 686, 170, 430, 715, 641, 686, 183, 293, 430, - /* 1850 */ 428, 686, 169, 626, 716, 400, 428, 686, 192, 292, - /* 1860 */ 428, 287, 291, 430, 28, 44, 715, 651, 641, 430, - /* 1870 */ 641, 686, 191, 430, 715, 641, 428, 686, 168, 428, - /* 1880 */ 402, 686, 167, 714, 713, 56, 716, 641, 683, 430, - /* 1890 */ 428, 216, 430, 428, 641, 428, 325, 686, 93, 641, - /* 1900 */ 686, 166, 716, 430, 641, 428, 430, 428, 430, 640, - /* 1910 */ 641, 686, 164, 66, 686, 174, 686, 173, 430, 716, - /* 1920 */ 430, 716, 428, 616, 641, 716, 686, 175, 686, 178, - /* 1930 */ 641, 229, 419, 214, 641, 430, 228, 415, 428, 716, - /* 1940 */ 35, 428, 651, 686, 94, 617, 716, 635, 141, 716, - /* 1950 */ 641, 430, 428, 641, 430, 428, 714, 713, 715, 686, - /* 1960 */ 177, 139, 686, 176, 641, 430, 108, 641, 430, 641, - /* 1970 */ 428, 133, 392, 686, 180, 716, 686, 179, 716, 641, - /* 1980 */ 716, 641, 531, 430, 715, 430, 716, 583, 714, 713, - /* 1990 */ 389, 686, 165, 686, 70, 393, 641, 716, 248, 716, - /* 2000 */ 541, 716, 481, 246, 714, 713, 380, 477, 715, 716, - /* 2010 */ 386, 715, 641, 578, 716, 641, 715, 716, 577, 716, - /* 2020 */ 330, 714, 713, 714, 713, 275, 641, 714, 713, 641, - /* 2030 */ 244, 716, 242, 502, 473, 527, 470, 277, 715, 523, - /* 2040 */ 574, 714, 713, 715, 641, 715, 641, 573, 714, 713, - /* 2050 */ 310, 714, 713, 236, 568, 549, 269, 322, 572, 554, - /* 2060 */ 518, 263, 529, 492, 547, 546, 715, 715, 715, 715, - /* 2070 */ 545, 489, 360, 347, 715, 544, 309, 714, 713, 128, - /* 2080 */ 714, 713, 714, 713, 442, 715, 715, 521, 714, 713, - /* 2090 */ 80, 127, 480, 427, 106, 284, 262, 715, 535, 714, - /* 2100 */ 713, 714, 713, 714, 713, 441, 715, 212, 715, 476, - /* 2110 */ 126, 714, 713, 443, 354, 648, 714, 713, 24, 714, - /* 2120 */ 713, 714, 713, 264, 253, 363, 526, 250, 474, 241, - /* 2130 */ 237, 238, 124, 714, 713, 78, 715, 715, 105, 123, - /* 2140 */ 715, 121, 715, 715, 715, 84, 513, 155, 104, 348, - /* 2150 */ 120, 493, 103, 345, 118, 76, 343, 117, 471, 116, - /* 2160 */ 463, 75, 652, 115, 114, 623, 74, 323, 73, 113, - /* 2170 */ 23, 451, 20, 449, 101, 445, 100, 112, 439, 520, - /* 2180 */ 162, 61, 655, 295, 669, 412, 278, 198, 665, 569, - /* 2190 */ 618, 522, 374, 305, 6, 628, 364, 681, 664, 654, - /* 2200 */ 260, 361, 211, 556, 409, 71, 296, 566, 560, 559, - /* 2210 */ 487, 81, 587, 1150, 46, 586, 1150, 1150, 1150, 1150, - /* 2220 */ 550, + /* 1020 */ 52, 53, 426, 289, 446, 680, 675, 675, 50, 50, + /* 1030 */ 51, 51, 51, 51, 639, 49, 49, 49, 49, 48, + /* 1040 */ 48, 47, 47, 47, 46, 216, 605, 52, 53, 426, + /* 1050 */ 289, 716, 446, 675, 675, 50, 50, 51, 51, 51, + /* 1060 */ 51, 459, 49, 49, 49, 49, 48, 48, 47, 47, + /* 1070 */ 47, 46, 216, 453, 715, 36, 663, 423, 215, 460, + /* 1080 */ 341, 369, 592, 52, 53, 426, 289, 638, 89, 675, + /* 1090 */ 675, 50, 50, 51, 51, 51, 51, 31, 49, 49, + /* 1100 */ 49, 49, 48, 48, 47, 47, 47, 46, 216, 413, + /* 1110 */ 723, 2, 11, 52, 53, 426, 289, 33, 588, 675, + /* 1120 */ 675, 50, 50, 51, 51, 51, 51, 624, 49, 49, + /* 1130 */ 49, 49, 48, 48, 47, 47, 47, 46, 216, 515, + /* 1140 */ 715, 537, 29, 91, 342, 666, 140, 136, 571, 52, + /* 1150 */ 53, 426, 289, 714, 713, 675, 675, 50, 50, 51, + /* 1160 */ 51, 51, 51, 548, 49, 49, 49, 49, 48, 48, + /* 1170 */ 47, 47, 47, 46, 216, 91, 716, 234, 386, 52, + /* 1180 */ 53, 426, 289, 338, 271, 675, 675, 50, 50, 51, + /* 1190 */ 51, 51, 51, 333, 49, 49, 49, 49, 48, 48, + /* 1200 */ 47, 47, 47, 46, 216, 532, 8, 517, 696, 87, + /* 1210 */ 137, 52, 53, 426, 289, 22, 557, 675, 675, 50, + /* 1220 */ 50, 51, 51, 51, 51, 135, 49, 49, 49, 49, + /* 1230 */ 48, 48, 47, 47, 47, 46, 216, 81, 1109, 91, + /* 1240 */ 716, 91, 52, 53, 426, 289, 615, 722, 675, 675, + /* 1250 */ 50, 50, 51, 51, 51, 51, 620, 49, 49, 49, + /* 1260 */ 49, 48, 48, 47, 47, 47, 46, 216, 604, 1107, + /* 1270 */ 99, 504, 390, 491, 52, 53, 426, 289, 714, 713, + /* 1280 */ 675, 675, 50, 50, 51, 51, 51, 51, 682, 49, + /* 1290 */ 49, 49, 49, 48, 48, 47, 47, 47, 46, 216, + /* 1300 */ 226, 52, 57, 426, 289, 599, 388, 675, 675, 50, + /* 1310 */ 50, 51, 51, 51, 51, 428, 49, 49, 49, 49, + /* 1320 */ 48, 48, 47, 47, 47, 46, 216, 431, 430, 5, + /* 1330 */ 10, 620, 620, 632, 491, 631, 686, 187, 425, 53, + /* 1340 */ 426, 289, 714, 713, 675, 675, 50, 50, 51, 51, + /* 1350 */ 51, 51, 716, 49, 49, 49, 49, 48, 48, 47, + /* 1360 */ 47, 47, 46, 216, 552, 411, 598, 107, 464, 591, + /* 1370 */ 403, 387, 428, 697, 69, 612, 611, 715, 428, 716, + /* 1380 */ 404, 715, 685, 716, 209, 430, 209, 41, 625, 316, + /* 1390 */ 682, 430, 596, 686, 187, 428, 223, 590, 539, 686, + /* 1400 */ 187, 653, 287, 716, 38, 39, 589, 225, 430, 718, + /* 1410 */ 431, 40, 620, 716, 91, 715, 686, 187, 252, 4, + /* 1420 */ 570, 425, 715, 19, 642, 89, 422, 403, 405, 687, + /* 1430 */ 429, 716, 624, 332, 690, 716, 428, 328, 716, 705, + /* 1440 */ 716, 642, 689, 688, 687, 715, 316, 266, 411, 430, + /* 1450 */ 561, 365, 316, 716, 714, 713, 602, 686, 187, 488, + /* 1460 */ 715, 829, 716, 375, 65, 685, 308, 682, 540, 406, + /* 1470 */ 41, 706, 285, 209, 273, 642, 475, 676, 9, 642, + /* 1480 */ 530, 714, 713, 651, 715, 714, 713, 38, 39, 64, + /* 1490 */ 18, 399, 370, 431, 40, 129, 716, 366, 326, 534, + /* 1500 */ 534, 63, 4, 270, 425, 714, 713, 642, 475, 422, + /* 1510 */ 316, 530, 687, 429, 716, 714, 713, 690, 279, 716, + /* 1520 */ 533, 716, 156, 624, 642, 689, 688, 687, 525, 716, + /* 1530 */ 125, 411, 519, 714, 713, 514, 715, 714, 713, 3, + /* 1540 */ 714, 713, 714, 713, 79, 525, 682, 85, 685, 519, + /* 1550 */ 479, 26, 514, 41, 25, 714, 713, 516, 642, 472, + /* 1560 */ 676, 9, 642, 716, 714, 713, 407, 479, 716, 682, + /* 1570 */ 38, 39, 353, 77, 286, 431, 510, 40, 283, 505, + /* 1580 */ 555, 428, 616, 503, 83, 4, 425, 715, 140, 351, + /* 1590 */ 642, 715, 422, 469, 430, 687, 429, 716, 714, 713, + /* 1600 */ 690, 716, 686, 192, 472, 428, 703, 642, 689, 688, + /* 1610 */ 687, 438, 428, 411, 497, 62, 714, 713, 430, 119, + /* 1620 */ 254, 714, 713, 714, 713, 430, 686, 181, 438, 704, + /* 1630 */ 685, 714, 713, 686, 163, 41, 251, 629, 311, 161, + /* 1640 */ 138, 642, 715, 676, 9, 642, 455, 1035, 682, 531, + /* 1650 */ 701, 702, 38, 39, 152, 641, 498, 469, 431, 40, + /* 1660 */ 499, 478, 699, 428, 715, 714, 713, 4, 1037, 425, + /* 1670 */ 714, 713, 642, 416, 422, 715, 430, 687, 429, 641, + /* 1680 */ 428, 350, 690, 619, 686, 172, 641, 494, 454, 642, + /* 1690 */ 689, 688, 687, 430, 111, 428, 411, 286, 337, 714, + /* 1700 */ 713, 686, 190, 714, 713, 621, 287, 72, 430, 428, + /* 1710 */ 715, 428, 436, 685, 209, 558, 686, 188, 41, 715, + /* 1720 */ 567, 287, 430, 642, 430, 676, 9, 642, 716, 96, + /* 1730 */ 686, 196, 686, 195, 715, 38, 39, 641, 716, 283, + /* 1740 */ 431, 327, 40, 716, 207, 428, 203, 319, 150, 428, + /* 1750 */ 4, 425, 715, 318, 641, 642, 325, 422, 430, 716, + /* 1760 */ 687, 429, 430, 719, 716, 690, 686, 197, 709, 641, + /* 1770 */ 686, 201, 642, 689, 688, 687, 428, 224, 411, 716, + /* 1780 */ 261, 716, 86, 641, 221, 641, 708, 651, 258, 430, + /* 1790 */ 428, 695, 220, 715, 428, 685, 420, 686, 232, 227, + /* 1800 */ 41, 715, 651, 430, 715, 433, 642, 430, 676, 9, + /* 1810 */ 642, 686, 290, 428, 707, 686, 191, 38, 39, 641, + /* 1820 */ 149, 147, 431, 641, 40, 257, 430, 82, 432, 256, + /* 1830 */ 714, 713, 4, 425, 686, 194, 679, 642, 715, 422, + /* 1840 */ 714, 713, 714, 429, 716, 714, 713, 690, 716, 715, + /* 1850 */ 641, 367, 428, 15, 642, 689, 688, 687, 428, 684, + /* 1860 */ 411, 714, 713, 700, 641, 430, 714, 713, 641, 145, + /* 1870 */ 17, 430, 476, 686, 193, 234, 521, 685, 294, 686, + /* 1880 */ 185, 714, 713, 714, 713, 293, 400, 641, 642, 428, + /* 1890 */ 676, 9, 642, 541, 428, 502, 292, 28, 529, 38, + /* 1900 */ 39, 474, 430, 291, 248, 408, 40, 430, 481, 428, + /* 1910 */ 686, 189, 55, 683, 4, 686, 314, 715, 715, 642, + /* 1920 */ 428, 422, 430, 463, 687, 429, 641, 428, 716, 690, + /* 1930 */ 686, 313, 641, 430, 402, 216, 642, 689, 688, 687, + /* 1940 */ 430, 686, 312, 428, 536, 428, 714, 713, 686, 184, + /* 1950 */ 714, 713, 43, 640, 419, 66, 430, 229, 430, 214, + /* 1960 */ 415, 228, 34, 641, 686, 171, 686, 170, 641, 637, + /* 1970 */ 642, 635, 676, 9, 642, 428, 141, 626, 428, 622, + /* 1980 */ 246, 139, 715, 641, 477, 428, 108, 389, 430, 428, + /* 1990 */ 715, 430, 715, 715, 641, 386, 686, 183, 430, 686, + /* 2000 */ 169, 641, 430, 380, 577, 471, 686, 186, 617, 244, + /* 2010 */ 686, 168, 428, 473, 133, 428, 242, 641, 330, 641, + /* 2020 */ 470, 715, 715, 583, 578, 430, 277, 715, 430, 715, + /* 2030 */ 714, 713, 428, 686, 167, 428, 686, 93, 574, 716, + /* 2040 */ 535, 573, 443, 572, 716, 430, 547, 128, 430, 641, + /* 2050 */ 310, 428, 641, 686, 166, 428, 686, 164, 428, 641, + /* 2060 */ 716, 236, 716, 641, 430, 322, 546, 716, 430, 428, + /* 2070 */ 393, 430, 686, 174, 715, 554, 686, 173, 309, 686, + /* 2080 */ 175, 716, 430, 715, 716, 275, 641, 716, 545, 641, + /* 2090 */ 686, 178, 428, 80, 428, 568, 716, 428, 715, 428, + /* 2100 */ 544, 716, 127, 106, 716, 430, 641, 430, 715, 641, + /* 2110 */ 430, 549, 430, 686, 94, 686, 177, 428, 686, 176, + /* 2120 */ 686, 180, 269, 428, 715, 641, 212, 392, 126, 641, + /* 2130 */ 430, 354, 641, 262, 24, 715, 430, 526, 686, 179, + /* 2140 */ 430, 714, 713, 641, 686, 165, 714, 713, 686, 70, + /* 2150 */ 124, 363, 78, 527, 123, 105, 121, 155, 523, 513, + /* 2160 */ 84, 104, 714, 713, 714, 713, 641, 348, 641, 714, + /* 2170 */ 713, 641, 263, 641, 518, 360, 492, 489, 120, 493, + /* 2180 */ 441, 480, 103, 714, 713, 715, 714, 713, 715, 714, + /* 2190 */ 713, 641, 648, 118, 345, 347, 76, 641, 714, 713, + /* 2200 */ 442, 641, 343, 714, 713, 427, 714, 713, 715, 284, + /* 2210 */ 264, 253, 117, 715, 250, 241, 75, 116, 715, 115, + /* 2220 */ 237, 74, 715, 715, 715, 73, 238, 715, 715, 114, + /* 2230 */ 323, 113, 23, 715, 451, 652, 20, 449, 101, 715, + /* 2240 */ 100, 445, 112, 61, 439, 162, 295, 669, 655, 623, + /* 2250 */ 412, 665, 520, 628, 618, 278, 569, 260, 198, 361, + /* 2260 */ 305, 374, 681, 522, 664, 6, 654, 556, 211, 45, + /* 2270 */ 364, 487, 566, 560, 296, 559, 409, 81, 71, 587, + /* 2280 */ 586, 550, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 4, 81, 82, 83, 84, 85, 86, 87, 4, 58, @@ -583,162 +589,168 @@ static const YYCODETYPE yy_lookahead[] = { /* 1110 */ 172, 173, 13, 62, 63, 64, 65, 159, 97, 68, /* 1120 */ 69, 70, 71, 72, 73, 74, 75, 177, 77, 78, /* 1130 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 97, - /* 1140 */ 190, 185, 104, 219, 260, 261, 104, 13, 97, 62, + /* 1140 */ 190, 185, 104, 219, 260, 261, 104, 97, 97, 62, /* 1150 */ 63, 64, 65, 106, 107, 68, 69, 70, 71, 72, /* 1160 */ 73, 74, 75, 116, 77, 78, 79, 80, 81, 82, - /* 1170 */ 83, 84, 85, 86, 87, 219, 97, 138, 139, 62, - /* 1180 */ 63, 64, 65, 104, 97, 68, 69, 70, 71, 72, + /* 1170 */ 83, 84, 85, 86, 87, 219, 4, 138, 139, 62, + /* 1180 */ 63, 64, 65, 25, 97, 68, 69, 70, 71, 72, /* 1190 */ 73, 74, 75, 243, 77, 78, 79, 80, 81, 82, - /* 1200 */ 83, 84, 85, 86, 87, 185, 55, 4, 197, 25, - /* 1210 */ 96, 62, 63, 64, 65, 98, 205, 68, 69, 70, - /* 1220 */ 71, 72, 73, 74, 75, 30, 77, 78, 79, 80, - /* 1230 */ 81, 82, 83, 84, 85, 86, 87, 4, 89, 219, - /* 1240 */ 89, 4, 62, 63, 64, 65, 144, 13, 68, 69, - /* 1250 */ 70, 71, 72, 73, 74, 75, 97, 77, 78, 79, - /* 1260 */ 80, 81, 82, 83, 84, 85, 86, 87, 4, 89, - /* 1270 */ 97, 97, 104, 89, 62, 63, 64, 65, 104, 15, - /* 1280 */ 68, 69, 70, 71, 72, 73, 74, 75, 191, 77, + /* 1200 */ 83, 84, 85, 86, 87, 185, 13, 185, 197, 96, + /* 1210 */ 13, 62, 63, 64, 65, 98, 205, 68, 69, 70, + /* 1220 */ 71, 72, 73, 74, 75, 97, 77, 78, 79, 80, + /* 1230 */ 81, 82, 83, 84, 85, 86, 87, 55, 89, 219, + /* 1240 */ 4, 219, 62, 63, 64, 65, 30, 89, 68, 69, + /* 1250 */ 70, 71, 72, 73, 74, 75, 191, 77, 78, 79, + /* 1260 */ 80, 81, 82, 83, 84, 85, 86, 87, 144, 89, + /* 1270 */ 99, 89, 99, 101, 62, 63, 64, 65, 106, 107, + /* 1280 */ 68, 69, 70, 71, 72, 73, 74, 75, 4, 77, /* 1290 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 1300 */ 177, 177, 177, 177, 177, 4, 42, 185, 185, 106, - /* 1310 */ 186, 187, 97, 190, 190, 190, 190, 190, 177, 104, - /* 1320 */ 117, 198, 199, 59, 198, 199, 99, 177, 64, 4, - /* 1330 */ 99, 190, 235, 209, 83, 211, 96, 100, 101, 106, - /* 1340 */ 190, 219, 219, 106, 107, 81, 82, 4, 198, 199, - /* 1350 */ 117, 4, 88, 191, 191, 232, 233, 97, 232, 233, - /* 1360 */ 96, 97, 15, 236, 237, 101, 177, 103, 243, 96, - /* 1370 */ 106, 107, 4, 177, 251, 111, 4, 251, 177, 190, - /* 1380 */ 4, 191, 118, 119, 120, 121, 190, 198, 199, 42, - /* 1390 */ 4, 190, 7, 135, 4, 201, 11, 235, 235, 198, - /* 1400 */ 199, 251, 101, 97, 254, 201, 59, 106, 107, 177, - /* 1410 */ 97, 64, 4, 181, 252, 97, 152, 32, 154, 155, - /* 1420 */ 156, 232, 190, 177, 17, 235, 101, 181, 81, 82, - /* 1430 */ 38, 106, 107, 232, 4, 88, 190, 4, 177, 243, - /* 1440 */ 251, 98, 4, 96, 97, 15, 252, 177, 101, 106, - /* 1450 */ 103, 190, 251, 106, 107, 4, 252, 132, 111, 4, - /* 1460 */ 190, 96, 6, 162, 4, 118, 119, 120, 121, 101, - /* 1470 */ 38, 96, 42, 101, 106, 107, 97, 101, 106, 107, - /* 1480 */ 96, 38, 106, 107, 141, 96, 118, 101, 115, 59, - /* 1490 */ 118, 101, 106, 107, 64, 4, 106, 107, 237, 152, - /* 1500 */ 177, 154, 155, 156, 118, 96, 177, 177, 118, 133, - /* 1510 */ 177, 81, 82, 190, 106, 107, 4, 177, 88, 190, - /* 1520 */ 190, 198, 199, 190, 129, 4, 96, 15, 198, 199, - /* 1530 */ 190, 101, 64, 103, 101, 98, 106, 107, 103, 106, - /* 1540 */ 107, 111, 123, 12, 106, 107, 276, 142, 118, 119, - /* 1550 */ 120, 121, 101, 128, 42, 177, 101, 106, 107, 181, - /* 1560 */ 71, 106, 107, 71, 177, 157, 106, 107, 190, 153, - /* 1570 */ 177, 59, 89, 118, 251, 139, 64, 190, 4, 146, - /* 1580 */ 22, 251, 152, 190, 154, 155, 156, 47, 158, 177, - /* 1590 */ 152, 100, 89, 81, 82, 39, 123, 106, 107, 177, - /* 1600 */ 88, 141, 190, 39, 177, 276, 161, 96, 96, 97, - /* 1610 */ 198, 199, 190, 101, 104, 103, 165, 190, 106, 107, - /* 1620 */ 198, 199, 143, 111, 37, 198, 199, 106, 107, 95, - /* 1630 */ 118, 119, 120, 121, 96, 63, 64, 65, 4, 118, - /* 1640 */ 68, 69, 70, 71, 72, 73, 74, 75, 103, 77, - /* 1650 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - /* 1660 */ 4, 177, 97, 251, 152, 91, 154, 155, 156, 93, - /* 1670 */ 4, 15, 177, 251, 190, 177, 177, 97, 251, 177, - /* 1680 */ 106, 107, 198, 199, 238, 190, 177, 95, 190, 190, - /* 1690 */ 177, 36, 190, 198, 199, 4, 198, 199, 42, 190, - /* 1700 */ 198, 199, 4, 190, 177, 177, 177, 198, 199, 177, - /* 1710 */ 252, 198, 199, 189, 273, 59, 90, 190, 190, 190, - /* 1720 */ 64, 204, 190, 204, 275, 198, 199, 198, 199, 177, - /* 1730 */ 198, 199, 177, 180, 177, 251, 181, 81, 82, 275, - /* 1740 */ 106, 107, 190, 176, 88, 190, 251, 190, 178, 251, - /* 1750 */ 198, 199, 96, 251, 49, 177, 177, 101, 176, 103, - /* 1760 */ 251, 127, 106, 107, 251, 104, 177, 111, 190, 190, - /* 1770 */ 60, 177, 106, 107, 118, 119, 120, 121, 251, 190, - /* 1780 */ 251, 4, 91, 251, 190, 178, 177, 198, 199, 91, - /* 1790 */ 176, 212, 198, 199, 177, 183, 177, 106, 107, 190, - /* 1800 */ 184, 177, 56, 251, 106, 107, 177, 190, 152, 190, - /* 1810 */ 154, 155, 156, 177, 190, 198, 199, 198, 199, 190, - /* 1820 */ 177, 212, 198, 199, 221, 177, 190, 176, 162, 227, - /* 1830 */ 177, 177, 138, 190, 198, 199, 177, 258, 190, 151, - /* 1840 */ 251, 198, 199, 190, 190, 251, 198, 199, 228, 190, - /* 1850 */ 177, 198, 199, 177, 4, 148, 177, 198, 199, 229, - /* 1860 */ 177, 177, 230, 190, 149, 252, 190, 258, 251, 190, - /* 1870 */ 251, 198, 199, 190, 190, 251, 177, 198, 199, 177, - /* 1880 */ 147, 198, 199, 106, 107, 150, 4, 251, 231, 190, - /* 1890 */ 177, 87, 190, 177, 251, 177, 212, 198, 199, 251, - /* 1900 */ 198, 199, 4, 190, 251, 177, 190, 177, 190, 64, - /* 1910 */ 251, 198, 199, 96, 198, 199, 198, 199, 190, 4, - /* 1920 */ 190, 4, 177, 146, 251, 4, 198, 199, 198, 199, - /* 1930 */ 251, 259, 203, 87, 251, 190, 255, 203, 177, 4, - /* 1940 */ 158, 177, 258, 198, 199, 177, 4, 241, 99, 4, - /* 1950 */ 251, 190, 177, 251, 190, 177, 106, 107, 190, 198, - /* 1960 */ 199, 241, 198, 199, 251, 190, 99, 251, 190, 251, - /* 1970 */ 177, 177, 177, 198, 199, 4, 198, 199, 4, 251, - /* 1980 */ 4, 251, 132, 190, 190, 190, 4, 200, 106, 107, - /* 1990 */ 223, 198, 199, 198, 199, 177, 251, 4, 177, 4, - /* 2000 */ 118, 4, 181, 177, 106, 107, 123, 181, 190, 4, - /* 2010 */ 139, 190, 251, 200, 4, 251, 190, 4, 208, 4, - /* 2020 */ 31, 106, 107, 106, 107, 177, 251, 106, 107, 251, - /* 2030 */ 177, 4, 177, 118, 181, 118, 181, 200, 190, 118, - /* 2040 */ 202, 106, 107, 190, 251, 190, 251, 122, 106, 107, - /* 2050 */ 203, 106, 107, 177, 177, 177, 177, 181, 200, 208, - /* 2060 */ 118, 177, 164, 118, 200, 200, 190, 190, 190, 190, - /* 2070 */ 200, 100, 177, 177, 190, 200, 203, 106, 107, 99, - /* 2080 */ 106, 107, 106, 107, 177, 190, 190, 152, 106, 107, - /* 2090 */ 180, 99, 118, 177, 180, 177, 264, 190, 241, 106, - /* 2100 */ 107, 106, 107, 106, 107, 100, 190, 241, 190, 133, - /* 2110 */ 99, 106, 107, 118, 27, 100, 106, 107, 158, 106, - /* 2120 */ 107, 106, 107, 177, 177, 265, 227, 177, 146, 177, - /* 2130 */ 177, 177, 99, 106, 107, 215, 190, 190, 62, 99, - /* 2140 */ 190, 99, 190, 190, 190, 96, 215, 250, 180, 241, - /* 2150 */ 99, 227, 180, 241, 99, 217, 60, 99, 165, 99, - /* 2160 */ 163, 217, 152, 99, 99, 152, 217, 241, 217, 99, - /* 2170 */ 268, 18, 268, 241, 99, 241, 99, 99, 16, 152, - /* 2180 */ 224, 270, 201, 226, 261, 256, 201, 210, 261, 206, - /* 2190 */ 242, 227, 202, 175, 224, 240, 263, 191, 191, 191, - /* 2200 */ 242, 242, 262, 191, 216, 239, 222, 207, 207, 207, - /* 2210 */ 274, 55, 198, 277, 253, 198, 277, 277, 277, 277, - /* 2220 */ 211, + /* 1300 */ 235, 62, 63, 64, 65, 83, 104, 68, 69, 70, + /* 1310 */ 71, 72, 73, 74, 75, 177, 77, 78, 79, 80, + /* 1320 */ 81, 82, 83, 84, 85, 86, 87, 4, 190, 96, + /* 1330 */ 96, 191, 191, 201, 162, 201, 198, 199, 15, 63, + /* 1340 */ 64, 65, 106, 107, 68, 69, 70, 71, 72, 73, + /* 1350 */ 74, 75, 4, 77, 78, 79, 80, 81, 82, 83, + /* 1360 */ 84, 85, 86, 87, 177, 42, 97, 17, 177, 97, + /* 1370 */ 232, 233, 177, 186, 187, 235, 235, 190, 177, 4, + /* 1380 */ 185, 190, 59, 4, 252, 190, 252, 64, 152, 251, + /* 1390 */ 106, 190, 135, 198, 199, 177, 209, 97, 211, 198, + /* 1400 */ 199, 117, 177, 4, 81, 82, 97, 38, 190, 177, + /* 1410 */ 4, 88, 191, 4, 219, 190, 198, 199, 97, 96, + /* 1420 */ 97, 15, 190, 96, 101, 104, 103, 232, 233, 106, + /* 1430 */ 107, 4, 177, 232, 111, 4, 177, 212, 4, 91, + /* 1440 */ 4, 118, 119, 120, 121, 190, 251, 177, 42, 190, + /* 1450 */ 6, 181, 251, 4, 106, 107, 235, 198, 199, 97, + /* 1460 */ 190, 97, 4, 38, 96, 59, 104, 4, 104, 251, + /* 1470 */ 64, 177, 254, 252, 97, 152, 101, 154, 155, 156, + /* 1480 */ 101, 106, 107, 258, 190, 106, 107, 81, 82, 96, + /* 1490 */ 96, 232, 38, 4, 88, 115, 4, 64, 243, 100, + /* 1500 */ 101, 96, 96, 97, 15, 106, 107, 101, 133, 103, + /* 1510 */ 251, 132, 106, 107, 4, 106, 107, 111, 129, 4, + /* 1520 */ 103, 4, 98, 177, 118, 119, 120, 121, 101, 4, + /* 1530 */ 123, 42, 101, 106, 107, 101, 190, 106, 107, 12, + /* 1540 */ 106, 107, 106, 107, 142, 118, 4, 128, 59, 118, + /* 1550 */ 101, 71, 118, 64, 71, 106, 107, 139, 152, 101, + /* 1560 */ 154, 155, 156, 4, 106, 107, 157, 118, 4, 106, + /* 1570 */ 81, 82, 22, 153, 177, 4, 89, 88, 177, 89, + /* 1580 */ 117, 177, 146, 47, 39, 96, 15, 190, 104, 243, + /* 1590 */ 101, 190, 103, 101, 190, 106, 107, 4, 106, 107, + /* 1600 */ 111, 4, 198, 199, 146, 177, 91, 118, 119, 120, + /* 1610 */ 121, 101, 177, 42, 39, 96, 106, 107, 190, 123, + /* 1620 */ 161, 106, 107, 106, 107, 190, 198, 199, 118, 177, + /* 1630 */ 59, 106, 107, 198, 199, 64, 95, 236, 237, 96, + /* 1640 */ 98, 152, 190, 154, 155, 156, 97, 158, 106, 132, + /* 1650 */ 91, 177, 81, 82, 143, 251, 7, 165, 4, 88, + /* 1660 */ 11, 103, 177, 177, 190, 106, 107, 96, 97, 15, + /* 1670 */ 106, 107, 101, 276, 103, 190, 190, 106, 107, 251, + /* 1680 */ 177, 32, 111, 141, 198, 199, 251, 162, 97, 118, + /* 1690 */ 119, 120, 121, 190, 93, 177, 42, 177, 37, 106, + /* 1700 */ 107, 198, 199, 106, 107, 141, 177, 95, 190, 177, + /* 1710 */ 190, 177, 36, 59, 252, 118, 198, 199, 64, 190, + /* 1720 */ 127, 177, 190, 152, 190, 154, 155, 156, 4, 189, + /* 1730 */ 198, 199, 198, 199, 190, 81, 82, 251, 4, 177, + /* 1740 */ 4, 212, 88, 4, 238, 177, 273, 275, 90, 177, + /* 1750 */ 96, 15, 190, 275, 251, 101, 212, 103, 190, 4, + /* 1760 */ 106, 107, 190, 176, 4, 111, 198, 199, 176, 251, + /* 1770 */ 198, 199, 118, 119, 120, 121, 177, 204, 42, 4, + /* 1780 */ 177, 4, 204, 251, 181, 251, 176, 258, 177, 190, + /* 1790 */ 177, 177, 181, 190, 177, 59, 276, 198, 199, 237, + /* 1800 */ 64, 190, 258, 190, 190, 176, 152, 190, 154, 155, + /* 1810 */ 156, 198, 199, 177, 49, 198, 199, 81, 82, 251, + /* 1820 */ 178, 178, 4, 251, 88, 177, 190, 180, 183, 181, + /* 1830 */ 106, 107, 96, 15, 198, 199, 177, 101, 190, 103, + /* 1840 */ 106, 107, 106, 107, 4, 106, 107, 111, 4, 190, + /* 1850 */ 251, 60, 177, 104, 118, 119, 120, 121, 177, 221, + /* 1860 */ 42, 106, 107, 184, 251, 190, 106, 107, 251, 56, + /* 1870 */ 151, 190, 133, 198, 199, 138, 152, 59, 227, 198, + /* 1880 */ 199, 106, 107, 106, 107, 228, 148, 251, 152, 177, + /* 1890 */ 154, 155, 156, 118, 177, 118, 229, 149, 164, 81, + /* 1900 */ 82, 146, 190, 230, 177, 177, 88, 190, 181, 177, + /* 1910 */ 198, 199, 150, 231, 96, 198, 199, 190, 190, 101, + /* 1920 */ 177, 103, 190, 163, 106, 107, 251, 177, 4, 111, + /* 1930 */ 198, 199, 251, 190, 147, 87, 118, 119, 120, 121, + /* 1940 */ 190, 198, 199, 177, 100, 177, 106, 107, 198, 199, + /* 1950 */ 106, 107, 252, 64, 203, 96, 190, 259, 190, 87, + /* 1960 */ 203, 255, 158, 251, 198, 199, 198, 199, 251, 177, + /* 1970 */ 152, 241, 154, 155, 156, 177, 99, 177, 177, 177, + /* 1980 */ 177, 241, 190, 251, 181, 177, 99, 223, 190, 177, + /* 1990 */ 190, 190, 190, 190, 251, 139, 198, 199, 190, 198, + /* 2000 */ 199, 251, 190, 123, 208, 165, 198, 199, 177, 177, + /* 2010 */ 198, 199, 177, 181, 177, 177, 177, 251, 31, 251, + /* 2020 */ 181, 190, 190, 200, 200, 190, 200, 190, 190, 190, + /* 2030 */ 106, 107, 177, 198, 199, 177, 198, 199, 202, 4, + /* 2040 */ 241, 122, 118, 200, 4, 190, 200, 99, 190, 251, + /* 2050 */ 203, 177, 251, 198, 199, 177, 198, 199, 177, 251, + /* 2060 */ 4, 177, 4, 251, 190, 181, 200, 4, 190, 177, + /* 2070 */ 177, 190, 198, 199, 190, 208, 198, 199, 203, 198, + /* 2080 */ 199, 4, 190, 190, 4, 177, 251, 4, 200, 251, + /* 2090 */ 198, 199, 177, 180, 177, 177, 4, 177, 190, 177, + /* 2100 */ 200, 4, 99, 180, 4, 190, 251, 190, 190, 251, + /* 2110 */ 190, 177, 190, 198, 199, 198, 199, 177, 198, 199, + /* 2120 */ 198, 199, 177, 177, 190, 251, 241, 177, 99, 251, + /* 2130 */ 190, 27, 251, 264, 158, 190, 190, 227, 198, 199, + /* 2140 */ 190, 106, 107, 251, 198, 199, 106, 107, 198, 199, + /* 2150 */ 99, 265, 215, 118, 99, 62, 99, 250, 118, 215, + /* 2160 */ 96, 180, 106, 107, 106, 107, 251, 241, 251, 106, + /* 2170 */ 107, 251, 177, 251, 118, 177, 118, 100, 99, 227, + /* 2180 */ 100, 118, 180, 106, 107, 190, 106, 107, 190, 106, + /* 2190 */ 107, 251, 100, 99, 241, 177, 217, 251, 106, 107, + /* 2200 */ 177, 251, 60, 106, 107, 177, 106, 107, 190, 177, + /* 2210 */ 177, 177, 99, 190, 177, 177, 217, 99, 190, 99, + /* 2220 */ 177, 217, 190, 190, 190, 217, 177, 190, 190, 99, + /* 2230 */ 241, 99, 268, 190, 18, 152, 268, 241, 99, 190, + /* 2240 */ 99, 241, 99, 270, 16, 224, 226, 261, 201, 152, + /* 2250 */ 256, 261, 152, 240, 242, 201, 206, 242, 210, 242, + /* 2260 */ 175, 202, 191, 227, 191, 224, 191, 191, 262, 253, + /* 2270 */ 263, 274, 207, 207, 222, 207, 216, 55, 239, 198, + /* 2280 */ 198, 211, }; #define YY_SHIFT_USE_DFLT (-81) #define YY_SHIFT_COUNT (434) #define YY_SHIFT_MIN (-80) -#define YY_SHIFT_MAX (2162) +#define YY_SHIFT_MAX (2228) static const short yy_shift_ofst[] = { - /* 0 */ 1184, -4, 201, 1151, 819, 1512, 1512, 689, 361, 1430, - /* 10 */ 1656, 1656, 770, 364, 364, 157, 81, 179, 1347, 1264, - /* 20 */ 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, - /* 30 */ 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, - /* 40 */ 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, - /* 50 */ 1656, 1656, 1656, 1656, 1656, 1656, 1656, 1656, 370, 798, - /* 60 */ 181, 370, 2010, 2010, 2010, 2010, 2010, 887, 887, 565, - /* 70 */ 277, 4, 1455, 1451, 1433, 1376, 1390, 1386, 1372, 1368, - /* 80 */ 1325, 448, 1237, 2013, 2013, 2027, 439, 2013, 2015, 2010, + /* 0 */ 1158, -4, 201, 1182, 819, 1571, 1571, 689, 361, 1489, + /* 10 */ 1654, 1654, 770, 364, 364, 157, 81, 179, 1406, 1323, + /* 20 */ 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, + /* 30 */ 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, + /* 40 */ 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1654, + /* 50 */ 1654, 1654, 1654, 1654, 1654, 1736, 1654, 1818, 370, 798, + /* 60 */ 181, 370, 2083, 2083, 2083, 2083, 2083, 887, 887, 565, + /* 70 */ 277, 4, 1510, 1492, 1458, 1375, 1449, 1434, 1431, 1427, + /* 80 */ 1379, 448, 1399, 2097, 2097, 2100, 439, 2097, 2092, 2083, /* 90 */ 565, 1039, 538, 538, 735, 84, 44, 171, 859, 775, - /* 100 */ 906, 773, 910, 636, 1301, 5, 450, 5, 443, 413, - /* 110 */ 185, 2005, 1995, 1997, 1993, 1982, 1976, 1974, 1971, 1945, - /* 120 */ 1666, 1942, 1935, 1921, 1917, 1915, 1898, 1850, 1491, 1882, - /* 130 */ 1047, 1634, 1521, 902, 140, 1343, 1343, 1777, 1460, 1343, - /* 140 */ 1438, 780, 1408, 349, 562, 216, 620, 1698, 1691, 1574, - /* 150 */ 90, 829, 829, 829, 872, 544, 2156, 2156, 2156, 2156, - /* 160 */ 2156, -81, -81, 459, 619, 619, 619, 619, 619, 619, + /* 100 */ 906, 773, 910, 636, 1172, 5, 450, 5, 443, 413, + /* 110 */ 185, 2080, 1924, 1760, 1840, 1755, 1739, 2063, 2077, 2058, + /* 120 */ 1525, 2056, 1724, 2040, 2035, 1777, 1734, 1517, 1844, 1775, + /* 130 */ 1047, 1593, 1597, 902, 140, 1542, 1542, 1436, 1564, 1542, + /* 140 */ 1236, 780, 1409, 349, 562, 216, 620, 1559, 1515, 1348, + /* 150 */ 90, 829, 829, 829, 872, 544, 2222, 2222, 2222, 2222, + /* 160 */ 2222, -81, -81, 459, 619, 619, 619, 619, 619, 619, /* 170 */ 619, 619, 619, 645, 327, 683, 1180, 1149, 1117, 1087, - /* 180 */ 1051, 1021, 985, 958, 916, 767, 1212, 1572, 509, 509, - /* 190 */ -60, -38, -38, -38, -38, -38, 578, -80, 314, 87, + /* 180 */ 1051, 1021, 985, 958, 916, 767, 1239, 1212, 1276, 509, + /* 190 */ 509, -60, -38, -38, -38, -38, 578, -80, 314, 87, /* 200 */ 87, 41, 155, 75, 58, 58, 58, -6, 186, 862, - /* 210 */ -47, 808, 1385, 1233, 1203, 206, 908, 424, 400, 25, - /* 220 */ 729, 729, 679, 1215, -2, 855, 729, 442, 346, 855, - /* 230 */ 750, 750, 187, -9, 169, 2162, 2078, 2077, 2075, 2153, - /* 240 */ 2153, 2070, 2065, 2096, 2064, 2096, 2060, 2096, 2058, 2096, - /* 250 */ 2055, 1710, 1688, 2051, 1710, 2076, 2049, 2042, 2040, 2076, - /* 260 */ 1688, 2033, 1960, 2087, 2011, 1710, 1992, 1710, 1980, 1817, - /* 270 */ 1883, 1883, 1883, 1883, 1989, 1817, 1883, 1925, 1883, 1989, - /* 280 */ 1883, 1883, 1871, 1867, 1849, 1782, 1817, 1846, 1817, 1845, - /* 290 */ 1804, 1735, 1733, 1715, 1707, 1688, 1694, 1746, 1661, 1710, - /* 300 */ 1705, 1705, 1626, 1626, 1626, 1626, -81, -81, -81, -81, + /* 210 */ -47, 808, 1649, 1463, 1284, 206, 908, 424, 400, 25, + /* 220 */ 729, 729, 679, 1364, -2, 855, 729, 442, 346, 855, + /* 230 */ 750, 750, 187, -9, 169, 2228, 2143, 2141, 2139, 2216, + /* 240 */ 2216, 2132, 2130, 2142, 2120, 2142, 2118, 2142, 2113, 2142, + /* 250 */ 2094, 1791, 1719, 2079, 1791, 2093, 2064, 2057, 2055, 2093, + /* 260 */ 1719, 2051, 1976, 2104, 2029, 1791, 2003, 1791, 1948, 1859, + /* 270 */ 1880, 1880, 1880, 1880, 1987, 1859, 1880, 1919, 1880, 1987, + /* 280 */ 1880, 1880, 1856, 1887, 1877, 1804, 1859, 1872, 1859, 1889, + /* 290 */ 1848, 1762, 1787, 1748, 1738, 1719, 1737, 1813, 1749, 1791, + /* 300 */ 1765, 1765, 1658, 1658, 1658, 1658, -81, -81, -81, -81, /* 310 */ -81, -81, -81, -81, -81, -81, 564, 79, 158, 45, - /* 320 */ 702, 243, -49, 398, 1174, 1079, 1042, 984, 788, 2, - /* 330 */ 471, -20, 758, 678, 344, 144, -44, 1655, 1587, 1576, - /* 340 */ 1592, 1580, 1565, 1545, 1538, 1479, 1534, 1511, 1473, 1445, - /* 350 */ 1564, 1510, 1556, 1540, 1558, 1503, 1483, 1436, 1416, 1492, - /* 360 */ 1489, 1425, 1405, 1531, 1419, 1437, 1435, 1468, 1395, 1373, - /* 370 */ 1409, 1443, 1389, 1384, 1379, 1375, 1432, 1456, 1365, 1392, - /* 380 */ 1407, 1318, 1313, 1306, 1168, 1258, 1273, 1260, 1240, 1168, - /* 390 */ 1251, 1231, 1227, 1102, 1173, 1159, 1195, 1234, 1114, 993, - /* 400 */ 1134, 1038, 1099, 993, 990, 937, 846, 895, 870, 848, + /* 320 */ 702, 243, -49, 398, 1362, 1321, 1042, 984, 788, 2, + /* 330 */ 471, -20, 758, 678, 344, 144, -44, 1676, 1661, 1601, + /* 340 */ 1612, 1591, 1549, 1558, 1543, 1511, 1541, 1519, 1496, 1459, + /* 350 */ 1575, 1484, 1545, 1536, 1550, 1490, 1487, 1418, 1420, 1483, + /* 360 */ 1480, 1419, 1402, 1527, 1407, 1424, 1417, 1433, 1389, 1380, + /* 370 */ 1405, 1454, 1394, 1393, 1377, 1368, 1425, 1444, 1327, 1369, + /* 380 */ 1350, 1309, 1300, 1272, 1202, 1257, 1234, 1269, 1233, 1202, + /* 390 */ 1222, 1173, 1171, 1124, 1128, 1050, 1216, 1197, 1113, 993, + /* 400 */ 1193, 1038, 1099, 993, 990, 937, 846, 895, 870, 848, /* 410 */ 867, 825, 757, 805, 675, 652, 571, 644, 625, 613, /* 420 */ 571, 438, 474, 421, 399, 406, 355, 362, 231, 225, /* 430 */ 166, 143, 63, -37, -61, @@ -746,40 +758,40 @@ static const short yy_shift_ofst[] = { #define YY_REDUCE_USE_DFLT (-100) #define YY_REDUCE_COUNT (315) #define YY_REDUCE_MIN (-99) -#define YY_REDUCE_MAX (2018) +#define YY_REDUCE_MAX (2085) static const short yy_reduce_ofst[] = { - /* 0 */ 615, 1123, 699, -99, 764, 1126, 189, 705, 1201, 1150, - /* 10 */ 1189, 261, 196, 884, 599, 1124, 1795, 1793, 1778, 1775, - /* 20 */ 1764, 1761, 1745, 1730, 1728, 1718, 1716, 1713, 1702, 1699, - /* 30 */ 1683, 1679, 1673, 1659, 1653, 1648, 1643, 1636, 1624, 1619, - /* 40 */ 1617, 1594, 1589, 1552, 1532, 1529, 1527, 1513, 1509, 1502, - /* 50 */ 1498, 1495, 1484, 1427, 1422, 1412, 1330, 1323, 490, 1127, - /* 60 */ 214, 769, 1684, 1609, 1579, 124, 67, 596, 175, 547, - /* 70 */ 1162, 1261, 1876, 1855, 1853, 1826, 1821, 1555, 1378, 1246, - /* 80 */ 1232, 1329, 203, 1196, 1125, 131, 347, 950, 1270, 195, - /* 90 */ 885, 265, 1204, 1194, 125, 377, 1011, 1954, 1953, 1916, - /* 100 */ 1654, 1654, 1952, 1950, 1947, 697, 1946, 11, 1654, 1918, - /* 110 */ 1916, 1907, 1654, 1654, 1654, 1654, 1654, 1654, 1654, 1896, - /* 120 */ 1654, 1654, 1895, 1654, 1654, 1884, 1654, 1654, 1654, 1879, - /* 130 */ 1878, 1877, 1848, 1818, 1794, 1190, 1163, 1768, 1333, 1097, - /* 140 */ 1676, 1654, 1629, 1578, 1557, 1528, 632, 1499, 1393, 1387, - /* 150 */ 1340, 1141, 666, 489, 938, 1122, 1020, 956, 924, 791, - /* 160 */ 763, 746, 205, 1458, 1458, 1458, 1458, 1458, 1458, 1458, - /* 170 */ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, - /* 180 */ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, - /* 190 */ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 2009, 2017, - /* 200 */ 2014, 1458, 1936, 1936, 2002, 2001, 2000, 1966, 1988, 1961, - /* 210 */ 1984, 1933, 1940, 2012, 2008, 2007, 2006, 1970, 2018, 1964, - /* 220 */ 1959, 1958, 1990, 1977, 1983, 1985, 1948, 1955, 1929, 1981, - /* 230 */ 1927, 1923, 1458, 1957, 1956, 1911, 1857, 1934, 1932, 1904, - /* 240 */ 1902, 1926, 1857, 1951, 1857, 1949, 1857, 1944, 1857, 1938, - /* 250 */ 1912, 1972, 1924, 1908, 1968, 1931, 1897, 1857, 1857, 1920, - /* 260 */ 1899, 1857, 1860, 1832, 1866, 1914, 1857, 1910, 1857, 1873, - /* 270 */ 1875, 1870, 1865, 1864, 1851, 1847, 1858, 1838, 1837, 1810, - /* 280 */ 1813, 1787, 1767, 1720, 1706, 1681, 1734, 1672, 1729, 1613, - /* 290 */ 1458, 1657, 1632, 1630, 1620, 1602, 1603, 1616, 1612, 1553, - /* 300 */ 1607, 1570, 1651, 1614, 1582, 1567, 1464, 1449, 1441, 1519, - /* 310 */ 1517, 1446, 1458, 1458, 1458, 1524, + /* 0 */ 615, 1195, 699, -99, 764, 1138, 189, 705, 1259, 1218, + /* 10 */ 1201, 261, 196, 884, 599, 1187, 1950, 1946, 1940, 1922, + /* 20 */ 1920, 1917, 1915, 1892, 1881, 1878, 1874, 1858, 1855, 1838, + /* 30 */ 1835, 1812, 1808, 1801, 1798, 1768, 1766, 1750, 1743, 1732, + /* 40 */ 1717, 1712, 1681, 1675, 1636, 1617, 1613, 1599, 1572, 1568, + /* 50 */ 1534, 1532, 1518, 1503, 1486, 1435, 1428, 1404, 490, 1401, + /* 60 */ 214, 769, 1544, 1529, 1225, 124, 67, 596, 175, 547, + /* 70 */ 1221, 1562, 1884, 1839, 1832, 1803, 1727, 1648, 1611, 1603, + /* 80 */ 1270, 1520, 203, 1346, 1255, 131, 347, 950, 1397, 195, + /* 90 */ 885, 265, 1134, 1132, 125, 377, 1011, 2049, 2043, 2028, + /* 100 */ 1792, 1792, 2038, 2037, 2034, 697, 2033, 11, 1792, 2032, + /* 110 */ 2028, 2023, 1792, 1792, 1792, 1792, 1792, 1792, 1792, 2018, + /* 120 */ 1792, 1792, 1998, 1792, 1792, 1995, 1792, 1792, 1792, 1945, + /* 130 */ 1934, 1918, 1908, 1893, 1837, 1141, 1140, 1831, 1802, 1065, + /* 140 */ 1800, 1792, 1728, 1659, 1614, 1485, 632, 1474, 1452, 1294, + /* 150 */ 1232, 1191, 666, 489, 938, 1022, 1020, 956, 924, 791, + /* 160 */ 763, 746, 205, 1462, 1462, 1462, 1462, 1462, 1462, 1462, + /* 170 */ 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, + /* 180 */ 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, + /* 190 */ 1462, 1462, 1462, 1462, 1462, 1462, 1462, 1462, 2070, 2082, + /* 200 */ 2081, 1462, 1997, 1997, 2068, 2066, 2065, 2039, 2060, 2016, + /* 210 */ 2052, 2007, 2006, 2076, 2075, 2073, 2071, 2041, 2085, 2036, + /* 220 */ 2017, 2015, 2059, 2048, 2050, 2054, 2012, 2013, 1994, 2047, + /* 230 */ 1990, 1986, 1462, 2020, 2021, 1973, 1799, 2000, 1996, 1968, + /* 240 */ 1964, 1989, 1799, 2008, 1799, 2004, 1799, 1999, 1799, 1979, + /* 250 */ 1953, 2002, 1952, 1926, 1981, 1944, 1907, 1799, 1799, 1937, + /* 260 */ 1910, 1799, 1886, 1869, 1885, 1923, 1799, 1913, 1799, 1875, + /* 270 */ 1900, 1888, 1866, 1846, 1867, 1847, 1843, 1836, 1826, 1796, + /* 280 */ 1824, 1823, 1764, 1740, 1730, 1706, 1757, 1698, 1751, 1700, + /* 290 */ 1462, 1682, 1673, 1667, 1657, 1651, 1638, 1679, 1645, 1647, + /* 300 */ 1643, 1642, 1629, 1610, 1592, 1587, 1478, 1472, 1473, 1578, + /* 310 */ 1573, 1506, 1462, 1462, 1462, 1540, }; static const YYACTIONTYPE yy_default[] = { /* 0 */ 729, 1037, 1142, 1142, 1026, 1026, 1026, 1142, 1026, 1026, @@ -787,7 +799,7 @@ static const YYACTIONTYPE yy_default[] = { /* 20 */ 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, /* 30 */ 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, /* 40 */ 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, - /* 50 */ 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1148, 894, + /* 50 */ 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1015, 1148, 894, /* 60 */ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 774, /* 70 */ 890, 900, 1148, 1148, 1148, 1148, 1148, 962, 949, 940, /* 80 */ 1148, 1148, 1148, 972, 972, 955, 842, 972, 1148, 1148, @@ -800,8 +812,8 @@ static const YYACTIONTYPE yy_default[] = { /* 150 */ 735, 1058, 1148, 1148, 729, 1142, 1142, 1142, 1142, 1142, /* 160 */ 1142, 1135, 880, 935, 906, 945, 933, 937, 1038, 1031, /* 170 */ 1032, 1030, 936, 1027, 1027, 1027, 1027, 1027, 1027, 1027, - /* 180 */ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 988, 1000, 987, - /* 190 */ 995, 1004, 1015, 999, 996, 990, 989, 991, 1148, 1148, + /* 180 */ 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 988, 1000, + /* 190 */ 987, 995, 1004, 999, 996, 990, 989, 991, 1148, 1148, /* 200 */ 1148, 992, 1148, 1148, 1148, 1148, 1148, 893, 1148, 1148, /* 210 */ 864, 1148, 1086, 1148, 1148, 776, 1148, 878, 738, 944, /* 220 */ 918, 918, 809, 833, 798, 928, 918, 908, 1033, 928, @@ -1447,7 +1459,7 @@ static const char *const yyRuleName[] = { /* 288 */ "exprx ::= RAISE LP raisetype COMMA nm RP", /* 289 */ "exprx ::= nm DOT", /* 290 */ "exprx ::= nm DOT nm DOT", - /* 291 */ "exprx ::= expr not_opt BETWEEN expr", + /* 291 */ "exprx ::= expr not_opt BETWEEN expr AND", /* 292 */ "exprx ::= CASE case_operand case_exprlist case_else", /* 293 */ "exprx ::= expr not_opt IN LP exprlist", /* 294 */ "exprx ::= expr not_opt IN ID_DB", @@ -2504,7 +2516,7 @@ static const struct { { 251, 6 }, { 251, 2 }, { 251, 4 }, - { 251, 4 }, + { 251, 5 }, { 251, 4 }, { 251, 5 }, { 251, 4 }, @@ -4359,12 +4371,12 @@ static void yy_reduce( parserContext->minorErrorBeforeNextToken("Syntax error"); } break; - case 291: /* exprx ::= expr not_opt BETWEEN expr */ + case 291: /* exprx ::= expr not_opt BETWEEN expr AND */ { yygotominor.yy490 = new SqliteExpr(); - delete yymsp[-2].minor.yy237; - delete yymsp[-3].minor.yy490; - delete yymsp[0].minor.yy490; + delete yymsp[-3].minor.yy237; + delete yymsp[-4].minor.yy490; + delete yymsp[-1].minor.yy490; objectForTokens = yygotominor.yy490; parserContext->minorErrorBeforeNextToken("Syntax error"); } diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y index 31a66a2..a249f6e 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y +++ b/SQLiteStudio3/coreSQLiteStudio/parser/sqlite3_parse.y @@ -1711,7 +1711,7 @@ exprx(X) ::= nm(N1) DOT nm(N2) DOT. { parserContext->minorErrorBeforeNextToken("Syntax error"); } exprx(X) ::= expr(E1) not_opt(N) BETWEEN - expr(E2). [BETWEEN] { + expr(E2) AND. { X = new SqliteExpr(); delete N; delete E1; diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp b/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp index 5e186dd..d3e05f1 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/parser/token.cpp @@ -434,40 +434,50 @@ bool TokenList::remove(Token::Type type) return true; } -void TokenList::trimLeft() +TokenList& TokenList::trimLeft() { while (size() > 0 && first()->isWhitespace()) removeFirst(); + + return *this; } -void TokenList::trimRight() +TokenList& TokenList::trimRight() { while (size() > 0 && last()->isWhitespace()) removeLast(); + + return *this; } -void TokenList::trim() +TokenList& TokenList::trim() { trimLeft(); trimRight(); + return *this; } -void TokenList::trimLeft(Token::Type type, const QString& alsoTrim) +TokenList& TokenList::trimLeft(Token::Type type, const QString& alsoTrim) { while (size() > 0 && (first()->isWhitespace() || (first()->type == type && first()->value == alsoTrim))) removeFirst(); + + return *this; } -void TokenList::trimRight(Token::Type type, const QString& alsoTrim) +TokenList& TokenList::trimRight(Token::Type type, const QString& alsoTrim) { while (size() > 0 && (last()->isWhitespace() || (last()->type == type && last()->value == alsoTrim))) removeLast(); + + return *this; } -void TokenList::trim(Token::Type type, const QString& alsoTrim) +TokenList& TokenList::trim(Token::Type type, const QString& alsoTrim) { trimLeft(type, alsoTrim); trimRight(type, alsoTrim); + return *this; } TokenList TokenList::filter(Token::Type type) const diff --git a/SQLiteStudio3/coreSQLiteStudio/parser/token.h b/SQLiteStudio3/coreSQLiteStudio/parser/token.h index 1090bd4..222ce1a 100644 --- a/SQLiteStudio3/coreSQLiteStudio/parser/token.h +++ b/SQLiteStudio3/coreSQLiteStudio/parser/token.h @@ -574,21 +574,21 @@ class API_EXPORT TokenList : public QList<TokenPtr> * * White-space tokens are tested with Token::isWhitespace(). */ - void trimLeft(); + TokenList &trimLeft(); /** * @brief Removes all white-space tokens from the end of the list. * * White-space tokens are tested with Token::isWhitespace(). */ - void trimRight(); + TokenList &trimRight(); /** * @brief Removes all white-space tokens from both the beginning and the end of the list. * * White-space tokens are tested with Token::isWhitespace(). */ - void trim(); + TokenList &trim(); /** * @brief Removes all tokens that match given criteria from the beginning of the list. @@ -598,7 +598,7 @@ class API_EXPORT TokenList : public QList<TokenPtr> * This method is an extension to the regular trimLeft(). It removes white-space tokens, * as well as tokens that are of given \p type and have given \p value (both conditions must be met). */ - void trimLeft(Token::Type type, const QString& alsoTrim); + TokenList &trimLeft(Token::Type type, const QString& alsoTrim); /** * @brief Removes all tokens that match given criteria from the end of the list. @@ -608,7 +608,7 @@ class API_EXPORT TokenList : public QList<TokenPtr> * This method is an extension to the regular trimRight(). It removes white-space tokens, * as well as tokens that are of given \p type and have given \p value (both conditions must be met). */ - void trimRight(Token::Type type, const QString& alsoTrim); + TokenList &trimRight(Token::Type type, const QString& alsoTrim); /** * @brief Removes all tokens that match given criteria from the beginning and the end of the list. @@ -618,7 +618,7 @@ class API_EXPORT TokenList : public QList<TokenPtr> * This method is an extension to the regular trim(). It removes white-space tokens, * as well as tokens that are of given \p type and have given \p value (both conditions must be met). */ - void trim(Token::Type type, const QString& alsoTrim); + TokenList &trim(Token::Type type, const QString& alsoTrim); /** * @brief Creates list of tokens from this list, letting through only tokens of given type. |
