added workaround for breaking change in sqlite build system for sqlite version 3.48.0

added tests for SQLITE_ENABLE_UPDATE_DELETE_LIMIT
This commit is contained in:
Joshua Wise
2025-01-17 22:03:08 -06:00
parent 10c07255cf
commit 292ef7adc0
3 changed files with 411 additions and 370 deletions
+1 -1
View File
@@ -83,7 +83,7 @@ echo "configuring amalgamation..."
sh configure > /dev/null || exit 1
echo "building amalgamation..."
make sqlite3.c > /dev/null || exit 1
make OPTIONS="$CFLAGS" sqlite3.c > /dev/null || exit 1
echo "copying amalgamation..."
cp sqlite3.c sqlite3.h sqlite3ext.h "$OUTPUT/" || exit 1
+386 -369
View File
@@ -28,6 +28,7 @@
#ifndef SQLITE_PRIVATE
# define SQLITE_PRIVATE static
#endif
#define SQLITE_UDL_CAPABLE_PARSER 1
/************** Begin file sqliteInt.h ***************************************/
/*
** 2001 September 15
@@ -173903,7 +173904,9 @@ SQLITE_PRIVATE void sqlite3WindowCodeStep(
/************** End of window.c **********************************************/
/************** Begin file parse.c *******************************************/
/* This file is automatically generated by Lemon from input grammar
** source file "parse.y".
** source file "parse.y" with these options:
**
** -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT
*/
/*
** 2001-09-15
@@ -174439,18 +174442,18 @@ typedef union {
#define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse;
#define sqlite3ParserCTX_STORE yypParser->pParse=pParse;
#define YYFALLBACK 1
#define YYNSTATE 583
#define YYNSTATE 587
#define YYNRULE 409
#define YYNRULE_WITH_ACTION 344
#define YYNTOKEN 186
#define YY_MAX_SHIFT 582
#define YY_MIN_SHIFTREDUCE 845
#define YY_MAX_SHIFTREDUCE 1253
#define YY_ERROR_ACTION 1254
#define YY_ACCEPT_ACTION 1255
#define YY_NO_ACTION 1256
#define YY_MIN_REDUCE 1257
#define YY_MAX_REDUCE 1665
#define YY_MAX_SHIFT 586
#define YY_MIN_SHIFTREDUCE 849
#define YY_MAX_SHIFTREDUCE 1257
#define YY_ERROR_ACTION 1258
#define YY_ACCEPT_ACTION 1259
#define YY_NO_ACTION 1260
#define YY_MIN_REDUCE 1261
#define YY_MAX_REDUCE 1669
#define YY_MIN_DSTRCTR 205
#define YY_MAX_DSTRCTR 319
/************* End control #defines *******************************************/
@@ -174537,227 +174540,227 @@ typedef union {
*********** Begin parsing tables **********************************************/
#define YY_ACTTAB_COUNT (2207)
static const YYACTIONTYPE yy_action[] = {
/* 0 */ 130, 127, 234, 282, 282, 1328, 576, 1307, 460, 289,
/* 10 */ 289, 576, 1622, 381, 576, 1328, 573, 576, 562, 413,
/* 20 */ 1300, 1542, 573, 481, 562, 524, 460, 459, 558, 82,
/* 30 */ 82, 983, 294, 375, 51, 51, 498, 61, 61, 984,
/* 40 */ 82, 82, 1577, 137, 138, 91, 7, 1228, 1228, 1063,
/* 50 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 413,
/* 60 */ 288, 288, 182, 288, 288, 481, 536, 288, 288, 130,
/* 70 */ 127, 234, 432, 573, 525, 562, 573, 557, 562, 1290,
/* 80 */ 573, 421, 562, 137, 138, 91, 559, 1228, 1228, 1063,
/* 90 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 296,
/* 100 */ 460, 398, 1249, 134, 134, 134, 134, 133, 133, 132,
/* 110 */ 132, 132, 131, 128, 451, 44, 1050, 1050, 1064, 1067,
/* 120 */ 1255, 1, 1, 582, 2, 1259, 581, 1174, 1259, 1174,
/* 130 */ 321, 413, 155, 321, 1584, 155, 379, 112, 498, 1341,
/* 140 */ 456, 299, 1341, 134, 134, 134, 134, 133, 133, 132,
/* 150 */ 132, 132, 131, 128, 451, 137, 138, 91, 1105, 1228,
/* 160 */ 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136,
/* 170 */ 136, 1204, 320, 567, 288, 288, 283, 288, 288, 523,
/* 180 */ 523, 1250, 139, 1541, 7, 214, 503, 573, 1169, 562,
/* 190 */ 573, 1054, 562, 136, 136, 136, 136, 129, 401, 547,
/* 200 */ 487, 1169, 245, 1568, 1169, 245, 133, 133, 132, 132,
/* 210 */ 132, 131, 128, 451, 261, 134, 134, 134, 134, 133,
/* 220 */ 133, 132, 132, 132, 131, 128, 451, 451, 1204, 1205,
/* 230 */ 1204, 130, 127, 234, 455, 413, 182, 455, 130, 127,
/* 0 */ 130, 127, 234, 282, 282, 1332, 580, 1311, 464, 289,
/* 10 */ 289, 580, 1626, 385, 580, 1332, 577, 580, 566, 417,
/* 20 */ 1304, 1546, 577, 485, 566, 528, 464, 463, 562, 82,
/* 30 */ 82, 987, 294, 379, 51, 51, 502, 61, 61, 988,
/* 40 */ 82, 82, 1581, 137, 138, 91, 7, 1232, 1232, 1067,
/* 50 */ 1070, 1057, 1057, 135, 135, 136, 136, 136, 136, 417,
/* 60 */ 288, 288, 182, 288, 288, 485, 540, 288, 288, 130,
/* 70 */ 127, 234, 436, 577, 529, 566, 577, 561, 566, 1294,
/* 80 */ 577, 425, 566, 137, 138, 91, 563, 1232, 1232, 1067,
/* 90 */ 1070, 1057, 1057, 135, 135, 136, 136, 136, 136, 296,
/* 100 */ 464, 402, 1253, 134, 134, 134, 134, 133, 133, 132,
/* 110 */ 132, 132, 131, 128, 455, 44, 1054, 1054, 1068, 1071,
/* 120 */ 1259, 1, 1, 586, 2, 1263, 585, 1178, 1263, 1178,
/* 130 */ 321, 417, 155, 321, 1588, 155, 383, 112, 502, 1345,
/* 140 */ 460, 299, 1345, 134, 134, 134, 134, 133, 133, 132,
/* 150 */ 132, 132, 131, 128, 455, 137, 138, 91, 1109, 1232,
/* 160 */ 1232, 1067, 1070, 1057, 1057, 135, 135, 136, 136, 136,
/* 170 */ 136, 1208, 320, 571, 288, 288, 283, 288, 288, 527,
/* 180 */ 527, 1254, 139, 1545, 7, 214, 507, 577, 1173, 566,
/* 190 */ 577, 1058, 566, 136, 136, 136, 136, 129, 405, 551,
/* 200 */ 491, 1173, 245, 1572, 1173, 245, 133, 133, 132, 132,
/* 210 */ 132, 131, 128, 455, 261, 134, 134, 134, 134, 133,
/* 220 */ 133, 132, 132, 132, 131, 128, 455, 455, 1208, 1209,
/* 230 */ 1208, 130, 127, 234, 459, 417, 182, 459, 130, 127,
/* 240 */ 234, 134, 134, 134, 134, 133, 133, 132, 132, 132,
/* 250 */ 131, 128, 451, 136, 136, 136, 136, 538, 576, 137,
/* 260 */ 138, 91, 261, 1228, 1228, 1063, 1066, 1053, 1053, 135,
/* 270 */ 135, 136, 136, 136, 136, 44, 472, 346, 1204, 472,
/* 280 */ 346, 51, 51, 418, 93, 157, 134, 134, 134, 134,
/* 290 */ 133, 133, 132, 132, 132, 131, 128, 451, 166, 363,
/* 250 */ 131, 128, 455, 136, 136, 136, 136, 542, 580, 137,
/* 260 */ 138, 91, 261, 1232, 1232, 1067, 1070, 1057, 1057, 135,
/* 270 */ 135, 136, 136, 136, 136, 44, 476, 350, 1208, 476,
/* 280 */ 350, 51, 51, 422, 93, 157, 134, 134, 134, 134,
/* 290 */ 133, 133, 132, 132, 132, 131, 128, 455, 166, 367,
/* 300 */ 298, 134, 134, 134, 134, 133, 133, 132, 132, 132,
/* 310 */ 131, 128, 451, 1293, 461, 1570, 423, 377, 275, 134,
/* 310 */ 131, 128, 455, 1297, 465, 1574, 427, 381, 275, 134,
/* 320 */ 134, 134, 134, 133, 133, 132, 132, 132, 131, 128,
/* 330 */ 451, 418, 320, 567, 1292, 1204, 1205, 1204, 257, 413,
/* 340 */ 483, 511, 508, 507, 94, 132, 132, 132, 131, 128,
/* 350 */ 451, 506, 1204, 548, 548, 388, 576, 384, 7, 413,
/* 360 */ 550, 229, 522, 137, 138, 91, 530, 1228, 1228, 1063,
/* 370 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 51,
/* 380 */ 51, 1582, 380, 137, 138, 91, 331, 1228, 1228, 1063,
/* 390 */ 1066, 1053, 1053, 135, 135, 136, 136, 136, 136, 320,
/* 400 */ 567, 288, 288, 320, 567, 1602, 582, 2, 1259, 1204,
/* 410 */ 1205, 1204, 1628, 321, 573, 155, 562, 576, 1511, 264,
/* 420 */ 231, 520, 1341, 134, 134, 134, 134, 133, 133, 132,
/* 430 */ 132, 132, 131, 128, 451, 519, 1511, 1513, 1333, 1333,
/* 440 */ 82, 82, 498, 134, 134, 134, 134, 133, 133, 132,
/* 450 */ 132, 132, 131, 128, 451, 1435, 257, 288, 288, 511,
/* 460 */ 508, 507, 944, 1568, 413, 1019, 1204, 943, 360, 506,
/* 470 */ 573, 1598, 562, 44, 575, 551, 551, 557, 1107, 1582,
/* 480 */ 544, 576, 1107, 40, 417, 245, 531, 1505, 137, 138,
/* 490 */ 91, 219, 1228, 1228, 1063, 1066, 1053, 1053, 135, 135,
/* 500 */ 136, 136, 136, 136, 81, 81, 1281, 1204, 413, 553,
/* 510 */ 1511, 48, 512, 448, 447, 493, 578, 455, 578, 344,
/* 520 */ 45, 1204, 1233, 1204, 1205, 1204, 428, 1235, 158, 882,
/* 530 */ 320, 567, 137, 138, 91, 1234, 1228, 1228, 1063, 1066,
/* 540 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 134, 134,
/* 550 */ 134, 134, 133, 133, 132, 132, 132, 131, 128, 451,
/* 560 */ 1236, 576, 1236, 329, 1204, 1205, 1204, 387, 492, 403,
/* 570 */ 1040, 382, 489, 123, 568, 1569, 4, 377, 1204, 1205,
/* 580 */ 1204, 570, 570, 570, 82, 82, 882, 1029, 1331, 1331,
/* 590 */ 571, 1028, 134, 134, 134, 134, 133, 133, 132, 132,
/* 600 */ 132, 131, 128, 451, 288, 288, 1281, 1204, 576, 423,
/* 610 */ 576, 1568, 413, 423, 452, 378, 886, 573, 1279, 562,
/* 620 */ 46, 557, 532, 1028, 1028, 1030, 565, 130, 127, 234,
/* 630 */ 556, 82, 82, 82, 82, 479, 137, 138, 91, 462,
/* 640 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136,
/* 650 */ 136, 136, 1188, 487, 1506, 1040, 413, 6, 1204, 50,
/* 660 */ 879, 121, 121, 948, 1204, 1205, 1204, 358, 557, 122,
/* 670 */ 316, 452, 577, 452, 535, 1204, 1028, 439, 303, 212,
/* 680 */ 137, 138, 91, 213, 1228, 1228, 1063, 1066, 1053, 1053,
/* 330 */ 455, 422, 320, 571, 1296, 1208, 1209, 1208, 257, 417,
/* 340 */ 487, 515, 512, 511, 94, 132, 132, 132, 131, 128,
/* 350 */ 455, 510, 1208, 552, 552, 392, 580, 388, 7, 417,
/* 360 */ 554, 229, 526, 137, 138, 91, 534, 1232, 1232, 1067,
/* 370 */ 1070, 1057, 1057, 135, 135, 136, 136, 136, 136, 51,
/* 380 */ 51, 1586, 384, 137, 138, 91, 331, 1232, 1232, 1067,
/* 390 */ 1070, 1057, 1057, 135, 135, 136, 136, 136, 136, 320,
/* 400 */ 571, 288, 288, 320, 571, 1606, 586, 2, 1263, 1208,
/* 410 */ 1209, 1208, 1632, 321, 577, 155, 566, 580, 1515, 264,
/* 420 */ 231, 524, 1345, 134, 134, 134, 134, 133, 133, 132,
/* 430 */ 132, 132, 131, 128, 455, 523, 1515, 1517, 1337, 1337,
/* 440 */ 82, 82, 502, 134, 134, 134, 134, 133, 133, 132,
/* 450 */ 132, 132, 131, 128, 455, 1439, 257, 288, 288, 515,
/* 460 */ 512, 511, 948, 1572, 417, 1023, 1208, 947, 364, 510,
/* 470 */ 577, 1602, 566, 44, 579, 555, 555, 561, 1111, 1586,
/* 480 */ 548, 580, 1111, 40, 421, 245, 535, 1509, 137, 138,
/* 490 */ 91, 219, 1232, 1232, 1067, 1070, 1057, 1057, 135, 135,
/* 500 */ 136, 136, 136, 136, 81, 81, 1285, 1208, 417, 557,
/* 510 */ 1515, 48, 516, 452, 451, 497, 582, 459, 582, 348,
/* 520 */ 45, 1208, 1237, 1208, 1209, 1208, 432, 1239, 158, 886,
/* 530 */ 320, 571, 137, 138, 91, 1238, 1232, 1232, 1067, 1070,
/* 540 */ 1057, 1057, 135, 135, 136, 136, 136, 136, 134, 134,
/* 550 */ 134, 134, 133, 133, 132, 132, 132, 131, 128, 455,
/* 560 */ 1240, 580, 1240, 329, 1208, 1209, 1208, 391, 496, 407,
/* 570 */ 1044, 386, 493, 123, 572, 1573, 4, 381, 1208, 1209,
/* 580 */ 1208, 574, 574, 574, 82, 82, 886, 1033, 1335, 1335,
/* 590 */ 575, 1032, 134, 134, 134, 134, 133, 133, 132, 132,
/* 600 */ 132, 131, 128, 455, 288, 288, 1285, 1208, 580, 427,
/* 610 */ 580, 1572, 417, 427, 456, 382, 890, 577, 1283, 566,
/* 620 */ 46, 561, 536, 1032, 1032, 1034, 569, 130, 127, 234,
/* 630 */ 560, 82, 82, 82, 82, 483, 137, 138, 91, 466,
/* 640 */ 1232, 1232, 1067, 1070, 1057, 1057, 135, 135, 136, 136,
/* 650 */ 136, 136, 1192, 491, 1510, 1044, 417, 6, 1208, 50,
/* 660 */ 883, 121, 121, 952, 1208, 1209, 1208, 362, 561, 122,
/* 670 */ 316, 456, 581, 456, 539, 1208, 1032, 443, 303, 212,
/* 680 */ 137, 138, 91, 213, 1232, 1232, 1067, 1070, 1057, 1057,
/* 690 */ 135, 135, 136, 136, 136, 136, 134, 134, 134, 134,
/* 700 */ 133, 133, 132, 132, 132, 131, 128, 451, 1028, 1028,
/* 710 */ 1030, 1031, 35, 288, 288, 1204, 1205, 1204, 1040, 1339,
/* 720 */ 533, 123, 568, 1569, 4, 377, 573, 1019, 562, 353,
/* 730 */ 1277, 356, 1204, 1205, 1204, 1029, 488, 1188, 571, 1028,
/* 700 */ 133, 133, 132, 132, 132, 131, 128, 455, 1032, 1032,
/* 710 */ 1034, 1035, 35, 288, 288, 1208, 1209, 1208, 1044, 1343,
/* 720 */ 537, 123, 572, 1573, 4, 381, 577, 1023, 566, 357,
/* 730 */ 1281, 360, 1208, 1209, 1208, 1033, 492, 1192, 575, 1032,
/* 740 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
/* 750 */ 128, 451, 576, 343, 288, 288, 449, 449, 449, 971,
/* 760 */ 413, 1627, 452, 911, 1187, 288, 288, 573, 464, 562,
/* 770 */ 238, 1028, 1028, 1030, 565, 82, 82, 498, 573, 411,
/* 780 */ 562, 344, 467, 332, 137, 138, 91, 197, 1228, 1228,
/* 790 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136,
/* 800 */ 1188, 528, 1169, 1040, 413, 1110, 1110, 495, 1041, 121,
/* 810 */ 121, 1204, 317, 540, 862, 1169, 1244, 122, 1169, 452,
/* 820 */ 577, 452, 1340, 198, 1028, 1204, 481, 526, 137, 138,
/* 830 */ 91, 560, 1228, 1228, 1063, 1066, 1053, 1053, 135, 135,
/* 750 */ 128, 455, 580, 347, 288, 288, 453, 453, 453, 975,
/* 760 */ 417, 1631, 456, 915, 1191, 288, 288, 577, 468, 566,
/* 770 */ 238, 1032, 1032, 1034, 569, 82, 82, 502, 577, 415,
/* 780 */ 566, 348, 471, 334, 137, 138, 91, 197, 1232, 1232,
/* 790 */ 1067, 1070, 1057, 1057, 135, 135, 136, 136, 136, 136,
/* 800 */ 1192, 532, 1173, 1044, 417, 1114, 1114, 499, 1045, 121,
/* 810 */ 121, 1208, 317, 544, 866, 1173, 1248, 122, 1173, 456,
/* 820 */ 581, 456, 1344, 198, 1032, 1208, 485, 530, 137, 138,
/* 830 */ 91, 564, 1232, 1232, 1067, 1070, 1057, 1057, 135, 135,
/* 840 */ 136, 136, 136, 136, 134, 134, 134, 134, 133, 133,
/* 850 */ 132, 132, 132, 131, 128, 451, 1028, 1028, 1030, 1031,
/* 860 */ 35, 1204, 288, 288, 1204, 477, 288, 288, 1204, 1205,
/* 870 */ 1204, 539, 481, 437, 470, 573, 1451, 562, 364, 573,
/* 880 */ 1153, 562, 1204, 1205, 1204, 1188, 5, 576, 134, 134,
/* 890 */ 134, 134, 133, 133, 132, 132, 132, 131, 128, 451,
/* 900 */ 221, 214, 302, 96, 1149, 1657, 232, 1657, 413, 392,
/* 910 */ 19, 19, 1024, 949, 406, 373, 1595, 1085, 1204, 1205,
/* 920 */ 1204, 1204, 1205, 1204, 1204, 426, 1149, 1658, 413, 1658,
/* 930 */ 1659, 399, 137, 138, 91, 3, 1228, 1228, 1063, 1066,
/* 940 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 304, 1311,
/* 950 */ 514, 1204, 137, 138, 91, 1498, 1228, 1228, 1063, 1066,
/* 960 */ 1053, 1053, 135, 135, 136, 136, 136, 136, 434, 131,
/* 970 */ 128, 451, 375, 1204, 274, 291, 372, 517, 367, 516,
/* 980 */ 262, 1204, 1205, 1204, 1147, 227, 363, 448, 447, 1435,
/* 990 */ 1568, 1310, 134, 134, 134, 134, 133, 133, 132, 132,
/* 1000 */ 132, 131, 128, 451, 1568, 576, 1147, 487, 1204, 1205,
/* 1010 */ 1204, 442, 134, 134, 134, 134, 133, 133, 132, 132,
/* 1020 */ 132, 131, 128, 451, 386, 576, 485, 576, 19, 19,
/* 1030 */ 1204, 1205, 1204, 1345, 1236, 970, 1236, 574, 47, 936,
/* 1040 */ 936, 473, 413, 431, 1552, 573, 1125, 562, 19, 19,
/* 1050 */ 19, 19, 49, 336, 850, 851, 852, 111, 1368, 315,
/* 1060 */ 429, 576, 413, 433, 341, 306, 137, 138, 91, 115,
/* 1070 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136,
/* 1080 */ 136, 136, 576, 1309, 82, 82, 137, 138, 91, 529,
/* 1090 */ 1228, 1228, 1063, 1066, 1053, 1053, 135, 135, 136, 136,
/* 1100 */ 136, 136, 1569, 222, 377, 19, 19, 305, 1126, 1169,
/* 1110 */ 398, 1148, 22, 22, 498, 333, 1569, 335, 377, 576,
/* 1120 */ 438, 445, 1169, 1127, 486, 1169, 134, 134, 134, 134,
/* 1130 */ 133, 133, 132, 132, 132, 131, 128, 451, 1128, 576,
/* 1140 */ 902, 576, 145, 145, 6, 576, 134, 134, 134, 134,
/* 1150 */ 133, 133, 132, 132, 132, 131, 128, 451, 214, 1336,
/* 1160 */ 922, 576, 19, 19, 19, 19, 1282, 419, 19, 19,
/* 1170 */ 923, 412, 515, 141, 576, 1169, 413, 206, 465, 207,
/* 1180 */ 903, 215, 1575, 552, 147, 147, 7, 227, 1169, 411,
/* 1190 */ 1250, 1169, 120, 307, 117, 307, 413, 66, 66, 334,
/* 1200 */ 137, 138, 91, 119, 1228, 1228, 1063, 1066, 1053, 1053,
/* 1210 */ 135, 135, 136, 136, 136, 136, 413, 285, 209, 969,
/* 1220 */ 137, 138, 91, 471, 1228, 1228, 1063, 1066, 1053, 1053,
/* 1230 */ 135, 135, 136, 136, 136, 136, 435, 10, 1450, 267,
/* 1240 */ 137, 126, 91, 1435, 1228, 1228, 1063, 1066, 1053, 1053,
/* 1250 */ 135, 135, 136, 136, 136, 136, 1435, 1435, 410, 409,
/* 850 */ 132, 132, 132, 131, 128, 455, 1032, 1032, 1034, 1035,
/* 860 */ 35, 1208, 288, 288, 1208, 481, 288, 288, 1208, 1209,
/* 870 */ 1208, 543, 485, 441, 474, 577, 1455, 566, 368, 577,
/* 880 */ 1157, 566, 1208, 1209, 1208, 1192, 5, 580, 134, 134,
/* 890 */ 134, 134, 133, 133, 132, 132, 132, 131, 128, 455,
/* 900 */ 221, 214, 302, 96, 1153, 1661, 232, 1661, 417, 396,
/* 910 */ 19, 19, 1028, 953, 410, 377, 1599, 1089, 1208, 1209,
/* 920 */ 1208, 1208, 1209, 1208, 1208, 430, 1153, 1662, 417, 1662,
/* 930 */ 1663, 403, 137, 138, 91, 3, 1232, 1232, 1067, 1070,
/* 940 */ 1057, 1057, 135, 135, 136, 136, 136, 136, 304, 1315,
/* 950 */ 518, 1208, 137, 138, 91, 1502, 1232, 1232, 1067, 1070,
/* 960 */ 1057, 1057, 135, 135, 136, 136, 136, 136, 438, 131,
/* 970 */ 128, 455, 379, 1208, 274, 291, 376, 521, 371, 520,
/* 980 */ 262, 1208, 1209, 1208, 1151, 227, 367, 452, 451, 1439,
/* 990 */ 1572, 1314, 134, 134, 134, 134, 133, 133, 132, 132,
/* 1000 */ 132, 131, 128, 455, 1572, 580, 1151, 491, 1208, 1209,
/* 1010 */ 1208, 446, 134, 134, 134, 134, 133, 133, 132, 132,
/* 1020 */ 132, 131, 128, 455, 390, 580, 489, 580, 19, 19,
/* 1030 */ 1208, 1209, 1208, 1349, 1240, 974, 1240, 578, 47, 940,
/* 1040 */ 940, 477, 417, 435, 1556, 577, 1129, 566, 19, 19,
/* 1050 */ 19, 19, 49, 340, 854, 855, 856, 111, 1372, 315,
/* 1060 */ 433, 580, 417, 437, 345, 306, 137, 138, 91, 115,
/* 1070 */ 1232, 1232, 1067, 1070, 1057, 1057, 135, 135, 136, 136,
/* 1080 */ 136, 136, 580, 1313, 82, 82, 137, 138, 91, 533,
/* 1090 */ 1232, 1232, 1067, 1070, 1057, 1057, 135, 135, 136, 136,
/* 1100 */ 136, 136, 1573, 222, 381, 19, 19, 305, 1130, 1173,
/* 1110 */ 402, 1152, 22, 22, 502, 337, 1573, 339, 381, 580,
/* 1120 */ 442, 449, 1173, 1131, 490, 1173, 134, 134, 134, 134,
/* 1130 */ 133, 133, 132, 132, 132, 131, 128, 455, 1132, 580,
/* 1140 */ 906, 580, 145, 145, 6, 580, 134, 134, 134, 134,
/* 1150 */ 133, 133, 132, 132, 132, 131, 128, 455, 214, 1340,
/* 1160 */ 926, 580, 19, 19, 19, 19, 1286, 423, 19, 19,
/* 1170 */ 927, 416, 519, 141, 580, 1173, 417, 206, 469, 207,
/* 1180 */ 907, 215, 1579, 556, 147, 147, 7, 227, 1173, 415,
/* 1190 */ 1254, 1173, 120, 307, 117, 307, 417, 66, 66, 338,
/* 1200 */ 137, 138, 91, 119, 1232, 1232, 1067, 1070, 1057, 1057,
/* 1210 */ 135, 135, 136, 136, 136, 136, 417, 285, 209, 973,
/* 1220 */ 137, 138, 91, 475, 1232, 1232, 1067, 1070, 1057, 1057,
/* 1230 */ 135, 135, 136, 136, 136, 136, 439, 10, 1454, 267,
/* 1240 */ 137, 126, 91, 1439, 1232, 1232, 1067, 1070, 1057, 1057,
/* 1250 */ 135, 135, 136, 136, 136, 136, 1439, 1439, 414, 413,
/* 1260 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
/* 1270 */ 128, 451, 576, 969, 576, 1224, 498, 373, 1595, 1554,
/* 1270 */ 128, 455, 580, 973, 580, 1228, 502, 377, 1599, 1558,
/* 1280 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
/* 1290 */ 128, 451, 532, 457, 576, 82, 82, 82, 82, 111,
/* 1290 */ 128, 455, 536, 461, 580, 82, 82, 82, 82, 111,
/* 1300 */ 134, 134, 134, 134, 133, 133, 132, 132, 132, 131,
/* 1310 */ 128, 451, 109, 233, 430, 1576, 546, 67, 67, 7,
/* 1320 */ 413, 351, 550, 1550, 260, 259, 258, 494, 443, 569,
/* 1330 */ 419, 983, 446, 1224, 450, 545, 1207, 576, 969, 984,
/* 1340 */ 413, 475, 1449, 1574, 1180, 138, 91, 7, 1228, 1228,
/* 1350 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136,
/* 1360 */ 21, 21, 267, 576, 300, 1126, 91, 233, 1228, 1228,
/* 1370 */ 1063, 1066, 1053, 1053, 135, 135, 136, 136, 136, 136,
/* 1380 */ 1127, 373, 1595, 161, 1573, 16, 53, 53, 7, 108,
/* 1390 */ 533, 38, 969, 125, 1207, 1128, 1180, 576, 1224, 123,
/* 1400 */ 568, 893, 4, 324, 134, 134, 134, 134, 133, 133,
/* 1410 */ 132, 132, 132, 131, 128, 451, 571, 564, 534, 576,
/* 1420 */ 68, 68, 576, 39, 134, 134, 134, 134, 133, 133,
/* 1430 */ 132, 132, 132, 131, 128, 451, 576, 160, 1571, 1223,
/* 1440 */ 452, 576, 54, 54, 576, 69, 69, 576, 1366, 576,
/* 1450 */ 420, 184, 565, 463, 297, 576, 1224, 463, 297, 70,
/* 1460 */ 70, 576, 44, 474, 71, 71, 576, 72, 72, 576,
/* 1470 */ 73, 73, 55, 55, 411, 874, 242, 576, 56, 56,
/* 1480 */ 576, 1040, 576, 478, 57, 57, 576, 121, 121, 59,
/* 1490 */ 59, 23, 60, 60, 411, 122, 319, 452, 577, 452,
/* 1500 */ 74, 74, 1028, 75, 75, 76, 76, 411, 290, 20,
/* 1510 */ 20, 108, 287, 231, 553, 123, 568, 325, 4, 320,
/* 1520 */ 567, 97, 218, 944, 1144, 328, 400, 576, 943, 576,
/* 1530 */ 1380, 424, 571, 874, 1028, 1028, 1030, 1031, 35, 293,
/* 1540 */ 534, 576, 1104, 576, 1104, 9, 576, 342, 576, 111,
/* 1550 */ 77, 77, 143, 143, 576, 205, 452, 222, 1379, 889,
/* 1560 */ 576, 901, 900, 1188, 144, 144, 78, 78, 565, 62,
/* 1570 */ 62, 79, 79, 323, 1021, 576, 266, 63, 63, 908,
/* 1580 */ 909, 1589, 542, 80, 80, 576, 371, 541, 123, 568,
/* 1590 */ 480, 4, 266, 482, 244, 266, 370, 1040, 64, 64,
/* 1600 */ 576, 466, 576, 121, 121, 571, 1557, 576, 170, 170,
/* 1610 */ 576, 122, 576, 452, 577, 452, 576, 889, 1028, 576,
/* 1620 */ 165, 576, 111, 171, 171, 87, 87, 337, 1616, 452,
/* 1630 */ 65, 65, 1530, 83, 83, 146, 146, 986, 987, 84,
/* 1640 */ 84, 565, 168, 168, 148, 148, 1092, 347, 1032, 111,
/* 1650 */ 1028, 1028, 1030, 1031, 35, 542, 1103, 576, 1103, 576,
/* 1660 */ 543, 123, 568, 504, 4, 263, 576, 361, 1529, 111,
/* 1670 */ 1040, 1088, 576, 263, 576, 490, 121, 121, 571, 1188,
/* 1680 */ 142, 142, 169, 169, 122, 576, 452, 577, 452, 162,
/* 1690 */ 162, 1028, 576, 563, 576, 152, 152, 151, 151, 348,
/* 1700 */ 1376, 974, 452, 266, 1092, 942, 1032, 125, 149, 149,
/* 1710 */ 939, 576, 125, 576, 565, 150, 150, 86, 86, 872,
/* 1720 */ 352, 159, 576, 1028, 1028, 1030, 1031, 35, 542, 941,
/* 1730 */ 576, 125, 355, 541, 88, 88, 85, 85, 357, 359,
/* 1740 */ 1324, 1308, 366, 1040, 376, 52, 52, 499, 1389, 121,
/* 1750 */ 121, 1434, 1188, 58, 58, 1362, 1374, 122, 1439, 452,
/* 1760 */ 577, 452, 1289, 167, 1028, 1280, 280, 1268, 1267, 1269,
/* 1770 */ 1609, 1359, 312, 313, 12, 314, 397, 1421, 224, 1416,
/* 1780 */ 295, 237, 1409, 339, 340, 1426, 301, 345, 484, 228,
/* 1790 */ 1371, 1307, 1372, 1370, 1425, 404, 1028, 1028, 1030, 1031,
/* 1800 */ 35, 1601, 1192, 454, 509, 369, 292, 1502, 210, 1501,
/* 1810 */ 1369, 396, 396, 395, 277, 393, 211, 566, 859, 1612,
/* 1820 */ 1244, 123, 568, 391, 4, 1188, 223, 270, 1549, 1547,
/* 1830 */ 1241, 239, 186, 327, 422, 96, 195, 220, 571, 235,
/* 1840 */ 180, 326, 188, 468, 190, 1507, 191, 192, 92, 193,
/* 1850 */ 469, 95, 1422, 13, 502, 247, 1430, 109, 199, 402,
/* 1860 */ 476, 405, 452, 1496, 1428, 1427, 14, 491, 251, 102,
/* 1870 */ 497, 1518, 241, 281, 565, 253, 203, 354, 500, 254,
/* 1880 */ 175, 1270, 407, 43, 350, 518, 1327, 436, 255, 1326,
/* 1890 */ 1325, 1318, 104, 893, 1626, 229, 408, 440, 1625, 441,
/* 1900 */ 240, 310, 1296, 1040, 311, 1317, 527, 1594, 1297, 121,
/* 1910 */ 121, 368, 1295, 1624, 268, 269, 1580, 122, 1579, 452,
/* 1920 */ 577, 452, 374, 444, 1028, 1394, 1393, 140, 553, 90,
/* 1930 */ 568, 11, 4, 1483, 383, 414, 385, 110, 116, 216,
/* 1940 */ 320, 567, 1350, 555, 42, 318, 571, 537, 1349, 389,
/* 1950 */ 390, 579, 1198, 276, 279, 278, 1028, 1028, 1030, 1031,
/* 1960 */ 35, 580, 415, 1265, 458, 1260, 416, 185, 1534, 172,
/* 1970 */ 452, 1535, 173, 156, 308, 846, 1533, 1532, 453, 217,
/* 1980 */ 225, 89, 565, 174, 322, 1188, 226, 236, 1102, 154,
/* 1990 */ 1100, 330, 176, 187, 1223, 189, 925, 338, 243, 1116,
/* 2000 */ 246, 194, 177, 178, 425, 427, 98, 99, 196, 100,
/* 2010 */ 101, 1040, 179, 1119, 248, 1115, 249, 121, 121, 24,
/* 2020 */ 163, 250, 349, 1108, 266, 122, 1238, 452, 577, 452,
/* 2030 */ 1192, 454, 1028, 200, 292, 496, 252, 201, 861, 396,
/* 2040 */ 396, 395, 277, 393, 15, 501, 859, 370, 292, 256,
/* 2050 */ 202, 554, 505, 396, 396, 395, 277, 393, 103, 239,
/* 2060 */ 859, 327, 25, 26, 1028, 1028, 1030, 1031, 35, 326,
/* 2070 */ 362, 510, 891, 239, 365, 327, 513, 904, 105, 309,
/* 2080 */ 164, 181, 27, 326, 106, 521, 107, 1185, 1069, 1155,
/* 2090 */ 17, 1154, 284, 1188, 286, 978, 265, 204, 125, 1171,
/* 2100 */ 241, 230, 972, 1175, 28, 1160, 29, 1179, 175, 1173,
/* 2110 */ 30, 43, 31, 1178, 241, 32, 41, 549, 8, 33,
/* 2120 */ 208, 111, 175, 1083, 1070, 43, 113, 1068, 240, 114,
/* 2130 */ 1072, 34, 1073, 561, 1124, 118, 271, 36, 18, 1194,
/* 2140 */ 1033, 873, 240, 935, 124, 37, 272, 273, 1617, 572,
/* 2150 */ 183, 153, 394, 1193, 1256, 1256, 1256, 1256, 1256, 1256,
/* 2160 */ 1256, 1256, 1256, 414, 1256, 1256, 1256, 1256, 320, 567,
/* 2170 */ 1256, 1256, 1256, 1256, 1256, 1256, 1256, 414, 1256, 1256,
/* 2180 */ 1256, 1256, 320, 567, 1256, 1256, 1256, 1256, 1256, 1256,
/* 2190 */ 1256, 1256, 458, 1256, 1256, 1256, 1256, 1256, 1256, 1256,
/* 2200 */ 1256, 1256, 1256, 1256, 1256, 1256, 458,
/* 1310 */ 128, 455, 109, 233, 434, 1580, 550, 67, 67, 7,
/* 1320 */ 417, 355, 554, 1554, 260, 259, 258, 498, 447, 573,
/* 1330 */ 423, 987, 450, 1228, 454, 549, 1211, 580, 973, 988,
/* 1340 */ 417, 479, 1453, 1578, 1184, 138, 91, 7, 1232, 1232,
/* 1350 */ 1067, 1070, 1057, 1057, 135, 135, 136, 136, 136, 136,
/* 1360 */ 21, 21, 267, 580, 300, 1130, 91, 233, 1232, 1232,
/* 1370 */ 1067, 1070, 1057, 1057, 135, 135, 136, 136, 136, 136,
/* 1380 */ 1131, 377, 1599, 161, 1577, 16, 53, 53, 7, 108,
/* 1390 */ 537, 38, 973, 125, 1211, 1132, 1184, 580, 1228, 123,
/* 1400 */ 572, 897, 4, 324, 134, 134, 134, 134, 133, 133,
/* 1410 */ 132, 132, 132, 131, 128, 455, 575, 568, 538, 580,
/* 1420 */ 68, 68, 580, 39, 134, 134, 134, 134, 133, 133,
/* 1430 */ 132, 132, 132, 131, 128, 455, 580, 160, 1575, 1227,
/* 1440 */ 456, 580, 54, 54, 580, 69, 69, 580, 1370, 580,
/* 1450 */ 424, 184, 569, 467, 297, 580, 1228, 467, 297, 70,
/* 1460 */ 70, 580, 44, 478, 71, 71, 580, 72, 72, 580,
/* 1470 */ 73, 73, 55, 55, 415, 878, 242, 580, 56, 56,
/* 1480 */ 580, 1044, 580, 482, 57, 57, 580, 121, 121, 59,
/* 1490 */ 59, 23, 60, 60, 415, 122, 319, 456, 581, 456,
/* 1500 */ 74, 74, 1032, 75, 75, 76, 76, 415, 290, 20,
/* 1510 */ 20, 108, 287, 231, 557, 123, 572, 325, 4, 320,
/* 1520 */ 571, 97, 218, 948, 1148, 328, 404, 580, 947, 580,
/* 1530 */ 1384, 428, 575, 878, 1032, 1032, 1034, 1035, 35, 293,
/* 1540 */ 538, 580, 1108, 580, 1108, 9, 580, 346, 580, 111,
/* 1550 */ 77, 77, 143, 143, 580, 205, 456, 222, 1383, 893,
/* 1560 */ 580, 905, 904, 1192, 144, 144, 78, 78, 569, 62,
/* 1570 */ 62, 79, 79, 323, 1025, 580, 266, 63, 63, 912,
/* 1580 */ 913, 1593, 546, 80, 80, 580, 375, 545, 123, 572,
/* 1590 */ 484, 4, 266, 486, 244, 266, 374, 1044, 64, 64,
/* 1600 */ 580, 470, 580, 121, 121, 575, 1561, 580, 170, 170,
/* 1610 */ 580, 122, 580, 456, 581, 456, 580, 893, 1032, 580,
/* 1620 */ 165, 580, 111, 171, 171, 87, 87, 341, 1620, 456,
/* 1630 */ 65, 65, 1534, 83, 83, 146, 146, 990, 991, 84,
/* 1640 */ 84, 569, 168, 168, 148, 148, 1096, 351, 1036, 111,
/* 1650 */ 1032, 1032, 1034, 1035, 35, 546, 1107, 580, 1107, 580,
/* 1660 */ 547, 123, 572, 508, 4, 263, 580, 365, 1533, 111,
/* 1670 */ 1044, 1092, 580, 263, 580, 494, 121, 121, 575, 1192,
/* 1680 */ 142, 142, 169, 169, 122, 580, 456, 581, 456, 162,
/* 1690 */ 162, 1032, 580, 567, 580, 152, 152, 151, 151, 352,
/* 1700 */ 1380, 978, 456, 266, 1096, 946, 1036, 125, 149, 149,
/* 1710 */ 943, 580, 125, 580, 569, 150, 150, 86, 86, 876,
/* 1720 */ 356, 159, 580, 1032, 1032, 1034, 1035, 35, 546, 945,
/* 1730 */ 580, 125, 359, 545, 88, 88, 85, 85, 361, 363,
/* 1740 */ 1328, 1312, 370, 1044, 380, 52, 52, 503, 1393, 121,
/* 1750 */ 121, 1438, 1192, 58, 58, 1366, 1378, 122, 1443, 456,
/* 1760 */ 581, 456, 1293, 167, 1032, 1284, 280, 1272, 1271, 1273,
/* 1770 */ 1613, 1363, 312, 313, 12, 314, 401, 1425, 224, 333,
/* 1780 */ 295, 237, 336, 343, 344, 1430, 301, 349, 488, 228,
/* 1790 */ 1375, 1311, 1376, 1374, 1429, 408, 1032, 1032, 1034, 1035,
/* 1800 */ 35, 1605, 1196, 458, 513, 373, 292, 1506, 210, 1505,
/* 1810 */ 1373, 400, 400, 399, 277, 397, 211, 570, 863, 1616,
/* 1820 */ 1248, 123, 572, 395, 4, 1192, 223, 270, 1553, 1551,
/* 1830 */ 1245, 239, 186, 327, 426, 96, 195, 220, 575, 235,
/* 1840 */ 140, 326, 1420, 557, 332, 1511, 180, 188, 92, 1413,
/* 1850 */ 335, 95, 1426, 13, 472, 190, 191, 192, 193, 473,
/* 1860 */ 506, 247, 456, 109, 1432, 14, 1431, 1434, 406, 199,
/* 1870 */ 480, 495, 241, 409, 569, 251, 1500, 102, 501, 253,
/* 1880 */ 175, 281, 203, 43, 504, 358, 411, 1522, 254, 255,
/* 1890 */ 354, 1274, 522, 1331, 440, 1330, 1329, 1322, 104, 897,
/* 1900 */ 240, 1321, 229, 1044, 444, 445, 1630, 448, 531, 121,
/* 1910 */ 121, 1598, 268, 1301, 412, 310, 1300, 122, 1629, 456,
/* 1920 */ 581, 456, 372, 1299, 1032, 311, 1628, 378, 1584, 90,
/* 1930 */ 572, 269, 4, 1583, 1398, 418, 11, 116, 1397, 1487,
/* 1940 */ 320, 571, 389, 559, 318, 110, 575, 541, 216, 1354,
/* 1950 */ 387, 42, 1353, 583, 1202, 394, 1032, 1032, 1034, 1035,
/* 1960 */ 35, 276, 393, 278, 462, 279, 584, 1269, 1264, 172,
/* 1970 */ 456, 419, 1538, 420, 185, 173, 1539, 1537, 1536, 156,
/* 1980 */ 308, 850, 569, 457, 225, 1192, 226, 174, 217, 322,
/* 1990 */ 236, 89, 154, 1106, 1104, 330, 187, 176, 1227, 189,
/* 2000 */ 342, 929, 243, 246, 1120, 194, 177, 429, 178, 431,
/* 2010 */ 98, 1044, 99, 196, 100, 101, 179, 121, 121, 1123,
/* 2020 */ 248, 249, 1119, 163, 24, 122, 353, 456, 581, 456,
/* 2030 */ 1196, 458, 1032, 250, 292, 266, 1112, 200, 1242, 400,
/* 2040 */ 400, 399, 277, 397, 201, 500, 863, 252, 292, 15,
/* 2050 */ 865, 558, 505, 400, 400, 399, 277, 397, 256, 239,
/* 2060 */ 863, 327, 374, 202, 1032, 1032, 1034, 1035, 35, 326,
/* 2070 */ 103, 25, 26, 239, 509, 327, 366, 514, 369, 895,
/* 2080 */ 517, 105, 309, 326, 908, 164, 27, 106, 181, 525,
/* 2090 */ 107, 1189, 1073, 1192, 1159, 17, 1158, 230, 284, 286,
/* 2100 */ 241, 204, 982, 125, 265, 1175, 28, 976, 175, 1177,
/* 2110 */ 1179, 43, 1183, 1164, 241, 29, 30, 31, 8, 32,
/* 2120 */ 1182, 41, 175, 208, 553, 43, 111, 33, 240, 1087,
/* 2130 */ 113, 114, 1074, 1072, 1076, 34, 1077, 565, 1128, 118,
/* 2140 */ 271, 36, 240, 18, 939, 1037, 877, 272, 124, 37,
/* 2150 */ 398, 1198, 153, 576, 273, 1621, 183, 1197, 1260, 1260,
/* 2160 */ 1260, 1260, 1260, 418, 1260, 1260, 1260, 1260, 320, 571,
/* 2170 */ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 418, 1260, 1260,
/* 2180 */ 1260, 1260, 320, 571, 1260, 1260, 1260, 1260, 1260, 1260,
/* 2190 */ 1260, 1260, 462, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
/* 2200 */ 1260, 1260, 1260, 1260, 1260, 1260, 462,
};
static const YYCODETYPE yy_lookahead[] = {
/* 0 */ 276, 277, 278, 240, 241, 224, 194, 226, 194, 240,
@@ -174944,38 +174947,38 @@ static const YYCODETYPE yy_lookahead[] = {
/* 1810 */ 261, 10, 11, 12, 13, 14, 250, 282, 17, 197,
/* 1820 */ 61, 19, 20, 246, 22, 183, 244, 142, 201, 201,
/* 1830 */ 38, 30, 299, 32, 201, 152, 22, 151, 36, 299,
/* 1840 */ 43, 40, 235, 18, 238, 285, 238, 238, 296, 238,
/* 1850 */ 201, 296, 274, 272, 18, 200, 235, 150, 235, 247,
/* 1860 */ 247, 247, 60, 247, 274, 274, 272, 201, 200, 159,
/* 1870 */ 63, 292, 71, 201, 72, 200, 22, 201, 222, 200,
/* 1880 */ 79, 201, 222, 82, 291, 116, 219, 65, 200, 219,
/* 1890 */ 219, 228, 22, 127, 225, 166, 222, 24, 225, 114,
/* 1900 */ 99, 284, 221, 101, 284, 228, 307, 315, 219, 107,
/* 1910 */ 108, 219, 219, 219, 201, 92, 320, 115, 320, 117,
/* 1920 */ 118, 119, 222, 83, 122, 267, 267, 149, 146, 19,
/* 1930 */ 20, 22, 22, 279, 250, 134, 201, 148, 159, 249,
/* 1940 */ 139, 140, 251, 141, 25, 281, 36, 147, 251, 248,
/* 1950 */ 247, 203, 13, 195, 6, 195, 154, 155, 156, 157,
/* 1960 */ 158, 193, 305, 193, 163, 193, 305, 302, 214, 208,
/* 1970 */ 60, 214, 208, 223, 223, 4, 214, 214, 3, 22,
/* 1980 */ 215, 214, 72, 208, 164, 183, 215, 15, 23, 16,
/* 1990 */ 23, 140, 131, 152, 25, 143, 20, 16, 24, 1,
/* 2000 */ 145, 143, 131, 131, 62, 37, 54, 54, 152, 54,
/* 2010 */ 54, 101, 131, 117, 34, 1, 142, 107, 108, 22,
/* 2020 */ 5, 116, 162, 69, 25, 115, 76, 117, 118, 119,
/* 2030 */ 1, 2, 122, 69, 5, 41, 142, 116, 20, 10,
/* 2040 */ 11, 12, 13, 14, 24, 19, 17, 132, 5, 126,
/* 2050 */ 22, 141, 68, 10, 11, 12, 13, 14, 22, 30,
/* 2060 */ 17, 32, 22, 22, 154, 155, 156, 157, 158, 40,
/* 2070 */ 23, 68, 60, 30, 24, 32, 97, 28, 22, 68,
/* 2080 */ 23, 37, 34, 40, 150, 22, 25, 23, 23, 23,
/* 2090 */ 22, 98, 23, 183, 23, 117, 34, 22, 25, 89,
/* 2100 */ 71, 142, 144, 76, 34, 23, 34, 76, 79, 87,
/* 2110 */ 34, 82, 34, 94, 71, 34, 22, 24, 44, 34,
/* 2120 */ 25, 25, 79, 23, 23, 82, 143, 23, 99, 143,
/* 2130 */ 23, 22, 11, 25, 23, 25, 22, 22, 22, 1,
/* 2140 */ 23, 23, 99, 136, 22, 22, 142, 142, 142, 25,
/* 2150 */ 25, 23, 15, 1, 322, 322, 322, 322, 322, 322,
/* 1840 */ 149, 40, 251, 146, 250, 285, 43, 235, 296, 251,
/* 1850 */ 250, 296, 274, 272, 18, 238, 238, 238, 238, 201,
/* 1860 */ 18, 200, 60, 150, 274, 272, 274, 235, 247, 235,
/* 1870 */ 247, 201, 71, 247, 72, 200, 247, 159, 63, 200,
/* 1880 */ 79, 201, 22, 82, 222, 201, 222, 292, 200, 200,
/* 1890 */ 291, 201, 116, 219, 65, 219, 219, 228, 22, 127,
/* 1900 */ 99, 228, 166, 101, 24, 114, 225, 83, 307, 107,
/* 1910 */ 108, 315, 201, 219, 222, 284, 221, 115, 225, 117,
/* 1920 */ 118, 119, 219, 219, 122, 284, 219, 222, 320, 19,
/* 1930 */ 20, 92, 22, 320, 267, 134, 22, 159, 267, 279,
/* 1940 */ 139, 140, 201, 141, 281, 148, 36, 147, 249, 251,
/* 1950 */ 250, 25, 251, 203, 13, 247, 154, 155, 156, 157,
/* 1960 */ 158, 195, 248, 195, 163, 6, 193, 193, 193, 208,
/* 1970 */ 60, 305, 214, 305, 302, 208, 214, 214, 214, 223,
/* 1980 */ 223, 4, 72, 3, 215, 183, 215, 208, 22, 164,
/* 1990 */ 15, 214, 16, 23, 23, 140, 152, 131, 25, 143,
/* 2000 */ 16, 20, 24, 145, 1, 143, 131, 62, 131, 37,
/* 2010 */ 54, 101, 54, 152, 54, 54, 131, 107, 108, 117,
/* 2020 */ 34, 142, 1, 5, 22, 115, 162, 117, 118, 119,
/* 2030 */ 1, 2, 122, 116, 5, 25, 69, 69, 76, 10,
/* 2040 */ 11, 12, 13, 14, 116, 41, 17, 142, 5, 24,
/* 2050 */ 20, 141, 19, 10, 11, 12, 13, 14, 126, 30,
/* 2060 */ 17, 32, 132, 22, 154, 155, 156, 157, 158, 40,
/* 2070 */ 22, 22, 22, 30, 68, 32, 23, 68, 24, 60,
/* 2080 */ 97, 22, 68, 40, 28, 23, 34, 150, 37, 22,
/* 2090 */ 25, 23, 23, 183, 23, 22, 98, 142, 23, 23,
/* 2100 */ 71, 22, 117, 25, 34, 89, 34, 144, 79, 87,
/* 2110 */ 76, 82, 76, 23, 71, 34, 34, 34, 44, 34,
/* 2120 */ 94, 22, 79, 25, 24, 82, 25, 34, 99, 23,
/* 2130 */ 143, 143, 23, 23, 23, 22, 11, 25, 23, 25,
/* 2140 */ 22, 22, 99, 22, 136, 23, 23, 142, 22, 22,
/* 2150 */ 15, 1, 23, 25, 142, 142, 25, 1, 322, 322,
/* 2160 */ 322, 322, 322, 134, 322, 322, 322, 322, 139, 140,
/* 2170 */ 322, 322, 322, 322, 322, 322, 322, 134, 322, 322,
/* 2180 */ 322, 322, 139, 140, 322, 322, 322, 322, 322, 322,
@@ -174994,16 +174997,16 @@ static const YYCODETYPE yy_lookahead[] = {
/* 2310 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
/* 2320 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
/* 2330 */ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
/* 2340 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
/* 2340 */ 322, 322, 322, 322, 186, 186, 186, 186, 186, 186,
/* 2350 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
/* 2360 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
/* 2370 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
/* 2380 */ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
/* 2390 */ 186, 186, 186,
};
#define YY_SHIFT_COUNT (582)
#define YY_SHIFT_COUNT (586)
#define YY_SHIFT_MIN (0)
#define YY_SHIFT_MAX (2152)
#define YY_SHIFT_MAX (2156)
static const unsigned short int yy_shift_ofst[] = {
/* 0 */ 2029, 1801, 2043, 1380, 1380, 33, 391, 1496, 1569, 1642,
/* 10 */ 702, 702, 702, 193, 33, 33, 33, 33, 33, 0,
@@ -175038,36 +175041,36 @@ static const unsigned short int yy_shift_ofst[] = {
/* 300 */ 749, 749, 1162, 749, 960, 1007, 1274, 738, 215, 1300,
/* 310 */ 1300, 1300, 1395, 1395, 1395, 1395, 1368, 1368, 1033, 1414,
/* 320 */ 1387, 1361, 1759, 1759, 1685, 1685, 1792, 1792, 1685, 1683,
/* 330 */ 1686, 1814, 1797, 1825, 1825, 1825, 1825, 1685, 1836, 1707,
/* 340 */ 1686, 1686, 1707, 1814, 1797, 1707, 1797, 1707, 1685, 1836,
/* 350 */ 1710, 1807, 1685, 1836, 1854, 1685, 1836, 1685, 1836, 1854,
/* 360 */ 1769, 1769, 1769, 1822, 1870, 1870, 1854, 1769, 1766, 1769,
/* 370 */ 1822, 1769, 1769, 1729, 1873, 1785, 1785, 1854, 1685, 1823,
/* 380 */ 1823, 1840, 1840, 1778, 1782, 1909, 1685, 1779, 1778, 1789,
/* 390 */ 1800, 1707, 1919, 1939, 1939, 1948, 1948, 1948, 2207, 2207,
/* 400 */ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
/* 410 */ 2207, 2207, 2207, 69, 1037, 79, 1088, 651, 1196, 1415,
/* 420 */ 1501, 1439, 1369, 1452, 911, 1211, 1524, 1469, 1551, 1567,
/* 430 */ 1570, 1624, 1640, 1644, 1499, 1440, 1572, 1464, 1597, 275,
/* 440 */ 782, 1586, 1648, 1678, 1553, 1682, 1687, 1388, 1502, 1696,
/* 450 */ 1706, 1588, 1486, 1971, 1975, 1957, 1820, 1972, 1973, 1965,
/* 460 */ 1967, 1851, 1841, 1861, 1969, 1969, 1974, 1852, 1976, 1855,
/* 470 */ 1981, 1998, 1858, 1871, 1969, 1872, 1942, 1968, 1969, 1856,
/* 480 */ 1952, 1953, 1955, 1956, 1881, 1896, 1980, 1874, 2014, 2015,
/* 490 */ 1997, 1905, 1860, 1954, 1999, 1964, 1950, 1994, 1894, 1921,
/* 500 */ 2020, 2018, 2026, 1915, 1923, 2028, 1984, 2036, 2040, 2047,
/* 510 */ 2041, 2003, 2012, 2050, 1979, 2049, 2056, 2011, 2044, 2057,
/* 520 */ 2048, 1934, 2063, 2064, 2065, 2061, 2066, 2068, 1993, 1959,
/* 530 */ 2069, 2071, 1978, 2062, 2075, 1958, 2073, 2070, 2072, 2076,
/* 540 */ 2078, 2010, 2027, 2022, 2074, 2031, 2019, 2081, 2082, 2094,
/* 550 */ 2093, 2095, 2096, 2085, 1983, 1986, 2100, 2073, 2101, 2104,
/* 560 */ 2107, 2109, 2108, 2110, 2111, 2114, 2121, 2115, 2116, 2117,
/* 570 */ 2118, 2122, 2123, 2124, 2007, 2004, 2005, 2006, 2125, 2128,
/* 580 */ 2137, 2138, 2152,
/* 330 */ 1686, 1814, 1691, 1697, 1803, 1691, 1697, 1836, 1836, 1836,
/* 340 */ 1836, 1685, 1842, 1713, 1686, 1686, 1713, 1814, 1803, 1713,
/* 350 */ 1803, 1713, 1685, 1842, 1718, 1815, 1685, 1842, 1860, 1685,
/* 360 */ 1842, 1685, 1842, 1860, 1776, 1776, 1776, 1829, 1876, 1876,
/* 370 */ 1860, 1776, 1772, 1776, 1829, 1776, 1776, 1736, 1880, 1791,
/* 380 */ 1791, 1860, 1685, 1839, 1839, 1824, 1824, 1691, 1697, 1914,
/* 390 */ 1685, 1778, 1691, 1797, 1800, 1713, 1926, 1941, 1941, 1959,
/* 400 */ 1959, 1959, 2207, 2207, 2207, 2207, 2207, 2207, 2207, 2207,
/* 410 */ 2207, 2207, 2207, 2207, 2207, 2207, 2207, 69, 1037, 79,
/* 420 */ 1088, 651, 1196, 1415, 1501, 1439, 1369, 1452, 911, 1211,
/* 430 */ 1524, 1469, 1551, 1567, 1570, 1624, 1640, 1644, 1499, 1440,
/* 440 */ 1572, 1464, 1597, 275, 782, 1586, 1648, 1678, 1553, 1682,
/* 450 */ 1687, 1388, 1502, 1696, 1706, 1588, 1486, 1977, 1980, 1966,
/* 460 */ 1825, 1975, 1976, 1970, 1971, 1855, 1844, 1866, 1973, 1973,
/* 470 */ 1978, 1856, 1981, 1858, 1984, 2003, 1862, 1875, 1973, 1877,
/* 480 */ 1945, 1972, 1973, 1861, 1956, 1958, 1960, 1961, 1885, 1902,
/* 490 */ 1986, 1879, 2021, 2018, 2002, 1917, 1864, 1967, 2010, 1968,
/* 500 */ 1962, 2004, 1905, 1928, 2025, 2030, 2033, 1930, 1932, 2041,
/* 510 */ 2006, 2048, 2049, 2053, 2050, 2009, 2019, 2054, 1983, 2056,
/* 520 */ 2059, 2014, 2051, 2062, 2052, 1937, 2067, 2068, 2069, 2065,
/* 530 */ 2071, 2073, 1998, 1955, 2075, 2076, 1985, 2070, 2079, 1963,
/* 540 */ 2078, 2072, 2081, 2082, 2083, 2016, 2034, 2022, 2074, 2036,
/* 550 */ 2026, 2085, 2090, 2099, 2100, 2098, 2101, 2093, 1987, 1988,
/* 560 */ 2106, 2078, 2109, 2110, 2111, 2113, 2112, 2114, 2115, 2118,
/* 570 */ 2125, 2119, 2121, 2122, 2123, 2126, 2127, 2128, 2008, 2005,
/* 580 */ 2012, 2013, 2131, 2129, 2135, 2150, 2156,
};
#define YY_REDUCE_COUNT (412)
#define YY_REDUCE_COUNT (416)
#define YY_REDUCE_MIN (-276)
#define YY_REDUCE_MAX (1775)
#define YY_REDUCE_MAX (1779)
static const short yy_reduce_ofst[] = {
/* 0 */ -66, 217, -63, -177, -180, 161, 364, 64, -183, 162,
/* 10 */ 223, 367, 414, -173, 473, 514, 525, 622, 626, -207,
@@ -175102,76 +175105,76 @@ static const short yy_reduce_ofst[] = {
/* 300 */ 1512, 1521, 1539, 1522, 1541, 1493, 1583, 1559, 1565, 1585,
/* 310 */ 1587, 1589, 1529, 1531, 1532, 1549, 1558, 1566, 1535, 1577,
/* 320 */ 1582, 1622, 1533, 1540, 1627, 1628, 1552, 1555, 1633, 1560,
/* 330 */ 1578, 1581, 1607, 1606, 1608, 1609, 1611, 1649, 1655, 1612,
/* 340 */ 1590, 1591, 1613, 1594, 1621, 1614, 1623, 1616, 1666, 1668,
/* 350 */ 1579, 1593, 1672, 1675, 1656, 1676, 1679, 1680, 1688, 1660,
/* 360 */ 1667, 1670, 1671, 1663, 1669, 1673, 1674, 1689, 1681, 1692,
/* 370 */ 1677, 1693, 1694, 1592, 1599, 1617, 1620, 1700, 1713, 1596,
/* 380 */ 1598, 1658, 1659, 1691, 1684, 1654, 1735, 1664, 1697, 1690,
/* 390 */ 1701, 1703, 1748, 1758, 1760, 1768, 1770, 1772, 1657, 1661,
/* 400 */ 1665, 1761, 1754, 1757, 1762, 1763, 1764, 1750, 1751, 1765,
/* 410 */ 1771, 1767, 1775,
/* 330 */ 1578, 1581, 1591, 1594, 1612, 1598, 1600, 1617, 1618, 1619,
/* 340 */ 1620, 1658, 1661, 1621, 1590, 1592, 1623, 1593, 1632, 1626,
/* 350 */ 1634, 1629, 1670, 1675, 1595, 1599, 1680, 1679, 1662, 1684,
/* 360 */ 1688, 1690, 1689, 1664, 1674, 1676, 1677, 1669, 1681, 1693,
/* 370 */ 1692, 1694, 1695, 1703, 1673, 1704, 1707, 1596, 1601, 1631,
/* 380 */ 1641, 1705, 1711, 1608, 1613, 1667, 1671, 1698, 1700, 1660,
/* 390 */ 1741, 1663, 1701, 1699, 1714, 1708, 1750, 1766, 1768, 1773,
/* 400 */ 1774, 1775, 1666, 1668, 1672, 1761, 1758, 1762, 1763, 1764,
/* 410 */ 1767, 1756, 1757, 1769, 1771, 1777, 1779,
};
static const YYACTIONTYPE yy_default[] = {
/* 0 */ 1663, 1663, 1663, 1491, 1254, 1367, 1254, 1254, 1254, 1254,
/* 10 */ 1491, 1491, 1491, 1254, 1254, 1254, 1254, 1254, 1254, 1397,
/* 20 */ 1397, 1544, 1287, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 30 */ 1254, 1254, 1254, 1254, 1254, 1490, 1254, 1254, 1254, 1254,
/* 40 */ 1578, 1578, 1254, 1254, 1254, 1254, 1254, 1563, 1562, 1254,
/* 50 */ 1254, 1254, 1406, 1254, 1413, 1254, 1254, 1254, 1254, 1254,
/* 60 */ 1492, 1493, 1254, 1254, 1254, 1254, 1543, 1545, 1508, 1420,
/* 70 */ 1419, 1418, 1417, 1526, 1385, 1411, 1404, 1408, 1487, 1488,
/* 80 */ 1486, 1641, 1493, 1492, 1254, 1407, 1455, 1471, 1454, 1254,
/* 90 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 100 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 110 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 120 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 130 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 140 */ 1254, 1254, 1463, 1470, 1469, 1468, 1477, 1467, 1464, 1457,
/* 150 */ 1456, 1458, 1459, 1278, 1254, 1275, 1329, 1254, 1254, 1254,
/* 160 */ 1254, 1254, 1460, 1287, 1448, 1447, 1446, 1254, 1474, 1461,
/* 170 */ 1473, 1472, 1551, 1615, 1614, 1509, 1254, 1254, 1254, 1254,
/* 180 */ 1254, 1254, 1578, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 190 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 200 */ 1254, 1254, 1254, 1254, 1254, 1387, 1578, 1578, 1254, 1287,
/* 210 */ 1578, 1578, 1388, 1388, 1283, 1283, 1391, 1558, 1358, 1358,
/* 220 */ 1358, 1358, 1367, 1358, 1254, 1254, 1254, 1254, 1254, 1254,
/* 230 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1548,
/* 240 */ 1546, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 250 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 260 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1363, 1254,
/* 270 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1608,
/* 280 */ 1254, 1521, 1343, 1363, 1363, 1363, 1363, 1365, 1344, 1342,
/* 290 */ 1357, 1288, 1261, 1655, 1423, 1412, 1364, 1412, 1652, 1410,
/* 300 */ 1423, 1423, 1410, 1423, 1364, 1652, 1304, 1630, 1299, 1397,
/* 310 */ 1397, 1397, 1387, 1387, 1387, 1387, 1391, 1391, 1489, 1364,
/* 320 */ 1357, 1254, 1655, 1655, 1373, 1373, 1654, 1654, 1373, 1509,
/* 330 */ 1638, 1432, 1332, 1338, 1338, 1338, 1338, 1373, 1272, 1410,
/* 340 */ 1638, 1638, 1410, 1432, 1332, 1410, 1332, 1410, 1373, 1272,
/* 350 */ 1525, 1649, 1373, 1272, 1499, 1373, 1272, 1373, 1272, 1499,
/* 360 */ 1330, 1330, 1330, 1319, 1254, 1254, 1499, 1330, 1304, 1330,
/* 370 */ 1319, 1330, 1330, 1596, 1254, 1503, 1503, 1499, 1373, 1588,
/* 380 */ 1588, 1400, 1400, 1405, 1391, 1494, 1373, 1254, 1405, 1403,
/* 390 */ 1401, 1410, 1322, 1611, 1611, 1607, 1607, 1607, 1660, 1660,
/* 400 */ 1558, 1623, 1287, 1287, 1287, 1287, 1623, 1306, 1306, 1288,
/* 410 */ 1288, 1287, 1623, 1254, 1254, 1254, 1254, 1254, 1254, 1618,
/* 420 */ 1254, 1553, 1510, 1377, 1254, 1254, 1254, 1254, 1254, 1254,
/* 430 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 440 */ 1564, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 450 */ 1254, 1254, 1437, 1254, 1257, 1555, 1254, 1254, 1254, 1254,
/* 460 */ 1254, 1254, 1254, 1254, 1414, 1415, 1378, 1254, 1254, 1254,
/* 470 */ 1254, 1254, 1254, 1254, 1429, 1254, 1254, 1254, 1424, 1254,
/* 480 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1651, 1254, 1254,
/* 490 */ 1254, 1254, 1254, 1254, 1524, 1523, 1254, 1254, 1375, 1254,
/* 500 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 510 */ 1254, 1254, 1302, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 520 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 530 */ 1254, 1254, 1254, 1254, 1254, 1254, 1402, 1254, 1254, 1254,
/* 540 */ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 550 */ 1254, 1593, 1392, 1254, 1254, 1254, 1254, 1642, 1254, 1254,
/* 560 */ 1254, 1254, 1352, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
/* 570 */ 1254, 1254, 1254, 1634, 1346, 1438, 1254, 1441, 1276, 1254,
/* 580 */ 1266, 1254, 1254,
/* 0 */ 1667, 1667, 1667, 1495, 1258, 1371, 1258, 1258, 1258, 1258,
/* 10 */ 1495, 1495, 1495, 1258, 1258, 1258, 1258, 1258, 1258, 1401,
/* 20 */ 1401, 1548, 1291, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 30 */ 1258, 1258, 1258, 1258, 1258, 1494, 1258, 1258, 1258, 1258,
/* 40 */ 1582, 1582, 1258, 1258, 1258, 1258, 1258, 1567, 1566, 1258,
/* 50 */ 1258, 1258, 1410, 1258, 1417, 1258, 1258, 1258, 1258, 1258,
/* 60 */ 1496, 1497, 1258, 1258, 1258, 1258, 1547, 1549, 1512, 1424,
/* 70 */ 1423, 1422, 1421, 1530, 1389, 1415, 1408, 1412, 1491, 1492,
/* 80 */ 1490, 1645, 1497, 1496, 1258, 1411, 1459, 1475, 1458, 1258,
/* 90 */ 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 100 */ 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 110 */ 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 120 */ 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 130 */ 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 140 */ 1258, 1258, 1467, 1474, 1473, 1472, 1481, 1471, 1468, 1461,
/* 150 */ 1460, 1462, 1463, 1282, 1258, 1279, 1333, 1258, 1258, 1258,
/* 160 */ 1258, 1258, 1464, 1291, 1452, 1451, 1450, 1258, 1478, 1465,
/* 170 */ 1477, 1476, 1555, 1619, 1618, 1513, 1258, 1258, 1258, 1258,
/* 180 */ 1258, 1258, 1582, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 190 */ 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 200 */ 1258, 1258, 1258, 1258, 1258, 1391, 1582, 1582, 1258, 1291,
/* 210 */ 1582, 1582, 1392, 1392, 1287, 1287, 1395, 1562, 1362, 1362,
/* 220 */ 1362, 1362, 1371, 1362, 1258, 1258, 1258, 1258, 1258, 1258,
/* 230 */ 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1552,
/* 240 */ 1550, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 250 */ 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 260 */ 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1367, 1258,
/* 270 */ 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1612,
/* 280 */ 1258, 1525, 1347, 1367, 1367, 1367, 1367, 1369, 1348, 1346,
/* 290 */ 1361, 1292, 1265, 1659, 1427, 1416, 1368, 1416, 1656, 1414,
/* 300 */ 1427, 1427, 1414, 1427, 1368, 1656, 1308, 1634, 1303, 1401,
/* 310 */ 1401, 1401, 1391, 1391, 1391, 1391, 1395, 1395, 1493, 1368,
/* 320 */ 1361, 1258, 1659, 1659, 1377, 1377, 1658, 1658, 1377, 1513,
/* 330 */ 1642, 1436, 1409, 1395, 1336, 1409, 1395, 1342, 1342, 1342,
/* 340 */ 1342, 1377, 1276, 1414, 1642, 1642, 1414, 1436, 1336, 1414,
/* 350 */ 1336, 1414, 1377, 1276, 1529, 1653, 1377, 1276, 1503, 1377,
/* 360 */ 1276, 1377, 1276, 1503, 1334, 1334, 1334, 1323, 1258, 1258,
/* 370 */ 1503, 1334, 1308, 1334, 1323, 1334, 1334, 1600, 1258, 1507,
/* 380 */ 1507, 1503, 1377, 1592, 1592, 1404, 1404, 1409, 1395, 1498,
/* 390 */ 1377, 1258, 1409, 1407, 1405, 1414, 1326, 1615, 1615, 1611,
/* 400 */ 1611, 1611, 1664, 1664, 1562, 1627, 1291, 1291, 1291, 1291,
/* 410 */ 1627, 1310, 1310, 1292, 1292, 1291, 1627, 1258, 1258, 1258,
/* 420 */ 1258, 1258, 1258, 1622, 1258, 1557, 1514, 1381, 1258, 1258,
/* 430 */ 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 440 */ 1258, 1258, 1258, 1258, 1568, 1258, 1258, 1258, 1258, 1258,
/* 450 */ 1258, 1258, 1258, 1258, 1258, 1258, 1441, 1258, 1261, 1559,
/* 460 */ 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1418, 1419,
/* 470 */ 1382, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1433, 1258,
/* 480 */ 1258, 1258, 1428, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 490 */ 1258, 1655, 1258, 1258, 1258, 1258, 1258, 1258, 1528, 1527,
/* 500 */ 1258, 1258, 1379, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 510 */ 1258, 1258, 1258, 1258, 1258, 1258, 1306, 1258, 1258, 1258,
/* 520 */ 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 530 */ 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 540 */ 1406, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258,
/* 550 */ 1258, 1258, 1258, 1258, 1258, 1597, 1396, 1258, 1258, 1258,
/* 560 */ 1258, 1646, 1258, 1258, 1258, 1258, 1356, 1258, 1258, 1258,
/* 570 */ 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1638, 1350, 1442,
/* 580 */ 1258, 1445, 1280, 1258, 1270, 1258, 1258,
};
/********** End of lemon-generated parsing tables *****************************/
@@ -175941,14 +175944,14 @@ static const char *const yyRuleName[] = {
/* 149 */ "limit_opt ::= LIMIT expr",
/* 150 */ "limit_opt ::= LIMIT expr OFFSET expr",
/* 151 */ "limit_opt ::= LIMIT expr COMMA expr",
/* 152 */ "cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret",
/* 152 */ "cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret orderby_opt limit_opt",
/* 153 */ "where_opt ::=",
/* 154 */ "where_opt ::= WHERE expr",
/* 155 */ "where_opt_ret ::=",
/* 156 */ "where_opt_ret ::= WHERE expr",
/* 157 */ "where_opt_ret ::= RETURNING selcollist",
/* 158 */ "where_opt_ret ::= WHERE expr RETURNING selcollist",
/* 159 */ "cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret",
/* 159 */ "cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret orderby_opt limit_opt",
/* 160 */ "setlist ::= setlist COMMA nm EQ expr",
/* 161 */ "setlist ::= setlist COMMA LP idlist RP EQ expr",
/* 162 */ "setlist ::= nm EQ expr",
@@ -176866,14 +176869,14 @@ static const YYCODETYPE yyRuleInfoLhs[] = {
251, /* (149) limit_opt ::= LIMIT expr */
251, /* (150) limit_opt ::= LIMIT expr OFFSET expr */
251, /* (151) limit_opt ::= LIMIT expr COMMA expr */
191, /* (152) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */
191, /* (152) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret orderby_opt limit_opt */
247, /* (153) where_opt ::= */
247, /* (154) where_opt ::= WHERE expr */
269, /* (155) where_opt_ret ::= */
269, /* (156) where_opt_ret ::= WHERE expr */
269, /* (157) where_opt_ret ::= RETURNING selcollist */
269, /* (158) where_opt_ret ::= WHERE expr RETURNING selcollist */
191, /* (159) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */
191, /* (159) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret orderby_opt limit_opt */
270, /* (160) setlist ::= setlist COMMA nm EQ expr */
270, /* (161) setlist ::= setlist COMMA LP idlist RP EQ expr */
270, /* (162) setlist ::= nm EQ expr */
@@ -177280,14 +177283,14 @@ static const signed char yyRuleInfoNRhs[] = {
-2, /* (149) limit_opt ::= LIMIT expr */
-4, /* (150) limit_opt ::= LIMIT expr OFFSET expr */
-4, /* (151) limit_opt ::= LIMIT expr COMMA expr */
-6, /* (152) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */
-8, /* (152) cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret orderby_opt limit_opt */
0, /* (153) where_opt ::= */
-2, /* (154) where_opt ::= WHERE expr */
0, /* (155) where_opt_ret ::= */
-2, /* (156) where_opt_ret ::= WHERE expr */
-2, /* (157) where_opt_ret ::= RETURNING selcollist */
-4, /* (158) where_opt_ret ::= WHERE expr RETURNING selcollist */
-9, /* (159) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */
-11, /* (159) cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret orderby_opt limit_opt */
-5, /* (160) setlist ::= setlist COMMA nm EQ expr */
-7, /* (161) setlist ::= setlist COMMA LP idlist RP EQ expr */
-3, /* (162) setlist ::= nm EQ expr */
@@ -178203,10 +178206,17 @@ static YYACTIONTYPE yy_reduce(
case 151: /* limit_opt ::= LIMIT expr COMMA expr */
{yymsp[-3].minor.yy454 = sqlite3PExpr(pParse,TK_LIMIT,yymsp[0].minor.yy454,yymsp[-2].minor.yy454);}
break;
case 152: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret */
case 152: /* cmd ::= with DELETE FROM xfullname indexed_opt where_opt_ret orderby_opt limit_opt */
{
sqlite3SrcListIndexedBy(pParse, yymsp[-2].minor.yy203, &yymsp[-1].minor.yy0);
sqlite3DeleteFrom(pParse,yymsp[-2].minor.yy203,yymsp[0].minor.yy454,0,0);
sqlite3SrcListIndexedBy(pParse, yymsp[-4].minor.yy203, &yymsp[-3].minor.yy0);
#ifndef SQLITE_ENABLE_UPDATE_DELETE_LIMIT
if( yymsp[-1].minor.yy14 || yymsp[0].minor.yy454 ){
updateDeleteLimitError(pParse,yymsp[-1].minor.yy14,yymsp[0].minor.yy454);
yymsp[-1].minor.yy14 = 0;
yymsp[0].minor.yy454 = 0;
}
#endif
sqlite3DeleteFrom(pParse,yymsp[-4].minor.yy203,yymsp[-2].minor.yy454,yymsp[-1].minor.yy14,yymsp[0].minor.yy454);
}
break;
case 157: /* where_opt_ret ::= RETURNING selcollist */
@@ -178215,12 +178225,11 @@ static YYACTIONTYPE yy_reduce(
case 158: /* where_opt_ret ::= WHERE expr RETURNING selcollist */
{sqlite3AddReturning(pParse,yymsp[0].minor.yy14); yymsp[-3].minor.yy454 = yymsp[-2].minor.yy454;}
break;
case 159: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret */
case 159: /* cmd ::= with UPDATE orconf xfullname indexed_opt SET setlist from where_opt_ret orderby_opt limit_opt */
{
sqlite3SrcListIndexedBy(pParse, yymsp[-5].minor.yy203, &yymsp[-4].minor.yy0);
sqlite3ExprListCheckLength(pParse,yymsp[-2].minor.yy14,"set list");
if( yymsp[-1].minor.yy203 ){
SrcList *pFromClause = yymsp[-1].minor.yy203;
sqlite3SrcListIndexedBy(pParse, yymsp[-7].minor.yy203, &yymsp[-6].minor.yy0);
if( yymsp[-3].minor.yy203 ){
SrcList *pFromClause = yymsp[-3].minor.yy203;
if( pFromClause->nSrc>1 ){
Select *pSubquery;
Token as;
@@ -178229,9 +178238,17 @@ static YYACTIONTYPE yy_reduce(
as.z = 0;
pFromClause = sqlite3SrcListAppendFromTerm(pParse,0,0,0,&as,pSubquery,0);
}
yymsp[-5].minor.yy203 = sqlite3SrcListAppendList(pParse, yymsp[-5].minor.yy203, pFromClause);
yymsp[-7].minor.yy203 = sqlite3SrcListAppendList(pParse, yymsp[-7].minor.yy203, pFromClause);
}
sqlite3Update(pParse,yymsp[-5].minor.yy203,yymsp[-2].minor.yy14,yymsp[0].minor.yy454,yymsp[-6].minor.yy144,0,0,0);
sqlite3ExprListCheckLength(pParse,yymsp[-4].minor.yy14,"set list");
#ifndef SQLITE_ENABLE_UPDATE_DELETE_LIMIT
if( yymsp[-1].minor.yy14 || yymsp[0].minor.yy454 ){
updateDeleteLimitError(pParse,yymsp[-1].minor.yy14,yymsp[0].minor.yy454);
yymsp[-1].minor.yy14 = 0;
yymsp[0].minor.yy454 = 0;
}
#endif
sqlite3Update(pParse,yymsp[-7].minor.yy203,yymsp[-4].minor.yy14,yymsp[-2].minor.yy454,yymsp[-8].minor.yy144,yymsp[-1].minor.yy14,yymsp[0].minor.yy454,0);
}
break;
case 160: /* setlist ::= setlist COMMA nm EQ expr */
+24
View File
@@ -9,6 +9,30 @@ describe('miscellaneous', function () {
this.db.close();
});
it('supports LIMIT in DELETE statements', function () {
this.db.prepare("CREATE TABLE foo (x INTEGER PRIMARY KEY)").run();
expect(this.db.prepare('INSERT INTO foo (x) VALUES (1), (2), (3)').run())
.to.deep.equal({ changes: 3, lastInsertRowid: 3 });
expect(this.db.prepare('DELETE FROM foo ORDER BY x ASC LIMIT 1').run())
.to.have.property('changes', 1);
expect(this.db.prepare('SELECT x FROM foo ORDER BY x ASC').all())
.to.deep.equal([{ x: 2 }, { x: 3 }]);
});
it('supports LIMIT in UPDATE statements', function () {
this.db.prepare("CREATE TABLE foo (x INTEGER PRIMARY KEY, y INTEGER)").run();
expect(this.db.prepare('INSERT INTO foo (x, y) VALUES (1, 1), (2, 2), (3, 3)').run())
.to.deep.equal({ changes: 3, lastInsertRowid: 3 });
expect(this.db.prepare('UPDATE foo SET y = 100 ORDER BY x DESC LIMIT 2').run())
.to.have.property('changes', 2);
expect(this.db.prepare('SELECT x, y FROM foo ORDER BY x ASC').all())
.to.deep.equal([{ x: 1, y: 1 }, { x: 2, y: 100 }, { x: 3, y: 100 }]);
});
it('persists non-trivial quantities of reads and writes', function () {
const runDuration = 1000;
const runUntil = Date.now() + runDuration;