From dcaf75eaed37623f27c23241c146ad25910208f3 Mon Sep 17 00:00:00 2001 From: dlaroche Date: Mon, 18 Jun 2001 13:18:11 +0000 Subject: [PATCH] Changed to used /\ and requires instead of bufferConstraint changed to used /\ and requires and ensures instead of bufferConstraint and ensuresConstraint --- src/Headers/cgrammar_tokens.h | 15 +- src/Headers/local_constants.h | 6 +- src/Headers/local_constants.last | 4 +- src/cgrammar.tab.c | 4429 +++++++++--------- src/cgrammar.y | 9 +- src/cscanner.l | 12 +- src/lex.yy.c | 755 +-- test/globalbufferannotation/globalvariable.c | 4 +- test/maxset/maxsetannotations.c | 2 +- test/simplebufferConstraintTests/m.c | 2 +- test/simplebufferConstraintTests/sizeof.c | 8 +- 11 files changed, 2590 insertions(+), 2656 deletions(-) diff --git a/src/Headers/cgrammar_tokens.h b/src/Headers/cgrammar_tokens.h index f0266ac..75d11c4 100644 --- a/src/Headers/cgrammar_tokens.h +++ b/src/Headers/cgrammar_tokens.h @@ -254,13 +254,14 @@ typedef union #define QMAXSET 434 #define QMAXREAD 435 #define QTESTINRANGE 436 -#define IDENTIFIER 437 -#define NEW_IDENTIFIER 438 -#define TYPE_NAME_OR_ID 439 -#define CCONSTANT 440 -#define ITER_NAME 441 -#define ITER_ENDNAME 442 -#define TYPE_NAME 443 +#define TCAND 437 +#define IDENTIFIER 438 +#define NEW_IDENTIFIER 439 +#define TYPE_NAME_OR_ID 440 +#define CCONSTANT 441 +#define ITER_NAME 442 +#define ITER_ENDNAME 443 +#define TYPE_NAME 444 extern YYSTYPE yylval; diff --git a/src/Headers/local_constants.h b/src/Headers/local_constants.h index de2e753..a6f582a 100644 --- a/src/Headers/local_constants.h +++ b/src/Headers/local_constants.h @@ -1,7 +1,7 @@ /* local_constants.h - created automatically by gmake localconstants */ /*@constant observer char *SYSTEM_LIBDIR;@*/ -# define SYSTEM_LIBDIR "/usr/include" +# define SYSTEM_LIBDIR /usr/include /*@constant observer char *DEFAULT_LARCHPATH;@*/ -# define DEFAULT_LARCHPATH ".:/afs/cert.org/usr/dlaroche/LCLintDev/lib" +# define DEFAULT_LARCHPATH /usr/local/lclint-2.5m/lib /*@constant observer char *DEFAULT_LCLIMPORTDIR;@*/ -# define DEFAULT_LCLIMPORTDIR "/afs/cert.org/usr/dlaroche/LCLintDev/imports" +# define DEFAULT_LCLIMPORTDIR /usr/local/lclint-2.5m/imports diff --git a/src/Headers/local_constants.last b/src/Headers/local_constants.last index 865afaa..de2e753 100644 --- a/src/Headers/local_constants.last +++ b/src/Headers/local_constants.last @@ -2,6 +2,6 @@ /*@constant observer char *SYSTEM_LIBDIR;@*/ # define SYSTEM_LIBDIR "/usr/include" /*@constant observer char *DEFAULT_LARCHPATH;@*/ -# define DEFAULT_LARCHPATH ".:/a/apollo.cs.Virginia.EDU/af10/evans/lclint-build/lclint-2.5m/lib" +# define DEFAULT_LARCHPATH ".:/afs/cert.org/usr/dlaroche/LCLintDev/lib" /*@constant observer char *DEFAULT_LCLIMPORTDIR;@*/ -# define DEFAULT_LCLIMPORTDIR "/a/apollo.cs.Virginia.EDU/af10/evans/lclint-build/lclint-2.5m/imports" +# define DEFAULT_LCLIMPORTDIR "/afs/cert.org/usr/dlaroche/LCLintDev/imports" diff --git a/src/cgrammar.tab.c b/src/cgrammar.tab.c index fd30c61..bfba8e7 100644 --- a/src/cgrammar.tab.c +++ b/src/cgrammar.tab.c @@ -184,13 +184,14 @@ #define QMAXSET 434 #define QMAXREAD 435 #define QTESTINRANGE 436 -#define IDENTIFIER 437 -#define NEW_IDENTIFIER 438 -#define TYPE_NAME_OR_ID 439 -#define CCONSTANT 440 -#define ITER_NAME 441 -#define ITER_ENDNAME 442 -#define TYPE_NAME 443 +#define TCAND 437 +#define IDENTIFIER 438 +#define NEW_IDENTIFIER 439 +#define TYPE_NAME_OR_ID 440 +#define CCONSTANT 441 +#define ITER_NAME 442 +#define ITER_ENDNAME 443 +#define TYPE_NAME 444 #line 19 "cgrammar.y" @@ -292,11 +293,11 @@ typedef union -#define YYFINAL 1216 +#define YYFINAL 1218 #define YYFLAG -32768 -#define YYNTBASE 190 +#define YYNTBASE 191 -#define YYTRANSLATE(x) ((unsigned)(x) <= 443 ? yytranslate[x] : 433) +#define YYTRANSLATE(x) ((unsigned)(x) <= 444 ? yytranslate[x] : 434) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -343,7 +344,7 @@ static const short yytranslate[] = { 0, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189 + 187, 188, 189, 190 }; #if YYDEBUG != 0 @@ -353,354 +354,354 @@ static const short yyprhs[] = { 0, 64, 71, 75, 82, 83, 91, 92, 101, 103, 110, 114, 121, 122, 129, 130, 138, 139, 140, 151, 155, 159, 163, 166, 168, 169, 172, 173, 176, 179, 180, - 185, 186, 187, 192, 193, 196, 198, 203, 205, 207, - 209, 211, 213, 215, 220, 226, 228, 230, 232, 234, - 238, 243, 246, 250, 254, 258, 260, 262, 264, 265, - 268, 269, 272, 274, 277, 279, 282, 284, 287, 289, - 293, 296, 298, 300, 302, 304, 306, 308, 310, 311, - 314, 315, 322, 323, 330, 332, 334, 335, 336, 342, - 343, 349, 351, 353, 354, 356, 357, 358, 362, 363, - 367, 369, 371, 373, 375, 377, 379, 381, 383, 385, - 387, 389, 391, 393, 395, 397, 399, 401, 402, 410, - 411, 420, 422, 426, 427, 431, 432, 436, 439, 443, - 446, 449, 451, 453, 455, 459, 464, 467, 471, 475, - 479, 481, 483, 485, 489, 491, 493, 497, 502, 505, - 509, 513, 517, 519, 523, 525, 527, 529, 533, 535, - 537, 539, 544, 548, 553, 560, 566, 572, 575, 578, - 580, 584, 586, 589, 592, 595, 598, 601, 604, 607, - 610, 612, 614, 618, 620, 630, 631, 635, 640, 643, - 648, 651, 653, 658, 660, 664, 668, 672, 674, 678, - 682, 684, 688, 692, 694, 698, 702, 706, 710, 712, - 716, 720, 722, 726, 728, 732, 734, 738, 740, 741, - 746, 748, 749, 754, 756, 757, 758, 766, 768, 772, - 776, 780, 784, 788, 792, 796, 800, 804, 808, 812, - 814, 818, 819, 821, 823, 825, 827, 829, 833, 834, - 844, 845, 857, 860, 861, 868, 869, 877, 882, 887, - 888, 889, 892, 894, 899, 900, 905, 907, 911, 916, - 918, 922, 924, 926, 928, 930, 932, 935, 938, 941, - 944, 947, 950, 953, 956, 959, 962, 965, 968, 971, - 974, 977, 980, 983, 986, 989, 992, 995, 998, 1001, - 1004, 1007, 1010, 1013, 1016, 1019, 1022, 1025, 1028, 1031, - 1034, 1037, 1040, 1043, 1046, 1049, 1052, 1055, 1058, 1061, - 1064, 1067, 1070, 1072, 1074, 1076, 1078, 1081, 1084, 1087, - 1090, 1093, 1096, 1099, 1102, 1105, 1108, 1111, 1114, 1117, - 1120, 1124, 1126, 1131, 1133, 1137, 1140, 1143, 1146, 1147, - 1149, 1150, 1151, 1163, 1164, 1165, 1177, 1184, 1191, 1192, - 1193, 1204, 1205, 1206, 1217, 1223, 1229, 1234, 1239, 1240, - 1242, 1244, 1247, 1253, 1257, 1260, 1265, 1267, 1271, 1276, - 1283, 1284, 1293, 1298, 1300, 1304, 1307, 1309, 1314, 1316, - 1318, 1321, 1324, 1326, 1329, 1331, 1334, 1336, 1338, 1340, - 1343, 1345, 1348, 1351, 1355, 1357, 1361, 1363, 1367, 1369, - 1371, 1375, 1376, 1379, 1380, 1385, 1390, 1392, 1394, 1397, - 1399, 1401, 1404, 1405, 1407, 1413, 1416, 1420, 1424, 1429, - 1433, 1438, 1443, 1449, 1451, 1453, 1455, 1457, 1459, 1461, - 1463, 1465, 1467, 1470, 1472, 1474, 1476, 1479, 1482, 1490, - 1497, 1500, 1501, 1502, 1513, 1514, 1521, 1523, 1525, 1527, - 1529, 1532, 1534, 1536, 1538, 1540, 1542, 1544, 1546, 1550, - 1552, 1555, 1558, 1561, 1563, 1565, 1567, 1569, 1571, 1573, - 1575, 1577, 1579, 1581, 1585, 1587, 1589, 1592, 1595, 1596, - 1601, 1602, 1608, 1609, 1613, 1614, 1619, 1623, 1626, 1630, - 1631, 1632, 1633, 1634, 1635, 1637, 1640, 1643, 1647, 1650, - 1654, 1658, 1663, 1666, 1669, 1673, 1677, 1682, 1684, 1687, - 1689, 1692, 1694, 1697, 1699, 1702, 1704, 1707, 1709, 1714, - 1717, 1718, 1724, 1725, 1732, 1737, 1742, 1743, 1744, 1755, - 1757, 1758, 1763, 1765, 1767, 1769, 1771, 1773, 1777, 1779, - 1784, 1788, 1793, 1800, 1806, 1812, 1815, 1818, 1820, 1823, - 1826, 1829, 1832, 1835, 1838, 1841, 1844, 1846, 1848, 1853, - 1855, 1859, 1863, 1867, 1869, 1873, 1877, 1879, 1883, 1887, - 1889, 1893, 1897, 1901, 1905, 1907, 1911, 1915, 1917, 1921, - 1923, 1927, 1929, 1933, 1935, 1939, 1941, 1945, 1947, 1948, - 1949, 1957, 1959, 1963, 1967, 1971, 1975, 1979, 1983, 1987, - 1991, 1995, 1999, 2003, 2005, 2006, 2008, 2011, 2019, 2022, - 2025, 2033, 2040, 2043, 2047, 2050, 2054, 2057, 2061, 2065, - 2069, 2073, 2076, 2080, 2081, 2083, 2085, 2087, 2089, 2091, - 2093, 2095, 2097 + 186, 187, 188, 194, 195, 199, 201, 205, 207, 209, + 211, 213, 215, 217, 222, 228, 230, 232, 234, 236, + 240, 245, 248, 252, 256, 260, 262, 264, 266, 267, + 270, 271, 274, 276, 279, 281, 284, 286, 289, 291, + 295, 298, 300, 302, 304, 306, 308, 310, 312, 313, + 316, 317, 324, 325, 332, 334, 336, 337, 338, 344, + 345, 351, 353, 355, 356, 358, 359, 360, 364, 365, + 369, 371, 373, 375, 377, 379, 381, 383, 385, 387, + 389, 391, 393, 395, 397, 399, 401, 403, 404, 412, + 413, 422, 424, 428, 429, 433, 434, 438, 441, 445, + 448, 451, 453, 455, 457, 461, 466, 469, 473, 477, + 481, 483, 485, 487, 491, 493, 495, 499, 504, 507, + 511, 515, 519, 521, 525, 527, 529, 531, 535, 537, + 539, 541, 546, 550, 555, 562, 568, 574, 577, 580, + 582, 586, 588, 591, 594, 597, 600, 603, 606, 609, + 612, 614, 616, 620, 622, 632, 633, 637, 642, 645, + 650, 653, 655, 660, 662, 666, 670, 674, 676, 680, + 684, 686, 690, 694, 696, 700, 704, 708, 712, 714, + 718, 722, 724, 728, 730, 734, 736, 740, 742, 743, + 748, 750, 751, 756, 758, 759, 760, 768, 770, 774, + 778, 782, 786, 790, 794, 798, 802, 806, 810, 814, + 816, 820, 821, 823, 825, 827, 829, 831, 835, 836, + 846, 847, 859, 862, 863, 870, 871, 879, 884, 889, + 890, 891, 894, 896, 901, 902, 907, 909, 913, 918, + 920, 924, 926, 928, 930, 932, 934, 937, 940, 943, + 946, 949, 952, 955, 958, 961, 964, 967, 970, 973, + 976, 979, 982, 985, 988, 991, 994, 997, 1000, 1003, + 1006, 1009, 1012, 1015, 1018, 1021, 1024, 1027, 1030, 1033, + 1036, 1039, 1042, 1045, 1048, 1051, 1054, 1057, 1060, 1063, + 1066, 1069, 1072, 1074, 1076, 1078, 1080, 1083, 1086, 1089, + 1092, 1095, 1098, 1101, 1104, 1107, 1110, 1113, 1116, 1119, + 1122, 1126, 1128, 1133, 1135, 1139, 1142, 1145, 1148, 1149, + 1151, 1152, 1153, 1165, 1166, 1167, 1179, 1186, 1193, 1194, + 1195, 1206, 1207, 1208, 1219, 1225, 1231, 1236, 1241, 1242, + 1244, 1246, 1249, 1255, 1259, 1262, 1267, 1269, 1273, 1278, + 1285, 1286, 1295, 1300, 1302, 1306, 1309, 1311, 1316, 1318, + 1320, 1323, 1326, 1328, 1331, 1333, 1336, 1338, 1340, 1342, + 1345, 1347, 1350, 1353, 1357, 1359, 1363, 1365, 1369, 1371, + 1373, 1377, 1378, 1381, 1382, 1387, 1392, 1394, 1396, 1399, + 1401, 1403, 1406, 1407, 1409, 1415, 1418, 1422, 1426, 1431, + 1435, 1440, 1445, 1451, 1453, 1455, 1457, 1459, 1461, 1463, + 1465, 1467, 1469, 1472, 1474, 1476, 1478, 1481, 1484, 1492, + 1499, 1502, 1503, 1504, 1515, 1516, 1523, 1525, 1527, 1529, + 1531, 1534, 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1552, + 1554, 1557, 1560, 1563, 1565, 1567, 1569, 1571, 1573, 1575, + 1577, 1579, 1581, 1583, 1587, 1589, 1591, 1594, 1597, 1598, + 1603, 1604, 1610, 1611, 1615, 1616, 1621, 1625, 1628, 1632, + 1633, 1634, 1635, 1636, 1637, 1639, 1642, 1645, 1649, 1652, + 1656, 1660, 1665, 1668, 1671, 1675, 1679, 1684, 1686, 1689, + 1691, 1694, 1696, 1699, 1701, 1704, 1706, 1709, 1711, 1716, + 1719, 1720, 1726, 1727, 1734, 1739, 1744, 1745, 1746, 1757, + 1759, 1760, 1765, 1767, 1769, 1771, 1773, 1775, 1779, 1781, + 1786, 1790, 1795, 1802, 1808, 1814, 1817, 1820, 1822, 1825, + 1828, 1831, 1834, 1837, 1840, 1843, 1846, 1848, 1850, 1855, + 1857, 1861, 1865, 1869, 1871, 1875, 1879, 1881, 1885, 1889, + 1891, 1895, 1899, 1903, 1907, 1909, 1913, 1917, 1919, 1923, + 1925, 1929, 1931, 1935, 1937, 1941, 1943, 1947, 1949, 1950, + 1951, 1959, 1961, 1965, 1969, 1973, 1977, 1981, 1985, 1989, + 1993, 1997, 2001, 2005, 2007, 2008, 2010, 2013, 2021, 2024, + 2027, 2035, 2042, 2045, 2049, 2052, 2056, 2059, 2063, 2067, + 2071, 2075, 2078, 2082, 2083, 2085, 2087, 2089, 2091, 2093, + 2095, 2097, 2099 }; static const short yyrhs[] = { -1, - 191, 0, 192, 0, 191, 192, 0, 260, 429, 0, - 193, 0, 194, 0, 204, 0, 207, 0, 297, 0, - 1, 0, 75, 317, 330, 340, 330, 429, 305, 88, - 0, 75, 317, 330, 340, 330, 23, 305, 310, 309, - 429, 88, 0, 0, 76, 195, 196, 429, 88, 0, - 197, 0, 317, 330, 197, 0, 201, 0, 344, 201, - 0, 431, 0, 305, 24, 330, 340, 305, 25, 0, - 198, 26, 27, 0, 198, 26, 305, 296, 27, 330, - 0, 0, 198, 306, 24, 25, 199, 209, 211, 0, - 0, 198, 306, 24, 341, 25, 200, 209, 211, 0, - 431, 0, 305, 24, 330, 197, 305, 25, 0, 201, - 26, 27, 0, 201, 26, 305, 296, 27, 330, 0, - 0, 201, 306, 24, 25, 202, 227, 0, 0, 201, - 306, 24, 341, 25, 203, 227, 0, 0, 0, 77, - 431, 24, 341, 25, 205, 227, 206, 429, 88, 0, - 89, 370, 92, 0, 90, 357, 92, 0, 91, 358, - 92, 0, 89, 92, 0, 256, 0, 0, 210, 229, - 0, 0, 212, 213, 0, 216, 214, 0, 0, 215, - 178, 218, 88, 0, 0, 0, 217, 177, 218, 88, - 0, 0, 219, 218, 0, 219, 0, 222, 221, 222, - 18, 0, 180, 0, 181, 0, 52, 0, 51, 0, - 53, 0, 223, 0, 225, 24, 222, 25, 0, 24, - 222, 226, 222, 25, 0, 224, 0, 186, 0, 430, - 0, 184, 0, 224, 26, 27, 0, 224, 26, 186, - 27, 0, 34, 224, 0, 24, 224, 25, 0, 224, - 28, 431, 0, 224, 44, 431, 0, 220, 0, 33, - 0, 32, 0, 0, 0, 230, 0, 0, 228, 230, - 0, 237, 0, 231, 237, 0, 240, 0, 231, 240, - 0, 253, 0, 253, 231, 0, 233, 0, 232, 21, - 233, 0, 236, 234, 0, 430, 0, 184, 0, 86, - 0, 87, 0, 116, 0, 117, 0, 130, 0, 0, - 235, 236, 0, 0, 72, 238, 390, 429, 88, 243, - 0, 0, 72, 239, 232, 429, 88, 243, 0, 74, - 0, 244, 0, 0, 0, 72, 241, 390, 429, 243, - 0, 0, 72, 242, 232, 429, 243, 0, 74, 0, - 246, 0, 0, 244, 0, 0, 0, 73, 245, 261, - 0, 0, 73, 247, 262, 0, 78, 0, 79, 0, - 80, 0, 81, 0, 82, 0, 88, 0, 88, 0, - 83, 0, 84, 0, 119, 0, 137, 0, 135, 0, - 133, 0, 132, 0, 121, 0, 138, 0, 150, 0, - 0, 248, 330, 254, 267, 429, 250, 305, 0, 0, - 251, 330, 252, 255, 267, 429, 249, 305, 0, 340, - 0, 317, 330, 340, 0, 0, 19, 258, 386, 0, - 0, 390, 259, 379, 0, 208, 257, 0, 265, 429, - 88, 0, 429, 88, 0, 265, 429, 0, 429, 0, - 430, 0, 184, 0, 263, 26, 27, 0, 263, 26, - 264, 27, 0, 34, 263, 0, 24, 263, 25, 0, - 263, 28, 431, 0, 263, 44, 431, 0, 263, 0, - 186, 0, 263, 0, 265, 21, 263, 0, 430, 0, - 184, 0, 266, 26, 27, 0, 266, 26, 264, 27, - 0, 34, 266, 0, 24, 266, 25, 0, 266, 28, - 431, 0, 266, 44, 431, 0, 266, 0, 267, 21, - 266, 0, 430, 0, 184, 0, 186, 0, 24, 294, - 25, 0, 185, 0, 111, 0, 268, 0, 269, 26, - 294, 27, 0, 269, 24, 25, 0, 269, 24, 270, - 25, 0, 70, 24, 293, 21, 352, 25, 0, 269, - 330, 28, 431, 305, 0, 269, 330, 44, 431, 305, - 0, 269, 47, 0, 269, 48, 0, 293, 0, 270, - 21, 293, 0, 269, 0, 47, 271, 0, 48, 271, - 0, 29, 277, 0, 34, 277, 0, 33, 277, 0, - 32, 277, 0, 31, 277, 0, 30, 277, 0, 274, - 0, 273, 0, 272, 28, 431, 0, 431, 0, 46, - 305, 24, 352, 330, 21, 272, 25, 305, 0, 0, - 305, 275, 276, 0, 42, 24, 352, 25, 0, 42, - 271, 0, 43, 24, 352, 25, 0, 43, 271, 0, - 271, 0, 24, 352, 25, 277, 0, 277, 0, 278, - 34, 277, 0, 278, 35, 277, 0, 278, 36, 277, - 0, 278, 0, 279, 33, 278, 0, 279, 32, 278, - 0, 279, 0, 280, 49, 279, 0, 280, 50, 279, - 0, 280, 0, 281, 37, 280, 0, 281, 38, 280, - 0, 281, 51, 280, 0, 281, 52, 280, 0, 281, - 0, 282, 53, 281, 0, 282, 54, 281, 0, 282, - 0, 283, 29, 282, 0, 283, 0, 284, 39, 283, - 0, 284, 0, 285, 40, 284, 0, 285, 0, 0, - 286, 55, 287, 285, 0, 286, 0, 0, 288, 56, - 289, 286, 0, 288, 0, 0, 0, 288, 41, 291, - 294, 22, 292, 290, 0, 290, 0, 271, 23, 293, - 0, 271, 57, 293, 0, 271, 58, 293, 0, 271, - 59, 293, 0, 271, 60, 293, 0, 271, 61, 293, - 0, 271, 62, 293, 0, 271, 63, 293, 0, 271, - 64, 293, 0, 271, 65, 293, 0, 271, 66, 293, - 0, 293, 0, 294, 21, 293, 0, 0, 294, 0, - 290, 0, 298, 0, 71, 0, 303, 0, 317, 305, - 18, 0, 0, 317, 330, 340, 330, 299, 305, 309, - 18, 305, 0, 0, 317, 330, 340, 330, 23, 300, - 305, 310, 309, 18, 305, 0, 340, 330, 0, 0, - 340, 330, 23, 302, 305, 310, 0, 0, 45, 317, - 304, 330, 307, 305, 18, 0, 45, 317, 305, 18, - 0, 45, 307, 305, 18, 0, 0, 0, 308, 305, - 0, 301, 0, 307, 21, 330, 301, 0, 0, 309, - 21, 330, 301, 0, 293, 0, 19, 311, 20, 0, - 19, 311, 21, 20, 0, 310, 0, 311, 21, 310, - 0, 112, 0, 110, 0, 113, 0, 114, 0, 115, - 0, 108, 305, 0, 109, 305, 0, 116, 305, 0, - 117, 305, 0, 130, 305, 0, 131, 305, 0, 132, - 305, 0, 133, 305, 0, 118, 305, 0, 120, 305, - 0, 119, 305, 0, 128, 305, 0, 129, 305, 0, - 121, 305, 0, 123, 305, 0, 139, 305, 0, 140, - 305, 0, 142, 305, 0, 143, 305, 0, 141, 305, - 0, 136, 305, 0, 151, 305, 0, 134, 305, 0, - 135, 305, 0, 137, 305, 0, 124, 305, 0, 127, - 305, 0, 125, 305, 0, 126, 305, 0, 156, 305, - 0, 157, 305, 0, 148, 305, 0, 158, 305, 0, - 149, 305, 0, 152, 305, 0, 153, 305, 0, 154, - 305, 0, 155, 305, 0, 150, 305, 0, 159, 305, - 0, 160, 305, 0, 163, 305, 0, 164, 305, 0, - 161, 305, 0, 162, 305, 0, 175, 305, 0, 147, - 0, 144, 0, 145, 0, 146, 0, 165, 330, 0, - 167, 330, 0, 166, 330, 0, 168, 330, 0, 169, - 330, 0, 170, 330, 0, 171, 330, 0, 172, 330, - 0, 173, 330, 0, 174, 330, 0, 432, 330, 0, - 321, 330, 0, 335, 330, 0, 314, 330, 0, 305, - 317, 305, 0, 319, 0, 319, 85, 318, 88, 0, - 352, 0, 352, 21, 318, 0, 312, 320, 0, 313, - 320, 0, 315, 320, 0, 0, 317, 0, 0, 0, - 330, 67, 431, 305, 19, 322, 383, 331, 384, 323, - 20, 0, 0, 0, 330, 68, 431, 305, 19, 324, - 383, 331, 384, 325, 20, 0, 330, 67, 431, 305, - 19, 20, 0, 330, 68, 431, 305, 19, 20, 0, - 0, 0, 330, 67, 305, 19, 326, 383, 331, 384, - 327, 20, 0, 0, 0, 330, 68, 305, 19, 328, - 383, 331, 384, 329, 20, 0, 330, 67, 305, 19, - 20, 0, 330, 68, 305, 19, 20, 0, 330, 67, - 431, 330, 0, 330, 68, 431, 330, 0, 0, 332, - 0, 207, 0, 331, 332, 0, 317, 330, 333, 305, - 18, 0, 317, 305, 18, 0, 334, 330, 0, 333, - 21, 334, 330, 0, 340, 0, 22, 305, 296, 0, - 340, 22, 305, 296, 0, 330, 69, 19, 337, 20, - 305, 0, 0, 330, 69, 431, 19, 336, 337, 20, - 305, 0, 330, 69, 431, 305, 0, 338, 0, 337, - 21, 338, 0, 337, 21, 0, 431, 0, 431, 23, - 305, 296, 0, 198, 0, 354, 0, 344, 189, 0, - 344, 339, 0, 198, 0, 344, 198, 0, 347, 0, - 330, 345, 0, 108, 0, 109, 0, 342, 0, 343, - 342, 0, 34, 0, 34, 343, 0, 34, 344, 0, - 34, 343, 344, 0, 346, 0, 346, 21, 5, 0, - 431, 0, 346, 21, 431, 0, 5, 0, 348, 0, - 348, 21, 5, 0, 0, 349, 351, 0, 0, 348, - 21, 350, 351, 0, 305, 317, 339, 305, 0, 431, - 0, 316, 0, 316, 353, 0, 344, 0, 355, 0, - 344, 355, 0, 0, 355, 0, 305, 24, 330, 353, - 25, 0, 26, 27, 0, 26, 296, 27, 0, 355, - 26, 27, 0, 355, 26, 296, 27, 0, 305, 24, - 25, 0, 305, 24, 347, 25, 0, 355, 305, 24, - 25, 0, 355, 305, 24, 347, 25, 0, 372, 0, - 373, 0, 376, 0, 379, 0, 392, 0, 395, 0, - 426, 0, 400, 0, 428, 0, 22, 431, 0, 359, - 0, 357, 0, 366, 0, 359, 366, 0, 399, 359, - 0, 425, 371, 11, 24, 294, 25, 18, 0, 425, - 371, 11, 24, 294, 25, 0, 361, 366, 0, 0, - 0, 13, 24, 295, 18, 295, 18, 362, 295, 363, - 25, 0, 0, 187, 381, 24, 365, 403, 25, 0, - 188, 0, 372, 0, 373, 0, 376, 0, 368, 390, - 0, 368, 0, 369, 0, 392, 0, 367, 0, 360, - 0, 364, 0, 428, 0, 24, 366, 25, 0, 1, - 0, 394, 366, 0, 381, 19, 0, 385, 20, 0, - 371, 0, 389, 0, 372, 0, 373, 0, 376, 0, - 380, 0, 393, 0, 395, 0, 400, 0, 427, 0, - 24, 371, 25, 0, 428, 0, 1, 0, 431, 22, - 0, 107, 356, 0, 0, 6, 296, 374, 22, 0, - 0, 98, 6, 296, 375, 22, 0, 0, 7, 377, - 22, 0, 0, 98, 7, 378, 22, 0, 24, 379, - 25, 0, 381, 387, 0, 381, 388, 382, 0, 0, - 0, 0, 0, 0, 20, 0, 107, 20, 0, 391, - 20, 0, 391, 107, 20, 0, 390, 20, 0, 390, - 107, 20, 0, 390, 391, 20, 0, 390, 391, 107, - 20, 0, 19, 386, 0, 19, 20, 0, 19, 389, - 20, 0, 19, 390, 20, 0, 19, 390, 391, 20, - 0, 371, 0, 389, 371, 0, 297, 0, 390, 297, - 0, 356, 0, 391, 356, 0, 18, 0, 294, 18, - 0, 18, 0, 294, 18, 0, 294, 0, 8, 24, - 294, 25, 0, 394, 356, 0, 0, 394, 356, 9, - 396, 356, 0, 0, 10, 24, 294, 397, 25, 356, - 0, 11, 24, 294, 25, 0, 11, 24, 294, 25, - 0, 0, 0, 187, 401, 381, 24, 402, 403, 25, - 379, 424, 382, 0, 405, 0, 0, 403, 404, 21, - 405, 0, 423, 0, 430, 0, 185, 0, 184, 0, - 186, 0, 24, 294, 25, 0, 406, 0, 269, 26, - 294, 27, 0, 269, 24, 25, 0, 269, 24, 270, - 25, 0, 70, 24, 293, 21, 352, 25, 0, 269, - 330, 28, 431, 305, 0, 269, 330, 44, 431, 305, - 0, 269, 47, 0, 269, 48, 0, 407, 0, 47, - 271, 0, 48, 271, 0, 29, 277, 0, 34, 277, - 0, 33, 277, 0, 32, 277, 0, 31, 277, 0, - 30, 277, 0, 274, 0, 408, 0, 24, 352, 25, - 277, 0, 409, 0, 278, 34, 277, 0, 278, 35, - 277, 0, 278, 36, 277, 0, 410, 0, 279, 33, - 278, 0, 279, 32, 278, 0, 411, 0, 280, 49, - 279, 0, 280, 50, 279, 0, 412, 0, 281, 37, - 280, 0, 281, 38, 280, 0, 281, 51, 280, 0, - 281, 52, 280, 0, 413, 0, 282, 53, 281, 0, - 282, 54, 281, 0, 414, 0, 283, 29, 282, 0, - 415, 0, 284, 39, 283, 0, 416, 0, 285, 40, - 284, 0, 417, 0, 286, 55, 285, 0, 418, 0, - 288, 56, 286, 0, 419, 0, 0, 0, 288, 41, - 421, 294, 22, 422, 290, 0, 420, 0, 271, 23, - 293, 0, 271, 57, 293, 0, 271, 58, 293, 0, - 271, 59, 293, 0, 271, 60, 293, 0, 271, 61, - 293, 0, 271, 62, 293, 0, 271, 63, 293, 0, - 271, 64, 293, 0, 271, 65, 293, 0, 271, 66, - 293, 0, 188, 0, 0, 12, 0, 398, 356, 0, - 425, 356, 11, 24, 294, 25, 18, 0, 361, 356, - 0, 398, 371, 0, 425, 371, 11, 24, 294, 25, - 18, 0, 425, 371, 11, 24, 294, 25, 0, 361, - 371, 0, 14, 431, 18, 0, 15, 18, 0, 97, - 15, 18, 0, 16, 18, 0, 93, 16, 18, 0, - 94, 16, 18, 0, 95, 16, 18, 0, 96, 16, - 18, 0, 17, 18, 0, 17, 294, 18, 0, 0, - 18, 0, 183, 0, 184, 0, 187, 0, 188, 0, - 430, 0, 185, 0, 189, 0, 185, 0 + 192, 0, 193, 0, 192, 193, 0, 261, 430, 0, + 194, 0, 195, 0, 205, 0, 208, 0, 298, 0, + 1, 0, 75, 318, 331, 341, 331, 430, 306, 88, + 0, 75, 318, 331, 341, 331, 23, 306, 311, 310, + 430, 88, 0, 0, 76, 196, 197, 430, 88, 0, + 198, 0, 318, 331, 198, 0, 202, 0, 345, 202, + 0, 432, 0, 306, 24, 331, 341, 306, 25, 0, + 199, 26, 27, 0, 199, 26, 306, 297, 27, 331, + 0, 0, 199, 307, 24, 25, 200, 210, 212, 0, + 0, 199, 307, 24, 342, 25, 201, 210, 212, 0, + 432, 0, 306, 24, 331, 198, 306, 25, 0, 202, + 26, 27, 0, 202, 26, 306, 297, 27, 331, 0, + 0, 202, 307, 24, 25, 203, 228, 0, 0, 202, + 307, 24, 342, 25, 204, 228, 0, 0, 0, 77, + 432, 24, 342, 25, 206, 228, 207, 430, 88, 0, + 89, 371, 92, 0, 90, 358, 92, 0, 91, 359, + 92, 0, 89, 92, 0, 257, 0, 0, 211, 230, + 0, 0, 213, 214, 0, 217, 215, 0, 0, 216, + 178, 219, 430, 88, 0, 0, 0, 218, 177, 219, + 430, 88, 0, 0, 220, 183, 219, 0, 220, 0, + 223, 222, 223, 0, 180, 0, 181, 0, 52, 0, + 51, 0, 53, 0, 224, 0, 226, 24, 223, 25, + 0, 24, 223, 227, 223, 25, 0, 225, 0, 187, + 0, 431, 0, 185, 0, 225, 26, 27, 0, 225, + 26, 187, 27, 0, 34, 225, 0, 24, 225, 25, + 0, 225, 28, 432, 0, 225, 44, 432, 0, 221, + 0, 33, 0, 32, 0, 0, 0, 231, 0, 0, + 229, 231, 0, 238, 0, 232, 238, 0, 241, 0, + 232, 241, 0, 254, 0, 254, 232, 0, 234, 0, + 233, 21, 234, 0, 237, 235, 0, 431, 0, 185, + 0, 86, 0, 87, 0, 116, 0, 117, 0, 130, + 0, 0, 236, 237, 0, 0, 72, 239, 391, 430, + 88, 244, 0, 0, 72, 240, 233, 430, 88, 244, + 0, 74, 0, 245, 0, 0, 0, 72, 242, 391, + 430, 244, 0, 0, 72, 243, 233, 430, 244, 0, + 74, 0, 247, 0, 0, 245, 0, 0, 0, 73, + 246, 262, 0, 0, 73, 248, 263, 0, 78, 0, + 79, 0, 80, 0, 81, 0, 82, 0, 88, 0, + 88, 0, 83, 0, 84, 0, 119, 0, 137, 0, + 135, 0, 133, 0, 132, 0, 121, 0, 138, 0, + 150, 0, 0, 249, 331, 255, 268, 430, 251, 306, + 0, 0, 252, 331, 253, 256, 268, 430, 250, 306, + 0, 341, 0, 318, 331, 341, 0, 0, 19, 259, + 387, 0, 0, 391, 260, 380, 0, 209, 258, 0, + 266, 430, 88, 0, 430, 88, 0, 266, 430, 0, + 430, 0, 431, 0, 185, 0, 264, 26, 27, 0, + 264, 26, 265, 27, 0, 34, 264, 0, 24, 264, + 25, 0, 264, 28, 432, 0, 264, 44, 432, 0, + 264, 0, 187, 0, 264, 0, 266, 21, 264, 0, + 431, 0, 185, 0, 267, 26, 27, 0, 267, 26, + 265, 27, 0, 34, 267, 0, 24, 267, 25, 0, + 267, 28, 432, 0, 267, 44, 432, 0, 267, 0, + 268, 21, 267, 0, 431, 0, 185, 0, 187, 0, + 24, 295, 25, 0, 186, 0, 111, 0, 269, 0, + 270, 26, 295, 27, 0, 270, 24, 25, 0, 270, + 24, 271, 25, 0, 70, 24, 294, 21, 353, 25, + 0, 270, 331, 28, 432, 306, 0, 270, 331, 44, + 432, 306, 0, 270, 47, 0, 270, 48, 0, 294, + 0, 271, 21, 294, 0, 270, 0, 47, 272, 0, + 48, 272, 0, 29, 278, 0, 34, 278, 0, 33, + 278, 0, 32, 278, 0, 31, 278, 0, 30, 278, + 0, 275, 0, 274, 0, 273, 28, 432, 0, 432, + 0, 46, 306, 24, 353, 331, 21, 273, 25, 306, + 0, 0, 306, 276, 277, 0, 42, 24, 353, 25, + 0, 42, 272, 0, 43, 24, 353, 25, 0, 43, + 272, 0, 272, 0, 24, 353, 25, 278, 0, 278, + 0, 279, 34, 278, 0, 279, 35, 278, 0, 279, + 36, 278, 0, 279, 0, 280, 33, 279, 0, 280, + 32, 279, 0, 280, 0, 281, 49, 280, 0, 281, + 50, 280, 0, 281, 0, 282, 37, 281, 0, 282, + 38, 281, 0, 282, 51, 281, 0, 282, 52, 281, + 0, 282, 0, 283, 53, 282, 0, 283, 54, 282, + 0, 283, 0, 284, 29, 283, 0, 284, 0, 285, + 39, 284, 0, 285, 0, 286, 40, 285, 0, 286, + 0, 0, 287, 55, 288, 286, 0, 287, 0, 0, + 289, 56, 290, 287, 0, 289, 0, 0, 0, 289, + 41, 292, 295, 22, 293, 291, 0, 291, 0, 272, + 23, 294, 0, 272, 57, 294, 0, 272, 58, 294, + 0, 272, 59, 294, 0, 272, 60, 294, 0, 272, + 61, 294, 0, 272, 62, 294, 0, 272, 63, 294, + 0, 272, 64, 294, 0, 272, 65, 294, 0, 272, + 66, 294, 0, 294, 0, 295, 21, 294, 0, 0, + 295, 0, 291, 0, 299, 0, 71, 0, 304, 0, + 318, 306, 18, 0, 0, 318, 331, 341, 331, 300, + 306, 310, 18, 306, 0, 0, 318, 331, 341, 331, + 23, 301, 306, 311, 310, 18, 306, 0, 341, 331, + 0, 0, 341, 331, 23, 303, 306, 311, 0, 0, + 45, 318, 305, 331, 308, 306, 18, 0, 45, 318, + 306, 18, 0, 45, 308, 306, 18, 0, 0, 0, + 309, 306, 0, 302, 0, 308, 21, 331, 302, 0, + 0, 310, 21, 331, 302, 0, 294, 0, 19, 312, + 20, 0, 19, 312, 21, 20, 0, 311, 0, 312, + 21, 311, 0, 112, 0, 110, 0, 113, 0, 114, + 0, 115, 0, 108, 306, 0, 109, 306, 0, 116, + 306, 0, 117, 306, 0, 130, 306, 0, 131, 306, + 0, 132, 306, 0, 133, 306, 0, 118, 306, 0, + 120, 306, 0, 119, 306, 0, 128, 306, 0, 129, + 306, 0, 121, 306, 0, 123, 306, 0, 139, 306, + 0, 140, 306, 0, 142, 306, 0, 143, 306, 0, + 141, 306, 0, 136, 306, 0, 151, 306, 0, 134, + 306, 0, 135, 306, 0, 137, 306, 0, 124, 306, + 0, 127, 306, 0, 125, 306, 0, 126, 306, 0, + 156, 306, 0, 157, 306, 0, 148, 306, 0, 158, + 306, 0, 149, 306, 0, 152, 306, 0, 153, 306, + 0, 154, 306, 0, 155, 306, 0, 150, 306, 0, + 159, 306, 0, 160, 306, 0, 163, 306, 0, 164, + 306, 0, 161, 306, 0, 162, 306, 0, 175, 306, + 0, 147, 0, 144, 0, 145, 0, 146, 0, 165, + 331, 0, 167, 331, 0, 166, 331, 0, 168, 331, + 0, 169, 331, 0, 170, 331, 0, 171, 331, 0, + 172, 331, 0, 173, 331, 0, 174, 331, 0, 433, + 331, 0, 322, 331, 0, 336, 331, 0, 315, 331, + 0, 306, 318, 306, 0, 320, 0, 320, 85, 319, + 88, 0, 353, 0, 353, 21, 319, 0, 313, 321, + 0, 314, 321, 0, 316, 321, 0, 0, 318, 0, + 0, 0, 331, 67, 432, 306, 19, 323, 384, 332, + 385, 324, 20, 0, 0, 0, 331, 68, 432, 306, + 19, 325, 384, 332, 385, 326, 20, 0, 331, 67, + 432, 306, 19, 20, 0, 331, 68, 432, 306, 19, + 20, 0, 0, 0, 331, 67, 306, 19, 327, 384, + 332, 385, 328, 20, 0, 0, 0, 331, 68, 306, + 19, 329, 384, 332, 385, 330, 20, 0, 331, 67, + 306, 19, 20, 0, 331, 68, 306, 19, 20, 0, + 331, 67, 432, 331, 0, 331, 68, 432, 331, 0, + 0, 333, 0, 208, 0, 332, 333, 0, 318, 331, + 334, 306, 18, 0, 318, 306, 18, 0, 335, 331, + 0, 334, 21, 335, 331, 0, 341, 0, 22, 306, + 297, 0, 341, 22, 306, 297, 0, 331, 69, 19, + 338, 20, 306, 0, 0, 331, 69, 432, 19, 337, + 338, 20, 306, 0, 331, 69, 432, 306, 0, 339, + 0, 338, 21, 339, 0, 338, 21, 0, 432, 0, + 432, 23, 306, 297, 0, 199, 0, 355, 0, 345, + 190, 0, 345, 340, 0, 199, 0, 345, 199, 0, + 348, 0, 331, 346, 0, 108, 0, 109, 0, 343, + 0, 344, 343, 0, 34, 0, 34, 344, 0, 34, + 345, 0, 34, 344, 345, 0, 347, 0, 347, 21, + 5, 0, 432, 0, 347, 21, 432, 0, 5, 0, + 349, 0, 349, 21, 5, 0, 0, 350, 352, 0, + 0, 349, 21, 351, 352, 0, 306, 318, 340, 306, + 0, 432, 0, 317, 0, 317, 354, 0, 345, 0, + 356, 0, 345, 356, 0, 0, 356, 0, 306, 24, + 331, 354, 25, 0, 26, 27, 0, 26, 297, 27, + 0, 356, 26, 27, 0, 356, 26, 297, 27, 0, + 306, 24, 25, 0, 306, 24, 348, 25, 0, 356, + 306, 24, 25, 0, 356, 306, 24, 348, 25, 0, + 373, 0, 374, 0, 377, 0, 380, 0, 393, 0, + 396, 0, 427, 0, 401, 0, 429, 0, 22, 432, + 0, 360, 0, 358, 0, 367, 0, 360, 367, 0, + 400, 360, 0, 426, 372, 11, 24, 295, 25, 18, + 0, 426, 372, 11, 24, 295, 25, 0, 362, 367, + 0, 0, 0, 13, 24, 296, 18, 296, 18, 363, + 296, 364, 25, 0, 0, 188, 382, 24, 366, 404, + 25, 0, 189, 0, 373, 0, 374, 0, 377, 0, + 369, 391, 0, 369, 0, 370, 0, 393, 0, 368, + 0, 361, 0, 365, 0, 429, 0, 24, 367, 25, + 0, 1, 0, 395, 367, 0, 382, 19, 0, 386, + 20, 0, 372, 0, 390, 0, 373, 0, 374, 0, + 377, 0, 381, 0, 394, 0, 396, 0, 401, 0, + 428, 0, 24, 372, 25, 0, 429, 0, 1, 0, + 432, 22, 0, 107, 357, 0, 0, 6, 297, 375, + 22, 0, 0, 98, 6, 297, 376, 22, 0, 0, + 7, 378, 22, 0, 0, 98, 7, 379, 22, 0, + 24, 380, 25, 0, 382, 388, 0, 382, 389, 383, + 0, 0, 0, 0, 0, 0, 20, 0, 107, 20, + 0, 392, 20, 0, 392, 107, 20, 0, 391, 20, + 0, 391, 107, 20, 0, 391, 392, 20, 0, 391, + 392, 107, 20, 0, 19, 387, 0, 19, 20, 0, + 19, 390, 20, 0, 19, 391, 20, 0, 19, 391, + 392, 20, 0, 372, 0, 390, 372, 0, 298, 0, + 391, 298, 0, 357, 0, 392, 357, 0, 18, 0, + 295, 18, 0, 18, 0, 295, 18, 0, 295, 0, + 8, 24, 295, 25, 0, 395, 357, 0, 0, 395, + 357, 9, 397, 357, 0, 0, 10, 24, 295, 398, + 25, 357, 0, 11, 24, 295, 25, 0, 11, 24, + 295, 25, 0, 0, 0, 188, 402, 382, 24, 403, + 404, 25, 380, 425, 383, 0, 406, 0, 0, 404, + 405, 21, 406, 0, 424, 0, 431, 0, 186, 0, + 185, 0, 187, 0, 24, 295, 25, 0, 407, 0, + 270, 26, 295, 27, 0, 270, 24, 25, 0, 270, + 24, 271, 25, 0, 70, 24, 294, 21, 353, 25, + 0, 270, 331, 28, 432, 306, 0, 270, 331, 44, + 432, 306, 0, 270, 47, 0, 270, 48, 0, 408, + 0, 47, 272, 0, 48, 272, 0, 29, 278, 0, + 34, 278, 0, 33, 278, 0, 32, 278, 0, 31, + 278, 0, 30, 278, 0, 275, 0, 409, 0, 24, + 353, 25, 278, 0, 410, 0, 279, 34, 278, 0, + 279, 35, 278, 0, 279, 36, 278, 0, 411, 0, + 280, 33, 279, 0, 280, 32, 279, 0, 412, 0, + 281, 49, 280, 0, 281, 50, 280, 0, 413, 0, + 282, 37, 281, 0, 282, 38, 281, 0, 282, 51, + 281, 0, 282, 52, 281, 0, 414, 0, 283, 53, + 282, 0, 283, 54, 282, 0, 415, 0, 284, 29, + 283, 0, 416, 0, 285, 39, 284, 0, 417, 0, + 286, 40, 285, 0, 418, 0, 287, 55, 286, 0, + 419, 0, 289, 56, 287, 0, 420, 0, 0, 0, + 289, 41, 422, 295, 22, 423, 291, 0, 421, 0, + 272, 23, 294, 0, 272, 57, 294, 0, 272, 58, + 294, 0, 272, 59, 294, 0, 272, 60, 294, 0, + 272, 61, 294, 0, 272, 62, 294, 0, 272, 63, + 294, 0, 272, 64, 294, 0, 272, 65, 294, 0, + 272, 66, 294, 0, 189, 0, 0, 12, 0, 399, + 357, 0, 426, 357, 11, 24, 295, 25, 18, 0, + 362, 357, 0, 399, 372, 0, 426, 372, 11, 24, + 295, 25, 18, 0, 426, 372, 11, 24, 295, 25, + 0, 362, 372, 0, 14, 432, 18, 0, 15, 18, + 0, 97, 15, 18, 0, 16, 18, 0, 93, 16, + 18, 0, 94, 16, 18, 0, 95, 16, 18, 0, + 96, 16, 18, 0, 17, 18, 0, 17, 295, 18, + 0, 0, 18, 0, 184, 0, 185, 0, 188, 0, + 189, 0, 431, 0, 186, 0, 190, 0, 186, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 268, 269, 272, 273, 276, 277, 278, 279, 280, 281, - 282, 285, 287, 291, 291, 296, 302, 306, 307, 311, - 312, 314, 316, 320, 323, 331, 334, 342, 343, 345, - 347, 363, 367, 374, 378, 384, 386, 386, 390, 391, - 392, 393, 396, 399, 400, 406, 407, 411, 415, 420, - 427, 431, 436, 443, 446, 447, 450, 455, 456, 459, - 460, 461, 464, 465, 466, 471, 472, 480, 483, 485, - 486, 491, 492, 493, 495, 511, 515, 516, 521, 522, - 532, 533, 536, 537, 540, 541, 544, 545, 548, 549, - 552, 555, 556, 559, 560, 561, 562, 563, 566, 567, - 570, 570, 573, 573, 576, 580, 581, 584, 584, 587, - 587, 590, 594, 595, 598, 599, 602, 608, 615, 621, - 628, 629, 630, 631, 632, 635, 638, 641, 642, 645, - 646, 647, 648, 649, 650, 651, 652, 655, 661, 668, - 674, 683, 689, 693, 695, 699, 702, 709, 719, 720, - 723, 724, 727, 728, 729, 730, 731, 732, 733, 734, - 738, 739, 743, 744, 747, 749, 751, 752, 753, 754, - 755, 757, 761, 765, 777, 778, 779, 780, 781, 782, - 785, 786, 787, 788, 789, 790, 791, 792, 793, 796, - 797, 800, 801, 802, 803, 804, 805, 806, 807, 808, - 809, 810, 813, 814, 817, 821, 822, 825, 826, 827, - 828, 831, 832, 836, 837, 838, 839, 842, 843, 844, - 847, 848, 849, 852, 853, 854, 855, 856, 859, 860, - 861, 864, 865, 868, 869, 873, 874, 877, 878, 883, - 889, 890, 896, 902, 903, 903, 905, 908, 909, 910, - 911, 912, 913, 914, 915, 916, 917, 918, 919, 922, - 923, 926, 927, 930, 935, 936, 937, 940, 953, 957, - 958, 961, 966, 967, 967, 972, 973, 974, 975, 978, - 981, 984, 987, 988, 991, 992, 995, 996, 997, 1001, - 1003, 1012, 1013, 1014, 1015, 1016, 1019, 1020, 1021, 1022, - 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, - 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, - 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, - 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, - 1063, 1064, 1070, 1071, 1072, 1073, 1076, 1077, 1078, 1079, - 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, - 1092, 1096, 1097, 1101, 1102, 1106, 1107, 1108, 1111, 1112, - 1115, 1117, 1119, 1120, 1122, 1124, 1125, 1127, 1129, 1131, - 1133, 1134, 1136, 1138, 1139, 1141, 1143, 1144, 1147, 1150, - 1151, 1152, 1155, 1157, 1161, 1163, 1167, 1168, 1169, 1173, - 1175, 1175, 1177, 1180, 1182, 1184, 1187, 1192, 1199, 1200, - 1201, 1208, 1212, 1213, 1217, 1218, 1221, 1222, 1225, 1226, - 1229, 1230, 1231, 1232, 1235, 1236, 1239, 1240, 1243, 1244, - 1245, 1248, 1248, 1249, 1250, 1253, 1265, 1281, 1282, 1285, - 1286, 1287, 1290, 1291, 1294, 1296, 1297, 1299, 1300, 1302, - 1304, 1306, 1308, 1314, 1315, 1316, 1317, 1318, 1319, 1320, - 1321, 1322, 1337, 1342, 1345, 1348, 1349, 1353, 1355, 1357, - 1359, 1363, 1364, 1366, 1370, 1372, 1374, 1377, 1378, 1379, - 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, - 1392, 1398, 1401, 1404, 1405, 1408, 1409, 1410, 1411, 1412, - 1413, 1414, 1415, 1416, 1417, 1418, 1421, 1422, 1428, 1429, - 1430, 1431, 1434, 1435, 1436, 1437, 1440, 1441, 1445, 1448, - 1451, 1454, 1457, 1460, 1463, 1464, 1465, 1466, 1468, 1469, - 1471, 1473, 1480, 1484, 1486, 1488, 1490, 1494, 1495, 1498, - 1499, 1502, 1503, 1506, 1507, 1510, 1511, 1512, 1515, 1523, - 1528, 1529, 1533, 1534, 1537, 1542, 1545, 1546, 1547, 1555, - 1556, 1556, 1560, 1561, 1562, 1573, 1580, 1581, 1584, 1585, - 1586, 1587, 1588, 1590, 1591, 1592, 1593, 1596, 1597, 1598, - 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1608, 1609, 1612, - 1613, 1614, 1615, 1618, 1619, 1620, 1623, 1624, 1625, 1628, - 1629, 1630, 1631, 1632, 1635, 1636, 1637, 1640, 1641, 1644, - 1645, 1649, 1650, 1653, 1654, 1657, 1658, 1661, 1662, 1663, - 1664, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, - 1676, 1677, 1678, 1681, 1682, 1685, 1688, 1690, 1692, 1696, - 1697, 1699, 1701, 1704, 1705, 1706, 1708, 1709, 1710, 1711, - 1712, 1713, 1714, 1717, 1718, 1721, 1724, 1725, 1726, 1727, - 1728, 1731, 1732 + 269, 270, 273, 274, 277, 278, 279, 280, 281, 282, + 283, 286, 288, 292, 292, 297, 303, 307, 308, 312, + 313, 315, 317, 321, 324, 332, 335, 343, 344, 346, + 348, 364, 368, 375, 379, 385, 387, 387, 391, 392, + 393, 394, 397, 400, 401, 407, 408, 412, 416, 421, + 428, 432, 437, 444, 447, 448, 451, 456, 457, 460, + 461, 462, 465, 466, 467, 472, 473, 481, 484, 486, + 487, 492, 493, 494, 496, 512, 516, 517, 522, 523, + 533, 534, 537, 538, 541, 542, 545, 546, 549, 550, + 553, 556, 557, 560, 561, 562, 563, 564, 567, 568, + 571, 571, 574, 574, 577, 581, 582, 585, 585, 588, + 588, 591, 595, 596, 599, 600, 603, 609, 616, 622, + 629, 630, 631, 632, 633, 636, 639, 642, 643, 646, + 647, 648, 649, 650, 651, 652, 653, 656, 662, 669, + 675, 684, 690, 694, 696, 700, 703, 710, 720, 721, + 724, 725, 728, 729, 730, 731, 732, 733, 734, 735, + 739, 740, 744, 745, 748, 750, 752, 753, 754, 755, + 756, 758, 762, 766, 778, 779, 780, 781, 782, 783, + 786, 787, 788, 789, 790, 791, 792, 793, 794, 797, + 798, 801, 802, 803, 804, 805, 806, 807, 808, 809, + 810, 811, 814, 815, 818, 822, 823, 826, 827, 828, + 829, 832, 833, 837, 838, 839, 840, 843, 844, 845, + 848, 849, 850, 853, 854, 855, 856, 857, 860, 861, + 862, 865, 866, 869, 870, 874, 875, 878, 879, 884, + 890, 891, 897, 903, 904, 904, 906, 909, 910, 911, + 912, 913, 914, 915, 916, 917, 918, 919, 920, 923, + 924, 927, 928, 931, 936, 937, 938, 941, 954, 958, + 959, 962, 967, 968, 968, 973, 974, 975, 976, 979, + 982, 985, 988, 989, 992, 993, 996, 997, 998, 1002, + 1004, 1013, 1014, 1015, 1016, 1017, 1020, 1021, 1022, 1023, + 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, + 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, + 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, + 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, + 1064, 1065, 1071, 1072, 1073, 1074, 1077, 1078, 1079, 1080, + 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, + 1093, 1097, 1098, 1102, 1103, 1107, 1108, 1109, 1112, 1113, + 1116, 1118, 1120, 1121, 1123, 1125, 1126, 1128, 1130, 1132, + 1134, 1135, 1137, 1139, 1140, 1142, 1144, 1145, 1148, 1151, + 1152, 1153, 1156, 1158, 1162, 1164, 1168, 1169, 1170, 1174, + 1176, 1176, 1178, 1181, 1183, 1185, 1188, 1193, 1200, 1201, + 1202, 1209, 1213, 1214, 1218, 1219, 1222, 1223, 1226, 1227, + 1230, 1231, 1232, 1233, 1236, 1237, 1240, 1241, 1244, 1245, + 1246, 1249, 1249, 1250, 1251, 1254, 1266, 1282, 1283, 1286, + 1287, 1288, 1291, 1292, 1295, 1297, 1298, 1300, 1301, 1303, + 1305, 1307, 1309, 1315, 1316, 1317, 1318, 1319, 1320, 1321, + 1322, 1323, 1338, 1343, 1346, 1349, 1350, 1354, 1356, 1358, + 1360, 1364, 1365, 1367, 1371, 1373, 1375, 1378, 1379, 1380, + 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, + 1393, 1399, 1402, 1405, 1406, 1409, 1410, 1411, 1412, 1413, + 1414, 1415, 1416, 1417, 1418, 1419, 1422, 1423, 1429, 1430, + 1431, 1432, 1435, 1436, 1437, 1438, 1441, 1442, 1446, 1449, + 1452, 1455, 1458, 1461, 1464, 1465, 1466, 1467, 1469, 1470, + 1472, 1474, 1481, 1485, 1487, 1489, 1491, 1495, 1496, 1499, + 1500, 1503, 1504, 1507, 1508, 1511, 1512, 1513, 1516, 1524, + 1529, 1530, 1534, 1535, 1538, 1543, 1546, 1547, 1548, 1556, + 1557, 1557, 1561, 1562, 1563, 1574, 1581, 1582, 1585, 1586, + 1587, 1588, 1589, 1591, 1592, 1593, 1594, 1597, 1598, 1599, + 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1609, 1610, 1613, + 1614, 1615, 1616, 1619, 1620, 1621, 1624, 1625, 1626, 1629, + 1630, 1631, 1632, 1633, 1636, 1637, 1638, 1641, 1642, 1645, + 1646, 1650, 1651, 1654, 1655, 1658, 1659, 1662, 1663, 1664, + 1665, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, + 1677, 1678, 1679, 1682, 1683, 1686, 1689, 1691, 1693, 1697, + 1698, 1700, 1702, 1705, 1706, 1707, 1709, 1710, 1711, 1712, + 1713, 1714, 1715, 1718, 1719, 1722, 1725, 1726, 1727, 1728, + 1729, 1732, 1733 }; #endif @@ -732,7 +733,7 @@ static const char * const yytname[] = { "$","error","$undefined.","BADTOK", "QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE", "QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED", "QSETBUFFERSIZE","QBUFFERCONSTRAINT","QENSURESCONSTRAINT","QSETSTRINGLENGTH", -"QMAXSET","QMAXREAD","QTESTINRANGE","IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID", +"QMAXSET","QMAXREAD","QTESTINRANGE","TCAND","IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID", "CCONSTANT","ITER_NAME","ITER_ENDNAME","TYPE_NAME","file","externalDefs","externalDef", "constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2", "@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr", @@ -776,73 +777,73 @@ static const char * const yytname[] = { "$","error","$undefined.","BADTOK", #endif static const short yyr1[] = { 0, - 190, 190, 191, 191, 192, 192, 192, 192, 192, 192, - 192, 193, 193, 195, 194, 196, 196, 197, 197, 198, - 198, 198, 198, 199, 198, 200, 198, 201, 201, 201, - 201, 202, 201, 203, 201, 205, 206, 204, 207, 207, - 207, 207, 208, 210, 209, 212, 211, 213, 215, 214, - 214, 217, 216, 216, 218, 218, 219, 220, 220, 221, - 221, 221, 222, 222, 222, 223, 223, 224, 224, 224, - 224, 224, 224, 224, 224, 225, 226, 226, -1, -1, - 228, 227, 229, 229, 230, 230, 231, 231, 232, 232, - 233, 234, 234, 235, 235, 235, 235, 235, 236, 236, - 238, 237, 239, 237, 237, 237, 237, 241, 240, 242, - 240, 240, 240, 240, 243, 243, 245, 244, 247, 246, - 248, 248, 248, 248, 248, 249, 250, 251, 251, 252, - 252, 252, 252, 252, 252, 252, 252, 254, 253, 255, - 253, 256, 256, 258, 257, 259, 257, 260, 261, 261, - 262, 262, 263, 263, 263, 263, 263, 263, 263, 263, - 264, 264, 265, 265, 266, 266, 266, 266, 266, 266, - 266, 266, 267, 267, 268, 268, 268, 268, 268, 268, - 269, 269, 269, 269, 269, 269, 269, 269, 269, 270, - 270, 271, 271, 271, 271, 271, 271, 271, 271, 271, - 271, 271, 272, 272, 273, 275, 274, 276, 276, 276, - 276, 277, 277, 278, 278, 278, 278, 279, 279, 279, - 280, 280, 280, 281, 281, 281, 281, 281, 282, 282, - 282, 283, 283, 284, 284, 285, 285, 286, 287, 286, - 288, 289, 288, 290, 291, 292, 290, 293, 293, 293, - 293, 293, 293, 293, 293, 293, 293, 293, 293, 294, - 294, 295, 295, 296, 297, 297, 297, 298, 299, 298, - 300, 298, 301, 302, 301, 304, 303, 303, 303, 305, - 306, 307, 308, 308, 309, 309, 310, 310, 310, 311, - 311, 312, 312, 312, 312, 312, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 314, 314, 314, 314, 315, 315, 315, 315, - 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, - 316, 317, 317, 318, 318, 319, 319, 319, 320, 320, - 322, 323, 321, 324, 325, 321, 321, 321, 326, 327, - 321, 328, 329, 321, 321, 321, 321, 321, 330, 331, - 331, 331, 332, 332, 333, 333, 334, 334, 334, 335, - 336, 335, 335, 337, 337, 337, 338, 338, 339, 339, - 339, 339, 340, 340, 341, 341, 342, 342, 343, 343, - 344, 344, 344, 344, 345, 345, 346, 346, 347, 347, - 347, 349, 348, 350, 348, 351, 351, 352, 352, 353, - 353, 353, 354, 354, 355, 355, 355, 355, 355, 355, - 355, 355, 355, 356, 356, 356, 356, 356, 356, 356, - 356, 356, -1, 357, 358, 359, 359, 360, 360, 360, - 360, 362, 363, 361, 365, 364, 364, 366, 366, 366, - 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, - 367, 368, 369, 370, 370, 371, 371, 371, 371, 371, - 371, 371, 371, 371, 371, 371, 372, 372, 374, 373, - 375, 373, 377, 376, 378, 376, 379, 379, 380, 381, - 382, 383, 384, 385, 386, 386, 386, 386, 386, 386, - 386, 386, 387, 388, 388, 388, 388, 389, 389, 390, - 390, 391, 391, 392, 392, 393, 393, 393, 394, 395, - 396, 395, 397, 395, 398, 399, 401, 402, 400, 403, - 404, 403, 405, 405, 405, 405, 406, 406, 407, 407, - 407, 407, 407, 407, 407, 407, 407, 408, 408, 408, - 408, 408, 408, 408, 408, 408, 408, 409, 409, 410, - 410, 410, 410, 411, 411, 411, 412, 412, 412, 413, - 413, 413, 413, 413, 414, 414, 414, 415, 415, 416, - 416, 417, 417, 418, 418, 419, 419, 420, 421, 422, - 420, 423, 423, 423, 423, 423, 423, 423, 423, 423, - 423, 423, 423, 424, 424, 425, 426, 426, 426, 427, - 427, 427, 427, 428, 428, 428, 428, 428, 428, 428, - 428, 428, 428, 429, 429, 430, 431, 431, 431, 431, - 431, 432, 432 + 191, 191, 192, 192, 193, 193, 193, 193, 193, 193, + 193, 194, 194, 196, 195, 197, 197, 198, 198, 199, + 199, 199, 199, 200, 199, 201, 199, 202, 202, 202, + 202, 203, 202, 204, 202, 206, 207, 205, 208, 208, + 208, 208, 209, 211, 210, 213, 212, 214, 216, 215, + 215, 218, 217, 217, 219, 219, 220, 221, 221, 222, + 222, 222, 223, 223, 223, 224, 224, 225, 225, 225, + 225, 225, 225, 225, 225, 226, 227, 227, -1, -1, + 229, 228, 230, 230, 231, 231, 232, 232, 233, 233, + 234, 235, 235, 236, 236, 236, 236, 236, 237, 237, + 239, 238, 240, 238, 238, 238, 238, 242, 241, 243, + 241, 241, 241, 241, 244, 244, 246, 245, 248, 247, + 249, 249, 249, 249, 249, 250, 251, 252, 252, 253, + 253, 253, 253, 253, 253, 253, 253, 255, 254, 256, + 254, 257, 257, 259, 258, 260, 258, 261, 262, 262, + 263, 263, 264, 264, 264, 264, 264, 264, 264, 264, + 265, 265, 266, 266, 267, 267, 267, 267, 267, 267, + 267, 267, 268, 268, 269, 269, 269, 269, 269, 269, + 270, 270, 270, 270, 270, 270, 270, 270, 270, 271, + 271, 272, 272, 272, 272, 272, 272, 272, 272, 272, + 272, 272, 273, 273, 274, 276, 275, 277, 277, 277, + 277, 278, 278, 279, 279, 279, 279, 280, 280, 280, + 281, 281, 281, 282, 282, 282, 282, 282, 283, 283, + 283, 284, 284, 285, 285, 286, 286, 287, 288, 287, + 289, 290, 289, 291, 292, 293, 291, 294, 294, 294, + 294, 294, 294, 294, 294, 294, 294, 294, 294, 295, + 295, 296, 296, 297, 298, 298, 298, 299, 300, 299, + 301, 299, 302, 303, 302, 305, 304, 304, 304, 306, + 307, 308, 309, 309, 310, 310, 311, 311, 311, 312, + 312, 313, 313, 313, 313, 313, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 315, 315, 315, 315, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, + 317, 318, 318, 319, 319, 320, 320, 320, 321, 321, + 323, 324, 322, 325, 326, 322, 322, 322, 327, 328, + 322, 329, 330, 322, 322, 322, 322, 322, 331, 332, + 332, 332, 333, 333, 334, 334, 335, 335, 335, 336, + 337, 336, 336, 338, 338, 338, 339, 339, 340, 340, + 340, 340, 341, 341, 342, 342, 343, 343, 344, 344, + 345, 345, 345, 345, 346, 346, 347, 347, 348, 348, + 348, 350, 349, 351, 349, 352, 352, 353, 353, 354, + 354, 354, 355, 355, 356, 356, 356, 356, 356, 356, + 356, 356, 356, 357, 357, 357, 357, 357, 357, 357, + 357, 357, -1, 358, 359, 360, 360, 361, 361, 361, + 361, 363, 364, 362, 366, 365, 365, 367, 367, 367, + 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, + 368, 369, 370, 371, 371, 372, 372, 372, 372, 372, + 372, 372, 372, 372, 372, 372, 373, 373, 375, 374, + 376, 374, 378, 377, 379, 377, 380, 380, 381, 382, + 383, 384, 385, 386, 387, 387, 387, 387, 387, 387, + 387, 387, 388, 389, 389, 389, 389, 390, 390, 391, + 391, 392, 392, 393, 393, 394, 394, 394, 395, 396, + 397, 396, 398, 396, 399, 400, 402, 403, 401, 404, + 405, 404, 406, 406, 406, 406, 407, 407, 408, 408, + 408, 408, 408, 408, 408, 408, 408, 409, 409, 409, + 409, 409, 409, 409, 409, 409, 409, 410, 410, 411, + 411, 411, 411, 412, 412, 412, 413, 413, 413, 414, + 414, 414, 414, 414, 415, 415, 415, 416, 416, 417, + 417, 418, 418, 419, 419, 420, 420, 421, 422, 423, + 421, 424, 424, 424, 424, 424, 424, 424, 424, 424, + 424, 424, 424, 425, 425, 426, 427, 427, 427, 428, + 428, 428, 428, 429, 429, 429, 429, 429, 429, 429, + 429, 429, 429, 430, 430, 431, 432, 432, 432, 432, + 432, 433, 433 }; static const short yyr2[] = { 0, @@ -850,8 +851,8 @@ static const short yyr2[] = { 0, 1, 8, 11, 0, 5, 1, 3, 1, 2, 1, 6, 3, 6, 0, 7, 0, 8, 1, 6, 3, 6, 0, 6, 0, 7, 0, 0, 10, 3, 3, - 3, 2, 1, 0, 2, 0, 2, 2, 0, 4, - 0, 0, 4, 0, 2, 1, 4, 1, 1, 1, + 3, 2, 1, 0, 2, 0, 2, 2, 0, 5, + 0, 0, 5, 0, 3, 1, 3, 1, 1, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 4, 2, 3, 3, 3, 1, 1, 1, 0, 2, 0, 2, 1, 2, 1, 2, 1, 2, 1, 3, @@ -1024,29 +1025,29 @@ static const short yydefact[] = { 0, 389, 397, 0, 372, 0, 375, 289, 291, 0, 38, 654, 654, 120, 654, 152, 280, 0, 205, 203, 634, 521, 0, 186, 187, 620, 0, 0, 0, 58, 59, - 69, 67, 0, 56, 76, 0, 63, 66, 0, 68, + 69, 67, 654, 56, 76, 0, 63, 66, 0, 68, 0, 99, 0, 100, 93, 91, 92, 0, 157, 0, 0, 0, 0, 0, 150, 0, 0, 166, 173, 654, 165, 0, 280, 286, 280, 280, 0, 395, 280, 381, 0, 384, 0, 13, 116, 116, 151, 474, 559, 185, - 280, 0, 0, 66, 0, 72, 53, 55, 61, 60, + 280, 654, 0, 66, 0, 72, 0, 0, 61, 60, 62, 0, 0, 0, 0, 0, 116, 90, 116, 158, 155, 162, 161, 0, 159, 160, 164, 149, 0, 169, 0, 0, 0, 0, 0, 654, 272, 398, 389, 393, - 280, 373, 376, 109, 115, 111, 621, 50, 78, 77, - 0, 73, 0, 0, 70, 0, 74, 75, 0, 102, - 104, 156, 170, 167, 0, 171, 172, 174, 127, 280, - 0, 396, 399, 0, 57, 71, 64, 168, 139, 126, - 280, 65, 141, 0, 0, 0 + 280, 373, 376, 109, 115, 111, 621, 0, 78, 77, + 0, 73, 0, 53, 55, 57, 70, 0, 74, 75, + 0, 102, 104, 156, 170, 167, 0, 171, 172, 174, + 127, 280, 0, 396, 399, 50, 0, 71, 64, 168, + 139, 126, 280, 65, 141, 0, 0, 0 }; -static const short yydefgoto[] = { 1214, +static const short yydefgoto[] = { 1216, 82, 83, 84, 85, 122, 320, 321, 86, 657, 765, 322, 790, 906, 87, 689, 908, 891, 89, 763, 764, 868, 869, 969, 1014, 1015, 970, 971, 1083, 1084, 1085, 1142, 1086, 1087, 1088, 1089, 1181, 795, 796, 880, 912, 881, 1023, 1024, 1096, 1025, 1026, 882, 972, 973, 914, - 996, 997, 1174, 1175, 974, 915, 998, 884, 1211, 1200, + 996, 997, 1174, 1175, 974, 915, 998, 884, 1213, 1202, 885, 1044, 886, 1035, 1112, 90, 289, 449, 451, 91, 1030, 1063, 1031, 1154, 1032, 1109, 1110, 162, 163, 519, 164, 923, 165, 166, 421, 557, 167, 168, 169, 170, @@ -1068,406 +1069,405 @@ static const short yydefgoto[] = { 1214, 200, 109 }; -static const short yypact[] = { 2064, --32768, 361, 5617,-32768, 6626,-32768, 803, 2992, 3372, 3372, +static const short yypact[] = { 2053, +-32768, 117, 5389,-32768, 6235,-32768, 896, 3028, 3410, 3410, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 134,-32768,-32768, --32768, 2240,-32768,-32768,-32768, 273,-32768,-32768, 5145,-32768, - 170,-32768,-32768,-32768, 189, 6461, 6461,-32768, 6461, 253, - 151,-32768, 654,-32768,-32768, 803,-32768,-32768,-32768,-32768, --32768,-32768, 361,-32768,-32768, 269,-32768, 253,-32768,-32768, --32768, 5617,-32768, 319,-32768, 5853,-32768, 330, 337, 351, --32768, 366, 803, 397, 412, 1980,-32768, 2614, 5853, 5853, - 5853, 5853, 5853, 5853,-32768, 5888, 5888, 439,-32768, 457, - 463, 494, 516, 502, 479, 4592,-32768, 536, 559,-32768, - 579,-32768, 760, 1080,-32768,-32768,-32768, 1076, 538, 94, - 585, 554, 604, 549, 588, 598, 111,-32768,-32768, 406, --32768, 3415, 567, 601,-32768,-32768,-32768,-32768, 689, 3035, --32768, 4592,-32768, 3415,-32768, 3415,-32768,-32768, 693, 719, --32768, 728,-32768, 2803, 579, 761, 436, 666, 3182,-32768, - 3372,-32768,-32768,-32768, 6221,-32768,-32768,-32768,-32768, 778, - 779,-32768, 3372, 3372, 3415,-32768,-32768, 721,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 557,-32768,-32768, +-32768, 2229,-32768,-32768,-32768, 430,-32768,-32768, 5126,-32768, + 105,-32768,-32768,-32768, 124, 6069, 6069,-32768, 6069, 118, + 80,-32768, 527,-32768,-32768, 896,-32768,-32768,-32768,-32768, +-32768,-32768, 117,-32768,-32768, 156,-32768, 118,-32768,-32768, +-32768, 5389,-32768, 162,-32768, 5552,-32768, 183, 197, 205, +-32768, 213, 896, 283, 311, 892,-32768, 2605, 5552, 5552, + 5552, 5552, 5552, 5552,-32768, 5563, 5563, 288,-32768, 366, + 374, 379, 387, 345, 149, 4650,-32768, 389, 412,-32768, + 436,-32768, 834, 963,-32768,-32768,-32768, 821, 303, 636, + 294, 683, 439, 457, 463, 453, 106,-32768,-32768, 333, +-32768, 3558, 427, 435,-32768,-32768,-32768,-32768, 517, 3176, +-32768, 4650,-32768, 3558,-32768, 3558,-32768,-32768, 519, 537, +-32768, 565,-32768, 2795, 436, 585, 344, 523, 3219,-32768, + 3410,-32768,-32768,-32768, 5829,-32768,-32768,-32768,-32768, 604, + 623,-32768, 3410, 3410, 3558,-32768,-32768, 561,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 796, 787,-32768,-32768,-32768, - 253, 4988,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 788, 541,-32768,-32768, 803, 803, 50,-32768, 273,-32768, --32768,-32768,-32768, 827,-32768,-32768, 860, 798, 541, 170, --32768, 514, 861,-32768, 803,-32768, 293, 5853,-32768,-32768, --32768,-32768,-32768,-32768, 865, 5853, 5853, 5853, 2236, 872, --32768,-32768,-32768, 450, 291, 6090, 232, 870, 880,-32768, --32768,-32768,-32768,-32768,-32768, 893, 5853,-32768,-32768, 5853, - 913, 919, 924, 939, 942, 5853,-32768, 5404,-32768, 4592, --32768,-32768,-32768,-32768, 944,-32768,-32768, 4592,-32768, 4592, --32768,-32768,-32768, 5628, 5853,-32768,-32768, 106, 5853, 5853, - 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, - 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, - 5853, 5853, 5853, 5853, 5853,-32768,-32768,-32768,-32768, 5853, - 599,-32768,-32768, 2425,-32768,-32768, 970,-32768, 974,-32768, - 5853, 529, 967, 977,-32768,-32768,-32768,-32768, 6221,-32768, --32768,-32768, 1890, 993,-32768,-32768, 5853, 96, 3562, 541, - 982,-32768, 541,-32768, 90, 6626, 921, 1022, 1018, 1034, - 1037, 1034, 803, 1050, 541,-32768, 541,-32768,-32768,-32768, - 926, 1019, 1048,-32768, 541, 514,-32768, 803, 1051,-32768, - 1054, 803, 201, 1060,-32768, 302, 1062, 323, 1062, 1075, --32768,-32768,-32768,-32768, 5791, 1072, 593,-32768, 707, 5853, --32768,-32768, 1079,-32768,-32768,-32768,-32768,-32768,-32768, 1082, - 1083,-32768, 3562,-32768,-32768, 1086, 1077,-32768, 356,-32768, - 145, 803, 803,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 1076, 1076, 538, - 538, 94, 94, 94, 94, 585, 585, 554, 604, 549, - 5853, 5853, 5853,-32768, 5919, 5980,-32768,-32768, 5377,-32768, - 3225, 3746,-32768,-32768, 1081, 389,-32768,-32768, 1091, 1093, --32768, 1100,-32768, 4114,-32768,-32768, 3930, 4157,-32768, 982, --32768,-32768, 1084,-32768,-32768, 1106, 1114,-32768, 1127, 1129, --32768, 752,-32768, 1130,-32768,-32768,-32768, 269,-32768, 255, --32768,-32768, 5853, 250, 541,-32768,-32768, 1134,-32768,-32768, - 1159, 6626,-32768,-32768,-32768,-32768, 1140,-32768, 2236,-32768, --32768, 1141, 578, 707, 5802, 1143,-32768,-32768,-32768, 1161, --32768,-32768,-32768, 1157,-32768, 5853,-32768,-32768,-32768,-32768, - 588, 770, 598, 5853,-32768, 5853,-32768,-32768,-32768, 4259, - 4592, 5853,-32768, 6011, 5853,-32768,-32768,-32768,-32768,-32768, - 4302, 4404,-32768, 4447,-32768, 1162,-32768,-32768,-32768,-32768, --32768, 1164,-32768,-32768, 1166,-32768, 803,-32768, 803, 1171, - 5538,-32768,-32768, 1163,-32768, 1167,-32768, 346,-32768,-32768, - 803, 741, 4592, 1173,-32768,-32768, 143, 1168,-32768, 1169, - 122, 1176, 1174,-32768, 5853, 6011,-32768,-32768,-32768,-32768, - 1179, 1180,-32768,-32768, 411, 5853, 5853, 5853, 5853, 5853, - 5853, 5853, 5888, 5888, 1170, 475, 483, 530, 1016, 1113, - 543, 1088, 836, 848, 726, 869, 1172, 1177, 1175, 1151, - 156, 1182,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 566, - 572,-32768,-32768, 1007,-32768,-32768,-32768, 4549,-32768,-32768, --32768,-32768, 6548,-32768,-32768, 6548,-32768,-32768,-32768,-32768, - 5853, 891,-32768, 5538,-32768,-32768, 5538, 1124,-32768,-32768, --32768, 1188,-32768,-32768,-32768, 1257,-32768, 273, 1194,-32768, - 641,-32768, 707,-32768,-32768, 1195,-32768,-32768,-32768, 1199, - 803,-32768, 629, 1200, 5853,-32768,-32768, 1208, 645, 1203, - 777, 784, 814, 837, 846, 875, 889, 909, 5853, 5822, - 5853, 915, 922, 137, 5853, 5853, 5853, 5853, 5853, 5853, - 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, - 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, - 5853, 5853,-32768, 5853,-32768, 1210, 1214,-32768, 1056, 77, +-32768,-32768,-32768,-32768,-32768, 640, 653,-32768,-32768,-32768, + 118, 4969,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 662, 607,-32768,-32768, 896, 896, -10,-32768, 430,-32768, +-32768,-32768,-32768, 707,-32768,-32768, 729, 684, 607, 105, +-32768, 648, 677,-32768, 896,-32768, 285, 5552,-32768,-32768, +-32768,-32768,-32768,-32768, 747, 5552, 5552, 5552, 1041, 736, +-32768,-32768,-32768, 414, 641, 5698, 375, 757, 781,-32768, +-32768,-32768,-32768,-32768,-32768, 785, 5552,-32768,-32768, 5552, + 796, 806, 811, 822, 827, 5552,-32768, 2225,-32768, 4650, +-32768,-32768,-32768,-32768, 871,-32768,-32768, 4650,-32768, 4650, +-32768,-32768,-32768, 3261, 5552,-32768,-32768, 140, 5552, 5552, + 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, + 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, + 5552, 5552, 5552, 5552, 5552,-32768,-32768,-32768,-32768, 5552, + 829,-32768,-32768, 2415,-32768,-32768, 854,-32768, 874,-32768, + 5552, 730, 902, 913,-32768,-32768,-32768,-32768, 5829,-32768, +-32768,-32768, 2985, 971,-32768,-32768, 5552, 260, 3660, 607, + 948,-32768, 607,-32768, 275, 6235, 891, 953, 998, 1018, + 1027, 1018, 896, 1029, 607,-32768, 607,-32768,-32768,-32768, + 979, 1042, 1032,-32768, 607, 648,-32768, 896, 965,-32768, + 1043, 896, 274, 1093,-32768, 301, 1099, 367, 1099, 1108, +-32768,-32768,-32768,-32768, 3452, 1124, 840,-32768, 853, 5552, +-32768,-32768, 1115,-32768,-32768,-32768,-32768,-32768,-32768, 1119, + 1140,-32768, 3660,-32768,-32768, 1156, 1144,-32768, 458,-32768, + 256, 896, 896,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 821, 821, 303, + 303, 636, 636, 636, 636, 294, 294, 683, 439, 457, + 5552, 5552, 5552,-32768, 5583, 5594,-32768,-32768, 5321,-32768, + 3367, 3845,-32768,-32768, 1157, 512,-32768,-32768, 1159, 1160, +-32768, 1161,-32768, 1967,-32768,-32768, 4030, 4215,-32768, 948, +-32768,-32768, 1169,-32768,-32768, 1173, 1175,-32768, 1176, 1178, +-32768, 886,-32768, 1172,-32768,-32768,-32768, 156,-32768, 193, +-32768,-32768, 5552, 524, 607,-32768,-32768, 1180,-32768,-32768, + 1194, 6235,-32768,-32768,-32768,-32768, 1179,-32768, 1041,-32768, +-32768, 1184, 923, 853, 3514, 1181,-32768,-32768,-32768, 1190, +-32768,-32768,-32768, 1182,-32768, 5552,-32768,-32768,-32768,-32768, + 463, 898, 453, 5552,-32768, 5552,-32768,-32768,-32768, 4258, + 4650, 5552,-32768, 5614, 5552,-32768,-32768,-32768,-32768,-32768, + 4360, 4403,-32768, 4505,-32768, 1189,-32768,-32768,-32768,-32768, +-32768, 1183,-32768,-32768, 1195,-32768, 896,-32768, 896, 1198, + 3070,-32768,-32768, 1192,-32768, 1196,-32768, 535,-32768,-32768, + 896, 637, 4650, 1204,-32768,-32768, 108, 1199,-32768, 1203, + 119, 1202, 1206,-32768, 5552, 5614,-32768,-32768,-32768,-32768, + 1207, 1208,-32768,-32768, 526, 5552, 5552, 5552, 5552, 5552, + 5552, 5552, 5563, 5563, 1211, 540, 612, 675, 968, 1272, + 681, 908, 897, 917, 400, 945, 1209, 1197, 1200, 1188, + 207, 1212,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 697, + 705,-32768,-32768, 961,-32768,-32768,-32768, 4548,-32768,-32768, +-32768,-32768, 6156,-32768,-32768, 6156,-32768,-32768,-32768,-32768, + 5552, 1010,-32768, 3070,-32768,-32768, 3070, 1151,-32768,-32768, +-32768, 1220,-32768,-32768,-32768, 1022,-32768, 430, 1222,-32768, + 578,-32768, 853,-32768,-32768, 1225,-32768,-32768,-32768, 1226, + 896,-32768, 732, 1227, 5552,-32768,-32768, 1229, 740, 1228, + 755, 769, 777, 783, 809, 814, 817, 844, 5552, 4681, + 5552, 876, 884, 152, 5552, 5552, 5552, 5552, 5552, 5552, + 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, + 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, + 5552, 5552,-32768, 5552,-32768, 1233, 1237,-32768, 1080, 67, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 1078,-32768,-32768,-32768,-32768, 1221,-32768,-32768, 5538, 477, --32768, 253, 5223,-32768, 6548, 5223, 6548,-32768,-32768,-32768, - 931,-32768,-32768,-32768,-32768,-32768,-32768, 170, 93,-32768, --32768,-32768, 1085,-32768,-32768, 149,-32768,-32768,-32768, 5833, --32768,-32768, 623,-32768, 1216, 982,-32768,-32768, 941, 5853, - 1215, 952, 953, 241, 803, 803,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 992, 995, 1020, - 675, 806, 681, 736, 367, 613, 631, 669, 856, 987, - 503, 342, 114, 588, 5853, 598, 6011,-32768,-32768, 1057, - 1061, 6352, 429, 112,-32768,-32768, 783,-32768,-32768,-32768, --32768,-32768, 1222, 56,-32768,-32768, 5223,-32768, 5223,-32768, --32768, 4858, 653,-32768, 1153, 6352, 429, 112,-32768, 501, --32768,-32768, 803,-32768, 1055, 1027,-32768, 1030, 1033,-32768, --32768, 950,-32768,-32768, 1068, 218, 4831,-32768,-32768,-32768, --32768,-32768, 680,-32768, 429, 815, 65, 65,-32768,-32768, - 150, 816, 1165,-32768, 117,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 839,-32768, 541,-32768,-32768, 1218, --32768, 1225, 1229,-32768, 1230,-32768,-32768,-32768, 1181,-32768, - 4673, 680,-32768, 816,-32768, 426, 1232,-32768,-32768,-32768, --32768, 1236, 1040, 1046,-32768, 218, 218, 175,-32768,-32768, --32768,-32768, 1183, 218,-32768, 1109,-32768, 495, 1231,-32768, - 1184, 429, 1186,-32768,-32768,-32768,-32768, 722, 150, 258, - 803, 803, 65, 1187,-32768, 117, 117,-32768, 551, 858, --32768, 117,-32768,-32768, 5853, 56, 1244,-32768,-32768,-32768, - 1234,-32768, 1243,-32768, 1191, 1191,-32768,-32768,-32768, 1049, - 5853, 1189, 990, 768, 175, 495,-32768,-32768,-32768,-32768, --32768, 218, 17, 803, 803, 218, 1191,-32768, 1191,-32768, --32768,-32768, 150, 1238,-32768,-32768, 150,-32768, 794, 551, - 432, 803, 803, 117, 1190, 858,-32768,-32768,-32768,-32768, - 5853,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 218,-32768, 768, 1250,-32768, 1252,-32768,-32768, 1255,-32768, --32768,-32768,-32768,-32768, 1254,-32768,-32768, 551,-32768,-32768, - 1198,-32768,-32768, 1262,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 1290, 1293,-32768 + 1035,-32768,-32768,-32768,-32768, 1079,-32768,-32768, 3070, 459, +-32768, 118, 5205,-32768, 6156, 5205, 6156,-32768,-32768,-32768, + 1071,-32768,-32768,-32768,-32768,-32768,-32768, 105, 172,-32768, +-32768,-32768, 1081,-32768,-32768, 543,-32768,-32768,-32768, 4996, +-32768,-32768, 393,-32768, 1238, 948,-32768,-32768, 944, 5552, + 1240, 970, 976, 257, 896, 896,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 983, 984, 993, + 654, 859, 920, 938, 485, 525, 567, 644, 816, 866, + 555, 352, 110, 463, 5552, 453, 5614,-32768,-32768, 1084, + 1086, 5960, 43, 91,-32768,-32768, 678,-32768,-32768,-32768, +-32768,-32768, 1247, 61,-32768,-32768, 5205,-32768, 5205,-32768, +-32768, 1858, 496,-32768, 1186, 5960, 43, 91,-32768, 600, +-32768,-32768, 896,-32768, 1077, 1011,-32768, 1036, 1037,-32768, +-32768, 1122,-32768,-32768, 1089, 232, 4812,-32768,-32768,-32768, +-32768,-32768, 552,-32768, 43, 966, 77, 77,-32768,-32768, + 314, 560, 1187,-32768, 133,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 566,-32768, 607,-32768,-32768, 1248, +-32768, 1246, 1250,-32768, 1251,-32768,-32768,-32768, 1191,-32768, + 4654, 552,-32768, 560,-32768, 47, 1252,-32768,-32768,-32768, +-32768, 1255, 1072, 1112,-32768, 232, 232, 258,-32768,-32768, +-32768,-32768, 105, 1098,-32768, 1138,-32768, 500, 1263,-32768, + 1213, 43, 1214,-32768,-32768,-32768,-32768, 528, 314, 471, + 896, 896, 77, 1215,-32768, 133, 133,-32768, 575, 633, +-32768, 133,-32768,-32768, 5552, 61, 1273,-32768,-32768,-32768, + 1270,-32768, 1276,-32768, 1219, 1219,-32768,-32768,-32768, 1117, + 5552, 105, 1090, 689, 258, 500, 1216, 232,-32768,-32768, +-32768, 232, -17, 896, 896, 232, 1219,-32768, 1219,-32768, +-32768,-32768, 314, 1278,-32768,-32768, 314,-32768, 907, 575, + 594, 896, 896, 133, 1218, 633,-32768,-32768,-32768,-32768, + 5552,-32768,-32768,-32768,-32768,-32768,-32768, 1221,-32768,-32768, + 232,-32768, 689,-32768,-32768,-32768,-32768, 1281,-32768,-32768, + 1274,-32768,-32768,-32768,-32768,-32768, 1283,-32768,-32768, 575, +-32768,-32768, 1223,-32768,-32768,-32768, 1275,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 1297, 1312,-32768 }; static const short yypgoto[] = {-32768, --32768, 1213,-32768,-32768,-32768,-32768, -389, -102,-32768,-32768, - 971,-32768,-32768,-32768,-32768,-32768, 129,-32768, 532,-32768, - 420,-32768,-32768,-32768,-32768,-32768,-32768, -655,-32768,-32768, --32768, -928,-32768, -907,-32768,-32768, -705,-32768,-32768,-32768, - -691, 311, 217,-32768,-32768, 285, 430,-32768,-32768, 399, --32768,-32768, -1016, -676,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 1231,-32768,-32768,-32768,-32768, -459, -102,-32768,-32768, + 989,-32768,-32768,-32768,-32768,-32768, 112,-32768, 550,-32768, + 429,-32768,-32768,-32768,-32768,-32768,-32768, -955,-32768,-32768, +-32768, -937,-32768, -964,-32768,-32768, -687,-32768,-32768,-32768, + -698, 321, 227,-32768,-32768, 296, 441,-32768,-32768, 410, +-32768,-32768, -983, -667,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, -581, 155, 324, -570, 211,-32768, -587, 504, - 988,-32768,-32768, -583,-32768,-32768, 18, -324, -340, -312, - -309, -367, -346, -341, -506, -461,-32768, -582,-32768, -112, --32768,-32768, 637, 1237, -610, -353, 1,-32768,-32768,-32768, - -463,-32768,-32768,-32768, 0, -229, 881,-32768, -793, -703, --32768,-32768,-32768,-32768,-32768,-32768, 326, 740,-32768, 580, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 782, - -672, -484,-32768, 226,-32768,-32768, 668, 672, 550, 5, - -372, 1239,-32768, 15,-32768,-32768, -576,-32768,-32768,-32768, - 659, -233, 1006,-32768, -490, 714, 1345,-32768, 1132,-32768, - 745,-32768,-32768,-32768,-32768, -97,-32768,-32768,-32768,-32768, - 2, 1311, 1408,-32768,-32768, 1434,-32768,-32768, -360,-32768, - 771, 286, -554, -781,-32768, 845,-32768,-32768, 935, -83, - -331, 6,-32768, 146, 69,-32768,-32768, 249,-32768, 371, --32768,-32768, 656,-32768, 393,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, -901, 179, 343, -864, 230,-32768, -573, 518, + 988,-32768,-32768, -567,-32768,-32768, 130, -357, -340, -331, + -367, -317, -347, -345, -482, -467,-32768, -565,-32768, -32, +-32768,-32768, 780, 1082, -604, -295, 2,-32768,-32768,-32768, + -464,-32768,-32768,-32768, 0, -242, 880,-32768, -782, -679, +-32768,-32768,-32768,-32768,-32768,-32768, 158, 765,-32768, 815, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 357, + -677, -786,-32768, 233,-32768,-32768, 672, 676, 551, 68, + -374, 1242,-32768, 6,-32768,-32768, -532,-32768,-32768,-32768, + 665, -296, 1012,-32768, -480, 1101, 1347,-32768, 1134,-32768, + 764,-32768,-32768,-32768,-32768, -119,-32768,-32768,-32768,-32768, + 85, 1376, 1566,-32768,-32768, 1584,-32768,-32768, -363,-32768, + 1450, 289, -537, -794,-32768, 848,-32768,-32768, 940, -83, + -309, 4,-32768, 334, 173,-32768,-32768, 189,-32768, 214, +-32768,-32768, 656,-32768, 398,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 1547,-32768,-32768, 1600, -247, 182, - 267,-32768 +-32768,-32768,-32768,-32768, 1672,-32768,-32768, 1675, 498, 182, + 433,-32768 }; -#define YYLAST 6815 +#define YYLAST 6425 static const short yytable[] = { 95, - 92, 597, 95, 309, 105, 292, 624, 511, 694, 184, - 229, 230, 509, 332, 222, 222, 114, 231, 232, 233, + 597, 92, 95, 309, 511, 292, 458, 114, 463, 1187, + 229, 230, 222, 222, 694, 606, 624, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 1185, 641, 548, 698, 257, 258, 259, + 254, 255, 256, 546, 547, 538, 539, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 540, 541, 729, 549, 463, 458, - 731, 741, 471, 550, 284, 572, 193, 1049, 538, 539, - 900, 95, 92, 902, 905, 606, 105, 883, 1027, 2, - 581, 643, 473, 570, 542, 543, 544, 545, 1028, 301, - 477, 546, 547, 896, 913, 95, 433, -389, 993, 1176, - -389, 437, -389, 438, 988, 314, 315, 317, 729, 776, - 571, 323, 731, 741, 810, 442, 477, 312, 88, 293, - 1190, 439, 1191, 522, -613, 1027, 325, 346, -613, 349, - 1106, 622, 405, 406, 356, 1028, 809, 739, 1133, 523, - 1107, 417, 414, 477, 223, 223, 350, 351, 352, 353, - 354, 355, -103, -103, 935, 420, 418, -663, 495, 1134, - 1136, 638, -389, 696, -389, 1100, 2, 1101, -110, -110, - 936, 107, -389, 422, 107, 980, 1045, 293, 107, 199, - 199, 199, 740, 1102, 978, 428, 863, 429, 1135, 739, - 994, 803, 1186, 346, 883, 1054, 193, 1056, 1078, 222, - 88, 864, 295, 1184, 222, 687, 222, 1189, -663, 511, - 895, 420, 987, 897, 989, 493, 444, 1183, 222, 222, - 650, 686, 76, 77, 123, 303, 79, 80, 76, 77, - 123, 1077, 79, 80, 740, 662, 473, 76, 1029, 684, - 193, 1078, 1204, 332, 477, -280, 194, 495, 193, -103, - -103, 420, 193, 107, 193, 2, 108, 1009, 628, 108, - -280, 700, 293, 124, 685, -110, -110, 682, -389, -389, - -389, 1027, -389, -389, 1151, 447, 736, 107, 1058, 313, - 301, 1028, 452, 193, 76, 1029, -281, 477, 286, 76, - 1108, 95, 456, 107, 459, 461, 455, 737, 419, 1001, - 803, 420, 738, 733, 107, 493, -663, -663, 95, 199, - -663, -663, 420, 470, 323, 100, 616, 346, 118, 732, - 121, -389, -389, -389, 332, -389, -389, 199, 736, 698, - 562, 734, 327, 420, 735, 437, 496, 618, 108, 223, - 793, 458, 683, 336, 223, 964, 223, 76, 1081, 737, - 337, 497, -611, 199, 738, 733, -611, 346, 223, 223, - 413, 199, 108, 199, 338, 199, 636, 199, 195, 729, - 637, 732, 332, 731, 741, 199, 194, -601, 326, 339, - 199, -601, 199, 734, 2, 703, 735, 1079, 1080, 340, - 76, 1081, 966, 1082, 199, 199, 199, 100, 985, 420, - 711, 985, 712, 653, 341, 405, 406, 535, 536, 537, - 1132, 296, 296, 419, 296, 560, 420, 898, 1138, 342, - 194, 420, -389, -389, -389, 818, -389, -389, 194, 452, - 76, 1029, 194, 1152, 194, 1098, 1099, 324, 222, 95, - -440, 495, 95, 435, 579, 1027, 420, 582, 1194, 587, - 739, 590, 360, 596, 95, 1028, 95, 492, 110, 111, - 420, 603, 361, 194, 323, -389, -389, -389, 362, -389, - -389, 612, 820, 107, 366, 367, 107, 107, 107, 325, - 332, 961, 193, 620, 981, -566, 496, 982, 626, -566, - 107, 456, 985, -565, 985, 740, 107, -565, 195, 363, - 953, 954, 332, 962, 1018, 1019, 365, 627, 1153, 963, - 1143, 1157, 1144, -609, 951, 952, 495, -609, 76, 77, - 123, 364, 79, 80, 2, 1159, 1160, -281, 1145, 472, - 955, 956, 957, 958, 1020, 1021, 435, 959, 960, 420, - -567, 199, 195, 493, -567, 411, 412, -657, 1022, 199, - 195, 199, 452, -587, 195, 1005, 195, -587, 108, 403, - 404, 460, 462, 464, 2, 624, 1161, 452, 1162, 1153, - -661, 666, 477, 1114, 456, 108, -564, 414, 223, 798, - -564, 326, 420, 1198, 1163, 195, 867, 680, 681, 736, - -658, -389, 696, -389, 323, 199, 411, 412, 76, 77, - 123, -389, 79, 80, 76, 1029, -280, 1152, 495, 325, - 737, 407, 408, 626, 199, 738, 733, 415, 456, 193, - 199, 107, 413, -602, 107, 409, 410, -602, 708, 709, - 555, 556, 732, 346, 107, 346, 107, 1002, 107, 420, - 1003, -603, 416, 925, 734, -603, 107, 735, 423, 107, - 995, 405, 406, 107, -280, 420, 495, 772, 332, 929, - 293, 494, 194, 982, 2, 779, 298, 781, 300, 405, - 406, 787, 788, 76, 77, 123, 792, 79, 80, -604, - 612, 799, -494, -604, 199, -596, 496, 293, 798, -596, - 1092, -598, 927, 107, 107, -598, 801, 424, 400, 401, - 402, 497, 403, 404, -660, 346, 108, 405, 406, 108, - 305, 306, 307, 76, 77, 123, 1033, 79, 80, 594, - -280, 108, 625, 108, 821, 822, 823, 824, 825, 826, - 430, 326, 199, 199, 609, 1059, 1150, 1100, 614, 1101, - 1065, 431, 182, 211, 211, 199, -599, 436, 199, 199, - -599, 1168, 853, 854, -280, 1102, 495, 403, 404, 1091, - 889, 676, 677, 1072, 2, 1093, 855, 856, 189, 220, - 220, 494, -659, 384, 1104, 385, 107, -389, 639, 640, - 420, 710, 1182, 1143, 195, 1144, 440, -581, 441, 917, - 799, -581, 626, -389, -586, 454, 386, 387, -586, 194, - 448, 1145, 445, 1125, 1126, 801, 1127, 1203, 1193, 1161, - 469, 1162, 446, 76, 77, 123, -595, 79, 80, 918, - -595, 199, 199, 293, -585, 760, 1103, 1163, -585, 400, - 401, 402, 199, 199, 466, 199, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 1113, -584, 107, 982, - 107, -584, 1165, 948, 949, 950, -583, 849, 850, 107, - -583, 326, 107, 107, 199, 293, -606, 468, 1164, 299, - -606, 302, 182, 304, 474, 308, 485, 760, 1017, 491, - 310, 983, 407, 408, 500, -582, 851, 852, 990, -582, - 318, 1036, 319, 1037, 501, 427, 409, 410, 189, -579, - 899, 677, 1061, -579, 1038, 1039, 502, 1040, 1201, 1041, - 1042, 857, 858, 76, 77, 123, 182, 79, 80, -580, - 504, 195, 1043, -580, 182, -576, 505, 692, 182, -576, - 182, 506, -577, 594, 388, 594, -577, 1006, 211, 199, - 991, 992, 189, 211, 794, 211, 507, 614, 108, 508, - 189, -568, 513, 309, 189, -568, 189, 211, 211, 182, - 420, 1075, -571, 636, 220, 434, -571, 1008, 564, 220, - 1046, 220, 107, 95, 565, 76, 77, 123, 1052, 79, - 80, 567, 107, 220, 220, 189, 503, 76, 1095, 799, - 568, 1068, 332, 569, 582, 580, 456, -607, 584, 1073, - 1074, -607, -591, 601, 1066, -592, -591, 452, 1177, -592, - 520, 1179, 1180, 407, 408, 524, 525, 526, 527, 528, - 529, 530, 531, 532, 533, 534, 586, 409, 410, 830, - -593, 831, 585, -389, -593, 602, 95, -589, 1115, 1117, - -572, -589, -280, -570, -572, 589, 554, -570, 332, -389, - -574, 452, 832, 833, -574, 799, -575, 108, 595, -573, - -575, 604, 450, -573, 611, 610, 453, 924, 870, 871, - 872, 615, 420, 512, 873, 874, 875, 876, 877, 878, - 879, 515, 619, 516, 465, 623, 634, 467, 892, 629, - 635, 892, 389, 631, 652, 475, 667, 632, 478, 400, - 401, 402, 1167, 331, 655, 95, 107, 107, 1171, 656, - 1052, 846, 847, 848, 658, 670, 331, 331, 331, 331, - 331, 331, 672, 358, 359, 835, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 673, 675, 760, 870, - 871, 872, 678, 517, 688, 1034, 909, 910, 911, 1139, - 1140, 1141, 575, 690, 693, 107, 701, 695, 182, 836, - 837, 838, 839, 840, 841, 842, 843, 844, 845, 1034, - 705, 107, 704, 774, 107, 777, 770, 211, 783, 789, - 805, 791, 807, 829, 189, 808, 811, 1090, 812, 1209, - 859, 1010, 1011, 816, 817, 862, 865, 1097, 1034, 1034, - 1213, 903, 907, 220, 861, 860, 1111, 916, 892, 921, - 892, 892, 892, 922, 926, 928, 575, 930, 107, 478, - 967, 968, -52, 1004, -49, 1007, 583, 1016, 1116, 1048, - 1060, 588, 1070, 591, 180, 1076, 1119, 107, 1120, 1122, - 108, 600, 1105, 1172, 1146, 605, 1128, 1090, 1090, 1090, - 1130, 1170, 1173, 871, 1192, 1090, 108, 1205, 1124, 1069, - 1137, 1147, 707, 1149, 1158, 575, 1178, 1199, 1206, 1207, - 1208, 1034, 107, 107, 1034, 1210, 1212, 1111, 1111, 1215, - 575, 665, 1216, 1111, 285, 476, 887, 107, 873, 874, - 875, 876, 877, 878, 879, 182, 979, 1062, 1148, 1094, - 975, 999, 892, 108, 892, 1195, 1090, 785, 185, 217, - 217, 1064, 1166, 1090, 669, 107, 107, 1090, 909, 910, - 911, 189, 108, 933, 873, 874, 875, 876, 877, 878, - 879, 1169, 1034, 107, 107, 1111, 782, 598, 780, 797, - 919, 311, 498, 331, 227, 443, 1129, 633, 561, 1013, - 583, 814, 1090, 665, 714, 0, 0, 1155, 1156, 0, - 0, 0, 344, 0, 345, 665, 0, 0, 0, 0, - 0, 0, 108, 0, 0, 478, 0, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 0, 697, 0, 804, 0, 0, 702, - 1187, 1188, 0, 0, 0, 186, 218, 218, 180, 0, - 785, 0, 0, 785, 0, 0, 180, 0, 1196, 1197, - 180, 0, 180, 0, 331, 0, 0, 762, 0, 0, - 432, 187, 219, 219, 0, 0, 0, 0, 185, 0, + 270, 271, 272, 273, 540, 541, 549, 105, 641, 550, + 509, -440, 495, 572, 284, 542, 543, 544, 545, 473, + 729, 95, 1049, 92, 433, 643, 731, 581, 741, 437, + 698, 438, 184, 332, 2, 548, 883, 913, 896, 301, + 1027, 988, 905, 442, 900, 95, 985, 902, 293, 985, + 1028, 88, 1134, 1136, 1027, 314, 315, 317, 312, 993, + 1132, 323, 293, 477, 1028, 1098, 1099, 325, 1018, 1019, + -613, 439, 729, 495, -613, -280, 776, 346, 731, 1133, + 741, 2, 1176, 809, 356, 687, 417, 295, 414, 105, + 2, 570, -103, -103, 366, 367, 1106, 100, 1020, 1021, + 118, 418, 121, 1192, 303, 1193, 1107, 522, 810, 1188, + 1183, 739, 1022, 76, 77, 123, 313, 79, 80, 935, + 193, 107, 1185, 523, 107, 327, 740, 978, 107, 199, + 199, 199, 1054, 88, 1056, 936, 194, 1045, 1153, 622, + 985, 1157, 985, 346, 1186, 628, 336, 222, 1191, 980, + 293, 803, 222, 883, 222, 682, 511, 987, 994, 989, + 337, 195, 349, 739, 110, 111, 222, 222, 338, 686, + 76, 77, 123, 473, 79, 80, 339, 895, 740, 100, + 897, 1159, 1160, 1207, 76, 77, 123, 863, 79, 80, + -103, -103, 650, 296, 296, 1077, 296, -110, -110, 1153, + 76, 1029, 864, 107, 477, 1078, 422, 662, 350, 351, + 352, 353, 354, 355, 76, 1029, 420, 420, 428, 324, + 429, 1135, 638, 1009, 571, 447, 735, 107, 458, 477, + 301, 1078, -389, 452, 420, -389, 732, -389, 493, 1200, + 341, 95, 456, 107, 459, 461, 737, 684, 738, 444, + 193, 360, 1058, 733, 107, 1001, 76, 1108, 95, 199, + 803, 420, 734, 437, 323, 616, 194, 346, 342, 700, + 407, 408, 703, 332, 403, 404, 736, 199, 735, 1100, + 562, 1101, 223, 223, 409, 410, 496, 711, 732, 712, + 419, 195, 497, 420, 193, -110, -110, 1102, 737, 365, + 738, 435, 193, 199, 420, 733, 193, 346, 193, 455, + 194, 199, -611, 199, 734, 199, -611, 199, 194, 964, + 413, 361, 194, 698, 194, 199, 470, 420, 736, 362, + 199, 618, 199, 729, 363, 195, 966, 193, -280, 731, + 495, 741, 364, 195, 199, 199, 199, 195, 2, 195, + -657, 1079, 1080, 194, 332, 76, 1081, 1002, 1082, 820, + 1003, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 492, 108, -661, 420, 108, 853, 854, 195, 124, + 452, 76, 1081, -389, -389, -389, 222, -389, -389, 95, + 855, 856, 95, -281, 299, 286, 302, -658, 304, 587, + 308, 590, 332, 596, 95, 310, 95, 413, -389, -389, + -389, 603, -389, -389, 323, 318, 981, 319, 636, 982, + 325, 612, 637, 107, 739, 898, 107, 107, 107, 959, + 960, 951, 952, 620, 1027, 414, 496, 1151, 626, 740, + 107, 456, 415, 494, 1028, -601, 107, 416, 560, -601, + 953, 954, 962, 293, 108, 963, 982, 579, 423, 388, + 582, 955, 956, 957, 958, 1143, -494, 1144, 477, 535, + 536, 537, 420, 405, 406, 424, 653, 223, 108, 793, + -660, 961, 223, 1145, 223, -602, 420, 477, 685, -602, + 818, 199, 1150, 1100, 326, 1101, 223, 223, 430, 199, + -566, 199, 1005, 452, -566, 340, -389, 696, -389, 293, + 332, 1102, 1092, 405, 406, -609, -389, 293, 452, -609, + 1103, 666, 1114, 1113, 456, 624, 982, -603, 431, 798, + -663, -603, 332, 305, 306, 307, 193, 680, 681, 735, + 1161, -280, 1162, 495, 323, 199, -659, 411, 412, 732, + 325, 2, 194, 494, 436, 405, 406, 1027, 1163, 737, + 1196, 738, 440, 626, 199, 495, 733, 1028, 456, 627, + 199, 107, -565, 2, 107, 734, -565, 195, 708, 709, + 2, -663, 441, 346, 107, 346, 107, 450, 107, 736, + 293, 453, 445, 1164, 76, 1029, 107, 1152, 419, 107, + -280, 420, 495, 107, -604, 493, 446, 772, -604, 465, + 2, -281, 467, 472, -596, 779, 448, 781, -596, 454, + 475, 787, 788, 478, 405, 406, 792, 400, 401, 402, + 612, 799, 405, 406, 199, -567, 496, 801, 798, -567, + 474, -587, 497, 107, 107, -587, 469, -389, -389, -389, + 1072, -389, -389, 1182, 1143, 346, 1144, -564, 76, 77, + 123, -564, 79, 80, 466, 420, -389, -389, -389, 867, + -389, -389, 1145, 193, 108, 411, 412, 460, 462, 464, + -663, -663, 199, 199, -663, -663, 468, 435, 332, 194, + 420, 108, 420, 491, 493, 199, 925, 326, 199, 199, + 420, 76, 77, 123, 929, 79, 80, 918, 485, 692, + 889, 182, 211, 211, 195, -581, 223, 76, 1029, -581, + 1152, 500, 927, 76, 77, 123, 107, 79, 80, -586, + 76, 77, 123, -586, 79, 80, 1036, -585, 1037, 917, + 799, -585, 626, -584, 478, 501, 801, -584, 502, 1038, + 1039, 583, 1040, 504, 1041, 1042, 588, 471, 591, 1168, + 76, 77, 123, 505, 79, 80, 600, 1043, 506, -583, + 605, 199, 199, -583, -582, 760, -606, -579, -582, 507, + -606, -579, 199, 199, 508, 199, 821, 822, 823, 824, + 825, 826, 407, 408, 400, 401, 402, 384, 107, 385, + 107, -389, 564, -280, -580, 495, 409, 410, -580, 107, + 555, 556, 107, 107, 199, 1205, -280, -389, 625, -595, + 386, 387, 108, -595, 565, 108, -607, 760, 1017, 513, + -607, 983, 400, 401, 402, 594, -576, 108, 990, 108, + -576, 182, 407, 408, -577, 676, 677, 326, -577, 343, + 609, 298, 1061, 300, 614, 328, 409, 410, 420, 710, + 139, 140, 141, 142, 143, 144, 567, 477, 849, 850, + 892, 1195, 1161, 892, 1162, 583, 568, 145, 146, 147, + -598, 846, 847, 848, -598, 182, -389, 696, -389, 199, + 1163, 403, 404, 182, 639, 640, -389, 182, -599, 182, + 478, 148, -599, 309, -568, 851, 852, 211, -568, 403, + 404, 580, 211, 585, 211, 948, 949, 950, 584, 697, + 1046, 569, 107, 95, 702, 389, 211, 211, 182, 610, + -571, 830, 107, 831, -571, -389, 636, 857, 858, 799, + 1008, 1068, 157, -591, -592, 1066, 456, -591, -592, 1073, + 1074, -389, 762, -593, 832, 833, 586, -593, 452, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 899, + 677, -589, 870, 871, 872, -589, -280, 326, 873, 874, + 875, 876, 877, 878, 879, 589, 95, 595, 1115, 1117, + 892, 1052, 892, 892, 892, 604, -572, -570, -262, 1006, + -572, -570, 452, 611, 328, 799, 601, 582, 602, 139, + 140, 141, 142, 143, 144, 76, 329, 330, 160, 76, + 77, 123, 332, 79, 80, 834, 145, 146, 147, 180, + 991, 992, -574, 909, 910, 911, -574, 683, 1177, 873, + 874, 875, 876, 877, 878, 879, 870, 871, 872, 594, + 148, 594, 1167, 331, 615, 95, 107, 107, 1171, 420, + 794, 1179, 1180, 614, 108, 619, 331, 331, 331, 331, + 331, 331, -575, 358, 359, 629, -575, -573, 332, 503, + 631, -573, 420, 1075, 892, 904, 892, 623, 760, 76, + 1095, 157, 909, 910, 911, 1034, 873, 874, 875, 876, + 877, 878, 879, 520, 632, 107, 634, 635, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 1034, + 652, 107, 655, 1052, 107, 658, 656, 182, 1139, 1140, + 1141, 667, 670, 672, 678, 673, 675, 1090, 690, 554, + 688, 1211, 774, 693, 701, 705, 211, 1097, 1034, 1034, + 695, 704, 1215, 770, 777, 783, 1111, 344, 789, 345, + 791, 805, 811, 807, 76, 329, 330, 160, 107, 808, + 812, 816, 817, 108, 829, 860, 865, 859, 903, 861, + 976, 977, 862, 924, 907, 916, 928, 107, 984, 921, + 922, 926, 930, 967, 968, 1004, -52, 1090, 1090, 1090, + 1007, -49, 1016, 180, 1048, 1070, 1076, 1119, 1116, 1120, + 1122, 180, 1000, 1060, 1105, 180, 1128, 180, 1124, 1130, + 1138, 1034, 107, 107, 1034, 432, 1146, 1111, 1111, 1172, + 1170, 871, 427, 1111, 835, 1173, 1217, 107, 1209, 1214, + 1147, 1149, 1158, 1184, 1194, 1201, 180, 1208, 1206, 1210, + 1212, 1218, 285, 476, 887, 979, 1090, 1062, 1148, 1090, + 1094, 975, 999, 1090, 182, 107, 107, 1090, 836, 837, + 838, 839, 840, 841, 842, 843, 844, 845, 1047, 1197, + 1064, 1166, 1034, 107, 107, 1111, 598, 933, 1169, 669, + 782, 919, 780, 331, 311, 797, 227, 443, 498, 1129, + 633, 814, 1090, 561, 1013, 0, 0, 1010, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 180, 0, 0, 0, 931, 520, 0, 0, 0, - 0, 937, 938, 939, 940, 941, 942, 943, 944, 945, - 946, 947, 331, 0, 0, 0, 0, 331, 0, 0, - 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, - 185, 0, 0, 0, 185, 0, 185, 0, 0, 0, - 834, 0, 0, 0, 217, 0, 0, 0, 0, 217, - 0, 217, 0, 0, 0, 785, 0, 0, 0, 0, - 0, 0, 0, 217, 217, 185, 0, 0, 331, 0, - 331, 0, 645, 647, 0, 186, 0, 0, 0, 0, - 0, 0, 0, 0, 196, 225, 225, 0, 0, 0, - 0, 0, 0, 0, 483, 0, 0, 0, 0, 0, - 904, 187, 486, 487, 488, 489, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 186, - 331, 0, 0, 483, 0, 0, 0, 186, 0, 0, - 0, 186, 0, 186, 483, 0, 0, 198, 226, 226, - 0, 218, 331, 0, 0, 187, 218, 0, 218, 0, - 0, 521, 0, 187, 0, 0, 0, 187, 785, 187, - 218, 218, 186, 0, 0, 0, 0, 219, 0, 0, - 0, 730, 219, 0, 219, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 219, 219, 187, 0, - 180, 0, 0, 0, 0, 976, 977, 566, 0, 0, - 0, 0, 0, 984, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 196, 0, 0, 0, 0, 0, - 0, 0, 0, 730, 0, 0, 0, 1000, 0, 0, - 0, 0, 0, 0, 331, 331, 331, 331, 331, 331, + 0, 0, 0, 185, 217, 217, 0, 331, 331, 331, + 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 331, 331, 331, 0, 0, 995, 0, 1118, 0, 483, + 0, 0, 0, 0, 0, 707, 108, 486, 487, 488, + 489, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 108, 0, 331, 1069, 0, 0, 483, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 483, + 0, 0, 0, 0, 0, 0, 0, 189, 220, 220, + 785, 0, 0, 0, 0, 0, 521, 0, 0, 0, + 512, 1033, 0, 0, 0, 0, 0, 0, 515, 108, + 516, 0, 331, 0, 0, 0, 0, 331, 0, 0, + 1059, 0, 0, 0, 0, 1065, 0, 0, 108, 0, + 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, + 0, 0, 566, 185, 1091, 0, 0, 0, 0, 0, + 1093, 0, 0, 0, 0, 1204, 0, 0, 0, 1104, + 0, 0, 0, 1155, 1156, 0, 0, 0, 331, 0, + 331, 0, 645, 647, 0, 0, 0, 0, 108, 575, + 0, 0, 0, 0, 0, 0, 0, 185, 1125, 1126, + 0, 1127, 0, 785, 0, 185, 785, 0, 0, 185, + 0, 185, 0, 186, 218, 218, 1189, 1190, 0, 217, + 1137, 0, 0, 0, 217, 0, 217, 189, 0, 0, + 331, 187, 219, 219, 1198, 1199, 0, 0, 217, 217, + 185, 0, 0, 0, 0, 0, 0, 1165, 931, 520, + 0, 0, 331, 575, 937, 938, 939, 940, 941, 942, + 943, 944, 945, 946, 947, 0, 0, 0, 0, 1178, + 0, 189, 0, 642, 0, 0, 0, 0, 0, 189, + 0, 730, 180, 189, 0, 189, 0, 0, 0, 0, + 0, 0, 0, 220, 434, 0, 0, 0, 220, 0, + 220, 0, 575, 1203, 0, 0, 0, 0, 785, 0, + 0, 0, 220, 220, 189, 0, 0, 575, 665, 196, + 225, 225, 198, 226, 226, 0, 0, 0, 0, 0, + 0, 0, 0, 730, 0, 0, 0, 0, 0, 0, + 489, 0, 0, 186, 331, 331, 331, 331, 331, 331, 827, 828, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 196, 0, - 0, 0, 0, 0, 185, 0, 196, 198, 0, 0, - 196, 0, 196, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 0, 217, 0, 225, 0, 225, 0, 0, - 0, 0, 0, 1047, 0, 0, 0, 0, 331, 225, - 225, 196, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 0, 0, 0, 0, 0, 642, 198, - 0, 0, 0, 198, 0, 198, 0, 180, 0, 0, - 0, 0, 331, 226, 0, 0, 0, 0, 226, 0, - 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 226, 226, 198, 0, 0, 0, 0, 0, - 0, 186, 1118, 331, 331, 331, 331, 331, 331, 331, + 0, 187, 0, 0, 0, 483, 0, 483, 0, 0, + 0, 0, 0, 715, 0, 0, 761, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 186, 0, 0, + 665, 714, 0, 0, 0, 186, 0, 0, 0, 186, + 0, 186, 665, 0, 0, 187, 0, 0, 331, 218, + 0, 785, 0, 187, 218, 0, 218, 187, 0, 187, + 0, 0, 0, 0, 0, 0, 813, 219, 218, 218, + 186, 0, 219, 804, 219, 0, 0, 819, 0, 185, + 0, 0, 331, 0, 0, 0, 219, 219, 187, 196, + 0, 0, 198, 0, 0, 0, 0, 0, 217, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 517, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 218, 331, 0, 0, 0, 489, 0, 187, 0, 0, + 0, 331, 0, 196, 0, 0, 198, 0, 0, 0, + 0, 196, 0, 0, 198, 196, 0, 196, 198, 0, + 198, 0, 0, 189, 0, 225, 784, 1057, 226, 0, + 225, 328, 225, 226, 0, 226, 139, 140, 141, 142, + 143, 144, 220, 0, 225, 225, 196, 226, 226, 198, + 0, 0, 0, 145, 146, 147, 0, 0, 0, 0, + 0, 0, 934, 0, 0, 0, 0, 331, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, + 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 185, 0, 0, 0, 0, 219, 0, 0, 0, - 483, 0, 483, 0, 0, 0, 0, 0, 715, 0, - 201, 761, 0, 0, 0, 126, 127, 128, 0, 0, - 202, 131, 132, 133, 134, 135, 136, 203, -468, -468, - 0, 0, 0, 204, -468, 0, 0, 331, 139, 140, - 141, 142, 143, 144, 0, 0, 0, 0, 0, 0, - 0, -280, -280, 0, 0, 145, 146, 147, 0, 0, - 0, 813, 0, 0, 0, 0, 0, 0, 0, 0, - 1202, 0, 819, 0, 730, 0, 0, 0, 0, 148, - 0, 0, 0, 0, 0, 0, 0, 0, 186, 0, - 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -468, 150, 151, 152, 153, 154, 155, 0, 225, - 0, 0, 0, 0, 187, 0, 156, 343, 0, 0, - 157, 0, 0, 328, 0, 0, 0, 0, 139, 140, - 141, 142, 143, 144, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 198, 0, 145, 146, 147, 0, 0, + 0, 0, 0, 0, 730, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 157, 0, + 0, 0, 126, 127, 128, 0, 129, 130, 131, 132, + 133, 134, 135, 136, 203, -520, 659, 0, 0, 186, + 368, 0, 0, 0, 0, 139, 140, 141, 142, 143, + 144, 489, 0, 0, 0, 0, 0, 187, 218, 0, + 189, 0, 145, 146, 147, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 219, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, + 0, 76, 329, 330, 160, 0, 1012, 0, 0, 0, + 0, 0, -1, 1, 0, 0, 0, 0, 0, 150, + 151, 152, 153, 154, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 156, 0, 0, -280, 157, 0, 0, + 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 196, 0, 3, 198, 0, + 0, 0, 331, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 225, 0, 0, 226, 331, -389, + -389, -389, 0, 4, 0, 0, 186, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 226, 0, 0, 0, 0, 0, 0, 148, + 0, 8, 9, 10, 187, 0, 0, 0, 0, 0, + 76, 158, 159, 160, 161, 80, 0, 0, 331, 0, + 11, 12, 13, 0, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 0, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, -2, 1, + 0, 0, 196, 0, 0, 198, 76, 77, 78, 0, + 79, 80, 81, -520, 0, 0, 0, 0, 368, 0, + 0, 0, -280, 139, 140, 141, 142, 143, 144, 0, + 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, + 145, 146, 147, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -1, 1, 0, 0, 934, 0, 0, - 0, 0, 76, 158, 159, 160, 205, 206, 0, 0, - 0, 0, 0, 0, 0, 0, 0, -280, 0, 0, - 157, 0, 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 331, 0, 0, 0, 0, 196, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, + 0, 0, 0, 0, 148, -389, -389, -389, 0, 4, + 0, 0, 0, 5, 6, 7, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -389, -389, -389, 0, 4, 0, 0, 0, 5, 6, - 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8, 9, 10, 0, 489, 0, 331, 0, - 198, 0, 76, 329, 330, 160, 0, 0, 0, 0, - 0, 11, 12, 13, 0, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 1012, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, -2, - 1, 0, 0, 0, 0, 0, 76, 77, 78, 0, - 79, 80, 81, -262, 0, 0, 0, 0, 0, 328, - 0, 0, 0, -280, 139, 140, 141, 142, 143, 144, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 145, 146, 147, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 148, -389, -389, -389, 0, - 4, 0, 0, 0, 5, 6, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 9, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 157, 11, 12, 13, - 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 0, 0, 0, 76, 329, + 0, 0, 0, 0, 0, 157, 11, 12, 13, 0, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 0, 0, 0, 0, 76, 329, 330, 160, 76, 77, 78, 125, 79, 80, 81, 0, 126, 127, 128, 0, 129, 130, 131, 132, 133, 134, 135, 136, 137, -520, 558, 0, 0, 0, 138, 0, @@ -1486,139 +1486,150 @@ static const short yytable[] = { 95, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 0, 0, 0, 0, 0, 0, 0, 76, 158, 559, - 160, 161, 80, 81, 125, 0, 0, 0, 0, 126, - 127, 128, 0, 129, 130, 131, 132, 133, 134, 135, - 136, 137, -520, 0, 0, 0, 0, 138, 0, 0, - 0, 0, 139, 140, 141, 142, 143, 144, 0, 0, - 0, 0, 0, 0, 0, -280, -280, 0, 0, 145, - 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 158, + 559, 160, 161, 80, 81, 125, 0, 0, 0, 0, + 126, 127, 128, 0, 129, 130, 131, 132, 133, 134, + 135, 136, 137, -520, 0, 0, 0, 0, 138, 0, + 0, 0, 0, 139, 140, 141, 142, 143, 144, 0, + 0, 0, 0, 0, 0, 0, -280, -280, 0, 0, + 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -280, -280, -280, 148, 0, 0, 0, 0, 0, 0, + 0, -280, -280, -280, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 150, 151, 152, 153, - 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, - 156, -280, -280, -280, 157, -280, -280, -280, -280, -280, - -280, -280, -280, -280, -280, 0, -280, -280, -280, -280, - -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, - -280, 0, -280, -280, -280, -280, -280, -280, -280, -280, - -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, + 0, 0, 0, 0, 0, 0, 0, 150, 151, 152, + 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, + 0, 156, -280, -280, -280, 157, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, 0, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, - -280, -280, -280, -280, -280, -280, -280, -280, -280, 0, - 0, 0, 0, 0, 0, 0, 76, 158, 159, 160, - 161, 80, -280, 201, 0, 0, 0, 0, 126, 127, - 128, 0, 0, 202, 131, 132, 133, 134, 135, 136, - 203, -520, -524, 0, 0, 0, 204, 0, 0, 0, - 0, 139, 140, 141, 142, 143, 144, 0, 0, 0, - 0, 0, 0, 0, -280, -280, 0, 0, 145, 146, - 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -280, - -280, -280, 148, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 150, 151, 152, 153, 154, - 155, 0, 0, 0, 0, 0, 0, 0, 0, 156, - -280, -280, -280, 157, -280, -280, -280, -280, -280, -280, - -280, -280, -280, -280, 0, -280, -280, -280, -280, -280, + -280, -280, 0, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, - 0, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, - -280, -280, -280, -280, -280, -280, -280, -280, 0, 0, - 0, 0, 0, 0, 0, 76, 158, 159, 160, 205, - 206, -280, 125, 0, 0, 0, 0, 126, 127, 128, - 0, 129, 130, 131, 132, 133, 134, 135, 136, 137, - -520, 0, 0, 0, 0, 138, 0, 0, 0, 0, - 139, 140, 141, 142, 143, 144, 0, 0, 0, 0, - 0, 0, 0, -280, -280, 125, 0, 145, 146, 147, - 126, 127, 128, 0, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -520, 0, 0, 0, 0, 138, 0, - 0, 148, 0, 139, 140, 141, 142, 143, 144, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 158, + 159, 160, 161, 80, -280, 201, 0, 0, 0, 0, + 126, 127, 128, 0, 0, 202, 131, 132, 133, 134, + 135, 136, 203, -520, -524, 0, 0, 0, 204, 0, + 0, 0, 0, 139, 140, 141, 142, 143, 144, 0, 0, 0, 0, 0, 0, 0, -280, -280, 0, 0, - 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, - 0, 0, 157, 0, 148, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -495, 150, 151, 152, - 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 0, 0, 0, 157, 0, 0, 0, 0, + 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 158, 159, 160, 161, 80, - 0, 0, 201, 0, 0, 0, 0, 126, 127, 128, - 0, 0, 202, 131, 132, 133, 134, 135, 136, 203, - -520, -524, 0, 0, 0, 204, 0, 0, 0, 0, - 139, 140, 141, 142, 143, 144, 0, 76, 158, 159, - 160, 161, 80, -280, -280, 125, 0, 145, 146, 147, - 126, 127, 128, 0, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -520, 648, 0, 0, 0, 138, 0, - 0, 148, 0, 139, 140, 141, 142, 143, 144, 0, - 0, 0, 0, 0, 0, 0, -280, -280, 0, 0, - 145, 146, 147, -464, 150, 151, 152, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, - 0, 0, 157, 0, 148, 0, 0, 0, 0, 0, + 0, -280, -280, -280, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 0, 0, 0, 157, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 158, 159, 160, 205, 206, - 0, 0, 201, 0, 0, 0, 0, 126, 127, 128, - 0, 0, 202, 131, 132, 133, 134, 135, 136, 203, - -520, -524, 0, 0, 0, 204, 0, 0, 0, 0, - 139, 140, 141, 142, 143, 144, 0, 76, 158, 159, - 160, 161, 80, -280, -280, 125, 0, 145, 146, 147, - 126, 127, 128, 0, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -520, 0, 0, 0, 0, 138, 0, - 0, 148, 0, 139, 140, 141, 142, 143, 144, 0, - 0, 0, 0, 0, 0, 0, -280, -280, 0, 0, - 145, 146, 147, 0, 150, 151, 152, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, - 0, 0, 157, 0, 148, 0, 0, 0, 0, 0, + 0, 156, -280, -280, -280, 157, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, 0, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, + -280, -280, 0, -280, -280, -280, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, + -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 158, + 159, 160, 205, 206, -280, 201, 0, 0, 0, 0, + 126, 127, 128, 0, 0, 202, 131, 132, 133, 134, + 135, 136, 203, -468, -468, 0, 0, 0, 204, -468, + 0, 0, 0, 139, 140, 141, 142, 143, 144, 0, + 0, 0, 0, 0, 0, 0, -280, -280, 125, 0, + 145, 146, 147, 126, 127, 128, 0, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -520, 0, 0, 0, + 0, 138, 0, 0, 148, 0, 139, 140, 141, 142, + 143, 144, 0, 0, 0, 0, 0, 0, 0, -280, + -280, 0, 0, 145, 146, 147, -468, 150, 151, 152, + 153, 154, 155, 0, 0, 0, 0, 0, 784, 0, + 0, 156, 0, 328, 0, 157, 0, 148, 139, 140, + 141, 142, 143, 144, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 145, 146, 147, 0, 149, + 150, 151, 152, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 0, 156, 0, 0, 0, 157, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 151, 152, - 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 158, + 159, 160, 205, 206, 0, 0, 125, 0, 0, 0, + 157, 126, 127, 128, 0, 129, 130, 131, 132, 133, + 134, 135, 136, 137, -520, 0, 0, 0, 0, 138, + 0, 0, 0, 0, 139, 140, 141, 142, 143, 144, + 0, 76, 158, 159, 160, 161, 80, -280, -280, 201, + 0, 145, 146, 147, 126, 127, 128, 0, 0, 202, + 131, 132, 133, 134, 135, 136, 203, -520, -524, 0, + 0, 0, 204, 0, 0, 148, 0, 139, 140, 141, + 142, 143, 144, 76, 329, 330, 160, 0, 0, 0, + -280, -280, 0, 0, 145, 146, 147, -495, 150, 151, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, + 0, 0, 156, 0, 328, 518, 157, 0, 148, 139, + 140, 141, 142, 143, 144, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 145, 146, 147, 0, + -464, 150, 151, 152, 153, 154, 155, 0, 0, 0, + 0, 0, 0, 0, 0, 156, 0, 0, 0, 157, + 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 158, 159, 160, 205, 206, - 0, 0, 0, 0, 0, 0, 0, 126, 127, 128, - 0, 129, 130, 131, 132, 133, 134, 135, 136, 203, - -520, 573, 0, 0, 0, 368, 0, 0, 0, 0, - 139, 140, 141, 142, 143, 144, 0, 76, 158, 159, - 160, 161, 80, -280, -280, 0, 3, 145, 146, 147, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, + 158, 159, 160, 161, 80, 0, 0, 125, 0, 0, + 0, 157, 126, 127, 128, 0, 129, 130, 131, 132, + 133, 134, 135, 136, 137, -520, 648, 0, 0, 0, + 138, 0, 0, 0, 0, 139, 140, 141, 142, 143, + 144, 0, 76, 158, 159, 160, 205, 206, -280, -280, + 201, 0, 145, 146, 147, 126, 127, 128, 0, 0, + 202, 131, 132, 133, 134, 135, 136, 203, -520, -524, + 0, 0, 0, 204, 0, 0, 148, 0, 139, 140, + 141, 142, 143, 144, 76, 329, 330, 160, 0, 0, + 0, -280, -280, 0, 0, 145, 146, 147, 0, 150, + 151, 152, 153, 154, 155, 0, 0, 0, 0, 0, + 0, 0, 0, 156, 0, 328, 0, 157, 621, 148, + 139, 140, 141, 142, 143, 144, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 145, 146, 147, + 0, 0, 150, 151, 152, 153, 154, 155, 0, 0, + 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, + 157, 148, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, + 699, 0, 139, 140, 141, 142, 143, 144, 0, 0, + 76, 158, 159, 160, 161, 80, 0, 0, 125, 145, + 146, 147, 157, 126, 127, 128, 0, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -520, 0, 0, 0, + 0, 138, 0, 148, 0, 0, 139, 140, 141, 142, + 143, 144, 0, 76, 158, 159, 160, 205, 206, -280, + -280, 0, 0, 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 157, 0, 0, 148, 0, 0, + 0, 0, 0, 0, 0, 76, 329, 330, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 148, 4, 0, 0, 0, 0, 0, 0, 0, + 150, 151, 152, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 0, 156, 126, 127, 128, 157, 129, + 130, 131, 132, 133, 134, 135, 136, 203, -520, 573, + 0, 0, 0, 368, 0, 0, 0, 0, 139, 140, + 141, 142, 143, 144, 0, 0, 0, 76, 329, 330, + 160, -280, -280, 0, 3, 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 151, 152, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 0, 574, 11, - 12, 13, 157, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 0, 0, 0, - 0, 0, 0, 0, 76, 158, 559, 160, 161, 80, - 81, 126, 127, 128, 0, 129, 130, 131, 132, 133, - 134, 135, 136, 203, -520, 649, 0, 0, 0, 368, - 0, 0, 0, 0, 139, 140, 141, 142, 143, 144, - 0, 0, 0, 0, 0, 0, 0, -280, -280, 0, - 3, 145, 146, 147, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 76, 158, 159, 160, 161, 80, 0, 0, 0, + 0, 0, 150, 151, 152, 153, 154, 155, 0, 0, + 0, 0, 0, 0, 0, 0, 574, 11, 12, 13, + 157, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 0, 0, 0, 0, 0, + 0, 0, 0, 76, 158, 559, 160, 161, 80, 81, + 126, 127, 128, 0, 129, 130, 131, 132, 133, 134, + 135, 136, 203, -520, 649, 0, 0, 0, 368, 0, + 0, 0, 0, 139, 140, 141, 142, 143, 144, 0, + 0, 0, 0, 0, 0, 0, -280, -280, 0, 3, + 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 148, 4, 0, 0, 0, + 0, 0, 0, 0, 148, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 150, 151, - 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 11, 12, 13, 157, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 0, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 0, 0, 0, 0, 0, 0, 0, 76, 158, + 0, 0, 0, 0, 0, 0, 0, 150, 151, 152, + 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, + 0, 156, 11, 12, 13, 157, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 0, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 0, 0, 0, 0, 0, 0, 0, 0, 76, 158, 559, 160, 161, 80, 81, 126, 127, 128, 0, 129, 130, 131, 132, 133, 134, 135, 136, 203, -520, 660, 0, 0, 0, 368, 0, 0, 0, 0, 139, 140, @@ -1637,269 +1648,212 @@ static const short yytable[] = { 95, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 0, 0, 0, 0, 0, - 0, 0, 76, 158, 559, 160, 161, 80, 81, 126, - 127, 128, 0, 129, 130, 131, 132, 133, 134, 135, - 136, 203, -520, 659, 0, 0, 0, 368, 0, 0, - 0, 0, 139, 140, 141, 142, 143, 144, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, - 146, 147, 126, 127, 128, 0, 129, 130, 131, 132, - 133, 134, 135, 136, 203, -520, 663, 0, 0, 0, - 368, 0, 0, 148, 0, 139, 140, 141, 142, 143, - 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 145, 146, 147, 0, 150, 151, 152, 153, - 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, - 156, 0, 0, 0, 157, 0, 148, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, - 151, 152, 153, 154, 155, 0, 0, 0, 0, 0, - 0, 0, 0, 664, 126, 127, 128, 157, 129, 130, - 131, 132, 133, 134, 135, 136, 203, -520, 713, 0, - 0, 0, 368, 0, 0, 0, 0, 139, 140, 141, - 142, 143, 144, 0, 0, 0, 76, 158, 159, 160, - 161, 80, 0, 0, 145, 146, 147, 126, 127, 128, - 0, 129, 130, 131, 132, 133, 134, 135, 136, 203, - -520, 766, 0, 0, 0, 368, 0, 0, 148, 0, - 139, 140, 141, 142, 143, 144, 0, 0, 0, 76, - 158, 159, 160, 161, 80, 0, 0, 145, 146, 147, - 0, 150, 151, 152, 153, 154, 155, 0, 0, 0, - 0, 0, 0, 0, 0, 156, 0, 0, 0, 157, - 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 151, 152, 153, 154, 155, - 0, 0, 0, 0, 0, 0, 0, 0, 156, 126, - 127, 128, 157, 129, 130, 131, 132, 133, 134, 135, - 136, 203, -520, 767, 0, 0, 0, 368, 0, 0, - 0, 0, 139, 140, 141, 142, 143, 144, 0, 0, - 0, 76, 158, 159, 160, 161, 80, 0, 0, 145, - 146, 147, 126, 127, 128, 0, 129, 130, 131, 132, - 133, 134, 135, 136, 203, -520, 769, 0, 0, 0, - 368, 0, 0, 148, 0, 139, 140, 141, 142, 143, - 144, 0, 0, 0, 76, 158, 159, 160, 161, 80, - 0, 0, 145, 146, 147, 0, 150, 151, 152, 153, - 154, 155, 0, 0, 0, 0, 0, 0, 0, 0, - 768, 0, 0, 0, 157, 0, 148, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, - 151, 152, 153, 154, 155, 0, 0, 0, 0, 0, - 0, 0, 0, 156, 126, 127, 128, 157, 129, 130, - 131, 132, 133, 134, 135, 136, 203, -520, 888, 0, - 0, 0, 368, 0, 0, 0, 0, 139, 140, 141, - 142, 143, 144, 0, 0, 0, 76, 158, 159, 160, - 161, 80, 0, 0, 145, 146, 147, 126, 127, 128, - 0, 129, 130, 131, 132, 133, 134, 135, 136, 203, - -520, 0, 0, 0, 0, 368, 0, 0, 148, 0, - 139, 140, 141, 142, 143, 144, 0, 0, 0, 76, - 158, 159, 160, 161, 80, 0, 0, 145, 146, 147, - 0, 150, 151, 152, 153, 154, 155, 0, 0, 0, - 0, 0, 0, 0, 0, 156, 0, 0, 0, 157, - 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 76, 158, 559, 160, 161, 80, 81, + 126, 127, 128, 0, 129, 130, 131, 132, 133, 134, + 135, 136, 203, -520, 663, 0, 0, 0, 368, 0, + 0, 0, 0, 139, 140, 141, 142, 143, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 151, 152, 153, 154, 155, - 293, 0, 0, 0, 0, 0, 0, 0, 156, 0, - 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, + 145, 146, 147, 126, 127, 128, 0, 129, 130, 131, + 132, 133, 134, 135, 136, 203, -520, 713, 0, 0, + 0, 368, 0, 0, 148, 0, 139, 140, 141, 142, + 143, 144, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 145, 146, 147, 0, 150, 151, 152, + 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, + 0, 664, 0, 0, 0, 157, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 76, 158, 159, 160, 161, 80, 0, 0, -389, - -389, -389, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 150, 151, 152, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 0, 156, 126, 127, 128, 157, 129, + 130, 131, 132, 133, 134, 135, 136, 203, -520, 766, + 0, 0, 0, 368, 0, 0, 0, 0, 139, 140, + 141, 142, 143, 144, 0, 0, 0, 0, 76, 158, + 159, 160, 161, 80, 0, 145, 146, 147, 126, 127, + 128, 0, 129, 130, 131, 132, 133, 134, 135, 136, + 203, -520, 767, 0, 0, 0, 368, 0, 0, 148, + 0, 139, 140, 141, 142, 143, 144, 0, 0, 0, + 0, 76, 158, 159, 160, 161, 80, 0, 145, 146, + 147, 0, 150, 151, 152, 153, 154, 155, 0, 0, + 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, + 157, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 158, 159, 160, 161, 80, - 11, 12, 13, 0, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 0, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 293, 0, - 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, - 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 784, 1057, 0, 0, - 0, 328, 0, 0, 0, 0, 139, 140, 141, 142, - 143, 144, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 0, 145, 146, 147, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -654, 0, - 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 157, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, -146, 0, 0, 0, - 0, -146, 0, 0, 0, 120, 0, 0, 0, 81, + 0, 0, 0, 0, 0, 150, 151, 152, 153, 154, + 155, 0, 0, 0, 0, 0, 0, 0, 0, 768, + 126, 127, 128, 157, 129, 130, 131, 132, 133, 134, + 135, 136, 203, -520, 769, 0, 0, 0, 368, 0, + 0, 0, 0, 139, 140, 141, 142, 143, 144, 0, + 0, 0, 0, 76, 158, 159, 160, 161, 80, 0, + 145, 146, 147, 126, 127, 128, 0, 129, 130, 131, + 132, 133, 134, 135, 136, 203, -520, 888, 0, 0, + 0, 368, 0, 0, 148, 0, 139, 140, 141, 142, + 143, 144, 0, 0, 0, 0, 76, 158, 159, 160, + 161, 80, 0, 145, 146, 147, 0, 150, 151, 152, + 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, + 0, 156, 0, 0, 0, 157, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - 76, 329, 330, 160, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 150, 151, 152, 153, 154, 155, 0, 0, 0, 0, + 0, 0, 0, 0, 156, 126, 127, 128, 157, 129, + 130, 131, 132, 133, 134, 135, 136, 203, -520, 0, + 0, 293, 0, 368, 0, 0, 0, 0, 139, 140, + 141, 142, 143, 144, 0, 0, 0, 0, 76, 158, + 159, 160, 161, 80, 0, 145, 146, 147, 3, 0, + 0, 0, 0, 0, 328, 932, 0, 0, 0, 139, + 140, 141, 142, 143, 144, 0, 0, 0, 0, 148, + -389, -389, -389, 0, 4, 0, 145, 146, 147, 0, + 0, 76, 158, 159, 160, 161, 80, 0, 0, 0, + 0, 0, 150, 151, 152, 153, 154, 155, 0, 0, + 148, 0, 0, 0, 0, 0, 156, 0, 0, 0, + 157, 11, 12, 13, 0, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 157, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 293, + 0, 0, 0, 76, 158, 159, 160, 161, 80, 120, + 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 0, 0, 0, 0, 76, 329, 330, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 11, 12, 13, 0, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 0, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 288, 0, 0, 0, 0, 0, 0, - 0, 0, 120, 0, 0, 0, 81, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, + 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, -146, 0, 0, + 0, 0, -146, 0, 0, 0, 0, 120, 0, 0, + 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 0, 0, 0, 0, 0, 328, + -262, 0, 0, 0, 139, 140, 141, 142, 143, 144, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, + 0, 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 148, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 11, 12, 13, 0, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 157, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 288, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 120, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 76, + 329, 330, 160, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -523, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 11, 12, 13, 0, 14, 15, 16, 17, + 0, 0, 0, 0, -523, 0, 0, 0, 0, 0, + 0, 0, 0, 11, 12, 13, 0, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 0, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 120, 11, 12, 13, 81, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 0, 39, 40, 41, 42, 43, 44, 45, + 37, 38, -661, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, - 11, 12, 13, 81, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 0, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, -661, 0, - 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, - 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -520, 0, 0, 0, 0, 368, 0, 0, - 0, 0, 139, 140, 141, 142, 143, 144, 0, 0, - 0, 0, 0, -663, -663, -663, 0, 0, 0, 145, - 146, 147, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -663, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 148, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -663, -663, -663, 0, -663, -663, + 0, 0, 0, 0, 0, 0, 0, -663, -663, -663, + 120, 0, 0, 0, 81, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -663, 0, 0, 0, 0, + 0, 0, -280, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2, 0, 0, 0, 0, 0, -663, -663, + -663, 0, -663, -663, -663, -663, -663, -663, -663, -663, + -663, -663, 0, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, 0, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, - -663, -663, -663, -663, 157, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, - -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, - -663, -663, 0, 0, 0, 0, 784, 0, 0, 0, - 0, 328, 0, 0, 0, -663, 139, 140, 141, 142, - 143, 144, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 145, 146, 147, 76, 329, 330, 160, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, + -663, -663, -663, -663, -663, -663, 11, 12, 13, 0, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + -663, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 0, 0, 0, 0, 0, 0, + 0, 0, 76, 77, 78, 328, 79, 80, 81, 0, + 139, 140, 141, 142, 143, 144, 357, 0, 0, 0, + 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 0, 0, 0, 0, 0, 0, 644, 0, 145, 146, + 147, 139, 140, 141, 142, 143, 144, 646, 0, 0, + 0, 148, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 0, 148, 0, 0, 0, 0, 716, 0, 145, + 146, 147, 717, 718, 719, 720, 721, 722, 0, 0, + 0, 0, 148, 0, 0, 0, 0, 0, 0, 145, + 723, 724, 157, 148, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 725, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 76, 329, 330, 160, -206, + -206, 0, 0, 0, 0, 0, 76, 329, 330, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 76, 329, 330, 160, + 0, 0, 0, 0, 0, 0, 0, 76, 329, 330, + 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 76, 726, 727, + 728, 0, 0, 0, 0, 11, 12, 13, 0, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 0, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 120, 0, 0, 0, 81, 0, 0, + 0, 0, 0, 0, 0, -389, -389, -389, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -280, 0, 0, 0, 0, 0, 0, 0, 157, 0, - 2, 328, 518, 0, 0, 0, 139, 140, 141, 142, - 143, 144, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 145, 146, 147, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 329, 330, 160, 11, 12, 13, 0, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 157, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 0, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 0, 0, 0, 0, 0, 0, 0, 76, - 77, 78, 0, 79, 80, 81, 0, 0, 0, 0, - 76, 329, 330, 160, 328, 0, 0, 621, 0, 139, - 140, 141, 142, 143, 144, 328, 0, 0, 699, 0, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 0, - 0, 0, 0, 0, 0, 328, 932, 145, 146, 147, - 139, 140, 141, 142, 143, 144, 328, -262, 0, 0, - 148, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 0, 148, 0, 0, 0, 0, 328, 0, 145, 146, - 147, 139, 140, 141, 142, 143, 144, 0, 0, 0, - 0, 148, 0, 0, 0, 0, 0, 0, 145, 146, - 147, 157, 148, 0, 0, 0, 0, 0, 0, 0, - 0, 357, 157, 0, 0, 0, 139, 140, 141, 142, - 143, 144, 148, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 157, 145, 146, 147, 0, 0, 0, 0, - 0, 0, 644, 157, 0, 0, 0, 139, 140, 141, - 142, 143, 144, 0, 0, 0, 0, 148, 0, 0, - 0, 0, 0, 157, 145, 146, 147, 0, 0, 0, - 0, 0, 0, 76, 329, 330, 160, 0, 0, 0, - 0, 0, 0, 0, 76, 329, 330, 160, 148, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 157, 0, - 0, 0, 0, 646, 76, 329, 330, 160, 139, 140, - 141, 142, 143, 144, 0, 76, 329, 330, 160, 0, - 0, 0, 0, 0, 0, 145, 146, 147, 0, 157, - 0, 0, 0, 0, 716, 76, 329, 330, 160, 717, - 718, 719, 720, 721, 722, 0, 0, 0, 0, 148, - 0, 0, 0, 0, 0, 0, 145, 723, 724, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 329, 330, 160, 0, 0, 0, 0, 0, 0, - 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 76, 329, 330, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -206, -206, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 11, 12, 13, 0, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 3, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 120, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 76, 329, 330, 160, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 76, 726, 727, 728, 11, 12, 13, + 0, 0, 0, 0, 0, 0, 0, 11, 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 3, 0, 0, 0, 0, - 0, 0, 0, 0, 120, 0, 0, 0, 81, 0, - 0, 0, 0, 0, 0, 0, 0, -389, -389, -389, - 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 3, 0, 0, 0, + 71, 72, 73, 74, 75, -389, -389, -389, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, - 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, -389, -389, -389, - 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, - 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 12, - 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 8, 9, 10, 0, - 0, 0, 0, 0, 0, 120, 0, 0, 0, 81, - 0, 0, 0, 0, 0, 11, 12, 13, 0, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 0, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 120, 11, 12, 13, 81, 14, 15, 16, + 0, 0, 0, 0, 0, 0, 11, 12, 13, 0, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 8, 9, 10, 0, 0, 0, + 0, 0, 0, 0, 120, 0, 0, 0, 81, 0, + 0, 0, 0, 11, 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 42, 43, 44, @@ -1907,253 +1861,260 @@ static const short yytable[] = { 95, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 120, 11, 12, 13, 81, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 0, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 81 }; static const short yycheck[] = { 0, - 0, 465, 3, 106, 0, 89, 497, 368, 619, 8, - 11, 12, 366, 126, 9, 10, 2, 18, 19, 20, + 465, 0, 3, 106, 368, 89, 303, 2, 19, 27, + 11, 12, 9, 10, 619, 475, 497, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 27, 551, 413, 623, 48, 49, 50, + 41, 42, 43, 411, 412, 403, 404, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 405, 406, 654, 414, 19, 303, - 654, 654, 320, 415, 75, 448, 8, 22, 403, 404, - 784, 82, 82, 787, 790, 475, 82, 764, 24, 34, - 451, 553, 322, 447, 407, 408, 409, 410, 34, 100, - 5, 411, 412, 776, 796, 106, 204, 18, 902, 1126, - 21, 209, 23, 211, 896, 116, 117, 118, 706, 674, - 25, 122, 706, 706, 701, 223, 5, 113, 0, 18, - 1147, 215, 1149, 28, 21, 24, 122, 138, 25, 138, - 24, 495, 49, 50, 145, 34, 25, 654, 1077, 44, - 34, 41, 39, 5, 9, 10, 139, 140, 141, 142, - 143, 144, 86, 87, 28, 21, 56, 34, 26, 1077, - 1078, 27, 24, 25, 26, 26, 34, 28, 86, 87, - 44, 0, 34, 182, 3, 889, 980, 18, 7, 8, - 9, 10, 654, 44, 886, 194, 41, 196, 24, 706, - 906, 692, 186, 204, 881, 987, 138, 989, 34, 204, - 82, 56, 24, 1142, 209, 605, 211, 1146, 85, 580, - 775, 21, 895, 778, 897, 25, 225, 1135, 223, 224, - 562, 604, 183, 184, 185, 85, 187, 188, 183, 184, - 185, 24, 187, 188, 706, 577, 476, 183, 184, 603, - 182, 34, 1181, 366, 5, 24, 8, 26, 190, 183, - 184, 21, 194, 82, 196, 34, 0, 27, 502, 3, - 18, 625, 18, 7, 25, 183, 184, 23, 183, 184, - 185, 24, 187, 188, 27, 286, 654, 106, 992, 21, - 291, 34, 292, 225, 183, 184, 24, 5, 26, 183, - 184, 302, 303, 122, 305, 306, 302, 654, 18, 920, - 801, 21, 654, 654, 133, 25, 183, 184, 319, 138, - 187, 188, 21, 319, 325, 0, 25, 328, 3, 654, - 5, 183, 184, 185, 447, 187, 188, 156, 706, 916, - 424, 654, 24, 21, 654, 443, 347, 25, 82, 204, - 5, 585, 600, 24, 209, 862, 211, 183, 184, 706, - 24, 347, 21, 182, 706, 706, 25, 368, 223, 224, - 29, 190, 106, 192, 24, 194, 21, 196, 8, 967, - 25, 706, 495, 967, 967, 204, 138, 21, 122, 24, - 209, 25, 211, 706, 34, 629, 706, 180, 181, 133, - 183, 184, 864, 186, 223, 224, 225, 82, 893, 21, - 644, 896, 646, 25, 18, 49, 50, 400, 401, 402, - 1076, 96, 97, 18, 99, 424, 21, 781, 1084, 18, - 182, 21, 183, 184, 185, 25, 187, 188, 190, 439, - 183, 184, 194, 186, 196, 1027, 1028, 122, 443, 450, - 25, 26, 453, 18, 450, 24, 21, 453, 27, 460, - 967, 462, 24, 464, 465, 34, 467, 18, 108, 109, - 21, 472, 16, 225, 475, 183, 184, 185, 16, 187, - 188, 482, 716, 302, 6, 7, 305, 306, 307, 475, - 603, 859, 424, 494, 18, 21, 497, 21, 499, 25, - 319, 502, 987, 21, 989, 967, 325, 25, 138, 16, - 851, 852, 625, 860, 86, 87, 15, 500, 1100, 861, - 26, 1103, 28, 21, 849, 850, 26, 25, 183, 184, - 185, 16, 187, 188, 34, 1106, 1107, 24, 44, 26, - 853, 854, 855, 856, 116, 117, 18, 857, 858, 21, - 21, 370, 182, 25, 25, 53, 54, 22, 130, 378, - 190, 380, 562, 21, 194, 926, 196, 25, 302, 32, - 33, 305, 306, 307, 34, 1066, 26, 577, 28, 1161, - 22, 582, 5, 1047, 585, 319, 21, 39, 443, 692, - 25, 325, 21, 1164, 44, 225, 25, 598, 599, 967, - 22, 24, 25, 26, 605, 424, 53, 54, 183, 184, - 185, 34, 187, 188, 183, 184, 24, 186, 26, 605, - 967, 37, 38, 624, 443, 967, 967, 40, 629, 561, - 449, 450, 29, 21, 453, 51, 52, 25, 639, 640, - 42, 43, 967, 644, 463, 646, 465, 25, 467, 21, - 28, 21, 55, 25, 967, 25, 475, 967, 92, 478, - 908, 49, 50, 482, 24, 21, 26, 668, 781, 25, - 18, 346, 424, 21, 34, 676, 97, 678, 99, 49, - 50, 682, 683, 183, 184, 185, 687, 187, 188, 21, - 691, 692, 92, 25, 513, 21, 697, 18, 801, 25, - 21, 21, 815, 522, 523, 25, 692, 19, 34, 35, - 36, 697, 32, 33, 22, 716, 450, 49, 50, 453, - 67, 68, 69, 183, 184, 185, 974, 187, 188, 463, - 24, 465, 26, 467, 717, 718, 719, 720, 721, 722, - 22, 475, 561, 562, 478, 993, 25, 26, 482, 28, - 998, 24, 8, 9, 10, 574, 21, 92, 577, 578, - 25, 1115, 37, 38, 24, 44, 26, 32, 33, 1017, - 771, 20, 21, 1007, 34, 1023, 51, 52, 8, 9, - 10, 456, 22, 24, 1032, 26, 605, 28, 522, 523, - 21, 22, 25, 26, 424, 28, 19, 21, 20, 800, - 801, 25, 803, 44, 21, 18, 47, 48, 25, 561, - 24, 44, 92, 1061, 1062, 801, 1064, 1171, 25, 26, - 23, 28, 27, 183, 184, 185, 21, 187, 188, 189, - 25, 650, 651, 18, 21, 654, 21, 44, 25, 34, - 35, 36, 661, 662, 18, 664, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 18, 21, 677, 21, - 679, 25, 1110, 846, 847, 848, 21, 32, 33, 688, - 25, 605, 691, 692, 693, 18, 21, 18, 21, 98, - 25, 100, 138, 102, 24, 104, 22, 706, 972, 18, - 109, 892, 37, 38, 25, 21, 49, 50, 899, 25, - 119, 119, 121, 121, 25, 192, 51, 52, 138, 21, - 20, 21, 996, 25, 132, 133, 24, 135, 1166, 137, - 138, 53, 54, 183, 184, 185, 182, 187, 188, 21, - 18, 561, 150, 25, 190, 21, 18, 612, 194, 25, - 196, 18, 21, 677, 163, 679, 25, 930, 204, 768, - 20, 21, 182, 209, 688, 211, 18, 691, 692, 18, - 190, 21, 19, 1066, 194, 25, 196, 223, 224, 225, - 21, 22, 21, 21, 204, 205, 25, 25, 9, 209, - 981, 211, 801, 984, 11, 183, 184, 185, 984, 187, - 188, 25, 811, 223, 224, 225, 360, 183, 184, 1000, - 24, 1002, 1115, 11, 1000, 24, 1007, 21, 88, 1010, - 1011, 25, 21, 88, 1000, 21, 25, 1017, 1131, 25, - 384, 32, 33, 37, 38, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 19, 51, 52, 24, - 21, 26, 21, 28, 25, 27, 1047, 21, 1049, 1050, - 21, 25, 19, 21, 25, 19, 420, 25, 1171, 44, - 21, 1061, 47, 48, 25, 1066, 21, 801, 19, 21, - 25, 24, 291, 25, 21, 25, 295, 811, 72, 73, - 74, 22, 21, 370, 78, 79, 80, 81, 82, 83, - 84, 378, 18, 380, 313, 24, 11, 316, 773, 21, - 24, 776, 23, 22, 24, 324, 23, 25, 327, 34, - 35, 36, 1113, 126, 24, 1116, 935, 936, 1119, 27, - 1116, 34, 35, 36, 25, 20, 139, 140, 141, 142, - 143, 144, 19, 146, 147, 23, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 20, 19, 967, 72, - 73, 74, 23, 383, 21, 974, 72, 73, 74, 51, - 52, 53, 449, 5, 25, 984, 24, 27, 424, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 998, - 24, 1000, 22, 20, 1003, 20, 25, 443, 18, 27, - 18, 25, 25, 24, 424, 27, 21, 1016, 25, 1200, - 29, 935, 936, 25, 25, 55, 25, 1026, 1027, 1028, - 1211, 88, 25, 443, 40, 39, 1035, 24, 893, 25, - 895, 896, 897, 25, 25, 18, 513, 25, 1047, 448, - 21, 18, 177, 18, 178, 21, 455, 177, 21, 18, - 88, 460, 188, 462, 8, 178, 22, 1066, 20, 20, - 984, 470, 88, 20, 24, 474, 25, 1076, 1077, 1078, - 25, 18, 20, 73, 27, 1084, 1000, 18, 88, 1003, - 88, 88, 636, 88, 88, 562, 88, 88, 27, 25, - 27, 1100, 1101, 1102, 1103, 88, 25, 1106, 1107, 0, - 577, 578, 0, 1112, 82, 325, 765, 1116, 78, 79, - 80, 81, 82, 83, 84, 561, 887, 997, 1092, 1025, - 881, 913, 987, 1047, 989, 1161, 1135, 681, 8, 9, - 10, 998, 1112, 1142, 585, 1144, 1145, 1146, 72, 73, - 74, 561, 1066, 830, 78, 79, 80, 81, 82, 83, - 84, 1116, 1161, 1162, 1163, 1164, 679, 467, 677, 691, - 801, 113, 347, 366, 10, 224, 1071, 513, 424, 967, - 579, 706, 1181, 650, 651, -1, -1, 1101, 1102, -1, - -1, -1, 136, -1, 138, 662, -1, -1, -1, -1, - -1, -1, 1116, -1, -1, 604, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, -1, 623, -1, 693, -1, -1, 628, - 1144, 1145, -1, -1, -1, 8, 9, 10, 182, -1, - 784, -1, -1, 787, -1, -1, 190, -1, 1162, 1163, - 194, -1, 196, -1, 447, -1, -1, 656, -1, -1, - 204, 8, 9, 10, -1, -1, -1, -1, 138, -1, + 61, 62, 63, 64, 405, 406, 414, 0, 551, 415, + 366, 25, 26, 448, 75, 407, 408, 409, 410, 322, + 654, 82, 22, 82, 204, 553, 654, 451, 654, 209, + 623, 211, 8, 126, 34, 413, 764, 796, 776, 100, + 24, 896, 790, 223, 784, 106, 893, 787, 18, 896, + 34, 0, 1077, 1078, 24, 116, 117, 118, 113, 902, + 1076, 122, 18, 5, 34, 1027, 1028, 122, 86, 87, + 21, 215, 706, 26, 25, 18, 674, 138, 706, 1077, + 706, 34, 1126, 25, 145, 605, 41, 24, 39, 82, + 34, 447, 86, 87, 6, 7, 24, 0, 116, 117, + 3, 56, 5, 1147, 85, 1149, 34, 28, 701, 187, + 1135, 654, 130, 184, 185, 186, 21, 188, 189, 28, + 8, 0, 1138, 44, 3, 24, 654, 886, 7, 8, + 9, 10, 987, 82, 989, 44, 8, 980, 1100, 495, + 987, 1103, 989, 204, 1142, 502, 24, 204, 1146, 889, + 18, 692, 209, 881, 211, 23, 580, 895, 906, 897, + 24, 8, 138, 706, 108, 109, 223, 224, 24, 604, + 184, 185, 186, 476, 188, 189, 24, 775, 706, 82, + 778, 1106, 1107, 1181, 184, 185, 186, 41, 188, 189, + 184, 185, 562, 96, 97, 24, 99, 86, 87, 1161, + 184, 185, 56, 82, 5, 34, 182, 577, 139, 140, + 141, 142, 143, 144, 184, 185, 21, 21, 194, 122, + 196, 24, 27, 27, 25, 286, 654, 106, 585, 5, + 291, 34, 18, 292, 21, 21, 654, 23, 25, 1164, + 18, 302, 303, 122, 305, 306, 654, 603, 654, 225, + 138, 24, 992, 654, 133, 920, 184, 185, 319, 138, + 801, 21, 654, 443, 325, 25, 138, 328, 18, 625, + 37, 38, 629, 366, 32, 33, 654, 156, 706, 26, + 424, 28, 9, 10, 51, 52, 347, 644, 706, 646, + 18, 138, 347, 21, 182, 184, 185, 44, 706, 15, + 706, 18, 190, 182, 21, 706, 194, 368, 196, 302, + 182, 190, 21, 192, 706, 194, 25, 196, 190, 862, + 29, 16, 194, 916, 196, 204, 319, 21, 706, 16, + 209, 25, 211, 967, 16, 182, 864, 225, 24, 967, + 26, 967, 16, 190, 223, 224, 225, 194, 34, 196, + 22, 180, 181, 225, 447, 184, 185, 25, 187, 716, + 28, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 18, 0, 22, 21, 3, 37, 38, 225, 7, + 439, 184, 185, 184, 185, 186, 443, 188, 189, 450, + 51, 52, 453, 24, 98, 26, 100, 22, 102, 460, + 104, 462, 495, 464, 465, 109, 467, 29, 184, 185, + 186, 472, 188, 189, 475, 119, 18, 121, 21, 21, + 475, 482, 25, 302, 967, 781, 305, 306, 307, 857, + 858, 849, 850, 494, 24, 39, 497, 27, 499, 967, + 319, 502, 40, 346, 34, 21, 325, 55, 424, 25, + 851, 852, 860, 18, 82, 861, 21, 450, 92, 163, + 453, 853, 854, 855, 856, 26, 92, 28, 5, 400, + 401, 402, 21, 49, 50, 19, 25, 204, 106, 5, + 22, 859, 209, 44, 211, 21, 21, 5, 25, 25, + 25, 370, 25, 26, 122, 28, 223, 224, 22, 378, + 21, 380, 926, 562, 25, 133, 24, 25, 26, 18, + 603, 44, 21, 49, 50, 21, 34, 18, 577, 25, + 21, 582, 1047, 18, 585, 1066, 21, 21, 24, 692, + 34, 25, 625, 67, 68, 69, 424, 598, 599, 967, + 26, 24, 28, 26, 605, 424, 22, 53, 54, 967, + 605, 34, 424, 456, 92, 49, 50, 24, 44, 967, + 27, 967, 19, 624, 443, 26, 967, 34, 629, 500, + 449, 450, 21, 34, 453, 967, 25, 424, 639, 640, + 34, 85, 20, 644, 463, 646, 465, 291, 467, 967, + 18, 295, 92, 21, 184, 185, 475, 187, 18, 478, + 24, 21, 26, 482, 21, 25, 27, 668, 25, 313, + 34, 24, 316, 26, 21, 676, 24, 678, 25, 18, + 324, 682, 683, 327, 49, 50, 687, 34, 35, 36, + 691, 692, 49, 50, 513, 21, 697, 692, 801, 25, + 24, 21, 697, 522, 523, 25, 23, 184, 185, 186, + 1007, 188, 189, 25, 26, 716, 28, 21, 184, 185, + 186, 25, 188, 189, 18, 21, 184, 185, 186, 25, + 188, 189, 44, 561, 302, 53, 54, 305, 306, 307, + 184, 185, 561, 562, 188, 189, 18, 18, 781, 561, + 21, 319, 21, 18, 25, 574, 25, 325, 577, 578, + 21, 184, 185, 186, 25, 188, 189, 190, 22, 612, + 771, 8, 9, 10, 561, 21, 443, 184, 185, 25, + 187, 25, 815, 184, 185, 186, 605, 188, 189, 21, + 184, 185, 186, 25, 188, 189, 119, 21, 121, 800, + 801, 25, 803, 21, 448, 25, 801, 25, 24, 132, + 133, 455, 135, 18, 137, 138, 460, 320, 462, 1115, + 184, 185, 186, 18, 188, 189, 470, 150, 18, 21, + 474, 650, 651, 25, 21, 654, 21, 21, 25, 18, + 25, 25, 661, 662, 18, 664, 717, 718, 719, 720, + 721, 722, 37, 38, 34, 35, 36, 24, 677, 26, + 679, 28, 9, 24, 21, 26, 51, 52, 25, 688, + 42, 43, 691, 692, 693, 1171, 24, 44, 26, 21, + 47, 48, 450, 25, 11, 453, 21, 706, 972, 19, + 25, 892, 34, 35, 36, 463, 21, 465, 899, 467, + 25, 138, 37, 38, 21, 20, 21, 475, 25, 18, + 478, 97, 996, 99, 482, 24, 51, 52, 21, 22, + 29, 30, 31, 32, 33, 34, 25, 5, 32, 33, + 773, 25, 26, 776, 28, 579, 24, 46, 47, 48, + 21, 34, 35, 36, 25, 182, 24, 25, 26, 768, + 44, 32, 33, 190, 522, 523, 34, 194, 21, 196, + 604, 70, 25, 1066, 21, 49, 50, 204, 25, 32, + 33, 24, 209, 21, 211, 846, 847, 848, 88, 623, + 981, 11, 801, 984, 628, 23, 223, 224, 225, 25, + 21, 24, 811, 26, 25, 28, 21, 53, 54, 1000, + 25, 1002, 111, 21, 21, 1000, 1007, 25, 25, 1010, + 1011, 44, 656, 21, 47, 48, 19, 25, 1017, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 20, + 21, 21, 72, 73, 74, 25, 19, 605, 78, 79, + 80, 81, 82, 83, 84, 19, 1047, 19, 1049, 1050, + 893, 984, 895, 896, 897, 24, 21, 21, 18, 930, + 25, 25, 1061, 21, 24, 1066, 88, 1000, 27, 29, + 30, 31, 32, 33, 34, 184, 185, 186, 187, 184, + 185, 186, 1115, 188, 189, 729, 46, 47, 48, 8, + 20, 21, 21, 72, 73, 74, 25, 600, 1131, 78, + 79, 80, 81, 82, 83, 84, 72, 73, 74, 677, + 70, 679, 1113, 126, 22, 1116, 935, 936, 1119, 21, + 688, 32, 33, 691, 692, 18, 139, 140, 141, 142, + 143, 144, 21, 146, 147, 21, 25, 21, 1171, 360, + 22, 25, 21, 22, 987, 789, 989, 24, 967, 184, + 185, 111, 72, 73, 74, 974, 78, 79, 80, 81, + 82, 83, 84, 384, 25, 984, 11, 24, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 998, + 24, 1000, 24, 1116, 1003, 25, 27, 424, 51, 52, + 53, 23, 20, 19, 23, 20, 19, 1016, 5, 420, + 21, 1202, 20, 25, 24, 24, 443, 1026, 1027, 1028, + 27, 22, 1213, 25, 20, 18, 1035, 136, 27, 138, + 25, 18, 21, 25, 184, 185, 186, 187, 1047, 27, + 25, 25, 25, 801, 24, 39, 25, 29, 88, 40, + 884, 885, 55, 811, 25, 24, 18, 1066, 892, 25, + 25, 25, 25, 21, 18, 18, 177, 1076, 1077, 1078, + 21, 178, 177, 182, 18, 189, 178, 22, 21, 20, + 20, 190, 916, 88, 88, 194, 25, 196, 88, 25, + 183, 1100, 1101, 1102, 1103, 204, 24, 1106, 1107, 20, + 18, 73, 192, 1112, 23, 20, 0, 1116, 25, 25, + 88, 88, 88, 88, 27, 88, 225, 27, 88, 27, + 88, 0, 82, 325, 765, 887, 1135, 997, 1092, 1138, + 1025, 881, 913, 1142, 561, 1144, 1145, 1146, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 982, 1161, + 998, 1112, 1161, 1162, 1163, 1164, 467, 830, 1116, 585, + 679, 801, 677, 366, 113, 691, 10, 224, 347, 1071, + 513, 706, 1181, 424, 967, -1, -1, 935, 936, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 225, -1, -1, -1, 829, 830, -1, -1, -1, - -1, 835, 836, 837, 838, 839, 840, 841, 842, 843, - 844, 845, 495, -1, -1, -1, -1, 500, -1, -1, - -1, -1, 182, -1, -1, -1, -1, -1, -1, -1, - 190, -1, -1, -1, 194, -1, 196, -1, -1, -1, - 729, -1, -1, -1, 204, -1, -1, -1, -1, 209, - -1, 211, -1, -1, -1, 889, -1, -1, -1, -1, - -1, -1, -1, 223, 224, 225, -1, -1, 551, -1, - 553, -1, 555, 556, -1, 138, -1, -1, -1, -1, - -1, -1, -1, -1, 8, 9, 10, -1, -1, -1, - -1, -1, -1, -1, 328, -1, -1, -1, -1, -1, - 789, 138, 336, 337, 338, 339, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 182, - 603, -1, -1, 357, -1, -1, -1, 190, -1, -1, - -1, 194, -1, 196, 368, -1, -1, 8, 9, 10, - -1, 204, 625, -1, -1, 182, 209, -1, 211, -1, - -1, 385, -1, 190, -1, -1, -1, 194, 992, 196, - 223, 224, 225, -1, -1, -1, -1, 204, -1, -1, - -1, 654, 209, -1, 211, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 223, 224, 225, -1, - 424, -1, -1, -1, -1, 884, 885, 431, -1, -1, - -1, -1, -1, 892, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, -1, -1, -1, -1, -1, - -1, -1, -1, 706, -1, -1, -1, 916, -1, -1, - -1, -1, -1, -1, 717, 718, 719, 720, 721, 722, + -1, -1, -1, 8, 9, 10, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, -1, -1, 908, -1, 1051, -1, 328, + -1, -1, -1, -1, -1, 636, 984, 336, 337, 338, + 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1000, -1, 447, 1003, -1, -1, 357, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, + -1, -1, -1, -1, -1, -1, -1, 8, 9, 10, + 681, -1, -1, -1, -1, -1, 385, -1, -1, -1, + 370, 974, -1, -1, -1, -1, -1, -1, 378, 1047, + 380, -1, 495, -1, -1, -1, -1, 500, -1, -1, + 993, -1, -1, -1, -1, 998, -1, -1, 1066, -1, + -1, -1, -1, -1, -1, 424, -1, -1, -1, -1, + -1, -1, 431, 138, 1017, -1, -1, -1, -1, -1, + 1023, -1, -1, -1, -1, 1169, -1, -1, -1, 1032, + -1, -1, -1, 1101, 1102, -1, -1, -1, 551, -1, + 553, -1, 555, 556, -1, -1, -1, -1, 1116, 449, + -1, -1, -1, -1, -1, -1, -1, 182, 1061, 1062, + -1, 1064, -1, 784, -1, 190, 787, -1, -1, 194, + -1, 196, -1, 8, 9, 10, 1144, 1145, -1, 204, + 1083, -1, -1, -1, 209, -1, 211, 138, -1, -1, + 603, 8, 9, 10, 1162, 1163, -1, -1, 223, 224, + 225, -1, -1, -1, -1, -1, -1, 1110, 829, 830, + -1, -1, 625, 513, 835, 836, 837, 838, 839, 840, + 841, 842, 843, 844, 845, -1, -1, -1, -1, 1132, + -1, 182, -1, 552, -1, -1, -1, -1, -1, 190, + -1, 654, 561, 194, -1, 196, -1, -1, -1, -1, + -1, -1, -1, 204, 205, -1, -1, -1, 209, -1, + 211, -1, 562, 1166, -1, -1, -1, -1, 889, -1, + -1, -1, 223, 224, 225, -1, -1, 577, 578, 8, + 9, 10, 8, 9, 10, -1, -1, -1, -1, -1, + -1, -1, -1, 706, -1, -1, -1, -1, -1, -1, + 619, -1, -1, 138, 717, 718, 719, 720, 721, 722, 723, 724, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 182, -1, - -1, -1, -1, -1, 424, -1, 190, 138, -1, -1, - 194, -1, 196, -1, -1, -1, -1, -1, -1, -1, - 204, -1, -1, 443, -1, 209, -1, 211, -1, -1, - -1, -1, -1, 982, -1, -1, -1, -1, 781, 223, - 224, 225, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 182, -1, -1, -1, -1, -1, -1, 552, 190, - -1, -1, -1, 194, -1, 196, -1, 561, -1, -1, - -1, -1, 815, 204, -1, -1, -1, -1, 209, -1, - 211, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 223, 224, 225, -1, -1, -1, -1, -1, - -1, 424, 1051, 846, 847, 848, 849, 850, 851, 852, - 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, - 443, 864, -1, -1, -1, 619, -1, 424, -1, -1, + -1, 138, -1, -1, -1, 644, -1, 646, -1, -1, + -1, -1, -1, 652, -1, -1, 655, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 182, -1, -1, + 650, 651, -1, -1, -1, 190, -1, -1, -1, 194, + -1, 196, 662, -1, -1, 182, -1, -1, 781, 204, + -1, 992, -1, 190, 209, -1, 211, 194, -1, 196, + -1, -1, -1, -1, -1, -1, 705, 204, 223, 224, + 225, -1, 209, 693, 211, -1, -1, 716, -1, 424, + -1, -1, 815, -1, -1, -1, 223, 224, 225, 138, + -1, -1, 138, -1, -1, -1, -1, -1, 443, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 561, -1, -1, -1, -1, 443, -1, -1, -1, - 644, -1, 646, -1, -1, -1, -1, -1, 652, -1, - 1, 655, -1, -1, -1, 6, 7, 8, -1, -1, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, 24, 25, -1, -1, 930, 29, 30, - 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, - -1, 42, 43, -1, -1, 46, 47, 48, -1, -1, - -1, 705, -1, -1, -1, -1, -1, -1, -1, -1, - 1169, -1, 716, -1, 967, -1, -1, -1, -1, 70, - -1, -1, -1, -1, -1, -1, -1, -1, 561, -1, - 424, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 92, 93, 94, 95, 96, 97, 98, -1, 443, - -1, -1, -1, -1, 561, -1, 107, 18, -1, -1, - 111, -1, -1, 24, -1, -1, -1, -1, 29, 30, - 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 424, -1, 46, 47, 48, -1, -1, + -1, -1, 383, 846, 847, 848, 849, 850, 851, 852, + 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, + -1, 864, -1, 182, -1, -1, 182, -1, -1, -1, + -1, 190, -1, -1, 190, 194, -1, 196, 194, -1, + 196, -1, -1, 424, -1, 204, 19, 20, 204, -1, + 209, 24, 211, 209, -1, 211, 29, 30, 31, 32, + 33, 34, 443, -1, 223, 224, 225, 223, 224, 225, + -1, -1, -1, 46, 47, 48, -1, -1, -1, -1, + -1, -1, 831, -1, -1, -1, -1, 930, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, + -1, -1, -1, -1, -1, -1, 561, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 443, -1, -1, -1, -1, -1, -1, 70, + -1, -1, -1, -1, 967, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, + -1, -1, 6, 7, 8, -1, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, -1, -1, 424, + 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, + 34, 920, -1, -1, -1, -1, -1, 424, 443, -1, + 561, -1, 46, 47, 48, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 443, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, + -1, 184, 185, 186, 187, -1, 965, -1, -1, -1, + -1, -1, 0, 1, -1, -1, -1, -1, -1, 93, + 94, 95, 96, 97, 98, -1, -1, -1, -1, -1, + -1, -1, -1, 107, -1, -1, 24, 111, -1, -1, + -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, + -1, -1, -1, -1, -1, 424, -1, 45, 424, -1, + -1, -1, 1115, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 443, -1, -1, 443, 1131, 67, + 68, 69, -1, 71, -1, -1, 561, 75, 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 0, 1, -1, -1, 831, -1, -1, - -1, -1, 183, 184, 185, 186, 187, 188, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, - 111, -1, -1, -1, -1, -1, -1, 34, -1, -1, - -1, -1, 1115, -1, -1, -1, -1, 561, 45, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1131, -1, + -1, 89, 90, 91, 561, -1, -1, -1, -1, -1, + 184, 185, 186, 187, 188, 189, -1, -1, 1171, -1, + 108, 109, 110, -1, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 0, 1, + -1, -1, 561, -1, -1, 561, 184, 185, 186, -1, + 188, 189, 190, 19, -1, -1, -1, -1, 24, -1, + -1, -1, 24, 29, 30, 31, 32, 33, 34, -1, + -1, -1, 34, -1, -1, -1, -1, -1, -1, -1, + 46, 47, 48, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 67, 68, 69, -1, 71, -1, -1, -1, 75, 76, - 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 89, 90, 91, -1, 920, -1, 1171, -1, - 561, -1, 183, 184, 185, 186, -1, -1, -1, -1, - -1, 108, 109, 110, -1, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 965, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 0, - 1, -1, -1, -1, -1, -1, 183, 184, 185, -1, - 187, 188, 189, 18, -1, -1, -1, -1, -1, 24, - -1, -1, -1, 24, 29, 30, 31, 32, 33, 34, - -1, -1, -1, 34, -1, -1, -1, -1, -1, -1, - -1, 46, 47, 48, 45, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 70, 67, 68, 69, -1, 71, + -1, -1, -1, 75, 76, 77, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 89, 90, 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 70, 67, 68, 69, -1, - 71, -1, -1, -1, 75, 76, 77, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, - 91, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 111, 108, 109, 110, - -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, -1, -1, -1, 183, 184, - 185, 186, 183, 184, 185, 1, 187, 188, 189, -1, + -1, -1, -1, -1, -1, 111, 108, 109, 110, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, -1, -1, -1, -1, 184, 185, + 186, 187, 184, 185, 186, 1, 188, 189, 190, -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, @@ -2171,148 +2132,122 @@ static const short yycheck[] = { 0, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - -1, -1, -1, -1, -1, -1, -1, 183, 184, 185, - 186, 187, 188, 189, 1, -1, -1, -1, -1, 6, - 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, -1, -1, -1, -1, 24, -1, -1, - -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, - -1, -1, -1, -1, -1, 42, 43, -1, -1, 46, - 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, - 97, 98, -1, -1, -1, -1, -1, -1, -1, -1, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, -1, - -1, -1, -1, -1, -1, -1, 183, 184, 185, 186, - 187, 188, 189, 1, -1, -1, -1, -1, 6, 7, - 8, -1, -1, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, - -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, -1, -1, 42, 43, -1, -1, 46, 47, - 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, - 68, 69, 70, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, - 98, -1, -1, -1, -1, -1, -1, -1, -1, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, -1, -1, - -1, -1, -1, -1, -1, 183, 184, 185, 186, 187, - 188, 189, 1, -1, -1, -1, -1, 6, 7, 8, - -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, -1, -1, -1, -1, 24, -1, -1, -1, -1, - 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, - -1, -1, -1, 42, 43, 1, -1, 46, 47, 48, + -1, -1, -1, -1, -1, -1, -1, -1, 184, 185, + 186, 187, 188, 189, 190, 1, -1, -1, -1, -1, 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, -1, 24, -1, - -1, 70, -1, 29, 30, 31, 32, 33, 34, -1, + -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, -1, -1, - 46, 47, 48, 92, 93, 94, 95, 96, 97, 98, - -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, - -1, -1, 111, -1, 70, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 92, 93, 94, 95, - 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, - -1, 107, -1, -1, -1, 111, -1, -1, -1, -1, + 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 183, 184, 185, 186, 187, 188, - -1, -1, 1, -1, -1, -1, -1, 6, 7, 8, - -1, -1, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, - 29, 30, 31, 32, 33, 34, -1, 183, 184, 185, - 186, 187, 188, 42, 43, 1, -1, 46, 47, 48, - 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, - -1, 70, -1, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, -1, -1, -1, 42, 43, -1, -1, - 46, 47, 48, 92, 93, 94, 95, 96, 97, 98, - -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, - -1, -1, 111, -1, 70, -1, -1, -1, -1, -1, + -1, 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, - -1, 107, -1, -1, -1, 111, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 183, 184, 185, 186, 187, 188, - -1, -1, 1, -1, -1, -1, -1, 6, 7, 8, - -1, -1, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, - 29, 30, 31, 32, 33, 34, -1, 183, 184, 185, - 186, 187, 188, 42, 43, 1, -1, 46, 47, 48, - 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, -1, -1, -1, -1, 24, -1, - -1, 70, -1, 29, 30, 31, 32, 33, 34, -1, + -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + -1, -1, -1, -1, -1, -1, -1, -1, 184, 185, + 186, 187, 188, 189, 190, 1, -1, -1, -1, -1, + 6, 7, 8, -1, -1, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, + -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, 43, -1, -1, - 46, 47, 48, -1, 93, 94, 95, 96, 97, 98, - -1, -1, -1, -1, -1, -1, -1, -1, 107, -1, - -1, -1, 111, -1, 70, -1, -1, -1, -1, -1, + 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, - -1, 107, -1, -1, -1, 111, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 183, 184, 185, 186, 187, 188, - -1, -1, -1, -1, -1, -1, -1, 6, 7, 8, - -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, - 29, 30, 31, 32, 33, 34, -1, 183, 184, 185, - 186, 187, 188, 42, 43, -1, 45, 46, 47, 48, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + -1, -1, -1, -1, -1, -1, -1, -1, 184, 185, + 186, 187, 188, 189, 190, 1, -1, -1, -1, -1, + 6, 7, 8, -1, -1, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, -1, -1, -1, 24, 25, + -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, + -1, -1, -1, -1, -1, -1, 42, 43, 1, -1, + 46, 47, 48, 6, 7, 8, -1, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, + -1, 24, -1, -1, 70, -1, 29, 30, 31, 32, + 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, + 43, -1, -1, 46, 47, 48, 92, 93, 94, 95, + 96, 97, 98, -1, -1, -1, -1, -1, 19, -1, + -1, 107, -1, 24, -1, 111, -1, 70, 29, 30, + 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 46, 47, 48, -1, 92, + 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, + -1, -1, -1, -1, 107, -1, -1, -1, 111, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, - -1, -1, -1, -1, -1, -1, -1, -1, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, -1, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, -1, -1, -1, - -1, -1, -1, -1, 183, 184, 185, 186, 187, 188, - 189, 6, 7, 8, -1, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, + -1, -1, -1, -1, -1, -1, -1, -1, 184, 185, + 186, 187, 188, 189, -1, -1, 1, -1, -1, -1, + 111, 6, 7, 8, -1, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, -1, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, - -1, -1, -1, -1, -1, -1, -1, 42, 43, -1, - 45, 46, 47, 48, -1, -1, -1, -1, -1, -1, + -1, 184, 185, 186, 187, 188, 189, 42, 43, 1, + -1, 46, 47, 48, 6, 7, 8, -1, -1, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, + -1, -1, 24, -1, -1, 70, -1, 29, 30, 31, + 32, 33, 34, 184, 185, 186, 187, -1, -1, -1, + 42, 43, -1, -1, 46, 47, 48, 92, 93, 94, + 95, 96, 97, 98, -1, -1, -1, -1, -1, -1, + -1, -1, 107, -1, 24, 25, 111, -1, 70, 29, + 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 46, 47, 48, -1, + 92, 93, 94, 95, 96, 97, 98, -1, -1, -1, + -1, -1, -1, -1, -1, 107, -1, -1, -1, 111, + 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 70, 71, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 184, + 185, 186, 187, 188, 189, -1, -1, 1, -1, -1, + -1, 111, 6, 7, 8, -1, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, + 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, + 34, -1, 184, 185, 186, 187, 188, 189, 42, 43, + 1, -1, 46, 47, 48, 6, 7, 8, -1, -1, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + -1, -1, -1, 24, -1, -1, 70, -1, 29, 30, + 31, 32, 33, 34, 184, 185, 186, 187, -1, -1, + -1, 42, 43, -1, -1, 46, 47, 48, -1, 93, + 94, 95, 96, 97, 98, -1, -1, -1, -1, -1, + -1, -1, -1, 107, -1, 24, -1, 111, 27, 70, + 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 46, 47, 48, + -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, + -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, + 111, 70, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, + 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, + 184, 185, 186, 187, 188, 189, -1, -1, 1, 46, + 47, 48, 111, 6, 7, 8, -1, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, + -1, 24, -1, 70, -1, -1, 29, 30, 31, 32, + 33, 34, -1, 184, 185, 186, 187, 188, 189, 42, + 43, -1, -1, 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, - 95, 96, 97, 98, -1, -1, -1, -1, -1, -1, - -1, -1, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, -1, -1, -1, -1, -1, -1, -1, 183, 184, - 185, 186, 187, 188, 189, 6, 7, 8, -1, 10, + -1, -1, -1, -1, 111, -1, -1, 70, -1, -1, + -1, -1, -1, -1, -1, 184, 185, 186, 187, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, + -1, -1, -1, -1, 107, 6, 7, 8, 111, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, - 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, - -1, 42, 43, -1, 45, 46, 47, 48, -1, -1, + 31, 32, 33, 34, -1, -1, -1, 184, 185, 186, + 187, 42, 43, -1, 45, 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 184, 185, 186, 187, 188, 189, -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, @@ -2322,239 +2257,112 @@ static const short yycheck[] = { 0, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, -1, -1, -1, -1, -1, - -1, -1, 183, 184, 185, 186, 187, 188, 189, 6, - 7, 8, -1, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, - -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, - 47, 48, 6, 7, 8, -1, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, - 24, -1, -1, 70, -1, 29, 30, 31, 32, 33, - 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 46, 47, 48, -1, 93, 94, 95, 96, - 97, 98, -1, -1, -1, -1, -1, -1, -1, -1, - 107, -1, -1, -1, 111, -1, 70, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, - 94, 95, 96, 97, 98, -1, -1, -1, -1, -1, - -1, -1, -1, 107, 6, 7, 8, 111, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, - -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, - 32, 33, 34, -1, -1, -1, 183, 184, 185, 186, - 187, 188, -1, -1, 46, 47, 48, 6, 7, 8, - -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, -1, 24, -1, -1, 70, -1, - 29, 30, 31, 32, 33, 34, -1, -1, -1, 183, - 184, 185, 186, 187, 188, -1, -1, 46, 47, 48, - -1, 93, 94, 95, 96, 97, 98, -1, -1, -1, - -1, -1, -1, -1, -1, 107, -1, -1, -1, 111, - -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, - -1, -1, -1, -1, -1, -1, -1, -1, 107, 6, - 7, 8, 111, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, -1, -1, -1, 24, -1, -1, - -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, - -1, 183, 184, 185, 186, 187, 188, -1, -1, 46, - 47, 48, 6, 7, 8, -1, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, - 24, -1, -1, 70, -1, 29, 30, 31, 32, 33, - 34, -1, -1, -1, 183, 184, 185, 186, 187, 188, - -1, -1, 46, 47, 48, -1, 93, 94, 95, 96, - 97, 98, -1, -1, -1, -1, -1, -1, -1, -1, - 107, -1, -1, -1, 111, -1, 70, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, - 94, 95, 96, 97, 98, -1, -1, -1, -1, -1, - -1, -1, -1, 107, 6, 7, 8, 111, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, - -1, -1, 24, -1, -1, -1, -1, 29, 30, 31, - 32, 33, 34, -1, -1, -1, 183, 184, 185, 186, - 187, 188, -1, -1, 46, 47, 48, 6, 7, 8, - -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, -1, -1, -1, -1, 24, -1, -1, 70, -1, - 29, 30, 31, 32, 33, 34, -1, -1, -1, 183, - 184, 185, 186, 187, 188, -1, -1, 46, 47, 48, - -1, 93, 94, 95, 96, 97, 98, -1, -1, -1, - -1, -1, -1, -1, -1, 107, -1, -1, -1, 111, - -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 93, 94, 95, 96, 97, 98, - 18, -1, -1, -1, -1, -1, -1, -1, 107, -1, - -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 45, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 183, 184, 185, 186, 187, 188, -1, -1, 67, - 68, 69, -1, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 183, 184, 185, 186, 187, 188, - 108, 109, 110, -1, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 18, -1, - -1, -1, -1, -1, -1, -1, -1, 185, -1, -1, - -1, 189, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 45, 19, 20, -1, -1, - -1, 24, -1, -1, -1, -1, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 71, -1, 46, 47, 48, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, - -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 108, 109, - 110, -1, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 111, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 19, -1, -1, -1, - -1, 24, -1, -1, -1, 185, -1, -1, -1, 189, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, - 183, 184, 185, 186, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 108, 109, 110, -1, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -1, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 19, -1, -1, -1, -1, -1, -1, - -1, -1, 185, -1, -1, -1, 189, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 45, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, + -1, -1, -1, 184, 185, 186, 187, 188, 189, 190, + 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, + -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, + -1, -1, -1, -1, -1, -1, 42, 43, -1, 45, + 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 108, 109, 110, -1, 112, 113, 114, 115, + -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, + 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, + -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 185, - 108, 109, 110, 189, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 22, -1, - -1, -1, -1, -1, -1, -1, -1, 185, -1, -1, - -1, 189, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 19, -1, -1, -1, -1, 24, -1, -1, - -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, - -1, -1, -1, 67, 68, 69, -1, -1, -1, 46, - 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 108, 109, 110, -1, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 111, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, -1, -1, -1, -1, 19, -1, -1, -1, - -1, 24, -1, -1, -1, 189, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 46, 47, 48, 183, 184, 185, 186, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 24, -1, -1, -1, -1, -1, -1, -1, 111, -1, - 34, 24, 25, -1, -1, -1, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 46, 47, 48, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 183, 184, 185, 186, 108, 109, 110, -1, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 111, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, -1, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, -1, -1, -1, -1, -1, -1, -1, 183, - 184, 185, -1, 187, 188, 189, -1, -1, -1, -1, - 183, 184, 185, 186, 24, -1, -1, 27, -1, 29, - 30, 31, 32, 33, 34, 24, -1, -1, 27, -1, - 29, 30, 31, 32, 33, 34, 46, 47, 48, -1, - -1, -1, -1, -1, -1, 24, 25, 46, 47, 48, - 29, 30, 31, 32, 33, 34, 24, 25, -1, -1, - 70, 29, 30, 31, 32, 33, 34, 46, 47, 48, - -1, 70, -1, -1, -1, -1, 24, -1, 46, 47, - 48, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, 70, -1, -1, -1, -1, -1, -1, 46, 47, - 48, 111, 70, -1, -1, -1, -1, -1, -1, -1, - -1, 24, 111, -1, -1, -1, 29, 30, 31, 32, - 33, 34, 70, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 111, 46, 47, 48, -1, -1, -1, -1, - -1, -1, 24, 111, -1, -1, -1, 29, 30, 31, - 32, 33, 34, -1, -1, -1, -1, 70, -1, -1, - -1, -1, -1, 111, 46, 47, 48, -1, -1, -1, - -1, -1, -1, 183, 184, 185, 186, -1, -1, -1, - -1, -1, -1, -1, 183, 184, 185, 186, 70, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, - -1, -1, -1, 24, 183, 184, 185, 186, 29, 30, - 31, 32, 33, 34, -1, 183, 184, 185, 186, -1, - -1, -1, -1, -1, -1, 46, 47, 48, -1, 111, - -1, -1, -1, -1, 24, 183, 184, 185, 186, 29, - 30, 31, 32, 33, 34, -1, -1, -1, -1, 70, - -1, -1, -1, -1, -1, -1, 46, 47, 48, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 183, 184, 185, 186, -1, -1, -1, -1, -1, -1, - 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 183, 184, 185, 186, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 111, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 42, 43, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 183, 184, 185, 186, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 184, 185, + 186, 187, 188, 189, 190, 6, 7, 8, -1, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, + 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, + -1, 42, 43, -1, 45, 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, + 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 183, 184, 185, 186, 108, 109, 110, - -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, + -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, + -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 45, -1, -1, -1, -1, - -1, -1, -1, -1, 185, -1, -1, -1, 189, -1, - -1, -1, -1, -1, -1, -1, -1, 67, 68, 69, - -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, + 171, 172, 173, 174, 175, -1, -1, -1, -1, -1, + -1, -1, -1, 184, 185, 186, 187, 188, 189, 190, + 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, + -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 46, 47, 48, 6, 7, 8, -1, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, + -1, 24, -1, -1, 70, -1, 29, 30, 31, 32, + 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 46, 47, 48, -1, 93, 94, 95, + 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, + -1, 107, -1, -1, -1, 111, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 108, 109, - 110, -1, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, -1, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 45, -1, -1, -1, - -1, -1, -1, -1, -1, 185, -1, -1, -1, 189, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, + 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, + -1, -1, -1, -1, 107, 6, 7, 8, 111, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, + 31, 32, 33, 34, -1, -1, -1, -1, 184, 185, + 186, 187, 188, 189, -1, 46, 47, 48, 6, 7, + 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, -1, -1, -1, 24, -1, -1, 70, + -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, + -1, 184, 185, 186, 187, 188, 189, -1, 46, 47, + 48, -1, 93, 94, 95, 96, 97, 98, -1, -1, + -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, + 111, -1, 70, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, + 98, -1, -1, -1, -1, -1, -1, -1, -1, 107, + 6, 7, 8, 111, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, + -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, + -1, -1, -1, 184, 185, 186, 187, 188, 189, -1, + 46, 47, 48, 6, 7, 8, -1, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, + -1, 24, -1, -1, 70, -1, 29, 30, 31, 32, + 33, 34, -1, -1, -1, -1, 184, 185, 186, 187, + 188, 189, -1, 46, 47, 48, -1, 93, 94, 95, + 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, + -1, 107, -1, -1, -1, 111, -1, 70, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, + -1, -1, -1, -1, 107, 6, 7, 8, 111, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, + -1, 18, -1, 24, -1, -1, -1, -1, 29, 30, + 31, 32, 33, 34, -1, -1, -1, -1, 184, 185, + 186, 187, 188, 189, -1, 46, 47, 48, 45, -1, + -1, -1, -1, -1, 24, 25, -1, -1, -1, 29, + 30, 31, 32, 33, 34, -1, -1, -1, -1, 70, + 67, 68, 69, -1, 71, -1, 46, 47, 48, -1, + -1, 184, 185, 186, 187, 188, 189, -1, -1, -1, + -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, + 70, -1, -1, -1, -1, -1, 107, -1, -1, -1, + 111, 108, 109, 110, -1, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 111, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 18, + -1, -1, -1, 184, 185, 186, 187, 188, 189, 186, + -1, -1, -1, 190, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, + -1, -1, -1, -1, 184, 185, 186, 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 108, 109, 110, -1, 112, 113, 114, 115, 116, 117, 118, @@ -2563,28 +2371,135 @@ static const short yycheck[] = { 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 67, 68, 69, - -1, -1, -1, -1, -1, -1, 185, -1, -1, -1, - 189, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 169, 170, 171, 172, 173, 174, 175, 19, -1, -1, + -1, -1, 24, -1, -1, -1, -1, 186, -1, -1, + -1, 190, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 45, -1, -1, -1, -1, -1, 24, + 25, -1, -1, -1, 29, 30, 31, 32, 33, 34, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, + -1, 46, 47, 48, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 108, 109, 110, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 111, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 19, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 186, -1, -1, -1, 190, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 45, -1, -1, -1, -1, -1, -1, -1, -1, 184, + 185, 186, 187, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 108, 109, + -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, + -1, -1, -1, 108, 109, 110, -1, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 186, 108, 109, 110, 190, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 22, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + -1, -1, -1, -1, -1, -1, -1, 67, 68, 69, + 186, -1, -1, -1, 190, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, + -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 34, -1, -1, -1, -1, -1, 108, 109, 110, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 89, 90, 91, -1, - -1, -1, -1, -1, -1, 185, -1, -1, -1, 189, - -1, -1, -1, -1, -1, 108, 109, 110, -1, 112, + 170, 171, 172, 173, 174, 175, 108, 109, 110, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 190, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, -1, -1, -1, -1, -1, -1, + -1, -1, 184, 185, 186, 24, 188, 189, 190, -1, + 29, 30, 31, 32, 33, 34, 24, -1, -1, -1, + -1, 29, 30, 31, 32, 33, 34, 46, 47, 48, + -1, -1, -1, -1, -1, -1, 24, -1, 46, 47, + 48, 29, 30, 31, 32, 33, 34, 24, -1, -1, + -1, 70, 29, 30, 31, 32, 33, 34, 46, 47, + 48, -1, 70, -1, -1, -1, -1, 24, -1, 46, + 47, 48, 29, 30, 31, 32, 33, 34, -1, -1, + -1, -1, 70, -1, -1, -1, -1, -1, -1, 46, + 47, 48, 111, 70, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 184, 185, 186, 187, 42, + 43, -1, -1, -1, -1, -1, 184, 185, 186, 187, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 184, 185, 186, 187, + -1, -1, -1, -1, -1, -1, -1, 184, 185, 186, + 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 184, 185, 186, + 187, -1, -1, -1, -1, 108, 109, 110, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 185, 108, 109, 110, 189, 112, 113, 114, + 173, 174, 175, 45, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 186, -1, -1, -1, 190, -1, -1, + -1, -1, -1, -1, -1, 67, 68, 69, -1, 71, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 108, 109, 110, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 45, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 186, -1, -1, -1, 190, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 108, 109, 110, + -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 67, 68, 69, -1, -1, + -1, -1, -1, -1, -1, 186, -1, -1, -1, 190, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 108, 109, 110, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, -1, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 89, 90, 91, -1, -1, -1, + -1, -1, -1, -1, 186, -1, -1, -1, 190, -1, + -1, -1, -1, 108, 109, 110, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, @@ -2592,7 +2507,15 @@ static const short yycheck[] = { 0, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 185, -1, -1, -1, 189 + -1, 186, 108, 109, 110, 190, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 186, -1, -1, -1, 190 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/lib/bison.simple" @@ -3138,52 +3061,52 @@ yyreduce: switch (yyn) { case 5: -#line 276 "cgrammar.y" +#line 277 "cgrammar.y" { uentry_clearDecl (); ; break;} case 6: -#line 277 "cgrammar.y" +#line 278 "cgrammar.y" { uentry_clearDecl (); ; break;} case 7: -#line 278 "cgrammar.y" +#line 279 "cgrammar.y" { uentry_clearDecl (); ; break;} case 8: -#line 279 "cgrammar.y" +#line 280 "cgrammar.y" { uentry_clearDecl (); ; break;} case 9: -#line 280 "cgrammar.y" +#line 281 "cgrammar.y" { uentry_clearDecl (); ; break;} case 10: -#line 281 "cgrammar.y" +#line 282 "cgrammar.y" { uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ; break;} case 11: -#line 282 "cgrammar.y" +#line 283 "cgrammar.y" { uentry_clearDecl (); ; break;} case 12: -#line 286 "cgrammar.y" +#line 287 "cgrammar.y" { checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ; break;} case 13: -#line 288 "cgrammar.y" +#line 289 "cgrammar.y" { checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ; break;} case 14: -#line 291 "cgrammar.y" +#line 292 "cgrammar.y" { context_enterFunctionDecl (); ; break;} case 15: -#line 292 "cgrammar.y" +#line 293 "cgrammar.y" { declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction (); context_exitFunctionDecl (); ; break;} case 16: -#line 297 "cgrammar.y" +#line 298 "cgrammar.y" { qtype qint = qtype_create (ctype_int); yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint); @@ -3191,38 +3114,38 @@ case 16: ; break;} case 17: -#line 303 "cgrammar.y" +#line 304 "cgrammar.y" { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ; break;} case 19: -#line 308 "cgrammar.y" +#line 309 "cgrammar.y" { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ; break;} case 20: -#line 311 "cgrammar.y" +#line 312 "cgrammar.y" { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ; break;} case 21: -#line 313 "cgrammar.y" +#line 314 "cgrammar.y" { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ; break;} case 22: -#line 315 "cgrammar.y" +#line 316 "cgrammar.y" { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ; break;} case 23: -#line 317 "cgrammar.y" +#line 318 "cgrammar.y" { yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), exprNode_getLongValue (yyvsp[-2].expr))); ; break;} case 24: -#line 321 "cgrammar.y" +#line 322 "cgrammar.y" { setCurrentParams (uentryList_missingParams); ; break;} case 25: -#line 324 "cgrammar.y" +#line 325 "cgrammar.y" { /* need to support globals and modifies here! */ ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), uentryList_makeMissingParams ()); @@ -3232,12 +3155,12 @@ case 25: ; break;} case 26: -#line 332 "cgrammar.y" +#line 333 "cgrammar.y" { setCurrentParams (yyvsp[-1].entrylist); ; break;} case 27: -#line 335 "cgrammar.y" +#line 336 "cgrammar.y" { setImplictfcnConstraints (); clearCurrentParams (); yyval.ntyp = idDecl_replaceCtype (yyvsp[-7].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-7].ntyp), yyvsp[-4].entrylist)); @@ -3245,19 +3168,19 @@ case 27: ; break;} case 28: -#line 342 "cgrammar.y" +#line 343 "cgrammar.y" { yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ; break;} case 29: -#line 344 "cgrammar.y" +#line 345 "cgrammar.y" { yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ; break;} case 30: -#line 346 "cgrammar.y" +#line 347 "cgrammar.y" { yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ; break;} case 31: -#line 348 "cgrammar.y" +#line 349 "cgrammar.y" { int value; @@ -3275,12 +3198,12 @@ case 31: ; break;} case 32: -#line 364 "cgrammar.y" +#line 365 "cgrammar.y" { setCurrentParams (uentryList_missingParams); ; break;} case 33: -#line 367 "cgrammar.y" +#line 368 "cgrammar.y" { /* need to support globals and modifies here! */ ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), uentryList_makeMissingParams ()); @@ -3290,67 +3213,67 @@ case 33: ; break;} case 34: -#line 375 "cgrammar.y" +#line 376 "cgrammar.y" { setCurrentParams (yyvsp[-1].entrylist); ; break;} case 35: -#line 378 "cgrammar.y" +#line 379 "cgrammar.y" { clearCurrentParams (); yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist)); context_popLoc (); ; break;} case 36: -#line 385 "cgrammar.y" +#line 386 "cgrammar.y" { setCurrentParams (yyvsp[-1].entrylist); ; break;} case 37: -#line 386 "cgrammar.y" +#line 387 "cgrammar.y" { clearCurrentParams (); ; break;} case 38: -#line 387 "cgrammar.y" +#line 388 "cgrammar.y" { declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ; break;} case 39: -#line 390 "cgrammar.y" +#line 391 "cgrammar.y" { exprNode_checkMacroBody (yyvsp[-1].expr); ; break;} case 40: -#line 391 "cgrammar.y" +#line 392 "cgrammar.y" { exprNode_checkIterBody (yyvsp[-1].expr); ; break;} case 41: -#line 392 "cgrammar.y" +#line 393 "cgrammar.y" { exprNode_checkIterEnd (yyvsp[-1].expr); ; break;} case 42: -#line 393 "cgrammar.y" +#line 394 "cgrammar.y" { exprChecks_checkEmptyMacroBody (); ; break;} case 43: -#line 396 "cgrammar.y" +#line 397 "cgrammar.y" { declareFunction (yyvsp[0].ntyp); ; break;} case 44: -#line 399 "cgrammar.y" +#line 400 "cgrammar.y" { setProcessingGlobMods (); ; break;} case 45: -#line 400 "cgrammar.y" +#line 401 "cgrammar.y" { clearProcessingGlobMods (); ; break;} case 46: -#line 406 "cgrammar.y" +#line 407 "cgrammar.y" { setProcessingGlobMods (); ; break;} case 47: -#line 407 "cgrammar.y" +#line 408 "cgrammar.y" { clearProcessingGlobMods (); ; break;} case 49: -#line 415 "cgrammar.y" +#line 416 "cgrammar.y" { DPRINTF ( ("doing optGlobEnsuresConstraintsAux\n") ); context_setProtectVars (); enterParamsTemp (); @@ -3359,16 +3282,16 @@ context_setProtectVars (); enterParamsTemp (); ; break;} case 50: -#line 421 "cgrammar.y" +#line 422 "cgrammar.y" { - setEnsuresConstraints (yyvsp[-1].conL); + setEnsuresConstraints (yyvsp[-2].conL); exitParamsTemp (); sRef_clearGlobalScopeSafe (); context_releaseVars (); DPRINTF (("done optGlobBufConstraintsAux\n"));; break;} case 52: -#line 431 "cgrammar.y" +#line 432 "cgrammar.y" { DPRINTF ( ("doing optGlobBufConstraintsAux\n") ); context_setProtectVars (); enterParamsTemp (); @@ -3377,44 +3300,44 @@ context_setProtectVars (); enterParamsTemp (); ; break;} case 53: -#line 437 "cgrammar.y" +#line 438 "cgrammar.y" { - setFunctionConstraints (yyvsp[-1].conL); + setFunctionConstraints (yyvsp[-2].conL); exitParamsTemp (); sRef_clearGlobalScopeSafe (); context_releaseVars (); DPRINTF (("done optGlobBufConstraintsAux\n"));; break;} case 55: -#line 446 "cgrammar.y" -{ yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-1].con); ; +#line 447 "cgrammar.y" +{ yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ; break;} case 56: -#line 447 "cgrammar.y" +#line 448 "cgrammar.y" {constraintList c; c = constraintList_makeNew(); c = constraintList_add (c, yyvsp[0].con); yyval.conL = c; break;} case 57: -#line 450 "cgrammar.y" +#line 451 "cgrammar.y" { - yyval.con = makeConstraintParse3 (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); + yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE); DPRINTF(("Done BufConstraint1\n")); ; break;} case 64: -#line 465 "cgrammar.y" +#line 466 "cgrammar.y" {yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ; break;} case 65: -#line 466 "cgrammar.y" +#line 467 "cgrammar.y" { DPRINTF( ("Got BufConstraintExpr BINary Op ") ); yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ; break;} case 66: -#line 471 "cgrammar.y" +#line 472 "cgrammar.y" { yyval.conE = constraintExpr_makeTermsRef(yyvsp[0].sr);; break;} case 67: -#line 472 "cgrammar.y" +#line 473 "cgrammar.y" { char *t; int c; t = cstring_toCharsSafe (exprNode_unparse(yyvsp[0].expr)); c = atoi( t ); @@ -3422,21 +3345,21 @@ case 67: ; break;} case 68: -#line 480 "cgrammar.y" +#line 481 "cgrammar.y" { yyval.sr = checkbufferConstraintClausesId (yyvsp[0].entry);; break;} case 69: -#line 483 "cgrammar.y" +#line 484 "cgrammar.y" { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ; break;} case 70: -#line 485 "cgrammar.y" +#line 486 "cgrammar.y" { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ; break;} case 71: -#line 486 "cgrammar.y" +#line 487 "cgrammar.y" { char *t; int c; t = cstring_toCharsSafe (exprNode_unparse(yyvsp[-1].expr)); @@ -3444,140 +3367,140 @@ case 71: yyval.sr = sRef_makeArrayFetchKnown(yyvsp[-3].sr, c); ; break;} case 72: -#line 491 "cgrammar.y" +#line 492 "cgrammar.y" { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ; break;} case 73: -#line 492 "cgrammar.y" +#line 493 "cgrammar.y" { yyval.sr = yyvsp[-1].sr; ; break;} case 74: -#line 493 "cgrammar.y" +#line 494 "cgrammar.y" { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 75: -#line 495 "cgrammar.y" +#line 496 "cgrammar.y" { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 79: -#line 521 "cgrammar.y" +#line 522 "cgrammar.y" { setProcessingGlobMods (); ; break;} case 80: -#line 522 "cgrammar.y" +#line 523 "cgrammar.y" { clearProcessingGlobMods (); ; break;} case 81: -#line 532 "cgrammar.y" +#line 533 "cgrammar.y" { setProcessingGlobMods (); ; break;} case 82: -#line 533 "cgrammar.y" +#line 534 "cgrammar.y" { clearProcessingGlobMods (); ; break;} case 89: -#line 548 "cgrammar.y" +#line 549 "cgrammar.y" { ; ; break;} case 90: -#line 549 "cgrammar.y" +#line 550 "cgrammar.y" { ; ; break;} case 91: -#line 552 "cgrammar.y" +#line 553 "cgrammar.y" { globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ; break;} case 92: -#line 555 "cgrammar.y" +#line 556 "cgrammar.y" { yyval.sr = uentry_getSref (yyvsp[0].entry); ; break;} case 93: -#line 556 "cgrammar.y" +#line 557 "cgrammar.y" { yyval.sr = globListUnrecognized (yyvsp[0].cname); ; break;} case 94: -#line 559 "cgrammar.y" +#line 560 "cgrammar.y" { yyval.typequal = qual_createUndef (); ; break;} case 95: -#line 560 "cgrammar.y" +#line 561 "cgrammar.y" { yyval.typequal = qual_createKilled (); ; break;} case 96: -#line 561 "cgrammar.y" +#line 562 "cgrammar.y" { yyval.typequal = qual_createOut (); ; break;} case 97: -#line 562 "cgrammar.y" +#line 563 "cgrammar.y" { yyval.typequal = qual_createIn (); ; break;} case 98: -#line 563 "cgrammar.y" +#line 564 "cgrammar.y" { yyval.typequal = qual_createPartial (); ; break;} case 99: -#line 566 "cgrammar.y" +#line 567 "cgrammar.y" { yyval.tquallist = qualList_undefined; ; break;} case 100: -#line 567 "cgrammar.y" +#line 568 "cgrammar.y" { yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ; break;} case 101: -#line 570 "cgrammar.y" +#line 571 "cgrammar.y" { setProcessingGlobalsList (); ; break;} case 102: -#line 572 "cgrammar.y" +#line 573 "cgrammar.y" { unsetProcessingGlobals (); ; break;} case 103: -#line 573 "cgrammar.y" +#line 574 "cgrammar.y" { setProcessingGlobalsList (); ; break;} case 104: -#line 575 "cgrammar.y" +#line 576 "cgrammar.y" { unsetProcessingGlobals (); ; break;} case 105: -#line 577 "cgrammar.y" +#line 578 "cgrammar.y" { setFunctionNoGlobals (); setFunctionModifies (sRefSet_single (sRef_makeNothing ())); ; break;} case 108: -#line 584 "cgrammar.y" +#line 585 "cgrammar.y" { setProcessingGlobalsList (); ; break;} case 109: -#line 586 "cgrammar.y" +#line 587 "cgrammar.y" { unsetProcessingGlobals (); ; break;} case 110: -#line 587 "cgrammar.y" +#line 588 "cgrammar.y" { setProcessingGlobalsList (); ; break;} case 111: -#line 589 "cgrammar.y" +#line 590 "cgrammar.y" { unsetProcessingGlobals (); ; break;} case 112: -#line 591 "cgrammar.y" +#line 592 "cgrammar.y" { setFunctionNoGlobals (); setFunctionModifies (sRefSet_single (sRef_makeNothing ())); ; break;} case 117: -#line 603 "cgrammar.y" +#line 604 "cgrammar.y" { context_setProtectVars (); enterParamsTemp (); sRef_setGlobalScopeSafe (); ; break;} case 118: -#line 608 "cgrammar.y" +#line 609 "cgrammar.y" { setFunctionModifies (yyvsp[0].srset); exitParamsTemp (); sRef_clearGlobalScopeSafe (); @@ -3585,14 +3508,14 @@ case 118: ; break;} case 119: -#line 616 "cgrammar.y" +#line 617 "cgrammar.y" { context_setProtectVars (); enterParamsTemp (); sRef_setGlobalScopeSafe (); ; break;} case 120: -#line 621 "cgrammar.y" +#line 622 "cgrammar.y" { setFunctionModifies (yyvsp[0].srset); exitParamsTemp (); sRef_clearGlobalScopeSafe (); @@ -3600,39 +3523,39 @@ case 120: ; break;} case 130: -#line 645 "cgrammar.y" +#line 646 "cgrammar.y" { yyval.sck = SP_ISONLY; ; break;} case 131: -#line 646 "cgrammar.y" +#line 647 "cgrammar.y" { yyval.sck = SP_ISOBSERVER; ; break;} case 132: -#line 647 "cgrammar.y" +#line 648 "cgrammar.y" { yyval.sck = SP_ISEXPOSED; ; break;} case 133: -#line 648 "cgrammar.y" +#line 649 "cgrammar.y" { yyval.sck = SP_ISDEPENDENT; ; break;} case 134: -#line 649 "cgrammar.y" +#line 650 "cgrammar.y" { yyval.sck = SP_ISOWNED; ; break;} case 135: -#line 650 "cgrammar.y" +#line 651 "cgrammar.y" { yyval.sck = SP_ISSHARED; ; break;} case 136: -#line 651 "cgrammar.y" +#line 652 "cgrammar.y" { yyval.sck = SP_ISNULL; ; break;} case 137: -#line 652 "cgrammar.y" +#line 653 "cgrammar.y" { yyval.sck = SP_ISNOTNULL; ; break;} case 138: -#line 656 "cgrammar.y" +#line 657 "cgrammar.y" { context_setProtectVars (); enterParamsTemp (); @@ -3640,7 +3563,7 @@ case 138: ; break;} case 139: -#line 662 "cgrammar.y" +#line 663 "cgrammar.y" { setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok); exitParamsTemp (); @@ -3649,7 +3572,7 @@ case 139: ; break;} case 140: -#line 669 "cgrammar.y" +#line 670 "cgrammar.y" { context_setProtectVars (); enterParamsTemp (); @@ -3657,7 +3580,7 @@ case 140: ; break;} case 141: -#line 675 "cgrammar.y" +#line 676 "cgrammar.y" { setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok); exitParamsTemp (); @@ -3666,7 +3589,7 @@ case 141: ; break;} case 142: -#line 684 "cgrammar.y" +#line 685 "cgrammar.y" { qtype qint = qtype_create (ctype_int); yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint); @@ -3674,26 +3597,26 @@ case 142: ; break;} case 143: -#line 690 "cgrammar.y" +#line 691 "cgrammar.y" { yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ; break;} case 144: -#line 693 "cgrammar.y" +#line 694 "cgrammar.y" { checkDoneParams (); context_enterInnerContext (); ; break;} case 145: -#line 695 "cgrammar.y" +#line 696 "cgrammar.y" { exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ; break;} case 146: -#line 700 "cgrammar.y" +#line 701 "cgrammar.y" { doneParams (); context_enterInnerContext (); ; break;} case 147: -#line 702 "cgrammar.y" +#line 703 "cgrammar.y" { context_exitInner (yyvsp[0].expr); exprNode_checkFunctionBody (yyvsp[0].expr); @@ -3701,7 +3624,7 @@ case 147: ; break;} case 148: -#line 710 "cgrammar.y" +#line 711 "cgrammar.y" { context_setFunctionDefined (exprNode_loc (yyvsp[0].expr)); exprNode_checkFunction (context_getHeader (), yyvsp[0].expr); @@ -3711,111 +3634,111 @@ case 148: ; break;} case 149: -#line 719 "cgrammar.y" +#line 720 "cgrammar.y" { yyval.srset = yyvsp[-2].srset; ; break;} case 150: -#line 720 "cgrammar.y" +#line 721 "cgrammar.y" { yyval.srset = sRefSet_new (); ; break;} case 151: -#line 723 "cgrammar.y" +#line 724 "cgrammar.y" { yyval.srset = yyvsp[-1].srset; ; break;} case 152: -#line 724 "cgrammar.y" +#line 725 "cgrammar.y" { yyval.srset = sRefSet_new (); ; break;} case 153: -#line 727 "cgrammar.y" +#line 728 "cgrammar.y" { yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ; break;} case 154: -#line 728 "cgrammar.y" +#line 729 "cgrammar.y" { yyval.sr = fixModifiesId (yyvsp[0].cname); ; break;} case 155: -#line 729 "cgrammar.y" +#line 730 "cgrammar.y" { yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ; break;} case 156: -#line 730 "cgrammar.y" +#line 731 "cgrammar.y" { yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ; break;} case 157: -#line 731 "cgrammar.y" +#line 732 "cgrammar.y" { yyval.sr = modListPointer (yyvsp[0].sr); ; break;} case 158: -#line 732 "cgrammar.y" +#line 733 "cgrammar.y" { yyval.sr = yyvsp[-1].sr; ; break;} case 159: -#line 733 "cgrammar.y" +#line 734 "cgrammar.y" { yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 160: -#line 734 "cgrammar.y" +#line 735 "cgrammar.y" { yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 161: -#line 738 "cgrammar.y" +#line 739 "cgrammar.y" { yyval.sr = yyvsp[0].sr; ; break;} case 162: -#line 739 "cgrammar.y" +#line 740 "cgrammar.y" { yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ; break;} case 163: -#line 743 "cgrammar.y" +#line 744 "cgrammar.y" { yyval.srset = sRefSet_single (yyvsp[0].sr); ; break;} case 164: -#line 744 "cgrammar.y" +#line 745 "cgrammar.y" { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ; break;} case 165: -#line 748 "cgrammar.y" +#line 749 "cgrammar.y" { yyval.sr = checkSpecClausesId (yyvsp[0].entry); ; break;} case 166: -#line 750 "cgrammar.y" +#line 751 "cgrammar.y" { yyval.sr = fixSpecClausesId (yyvsp[0].cname); ; break;} case 167: -#line 751 "cgrammar.y" +#line 752 "cgrammar.y" { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ; break;} case 168: -#line 752 "cgrammar.y" +#line 753 "cgrammar.y" { yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ; break;} case 169: -#line 753 "cgrammar.y" +#line 754 "cgrammar.y" { yyval.sr = sRef_constructPointer (yyvsp[0].sr); ; break;} case 170: -#line 754 "cgrammar.y" +#line 755 "cgrammar.y" { yyval.sr = yyvsp[-1].sr; ; break;} case 171: -#line 755 "cgrammar.y" +#line 756 "cgrammar.y" { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 172: -#line 757 "cgrammar.y" +#line 758 "cgrammar.y" { cstring_markOwned (yyvsp[0].cname); yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ; break;} case 173: -#line 762 "cgrammar.y" +#line 763 "cgrammar.y" { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); } else { yyval.srset = sRefSet_undefined; } ; break;} case 174: -#line 766 "cgrammar.y" +#line 767 "cgrammar.y" { if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); @@ -3827,849 +3750,849 @@ case 174: ; break;} case 175: -#line 777 "cgrammar.y" +#line 778 "cgrammar.y" { yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ; break;} case 176: -#line 778 "cgrammar.y" +#line 779 "cgrammar.y" { yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ; break;} case 177: -#line 779 "cgrammar.y" +#line 780 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} case 178: -#line 780 "cgrammar.y" +#line 781 "cgrammar.y" { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; break;} case 179: -#line 781 "cgrammar.y" +#line 782 "cgrammar.y" { yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ; break;} case 180: -#line 782 "cgrammar.y" +#line 783 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} case 182: -#line 786 "cgrammar.y" +#line 787 "cgrammar.y" { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ; break;} case 183: -#line 787 "cgrammar.y" +#line 788 "cgrammar.y" { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ; break;} case 184: -#line 788 "cgrammar.y" +#line 789 "cgrammar.y" { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ; break;} case 185: -#line 789 "cgrammar.y" +#line 790 "cgrammar.y" { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ; break;} case 186: -#line 790 "cgrammar.y" +#line 791 "cgrammar.y" { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; break;} case 187: -#line 791 "cgrammar.y" +#line 792 "cgrammar.y" { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; break;} case 188: -#line 792 "cgrammar.y" +#line 793 "cgrammar.y" { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 189: -#line 793 "cgrammar.y" +#line 794 "cgrammar.y" { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 190: -#line 796 "cgrammar.y" +#line 797 "cgrammar.y" { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ; break;} case 191: -#line 797 "cgrammar.y" +#line 798 "cgrammar.y" { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ; break;} case 193: -#line 801 "cgrammar.y" +#line 802 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 194: -#line 802 "cgrammar.y" +#line 803 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 195: -#line 803 "cgrammar.y" +#line 804 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 196: -#line 804 "cgrammar.y" +#line 805 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 197: -#line 805 "cgrammar.y" +#line 806 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 198: -#line 806 "cgrammar.y" +#line 807 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 199: -#line 807 "cgrammar.y" +#line 808 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 200: -#line 808 "cgrammar.y" +#line 809 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 201: -#line 809 "cgrammar.y" +#line 810 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} case 202: -#line 810 "cgrammar.y" +#line 811 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} case 203: -#line 813 "cgrammar.y" +#line 814 "cgrammar.y" { yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ; break;} case 204: -#line 814 "cgrammar.y" +#line 815 "cgrammar.y" { yyval.cstringlist = cstringList_single (yyvsp[0].cname); ; break;} case 205: -#line 818 "cgrammar.y" +#line 819 "cgrammar.y" { yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ; break;} case 206: -#line 821 "cgrammar.y" +#line 822 "cgrammar.y" { context_setProtectVars (); ; break;} case 207: -#line 822 "cgrammar.y" +#line 823 "cgrammar.y" { context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ; break;} case 208: -#line 825 "cgrammar.y" +#line 826 "cgrammar.y" { yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ; break;} case 209: -#line 826 "cgrammar.y" +#line 827 "cgrammar.y" { yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ; break;} case 210: -#line 827 "cgrammar.y" +#line 828 "cgrammar.y" { yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ; break;} case 211: -#line 828 "cgrammar.y" +#line 829 "cgrammar.y" { yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ; break;} case 213: -#line 833 "cgrammar.y" +#line 834 "cgrammar.y" { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ; break;} case 215: -#line 837 "cgrammar.y" +#line 838 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 216: -#line 838 "cgrammar.y" +#line 839 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 217: -#line 839 "cgrammar.y" +#line 840 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 219: -#line 843 "cgrammar.y" +#line 844 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 220: -#line 844 "cgrammar.y" +#line 845 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 222: -#line 848 "cgrammar.y" +#line 849 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 223: -#line 849 "cgrammar.y" +#line 850 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 225: -#line 853 "cgrammar.y" +#line 854 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 226: -#line 854 "cgrammar.y" +#line 855 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 227: -#line 855 "cgrammar.y" +#line 856 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 228: -#line 856 "cgrammar.y" +#line 857 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 230: -#line 860 "cgrammar.y" +#line 861 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 231: -#line 861 "cgrammar.y" +#line 862 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 233: -#line 865 "cgrammar.y" +#line 866 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 235: -#line 869 "cgrammar.y" +#line 870 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 237: -#line 874 "cgrammar.y" +#line 875 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 239: -#line 879 "cgrammar.y" +#line 880 "cgrammar.y" { exprNode_produceGuards (yyvsp[-1].expr); context_enterAndClause (yyvsp[-1].expr); ; break;} case 240: -#line 883 "cgrammar.y" +#line 884 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); context_exitAndClause (yyval.expr, yyvsp[0].expr); ; break;} case 242: -#line 891 "cgrammar.y" +#line 892 "cgrammar.y" { exprNode_produceGuards (yyvsp[-1].expr); context_enterOrClause (yyvsp[-1].expr); ; break;} case 243: -#line 896 "cgrammar.y" +#line 897 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); context_exitOrClause (yyval.expr, yyvsp[0].expr); ; break;} case 245: -#line 903 "cgrammar.y" +#line 904 "cgrammar.y" { exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ; break;} case 246: -#line 904 "cgrammar.y" +#line 905 "cgrammar.y" { context_enterFalseClause (yyvsp[-4].expr); ; break;} case 247: -#line 905 "cgrammar.y" +#line 906 "cgrammar.y" { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ; break;} case 249: -#line 909 "cgrammar.y" +#line 910 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 250: -#line 910 "cgrammar.y" +#line 911 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 251: -#line 911 "cgrammar.y" +#line 912 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 252: -#line 912 "cgrammar.y" +#line 913 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 253: -#line 913 "cgrammar.y" +#line 914 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 254: -#line 914 "cgrammar.y" +#line 915 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 255: -#line 915 "cgrammar.y" +#line 916 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 256: -#line 916 "cgrammar.y" +#line 917 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 257: -#line 917 "cgrammar.y" +#line 918 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 258: -#line 918 "cgrammar.y" +#line 919 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 259: -#line 919 "cgrammar.y" +#line 920 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 261: -#line 923 "cgrammar.y" +#line 924 "cgrammar.y" { yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 262: -#line 926 "cgrammar.y" +#line 927 "cgrammar.y" { yyval.expr = exprNode_undefined; ; break;} case 265: -#line 935 "cgrammar.y" +#line 936 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} case 266: -#line 936 "cgrammar.y" +#line 937 "cgrammar.y" { doVaDcl (); yyval.expr = exprNode_makeError (); ; break;} case 267: -#line 937 "cgrammar.y" +#line 938 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} case 268: -#line 940 "cgrammar.y" +#line 941 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} case 269: -#line 954 "cgrammar.y" +#line 955 "cgrammar.y" { setProcessingVars (yyvsp[-3].qtyp); processNamedDecl (yyvsp[-1].ntyp); ; break;} case 270: -#line 957 "cgrammar.y" +#line 958 "cgrammar.y" { unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ; break;} case 271: -#line 959 "cgrammar.y" +#line 960 "cgrammar.y" { setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); ; break;} case 272: -#line 962 "cgrammar.y" +#line 963 "cgrammar.y" { yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr)); unsetProcessingVars (); ; break;} case 273: -#line 966 "cgrammar.y" +#line 967 "cgrammar.y" { processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ; break;} case 274: -#line 967 "cgrammar.y" +#line 968 "cgrammar.y" { processNamedDecl (yyvsp[-2].ntyp); ; break;} case 275: -#line 968 "cgrammar.y" +#line 969 "cgrammar.y" { yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ; break;} case 276: -#line 972 "cgrammar.y" +#line 973 "cgrammar.y" { setProcessingTypedef (yyvsp[0].qtyp); ; break;} case 277: -#line 973 "cgrammar.y" +#line 974 "cgrammar.y" { unsetProcessingTypedef (); ; break;} case 278: -#line 974 "cgrammar.y" +#line 975 "cgrammar.y" { /* in the ANSI grammar, semantics unclear */ ; break;} case 279: -#line 975 "cgrammar.y" +#line 976 "cgrammar.y" { /* in the ANSI grammar, semantics unclear */ ; break;} case 280: -#line 978 "cgrammar.y" +#line 979 "cgrammar.y" { g_expectingTypeName = TRUE; ; break;} case 281: -#line 981 "cgrammar.y" +#line 982 "cgrammar.y" { g_expectingTypeName = TRUE; context_pushLoc (); ; break;} case 282: -#line 984 "cgrammar.y" +#line 985 "cgrammar.y" { ; ; break;} case 283: -#line 987 "cgrammar.y" +#line 988 "cgrammar.y" { ; ; break;} case 284: -#line 988 "cgrammar.y" +#line 989 "cgrammar.y" { ; ; break;} case 285: -#line 991 "cgrammar.y" +#line 992 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} case 286: -#line 992 "cgrammar.y" +#line 993 "cgrammar.y" { yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ; break;} case 287: -#line 995 "cgrammar.y" +#line 996 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} case 288: -#line 996 "cgrammar.y" +#line 997 "cgrammar.y" { yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ; break;} case 289: -#line 997 "cgrammar.y" +#line 998 "cgrammar.y" { yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ; break;} case 290: -#line 1002 "cgrammar.y" +#line 1003 "cgrammar.y" { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ; break;} case 291: -#line 1004 "cgrammar.y" +#line 1005 "cgrammar.y" { yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ; break;} case 292: -#line 1012 "cgrammar.y" +#line 1013 "cgrammar.y" { setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ; break;} case 293: -#line 1013 "cgrammar.y" +#line 1014 "cgrammar.y" { yyval.typequal = qual_createInline (); ; break;} case 294: -#line 1014 "cgrammar.y" +#line 1015 "cgrammar.y" { setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ; break;} case 295: -#line 1015 "cgrammar.y" +#line 1016 "cgrammar.y" { yyval.typequal = qual_createAuto (); ; break;} case 296: -#line 1016 "cgrammar.y" +#line 1017 "cgrammar.y" { yyval.typequal = qual_createRegister (); ; break;} case 297: -#line 1019 "cgrammar.y" +#line 1020 "cgrammar.y" { yyval.typequal = qual_createConst (); ; break;} case 298: -#line 1020 "cgrammar.y" +#line 1021 "cgrammar.y" { yyval.typequal = qual_createVolatile (); ; break;} case 299: -#line 1021 "cgrammar.y" +#line 1022 "cgrammar.y" { yyval.typequal = qual_createOut (); ; break;} case 300: -#line 1022 "cgrammar.y" +#line 1023 "cgrammar.y" { yyval.typequal = qual_createIn (); ; break;} case 301: -#line 1023 "cgrammar.y" +#line 1024 "cgrammar.y" { yyval.typequal = qual_createPartial (); ; break;} case 302: -#line 1024 "cgrammar.y" +#line 1025 "cgrammar.y" { yyval.typequal = qual_createSpecial (); ; break;} case 303: -#line 1025 "cgrammar.y" +#line 1026 "cgrammar.y" { yyval.typequal = qual_createOwned (); ; break;} case 304: -#line 1026 "cgrammar.y" +#line 1027 "cgrammar.y" { yyval.typequal = qual_createDependent (); ; break;} case 305: -#line 1027 "cgrammar.y" +#line 1028 "cgrammar.y" { yyval.typequal = qual_createYield (); ; break;} case 306: -#line 1028 "cgrammar.y" +#line 1029 "cgrammar.y" { yyval.typequal = qual_createTemp (); ; break;} case 307: -#line 1029 "cgrammar.y" +#line 1030 "cgrammar.y" { yyval.typequal = qual_createOnly (); ; break;} case 308: -#line 1030 "cgrammar.y" +#line 1031 "cgrammar.y" { yyval.typequal = qual_createKeep (); ; break;} case 309: -#line 1031 "cgrammar.y" +#line 1032 "cgrammar.y" { yyval.typequal = qual_createKept (); ; break;} case 310: -#line 1032 "cgrammar.y" +#line 1033 "cgrammar.y" { yyval.typequal = qual_createShared (); ; break;} case 311: -#line 1033 "cgrammar.y" +#line 1034 "cgrammar.y" { yyval.typequal = qual_createUnique (); ; break;} case 312: -#line 1034 "cgrammar.y" +#line 1035 "cgrammar.y" { yyval.typequal = qual_createExits (); ; break;} case 313: -#line 1035 "cgrammar.y" +#line 1036 "cgrammar.y" { yyval.typequal = qual_createMayExit (); ; break;} case 314: -#line 1036 "cgrammar.y" +#line 1037 "cgrammar.y" { yyval.typequal = qual_createTrueExit (); ; break;} case 315: -#line 1037 "cgrammar.y" +#line 1038 "cgrammar.y" { yyval.typequal = qual_createFalseExit (); ; break;} case 316: -#line 1038 "cgrammar.y" +#line 1039 "cgrammar.y" { yyval.typequal = qual_createNeverExit (); ; break;} case 317: -#line 1039 "cgrammar.y" +#line 1040 "cgrammar.y" { yyval.typequal = qual_createNull (); ; break;} case 318: -#line 1040 "cgrammar.y" +#line 1041 "cgrammar.y" { yyval.typequal = qual_createRelNull (); ; break;} case 319: -#line 1041 "cgrammar.y" +#line 1042 "cgrammar.y" { yyval.typequal = qual_createReturned (); ; break;} case 320: -#line 1042 "cgrammar.y" +#line 1043 "cgrammar.y" { yyval.typequal = qual_createExposed (); ; break;} case 321: -#line 1043 "cgrammar.y" +#line 1044 "cgrammar.y" { yyval.typequal = qual_createObserver (); ; break;} case 322: -#line 1044 "cgrammar.y" +#line 1045 "cgrammar.y" { yyval.typequal = qual_createChecked (); ; break;} case 323: -#line 1045 "cgrammar.y" +#line 1046 "cgrammar.y" { yyval.typequal = qual_createCheckMod (); ; break;} case 324: -#line 1046 "cgrammar.y" +#line 1047 "cgrammar.y" { yyval.typequal = qual_createUnchecked (); ; break;} case 325: -#line 1047 "cgrammar.y" +#line 1048 "cgrammar.y" { yyval.typequal = qual_createCheckedStrict (); ; break;} case 326: -#line 1048 "cgrammar.y" +#line 1049 "cgrammar.y" { yyval.typequal = qual_createTrueNull (); ; break;} case 327: -#line 1049 "cgrammar.y" +#line 1050 "cgrammar.y" { yyval.typequal = qual_createFalseNull (); ; break;} case 328: -#line 1050 "cgrammar.y" +#line 1051 "cgrammar.y" { yyval.typequal = qual_createUnused (); ; break;} case 329: -#line 1051 "cgrammar.y" +#line 1052 "cgrammar.y" { yyval.typequal = qual_createExternal (); ; break;} case 330: -#line 1052 "cgrammar.y" +#line 1053 "cgrammar.y" { yyval.typequal = qual_createSef (); ; break;} case 331: -#line 1053 "cgrammar.y" +#line 1054 "cgrammar.y" { yyval.typequal = qual_createAbstract (); ; break;} case 332: -#line 1054 "cgrammar.y" +#line 1055 "cgrammar.y" { yyval.typequal = qual_createConcrete (); ; break;} case 333: -#line 1055 "cgrammar.y" +#line 1056 "cgrammar.y" { yyval.typequal = qual_createMutable (); ; break;} case 334: -#line 1056 "cgrammar.y" +#line 1057 "cgrammar.y" { yyval.typequal = qual_createImmutable (); ; break;} case 335: -#line 1057 "cgrammar.y" +#line 1058 "cgrammar.y" { yyval.typequal = qual_createNotNull (); ; break;} case 336: -#line 1058 "cgrammar.y" +#line 1059 "cgrammar.y" { yyval.typequal = qual_createRefCounted (); ; break;} case 337: -#line 1059 "cgrammar.y" +#line 1060 "cgrammar.y" { yyval.typequal = qual_createRefs (); ; break;} case 338: -#line 1060 "cgrammar.y" +#line 1061 "cgrammar.y" { yyval.typequal = qual_createKillRef (); ; break;} case 339: -#line 1061 "cgrammar.y" +#line 1062 "cgrammar.y" { yyval.typequal = qual_createRelDef (); ; break;} case 340: -#line 1062 "cgrammar.y" +#line 1063 "cgrammar.y" { yyval.typequal = qual_createNewRef (); ; break;} case 341: -#line 1063 "cgrammar.y" +#line 1064 "cgrammar.y" { yyval.typequal = qual_createTempRef (); ; break;} case 342: -#line 1064 "cgrammar.y" +#line 1065 "cgrammar.y" { yyval.typequal = qual_createNullTerminated (); ; break;} case 343: -#line 1070 "cgrammar.y" +#line 1071 "cgrammar.y" { yyval.typequal = qual_createShort (); ; break;} case 344: -#line 1071 "cgrammar.y" +#line 1072 "cgrammar.y" { yyval.typequal = qual_createLong (); ; break;} case 345: -#line 1072 "cgrammar.y" +#line 1073 "cgrammar.y" { yyval.typequal = qual_createSigned (); ; break;} case 346: -#line 1073 "cgrammar.y" +#line 1074 "cgrammar.y" { yyval.typequal = qual_createUnsigned (); ; break;} case 353: -#line 1082 "cgrammar.y" +#line 1083 "cgrammar.y" { yyval.ctyp = ctype_unknown; ; break;} case 354: -#line 1083 "cgrammar.y" +#line 1084 "cgrammar.y" { yyval.ctyp = ctype_anyintegral; ; break;} case 355: -#line 1084 "cgrammar.y" +#line 1085 "cgrammar.y" { yyval.ctyp = ctype_unsignedintegral; ; break;} case 356: -#line 1085 "cgrammar.y" +#line 1086 "cgrammar.y" { yyval.ctyp = ctype_signedintegral; ; break;} case 360: -#line 1089 "cgrammar.y" +#line 1090 "cgrammar.y" { yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ; break;} case 361: -#line 1093 "cgrammar.y" +#line 1094 "cgrammar.y" { yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ; break;} case 362: -#line 1096 "cgrammar.y" +#line 1097 "cgrammar.y" { yyval.qtyp = yyvsp[0].qtyp; ; break;} case 363: -#line 1098 "cgrammar.y" +#line 1099 "cgrammar.y" { yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ; break;} case 365: -#line 1103 "cgrammar.y" +#line 1104 "cgrammar.y" { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ; break;} case 366: -#line 1106 "cgrammar.y" +#line 1107 "cgrammar.y" { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ; break;} case 367: -#line 1107 "cgrammar.y" +#line 1108 "cgrammar.y" { yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ; break;} case 368: -#line 1108 "cgrammar.y" +#line 1109 "cgrammar.y" { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ; break;} case 369: -#line 1111 "cgrammar.y" +#line 1112 "cgrammar.y" { yyval.qtyp = qtype_unknown (); ; break;} case 370: -#line 1112 "cgrammar.y" +#line 1113 "cgrammar.y" { yyval.qtyp = yyvsp[0].qtyp; ; break;} case 371: -#line 1115 "cgrammar.y" +#line 1116 "cgrammar.y" { sRef_setGlobalScopeSafe (); ; break;} case 372: -#line 1117 "cgrammar.y" +#line 1118 "cgrammar.y" { sRef_clearGlobalScopeSafe (); ; break;} case 373: -#line 1119 "cgrammar.y" +#line 1120 "cgrammar.y" { yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ; break;} case 374: -#line 1120 "cgrammar.y" +#line 1121 "cgrammar.y" { sRef_setGlobalScopeSafe (); ; break;} case 375: -#line 1122 "cgrammar.y" +#line 1123 "cgrammar.y" { sRef_clearGlobalScopeSafe (); ; break;} case 376: -#line 1124 "cgrammar.y" +#line 1125 "cgrammar.y" { yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ; break;} case 377: -#line 1126 "cgrammar.y" +#line 1127 "cgrammar.y" { yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ; break;} case 378: -#line 1128 "cgrammar.y" +#line 1129 "cgrammar.y" { yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ; break;} case 379: -#line 1129 "cgrammar.y" +#line 1130 "cgrammar.y" { sRef_setGlobalScopeSafe (); ; break;} case 380: -#line 1131 "cgrammar.y" +#line 1132 "cgrammar.y" { sRef_clearGlobalScopeSafe (); ; break;} case 381: -#line 1133 "cgrammar.y" +#line 1134 "cgrammar.y" { yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ; break;} case 382: -#line 1134 "cgrammar.y" +#line 1135 "cgrammar.y" { sRef_setGlobalScopeSafe (); ; break;} case 383: -#line 1136 "cgrammar.y" +#line 1137 "cgrammar.y" { sRef_clearGlobalScopeSafe (); ; break;} case 384: -#line 1138 "cgrammar.y" +#line 1139 "cgrammar.y" { yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ; break;} case 385: -#line 1140 "cgrammar.y" +#line 1141 "cgrammar.y" { yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ; break;} case 386: -#line 1142 "cgrammar.y" +#line 1143 "cgrammar.y" { yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ; break;} case 387: -#line 1143 "cgrammar.y" +#line 1144 "cgrammar.y" { yyval.ctyp = handleStruct (yyvsp[-1].cname); ; break;} case 388: -#line 1144 "cgrammar.y" +#line 1145 "cgrammar.y" { yyval.ctyp = handleUnion (yyvsp[-1].cname); ; break;} case 389: -#line 1147 "cgrammar.y" +#line 1148 "cgrammar.y" { g_expectingTypeName = FALSE; ; break;} case 391: -#line 1151 "cgrammar.y" +#line 1152 "cgrammar.y" { yyval.flist = uentryList_undefined; /* bogus! */ ; break;} case 392: -#line 1152 "cgrammar.y" +#line 1153 "cgrammar.y" { yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ; break;} case 393: -#line 1156 "cgrammar.y" +#line 1157 "cgrammar.y" { yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ; break;} case 394: -#line 1158 "cgrammar.y" +#line 1159 "cgrammar.y" { yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ; break;} case 395: -#line 1162 "cgrammar.y" +#line 1163 "cgrammar.y" { yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ; break;} case 396: -#line 1164 "cgrammar.y" +#line 1165 "cgrammar.y" { yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ; break;} case 397: -#line 1167 "cgrammar.y" +#line 1168 "cgrammar.y" { yyval.ntyp = yyvsp[0].ntyp; ; break;} case 398: -#line 1168 "cgrammar.y" +#line 1169 "cgrammar.y" { yyval.ntyp = idDecl_undefined; ; break;} case 399: -#line 1169 "cgrammar.y" +#line 1170 "cgrammar.y" { yyval.ntyp = yyvsp[-3].ntyp; ; break;} case 400: -#line 1174 "cgrammar.y" +#line 1175 "cgrammar.y" { yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ; break;} case 401: -#line 1175 "cgrammar.y" +#line 1176 "cgrammar.y" { context_pushLoc (); ; break;} case 402: -#line 1176 "cgrammar.y" +#line 1177 "cgrammar.y" { context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ; break;} case 403: -#line 1177 "cgrammar.y" +#line 1178 "cgrammar.y" { yyval.ctyp = handleEnum (yyvsp[-1].cname); ; break;} case 404: -#line 1181 "cgrammar.y" +#line 1182 "cgrammar.y" { yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ; break;} case 405: -#line 1183 "cgrammar.y" +#line 1184 "cgrammar.y" { yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ; break;} case 407: -#line 1188 "cgrammar.y" +#line 1189 "cgrammar.y" { uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown); usymtab_supGlobalEntry (ue); yyval.cname = yyvsp[0].cname; ; break;} case 408: -#line 1193 "cgrammar.y" +#line 1194 "cgrammar.y" { uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr); usymtab_supGlobalEntry (ue); yyval.cname = yyvsp[-3].cname; ; break;} case 410: -#line 1200 "cgrammar.y" +#line 1201 "cgrammar.y" { yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ; break;} case 411: -#line 1202 "cgrammar.y" +#line 1203 "cgrammar.y" { qtype qt = qtype_unknown (); @@ -4678,91 +4601,91 @@ case 411: ; break;} case 412: -#line 1209 "cgrammar.y" +#line 1210 "cgrammar.y" { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ; break;} case 414: -#line 1214 "cgrammar.y" +#line 1215 "cgrammar.y" { yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ; break;} case 415: -#line 1217 "cgrammar.y" +#line 1218 "cgrammar.y" { yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ; break;} case 416: -#line 1218 "cgrammar.y" +#line 1219 "cgrammar.y" { yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ; break;} case 417: -#line 1221 "cgrammar.y" +#line 1222 "cgrammar.y" { /* ignored for now */; ; break;} case 418: -#line 1222 "cgrammar.y" +#line 1223 "cgrammar.y" { ; ; break;} case 419: -#line 1225 "cgrammar.y" +#line 1226 "cgrammar.y" { ; ; break;} case 420: -#line 1226 "cgrammar.y" +#line 1227 "cgrammar.y" { ; ; break;} case 421: -#line 1229 "cgrammar.y" +#line 1230 "cgrammar.y" { yyval.count = 1; ; break;} case 422: -#line 1230 "cgrammar.y" +#line 1231 "cgrammar.y" { yyval.count = 1; ; break;} case 423: -#line 1231 "cgrammar.y" +#line 1232 "cgrammar.y" { yyval.count = 1 + yyvsp[0].count; ; break;} case 424: -#line 1232 "cgrammar.y" +#line 1233 "cgrammar.y" { yyval.count = 1 + yyvsp[0].count; ; break;} case 426: -#line 1236 "cgrammar.y" +#line 1237 "cgrammar.y" { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ; break;} case 427: -#line 1239 "cgrammar.y" +#line 1240 "cgrammar.y" { yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ; break;} case 428: -#line 1240 "cgrammar.y" +#line 1241 "cgrammar.y" { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ; break;} case 429: -#line 1243 "cgrammar.y" +#line 1244 "cgrammar.y" { yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ; break;} case 431: -#line 1245 "cgrammar.y" +#line 1246 "cgrammar.y" { yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ; break;} case 432: -#line 1248 "cgrammar.y" +#line 1249 "cgrammar.y" { storeLoc (); ; break;} case 433: -#line 1248 "cgrammar.y" +#line 1249 "cgrammar.y" { yyval.entrylist = uentryList_single (yyvsp[0].oentry); ; break;} case 434: -#line 1249 "cgrammar.y" +#line 1250 "cgrammar.y" { storeLoc (); ; break;} case 435: -#line 1250 "cgrammar.y" +#line 1251 "cgrammar.y" { yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ; break;} case 436: -#line 1254 "cgrammar.y" +#line 1255 "cgrammar.y" { if (isFlipOldStyle ()) { @@ -4776,7 +4699,7 @@ case 436: ; break;} case 437: -#line 1266 "cgrammar.y" +#line 1267 "cgrammar.y" { idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ()); @@ -4792,385 +4715,385 @@ case 437: ; break;} case 439: -#line 1282 "cgrammar.y" +#line 1283 "cgrammar.y" { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ; break;} case 440: -#line 1285 "cgrammar.y" +#line 1286 "cgrammar.y" { yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ; break;} case 442: -#line 1287 "cgrammar.y" +#line 1288 "cgrammar.y" { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ; break;} case 443: -#line 1290 "cgrammar.y" +#line 1291 "cgrammar.y" { yyval.ctyp = ctype_unknown; ; break;} case 445: -#line 1295 "cgrammar.y" +#line 1296 "cgrammar.y" { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ; break;} case 446: -#line 1296 "cgrammar.y" +#line 1297 "cgrammar.y" { yyval.ctyp = ctype_makeArray (ctype_unknown); ; break;} case 447: -#line 1298 "cgrammar.y" +#line 1299 "cgrammar.y" { yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ; break;} case 448: -#line 1299 "cgrammar.y" +#line 1300 "cgrammar.y" { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ; break;} case 449: -#line 1301 "cgrammar.y" +#line 1302 "cgrammar.y" { yyval.ctyp = ctype_makeFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ; break;} case 450: -#line 1303 "cgrammar.y" +#line 1304 "cgrammar.y" { yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ; break;} case 451: -#line 1305 "cgrammar.y" +#line 1306 "cgrammar.y" { yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ; break;} case 452: -#line 1307 "cgrammar.y" +#line 1308 "cgrammar.y" { yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ; break;} case 453: -#line 1309 "cgrammar.y" +#line 1310 "cgrammar.y" { yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ; break;} case 463: -#line 1337 "cgrammar.y" +#line 1338 "cgrammar.y" { yyval.expr = exprNode_labelMarker (yyvsp[0].cname); ; break;} case 464: -#line 1342 "cgrammar.y" +#line 1343 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} case 467: -#line 1350 "cgrammar.y" +#line 1351 "cgrammar.y" { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 468: -#line 1354 "cgrammar.y" +#line 1355 "cgrammar.y" { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 469: -#line 1356 "cgrammar.y" +#line 1357 "cgrammar.y" { yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ; break;} case 470: -#line 1358 "cgrammar.y" +#line 1359 "cgrammar.y" { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ; break;} case 471: -#line 1360 "cgrammar.y" +#line 1361 "cgrammar.y" { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 472: -#line 1364 "cgrammar.y" +#line 1365 "cgrammar.y" { context_setProtectVars (); ; break;} case 473: -#line 1364 "cgrammar.y" +#line 1365 "cgrammar.y" { context_sizeofReleaseVars (); ; break;} case 474: -#line 1366 "cgrammar.y" +#line 1367 "cgrammar.y" { yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr); context_enterForClause (yyvsp[-5].expr); ; break;} case 475: -#line 1371 "cgrammar.y" +#line 1372 "cgrammar.y" { setProcessingIterVars (yyvsp[-2].entry); ; break;} case 476: -#line 1373 "cgrammar.y" +#line 1374 "cgrammar.y" { yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ; break;} case 477: -#line 1374 "cgrammar.y" +#line 1375 "cgrammar.y" { yyval.expr = exprNode_createId (yyvsp[0].entry); ; break;} case 481: -#line 1380 "cgrammar.y" +#line 1381 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} case 489: -#line 1388 "cgrammar.y" +#line 1389 "cgrammar.y" { yyval.expr = yyvsp[-1].expr; ; break;} case 490: -#line 1389 "cgrammar.y" +#line 1390 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} case 491: -#line 1393 "cgrammar.y" +#line 1394 "cgrammar.y" { /* don't: context_exitTrueClause ($1, $2); */ yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 492: -#line 1398 "cgrammar.y" +#line 1399 "cgrammar.y" { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 493: -#line 1401 "cgrammar.y" +#line 1402 "cgrammar.y" { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 504: -#line 1416 "cgrammar.y" +#line 1417 "cgrammar.y" { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; break;} case 506: -#line 1418 "cgrammar.y" +#line 1419 "cgrammar.y" { yyval.expr = exprNode_makeError (); ; break;} case 507: -#line 1421 "cgrammar.y" +#line 1422 "cgrammar.y" { yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ; break;} case 508: -#line 1422 "cgrammar.y" +#line 1423 "cgrammar.y" { yyval.expr = exprNode_notReached (yyvsp[0].expr); ; break;} case 509: -#line 1428 "cgrammar.y" +#line 1429 "cgrammar.y" { context_enterCaseClause (yyvsp[0].expr); ; break;} case 510: -#line 1429 "cgrammar.y" +#line 1430 "cgrammar.y" { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ; break;} case 511: -#line 1430 "cgrammar.y" +#line 1431 "cgrammar.y" { context_enterCaseClause (yyvsp[0].expr); ; break;} case 512: -#line 1431 "cgrammar.y" +#line 1432 "cgrammar.y" { yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ; break;} case 513: -#line 1434 "cgrammar.y" +#line 1435 "cgrammar.y" { context_enterCaseClause (exprNode_undefined); ; break;} case 514: -#line 1435 "cgrammar.y" +#line 1436 "cgrammar.y" { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ; break;} case 515: -#line 1436 "cgrammar.y" +#line 1437 "cgrammar.y" { context_enterCaseClause (exprNode_undefined); ; break;} case 516: -#line 1437 "cgrammar.y" +#line 1438 "cgrammar.y" { yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ; break;} case 517: -#line 1440 "cgrammar.y" +#line 1441 "cgrammar.y" { yyval.expr = yyvsp[-1].expr; ; break;} case 518: -#line 1442 "cgrammar.y" +#line 1443 "cgrammar.y" { yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ; break;} case 519: -#line 1445 "cgrammar.y" +#line 1446 "cgrammar.y" { yyval.expr = yyvsp[-1].expr; ; break;} case 520: -#line 1448 "cgrammar.y" +#line 1449 "cgrammar.y" { context_enterInnerContext (); ; break;} case 521: -#line 1451 "cgrammar.y" +#line 1452 "cgrammar.y" { context_exitInnerPlain (); ; break;} case 522: -#line 1454 "cgrammar.y" +#line 1455 "cgrammar.y" { context_enterStructInnerContext (); ; break;} case 523: -#line 1457 "cgrammar.y" +#line 1458 "cgrammar.y" { context_exitStructInnerContext (); ; break;} case 524: -#line 1460 "cgrammar.y" +#line 1461 "cgrammar.y" { context_exitInnerSafe (); ; break;} case 525: -#line 1463 "cgrammar.y" +#line 1464 "cgrammar.y" { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 526: -#line 1464 "cgrammar.y" +#line 1465 "cgrammar.y" { yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ; break;} case 527: -#line 1465 "cgrammar.y" +#line 1466 "cgrammar.y" { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; break;} case 528: -#line 1467 "cgrammar.y" +#line 1468 "cgrammar.y" { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ; break;} case 529: -#line 1468 "cgrammar.y" +#line 1469 "cgrammar.y" { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; break;} case 530: -#line 1470 "cgrammar.y" +#line 1471 "cgrammar.y" { yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ; break;} case 531: -#line 1472 "cgrammar.y" +#line 1473 "cgrammar.y" { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ; break;} case 532: -#line 1474 "cgrammar.y" +#line 1475 "cgrammar.y" { yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr), lltok_getLoc (yyvsp[-1].tok))); ; break;} case 533: -#line 1481 "cgrammar.y" +#line 1482 "cgrammar.y" { yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ; break;} case 534: -#line 1485 "cgrammar.y" +#line 1486 "cgrammar.y" { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 535: -#line 1487 "cgrammar.y" +#line 1488 "cgrammar.y" { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; break;} case 536: -#line 1489 "cgrammar.y" +#line 1490 "cgrammar.y" { yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; break;} case 537: -#line 1491 "cgrammar.y" +#line 1492 "cgrammar.y" { yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ; break;} case 539: -#line 1495 "cgrammar.y" +#line 1496 "cgrammar.y" { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 540: -#line 1498 "cgrammar.y" +#line 1499 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} case 541: -#line 1499 "cgrammar.y" +#line 1500 "cgrammar.y" { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 542: -#line 1502 "cgrammar.y" +#line 1503 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} case 543: -#line 1503 "cgrammar.y" +#line 1504 "cgrammar.y" { yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 544: -#line 1506 "cgrammar.y" +#line 1507 "cgrammar.y" { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 545: -#line 1507 "cgrammar.y" +#line 1508 "cgrammar.y" { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 546: -#line 1510 "cgrammar.y" +#line 1511 "cgrammar.y" { yyval.expr = exprNode_createTok (yyvsp[0].tok); ; break;} case 547: -#line 1511 "cgrammar.y" +#line 1512 "cgrammar.y" { yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 548: -#line 1512 "cgrammar.y" +#line 1513 "cgrammar.y" { yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ; break;} case 549: -#line 1516 "cgrammar.y" +#line 1517 "cgrammar.y" { yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ; break;} case 550: -#line 1524 "cgrammar.y" +#line 1525 "cgrammar.y" { context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr); yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 551: -#line 1528 "cgrammar.y" +#line 1529 "cgrammar.y" { context_enterFalseClause (yyvsp[-2].expr); ; break;} case 552: -#line 1529 "cgrammar.y" +#line 1530 "cgrammar.y" { context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); ; break;} case 553: -#line 1533 "cgrammar.y" +#line 1534 "cgrammar.y" { context_enterSwitch (yyvsp[0].expr); ; break;} case 554: -#line 1534 "cgrammar.y" +#line 1535 "cgrammar.y" { yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ; break;} case 555: -#line 1538 "cgrammar.y" +#line 1539 "cgrammar.y" { yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ; break;} case 556: -#line 1542 "cgrammar.y" +#line 1543 "cgrammar.y" { yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ; break;} case 557: -#line 1545 "cgrammar.y" +#line 1546 "cgrammar.y" { context_enterIterClause (); ; break;} case 558: -#line 1546 "cgrammar.y" +#line 1547 "cgrammar.y" { setProcessingIterVars (yyvsp[-3].entry); ; break;} case 559: -#line 1549 "cgrammar.y" +#line 1550 "cgrammar.y" { yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry); ; break;} case 560: -#line 1555 "cgrammar.y" +#line 1556 "cgrammar.y" { yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ; break;} case 561: -#line 1556 "cgrammar.y" +#line 1557 "cgrammar.y" { nextIterParam (); ; break;} case 562: -#line 1557 "cgrammar.y" +#line 1558 "cgrammar.y" { yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ; break;} case 563: -#line 1560 "cgrammar.y" +#line 1561 "cgrammar.y" { yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ; break;} case 564: -#line 1561 "cgrammar.y" +#line 1562 "cgrammar.y" { yyval.expr = exprNode_iterId (yyvsp[0].entry); ; break;} case 565: -#line 1562 "cgrammar.y" +#line 1563 "cgrammar.y" { uentry ue = coerceIterId (yyvsp[0].cname); if (uentry_isValid (ue)) @@ -5184,315 +5107,315 @@ case 565: ; break;} case 566: -#line 1573 "cgrammar.y" +#line 1574 "cgrammar.y" { yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ; break;} case 568: -#line 1581 "cgrammar.y" +#line 1582 "cgrammar.y" { yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; break;} case 570: -#line 1585 "cgrammar.y" +#line 1586 "cgrammar.y" { yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ; break;} case 571: -#line 1586 "cgrammar.y" +#line 1587 "cgrammar.y" { yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ; break;} case 572: -#line 1587 "cgrammar.y" +#line 1588 "cgrammar.y" { yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ; break;} case 573: -#line 1589 "cgrammar.y" +#line 1590 "cgrammar.y" { yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ; break;} case 574: -#line 1590 "cgrammar.y" +#line 1591 "cgrammar.y" { yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; break;} case 575: -#line 1591 "cgrammar.y" +#line 1592 "cgrammar.y" { yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; break;} case 576: -#line 1592 "cgrammar.y" +#line 1593 "cgrammar.y" { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 577: -#line 1593 "cgrammar.y" +#line 1594 "cgrammar.y" { yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; break;} case 579: -#line 1597 "cgrammar.y" +#line 1598 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 580: -#line 1598 "cgrammar.y" +#line 1599 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 581: -#line 1599 "cgrammar.y" +#line 1600 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 582: -#line 1600 "cgrammar.y" +#line 1601 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 583: -#line 1601 "cgrammar.y" +#line 1602 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 584: -#line 1602 "cgrammar.y" +#line 1603 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 585: -#line 1603 "cgrammar.y" +#line 1604 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 586: -#line 1604 "cgrammar.y" +#line 1605 "cgrammar.y" { yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 587: -#line 1605 "cgrammar.y" +#line 1606 "cgrammar.y" { yyval.expr = yyvsp[0].expr; ; break;} case 589: -#line 1609 "cgrammar.y" +#line 1610 "cgrammar.y" { yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ; break;} case 591: -#line 1613 "cgrammar.y" +#line 1614 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 592: -#line 1614 "cgrammar.y" +#line 1615 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 593: -#line 1615 "cgrammar.y" +#line 1616 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 595: -#line 1619 "cgrammar.y" +#line 1620 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 596: -#line 1620 "cgrammar.y" +#line 1621 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 598: -#line 1624 "cgrammar.y" +#line 1625 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 599: -#line 1625 "cgrammar.y" +#line 1626 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 601: -#line 1629 "cgrammar.y" +#line 1630 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 602: -#line 1630 "cgrammar.y" +#line 1631 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 603: -#line 1631 "cgrammar.y" +#line 1632 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 604: -#line 1632 "cgrammar.y" +#line 1633 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 606: -#line 1636 "cgrammar.y" +#line 1637 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 607: -#line 1637 "cgrammar.y" +#line 1638 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 609: -#line 1641 "cgrammar.y" +#line 1642 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 611: -#line 1645 "cgrammar.y" +#line 1646 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 613: -#line 1650 "cgrammar.y" +#line 1651 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 615: -#line 1654 "cgrammar.y" +#line 1655 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 617: -#line 1658 "cgrammar.y" +#line 1659 "cgrammar.y" { yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 619: -#line 1662 "cgrammar.y" +#line 1663 "cgrammar.y" { context_enterTrueClause (yyvsp[-1].expr); ; break;} case 620: -#line 1663 "cgrammar.y" +#line 1664 "cgrammar.y" { context_enterFalseClause (yyvsp[-4].expr); ; break;} case 621: -#line 1664 "cgrammar.y" +#line 1665 "cgrammar.y" { yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ; break;} case 623: -#line 1668 "cgrammar.y" +#line 1669 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 624: -#line 1669 "cgrammar.y" +#line 1670 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 625: -#line 1670 "cgrammar.y" +#line 1671 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 626: -#line 1671 "cgrammar.y" +#line 1672 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 627: -#line 1672 "cgrammar.y" +#line 1673 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 628: -#line 1673 "cgrammar.y" +#line 1674 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 629: -#line 1674 "cgrammar.y" +#line 1675 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 630: -#line 1675 "cgrammar.y" +#line 1676 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 631: -#line 1676 "cgrammar.y" +#line 1677 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 632: -#line 1677 "cgrammar.y" +#line 1678 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 633: -#line 1678 "cgrammar.y" +#line 1679 "cgrammar.y" { yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; break;} case 634: -#line 1681 "cgrammar.y" +#line 1682 "cgrammar.y" { yyval.entry = yyvsp[0].entry; ; break;} case 635: -#line 1682 "cgrammar.y" +#line 1683 "cgrammar.y" { yyval.entry = uentry_undefined; ; break;} case 636: -#line 1685 "cgrammar.y" +#line 1686 "cgrammar.y" { context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ; break;} case 637: -#line 1689 "cgrammar.y" +#line 1690 "cgrammar.y" { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 638: -#line 1691 "cgrammar.y" +#line 1692 "cgrammar.y" { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ; break;} case 639: -#line 1693 "cgrammar.y" +#line 1694 "cgrammar.y" { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 640: -#line 1696 "cgrammar.y" +#line 1697 "cgrammar.y" { yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 641: -#line 1698 "cgrammar.y" +#line 1699 "cgrammar.y" { yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ; break;} case 642: -#line 1700 "cgrammar.y" +#line 1701 "cgrammar.y" { yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ; break;} case 643: -#line 1701 "cgrammar.y" +#line 1702 "cgrammar.y" { yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ; break;} case 644: -#line 1704 "cgrammar.y" +#line 1705 "cgrammar.y" { yyval.expr = exprNode_goto (yyvsp[-1].cname); ; break;} case 645: -#line 1705 "cgrammar.y" +#line 1706 "cgrammar.y" { yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ; break;} case 646: -#line 1707 "cgrammar.y" +#line 1708 "cgrammar.y" { yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ; break;} case 647: -#line 1708 "cgrammar.y" +#line 1709 "cgrammar.y" { yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ; break;} case 648: -#line 1709 "cgrammar.y" +#line 1710 "cgrammar.y" { yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ; break;} case 649: -#line 1710 "cgrammar.y" +#line 1711 "cgrammar.y" { yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ; break;} case 650: -#line 1711 "cgrammar.y" +#line 1712 "cgrammar.y" { yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ; break;} case 651: -#line 1712 "cgrammar.y" +#line 1713 "cgrammar.y" { yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ; break;} case 652: -#line 1713 "cgrammar.y" +#line 1714 "cgrammar.y" { yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ; break;} case 653: -#line 1714 "cgrammar.y" +#line 1715 "cgrammar.y" { yyval.expr = exprNode_return (yyvsp[-1].expr); ; break;} case 655: -#line 1718 "cgrammar.y" +#line 1719 "cgrammar.y" { ; ; break;} case 658: -#line 1725 "cgrammar.y" +#line 1726 "cgrammar.y" { yyval.cname = uentry_getName (yyvsp[0].entry); ; break;} case 659: -#line 1726 "cgrammar.y" +#line 1727 "cgrammar.y" { yyval.cname = uentry_getName (yyvsp[0].entry); ; break;} case 660: -#line 1727 "cgrammar.y" +#line 1728 "cgrammar.y" { yyval.cname = uentry_getName (yyvsp[0].entry); ; break;} case 661: -#line 1728 "cgrammar.y" +#line 1729 "cgrammar.y" { yyval.cname = yyvsp[0].cname; ; break;} case 663: -#line 1732 "cgrammar.y" +#line 1733 "cgrammar.y" { yyval.ctyp = ctype_unknown; ; break;} } @@ -5717,7 +5640,7 @@ yyerrhandle: } return 1; } -#line 1734 "cgrammar.y" +#line 1735 "cgrammar.y" /*@-redecl@*/ diff --git a/src/cgrammar.y b/src/cgrammar.y index d4b7d69..ea03f8a 100644 --- a/src/cgrammar.y +++ b/src/cgrammar.y @@ -177,6 +177,7 @@ void yyerror (char *s); %token QMAXREAD %token QTESTINRANGE +%token TCAND /* identifiers, literals */ @@ -417,7 +418,7 @@ optGlobEnsuresConstraintsAux context_setProtectVars (); enterParamsTemp (); sRef_setGlobalScopeSafe (); -} QENSURESCONSTRAINT BufConstraintList QENDMACRO +} QENSURESCONSTRAINT BufConstraintList optSemi QENDMACRO { setEnsuresConstraints ($3); exitParamsTemp (); @@ -433,7 +434,7 @@ optGlobBufConstraintsAux context_setProtectVars (); enterParamsTemp (); sRef_setGlobalScopeSafe (); -} QBUFFERCONSTRAINT BufConstraintList QENDMACRO +} QBUFFERCONSTRAINT BufConstraintList optSemi QENDMACRO { setFunctionConstraints ($3); exitParamsTemp (); @@ -443,11 +444,11 @@ context_setProtectVars (); enterParamsTemp (); | /*empty*/ BufConstraintList -: BufConstraint BufConstraintList{ $$ = constraintList_add ($2, $1); } +: BufConstraint TCAND BufConstraintList { $$ = constraintList_add ($3, $1); } | BufConstraint {constraintList c; c = constraintList_makeNew(); c = constraintList_add (c, $1); $$ = c} BufConstraint -: BufConstraintExpr relationalOp BufConstraintExpr TSEMI { +: BufConstraintExpr relationalOp BufConstraintExpr { $$ = makeConstraintParse3 ($1, $2, $3); DPRINTF(("Done BufConstraint1\n")); } diff --git a/src/cscanner.l b/src/cscanner.l index ae40852..def0183 100644 --- a/src/cscanner.l +++ b/src/cscanner.l @@ -428,6 +428,10 @@ static void setTokLengthT (size_t len) "|" { setTokLength (1); RETURN_TOK (TBAR); } "?" { setTokLength (1); RETURN_TOK (TQUEST); } + +"/\\" { setTokLength (1); RETURN_TOK (TCAND); } + + [ \t\v\f] { incColumn (); } \n { context_incLineno (); if (continueLine) @@ -565,8 +569,8 @@ struct skeyword s_parsetable[] = { { "pre", QPRECLAUSE } , { "post", QPOSTCLAUSE } , {"setBufferSize", QSETBUFFERSIZE}, - {"bufferConstraint", QBUFFERCONSTRAINT}, - {"ensuresConstraint", QENSURESCONSTRAINT}, + {"requires", QBUFFERCONSTRAINT}, + {"ensures", QENSURESCONSTRAINT}, {"setStringLength", QSETSTRINGLENGTH}, {"testinRange", QTESTINRANGE}, { NULL, BADTOK } @@ -613,8 +617,8 @@ struct skeyword s_keytable[] = { { "relnull", QRELNULL } , { "nullterminated", QNULLTERMINATED }, { "setBufferSize", QSETBUFFERSIZE }, - { "bufferConstraint", QBUFFERCONSTRAINT }, - { "ensuresConstraint", QENSURESCONSTRAINT }, + { "requires", QBUFFERCONSTRAINT }, + { "ensures", QENSURESCONSTRAINT }, { "testInRange", QTESTINRANGE}, { "MaxSet", QMAXSET}, { "MaxRead", QMAXREAD}, diff --git a/src/lex.yy.c b/src/lex.yy.c index c95310b..45e13de 100644 --- a/src/lex.yy.c +++ b/src/lex.yy.c @@ -282,68 +282,68 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 180 -#define YY_END_OF_BUFFER 181 -static yyconst short int yy_accept[529] = +#define YY_NUM_RULES 181 +#define YY_END_OF_BUFFER 182 +static yyconst short int yy_accept[530] = { 0, - 0, 0, 181, 179, 159, 160, 147, 179, 3, 82, - 153, 146, 179, 141, 142, 151, 150, 138, 149, 145, - 152, 97, 97, 139, 135, 154, 140, 155, 158, 179, - 82, 143, 178, 144, 156, 82, 82, 82, 82, 82, + 0, 0, 182, 180, 160, 161, 147, 180, 3, 82, + 153, 146, 180, 141, 142, 151, 150, 138, 149, 145, + 152, 97, 97, 139, 135, 154, 140, 155, 158, 180, + 82, 143, 179, 144, 156, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 136, 157, 137, 148, - 134, 0, 42, 0, 2, 82, 120, 176, 177, 129, + 134, 0, 42, 0, 2, 82, 120, 177, 178, 129, 121, 0, 0, 118, 126, 116, 127, 117, 128, 0, - 110, 1, 119, 113, 90, 0, 99, 98, 0, 97, - 125, 131, 133, 132, 124, 0, 0, 0, 82, 122, + 110, 1, 119, 159, 113, 90, 0, 99, 98, 0, + 97, 125, 131, 133, 132, 124, 0, 0, 0, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 9, 82, - 82, 82, 82, 82, 82, 82, 13, 44, 82, 82, + 122, 82, 82, 82, 82, 82, 82, 82, 82, 9, + 82, 82, 82, 82, 82, 82, 82, 13, 44, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 123, 130, 0, 0, - 2, 104, 4, 0, 108, 109, 110, 0, 111, 112, - 92, 91, 0, 107, 100, 101, 101, 83, 115, 114, - 166, 167, 164, 169, 174, 165, 175, 170, 173, 168, - 171, 172, 0, 0, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 123, 130, 0, + 0, 2, 104, 4, 0, 108, 109, 110, 0, 111, + 112, 92, 91, 0, 107, 100, 101, 101, 83, 115, + 114, 167, 168, 165, 170, 175, 166, 176, 171, 174, + 169, 172, 173, 0, 0, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 11, 82, 82, 27, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 43, 82, 82, 82, - 82, 82, 82, 74, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 0, 42, 0, 0, 110, - 0, 108, 109, 0, 113, 93, 94, 94, 105, 106, - 103, 102, 84, 86, 163, 0, 0, 82, 82, 82, - 82, 39, 82, 6, 29, 82, 82, 82, 82, 82, - 82, 10, 25, 82, 82, 82, 82, 12, 82, 82, - 82, 51, 82, 31, 82, 82, 52, 82, 82, 68, - + 82, 82, 82, 11, 82, 82, 27, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 43, 82, 82, + 82, 82, 82, 82, 74, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 0, 42, 0, 0, + 110, 0, 108, 109, 0, 113, 93, 94, 94, 105, + 106, 103, 102, 84, 86, 164, 0, 0, 82, 82, + 82, 82, 39, 82, 6, 29, 82, 82, 82, 82, + 82, 82, 10, 25, 82, 82, 82, 82, 12, 82, + 82, 82, 51, 82, 31, 82, 82, 52, 82, 82, + + 68, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 26, 82, 82, 82, 0, - 110, 96, 95, 85, 87, 87, 0, 162, 82, 82, - 82, 82, 5, 82, 36, 82, 82, 82, 82, 82, - 82, 82, 30, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 69, 82, 82, 82, 82, 82, 82, - 82, 32, 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 77, 24, 82, 82, 82, 82, 82, 18, - 76, 89, 88, 161, 82, 80, 82, 82, 82, 82, - - 82, 82, 82, 28, 82, 38, 82, 21, 82, 54, - 78, 82, 60, 82, 82, 82, 82, 82, 82, 82, - 58, 82, 14, 75, 34, 15, 82, 41, 22, 17, - 82, 82, 82, 82, 82, 72, 19, 20, 82, 81, - 37, 47, 64, 82, 82, 8, 82, 59, 82, 82, - 82, 62, 53, 82, 82, 82, 45, 82, 82, 57, - 82, 46, 61, 82, 23, 82, 82, 82, 82, 65, - 7, 82, 73, 82, 82, 82, 70, 16, 82, 40, - 82, 55, 82, 33, 35, 82, 71, 56, 82, 82, - 82, 82, 67, 82, 82, 82, 82, 63, 82, 82, - - 82, 82, 82, 82, 82, 82, 48, 82, 82, 82, - 66, 82, 82, 82, 79, 82, 82, 82, 82, 82, - 82, 82, 82, 50, 82, 82, 49, 0 + 82, 82, 82, 82, 82, 82, 26, 82, 82, 82, + 0, 110, 96, 95, 85, 87, 87, 0, 163, 82, + 82, 82, 82, 5, 82, 36, 82, 82, 82, 82, + 82, 82, 82, 30, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 69, 82, 82, 82, 82, 82, + 82, 82, 32, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 77, 24, 82, 82, 82, 82, 82, + 18, 76, 89, 88, 162, 82, 80, 82, 82, 82, + + 82, 82, 82, 82, 28, 82, 38, 82, 21, 82, + 54, 78, 82, 60, 82, 82, 82, 82, 82, 82, + 82, 58, 82, 14, 75, 34, 15, 82, 41, 22, + 17, 82, 82, 82, 82, 82, 72, 19, 20, 82, + 81, 37, 47, 64, 82, 82, 8, 82, 59, 82, + 82, 82, 62, 53, 82, 82, 82, 45, 82, 82, + 57, 82, 46, 61, 82, 23, 82, 82, 82, 82, + 65, 7, 82, 73, 82, 82, 82, 70, 16, 82, + 40, 82, 55, 82, 33, 35, 82, 71, 56, 82, + 82, 82, 82, 67, 82, 82, 82, 82, 63, 82, + + 82, 82, 82, 82, 82, 82, 82, 48, 82, 82, + 82, 66, 82, 82, 82, 79, 82, 82, 82, 82, + 82, 82, 82, 82, 50, 82, 82, 49, 0 } ; static yyconst int yy_ec[256] = @@ -390,133 +390,133 @@ static yyconst int yy_meta[79] = 2, 2, 2, 2, 1, 1, 1, 1 } ; -static yyconst short int yy_base[536] = +static yyconst short int yy_base[537] = { 0, - 0, 0, 678, 679, 679, 679, 652, 73, 0, 0, - 55, 71, 629, 679, 679, 650, 67, 679, 68, 66, - 74, 80, 85, 679, 679, 65, 649, 82, 679, 91, - 622, 679, 679, 679, 647, 621, 28, 604, 67, 40, - 65, 72, 605, 88, 55, 604, 79, 101, 616, 611, - 103, 90, 602, 51, 606, 604, 679, 113, 679, 679, - 679, 133, 163, 659, 0, 0, 679, 679, 679, 679, - 679, 100, 139, 679, 679, 679, 679, 679, 679, 643, - 155, 679, 679, 162, 172, 164, 160, 142, 0, 204, - 635, 679, 679, 679, 634, 245, 621, 621, 584, 679, - - 602, 581, 585, 597, 584, 122, 587, 141, 580, 581, - 578, 144, 585, 581, 578, 575, 0, 99, 579, 586, - 579, 576, 567, 569, 575, 568, 578, 572, 564, 568, - 564, 174, 573, 135, 158, 573, 154, 568, 564, 556, - 559, 184, 573, 167, 563, 566, 679, 679, 242, 153, - 0, 679, 679, 235, 679, 679, 251, 243, 679, 679, - 233, 230, 241, 272, 165, 679, 234, 261, 679, 679, - 679, 579, 679, 679, 679, 679, 679, 679, 679, 679, - 679, 679, 580, 581, 228, 553, 548, 551, 563, 558, - 546, 558, 231, 559, 554, 556, 552, 544, 541, 549, - - 536, 551, 0, 537, 541, 544, 529, 532, 535, 538, - 528, 530, 531, 536, 523, 516, 0, 533, 519, 533, - 526, 246, 515, 0, 517, 516, 518, 525, 526, 510, - 508, 508, 510, 519, 518, 514, 516, 506, 510, 501, - 203, 513, 515, 504, 503, 271, 308, 560, 295, 299, - 306, 679, 679, 304, 316, 262, 679, 277, 679, 679, - 679, 679, 298, 281, 679, 534, 522, 505, 504, 495, - 484, 0, 496, 0, 0, 495, 486, 494, 483, 488, - 489, 0, 0, 482, 482, 492, 478, 0, 482, 487, - 482, 0, 284, 0, 487, 472, 472, 473, 483, 0, - - 483, 477, 471, 467, 478, 463, 465, 475, 461, 473, - 463, 467, 466, 471, 470, 456, 458, 466, 464, 462, - 454, 459, 460, 448, 460, 0, 444, 456, 456, 323, - 325, 679, 679, 287, 679, 305, 481, 679, 457, 439, - 439, 440, 0, 292, 0, 441, 442, 448, 446, 445, - 436, 435, 0, 442, 430, 434, 440, 438, 436, 430, - 435, 419, 420, 0, 436, 417, 417, 428, 422, 419, - 427, 0, 426, 423, 427, 424, 408, 417, 419, 404, - 417, 418, 0, 0, 407, 415, 411, 406, 407, 0, - 0, 679, 679, 679, 411, 0, 396, 408, 408, 397, - - 391, 391, 403, 0, 403, 405, 386, 0, 403, 0, - 0, 397, 0, 391, 385, 395, 385, 387, 384, 391, - 0, 384, 0, 0, 385, 0, 382, 0, 0, 0, - 386, 380, 384, 379, 383, 0, 0, 0, 376, 0, - 0, 0, 369, 381, 379, 0, 370, 0, 371, 370, - 369, 0, 0, 367, 362, 371, 0, 358, 359, 0, - 361, 0, 0, 362, 0, 367, 367, 365, 351, 0, - 0, 350, 0, 356, 348, 347, 0, 0, 347, 0, - 329, 0, 340, 334, 0, 319, 0, 0, 311, 320, - 328, 325, 0, 316, 319, 311, 324, 0, 317, 305, - - 318, 315, 301, 302, 310, 296, 0, 308, 311, 300, - 0, 299, 290, 282, 0, 233, 245, 176, 186, 174, - 151, 158, 128, 0, 48, 28, 0, 679, 386, 390, - 394, 399, 403, 405, 410 + 0, 0, 679, 680, 680, 680, 653, 73, 0, 0, + 55, 71, 630, 680, 680, 651, 67, 680, 68, 66, + 74, 80, 87, 680, 680, 65, 650, 77, 680, 99, + 623, 680, 680, 680, 648, 622, 28, 605, 67, 40, + 73, 82, 606, 84, 51, 605, 89, 98, 617, 612, + 105, 102, 603, 62, 607, 605, 680, 86, 680, 680, + 680, 108, 175, 660, 0, 0, 680, 680, 680, 680, + 680, 127, 168, 680, 680, 680, 680, 680, 680, 644, + 162, 680, 680, 680, 164, 169, 171, 166, 167, 0, + 211, 636, 680, 680, 680, 635, 252, 622, 622, 585, + + 680, 603, 582, 586, 598, 585, 155, 588, 148, 581, + 582, 579, 144, 586, 582, 579, 576, 0, 98, 580, + 587, 580, 577, 568, 570, 576, 569, 579, 573, 565, + 569, 565, 165, 574, 64, 142, 574, 114, 569, 565, + 557, 560, 183, 574, 180, 564, 567, 680, 680, 242, + 187, 0, 680, 680, 234, 680, 680, 243, 241, 680, + 680, 204, 221, 194, 270, 225, 680, 223, 266, 680, + 680, 680, 580, 680, 680, 680, 680, 680, 680, 680, + 680, 680, 680, 581, 582, 229, 554, 549, 552, 564, + 559, 547, 559, 203, 560, 555, 557, 553, 545, 542, + + 550, 537, 552, 0, 538, 542, 545, 530, 533, 536, + 539, 529, 531, 532, 537, 524, 517, 0, 534, 520, + 534, 527, 246, 516, 0, 518, 517, 519, 526, 527, + 511, 509, 509, 511, 520, 519, 515, 517, 507, 511, + 502, 223, 514, 516, 505, 504, 254, 308, 561, 292, + 296, 303, 680, 680, 301, 313, 236, 680, 279, 680, + 680, 680, 680, 294, 283, 680, 535, 523, 506, 505, + 496, 485, 0, 497, 0, 0, 496, 487, 495, 484, + 489, 490, 0, 0, 483, 483, 493, 479, 0, 483, + 488, 483, 0, 273, 0, 488, 473, 473, 474, 484, + + 0, 484, 478, 472, 468, 479, 464, 466, 476, 462, + 474, 464, 468, 467, 472, 471, 457, 459, 467, 465, + 463, 455, 460, 461, 449, 461, 0, 445, 457, 457, + 317, 339, 680, 680, 299, 680, 289, 482, 680, 458, + 440, 440, 441, 0, 292, 0, 442, 443, 449, 447, + 446, 437, 436, 0, 443, 431, 435, 441, 439, 437, + 431, 436, 420, 421, 0, 437, 418, 418, 429, 423, + 420, 428, 0, 427, 424, 428, 425, 409, 418, 420, + 405, 418, 419, 0, 0, 408, 416, 412, 407, 408, + 0, 0, 680, 680, 680, 412, 0, 397, 409, 409, + + 398, 392, 392, 404, 0, 404, 406, 387, 0, 404, + 0, 0, 398, 0, 392, 386, 396, 386, 388, 385, + 392, 0, 385, 0, 0, 386, 0, 383, 0, 0, + 0, 387, 381, 385, 380, 384, 0, 0, 0, 377, + 0, 0, 0, 370, 382, 380, 0, 371, 0, 372, + 371, 370, 0, 0, 368, 354, 360, 0, 343, 342, + 0, 344, 0, 0, 338, 0, 343, 343, 341, 326, + 0, 0, 325, 0, 331, 323, 331, 0, 0, 334, + 0, 320, 0, 333, 327, 0, 319, 0, 0, 311, + 320, 328, 326, 0, 317, 320, 313, 326, 0, 319, + + 305, 318, 315, 299, 300, 310, 296, 0, 307, 310, + 301, 0, 302, 292, 285, 0, 280, 294, 270, 281, + 242, 139, 117, 66, 0, 44, 28, 0, 680, 400, + 404, 408, 413, 417, 419, 424 } ; -static yyconst short int yy_def[536] = +static yyconst short int yy_def[537] = { 0, - 528, 1, 528, 528, 528, 528, 528, 529, 530, 531, - 528, 528, 532, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 531, 528, 528, 528, 528, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 528, 528, 528, 528, - 528, 529, 528, 529, 533, 531, 528, 528, 528, 528, - 528, 532, 532, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 534, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 531, 528, - - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 528, 528, 528, 535, - 533, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 534, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 535, 528, 535, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 528, 528, 528, 531, 531, 531, 531, 531, 531, - - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, - 531, 531, 531, 531, 531, 531, 531, 0, 528, 528, - 528, 528, 528, 528, 528 + 529, 1, 529, 529, 529, 529, 529, 530, 531, 532, + 529, 529, 533, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 532, 529, 529, 529, 529, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 529, 529, 529, 529, + 529, 530, 529, 530, 534, 532, 529, 529, 529, 529, + 529, 533, 533, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 535, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 532, + + 529, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 529, 529, 529, + 536, 534, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 535, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 536, 529, 536, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 529, 529, 529, 532, 532, 532, 532, 532, + + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 532, 532, 532, 532, 532, 0, 529, + 529, 529, 529, 529, 529, 529 } ; -static yyconst short int yy_nxt[758] = +static yyconst short int yy_nxt[759] = { 0, 4, 5, 6, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, @@ -526,84 +526,84 @@ static yyconst short int yy_nxt[758] = 37, 38, 39, 40, 41, 42, 43, 10, 44, 45, 46, 10, 47, 48, 49, 50, 51, 52, 53, 54, 55, 10, 56, 10, 57, 58, 59, 60, 63, 67, - 70, 75, 527, 80, 77, 81, 81, 82, 91, 92, - 102, 76, 78, 79, 108, 71, 103, 84, 83, 85, - - 85, 143, 84, 109, 90, 90, 94, 95, 96, 120, - 152, 86, 526, 121, 144, 87, 86, 105, 97, 64, - 87, 88, 113, 89, 106, 110, 88, 111, 98, 68, - 107, 69, 114, 123, 86, 115, 112, 147, 63, 86, - 87, 528, 124, 117, 139, 87, 73, 125, 88, 72, - 118, 89, 126, 88, 119, 140, 127, 133, 247, 205, - 134, 135, 141, 128, 149, 149, 206, 136, 150, 129, - 137, 130, 191, 138, 81, 81, 192, 167, 163, 64, - 163, 157, 157, 164, 164, 225, 154, 155, 148, 84, - 156, 85, 85, 158, 159, 165, 194, 160, 226, 248, - - 525, 166, 167, 86, 230, 195, 261, 161, 199, 154, - 155, 200, 524, 162, 227, 156, 158, 159, 523, 231, - 165, 84, 160, 90, 90, 242, 86, 243, 166, 220, - 221, 228, 161, 261, 222, 86, 236, 237, 522, 87, - 162, 223, 238, 149, 149, 88, 521, 150, 520, 249, - 239, 249, 240, 324, 250, 250, 325, 254, 86, 254, - 164, 164, 255, 255, 87, 258, 268, 269, 256, 262, - 157, 157, 88, 171, 257, 172, 247, 173, 174, 175, - 176, 177, 251, 252, 178, 179, 253, 180, 181, 182, - 258, 164, 164, 256, 262, 519, 263, 277, 278, 305, - - 518, 257, 264, 332, 259, 251, 252, 260, 306, 149, - 149, 253, 333, 150, 250, 250, 336, 248, 250, 250, - 330, 263, 330, 255, 255, 331, 331, 259, 392, 264, - 332, 155, 260, 334, 156, 255, 255, 333, 357, 335, - 393, 336, 331, 331, 331, 331, 399, 517, 159, 358, - 516, 160, 515, 400, 155, 392, 514, 252, 334, 156, - 253, 513, 512, 511, 510, 393, 335, 509, 508, 507, - 506, 159, 505, 504, 503, 502, 160, 501, 500, 499, - 252, 498, 497, 496, 495, 253, 62, 62, 62, 62, - 62, 65, 494, 493, 65, 66, 492, 66, 66, 72, - - 72, 491, 72, 72, 151, 490, 151, 151, 168, 168, - 246, 246, 246, 246, 246, 489, 488, 487, 486, 485, - 484, 483, 482, 481, 480, 479, 478, 477, 476, 475, - 474, 473, 472, 471, 470, 469, 468, 467, 466, 465, - 464, 463, 462, 461, 460, 459, 458, 457, 456, 455, - 454, 453, 452, 451, 450, 449, 448, 447, 446, 445, - 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, - 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, - 424, 423, 422, 421, 420, 419, 418, 417, 416, 415, - 414, 413, 412, 411, 410, 409, 408, 407, 406, 405, - - 404, 403, 402, 401, 398, 397, 396, 395, 394, 391, - 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, - 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, - 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, - 360, 359, 356, 355, 354, 353, 352, 351, 350, 349, - 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, - 338, 337, 528, 329, 328, 327, 326, 323, 322, 321, - 320, 319, 318, 317, 316, 315, 314, 313, 312, 311, - 310, 309, 308, 307, 304, 303, 302, 301, 300, 299, - 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, - - 288, 287, 286, 285, 284, 283, 282, 281, 280, 279, - 276, 275, 274, 273, 272, 271, 270, 267, 266, 265, - 245, 244, 241, 235, 234, 233, 232, 229, 224, 219, - 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, - 208, 207, 204, 203, 202, 201, 198, 197, 196, 193, - 190, 189, 188, 187, 186, 185, 184, 183, 170, 169, - 153, 528, 146, 145, 142, 132, 131, 122, 116, 104, - 101, 100, 99, 93, 74, 73, 61, 528, 3, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528 + 70, 75, 528, 80, 77, 81, 81, 82, 92, 93, + 103, 76, 78, 79, 109, 71, 104, 85, 83, 86, + + 86, 95, 96, 110, 85, 121, 91, 91, 527, 122, + 148, 87, 144, 63, 226, 88, 97, 106, 87, 64, + 84, 89, 88, 90, 107, 145, 98, 227, 89, 68, + 108, 69, 114, 111, 87, 112, 99, 153, 526, 118, + 88, 87, 115, 124, 113, 116, 119, 88, 89, 127, + 120, 90, 125, 128, 64, 89, 140, 126, 206, 134, + 129, 149, 135, 136, 231, 207, 130, 141, 131, 137, + 529, 525, 138, 73, 142, 139, 150, 150, 72, 232, + 151, 81, 81, 158, 158, 164, 85, 164, 86, 86, + 165, 165, 248, 155, 156, 159, 160, 157, 228, 161, + + 87, 166, 168, 195, 162, 192, 524, 167, 200, 193, + 163, 201, 196, 165, 165, 229, 155, 156, 159, 160, + 221, 222, 157, 87, 161, 223, 166, 168, 85, 162, + 91, 91, 224, 249, 167, 237, 238, 163, 243, 257, + 244, 239, 87, 150, 150, 258, 88, 151, 250, 240, + 250, 241, 89, 251, 251, 255, 259, 255, 263, 248, + 256, 256, 158, 158, 257, 87, 262, 269, 270, 278, + 279, 88, 258, 325, 252, 253, 326, 333, 254, 89, + 172, 259, 173, 263, 174, 175, 176, 177, 178, 165, + 165, 179, 180, 262, 181, 182, 183, 252, 253, 306, + + 249, 264, 260, 254, 333, 261, 523, 265, 307, 150, + 150, 251, 251, 151, 334, 251, 251, 331, 337, 331, + 256, 256, 332, 332, 394, 260, 264, 358, 156, 335, + 261, 157, 256, 256, 265, 336, 332, 332, 359, 334, + 393, 522, 521, 337, 520, 160, 400, 519, 161, 394, + 518, 156, 517, 401, 335, 516, 157, 515, 332, 332, + 514, 513, 336, 512, 511, 510, 509, 393, 160, 508, + 507, 253, 506, 161, 254, 505, 504, 503, 502, 501, + 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, + 490, 489, 488, 487, 253, 486, 485, 484, 483, 254, + + 62, 62, 62, 62, 62, 65, 482, 481, 65, 66, + 480, 66, 66, 72, 72, 479, 72, 72, 152, 478, + 152, 152, 169, 169, 247, 247, 247, 247, 247, 477, + 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, + 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, + 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, + 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, + 436, 435, 434, 433, 432, 431, 430, 429, 428, 427, + 426, 425, 424, 423, 422, 421, 420, 419, 418, 417, + 416, 415, 414, 413, 412, 411, 410, 409, 408, 407, + + 406, 405, 404, 403, 402, 399, 398, 397, 396, 395, + 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, + 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, + 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, + 362, 361, 360, 357, 356, 355, 354, 353, 352, 351, + 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, + 340, 339, 338, 529, 330, 329, 328, 327, 324, 323, + 322, 321, 320, 319, 318, 317, 316, 315, 314, 313, + 312, 311, 310, 309, 308, 305, 304, 303, 302, 301, + 300, 299, 298, 297, 296, 295, 294, 293, 292, 291, + + 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, + 280, 277, 276, 275, 274, 273, 272, 271, 268, 267, + 266, 246, 245, 242, 236, 235, 234, 233, 230, 225, + 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, + 210, 209, 208, 205, 204, 203, 202, 199, 198, 197, + 194, 191, 190, 189, 188, 187, 186, 185, 184, 171, + 170, 154, 529, 147, 146, 143, 133, 132, 123, 117, + 105, 102, 101, 100, 94, 74, 73, 61, 529, 3, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529 } ; -static yyconst short int yy_chk[758] = +static yyconst short int yy_chk[759] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -613,81 +613,81 @@ static yyconst short int yy_chk[758] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 11, - 12, 17, 526, 20, 19, 20, 20, 21, 26, 26, + 12, 17, 527, 20, 19, 20, 20, 21, 26, 26, 37, 17, 19, 19, 40, 12, 37, 22, 21, 22, - 22, 54, 23, 40, 23, 23, 28, 28, 30, 45, - 72, 22, 525, 45, 54, 22, 23, 39, 30, 8, - 23, 22, 42, 22, 39, 41, 23, 41, 30, 11, - 39, 11, 42, 47, 22, 42, 41, 58, 62, 23, - 22, 73, 47, 44, 52, 23, 72, 47, 22, 73, - 44, 22, 48, 23, 44, 52, 48, 51, 150, 118, - 51, 51, 52, 48, 63, 63, 118, 51, 63, 48, - 51, 48, 106, 51, 81, 81, 106, 88, 86, 62, - 86, 84, 84, 86, 86, 134, 81, 81, 58, 85, - 81, 85, 85, 84, 84, 87, 108, 84, 134, 150, - - 523, 87, 88, 85, 137, 108, 165, 85, 112, 81, - 81, 112, 522, 85, 135, 81, 84, 84, 521, 137, - 87, 90, 84, 90, 90, 144, 85, 144, 87, 132, - 132, 135, 85, 165, 132, 90, 142, 142, 520, 90, - 85, 132, 142, 149, 149, 90, 519, 149, 518, 154, - 142, 154, 142, 241, 154, 154, 241, 158, 90, 158, - 163, 163, 158, 158, 90, 162, 185, 185, 161, 167, - 157, 157, 90, 96, 161, 96, 246, 96, 96, 96, - 96, 96, 157, 157, 96, 96, 157, 96, 96, 96, - 162, 164, 164, 161, 167, 517, 168, 193, 193, 222, - - 516, 161, 168, 256, 164, 157, 157, 164, 222, 247, - 247, 157, 258, 247, 249, 249, 264, 246, 250, 250, - 251, 168, 251, 254, 254, 251, 251, 164, 334, 168, - 256, 250, 164, 263, 250, 255, 255, 258, 293, 263, - 336, 264, 330, 330, 331, 331, 344, 514, 255, 293, - 513, 255, 512, 344, 250, 334, 510, 331, 263, 250, - 331, 509, 508, 506, 505, 336, 263, 504, 503, 502, - 501, 255, 500, 499, 497, 496, 255, 495, 494, 492, - 331, 491, 490, 489, 486, 331, 529, 529, 529, 529, - 529, 530, 484, 483, 530, 531, 481, 531, 531, 532, - - 532, 479, 532, 532, 533, 476, 533, 533, 534, 534, - 535, 535, 535, 535, 535, 475, 474, 472, 469, 468, - 467, 466, 464, 461, 459, 458, 456, 455, 454, 451, - 450, 449, 447, 445, 444, 443, 439, 435, 434, 433, - 432, 431, 427, 425, 422, 420, 419, 418, 417, 416, - 415, 414, 412, 409, 407, 406, 405, 403, 402, 401, - 400, 399, 398, 397, 395, 389, 388, 387, 386, 385, - 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, - 371, 370, 369, 368, 367, 366, 365, 363, 362, 361, - 360, 359, 358, 357, 356, 355, 354, 352, 351, 350, - - 349, 348, 347, 346, 342, 341, 340, 339, 337, 329, - 328, 327, 325, 324, 323, 322, 321, 320, 319, 318, - 317, 316, 315, 314, 313, 312, 311, 310, 309, 308, - 307, 306, 305, 304, 303, 302, 301, 299, 298, 297, - 296, 295, 291, 290, 289, 287, 286, 285, 284, 281, - 280, 279, 278, 277, 276, 273, 271, 270, 269, 268, - 267, 266, 248, 245, 244, 243, 242, 240, 239, 238, - 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, - 227, 226, 225, 223, 221, 220, 219, 218, 216, 215, - 214, 213, 212, 211, 210, 209, 208, 207, 206, 205, - - 204, 202, 201, 200, 199, 198, 197, 196, 195, 194, - 192, 191, 190, 189, 188, 187, 186, 184, 183, 172, - 146, 145, 143, 141, 140, 139, 138, 136, 133, 131, - 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, - 120, 119, 116, 115, 114, 113, 111, 110, 109, 107, - 105, 104, 103, 102, 101, 99, 98, 97, 95, 91, - 80, 64, 56, 55, 53, 50, 49, 46, 43, 38, - 36, 35, 31, 27, 16, 13, 7, 3, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, - 528, 528, 528, 528, 528, 528, 528 + 22, 28, 28, 40, 23, 45, 23, 23, 526, 45, + 58, 22, 54, 62, 135, 22, 30, 39, 23, 8, + 21, 22, 23, 22, 39, 54, 30, 135, 23, 11, + 39, 11, 42, 41, 22, 41, 30, 72, 524, 44, + 22, 23, 42, 47, 41, 42, 44, 23, 22, 48, + 44, 22, 47, 48, 62, 23, 52, 47, 119, 51, + 48, 58, 51, 51, 138, 119, 48, 52, 48, 51, + 73, 523, 51, 72, 52, 51, 63, 63, 73, 138, + 63, 81, 81, 85, 85, 87, 86, 87, 86, 86, + 87, 87, 151, 81, 81, 85, 85, 81, 136, 85, + + 86, 88, 89, 109, 86, 107, 522, 88, 113, 107, + 86, 113, 109, 164, 164, 136, 81, 81, 85, 85, + 133, 133, 81, 86, 85, 133, 88, 89, 91, 86, + 91, 91, 133, 151, 88, 143, 143, 86, 145, 162, + 145, 143, 91, 150, 150, 162, 91, 150, 155, 143, + 155, 143, 91, 155, 155, 159, 163, 159, 168, 247, + 159, 159, 158, 158, 162, 91, 166, 186, 186, 194, + 194, 91, 162, 242, 158, 158, 242, 257, 158, 91, + 97, 163, 97, 168, 97, 97, 97, 97, 97, 165, + 165, 97, 97, 166, 97, 97, 97, 158, 158, 223, + + 247, 169, 165, 158, 257, 165, 521, 169, 223, 248, + 248, 250, 250, 248, 259, 251, 251, 252, 265, 252, + 255, 255, 252, 252, 337, 165, 169, 294, 251, 264, + 165, 251, 256, 256, 169, 264, 331, 331, 294, 259, + 335, 520, 519, 265, 518, 256, 345, 517, 256, 337, + 515, 251, 514, 345, 264, 513, 251, 511, 332, 332, + 510, 509, 264, 507, 506, 505, 504, 335, 256, 503, + 502, 332, 501, 256, 332, 500, 498, 497, 496, 495, + 493, 492, 491, 490, 487, 485, 484, 482, 480, 477, + 476, 475, 473, 470, 332, 469, 468, 467, 465, 332, + + 530, 530, 530, 530, 530, 531, 462, 460, 531, 532, + 459, 532, 532, 533, 533, 457, 533, 533, 534, 456, + 534, 534, 535, 535, 536, 536, 536, 536, 536, 455, + 452, 451, 450, 448, 446, 445, 444, 440, 436, 435, + 434, 433, 432, 428, 426, 423, 421, 420, 419, 418, + 417, 416, 415, 413, 410, 408, 407, 406, 404, 403, + 402, 401, 400, 399, 398, 396, 390, 389, 388, 387, + 386, 383, 382, 381, 380, 379, 378, 377, 376, 375, + 374, 372, 371, 370, 369, 368, 367, 366, 364, 363, + 362, 361, 360, 359, 358, 357, 356, 355, 353, 352, + + 351, 350, 349, 348, 347, 343, 342, 341, 340, 338, + 330, 329, 328, 326, 325, 324, 323, 322, 321, 320, + 319, 318, 317, 316, 315, 314, 313, 312, 311, 310, + 309, 308, 307, 306, 305, 304, 303, 302, 300, 299, + 298, 297, 296, 292, 291, 290, 288, 287, 286, 285, + 282, 281, 280, 279, 278, 277, 274, 272, 271, 270, + 269, 268, 267, 249, 246, 245, 244, 243, 241, 240, + 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, + 229, 228, 227, 226, 224, 222, 221, 220, 219, 217, + 216, 215, 214, 213, 212, 211, 210, 209, 208, 207, + + 206, 205, 203, 202, 201, 200, 199, 198, 197, 196, + 195, 193, 192, 191, 190, 189, 188, 187, 185, 184, + 173, 147, 146, 144, 142, 141, 140, 139, 137, 134, + 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, + 122, 121, 120, 117, 116, 115, 114, 112, 111, 110, + 108, 106, 105, 104, 103, 102, 100, 99, 98, 96, + 92, 80, 64, 56, 55, 53, 50, 49, 46, 43, + 38, 36, 35, 31, 27, 16, 13, 7, 3, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, + 529, 529, 529, 529, 529, 529, 529, 529 } ; static yy_state_type yy_last_accepting_state; @@ -1078,13 +1078,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 529 ) + if ( yy_current_state >= 530 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 679 ); + while ( yy_base[yy_current_state] != 680 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1972,12 +1972,17 @@ YY_RULE_SETUP YY_BREAK case 159: YY_RULE_SETUP -#line 431 "cscanner.l" -{ incColumn (); } +#line 432 "cscanner.l" +{ setTokLength (1); RETURN_TOK (TCAND); } YY_BREAK case 160: YY_RULE_SETUP -#line 432 "cscanner.l" +#line 435 "cscanner.l" +{ incColumn (); } + YY_BREAK +case 161: +YY_RULE_SETUP +#line 436 "cscanner.l" { context_incLineno (); if (continueLine) { @@ -1995,9 +2000,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 162: YY_RULE_SETUP -#line 448 "cscanner.l" +#line 452 "cscanner.l" { setTokLength (6); if (processMacro ()) { @@ -2016,9 +2021,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 163: YY_RULE_SETUP -#line 465 "cscanner.l" +#line 469 "cscanner.l" { if (context_inHeader () || context_inFunction ()) { handleMacro (); @@ -2056,79 +2061,79 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 164: YY_RULE_SETUP -#line 501 "cscanner.l" +#line 505 "cscanner.l" { setTokLength (4); lldiagmsg (ctype_unparseTable ()); } YY_BREAK -case 164: +case 165: YY_RULE_SETUP -#line 502 "cscanner.l" +#line 506 "cscanner.l" { setTokLength (3); lldiagmsg (message ("%q: *** marker ***", fileloc_unparse (g_currentloc))); } YY_BREAK -case 165: +case 166: YY_RULE_SETUP -#line 505 "cscanner.l" +#line 509 "cscanner.l" { setTokLength (3); usymtab_printLocal (); } YY_BREAK -case 166: +case 167: YY_RULE_SETUP -#line 506 "cscanner.l" +#line 510 "cscanner.l" { setTokLength (3); lldiagmsg (usymtab_unparseAliases ()); } YY_BREAK -case 167: +case 168: YY_RULE_SETUP -#line 507 "cscanner.l" +#line 511 "cscanner.l" { setTokLength (3); lldiagmsg (context_unparse ()); } YY_BREAK -case 168: +case 169: YY_RULE_SETUP -#line 508 "cscanner.l" +#line 512 "cscanner.l" { setTokLength (3); lldiagmsg (context_unparseClauses ()); } YY_BREAK -case 169: +case 170: YY_RULE_SETUP -#line 509 "cscanner.l" +#line 513 "cscanner.l" { setTokLength (3); usymtab_printGuards (); } YY_BREAK -case 170: +case 171: YY_RULE_SETUP -#line 510 "cscanner.l" +#line 514 "cscanner.l" { setTokLength (3); usymtab_printOut (); } YY_BREAK -case 171: +case 172: YY_RULE_SETUP -#line 511 "cscanner.l" +#line 515 "cscanner.l" { setTokLength (3); usymtab_printAll (); } YY_BREAK -case 172: +case 173: YY_RULE_SETUP -#line 512 "cscanner.l" +#line 516 "cscanner.l" { setTokLength (3); usymtab_printComplete (); } YY_BREAK -case 173: +case 174: YY_RULE_SETUP -#line 513 "cscanner.l" +#line 517 "cscanner.l" { setTokLength (3); usymtab_printTypes (); } YY_BREAK -case 174: +case 175: YY_RULE_SETUP -#line 514 "cscanner.l" +#line 518 "cscanner.l" { setTokLength (3); lldiagmsg (usymtab_unparseStack ()); } YY_BREAK -case 175: +case 176: YY_RULE_SETUP -#line 515 "cscanner.l" +#line 519 "cscanner.l" { setTokLength (3); lldiagmsg (message ("Can modify: %q", sRefSet_unparse (context_modList ()))); } YY_BREAK -case 176: +case 177: YY_RULE_SETUP -#line 519 "cscanner.l" +#line 523 "cscanner.l" { /* BEFORE_COMMENT_MARKER */ int tok; incColumn (); incColumn (); @@ -2139,22 +2144,22 @@ YY_RULE_SETUP } } YY_BREAK -case 177: +case 178: YY_RULE_SETUP -#line 528 "cscanner.l" +#line 532 "cscanner.l" { /* AFTER_COMMENT_MARKER */ setTokLength (2); inSpecPart = FALSE; RETURN_TOK (QENDMACRO); } YY_BREAK -case 178: +case 179: YY_RULE_SETUP -#line 532 "cscanner.l" +#line 536 "cscanner.l" { incColumn (); continueLine = TRUE; } YY_BREAK -case 179: +case 180: YY_RULE_SETUP -#line 533 "cscanner.l" +#line 537 "cscanner.l" { incColumn (); voptgenerror (FLG_SYNTAX, @@ -2163,12 +2168,12 @@ YY_RULE_SETUP g_currentloc); } YY_BREAK -case 180: +case 181: YY_RULE_SETUP -#line 540 "cscanner.l" +#line 544 "cscanner.l" ECHO; YY_BREAK -#line 2172 "lex.yy.c" +#line 2177 "lex.yy.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2460,7 +2465,7 @@ static yy_state_type yy_get_previous_state() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 529 ) + if ( yy_current_state >= 530 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2495,11 +2500,11 @@ yy_state_type yy_current_state; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 529 ) + if ( yy_current_state >= 530 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 528); + yy_is_jam = (yy_current_state == 529); return yy_is_jam ? 0 : yy_current_state; } @@ -3054,7 +3059,7 @@ int main() return 0; } #endif -#line 540 "cscanner.l" +#line 544 "cscanner.l" struct skeyword @@ -3083,8 +3088,8 @@ struct skeyword s_parsetable[] = { { "pre", QPRECLAUSE } , { "post", QPOSTCLAUSE } , {"setBufferSize", QSETBUFFERSIZE}, - {"bufferConstraint", QBUFFERCONSTRAINT}, - {"ensuresConstraint", QENSURESCONSTRAINT}, + {"requires", QBUFFERCONSTRAINT}, + {"ensures", QENSURESCONSTRAINT}, {"setStringLength", QSETSTRINGLENGTH}, {"testinRange", QTESTINRANGE}, { NULL, BADTOK } @@ -3131,8 +3136,8 @@ struct skeyword s_keytable[] = { { "relnull", QRELNULL } , { "nullterminated", QNULLTERMINATED }, { "setBufferSize", QSETBUFFERSIZE }, - { "bufferConstraint", QBUFFERCONSTRAINT }, - { "ensuresConstraint", QENSURESCONSTRAINT }, + { "requires", QBUFFERCONSTRAINT }, + { "ensures", QENSURESCONSTRAINT }, { "testInRange", QTESTINRANGE}, { "MaxSet", QMAXSET}, { "MaxRead", QMAXREAD}, diff --git a/test/globalbufferannotation/globalvariable.c b/test/globalbufferannotation/globalvariable.c index 817dcd2..75efab9 100644 --- a/test/globalbufferannotation/globalvariable.c +++ b/test/globalbufferannotation/globalvariable.c @@ -3,10 +3,10 @@ static char f [12]; extern void /*@alt char * @*/ mstrcpy (/*@unique@*/ /*@out@*/ /*returned*/ char *s1, char *s2) - /*@modifies *s1@*/ /*@bufferConstraint MaxSet(s1) >= MaxRead(s2); @*/; + /*@modifies *s1@*/ /*@requires MaxSet(s1) >= MaxRead(s2); @*/; -void copyf (char * c) /*@bufferConstraint MaxSet(c) >= MaxRead(f); @*/ +void copyf (char * c) /*@requires MaxSet(c) >= MaxRead(f); @*/ { mstrcpy (c, f); } diff --git a/test/maxset/maxsetannotations.c b/test/maxset/maxsetannotations.c index c2bc474..503ffdd 100644 --- a/test/maxset/maxsetannotations.c +++ b/test/maxset/maxsetannotations.c @@ -1,6 +1,6 @@ #include "../../lib/ansi.h" -void anstrcpy( /*@unique@*/ char * a, char *b) /*@bufferConstraint MaxSet(a) >= MaxRead (b); @*/ { +void anstrcpy( /*@unique@*/ char * a, char *b) /*@requires MaxSet(a) >= MaxRead (b); @*/ { strcpy (a,b); } diff --git a/test/simplebufferConstraintTests/m.c b/test/simplebufferConstraintTests/m.c index 129144d..9c0636f 100644 --- a/test/simplebufferConstraintTests/m.c +++ b/test/simplebufferConstraintTests/m.c @@ -1,5 +1,5 @@ extern /*@null@*/ /*@out@*/ /*@only@*/ void *mymalloc (size_t size) /*@*/ - /*@ensuresConstraint MaxSet(result) == (size - 1); @*/ ; + /*@ensures MaxSet(result) == (size - 1) @*/ ; void t() { diff --git a/test/simplebufferConstraintTests/sizeof.c b/test/simplebufferConstraintTests/sizeof.c index d95b92b..52a77d8 100644 --- a/test/simplebufferConstraintTests/sizeof.c +++ b/test/simplebufferConstraintTests/sizeof.c @@ -2,11 +2,11 @@ extern void /*@alt char * @*/ mystrncpy (/*@unique@*/ /*@out@*/ /*@returned@*/ char *s1, char *s2, size_t n) - /*@modifies *s1@*/ /*@bufferConstraint MaxSet(s1) >= ( n - 1 -); MaxRead (s2) >= ( n - 1 ); @*/ /*@ensuresConstraint MaxRead (s1) == -MaxRead (s2); MaxRead (s1) <= n; @*/; + /*@modifies *s1@*/ /*@requires MaxSet(s1) >= ( n - 1 +) /\ MaxRead (s2) >= ( n - 1 ); @*/ /*@ensures MaxRead (s1) == +MaxRead (s2) /\ MaxRead (s1) <= n; @*/; - void f(char *z) /*@bufferConstraint MaxRead(z) >= 2; @*/ + void f(char *z) /*@requires MaxRead(z) >= 2; @*/ { char x[3]; char y[3]; -- 2.45.1